Subject: unexpected download after gc

From: zimoun <[email-masked]>
Date: Fri, 18 Mar 2022 14:50:01 +0100

Hi,

Considering this with revision a03936a:

    guix gc
    guix install python-ipython -p tools
    guix gc
    guix install python-ipython -p tools

I am surprised that:

 1. the second GC collects things
 2. the second install downloads things

especially by this line:

python-ipython-7.27.0  892KiB  4.6MiB/s 00:00 [##################] 100.0%

Well, it is because of grafts.  The profile contains the grafted
version and the installation expect first the non-grafted for computing
the graft.  For instance:

--8<---------------cut here---------------start------------->8---
$ guix gc --list-dead | grep ipython
finding garbage collector roots...
determining live/dead paths...
/gnu/store/xmw4vxabnkm7vwa0ywfcqcmknbnia0c3-python-ipython-7.27.0

guix build python-ipython --no-grafts
/gnu/store/xmw4vxabnkm7vwa0ywfcqcmknbnia0c3-python-ipython-7.27.0
--8<---------------cut here---------------end--------------->8---

When something is grafted, is it possible to consider the non-grafted as
a "derivation", i.e., control the GC with 'gc-keep-derivations'.

Or the grafted could keep a reference to the non-grafted?

Well, I was expecting that this composition:

    guix gc && guix install

was "idempotent" in a way. :-) And to me, the fact that it is not is
somehow a bug.  Maybe, it is already well-known and not considered as
bug.

Cheers,
simon