mbox series

[bug#43614,0/2] Record and replay package transformation options

Message ID 20200925154612.28330-1-ludo@gnu.org
Headers show
Series Record and replay package transformation options | expand

Message

Ludovic Courtès Sept. 25, 2020, 3:46 p.m. UTC
Hello Guix!

This patch set is to record in a profile’s ‘manifest’ the package
transformation options that were in effect when it was created and
to replay them when upgrading.

Let’s say you do:

  guix install emacs-next --with-branch=emacs-next=master

When you later run:

  guix upgrade

the ‘--with-branch’ option will be in effect, meaning that it’ll
again pull the latest Emacs and build it.

It’s a contrived example because it relies on external resources;
preserving ‘--with-input’ & co. probably makes more sense.

The kind of options I have in mind that are particularly important
to preserve are options that parameterize packages and the
hypothetical option that wraps an installed package into a “POLA
wrapper” as was discussed recently (the wrapper spawns the actual
program in a container).

Users of ‘guix package -m’ are unaffected by all this.  After all,
they can already program whatever transformations they want in
their manifest (though it would be nice to make those
transformations more readily usable at the Scheme level!).

Thoughts?

Ludo’.

Ludovic Courtès (2):
  guix build: Record package transformations in manifest entries.
  guix package: Re-apply package transformation when upgrading.

 doc/guix.texi                 | 27 ++++++++++++
 guix/scripts/build.scm        | 80 +++++++++++++++++++++++++++--------
 guix/scripts/pack.scm         | 29 +++++++------
 guix/scripts/package.scm      | 33 ++++++++++-----
 tests/guix-package-aliases.sh |  6 +++
 tests/guix-package.sh         | 17 +++++++-
 tests/packages.scm            | 23 ++++++++++
 7 files changed, 174 insertions(+), 41 deletions(-)

Comments

Ludovic Courtès Oct. 2, 2020, 9:30 p.m. UTC | #1
Ludovic Courtès <ludo@gnu.org> skribis:

>   guix build: Record package transformations in manifest entries.
>   guix package: Re-apply package transformation when upgrading.

Pushed as 8e1907a72430aa989125b053573ef0897c480697 along with a news
entry.

Ludo’.