'guix refresh -u' fails for packages using 'git-fetch'

  • Done
  • quality assurance status badge
Details
2 participants
  • Gábor Boskovits
  • Ludovic Courtès
Owner
unassigned
Submitted by
Gábor Boskovits
Severity
normal
G
G
Gábor Boskovits wrote on 7 Mar 2019 09:28
Guix refresh -u fails
(address . bug-guix@gnu.org)
CAE4v=ph1zTMNvUNjyYkz95-ZU_2ujpn=1gB31ZYf1TK6O4NmQg@mail.gmail.com
guix refresh -u unibilium
fails with the following backtrace:
gabriel@guixsd ~/guix$ ./pre-inst-env guix refresh -u unibilium
Backtrace:
14 (apply-smob/1 #<catch-closure 728c20>)
In ice-9/boot-9.scm:
705:2 13 (call-with-prompt _ _ #<procedure default-prompt-handle…>)
In ice-9/eval.scm:
619:8 12 (_ #(#(#<directory (guile-user) 7ae140>)))
In guix/ui.scm:
1654:12 11 (run-guix-command _ . _)
In ice-9/boot-9.scm:
829:9 10 (catch _ _ #<procedure 7f7f2456b9b8 at guix/ui.scm:624…> …)
829:9 9 (catch _ _ #<procedure 7f7f2456b9d0 at guix/ui.scm:750…> …)
In guix/scripts/refresh.scm:
513:8 8 (_)
In guix/store.scm:
1737:24 7 (run-with-store _ _ #:guile-for-build _ #:system _ # _)
In guix/scripts/refresh.scm:
531:16 6 (_ _)
In srfi/srfi-1.scm:
640:9 5 (for-each #<procedure 289bd20 at guix/scripts/refresh.…> …)
In guix/scripts/refresh.scm:
301:20 4 (update-package #<store-connection 256.99 93be10> #<pa…> …)
In guix/upstream.scm:
374:22 3 (package-update #<store-connection 256.99 93be10> _ _ # _)
302:17 2 (download-tarball #<store-connection 256.99 93be10> #f # …)
In guix/download.scm:
568:55 1 (download-to-store #<store-connection 256.99 93be10> #f …)
In unknown file:
0 (basename #f #<undefined>)

ERROR: In procedure basename:
In procedure scm_to_utf8_stringn: Wrong type argument in position 1
(expecting string): #f

guix describe output:
gabriel@guixsd ~/guix$ guix describe
41 generáció márc 04 2019 11:53:03 (jelenlegi)
guix 3499638
branch: master
commit: 3499638ef87191d458f3e07455a9a0fefe76c085

guix refresh unibilium works just fine.
L
L
Ludovic Courtès wrote on 8 Mar 2019 23:27
control message for bug #34778
(address . control@debbugs.gnu.org)
87lg1pc88i.fsf@gnu.org
retitle 34778 'guix refresh -u' fails for packages using 'git-fetch'
L
L
Ludovic Courtès wrote on 8 Mar 2019 23:30
Re: bug#34778: Guix refresh -u fails
(name . Gábor Boskovits)(address . boskovits@gmail.com)(address . 34778-done@debbugs.gnu.org)
87h8cdc83y.fsf@gnu.org
Hi Gábor,

Gábor Boskovits <boskovits@gmail.com> skribis:

Toggle quote (36 lines)
> guix refresh -u unibilium
> fails with the following backtrace:
> gabriel@guixsd ~/guix$ ./pre-inst-env guix refresh -u unibilium
> Backtrace:
> 14 (apply-smob/1 #<catch-closure 728c20>)
> In ice-9/boot-9.scm:
> 705:2 13 (call-with-prompt _ _ #<procedure default-prompt-handle…>)
> In ice-9/eval.scm:
> 619:8 12 (_ #(#(#<directory (guile-user) 7ae140>)))
> In guix/ui.scm:
> 1654:12 11 (run-guix-command _ . _)
> In ice-9/boot-9.scm:
> 829:9 10 (catch _ _ #<procedure 7f7f2456b9b8 at guix/ui.scm:624…> …)
> 829:9 9 (catch _ _ #<procedure 7f7f2456b9d0 at guix/ui.scm:750…> …)
> In guix/scripts/refresh.scm:
> 513:8 8 (_)
> In guix/store.scm:
> 1737:24 7 (run-with-store _ _ #:guile-for-build _ #:system _ # _)
> In guix/scripts/refresh.scm:
> 531:16 6 (_ _)
> In srfi/srfi-1.scm:
> 640:9 5 (for-each #<procedure 289bd20 at guix/scripts/refresh.…> …)
> In guix/scripts/refresh.scm:
> 301:20 4 (update-package #<store-connection 256.99 93be10> #<pa…> …)
> In guix/upstream.scm:
> 374:22 3 (package-update #<store-connection 256.99 93be10> _ _ # _)
> 302:17 2 (download-tarball #<store-connection 256.99 93be10> #f # …)
> In guix/download.scm:
> 568:55 1 (download-to-store #<store-connection 256.99 93be10> #f …)
> In unknown file:
> 0 (basename #f #<undefined>)
>
> ERROR: In procedure basename:
> In procedure scm_to_utf8_stringn: Wrong type argument in position 1
> (expecting string): #f

This is because unibilium uses ‘git-fetch’, and currently ‘guix refresh
-u’ only knows how to download tarballs, it doesn’t know how to make Git
checkouts.

Commit 0bd1498fc40820be35125cc0a62482d015b58e9b fixes the issue by at
least reporting a proper error message.

We’ll have to adjust <upstream-source> to support not just tarball URLs,
as is currently the case, but also Git references.

Thanks,
Ludo’.
Closed
?