From 504a3e5a47335c921b8df0bba19660b918d9bfee Mon Sep 17 00:00:00 2001 From: Michal Sojka Date: Tue, 26 Jan 2021 09:17:18 +0100 Subject: [PATCH] Fixes for all tests to pass on NixOS --- novaboot | 10 ++++++++-- shell.nix | 4 ++++ tests/novaboot.wv | 2 +- 3 files changed, 13 insertions(+), 3 deletions(-) diff --git a/novaboot b/novaboot index b827f16..44d4a31 100755 --- a/novaboot +++ b/novaboot @@ -1026,11 +1026,17 @@ if (defined $iso_image) { if (-f '/usr/lib/ISOLINUX/isolinux.bin') { # Newer ISOLINUX version @files = qw(/usr/lib/ISOLINUX/isolinux.bin /usr/lib/syslinux/modules/bios/mboot.c32 /usr/lib/syslinux/modules/bios/libcom32.c32 /usr/lib/syslinux/modules/bios/menu.c32 /usr/lib/syslinux/modules/bios/ldlinux.c32); - } else { + } elsif (-f '/usr/lib/syslinux/isolinux.bin') { # Older ISOLINUX version @files = qw(/usr/lib/syslinux/isolinux.bin /usr/lib/syslinux/mboot.c32 /usr/lib/syslinux/menu.c32); + } else { + # NixOS and maybe others + my $syslinux = `which syslinux` || die "Cannot find syslinux"; + chomp $syslinux; + $syslinux =~ s,/bin/syslinux$,,; + @files = ("$syslinux/share/syslinux/isolinux.bin", "$syslinux/share/syslinux/mboot.c32", "$syslinux/share/syslinux/libcom32.c32", "$syslinux/share/syslinux/menu.c32", "$syslinux/share/syslinux/ldlinux.c32"); } - system_verbose("cp @files isolinux"); + system_verbose("cp @files isolinux && chmod +w isolinux/*"); open(my $fh, ">isolinux/isolinux.cfg"); if ($#scripts) { print $fh "TIMEOUT 50\n"; diff --git a/shell.nix b/shell.nix index 0867e33..e1641fd 100644 --- a/shell.nix +++ b/shell.nix @@ -7,4 +7,8 @@ mkShell { otherPerlPackages = [ perl.pkgs.PodParser ]; }).novaboot ]; + buildInputs = with pkgs; [ + syslinux + cdrkit + ]; } diff --git a/tests/novaboot.wv b/tests/novaboot.wv index 50c1230..d7e35c7 100755 --- a/tests/novaboot.wv +++ b/tests/novaboot.wv @@ -123,7 +123,7 @@ WVPASSSH 'NOVABOOT_TARGET=t2 novaboot --target t3 /dev/null' WVPASS test "$(cat t)" = Target3 WVSTART --iprelay-cmd -WVPASS novaboot --iprelay-cmd="/bin/echo -e '\xFF\xFA\x2C\x97\xDF\xFF\xF0 \xFF\xFA\x2C\x97\xFF\xFF\xF0'" --on +WVPASS novaboot --iprelay-cmd="echo -e '\xFF\xFA\x2C\x97\xDF\xFF\xF0 \xFF\xFA\x2C\x97\xFF\xFF\xF0'" --on WVSTART Killing of --remote-cmd when it ignores SIGHUP WVPASS tee script <<'EOF' -- 2.39.2