Subject: Re: bug#23132: Grafted system retains references to original store items

From: [email-masked] (Ludovic Courtès)
Date: Sat, 21 May 2016 01:36:50 +0200

[email-masked] (Ludovic Courtès) skribis:

> Mark H Weaver <[email-masked]> skribis:
>
>> [email-masked] (Ludovic Courtès) writes:
>
> [...]
>
>>> What does “guix build glib” produce?  Is the “bin” output of “glib”
>>> correctly grafted?
>>
>> It produces:
>>
>> /gnu/store/1my476c628x9kxa6pf2jlw8mhdlvr8xr-glib-2.46.1
>> /gnu/store/yw2yjlc1mgb4ga6m28nazxwjfh1d2p1n-glib-2.46.1-bin
>> /gnu/store/mm05frzzxa55kl062c4qp44qli00jnm4-glib-2.46.1-doc
>
> The problem we have (also with currentish master) is that the grafted
> glib refers to the non-grafted one:
>
> $ ./pre-inst-env guix build glib --no-grafts
> /gnu/store/nnbd3mbb7cyzj3f9hmm84jwmhslx8jd1-glib-2.48.0-bin
> /gnu/store/ijpqwljxn2j9nimjqnds58m2dzlcxf1g-glib-2.48.0-doc
> /gnu/store/6m4xdh1rj3np9w2fikf8wlq6lka1hmsg-glib-2.48.0
> $ ./pre-inst-env guix build glib
> /gnu/store/40s3d59ig936fnqivyps3fwjzgm6m864-glib-2.48.0-bin
> /gnu/store/fc5pcy9cj4r8plf7sxhykz3k7z03p22y-glib-2.48.0-doc
> /gnu/store/vvdqmpm5biq2x3pw4s142qpcla2ryvax-glib-2.48.0
> $ guix gc --references /gnu/store/vvdqmpm5biq2x3pw4s142qpcla2ryvax-glib-2.48.0|grep glib-
> /gnu/store/6m4xdh1rj3np9w2fikf8wlq6lka1hmsg-glib-2.48.0
> /gnu/store/vvdqmpm5biq2x3pw4s142qpcla2ryvax-glib-2.48.0
>
> It took me a while to find out where that reference came from.  Since
> ‘grep -r’ returned nothing, I resorted to ‘guix archive --export’
> searched for “6m4xdh1rj3np9w2fikf8wlq6lka1hmsg” in the result, and
> found:
>
> $ find /gnu/store/vvdqmpm5biq2x3pw4s142qpcla2ryvax-glib-2.48.0 -name \*gdb.py
> /gnu/store/vvdqmpm5biq2x3pw4s142qpcla2ryvax-glib-2.48.0/share/gdb/auto-load/gnu/store/6m4xdh1rj3np9w2fikf8wlq6lka1hmsg-glib-2.48.0/lib/libgobject-2.0.so.0.4800.0-gdb.py
> /gnu/store/vvdqmpm5biq2x3pw4s142qpcla2ryvax-glib-2.48.0/share/gdb/auto-load/gnu/store/6m4xdh1rj3np9w2fikf8wlq6lka1hmsg-glib-2.48.0/lib/libglib-2.0.so.0.4800.0-gdb.py
>
> So we need an extra pass in (guix build grafts) to rename files whose
> name appears in the mapping.

Fixed in ece6864bd04fc2f9ff86fd4ac9cb0712dd71c094.

Ludo’.