Grafting of multiple-output dependencies is mishandled

  • Done
  • quality assurance status badge
Details
2 participants
  • Ludovic Courtès
  • Mark H Weaver
Owner
unassigned
Submitted by
Ludovic Courtès
Severity
serious
L
L
Ludovic Courtès wrote on 16 Oct 2016 22:03
(address . bug-guix@gnu.org)
87oa2kf4eb.fsf@gnu.org
Mark reported on IRC that gnome-session, as of v0.11.0-1639-g34f9582,
refers to the grafted “out” of glib, but at the same time refers to the
*ungrafted* “bin” output of glib:

Toggle snippet (15 lines)
$ ./pre-inst-env guix build gnome-session
/gnu/store/rchskrbc42yjlb85lq8zigpvynwc2zz7-gnome-session-3.20.2
$ guix gc -R /gnu/store/rchskrbc42yjlb85lq8zigpvynwc2zz7-gnome-session-3.20.2|grep glib-2
/gnu/store/l1s4cw9g58hmcpd2qgbckfl228143qzx-glib-2.48.0
/gnu/store/c4rjjznraqnw7wk7zwr8ndmq7bdmj51q-glib-2.48.0-bin
$ ./pre-inst-env guix build glib
/gnu/store/ya5d1r6bvph3m5nisjywrnkvffpdrjfn-glib-2.48.0-bin
/gnu/store/jav2d6c39k3amv4k1670845li7284a6q-glib-2.48.0-doc
/gnu/store/77f9q6kvgrrwhqbzxzc10bwdwq6kd690-glib-2.48.0
$ ./pre-inst-env guix build glib --no-grafts
/gnu/store/c4rjjznraqnw7wk7zwr8ndmq7bdmj51q-glib-2.48.0-bin
/gnu/store/ib12bfrx83aawhabpp0rijgmm61gi0wg-glib-2.48.0-doc
/gnu/store/l1s4cw9g58hmcpd2qgbckfl228143qzx-glib-2.48.0

(This was initially reported at
to be unrelated.)

Ludo’.
L
L
Ludovic Courtès wrote on 17 Oct 2016 22:34
control message for bug #24712
(address . control@debbugs.gnu.org)
87oa2ik93w.fsf@gnu.org
severity 24712 serious
L
L
Ludovic Courtès wrote on 18 Oct 2016 00:03
Re: bug#24712: Grafting of multiple-output dependencies is mishandled
(address . 24712@debbugs.gnu.org)(name . Mark H Weaver)(address . mhw@netris.org)
87k2d6k50g.fsf@gnu.org
ludo@gnu.org (Ludovic Courtès) skribis:

Toggle quote (18 lines)
> Mark reported on IRC that gnome-session, as of v0.11.0-1639-g34f9582,
> refers to the grafted “out” of glib, but at the same time refers to the
> *ungrafted* “bin” output of glib:
>
> $ ./pre-inst-env guix build gnome-session
> /gnu/store/rchskrbc42yjlb85lq8zigpvynwc2zz7-gnome-session-3.20.2
> $ guix gc -R /gnu/store/rchskrbc42yjlb85lq8zigpvynwc2zz7-gnome-session-3.20.2|grep glib-2
> /gnu/store/l1s4cw9g58hmcpd2qgbckfl228143qzx-glib-2.48.0
> /gnu/store/c4rjjznraqnw7wk7zwr8ndmq7bdmj51q-glib-2.48.0-bin
> $ ./pre-inst-env guix build glib
> /gnu/store/ya5d1r6bvph3m5nisjywrnkvffpdrjfn-glib-2.48.0-bin
> /gnu/store/jav2d6c39k3amv4k1670845li7284a6q-glib-2.48.0-doc
> /gnu/store/77f9q6kvgrrwhqbzxzc10bwdwq6kd690-glib-2.48.0
> $ ./pre-inst-env guix build glib --no-grafts
> /gnu/store/c4rjjznraqnw7wk7zwr8ndmq7bdmj51q-glib-2.48.0-bin
> /gnu/store/ib12bfrx83aawhabpp0rijgmm61gi0wg-glib-2.48.0-doc
> /gnu/store/l1s4cw9g58hmcpd2qgbckfl228143qzx-glib-2.48.0

