Pacstall v3.1.0 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
- Pacstall function output is now logged to files by @Henryws (#721, #734)
- Added
epoch
variable by @Henryws (#720, #740) - Added
incompatible
array by @Henryws (#717) - Debs built with
-B
are compressed withxz
by @Henryws (#729)
Bug Fixes
- Bypass
PACSTALL_EDITOR
if editor cannot be found by @Henryws (#708) - Export
DEBIAN_FRONTEND
asnoninteractive
on-P
flag by @Henryws (#713) - Use
gives
beforename
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 leading0
by @Henryws (#742) - Subshell upgrade checks and add
wait
to prevent some upgrades from failing to show by @Henryws (#746)
Internal changes
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"/*
}