Subject: [PATCH v2 0/8] Add support for the RPM format to "guix pack"

From: Maxim Cournoyer <[email-masked]>
Date: Fri, 17 Feb 2023 02:49:29 +0100

Hello,

I've addressed most of Ludovic's comments in this v2 rework (thanks!).  Below
is the original cover letter.

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
engineering!

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

Thanks!

Changes in v2:
- New commit
- Use let-keywords instead of custom keyword-ref
- Better make use of the new indentation rule
- Use let-keywords instead of custom keyword-ref
- Adjust commentary block in (guix rpm)
- Adjust long define indentation in (guix scripts pack)
- Separate guix pack / rpm --install example blocks
- New commit
- New commit

Maxim Cournoyer (8):
  .dir-locals: Add let-keywords indentation rules.
  pack: Use let-keywords instead of keyword-ref.
  gexp: computed-file: Honor %guile-for-build.
  pack: Extract populate-profile-root from
    self-contained-tarball/builder.
  tests: pack: Fix indentation.
  pack: Add RPM format.
  etc: Add a news entry snippet.
  news: Add entry for the new 'rpm' guix pack format.

 .dir-locals.el                               |   3 +
 Makefile.am                                  |   2 +
 doc/guix.texi                                |  48 +-
 etc/news.scm                                 |  17 +-
 etc/snippets/yas/scheme-mode/guix-news-entry |   9 +
 guix/gexp.scm                                |   6 +-
 guix/rpm.scm                                 | 623 +++++++++++++++++++
 guix/scripts/pack.scm                        | 555 ++++++++++++-----
 tests/pack.scm                               | 336 +++++-----
 tests/rpm.scm                                |  86 +++
 10 files changed, 1379 insertions(+), 306 deletions(-)
 create mode 100644 etc/snippets/yas/scheme-mode/guix-news-entry
 create mode 100644 guix/rpm.scm
 create mode 100644 tests/rpm.scm

base-commit: c1303a914c172dc80166be22389e7032c5ea5e09
-- 
2.39.1