Clash between guile-3.0 and guile-3.0-latest

  • Done
  • quality assurance status badge
Details
4 participants
  • divoplade
  • Leo Prikler
  • Ludovic Courtès
  • zimoun
Owner
unassigned
Submitted by
divoplade
Severity
normal
D
D
divoplade wrote on 4 Nov 2020 19:47
(address . bug-guix@gnu.org)
a49c581e5168712601aa0ca878aea7c12ff10d6a.camel@divoplade.fr
Dear guix,

I cannot add the "guile-3.0" package in any system configuration (the
part that reads (packages (append (list ... %base-packages)))). When I
do that, I get:


$ LANG=C guix system docker-image config.scm
guix system: error: profile contains conflicting entries for guile
guix system: error: first entry: guile@3.0.2
/gnu/store/18hp7flyb3yid3yp49i6qcdq0sbi5l1n-guile-3.0.2
guix system: error: second entry: guile@3.0.4
/gnu/store/ah16zr8mmfkqy23rr7jy5a842ca1q9h1-guile-3.0.4
hint: You cannot have two different versions or variants of `guile' in
the same profile.


The fix would be to deprecate guile-3.0-latest as an alias for guile-
3.0, and use the 3.0.4 version in guile-3.0.

Best regards,

divoplade
Z
Z
zimoun wrote on 4 Nov 2020 21:15
86r1p8g9pk.fsf@gmail.com
Dear,

On Wed, 04 Nov 2020 at 19:47, divoplade <d@divoplade.fr> wrote:

Toggle quote (9 lines)
> $ LANG=C guix system docker-image config.scm
> guix system: error: profile contains conflicting entries for guile
> guix system: error: first entry: guile@3.0.2
> /gnu/store/18hp7flyb3yid3yp49i6qcdq0sbi5l1n-guile-3.0.2
> guix system: error: second entry: guile@3.0.4
> /gnu/store/ah16zr8mmfkqy23rr7jy5a842ca1q9h1-guile-3.0.4
> hint: You cannot have two different versions or variants of `guile' in
> the same profile.

Which packages ’config.scm’ contain? Other said, what does the conflict
make happen?

I do not know if an option ’--allow-collisions’ makes sense here.


Toggle quote (3 lines)
> The fix would be to deprecate guile-3.0-latest as an alias for guile-
> 3.0, and use the 3.0.4 version in guile-3.0.

I have not checked, but this proposal could lead to a world rebuild.


All the best,
simon
D
D
divoplade wrote on 5 Nov 2020 08:02
93f08f3d9cbfd9d98b89d68f2fe0d7a0a3e2023c.camel@divoplade.fr
Hello Simon,

Le mercredi 04 novembre 2020 à 21:15 +0100, zimoun a écrit :
Toggle quote (4 lines)
> Which packages ’config.scm’ contain? Other said, what does the
> conflict
> make happen?

You can try with one of the examples of guix, if you don't want to risk
anything with your config! Here is lightweight-desktop.tmpl, and the
edited lightweight-desktop-with-guile.tmpl.

If you run

guix system docker-image lightweight-desktop-with-guile.tmpl

you get the error.

If you run

guix system docker-image lightweight-desktop.tmpl

it works.

Also, I must say that the problem also happens with any package that
has guile has a propagated input, but the root of the problem seems to
be guile.
;; This is an operating system configuration template
;; for a "desktop" setup without full-blown desktop
;; environments.

(use-modules (gnu) (gnu system nss) (gnu packages guile))
(use-service-modules desktop)
(use-package-modules bootloaders certs emacs emacs-xyz ratpoison suckless wm
xorg)

