Krathalan's packaging softwares. You can think of krack
as an automated building system for the ABS/AUR, split between two machines: one that builds and sends packages, and one that receives and hosts them.
The specific use case for krack
is having a spare PC at home that has enough power to compile some programs. You can set up krack
to build and upload your desired packages on this PC, and then receive them at a remote PC of your choosing that hosts a pacman repository, such as a low-power, inexpensive VPS. Then all your Arch devices can pull in package updates from that repository, without having to build them manually on any device or pay exorbiant fees for a powerful VPS.
All of the documentation comes in the form of man pages. Before using krack
, you should read them in this order (click to read on Github):
- GPG package signing.
- Automated building every user-specified X hours.
- Ccache compliance for faster build times and power usage.
- Optional zero config per-package hooks, pre/post-gitpull and pre/post-makechrootpkg, for user script execution (for patching PKGBUILDs, config files, etc.)
- Diffs from
git pull
s are saved and stored for later manual review (withkrackctl list-diffs
andkrackctl review-diffs
). - Advanced logging (custom, and optionally on-by-default systemd) that saves and indexes build failures for easy diagnosis (with
krackctl failed-builds
). - Saves last package build times for next new package build reporting (with
krackctl watch-status
). - Lets you request package builds (with
kracktl request-build ${pkgname}
) and manage your pending build requests (withkrackctl pending-builds
andkrackctl cancel-all-requests
). - Low overhead.
- Since all krack executables are run as a systemd system service, they restart or persist automatically on reboot and have a number of other advantages, such as being able to execute custom code before/after a service or limit the amount of system resources the builder service is allowed to use.
- Krack-receive does not use its own service that listens on a port, but instead relies on rsync and ssh.
- No option to auto-import GPG keys for source file verification.
- No support for non-zstd compressed packages.
- No way to detect a hanging/stuck package build.
Fixed:
- No option to not use GPG package signing.
- Implement a "rebuild" feature that bumps pkgrel by +1. This would have to track external pkgrel bumps until the pkgver increases.
Done:
- Change krack-build to run on a systemd @.service/timer.
Install krack
from the AUR: https://aur.archlinux.org/packages/krack/
krack-git
is also available in my personal pkgbuilds repo: https://github.com/krathalan/pkgbuilds
See CONTRIBUTING.md
.