'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

Debbugs page

S
S
Sergei Trofimovich wrote on 6 Feb 2017 01: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 07: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 07:18
control message for bug #25635
(address . control@debbugs.gnu.org)
87tw84ogmp.fsf@gnu.org
tags 25635 fixed
close 25635
?
Your comment

This issue is archived.

To comment on this conversation send an email to 25635@patchwise.org

To respond to this issue using the mumi CLI, first switch to it
mumi current 25635
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