Quack, the Qualitative and Usable Aur paCKage helper. Also, it sounds like a duck. Quack Quack.
Goal of the project
This is a single file, auditable and readable (at least I tryied) AUR helper. It let you easily verify that it does nothing wrong. Since it has to gain root privileges at some times, It is very important for me that you stay able to understand what it does.
This script aims to stay only a helper. Nothing more. Thus, it will never include a parser or complex solver. You are intended to play this role and stay in command.
Requirements are listed in the
Then, just run
From the AUR Helper page on the Archlinux wiki, here are listed the different features an AUR Helper should implement and which we do:
- does not source the PKGBUILD at all by default; or, alerts the user and offers the opportunity to inspect the PKGBUILD manually before it is sourced.
- Clean build
- does not export new variables that can prevent a successful build process.
- Reliable parser
- ability to handle complex packages by using the provided metadata (RPC/.SRCINFO) instead of PKGBUILD parsing, such as
- Reliable solver
- ability to correctly solve and build complex dependency chains, such as
- Split packages
ability to correctly build and install:
- Multiple packages from the same package base, without rebuilding or reinstalling multiple times, such as
- Split packages which depend on a package from the same package base, such as
- Split packages independently, such as
- Git clone
git-clone(1)by default to retrieve build files from the AUR.
- Native pacman
when used as replacement for pacman(8) commands such as
pacman -Syu, the following are obeyed by default:
- do not separate commands, for example
pacman -Syuis not split to
pacman -S packages;
- use pacman directly instead of manual database manipulation or usage of
- Shell completion
tab completion is available for the listed shells.
|Clean build||PARTIAL||Quack is just a wrapper around
|Reliable parser||YES||We use AUR RPC and package base name to determine the repo name, then we just call
|Reliable solver||NO||For now, we don't want to follow this path.|
|Dependencies||TBD||General dependencies are not checked, nor resolved. See bellow in split packages the only case we respect. We will try in a near future to purpose some way of managing simple dependency cases|
|Split packages||PARTIAL||As we use
_ _ __(.)> __(.)< Quack Quack ~~\___)~~~~~\___)~~~~~~~~~~~~~~~~~~