Subject: [bug#68355] [PATCH 8/8] gnu: make-crust-package: Unite firmware and tools.

From: Jean-Pierre De Jesus DIAZ <[email-masked]>
Date: Wed, 10 Jan 2024 00:14:42 +0100

* gnu/packages/firmware.scm (make-crust-package): Perform union of
  make-crust-firmware and make-crust-tools.

* gnu/packages/firmware.scm (make-crust-firmware): New procedure.

Change-Id: I687bb6d53aae9bd60ed988baf9d17e92f31faa7b
---
 gnu/packages/firmware.scm | 28 ++++++++++++++++++++++++++--
 1 file changed, 26 insertions(+), 2 deletions(-)

diff --git a/gnu/packages/firmware.scm b/gnu/packages/firmware.scm
index c3deab5224..71444f190d 100644
--- a/gnu/packages/firmware.scm
+++ b/gnu/packages/firmware.scm
@@ -1190,11 +1190,12 @@ (define-public arm-trusted-firmware-imx8mq
           ;; Adding debug symbols causes the size to exceed limits.
           #~(delete "DEBUG=1" #$flags)))))))
 
-(define make-crust-package
+(define make-crust-firmware
   (mlambda (platform)
     (package
       (name (string-append "crust-"
-                           (string-replace-substring platform "_" "-")))
+                           (string-replace-substring platform "_" "-")
+                           "-firmware"))
       (version "0.6")
       (source
        (origin
@@ -1287,6 +1288,29 @@ (define make-crust-tools
       (synopsis "System control processor firmware for Allwinner sunxi boards (tools)")
       (inputs (list firmware)))))
 
+(define make-crust-package
+  (mlambda (platform)
+    (let* ((firmware (make-crust-firmware platform))
+           (tools (make-crust-tools platform firmware)))
+      (package
+        (inherit firmware)
+        (name (string-append "crust-"
+                             (string-replace-substring platform "_" "-")))
+        (source #f)
+        (build-system trivial-build-system)
+        (arguments
+         (list #:modules '((guix build union))
+               #:builder
+               #~(begin
+                   (use-modules (ice-9 match)
+                                (guix build union))
+
+                   (match %build-inputs
+                     (((names . directory) ...)
+                      (union-build #$output directory))))))
+        (native-inputs '())
+        (inputs (list firmware tools))))))
+
 (define-public crust-pinebook
   (make-crust-package "pinebook"))
 
-- 
2.41.0