Skip to content


Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?

Latest commit


Git stats


Failed to load latest commit information.
Latest commit message
Commit time


Image of a running krack-build instance

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):


  1. GPG package signing.
  2. Automated building every user-specified X hours.
  3. Ccache compliance for faster build times and power usage.
  4. Optional zero config per-package hooks, pre/post-gitpull and pre/post-makechrootpkg, for user script execution (for patching PKGBUILDs, config files, etc.)
  5. Diffs from git pulls are saved and stored for later manual review (with krackctl list-diffs and krackctl review-diffs).
  6. Advanced logging (custom, and optionally on-by-default systemd) that saves and indexes build failures for easy diagnosis (with krackctl failed-builds).
  7. Saves last package build times for next new package build reporting (with krackctl watch-status).
  8. Lets you request package builds (with kracktl request-build ${pkgname}) and manage your pending build requests (with krackctl pending-builds and krackctl cancel-all-requests).
  9. Low overhead.
  10. 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.
  11. Krack-receive does not use its own service that listens on a port, but instead relies on rsync and ssh.

Outstanding issues

  1. No option to auto-import GPG keys for source file verification.
  2. No support for non-zstd compressed packages.
  3. No option to not use GPG package signing.
  4. No way to detect a hanging/stuck package build.

Project update goals

  1. Change krack-build to run on a systemd @.service/timer
  2. Implement a "rebuild" feature that bumps pkgrel by +1. This would have to track external pkgrel bumps until the pkgver increases.


Install krack from the AUR:



Other similar projects



Krathalan's packaging softwares







No packages published