commit:     36eb40e0d1be521917a2e4836ac4bbd89f9787a0
Author:     Thomas Deutschmann <whissi <AT> gentoo <DOT> org>
AuthorDate: Fri Jun 18 21:19:14 2021 +0000
Commit:     Thomas Deutschmann <whissi <AT> gentoo <DOT> org>
CommitDate: Fri Jun 18 21:19:30 2021 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=36eb40e0

sys-apps/fwupd-efi: fix building

Fixes

  PermissionError: [Errno 13] Permission denied: 'genpeimg'

Closes: https://bugs.gentoo.org/796569
Package-Manager: Portage-3.0.20, Repoman-3.0.3
Signed-off-by: Thomas Deutschmann <whissi <AT> gentoo.org>

 .../fwupd-efi-1.0-add-genpeimg-parameter.patch     | 42 ++++++++++++++++++++++
 .../files/fwupd-efi-1.0-pass-genpeimg.patch        | 21 +++++++++++
 sys-apps/fwupd-efi/fwupd-efi-1.0.ebuild            |  5 +++
 3 files changed, 68 insertions(+)

diff --git 
a/sys-apps/fwupd-efi/files/fwupd-efi-1.0-add-genpeimg-parameter.patch 
b/sys-apps/fwupd-efi/files/fwupd-efi-1.0-add-genpeimg-parameter.patch
new file mode 100644
index 00000000000..a9791b4e114
--- /dev/null
+++ b/sys-apps/fwupd-efi/files/fwupd-efi-1.0-add-genpeimg-parameter.patch
@@ -0,0 +1,42 @@
+From 207e8bf4bdb8dbdf8800d4b5cbac5af746047f37 Mon Sep 17 00:00:00 2001
+From: Ross Burton <[email protected]>
+Date: Fri, 14 May 2021 14:06:31 +0100
+Subject: [PATCH] generate_binary: add genpeimg option
+
+Add a --genpeimg option as the meson.build uses find_program(), so the
+binary could be anywhere.
+---
+ efi/generate_binary.py | 9 ++++++---
+ 1 file changed, 6 insertions(+), 3 deletions(-)
+
+diff --git a/efi/generate_binary.py b/efi/generate_binary.py
+index 0193e50..907af9f 100755
+--- a/efi/generate_binary.py
++++ b/efi/generate_binary.py
+@@ -48,13 +48,15 @@ def _run_objcopy(args):
+ 
+ 
+ def _run_genpeimg(args):
++    if not args.genpeimg:
++        return
+ 
+-    # this is okay if it does not exist
+-    argv = ["genpeimg", "-d", "+d", "+n", "-d", "+s", args.outfile]
++    argv = [args.genpeimg, "-d", "+d", "+n", "-d", "+s", args.outfile]
+     try:
+         subprocess.run(argv, check=True)
+     except FileNotFoundError as _:
+-        pass
++        print(str(e))
++        sys.exit(1)
+ 
+ 
+ if __name__ == "__main__":
+@@ -63,6 +65,7 @@ def _run_genpeimg(args):
+     parser.add_argument(
+         "--objcopy", default="objcopy", help="Binary file to use for objcopy"
+     )
++    parser.add_argument("--genpeimg", help="Binary file to use for genpeimg")
+     parser.add_argument("--arch", default="x86_64", help="EFI architecture")
+     parser.add_argument("infile", help="Input file")
+     parser.add_argument("outfile", help="Output file")

diff --git a/sys-apps/fwupd-efi/files/fwupd-efi-1.0-pass-genpeimg.patch 
b/sys-apps/fwupd-efi/files/fwupd-efi-1.0-pass-genpeimg.patch
new file mode 100644
index 00000000000..7e4dd1af329
--- /dev/null
+++ b/sys-apps/fwupd-efi/files/fwupd-efi-1.0-pass-genpeimg.patch
@@ -0,0 +1,21 @@
+From 321f0750ee69cc62ab609f760769d880676f712b Mon Sep 17 00:00:00 2001
+From: Ross Burton <[email protected]>
+Date: Fri, 14 May 2021 14:07:11 +0100
+Subject: [PATCH] meson: pass the found genpeimg to generate_binary
+
+---
+ efi/meson.build | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/efi/meson.build b/efi/meson.build
+index a496210..7cc1da1 100644
+--- a/efi/meson.build
++++ b/efi/meson.build
+@@ -215,6 +215,7 @@ app = custom_target(efi_name,
+                       '@INPUT@', '@OUTPUT@',
+                       '--arch', gnu_efi_arch,
+                       '--objcopy', efi_objcopy,
++                      '--genpeimg', genpeimg.found() ? genpeimg : ''
+                     ],
+                     install : true,
+                     install_dir : efi_app_location)

diff --git a/sys-apps/fwupd-efi/fwupd-efi-1.0.ebuild 
b/sys-apps/fwupd-efi/fwupd-efi-1.0.ebuild
index fc3aa3397b2..1f99eec953e 100644
--- a/sys-apps/fwupd-efi/fwupd-efi-1.0.ebuild
+++ b/sys-apps/fwupd-efi/fwupd-efi-1.0.ebuild
@@ -29,6 +29,11 @@ DEPEND="sys-boot/gnu-efi"
 
 RDEPEND="!<sys-apps/fwupd-1.6.0"
 
+PATCHES=(
+       "${FILESDIR}"/${P}-add-genpeimg-parameter.patch
+       "${FILESDIR}"/${P}-pass-genpeimg.patch
+)
+
 src_prepare() {
        default
 

Reply via email to