(operating-system
(host-name "antelope")
(timezone "Europe/Paris")
(locale "en_US.utf8")

;; Use the UEFI variant of GRUB with the EFI System
;; Partition mounted on /boot/efi.
(bootloader (bootloader-configuration
(bootloader grub-efi-bootloader)
(target "/boot/efi")))

;; Assume the target root file system is labelled "my-root",
;; and the EFI System Partition has UUID 1234-ABCD.
(file-systems (append
(list (file-system
(device (file-system-label "my-root"))
(mount-point "/")
(type "ext4"))
(file-system
(device (uuid "1234-ABCD" 'fat))
(mount-point "/boot/efi")
(type "vfat")))
%base-file-systems))

(users (cons (user-account
(name "alice")
(comment "Bob's sister")
(group "users")
(supplementary-groups '("wheel" "netdev"
"audio" "video")))
%base-user-accounts))

;; Add a bunch of window managers; we can choose one at
;; the log-in screen with F1.
(packages (append (list
;; window managers
ratpoison i3-wm i3status dmenu
emacs emacs-exwm emacs-desktop-environment
;; terminal emulator
xterm
;; for HTTPS access
nss-certs
;; Boo!
guile-3.0)
%base-packages))

;; Use the "desktop" services, which include the X11
;; log-in service, networking with NetworkManager, and more.
(services %desktop-services)

;; Allow resolution of '.local' host names with mDNS.
(name-service-switch %mdns-host-lookup-nss))
;; This is an operating system configuration template
;; for a "desktop" setup without full-blown desktop
;; environments.

(use-modules (gnu) (gnu system nss))
(use-service-modules desktop)
(use-package-modules bootloaders certs emacs emacs-xyz ratpoison suckless wm
xorg)

(operating-system
(host-name "antelope")
(timezone "Europe/Paris")
(locale "en_US.utf8")

;; Use the UEFI variant of GRUB with the EFI System
;; Partition mounted on /boot/efi.
(bootloader (bootloader-configuration
(bootloader grub-efi-bootloader)
(target "/boot/efi")))

;; Assume the target root file system is labelled "my-root",
;; and the EFI System Partition has UUID 1234-ABCD.
(file-systems (append
(list (file-system
(device (file-system-label "my-root"))
(mount-point "/")
(type "ext4"))
(file-system
(device (uuid "1234-ABCD" 'fat))
(mount-point "/boot/efi")
(type "vfat")))
%base-file-systems))

(users (cons (user-account
(name "alice")
(comment "Bob's sister")
(group "users")
(supplementary-groups '("wheel" "netdev"
"audio" "video")))
%base-user-accounts))

;; Add a bunch of window managers; we can choose one at
;; the log-in screen with F1.
(packages (append (list
;; window managers
ratpoison i3-wm i3status dmenu
emacs emacs-exwm emacs-desktop-environment
;; terminal emulator
xterm
;; for HTTPS access
nss-certs)
%base-packages))

;; Use the "desktop" services, which include the X11
;; log-in service, networking with NetworkManager, and more.
(services %desktop-services)

;; Allow resolution of '.local' host names with mDNS.
(name-service-switch %mdns-host-lookup-nss))
D
D
divoplade wrote on 5 Nov 2020 08:39
e6439be3cf9937369293886fb1766df4198875e9.camel@divoplade.fr
Le mercredi 04 novembre 2020 à 21:15 +0100, zimoun a écrit :
Toggle quote (6 lines)
> > The fix would be to deprecate guile-3.0-latest as an alias for
> > guile-
> > 3.0, and use the 3.0.4 version in guile-3.0.
>
> I have not checked, but this proposal could lead to a world rebuild.

With this fix, yes, it leads to a world rebuild, but it was marked in a
TODO anyway. I don't know if it fully solves the problem just yet,
because I'm downloading 400MB of world rebuilding with my connection at
180 KB/s, but I have good hopes!

Best regards,

divoplade
From 42e2d64533c018a61db8408b5ae22312b210f7cc Mon Sep 17 00:00:00 2001
From: divoplade <d@divoplade.fr>
Date: Thu, 5 Nov 2020 08:25:46 +0100
Subject: [PATCH] gnu: upgrade guile to 3.0.4

It is impossible to have guile-3.0 installed as a package in the system
configuration, because it is incompatible with guile-3.0-latest which is used
by the system (see bug 44452). By having the same version, it works.
---
gnu/packages/guile.scm | 16 +++-------------
1 file changed, 3 insertions(+), 13 deletions(-)

Toggle diff (42 lines)
diff --git a/gnu/packages/guile.scm b/gnu/packages/guile.scm
index 6d93d7432f..ff943dd6de 100644
--- a/gnu/packages/guile.scm
+++ b/gnu/packages/guile.scm
@@ -284,14 +284,14 @@ without requiring the source code to be rewritten.")
(package
(inherit guile-2.2)
(name "guile")
- (version "3.0.2")
+ (version "3.0.4")
(source (origin
(inherit (package-source guile-2.2))
(uri (string-append "mirror://gnu/guile/guile-"
version ".tar.xz"))
(sha256
(base32
- "12lziar4j27j9whqp2n18427q45y9ghq7gdd8lqhmj1k0lr7vi2k"))))
+ "0c8dkyvs6xbxp7rgnhkyakajzhakay7qn9kahj1mj49x5vf4fybb"))))
(arguments
;; XXX: JIT-enabled Guile crashes in obscure ways on GNU/Hurd.
(if (hurd-target?)
@@ -309,17 +309,7 @@ without requiring the source code to be rewritten.")
"share/guile/site/3.0")))))))
(define-public guile-3.0-latest
- ;; TODO: Make this 'guile-3.0' on the next rebuild cycle.
- (package
- (inherit guile-3.0)
- (version "3.0.4")
- (source (origin
- (inherit (package-source guile-3.0))
- (uri (string-append "mirror://gnu/guile/guile-"
- version ".tar.xz"))
- (sha256
- (base32
- "0c8dkyvs6xbxp7rgnhkyakajzhakay7qn9kahj1mj49x5vf4fybb"))))))
+ (deprecated-package "guile-3.0-latest" guile-3.0))
(define-public guile-next
(deprecated-package "guile-next" guile-3.0))
--
2.29.2
L
L
Leo Prikler wrote on 5 Nov 2020 11:29
bug#44452: Clash between guile-3.0 and guile-3.0-latest
(address . d@divoplade.fr)(address . 44452@debbugs.gnu.org)
2ea014b3bb38333f9a92f333708fa47f43d25029.camel@student.tugraz.at
Hi divoplade,

