GNU bug report logs -
#36378
Guix Cuirass Issue with Input channels
Previous Next
Full log
View this message in rfc822 format
Hi Reza and Ludo,
Reza Alizadeh Majd <r.majd <at> pantherx.org> writes:
> adding additional inputs to cuirass specification with name started
> with `p` letter, fails the evaluation of specification.
Thank you for reporting this! It actually fails with names that come
after the first input (in this case: "guix") in alphabetical order.
> considering following specification:
>
> (list
> '((#:name . "hello-spec")
> (#:load-path-inputs . ("guix"))
> (#:package-path-inputs . ())
> (#:proc-input ."guix")
> (#:proc-file . "build-aux/cuirass/gnu-system.scm")
> (#:proc . cuirass-jobs)
> (#:proc-args . ((subset . "hello")
> (systems . ("x86_64-linux"))))
> (#:inputs . (((#:name . "guix")
> (#:url . "git://git.savannah.gnu.org/guix.git")
> (#:load-path . ".")
> (#:branch . "master")
> (#:no-compile? . #t))
> ((#:name . "pkginput")
> (#:url . "git://git.savannah.gnu.org/guix/guix-cuirass.git")
> (#:load-path . ".")
> (#:branch . "master")
> (#:no-compile? . #t))
> ))))
It's because the 'proc' you use (CUIRASS-JOBS, from the Guix
repository), interprets the first input it finds as a Guix checkout.
There's a comment about this[1]:
;; Extract metadata about the 'guix' checkout. Its key in ARGUMENTS may
;; vary, so pick up the first one that's neither 'subset' nor 'systems'.
The argument list you sent to 'proc' looked like this:
'((pkginput
(no-compile? . #t)
(load-path . ".")
(revision . "8bf095fc503ddac18a9457e1379e497ae16324fa")
(file-name . "/gnu/store/fcq3axxh5kpva6kphi58ibklfz4wnbnr-cuirass-8bf095f"))
(guix
(no-compile? . #t)
(load-path . ".")
(revision . "3e9ca3358a8cfffaeb4997389bb767065e70876a")
(file-name . "/gnu/store/5nmsf6464vhdifmvzassp3b3cwfis5j4-guix-3e9ca33"))
(subset . "hello"))
so the 'proc' thought 'pkginput' was a Guix checkout and tried to build
Guix with a Cuirass source, which obviously doesn't work. (It fails
line 60 of [1].)
If the input name were "cuirass" instead of "pkginput", you would have
sent:
'((guix
(no-compile? . #t)
(load-path . ".")
(revision . "3e9ca3358a8cfffaeb4997389bb767065e70876a")
(file-name . "/gnu/store/5nmsf6464vhdifmvzassp3b3cwfis5j4-guix-3e9ca33"))
(cuirass
(no-compile? . #t)
(load-path . ".")
(revision . "8bf095fc503ddac18a9457e1379e497ae16324fa")
(file-name . "/gnu/store/fcq3axxh5kpva6kphi58ibklfz4wnbnr-cuirass-8bf095f"))
(subset . "hello"))
And it would have worked.
So it's indeed a bug in Guix, introduced by commit
b5f8c2c88543158e8aca76aa98f9009f6b9e743a (hydra: Compute jobs in an
inferior). We can't just take the first input we find, build it and
open an inferior for it. I believe we should take the input whose name
is "guix" (as we do with manifests[2]).
What do you think?
Clément
[1]: https://git.savannah.gnu.org/cgit/guix.git/tree/build-aux/hydra/gnu-system.scm#n40
[2]: https://git.savannah.gnu.org/cgit/guix.git/tree/gnu/ci.scm#n361
This bug report was last modified 5 years and 168 days ago.
Previous Next
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.