An AUR-inspired package manager for Ubuntu
GPL-3.0 License
Published by Elsie19 almost 2 years ago
This update is a bugfix update for the bugs present in 3.0.0 Cobalt found and reported by the community. Users can update from Pacstall 1.5.1 or higher with pacstall -U pacstall master
, or reinstall using the deb file.
suggest_solution
-> suggested_solution
by @Henryws (#683)The only catch to this change is that set -u
has been removed from the pacscript guards. This is caused solely because Bash's set -u
command does not respect trapping.^1 This should not cause any issues for users, and if a package somehow relied on using unbound variables, those Pacscript maintainers should fix it.
name="pacstall"
version="3.0.1"
description="The AUR for Ubuntu"
depends="curl wget unzip build-essential bc sensible-utils"
optdepends=(
"axel: faster file downloads"
)
maintainer="Pacstall Team <[email protected]>"
url="https://github.com/pacstall/pacstall/archive/refs/heads/master.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 cp pacstall "${pkgdir}/usr/bin"
sudo cp -r "misc/scripts"/* "${pkgdir}/usr/share/pacstall/scripts/"
sudo cp "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"/*
}
Published by Elsie19 about 2 years ago
This update is a major update focusing on quality of life features and enhanced functionality. Users can update from Pacstall 1.5.1 or higher with pacstall -U pacstall master
, or reinstall using the deb file, however due to the changes this release brings, it is highly recommended to reinstall all packages after updating.
Packages will continue to work after the upgrade, and should be able to be upgraded when new versions are available (this has not been tested, attempt at your own discretion). If you do not want to wait for Pacstall to switch your installed packages to Debs, you can just reinstall them with pacstall -I <pkg>
, or you can run this to fully remove the old package installation before reinstalling:
sudo apt purge $name # this will also trigger a built in `postrm` hook that will un-stow the package from `/usr/src/pacstall` and remove relevant metadata
-Il
flag by @Henryws (#676)Click here for more in-depth information about the Deb breaking change.
optdepends
by @Henryws (#630)optdepends
selection array by @Henryws (#631, #666)optdepend
does not exist in repos by @Henryws (#629, #658)-B
flag to build Deb packages without installing by @Henryws (#636, #677)-h
by @Henryws (#665)fancy_message sub
for sub-menus by @Henryws (#628)awk
references from upgrade.sh
by @Henryws (#633)post{rm,inst}
by @Henryws (#654)t
in the current working directory by @Henryws (#634)pacdeps
to parent package by @Henryws (#649, #650)build_depends
installer removing string instead of word by @Henryws (#652)breaks
by @Henryws (#655)hashcheck
by @Henryws, reported by @wizard-28 (#671)prepare
, build
, and install
functions are optional by @Henryws (#643)provides
array in Pacscripts by @Henryws (#657)optdepends
index/selection arrayAfter updating to 3.0.0, all you have to do is install a Pacscript with optdepends
. The following options are valid:
Select optional dependencies to install [1 2 3 4 5] [Y/n] 1 3 # Select 1 and 3
Select optional dependencies to install [1 2 3 4 5] [Y/n] 1-5 # Select range of 1 to 5
Select optional dependencies to install [1 2 3 4 5] [Y/n] 1..4 # Select the range of 1 to 4
Select optional dependencies to install [1 2 3 4 5] [Y/n] 2 3-5 # Select 2, and the range of 3 to 5 (3 4 5)
Select optional dependencies to install [1 2 3 4 5] [Y/n] Y # To select all
Select optional dependencies to install [1 2 3 4 5] [Y/n] N # To select none
After updating to 3.0.0, all you have to do is run pacstall -Up
. Pacstall will now run multiple version checks at a time (that number being set by nproc
) instead of sequentially. This will result in much faster upgrade checking times.
-B
flagThe -B
flag can only be used alongside the flag -I
. The result will be a created Deb in your current working directory. However, if you use the -B
flag, then install the Deb later, Pacstall will not track that Deb as an installed Pacstall package; it will be on it's own. The final package contents will also be copied to /tmp/pacstall-no-build/
.
-Il
flagThis change simply means that the -Il
flag has been merged into the -I
flag. This will not conflict with the current usage of the -I
flag. The only difference is that you must specify the .pacscript
suffix. Here is an example of how you should adapt your usage:
# Previous usage
$ pacstall -Il foo.pacscript
# New usage
$ pacstall -I foo.pacscript
Published by Elsie19 over 2 years ago
This update is a hotfix for bugs introduced in 2.0.0 Apricot. Users can update from pacstall 1.5.1 or higher with pacstall -U pacstall master
, or reinstall using the deb file.
Published by Elsie19 over 2 years ago
This update is a major update focusing on quality of life features and enhanced functionality. Users can update from pacstall 1.5.1 or higher with pacstall -U pacstall master
, or reinstall using the deb file.
check_url
in case of github ping failure by @wizard-28 (#589)set -euo pipefail
environment by @D-Brox (#543, #608, #610)Click here for more information about the breaking change.
stderr
by @wizard-28 (#585)In order to use local repositories, they must follow the pacscript repo structure, described here. If your repository is located at /home/user/local-repo
, you can add it through multiple methods:
# File URI Scheme
pacstall -A file:///home/user/local-repo
# Absolute path
pacstall -A /home/user/local-repo
# Home-relative path
pacstall -A ~/local-repo
# Relative paths, eg.:
cd ~/local-repo && pacstall -A .
cd ~/other-dir && pacstall -A ../local-repo
When updating Pacstall using the -U
flag, the output will now contain more information than before. Nothing needs to be done in order to use this feature, except for your Pacstall version being 2.0.0 or higher, then execute the command:
pacstall -U
# If you are using a dev build, update to the master branch using
pacstall -U pacstall master
When upgrading packages on your system, Pacstall now shows the version change between your currently installed version, and the remote one.
Published by Elsie19 over 2 years ago
This update is a bugfix update for the bugs present in 1.7.2 Carmine found and reported by the community. Users can update from pacstall 1.5 or higher with pacstall -U
, or reinstall using the deb file.
-Qi
when deb contains no size variable by @Henryws in https://github.com/pacstall/pacstall/pull/501
optdepends
has no description by @Henryws in https://github.com/pacstall/pacstall/pull/508
/dev/null
when sourcing by @wizard-28 in https://github.com/pacstall/pacstall/pull/510
$breaks
check for -deb
upgrades by @D-Brox in https://github.com/pacstall/pacstall/pull/523
-git
by @wizard-28 in https://github.com/pacstall/pacstall/pull/511
pacdeps
are already installed and skip in those cases by @D-Brox in https://github.com/pacstall/pacstall/pull/540
Full Changelog: https://github.com/pacstall/pacstall/compare/1.7.2...1.7.3
Published by Elsie19 over 2 years ago
This update is a bugfix update for the bugs present in 1.7.1 Razzmatazz found and reported by the community. Users can update from pacstall 1.5 or higher with pacstall -U
, or reinstall using the deb file.
Published by Elsie19 almost 3 years ago
This update is a bugfix update for the bugs present in 1.7 Sienna found and reported by the community. Users can update from pacstall 1.5 or higher with pacstall -U
, or reinstall using the deb file.
apt upgrade
overwriting Pacstall installed packages (#423)-T
command (#418)gives
contains more than one field (#444)apt
's database (#453)-
(#435)sed
errors when package is no longer available (#447)@Henryws @wizard-28 @D-Brox @saenai255
Published by wizard-28 almost 3 years ago
This release mostly has bug fixes and a new QoL feature for pacscript developers and debugging.
-K
flag to prevent cleanup of build directory when installing a pacscript. Useful for debugging pacscripts. (https://github.com/pacstall/pacstall/issues/327, https://github.com/pacstall/pacstall/pull/330, https://github.com/pacstall/pacstall/issues/373)cleanup()
when a hook fails (https://github.com/pacstall/pacstall/pull/325, https://github.com/pacstall/pacstall/pull/326)-
when checking for breaks
(https://github.com/pacstall/pacstall/pull/353)$gives
(https://github.com/pacstall/pacstall/issues/392)-K*
flag and fix -Il
(fish) broken behavior when auto completing (https://github.com/pacstall/pacstall/issues/371)Published by D-Brox almost 3 years ago
This update is a hotfix update for bugs present in 1.6 Celadon found and reported by the community. Users can still update from 1.5 or 1.6 with pacstall -U
or reinstall using the deb file. It's still recommended to reinstall all packages, given the features added in 1.6.
build_depends
uninstall not workingask
function backwards compatibility on deb postrm
script$breaks
issue when reinstalling some packages with pacstall.pacscript
editing through pacstall/tmp/pacstall
permissions after reboot or deletionPublished by D-Brox about 3 years ago
This update is a major update. This is (hopefully) the last release which is 100% written in bash
, as we are planning to move most of the codebase to Python for the next release!
Both Pacstall v1.5 and v1.5.1 can be updated using the -U
flag without any issues. However, it's recommended to reinstall all packages, given the features added in this release. For older versions, it's recommended to reinstall Pacstall, and reinstall all of your packages.
apt
integration (#153, #179)-deb
(269fd20)bash
and fish
expanded (#278)apt
and dpkg
(#179)-PIl
instead of -P -Il
) (#191)pacstall
with option to keep installed packages or remove all (#194)-deb
package uninstall (#145)-L
flag not showing -deb
packages (ea533e2)-deb
packages (269fd20)-h
(4ac120e)postinst
and removescript
for -deb
packages (#281)prepare
, build
, and install
, allowing to error out of pacstall
instead of continuing on (#298)optdepends
handled first now before installation (bb8ce4f)pacstall
now errors out when user is root (a2d763f)aria2c
support deprecated in favor of axel
(15ef851)-deb
packages (e74bacd)ask
function unstable behavior (d41f83f)upgrade.sh
reusing old versions of pacscripts when stored in current directory (ffda4fb)Published by Elsie19 over 3 years ago
This update is a hotfix update for bugs introduced in 1.5 Twilight. Also it is recommended to rerun the install script as opposed to running pacstall -U
for this release. Other than that, everything is the same from 1.5.
/bin/ls
errorsSTGDIR
problems in shared PCs-U
flag now will now pull the update.sh
script from github before running it. This will help for backwards compatibility in future releasesPublished by Elsie19 over 3 years ago
This update is a QoL update focusing on bug fixes and adding requested features. Also it is recommended to rerun the install script as opposed to running pacstall -U
because of big code changes that are best updated to by reinstalling.
pacstall -A https://github.com/user/repo
aria2
is installed, pacstall will download a package in multiple chunks-S
flag is overhauled with new multi-repo support-C
flag is removed in favor of the -A
flagls
errors on installchange-repo.sh
-> add-repo.sh
removescript
variable is deprecated in favor of just the function-S
flag shows which repo a package is from (following multi-repo support)-S
flag also includes repo hyperlinks if the terminal supports them (iTerm2, terminology, VTE-based, etc) _remoterepo
and _remotebranch
for use in updatingPublished by Elsie19 over 3 years ago
Pacstall v1.4 is primarily a bug fixing update.
pacstall -T <pkg>
to view a tree of the package filespacstall -Qi
will output whether a package was installed as a dependency of another or if it was expicitly installedpacstall -U
sudo
(it still uses root privileges internally)Published by Elsie19 over 3 years ago
pacscript
during install.bash
/zsh
/fish
shell tab completion. You need to run sudo pacstall -U
twice in order to get the bash
/zsh
/fish
shell completions
-S
flag uses ripgrep (if installed on the system), then grep to search for packages for-U <githubusername> <branch>
can be used to update pacstall to a specific repo andpacstall master
if no arguments are given-Qi
that didn't show dependencies and build dependenciesThe first thing pacstall will try to do is edit your script with $PACSTALL_EDITOR
, then it will try to edit with $VISUAL
, then $EDITOR
, and then fall back to sensible-editor
(the default system editor)
You can (after updating), run:
sudo pacstall -U <githubusername> <branch>
This will update your script to that repo/branch. An example would be sudo pacstall -U wizard-28 master
to update to wizard-28
's fork. If you leave out branch
, it will default to master
, and if you just run sudo pacstall -U
, it will default to pacstall
and master
Basically what the title says, this is a low severity bug, we hoping to fix it by next release
To mitigate this temporarily you can run:
pacstall -h
for more information click the this issue link #27
pacdeps=()
array was added which enables the pacscripts to add other pacscripts as dependency.pkgver()
function was added which can dynamically modify the version of your pacscripts.pacdeps=()
In your pacscripts, you can add the array pacdeps=()
, and fill it in with pacstall packages to install those as dependencies.
pkgver()
First you need to remember that sourcing a file goes line by line, so if you have a variable referencing another variable that hasn't been sourced yet, it won't work.
pkgver () {
git ls-remote <url> <branch> | cut -f1 # Returns the latest commit hash from remote
}
version="$(pkgver)"
This function is similar to the PKGBUILD function of the same name, but instead this doesn't execute after the git repo is cloned, so it enables update capabilities for -git
pacscripts, which the AUR can't.
Look here for an example
Title your PR/issues like this from now on
[<label1>] [<label2>].... <Title>
Of course you can skip [<label2>]
and others if they don't apply to your PR/issue
This will allow the github action to automatically assign the right people, and label your PR/issue.
Published by Elsie19 over 3 years ago
This release comes with loads of improvements, thanks to awesome people making PR’s and raising issues. I know some may not care, but I am truly grateful for all you have done so far.
optdepends
is now an arraybreak
can be left outfzf
for searchingreplace
variablehash
command used to forget about binary locations after removal-P
flag to do unattended installationIn your pacscript, create an array called optdepends
. It should look like this:
optdepends=(“optdependencyname: description”
“otherdepname: description”)
To add a post install script, add something like this to your pacscript:
postinst() {
your code here
}
To use a removal script (not to be confused with removing a package, removalscripts are used to clean up, if you choose), add these to your script:
removalscript=“yes”
<rest of variables>
removalscript() {
removal script here
}
Run pacstall -S pkg
to get a fuzzy search of package names
You can accept the defaults when installing a package (pretty sane defaults), by running this:
sudo pacstall -P -I pkg
or sudo pacstall -P -R pkg
. Anything that asks for input will be run with the default answer.
In the file /usr/share/pacstall/repo/pacstallrepo.txt
, use this instead of username/repo
:
https://raw.githubusercontent.com/Henryws/pacstall-programs/master
Package scripts that successfully install will be put in /var/cache/pacstall/pkgname/version/pkgname.pacscript