Pacstall v6.0.0 Phlox
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. The prebuilt deb is also available from the Chaotic PPR, using sudo apt install pacstall
.
Developers, Developers, Developers...
The Chaotic PPR is finally live!
Check it out at https://ppr.pacstall.dev/
Breaking Changes
- Enforce
arch
array, splitany
andall
by @oklopfer (#1266) spdx
license list update by @oklopfer (#1269)pkgbase
download and function rework by @oklopfer (#1270)- Do not allow
-U/--update
if pacstall is installed from deb by @oklopfer (#1274) - Remove
_archive
internal var by @oklopfer (#1289)
Features
- Allow extract-to syntax for
source
by @oklopfer (#1271, #1281) - Show reinstall warning on packages by @Elsie19 (#1283)
Bug Fixes
- Don't mark already installed optdeps as deps in build only mode by @oklopfer (#1277)
- Use double dash as separator instead of "ZZZZ" in suggestion_solution by @Elsie19 (#1275)
- Remove some awk instances in favor of variable substitution by @Elsie19 (#1285)
Translations
- Full support of the French translation by @mortim (#1267)
- Translations update from Hosted Weblate by @weblate (#1263, #1264, #1273, #1278, #1279, #1284, #1286, #1290)
Current translation status:
See https://github.com/pacstall/pacstall#translations for how to help.
For the Pacscript Maintainers
How to use the new features
arch
enforcement and any
/all
split
The arch
array is now a required value in all pacscripts. In addition to this, any
and all
now have 2 distinct meanings, rather than being treated as equivalent:
any
means the package can be built on any architecture, and the result will be specific to that architecture (i.e.foo_amd64.deb
)all
means the package can be built on any architecture, and the result will work on any architecture (i.e.foo_all.deb
)
This is most important for the PPR and knowing how it should be compiling static packages.
extract-to source
syntax, removal of _archive
var
The presumptive _archive
var, which legacy pacscripts could cd into to adjust with 5.0.0 changes, has been removed, and replaced with either static naming, or with the new following source
syntax options:
- Where before we allowed:
custom-location.zip::git+file://example.com/archive.tar.xz?h=file#branch=master
- We now allow (in addition):
custom-location.zip@extracted_location::git+file://example.com/archive.tar.xz?h=file#branch=master
@extracted_location::git+file://example.com/archive.tar.xz?h=file#branch=master
Where one can then use cd extracted_location
instead of cd ${_archive}
- For extractions that result in only one file/directory in the head, this will rename that head level item.
- For extractions that result in more than one file/directory in the head, all items from the extraction will be placed into this location.
- For
.git
and non-extractable sources,${dest}
already performs this function, so this syntax is ignored.
Pacscript for this releases Deb
pkgname="pacstall"
pkgver="6.0.0"
arch=("all")
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'
'gzip'
'sensible-utils'
'iputils-ping'
'lsb-release'
'aptitude'
'bubblewrap'
'build-essential'
'jq'
'distro-info-data'
'gettext'
)
makedepends=(
'gettext'
'gzip'
)
recommends=(
'axel'
'ninja-build'
'meson'
'spdx-licenses'
)
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/man/man5/"
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/"
mapfile -t linguas <"misc/po/LINGUAS"
for lang in "${linguas[@]}"; do
mkdir -p "${pkgdir}/usr/share/locale/${lang}/LC_MESSAGES/"
done
}
package() {
cd "${pkgname}-${pkgver}"
install -Dm755 pacstall "${pkgdir}/usr/bin/"
install -Dm755 "misc/scripts"/* "${pkgdir}/usr/share/pacstall/scripts/"
gzip -9n misc/man/pacstall.8
gzip -9n misc/man/pacstall.5
install "misc/man/pacstall.8.gz" "${pkgdir}/usr/share/man/man8/"
install "misc/man/pacstall.5.gz" "${pkgdir}/usr/share/man/man5/"
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
mapfile -t linguas <"misc/po/LINGUAS"
for lang in "${linguas[@]}"; do
msgfmt -o "${pkgdir}/usr/share/locale/${lang}/LC_MESSAGES/pacstall.mo" "misc/po/${lang}.po"
done
rm -f "${pkgdir}/usr/share/scripts/update.sh"
}