Subject: bug#27467: Xfce broken, because it propagates two different versions of gtk+

From: Ricardo Wurmus <[email-masked]>
Date: Tue, 27 Jun 2017 07:25:15 +0200

Ludovic Courtès <[email-masked]> writes:

> Ricardo Wurmus <[email-masked]> skribis:
>
>> Mark H Weaver <[email-masked]> writes:
>>
>>> [email-masked] (Ludovic Courtès) writes:
>>>
>>>> Mark H Weaver <[email-masked]> skribis:
>>>>
>>>>> I just tried to update my GuixSD system to commit
>>>>> c57b56722f6c167c5a285f47802047de85a356ae on master.  "guix system build"
>>>>> failed with the following error:
>>>>>
>>>>> guix system: error: profile contains conflicting entries for gtk+:out
>>>>> guix system: error:   first entry: [email-masked]:out /gnu/store/901ify6fr2zlr2y2acpvlqr8lygmwj98-gtk+-2.24.31
>>>>> guix system: error:    ... propagated from [email-masked]
>>>>> guix system: error:    ... propagated from [email-masked]
>>>>> guix system: error:   second entry: [email-masked]:out /gnu/store/fhqaljm8cf78irhqjbrm8n0ri1k2cznm-gtk+-3.22.15
>>>>> guix system: error:    ... propagated from [email-masked]
>>>>> guix system: error:    ... propagated from [email-masked]
>>>>> guix system: error:    ... propagated from [email-masked]
>>>>
>>>> I just tried and Exo builds fine with GTK+3, so I would think this
>>>> reference to GTK+2 was a mistake.  Can you check if it works fine for
>>>> you with this change?
>>>
>>> After changing Exo to use Gtk+3, I get this:
>>>
>>> guix system: error: profile contains conflicting entries for gtk+:out
>>> guix system: error:   first entry: [email-masked]:out /gnu/store/0m9hpckvamd048zgsrhx1dx2s5hrg1qk-gtk+-2.24.31
>>> guix system: error:    ... propagated from [email-masked]
>>> guix system: error:    ... propagated from [email-masked]
>>> guix system: error:    ... propagated from [email-masked]
>>> guix system: error:   second entry: [email-masked]:out /gnu/store/hc090rjjka3r9spvzl7yn5hcc2xgrgdh-gtk+-3.22.15
>>> guix system: error:    ... propagated from [email-masked]
>>> guix system: error:    ... propagated from [email-masked]
>>> guix system: error:    ... propagated from [email-masked]
>>
>> libxfce4ui propagates both gtk+@3 and gtk+@2.  There is no conflict
>> between these two versions of gtk, because they are installed into
>> separate sub-directories under $prefix/lib.
>
> So this is on purpose, right?  Sounds weird no?

It’s not unusual for some GUI libraries to support multiple backends.
It’s a bit weird that this requires propagation, but according to the
comment that’s because of the pkg-config files.

libxfce4ui-1.pc needs propagation of gtk+@2, libxfce4ui-2.pc needs
propagation of gtk+@3.  Maybe we could split that package up, so that
the different variants are provided by separate variants.  Or we could
simply not propagate gtk+@2 and only add it to packages that actually
use gtk+@2.

I’m giving this a try right now.

--
Ricardo

GPG: BCA6 89B6 3655 3801 C3C6  2150 197A 5888 235F ACAC
https://elephly.net