Emacs-Guix broken due to ABI incompatibility

  • Done
  • quality assurance status badge
Details
2 participants
  • Ludovic Courtès
  • Amade Nemes Gmail
Owner
unassigned
Submitted by
Amade Nemes Gmail
Severity
normal
A
A
Amade Nemes Gmail wrote on 6 Dec 2022 18:38
emacs-guix
(address . bug-guix@gnu.org)
87mt80zaj9.fsf@gmail.com
Hello Guix Folks,

I've updated my guix version today and found that most emacs-guix
interactive commands no longer work. For example, guix-packages-by-name throws:

guix-geiser-eval: Error in evaluating guile expression: ice-9/boot-9.scm:1685:16: In procedure raise-exception:
In procedure package-license: Wrong type argument: #<package abduco@0.6 gnu/packages/abduco.scm:28 7f45f9d11f20>

similarly, guix-all-services throws:

guix-geiser-eval: Error in evaluating guile expression: ice-9/boot-9.scm:1685:16: In procedure raise-exception:
In procedure service-type-location: Wrong type argument: #<service-type account 7f45de40d7c0>

finally, guix-installed-system-packages throws:

guix-geiser-eval: Error in evaluating guile expression: ice-9/boot-9.scm:1685:16: In procedure raise-exception:
In procedure manifest-entry-name: Wrong type argument: #<<manifest-entry> name: "nss-certs" version: "3.81" output: "out" item: "/gnu/store/1klwvqm3njp070h982ydcix1gzf2zmdl-nss-certs-3.81" dependencies: () search-paths: () parent: #<promise #<procedure 7f45f99873c8 at guix/profiles.scm:576:57 ()>> properties: ()>

My guix version if following:

$ guix describe
Generation 18 Dec 06 2022 14:13:59 (current)
guix 4413512
branch: master
commit: 44135122930c8175c6a7a1b4af5b3604bbf73bf6

I haven't made any modifications to the standard configuration of
emacs-guix. Thanks for your work!

Best,
Amade
L
L
Ludovic Courtès wrote on 7 Dec 2022 18:49
(name . Amade Nemes Gmail)(address . nemesamade@gmail.com)(address . 59864@debbugs.gnu.org)
87k033hznr.fsf@gnu.org
Hi,

Amade Nemes Gmail <nemesamade@gmail.com> skribis:

Toggle quote (6 lines)
> I've updated my guix version today and found that most emacs-guix
> interactive commands no longer work. For example, guix-packages-by-name throws:
>
> guix-geiser-eval: Error in evaluating guile expression: ice-9/boot-9.scm:1685:16: In procedure raise-exception:
> In procedure package-license: Wrong type argument: #<package abduco@0.6 gnu/packages/abduco.scm:28 7f45f9d11f20>

I think this is caused by an ABI incompatibility: the ‘guix’ package is
currently at 1.4.0rc1, which doesn’t have the change made in:


However, current ‘master’ does have this change.

The ‘emacs-guix’ package is built against the ‘guix’ package; it has
inlined calls like (package-name p) to something like:

Toggle snippet (12 lines)
scheme@(guile-user)> ,optimize (package-name p)
$8 = (let ((s p))
(if (eq? (struct-vtable s)
(@@ (guix packages) <package>))
(struct-ref s 0)
(throw 'wrong-type-arg
'package-name
"Wrong type argument: ~S"
(list s)
(list s))))

But on ‘master’, <package> is a macro, not a record type descriptor;
thus, the (eq? …) expression is always false.

I’ll fix this by upgrading the ‘guix’ package and/or merging the (guix
records) bit in the ‘version-1.4.0’ branch.

Thanks,
Ludo’.
L
L
Ludovic Courtès wrote on 7 Dec 2022 18:50
control message for bug #59864
(address . control@debbugs.gnu.org)
87ilinhzn5.fsf@gnu.org
retitle 59864 Emacs-Guix broken due to ABI incompatibility
quit
L
L
Ludovic Courtès wrote on 8 Dec 2022 00:45
Re: bug#59864: emacs-guix
(name . Amade Nemes Gmail)(address . nemesamade@gmail.com)(address . 59864-done@debbugs.gnu.org)
87edtaixrl.fsf@gnu.org
Ludovic Courtès <ludo@gnu.org> skribis:

Toggle quote (3 lines)
> I’ll fix this by upgrading the ‘guix’ package and/or merging the (guix
> records) bit in the ‘version-1.4.0’ branch.

Done in 81191e3410cc00c6438f532599dd0b96d521982f.

Ludo’.
Closed
A
A
Amade Nemes Gmail wrote on 8 Dec 2022 10:31
Re: bug#59864: closed (Re: bug#59864: emacs-guix )
(address . 59864@debbugs.gnu.org)
87k032me6f.fsf@gmail.com
Hi Ludo,

Thanks for the quick reply! Unfortunately I'm still getting the same
errors after pulling in the latest guix. Here's my emacs-guix package:


amade@swift ~$ guix package --show=emacs-guix
name: emacs-guix
version: 0.5.2-6.cf5b7a4
outputs:
+ out: everything
systems: x86_64-linux i686-linux
dependencies: autoconf@2.69 automake@1.16.3 emacs-bui@1.2.1 emacs-dash@2.19.1 emacs-edit-indirect@0.1.10 emacs-geiser-guile@0.28.1 emacs-geiser@0.28.1 emacs-magit-popup@2.13.3 emacs-minimal@28.2
+ guile-gcrypt@0.4.0 guile@3.0.8 guix@1.4.0rc1-1.9ccc94a pkg-config@0.29.2 texinfo@6.7
location: gnu/packages/emacs-xyz.scm:4346:4
license: GPL 3+
synopsis: Emacs interface for GNU Guix
description: Emacs-Guix provides a visual interface, tools and features for the GNU Guix package manager. Particularly, it allows you to do various package management tasks from Emacs. To begin with, run `M-x
+ guix-about' or `M-x guix-help' command.


As you can see it's depending on the updated guix@1.4.0rc1-1.9ccc94a,
however the errors persist. Let me know I've misunderstood something,
still quite new to guix:)

Best,
Amade
A
A
Amade Nemes Gmail wrote on 9 Dec 2022 11:01
(address . 59864@debbugs.gnu.org)
87o7scx57n.fsf@gmail.com
False alarm, is working correctly today. Not sure why it was not working
previously. I guess I skipped the tried and tested "have you tried
turning it off and on again?" troubleshooting step:)

Amade Nemes Gmail <nemesamade@gmail.com> writes:

Toggle quote (33 lines)
> Hi Ludo,
>
> Thanks for the quick reply! Unfortunately I'm still getting the same
> errors after pulling in the latest guix. Here's my emacs-guix package:
>
>
> amade@swift ~$ guix package --show=emacs-guix
> name: emacs-guix
> version: 0.5.2-6.cf5b7a4
> outputs:
> + out: everything
> systems: x86_64-linux i686-linux
> dependencies: autoconf@2.69 automake@1.16.3 emacs-bui@1.2.1
> emacs-dash@2.19.1 emacs-edit-indirect@0.1.10 emacs-geiser-guile@0.28.1
> emacs-geiser@0.28.1 emacs-magit-popup@2.13.3 emacs-minimal@28.2
> + guile-gcrypt@0.4.0 guile@3.0.8 guix@1.4.0rc1-1.9ccc94a pkg-config@0.29.2 texinfo@6.7
> location: gnu/packages/emacs-xyz.scm:4346:4
> homepage: https://guix.gnu.org
> license: GPL 3+
> synopsis: Emacs interface for GNU Guix
> description: Emacs-Guix provides a visual interface, tools and
> features for the GNU Guix package manager. Particularly, it allows
> you to do various package management tasks from Emacs. To begin with,
> run `M-x
> + guix-about' or `M-x guix-help' command.
>
>
> As you can see it's depending on the updated guix@1.4.0rc1-1.9ccc94a,
> however the errors persist. Let me know I've misunderstood something,
> still quite new to guix:)
>
> Best,
> Amade
?