Subject: Re: [bug#31458] [PATCH] union: Do not warn about harmless collissions.

From: [email-masked] (Ludovic Courtès)
Date: Wed, 16 May 2018 10:57:57 +0200

Hello,

Danny Milosavljevic <[email-masked]> skribis:

> On Tue, 15 May 2018 10:31:19 +0200
> Ludovic Courtès <[email-masked]> wrote:
>
>> Until now we'd get pointless messages like:
>> 
>>   warning: collision encountered:
>>     /gnu/store/…-gtk-icon-themes/share/icons/hicolor/icon-theme.cache
>>     /gnu/store/…-inkscape-0.92.3/share/icons/hicolor/icon-theme.cache
>>   warning: choosing /gnu/store/…-gtk-icon-themes/share/icons/hicolor/icon-theme.cache
>
> Hmm, I guess the icon-theme.cache one is harmless enough - however, there shouldn't
> be many of those left anyway.  Is there an easy way to check the store of hydra or something
> which packages still have those files?

No, but everyone can check in their own profile.  :-)

> I've fixed inkscape now.

Since “fixing” packages like you just did is a manual step, I think it’s
still fine to ignore “icon-theme.cache” collisions.  WDYT?

>> +(define %harmless-collisions
>> +  ;; This is a list of files that are known to collide, but for which emitting
>> +  ;; a warning doesn't make sense.  For example, "icon-theme.cache" is
>> +  ;; regenerated by a profile hook which shadows the file provided by
>> +  ;; individual packages, and "gschemas.compiled" is made available to
>> +  ;; applications via 'glib-or-gtk-build-system'.
>> +  '("icon-theme.cache" "gschemas.compiled"))
>
> However, about gschemas.compiled I'm not sure yet.
>
> How do we ensure that glib-or-gtk-build-system is actually used for packages that
> need it?

I don’t think we can.  :-/

> libreoffice has some problem that makes it crash every time it tries to open a
> file dialog - I wonder if that's related (libreoffice uses gnu-build-system).

It is, see <https://bugs.gnu.org/30642>.

> But glib-or-gtk-build-system expicitly generates gschemas.compiled, ensuring a
> collision - what's up with that?

glib-or-gtk-build-system wraps binaries so that they refer to the right
gschemas.compiled, so in that case the gschemas.compiled file that ends
up in the profile doesn’t matter at all.

> Shouldn't there be a profile hook for it instead?  There doesn't seem to be one.

Maybe, yes, though I’m not sure how that’d work (and would it be fast
enough?).

This seems to be orthogonal to this patch, though: we can remove the
collision warnings for these files today, because there’s nothing users
can do about them and they’re effectively harmless, and later on, if we
have better gschemas.compiled handling, we can always let them through
again.

Thoughts?

Ludo’.