An open API service indexing awesome lists of open source software.

https://github.com/milouse/quack

Quack, the Qualitative and Usable Aur paCKage helper (Mirror)
https://github.com/milouse/quack

archlinux aur aur-helper

Last synced: 6 months ago
JSON representation

Quack, the Qualitative and Usable Aur paCKage helper (Mirror)

Awesome Lists containing this project

README

        

#+title: README
#+author: Étienne Deparis

QuackAur, the Qualitative and Usable pACKage helper for AUR. Also, it sounds
like a duck. Quack Quack.

* Goal of the project

This is an auditable and readable (at least I tryied) AUR helper. It lets 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.

* Usage

See ~quackaur -h~

** Features

From the [[https://wiki.archlinux.org/index.php/AUR_helpers][AUR Helper page]] on the Archlinux wiki, here are listed the
different features an AUR Helper should implement and which we do:

#+begin_quote
- Secure :: 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 ~aws-cli-git~.
- Reliable solver :: ability to correctly solve and build complex
dependency chains, such as ~ros-lunar-desktop~.
- Split packages :: ability to correctly build and install:
+ Multiple packages from the same package base, without rebuilding or
reinstalling multiple times, such as ~clion~;
+ Split packages which depend on a package from the same package base,
such as ~libc++~ and ~libc++abi~;
+ Split packages independently, such as ~python-pyalsaaudio~ and
~python2-pyalsaaudio~.
- Git clone :: uses ~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 -Syu~ is not split to
~pacman -Sy~ and ~pacman -S packages~;
+ use pacman directly instead of manual database manipulation or usage
of ~libalpm(3)~.
- Shell completion :: tab completion is available for the listed shells.
#+end_quote

| Feature | Support | Comment |
|------------------+---------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| Secure | YES | |
| Clean build | YES | By default QuackAur run in a docker container. It is also able to run inside a chroot with ~makechrootpkg~. |
| Reliable parser | YES | We use AUR RPC and package base name to determine the repo name, then we just call ~makepkg~ |
| Reliable solver | PARTIAL | See below
| Dependencies | PARTIAL | Most cases are supported. Complex ones depends on pacman itself, thus complex AUR cases are not supported. |
| Split packages | PARTIAL | As we use ~makepkg~ all builds are currently done. However we offer a way to only install the package of your choice, respecting dependencies from the same package base if they exists. |
| Native pacman | YES | QuackAur cannot be used as pacman replacement and there is no plan to support such a feature. Also, it directly calls ~pacman~ for package related operations. |
| Shell completion | NO | |

* Contributing

See [[./CONTRIBUTING.org]]

#+begin_src
_ _
__(.)> __(.)< Quack Quack
~~\___)~~~~~\___)~~~~~~~~~~~~~~~~~~
#+end_src