This series adds support for the RPM format to "guix pack", so that one can
generate an RPM archive via e.g. "guix pack -f rpm hello", and install it on
their favorite RPM-based GNU/Linux distribution. With the exception of the
payload compression, the generation of the archive is fully handled in Scheme,
which ended up being tricky, with the documentation about the RPM binary
format being scarce. Most of the problems encountered were figured out
stepping an 'rpm' command invocation in GDB, which felt a bit like reverse
Anyway, the end result appears to work well and has few dependencies (compared
to using 'rpmbuild', as most other projects do), so I think it was worth the
Maxim Cournoyer (5):
pack: Extract keyword-ref procedure from debian-archive.
gexp: computed-file: Honor %guile-for-build.
pack: Extract populate-profile-root from
tests: pack: Fix indentation.
pack: Add RPM format.
Makefile.am | 2 +
doc/guix.texi | 45 +++-
guix/gexp.scm | 3 +-
guix/rpm.scm | 577 ++++++++++++++++++++++++++++++++++++++++++
guix/scripts/pack.scm | 478 +++++++++++++++++++++++++---------
tests/pack.scm | 331 ++++++++++++++----------
tests/rpm.scm | 86 +++++++
7 files changed, 1258 insertions(+), 264 deletions(-)
create mode 100644 guix/rpm.scm
create mode 100644 tests/rpm.scm