krack
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):
Features
- 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.
Outstanding issues
- No option to auto-import GPG keys for source file verification.
- No support for non-zstd compressed packages.
- No option to not use GPG package signing.
- No way to detect a hanging/stuck package build.
Project update goals
- Change krack-build to run on a systemd @.service/timer
- Implement a "rebuild" feature that bumps pkgrel by +1. This would have to track external pkgrel bumps until the pkgver increases.
Installation
Install krack
from the AUR: https://aur.archlinux.org/packages/krack/
Contributing
See CONTRIBUTING.md
.