summary refs log tree commit diff
diff options
context:
space:
mode:
authorLudovic Courtès <ludo@gnu.org>2023-07-20 23:49:48 +0200
committerLudovic Courtès <ludo@gnu.org>2023-07-20 23:49:48 +0200
commit0ab46ef3f9719f03d9b191a16e5aa91619e95451 (patch)
tree96fdf7e351190997081eccededb7b5578d82e526
parenta4038c4f783b05040cfdb262d9f4c0119b612371 (diff)
downloadguix-0ab46ef3f9719f03d9b191a16e5aa91619e95451.tar.gz
gnu: bootloaders: Avoid top-level circular references.
Fixes <https://issues.guix.gnu.org/64745>.

The regression was introduced in
ed5dc3a25d858a394bb7db937a51d866c3cdc6ed: at the top level,
bootloaders.scm and firmware.scm would depend on each other, leading to
unbound variables when loaded, depending on the order in which they got
loaded.

* gnu/packages/bootloaders.scm (make-u-boot-sunxi64-package): Expect
'scp-firmware' to be a promise; force it in 'native-inputs'.
(u-boot-pine64-plus, u-boot-pine64-lts, u-boot-pinebook): Wrap the 3rd
argument to 'make-u-boot-sunxi64-package' into 'delay'.

Reported-by: Maxim Cournoyer <maxim.cournoyer@gmail.com>
-rw-r--r--gnu/packages/bootloaders.scm10
1 files changed, 5 insertions, 5 deletions
diff --git a/gnu/packages/bootloaders.scm b/gnu/packages/bootloaders.scm
index 30ef673f7d..38eb1d104f 100644
--- a/gnu/packages/bootloaders.scm
+++ b/gnu/packages/bootloaders.scm
@@ -1,5 +1,5 @@
 ;;; GNU Guix --- Functional package management for GNU
-;;; Copyright © 2013, 2014, 2015, 2016, 2017, 2018, 2019, 2021 Ludovic Courtès <ludo@gnu.org>
+;;; Copyright © 2013-2019, 2021, 2023 Ludovic Courtès <ludo@gnu.org>
 ;;; Copyright © 2015, 2018 Mark H Weaver <mhw@netris.org>
 ;;; Copyright © 2015 Leo Famulari <leo@famulari.name>
 ;;; Copyright © 2016, 2020 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
@@ -1051,22 +1051,22 @@ removed so that it fits within common partitioning schemes.")))
                   (setenv "BL31" (search-input-file inputs "bl31.bin"))))))))
       (native-inputs
        (modify-inputs (package-native-inputs base)
-         (append scp-firmware)))
+         (append (force scp-firmware))))
       (inputs
        (modify-inputs (package-inputs base)
          (append arm-trusted-firmware-sun50i-a64))))))
 
 (define-public u-boot-pine64-plus
   (make-u-boot-sunxi64-package "pine64_plus" "aarch64-linux-gnu"
-                               crust-pine64-plus))
+                               (delay crust-pine64-plus)))
 
 (define-public u-boot-pine64-lts
   (make-u-boot-sunxi64-package "pine64-lts" "aarch64-linux-gnu"
-                               crust-pine64-plus))
+                               (delay crust-pine64-plus)))
 
 (define-public u-boot-pinebook
   (make-u-boot-sunxi64-package
-   "pinebook" "aarch64-linux-gnu" crust-pinebook
+   "pinebook" "aarch64-linux-gnu" (delay crust-pinebook)
    ;; Fix regression with LCD video output introduced in 2020.01
    ;; https://patchwork.ozlabs.org/patch/1225130/
    #:configs '("CONFIG_VIDEO_BPP32=y")))