]> rtime.felk.cvut.cz Git - novaboot.git/commitdiff
Fixes for all tests to pass on NixOS
authorMichal Sojka <michal.sojka@cvut.cz>
Tue, 26 Jan 2021 08:17:18 +0000 (09:17 +0100)
committerMichal Sojka <michal.sojka@cvut.cz>
Tue, 26 Jan 2021 08:19:01 +0000 (09:19 +0100)
novaboot
shell.nix
tests/novaboot.wv

index b827f166656d573ce3426a441e5dadd77245aa75..44d4a310daf7cb882f1eb06830ca511651ebf248 100755 (executable)
--- 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";
index 0867e33e92024d80592cbd9544865759d3995941..e1641fd61dab0749ae249da414ca049b51bb1d6f 100644 (file)
--- a/shell.nix
+++ b/shell.nix
@@ -7,4 +7,8 @@ mkShell {
       otherPerlPackages = [ perl.pkgs.PodParser ];
     }).novaboot
   ];
+  buildInputs = with pkgs; [
+    syslinux
+    cdrkit
+  ];
 }
index 50c12306e54a222855a87bf73c9abbd5c946f4b9..d7e35c77ae24d9c586abdda980f5dded7efc0201 100755 (executable)
@@ -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 '<iprelayd: connected>\xFF\xFA\x2C\x97\xDF\xFF\xF0 \xFF\xFA\x2C\x97\xFF\xFF\xF0'" --on
+WVPASS novaboot --iprelay-cmd="echo -e '<iprelayd: connected>\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'