summary refs log tree commit diff
path: root/pkgs/tools/misc/grub/default.nix
blob: 87ba35566c00e06486c06f8be30bd6ed61f95403 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
{stdenv, fetchurl, autoconf, automake}:

if stdenv.system == "x86_64-linux" then
  abort "Grub doesn't build on x86_64-linux.  You should use the build for i686-linux instead."
else

stdenv.mkDerivation {
  name = "grub-0.97";
  
  src = fetchurl {
    url = ftp://alpha.gnu.org/gnu/grub/grub-0.97.tar.gz;
    md5 = "cd3f3eb54446be6003156158d51f4884";
  };

  # Lots of patches from Gentoo, in particular splash screen support
  # (not the fancy SUSE gfxmenu stuff though).  Also a fix for boot
  # failures on systems with more than 2 GiB RAM.
  gentooPatches = fetchurl {
    url = mirror://gentoo/distfiles/grub-0.97-patches-1.4.tar.bz2;
    sha256 = "1nki5q1b61ahxcmnw6mq7b8ghcysri4lj7q6dx8iqixrvrpxj399";
  };

  # Autoconf/automake required for the splashimage patch.
  buildInputs = [autoconf automake];

  preConfigure = ''
    unpackFile $gentooPatches
    for i in patch/*.patch; do
      echo "applying patch $i"
      patch -p1 < $i || patch -p0 < $i
    done
    autoreconf
  '';
}