Subject: Re: bug#27551: guile-cairo switch to Guile 2.2 breaks (gnu build svg)

From: [email-masked] (Ludovic Courtès)
Date: Sun, 02 Jul 2017 23:01:34 +0200

Leo Famulari <[email-masked]> skribis:

> On Fri, Jun 30, 2017 at 05:21:08PM -0400, Ludovic Court�s wrote:
>> civodul pushed a commit to branch master
>> in repository guix.
>> 
>> commit e3ddb1e83296c10338d35bc687772242b2f5eac6
>> Author: Ludovic Courtès <[email-masked]>
>> Date:   Fri Jun 30 23:10:46 2017 +0200
>> 
>>     gnu: guile-cairo: Switch to Guile 2.2.
>>     
>>     This patch adjusts dependent packages accordingly.
>>     
>>     * gnu/packages/gtk.scm (guile-cairo)[inputs]: Switch to GUILE-2.2 and
>>     GUILE-LIB.
>>     (guile-rsvg)[inputs]: Likewise.
>>     (guile-present)[inputs]: Likewise.
>>     (guile-gnome)[inputs]: Likewise.
>>     * gnu/packages/plotutils.scm (guile-charting)[inputs]: Switch go
>>     GUILE-2.2.
>
> This commit introduced some problems with (gnu build svg), which
> prevents reconfiguring GuixSD:

[...]

> In ./gnu/build/svg.scm:
>   51: 0 [svg->png "/gnu/store/w893227m8wllganabxqx7sn2mgga8083-guix-artwork-6998d30-checkout/grub/GuixSD-fully-black-4-3.svg" ...]
>
> ./gnu/build/svg.scm:51:4: In procedure svg->png:
> ./gnu/build/svg.scm:51:4: In procedure module-lookup: Unbound variable: rsvg-handle-new-from-file
> builder for `/gnu/store/nldcbaghx031b799mq9bdh8l00hg4fz6-grub-image.png.drv' failed with exit code 1

Apologies for not noticing this earlier!

I fixed it in a single commit, 1b0f266e40aead09be95a984bd9c6cec3dff397e,
that reinstates the original commits and fixes the problem.  I
considered re-reverting the commits individually but that didn’t seem
very nice either.

The problem was that Guile-RSVG was switched to Guile 2.2 but
derivations are still built with Guile 2.0 by default.  Thus, the
derivation that creates “grub-image.png” would not find Guile-RSVG.

The fix I committed is to explicitly build this derivation with 2.2.

I agree with what you wrote: CI could in theory help avoid such
problems, but we lack the resources right now.  We’d also need to change
our workflow to commit to a staging branch and have a robot that
automatically merges branches that pass the tests.  Not trivial.

For now, reverting the changes promptly was the right thing to do, so
thanks for doing it.

Ludo’.