summary refs log tree commit diff
path: root/pkgs/tools/misc/grub
diff options
context:
space:
mode:
authorvolth <volth@volth.com>2019-04-16 11:25:05 +0000
committerTim Steinbach <NeQuissimus@users.noreply.github.com>2019-05-11 13:40:21 -0400
commitdf4d0fab2f62fc1ce1d904dbbfd29e5c66da67bf (patch)
tree4d61d34b95f608502e4224755ced224098fa1eab /pkgs/tools/misc/grub
parent8318ded593ec7d140905c108729dafb98abb3f8a (diff)
downloadnixpkgs-df4d0fab2f62fc1ce1d904dbbfd29e5c66da67bf.tar
nixpkgs-df4d0fab2f62fc1ce1d904dbbfd29e5c66da67bf.tar.gz
nixpkgs-df4d0fab2f62fc1ce1d904dbbfd29e5c66da67bf.tar.bz2
nixpkgs-df4d0fab2f62fc1ce1d904dbbfd29e5c66da67bf.tar.lz
nixpkgs-df4d0fab2f62fc1ce1d904dbbfd29e5c66da67bf.tar.xz
nixpkgs-df4d0fab2f62fc1ce1d904dbbfd29e5c66da67bf.tar.zst
nixpkgs-df4d0fab2f62fc1ce1d904dbbfd29e5c66da67bf.zip
grub: 2.02 -> 2.04-rc1
Diffstat (limited to 'pkgs/tools/misc/grub')
-rw-r--r--pkgs/tools/misc/grub/2.0x.nix35
-rw-r--r--pkgs/tools/misc/grub/relocation-not-implemented.diff25
2 files changed, 17 insertions, 43 deletions
diff --git a/pkgs/tools/misc/grub/2.0x.nix b/pkgs/tools/misc/grub/2.0x.nix
index fa1729b929c..ec1c5897ed7 100644
--- a/pkgs/tools/misc/grub/2.0x.nix
+++ b/pkgs/tools/misc/grub/2.0x.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl, fetchpatch, flex, bison, python
+{ stdenv, fetchgit, flex, bison, python, autoconf, automake, gnulib, libtool
 , gettext, ncurses, libusb, freetype, qemu, lvm2, unifont, pkgconfig
 , fuse # only needed for grub-mount
 , zfs ? null
@@ -31,7 +31,7 @@ let
   canEfi = any (system: stdenv.hostPlatform.system == system) (mapAttrsToList (name: _: name) efiSystemsBuild);
   inPCSystems = any (system: stdenv.hostPlatform.system == system) (mapAttrsToList (name: _: name) pcSystems);
 
-  version = "2.02";
+  version = "2.04-rc1";
 
 in (
 
@@ -42,28 +42,18 @@ assert !(efiSupport && xenSupport);
 stdenv.mkDerivation rec {
   name = "grub-${version}";
 
-  src = fetchurl {
-    url = "mirror://gnu/grub/${name}.tar.xz";
-    sha256 = "03vvdfhdmf16121v7xs8is2krwnv15wpkhkf16a4yf8nsfc3f2w1";
+  src = fetchgit {
+    url = "git://git.savannah.gnu.org/grub.git";
+    rev = name;
+    sha256 = "0xkcfxs0hbzvi33kg4abkayl8b7gym9sv8ljbwlh2kpz8i4kmnk0";
   };
 
   patches = [
     ./fix-bash-completion.patch
-    # This patch makes grub compatible with the XFS sparse inode
-    # feature introduced by xfsprogs-4.16.
-    # to be removed in grub-2.03
-    (fetchpatch {
-      url = https://git.savannah.gnu.org/cgit/grub.git/patch/?id=cda0a857dd7a27cd5d621747464bfe71e8727fff;
-      sha256 = "0k9qrkdxwdqk6sz05q9smqwjr6pvgc9adx1mlf0807g4im91xnm0";
-    })
-    ./relocation-not-implemented.diff
   ];
-  postPatch = ''
-    substituteInPlace ./configure --replace '/usr/share/fonts/unifont' '${unifont}/share/fonts'
-  '';
 
-  nativeBuildInputs = [ bison flex python pkgconfig ];
-  buildInputs = [ ncurses libusb freetype gettext lvm2 fuse ]
+  nativeBuildInputs = [ bison flex python pkgconfig autoconf automake ];
+  buildInputs = [ ncurses libusb freetype gettext lvm2 fuse libtool ]
     ++ optional doCheck qemu
     ++ optional zfsSupport zfs;
 
@@ -91,6 +81,15 @@ stdenv.mkDerivation rec {
            -e's/qemu-system-i386/qemu-system-x86_64 -nodefaults/g'
 
       unset CPP # setting CPP intereferes with dependency calculation
+
+      cp -r ${gnulib} $PWD/gnulib
+      chmod u+w -R $PWD/gnulib
+
+      patchShebangs .
+
+      ./bootstrap --no-git --gnulib-srcdir=$PWD/gnulib
+
+      substituteInPlace ./configure --replace '/usr/share/fonts/unifont' '${unifont}/share/fonts'
     '';
 
   configureFlags = [ "--enable-grub-mount" ] # dep of os-prober
diff --git a/pkgs/tools/misc/grub/relocation-not-implemented.diff b/pkgs/tools/misc/grub/relocation-not-implemented.diff
deleted file mode 100644
index 0b7bf947d14..00000000000
--- a/pkgs/tools/misc/grub/relocation-not-implemented.diff
+++ /dev/null
@@ -1,25 +0,0 @@
-https://git.savannah.gnu.org/cgit/grub.git/commit/util?id=842c390469e2c2e10b5
-diff --git a/util/grub-mkimagexx.c b/util/grub-mkimagexx.c
-index a2bb054..39d7efb 100644
---- a/util/grub-mkimagexx.c
-+++ b/util/grub-mkimagexx.c
-@@ -841,6 +841,7 @@ SUFFIX (relocate_addresses) (Elf_Ehdr *e, Elf_Shdr *sections,
- 		  break;
- 
- 		case R_X86_64_PC32:
-+		case R_X86_64_PLT32:
- 		  {
- 		    grub_uint32_t *t32 = (grub_uint32_t *) target;
- 		    *t32 = grub_host_to_target64 (grub_target_to_host32 (*t32)
-diff --git a/util/grub-module-verifier.c b/util/grub-module-verifier.c
-index 9179285..a79271f 100644
---- a/util/grub-module-verifier.c
-+++ b/util/grub-module-verifier.c
-@@ -19,6 +19,7 @@ struct grub_module_verifier_arch archs[] = {
-       -1
-     }, (int[]){
-       R_X86_64_PC32,
-+      R_X86_64_PLT32,
-       -1
-     }
-   },