I believe this is fixed by 3d47aa81ba4c19b45ce9a9ff0ece0252777ea8ed.

Mark, could you check with the Bash replacement you wanted to add?

Thanks,
Ludo’.
M
M
Mark H Weaver wrote on 18 Oct 2016 05:22
(name . Ludovic Courtès)(address . ludo@gnu.org)(address . 24712@debbugs.gnu.org)
87oa2iqr1u.fsf@netris.org
ludo@gnu.org (Ludovic Courtès) writes:

Toggle quote (22 lines)
> ludo@gnu.org (Ludovic Courtès) skribis:
>
>> Mark reported on IRC that gnome-session, as of v0.11.0-1639-g34f9582,
>> refers to the grafted “out” of glib, but at the same time refers to the
>> *ungrafted* “bin” output of glib:
>>
>> $ ./pre-inst-env guix build gnome-session
>> /gnu/store/rchskrbc42yjlb85lq8zigpvynwc2zz7-gnome-session-3.20.2
>> $ guix gc -R /gnu/store/rchskrbc42yjlb85lq8zigpvynwc2zz7-gnome-session-3.20.2|grep glib-2
>> /gnu/store/l1s4cw9g58hmcpd2qgbckfl228143qzx-glib-2.48.0
>> /gnu/store/c4rjjznraqnw7wk7zwr8ndmq7bdmj51q-glib-2.48.0-bin
>> $ ./pre-inst-env guix build glib
>> /gnu/store/ya5d1r6bvph3m5nisjywrnkvffpdrjfn-glib-2.48.0-bin
>> /gnu/store/jav2d6c39k3amv4k1670845li7284a6q-glib-2.48.0-doc
>> /gnu/store/77f9q6kvgrrwhqbzxzc10bwdwq6kd690-glib-2.48.0
>> $ ./pre-inst-env guix build glib --no-grafts
>> /gnu/store/c4rjjznraqnw7wk7zwr8ndmq7bdmj51q-glib-2.48.0-bin
>> /gnu/store/ib12bfrx83aawhabpp0rijgmm61gi0wg-glib-2.48.0-doc
>> /gnu/store/l1s4cw9g58hmcpd2qgbckfl228143qzx-glib-2.48.0
>
> I believe this is fixed by 3d47aa81ba4c19b45ce9a9ff0ece0252777ea8ed.

Indeed, this seems to have improved things, thanks!

Unfortunately:

Toggle quote (2 lines)
> Mark, could you check with the Bash replacement you wanted to add?

I tried it, and now *every* derivation fails, even simple things like
imported-module compiles, because 'guile-final' crashes while booting
within the build container. Outside of the build container, it works
fine.

To make a long story short, it turns out that #24703 is the cause. My
'guile-final' is grafted, using a 'glibc-final' grafted to use the new
Bash. The only problem is, 'glibc-final' is still trying to load its
'gconv' modules from the ungrafted 'glibc-final'. Thanks to 3d47aa81,
there are no longer any *visible* references to the ungrafted
'glibc-final', so it's no longer being included in the build
environment.

Mark
L
L
Ludovic Courtès wrote on 18 Oct 2016 10:30
(name . Mark H Weaver)(address . mhw@netris.org)(address . 24712@debbugs.gnu.org)
87h98aoy8z.fsf@gnu.org
Mark H Weaver <mhw@netris.org> skribis:

Toggle quote (8 lines)
> To make a long story short, it turns out that #24703 is the cause. My
> 'guile-final' is grafted, using a 'glibc-final' grafted to use the new
> Bash. The only problem is, 'glibc-final' is still trying to load its
> 'gconv' modules from the ungrafted 'glibc-final'. Thanks to 3d47aa81,
> there are no longer any *visible* references to the ungrafted
> 'glibc-final', so it's no longer being included in the build
> environment.

Ouch, OK. (At least 3d47aa81 has the intended effect…)

Ludo’.
L
L
Ludovic Courtès wrote on 18 Oct 2016 15:57
control message for bug #24712
(address . control@debbugs.gnu.org)
87wph5kbe4.fsf@gnu.org
close 24712 0.11.1
?