Subject: bug#66632: guix shell: --dry-run not applied if profile already cached

From: Simon Tournier <[email-masked]>
Date: Thu, 19 Oct 2023 10:11:44 +0200

Hi,

Using Guix 6113e05, I notice a behaviour that I do not expect.

--8<---------------cut here---------------start------------->8---
$ guix shell xterm --dry-run
The following derivation would be built:
  /gnu/store/x26rsb69l3jjxczx2ap0i3app6q8prwl-profile.drv

$ which xterm
/usr/bin/xterm

$ guix shell xterm
The following derivation will be built:
  /gnu/store/x26rsb69l3jjxczx2ap0i3app6q8prwl-profile.drv

building CA certificate bundle...
listing Emacs sub-directories...
building fonts directory...
building directory of Info manuals...
building profile with 1 package...

$ which xterm
/gnu/store/9phsgk6m6h7gy09698m5a0s42aqi9yid-profile/bin/xterm
--8<---------------cut here---------------end--------------->8---

So far, so good.

Now, even if --dry-run is provided, it enters the profile.

--8<---------------cut here---------------start------------->8---
$ which xterm
/usr/bin/xterm

$ guix shell xterm --dry-run

$ which xterm
/gnu/store/9phsgk6m6h7gy09698m5a0s42aqi9yid-profile/bin/xterm
--8<---------------cut here---------------end--------------->8---

Well, I thought maybe that’s because --rebuild-cache, but no:

--8<---------------cut here---------------start------------->8---
$ which xterm
/usr/bin/xterm

$ guix shell xterm --dry-run --rebuild-cache

$ which xterm
/gnu/store/9phsgk6m6h7gy09698m5a0s42aqi9yid-profile/bin/xterm
--8<---------------cut here---------------end--------------->8---

Well, and I thought that --rebuild-cache redoes the dance:

--8<---------------cut here---------------start------------->8---
building CA certificate bundle...
listing Emacs sub-directories...
building fonts directory...
building directory of Info manuals...
building profile with 1 package...
--8<---------------cut here---------------end--------------->8---

and not, if I do not miss something.

Cheers,
simon