0
0
Fork 0
mirror of https://github.com/NixOS/nixpkgs.git synced 2025-07-14 14:10:33 +03:00

treewide: use nativeBuildInputs with runCommand instead of inlining

This commit is contained in:
Sandro Jäckel 2022-12-18 23:35:29 +01:00
parent 76672661b9
commit 26f704b545
No known key found for this signature in database
GPG key ID: 3AF5A43A3EECC2E5
6 changed files with 46 additions and 33 deletions

View file

@ -218,7 +218,8 @@ let
chmod 0644 $efiVars
'' else ""}
'';
buildInputs = [ pkgs.util-linux ];
nativeBuildInputs = with pkgs; [ dosfstools gptfdisk kmod mtools ];
buildInputs = with pkgs; [ util-linux ];
QEMU_OPTS = "-nographic -serial stdio -monitor none"
+ lib.optionalString cfg.useEFIBoot (
" -drive if=pflash,format=raw,unit=0,readonly=on,file=${cfg.efi.firmware}"
@ -226,7 +227,7 @@ let
}
''
# Create a /boot EFI partition with 60M and arbitrary but fixed GUIDs for reproducibility
${pkgs.gptfdisk}/bin/sgdisk \
sgdisk \
--set-alignment=1 --new=1:34:2047 --change-name=1:BIOSBootPartition --typecode=1:ef02 \
--set-alignment=512 --largest-new=2 --change-name=2:EFISystem --typecode=2:ef00 \
--attributes=1:set:1 \
@ -249,16 +250,16 @@ let
''
}
${pkgs.dosfstools}/bin/mkfs.fat -F16 /dev/vda2
mkfs.fat -F16 /dev/vda2
export MTOOLS_SKIP_CHECK=1
${pkgs.mtools}/bin/mlabel -i /dev/vda2 ::boot
mlabel -i /dev/vda2 ::boot
# Mount /boot; load necessary modules first.
${pkgs.kmod}/bin/insmod ${pkgs.linux}/lib/modules/*/kernel/fs/nls/nls_cp437.ko.xz || true
${pkgs.kmod}/bin/insmod ${pkgs.linux}/lib/modules/*/kernel/fs/nls/nls_iso8859-1.ko.xz || true
${pkgs.kmod}/bin/insmod ${pkgs.linux}/lib/modules/*/kernel/fs/fat/fat.ko.xz || true
${pkgs.kmod}/bin/insmod ${pkgs.linux}/lib/modules/*/kernel/fs/fat/vfat.ko.xz || true
${pkgs.kmod}/bin/insmod ${pkgs.linux}/lib/modules/*/kernel/fs/efivarfs/efivarfs.ko.xz || true
insmod ${pkgs.linux}/lib/modules/*/kernel/fs/nls/nls_cp437.ko.xz || true
insmod ${pkgs.linux}/lib/modules/*/kernel/fs/nls/nls_iso8859-1.ko.xz || true
insmod ${pkgs.linux}/lib/modules/*/kernel/fs/fat/fat.ko.xz || true
insmod ${pkgs.linux}/lib/modules/*/kernel/fs/fat/vfat.ko.xz || true
insmod ${pkgs.linux}/lib/modules/*/kernel/fs/efivarfs/efivarfs.ko.xz || true
mkdir /boot
mount /dev/vda2 /boot