GNU bug report logs - #44327
`guix install` doesn't warn about collison in profile

Previous Next

Package: guix;

Reported by: Zhu Zihao <all_but_last <at> 163.com>

Date: Fri, 30 Oct 2020 11:19:03 UTC

Severity: normal

Tags: notabug

Done: Ludovic Courtès <ludo <at> gnu.org>

Bug is archived. No further changes may be made.

To add a comment to this bug, you must first unarchive it, by sending
a message to control AT debbugs.gnu.org, with unarchive 44327 in the body.
You can then email your comments to 44327 AT debbugs.gnu.org in the normal way.

Toggle the display of automated, internal messages from the tracker.

View this report as an mbox folder, status mbox, maintainer mbox


Report forwarded to bug-guix <at> gnu.org:
bug#44327; Package guix. (Fri, 30 Oct 2020 11:19:03 GMT) Full text and rfc822 format available.

Acknowledgement sent to Zhu Zihao <all_but_last <at> 163.com>:
New bug report received and forwarded. Copy sent to bug-guix <at> gnu.org. (Fri, 30 Oct 2020 11:19:03 GMT) Full text and rfc822 format available.

Message #5 received at submit <at> debbugs.gnu.org (full text, mbox):

From: Zhu Zihao <all_but_last <at> 163.com>
To: bug-guix <at> gnu.org
Subject: `guix install` doesn't warn about collison in profile
Date: Fri, 30 Oct 2020 19:17:46 +0800
[Message part 1 (text/plain, inline)]
In commit ba60bbd4370570ff03a16c63af051be06f22658e. Try command

  guix install emacs && guix install emacs-xwidgets

These two packages are conflict with each other, but I can't see any
warning message emitted(It should emit some because profile-derivation
use union-build).

I also suggest to raise an error when conflict detected during building
profile to force user to resolve it.


-- 
Retrieve my PGP public key: https://meta.sr.ht/~citreu.pgp

Zihao
[signature.asc (application/pgp-signature, inline)]

Information forwarded to bug-guix <at> gnu.org:
bug#44327; Package guix. (Fri, 30 Oct 2020 16:16:02 GMT) Full text and rfc822 format available.

Message #8 received at 44327 <at> debbugs.gnu.org (full text, mbox):

From: zimoun <zimon.toutoune <at> gmail.com>
To: Zhu Zihao <all_but_last <at> 163.com>
Cc: 44327 <at> debbugs.gnu.org
Subject: Re: bug#44327: `guix install` doesn't warn about collison in profile
Date: Fri, 30 Oct 2020 17:15:27 +0100
Dear,

Thank you for the report.


On Fri, 30 Oct 2020 at 19:17, Zhu Zihao <all_but_last <at> 163.com> wrote:
> In commit ba60bbd4370570ff03a16c63af051be06f22658e. Try command
>
>   guix install emacs && guix install emacs-xwidgets

I do not know if this is really a collision since it is sequential.
Well, I agree that a warning message should be displayed.


However, note that,

        $ guix time-machine --commit=ba60bbd4 \
               -- install emacs emacs-xwidgets -p /tmp/foo
        $ guix time-machine --commit=ba60bbd4 \
               -- install emacs-xwidgets emacs -p /tmp/bar

        readlink -f /tmp/{foo,bar}/bin/emacs
        /gnu/store/xy38cgnr21j2jsb5mnn9cf91d6q67as2-emacs-xwidgets-27.1/bin/emacs-27.1
        /gnu/store/1zwmmfy1d213mrqixl36ckbzghkpqdmf-emacs-27.1/bin/emacs

which is a bug.  AFAIU.  Same with “guix package -i”.


> I also suggest to raise an error when conflict detected during building
> profile to force user to resolve it.

It should be already the case. :-)


All the best,
simon




Information forwarded to bug-guix <at> gnu.org:
bug#44327; Package guix. (Fri, 30 Oct 2020 16:20:02 GMT) Full text and rfc822 format available.

Message #11 received at 44327 <at> debbugs.gnu.org (full text, mbox):

From: Ludovic Courtès <ludo <at> gnu.org>
To: Zhu Zihao <all_but_last <at> 163.com>
Cc: 44327 <at> debbugs.gnu.org
Subject: Re: bug#44327: `guix install` doesn't warn about collison in profile
Date: Fri, 30 Oct 2020 17:18:53 +0100
Hi,

Zhu Zihao <all_but_last <at> 163.com> skribis:

> In commit ba60bbd4370570ff03a16c63af051be06f22658e. Try command
>
>   guix install emacs && guix install emacs-xwidgets
>
> These two packages are conflict with each other, but I can't see any
> warning message emitted(It should emit some because profile-derivation
> use union-build).

‘union-build’ emits a warning, but it’s only visible in build logs.

> I also suggest to raise an error when conflict detected during building
> profile to force user to resolve it.

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?

Thanks,
Ludo’.




Information forwarded to bug-guix <at> gnu.org:
bug#44327; Package guix. (Fri, 30 Oct 2020 16:31:01 GMT) Full text and rfc822 format available.

