For now build machines have guix-daemon "--max-jobs" option unset, which means
that at most one job is allowed to be built by the daemon. By setting max-jobs
to 20, we should be able to make better use of berlin build-machines.
* hydra/modules/sysadmin/build-machines.scm (berlin-new-build-machine-os): Add
max-jobs, max-cores and build-accounts-to-max-jobs-ratio arguments. Pass them
to "guix-configuration" record.
* hydra/berlin-nodes.scm: Adapt accordingly to allow at most 20 concurrent
jobs.
* hydra/modules/sysadmin/web.scm (build-program): Use the latest Guile as we
are including Guix modules, which are compiled with a later Guile than the one
used by "program-file".
* hydra/modules/sysadmin/build-machines.scm (childhurd-ip?): New
procedure.
(berlin-new-build-machine-os): Add #:childhurd parameter. If set, add
a Childhurd service.
* hydra/machines-for-berlin.scm (x86_64->childhurd): New procedure.
(x86_64): Use them to define childhurd offload machines.
* hydra/berlin-nodes.scm: Add Childhurd service to the first two
nodes.
* hydra/modules/sysadmin/services.scm (%goggles-irc-log-directory): New
varaible.
(%goggles-activation): Create it and chmod it.
(goggles-shepherd-services): Add it to #:mappings.
* hydra/modules/sysadmin/services.scm (cuirass-specs): Set iso9660-image build
output type to "ISO-9660". It will now be displayed by Cuirass in the Web
interface.
Cuirass recently gained build output support. This means that it is possible
to indicate from the specifications which files from a job output should be
made available for download via the Web UI.
Use it to make ISO9660 images available for download.
* hydra/modules/sysadmin/services.scm (cuirass-specs): Add build-outputs
support.
Support selecting specifications by branch, so that Bayfront can be
configured only to build master.
* hydra/modules/sysadmin/services.scm (cuirass-specs): Support
selecting specifications by branch.
(frontend-services): Add a #:branches parameter, and pass this to
cuirass-specs.
* hydra/modules/sysadmin/services.scm (cleanup-cuirass-roots): Add
iso9660-image derivations to clean-up.
This is a follow-up of f19cf27c2b9ff92e2c0fd931ef7fde39c376adaa0..
So that bayfront can have more build accounts.
* hydra/modules/sysadmin/services.scm (guix-daemon-config): Add
#:build-accounts-to-max-jobs-ratio as a parameter.
(frontend-services): Add #:build-accounts-to-max-jobs-ratio as a
parameter, and pass the value to guix-daemon-config.
* hydra/modules/sysadmin/services.scm (not-config?): New procedure.
(cleanup-cuirass-roots): Wrap gexp in 'with-extensions' and
'with-imported-modules'.
[root-target, derivation-referrers, delete-gc-root-for-derivation]: New
procedures. Delete GC roots for the referrers of DELETED.
Arguments to 'file-system-fold' now preserve RESULT.
* hydra/modules/sysadmin/services.scm (cleanup-cuirass-roots)[handle-gc-root]:
Rename last argument to 'deleted'. Cons FILE to DELETED when it's
actually deleted.
[deleted]: New variable.
Iterate over it to create "/gnu/big-stuff".
Reported by Christopher Baines <mail@cbaines.net>.
* hydra/modules/sysadmin/services.scm (cleanup-cuirass-roots):
Remove *-installation in addition to *-disk-image.
* hydra/modules/sysadmin/services.scm (guix-daemon-config): Set
'build-accounts' to 4 times MAX-JOBS. Bayfront without offloading was
hitting its max number of build users.
This is a machine run by Hetzner, managed by Christopher Baines. It
currently runs an instance of the Guix Data Service.
* hydra/modules/sysadmin/dns.scm (guix.gnu.org.zone): Change "data" to
point at 78.47.68.4, and update the serial.
This matches what 'machines-for-berlin.scm' says.
* hydra/modules/sysadmin/build-machines.scm (berlin-build-machine-os):
Add #:emulated-architectures. Add 'qemu-binfmt-service' only when
EMULATED-ARCHITECTURES is non-empty.
* hydra/berlin-nodes.scm (system-for): Pass #:emulated-architectures to
'berlin-build-machine-os'.