summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorArian van Putten <arian.vanputten@gmail.com>2024-03-01 12:52:48 +0100
committergithub-actions[bot] <github-actions[bot]@users.noreply.github.com>2024-03-02 09:00:14 +0000
commite1f25f9b9e35f3f2457e0e2ea13f15e12d69957e (patch)
tree5ba308c8e35ac9aa0e9d5f24b14ca0a51fcd7bad
parentMerge #292330: nixos/lib/testing: remove a source of rebuilds (diff)
downloadnixpkgs-origin/backport-292561-to-release-23.11.tar.gz
nixos/lib/make-disk-image.nix: fix systemd-boot-builder clobbering /homeless-shelterorigin/backport-292561-to-release-23.11
systemd-boot-builder.py calls nix-env --list-generations which creates $HOME/.nix-defexpr/channels/nixos if it doesn't exist. This would cause a folder /homeless-shelter to show up in the final image which in turn breaks nix builds in the target image if sandboxing is turned off (as /homeless-shelter is never allowed to exist). (cherry picked from commit b75a29cb6ca9b5d2e4823622be84d10a6b2e299f)
-rw-r--r--nixos/lib/make-disk-image.nix7
-rw-r--r--nixos/tests/qemu-vm-external-disk-image.nix3
2 files changed, 10 insertions, 0 deletions
diff --git a/nixos/lib/make-disk-image.nix b/nixos/lib/make-disk-image.nix
index 1a33abd01ea1..62f87d065e3a 100644
--- a/nixos/lib/make-disk-image.nix
+++ b/nixos/lib/make-disk-image.nix
@@ -583,6 +583,13 @@ let format' = format; in let
''}
# Set up core system link, bootloader (sd-boot, GRUB, uboot, etc.), etc.
+
+ # NOTE: systemd-boot-builder.py calls nix-env --list-generations which
+ # clobbers $HOME/.nix-defexpr/channels/nixos This would cause a folder
+ # /homeless-shelter to show up in the final image which in turn breaks
+ # nix builds in the target image if sandboxing is turned off (through
+ # __noChroot for example).
+ export HOME=$TMPDIR
NIXOS_INSTALL_BOOTLOADER=1 nixos-enter --root $mountPoint -- /nix/var/nix/profiles/system/bin/switch-to-configuration boot
# The above scripts will generate a random machine-id and we don't want to bake a single ID into all our images
diff --git a/nixos/tests/qemu-vm-external-disk-image.nix b/nixos/tests/qemu-vm-external-disk-image.nix
index a229fc5e3963..c481159511a0 100644
--- a/nixos/tests/qemu-vm-external-disk-image.nix
+++ b/nixos/tests/qemu-vm-external-disk-image.nix
@@ -69,5 +69,8 @@ in
os.environ['NIX_DISK_IMAGE'] = tmp_disk_image.name
machine.succeed("findmnt --kernel --source ${rootFsDevice} --target /")
+
+ # Make sure systemd boot didn't clobber this
+ machine.succeed("[ ! -e /homeless-shelter ]")
'';
}