From d7740c24cb32a6dbeb1c4dab531f098d961c6dbc Mon Sep 17 00:00:00 2001 From: Pogobanane Date: Wed, 19 Jul 2023 20:04:32 +0200 Subject: [PATCH] nixos/lib/make-disk-image: fix installBootLoader for disabled grub This commit is a fixup for a regression introduced by 0bdba6c99bc6db6fd8ea15de3fa10a3c0563ef9f. Before the regression, it was possible to build images without grub or a kernel (e.g. to boot other kernels with qemu -kernel. After the regression, such images fail to build. Since config.boog.loader.grub.enable is false in that scenario, grub.device is emptystring. While this happens not to be an issue of `ln`, `dirname` fails on emptystring. With this change, we guard both commands to only be run when grub is actually enabled. Images with and without grub succesfully build with this change. --- nixos/lib/make-disk-image.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/nixos/lib/make-disk-image.nix b/nixos/lib/make-disk-image.nix index fc121345d6b1..e5d82f4de7c9 100644 --- a/nixos/lib/make-disk-image.nix +++ b/nixos/lib/make-disk-image.nix @@ -572,7 +572,7 @@ let format' = format; in let ${lib.optionalString installBootLoader '' # In this throwaway resource, we only have /dev/vda, but the actual VM may refer to another disk for bootloader, e.g. /dev/vdb # Use this option to create a symlink from vda to any arbitrary device you want. - ${optionalString (config.boot.loader.grub.device != "/dev/vda") '' + ${optionalString (config.boot.loader.grub.enable && config.boot.loader.grub.device != "/dev/vda") '' mkdir -p $(dirname ${config.boot.loader.grub.device}) ln -s /dev/vda ${config.boot.loader.grub.device} ''}