guix lint -c archival icecat fails

  • Done
  • quality assurance status badge
Details
4 participants
  • Ludovic Courtès
  • Luis Felipe
  • Mark H Weaver
  • zimoun
Owner
unassigned
Submitted by
Luis Felipe
Severity
normal
L
L
Luis Felipe wrote on 21 Mar 2021 15:05
(name . bug-guix@gnu.org)(address . bug-guix@gnu.org)
00DjWsxrRUaaun4ubnIXCcKV1ocbZHFEv6ZgevcQrYBAO1hwvBl_aoe2VCps3_HXfZsB2CqQhJY2NqlDEYM7SMYfn0vbM-EllJw4Pu2H508=@protonmail.com
I get the following exception when I run the command:

????????????????????
$ guix lint -c archival icecat
Backtrace:cecat@78.8.0-guix0-preview1 [archival]...
12 (primitive-load "/home/yo/.config/guix/current/bin/guix")
In guix/ui.scm:
2164:12 11 (run-guix-command _ . _)
In ice-9/boot-9.scm:
1736:10 10 (with-exception-handler _ _ #:unwind? _ # _)
1731:15 9 (with-exception-handler #<procedure 7f2cbbe951b0 at ic…> …)
In srfi/srfi-1.scm:
634:9 8 (for-each #<procedure 7f2cbbe985c0 at guix/scripts/lin…> …)
In guix/scripts/lint.scm:
65:4 7 (run-checkers #<package icecat@78.8.0-guix0-preview1 g…> …)
In srfi/srfi-1.scm:
634:9 6 (for-each #<procedure 7f2cbcb78d50 at guix/scripts/lin…> …)
In guix/scripts/lint.scm:
74:21 5 (_ _)
In guix/lint.scm:
1225:4 4 (check-archival _)
1092:2 3 (call-with-networking-fail-safe _ _ _)
In ice-9/boot-9.scm:
1736:10 2 (with-exception-handler _ _ #:unwind? _ # _)
1669:16 1 (raise-exception _ #:continuable? _)
1667:16 0 (raise-exception _ #:continuable? _)

ice-9/boot-9.scm:1667:16: In procedure raise-exception:
In procedure bv-length: Wrong type argument in position 1 (expecting bytevector): #f
????????????????????

This is using the following Guix System

????????????????????
OS: Guix System 1ab03fb74505458e7754dce338a5da29dc754d80 x86_64
Kernel: 5.11.7-gnu

Generation 31 Mar 19 2021 13:03:16 (current)
guix 1ab03fb
branch: master
commit: 1ab03fb74505458e7754dce338a5da29dc754d80
????????????????????

More information about the cause of the exception is provided by zimoun in https://lists.gnu.org/archive/html/guix-devel/2021-03/msg00417.html.

---
Luis Felipe López Acevedo
Z
Z
zimoun wrote on 21 Mar 2021 15:23
Failure of “guix lint -c archival i cecat”
(address . 47293@debbugs.gnu.org)
868s6gvb49.fsf@gmail.com
Hi,

Indeed, there is a bug. Because the source of ’icecat’ raises a case
that is not handled by ’check-archival’ in (guix lint).

Basically in the snippet:

Toggle snippet (5 lines)
(match (lookup-content (content-hash-value hash)
(symbol->string
(content-hash-algorithm hash)))

’lookup-content’ expect a bytevector for ’content-hash’ and in the case
of ’icecat’, it returns #f. Then raises the backtrace.


For the record, compare ’icecat’ with ’hello’:

Toggle snippet (22 lines)
$ guix repl
GNU Guile 3.0.5
Copyright (C) 1995-2021 Free Software Foundation, Inc.

Guile comes with ABSOLUTELY NO WARRANTY; for details type `,show w'.
This program is free software, and you are welcome to redistribute it
under certain conditions; type `,show c' for details.

Enter `,help' for help.
scheme@(guix-user)> ,use(guix packages)
scheme@(guix-user)> ,use(guix swh)
scheme@(guix-user)> ,use(gnu packages gnuzilla)
scheme@(guix-user)> (content-hash-value (origin-hash (package-source icecat)))
$1 = #f
scheme@(guix-user)> (lookup-content (content-hash-value (origin-hash (package-source icecat))) "sha256")
ice-9/boot-9.scm:1669:16: In procedure raise-exception:
In procedure bv-length: Wrong type argument in position 1 (expecting bytevector): #f

Entering a new prompt. Type `,bt' for a backtrace or `,q' to continue.
scheme@(guix-user) [1]> ,q

then

Toggle snippet (8 lines)
scheme@(guix-user)> ,use(gnu packages base)
scheme@(guix-user)> (content-hash-value (origin-hash (package-source hello)))
$3 = #vu8(49 224 102 19 122 150 38 118 232 159 105 209 182 83 130 222 149 167 239 125 145 75 140 185 86 244 30 167 46 15 81 107)
scheme@(guix-user)> (lookup-content (content-hash-value (origin-hash (package-source hello))) "sha256")
$2 = #<<content> checksums: (("sha1" . #vu8(247 190 191 111 156 98 162 41 94 136 159 102 224 92 233 191 174 217 172 227)) ("blake2s256" . #vu8(4 255 253 50 132 65 210 22 201 36 146 173 114 211 115 136 216 199 120 137 136 11 6 145 81 41 135 134 253 72 216 137)) ("sha1_git" . #vu8(202 230 179 60 195 63 170 253 45 107 216 108 107 66 115 249 51 140 105 194)) ("sha256" . #vu8(49 224 102 19 122 150 38 118 232 159 105 209 182 83 130 222 149 167 239 125 145 75 140 185 86 244 30 167 46 15 81 107))) data-url: "https://archive.softwareheritage.org/api/1/content/sha256:31e066137a962676e89f69d1b65382de95a7ef7d914b8cb956f41ea72e0f516b/raw/" file-type-url: "https://archive.softwareheritage.org/api/1/content/sha256:31e066137a962676e89f69d1b65382de95a7ef7d914b8cb956f41ea72e0f516b/filetype/" language-url: "https://archive.softwareheritage.org/api/1/content/sha256:31e066137a962676e89f69d1b65382de95a7ef7d914b8cb956f41ea72e0f516b/language/" length: 725946 license-url: "https://archive.softwareheritage.org/api/1/content/sha256:31e066137a962676e89f69d1b65382de95a7ef7d914b8cb956f41ea72e0f516b/license/">


Cheers,
simon
M
M
Mark H Weaver wrote on 21 Mar 2021 20:39
Re: bug#47293: Failure of “guix lint -c archival icecat”
878s6gl2it.fsf@netris.org
zimoun <zimon.toutoune@gmail.com> writes:
Toggle quote (14 lines)
> Indeed, there is a bug. Because the source of ’icecat’ raises a case
> that is not handled by ’check-archival’ in (guix lint).
>
> Basically in the snippet:
>
> --8<---------------cut here---------------start------------->8---
> (match (lookup-content (content-hash-value hash)
> (symbol->string
> (content-hash-algorithm hash)))
> --8<---------------cut here---------------end--------------->8---
>
> ’lookup-content’ expect a bytevector for ’content-hash’ and in the case
> of ’icecat’, it returns #f. Then raises the backtrace.

Icecat uses an unusual thing called a "computed origin", which means
that its source is itself built from other sources. The only two places
in Guix where this is currently done is 'icecat' and 'linux-libre'.

See 'computed-origin-method' and 'icecat-source' in
gnu/packages/gnuzilla.scm, and 'computed-origin-method' and
'make-linux-libre-source' in gnu/packages/linux.scm.

Mark
L
L
Ludovic Courtès wrote on 26 Mar 2021 00:25
Re: bug#47293: guix lint -c archival icecat fails
(name . Luis Felipe)(address . luis.felipe.la@protonmail.com)
87y2ea3jfc.fsf@gnu.org
Hi,

Luis Felipe <luis.felipe.la@protonmail.com> skribis:

Toggle quote (27 lines)
> $ guix lint -c archival icecat
> Backtrace:cecat@78.8.0-guix0-preview1 [archival]...
> 12 (primitive-load "/home/yo/.config/guix/current/bin/guix")
> In guix/ui.scm:
> 2164:12 11 (run-guix-command _ . _)
> In ice-9/boot-9.scm:
> 1736:10 10 (with-exception-handler _ _ #:unwind? _ # _)
> 1731:15 9 (with-exception-handler #<procedure 7f2cbbe951b0 at ic…> …)
> In srfi/srfi-1.scm:
> 634:9 8 (for-each #<procedure 7f2cbbe985c0 at guix/scripts/lin…> …)
> In guix/scripts/lint.scm:
> 65:4 7 (run-checkers #<package icecat@78.8.0-guix0-preview1 g…> …)
> In srfi/srfi-1.scm:
> 634:9 6 (for-each #<procedure 7f2cbcb78d50 at guix/scripts/lin…> …)
> In guix/scripts/lint.scm:
> 74:21 5 (_ _)
> In guix/lint.scm:
> 1225:4 4 (check-archival _)
> 1092:2 3 (call-with-networking-fail-safe _ _ _)
> In ice-9/boot-9.scm:
> 1736:10 2 (with-exception-handler _ _ #:unwind? _ # _)
> 1669:16 1 (raise-exception _ #:continuable? _)
> 1667:16 0 (raise-exception _ #:continuable? _)
>
> ice-9/boot-9.scm:1667:16: In procedure raise-exception:
> In procedure bv-length: Wrong type argument in position 1 (expecting bytevector): #f

Fixed in 4ac3e010c9cbd9c09d41dbf472e45d57505a73ce, thanks!

Ludo’.
Closed
?