(web uri) ABI incompatibility in 2.2.3 leads to 'guix pull' breakage

  • Done
  • quality assurance status badge
Details
2 participants
  • Ludovic Courtès
  • Vagrant Cascadian
Owner
unassigned
Submitted by
Vagrant Cascadian
Severity
important

Debbugs page

Vagrant Cascadian wrote 7 years ago
challenge Backtraces
(address . bug-guix@gnu.org)
87wp22w0bw.fsf@aikidev.net
After a recent guix pull, I'm getting tracebacks when attempting to run
guix challenge.

I tried switching subsititues to a local caching proxy, not sure if that
could possibly break anything. But after switching back to using the
substitutes directly, the problem still persists.

$ guix --version
guix (GNU guix) 1fa37d1b55b1d25a9d20c7b50a531b763e7a1398

$ guix challenge --substitute-urls="https://berlin.guixsd.orghttps://mirror.hydra.gnu.org" linux-libre
Backtrace:
12 (primitive-load "/gnu/store/sy84f3kbjj2f2nl1ljbdcmsqrz8…")
In guix/ui.scm:
1452:12 11 (run-guix-command _ . _)
In ice-9/boot-9.scm:
837:9 10 (catch _ _ #<procedure 7f185b219070 at guix/ui.scm:513…> …)
837:9 9 (catch _ _ #<procedure 7f185b219088 at guix/ui.scm:611…> …)
837:9 8 (catch _ _ #<procedure 7f1857f1bd70 at guix/scripts/ch…> …)
In guix/scripts/challenge.scm:
304:13 7 (_)
In guix/store.scm:
1444:24 6 (run-with-store _ _ #:guile-for-build _ #:system _ # _)
In guix/scripts/challenge.scm:
305:15 5 (_ _)
149:34 4 (_ _)
In srfi/srfi-1.scm:
679:15 3 (append-map _ _ . _)
592:17 2 (map1 ("https://berlin.guixsd.org"; "https://mirror.hy…"))
In guix/scripts/substitute.scm:
725:23 1 (lookup-narinfos "https://berlin.guixsd.org"; _)
697:16 0 (fetch-narinfos "https://berlin.guixsd.org"; ("/gnu/sto…"))

guix/scripts/substitute.scm:697:16: In procedure fetch-narinfos:
guix/scripts/substitute.scm:697:16: Wrong type to apply: #<syntax-transformer uri?>


live well,
vagrant
-----BEGIN PGP SIGNATURE-----

iQIzBAEBCgAdFiEEcDardHbDotegGFCHt4uC1IFLkbYFAlol11MACgkQt4uC1IFL
kbZKOA/5AUr4/lDVFUTNm10PP8NNInrq8dYlyqxDaHCpJ530I3AkCrFKy4bxlFvJ
1GLx+5UiqNlpkpWcuZjezvzcNpBiRrkPVE9ruJ8XtoBS9GZrEVk/LccgQJ2DdAk5
WePyI/X/gHtJd5lqYyvw1RU8nL8PcNQ+Rahu8Cmi+8Gl+tglbeyHTS+OTwhkyDgl
aoFJHaJLhsq1b/qfzd0ZkK4mFPKW6e1DmiJY8mqAch4iWNbgHhNCarD8d2vJyKQD
uEjqK/31u1AwYv/0+OtpCj+PHsgYOzjlM22DSxVljrjSP6U0B43q89SgSxbmqfHQ
NoDqGUA7qXm/dtDrk9jjoaCZxIToJKmJQwm326FujdMSLlqDDVnBk284ngCsTXLl
Z2gI2xX5CecIuP6+2zMcSN6bmEXVLGyBpxRDwW84dhDPMLB807QipminXX4MCJ1D
ZX2kUk2xoUWnBCti5JV9+1taVXD7tYSqzjUVrjENURwpDPitQNQh2Wx5yHxIlSPM
dmVIWlk0p8IjdQt2eKAtfXGlXdJ28HlOxzl+BClfpTCKqR8ua3hktL0APzmzflo5
VjIwfi37iqrLq5WvP1Db5gRmFjBd2PrhKSyASitCPvkjmqB4qgGtt6M1fNmskS8o
gtFBa6L5WxX/ArkWZqP9QUPHH/TsGhY8gbYOTw37tfhynSxdZGQ=
=NxxX
-----END PGP SIGNATURE-----

Ludovic Courtès wrote 7 years ago
(name . Vagrant Cascadian)(address . vagrant@debian.org)(address . 29570@debbugs.gnu.org)
871sk8c2ra.fsf@gnu.org
Hi Vagrant,

Vagrant Cascadian <vagrant@debian.org> skribis:

Toggle quote (3 lines)
> $ guix --version
> guix (GNU guix) 1fa37d1b55b1d25a9d20c7b50a531b763e7a1398

It looks like my repo lacks this commit.

Toggle quote (2 lines)
> $ guix challenge --substitute-urls="https://berlin.guixsd.orghttps://mirror.hydra.gnu.org" linux-libre

[...]

Toggle quote (13 lines)
> In guix/scripts/challenge.scm:
> 305:15 5 (_ _)
> 149:34 4 (_ _)
> In srfi/srfi-1.scm:
> 679:15 3 (append-map _ _ . _)
> 592:17 2 (map1 ("https://berlin.guixsd.org"; "https://mirror.hy…"))
> In guix/scripts/substitute.scm:
> 725:23 1 (lookup-narinfos "https://berlin.guixsd.org"; _)
> 697:16 0 (fetch-narinfos "https://berlin.guixsd.org"; ("/gnu/sto…"))
>
> guix/scripts/substitute.scm:697:16: In procedure fetch-narinfos:
> guix/scripts/substitute.scm:697:16: Wrong type to apply: #<syntax-transformer uri?>

This is due to an ABI breakage in the (web uri) module that Guile
provides: in 2.2.3 ‘uri?’ is a procedure, but in 2.2.2 it’s a macro.

As it turns out, build-aux/build-self.scm (which is what ‘guix pull’
evaluates) selects the latest Guile 2.2.x, so it builds with 2.2.3, but
then you run that code with 2.2.2, hence the error.

Let’s see how we can work around it…

Ludo’.
Ludovic Courtès wrote 7 years ago
control message for bug #29570
(address . control@debbugs.gnu.org)
87zi6wao3x.fsf@gnu.org
retitle 29570 (web uri) ABI incompatibility in 2.2.3 leads to 'guix pull' breakage
Ludovic Courtès wrote 7 years ago
(address . control@debbugs.gnu.org)
87y3mgao3q.fsf@gnu.org
severity 29570 important
Ludovic Courtès wrote 7 years ago
Re: bug#29570: challenge Backtraces
(name . Vagrant Cascadian)(address . vagrant@debian.org)(address . 29570-done@debbugs.gnu.org)
87d13qbjgh.fsf@gnu.org
Hi,

ludo@gnu.org (Ludovic Courtès) skribis:

Toggle quote (7 lines)
> This is due to an ABI breakage in the (web uri) module that Guile
> provides: in 2.2.3 ‘uri?’ is a procedure, but in 2.2.2 it’s a macro.
>
> As it turns out, build-aux/build-self.scm (which is what ‘guix pull’
> evaluates) selects the latest Guile 2.2.x, so it builds with 2.2.3, but
> then you run that code with 2.2.2, hence the error.

I’ve pushed a workaround as commit
66f217b43aca603326dab17d4dda1a398bf4fb8c.

Thanks,
Ludo’.
Closed
?
Your comment

This issue is archived.

To comment on this conversation send an email to 29570@debbugs.gnu.org

To respond to this issue using the mumi CLI, first switch to it
mumi current 29570
Then, you may apply the latest patchset in this issue (with sign off)
mumi am -- -s
Or, compose a reply to this issue
mumi compose
Or, send patches to this issue
mumi send-email *.patch
You may also tag this issue. See list of standard tags. For example, to set the confirmed and easy tags
mumi command -t +confirmed -t +easy
Or, remove the moreinfo tag and set the help tag
mumi command -t -moreinfo -t +help