Message #14 received at 44327 <at> debbugs.gnu.org (full text, mbox):

From: zimoun <zimon.toutoune <at> gmail.com>
To: Ludovic Courtès <ludo <at> gnu.org>
Cc: 44327 <at> debbugs.gnu.org, Zhu Zihao <all_but_last <at> 163.com>
Subject: Re: bug#44327: `guix install` doesn't warn about collison in profile
Date: Fri, 30 Oct 2020 17:30:27 +0100
On Fri, 30 Oct 2020 at 17:20, Ludovic Courtès <ludo <at> gnu.org> 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. :-)



All the best,
simon




Information forwarded to bug-guix <at> gnu.org:
bug#44327; Package guix. (Sat, 31 Oct 2020 10:32:02 GMT) Full text and rfc822 format available.

Message #17 received at 44327 <at> debbugs.gnu.org (full text, mbox):

From: Ludovic Courtès <ludo <at> gnu.org>
To: zimoun <zimon.toutoune <at> gmail.com>
Cc: 44327 <at> debbugs.gnu.org, Zhu Zihao <all_but_last <at> 163.com>
Subject: Re: bug#44327: `guix install` doesn't warn about collison in profile
Date: Sat, 31 Oct 2020 11:31:24 +0100
zimoun <zimon.toutoune <at> gmail.com> skribis:

> On Fri, 30 Oct 2020 at 17:20, Ludovic Courtès <ludo <at> gnu.org> 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’.




Information forwarded to bug-guix <at> gnu.org:
bug#44327; Package guix. (Wed, 04 Nov 2020 01:48:01 GMT) Full text and rfc822 format available.

Message #20 received at 44327 <at> debbugs.gnu.org (full text, mbox):

From: Zhu Zihao <all_but_last <at> 163.com>
To: zimoun <zimon.toutoune <at> gmail.com>
Cc: 44327 <at> debbugs.gnu.org, Ludovic Courtès <ludo <at> gnu.org>
Subject: Re: bug#44327: `guix install` doesn't warn about collison in profile
Date: Wed, 04 Nov 2020 09:47:12 +0800
[Message part 1 (text/plain, inline)]
> > I also suggest to raise an error when conflict detected during building
> > profile to force user to resolve it.

> It should be already the case. :-)

IIRC the deafult collision handler of union-build is
warn-about-collision which doesn't terminate the build when collision
occured.

BTW, There's something called "priority" in Nix. The package with higher
priority in manifest will be able to override the package with lower one. 


-- 
Retrieve my PGP public key: https://meta.sr.ht/~citreu.pgp

Zihao
[signature.asc (application/pgp-signature, inline)]

Information forwarded to bug-guix <at> gnu.org:
bug#44327; Package guix. (Wed, 04 Nov 2020 17:16:03 GMT) Full text and rfc822 format available.

Message #23 received at 44327 <at> debbugs.gnu.org (full text, mbox):

From: Ludovic Courtès <ludo <at> gnu.org>
To: Zhu Zihao <all_but_last <at> 163.com>
Cc: 44327 <at> debbugs.gnu.org, zimoun <zimon.toutoune <at> gmail.com>
Subject: Re: bug#44327: `guix install` doesn't warn about collison in profile
Date: Wed, 04 Nov 2020 18:15:48 +0100
Zhu Zihao <all_but_last <at> 163.com> skribis:

>> > I also suggest to raise an error when conflict detected during building
>> > profile to force user to resolve it.
>
>> It should be already the case. :-)
>
> IIRC the deafult collision handler of union-build is
> warn-about-collision which doesn't terminate the build when collision
> occured.

We’re talking about different things.  Whatever happens during
‘union-build’ happens too late and won’t lead to user-friendly errors.

I was referring to the mechanism implemented a while back and submitted
here:

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

> BTW, There's something called "priority" in Nix. The package with higher
> priority in manifest will be able to override the package with lower one. 

My experience with it (from 8+ years ago, though) is that it was
inconvenient and not natural—as a user you don’t want to ask yourself
which package should have the highest priority, you just want to have
these things installed.

The approach we took is to error out, with a clear diagnostic, when Guix
knows beforehand that two packages cannot coexist in the same profile.

Thanks,
Ludo’.




Added tag(s) notabug. Request was from Ludovic Courtès <ludo <at> gnu.org> to control <at> debbugs.gnu.org. (Thu, 03 Dec 2020 17:14:02 GMT) Full text and rfc822 format available.

bug closed, send any further explanations to 44327 <at> debbugs.gnu.org and Zhu Zihao <all_but_last <at> 163.com> Request was from Ludovic Courtès <ludo <at> gnu.org> to control <at> debbugs.gnu.org. (Thu, 03 Dec 2020 17:14:02 GMT) Full text and rfc822 format available.

bug archived. Request was from Debbugs Internal Request <help-debbugs <at> gnu.org> to internal_control <at> debbugs.gnu.org. (Fri, 01 Jan 2021 12:24:07 GMT) Full text and rfc822 format available.

This bug report was last modified 4 years and 173 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.