diff options
Diffstat (limited to 'build-aux/hydra/gnu-system.scm')
-rw-r--r-- | build-aux/hydra/gnu-system.scm | 57 |
1 files changed, 40 insertions, 17 deletions
diff --git a/build-aux/hydra/gnu-system.scm b/build-aux/hydra/gnu-system.scm index 19371be3e9..8178871747 100644 --- a/build-aux/hydra/gnu-system.scm +++ b/build-aux/hydra/gnu-system.scm @@ -1,5 +1,5 @@ ;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2012, 2013, 2014, 2015, 2016, 2017 Ludovic Courtès <ludo@gnu.org> +;;; Copyright © 2012, 2013, 2014, 2015, 2016, 2017, 2018 Ludovic Courtès <ludo@gnu.org> ;;; Copyright © 2017 Jan Nieuwenhuizen <janneke@gnu.org> ;;; ;;; This file is part of GNU Guix. @@ -51,6 +51,8 @@ ((guix scripts system) #:select (read-operating-system)) ((guix scripts pack) #:select (lookup-compressor self-contained-tarball)) + (gnu bootloader) + (gnu bootloader u-boot) (gnu packages) (gnu packages gcc) (gnu packages base) @@ -135,7 +137,10 @@ SYSTEM." "i686-w64-mingw32")) (define %guixsd-supported-systems - '("x86_64-linux" "i686-linux")) + '("x86_64-linux" "i686-linux" "armhf-linux")) + +(define %u-boot-systems + '("armhf-linux")) (define (qemu-jobs store system) "Return a list of jobs that build QEMU images for SYSTEM." @@ -159,20 +164,32 @@ system.") (expt 2 20)) (if (member system %guixsd-supported-systems) - (list (->job 'usb-image - (run-with-store store - (mbegin %store-monad - (set-guile-for-build (default-guile)) - (system-disk-image installation-os - #:disk-image-size - (* 1024 MiB))))) - (->job 'iso9660-image - (run-with-store store - (mbegin %store-monad - (set-guile-for-build (default-guile)) - (system-disk-image installation-os - #:file-system-type - "iso9660"))))) + (if (member system %u-boot-systems) + (list (->job 'flash-image + (run-with-store store + (mbegin %store-monad + (set-guile-for-build (default-guile)) + (system-disk-image + (operating-system (inherit installation-os) + (bootloader (bootloader-configuration + (bootloader u-boot-bootloader) + (target #f)))) + #:disk-image-size + (* 1024 MiB)))))) + (list (->job 'usb-image + (run-with-store store + (mbegin %store-monad + (set-guile-for-build (default-guile)) + (system-disk-image installation-os + #:disk-image-size + (* 1024 MiB))))) + (->job 'iso9660-image + (run-with-store store + (mbegin %store-monad + (set-guile-for-build (default-guile)) + (system-disk-image installation-os + #:file-system-type + "iso9660")))))) '())) (define (system-test-jobs store system) @@ -297,6 +314,12 @@ valid." (((? string?) (? string?) ...) 'list) ; only build selected list of packages (_ 'all))) ; build everything + (define systems + (match (assoc-ref arguments 'systems) + (#f %hydra-supported-systems) + ((lst ...) lst) + ((? string? str) (call-with-input-string str read)))) + (define (cross-jobs system) (define (from-32-to-64? target) ;; Return true if SYSTEM is 32-bit and TARGET is 64-bit. This hack @@ -387,4 +410,4 @@ valid." '())) (else (error "unknown subset" subset)))) - %hydra-supported-systems))) + systems))) |