Subject: [bug#70240] [PATCH] gnu: uefitool: Add extra outputs, correct typo

From: Ian Eure <[email-masked]>
Date: Sat, 6 Apr 2024 08:24:00 -0700

* gnu/packages/flashing-tools.scm (uefitool): Add UEFIPatch and UEFIReplace in
addition to UEFITool; add outputs for them.  Correct package description.

Change-Id: I45ca03a71c463c91ab11e9dcd47971afc06724b7
---
 gnu/packages/flashing-tools.scm | 46 ++++++++++++++++++++++++---------
 1 file changed, 34 insertions(+), 12 deletions(-)

diff --git a/gnu/packages/flashing-tools.scm b/gnu/packages/flashing-tools.scm
index 83a4c3e3e7..3787e9d32a 100644
--- a/gnu/packages/flashing-tools.scm
+++ b/gnu/packages/flashing-tools.scm
@@ -493,29 +493,51 @@ (define-public uefitool
     (source (origin
               (method git-fetch)
               (uri (git-reference
-                     (url "https://github.com/LongSoft/UEFITool")
-                     (commit version)))
+                    (url "https://github.com/LongSoft/UEFITool")
+                    (commit version)))
               (sha256
                (base32
                 "1n2hd2dysi5bv2iyq40phh1jxc48gdwzs414vfbxvcharcwapnja"))
               (file-name (git-file-name name version))))
     (build-system gnu-build-system)
+    (outputs '("out" "uefipatch" "uefireplace"))
     (arguments
-     `(#:phases
-       (modify-phases %standard-phases
-         (replace 'configure
-           (lambda _
-             (invoke "qmake" "-makefile")))
-         (replace 'install
-           (lambda* (#:key outputs #:allow-other-keys)
-             (install-file "UEFITool" (string-append (assoc-ref outputs "out")
-                                                     "/bin")))))))
+     (list
+      #:phases
+      #~(modify-phases %standard-phases
+          (replace 'configure
+            (lambda _
+              (invoke "qmake" "-makefile")))
+          (replace 'install
+            (lambda* (#:key outputs #:allow-other-keys)
+              (install-file "UEFITool" (string-append (assoc-ref outputs "out")
+                                                      "/bin"))))
+          (add-after 'configure 'configure-extras
+            (lambda _
+              (with-directory-excursion "UEFIPatch"
+                (invoke "qmake" "-makefile"))
+              (with-directory-excursion "UEFIReplace"
+                (invoke "qmake" "-makefile"))))
+          (add-after 'build 'build-extras
+            (lambda _
+              (with-directory-excursion "UEFIPatch"
+                (invoke "make" "-j"))
+              (with-directory-excursion "UEFIReplace"
+                (invoke "make" "-j"))))
+          (add-after 'install 'install-extras
+            (lambda* (#:key outputs #:allow-other-keys)
+              (install-file "UEFIPatch/UEFIPatch"
+                            (string-append (assoc-ref outputs "uefipatch")
+                                           "/bin"))
+              (install-file "UEFIReplace/UEFIReplace"
+                            (string-append (assoc-ref outputs "uefireplace")
+                                           "/bin")))))))
     (inputs
      (list qtbase-5))
     (home-page "https://github.com/LongSoft/UEFITool/")
     (synopsis "UEFI image editor")
     (description "@code{uefitool} is a graphical image file editor for
-Unifinished Extensible Firmware Interface (UEFI) images.")
+Unified Extensible Firmware Interface (UEFI) images.")
     (license license:bsd-2)))
 
 (define-public srecord

base-commit: ab3731d255ff1ac8d6874bc0f68ad94f21f08e79
-- 
2.41.0