It is marked as a TODO exactly because it causes a world rebuild.
guile-3.0 will presumably be updated on the next core-updates merge,
where world rebuilds are acceptable, so be a bit patient until then and
use guile-3.0-latest, please :)
(Note, that you should also get guile-3.0-latest from specification-
Toggle quote (2 lines)
>package if that is a concern.)

Regards, Leo
D
D
divoplade wrote on 5 Nov 2020 15:48
(name . Leo Prikler)(address . leo.prikler@student.tugraz.at)(address . 44452@debbugs.gnu.org)
918222cbe020f41894f5c9c0d69e9d84de2d703b.camel@divoplade.fr
Hi!

Le jeudi 05 novembre 2020 à 11:29 +0100, Leo Prikler a écrit :
Toggle quote (5 lines)
> guile-3.0 will presumably be updated on the next core-updates merge,
> where world rebuilds are acceptable, so be a bit patient until then
> and
> use guile-3.0-latest, please :)

That's not presumably, that's indeed fixed in core-updates! Sorry, I
did not see it.

So it will be fixed when core-updates is merged.
Z
Z
zimoun wrote on 5 Nov 2020 16:29
(address . 44452@debbugs.gnu.org)
86lfffg6v5.fsf@gmail.com
Hi,

On Thu, 05 Nov 2020 at 15:48, divoplade <d@divoplade.fr> wrote:
Toggle quote (9 lines)
> Le jeudi 05 novembre 2020 à 11:29 +0100, Leo Prikler a écrit :
>> guile-3.0 will presumably be updated on the next core-updates merge,
>> where world rebuilds are acceptable, so be a bit patient until then
>> and
>> use guile-3.0-latest, please :)
>
> That's not presumably, that's indeed fixed in core-updates! Sorry, I
> did not see it.

Yes.

Toggle quote (2 lines)
> So it will be fixed when core-updates is merged.

And yes.


Somehow, the question are:

1. Is it a real error for the ending profile?
2. If no, does the option ’--allow-collisions’ make sense here?

And ’it’ means uses ’guile-3.0’ instead of ’guile-3.0-latest’ in the
list.


All the best,
simon
L
L
Ludovic Courtès wrote on 6 Nov 2020 11:07
(name . divoplade)(address . d@divoplade.fr)(address . 44452@debbugs.gnu.org)
875z6i23zm.fsf@gnu.org
Hi,

divoplade <d@divoplade.fr> skribis:

Toggle quote (4 lines)
> I cannot add the "guile-3.0" package in any system configuration (the
> part that reads (packages (append (list ... %base-packages)))). When I
> do that, I get:

‘%base-packages’ already contains Guile (‘guile-3.0-latest’
specifically) so maybe you just don’t need to do anything?

HTH,
Ludo’.
D
D
divoplade wrote on 6 Nov 2020 11:22
(name . Ludovic Courtès)(address . ludo@gnu.org)(address . 44452@debbugs.gnu.org)
34ed5d6ac3158347eea2a6ca5a8be5675c4abeb2.camel@divoplade.fr
Hi!

