'guix refresh' does not work for packages with multiple URIs (python-cram is one example)

  • Done
  • quality assurance status badge
Details
2 participants
  • Ludovic Courtès
  • Sergei Trofimovich
Owner
unassigned
Submitted by
Sergei Trofimovich
Severity
normal
S
S
Sergei Trofimovich wrote on 6 Feb 2017 10:19
(address . bug-guix@gnu.org)
20170206090220.5d01b14e@sf
[had to corrupt URIs to get past spam filter]

Noticed by accident when ran 'guix refresh' (global refreh).

Full quick reproducer is [1].

The trigger seems to be '(uri (list' nesting:

gnu/packages/python.scm:
(define-public python-cram
(package
(name "python-cram")
(version "0.7")
(home-page "https://...")
(source (origin
(method url-fetch)
(uri (list (string-append home-page "cram-"
version ".tar.gz")
(pypi-uri "cram" version)))
(sha256
(base32
"0bvz6fwdi55rkrz3f50zsy35gvvwhlppki2yml5bj5ffy9d499vx"))))

A few issues here:
- in [1] it does not tell which package it is.
- in full 'guix refresh' run the first error aborts whole process.
would be nice to have a mode which proceeds even in face of errors

[1]: ~/dev/git/guix $ ./pre-inst-env guix refresh python-cram
;;; note: source file /home/slyfox/dev/git/guix/guix/import/pypi.scm
;;; newer than compiled /home/slyfox/dev/git/guix/guix/import/pypi.go
Backtrace:
In ice-9/boot-9.scm:
66: 19 [call-with-prompt prompt0 ...]
In ice-9/eval.scm:
432: 18 [eval # #]
In ice-9/boot-9.scm:
2404: 17 [save-module-excursion #<procedure 1fd5900 at ice-9/boot-9.scm:4051:3 ()>]
4056: 16 [#<procedure 1fd5900 at ice-9/boot-9.scm:4051:3 ()>]
1727: 15 [%start-stack load-stack ...]
1732: 14 [#<procedure 1fe8bd0 ()>]
In unknown file:
?: 13 [primitive-load "/home/slyfox/dev/git/guix/scripts/guix"]
In guix/ui.scm:
1228: 12 [run-guix-command refresh "python-cram"]
In ice-9/boot-9.scm:
160: 11 [catch srfi-34 #<procedure 59c8100 at guix/ui.scm:432:2 ()> ...]
160: 10 [catch system-error ...]
In guix/scripts/refresh.scm:
442: 9 [#<procedure 4bf00f0 at guix/scripts/refresh.scm:441:4 ()>]
462: 8 [#<procedure 3082c60 at guix/scripts/refresh.scm:442:6 ()>]
In srfi/srfi-1.scm:
616: 7 [for-each #<procedure 479d8d0 at guix/scripts/refresh.scm:462:22 (t-1378592)> ...]
In guix/scripts/refresh.scm:
288: 6 [check-for-package-update # # # ...]
In ice-9/boot-9.scm:
160: 5 [catch srfi-34 #<procedure 5c24300 at ice-9/eval.scm:416:20 ()> ...]
In ice-9/eval.scm:
411: 4 [eval # #]
387: 3 [eval # #]
387: 2 [eval # #]
In guix/utils.scm:
569: 1 [file-sans-extension #]
In unknown file:
?: 0 [string-rindex # #\. #<undefined> ...]

ERROR: In procedure string-rindex:
ERROR: In procedure string-index-right: Wrong type argument in position 1 (expecting string): ("https://..." "https://...")

--

Sergei
-----BEGIN PGP SIGNATURE-----

iEYEARECAAYFAliYP7wACgkQcaHudmEf86o37gCfTeq3P9TdzZJTlMC6nJoesoOK
wyYAnRyw0D3wt5GYeRiGfXsXQZT+0wV4
=KPdb
-----END PGP SIGNATURE-----


L
L
Ludovic Courtès wrote on 8 Feb 2017 16:18
(name . Sergei Trofimovich)(address . slyfox@inbox.ru)(address . 25635@debbugs.gnu.org)
87vaskogn7.fsf@gnu.org
Hi Sergei,

Sergei Trofimovich <slyfox@inbox.ru> skribis:

Toggle quote (41 lines)
> [1]: ~/dev/git/guix $ ./pre-inst-env guix refresh python-cram
> ;;; note: source file /home/slyfox/dev/git/guix/guix/import/pypi.scm
> ;;; newer than compiled /home/slyfox/dev/git/guix/guix/import/pypi.go
> Backtrace:
> In ice-9/boot-9.scm:
> 66: 19 [call-with-prompt prompt0 ...]
> In ice-9/eval.scm:
> 432: 18 [eval # #]
> In ice-9/boot-9.scm:
> 2404: 17 [save-module-excursion #<procedure 1fd5900 at ice-9/boot-9.scm:4051:3 ()>]
> 4056: 16 [#<procedure 1fd5900 at ice-9/boot-9.scm:4051:3 ()>]
> 1727: 15 [%start-stack load-stack ...]
> 1732: 14 [#<procedure 1fe8bd0 ()>]
> In unknown file:
> ?: 13 [primitive-load "/home/slyfox/dev/git/guix/scripts/guix"]
> In guix/ui.scm:
> 1228: 12 [run-guix-command refresh "python-cram"]
> In ice-9/boot-9.scm:
> 160: 11 [catch srfi-34 #<procedure 59c8100 at guix/ui.scm:432:2 ()> ...]
> 160: 10 [catch system-error ...]
> In guix/scripts/refresh.scm:
> 442: 9 [#<procedure 4bf00f0 at guix/scripts/refresh.scm:441:4 ()>]
> 462: 8 [#<procedure 3082c60 at guix/scripts/refresh.scm:442:6 ()>]
> In srfi/srfi-1.scm:
> 616: 7 [for-each #<procedure 479d8d0 at guix/scripts/refresh.scm:462:22 (t-1378592)> ...]
> In guix/scripts/refresh.scm:
> 288: 6 [check-for-package-update # # # ...]
> In ice-9/boot-9.scm:
> 160: 5 [catch srfi-34 #<procedure 5c24300 at ice-9/eval.scm:416:20 ()> ...]
> In ice-9/eval.scm:
> 411: 4 [eval # #]
> 387: 3 [eval # #]
> 387: 2 [eval # #]
> In guix/utils.scm:
> 569: 1 [file-sans-extension #]
> In unknown file:
> ?: 0 [string-rindex # #\. #<undefined> ...]
>
> ERROR: In procedure string-rindex:
> ERROR: In procedure string-index-right: Wrong type argument in position 1 (expecting string): ("https://..." "https://...")

Fixed in 4eaac4b722b180b433b75127a30b871aaf9f0913, thanks!

Ludo’.
L
L
Ludovic Courtès wrote on 8 Feb 2017 16:18
control message for bug #25635
(address . control@debbugs.gnu.org)
87tw84ogmp.fsf@gnu.org
tags 25635 fixed
close 25635
?