diff options
author | Shea Levy <shea@shealevy.com> | 2013-02-21 12:06:03 -0500 |
---|---|---|
committer | Shea Levy <shea@shealevy.com> | 2013-02-21 12:39:25 -0500 |
commit | 754f9a44fdde56bcfa76314ba65580d420e82470 (patch) | |
tree | 3ccb6c04267b2c8282a3ec91b519accdfbc59437 /pkgs/tools/misc/gummiboot | |
parent | afe3758b1b12b43ce1f47e3170266d5909d59812 (diff) | |
download | nixlib-754f9a44fdde56bcfa76314ba65580d420e82470.tar nixlib-754f9a44fdde56bcfa76314ba65580d420e82470.tar.gz nixlib-754f9a44fdde56bcfa76314ba65580d420e82470.tar.bz2 nixlib-754f9a44fdde56bcfa76314ba65580d420e82470.tar.lz nixlib-754f9a44fdde56bcfa76314ba65580d420e82470.tar.xz nixlib-754f9a44fdde56bcfa76314ba65580d420e82470.tar.zst nixlib-754f9a44fdde56bcfa76314ba65580d420e82470.zip |
Gummiboot: Update to 23.
Requires a corresponding change in nixos to work there.
Diffstat (limited to 'pkgs/tools/misc/gummiboot')
-rw-r--r-- | pkgs/tools/misc/gummiboot/default.nix | 14 | ||||
-rw-r--r-- | pkgs/tools/misc/gummiboot/no-usr.patch | 69 |
2 files changed, 70 insertions, 13 deletions
diff --git a/pkgs/tools/misc/gummiboot/default.nix b/pkgs/tools/misc/gummiboot/default.nix index 341939ea40f6..cf2fe713461f 100644 --- a/pkgs/tools/misc/gummiboot/default.nix +++ b/pkgs/tools/misc/gummiboot/default.nix @@ -1,21 +1,19 @@ -{ stdenv, fetchurl, gnu_efi, unzip }: +{ stdenv, fetchurl, gnu_efi, unzip, pkgconfig, utillinux, libxslt, docbook_xsl, docbook_xml_dtd_42 }: stdenv.mkDerivation rec { - name = "gummiboot-16"; + name = "gummiboot-23"; - buildInputs = [ unzip ]; + buildInputs = [ unzip pkgconfig utillinux libxslt docbook_xsl docbook_xml_dtd_42 ]; patches = [ ./no-usr.patch ]; - buildFlags = [ - "GNU_EFI=${gnu_efi}" - ] ++ stdenv.lib.optional (stdenv.system == "i686-linux") "ARCH=ia32"; + buildFlags = [ "GNU_EFI=${gnu_efi}" ]; - installPhase = "mkdir -p $out/bin; mv gummiboot.efi $out/bin"; + makeFlags = [ "PREFIX=$(out)" ]; src = fetchurl { url = "http://cgit.freedesktop.org/gummiboot/snapshot/${name}.zip"; - sha256 = "0as5svmvsbz08qgbvns77qfb36xi9lx2138ikiinqv6finzm8fi1"; + sha256 = "1lmfk4k52ha00ppna5g7h51vhd27i9fipf5k7mc2d9jkm2480z4j"; }; meta = { diff --git a/pkgs/tools/misc/gummiboot/no-usr.patch b/pkgs/tools/misc/gummiboot/no-usr.patch index 7f63e20d3e9a..db9068947407 100644 --- a/pkgs/tools/misc/gummiboot/no-usr.patch +++ b/pkgs/tools/misc/gummiboot/no-usr.patch @@ -1,14 +1,24 @@ -diff -Naur gummiboot-16-orig/Makefile gummiboot-16/Makefile ---- gummiboot-16-orig/Makefile 2013-01-24 04:20:58.000000000 -0500 -+++ gummiboot-16/Makefile 2013-02-01 17:27:42.922371399 -0500 -@@ -1,13 +1,13 @@ - VERSION=16 +diff -Naur gummiboot-23-orig/Makefile gummiboot-23/Makefile +--- gummiboot-23-orig/Makefile 2013-02-20 00:55:44.000000000 -0500 ++++ gummiboot-23/Makefile 2013-02-21 12:00:35.783637645 -0500 +@@ -10,7 +10,8 @@ + export E Q ARCH=$(shell $(CC) -dumpmachine | sed "s/\(-\).*$$//") -LIBDIR=$(shell echo $$(cd /usr/lib/$$(gcc -print-multi-os-directory); pwd)) ++PREFIX=/usr +LIBDIR=$(GNU_EFI)/lib LIBEFIDIR=$(or $(wildcard $(LIBDIR)/gnuefi), $(LIBDIR)) + ifeq ($(ARCH),i686) +@@ -25,13 +26,13 @@ + -mno-red-zone + endif + +-all: gummiboot$(MACHINE_TYPE_NAME).efi gummiboot ++all: gummiboot$(MACHINE_TYPE_NAME).efi gummiboot man + + # ------------------------------------------------------------------------------ CPPFLAGS = \ -I. \ - -I/usr/include/efi \ @@ -18,3 +28,52 @@ diff -Naur gummiboot-16-orig/Makefile gummiboot-16/Makefile CFLAGS = \ -DVERSION=$(VERSION) \ +@@ -82,6 +83,7 @@ + `pkg-config --cflags --libs blkid` \ + src/setup/setup.c \ + src/setup/efivars.c \ ++ -DPREFIX=\"$(PREFIX)\" \ + -o $@ + + # ------------------------------------------------------------------------------ +@@ -101,11 +103,11 @@ + rm -f src/efi/gummiboot.o src/efi/gummiboot.so gummiboot gummiboot$(MACHINE_TYPE_NAME).efi + + install: all +- mkdir -p $(DESTDIR)/usr/bin/ +- cp gummiboot $(DESTDIR)/usr/bin +- mkdir -p $(DESTDIR)/usr/lib/gummiboot/ +- cp gummiboot$(MACHINE_TYPE_NAME).efi $(DESTDIR)/usr/lib/gummiboot/ +- [ -e gummiboot.1 ] && mkdir -p $(DESTDIR)/usr/share/man/man1/ && cp gummiboot.1 $(DESTDIR)/usr/share/man/man1/ || : ++ mkdir -p $(DESTDIR)$(PREFIX)/bin/ ++ cp gummiboot $(DESTDIR)$(PREFIX)/bin ++ mkdir -p $(DESTDIR)$(PREFIX)/lib/gummiboot/ ++ cp gummiboot$(MACHINE_TYPE_NAME).efi $(DESTDIR)$(PREFIX)/lib/gummiboot/ ++ [ -e gummiboot.1 ] && mkdir -p $(DESTDIR)$(PREFIX)/share/man/man1/ && cp gummiboot.1 $(DESTDIR)$(PREFIX)/share/man/man1/ || : + + tar: + git archive --format=tar --prefix=gummiboot-$(VERSION)/ $(VERSION) | xz > gummiboot-$(VERSION).tar.xz +diff -Naur gummiboot-23-orig/src/setup/setup.c gummiboot-23/src/setup/setup.c +--- gummiboot-23-orig/src/setup/setup.c 2013-02-20 00:55:44.000000000 -0500 ++++ gummiboot-23/src/setup/setup.c 2013-02-21 11:57:43.295324700 -0500 +@@ -736,7 +736,7 @@ + char *p = NULL, *q = NULL, *v = NULL; + int r; + +- if (asprintf(&p, "/usr/lib/gummiboot/%s", name) < 0) { ++ if (asprintf(&p, PREFIX "/lib/gummiboot/%s", name) < 0) { + fprintf(stderr, "Out of memory.\n"); + r = -ENOMEM; + goto finish; +@@ -791,9 +791,9 @@ + return r; + } + +- d = opendir("/usr/lib/gummiboot"); ++ d = opendir(PREFIX "/lib/gummiboot"); + if (!d) { +- fprintf(stderr, "Failed to open /usr/lib/gummiboot: %m\n"); ++ fprintf(stderr, "Failed to open " PREFIX "/lib/gummiboot: %m\n"); + return -errno; + } + |