Skip to content

Krathalan's packaging softwares for Arch

License

Notifications You must be signed in to change notification settings

krathalan/krack

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

krack

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

Features

  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 way to detect a hanging/stuck package build.

Fixed:

  • No option to not use GPG package signing.

Project update goals

  1. 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.

Installation

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

Contributing

See CONTRIBUTING.md.

Other similar projects

ABS_CD: https://github.com/bionade24/abs_cd