From 534a2fd13ae96ab8052741f0548155aaf3818d29 Mon Sep 17 00:00:00 2001 From: Martin Weinelt Date: Fri, 30 Sep 2022 00:59:15 +0200 Subject: [PATCH 1/8] nixos/release-small: Add aarch64-linux to supportedSystems The aarch64-linux builders on hydra have had a good track in the last year or so and I think it's a good idea to include them in the default -small jobset. This happens in preparation of improving the distribution of the installer ISOs for aarch64-linux systems and advertise them more prominently on the homepage. --- nixos/release-small.nix | 78 +++++++++++++++++++++++------------------ 1 file changed, 44 insertions(+), 34 deletions(-) diff --git a/nixos/release-small.nix b/nixos/release-small.nix index 8367610fb7f7..0c4e8ec7c799 100644 --- a/nixos/release-small.nix +++ b/nixos/release-small.nix @@ -4,7 +4,7 @@ { nixpkgs ? { outPath = (import ../lib).cleanSource ./..; revCount = 56789; shortRev = "gfedcba"; } , stableBranch ? false -, supportedSystems ? [ "x86_64-linux" ] # no i686-linux +, supportedSystems ? [ "aarch64-linux" "x86_64-linux" ] # no i686-linux }: let @@ -83,45 +83,55 @@ in rec { vim; }; - tested = pkgs.releaseTools.aggregate { + tested = let + onSupported = x: map (system: "${x}.${system}") supportedSystems; + onSystems = systems: x: map (system: "${x}.${system}") + (pkgs.lib.intersectLists systems supportedSystems); + in pkgs.releaseTools.aggregate { name = "nixos-${nixos.channel.version}"; meta = { description = "Release-critical builds for the NixOS channel"; maintainers = [ lib.maintainers.eelco ]; }; - constituents = - [ "nixos.channel" - "nixos.dummy.x86_64-linux" - "nixos.iso_minimal.x86_64-linux" - "nixos.amazonImage.x86_64-linux" - "nixos.manual.x86_64-linux" - "nixos.tests.boot.biosCdrom.x86_64-linux" - "nixos.tests.containers-imperative.x86_64-linux" - "nixos.tests.containers-ip.x86_64-linux" - "nixos.tests.firewall.x86_64-linux" - "nixos.tests.installer.lvm.x86_64-linux" - "nixos.tests.installer.separateBoot.x86_64-linux" - "nixos.tests.installer.simple.x86_64-linux" - "nixos.tests.ipv6.x86_64-linux" - "nixos.tests.login.x86_64-linux" - "nixos.tests.misc.x86_64-linux" - "nixos.tests.nat.firewall-conntrack.x86_64-linux" - "nixos.tests.nat.firewall.x86_64-linux" - "nixos.tests.nat.standalone.x86_64-linux" - # fails with kernel >= 5.15 https://github.com/NixOS/nixpkgs/pull/152505#issuecomment-1005049314 - #"nixos.tests.nfs3.simple.x86_64-linux" - "nixos.tests.openssh.x86_64-linux" - "nixos.tests.php.fpm.x86_64-linux" - "nixos.tests.php.pcre.x86_64-linux" - "nixos.tests.predictable-interface-names.predictable.x86_64-linux" - "nixos.tests.predictable-interface-names.predictableNetworkd.x86_64-linux" - "nixos.tests.predictable-interface-names.unpredictable.x86_64-linux" - "nixos.tests.predictable-interface-names.unpredictableNetworkd.x86_64-linux" - "nixos.tests.proxy.x86_64-linux" - "nixos.tests.simple.x86_64-linux" - "nixpkgs.jdk.x86_64-linux" + constituents = lib.flatten [ + [ + "nixos.channel" "nixpkgs.tarball" - ]; + ] + (map (onSystems [ "x86_64-linux" ]) [ + "nixos.tests.boot.biosCdrom" + "nixos.tests.installer.lvm" + "nixos.tests.installer.separateBoot" + "nixos.tests.installer.simple" + ]) + (map onSupported [ + "nixos.dummy" + "nixos.iso_minimal" + "nixos.amazonImage" + "nixos.manual" + "nixos.tests.containers-imperative" + "nixos.tests.containers-ip" + "nixos.tests.firewall" + "nixos.tests.ipv6" + "nixos.tests.login" + "nixos.tests.misc" + "nixos.tests.nat.firewall-conntrack" + "nixos.tests.nat.firewall" + "nixos.tests.nat.standalone" + # fails with kernel >= 5.15 https://github.com/NixOS/nixpkgs/pull/152505#issuecomment-1005049314 + #"nixos.tests.nfs3.simple" + "nixos.tests.openssh" + "nixos.tests.php.fpm" + "nixos.tests.php.pcre" + "nixos.tests.predictable-interface-names.predictable" + "nixos.tests.predictable-interface-names.predictableNetworkd" + "nixos.tests.predictable-interface-names.unpredictable" + "nixos.tests.predictable-interface-names.unpredictableNetworkd" + "nixos.tests.proxy" + "nixos.tests.simple" + "nixpkgs.jdk" + ]) + ]; }; } From cd5cc11918cd56ae077ed098a8b6bbd2aa77ccdb Mon Sep 17 00:00:00 2001 From: Martin Weinelt Date: Fri, 30 Sep 2022 01:20:08 +0200 Subject: [PATCH 2/8] nixos/release-combined: Move aarch64-linux to supportedSystems The builders have had a good track record in the last year so this is worth a try. --- nixos/release-combined.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/nixos/release-combined.nix b/nixos/release-combined.nix index e8677f7e1e97..7be47a4c3e57 100644 --- a/nixos/release-combined.nix +++ b/nixos/release-combined.nix @@ -4,8 +4,8 @@ { nixpkgs ? { outPath = (import ../lib).cleanSource ./..; revCount = 56789; shortRev = "gfedcba"; } , stableBranch ? false -, supportedSystems ? [ "x86_64-linux" ] -, limitedSupportedSystems ? [ "i686-linux" "aarch64-linux" ] +, supportedSystems ? [ "aarch64-linux" "x86_64-linux" ] +, limitedSupportedSystems ? [ "i686-linux" ] }: let From 9328b7eebf6afbd345f20f5d76b6357f85037506 Mon Sep 17 00:00:00 2001 From: Martin Weinelt Date: Fri, 30 Sep 2022 01:42:19 +0200 Subject: [PATCH 3/8] nixos/release-combined: Build graphical ISOs for aarch64-linux --- nixos/release-combined.nix | 4 ++-- nixos/release.nix | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/nixos/release-combined.nix b/nixos/release-combined.nix index 7be47a4c3e57..fa6c87b52228 100644 --- a/nixos/release-combined.nix +++ b/nixos/release-combined.nix @@ -50,8 +50,8 @@ in rec { (onFullSupported "nixos.dummy") (onAllSupported "nixos.iso_minimal") (onSystems ["x86_64-linux" "aarch64-linux"] "nixos.amazonImage") - (onSystems ["x86_64-linux"] "nixos.iso_plasma5") - (onSystems ["x86_64-linux"] "nixos.iso_gnome") + (onFullSupported "nixos.iso_plasma5") + (onFullSupported "nixos.iso_gnome") (onFullSupported "nixos.manual") (onSystems ["x86_64-linux"] "nixos.ova") (onSystems ["aarch64-linux"] "nixos.sd_image") diff --git a/nixos/release.nix b/nixos/release.nix index 4f27e5dbb215..919aa86a2d63 100644 --- a/nixos/release.nix +++ b/nixos/release.nix @@ -169,13 +169,13 @@ in rec { inherit system; }); - iso_plasma5 = forMatchingSystems [ "x86_64-linux" ] (system: makeIso { + iso_plasma5 = forMatchingSystems supportedSystems (system: makeIso { module = ./modules/installer/cd-dvd/installation-cd-graphical-calamares-plasma5.nix; type = "plasma5"; inherit system; }); - iso_gnome = forMatchingSystems [ "x86_64-linux" ] (system: makeIso { + iso_gnome = forMatchingSystems supportedSystems (system: makeIso { module = ./modules/installer/cd-dvd/installation-cd-graphical-calamares-gnome.nix; type = "gnome"; inherit system; From 8f366cbfcc62871f481e035984e5932e30d8b0ed Mon Sep 17 00:00:00 2001 From: Martin Weinelt Date: Fri, 30 Sep 2022 01:59:06 +0200 Subject: [PATCH 4/8] installer: enable vmware guest support on x86 only The vmware guest module asserts on this exact condition, so let's only enable it on that condition. --- .../modules/installer/cd-dvd/installation-cd-graphical-base.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/nixos/modules/installer/cd-dvd/installation-cd-graphical-base.nix b/nixos/modules/installer/cd-dvd/installation-cd-graphical-base.nix index c5976166fb31..b2a0ebb9e404 100644 --- a/nixos/modules/installer/cd-dvd/installation-cd-graphical-base.nix +++ b/nixos/modules/installer/cd-dvd/installation-cd-graphical-base.nix @@ -38,7 +38,7 @@ with lib; # VM guest additions to improve host-guest interaction services.spice-vdagentd.enable = true; services.qemuGuest.enable = true; - virtualisation.vmware.guest.enable = true; + virtualisation.vmware.guest.enable = pkgs.stdenv.hostPlatform.isx86; virtualisation.hypervGuest.enable = true; services.xe-guest-utilities.enable = true; # The VirtualBox guest additions rely on an out-of-tree kernel module From 373c1a8e4322ef86f659c29e828b0a82e7df3777 Mon Sep 17 00:00:00 2001 From: Martin Weinelt Date: Fri, 30 Sep 2022 02:06:46 +0200 Subject: [PATCH 5/8] installer: enable xe-guest-utilities only on x86 Tries to find a target specific makefile for aarch64 which does not exist. --- .../modules/installer/cd-dvd/installation-cd-graphical-base.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/nixos/modules/installer/cd-dvd/installation-cd-graphical-base.nix b/nixos/modules/installer/cd-dvd/installation-cd-graphical-base.nix index b2a0ebb9e404..4a00c52916f6 100644 --- a/nixos/modules/installer/cd-dvd/installation-cd-graphical-base.nix +++ b/nixos/modules/installer/cd-dvd/installation-cd-graphical-base.nix @@ -40,7 +40,7 @@ with lib; services.qemuGuest.enable = true; virtualisation.vmware.guest.enable = pkgs.stdenv.hostPlatform.isx86; virtualisation.hypervGuest.enable = true; - services.xe-guest-utilities.enable = true; + services.xe-guest-utilities.enable = pkgs.stdenv.hostPlatform.isx86; # The VirtualBox guest additions rely on an out-of-tree kernel module # which lags behind kernel releases, potentially causing broken builds. virtualisation.virtualbox.guest.enable = false; From 4b6758f83e33f55da6c67868c820461f453565d4 Mon Sep 17 00:00:00 2001 From: Martin Weinelt Date: Sat, 8 Oct 2022 22:31:52 +0200 Subject: [PATCH 6/8] nixos/release-combined: Enable more jobs on aarch64-linux --- nixos/release-combined.nix | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/nixos/release-combined.nix b/nixos/release-combined.nix index fa6c87b52228..a11ee31ab8d0 100644 --- a/nixos/release-combined.nix +++ b/nixos/release-combined.nix @@ -58,9 +58,9 @@ in rec { (onSystems ["x86_64-linux"] "nixos.tests.boot.biosCdrom") (onSystems ["x86_64-linux"] "nixos.tests.boot.biosUsb") (onFullSupported "nixos.tests.boot-stage1") - (onSystems ["x86_64-linux"] "nixos.tests.boot.uefiCdrom") - (onSystems ["x86_64-linux"] "nixos.tests.boot.uefiUsb") - (onSystems ["x86_64-linux"] "nixos.tests.chromium") + (onFullSupported "nixos.tests.boot.uefiCdrom") + (onFullSupported "nixos.tests.boot.uefiUsb") + (onFullSupported "nixos.tests.chromium") (onFullSupported "nixos.tests.containers-imperative") (onFullSupported "nixos.tests.containers-ip") (onSystems ["x86_64-linux"] "nixos.tests.docker") From 08991fc87a784501c48499d238e6ed816e91df40 Mon Sep 17 00:00:00 2001 From: Martin Weinelt Date: Sat, 8 Oct 2022 22:33:53 +0200 Subject: [PATCH 7/8] nixos/release-small: Test uefi cdrom --- nixos/release-small.nix | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/nixos/release-small.nix b/nixos/release-small.nix index 0c4e8ec7c799..1719d6738c5c 100644 --- a/nixos/release-small.nix +++ b/nixos/release-small.nix @@ -53,7 +53,8 @@ in rec { }; boot = { inherit (nixos'.tests.boot) - biosCdrom; + biosCdrom + uefiCdrom; }; }; }; @@ -109,6 +110,7 @@ in rec { "nixos.iso_minimal" "nixos.amazonImage" "nixos.manual" + "nixos.tests.boot.uefiCdrom" "nixos.tests.containers-imperative" "nixos.tests.containers-ip" "nixos.tests.firewall" From d97e915fafdeab433168b7bf1309c9634fba7dc9 Mon Sep 17 00:00:00 2001 From: Martin Weinelt Date: Sun, 9 Oct 2022 23:29:45 +0200 Subject: [PATCH 8/8] nixos/tests/chromium: Enable on aarch64-linux --- nixos/tests/all-tests.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/nixos/tests/all-tests.nix b/nixos/tests/all-tests.nix index 643f1181eb5d..3b697139dc84 100644 --- a/nixos/tests/all-tests.nix +++ b/nixos/tests/all-tests.nix @@ -119,7 +119,7 @@ in { certmgr = handleTest ./certmgr.nix {}; cfssl = handleTestOn ["x86_64-linux"] ./cfssl.nix {}; charliecloud = handleTest ./charliecloud.nix {}; - chromium = (handleTestOn ["x86_64-linux"] ./chromium.nix {}).stable or {}; + chromium = (handleTestOn ["aarch64-linux" "x86_64-linux"] ./chromium.nix {}).stable or {}; cinnamon = handleTest ./cinnamon.nix {}; cjdns = handleTest ./cjdns.nix {}; clickhouse = handleTest ./clickhouse.nix {};