Le vendredi 06 novembre 2020 à 11:07 +0100, Ludovic Courtès a écrit :
Toggle quote (3 lines)
> ‘%base-packages’ already contains Guile (‘guile-3.0-latest’
> specifically) so maybe you just don’t need to do anything?

You're right! I just filtered out guile-3.0-latest from %base-packages
and it works!

Thank you.

divoplade
Z
Z
zimoun wrote on 1 Dec 2020 22:41
(name . divoplade)(address . d@divoplade.fr)(address . 44452@debbugs.gnu.org)
86pn3ttd9m.fsf@gmail.com
Hi,

This bug #44452 is about issue with Guile declaration.



On Fri, 06 Nov 2020 at 11:22, divoplade <d@divoplade.fr> wrote:
Toggle quote (8 lines)
> Le vendredi 06 novembre 2020 à 11:07 +0100, Ludovic Courtès a écrit :

>> ‘%base-packages’ already contains Guile (‘guile-3.0-latest’
>> specifically) so maybe you just don’t need to do anything?
>
> You're right! I just filtered out guile-3.0-latest from %base-packages
> and it works!

What is the status of this bug? I guess it can be closed, right?


All the best,
simon
D
D
divoplade wrote on 1 Dec 2020 22:56
(name . zimoun)(address . zimon.toutoune@gmail.com)(address . 44452@debbugs.gnu.org)
a5ffe1120ca45305c271bb932f4f7b42b5ff270b.camel@divoplade.fr
Hello,

Le mardi 01 décembre 2020 à 22:41 +0100, zimoun a écrit :
Toggle quote (9 lines)
> > > ‘%base-packages’ already contains Guile (‘guile-3.0-latest’
> > > specifically) so maybe you just don’t need to do anything?
> >
> > You're right! I just filtered out guile-3.0-latest from %base-
> > packages
> > and it works!
>
> What is the status of this bug? I guess it can be closed, right?

The problem is there until core-updates is merged. The workaround that
I use appears to work, but I guess it's not something that is intended.

I hope it makes things a little clearer ^^
Z
Z
zimoun wrote on 1 Dec 2020 23:19
(name . divoplade)(address . d@divoplade.fr)(address . 44452@debbugs.gnu.org)
86mtyxtbig.fsf@gmail.com
Hi,

On Tue, 01 Dec 2020 at 22:56, divoplade <d@divoplade.fr> wrote:

Toggle quote (3 lines)
> The problem is there until core-updates is merged. The workaround that
> I use appears to work, but I guess it's not something that is intended.

If the problem is fixed in core-updates, then the problem is fixed. :-)
No need to wait the merge to close this bug. IMHO.

Moreover, %base-packages already contains Guile (’guile-3.0-latest’),
therefore I am not sure to understand what the bug is about
specifically. As I said, I do not know if an option
’--allow-collisions’ makes sense here.

Anyway, please do not forget to close it. ;-)

Cheers,
simon
D
D
divoplade wrote on 2 Dec 2020 10:10
(name . zimoun)(address . zimon.toutoune@gmail.com)(address . 44452@debbugs.gnu.org)
2b467f85aaed6c1a2178278678da648e2170d6a1.camel@divoplade.fr
Le mardi 01 décembre 2020 à 23:19 +0100, zimoun a écrit :
Toggle quote (4 lines)
> Moreover, %base-packages already contains Guile (’guile-3.0-latest’),
> therefore I am not sure to understand what the bug is about
> specifically.

That's the problem. I need to remove it from %base-packages, otherwise
the packages that propagate guile 3.0.2 can't be installed.
Z
Z
zimoun wrote on 2 Dec 2020 12:11
(name . divoplade)(address . d@divoplade.fr)(address . 44452@debbugs.gnu.org)
86v9dk1mzz.fsf@gmail.com
Hi,

On Wed, 02 Dec 2020 at 10:10, divoplade <d@divoplade.fr> wrote:
Toggle quote (8 lines)
> Le mardi 01 décembre 2020 à 23:19 +0100, zimoun a écrit :
>> Moreover, %base-packages already contains Guile (’guile-3.0-latest’),
>> therefore I am not sure to understand what the bug is about
>> specifically.
>
> That's the problem. I need to remove it from %base-packages, otherwise
> the packages that propagate guile 3.0.2 can't be installed.

Sorry if I am slow, but I do not see why this use-case should be a bug.
For example,

Toggle snippet (18 lines)
$ cat /tmp/manif.scm
(use-modules (gnu packages guile))
(packages->manifest
(list
guile-3.0-latest
guile-3.0))

