summary refs log tree commit diff
path: root/nixos/release.nix
diff options
context:
space:
mode:
authorGraham Christensen <graham@grahamc.com>2017-04-14 17:59:54 -0400
committerGraham Christensen <graham@grahamc.com>2017-12-11 21:33:55 -0500
commit08b8bc24cb818d78971f6cb941b7991e54c6971b (patch)
tree91586162cc1db352b3d2c8d808203ca7afe7d6e6 /nixos/release.nix
parent76090f5dc39843bc1d03d64b97436e7333ff90dd (diff)
downloadnixpkgs-08b8bc24cb818d78971f6cb941b7991e54c6971b.tar
nixpkgs-08b8bc24cb818d78971f6cb941b7991e54c6971b.tar.gz
nixpkgs-08b8bc24cb818d78971f6cb941b7991e54c6971b.tar.bz2
nixpkgs-08b8bc24cb818d78971f6cb941b7991e54c6971b.tar.lz
nixpkgs-08b8bc24cb818d78971f6cb941b7991e54c6971b.tar.xz
nixpkgs-08b8bc24cb818d78971f6cb941b7991e54c6971b.tar.zst
nixpkgs-08b8bc24cb818d78971f6cb941b7991e54c6971b.zip
Netboot: Add aarch64
Diffstat (limited to 'nixos/release.nix')
-rw-r--r--nixos/release.nix49
1 files changed, 32 insertions, 17 deletions
diff --git a/nixos/release.nix b/nixos/release.nix
index 84e39cd91dc..426a5eef34a 100644
--- a/nixos/release.nix
+++ b/nixos/release.nix
@@ -1,6 +1,6 @@
 { nixpkgs ? { outPath = ./..; revCount = 56789; shortRev = "gfedcba"; }
 , stableBranch ? false
-, supportedSystems ? [ "x86_64-linux" ]
+, supportedSystems ? [ "x86_64-linux" "aarch64-linux" ]
 }:
 
 with import ../lib;
@@ -89,6 +89,27 @@ let
       });
   }).config));
 
+  makeNetboot = config:
+    let
+      config_evaled = import lib/eval-config.nix config;
+      build = config_evaled.config.system.build;
+      kernelTarget = config_evaled.pkgs.stdenv.platform.kernelTarget;
+    in
+      pkgs.symlinkJoin {
+        name="netboot";
+        paths=[
+          build.netbootRamdisk
+          build.kernel
+          build.netbootIpxeScript
+        ];
+        postBuild = ''
+          mkdir -p $out/nix-support
+          echo "file ${kernelTarget} $out/${kernelTarget}" >> $out/nix-support/hydra-build-products
+          echo "file initrd $out/initrd" >> $out/nix-support/hydra-build-products
+          echo "file ipxe $out/netboot.ipxe" >> $out/nix-support/hydra-build-products
+        '';
+      };
+
 
 in rec {
 
@@ -103,28 +124,22 @@ in rec {
   # Build the initial ramdisk so Hydra can keep track of its size over time.
   initialRamdisk = buildFromConfig ({ pkgs, ... }: { }) (config: config.system.build.initialRamdisk);
 
-  netboot.x86_64-linux = let build = (import lib/eval-config.nix {
+  netboot = {
+    x86_64-linux = makeNetboot {
       system = "x86_64-linux";
       modules = [
         ./modules/installer/netboot/netboot-minimal.nix
         versionModule
       ];
-    }).config.system.build;
-  in
-    pkgs.symlinkJoin {
-      name="netboot";
-      paths=[
-        build.netbootRamdisk
-        build.kernel
-        build.netbootIpxeScript
-      ];
-      postBuild = ''
-        mkdir -p $out/nix-support
-        echo "file bzImage $out/bzImage" >> $out/nix-support/hydra-build-products
-        echo "file initrd $out/initrd" >> $out/nix-support/hydra-build-products
-        echo "file ipxe $out/netboot.ipxe" >> $out/nix-support/hydra-build-products
-      '';
     };
+  } // (optionalAttrs (elem "aarch64-linux" supportedSystems) {
+    aarch64-linux = makeNetboot {
+      system = "aarch64-linux";
+      modules = [
+        ./modules/installer/netboot/netboot-minimal.nix
+        versionModule
+      ];
+    };});
 
   iso_minimal = forAllSystems (system: makeIso {
     module = ./modules/installer/cd-dvd/installation-cd-minimal.nix;