GNU Guix stands out as the hackable package manager, mostly because it uses GNU Guile, a powerful high-level programming language, one of the Scheme dialects from the Lisp family.
Package definitions are also written in Scheme, which empowers Guix in some very unique ways, unlike most other package managers that use shell scripts or simple languages.
#:make-flags "..."
argument to
the list of packages. It wouldn’t be a stretch to think
Gentoo USE flags here, but this
goes even further: the changes don’t have to be thought out beforehand by the
packager, they can be programmed by the user!
The following tutorial covers all the basics around package creation with Guix. It does not assume much knowledge of the Guix system nor of the Lisp language. The reader is only expected to be familiar with the command line and to have some basic programming knowledge.