Pacstall v5.1.0 Periwinkle ![Periwinkle](https://camo.githubusercontent.com/3dd1c3af8ee47ea115b63bcd3cf9fa7e685c2b35130dba3e87997abbd6aa92b5/68747470733a2f2f7777772e68746d6c637373636f6c6f722e636f6d2f707265766965772f313238783132382f3846393946422e706e67)
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
- add
_DISTRO
arrays/vars by @oklopfer (#1106) - add
--nosandbox
/-Ns
flag by @oklopfer (#1116) - allow handling of repos with metalinks, add
-Rr
/--remove-repo
by @oklopfer (#1118)
Bug Fixes
exit 0
in places that needed it by @oklopfer (#1112)- Repair version constraints by @oklopfer (#1113)
- Ensure
PACDIR
exists when running-Up
by @oklopfer (#1117) - Make untarring work inside of
bwrap
'd functions by @vigress8 (#1115)
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
, whereDISTROBASE
is eitherubuntu
ordebian
; e.g.source_ubuntu
ordepends_debian
var_DISTROVER
, whereDISTROVER
is a version codename; e.g.source_jammy
ordepends_bookworm
- Note: this cannot be the version number, like
22.04
or12
- Note: this cannot be the version number, like
var_DISTROBASE_CARCH
, e.g.source_ubuntu_arm64
ordepends_debian_i386
var_DISTROVER_CARCH
, e.g.source_jammy_arm64
ordepends_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
, whereprovider
is eithergithub
orgitlab
; defaults to branchmaster
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](https://private-user-images.githubusercontent.com/104327997/332958235-771d94a1-56fa-4e72-ad28-d0712ec0f719.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MTY0MjkzMDgsIm5iZiI6MTcxNjQyOTAwOCwicGF0aCI6Ii8xMDQzMjc5OTcvMzMyOTU4MjM1LTc3MWQ5NGExLTU2ZmEtNGU3Mi1hZDI4LWQwNzEyZWMwZjcxOS5wbmc_WC1BbXotQWxnb3JpdGhtPUFXUzQtSE1BQy1TSEEyNTYmWC1BbXotQ3JlZGVudGlhbD1BS0lBVkNPRFlMU0E1M1BRSzRaQSUyRjIwMjQwNTIzJTJGdXMtZWFzdC0xJTJGczMlMkZhd3M0X3JlcXVlc3QmWC1BbXotRGF0ZT0yMDI0MDUyM1QwMTUwMDhaJlgtQW16LUV4cGlyZXM9MzAwJlgtQW16LVNpZ25hdHVyZT1mMTlkNDU0YWRhZjJkZDFjYzVlMDhjNWFkNTg4ZDRhYmM0NDk3M2NjZTlmNGIxNTdmOWFhZDFjZGQwYzk3MTdlJlgtQW16LVNpZ25lZEhlYWRlcnM9aG9zdCZhY3Rvcl9pZD0wJmtleV9pZD0wJnJlcG9faWQ9MCJ9.8NXUg4dPwLWD1-DFsFMYJZCaWD3eXyoSbZvGNItCaCo)