Previously we would rely on auto-compilation of all the Guix modules.
The complete evaluation would take ~15mn on berlin.guixsd.org and
require lots of RAM. This approach should be faster since potentially
only part of the modules are rebuilt. Furthermore, as a side-effect, it
builds the derivations that 'guix pull' uses.
* build-aux/hydra/gnu-system.scm: Remove 'eval-when' form.
(hydra-jobs): New procedure.
* gnu/ci.scm (package->alist, qemu-jobs, system-test-jobs)
(tarball-jobs): Return strings for the 'license' field.
* guix/self.scm (compiled-guix)[*cli-modules*]: Add (gnu ci).
These builds shouldn't take too long. Sometimes the guest kernel
crashes and the VM gets stuck; we should be able to terminate those jobs
quickly.
* build-aux/hydra/gnu-system.scm (qemu-jobs)[->alist]: Add
'max-silent-time' and 'timeout'.
(system-test-jobs)[test->thunk]: Likewise.
Previously, under Cuirass, we'd add "build-aux/cuirass/../hydra/../..".
But then, commit c45477d2a1 added this
in (gnu system vm):
(local-file (search-path %load-path
"guix/store/schema.sql"))
Since 'search-path' would not return an absolute file name, 'local-file'
would try to resolve that relative to "gnu/system", leading to:
ERROR: In procedure force:
In procedure canonicalize-path: No such file or directory: "/gnu/store/…-guix-ce573b1/gnu/system/build-aux/cuirass/../hydra/../../guix/store/schema.sql
* build-aux/hydra/gnu-system.scm <top level>: Canonicalize DIR before
adding it to %LOAD-PATH.
Fixes a regression introduced in ede121de42.
Reported by Mark H Weaver <mhw@netris.org>.
* build-aux/hydra/gnu-system.scm (job-name): Pass "-" as the second
argument to 'package-full-name'.
* build-aux/hydra/gnu-system.scm: Use (expand load eval) in 'eval-when'
clause so as to not poison a cat and to ensure %load-compiled-path is
properly set when the 'use-modules' clauses are expanded.
* build-aux/hydra/guix.scm: Likewise.
On hydra.gnu.org GUILE_LOAD_COMPILED_PATH happened to be empty so we
were fine. However on GuixSD with Cuirass, we could have a conflicting
non-empty path and .go files for some of the (guix …) and (gnu …)
modules would be taken from there.
* build-aux/hydra/gnu-system.scm: Set %load-compiled-path.
* build-aux/hydra/gnu-system.scm (%u-boot-systems): New
variable.
(%guixsd-supported-systems): Add armhf-linux.
(qemu-jobs): Use u-boot if system in %u-boot-systems.
Starting from Guile 2.2.3, '%fresh-auto-compile' does what it says and
would auto-compile everything, including the compiler (see
<https://bugs.gnu.org/29226>).
* build-aux/hydra/gnu-system.scm: Call 'compile'.
This reduces max RSS from 1.3G to 1.0G.
* guix/derivations.scm (invalidate-derivation-caches!): New procedure.
* build-aux/hydra/gnu-system.scm (hydra-jobs): Use it. Add 'format'
call.
* build-aux/hydra/gnu-system.scm (package->job): Create a 'base.' job
when PACKAGE is a member of BASE-PACKAGES.
(all-packages)[adjust]: New procedure.
Fold over %FINAL-INPUTS and add it to the result.
* build-aux/hydra/gnu-system.scm (qemu-jobs): Add 'iso9660-image .
* gnu/build/vm.scm (make-iso9660-image): New variable. Export it.
* gnu/system/vm.scm (iso9660-image): New variable. Use make-iso9660-image.
(system-disk-image): Use iso9660-image.
Fixes <http://bugs.gnu.org/26022>.
Reported by Efraim Flashner <efraim@flashner.co.il>.
* build-aux/hydra/gnu-system.scm (hydra-jobs)[cross-jobs](from-32-to-64?):
Check whether TARGET contains "64" rather than checking whether TARGET
ends in "64", which is rarely the case.
(same?): Add special case for armhf-linux.
This is a followup to commit f13f60cb26.
* build-aux/hydra/gnu-system.scm (%core-packages): Call
'%glibc-bootstrap-tarball' since it's now a thunk, not a package.
* build-aux/hydra/gnu-system.scm (%guixsd-supported-systems): New
variable.
(qemu-jobs): Use it.
(system-test-jobs): New procedure.
(hydra-jobs): Use it.
This is a followup to 49c4fd2a.
* build-aux/hydra/gnu-system.scm (package->alist): Parameterize %graft?.
(qemu-jobs)[->job]: Likewise.
(tarball-jobs)[->job]: Likewise.