github pacstall/pacstall 5.1.0
5.1.0 Periwinkle

latest releases: 5.2.1, 5.2.0, 5.1.1...
24 days ago

Pacstall v5.1.0 Periwinkle Periwinkle

This update is a quality of life update focusing on important bug fixes and adding requested features. Users can update from Pacstall 4.0.0 or higher with pacstall -U pacstall:master, or reinstall using the deb file.

Developers, Developers, Developers...

Features

Bug Fixes


For the Pacscript Maintainers

Important

Breaking changes to the pacscript spec were added in 5.0.0 (Release).
Refer to the release notes when updating pacscripts in the official or third party repos.

How to use the new features

_DISTRO arrays and variables

In aim to make pacscript declarations more static, and to improve the accuracy of .SRCINFO in pacstall/pacstall-programs, over 2000 new arrays and variables have been introduced; pacscripts should deprecate their usage of $DISTRO checks wherever possible in favor of these additions. These are used just as _CARCH options are, and on all of the same arrays and variables. They provide the following options:

  • var_DISTROBASE, where DISTROBASE is either ubuntu or debian; e.g. source_ubuntu or depends_debian
  • var_DISTROVER, where DISTROVER is a version codename; e.g. source_jammy or depends_bookworm
    • Note: this cannot be the version number, like 22.04 or 12
  • var_DISTROBASE_CARCH, e.g. source_ubuntu_arm64 or depends_debian_i386
  • var_DISTROVER_CARCH, e.g. source_jammy_arm64 or depends_bookworm_i386

A CI maintained file at https://github.com/pacstall/pacstall-programs/blob/master/distrolist will provide an up-to-date list of the supported DISTROVER options.

-Ns/--nosandbox

Some environments, namely chroot or chroot-like ones, are purely incompatible with bwrap (e.g. Debian's live-build, which uses chroot). These environments need to be able to build pacscripts without bwrap involved. While this is how pacstall worked before 5.0.0, this lack of isolation is still potentially dangerous and could lead to unwanted harm on a system. This flag should be used with caution, and is intended for use in those aforementioned environments, which already have other levels of isolation.

-Rr/--remove-repo and repo metalinks

The -A/--add-repo command has existed for a long time, with no accommodating removal function. The new -Rr/--remove-repo command can be used with the exact same syntax as its adding counterpart. In addition to passing links as normal (e.g. https://github.com/user/repo or file://path/to/dir), metalinks (which are used in -Qa and displayed in -Up) may also be used for more user-friendly handling of the commands. They are formatted with the following options:

  • provider:user/repo, where provider is either github or gitlab; defaults to branch master
  • provider:user/repo#branch
  • local:/path/to/dir

Example usage:

pacstall -A github:pacstall/pacstall-programs#5.0.0-master
pacstall -Rr github:pacstall/pacstall-programs#5.0.0-master

pacstall -A local:/home/pacstall/pacstall-programs
pacstall -Rr local:/home/pacstall/pacstall-programs

Pacscript for this releases Deb
pkgname="pacstall"
pkgver="5.1.0"
pkgdesc="An AUR-inspired package manager for Ubuntu
Pacstall is the AUR Ubuntu wishes it had. It takes the concept of the AUR
and puts a spin on it, making it easier to install and update downstream programs,
without scouring github repos and the likes."
url='https://pacstall.dev'
depends=(
  'bash'
  'curl'
  'wget'
  'git'
  'unzip'
  'zstd'
  'tar'
  'sensible-utils'
  'iputils-ping'
  'lsb-release'
  'aptitude'
  'bubblewrap'
  'build-essential'
  'jq'
  'distro-info-data'
)
optdepends=(
  "axel: faster file downloads"
  "ninja-build: common building tool"
  "meson: common building tool"
)
maintainer=(
  "Pacstall Team <pacstall@pm.me>"
  "Elsie19 <hwengerstickel@pm.me>"
)
backup=('usr/share/pacstall/repo/pacstallrepo' 'usr/share/pacstall/update')
source=("https://github.com/pacstall/pacstall/archive/refs/tags/${pkgver}.zip")

prepare() {
  cd "${pkgname}-${pkgver}"
  mkdir -p "${pkgdir}/usr/bin/"
  mkdir -p "${pkgdir}/usr/share/pacstall/scripts/"
  mkdir -p "${pkgdir}/usr/share/pacstall/repo/"
  mkdir -p "${pkgdir}/usr/share/man/man8/"
  mkdir -p "${pkgdir}/usr/share/bash-completion/completions"
  mkdir -p "${pkgdir}/usr/share/fish/vendor_completions.d"
  mkdir -p "${pkgdir}/var/log/pacstall/error_log/"
  mkdir -p "${pkgdir}/var/lib/pacstall/metadata/"
  mkdir -p "${pkgdir}/var/cache/pacstall/"
  mkdir -p "${pkgdir}/usr/src/pacstall/"
}

package() {
  cd "${pkgname}-${pkgver}"
  install -Dm755 pacstall "${pkgdir}/usr/bin/"
  install -Dm755 "misc/scripts"/* "${pkgdir}/usr/share/pacstall/scripts/"
  install "misc/pacstall.8.gz" "${pkgdir}/usr/share/man/man8/"
  install "misc/completion/fish" "${pkgdir}/usr/share/fish/vendor_completions.d/pacstall.fish"
  install "misc/completion/bash" "${pkgdir}/usr/share/bash-completion/completions/pacstall"
  echo "https://raw.githubusercontent.com/pacstall/pacstall-programs/master" | tee "${pkgdir}/usr/share/pacstall/repo/pacstallrepo" > /dev/null
}

Pacwinkle

Don't miss a new pacstall release

NewReleases is sending notifications on new releases.