Subject: Re: bug#44327: `guix install` doesn't warn about collison in profile

From: Ludovic Courtès <[email-masked]>
Date: Sat, 31 Oct 2020 11:31:24 +0100

zimoun <[email-masked]> skribis:

> On Fri, 30 Oct 2020 at 17:20, Ludovic Courtès <[email-masked]> wrote:
>
>> Currently, ‘guix install’ errors out if you try to install two
>> same-named packages with a different version number or a different store
>> file name (typically via propagated inputs).
>>
>> Here, ‘emacs’ and ‘emacs-xwidgets’ have different names, so it doesn’t
>> complain.
>>
>> Perhaps we should offer a way to annotate packages as conflicting with
>> one another?
>
> Why?  The solution seems to check the path names.  Here, the 2
> packages provide 'bin/emacs'; which is the conflict.  However, this
> could be implemented with care otherwise it will slow down.
> I have not check 'union-build' but maybe it is already the case. :-)

Yes, ‘union-build’ already makes that check, but it happens too late: at
build time.

This is why back in the day we devised a specific collision detection
mechanism that looks at package names/version/store file names, and
which can run before anything has been built:

  https://issues.guix.gnu.org/27271

Ludo’.