GNU bug report logs - #75510
Building grub-image.png.drv fails with rsvg

Previous Next

Package: guix;

Reported by: Roman Scherer <roman.scherer <at> burningswell.com>

Date: Sun, 12 Jan 2025 10:00:02 UTC

Severity: normal

Done: Efraim Flashner <efraim <at> flashner.co.il>

Bug is archived. No further changes may be made.

Full log


Message #35 received at 75510 <at> debbugs.gnu.org (full text, mbox):

From: vicvbcun <guix <at> ikherbers.com>
To: Roman Scherer <roman.scherer <at> burningswell.com>
Cc: Leo Famulari <leo <at> famulari.name>, 75510 <at> debbugs.gnu.org,
 Efraim Flashner <efraim <at> flashner.co.il>
Subject: Re: bug#75510: Building grub-image.png.drv fails with rsvg
Date: Wed, 22 Jan 2025 00:52:25 +0100
Hi,

below are my current findings.

As of commit
    87045f0982 (gnu: paritwine: Update to 0.2.1., 2025-01-17)
guile-rsvg depends on a version of guile-cairo different from the one I 
get by simply building guile-cairo:

    $ ./pre-inst-env guix build guile-cairo
    ⇒ /gnu/store/k4kglplg98098y78flnw0f9wjyyc9zk2-guile-cairo-1.11.2

whereas

    $ guix gc --references "$(./pre-inst-env guix build guile-rsvg)" | grep guile-cairo
    ⇒ /gnu/store/lz8cv73yzzrbwrhafzadixnwgmspz2cg-guile-cairo-1.11.2

(gnu build svg) loads both (rsvg) and (cairo) which causes two different 
libguile-cairo.so's to be loaded (interestingly enough the order 
matters: loading (cairo) first would hide the issue):
--8<---------------cut here---------------start------------->8---
./pre-inst-env guix shell --no-cwd -C guile guile-cairo guile-rsvg -- \
    guile -s /dev/stdin <<EOF | grep libguile-cairo

(begin
 (use-modules (ice-9 textual-ports)
              ;; order matters!
              (rsvg)
	            (cairo))

(display (call-with-input-file "/proc/self/maps" get-string-all)))
EOF
--8<---------------cut here---------------end--------------->8---
shows two different libguile-cairo.so's.  The only difference between 
the two guile-cairo derivation is that they graft cairo to different 
derivations, which in turn differ only in grafting fontconfig-minimal to 
different versions which finally only graft glibc and expat in different 
order.

All this confirms the hypothesis Mark expressed in [0].

My guess is that the change to rust-ring somehow changes how it 
interacts with grafting.  Perhaps it is added / not added to some 
hashtable, causing iteration order to change?

0: https://issues.guix.gnu.org/47115#23




This bug report was last modified 113 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.