Subject: [PATCH] hydra: Add arm image builder.
From: Danny Milosavljevic <[email-masked]>
To: [email-masked]
Cc: Danny Milosavljevic <[email-masked]>
Date: Tue, 23 Jan 2018 00:50:12 +0100
List-Id: <debbugs-submit.debbugs.gnu.org>

* 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.
---
 build-aux/hydra/gnu-system.scm | 16 ++++++++++++++--
 1 file changed, 14 insertions(+), 2 deletions(-)

diff --git a/build-aux/hydra/gnu-system.scm b/build-aux/hydra/gnu-system.scm
index 04845a3e1..c9aa59775 100644
--- a/build-aux/hydra/gnu-system.scm
+++ b/build-aux/hydra/gnu-system.scm
@@ -51,6 +51,7 @@
              ((guix scripts system) #:select (read-operating-system))
              ((guix scripts pack)
               #:select (lookup-compressor self-contained-tarball))
+             (gnu bootloader u-boot)
              (gnu packages)
              (gnu packages gcc)
              (gnu packages base)
@@ -135,7 +136,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."
@@ -158,12 +162,20 @@ system.")
   (define MiB
     (expt 2 20))
 
+  (define (adjust-bootloader os)
+    (if (member system %u-boot-systems)
+      (operating-system (inherit os)
+        (bootloader (bootloader-configuration
+                     (bootloader u-boot-bootloader)
+                     (target "/dev/null"))))
+      os))
+
   (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
+                       (system-disk-image (adjust-bootloader installation-os)
                                           #:disk-image-size
                                           (* 1024 MiB)))))
             (->job 'iso9660-image