Subject: Re: Profile collisions are ignored, installing multiple versions of the same package is silently broken

From: Liliana Marie Prikler <[email-masked]>
Date: Sat, 12 Mar 2022 15:34:31 +0100

Am Samstag, dem 12.03.2022 um 10:45 +0100 schrieb Maxime Devos:
> Hi guix,
> 
> Try
> 
> $ guix shell --pure bash [email-masked] [email-masked]
> $ ~/.guix-profile/bin/ls -l $GUIX_ENVIRONMENT/lib/libpango*.so
> 
> Result:
> [...]/lib/libpango-1.0.so -> [...]-pango-1.42.4/lib/libpango-1.0.so
> [...]/lib/libpangocairo-1.0.so -> [...]-pango-
> 1.42.4/lib/libpangocairo-1.0.so
> [...]/lib/libpangoft2-1.0.so -> [...]-1.42.4/lib/libpangoft2-1.0.so
> [...]/lib/libpangoxft-1.0.so -> [...]-pango-1.42.4/lib/libpangoxft-
> 1.0.so
> 
> Question: how does this even work?  Aren't error messages about
> profile collisions a thing? 
They ought to be, but perhaps these are only checked for propagated
packages, not for explicitly specified ones.  Would still be weird, if
you e.g. put [email-masked] and something propagating [email-masked] together,
it ought to error.  Perhaps an oversight? 

> Another question: if this use case was supported, shouldn't it point
> to the newer pango instead of the older pango?
union-build implicitly takes the first file it finds -- this is
actually sane, but sadly undocumented behaviour.  In other words, if
you specify [email-masked] first, it should be the one being picked.

Cheers