github pacstall/pacstall 3.1.0
3.1.0 Pearl

latest releases: 5.4.1, 5.4.0, 5.3.3...
21 months ago

Pacstall v3.1.0 Pearl Pearl

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

Developers, Developers, Developers...

Features

Bug Fixes

  • Bypass PACSTALL_EDITOR if editor cannot be found by @Henryws (#708)
  • Export DEBIAN_FRONTEND as noninteractive on -P flag by @Henryws (#713)
  • Use gives before name when pinning package by @Henryws (#728)
  • Figure out what gives is if it does not exist on Deb packages by @Henryws (#739)
  • Skip upgrade for git package if 0$version is the same as $remotever without the leading 0 by @Henryws (#742)
  • Subshell upgrade checks and add wait to prevent some upgrades from failing to show by @Henryws (#746)

Internal changes

  • Remove some grep calls with bash comparisons by @Henryws (#709)

How to use new features

epoch variable

In your Pacscripts, if a package must forcefully be downgraded, you should include the variable epoch="num" in your script. If left out, Pacstall will not take it into account during the version generation. If it is included, the version will end up looking like this: $epoch:$version. An example would be if you had the version 1.0.0, however an issue required you to force downgrade, you would specify epoch="1", version="0.9.0", and Pacstall will force downgrade. Use this feature sparingly.

incompatible array

This array is used to prevent certain distros and versions from being able to run your script. This could be used for a variety of reasons, but the most common are missing or outdated dependencies on those distros (maybe make a Pacscript for those!). You may specify a glob (*) for a catch all selection, or the full name. Codenames and version numbers are valid. Using a glob for both sides (*:*) is invalid. The array takes a form like this:

# Disallow on Debian Stretch, any Ubuntu version, anything with the codename `jammy`, and anything with the version `17.04`
incompatible=('debian:stretch' 'debian:sid' 'ubuntu:*' '*:jammy' '*:17.04')

You can retrieve your distro name by running lsb_release -si 2>/dev/null | tr '[:upper:]' '[:lower:]'.

To get the version name you can run lsb_release -sc 2>/dev/null | tr '[:upper:]' '[:lower:]'.

Logged functions

Pacstall will now log the output of prepare, build, and install to logs in /var/log/pacstall/error_log/$(date +"%Y-%m-%d_%T")-$name-$func.log where $name is the name of the package and $func is the function currently running. Logs will be automatically deleted after 30 days.

xz compresssion with -B flag

This simply means that when you use the -B flag to create a Deb, Pacstall will compress data.tar and control.tar with the xz format, instead of gz. Benchmarks are provided here.

🔧 Pacscript for this releases Deb
name="pacstall"
version="3.1.0"
description="An AUR-inspired package manager for Ubuntu"
depends="bash curl wget unzip build-essential sensible-utils git"
optdepends=(
	"axel: faster file downloads"
)
maintainer="Pacstall Team <pacstall@pm.me>"
url="https://github.com/pacstall/pacstall/archive/refs/heads/develop.zip"

prepare() {
	sudo mkdir -p "${pkgdir}/usr/bin/"
	sudo mkdir -p "${pkgdir}/usr/share/pacstall/scripts/"
	sudo mkdir -p "${pkgdir}/usr/share/pacstall/repo/"
	sudo mkdir -p "${pkgdir}/usr/share/man/man8/"
	sudo mkdir -p "${pkgdir}/var/log/pacstall/error_log/"
}

install() {
	sudo install -Dm 755 pacstall "${pkgdir}/usr/bin/"
	sudo install -C "misc/scripts"/* "${pkgdir}/usr/share/pacstall/scripts/"
	sudo install -Dm 644 "misc/pacstall.8.gz" "${pkgdir}/usr/share/man/man8/"
	echo "https://raw.githubusercontent.com/pacstall/pacstall-programs/master" | sudo tee "${pkgdir}/usr/share/pacstall/repo/pacstallrepo.txt" >/dev/null
	sudo chmod +x "${pkgdir}/usr/share/pacstall/scripts"/*
}

Don't miss a new pacstall release

NewReleases is sending notifications on new releases.