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.

To add a comment to this bug, you must first unarchive it, by sending
a message to control AT debbugs.gnu.org, with unarchive 75510 in the body.
You can then email your comments to 75510 AT debbugs.gnu.org in the normal way.

Toggle the display of automated, internal messages from the tracker.

View this report as an mbox folder, status mbox, maintainer mbox


Report forwarded to bug-guix <at> gnu.org:
bug#75510; Package guix. (Sun, 12 Jan 2025 10:00:02 GMT) Full text and rfc822 format available.

Acknowledgement sent to Roman Scherer <roman.scherer <at> burningswell.com>:
New bug report received and forwarded. Copy sent to bug-guix <at> gnu.org. (Sun, 12 Jan 2025 10:00:03 GMT) Full text and rfc822 format available.

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

From: Roman Scherer <roman.scherer <at> burningswell.com>
To: bug-guix <at> gnu.org
Subject: Building grub-image.png.drv fails with rsvg
Date: Sun, 12 Jan 2025 10:58:54 +0100
[Message part 1 (text/plain, inline)]
Hello Guix,

I can't reconfigure my (aarch64) system anymore. When building
/gnu/store/bpda8gfvxm6iv3mc6n8sf3ydxc5b6zi9-grub-image.png.drv I see the following backtrace:

```
building /gnu/store/bpda8gfvxm6iv3mc6n8sf3ydxc5b6zi9-grub-image.png.drv...
Backtrace:
           2 (primitive-load "/gnu/store/3rcg4ann6607iqsh1aj84cqdnw8?")
In gnu/build/svg.scm:
     53:6  1 (svg->png "/gnu/store/41841pid2mmsvar44vy9xafsrf3cyb9i?" ?)
In unknown file:
           0 (rsvg-handle-render-cairo #<rsvg-handle fffff770ae60> #)

ERROR: In procedure rsvg-handle-render-cairo:
Wrong type (expecting finalized smob): #<cairo-context fffff770ad90>
builder for `/gnu/store/bpda8gfvxm6iv3mc6n8sf3ydxc5b6zi9-grub-image.png.drv' failed with exit code 1
build of /gnu/store/bpda8gfvxm6iv3mc6n8sf3ydxc5b6zi9-grub-image.png.drv failed
View build log at '/var/log/guix/drvs/bp/da8gfvxm6iv3mc6n8sf3ydxc5b6zi9-grub-image.png.drv.gz'.
applying 4 grafts for asahi-scripts-20240623 ...
cannot build derivation `/gnu/store/mnavmxm513zwy16m1lyz2yppdgjbam3l-grub.cfg.drv': 1 dependencies couldn't be built
guix system: error: build of `/gnu/store/mnavmxm513zwy16m1lyz2yppdgjbam3l-grub.cfg.drv' failed
```

Any ideas how to fix this?
[signature.asc (application/pgp-signature, inline)]

Information forwarded to bug-guix <at> gnu.org:
bug#75510; Package guix. (Sun, 12 Jan 2025 20:31:01 GMT) Full text and rfc822 format available.

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

From: Leo Famulari <leo <at> famulari.name>
To: Roman Scherer <roman.scherer <at> burningswell.com>
Cc: 75510 <at> debbugs.gnu.org
Subject: Re: bug#75510: Building grub-image.png.drv fails with rsvg
Date: Sun, 12 Jan 2025 15:30:07 -0500
On Sun, Jan 12, 2025 at 10:58:54AM +0100, Roman Scherer wrote:
> 
> I can't reconfigure my (aarch64) system anymore. When building
> /gnu/store/bpda8gfvxm6iv3mc6n8sf3ydxc5b6zi9-grub-image.png.drv I see the following backtrace:

[...]

> View build log at '/var/log/guix/drvs/bp/da8gfvxm6iv3mc6n8sf3ydxc5b6zi9-grub-image.png.drv.gz'.

Can you share this log?




Information forwarded to bug-guix <at> gnu.org:
bug#75510; Package guix. (Sun, 12 Jan 2025 22:13:02 GMT) Full text and rfc822 format available.

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

From: Roman Scherer <roman.scherer <at> burningswell.com>
To: Leo Famulari <leo <at> famulari.name>
Cc: 75510 <at> debbugs.gnu.org
Subject: Re: bug#75510: Building grub-image.png.drv fails with rsvg
Date: Sun, 12 Jan 2025 23:12:37 +0100
[Message part 1 (text/plain, inline)]
Leo Famulari <leo <at> famulari.name> writes:

Hi Leo,

the log only contains the backtrace from my previous mail, it is this:

-----------------------------------------------------------------------------
Backtrace:
           2 (primitive-load "/gnu/store/3rcg4ann6607iqsh1aj84cqdnw8?")
In gnu/build/svg.scm:
     53:6  1 (svg->png "/gnu/store/41841pid2mmsvar44vy9xafsrf3cyb9i?" ?)
In unknown file:
           0 (rsvg-handle-render-cairo #<rsvg-handle fffff770ae60> #)

ERROR: In procedure rsvg-handle-render-cairo:
Wrong type (expecting finalized smob): #<cairo-context fffff770ad90>
-----------------------------------------------------------------------------

Roman

> On Sun, Jan 12, 2025 at 10:58:54AM +0100, Roman Scherer wrote:
>>
>> I can't reconfigure my (aarch64) system anymore. When building
>> /gnu/store/bpda8gfvxm6iv3mc6n8sf3ydxc5b6zi9-grub-image.png.drv I see the following backtrace:
>
> [...]
>
>> View build log at '/var/log/guix/drvs/bp/da8gfvxm6iv3mc6n8sf3ydxc5b6zi9-grub-image.png.drv.gz'.
>
> Can you share this log?
[signature.asc (application/pgp-signature, inline)]

Information forwarded to bug-guix <at> gnu.org:
bug#75510; Package guix. (Mon, 13 Jan 2025 03:21:02 GMT) Full text and rfc822 format available.

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

From: Leo Famulari <leo <at> famulari.name>
To: Roman Scherer <roman.scherer <at> burningswell.com>
Cc: 75510 <at> debbugs.gnu.org
Subject: Re: bug#75510: Building grub-image.png.drv fails with rsvg
Date: Sun, 12 Jan 2025 22:20:11 -0500
On Sun, Jan 12, 2025 at 03:30:07PM -0500, Leo Famulari wrote:
> On Sun, Jan 12, 2025 at 10:58:54AM +0100, Roman Scherer wrote:
> > 
> > I can't reconfigure my (aarch64) system anymore. When building
> > /gnu/store/bpda8gfvxm6iv3mc6n8sf3ydxc5b6zi9-grub-image.png.drv I see the following backtrace:
> 
> [...]
> 
> > View build log at '/var/log/guix/drvs/bp/da8gfvxm6iv3mc6n8sf3ydxc5b6zi9-grub-image.png.drv.gz'.
> 
> Can you share this log?

Okay, thanks.

Also, from the environment where you try to reconfigure, can you also
share the results of `guix describe`?

What I mean by that is, for example, if you log in to the root account
to reconfigure, run `guix describe` from there.

Another example: if you do `sudo -i guix system reconfigure [...]`, run
`sudo -i guix describe`.

Does that make sense?




Information forwarded to bug-guix <at> gnu.org:
bug#75510; Package guix. (Mon, 13 Jan 2025 09:14:02 GMT) Full text and rfc822 format available.

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

From: Roman Scherer <roman.scherer <at> burningswell.com>
To: Leo Famulari <leo <at> famulari.name>
Cc: 75510 <at> debbugs.gnu.org
Subject: Re: bug#75510: Building grub-image.png.drv fails with rsvg
Date: Mon, 13 Jan 2025 10:12:51 +0100
[Message part 1 (text/plain, inline)]
Hi Leo,

here is the `guix desribe` run as my normal user account.

```
[roman <at> m1 guix-home]$ guix describe
Generation 305	Jan 12 2025 09:17:24	(current)
  asahi 2a6f8b5
    repository URL: https://github.com/asahi-guix/channel
    branch: main
    commit: 2a6f8b59d97a3451639f128ff1c53d9009897e45
  guix 5d6c876
    repository URL: https://git.savannah.gnu.org/git/guix.git
    branch: master
    commit: 5d6c8767f67885bc9b2c8f18ab1f667d0065346b
  nonguix 565d287
    repository URL: https://gitlab.com/nonguix/nonguix
    branch: master
    commit: 565d287b7502ef9435b2fba38622d0a8f458677b
  r0man-guix 9bb5571
    repository URL: https://github.com/r0man/guix-channel
    branch: main
    commit: 9bb55710a8dc61a23c6cc4e8d2bcdc9503008492
