summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'sys-libs/efivar')
-rw-r--r--sys-libs/efivar/efivar-32-r1.ebuild42
-rw-r--r--sys-libs/efivar/files/efivar-32-efi_guid_ux_capsule.patch59
2 files changed, 101 insertions, 0 deletions
diff --git a/sys-libs/efivar/efivar-32-r1.ebuild b/sys-libs/efivar/efivar-32-r1.ebuild
new file mode 100644
index 000000000000..2ae5a0644a86
--- /dev/null
+++ b/sys-libs/efivar/efivar-32-r1.ebuild
@@ -0,0 +1,42 @@
+# Copyright 1999-2018 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=6
+
+inherit flag-o-matic toolchain-funcs
+
+DESCRIPTION="Tools and library to manipulate EFI variables"
+HOMEPAGE="https://github.com/rhinstaller/efivar"
+#SRC_URI="https://github.com/rhinstaller/efivar/releases/download/${PV}/${P}.tar.bz2"
+SRC_URI="https://github.com/rhinstaller/efivar/archive/${PV}/${P}.tar.gz"
+
+LICENSE="GPL-2"
+SLOT="0/1"
+KEYWORDS="~amd64 ~arm64 ~ia64 ~x86"
+
+RDEPEND="dev-libs/popt"
+DEPEND="${RDEPEND}
+ >=sys-kernel/linux-headers-3.18
+ virtual/pkgconfig
+"
+
+PATCHES=(
+ "${FILESDIR}/${P}-efi_guid_ux_capsule.patch"
+)
+
+src_prepare() {
+ default
+ sed -i -e s/-Werror// gcc.specs || die
+}
+
+src_configure() {
+ tc-export CC
+ tc-ld-disable-gold
+ export libdir="/usr/$(get_libdir)"
+ unset LIBS # Bug 562004
+
+ if [[ -n ${GCC_SPECS} ]]; then
+ # The environment overrides the command line.
+ GCC_SPECS+=":${S}/gcc.specs"
+ fi
+}
diff --git a/sys-libs/efivar/files/efivar-32-efi_guid_ux_capsule.patch b/sys-libs/efivar/files/efivar-32-efi_guid_ux_capsule.patch
new file mode 100644
index 000000000000..8a5a72f66fb0
--- /dev/null
+++ b/sys-libs/efivar/files/efivar-32-efi_guid_ux_capsule.patch
@@ -0,0 +1,59 @@
+From cd732494ba7685feaf71b9ee58619ca6aef39fc9 Mon Sep 17 00:00:00 2001
+From: Peter Jones <pjones@redhat.com>
+Date: Tue, 12 Sep 2017 10:45:31 -0400
+Subject: [PATCH] Make efi_guid_ux_capsule actually work.
+
+Signed-off-by: Peter Jones <pjones@redhat.com>
+---
+ src/abignore | 11 ++++++++++-
+ src/guids.txt | 2 +-
+ src/libefivar.map.in | 4 ++++
+ 3 files changed, 15 insertions(+), 2 deletions(-)
+
+diff --git a/src/abignore b/src/abignore
+index 74b5160..479b5c3 100644
+--- a/src/abignore
++++ b/src/abignore
+@@ -14,7 +14,16 @@
+ # 'efidp_wifi __anonymous_union__::wifi' at efivar-dp.h:868:1
+ #
+ [suppress_type]
+- soname_regexp = libefi(var|boot)\\.so
++ soname_regexp = libefi(var|boot)\\.so\\..*
+ name = efidp_data
+ type_kind = typedef
+ has_data_member_inserted_at = end
++
++# 1 Added variable:
++#
++# 'const __anonymous_struct__ efi_guid_ux_capsule' {efi_guid_ux_capsule@@LIBEFIVAR_1.32}
++#
++[suppress_variable]
++ soname_regexp = ^libefivar\\.so\\.[[:digit:]]+
++ symbol_name_regexp = ^efi_guid_[[:alnum:]_]+$
++ change_kind = add-variable
+diff --git a/src/guids.txt b/src/guids.txt
+index 87e2f61..06081ed 100644
+--- a/src/guids.txt
++++ b/src/guids.txt
+@@ -3,7 +3,7 @@
+ 0abba7dc-e516-4167-bbf5-4d9d1c739416 redhat Red Hat
+ 0b6e5233-a65c-44c9-9407-d9ab83bfc8bd sha224 SHA-224
+ 126a762d-5758-4fca-8531-201a7f57f850 lenovo_boot_menu Lenovo Boot Menu
+-3b8c8162-188c-46a4-aec9-be43f1d65697 ux_capsule_guid Firmware update localized text image
++3b8c8162-188c-46a4-aec9-be43f1d65697 ux_capsule Firmware update localized text image
+ 3bd2a492-96c0-4079-b420-fcf98ef103ed x509_sha256 SHA256 hash of X.509 Certificate
+ 3c5766e8-269c-4e34-aa14-ed776e85b3b6 rsa2048 RSA 2048
+ 3CC24E96-22C7-41D8-8863-8E39DCDCC2CF lenovo Lenovo
+diff --git a/src/libefivar.map.in b/src/libefivar.map.in
+index ba51d55..a95a505 100644
+--- a/src/libefivar.map.in
++++ b/src/libefivar.map.in
+@@ -110,3 +110,7 @@ LIBEFIVAR_1.30 {
+ efi_error_get;
+ efi_error_clear;
+ } LIBEFIVAR_1.29;
++
++LIBEFIVAR_1.32 {
++ global: efi_guid_ux_capsule;
++} LIBEFIVAR_1.30;