$ guix package -m /tmp/manif.scm -p /tmp/bug
The following packages will be installed:
guile 3.0.2
guile 3.0.4

guix package: error: profile contains conflicting entries for guile
guix package: error: first entry: guile@3.0.4 /gnu/store/ah16zr8mmfkqy23rr7jy5a842ca1q9h1-guile-3.0.4
guix package: error: second entry: guile@3.0.2 /gnu/store/18hp7flyb3yid3yp49i6qcdq0sbi5l1n-guile-3.0.2
hint: You cannot have two different versions or variants of `guile' in the same profile.

And this appends for any package providing multiversions (gcc, clang,
guile, etc.). From my understanding, it is a feature. :-)

Using the option ’--allow-collisions’ avoids the error but then the
version you get is the first in the list, which could be prone error.
That’s why I am not convinced it makes sense here.

Said explicitly, if you do not want in your profile the package X
belonging to %base-packages , do not add the %base-packages list. :-) Or
create your custom list (remove the ones you do not want). I do not see
what could done on this side. The list %base-packages is 40 packages
considered as “kind of minimal” to be able to do minimal stuff.


In one of your message, you were speaking about propagated inputs.
Which is the use-case for the option ’--allow-collisions’, IIUC. Do you
have examples of such use-cases? Something where:

Toggle snippet (7 lines)
(packages (append (list
pkg-1
pkg-2
%base-packages))

leads to an error or an unexpected result?


All the best,
simon
D
D
divoplade wrote on 2 Dec 2020 12:48
(name . zimoun)(address . zimon.toutoune@gmail.com)(address . 44452@debbugs.gnu.org)
ad1461dfbb713f82205b1986a62dc00524dc6d51.camel@divoplade.fr
Le mercredi 02 décembre 2020 à 12:11 +0100, zimoun a écrit :
Toggle quote (8 lines)
> Said explicitly, if you do not want in your profile the package X
> belonging to %base-packages , do not add the %base-packages list. :-)
> Or
> create your custom list (remove the ones you do not want). I do not
> see
> what could done on this side. The list %base-packages is 40 packages
> considered as “kind of minimal” to be able to do minimal stuff.

I would disagree on that, it contains guile 3.0.4 instead of 3.0.2.
3.0.4 is not used, and prevents the other guile packages that require
3.0.2. If it contained 3.0.2 instead, I would 100% agree with what you
said there.

But it is fixed in core-updates, so we just need to wait for core-
updates to be merged.
Z
Z
zimoun wrote on 2 Dec 2020 13:50
(name . divoplade)(address . d@divoplade.fr)(address . 44452@debbugs.gnu.org)
86k0u01ieh.fsf@gmail.com
On Wed, 02 Dec 2020 at 12:48, divoplade <d@divoplade.fr> wrote:
Toggle quote (14 lines)
> Le mercredi 02 décembre 2020 à 12:11 +0100, zimoun a écrit :
>> Said explicitly, if you do not want in your profile the package X
>> belonging to %base-packages , do not add the %base-packages list. :-)
>> Or
>> create your custom list (remove the ones you do not want). I do not
>> see
>> what could done on this side. The list %base-packages is 40 packages
>> considered as “kind of minimal” to be able to do minimal stuff.
>
> I would disagree on that, it contains guile 3.0.4 instead of 3.0.2.
> 3.0.4 is not used, and prevents the other guile packages that require
> 3.0.2. If it contained 3.0.2 instead, I would 100% agree with what you
> said there.

Again, sorry to be slow. But I really try to understand. :-) I have
been annoyed by such things about different Guile with the website [1].

What I get with 353bdae (pre-1.2) or f4450e8 (post-1.2):

Toggle snippet (5 lines)
$ guix install guile -p /tmp/guile
The following package will be installed:
guile 3.0.4

so why are you are saying 3.0.4 is not used when it is the default?


Well, if I understand correctly, your point is the inconsistency between
the default Guile (3.0-latest, i.e., currently 3.0.4) and the Guile
(3.0, i.e., currently 3.0.2) used by most packages in guile-xyz.scm,
especially when there is bytecode difference. Right?




All the best,
simon
L
L
Ludovic Courtès wrote on 3 Dec 2020 18:10
control message for bug #44452
(address . control@debbugs.gnu.org)
87r1o6byt7.fsf@gnu.org
tags 44452 notabug
close 44452
quit
?