```

As this user I usually run the following command to reconfigure my
system.

```
sudo guix system reconfigure -L modules modules/r0man/guix/system/m1.scm
-v 5
```

I don't use the -i flag when reconfiguring. Is that problematic?

So here's the guix describe I usually get when I'm reconfiguring my
system:

[roman <at> m1 guix-home]$ sudo guix describe
  asahi 2a6f8b5
    repository URL: https://github.com/asahi-guix/channel
    branch: main
    commit: 2a6f8b59d97a3451639f128ff1c53d9009897e45
  guix 5d6c876
    repository URL: https://git.savannah.gnu.org/git/guix.git
    branch: master
    commit: 5d6c8767f67885bc9b2c8f18ab1f667d0065346b
  nonguix 565d287
    repository URL: https://gitlab.com/nonguix/nonguix
    branch: master
    commit: 565d287b7502ef9435b2fba38622d0a8f458677b
  r0man-guix 9bb5571
    repository URL: https://github.com/r0man/guix-channel
    branch: main
    commit: 9bb55710a8dc61a23c6cc4e8d2bcdc9503008492

And this is the "guix describe" with the -i flag:

[roman <at> m1 guix-home]$ sudo -i guix describe
  guix 121e96d
    repository URL: https://git.savannah.gnu.org/git/guix.git
    branch: master
    commit: 121e96dca273ab407df11725da0026ee34abdf79

Reconfiguring with the -i flag does not work, because I'm missing some
modules from the channels that aren't listed there.

I'm also linking my config, just in case:

https://github.com/r0man/guix-home/blob/main/modules/r0man/guix/system/m1.scm

Thanks for your help, Roman.

Leo Famulari <leo <at> famulari.name> writes:

> On Sun, Jan 12, 2025 at 03:30:07PM -0500, Leo Famulari wrote:
>> On Sun, Jan 12, 2025 at 10:58:54AM +0100, Roman Scherer wrote:
>> >
>> > I can't reconfigure my (aarch64) system anymore. When building
>> > /gnu/store/bpda8gfvxm6iv3mc6n8sf3ydxc5b6zi9-grub-image.png.drv I see the following backtrace:
>>
>> [...]
>>
>> > View build log at '/var/log/guix/drvs/bp/da8gfvxm6iv3mc6n8sf3ydxc5b6zi9-grub-image.png.drv.gz'.
>>
>> Can you share this log?
>
> Okay, thanks.
>
> Also, from the environment where you try to reconfigure, can you also
> share the results of `guix describe`?
>
> What I mean by that is, for example, if you log in to the root account
> to reconfigure, run `guix describe` from there.
>
> Another example: if you do `sudo -i guix system reconfigure [...]`, run
> `sudo -i guix describe`.
>
> Does that make sense?
[signature.asc (application/pgp-signature, inline)]

Information forwarded to bug-guix <at> gnu.org:
bug#75510; Package guix. (Thu, 16 Jan 2025 17:40:01 GMT) Full text and rfc822 format available.

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

From: Roman Scherer <roman.scherer <at> burningswell.com>
To: Leo Famulari <leo <at> famulari.name>
Cc: 75510 <at> debbugs.gnu.org
Subject: Re: bug#75510: Building grub-image.png.drv fails with rsvg
Date: Thu, 16 Jan 2025 18:39:25 +0100
[Message part 1 (text/plain, inline)]
Roman Scherer <roman.scherer <at> burningswell.com> writes:

So, it looks like this issue might be related to:

- https://issues.guix.gnu.org/47853
- https://issues.guix.gnu.org/47115

I reconfigured my system now with --no-grafts, and this time it worked.

> <#secure method=pgpmime mode=sign>
>
> Hi Leo,
>
> here is the `guix desribe` run as my normal user account.
>
> ```
> [roman <at> m1 guix-home]$ guix describe
> Generation 305	Jan 12 2025 09:17:24	(current)
>   asahi 2a6f8b5
>     repository URL: https://github.com/asahi-guix/channel
>     branch: main
>     commit: 2a6f8b59d97a3451639f128ff1c53d9009897e45
>   guix 5d6c876
>     repository URL: https://git.savannah.gnu.org/git/guix.git
>     branch: master
>     commit: 5d6c8767f67885bc9b2c8f18ab1f667d0065346b
>   nonguix 565d287
>     repository URL: https://gitlab.com/nonguix/nonguix
>     branch: master
>     commit: 565d287b7502ef9435b2fba38622d0a8f458677b
>   r0man-guix 9bb5571
>     repository URL: https://github.com/r0man/guix-channel
>     branch: main
>     commit: 9bb55710a8dc61a23c6cc4e8d2bcdc9503008492
> ```
>
> As this user I usually run the following command to reconfigure my
> system.
>
> ```
> sudo guix system reconfigure -L modules modules/r0man/guix/system/m1.scm
> -v 5
> ```
>
> I don't use the -i flag when reconfiguring. Is that problematic?
>
> So here's the guix describe I usually get when I'm reconfiguring my
> system:
>
> [roman <at> m1 guix-home]$ sudo guix describe
>   asahi 2a6f8b5
>     repository URL: https://github.com/asahi-guix/channel
>     branch: main
>     commit: 2a6f8b59d97a3451639f128ff1c53d9009897e45
>   guix 5d6c876
>     repository URL: https://git.savannah.gnu.org/git/guix.git
>     branch: master
>     commit: 5d6c8767f67885bc9b2c8f18ab1f667d0065346b
>   nonguix 565d287
>     repository URL: https://gitlab.com/nonguix/nonguix
>     branch: master
>     commit: 565d287b7502ef9435b2fba38622d0a8f458677b
>   r0man-guix 9bb5571
>     repository URL: https://github.com/r0man/guix-channel
>     branch: main
>     commit: 9bb55710a8dc61a23c6cc4e8d2bcdc9503008492
>
> And this is the "guix describe" with the -i flag:
>
> [roman <at> m1 guix-home]$ sudo -i guix describe
>   guix 121e96d
>     repository URL: https://git.savannah.gnu.org/git/guix.git
>     branch: master
>     commit: 121e96dca273ab407df11725da0026ee34abdf79
>
> Reconfiguring with the -i flag does not work, because I'm missing some
> modules from the channels that aren't listed there.
>
> I'm also linking my config, just in case:
>
> https://github.com/r0man/guix-home/blob/main/modules/r0man/guix/system/m1.scm
>
> Thanks for your help, Roman.
>
> Leo Famulari <leo <at> famulari.name> writes:
>
>> On Sun, Jan 12, 2025 at 03:30:07PM -0500, Leo Famulari wrote:
>>> On Sun, Jan 12, 2025 at 10:58:54AM +0100, Roman Scherer wrote:
>>> >
>>> > I can't reconfigure my (aarch64) system anymore. When building
>>> > /gnu/store/bpda8gfvxm6iv3mc6n8sf3ydxc5b6zi9-grub-image.png.drv I see the following backtrace:
>>>
>>> [...]
>>>
>>> > View build log at '/var/log/guix/drvs/bp/da8gfvxm6iv3mc6n8sf3ydxc5b6zi9-grub-image.png.drv.gz'.
>>>
>>> Can you share this log?
>>
>> Okay, thanks.
>>
>> Also, from the environment where you try to reconfigure, can you also
>> share the results of `guix describe`?
>>
>> What I mean by that is, for example, if you log in to the root account
>> to reconfigure, run `guix describe` from there.
>>
>> Another example: if you do `sudo -i guix system reconfigure [...]`, run
>> `sudo -i guix describe`.
>>
>> Does that make sense?
[signature.asc (application/pgp-signature, inline)]

Information forwarded to bug-guix <at> gnu.org:
bug#75510; Package guix. (Fri, 17 Jan 2025 14:49:02 GMT) Full text and rfc822 format available.

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

From: Roman Scherer <roman.scherer <at> burningswell.com>
To: Leo Famulari <leo <at> famulari.name>
Cc: 75510 <at> debbugs.gnu.org
Subject: Re: bug#75510: Building grub-image.png.drv fails with rsvg
Date: Fri, 17 Jan 2025 15:48:04 +0100
[Message part 1 (text/plain, inline)]
Roman Scherer <roman.scherer <at> burningswell.com> writes:

Hmm, but it looks I'm now stuck using --no-grafts all the time. Any
ideas how to solve that?

> Roman Scherer <roman.scherer <at> burningswell.com> writes:
>
> So, it looks like this issue might be related to:
>
> - https://issues.guix.gnu.org/47853
> - https://issues.guix.gnu.org/47115
>
> I reconfigured my system now with --no-grafts, and this time it worked.
>
>> <#secure method=pgpmime mode=sign>
>>
>> Hi Leo,
>>
>> here is the `guix desribe` run as my normal user account.
>>
>> ```
>> [roman <at> m1 guix-home]$ guix describe
>> Generation 305	Jan 12 2025 09:17:24	(current)
>>   asahi 2a6f8b5
>>     repository URL: https://github.com/asahi-guix/channel
>>     branch: main
>>     commit: 2a6f8b59d97a3451639f128ff1c53d9009897e45
>>   guix 5d6c876
>>     repository URL: https://git.savannah.gnu.org/git/guix.git
>>     branch: master
>>     commit: 5d6c8767f67885bc9b2c8f18ab1f667d0065346b
>>   nonguix 565d287
>>     repository URL: https://gitlab.com/nonguix/nonguix
>>     branch: master
>>     commit: 565d287b7502ef9435b2fba38622d0a8f458677b
>>   r0man-guix 9bb5571
>>     repository URL: https://github.com/r0man/guix-channel
>>     branch: main
>>     commit: 9bb55710a8dc61a23c6cc4e8d2bcdc9503008492
>> ```
>>
>> As this user I usually run the following command to reconfigure my
>> system.
>>
>> ```
>> sudo guix system reconfigure -L modules modules/r0man/guix/system/m1.scm
>> -v 5
>> ```
>>
>> I don't use the -i flag when reconfiguring. Is that problematic?
>>
>> So here's the guix describe I usually get when I'm reconfiguring my
>> system:
>>
>> [roman <at> m1 guix-home]$ sudo guix describe
>>   asahi 2a6f8b5
>>     repository URL: https://github.com/asahi-guix/channel
>>     branch: main
>>     commit: 2a6f8b59d97a3451639f128ff1c53d9009897e45
>>   guix 5d6c876
>>     repository URL: https://git.savannah.gnu.org/git/guix.git
>>     branch: master
>>     commit: 5d6c8767f67885bc9b2c8f18ab1f667d0065346b
>>   nonguix 565d287
>>     repository URL: https://gitlab.com/nonguix/nonguix
>>     branch: master
>>     commit: 565d287b7502ef9435b2fba38622d0a8f458677b
>>   r0man-guix 9bb5571
>>     repository URL: https://github.com/r0man/guix-channel
>>     branch: main
>>     commit: 9bb55710a8dc61a23c6cc4e8d2bcdc9503008492
>>
>> And this is the "guix describe" with the -i flag:
>>
>> [roman <at> m1 guix-home]$ sudo -i guix describe
>>   guix 121e96d
>>     repository URL: https://git.savannah.gnu.org/git/guix.git
>>     branch: master
>>     commit: 121e96dca273ab407df11725da0026ee34abdf79
>>
>> Reconfiguring with the -i flag does not work, because I'm missing some
>> modules from the channels that aren't listed there.
>>
>> I'm also linking my config, just in case:
>>
>> https://github.com/r0man/guix-home/blob/main/modules/r0man/guix/system/m1.scm
>>
>> Thanks for your help, Roman.
>>
>> Leo Famulari <leo <at> famulari.name> writes:
>>
>>> On Sun, Jan 12, 2025 at 03:30:07PM -0500, Leo Famulari wrote:
>>>> On Sun, Jan 12, 2025 at 10:58:54AM +0100, Roman Scherer wrote:
>>>> >
>>>> > I can't reconfigure my (aarch64) system anymore. When building
>>>> > /gnu/store/bpda8gfvxm6iv3mc6n8sf3ydxc5b6zi9-grub-image.png.drv I see the following backtrace:
>>>>
>>>> [...]
>>>>
>>>> > View build log at '/var/log/guix/drvs/bp/da8gfvxm6iv3mc6n8sf3ydxc5b6zi9-grub-image.png.drv.gz'.
>>>>
>>>> Can you share this log?
>>>
>>> Okay, thanks.
>>>
>>> Also, from the environment where you try to reconfigure, can you also
>>> share the results of `guix describe`?
>>>
>>> What I mean by that is, for example, if you log in to the root account
>>> to reconfigure, run `guix describe` from there.
>>>
>>> Another example: if you do `sudo -i guix system reconfigure [...]`, run
>>> `sudo -i guix describe`.
>>>
>>> Does that make sense?
[signature.asc (application/pgp-signature, inline)]

Information forwarded to bug-guix <at> gnu.org:
bug#75510; Package guix. (Fri, 17 Jan 2025 19:23:02 GMT) Full text and rfc822 format available.

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

From: Leo Famulari <leo <at> famulari.name>
To: Roman Scherer <roman.scherer <at> burningswell.com>
Cc: 75510 <at> debbugs.gnu.org
Subject: Re: bug#75510: Building grub-image.png.drv fails with rsvg
Date: Fri, 17 Jan 2025 14:22:02 -0500
On Fri, Jan 17, 2025 at 03:48:04PM +0100, Roman Scherer wrote:
> Roman Scherer <roman.scherer <at> burningswell.com> writes:
> 
> Hmm, but it looks I'm now stuck using --no-grafts all the time. Any
> ideas how to solve that?

That's not great. I don't really understand this bug. Is it a problem in
Guile? That would seem hard to fix in the short term.

I wonder what is the current status of "ungrafting" efforts in Guix?




Information forwarded to bug-guix <at> gnu.org:
bug#75510; Package guix. (Tue, 21 Jan 2025 09:29:02 GMT) Full text and rfc822 format available.

Message #29 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: 75510 <at> debbugs.gnu.org, Leo Famulari <leo <at> famulari.name>
Subject: Re: bug#75510: Building grub-image.png.drv fails with rsvg
Date: Tue, 21 Jan 2025 10:28:43 +0100
[Message part 1 (text/plain, inline)]
Hi,

On 2025-01-12T10:58:54+0100, Roman Scherer wrote:
>
>Hello Guix,
>
>I can't reconfigure my (aarch64) system anymore. When building
>/gnu/store/bpda8gfvxm6iv3mc6n8sf3ydxc5b6zi9-grub-image.png.drv I see the following backtrace:
>
>```
>building /gnu/store/bpda8gfvxm6iv3mc6n8sf3ydxc5b6zi9-grub-image.png.drv...
>Backtrace:
>           2 (primitive-load "/gnu/store/3rcg4ann6607iqsh1aj84cqdnw8?")
>In gnu/build/svg.scm:
>     53:6  1 (svg->png "/gnu/store/41841pid2mmsvar44vy9xafsrf3cyb9i?" ?)
>In unknown file:
>           0 (rsvg-handle-render-cairo #<rsvg-handle fffff770ae60> #)
>
>ERROR: In procedure rsvg-handle-render-cairo:
>Wrong type (expecting finalized smob): #<cairo-context fffff770ad90>
>builder for `/gnu/store/bpda8gfvxm6iv3mc6n8sf3ydxc5b6zi9-grub-image.png.drv' failed with exit code 1
>build of /gnu/store/bpda8gfvxm6iv3mc6n8sf3ydxc5b6zi9-grub-image.png.drv failed
>View build log at '/var/log/guix/drvs/bp/da8gfvxm6iv3mc6n8sf3ydxc5b6zi9-grub-image.png.drv.gz'.
>applying 4 grafts for asahi-scripts-20240623 ...
>cannot build derivation `/gnu/store/mnavmxm513zwy16m1lyz2yppdgjbam3l-grub.cfg.drv': 1 dependencies couldn't be built
>guix system: error: build of `/gnu/store/mnavmxm513zwy16m1lyz2yppdgjbam3l-grub.cfg.drv' failed
>```
>
>Any ideas how to fix this?

I have the same problem on my server, also aarch64-linux.  A minimal 
reproducer that fails on both my server and my laptop (x86_64-linux) is

    guix build -s aarch64-linux -e '
    (begin
     (use-modules (gnu bootloader)
                  (gnu bootloader grub))
     ((@@ (gnu bootloader grub) grub-background-image)
      (bootloader-configuration
       (bootloader grub-efi-bootloader))))
    '

I have tried bisecting it with this (see the attached log) and ended up 
at commit
    6975b1871b (gnu: rust-ring-0.17: Build source using trivial-build-system., 2024-12-15)
If I revert this commit and additionally
    584c79d5df (gnu: rust-ring-0.13: Build source using trivial-build-system., 2024-12-17)
    57be7a0184 (gnu: rust-ring-0.14: Build source using trivial-build-system., 2024-12-17)
    7db675130f (gnu: rust-ring-0.16: Build source using trivial-build-system., 2024-12-17)
(make fails when reverting only 6975b1871b) on top of commit
    87045f0982 (gnu: paritwine: Update to 0.2.1., 2025-01-17)
I get no error.  No idea what that has to do with grafts though.

vicvbcun
[bisect-log.txt (text/plain, attachment)]

Information forwarded to bug-guix <at> gnu.org:
bug#75510; Package guix. (Tue, 21 Jan 2025 12:30:03 GMT) Full text and rfc822 format available.

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

From: Roman Scherer <roman.scherer <at> burningswell.com>
To: vicvbcun <guix <at> ikherbers.com>
Cc: 75510 <at> debbugs.gnu.org, Efraim Flashner <efraim <at> flashner.co.il>,
 Leo Famulari <leo <at> famulari.name>
Subject: Re: bug#75510: Building grub-image.png.drv fails with rsvg
Date: Tue, 21 Jan 2025 13:29:40 +0100
[Message part 1 (text/plain, inline)]
Hi vicvbcun,

thanks looking into this! Good to know when this started failing, but
I'm still lost understanding what the issue is, why it works without
grafts, or how to fix it.

Maybe Efraim has an idea? I put him on CC.

Thanks for your help!

Roman

vicvbcun <guix <at> ikherbers.com> writes:

> Hi,
>
> On 2025-01-12T10:58:54+0100, Roman Scherer wrote:
>>
>>Hello Guix,
>>
>>I can't reconfigure my (aarch64) system anymore. When building
>>/gnu/store/bpda8gfvxm6iv3mc6n8sf3ydxc5b6zi9-grub-image.png.drv I see the following backtrace:
>>
>>```
>>building /gnu/store/bpda8gfvxm6iv3mc6n8sf3ydxc5b6zi9-grub-image.png.drv...
>>Backtrace:
>>           2 (primitive-load "/gnu/store/3rcg4ann6607iqsh1aj84cqdnw8?")
>>In gnu/build/svg.scm:
>>     53:6  1 (svg->png "/gnu/store/41841pid2mmsvar44vy9xafsrf3cyb9i?" ?)
>>In unknown file:
>>           0 (rsvg-handle-render-cairo #<rsvg-handle fffff770ae60> #)
>>
>>ERROR: In procedure rsvg-handle-render-cairo:
>>Wrong type (expecting finalized smob): #<cairo-context fffff770ad90>
>>builder for `/gnu/store/bpda8gfvxm6iv3mc6n8sf3ydxc5b6zi9-grub-image.png.drv' failed with exit code 1
>>build of /gnu/store/bpda8gfvxm6iv3mc6n8sf3ydxc5b6zi9-grub-image.png.drv failed
>>View build log at '/var/log/guix/drvs/bp/da8gfvxm6iv3mc6n8sf3ydxc5b6zi9-grub-image.png.drv.gz'.
>>applying 4 grafts for asahi-scripts-20240623 ...
>>cannot build derivation `/gnu/store/mnavmxm513zwy16m1lyz2yppdgjbam3l-grub.cfg.drv': 1 dependencies couldn't be built
>>guix system: error: build of `/gnu/store/mnavmxm513zwy16m1lyz2yppdgjbam3l-grub.cfg.drv' failed
>>```
>>
>>Any ideas how to fix this?
>
> I have the same problem on my server, also aarch64-linux.  A minimal
> reproducer that fails on both my server and my laptop (x86_64-linux)
> is
>
>     guix build -s aarch64-linux -e '
>     (begin
>      (use-modules (gnu bootloader)
>                   (gnu bootloader grub))
>      ((@@ (gnu bootloader grub) grub-background-image)
>       (bootloader-configuration
>        (bootloader grub-efi-bootloader))))
>     '
>
> I have tried bisecting it with this (see the attached log) and ended
> up at commit
>     6975b1871b (gnu: rust-ring-0.17: Build source using trivial-build-system., 2024-12-15)
> If I revert this commit and additionally
>     584c79d5df (gnu: rust-ring-0.13: Build source using trivial-build-system., 2024-12-17)
>     57be7a0184 (gnu: rust-ring-0.14: Build source using trivial-build-system., 2024-12-17)
>     7db675130f (gnu: rust-ring-0.16: Build source using trivial-build-system., 2024-12-17)
> (make fails when reverting only 6975b1871b) on top of commit
>     87045f0982 (gnu: paritwine: Update to 0.2.1., 2025-01-17)
> I get no error.  No idea what that has to do with grafts though.
>
> vicvbcun
>
> [2. text/plain; bisect-log.txt]...
[signature.asc (application/pgp-signature, inline)]

Information forwarded to bug-guix <at> gnu.org:
bug#75510; Package guix. (Tue, 21 Jan 2025 23:53:01 GMT) Full text and rfc822 format available.

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




Information forwarded to bug-guix <at> gnu.org:
bug#75510; Package guix. (Fri, 24 Jan 2025 08:42:02 GMT) Full text and rfc822 format available.

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

From: Efraim Flashner <efraim <at> flashner.co.il>
To: vicvbcun <guix <at> ikherbers.com>,
 Roman Scherer <roman.scherer <at> burningswell.com>,
 75510 <at> debbugs.gnu.org, Leo Famulari <leo <at> famulari.name>
Subject: Re: bug#75510: Building grub-image.png.drv fails with rsvg
Date: Fri, 24 Jan 2025 10:41:32 +0200
[Message part 1 (text/plain, inline)]
On Wed, Jan 22, 2025 at 12:52:25AM +0100, vicvbcun wrote:
> 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

I tried setting rust-ring's sources to #:target #f but that didn't make
any difference.  I feel like it shouldn't make a difference, and should
probably be #:target #f anyway, but that can be a different time.

I'm attaching a patch that creates the grub image using ungrafted
inputs.  I think it would make sense to go through and figure out which
derivations actually need to use grafted inputs and which ones don't
matter, but I'm not sure it's worth the maintenance burden to check them
regularly.

The image also seems like something that could be #:target #f and we
could cheat by getting a generated image built on a different
architecture, but that's never seemed to work that way, only for
cross-building.

-- 
Efraim Flashner   <efraim <at> flashner.co.il>   אפרים פלשנר
GPG key = A28B F40C 3E55 1372 662D  14F7 41AA E7DC CA3D 8351
Confidentiality cannot be guaranteed on emails sent or received unencrypted
[0001-bootloader-grub-Create-grub-background-image-with-un.patch (text/plain, attachment)]
[signature.asc (application/pgp-signature, inline)]

Information forwarded to bug-guix <at> gnu.org:
bug#75510; Package guix. (Fri, 24 Jan 2025 09:56:01 GMT) Full text and rfc822 format available.

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

From: Roman Scherer <roman.scherer <at> burningswell.com>
To: Efraim Flashner <efraim <at> flashner.co.il>
Cc: vicvbcun <guix <at> ikherbers.com>, 75510 <at> debbugs.gnu.org,
 Leo Famulari <leo <at> famulari.name>
Subject: Re: bug#75510: Building grub-image.png.drv fails with rsvg
Date: Fri, 24 Jan 2025 10:55:34 +0100
[Message part 1 (text/plain, inline)]
Hi Efraim,

thanks for looking into this! Much appreciated. I just tried your patch
and reconfigured my system as usual without using --no-grafts and I can
confirm that it is working again.

I'm not very familiar with grafts and have a question. When no grafts
are used for building the Grub image, does it mean it uses packages with
no security updates applied, or is it just that the grafts are not used
and the packages are built from scratch using the latest security
updates?

Thanks, Roman.

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

> On Wed, Jan 22, 2025 at 12:52:25AM +0100, vicvbcun wrote:
>> 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
>
> I tried setting rust-ring's sources to #:target #f but that didn't make
> any difference.  I feel like it shouldn't make a difference, and should
> probably be #:target #f anyway, but that can be a different time.
>
> I'm attaching a patch that creates the grub image using ungrafted
> inputs.  I think it would make sense to go through and figure out which
> derivations actually need to use grafted inputs and which ones don't
> matter, but I'm not sure it's worth the maintenance burden to check them
> regularly.
>
> The image also seems like something that could be #:target #f and we
> could cheat by getting a generated image built on a different
> architecture, but that's never seemed to work that way, only for
> cross-building.
[signature.asc (application/pgp-signature, inline)]

Information forwarded to bug-guix <at> gnu.org:
bug#75510; Package guix. (Fri, 24 Jan 2025 21:59:02 GMT) Full text and rfc822 format available.

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

From: Leo Famulari <leo <at> famulari.name>
To: Roman Scherer <roman.scherer <at> burningswell.com>
Cc: vicvbcun <guix <at> ikherbers.com>, Efraim Flashner <efraim <at> flashner.co.il>,
 75510 <at> debbugs.gnu.org
Subject: Re: bug#75510: Building grub-image.png.drv fails with rsvg
Date: Fri, 24 Jan 2025 16:58:36 -0500
On Fri, Jan 24, 2025 at 10:55:34AM +0100, Roman Scherer wrote:
> I'm not very familiar with grafts and have a question. When no grafts
> are used for building the Grub image, does it mean it uses packages with
> no security updates applied, or is it just that the grafts are not used
> and the packages are built from scratch using the latest security
> updates?

If you use '--no-grafts', then you will not receive the security
updates.




Information forwarded to bug-guix <at> gnu.org:
bug#75510; Package guix. (Fri, 24 Jan 2025 22:01:02 GMT) Full text and rfc822 format available.

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

From: Roman Scherer <roman.scherer <at> burningswell.com>
To: Leo Famulari <leo <at> famulari.name>
Cc: 75510 <at> debbugs.gnu.org
Subject: Re: bug#75510: Building grub-image.png.drv fails with rsvg
Date: Fri, 24 Jan 2025 23:00:28 +0100
[Message part 1 (text/plain, inline)]
Alright, thank you Leo!

Leo Famulari <leo <at> famulari.name> writes:

> On Fri, Jan 24, 2025 at 10:55:34AM +0100, Roman Scherer wrote:
>> I'm not very familiar with grafts and have a question. When no grafts
>> are used for building the Grub image, does it mean it uses packages with
>> no security updates applied, or is it just that the grafts are not used
>> and the packages are built from scratch using the latest security
>> updates?
>
> If you use '--no-grafts', then you will not receive the security
> updates.
[signature.asc (application/pgp-signature, inline)]

Reply sent to Efraim Flashner <efraim <at> flashner.co.il>:
You have taken responsibility. (Sun, 26 Jan 2025 07:42:02 GMT) Full text and rfc822 format available.

Notification sent to Roman Scherer <roman.scherer <at> burningswell.com>:
bug acknowledged by developer. (Sun, 26 Jan 2025 07:42:02 GMT) Full text and rfc822 format available.

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

From: Efraim Flashner <efraim <at> flashner.co.il>
To: Roman Scherer <roman.scherer <at> burningswell.com>
Cc: vicvbcun <guix <at> ikherbers.com>, Leo Famulari <leo <at> famulari.name>,
 75510-done <at> debbugs.gnu.org
Subject: Re: bug#75510: Building grub-image.png.drv fails with rsvg
Date: Sun, 26 Jan 2025 09:41:43 +0200
[Message part 1 (text/plain, inline)]
On Fri, Jan 24, 2025 at 10:55:34AM +0100, Roman Scherer wrote:
> 
> Hi Efraim,
> 
> thanks for looking into this! Much appreciated. I just tried your patch
> and reconfigured my system as usual without using --no-grafts and I can
> confirm that it is working again.
> 
> I'm not very familiar with grafts and have a question. When no grafts
> are used for building the Grub image, does it mean it uses packages with
> no security updates applied, or is it just that the grafts are not used
> and the packages are built from scratch using the latest security
> updates?
> 
> Thanks, Roman.
> 
> Efraim Flashner <efraim <at> flashner.co.il> writes:
> 
> > On Wed, Jan 22, 2025 at 12:52:25AM +0100, vicvbcun wrote:
> >> 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
> >
> > I tried setting rust-ring's sources to #:target #f but that didn't make
> > any difference.  I feel like it shouldn't make a difference, and should
> > probably be #:target #f anyway, but that can be a different time.
> >
> > I'm attaching a patch that creates the grub image using ungrafted
> > inputs.  I think it would make sense to go through and figure out which
> > derivations actually need to use grafted inputs and which ones don't
> > matter, but I'm not sure it's worth the maintenance burden to check them
> > regularly.
> >
> > The image also seems like something that could be #:target #f and we
> > could cheat by getting a generated image built on a different
> > architecture, but that's never seemed to work that way, only for
> > cross-building.

I've pushed the commit, so it should work on master now.

Now to go and pull and reconfigure my pinebook pro :)

-- 
Efraim Flashner   <efraim <at> flashner.co.il>   אפרים פלשנר
GPG key = A28B F40C 3E55 1372 662D  14F7 41AA E7DC CA3D 8351
Confidentiality cannot be guaranteed on emails sent or received unencrypted
[signature.asc (application/pgp-signature, inline)]

Information forwarded to bug-guix <at> gnu.org:
bug#75510; Package guix. (Sun, 26 Jan 2025 07:50:02 GMT) Full text and rfc822 format available.

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

From: Roman Scherer <roman <at> burningswell.com>
To: Efraim Flashner <efraim <at> flashner.co.il>,
 Roman Scherer <roman.scherer <at> burningswell.com>, 
 vicvbcun <guix <at> ikherbers.com>, 75510-done <at> debbugs.gnu.org, 
 Leo Famulari <leo <at> famulari.name>
Subject: Re: bug#75510: Building grub-image.png.drv fails with rsvg
Date: Sun, 26 Jan 2025 08:49:17 +0100
[Message part 1 (text/plain, inline)]
Thank you Efraim!

On Sun, Jan 26, 2025, 08:41 Efraim Flashner <efraim <at> flashner.co.il> wrote:

> On Fri, Jan 24, 2025 at 10:55:34AM +0100, Roman Scherer wrote:
> >
> > Hi Efraim,
> >
> > thanks for looking into this! Much appreciated. I just tried your patch
> > and reconfigured my system as usual without using --no-grafts and I can
> > confirm that it is working again.
> >
> > I'm not very familiar with grafts and have a question. When no grafts
> > are used for building the Grub image, does it mean it uses packages with
> > no security updates applied, or is it just that the grafts are not used
> > and the packages are built from scratch using the latest security
> > updates?
> >
> > Thanks, Roman.
> >
> > Efraim Flashner <efraim <at> flashner.co.il> writes:
> >
> > > On Wed, Jan 22, 2025 at 12:52:25AM +0100, vicvbcun wrote:
> > >> 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
> > >
> > > I tried setting rust-ring's sources to #:target #f but that didn't make
> > > any difference.  I feel like it shouldn't make a difference, and should
> > > probably be #:target #f anyway, but that can be a different time.
> > >
> > > I'm attaching a patch that creates the grub image using ungrafted
> > > inputs.  I think it would make sense to go through and figure out which
> > > derivations actually need to use grafted inputs and which ones don't
> > > matter, but I'm not sure it's worth the maintenance burden to check
> them
> > > regularly.
> > >
> > > The image also seems like something that could be #:target #f and we
> > > could cheat by getting a generated image built on a different
> > > architecture, but that's never seemed to work that way, only for
> > > cross-building.
>
> I've pushed the commit, so it should work on master now.
>
> Now to go and pull and reconfigure my pinebook pro :)
>
> --
> Efraim Flashner   <efraim <at> flashner.co.il>   אפרים פלשנר
> GPG key = A28B F40C 3E55 1372 662D  14F7 41AA E7DC CA3D 8351
> Confidentiality cannot be guaranteed on emails sent or received unencrypted
>
[Message part 2 (text/html, inline)]

Information forwarded to bug-guix <at> gnu.org:
bug#75510; Package guix. (Sun, 26 Jan 2025 22:43:01 GMT) Full text and rfc822 format available.

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

From: vicvbcun <guix <at> ikherbers.com>
To: Roman Scherer <roman.scherer <at> burningswell.com>, 75510 <at> debbugs.gnu.org,
 Efraim Flashner <efraim <at> flashner.co.il>, Leo Famulari <leo <at> famulari.name>
Subject: Re: bug#75510: Building grub-image.png.drv fails with rsvg
Date: Sun, 26 Jan 2025 23:42:17 +0100
[Message part 1 (text/plain, inline)]
Hello Guix!

I think that I now have some understanding for how these differently 
grafted packages can arise: The grafting code in `bag-grafts' uses 
`fold-bag-dependencies' to collect all the replacements that could 
affect a package.  That function visits all packages in the dependency 
tree depth first and exactly once.  Consider the following example tree:

A → C, B

B → D, C

Package A references packages C and B while package B references D and 
C, in that order.  If both C and D have replacements, then the grafting 
order for package B depends on whether we are considering it on its own 
or as a dependency of package A.  See also the attached dummy packages.

I think that the correct solution to this problem is to sort the grafts 
somewhere before ungexp'ing them in `graft-derivation/shallow'.  While 
package inputs should be sorted by name, they are split into `inputs', 
`native-inputs' and `propagated-inputs', build systems can add packages 
and G-expressions inputs are sorted by lexical appearance.

However the issue with guile-cairo and guile-rsvg seems to be a bit 
different. `fold-bag-dependencies' only considers packages and changes 
to rust-ring turn its source into a package, causing 
`fold-bag-dependencies' to inspect the dependencies.  Specifically, on 
aarch64-linux `fold-bag-dependencies' the following packages and outputs 
are visited near the end:
--8<---------------cut here---------------start------------->8---
rust-ring <at> 0.17.8.tar.gz:out        gnu/packages/crates-crypto.scm:4207
clang <at> 13.0.1:out                   gnu/packages/llvm.scm:241
gcc <at> 11.4.0:lib                     gnu/packages/gcc.scm:743
isl <at> 0.24:out                       gnu/packages/gcc.scm:1404
libstdc++-headers <at> 11.4.0:out       gnu/packages/gcc.scm:1068
libstdc++@11.4.0:out               gnu/packages/gcc.scm:965
mpc <at> 1.3.1:out                      gnu/packages/multiprecision.scm:139
elfutils <at> 0.187:out                 gnu/packages/elf.scm:54
clang-runtime <at> 13.0.1:out           gnu/packages/llvm.scm:145
go <at> 1.21.5:out                      gnu/packages/golang.scm:822
go <at> 1.17.13:out                     gnu/packages/golang.scm:486
go <at> 1.4-bootstrap-20171003:out      gnu/packages/golang.scm:117
gcc <at> 11.4.0:lib                     gnu/packages/commencement.scm:3227
gawk <at> 5.3.0:out                     guix/build-system/gnu.scm:151
make <at> 4.4.1:out                     gnu/packages/commencement.scm:3460
pkg-config <at> 0.29.2:out              gnu/packages/commencement.scm:3453

; note this visit to glibc!
glibc <at> 2.39:out                     gnu/packages/commencement.scm:3103
glibc <at> 2.39:static                  gnu/packages/commencement.scm:3103

binutils-gold <at> 2.41:out             gnu/packages/base.scm:778
bc <at> 1.07.1:out                      gnu/packages/algebra.scm:668
ed <at> 1.20.1:out                      gnu/packages/text-editors.scm:123
lzip <at> 1.23:out                      gnu/packages/compression.scm:703
--8<---------------cut here---------------end--------------->8---

Notice the visit of glibc.  It is also visited earlier but not 
recognized as duplicate by `fold-bag-dependencies', even though it maps 
to the same derivation (This is `glibc-final', there also is a version 
of glibc created by `package-with-bootstrap-guile' earlier).  expat is 
visited before without any change.  The packages with replacements are 
cons'ed so that glibc ends up in front of expat in the grafting order. 
guile-cairo doesn't depend on rust-ring and it just so happens that 
glibc is visited before expat and they and up in the opposite order.

I don't know where these different versions of glibc come from, but 
sorting grafts should also get rid of any problems they might pose.

So why doesn't the bug appear on x86_64-linux?  Here the change only 
causes the visits of `fold-bag-dependencies' up to gawk, in particular 
the visit to glibc doesn't happen and for both guile-cairo and 
guile-rsvg expat ends up in front of glibc in the grafting order.  This 
should be related to the full-source bootstrap.

vicvbcun
[dependencies-order.scm (text/plain, attachment)]
[before-6975b1871b.txt (text/plain, attachment)]
[after-6975b1871b.txt (text/plain, attachment)]
[fold-bag-dependencies-list.scm (text/plain, attachment)]

Information forwarded to bug-guix <at> gnu.org:
bug#75510; Package guix. (Tue, 28 Jan 2025 09:42:01 GMT) Full text and rfc822 format available.

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

From: Roman Scherer <roman.scherer <at> burningswell.com>
To: vicvbcun <guix <at> ikherbers.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: Tue, 28 Jan 2025 10:41:38 +0100
[Message part 1 (text/plain, inline)]
Hi vicvbcun,

thanks for looking into this. I'm afraid I canb't help much on this, but
I find your investigation very interesting. Keep us posted.

Roman

vicvbcun <guix <at> ikherbers.com> writes:

> Hello Guix!
>
> I think that I now have some understanding for how these differently
> grafted packages can arise: The grafting code in `bag-grafts' uses
> `fold-bag-dependencies' to collect all the replacements that could
> affect a package.  That function visits all packages in the dependency
> tree depth first and exactly once.  Consider the following example
> tree:
>
> A → C, B
>
> B → D, C
>
> Package A references packages C and B while package B references D and
> C, in that order.  If both C and D have replacements, then the
> grafting order for package B depends on whether we are considering it
> on its own or as a dependency of package A.  See also the attached
> dummy packages.
>
> I think that the correct solution to this problem is to sort the
> grafts somewhere before ungexp'ing them in `graft-derivation/shallow'.
> While package inputs should be sorted by name, they are split into
> `inputs', `native-inputs' and `propagated-inputs', build systems can
> add packages and G-expressions inputs are sorted by lexical
> appearance.
>
> However the issue with guile-cairo and guile-rsvg seems to be a bit
> different. `fold-bag-dependencies' only considers packages and changes
> to rust-ring turn its source into a package, causing
> `fold-bag-dependencies' to inspect the dependencies.  Specifically, on
> aarch64-linux `fold-bag-dependencies' the following packages and
> outputs are visited near the end:
> --8<---------------cut here---------------start------------->8---
> rust-ring <at> 0.17.8.tar.gz:out        gnu/packages/crates-crypto.scm:4207
> clang <at> 13.0.1:out                   gnu/packages/llvm.scm:241
> gcc <at> 11.4.0:lib                     gnu/packages/gcc.scm:743
> isl <at> 0.24:out                       gnu/packages/gcc.scm:1404
> libstdc++-headers <at> 11.4.0:out       gnu/packages/gcc.scm:1068
> libstdc++@11.4.0:out               gnu/packages/gcc.scm:965
> mpc <at> 1.3.1:out                      gnu/packages/multiprecision.scm:139
> elfutils <at> 0.187:out                 gnu/packages/elf.scm:54
> clang-runtime <at> 13.0.1:out           gnu/packages/llvm.scm:145
> go <at> 1.21.5:out                      gnu/packages/golang.scm:822
> go <at> 1.17.13:out                     gnu/packages/golang.scm:486
> go <at> 1.4-bootstrap-20171003:out      gnu/packages/golang.scm:117
> gcc <at> 11.4.0:lib                     gnu/packages/commencement.scm:3227
> gawk <at> 5.3.0:out                     guix/build-system/gnu.scm:151
> make <at> 4.4.1:out                     gnu/packages/commencement.scm:3460
> pkg-config <at> 0.29.2:out              gnu/packages/commencement.scm:3453
>
> ; note this visit to glibc!
> glibc <at> 2.39:out                     gnu/packages/commencement.scm:3103
> glibc <at> 2.39:static                  gnu/packages/commencement.scm:3103
>
> binutils-gold <at> 2.41:out             gnu/packages/base.scm:778
> bc <at> 1.07.1:out                      gnu/packages/algebra.scm:668
> ed <at> 1.20.1:out                      gnu/packages/text-editors.scm:123
> lzip <at> 1.23:out                      gnu/packages/compression.scm:703
> --8<---------------cut here---------------end--------------->8---
>
> Notice the visit of glibc.  It is also visited earlier but not
> recognized as duplicate by `fold-bag-dependencies', even though it
> maps to the same derivation (This is `glibc-final', there also is a
> version of glibc created by `package-with-bootstrap-guile' earlier).
> expat is visited before without any change.  The packages with
> replacements are cons'ed so that glibc ends up in front of expat in
> the grafting order. guile-cairo doesn't depend on rust-ring and it
> just so happens that glibc is visited before expat and they and up in
> the opposite order.
>
> I don't know where these different versions of glibc come from, but
> sorting grafts should also get rid of any problems they might pose.
>
> So why doesn't the bug appear on x86_64-linux?  Here the change only
> causes the visits of `fold-bag-dependencies' up to gawk, in particular
> the visit to glibc doesn't happen and for both guile-cairo and
> guile-rsvg expat ends up in front of glibc in the grafting order.
> This should be related to the full-source bootstrap.
>
> vicvbcun
>
> [2. text/plain; dependencies-order.scm]...
>
> [3. text/plain; before-6975b1871b.txt]...
>
> [4. text/plain; after-6975b1871b.txt]...
>
> [5. text/plain; fold-bag-dependencies-list.scm]...
[signature.asc (application/pgp-signature, inline)]

bug archived. Request was from Debbugs Internal Request <help-debbugs <at> gnu.org> to internal_control <at> debbugs.gnu.org. (Tue, 25 Feb 2025 12:24:07 GMT) Full text and rfc822 format available.

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.