github pacstall/pacstall 6.0.0
6.0.0 Phlox

latest releases: 6.0.2, 6.0.1
8 days ago

Pacstall v6.0.0 Phlox 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

Features

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

Current translation status:

Weblate 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"
}

PacPhlox

Don't miss a new pacstall release

NewReleases is sending notifications on new releases.