summary refs log tree commit diff
path: root/pkgs/os-specific/linux/syslinux/default.nix
diff options
context:
space:
mode:
Diffstat (limited to 'pkgs/os-specific/linux/syslinux/default.nix')
-rw-r--r--pkgs/os-specific/linux/syslinux/default.nix23
1 files changed, 17 insertions, 6 deletions
diff --git a/pkgs/os-specific/linux/syslinux/default.nix b/pkgs/os-specific/linux/syslinux/default.nix
index 61de3b46519..b9896888c10 100644
--- a/pkgs/os-specific/linux/syslinux/default.nix
+++ b/pkgs/os-specific/linux/syslinux/default.nix
@@ -1,12 +1,23 @@
 {stdenv, fetchurl, nasm, perl}:
 
 stdenv.mkDerivation {
-  name = "syslinux-3.20";
-  builder = ./builder.sh;
+  name = "syslinux-3.31";
   src = fetchurl {
-    url = http://nix.cs.uu.nl/dist/tarballs/syslinux-3.20.tar.bz2;
-    md5 = "0701e0de1de6d31bdd889384b041e5b7";
+    url = http://www.nl.kernel.org/pub/linux/utils/boot/syslinux/syslinux-3.31.tar.bz2;
+    sha256 = "1w0hw28w97mj27h4w64wn9bi24zcff1i8ifcxnbh4iing1pcmi2p";
   };
- buildInputs = [nasm perl];
- patches = [./syslinux-3.20-installpath.patch];
+  buildInputs = [nasm perl];
+
+  preBuild = "
+    makeFlagsArray=(BINDIR=$out/bin SBINDIR=$out/sbin LIBDIR=$out/lib INCDIR=$out/include)
+
+    # Really dirty hack to get syslinux to build without needing a GCC
+    # with 32-bit libraries and headers.
+    if test \"$system\" = x86_64-linux; then
+        substituteInPlace memdisk/Makefile \\
+            --replace 'all: memdisk e820test' 'all: memdisk'
+        mkdir gnu
+        touch gnu/stubs-32.h
+    fi
+  ";
 }