summaryrefslogtreecommitdiff
path: root/sys-boot/efibootmgr
diff options
context:
space:
mode:
authorV3n3RiX <venerix@redcorelinux.org>2021-01-22 20:28:19 +0000
committerV3n3RiX <venerix@redcorelinux.org>2021-01-22 20:28:19 +0000
commitabaa75b10f899ada8dd05b23cc03205064394bc6 (patch)
treeeca3dd248b73b92013cba00a0fcc1edf2696e19a /sys-boot/efibootmgr
parent24fd814c326e282c4321965c31f341dad77e270d (diff)
gentoo resync : 22.01.2021
Diffstat (limited to 'sys-boot/efibootmgr')
-rw-r--r--sys-boot/efibootmgr/Manifest4
-rw-r--r--sys-boot/efibootmgr/efibootmgr-17.ebuild39
-rw-r--r--sys-boot/efibootmgr/files/efibootmgr-17-clang.patch82
-rw-r--r--sys-boot/efibootmgr/files/efibootmgr-17-fix-efivar-37-conflict.patch14
4 files changed, 139 insertions, 0 deletions
diff --git a/sys-boot/efibootmgr/Manifest b/sys-boot/efibootmgr/Manifest
index c6502f42027a..802ecfa172c1 100644
--- a/sys-boot/efibootmgr/Manifest
+++ b/sys-boot/efibootmgr/Manifest
@@ -1,7 +1,11 @@
+AUX efibootmgr-17-clang.patch 3460 BLAKE2B 645f9ba570adadb73e4673ce221631f25b73603d2bbc235f8f48544f7db0445f0b50f415ba90d3a2726948a23d56469c1ad146ae753b6782de3447d6f79fe118 SHA512 ab7f8911f209c9ba84dcebbc7fba88e7866c4800d8eac15a23b4c36dfada594ba900d4f6d4afc68a895fda3d350e42ef02f946bef061e0f331e5b6db6507209d
+AUX efibootmgr-17-fix-efivar-37-conflict.patch 508 BLAKE2B 84cf90508627a587b414f7fc2067b0a1417d68344de0ca3a4a3acc54bc94a6dc84e7d22d1261a777a0cbc7233715de0acd5e56474572f0b9d473da57a29a7dd5 SHA512 a8f4b37e9c0c55a3b2d20f733606653add0219066b9a46b0878885023480747936ad015a52363ceece481ae4d8b702aaa710d9fde2334aae48f97f650416e129
DIST efibootmgr-14.tar.bz2 34972 BLAKE2B 78490756c5fd449f4319b79e0818e9d80340bd487f57d0de34f79f48cc24eb7b9c7309b535d00efad4babd40904d4cfb085cca278170625a1e875961e423f5dd SHA512 97935f8752440ce236162e174ea3404e907ebddc5877d597a97813da76ad580689fc2e97044885fc860a12a473af7183242b6120e78e53243d35e569fb002baf
DIST efibootmgr-15.tar.bz2 35476 BLAKE2B 19b7c9ce51f3b930b2d59fa4a594c7a8bf5f1c7aa3224049e88cdafe82991799b1b719ec68c80131027f70c16bd19e38157f5d0bc7761843959410c667aa4070 SHA512 d9d9eef14d373d5da88141e8105f754fea4c039755ed0a0cb9b3c9c2bb285733ad930fd912df42075fe2cf750585699307b067f594d8e65269b3b8a5a00b1cd1
DIST efibootmgr-16.tar.bz2 36603 BLAKE2B 3d09a9d3c4ecd48010315fccae60ab408c0d08e9c734e86a944130ea03e038835fa08745819f5353efbbe36f5017be64faded4b625ef0a0b55d4ca0d612ef232 SHA512 936318c7163c07b716f89be3d830957d9db68ba1b059223f7ea3d9eafe0dbf1c91b9aee096f5aed70955c6052c3b8547295c0a47f17cdf43788259d87d1990b9
+DIST efibootmgr-17.tar.gz 41643 BLAKE2B a1995a5df74766f762d2eb971fd6095edea8d0a498c9dd1100515866b40c38ae2f299aae51f12767850ec23fbe4709c2c7428dd48755fbec499669b69f6432c9 SHA512 10c7ad9a79f23dcd4708dc4f42701196af7aa11f5e9a6468ea51f7013d4caeba6c92527ba1304f6e3b2ef3b51b3b69ea1a30f81bb099a8aea49eeb30eb631e1d
EBUILD efibootmgr-14.ebuild 601 BLAKE2B 609e08888d571faa2a73414e05e200d9b9b5931b97493c149fa1343f463aeb17a0eed1312feabceb56e535000ad0b24c8cd2281c24454084d4006323449bf8c1 SHA512 e93d46d6d3e6a2fab2b1652af0a667003381c2d21f56aee3fddeadf79d9f76078531548ddeec9200f210a0d36b8659bbd41a3f20b5eccb32f26e1435162b8144
EBUILD efibootmgr-15.ebuild 625 BLAKE2B 7c98f668fc581ab2a44a262ff289ef2c22fd47d951d3f2840a647a74db0e6808e5defdb8dc106a60cbfa30592a5b07ffdac2ee2fbb70ce3485123465bc797b95 SHA512 08e0ab714b313a627a8189640d8266a1e97bb4f9186352ef9644edb9c9ab42675b38528fca6d4c7184344d3ac488feee06d6baf81e5ec59bac9bd482eca4fdec
EBUILD efibootmgr-16.ebuild 686 BLAKE2B bfdbed885980cc66d809478e30ee12b70dc6f29dcdf23b1ee7b13781a2e50e1c5ef180c855f49e200d4baf32d8745a364c875054aeb247dc38ef4e5d7460bf08 SHA512 eee2b40b3d2958856c73c479b51c826a5040635282403a0d06e9fd53d873687fae633aa6eda8b23d69b609d255a2f6434d3060c760362a5f489a8dce6be9133a
+EBUILD efibootmgr-17.ebuild 769 BLAKE2B c6b54c18236fc0f1ec7a9754b6bbabbd5838fbc7eb0d11434ebb4def46792519eb9bc5c0649094cd8a1df947a40534c2bc2062f257564feba466d8998513f695 SHA512 fa736a11e5fc44eceabb76407aacbfaecac04ac66af7544ec5b7377ec4f015ce3396702bb2ef9ec49fe500e266ec02afb6da7a8699cd09492672b5585a104be8
MISC metadata.xml 626 BLAKE2B d426af2d479b07fa3d8e482b5d1b84bd242f5da9399ab9cd2d2512d2192f815ccb099ca7c8d3ee91c8c87e1715c9649deaa565aa6ec025c26b518e778d84989e SHA512 d52646244bf9c0d10d8c5b986e110944905fc8f898c0330f65cd6c734e6d8cfabf72854cef362f411d3d63fed3f5e22207a7b94d1ea8076e566d8eff228bb33b
diff --git a/sys-boot/efibootmgr/efibootmgr-17.ebuild b/sys-boot/efibootmgr/efibootmgr-17.ebuild
new file mode 100644
index 000000000000..a6d695bcfe73
--- /dev/null
+++ b/sys-boot/efibootmgr/efibootmgr-17.ebuild
@@ -0,0 +1,39 @@
+# Copyright 1999-2021 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+inherit toolchain-funcs
+
+DESCRIPTION="User-space application to modify the EFI boot manager"
+HOMEPAGE="https://github.com/rhinstaller/efibootmgr"
+SRC_URI="https://github.com/rhboot/efibootmgr/archive/${PV}.tar.gz -> ${P}.tar.gz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~arm64 ~ia64 ~x86"
+
+RDEPEND="
+ sys-apps/pciutils
+ >=sys-libs/efivar-37:=
+"
+DEPEND="${RDEPEND}"
+
+PATCHES=(
+ "${FILESDIR}/${P}-fix-efivar-37-conflict.patch"
+ "${FILESDIR}/${P}-clang.patch"
+)
+
+src_prepare() {
+ default
+ sed -i 's/-Werror //' Make.defaults || die
+}
+
+src_configure() {
+ tc-export CC
+ export EFIDIR="Gentoo"
+}
+
+src_compile() {
+ emake PKG_CONFIG="$(tc-getPKG_CONFIG)"
+}
diff --git a/sys-boot/efibootmgr/files/efibootmgr-17-clang.patch b/sys-boot/efibootmgr/files/efibootmgr-17-clang.patch
new file mode 100644
index 000000000000..687b294c3339
--- /dev/null
+++ b/sys-boot/efibootmgr/files/efibootmgr-17-clang.patch
@@ -0,0 +1,82 @@
+From 97668ae0bce776a36ea2001dea63d376be8274ac Mon Sep 17 00:00:00 2001
+From: Peter Jones <pjones@redhat.com>
+Date: Wed, 6 Mar 2019 13:08:33 -0500
+Subject: [PATCH] Make sure PKGS= is propogated into the submake for "make
+ deps"
+
+When we're doing make deps with "$(CC) -MF", gcc and clang have different
+behavior, both broken in different ways, which we're hitting because of a
+missing -I argument for libefivar's includes. On clang, when a header can't
+be found, it emits a rule with the header as a prerequisite without a path,
+such as efivar.h here:
+
+efibootmgr.o: efibootmgr.c fix_coverity.h efivar.h efiboot.h \
+ /home/pjones/devel/github.com/efibootmgr/master/src/include/list.h \
+ /home/pjones/devel/github.com/efibootmgr/master/src/include/efi.h \
+ /home/pjones/devel/github.com/efibootmgr/master/src/include/unparse_path.h \
+ /home/pjones/devel/github.com/efibootmgr/master/src/include/efibootmgr.h \
+ error.h
+
+Then the build that utilizes that rule will fail to find the
+prerequisite and tell you something like:
+
+make[1]: *** No rule to make target 'efivar.h', needed by 'efibootmgr.o'. Stop.
+make[1]: Leaving directory '/home/pjones/devel/github.com/efibootmgr/master/src'
+
+With gcc, when a header can't be found, it emits a rule without that header
+as a prerequisite, as such (again with efivar.h):
+
+efibootmgr.o: efibootmgr.c fix_coverity.h \
+ /home/pjones/devel/github.com/efibootmgr/master/src/include/list.h \
+ /home/pjones/devel/github.com/efibootmgr/master/src/include/efi.h \
+ /home/pjones/devel/github.com/efibootmgr/master/src/include/unparse_path.h \
+ /home/pjones/devel/github.com/efibootmgr/master/src/include/efi.h \
+ /home/pjones/devel/github.com/efibootmgr/master/src/include/efibootmgr.h \
+ error.h
+
+And then your build will fail if you haven't adjusted CFLAGS to tell it
+where to find the header.
+
+Both of these would be better just erroring, but at least gcc's doesn't
+insert a *wrong* dependency.
+
+This patch adds "PKGS=efivar efibootmgr popt" for all deps under src/.
+Technically that's overkill, as efibootmgr itself doesn't need popt, but it
+doesn't hurt anything to have the extra part there. The resulting
+.efibootmgr.d file has the prerequisites expressed correctly:
+
+efibootmgr.o: efibootmgr.c fix_coverity.h /usr/include/efivar/efivar.h \
+ /usr/include/efivar/efiboot.h \
+ /home/pjones/devel/github.com/efibootmgr/master/src/include/list.h \
+ /home/pjones/devel/github.com/efibootmgr/master/src/include/efi.h \
+ /home/pjones/devel/github.com/efibootmgr/master/src/include/unparse_path.h \
+ /home/pjones/devel/github.com/efibootmgr/master/src/include/efi.h \
+ /home/pjones/devel/github.com/efibootmgr/master/src/include/efibootmgr.h \
+ error.h
+
+This fixes the issue described in github PR #96
+
+Signed-off-by: Peter Jones <pjones@redhat.com>
+---
+ src/Makefile | 7 ++++++-
+ 1 file changed, 6 insertions(+), 1 deletion(-)
+
+diff --git a/src/Makefile b/src/Makefile
+index 258bac1..32fa188 100644
+--- a/src/Makefile
++++ b/src/Makefile
+@@ -31,8 +31,13 @@ efibootdump : PKGS=efivar efiboot popt
+ efibootnext : $(call objects-of,$(EFIBOOTNEXT_SOURCES))
+ efibootnext : PKGS=efivar efiboot popt
+
++deps : PKGS=efivar efiboot popt
+ deps : $(ALL_SOURCES)
+- $(MAKE) -f $(TOPDIR)/Make.deps deps SOURCES="$(ALL_SOURCES)" SUBDIR_CFLAGS="$(SUBDIR_CFLAGS)"
++ $(MAKE) -f $(TOPDIR)/Make.deps \
++ SOURCES="$(ALL_SOURCES)" \
++ SUBDIR_CFLAGS="$(SUBDIR_CFLAGS)" \
++ PKGS="$(PKGS)" \
++ deps
+
+ clean :
+ @rm -rfv *.o *.a *.so $(TARGETS)
diff --git a/sys-boot/efibootmgr/files/efibootmgr-17-fix-efivar-37-conflict.patch b/sys-boot/efibootmgr/files/efibootmgr-17-fix-efivar-37-conflict.patch
new file mode 100644
index 000000000000..614195f3c99d
--- /dev/null
+++ b/sys-boot/efibootmgr/files/efibootmgr-17-fix-efivar-37-conflict.patch
@@ -0,0 +1,14 @@
+diff --git a/src/efibootmgr.c b/src/efibootmgr.c
+index de38f01..4e1a680 100644
+--- a/src/efibootmgr.c
++++ b/src/efibootmgr.c
+@@ -1536,9 +1536,6 @@ parse_opts(int argc, char **argv)
+ "invalid numeric value %s\n",
+ optarg);
+ }
+- /* XXX efivar-36 accidentally doesn't have a public
+- * header for this */
+- extern int efi_set_verbose(int verbosity, FILE *errlog);
+ efi_set_verbose(opts.verbose - 2, stderr);
+ break;
+ case 'V':