* [bug#60224] [PATCH 0/9] Improvements to our u-boot tooling
@ 2022-12-20 16:50 Maxim Cournoyer
2022-12-20 18:34 ` [bug#60224] [PATCH 1/9] gnu: make-u-boot-package: Add a u-boot argument and use gexps Maxim Cournoyer
` (4 more replies)
0 siblings, 5 replies; 53+ messages in thread
From: Maxim Cournoyer @ 2022-12-20 16:50 UTC (permalink / raw)
To: 60224; +Cc: Maxim Cournoyer
This series include a few changes that were useful or needed to build U-Boot
for the i.MX6, notably installation of the u-boot.imx image. It also cleans up
things for cross-compilation, no longer explicitly adding cross-gcc and
cross-binutils, leaving the build system taking care of that.
The two first commits of this series were previously submitted as #59761, now
extracted and submitted here for transparency, with fixes for impacted u-boot
packages that broke because the move to use gexps.
Maxim Cournoyer (9):
gnu: make-u-boot-package: Add a u-boot argument and use gexps.
gnu: make-u-boot-package: Install .imx files.
gnu: make-uboot-package: Simplify build.
gnu: u-boot-pinebook-pro-rk3399: Remove input labels and use gexps.
gnu: u-boot-firefly-rk3399: Use gexps and fix cross-build.
gnu: make-u-boot-sunxi64-package: Use gexps and adjust file name.
gnu: u-boot-rock64-rk3328: Fix build.
gnu: u-boot-sifive-unmatched: Use gexps and remove inputs.
gnu: u-boot-puma-rk3399: Use make-u-boot-sunxi64-package.
gnu/packages/bootloaders.scm | 295 +++++++++++++++++------------------
1 file changed, 144 insertions(+), 151 deletions(-)
base-commit: 1a3d8b922863c22f612ea679d9419bb457874fdf
--
2.38.1
^ permalink raw reply [flat|nested] 53+ messages in thread
* [bug#60224] [PATCH 1/9] gnu: make-u-boot-package: Add a u-boot argument and use gexps.
2022-12-20 16:50 [bug#60224] [PATCH 0/9] Improvements to our u-boot tooling Maxim Cournoyer
@ 2022-12-20 18:34 ` Maxim Cournoyer
2022-12-20 18:34 ` [bug#60224] [PATCH 2/9] gnu: make-u-boot-package: Install .imx files Maxim Cournoyer
` (7 more replies)
2022-12-29 19:18 ` [bug#60224] [PATCH 0/9] Improvements to our u-boot tooling Ricardo Wurmus
` (3 subsequent siblings)
4 siblings, 8 replies; 53+ messages in thread
From: Maxim Cournoyer @ 2022-12-20 18:34 UTC (permalink / raw)
To: 60224; +Cc: Maxim Cournoyer
And have that u-boot argument used as the complete base of the template, so
that a user can override it.
* gnu/packages/bootloaders.scm (make-u-boot-package): New U-BOOT argument.
Document it.
[native-inputs]: Move the native-inputs of U-BOOT first, so that the
cross compilation tools can be overridden via U-BOOT.
[arguments]: Rewrite using substitute-keyword-arguments, extending rather than
overriding most arguments. Use gexps.
---
gnu/packages/bootloaders.scm | 182 +++++++++++++++++++----------------
1 file changed, 98 insertions(+), 84 deletions(-)
diff --git a/gnu/packages/bootloaders.scm b/gnu/packages/bootloaders.scm
index b968ecd441..42f859c362 100644
--- a/gnu/packages/bootloaders.scm
+++ b/gnu/packages/bootloaders.scm
@@ -17,6 +17,7 @@
;;; Copyright © 2021 Brice Waegeneire <brice@waegenei.re>
;;; Copyright © 2022 Denis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org>
;;; Copyright © 2021 Stefan <stefan-guix@vodafonemail.de>
+;;; Copyright © 2022 Maxim Cournoyer <maxim.cournoyer@gmail.com>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -782,11 +783,13 @@ (define*-public (make-u-boot-package board triplet
defconfig
configs
name-suffix
- append-description)
+ append-description
+ (u-boot u-boot))
"Return a U-Boot package for BOARD cross-compiled for TRIPLET with the
optional DEFCONFIG file and optional configuration changes from CONFIGS.
NAME-SUFFIX is appended to the package name, while APPEND-DESCRIPTION is
-appended to the package description."
+appended to the package description. U-BOOT can be used when a fork or a
+different version of U-Boot must be used."
(let ((same-arch? (lambda ()
(string=? (%current-system)
(gnu-triplet->nix-system triplet)))))
@@ -801,91 +804,102 @@ (define*-public (make-u-boot-package board triplet
"\n\n" append-description)
(package-description u-boot)))
(native-inputs
- `(,@(if (not (same-arch?))
+ ;; Note: leave the native u-boot inputs first, so that a user can
+ ;; override the cross-gcc and cross-binutils packages.
+ `(,@(package-native-inputs u-boot)
+ ,@(if (not (same-arch?))
`(("cross-gcc" ,(cross-gcc triplet))
("cross-binutils" ,(cross-binutils triplet)))
- `())
- ,@(package-native-inputs u-boot)))
+ `())))
(arguments
- `(#:modules ((ice-9 ftw)
- (srfi srfi-1)
- (guix build gnu-build-system)
- (guix build kconfig)
- (guix build utils))
- #:imported-modules (,@%gnu-build-system-modules
- (guix build kconfig))
- #:test-target "test"
- #:make-flags
- (list "HOSTCC=gcc"
- "KBUILD_VERBOSE=1"
- ,@(if (not (same-arch?))
- `((string-append "CROSS_COMPILE=" ,triplet "-"))
- '()))
- #:phases
- (modify-phases %standard-phases
- (replace 'configure
- (lambda* (#:key outputs make-flags #:allow-other-keys)
- (let* ((config-name (string-append ,board "_defconfig"))
- (config-file (string-append "configs/" config-name))
- (defconfig ,defconfig)
- (configs ',configs))
- (when defconfig
- ;; Replace the board-specific defconfig with the given one.
- (copy-file defconfig config-file))
- (if (file-exists? config-file)
- (begin
- (when configs
- (modify-defconfig config-file configs))
- (apply invoke "make" `(,@make-flags ,config-name))
- (verify-config ".config" config-file))
- (begin
- (display "invalid board name; valid board names are:"
- (current-error-port))
- (let ((suffix-len (string-length "_defconfig"))
- (entries (scandir "configs")))
- (for-each (lambda (file-name)
- (when (string-suffix? "_defconfig" file-name)
- (format (current-error-port)
- "- ~A\n"
- (string-drop-right file-name
- suffix-len))))
- (sort entries string-ci<)))
- (error "invalid boardname ~s" ,board))))))
- (add-after 'configure 'disable-tools-libcrypto
- ;; Disable libcrypto due to GPL and OpenSSL license
- ;; incompatibilities
- (lambda _
- (substitute* ".config"
- (("CONFIG_TOOLS_LIBCRYPTO=.*$") "CONFIG_TOOLS_LIBCRYPTO=n"))))
- (replace 'install
- (lambda* (#:key outputs #:allow-other-keys)
- (let* ((out (assoc-ref outputs "out"))
- (libexec (string-append out "/libexec"))
- (uboot-files (append
- (remove
- ;; Those would not be reproducible
- ;; because of the randomness used
- ;; to produce them.
- ;; It's expected that the user will
- ;; use u-boot-tools to generate them
- ;; instead.
- (lambda (name)
- (string-suffix?
- "sunxi-spl-with-ecc.bin"
- name))
- (find-files "." ".*\\.(bin|efi|img|spl|itb|dtb|rksd)$"))
- (find-files "." "^(MLO|SPL)$"))))
- (mkdir-p libexec)
- (install-file ".config" libexec)
- ;; Useful for "qemu -kernel".
- (install-file "u-boot" libexec)
- (for-each
- (lambda (file)
- (let ((target-file (string-append libexec "/" file)))
- (mkdir-p (dirname target-file))
- (copy-file file target-file)))
- uboot-files)
- #t)))))))))
+ (substitute-keyword-arguments (package-arguments u-boot)
+ ((#:modules modules '())
+ `((ice-9 ftw)
+ (srfi srfi-1)
+ (guix build gnu-build-system)
+ (guix build kconfig)
+ (guix build utils)
+ ,@modules))
+ ((#:imported-modules imported-modules '())
+ `((guix build kconfig)
+ ,@%gnu-build-system-modules
+ ,@imported-modules))
+ ((#:test-target _ "test")
+ "test")
+ ((#:make-flags make-flags '())
+ #~(list "HOSTCC=gcc"
+ "KBUILD_VERBOSE=1"
+ #$@(if (not (same-arch?))
+ (list (string-append "CROSS_COMPILE=" triplet "-"))
+ '())
+ #$@make-flags))
+ ((#:phases phases '%standard-phases)
+ #~(modify-phases #$phases
+ (replace 'configure
+ (lambda* (#:key outputs make-flags #:allow-other-keys)
+ (let* ((config-name (string-append #$board "_defconfig"))
+ (config-file (string-append "configs/" config-name))
+ (defconfig #$defconfig)
+ (configs '#$configs))
+ (when defconfig
+ ;; Replace the board-specific defconfig with the given
+ ;; one.
+ (copy-file defconfig config-file))
+ (if (file-exists? config-file)
+ (begin
+ (when configs
+ (modify-defconfig config-file configs))
+ (apply invoke "make" `(,@make-flags ,config-name))
+ (verify-config ".config" config-file))
+ (begin
+ (display "invalid board name; valid board names are:"
+ (current-error-port))
+ (let ((suffix-len (string-length "_defconfig"))
+ (entries (scandir "configs")))
+ (for-each (lambda (file-name)
+ (when (string-suffix? "_defconfig"
+ file-name)
+ (format (current-error-port)
+ "- ~A\n"
+ (string-drop-right
+ file-name suffix-len))))
+ (sort entries string-ci<)))
+ (error "invalid boardname ~s" #$board))))))
+ (add-after 'configure 'disable-tools-libcrypto
+ ;; Disable libcrypto due to GPL and OpenSSL license
+ ;; incompatibilities
+ (lambda _
+ (substitute* ".config"
+ (("CONFIG_TOOLS_LIBCRYPTO=.*$")
+ "CONFIG_TOOLS_LIBCRYPTO=n"))))
+ (replace 'install
+ (lambda* (#:key outputs #:allow-other-keys)
+ (let ((libexec (string-append #$output "/libexec"))
+ (uboot-files
+ (append
+ (remove
+ ;; Those would not be reproducible
+ ;; because of the randomness used to
+ ;; produce them. It's expected that the
+ ;; user will use u-boot-tools to generate
+ ;; them instead.
+ (lambda (name)
+ (string-suffix?
+ "sunxi-spl-with-ecc.bin"
+ name))
+ (find-files "."
+ ".*\\.(bin|efi|img|spl|itb|dtb|rksd)$"))
+ (find-files "." "^(MLO|SPL)$"))))
+ (mkdir-p libexec)
+ (install-file ".config" libexec)
+ ;; Useful for "qemu -kernel".
+ (install-file "u-boot" libexec)
+ (for-each
+ (lambda (file)
+ (let ((target-file (string-append libexec "/" file)))
+ (mkdir-p (dirname target-file))
+ (copy-file file target-file)))
+ uboot-files)))))))))))
(define-public u-boot-malta
(make-u-boot-package "malta" "mips64el-linux-gnuabi64"))
--
2.38.1
^ permalink raw reply related [flat|nested] 53+ messages in thread
* [bug#60224] [PATCH 2/9] gnu: make-u-boot-package: Install .imx files.
2022-12-20 18:34 ` [bug#60224] [PATCH 1/9] gnu: make-u-boot-package: Add a u-boot argument and use gexps Maxim Cournoyer
@ 2022-12-20 18:34 ` Maxim Cournoyer
2022-12-20 18:34 ` [bug#60224] [PATCH 3/9] gnu: make-uboot-package: Simplify build Maxim Cournoyer
` (6 subsequent siblings)
7 siblings, 0 replies; 53+ messages in thread
From: Maxim Cournoyer @ 2022-12-20 18:34 UTC (permalink / raw)
To: 60224; +Cc: Maxim Cournoyer
* gnu/packages/bootloaders.scm
(make-u-boot-package) [phases] <install>: Add imx to the regexp of files
considered for installation.
---
gnu/packages/bootloaders.scm | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/gnu/packages/bootloaders.scm b/gnu/packages/bootloaders.scm
index 42f859c362..bc9f32c9aa 100644
--- a/gnu/packages/bootloaders.scm
+++ b/gnu/packages/bootloaders.scm
@@ -888,7 +888,7 @@ (define*-public (make-u-boot-package board triplet
"sunxi-spl-with-ecc.bin"
name))
(find-files "."
- ".*\\.(bin|efi|img|spl|itb|dtb|rksd)$"))
+ ".*\\.(bin|efi|img|imx|spl|itb|dtb|rksd)$"))
(find-files "." "^(MLO|SPL)$"))))
(mkdir-p libexec)
(install-file ".config" libexec)
--
2.38.1
^ permalink raw reply related [flat|nested] 53+ messages in thread
* [bug#60224] [PATCH 3/9] gnu: make-uboot-package: Simplify build.
2022-12-20 18:34 ` [bug#60224] [PATCH 1/9] gnu: make-u-boot-package: Add a u-boot argument and use gexps Maxim Cournoyer
2022-12-20 18:34 ` [bug#60224] [PATCH 2/9] gnu: make-u-boot-package: Install .imx files Maxim Cournoyer
@ 2022-12-20 18:34 ` Maxim Cournoyer
2022-12-20 18:34 ` [bug#60224] [PATCH 4/9] gnu: u-boot-pinebook-pro-rk3399: Remove input labels and use gexps Maxim Cournoyer
` (5 subsequent siblings)
7 siblings, 0 replies; 53+ messages in thread
From: Maxim Cournoyer @ 2022-12-20 18:34 UTC (permalink / raw)
To: 60224; +Cc: Maxim Cournoyer
* gnu/packages/bootloaders.scm (make-u-boot-package) <same-arch?>: Rename
procedure to 'native-build?'.
[native-inputs]: Remove field.
[arguments]: Specify the #:target argument, when not natively building.
Adjust for the above renaming.
---
gnu/packages/bootloaders.scm | 21 +++++++++------------
1 file changed, 9 insertions(+), 12 deletions(-)
diff --git a/gnu/packages/bootloaders.scm b/gnu/packages/bootloaders.scm
index bc9f32c9aa..6893d12745 100644
--- a/gnu/packages/bootloaders.scm
+++ b/gnu/packages/bootloaders.scm
@@ -790,9 +790,11 @@ (define*-public (make-u-boot-package board triplet
NAME-SUFFIX is appended to the package name, while APPEND-DESCRIPTION is
appended to the package description. U-BOOT can be used when a fork or a
different version of U-Boot must be used."
- (let ((same-arch? (lambda ()
- (string=? (%current-system)
- (gnu-triplet->nix-system triplet)))))
+ (let ((native-build? (lambda ()
+ ;; Note: %current-target-system is a *triplet*, unlike
+ ;; its name would suggest.
+ (string=? (%current-system)
+ (gnu-triplet->nix-system triplet)))))
(package
(inherit u-boot)
(name (string-append "u-boot-"
@@ -803,16 +805,11 @@ (define*-public (make-u-boot-package board triplet
(string-append (package-description u-boot)
"\n\n" append-description)
(package-description u-boot)))
- (native-inputs
- ;; Note: leave the native u-boot inputs first, so that a user can
- ;; override the cross-gcc and cross-binutils packages.
- `(,@(package-native-inputs u-boot)
- ,@(if (not (same-arch?))
- `(("cross-gcc" ,(cross-gcc triplet))
- ("cross-binutils" ,(cross-binutils triplet)))
- `())))
+ (build-system gnu-build-system)
(arguments
(substitute-keyword-arguments (package-arguments u-boot)
+ ((#:target _ #f)
+ (and (not (native-build?)) triplet))
((#:modules modules '())
`((ice-9 ftw)
(srfi srfi-1)
@@ -829,7 +826,7 @@ (define*-public (make-u-boot-package board triplet
((#:make-flags make-flags '())
#~(list "HOSTCC=gcc"
"KBUILD_VERBOSE=1"
- #$@(if (not (same-arch?))
+ #$@(if (not (native-build?))
(list (string-append "CROSS_COMPILE=" triplet "-"))
'())
#$@make-flags))
--
2.38.1
^ permalink raw reply related [flat|nested] 53+ messages in thread
* [bug#60224] [PATCH 4/9] gnu: u-boot-pinebook-pro-rk3399: Remove input labels and use gexps.
2022-12-20 18:34 ` [bug#60224] [PATCH 1/9] gnu: make-u-boot-package: Add a u-boot argument and use gexps Maxim Cournoyer
2022-12-20 18:34 ` [bug#60224] [PATCH 2/9] gnu: make-u-boot-package: Install .imx files Maxim Cournoyer
2022-12-20 18:34 ` [bug#60224] [PATCH 3/9] gnu: make-uboot-package: Simplify build Maxim Cournoyer
@ 2022-12-20 18:34 ` Maxim Cournoyer
2022-12-20 18:34 ` [bug#60224] [PATCH 5/9] gnu: u-boot-firefly-rk3399: Use gexps and fix cross-build Maxim Cournoyer
` (4 subsequent siblings)
7 siblings, 0 replies; 53+ messages in thread
From: Maxim Cournoyer @ 2022-12-20 18:34 UTC (permalink / raw)
To: 60224; +Cc: Maxim Cournoyer
* gnu/packages/bootloaders.scm (u-boot-pinebook-pro-rk3399)
[arguments]: Use gexps.
[phases] {set-environment}: Look also in native-inputs (for
cross-compilation).
[native-inputs]: Remove input labels and use modify-inputs.
---
gnu/packages/bootloaders.scm | 21 +++++++++++----------
1 file changed, 11 insertions(+), 10 deletions(-)
diff --git a/gnu/packages/bootloaders.scm b/gnu/packages/bootloaders.scm
index 6893d12745..7e78b9af41 100644
--- a/gnu/packages/bootloaders.scm
+++ b/gnu/packages/bootloaders.scm
@@ -1145,17 +1145,18 @@ (define-public u-boot-pinebook-pro-rk3399
(arguments
(substitute-keyword-arguments (package-arguments base)
((#:phases phases)
- `(modify-phases ,phases
- (add-after 'unpack 'set-environment
- (lambda* (#:key inputs #:allow-other-keys)
- (setenv "BL31"
- (search-input-file inputs "/bl31.elf"))))
- ;; Phases do not succeed on the bl31 ELF.
- (delete 'strip)
- (delete 'validate-runpath)))))
+ #~(modify-phases #$phases
+ (add-after 'unpack 'set-environment
+ (lambda* (#:key native-inputs inputs #:allow-other-keys)
+ (setenv "BL31"
+ (search-input-file (or native-inputs inputs)
+ "bl31.elf"))))
+ ;; Phases do not succeed on the bl31 ELF.
+ (delete 'strip)
+ (delete 'validate-runpath)))))
(native-inputs
- `(("firmware" ,arm-trusted-firmware-rk3399)
- ,@(package-native-inputs base))))))
+ (modify-inputs (package-native-inputs base)
+ (append arm-trusted-firmware-rk3399))))))
(define*-public (make-u-boot-bin-package u-boot-package
#:key
--
2.38.1
^ permalink raw reply related [flat|nested] 53+ messages in thread
* [bug#60224] [PATCH 5/9] gnu: u-boot-firefly-rk3399: Use gexps and fix cross-build.
2022-12-20 18:34 ` [bug#60224] [PATCH 1/9] gnu: make-u-boot-package: Add a u-boot argument and use gexps Maxim Cournoyer
` (2 preceding siblings ...)
2022-12-20 18:34 ` [bug#60224] [PATCH 4/9] gnu: u-boot-pinebook-pro-rk3399: Remove input labels and use gexps Maxim Cournoyer
@ 2022-12-20 18:34 ` Maxim Cournoyer
2022-12-20 18:34 ` [bug#60224] [PATCH 6/9] gnu: make-u-boot-sunxi64-package: Use gexps and adjust file name Maxim Cournoyer
` (3 subsequent siblings)
7 siblings, 0 replies; 53+ messages in thread
From: Maxim Cournoyer @ 2022-12-20 18:34 UTC (permalink / raw)
To: 60224; +Cc: Maxim Cournoyer
* gnu/packages/bootloaders.scm (u-boot-firefly-rk3399) [arguments]: Use gexps.
[phases] {set-environment}: Look for the bl31.elf in native-inputs, useful when
cross-compiling.
---
gnu/packages/bootloaders.scm | 19 ++++++++++---------
1 file changed, 10 insertions(+), 9 deletions(-)
diff --git a/gnu/packages/bootloaders.scm b/gnu/packages/bootloaders.scm
index 7e78b9af41..ae847080d0 100644
--- a/gnu/packages/bootloaders.scm
+++ b/gnu/packages/bootloaders.scm
@@ -1080,16 +1080,17 @@ (define-public u-boot-firefly-rk3399
(arguments
(substitute-keyword-arguments (package-arguments base)
((#:phases phases)
- `(modify-phases ,phases
- (add-after 'unpack 'set-environment
- (lambda* (#:key inputs #:allow-other-keys)
- (setenv "BL31" (search-input-file inputs "/bl31.elf"))))
- ;; Phases do not succeed on the bl31 ELF.
- (delete 'strip)
- (delete 'validate-runpath)))))
+ #~(modify-phases #$phases
+ (add-after 'unpack 'set-environment
+ (lambda* (#:key native-inputs inputs #:allow-other-keys)
+ (setenv "BL31" (search-input-file (or native-inputs inputs)
+ "bl31.elf"))))
+ ;; Phases do not succeed on the bl31 ELF.
+ (delete 'strip)
+ (delete 'validate-runpath)))))
(native-inputs
- `(("firmware" ,arm-trusted-firmware-rk3399)
- ,@(package-native-inputs base))))))
+ (modify-inputs (package-native-inputs base)
+ (append arm-trusted-firmware-rk3399))))))
(define-public u-boot-rockpro64-rk3399
(let ((base (make-u-boot-package "rockpro64-rk3399" "aarch64-linux-gnu"
--
2.38.1
^ permalink raw reply related [flat|nested] 53+ messages in thread
* [bug#60224] [PATCH 6/9] gnu: make-u-boot-sunxi64-package: Use gexps and adjust file name.
2022-12-20 18:34 ` [bug#60224] [PATCH 1/9] gnu: make-u-boot-package: Add a u-boot argument and use gexps Maxim Cournoyer
` (3 preceding siblings ...)
2022-12-20 18:34 ` [bug#60224] [PATCH 5/9] gnu: u-boot-firefly-rk3399: Use gexps and fix cross-build Maxim Cournoyer
@ 2022-12-20 18:34 ` Maxim Cournoyer
2022-12-20 18:34 ` [bug#60224] [PATCH 7/9] gnu: u-boot-rock64-rk3328: Fix build Maxim Cournoyer
` (2 subsequent siblings)
7 siblings, 0 replies; 53+ messages in thread
From: Maxim Cournoyer @ 2022-12-20 18:34 UTC (permalink / raw)
To: 60224; +Cc: Maxim Cournoyer
* gnu/packages/bootloaders.scm (make-u-boot-sunxi64-package)
[phases] {set-environment}: Replace bl31.bin with bl31.elf; bl31.elf doesn't
exist anymore due to the package being a true cross-build.
---
gnu/packages/bootloaders.scm | 17 +++++++----------
1 file changed, 7 insertions(+), 10 deletions(-)
diff --git a/gnu/packages/bootloaders.scm b/gnu/packages/bootloaders.scm
index ae847080d0..5f0182524d 100644
--- a/gnu/packages/bootloaders.scm
+++ b/gnu/packages/bootloaders.scm
@@ -925,17 +925,14 @@ (define*-public (make-u-boot-sunxi64-package board triplet
(arguments
(substitute-keyword-arguments (package-arguments base)
((#:phases phases)
- `(modify-phases ,phases
- (add-after 'unpack 'set-environment
- (lambda* (#:key native-inputs inputs #:allow-other-keys)
- (let ((bl31
- (string-append
- (assoc-ref (or native-inputs inputs) "firmware")
- "/bl31.bin")))
- (setenv "BL31" bl31))))))))
+ #~(modify-phases #$phases
+ (add-after 'unpack 'set-environment
+ (lambda* (#:key native-inputs inputs #:allow-other-keys)
+ (setenv "BL31" (search-input-file (or native-inputs inputs)
+ "bl31.elf"))))))))
(native-inputs
- `(("firmware" ,arm-trusted-firmware-sun50i-a64)
- ,@(package-native-inputs base))))))
+ (modify-inputs (package-native-inputs base)
+ (append arm-trusted-firmware-rk3399))))))
(define-public u-boot-pine64-plus
(make-u-boot-sunxi64-package "pine64_plus" "aarch64-linux-gnu"))
--
2.38.1
^ permalink raw reply related [flat|nested] 53+ messages in thread
* [bug#60224] [PATCH 7/9] gnu: u-boot-rock64-rk3328: Fix build.
2022-12-20 18:34 ` [bug#60224] [PATCH 1/9] gnu: make-u-boot-package: Add a u-boot argument and use gexps Maxim Cournoyer
` (4 preceding siblings ...)
2022-12-20 18:34 ` [bug#60224] [PATCH 6/9] gnu: make-u-boot-sunxi64-package: Use gexps and adjust file name Maxim Cournoyer
@ 2022-12-20 18:34 ` Maxim Cournoyer
2022-12-20 18:34 ` [bug#60224] [PATCH 8/9] gnu: u-boot-sifive-unmatched: Use gexps and remove inputs Maxim Cournoyer
2022-12-20 18:34 ` [bug#60224] [PATCH 9/9] gnu: u-boot-puma-rk3399: Use make-u-boot-sunxi64-package Maxim Cournoyer
7 siblings, 0 replies; 53+ messages in thread
From: Maxim Cournoyer @ 2022-12-20 18:34 UTC (permalink / raw)
To: 60224; +Cc: Maxim Cournoyer
* gnu/packages/bootloaders.scm (u-boot-rock64-rk3328)
[arguments]: Use gexps.
[phases] {set-environment}: Also look in native-inputs.
[native-inputs]: Remove input labels and use modify-inputs.
---
gnu/packages/bootloaders.scm | 14 +++++++-------
1 file changed, 7 insertions(+), 7 deletions(-)
diff --git a/gnu/packages/bootloaders.scm b/gnu/packages/bootloaders.scm
index 5f0182524d..ce7be6f7b1 100644
--- a/gnu/packages/bootloaders.scm
+++ b/gnu/packages/bootloaders.scm
@@ -1061,14 +1061,14 @@ (define-public u-boot-rock64-rk3328
(arguments
(substitute-keyword-arguments (package-arguments base)
((#:phases phases)
- `(modify-phases ,phases
- (add-after 'unpack 'set-environment
- (lambda* (#:key inputs #:allow-other-keys)
- (let ((bl31 (search-input-file inputs "/bl31.elf")))
- (setenv "BL31" bl31))))))))
+ #~(modify-phases #$phases
+ (add-after 'unpack 'set-environment
+ (lambda* (#:key native-inputs inputs #:allow-other-keys)
+ (setenv "BL31 "(search-input-file (or native-inputs inputs)
+ "bl31.elf"))))))))
(native-inputs
- `(("firmware" ,arm-trusted-firmware-rk3328)
- ,@(package-native-inputs base))))))
+ (modify-inputs (package-native-inputs base)
+ (append arm-trusted-firmware-rk3328))))))
(define-public u-boot-firefly-rk3399
(let ((base (make-u-boot-package "firefly-rk3399" "aarch64-linux-gnu")))
--
2.38.1
^ permalink raw reply related [flat|nested] 53+ messages in thread
* [bug#60224] [PATCH 8/9] gnu: u-boot-sifive-unmatched: Use gexps and remove inputs.
2022-12-20 18:34 ` [bug#60224] [PATCH 1/9] gnu: make-u-boot-package: Add a u-boot argument and use gexps Maxim Cournoyer
` (5 preceding siblings ...)
2022-12-20 18:34 ` [bug#60224] [PATCH 7/9] gnu: u-boot-rock64-rk3328: Fix build Maxim Cournoyer
@ 2022-12-20 18:34 ` Maxim Cournoyer
2022-12-20 18:34 ` [bug#60224] [PATCH 9/9] gnu: u-boot-puma-rk3399: Use make-u-boot-sunxi64-package Maxim Cournoyer
7 siblings, 0 replies; 53+ messages in thread
From: Maxim Cournoyer @ 2022-12-20 18:34 UTC (permalink / raw)
To: 60224; +Cc: Maxim Cournoyer
* gnu/packages/bootloaders.scm (u-boot-sifive-unmatched)
[arguments]: Use gexps. Use search-input-file.
[inputs]: Remove labels. Use modify-inputs.
---
gnu/packages/bootloaders.scm | 15 +++++++--------
1 file changed, 7 insertions(+), 8 deletions(-)
diff --git a/gnu/packages/bootloaders.scm b/gnu/packages/bootloaders.scm
index ce7be6f7b1..fa11fa4bc7 100644
--- a/gnu/packages/bootloaders.scm
+++ b/gnu/packages/bootloaders.scm
@@ -1044,15 +1044,14 @@ (define-public u-boot-sifive-unmatched
(arguments
(substitute-keyword-arguments (package-arguments base)
((#:phases phases)
- `(modify-phases ,phases
- (add-after 'unpack 'set-environment
- (lambda* (#:key inputs #:allow-other-keys)
- (let ((opensbi (string-append (assoc-ref inputs "firmware")
- "/fw_dynamic.bin")))
- (setenv "OPENSBI" opensbi))))))))
+ #~(modify-phases #$phases
+ (add-after 'unpack 'set-environment
+ (lambda* (#:key inputs #:allow-other-keys)
+ (setenv "OPENSBI" (search-input-file inputs
+ "fw_dynamic.bin"))))))))
(inputs
- `(("firmware" ,opensbi-generic)
- ,@(package-inputs base))))))
+ (modify-inputs (package-inputs base)
+ (append opensbi-generic))))))
(define-public u-boot-rock64-rk3328
(let ((base (make-u-boot-package "rock64-rk3328" "aarch64-linux-gnu")))
--
2.38.1
^ permalink raw reply related [flat|nested] 53+ messages in thread
* [bug#60224] [PATCH 9/9] gnu: u-boot-puma-rk3399: Use make-u-boot-sunxi64-package.
2022-12-20 18:34 ` [bug#60224] [PATCH 1/9] gnu: make-u-boot-package: Add a u-boot argument and use gexps Maxim Cournoyer
` (6 preceding siblings ...)
2022-12-20 18:34 ` [bug#60224] [PATCH 8/9] gnu: u-boot-sifive-unmatched: Use gexps and remove inputs Maxim Cournoyer
@ 2022-12-20 18:34 ` Maxim Cournoyer
7 siblings, 0 replies; 53+ messages in thread
From: Maxim Cournoyer @ 2022-12-20 18:34 UTC (permalink / raw)
To: 60224; +Cc: Maxim Cournoyer
* gnu/packages/bootloaders.scm (u-boot-puma-rk3399): Use make-u-boot-sunxi64-package.
---
gnu/packages/bootloaders.scm | 18 +-----------------
1 file changed, 1 insertion(+), 17 deletions(-)
diff --git a/gnu/packages/bootloaders.scm b/gnu/packages/bootloaders.scm
index fa11fa4bc7..738f3975f5 100644
--- a/gnu/packages/bootloaders.scm
+++ b/gnu/packages/bootloaders.scm
@@ -1010,23 +1010,7 @@ (define-public u-boot-cubietruck
(make-u-boot-package "Cubietruck" "arm-linux-gnueabihf"))
(define-public u-boot-puma-rk3399
- (let ((base (make-u-boot-package "puma-rk3399" "aarch64-linux-gnu")))
- (package
- (inherit base)
- (arguments
- (substitute-keyword-arguments (package-arguments base)
- ((#:phases phases)
- `(modify-phases ,phases
- (add-after 'unpack 'set-environment
- (lambda* (#:key inputs #:allow-other-keys)
- (setenv "BL31"
- (search-input-file inputs "/bl31.elf"))))
- ;; Phases do not succeed on the bl31 ELF.
- (delete 'strip)
- (delete 'validate-runpath)))))
- (native-inputs
- `(("firmware" ,arm-trusted-firmware-rk3399)
- ,@(package-native-inputs base))))))
+ (make-u-boot-sunxi64-package "puma-rk3399" "aarch64-linux-gnu"))
(define-public u-boot-qemu-riscv64
(make-u-boot-package "qemu-riscv64" "riscv64-linux-gnu"))
--
2.38.1
^ permalink raw reply related [flat|nested] 53+ messages in thread
* [bug#60224] [PATCH 0/9] Improvements to our u-boot tooling
2022-12-20 16:50 [bug#60224] [PATCH 0/9] Improvements to our u-boot tooling Maxim Cournoyer
2022-12-20 18:34 ` [bug#60224] [PATCH 1/9] gnu: make-u-boot-package: Add a u-boot argument and use gexps Maxim Cournoyer
@ 2022-12-29 19:18 ` Ricardo Wurmus
2023-01-02 0:27 ` Maxim Cournoyer
2023-01-02 0:46 ` [bug#60224] [PATCH v3 01/11] gnu: make-u-boot-package: Add a u-boot argument and use gexps Maxim Cournoyer
` (2 subsequent siblings)
4 siblings, 1 reply; 53+ messages in thread
From: Ricardo Wurmus @ 2022-12-29 19:18 UTC (permalink / raw)
To: 60224
Hi Maxim,
this looks reasonable to me. Some comments below.
A minor comment about the first patch: you still bind “outputs” in the
build phases, but since you’re using #$output anyway this value is never
used.
[PATCH 3/9] introduces a comment in the definition of “native-build?”,
which references %current-target-system, yet only %current-system is
used. Is this a mistake?
[PATCH 4/9] — This one appends arm-trusted-firmware-rk3399 instead of
prepending it. This differs from how it was done with the labeled
inputs. Does this have any consequences? Is the “firmware” label used
anywhere (such as downstream packages)? The same applies to patches
5/9, 7/9, and 8/9.
[PATCH 6/9] — The change from .bin to .elf confuses me. Is this due to the
fact that “target” is now actually set and the package build thus
behaves differently?
[PATCH 8/9] removes a reference to “firware”; this answers my question
to patch 4/9, but perhaps other such references remain?
--
Ricardo
^ permalink raw reply [flat|nested] 53+ messages in thread
* [bug#60224] [PATCH 0/9] Improvements to our u-boot tooling
2022-12-29 19:18 ` [bug#60224] [PATCH 0/9] Improvements to our u-boot tooling Ricardo Wurmus
@ 2023-01-02 0:27 ` Maxim Cournoyer
0 siblings, 0 replies; 53+ messages in thread
From: Maxim Cournoyer @ 2023-01-02 0:27 UTC (permalink / raw)
To: Ricardo Wurmus; +Cc: 60224
Hi Ricardo!
Ricardo Wurmus <rekado@elephly.net> writes:
> Hi Maxim,
>
> this looks reasonable to me. Some comments below.
Sorry for the late reply, it hadn't reached my INBOX (please keep me in
CC to ensure it does :-)).
> A minor comment about the first patch: you still bind “outputs” in the
> build phases, but since you’re using #$output anyway this value is never
> used.
Fixed!
> [PATCH 3/9] introduces a comment in the definition of “native-build?”,
> which references %current-target-system, yet only %current-system is
> used. Is this a mistake?
Fixed!
> [PATCH 4/9] — This one appends arm-trusted-firmware-rk3399 instead of
> prepending it. This differs from how it was done with the labeled
> inputs. Does this have any consequences? Is the “firmware” label used
> anywhere (such as downstream packages)? The same applies to patches
> 5/9, 7/9, and 8/9.
I don't think it matters; the base u-boot package which gets used
doesn't include any "firmware" input, and the file provided via
arm-trusted-firmware-rk3399 is searched via "search-input-file". I've
grepped for 'assoc-ref.*"firmware"' and there doesn't seem to be any
remnants except for u-boot-rockpro64-rk3399, which I've now fixed in the
last commit.
> [PATCH 6/9] — The change from .bin to .elf confuses me. Is this due to the
> fact that “target” is now actually set and the package build thus
> behaves differently?
I think so. I was puzzled by it too, especially since some packages
already were searching for a .elf file rather than a .bin file.
> [PATCH 8/9] removes a reference to “firware”; this answers my question
> to patch 4/9, but perhaps other such references remain?
Answered above.
Thanks for the review! v3 will appear shortly.
--
Thanks,
Maxim
^ permalink raw reply [flat|nested] 53+ messages in thread
* [bug#60224] [PATCH v3 01/11] gnu: make-u-boot-package: Add a u-boot argument and use gexps.
2022-12-20 16:50 [bug#60224] [PATCH 0/9] Improvements to our u-boot tooling Maxim Cournoyer
2022-12-20 18:34 ` [bug#60224] [PATCH 1/9] gnu: make-u-boot-package: Add a u-boot argument and use gexps Maxim Cournoyer
2022-12-29 19:18 ` [bug#60224] [PATCH 0/9] Improvements to our u-boot tooling Ricardo Wurmus
@ 2023-01-02 0:46 ` Maxim Cournoyer
2023-01-02 0:46 ` [bug#60224] [PATCH v3 02/11] gnu: make-u-boot-package: Install .imx files Maxim Cournoyer
` (9 more replies)
2023-01-11 20:44 ` [bug#60224] [PATCH v4 01/12] gnu: make-u-boot-package: Add a u-boot argument and use gexps Maxim Cournoyer
2023-01-16 3:25 ` [bug#60224] [PATCH v5 01/13] gnu: make-u-boot-package: Add a u-boot argument and use gexps Maxim Cournoyer
4 siblings, 10 replies; 53+ messages in thread
From: Maxim Cournoyer @ 2023-01-02 0:46 UTC (permalink / raw)
To: 60224; +Cc: rekado, Maxim Cournoyer
And have that u-boot argument used as the complete base of the template, so
that a user can override it.
* gnu/packages/bootloaders.scm (make-u-boot-package): New U-BOOT argument.
Document it.
[native-inputs]: Move the native-inputs of U-BOOT first, so that the
cross compilation tools can be overridden via U-BOOT.
[arguments]: Rewrite using substitute-keyword-arguments, extending rather than
overriding most arguments. Use gexps. Do not bind OUTPUTS.
---
Changes in v3:
- No longer bind 'outputs' extraneously in build phases
gnu/packages/bootloaders.scm | 181 +++++++++++++++++++----------------
1 file changed, 97 insertions(+), 84 deletions(-)
diff --git a/gnu/packages/bootloaders.scm b/gnu/packages/bootloaders.scm
index e3a63882e9..be460ac715 100644
--- a/gnu/packages/bootloaders.scm
+++ b/gnu/packages/bootloaders.scm
@@ -855,11 +855,13 @@ (define*-public (make-u-boot-package board triplet
defconfig
configs
name-suffix
- append-description)
+ append-description
+ (u-boot u-boot))
"Return a U-Boot package for BOARD cross-compiled for TRIPLET with the
optional DEFCONFIG file and optional configuration changes from CONFIGS.
NAME-SUFFIX is appended to the package name, while APPEND-DESCRIPTION is
-appended to the package description."
+appended to the package description. U-BOOT can be used when a fork or a
+different version of U-Boot must be used."
(let ((same-arch? (lambda ()
(string=? (%current-system)
(gnu-triplet->nix-system triplet)))))
@@ -874,91 +876,102 @@ (define*-public (make-u-boot-package board triplet
"\n\n" append-description)
(package-description u-boot)))
(native-inputs
- `(,@(if (not (same-arch?))
+ ;; Note: leave the native u-boot inputs first, so that a user can
+ ;; override the cross-gcc and cross-binutils packages.
+ `(,@(package-native-inputs u-boot)
+ ,@(if (not (same-arch?))
`(("cross-gcc" ,(cross-gcc triplet))
("cross-binutils" ,(cross-binutils triplet)))
- `())
- ,@(package-native-inputs u-boot)))
+ `())))
(arguments
- `(#:modules ((ice-9 ftw)
- (srfi srfi-1)
- (guix build gnu-build-system)
- (guix build kconfig)
- (guix build utils))
- #:imported-modules (,@%gnu-build-system-modules
- (guix build kconfig))
- #:test-target "test"
- #:make-flags
- (list "HOSTCC=gcc"
- "KBUILD_VERBOSE=1"
- ,@(if (not (same-arch?))
- `((string-append "CROSS_COMPILE=" ,triplet "-"))
- '()))
- #:phases
- (modify-phases %standard-phases
- (replace 'configure
- (lambda* (#:key outputs make-flags #:allow-other-keys)
- (let* ((config-name (string-append ,board "_defconfig"))
- (config-file (string-append "configs/" config-name))
- (defconfig ,defconfig)
- (configs ',configs))
- (when defconfig
- ;; Replace the board-specific defconfig with the given one.
- (copy-file defconfig config-file))
- (if (file-exists? config-file)
- (begin
- (when configs
- (modify-defconfig config-file configs))
- (apply invoke "make" `(,@make-flags ,config-name))
- (verify-config ".config" config-file))
- (begin
- (display "invalid board name; valid board names are:"
- (current-error-port))
- (let ((suffix-len (string-length "_defconfig"))
- (entries (scandir "configs")))
- (for-each (lambda (file-name)
- (when (string-suffix? "_defconfig" file-name)
- (format (current-error-port)
- "- ~A\n"
- (string-drop-right file-name
- suffix-len))))
- (sort entries string-ci<)))
- (error "invalid boardname ~s" ,board))))))
- (add-after 'configure 'disable-tools-libcrypto
- ;; Disable libcrypto due to GPL and OpenSSL license
- ;; incompatibilities
- (lambda _
- (substitute* ".config"
- (("CONFIG_TOOLS_LIBCRYPTO=.*$") "CONFIG_TOOLS_LIBCRYPTO=n"))))
- (replace 'install
- (lambda* (#:key outputs #:allow-other-keys)
- (let* ((out (assoc-ref outputs "out"))
- (libexec (string-append out "/libexec"))
- (uboot-files (append
- (remove
- ;; Those would not be reproducible
- ;; because of the randomness used
- ;; to produce them.
- ;; It's expected that the user will
- ;; use u-boot-tools to generate them
- ;; instead.
- (lambda (name)
- (string-suffix?
- "sunxi-spl-with-ecc.bin"
- name))
- (find-files "." ".*\\.(bin|efi|img|spl|itb|dtb|rksd)$"))
- (find-files "." "^(MLO|SPL)$"))))
- (mkdir-p libexec)
- (install-file ".config" libexec)
- ;; Useful for "qemu -kernel".
- (install-file "u-boot" libexec)
- (for-each
- (lambda (file)
- (let ((target-file (string-append libexec "/" file)))
- (mkdir-p (dirname target-file))
- (copy-file file target-file)))
- uboot-files)
- #t)))))))))
+ (substitute-keyword-arguments (package-arguments u-boot)
+ ((#:modules modules '())
+ `((ice-9 ftw)
+ (srfi srfi-1)
+ (guix build gnu-build-system)
+ (guix build kconfig)
+ (guix build utils)
+ ,@modules))
+ ((#:imported-modules imported-modules '())
+ `((guix build kconfig)
+ ,@%gnu-build-system-modules
+ ,@imported-modules))
+ ((#:test-target _ "test")
+ "test")
+ ((#:make-flags make-flags '())
+ #~(list "HOSTCC=gcc"
+ "KBUILD_VERBOSE=1"
+ #$@(if (not (same-arch?))
+ (list (string-append "CROSS_COMPILE=" triplet "-"))
+ '())
+ #$@make-flags))
+ ((#:phases phases '%standard-phases)
+ #~(modify-phases #$phases
+ (replace 'configure
+ (lambda* (#:key make-flags #:allow-other-keys)
+ (let* ((config-name (string-append #$board "_defconfig"))
+ (config-file (string-append "configs/" config-name))
+ (defconfig #$defconfig)
+ (configs '#$configs))
+ (when defconfig
+ ;; Replace the board-specific defconfig with the given
+ ;; one.
+ (copy-file defconfig config-file))
+ (if (file-exists? config-file)
+ (begin
+ (when configs
+ (modify-defconfig config-file configs))
+ (apply invoke "make" `(,@make-flags ,config-name))
+ (verify-config ".config" config-file))
+ (begin
+ (display "invalid board name; valid board names are:"
+ (current-error-port))
+ (let ((suffix-len (string-length "_defconfig"))
+ (entries (scandir "configs")))
+ (for-each (lambda (file-name)
+ (when (string-suffix? "_defconfig"
+ file-name)
+ (format (current-error-port)
+ "- ~A\n"
+ (string-drop-right
+ file-name suffix-len))))
+ (sort entries string-ci<)))
+ (error "invalid boardname ~s" #$board))))))
+ (add-after 'configure 'disable-tools-libcrypto
+ ;; Disable libcrypto due to GPL and OpenSSL license
+ ;; incompatibilities
+ (lambda _
+ (substitute* ".config"
+ (("CONFIG_TOOLS_LIBCRYPTO=.*$")
+ "CONFIG_TOOLS_LIBCRYPTO=n"))))
+ (replace 'install
+ (lambda _
+ (let ((libexec (string-append #$output "/libexec"))
+ (uboot-files
+ (append
+ (remove
+ ;; Those would not be reproducible
+ ;; because of the randomness used to
+ ;; produce them. It's expected that the
+ ;; user will use u-boot-tools to generate
+ ;; them instead.
+ (lambda (name)
+ (string-suffix?
+ "sunxi-spl-with-ecc.bin"
+ name))
+ (find-files "."
+ ".*\\.(bin|efi|img|spl|itb|dtb|rksd)$"))
+ (find-files "." "^(MLO|SPL)$"))))
+ (mkdir-p libexec)
+ (install-file ".config" libexec)
+ ;; Useful for "qemu -kernel".
+ (install-file "u-boot" libexec)
+ (for-each
+ (lambda (file)
+ (let ((target-file (string-append libexec "/" file)))
+ (mkdir-p (dirname target-file))
+ (copy-file file target-file)))
+ uboot-files)))))))))))
(define-public u-boot-malta
(make-u-boot-package "malta" "mips64el-linux-gnuabi64"))
base-commit: d7a9d72bb02a2a3b1a99183655bf878547116032
--
2.38.1
^ permalink raw reply related [flat|nested] 53+ messages in thread
* [bug#60224] [PATCH v3 02/11] gnu: make-u-boot-package: Install .imx files.
2023-01-02 0:46 ` [bug#60224] [PATCH v3 01/11] gnu: make-u-boot-package: Add a u-boot argument and use gexps Maxim Cournoyer
@ 2023-01-02 0:46 ` Maxim Cournoyer
2023-01-02 0:46 ` [bug#60224] [PATCH v3 03/11] gnu: make-uboot-package: Simplify build Maxim Cournoyer
` (8 subsequent siblings)
9 siblings, 0 replies; 53+ messages in thread
From: Maxim Cournoyer @ 2023-01-02 0:46 UTC (permalink / raw)
To: 60224; +Cc: rekado, Maxim Cournoyer
* gnu/packages/bootloaders.scm
(make-u-boot-package) [phases] <install>: Add imx to the regexp of files
considered for installation.
---
(no changes since v1)
gnu/packages/bootloaders.scm | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/gnu/packages/bootloaders.scm b/gnu/packages/bootloaders.scm
index be460ac715..75033c4def 100644
--- a/gnu/packages/bootloaders.scm
+++ b/gnu/packages/bootloaders.scm
@@ -960,7 +960,7 @@ (define*-public (make-u-boot-package board triplet
"sunxi-spl-with-ecc.bin"
name))
(find-files "."
- ".*\\.(bin|efi|img|spl|itb|dtb|rksd)$"))
+ ".*\\.(bin|efi|img|imx|spl|itb|dtb|rksd)$"))
(find-files "." "^(MLO|SPL)$"))))
(mkdir-p libexec)
(install-file ".config" libexec)
--
2.38.1
^ permalink raw reply related [flat|nested] 53+ messages in thread
* [bug#60224] [PATCH v3 03/11] gnu: make-uboot-package: Simplify build.
2023-01-02 0:46 ` [bug#60224] [PATCH v3 01/11] gnu: make-u-boot-package: Add a u-boot argument and use gexps Maxim Cournoyer
2023-01-02 0:46 ` [bug#60224] [PATCH v3 02/11] gnu: make-u-boot-package: Install .imx files Maxim Cournoyer
@ 2023-01-02 0:46 ` Maxim Cournoyer
2023-01-02 0:46 ` [bug#60224] [PATCH v3 04/11] gnu: make-u-boot-package: Allow disabling cross-compilation Maxim Cournoyer
` (7 subsequent siblings)
9 siblings, 0 replies; 53+ messages in thread
From: Maxim Cournoyer @ 2023-01-02 0:46 UTC (permalink / raw)
To: 60224; +Cc: rekado, Maxim Cournoyer
* gnu/packages/bootloaders.scm (make-u-boot-package) <same-arch?>: Rename
procedure to 'native-build?'.
[native-inputs]: Remove field.
[arguments]: Specify the #:target argument, when not natively building.
Adjust for the above renaming.
---
Changes in v3:
- Rename %current-target-system to %current-system in comment
gnu/packages/bootloaders.scm | 21 +++++++++------------
1 file changed, 9 insertions(+), 12 deletions(-)
diff --git a/gnu/packages/bootloaders.scm b/gnu/packages/bootloaders.scm
index 75033c4def..c3c15d557a 100644
--- a/gnu/packages/bootloaders.scm
+++ b/gnu/packages/bootloaders.scm
@@ -862,9 +862,11 @@ (define*-public (make-u-boot-package board triplet
NAME-SUFFIX is appended to the package name, while APPEND-DESCRIPTION is
appended to the package description. U-BOOT can be used when a fork or a
different version of U-Boot must be used."
- (let ((same-arch? (lambda ()
- (string=? (%current-system)
- (gnu-triplet->nix-system triplet)))))
+ (let ((native-build? (lambda ()
+ ;; Note: %current-system is a *triplet*, unlike its
+ ;; name would suggest.
+ (string=? (%current-system)
+ (gnu-triplet->nix-system triplet)))))
(package
(inherit u-boot)
(name (string-append "u-boot-"
@@ -875,16 +877,11 @@ (define*-public (make-u-boot-package board triplet
(string-append (package-description u-boot)
"\n\n" append-description)
(package-description u-boot)))
- (native-inputs
- ;; Note: leave the native u-boot inputs first, so that a user can
- ;; override the cross-gcc and cross-binutils packages.
- `(,@(package-native-inputs u-boot)
- ,@(if (not (same-arch?))
- `(("cross-gcc" ,(cross-gcc triplet))
- ("cross-binutils" ,(cross-binutils triplet)))
- `())))
+ (build-system gnu-build-system)
(arguments
(substitute-keyword-arguments (package-arguments u-boot)
+ ((#:target _ #f)
+ (and (not (native-build?)) triplet))
((#:modules modules '())
`((ice-9 ftw)
(srfi srfi-1)
@@ -901,7 +898,7 @@ (define*-public (make-u-boot-package board triplet
((#:make-flags make-flags '())
#~(list "HOSTCC=gcc"
"KBUILD_VERBOSE=1"
- #$@(if (not (same-arch?))
+ #$@(if (not (native-build?))
(list (string-append "CROSS_COMPILE=" triplet "-"))
'())
#$@make-flags))
--
2.38.1
^ permalink raw reply related [flat|nested] 53+ messages in thread
* [bug#60224] [PATCH v3 04/11] gnu: make-u-boot-package: Allow disabling cross-compilation.
2023-01-02 0:46 ` [bug#60224] [PATCH v3 01/11] gnu: make-u-boot-package: Add a u-boot argument and use gexps Maxim Cournoyer
2023-01-02 0:46 ` [bug#60224] [PATCH v3 02/11] gnu: make-u-boot-package: Install .imx files Maxim Cournoyer
2023-01-02 0:46 ` [bug#60224] [PATCH v3 03/11] gnu: make-uboot-package: Simplify build Maxim Cournoyer
@ 2023-01-02 0:46 ` Maxim Cournoyer
2023-01-02 0:46 ` [bug#60224] [PATCH v3 05/11] gnu: u-boot-pinebook-pro-rk3399: Remove input labels and use gexps Maxim Cournoyer
` (6 subsequent siblings)
9 siblings, 0 replies; 53+ messages in thread
From: Maxim Cournoyer @ 2023-01-02 0:46 UTC (permalink / raw)
To: 60224; +Cc: rekado, Maxim Cournoyer
* gnu/packages/bootloaders.scm (make-u-boot-package): Accept #f for the
TRIPLET argument to disable cross-compilation. Update doc.
---
(no changes since v1)
gnu/packages/bootloaders.scm | 12 +++++++-----
1 file changed, 7 insertions(+), 5 deletions(-)
diff --git a/gnu/packages/bootloaders.scm b/gnu/packages/bootloaders.scm
index c3c15d557a..1a4415b858 100644
--- a/gnu/packages/bootloaders.scm
+++ b/gnu/packages/bootloaders.scm
@@ -859,14 +859,16 @@ (define*-public (make-u-boot-package board triplet
(u-boot u-boot))
"Return a U-Boot package for BOARD cross-compiled for TRIPLET with the
optional DEFCONFIG file and optional configuration changes from CONFIGS.
-NAME-SUFFIX is appended to the package name, while APPEND-DESCRIPTION is
-appended to the package description. U-BOOT can be used when a fork or a
-different version of U-Boot must be used."
+TRIPLET may also be set to #f to disable cross-compilation. NAME-SUFFIX is
+appended to the package name, while APPEND-DESCRIPTION is appended to the
+package description. U-BOOT can be used when a fork or a different version of
+U-Boot must be used."
(let ((native-build? (lambda ()
;; Note: %current-system is a *triplet*, unlike its
;; name would suggest.
- (string=? (%current-system)
- (gnu-triplet->nix-system triplet)))))
+ (or (not triplet) ;disable cross-compilation
+ (string=? (%current-system)
+ (gnu-triplet->nix-system triplet))))))
(package
(inherit u-boot)
(name (string-append "u-boot-"
--
2.38.1
^ permalink raw reply related [flat|nested] 53+ messages in thread
* [bug#60224] [PATCH v3 05/11] gnu: u-boot-pinebook-pro-rk3399: Remove input labels and use gexps.
2023-01-02 0:46 ` [bug#60224] [PATCH v3 01/11] gnu: make-u-boot-package: Add a u-boot argument and use gexps Maxim Cournoyer
` (2 preceding siblings ...)
2023-01-02 0:46 ` [bug#60224] [PATCH v3 04/11] gnu: make-u-boot-package: Allow disabling cross-compilation Maxim Cournoyer
@ 2023-01-02 0:46 ` Maxim Cournoyer
2023-01-02 0:46 ` [bug#60224] [PATCH v3 06/11] gnu: u-boot-firefly-rk3399: Use gexps and fix cross-build Maxim Cournoyer
` (5 subsequent siblings)
9 siblings, 0 replies; 53+ messages in thread
From: Maxim Cournoyer @ 2023-01-02 0:46 UTC (permalink / raw)
To: 60224; +Cc: rekado, Maxim Cournoyer
* gnu/packages/bootloaders.scm (u-boot-pinebook-pro-rk3399) [arguments]:
Remove input labels.
[phases] {set-environment}: Look also in native-inputs (for
cross-compilation).
[native-inputs]: Use gexps.
---
(no changes since v1)
gnu/packages/bootloaders.scm | 21 +++++++++++----------
1 file changed, 11 insertions(+), 10 deletions(-)
diff --git a/gnu/packages/bootloaders.scm b/gnu/packages/bootloaders.scm
index 1a4415b858..602ec7f8a3 100644
--- a/gnu/packages/bootloaders.scm
+++ b/gnu/packages/bootloaders.scm
@@ -1225,17 +1225,18 @@ (define-public u-boot-pinebook-pro-rk3399
(arguments
(substitute-keyword-arguments (package-arguments base)
((#:phases phases)
- `(modify-phases ,phases
- (add-after 'unpack 'set-environment
- (lambda* (#:key inputs #:allow-other-keys)
- (setenv "BL31"
- (search-input-file inputs "/bl31.elf"))))
- ;; Phases do not succeed on the bl31 ELF.
- (delete 'strip)
- (delete 'validate-runpath)))))
+ #~(modify-phases #$phases
+ (add-after 'unpack 'set-environment
+ (lambda* (#:key native-inputs inputs #:allow-other-keys)
+ (setenv "BL31"
+ (search-input-file (or native-inputs inputs)
+ "bl31.elf"))))
+ ;; Phases do not succeed on the bl31 ELF.
+ (delete 'strip)
+ (delete 'validate-runpath)))))
(native-inputs
- `(("firmware" ,arm-trusted-firmware-rk3399)
- ,@(package-native-inputs base))))))
+ (modify-inputs (package-native-inputs base)
+ (append arm-trusted-firmware-rk3399))))))
(define*-public (make-u-boot-bin-package u-boot-package
#:key
--
2.38.1
^ permalink raw reply related [flat|nested] 53+ messages in thread
* [bug#60224] [PATCH v3 06/11] gnu: u-boot-firefly-rk3399: Use gexps and fix cross-build.
2023-01-02 0:46 ` [bug#60224] [PATCH v3 01/11] gnu: make-u-boot-package: Add a u-boot argument and use gexps Maxim Cournoyer
` (3 preceding siblings ...)
2023-01-02 0:46 ` [bug#60224] [PATCH v3 05/11] gnu: u-boot-pinebook-pro-rk3399: Remove input labels and use gexps Maxim Cournoyer
@ 2023-01-02 0:46 ` Maxim Cournoyer
2023-01-02 0:46 ` [bug#60224] [PATCH v3 07/11] gnu: make-u-boot-sunxi64-package: Use gexps and adjust file name Maxim Cournoyer
` (4 subsequent siblings)
9 siblings, 0 replies; 53+ messages in thread
From: Maxim Cournoyer @ 2023-01-02 0:46 UTC (permalink / raw)
To: 60224; +Cc: rekado, Maxim Cournoyer
* gnu/packages/bootloaders.scm (u-boot-firefly-rk3399) [arguments]: Use gexps.
[phases] {set-environment}: Look for the bl31.elf in native-inputs, useful when
cross-compiling.
---
(no changes since v1)
gnu/packages/bootloaders.scm | 19 ++++++++++---------
1 file changed, 10 insertions(+), 9 deletions(-)
diff --git a/gnu/packages/bootloaders.scm b/gnu/packages/bootloaders.scm
index 602ec7f8a3..8a56ee9cec 100644
--- a/gnu/packages/bootloaders.scm
+++ b/gnu/packages/bootloaders.scm
@@ -1160,16 +1160,17 @@ (define-public u-boot-firefly-rk3399
(arguments
(substitute-keyword-arguments (package-arguments base)
((#:phases phases)
- `(modify-phases ,phases
- (add-after 'unpack 'set-environment
- (lambda* (#:key inputs #:allow-other-keys)
- (setenv "BL31" (search-input-file inputs "/bl31.elf"))))
- ;; Phases do not succeed on the bl31 ELF.
- (delete 'strip)
- (delete 'validate-runpath)))))
+ #~(modify-phases #$phases
+ (add-after 'unpack 'set-environment
+ (lambda* (#:key native-inputs inputs #:allow-other-keys)
+ (setenv "BL31" (search-input-file (or native-inputs inputs)
+ "bl31.elf"))))
+ ;; Phases do not succeed on the bl31 ELF.
+ (delete 'strip)
+ (delete 'validate-runpath)))))
(native-inputs
- `(("firmware" ,arm-trusted-firmware-rk3399)
- ,@(package-native-inputs base))))))
+ (modify-inputs (package-native-inputs base)
+ (append arm-trusted-firmware-rk3399))))))
(define-public u-boot-rockpro64-rk3399
(let ((base (make-u-boot-package "rockpro64-rk3399" "aarch64-linux-gnu"
--
2.38.1
^ permalink raw reply related [flat|nested] 53+ messages in thread
* [bug#60224] [PATCH v3 07/11] gnu: make-u-boot-sunxi64-package: Use gexps and adjust file name.
2023-01-02 0:46 ` [bug#60224] [PATCH v3 01/11] gnu: make-u-boot-package: Add a u-boot argument and use gexps Maxim Cournoyer
` (4 preceding siblings ...)
2023-01-02 0:46 ` [bug#60224] [PATCH v3 06/11] gnu: u-boot-firefly-rk3399: Use gexps and fix cross-build Maxim Cournoyer
@ 2023-01-02 0:46 ` Maxim Cournoyer
2023-01-06 17:17 ` Vagrant Cascadian
2023-01-02 0:46 ` [bug#60224] [PATCH v3 08/11] gnu: u-boot-rock64-rk3328: Fix build Maxim Cournoyer
` (3 subsequent siblings)
9 siblings, 1 reply; 53+ messages in thread
From: Maxim Cournoyer @ 2023-01-02 0:46 UTC (permalink / raw)
To: 60224; +Cc: rekado, Maxim Cournoyer
* gnu/packages/bootloaders.scm (make-u-boot-sunxi64-package)
[phases] {set-environment}: Replace bl31.bin with bl31.elf; bl31.elf doesn't
exist anymore for some reason.
---
(no changes since v1)
gnu/packages/bootloaders.scm | 17 +++++++----------
1 file changed, 7 insertions(+), 10 deletions(-)
diff --git a/gnu/packages/bootloaders.scm b/gnu/packages/bootloaders.scm
index 8a56ee9cec..a19d1ebf17 100644
--- a/gnu/packages/bootloaders.scm
+++ b/gnu/packages/bootloaders.scm
@@ -1005,17 +1005,14 @@ (define*-public (make-u-boot-sunxi64-package board triplet
(arguments
(substitute-keyword-arguments (package-arguments base)
((#:phases phases)
- `(modify-phases ,phases
- (add-after 'unpack 'set-environment
- (lambda* (#:key native-inputs inputs #:allow-other-keys)
- (let ((bl31
- (string-append
- (assoc-ref (or native-inputs inputs) "firmware")
- "/bl31.bin")))
- (setenv "BL31" bl31))))))))
+ #~(modify-phases #$phases
+ (add-after 'unpack 'set-environment
+ (lambda* (#:key native-inputs inputs #:allow-other-keys)
+ (setenv "BL31" (search-input-file (or native-inputs inputs)
+ "bl31.elf"))))))))
(native-inputs
- `(("firmware" ,arm-trusted-firmware-sun50i-a64)
- ,@(package-native-inputs base))))))
+ (modify-inputs (package-native-inputs base)
+ (append arm-trusted-firmware-rk3399))))))
(define-public u-boot-pine64-plus
(make-u-boot-sunxi64-package "pine64_plus" "aarch64-linux-gnu"))
--
2.38.1
^ permalink raw reply related [flat|nested] 53+ messages in thread
* [bug#60224] [PATCH v3 08/11] gnu: u-boot-rock64-rk3328: Fix build.
2023-01-02 0:46 ` [bug#60224] [PATCH v3 01/11] gnu: make-u-boot-package: Add a u-boot argument and use gexps Maxim Cournoyer
` (5 preceding siblings ...)
2023-01-02 0:46 ` [bug#60224] [PATCH v3 07/11] gnu: make-u-boot-sunxi64-package: Use gexps and adjust file name Maxim Cournoyer
@ 2023-01-02 0:46 ` Maxim Cournoyer
2023-01-02 0:46 ` [bug#60224] [PATCH v3 09/11] gnu: u-boot-sifive-unmatched: Use gexps and remove inputs Maxim Cournoyer
` (2 subsequent siblings)
9 siblings, 0 replies; 53+ messages in thread
From: Maxim Cournoyer @ 2023-01-02 0:46 UTC (permalink / raw)
To: 60224; +Cc: rekado, Maxim Cournoyer
* gnu/packages/bootloaders.scm (u-boot-rock64-rk3328)
[arguments]: Use gexps.
[phases] {set-environment}: Also look in native-inputs.
[native-inputs]: Remove input labels and use modify-inputs.
---
(no changes since v1)
gnu/packages/bootloaders.scm | 14 +++++++-------
1 file changed, 7 insertions(+), 7 deletions(-)
diff --git a/gnu/packages/bootloaders.scm b/gnu/packages/bootloaders.scm
index a19d1ebf17..d1c04db66a 100644
--- a/gnu/packages/bootloaders.scm
+++ b/gnu/packages/bootloaders.scm
@@ -1141,14 +1141,14 @@ (define-public u-boot-rock64-rk3328
(arguments
(substitute-keyword-arguments (package-arguments base)
((#:phases phases)
- `(modify-phases ,phases
- (add-after 'unpack 'set-environment
- (lambda* (#:key inputs #:allow-other-keys)
- (let ((bl31 (search-input-file inputs "/bl31.elf")))
- (setenv "BL31" bl31))))))))
+ #~(modify-phases #$phases
+ (add-after 'unpack 'set-environment
+ (lambda* (#:key native-inputs inputs #:allow-other-keys)
+ (setenv "BL31 "(search-input-file (or native-inputs inputs)
+ "bl31.elf"))))))))
(native-inputs
- `(("firmware" ,arm-trusted-firmware-rk3328)
- ,@(package-native-inputs base))))))
+ (modify-inputs (package-native-inputs base)
+ (append arm-trusted-firmware-rk3328))))))
(define-public u-boot-firefly-rk3399
(let ((base (make-u-boot-package "firefly-rk3399" "aarch64-linux-gnu")))
--
2.38.1
^ permalink raw reply related [flat|nested] 53+ messages in thread
* [bug#60224] [PATCH v3 09/11] gnu: u-boot-sifive-unmatched: Use gexps and remove inputs.
2023-01-02 0:46 ` [bug#60224] [PATCH v3 01/11] gnu: make-u-boot-package: Add a u-boot argument and use gexps Maxim Cournoyer
` (6 preceding siblings ...)
2023-01-02 0:46 ` [bug#60224] [PATCH v3 08/11] gnu: u-boot-rock64-rk3328: Fix build Maxim Cournoyer
@ 2023-01-02 0:46 ` Maxim Cournoyer
2023-01-02 0:46 ` [bug#60224] [PATCH v3 10/11] gnu: u-boot-puma-rk3399: Use make-u-boot-sunxi64-package Maxim Cournoyer
2023-01-02 0:46 ` [bug#60224] [PATCH v3 11/11] gnu: u-boot-rockpro64-rk3399: Fix build Maxim Cournoyer
9 siblings, 0 replies; 53+ messages in thread
From: Maxim Cournoyer @ 2023-01-02 0:46 UTC (permalink / raw)
To: 60224; +Cc: rekado, Maxim Cournoyer
* gnu/packages/bootloaders.scm (u-boot-sifive-unmatched)
[arguments]: Use gexps. Use search-input-file.
[inputs]: Remove labels. Use modify-inputs.
---
(no changes since v1)
gnu/packages/bootloaders.scm | 15 +++++++--------
1 file changed, 7 insertions(+), 8 deletions(-)
diff --git a/gnu/packages/bootloaders.scm b/gnu/packages/bootloaders.scm
index d1c04db66a..960c5b4a88 100644
--- a/gnu/packages/bootloaders.scm
+++ b/gnu/packages/bootloaders.scm
@@ -1124,15 +1124,14 @@ (define-public u-boot-sifive-unmatched
(arguments
(substitute-keyword-arguments (package-arguments base)
((#:phases phases)
- `(modify-phases ,phases
- (add-after 'unpack 'set-environment
- (lambda* (#:key inputs #:allow-other-keys)
- (let ((opensbi (string-append (assoc-ref inputs "firmware")
- "/fw_dynamic.bin")))
- (setenv "OPENSBI" opensbi))))))))
+ #~(modify-phases #$phases
+ (add-after 'unpack 'set-environment
+ (lambda* (#:key inputs #:allow-other-keys)
+ (setenv "OPENSBI" (search-input-file inputs
+ "fw_dynamic.bin"))))))))
(inputs
- `(("firmware" ,opensbi-generic)
- ,@(package-inputs base))))))
+ (modify-inputs (package-inputs base)
+ (append opensbi-generic))))))
(define-public u-boot-rock64-rk3328
(let ((base (make-u-boot-package "rock64-rk3328" "aarch64-linux-gnu")))
--
2.38.1
^ permalink raw reply related [flat|nested] 53+ messages in thread
* [bug#60224] [PATCH v3 10/11] gnu: u-boot-puma-rk3399: Use make-u-boot-sunxi64-package.
2023-01-02 0:46 ` [bug#60224] [PATCH v3 01/11] gnu: make-u-boot-package: Add a u-boot argument and use gexps Maxim Cournoyer
` (7 preceding siblings ...)
2023-01-02 0:46 ` [bug#60224] [PATCH v3 09/11] gnu: u-boot-sifive-unmatched: Use gexps and remove inputs Maxim Cournoyer
@ 2023-01-02 0:46 ` Maxim Cournoyer
2023-01-06 17:09 ` Vagrant Cascadian
2023-01-02 0:46 ` [bug#60224] [PATCH v3 11/11] gnu: u-boot-rockpro64-rk3399: Fix build Maxim Cournoyer
9 siblings, 1 reply; 53+ messages in thread
From: Maxim Cournoyer @ 2023-01-02 0:46 UTC (permalink / raw)
To: 60224; +Cc: rekado, Maxim Cournoyer
* gnu/packages/bootloaders.scm (u-boot-puma-rk3399): Use make-u-boot-sunxi64-package.
---
(no changes since v2)
Changes in v2:
- Add commit to allow disabling cross-compilation
gnu/packages/bootloaders.scm | 18 +-----------------
1 file changed, 1 insertion(+), 17 deletions(-)
diff --git a/gnu/packages/bootloaders.scm b/gnu/packages/bootloaders.scm
index 960c5b4a88..18750c2ad4 100644
--- a/gnu/packages/bootloaders.scm
+++ b/gnu/packages/bootloaders.scm
@@ -1090,23 +1090,7 @@ (define-public u-boot-cubietruck
(make-u-boot-package "Cubietruck" "arm-linux-gnueabihf"))
(define-public u-boot-puma-rk3399
- (let ((base (make-u-boot-package "puma-rk3399" "aarch64-linux-gnu")))
- (package
- (inherit base)
- (arguments
- (substitute-keyword-arguments (package-arguments base)
- ((#:phases phases)
- `(modify-phases ,phases
- (add-after 'unpack 'set-environment
- (lambda* (#:key inputs #:allow-other-keys)
- (setenv "BL31"
- (search-input-file inputs "/bl31.elf"))))
- ;; Phases do not succeed on the bl31 ELF.
- (delete 'strip)
- (delete 'validate-runpath)))))
- (native-inputs
- `(("firmware" ,arm-trusted-firmware-rk3399)
- ,@(package-native-inputs base))))))
+ (make-u-boot-sunxi64-package "puma-rk3399" "aarch64-linux-gnu"))
(define-public u-boot-qemu-riscv64
(make-u-boot-package "qemu-riscv64" "riscv64-linux-gnu"))
--
2.38.1
^ permalink raw reply related [flat|nested] 53+ messages in thread
* [bug#60224] [PATCH v3 11/11] gnu: u-boot-rockpro64-rk3399: Fix build.
2023-01-02 0:46 ` [bug#60224] [PATCH v3 01/11] gnu: make-u-boot-package: Add a u-boot argument and use gexps Maxim Cournoyer
` (8 preceding siblings ...)
2023-01-02 0:46 ` [bug#60224] [PATCH v3 10/11] gnu: u-boot-puma-rk3399: Use make-u-boot-sunxi64-package Maxim Cournoyer
@ 2023-01-02 0:46 ` Maxim Cournoyer
9 siblings, 0 replies; 53+ messages in thread
From: Maxim Cournoyer @ 2023-01-02 0:46 UTC (permalink / raw)
To: 60224; +Cc: rekado, Maxim Cournoyer
* gnu/packages/bootloaders.scm (u-boot-rockpro64-rk3399)
[phases]: Use gexps.
{set-environment}: Search native-inputs as well as inputs.
[native-inputs]: Use modify-inputs.
---
Changes in v3:
- New commit.
gnu/packages/bootloaders.scm | 45 ++++++++++++++++++------------------
1 file changed, 23 insertions(+), 22 deletions(-)
diff --git a/gnu/packages/bootloaders.scm b/gnu/packages/bootloaders.scm
index 18750c2ad4..6b985c4572 100644
--- a/gnu/packages/bootloaders.scm
+++ b/gnu/packages/bootloaders.scm
@@ -1167,37 +1167,38 @@ (define-public u-boot-rockpro64-rk3399
(arguments
(substitute-keyword-arguments (package-arguments base)
((#:phases phases)
- `(modify-phases ,phases
- (add-after 'unpack 'set-environment
- (lambda* (#:key inputs #:allow-other-keys)
- (setenv "BL31"
- (search-input-file inputs "/bl31.elf"))))
- (add-after 'unpack 'patch-header
- (lambda _
- (substitute* "include/config_distro_bootcmd.h"
- (("\"scsi_need_init=false")
- "\"setenv scsi_need_init false")
- (("#define BOOTENV_SET_SCSI_NEED_INIT \"scsi_need_init=;")
- "#define BOOTENV_SET_SCSI_NEED_INIT \"setenv scsi_need_init;"))
- (substitute* "include/configs/rockchip-common.h"
- (("#define BOOT_TARGET_DEVICES\\(func\\)")
- "
+ #~(modify-phases #$phases
+ (add-after 'unpack 'set-environment
+ (lambda* (#:key inputs #:allow-other-keys)
+ (setenv "BL31"
+ (search-input-file (or native-inputs inputs)
+ "/bl31.elf"))))
+ (add-after 'unpack 'patch-header
+ (lambda _
+ (substitute* "include/config_distro_bootcmd.h"
+ (("\"scsi_need_init=false")
+ "\"setenv scsi_need_init false")
+ (("#define BOOTENV_SET_SCSI_NEED_INIT \"scsi_need_init=;")
+ "#define BOOTENV_SET_SCSI_NEED_INIT \"setenv scsi_need_init;"))
+ (substitute* "include/configs/rockchip-common.h"
+ (("#define BOOT_TARGET_DEVICES\\(func\\)")
+ "
#if CONFIG_IS_ENABLED(CMD_SCSI)
#define BOOT_TARGET_SCSI(func) func(SCSI, scsi, 0)
#else
#define BOOT_TARGET_SCSI(func)
#endif
#define BOOT_TARGET_DEVICES(func)")
- (("BOOT_TARGET_NVME\\(func\\) \\\\")
- "\
+ (("BOOT_TARGET_NVME\\(func\\) \\\\")
+ "\
BOOT_TARGET_NVME(func) \\
BOOT_TARGET_SCSI(func) \\"))))
- ;; Phases do not succeed on the bl31 ELF.
- (delete 'strip)
- (delete 'validate-runpath)))))
+ ;; Phases do not succeed on the bl31 ELF.
+ (delete 'strip)
+ (delete 'validate-runpath)))))
(native-inputs
- `(("firmware" ,arm-trusted-firmware-rk3399)
- ,@(package-native-inputs base))))))
+ (modify-inputs (package-native-inputs base)
+ (append arm-trusted-firmware-rk3399))))))
(define-public u-boot-pinebook-pro-rk3399
(let ((base (make-u-boot-package "pinebook-pro-rk3399" "aarch64-linux-gnu")))
--
2.38.1
^ permalink raw reply related [flat|nested] 53+ messages in thread
* [bug#60224] [PATCH v3 10/11] gnu: u-boot-puma-rk3399: Use make-u-boot-sunxi64-package.
2023-01-02 0:46 ` [bug#60224] [PATCH v3 10/11] gnu: u-boot-puma-rk3399: Use make-u-boot-sunxi64-package Maxim Cournoyer
@ 2023-01-06 17:09 ` Vagrant Cascadian
0 siblings, 0 replies; 53+ messages in thread
From: Vagrant Cascadian @ 2023-01-06 17:09 UTC (permalink / raw)
To: Maxim Cournoyer, 60224; +Cc: rekado
[-- Attachment #1: Type: text/plain, Size: 1603 bytes --]
On 2023-01-01, Maxim Cournoyer wrote:
> * gnu/packages/bootloaders.scm (u-boot-puma-rk3399): Use make-u-boot-sunxi64-package.
...
> diff --git a/gnu/packages/bootloaders.scm b/gnu/packages/bootloaders.scm
> index 960c5b4a88..18750c2ad4 100644
> --- a/gnu/packages/bootloaders.scm
> +++ b/gnu/packages/bootloaders.scm
> @@ -1090,23 +1090,7 @@ (define-public u-boot-cubietruck
> (make-u-boot-package "Cubietruck" "arm-linux-gnueabihf"))
>
> (define-public u-boot-puma-rk3399
> - (let ((base (make-u-boot-package "puma-rk3399" "aarch64-linux-gnu")))
> - (package
> - (inherit base)
> - (arguments
> - (substitute-keyword-arguments (package-arguments base)
> - ((#:phases phases)
> - `(modify-phases ,phases
> - (add-after 'unpack 'set-environment
> - (lambda* (#:key inputs #:allow-other-keys)
> - (setenv "BL31"
> - (search-input-file inputs "/bl31.elf"))))
> - ;; Phases do not succeed on the bl31 ELF.
> - (delete 'strip)
> - (delete 'validate-runpath)))))
> - (native-inputs
> - `(("firmware" ,arm-trusted-firmware-rk3399)
> - ,@(package-native-inputs base))))))
> + (make-u-boot-sunxi64-package "puma-rk3399" "aarch64-linux-gnu"))
This is definitely not a sunxi64 platform (sunxi ~= the community name
for allwinner platforms, and rk3399 is rockchip based), so either the
make-u-boot-sunx64-package has been overgeneralized and should be
renamed, or this is just not right...
live well,
vagrant
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 227 bytes --]
^ permalink raw reply [flat|nested] 53+ messages in thread
* [bug#60224] [PATCH v3 07/11] gnu: make-u-boot-sunxi64-package: Use gexps and adjust file name.
2023-01-02 0:46 ` [bug#60224] [PATCH v3 07/11] gnu: make-u-boot-sunxi64-package: Use gexps and adjust file name Maxim Cournoyer
@ 2023-01-06 17:17 ` Vagrant Cascadian
2023-01-11 19:55 ` Maxim Cournoyer
0 siblings, 1 reply; 53+ messages in thread
From: Vagrant Cascadian @ 2023-01-06 17:17 UTC (permalink / raw)
To: Maxim Cournoyer, 60224; +Cc: rekado, Maxim Cournoyer
[-- Attachment #1: Type: text/plain, Size: 2452 bytes --]
On 2023-01-01, Maxim Cournoyer wrote:
> * gnu/packages/bootloaders.scm (make-u-boot-sunxi64-package)
> [phases] {set-environment}: Replace bl31.bin with bl31.elf; bl31.elf doesn't
> exist anymore for some reason.
Seems like the description is the inverse of what it is actually
doing. But what it is doing is ... not right either. :/
This appears to repurpose a function targeted at sunxi64 platforms for
rockchip platforms.
Seems like you might want to make a make-u-boot-rockchip-package
function instead?
More details below...
> gnu/packages/bootloaders.scm | 17 +++++++----------
> 1 file changed, 7 insertions(+), 10 deletions(-)
>
> diff --git a/gnu/packages/bootloaders.scm b/gnu/packages/bootloaders.scm
> index 8a56ee9cec..a19d1ebf17 100644
> --- a/gnu/packages/bootloaders.scm
> +++ b/gnu/packages/bootloaders.scm
> @@ -1005,17 +1005,14 @@ (define*-public (make-u-boot-sunxi64-package board triplet
> (arguments
> (substitute-keyword-arguments (package-arguments base)
> ((#:phases phases)
> - `(modify-phases ,phases
> - (add-after 'unpack 'set-environment
> - (lambda* (#:key native-inputs inputs #:allow-other-keys)
> - (let ((bl31
> - (string-append
> - (assoc-ref (or native-inputs inputs) "firmware")
> - "/bl31.bin")))
> - (setenv "BL31" bl31))))))))
> + #~(modify-phases #$phases
> + (add-after 'unpack 'set-environment
> + (lambda* (#:key native-inputs inputs #:allow-other-keys)
> + (setenv "BL31" (search-input-file (or native-inputs inputs)
> + "bl31.elf"))))))))
bl31.elf is built on rockchip platforms, but not sunxi/allwinner
platforms. The sunxi/allwinner platforms need bl31.bin.
> (native-inputs
> - `(("firmware" ,arm-trusted-firmware-sun50i-a64)
> - ,@(package-native-inputs base))))))
> + (modify-inputs (package-native-inputs base)
> + (append arm-trusted-firmware-rk3399))))))
This is absolutely incorrect, as this forces it to be rk3399, which is
not even a sunxi platform, and will break all the sun50i-a64 platforms
(e.g. pine64, pinebook). That said, there are technically sunxi64
platforms that would use a different arm-trusted-firmware build, so this
could use improving.
live well,
vagrant
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 227 bytes --]
^ permalink raw reply [flat|nested] 53+ messages in thread
* [bug#60224] [PATCH v3 07/11] gnu: make-u-boot-sunxi64-package: Use gexps and adjust file name.
2023-01-06 17:17 ` Vagrant Cascadian
@ 2023-01-11 19:55 ` Maxim Cournoyer
0 siblings, 0 replies; 53+ messages in thread
From: Maxim Cournoyer @ 2023-01-11 19:55 UTC (permalink / raw)
To: Vagrant Cascadian; +Cc: rekado, 60224
Hi Vagrant!
Vagrant Cascadian <vagrant@debian.org> writes:
> On 2023-01-01, Maxim Cournoyer wrote:
>> * gnu/packages/bootloaders.scm (make-u-boot-sunxi64-package)
>> [phases] {set-environment}: Replace bl31.bin with bl31.elf; bl31.elf doesn't
>> exist anymore for some reason.
>
> Seems like the description is the inverse of what it is actually
> doing. But what it is doing is ... not right either. :/
[...]
>> + #~(modify-phases #$phases
>> + (add-after 'unpack 'set-environment
>> + (lambda* (#:key native-inputs inputs #:allow-other-keys)
>> + (setenv "BL31" (search-input-file (or native-inputs inputs)
>> + "bl31.elf"))))))))
>
> bl31.elf is built on rockchip platforms, but not sunxi/allwinner
> platforms. The sunxi/allwinner platforms need bl31.bin.
This ^ ...
>
>> (native-inputs
>> - `(("firmware" ,arm-trusted-firmware-sun50i-a64)
>> - ,@(package-native-inputs base))))))
>> + (modify-inputs (package-native-inputs base)
>> + (append arm-trusted-firmware-rk3399))))))
>
... was the product of the above typo; thanks for catching it!
> This is absolutely incorrect, as this forces it to be rk3399, which is
> not even a sunxi platform, and will break all the sun50i-a64 platforms
> (e.g. pine64, pinebook). That said, there are technically sunxi64
> platforms that would use a different arm-trusted-firmware build, so this
> could use improving.
I've now removed that commit; and undid the previous change to, which
was based on that mistake.
I'll sent a v4 shortly.
I've noted something annoying though; is that cross-compiling doesn't
work yet because U-Boot uses python packages, which barfs like:
--8<---------------cut here---------------start------------->8---
$ ./pre-inst-env guix build u-boot-puma-rk3399 guix build: error: gnu/packages/check.scm:1997:2:
python-coverage@5.2.1: build system `python' does not support cross
builds
--8<---------------cut here---------------end--------------->8---
So currently the only way to build it is via --system, e.g. 'guix build
-s aarch64-linux u-boot-puma-rk3399'. The complications I simplified
were probably papering over that issue. That said, I see no reason we
couldn't convince our Python build system to "cross-compile" Python
packages, so I intend to look at this. Not sure if this should be a
blocker or not.
--
Thanks,
Maxim
^ permalink raw reply [flat|nested] 53+ messages in thread
* [bug#60224] [PATCH v4 01/12] gnu: make-u-boot-package: Add a u-boot argument and use gexps.
2022-12-20 16:50 [bug#60224] [PATCH 0/9] Improvements to our u-boot tooling Maxim Cournoyer
` (2 preceding siblings ...)
2023-01-02 0:46 ` [bug#60224] [PATCH v3 01/11] gnu: make-u-boot-package: Add a u-boot argument and use gexps Maxim Cournoyer
@ 2023-01-11 20:44 ` Maxim Cournoyer
2023-01-11 20:44 ` [bug#60224] [PATCH v4 02/12] gnu: make-u-boot-package: Install .imx files Maxim Cournoyer
` (10 more replies)
2023-01-16 3:25 ` [bug#60224] [PATCH v5 01/13] gnu: make-u-boot-package: Add a u-boot argument and use gexps Maxim Cournoyer
4 siblings, 11 replies; 53+ messages in thread
From: Maxim Cournoyer @ 2023-01-11 20:44 UTC (permalink / raw)
To: 60224; +Cc: rekado, Maxim Cournoyer, vagrant
And have that u-boot argument used as the complete base of the template, so
that a user can override it.
* gnu/packages/bootloaders.scm (make-u-boot-package): New U-BOOT argument.
Document it.
[native-inputs]: Move the native-inputs of U-BOOT first, so that the
cross compilation tools can be overridden via U-BOOT.
[arguments]: Rewrite using substitute-keyword-arguments, extending rather than
overriding most arguments. Use gexps. Do not bind OUTPUTS.
---
(no changes since v3)
Changes in v3:
- No longer bind 'outputs' extraneously in build phases
gnu/packages/bootloaders.scm | 181 +++++++++++++++++++----------------
1 file changed, 97 insertions(+), 84 deletions(-)
diff --git a/gnu/packages/bootloaders.scm b/gnu/packages/bootloaders.scm
index 6e6bdb4c08..52427ca9d6 100644
--- a/gnu/packages/bootloaders.scm
+++ b/gnu/packages/bootloaders.scm
@@ -860,11 +860,13 @@ (define*-public (make-u-boot-package board triplet
defconfig
configs
name-suffix
- append-description)
+ append-description
+ (u-boot u-boot))
"Return a U-Boot package for BOARD cross-compiled for TRIPLET with the
optional DEFCONFIG file and optional configuration changes from CONFIGS.
NAME-SUFFIX is appended to the package name, while APPEND-DESCRIPTION is
-appended to the package description."
+appended to the package description. U-BOOT can be used when a fork or a
+different version of U-Boot must be used."
(let ((same-arch? (lambda ()
(string=? (%current-system)
(gnu-triplet->nix-system triplet)))))
@@ -879,91 +881,102 @@ (define*-public (make-u-boot-package board triplet
"\n\n" append-description)
(package-description u-boot)))
(native-inputs
- `(,@(if (not (same-arch?))
+ ;; Note: leave the native u-boot inputs first, so that a user can
+ ;; override the cross-gcc and cross-binutils packages.
+ `(,@(package-native-inputs u-boot)
+ ,@(if (not (same-arch?))
`(("cross-gcc" ,(cross-gcc triplet))
("cross-binutils" ,(cross-binutils triplet)))
- `())
- ,@(package-native-inputs u-boot)))
+ `())))
(arguments
- `(#:modules ((ice-9 ftw)
- (srfi srfi-1)
- (guix build gnu-build-system)
- (guix build kconfig)
- (guix build utils))
- #:imported-modules (,@%gnu-build-system-modules
- (guix build kconfig))
- #:test-target "test"
- #:make-flags
- (list "HOSTCC=gcc"
- "KBUILD_VERBOSE=1"
- ,@(if (not (same-arch?))
- `((string-append "CROSS_COMPILE=" ,triplet "-"))
- '()))
- #:phases
- (modify-phases %standard-phases
- (replace 'configure
- (lambda* (#:key outputs make-flags #:allow-other-keys)
- (let* ((config-name (string-append ,board "_defconfig"))
- (config-file (string-append "configs/" config-name))
- (defconfig ,defconfig)
- (configs ',configs))
- (when defconfig
- ;; Replace the board-specific defconfig with the given one.
- (copy-file defconfig config-file))
- (if (file-exists? config-file)
- (begin
- (when configs
- (modify-defconfig config-file configs))
- (apply invoke "make" `(,@make-flags ,config-name))
- (verify-config ".config" config-file))
- (begin
- (display "invalid board name; valid board names are:"
- (current-error-port))
- (let ((suffix-len (string-length "_defconfig"))
- (entries (scandir "configs")))
- (for-each (lambda (file-name)
- (when (string-suffix? "_defconfig" file-name)
- (format (current-error-port)
- "- ~A\n"
- (string-drop-right file-name
- suffix-len))))
- (sort entries string-ci<)))
- (error "invalid boardname ~s" ,board))))))
- (add-after 'configure 'disable-tools-libcrypto
- ;; Disable libcrypto due to GPL and OpenSSL license
- ;; incompatibilities
- (lambda _
- (substitute* ".config"
- (("CONFIG_TOOLS_LIBCRYPTO=.*$") "CONFIG_TOOLS_LIBCRYPTO=n"))))
- (replace 'install
- (lambda* (#:key outputs #:allow-other-keys)
- (let* ((out (assoc-ref outputs "out"))
- (libexec (string-append out "/libexec"))
- (uboot-files (append
- (remove
- ;; Those would not be reproducible
- ;; because of the randomness used
- ;; to produce them.
- ;; It's expected that the user will
- ;; use u-boot-tools to generate them
- ;; instead.
- (lambda (name)
- (string-suffix?
- "sunxi-spl-with-ecc.bin"
- name))
- (find-files "." ".*\\.(bin|efi|img|spl|itb|dtb|rksd)$"))
- (find-files "." "^(MLO|SPL)$"))))
- (mkdir-p libexec)
- (install-file ".config" libexec)
- ;; Useful for "qemu -kernel".
- (install-file "u-boot" libexec)
- (for-each
- (lambda (file)
- (let ((target-file (string-append libexec "/" file)))
- (mkdir-p (dirname target-file))
- (copy-file file target-file)))
- uboot-files)
- #t)))))))))
+ (substitute-keyword-arguments (package-arguments u-boot)
+ ((#:modules modules '())
+ `((ice-9 ftw)
+ (srfi srfi-1)
+ (guix build gnu-build-system)
+ (guix build kconfig)
+ (guix build utils)
+ ,@modules))
+ ((#:imported-modules imported-modules '())
+ `((guix build kconfig)
+ ,@%gnu-build-system-modules
+ ,@imported-modules))
+ ((#:test-target _ "test")
+ "test")
+ ((#:make-flags make-flags '())
+ #~(list "HOSTCC=gcc"
+ "KBUILD_VERBOSE=1"
+ #$@(if (not (same-arch?))
+ (list (string-append "CROSS_COMPILE=" triplet "-"))
+ '())
+ #$@make-flags))
+ ((#:phases phases '%standard-phases)
+ #~(modify-phases #$phases
+ (replace 'configure
+ (lambda* (#:key make-flags #:allow-other-keys)
+ (let* ((config-name (string-append #$board "_defconfig"))
+ (config-file (string-append "configs/" config-name))
+ (defconfig #$defconfig)
+ (configs '#$configs))
+ (when defconfig
+ ;; Replace the board-specific defconfig with the given
+ ;; one.
+ (copy-file defconfig config-file))
+ (if (file-exists? config-file)
+ (begin
+ (when configs
+ (modify-defconfig config-file configs))
+ (apply invoke "make" `(,@make-flags ,config-name))
+ (verify-config ".config" config-file))
+ (begin
+ (display "invalid board name; valid board names are:"
+ (current-error-port))
+ (let ((suffix-len (string-length "_defconfig"))
+ (entries (scandir "configs")))
+ (for-each (lambda (file-name)
+ (when (string-suffix? "_defconfig"
+ file-name)
+ (format (current-error-port)
+ "- ~A\n"
+ (string-drop-right
+ file-name suffix-len))))
+ (sort entries string-ci<)))
+ (error "invalid boardname ~s" #$board))))))
+ (add-after 'configure 'disable-tools-libcrypto
+ ;; Disable libcrypto due to GPL and OpenSSL license
+ ;; incompatibilities
+ (lambda _
+ (substitute* ".config"
+ (("CONFIG_TOOLS_LIBCRYPTO=.*$")
+ "CONFIG_TOOLS_LIBCRYPTO=n"))))
+ (replace 'install
+ (lambda _
+ (let ((libexec (string-append #$output "/libexec"))
+ (uboot-files
+ (append
+ (remove
+ ;; Those would not be reproducible
+ ;; because of the randomness used to
+ ;; produce them. It's expected that the
+ ;; user will use u-boot-tools to generate
+ ;; them instead.
+ (lambda (name)
+ (string-suffix?
+ "sunxi-spl-with-ecc.bin"
+ name))
+ (find-files "."
+ ".*\\.(bin|efi|img|spl|itb|dtb|rksd)$"))
+ (find-files "." "^(MLO|SPL)$"))))
+ (mkdir-p libexec)
+ (install-file ".config" libexec)
+ ;; Useful for "qemu -kernel".
+ (install-file "u-boot" libexec)
+ (for-each
+ (lambda (file)
+ (let ((target-file (string-append libexec "/" file)))
+ (mkdir-p (dirname target-file))
+ (copy-file file target-file)))
+ uboot-files)))))))))))
(define-public u-boot-malta
(make-u-boot-package "malta" "mips64el-linux-gnuabi64"))
base-commit: 5e4ec8218142eee8e6e148e787381a5ef891c5b1
--
2.38.1
^ permalink raw reply related [flat|nested] 53+ messages in thread
* [bug#60224] [PATCH v4 02/12] gnu: make-u-boot-package: Install .imx files.
2023-01-11 20:44 ` [bug#60224] [PATCH v4 01/12] gnu: make-u-boot-package: Add a u-boot argument and use gexps Maxim Cournoyer
@ 2023-01-11 20:44 ` Maxim Cournoyer
2023-01-11 20:44 ` [bug#60224] [PATCH v4 03/12] gnu: make-uboot-package: Simplify build Maxim Cournoyer
` (9 subsequent siblings)
10 siblings, 0 replies; 53+ messages in thread
From: Maxim Cournoyer @ 2023-01-11 20:44 UTC (permalink / raw)
To: 60224; +Cc: rekado, Maxim Cournoyer, vagrant
* gnu/packages/bootloaders.scm
(make-u-boot-package) [phases] <install>: Add imx to the regexp of files
considered for installation.
---
(no changes since v1)
gnu/packages/bootloaders.scm | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/gnu/packages/bootloaders.scm b/gnu/packages/bootloaders.scm
index 52427ca9d6..10750e0448 100644
--- a/gnu/packages/bootloaders.scm
+++ b/gnu/packages/bootloaders.scm
@@ -965,7 +965,7 @@ (define*-public (make-u-boot-package board triplet
"sunxi-spl-with-ecc.bin"
name))
(find-files "."
- ".*\\.(bin|efi|img|spl|itb|dtb|rksd)$"))
+ ".*\\.(bin|efi|img|imx|spl|itb|dtb|rksd)$"))
(find-files "." "^(MLO|SPL)$"))))
(mkdir-p libexec)
(install-file ".config" libexec)
--
2.38.1
^ permalink raw reply related [flat|nested] 53+ messages in thread
* [bug#60224] [PATCH v4 03/12] gnu: make-uboot-package: Simplify build.
2023-01-11 20:44 ` [bug#60224] [PATCH v4 01/12] gnu: make-u-boot-package: Add a u-boot argument and use gexps Maxim Cournoyer
2023-01-11 20:44 ` [bug#60224] [PATCH v4 02/12] gnu: make-u-boot-package: Install .imx files Maxim Cournoyer
@ 2023-01-11 20:44 ` Maxim Cournoyer
2023-01-11 20:44 ` [bug#60224] [PATCH v4 04/12] gnu: make-u-boot-package: Allow disabling cross-compilation Maxim Cournoyer
` (8 subsequent siblings)
10 siblings, 0 replies; 53+ messages in thread
From: Maxim Cournoyer @ 2023-01-11 20:44 UTC (permalink / raw)
To: 60224; +Cc: rekado, Maxim Cournoyer, vagrant
* gnu/packages/bootloaders.scm (make-u-boot-package) <same-arch?>: Rename
procedure to 'native-build?'.
[native-inputs]: Remove field.
[arguments]: Specify the #:target argument, when not natively building.
Adjust for the above renaming.
---
(no changes since v3)
Changes in v3:
- Rename %current-target-system to %current-system in comment
gnu/packages/bootloaders.scm | 21 +++++++++------------
1 file changed, 9 insertions(+), 12 deletions(-)
diff --git a/gnu/packages/bootloaders.scm b/gnu/packages/bootloaders.scm
index 10750e0448..4a27a36d78 100644
--- a/gnu/packages/bootloaders.scm
+++ b/gnu/packages/bootloaders.scm
@@ -867,9 +867,11 @@ (define*-public (make-u-boot-package board triplet
NAME-SUFFIX is appended to the package name, while APPEND-DESCRIPTION is
appended to the package description. U-BOOT can be used when a fork or a
different version of U-Boot must be used."
- (let ((same-arch? (lambda ()
- (string=? (%current-system)
- (gnu-triplet->nix-system triplet)))))
+ (let ((native-build? (lambda ()
+ ;; Note: %current-system is a *triplet*, unlike its
+ ;; name would suggest.
+ (string=? (%current-system)
+ (gnu-triplet->nix-system triplet)))))
(package
(inherit u-boot)
(name (string-append "u-boot-"
@@ -880,16 +882,11 @@ (define*-public (make-u-boot-package board triplet
(string-append (package-description u-boot)
"\n\n" append-description)
(package-description u-boot)))
- (native-inputs
- ;; Note: leave the native u-boot inputs first, so that a user can
- ;; override the cross-gcc and cross-binutils packages.
- `(,@(package-native-inputs u-boot)
- ,@(if (not (same-arch?))
- `(("cross-gcc" ,(cross-gcc triplet))
- ("cross-binutils" ,(cross-binutils triplet)))
- `())))
+ (build-system gnu-build-system)
(arguments
(substitute-keyword-arguments (package-arguments u-boot)
+ ((#:target _ #f)
+ (and (not (native-build?)) triplet))
((#:modules modules '())
`((ice-9 ftw)
(srfi srfi-1)
@@ -906,7 +903,7 @@ (define*-public (make-u-boot-package board triplet
((#:make-flags make-flags '())
#~(list "HOSTCC=gcc"
"KBUILD_VERBOSE=1"
- #$@(if (not (same-arch?))
+ #$@(if (not (native-build?))
(list (string-append "CROSS_COMPILE=" triplet "-"))
'())
#$@make-flags))
--
2.38.1
^ permalink raw reply related [flat|nested] 53+ messages in thread
* [bug#60224] [PATCH v4 04/12] gnu: make-u-boot-package: Allow disabling cross-compilation.
2023-01-11 20:44 ` [bug#60224] [PATCH v4 01/12] gnu: make-u-boot-package: Add a u-boot argument and use gexps Maxim Cournoyer
2023-01-11 20:44 ` [bug#60224] [PATCH v4 02/12] gnu: make-u-boot-package: Install .imx files Maxim Cournoyer
2023-01-11 20:44 ` [bug#60224] [PATCH v4 03/12] gnu: make-uboot-package: Simplify build Maxim Cournoyer
@ 2023-01-11 20:44 ` Maxim Cournoyer
2023-01-11 20:44 ` [bug#60224] [PATCH v4 05/12] gnu: u-boot-pinebook-pro-rk3399: Remove input labels and use gexps Maxim Cournoyer
` (7 subsequent siblings)
10 siblings, 0 replies; 53+ messages in thread
From: Maxim Cournoyer @ 2023-01-11 20:44 UTC (permalink / raw)
To: 60224; +Cc: rekado, Maxim Cournoyer, vagrant
* gnu/packages/bootloaders.scm (make-u-boot-package): Accept #f for the
TRIPLET argument to disable cross-compilation. Update doc.
---
(no changes since v1)
gnu/packages/bootloaders.scm | 12 +++++++-----
1 file changed, 7 insertions(+), 5 deletions(-)
diff --git a/gnu/packages/bootloaders.scm b/gnu/packages/bootloaders.scm
index 4a27a36d78..e48b55018b 100644
--- a/gnu/packages/bootloaders.scm
+++ b/gnu/packages/bootloaders.scm
@@ -864,14 +864,16 @@ (define*-public (make-u-boot-package board triplet
(u-boot u-boot))
"Return a U-Boot package for BOARD cross-compiled for TRIPLET with the
optional DEFCONFIG file and optional configuration changes from CONFIGS.
-NAME-SUFFIX is appended to the package name, while APPEND-DESCRIPTION is
-appended to the package description. U-BOOT can be used when a fork or a
-different version of U-Boot must be used."
+TRIPLET may also be set to #f to disable cross-compilation. NAME-SUFFIX is
+appended to the package name, while APPEND-DESCRIPTION is appended to the
+package description. U-BOOT can be used when a fork or a different version of
+U-Boot must be used."
(let ((native-build? (lambda ()
;; Note: %current-system is a *triplet*, unlike its
;; name would suggest.
- (string=? (%current-system)
- (gnu-triplet->nix-system triplet)))))
+ (or (not triplet) ;disable cross-compilation
+ (string=? (%current-system)
+ (gnu-triplet->nix-system triplet))))))
(package
(inherit u-boot)
(name (string-append "u-boot-"
--
2.38.1
^ permalink raw reply related [flat|nested] 53+ messages in thread
* [bug#60224] [PATCH v4 05/12] gnu: u-boot-pinebook-pro-rk3399: Remove input labels and use gexps.
2023-01-11 20:44 ` [bug#60224] [PATCH v4 01/12] gnu: make-u-boot-package: Add a u-boot argument and use gexps Maxim Cournoyer
` (2 preceding siblings ...)
2023-01-11 20:44 ` [bug#60224] [PATCH v4 04/12] gnu: make-u-boot-package: Allow disabling cross-compilation Maxim Cournoyer
@ 2023-01-11 20:44 ` Maxim Cournoyer
2023-01-11 20:44 ` [bug#60224] [PATCH v4 06/12] gnu: u-boot-firefly-rk3399: Use gexps and fix cross-build Maxim Cournoyer
` (6 subsequent siblings)
10 siblings, 0 replies; 53+ messages in thread
From: Maxim Cournoyer @ 2023-01-11 20:44 UTC (permalink / raw)
To: 60224; +Cc: rekado, Maxim Cournoyer, vagrant
* gnu/packages/bootloaders.scm (u-boot-pinebook-pro-rk3399) [arguments]:
Remove input labels.
[native-inputs]: Use modify-inputs and turn into...
[inputs]: ... this.
---
Changes in v4:
- Move arm-trusted-firmware-rk3399 to inputs
gnu/packages/bootloaders.scm | 21 ++++++++++-----------
1 file changed, 10 insertions(+), 11 deletions(-)
diff --git a/gnu/packages/bootloaders.scm b/gnu/packages/bootloaders.scm
index e48b55018b..3ac29a844b 100644
--- a/gnu/packages/bootloaders.scm
+++ b/gnu/packages/bootloaders.scm
@@ -1230,17 +1230,16 @@ (define-public u-boot-pinebook-pro-rk3399
(arguments
(substitute-keyword-arguments (package-arguments base)
((#:phases phases)
- `(modify-phases ,phases
- (add-after 'unpack 'set-environment
- (lambda* (#:key inputs #:allow-other-keys)
- (setenv "BL31"
- (search-input-file inputs "/bl31.elf"))))
- ;; Phases do not succeed on the bl31 ELF.
- (delete 'strip)
- (delete 'validate-runpath)))))
- (native-inputs
- `(("firmware" ,arm-trusted-firmware-rk3399)
- ,@(package-native-inputs base))))))
+ #~(modify-phases #$phases
+ (add-after 'unpack 'set-environment
+ (lambda* (#:key native-inputs inputs #:allow-other-keys)
+ (setenv "BL31" (search-input-file inputs "bl31.elf"))))
+ ;; Phases do not succeed on the bl31 ELF.
+ (delete 'strip)
+ (delete 'validate-runpath)))))
+ (inputs
+ (modify-inputs (package-inputs base)
+ (append arm-trusted-firmware-rk3399))))))
(define*-public (make-u-boot-bin-package u-boot-package
#:key
--
2.38.1
^ permalink raw reply related [flat|nested] 53+ messages in thread
* [bug#60224] [PATCH v4 06/12] gnu: u-boot-firefly-rk3399: Use gexps and fix cross-build.
2023-01-11 20:44 ` [bug#60224] [PATCH v4 01/12] gnu: make-u-boot-package: Add a u-boot argument and use gexps Maxim Cournoyer
` (3 preceding siblings ...)
2023-01-11 20:44 ` [bug#60224] [PATCH v4 05/12] gnu: u-boot-pinebook-pro-rk3399: Remove input labels and use gexps Maxim Cournoyer
@ 2023-01-11 20:44 ` Maxim Cournoyer
2023-01-11 20:44 ` [bug#60224] [PATCH v4 07/12] gnu: make-u-boot-sunxi64-package: Use gexps and adjust file name Maxim Cournoyer
` (5 subsequent siblings)
10 siblings, 0 replies; 53+ messages in thread
From: Maxim Cournoyer @ 2023-01-11 20:44 UTC (permalink / raw)
To: 60224; +Cc: rekado, Maxim Cournoyer, vagrant
* gnu/packages/bootloaders.scm (u-boot-firefly-rk3399) [arguments]: Use gexps.
[native-inputs]: Use modify-inputs and turn into...
[inputs]: ... this.
---
Changes in v4:
- Move arm-trusted-firmware-rk3399 to inputs
gnu/packages/bootloaders.scm | 20 ++++++++++----------
1 file changed, 10 insertions(+), 10 deletions(-)
diff --git a/gnu/packages/bootloaders.scm b/gnu/packages/bootloaders.scm
index 3ac29a844b..87d5bcb824 100644
--- a/gnu/packages/bootloaders.scm
+++ b/gnu/packages/bootloaders.scm
@@ -1165,16 +1165,16 @@ (define-public u-boot-firefly-rk3399
(arguments
(substitute-keyword-arguments (package-arguments base)
((#:phases phases)
- `(modify-phases ,phases
- (add-after 'unpack 'set-environment
- (lambda* (#:key inputs #:allow-other-keys)
- (setenv "BL31" (search-input-file inputs "/bl31.elf"))))
- ;; Phases do not succeed on the bl31 ELF.
- (delete 'strip)
- (delete 'validate-runpath)))))
- (native-inputs
- `(("firmware" ,arm-trusted-firmware-rk3399)
- ,@(package-native-inputs base))))))
+ #~(modify-phases #$phases
+ (add-after 'unpack 'set-environment
+ (lambda* (#:key native-inputs inputs #:allow-other-keys)
+ (setenv "BL31" (search-input-file inputs "bl31.elf"))))
+ ;; Phases do not succeed on the bl31 ELF.
+ (delete 'strip)
+ (delete 'validate-runpath)))))
+ (inputs
+ (modify-inputs (package-inputs base)
+ (append arm-trusted-firmware-rk3399))))))
(define-public u-boot-rockpro64-rk3399
(let ((base (make-u-boot-package "rockpro64-rk3399" "aarch64-linux-gnu"
--
2.38.1
^ permalink raw reply related [flat|nested] 53+ messages in thread
* [bug#60224] [PATCH v4 07/12] gnu: make-u-boot-sunxi64-package: Use gexps and adjust file name.
2023-01-11 20:44 ` [bug#60224] [PATCH v4 01/12] gnu: make-u-boot-package: Add a u-boot argument and use gexps Maxim Cournoyer
` (4 preceding siblings ...)
2023-01-11 20:44 ` [bug#60224] [PATCH v4 06/12] gnu: u-boot-firefly-rk3399: Use gexps and fix cross-build Maxim Cournoyer
@ 2023-01-11 20:44 ` Maxim Cournoyer
2023-01-12 22:12 ` Vagrant Cascadian
2023-01-11 20:44 ` [bug#60224] [PATCH v4 08/12] gnu: u-boot-rock64-rk3328: Fix build Maxim Cournoyer
` (4 subsequent siblings)
10 siblings, 1 reply; 53+ messages in thread
From: Maxim Cournoyer @ 2023-01-11 20:44 UTC (permalink / raw)
To: 60224; +Cc: rekado, Maxim Cournoyer, vagrant
* gnu/packages/bootloaders.scm (make-u-boot-sunxi64-package)
[phases] {set-environment}: Replace bl31.bin with bl31.elf; bl31.elf doesn't
exist anymore for some reason.
[native-inputs]: Turn into...
[inputs]: ... this.
---
Changes in v4:
- Revert erroneously replaced firmware package
- Revert bl31.bin -> bl31.elf change caused by the above
- Make the arm-trusted-firmware-sun50i-a64 a host input
gnu/packages/bootloaders.scm | 18 +++++++-----------
1 file changed, 7 insertions(+), 11 deletions(-)
diff --git a/gnu/packages/bootloaders.scm b/gnu/packages/bootloaders.scm
index 87d5bcb824..0c5205fa86 100644
--- a/gnu/packages/bootloaders.scm
+++ b/gnu/packages/bootloaders.scm
@@ -1010,17 +1010,13 @@ (define*-public (make-u-boot-sunxi64-package board triplet
(arguments
(substitute-keyword-arguments (package-arguments base)
((#:phases phases)
- `(modify-phases ,phases
- (add-after 'unpack 'set-environment
- (lambda* (#:key native-inputs inputs #:allow-other-keys)
- (let ((bl31
- (string-append
- (assoc-ref (or native-inputs inputs) "firmware")
- "/bl31.bin")))
- (setenv "BL31" bl31))))))))
- (native-inputs
- `(("firmware" ,arm-trusted-firmware-sun50i-a64)
- ,@(package-native-inputs base))))))
+ #~(modify-phases #$phases
+ (add-after 'unpack 'set-environment
+ (lambda* (#:key native-inputs inputs #:allow-other-keys)
+ (setenv "BL31" (search-input-file inputs "bl31.bin"))))))))
+ (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"))
--
2.38.1
^ permalink raw reply related [flat|nested] 53+ messages in thread
* [bug#60224] [PATCH v4 08/12] gnu: u-boot-rock64-rk3328: Fix build.
2023-01-11 20:44 ` [bug#60224] [PATCH v4 01/12] gnu: make-u-boot-package: Add a u-boot argument and use gexps Maxim Cournoyer
` (5 preceding siblings ...)
2023-01-11 20:44 ` [bug#60224] [PATCH v4 07/12] gnu: make-u-boot-sunxi64-package: Use gexps and adjust file name Maxim Cournoyer
@ 2023-01-11 20:44 ` Maxim Cournoyer
2023-01-11 20:44 ` [bug#60224] [PATCH v4 09/12] gnu: u-boot-sifive-unmatched: Use gexps and remove inputs Maxim Cournoyer
` (3 subsequent siblings)
10 siblings, 0 replies; 53+ messages in thread
From: Maxim Cournoyer @ 2023-01-11 20:44 UTC (permalink / raw)
To: 60224; +Cc: rekado, Maxim Cournoyer, vagrant
* gnu/packages/bootloaders.scm (u-boot-rock64-rk3328)
[arguments]: Use gexps.
[native-inputs]: Remove input labels and use modify-inputs, and turn into...
[inputs]: ... this.
---
Changes in v4:
- Make arm-trusted-firmware-rk3328 a regular input
gnu/packages/bootloaders.scm | 15 +++++++--------
1 file changed, 7 insertions(+), 8 deletions(-)
diff --git a/gnu/packages/bootloaders.scm b/gnu/packages/bootloaders.scm
index 0c5205fa86..464c1f5729 100644
--- a/gnu/packages/bootloaders.scm
+++ b/gnu/packages/bootloaders.scm
@@ -1145,14 +1145,13 @@ (define-public u-boot-rock64-rk3328
(arguments
(substitute-keyword-arguments (package-arguments base)
((#:phases phases)
- `(modify-phases ,phases
- (add-after 'unpack 'set-environment
- (lambda* (#:key inputs #:allow-other-keys)
- (let ((bl31 (search-input-file inputs "/bl31.elf")))
- (setenv "BL31" bl31))))))))
- (native-inputs
- `(("firmware" ,arm-trusted-firmware-rk3328)
- ,@(package-native-inputs base))))))
+ #~(modify-phases #$phases
+ (add-after 'unpack 'set-environment
+ (lambda* (#:key native-inputs inputs #:allow-other-keys)
+ (setenv "BL31 "(search-input-file inputs "bl31.elf"))))))))
+ (inputs
+ (modify-inputs (package-inputs base)
+ (append arm-trusted-firmware-rk3328))))))
(define-public u-boot-firefly-rk3399
(let ((base (make-u-boot-package "firefly-rk3399" "aarch64-linux-gnu")))
--
2.38.1
^ permalink raw reply related [flat|nested] 53+ messages in thread
* [bug#60224] [PATCH v4 09/12] gnu: u-boot-sifive-unmatched: Use gexps and remove inputs.
2023-01-11 20:44 ` [bug#60224] [PATCH v4 01/12] gnu: make-u-boot-package: Add a u-boot argument and use gexps Maxim Cournoyer
` (6 preceding siblings ...)
2023-01-11 20:44 ` [bug#60224] [PATCH v4 08/12] gnu: u-boot-rock64-rk3328: Fix build Maxim Cournoyer
@ 2023-01-11 20:44 ` Maxim Cournoyer
2023-01-11 20:44 ` [bug#60224] [PATCH v4 10/12] gnu: u-boot-rockpro64-rk3399: Fix build Maxim Cournoyer
` (2 subsequent siblings)
10 siblings, 0 replies; 53+ messages in thread
From: Maxim Cournoyer @ 2023-01-11 20:44 UTC (permalink / raw)
To: 60224; +Cc: rekado, Maxim Cournoyer, vagrant
* gnu/packages/bootloaders.scm (u-boot-sifive-unmatched)
[arguments]: Use gexps. Use search-input-file.
[inputs]: Remove labels. Use modify-inputs.
---
(no changes since v1)
gnu/packages/bootloaders.scm | 15 +++++++--------
1 file changed, 7 insertions(+), 8 deletions(-)
diff --git a/gnu/packages/bootloaders.scm b/gnu/packages/bootloaders.scm
index 464c1f5729..b2e15b88f1 100644
--- a/gnu/packages/bootloaders.scm
+++ b/gnu/packages/bootloaders.scm
@@ -1128,15 +1128,14 @@ (define-public u-boot-sifive-unmatched
(arguments
(substitute-keyword-arguments (package-arguments base)
((#:phases phases)
- `(modify-phases ,phases
- (add-after 'unpack 'set-environment
- (lambda* (#:key inputs #:allow-other-keys)
- (let ((opensbi (string-append (assoc-ref inputs "firmware")
- "/fw_dynamic.bin")))
- (setenv "OPENSBI" opensbi))))))))
+ #~(modify-phases #$phases
+ (add-after 'unpack 'set-environment
+ (lambda* (#:key inputs #:allow-other-keys)
+ (setenv "OPENSBI" (search-input-file inputs
+ "fw_dynamic.bin"))))))))
(inputs
- `(("firmware" ,opensbi-generic)
- ,@(package-inputs base))))))
+ (modify-inputs (package-inputs base)
+ (append opensbi-generic))))))
(define-public u-boot-rock64-rk3328
(let ((base (make-u-boot-package "rock64-rk3328" "aarch64-linux-gnu")))
--
2.38.1
^ permalink raw reply related [flat|nested] 53+ messages in thread
* [bug#60224] [PATCH v4 10/12] gnu: u-boot-rockpro64-rk3399: Fix build.
2023-01-11 20:44 ` [bug#60224] [PATCH v4 01/12] gnu: make-u-boot-package: Add a u-boot argument and use gexps Maxim Cournoyer
` (7 preceding siblings ...)
2023-01-11 20:44 ` [bug#60224] [PATCH v4 09/12] gnu: u-boot-sifive-unmatched: Use gexps and remove inputs Maxim Cournoyer
@ 2023-01-11 20:44 ` Maxim Cournoyer
2023-01-11 20:44 ` [bug#60224] [PATCH v4 11/12] gnu: make-arm-trusted-firmware: Simplify build Maxim Cournoyer
2023-01-11 20:44 ` [bug#60224] [PATCH v4 12/12] gnu: u-boot-puma-rk3399: Fix build Maxim Cournoyer
10 siblings, 0 replies; 53+ messages in thread
From: Maxim Cournoyer @ 2023-01-11 20:44 UTC (permalink / raw)
To: 60224; +Cc: rekado, Maxim Cournoyer, vagrant
* gnu/packages/bootloaders.scm (u-boot-rockpro64-rk3399)
[phases]: Use gexps.
[native-inputs]: Use modify-inputs and turn into...
[inputs]: ... this.
---
Changes in v4:
- Make the arm-trusted-firmware-rk3399 a regular input
Changes in v3:
- New commit.
gnu/packages/bootloaders.scm | 45 ++++++++++++++++++------------------
1 file changed, 22 insertions(+), 23 deletions(-)
diff --git a/gnu/packages/bootloaders.scm b/gnu/packages/bootloaders.scm
index b2e15b88f1..0878dd3168 100644
--- a/gnu/packages/bootloaders.scm
+++ b/gnu/packages/bootloaders.scm
@@ -1185,37 +1185,36 @@ (define-public u-boot-rockpro64-rk3399
(arguments
(substitute-keyword-arguments (package-arguments base)
((#:phases phases)
- `(modify-phases ,phases
- (add-after 'unpack 'set-environment
- (lambda* (#:key inputs #:allow-other-keys)
- (setenv "BL31"
- (search-input-file inputs "/bl31.elf"))))
- (add-after 'unpack 'patch-header
- (lambda _
- (substitute* "include/config_distro_bootcmd.h"
- (("\"scsi_need_init=false")
- "\"setenv scsi_need_init false")
- (("#define BOOTENV_SET_SCSI_NEED_INIT \"scsi_need_init=;")
- "#define BOOTENV_SET_SCSI_NEED_INIT \"setenv scsi_need_init;"))
- (substitute* "include/configs/rockchip-common.h"
- (("#define BOOT_TARGET_DEVICES\\(func\\)")
- "
+ #~(modify-phases #$phases
+ (add-after 'unpack 'set-environment
+ (lambda* (#:key inputs #:allow-other-keys)
+ (setenv "BL31" (search-input-file inputs "/bl31.elf"))))
+ (add-after 'unpack 'patch-header
+ (lambda _
+ (substitute* "include/config_distro_bootcmd.h"
+ (("\"scsi_need_init=false")
+ "\"setenv scsi_need_init false")
+ (("#define BOOTENV_SET_SCSI_NEED_INIT \"scsi_need_init=;")
+ "#define BOOTENV_SET_SCSI_NEED_INIT \"setenv scsi_need_init;"))
+ (substitute* "include/configs/rockchip-common.h"
+ (("#define BOOT_TARGET_DEVICES\\(func\\)")
+ "
#if CONFIG_IS_ENABLED(CMD_SCSI)
#define BOOT_TARGET_SCSI(func) func(SCSI, scsi, 0)
#else
#define BOOT_TARGET_SCSI(func)
#endif
#define BOOT_TARGET_DEVICES(func)")
- (("BOOT_TARGET_NVME\\(func\\) \\\\")
- "\
+ (("BOOT_TARGET_NVME\\(func\\) \\\\")
+ "\
BOOT_TARGET_NVME(func) \\
BOOT_TARGET_SCSI(func) \\"))))
- ;; Phases do not succeed on the bl31 ELF.
- (delete 'strip)
- (delete 'validate-runpath)))))
- (native-inputs
- `(("firmware" ,arm-trusted-firmware-rk3399)
- ,@(package-native-inputs base))))))
+ ;; Phases do not succeed on the bl31 ELF.
+ (delete 'strip)
+ (delete 'validate-runpath)))))
+ (inputs
+ (modify-inputs (package-inputs base)
+ (append arm-trusted-firmware-rk3399))))))
(define-public u-boot-pinebook-pro-rk3399
(let ((base (make-u-boot-package "pinebook-pro-rk3399" "aarch64-linux-gnu")))
--
2.38.1
^ permalink raw reply related [flat|nested] 53+ messages in thread
* [bug#60224] [PATCH v4 11/12] gnu: make-arm-trusted-firmware: Simplify build.
2023-01-11 20:44 ` [bug#60224] [PATCH v4 01/12] gnu: make-u-boot-package: Add a u-boot argument and use gexps Maxim Cournoyer
` (8 preceding siblings ...)
2023-01-11 20:44 ` [bug#60224] [PATCH v4 10/12] gnu: u-boot-rockpro64-rk3399: Fix build Maxim Cournoyer
@ 2023-01-11 20:44 ` Maxim Cournoyer
2023-01-11 20:44 ` [bug#60224] [PATCH v4 12/12] gnu: u-boot-puma-rk3399: Fix build Maxim Cournoyer
10 siblings, 0 replies; 53+ messages in thread
From: Maxim Cournoyer @ 2023-01-11 20:44 UTC (permalink / raw)
To: 60224; +Cc: rekado, Maxim Cournoyer, vagrant
Reuse knowledge from recent U-Boot modifications to streamline the package
definition.
* gnu/packages/firmware.scm (make-arm-trusted-firmware): Change optional
argument ARCH to keyword TRIPLET. Default to aarch64-linux-gnu.
[arguments]: Use gexps. Add a #:target argument. Streamline how the
CROSS_COMPILE make flag is computed.
[native-inputs]: Delete field.
---
Changes in v4:
- New commit
gnu/packages/firmware.scm | 116 +++++++++++++++++---------------------
1 file changed, 52 insertions(+), 64 deletions(-)
diff --git a/gnu/packages/firmware.scm b/gnu/packages/firmware.scm
index f08d59752a..bd20ee81d9 100644
--- a/gnu/packages/firmware.scm
+++ b/gnu/packages/firmware.scm
@@ -8,7 +8,7 @@
;;; Copyright © 2019 Mathieu Othacehe <m.othacehe@gmail.com>
;;; Copyright © 2020, 2021, 2022 Marius Bakke <marius@gnu.org>
;;; Copyright © 2021 Petr Hodina <phodina@protonmail.com>
-;;; Copyright © 2022 Maxim Cournoyer <maxim.cournoyer@gmail.com>
+;;; Copyright © 2022, 2023 Maxim Cournoyer <maxim.cournoyer@gmail.com>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -944,70 +944,58 @@ (define-public ovmf-arm
(string-append fmw "/ovmf_arm.bin")))))))))
(supported-systems %supported-systems)))
-(define* (make-arm-trusted-firmware platform #:optional (arch "aarch64"))
- (package
- (name (string-append "arm-trusted-firmware-" platform))
- (version "2.8")
- (source
- (origin
- (method git-fetch)
- (uri (git-reference
+(define* (make-arm-trusted-firmware platform
+ #:key (triplet "aarch64-linux-gnu"))
+ (let ((native-build? (lambda ()
+ ;; Note: %current-system is a *triplet*, unlike its
+ ;; name would suggest.
+ (or (not triplet) ;disable cross-compilation
+ (string=? (%current-system)
+ (gnu-triplet->nix-system triplet))))))
+ (package
+ (name (string-append "arm-trusted-firmware-" platform))
+ (version "2.8")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
;; There are only GitHub generated release snapshots.
(url "https://git.trustedfirmware.org/TF-A/trusted-firmware-a.git/")
(commit (string-append "v" version))))
- (file-name (git-file-name "arm-trusted-firmware" version))
- (sha256
- (base32
- "0grq3fgxi9xhcljnhwlxjvdghyz15gaq50raw41xy4lm8rkmnzp3"))
- (snippet
- #~(begin
- (use-modules (guix build utils))
- ;; Remove binary blobs which do not contain source or proper license.
- (for-each (lambda (file)
- (delete-file file))
- (find-files "." "\\.bin$"))))))
- (build-system gnu-build-system)
- (arguments
- `(#:phases
- (modify-phases %standard-phases
- (delete 'configure) ; no configure script
- (replace 'install
- (lambda* (#:key outputs #:allow-other-keys)
- (let ((out (assoc-ref outputs "out"))
- (bin (find-files "." "\\.(bin|elf)$")))
- (for-each
- (lambda (file)
- (install-file file out))
- bin)))))
- #:make-flags (list (string-append "PLAT=" ,platform)
- ,@(if (and (not (string-prefix? "aarch64"
- (%current-system)))
- (string-prefix? "aarch64" arch))
- `("CROSS_COMPILE=aarch64-linux-gnu-")
- '())
- ,@(if (and (not (string-prefix? "armhf"
- (%current-system)))
- (string-prefix? "armhf" arch))
- `("CROSS_COMPILE=arm-linux-gnueabihf-")
- '())
- "DEBUG=1")
- #:tests? #f)) ; no tests
- (native-inputs
- (let ((system (%current-system)))
- (cond
- ((and (not (string-prefix? "aarch64" system))
- (string-prefix? "aarch64" arch))
- (list (cross-gcc "aarch64-linux-gnu")
- (cross-binutils "aarch64-linux-gnu")))
- ((and (not (string-prefix? "armhf" system))
- (string-prefix? "armhf" arch))
- (list (cross-gcc "arm-linux-gnueabihf")
- (cross-binutils "arm-linux-gnueabihf")))
- (else '()))))
- (home-page "https://www.trustedfirmware.org/")
- (synopsis "Implementation of \"secure world software\"")
- (description
- "ARM Trusted Firmware provides a reference implementation of secure world
+ (file-name (git-file-name "arm-trusted-firmware" version))
+ (sha256
+ (base32
+ "0grq3fgxi9xhcljnhwlxjvdghyz15gaq50raw41xy4lm8rkmnzp3"))
+ (snippet
+ #~(begin
+ (use-modules (guix build utils))
+ ;; Remove binary blobs which do not contain source or proper
+ ;; license.
+ (for-each (lambda (file)
+ (delete-file file))
+ (find-files "." "\\.bin$"))))))
+ (build-system gnu-build-system)
+ (arguments
+ (list
+ #:target (and (not (native-build?)) triplet)
+ #:phases
+ #~(modify-phases %standard-phases
+ (delete 'configure) ;no configure script
+ (replace 'install
+ (lambda _
+ (for-each (lambda (file)
+ (install-file file #$output))
+ (find-files "." "\\.(bin|elf)$")))))
+ #:make-flags #~(list (string-append "PLAT=" #$platform)
+ #$@(if (not (native-build?))
+ (list (string-append "CROSS_COMPILE=" triplet "-"))
+ '())
+ "DEBUG=1")
+ #:tests? #f)) ;no test suite
+ (home-page "https://www.trustedfirmware.org/")
+ (synopsis "Implementation of \"secure world software\"")
+ (description
+ "ARM Trusted Firmware provides a reference implementation of secure world
software for ARMv7A and ARMv8-A, including a Secure Monitor executing at
@dfn{Exception Level 3} (EL3). It implements various ARM interface standards,
such as:
@@ -1018,8 +1006,8 @@ (define* (make-arm-trusted-firmware platform #:optional (arch "aarch64"))
@item System Control and Management Interface
@item Software Delegated Exception Interface (SDEI)
@end enumerate\n")
- (license (list license:bsd-3
- license:bsd-2)))) ; libfdt
+ (license (list license:bsd-3
+ license:bsd-2))))) ; libfdt
(define-public arm-trusted-firmware-sun50i-a64
(let ((base (make-arm-trusted-firmware "sun50i_a64")))
--
2.38.1
^ permalink raw reply related [flat|nested] 53+ messages in thread
* [bug#60224] [PATCH v4 12/12] gnu: u-boot-puma-rk3399: Fix build.
2023-01-11 20:44 ` [bug#60224] [PATCH v4 01/12] gnu: make-u-boot-package: Add a u-boot argument and use gexps Maxim Cournoyer
` (9 preceding siblings ...)
2023-01-11 20:44 ` [bug#60224] [PATCH v4 11/12] gnu: make-arm-trusted-firmware: Simplify build Maxim Cournoyer
@ 2023-01-11 20:44 ` Maxim Cournoyer
10 siblings, 0 replies; 53+ messages in thread
From: Maxim Cournoyer @ 2023-01-11 20:44 UTC (permalink / raw)
To: 60224; +Cc: rekado, Maxim Cournoyer, vagrant
* gnu/packages/bootloaders.scm (u-boot-puma-rk3399)
[arguments]: Use gexps.
[native-inputs]: Turn into...
[inputs]: ... this, and use modify-inputs.
---
Changes in v4:
- New commit
gnu/packages/bootloaders.scm | 21 ++++++++++-----------
1 file changed, 10 insertions(+), 11 deletions(-)
diff --git a/gnu/packages/bootloaders.scm b/gnu/packages/bootloaders.scm
index 0878dd3168..c3f254cf0b 100644
--- a/gnu/packages/bootloaders.scm
+++ b/gnu/packages/bootloaders.scm
@@ -1100,17 +1100,16 @@ (define-public u-boot-puma-rk3399
(arguments
(substitute-keyword-arguments (package-arguments base)
((#:phases phases)
- `(modify-phases ,phases
- (add-after 'unpack 'set-environment
- (lambda* (#:key inputs #:allow-other-keys)
- (setenv "BL31"
- (search-input-file inputs "/bl31.elf"))))
- ;; Phases do not succeed on the bl31 ELF.
- (delete 'strip)
- (delete 'validate-runpath)))))
- (native-inputs
- `(("firmware" ,arm-trusted-firmware-rk3399)
- ,@(package-native-inputs base))))))
+ #~(modify-phases #$phases
+ (add-after 'unpack 'set-environment
+ (lambda* (#:key inputs #:allow-other-keys)
+ (setenv "BL31" (search-input-file inputs "/bl31.elf"))))
+ ;; Phases do not succeed on the bl31 ELF.
+ (delete 'strip)
+ (delete 'validate-runpath)))))
+ (inputs
+ (modify-inputs (package-native-inputs base)
+ (append arm-trusted-firmware-rk3399))))))
(define-public u-boot-qemu-riscv64
(make-u-boot-package "qemu-riscv64" "riscv64-linux-gnu"))
--
2.38.1
^ permalink raw reply related [flat|nested] 53+ messages in thread
* [bug#60224] [PATCH v4 07/12] gnu: make-u-boot-sunxi64-package: Use gexps and adjust file name.
2023-01-11 20:44 ` [bug#60224] [PATCH v4 07/12] gnu: make-u-boot-sunxi64-package: Use gexps and adjust file name Maxim Cournoyer
@ 2023-01-12 22:12 ` Vagrant Cascadian
0 siblings, 0 replies; 53+ messages in thread
From: Vagrant Cascadian @ 2023-01-12 22:12 UTC (permalink / raw)
To: Maxim Cournoyer, 60224; +Cc: rekado
[-- Attachment #1: Type: text/plain, Size: 2168 bytes --]
On 2023-01-11, Maxim Cournoyer wrote:
> * gnu/packages/bootloaders.scm (make-u-boot-sunxi64-package)
> [phases] {set-environment}: Replace bl31.bin with bl31.elf; bl31.elf doesn't
> exist anymore for some reason.
The code no longer mentions bl31.elf, but the commit comment still does!
> [native-inputs]: Turn into...
> [inputs]: ... this.
>
> ---
>
> Changes in v4:
> - Revert erroneously replaced firmware package
> - Revert bl31.bin -> bl31.elf change caused by the above
> - Make the arm-trusted-firmware-sun50i-a64 a host input
So fix the commit comment to reflect that...
> gnu/packages/bootloaders.scm | 18 +++++++-----------
> 1 file changed, 7 insertions(+), 11 deletions(-)
>
> diff --git a/gnu/packages/bootloaders.scm b/gnu/packages/bootloaders.scm
> index 87d5bcb824..0c5205fa86 100644
> --- a/gnu/packages/bootloaders.scm
> +++ b/gnu/packages/bootloaders.scm
> @@ -1010,17 +1010,13 @@ (define*-public (make-u-boot-sunxi64-package board triplet
> (arguments
> (substitute-keyword-arguments (package-arguments base)
> ((#:phases phases)
> - `(modify-phases ,phases
> - (add-after 'unpack 'set-environment
> - (lambda* (#:key native-inputs inputs #:allow-other-keys)
> - (let ((bl31
> - (string-append
> - (assoc-ref (or native-inputs inputs) "firmware")
> - "/bl31.bin")))
> - (setenv "BL31" bl31))))))))
> - (native-inputs
> - `(("firmware" ,arm-trusted-firmware-sun50i-a64)
> - ,@(package-native-inputs base))))))
> + #~(modify-phases #$phases
> + (add-after 'unpack 'set-environment
> + (lambda* (#:key native-inputs inputs #:allow-other-keys)
> + (setenv "BL31" (search-input-file inputs "bl31.bin"))))))))
> + (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"))
> --
> 2.38.1
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 227 bytes --]
^ permalink raw reply [flat|nested] 53+ messages in thread
* [bug#60224] [PATCH v5 01/13] gnu: make-u-boot-package: Add a u-boot argument and use gexps.
2022-12-20 16:50 [bug#60224] [PATCH 0/9] Improvements to our u-boot tooling Maxim Cournoyer
` (3 preceding siblings ...)
2023-01-11 20:44 ` [bug#60224] [PATCH v4 01/12] gnu: make-u-boot-package: Add a u-boot argument and use gexps Maxim Cournoyer
@ 2023-01-16 3:25 ` Maxim Cournoyer
2023-01-16 3:25 ` [bug#60224] [PATCH v5 02/13] gnu: make-u-boot-package: Install .imx files Maxim Cournoyer
` (12 more replies)
4 siblings, 13 replies; 53+ messages in thread
From: Maxim Cournoyer @ 2023-01-16 3:25 UTC (permalink / raw)
To: 60224; +Cc: rekado, Maxim Cournoyer, vagrant
And have that u-boot argument used as the complete base of the template, so
that a user can override it.
* gnu/packages/bootloaders.scm (make-u-boot-package): New U-BOOT argument.
Document it.
[native-inputs]: Move the native-inputs of U-BOOT first, so that the
cross compilation tools can be overridden via U-BOOT.
[arguments]: Rewrite using substitute-keyword-arguments, extending rather than
overriding most arguments. Use gexps. Do not bind OUTPUTS.
---
(no changes since v3)
Changes in v3:
- No longer bind 'outputs' extraneously in build phases
gnu/packages/bootloaders.scm | 181 +++++++++++++++++++----------------
1 file changed, 97 insertions(+), 84 deletions(-)
diff --git a/gnu/packages/bootloaders.scm b/gnu/packages/bootloaders.scm
index 8dc6ff698d..96dd65ae9d 100644
--- a/gnu/packages/bootloaders.scm
+++ b/gnu/packages/bootloaders.scm
@@ -860,11 +860,13 @@ (define*-public (make-u-boot-package board triplet
defconfig
configs
name-suffix
- append-description)
+ append-description
+ (u-boot u-boot))
"Return a U-Boot package for BOARD cross-compiled for TRIPLET with the
optional DEFCONFIG file and optional configuration changes from CONFIGS.
NAME-SUFFIX is appended to the package name, while APPEND-DESCRIPTION is
-appended to the package description."
+appended to the package description. U-BOOT can be used when a fork or a
+different version of U-Boot must be used."
(let ((same-arch? (lambda ()
(string=? (%current-system)
(gnu-triplet->nix-system triplet)))))
@@ -879,91 +881,102 @@ (define*-public (make-u-boot-package board triplet
"\n\n" append-description)
(package-description u-boot)))
(native-inputs
- `(,@(if (not (same-arch?))
+ ;; Note: leave the native u-boot inputs first, so that a user can
+ ;; override the cross-gcc and cross-binutils packages.
+ `(,@(package-native-inputs u-boot)
+ ,@(if (not (same-arch?))
`(("cross-gcc" ,(cross-gcc triplet))
("cross-binutils" ,(cross-binutils triplet)))
- `())
- ,@(package-native-inputs u-boot)))
+ `())))
(arguments
- `(#:modules ((ice-9 ftw)
- (srfi srfi-1)
- (guix build gnu-build-system)
- (guix build kconfig)
- (guix build utils))
- #:imported-modules (,@%gnu-build-system-modules
- (guix build kconfig))
- #:test-target "test"
- #:make-flags
- (list "HOSTCC=gcc"
- "KBUILD_VERBOSE=1"
- ,@(if (not (same-arch?))
- `((string-append "CROSS_COMPILE=" ,triplet "-"))
- '()))
- #:phases
- (modify-phases %standard-phases
- (replace 'configure
- (lambda* (#:key outputs make-flags #:allow-other-keys)
- (let* ((config-name (string-append ,board "_defconfig"))
- (config-file (string-append "configs/" config-name))
- (defconfig ,defconfig)
- (configs ',configs))
- (when defconfig
- ;; Replace the board-specific defconfig with the given one.
- (copy-file defconfig config-file))
- (if (file-exists? config-file)
- (begin
- (when configs
- (modify-defconfig config-file configs))
- (apply invoke "make" `(,@make-flags ,config-name))
- (verify-config ".config" config-file))
- (begin
- (display "invalid board name; valid board names are:"
- (current-error-port))
- (let ((suffix-len (string-length "_defconfig"))
- (entries (scandir "configs")))
- (for-each (lambda (file-name)
- (when (string-suffix? "_defconfig" file-name)
- (format (current-error-port)
- "- ~A\n"
- (string-drop-right file-name
- suffix-len))))
- (sort entries string-ci<)))
- (error "invalid boardname ~s" ,board))))))
- (add-after 'configure 'disable-tools-libcrypto
- ;; Disable libcrypto due to GPL and OpenSSL license
- ;; incompatibilities
- (lambda _
- (substitute* ".config"
- (("CONFIG_TOOLS_LIBCRYPTO=.*$") "CONFIG_TOOLS_LIBCRYPTO=n"))))
- (replace 'install
- (lambda* (#:key outputs #:allow-other-keys)
- (let* ((out (assoc-ref outputs "out"))
- (libexec (string-append out "/libexec"))
- (uboot-files (append
- (remove
- ;; Those would not be reproducible
- ;; because of the randomness used
- ;; to produce them.
- ;; It's expected that the user will
- ;; use u-boot-tools to generate them
- ;; instead.
- (lambda (name)
- (string-suffix?
- "sunxi-spl-with-ecc.bin"
- name))
- (find-files "." ".*\\.(bin|efi|img|spl|itb|dtb|rksd)$"))
- (find-files "." "^(MLO|SPL)$"))))
- (mkdir-p libexec)
- (install-file ".config" libexec)
- ;; Useful for "qemu -kernel".
- (install-file "u-boot" libexec)
- (for-each
- (lambda (file)
- (let ((target-file (string-append libexec "/" file)))
- (mkdir-p (dirname target-file))
- (copy-file file target-file)))
- uboot-files)
- #t)))))))))
+ (substitute-keyword-arguments (package-arguments u-boot)
+ ((#:modules modules '())
+ `((ice-9 ftw)
+ (srfi srfi-1)
+ (guix build gnu-build-system)
+ (guix build kconfig)
+ (guix build utils)
+ ,@modules))
+ ((#:imported-modules imported-modules '())
+ `((guix build kconfig)
+ ,@%gnu-build-system-modules
+ ,@imported-modules))
+ ((#:test-target _ "test")
+ "test")
+ ((#:make-flags make-flags '())
+ #~(list "HOSTCC=gcc"
+ "KBUILD_VERBOSE=1"
+ #$@(if (not (same-arch?))
+ (list (string-append "CROSS_COMPILE=" triplet "-"))
+ '())
+ #$@make-flags))
+ ((#:phases phases '%standard-phases)
+ #~(modify-phases #$phases
+ (replace 'configure
+ (lambda* (#:key make-flags #:allow-other-keys)
+ (let* ((config-name (string-append #$board "_defconfig"))
+ (config-file (string-append "configs/" config-name))
+ (defconfig #$defconfig)
+ (configs '#$configs))
+ (when defconfig
+ ;; Replace the board-specific defconfig with the given
+ ;; one.
+ (copy-file defconfig config-file))
+ (if (file-exists? config-file)
+ (begin
+ (when configs
+ (modify-defconfig config-file configs))
+ (apply invoke "make" `(,@make-flags ,config-name))
+ (verify-config ".config" config-file))
+ (begin
+ (display "invalid board name; valid board names are:"
+ (current-error-port))
+ (let ((suffix-len (string-length "_defconfig"))
+ (entries (scandir "configs")))
+ (for-each (lambda (file-name)
+ (when (string-suffix? "_defconfig"
+ file-name)
+ (format (current-error-port)
+ "- ~A\n"
+ (string-drop-right
+ file-name suffix-len))))
+ (sort entries string-ci<)))
+ (error "invalid boardname ~s" #$board))))))
+ (add-after 'configure 'disable-tools-libcrypto
+ ;; Disable libcrypto due to GPL and OpenSSL license
+ ;; incompatibilities
+ (lambda _
+ (substitute* ".config"
+ (("CONFIG_TOOLS_LIBCRYPTO=.*$")
+ "CONFIG_TOOLS_LIBCRYPTO=n"))))
+ (replace 'install
+ (lambda _
+ (let ((libexec (string-append #$output "/libexec"))
+ (uboot-files
+ (append
+ (remove
+ ;; Those would not be reproducible
+ ;; because of the randomness used to
+ ;; produce them. It's expected that the
+ ;; user will use u-boot-tools to generate
+ ;; them instead.
+ (lambda (name)
+ (string-suffix?
+ "sunxi-spl-with-ecc.bin"
+ name))
+ (find-files "."
+ ".*\\.(bin|efi|img|spl|itb|dtb|rksd)$"))
+ (find-files "." "^(MLO|SPL)$"))))
+ (mkdir-p libexec)
+ (install-file ".config" libexec)
+ ;; Useful for "qemu -kernel".
+ (install-file "u-boot" libexec)
+ (for-each
+ (lambda (file)
+ (let ((target-file (string-append libexec "/" file)))
+ (mkdir-p (dirname target-file))
+ (copy-file file target-file)))
+ uboot-files)))))))))))
(define-public u-boot-am335x-boneblack
(let ((base (make-u-boot-package
base-commit: a9a38f515e5770fe7d19052c761f0f5e839af4e6
--
2.38.1
^ permalink raw reply related [flat|nested] 53+ messages in thread
* [bug#60224] [PATCH v5 02/13] gnu: make-u-boot-package: Install .imx files.
2023-01-16 3:25 ` [bug#60224] [PATCH v5 01/13] gnu: make-u-boot-package: Add a u-boot argument and use gexps Maxim Cournoyer
@ 2023-01-16 3:25 ` Maxim Cournoyer
2023-01-16 3:25 ` [bug#60224] [PATCH v5 03/13] gnu: u-boot: Reduce the number of native inputs Maxim Cournoyer
` (11 subsequent siblings)
12 siblings, 0 replies; 53+ messages in thread
From: Maxim Cournoyer @ 2023-01-16 3:25 UTC (permalink / raw)
To: 60224; +Cc: rekado, Maxim Cournoyer, vagrant
* gnu/packages/bootloaders.scm
(make-u-boot-package) [phases] <install>: Add imx to the regexp of files
considered for installation.
---
(no changes since v1)
gnu/packages/bootloaders.scm | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/gnu/packages/bootloaders.scm b/gnu/packages/bootloaders.scm
index 96dd65ae9d..b17f8b1a9f 100644
--- a/gnu/packages/bootloaders.scm
+++ b/gnu/packages/bootloaders.scm
@@ -965,7 +965,7 @@ (define*-public (make-u-boot-package board triplet
"sunxi-spl-with-ecc.bin"
name))
(find-files "."
- ".*\\.(bin|efi|img|spl|itb|dtb|rksd)$"))
+ ".*\\.(bin|efi|img|imx|spl|itb|dtb|rksd)$"))
(find-files "." "^(MLO|SPL)$"))))
(mkdir-p libexec)
(install-file ".config" libexec)
--
2.38.1
^ permalink raw reply related [flat|nested] 53+ messages in thread
* [bug#60224] [PATCH v5 03/13] gnu: u-boot: Reduce the number of native inputs.
2023-01-16 3:25 ` [bug#60224] [PATCH v5 01/13] gnu: make-u-boot-package: Add a u-boot argument and use gexps Maxim Cournoyer
2023-01-16 3:25 ` [bug#60224] [PATCH v5 02/13] gnu: make-u-boot-package: Install .imx files Maxim Cournoyer
@ 2023-01-16 3:25 ` Maxim Cournoyer
2023-01-16 3:25 ` [bug#60224] [PATCH v5 04/13] gnu: make-uboot-package: Simplify build Maxim Cournoyer
` (10 subsequent siblings)
12 siblings, 0 replies; 53+ messages in thread
From: Maxim Cournoyer @ 2023-01-16 3:25 UTC (permalink / raw)
To: 60224; +Cc: rekado, U-Boot Mailing List, Maxim Cournoyer, vagrant
The extra python inputs are only needed for running the u-boot-test-tools test
suite. This lowers the requirements for cross-building the various u-boot
packages.
* gnu/packages/bootloaders.scm (u-boot) [native-inputs]: Delete bc.
Move python-coverage, python-pycryptodomex and python-pytest to...
* gnu/packages/bootloaders.scm (u-boot-tools) [native-inputs]: ... here.
---
Changes in v5:
- New commit.
gnu/packages/bootloaders.scm | 8 ++------
1 file changed, 2 insertions(+), 6 deletions(-)
diff --git a/gnu/packages/bootloaders.scm b/gnu/packages/bootloaders.scm
index b17f8b1a9f..7ec26dda05 100644
--- a/gnu/packages/bootloaders.scm
+++ b/gnu/packages/bootloaders.scm
@@ -662,8 +662,7 @@ (define u-boot
"1y5x8vxdgsqdqlsvq01mn8lmw53fqairkhvhhjx83hjva0m4id2h"))))
(build-system gnu-build-system)
(native-inputs
- (list bc
- bison
+ (list bison
dtc
gnutls
flex
@@ -672,9 +671,6 @@ (define u-boot
perl
pkg-config ;for 'make menuconfig'
python
- python-coverage
- python-pycryptodomex
- python-pytest
swig
(list util-linux "lib")))
(home-page "https://www.denx.de/wiki/U-Boot/")
@@ -725,7 +721,7 @@ (define-public u-boot-tools
(name "u-boot-tools")
(native-inputs
(modify-inputs (package-native-inputs u-boot)
- (prepend sdl2)))
+ (prepend python-coverage python-pycryptodomex python-pytest sdl2)))
(arguments
`(#:make-flags '("HOSTCC=gcc")
#:test-target "tcheck"
--
2.38.1
^ permalink raw reply related [flat|nested] 53+ messages in thread
* [bug#60224] [PATCH v5 04/13] gnu: make-uboot-package: Simplify build.
2023-01-16 3:25 ` [bug#60224] [PATCH v5 01/13] gnu: make-u-boot-package: Add a u-boot argument and use gexps Maxim Cournoyer
2023-01-16 3:25 ` [bug#60224] [PATCH v5 02/13] gnu: make-u-boot-package: Install .imx files Maxim Cournoyer
2023-01-16 3:25 ` [bug#60224] [PATCH v5 03/13] gnu: u-boot: Reduce the number of native inputs Maxim Cournoyer
@ 2023-01-16 3:25 ` Maxim Cournoyer
2023-01-16 3:25 ` [bug#60224] [PATCH v5 05/13] gnu: make-u-boot-package: Allow disabling cross-compilation Maxim Cournoyer
` (9 subsequent siblings)
12 siblings, 0 replies; 53+ messages in thread
From: Maxim Cournoyer @ 2023-01-16 3:25 UTC (permalink / raw)
To: 60224; +Cc: rekado, Maxim Cournoyer, vagrant
* gnu/packages/bootloaders.scm (make-u-boot-package) <same-arch?>: Rename
procedure to 'native-build?'.
[native-inputs]: Remove field.
[arguments]: Specify the #:target argument, when not natively building.
Adjust for the above renaming.
---
Changes in v5:
- Remove bogus comment
Changes in v3:
- Rename %current-target-system to %current-system in comment
gnu/packages/bootloaders.scm | 19 +++++++------------
1 file changed, 7 insertions(+), 12 deletions(-)
diff --git a/gnu/packages/bootloaders.scm b/gnu/packages/bootloaders.scm
index 7ec26dda05..b7a31c8b48 100644
--- a/gnu/packages/bootloaders.scm
+++ b/gnu/packages/bootloaders.scm
@@ -863,9 +863,9 @@ (define*-public (make-u-boot-package board triplet
NAME-SUFFIX is appended to the package name, while APPEND-DESCRIPTION is
appended to the package description. U-BOOT can be used when a fork or a
different version of U-Boot must be used."
- (let ((same-arch? (lambda ()
- (string=? (%current-system)
- (gnu-triplet->nix-system triplet)))))
+ (let ((native-build? (lambda ()
+ (string=? (%current-system)
+ (gnu-triplet->nix-system triplet)))))
(package
(inherit u-boot)
(name (string-append "u-boot-"
@@ -876,16 +876,11 @@ (define*-public (make-u-boot-package board triplet
(string-append (package-description u-boot)
"\n\n" append-description)
(package-description u-boot)))
- (native-inputs
- ;; Note: leave the native u-boot inputs first, so that a user can
- ;; override the cross-gcc and cross-binutils packages.
- `(,@(package-native-inputs u-boot)
- ,@(if (not (same-arch?))
- `(("cross-gcc" ,(cross-gcc triplet))
- ("cross-binutils" ,(cross-binutils triplet)))
- `())))
+ (build-system gnu-build-system)
(arguments
(substitute-keyword-arguments (package-arguments u-boot)
+ ((#:target _ #f)
+ (and (not (native-build?)) triplet))
((#:modules modules '())
`((ice-9 ftw)
(srfi srfi-1)
@@ -902,7 +897,7 @@ (define*-public (make-u-boot-package board triplet
((#:make-flags make-flags '())
#~(list "HOSTCC=gcc"
"KBUILD_VERBOSE=1"
- #$@(if (not (same-arch?))
+ #$@(if (not (native-build?))
(list (string-append "CROSS_COMPILE=" triplet "-"))
'())
#$@make-flags))
--
2.38.1
^ permalink raw reply related [flat|nested] 53+ messages in thread
* [bug#60224] [PATCH v5 05/13] gnu: make-u-boot-package: Allow disabling cross-compilation.
2023-01-16 3:25 ` [bug#60224] [PATCH v5 01/13] gnu: make-u-boot-package: Add a u-boot argument and use gexps Maxim Cournoyer
` (2 preceding siblings ...)
2023-01-16 3:25 ` [bug#60224] [PATCH v5 04/13] gnu: make-uboot-package: Simplify build Maxim Cournoyer
@ 2023-01-16 3:25 ` Maxim Cournoyer
2023-01-16 3:25 ` [bug#60224] [PATCH v5 06/13] gnu: u-boot-pinebook-pro-rk3399: Remove input labels and use gexps Maxim Cournoyer
` (8 subsequent siblings)
12 siblings, 0 replies; 53+ messages in thread
From: Maxim Cournoyer @ 2023-01-16 3:25 UTC (permalink / raw)
To: 60224; +Cc: rekado, Maxim Cournoyer, vagrant
* gnu/packages/bootloaders.scm (make-u-boot-package): Accept #f for the
TRIPLET argument to disable cross-compilation. Update doc.
---
(no changes since v1)
gnu/packages/bootloaders.scm | 12 +++++++-----
1 file changed, 7 insertions(+), 5 deletions(-)
diff --git a/gnu/packages/bootloaders.scm b/gnu/packages/bootloaders.scm
index b7a31c8b48..290d832a83 100644
--- a/gnu/packages/bootloaders.scm
+++ b/gnu/packages/bootloaders.scm
@@ -860,12 +860,14 @@ (define*-public (make-u-boot-package board triplet
(u-boot u-boot))
"Return a U-Boot package for BOARD cross-compiled for TRIPLET with the
optional DEFCONFIG file and optional configuration changes from CONFIGS.
-NAME-SUFFIX is appended to the package name, while APPEND-DESCRIPTION is
-appended to the package description. U-BOOT can be used when a fork or a
-different version of U-Boot must be used."
+TRIPLET may also be set to #f to disable cross-compilation. NAME-SUFFIX is
+appended to the package name, while APPEND-DESCRIPTION is appended to the
+package description. U-BOOT can be used when a fork or a different version of
+U-Boot must be used."
(let ((native-build? (lambda ()
- (string=? (%current-system)
- (gnu-triplet->nix-system triplet)))))
+ (or (not triplet) ;disable cross-compilation
+ (string=? (%current-system)
+ (gnu-triplet->nix-system triplet))))))
(package
(inherit u-boot)
(name (string-append "u-boot-"
--
2.38.1
^ permalink raw reply related [flat|nested] 53+ messages in thread
* [bug#60224] [PATCH v5 06/13] gnu: u-boot-pinebook-pro-rk3399: Remove input labels and use gexps.
2023-01-16 3:25 ` [bug#60224] [PATCH v5 01/13] gnu: make-u-boot-package: Add a u-boot argument and use gexps Maxim Cournoyer
` (3 preceding siblings ...)
2023-01-16 3:25 ` [bug#60224] [PATCH v5 05/13] gnu: make-u-boot-package: Allow disabling cross-compilation Maxim Cournoyer
@ 2023-01-16 3:25 ` Maxim Cournoyer
2023-01-16 3:25 ` [bug#60224] [PATCH v5 07/13] gnu: u-boot-firefly-rk3399: Use gexps and fix build Maxim Cournoyer
` (7 subsequent siblings)
12 siblings, 0 replies; 53+ messages in thread
From: Maxim Cournoyer @ 2023-01-16 3:25 UTC (permalink / raw)
To: 60224; +Cc: rekado, Maxim Cournoyer, vagrant
* gnu/packages/bootloaders.scm (u-boot-pinebook-pro-rk3399) [arguments]:
Remove input labels.
[native-inputs]: Use modify-inputs and turn into...
[inputs]: ... this.
---
(no changes since v4)
Changes in v4:
- Move arm-trusted-firmware-rk3399 to inputs
gnu/packages/bootloaders.scm | 21 ++++++++++-----------
1 file changed, 10 insertions(+), 11 deletions(-)
diff --git a/gnu/packages/bootloaders.scm b/gnu/packages/bootloaders.scm
index 290d832a83..f3b3c91c47 100644
--- a/gnu/packages/bootloaders.scm
+++ b/gnu/packages/bootloaders.scm
@@ -1221,17 +1221,16 @@ (define-public u-boot-pinebook-pro-rk3399
(arguments
(substitute-keyword-arguments (package-arguments base)
((#:phases phases)
- `(modify-phases ,phases
- (add-after 'unpack 'set-environment
- (lambda* (#:key inputs #:allow-other-keys)
- (setenv "BL31"
- (search-input-file inputs "/bl31.elf"))))
- ;; Phases do not succeed on the bl31 ELF.
- (delete 'strip)
- (delete 'validate-runpath)))))
- (native-inputs
- `(("firmware" ,arm-trusted-firmware-rk3399)
- ,@(package-native-inputs base))))))
+ #~(modify-phases #$phases
+ (add-after 'unpack 'set-environment
+ (lambda* (#:key native-inputs inputs #:allow-other-keys)
+ (setenv "BL31" (search-input-file inputs "bl31.elf"))))
+ ;; Phases do not succeed on the bl31 ELF.
+ (delete 'strip)
+ (delete 'validate-runpath)))))
+ (inputs
+ (modify-inputs (package-inputs base)
+ (append arm-trusted-firmware-rk3399))))))
(define*-public (make-u-boot-bin-package u-boot-package
#:key
--
2.38.1
^ permalink raw reply related [flat|nested] 53+ messages in thread
* [bug#60224] [PATCH v5 07/13] gnu: u-boot-firefly-rk3399: Use gexps and fix build.
2023-01-16 3:25 ` [bug#60224] [PATCH v5 01/13] gnu: make-u-boot-package: Add a u-boot argument and use gexps Maxim Cournoyer
` (4 preceding siblings ...)
2023-01-16 3:25 ` [bug#60224] [PATCH v5 06/13] gnu: u-boot-pinebook-pro-rk3399: Remove input labels and use gexps Maxim Cournoyer
@ 2023-01-16 3:25 ` Maxim Cournoyer
2023-01-16 3:25 ` [bug#60224] [PATCH v5 08/13] gnu: make-u-boot-sunxi64-package: " Maxim Cournoyer
` (6 subsequent siblings)
12 siblings, 0 replies; 53+ messages in thread
From: Maxim Cournoyer @ 2023-01-16 3:25 UTC (permalink / raw)
To: 60224; +Cc: rekado, Maxim Cournoyer, vagrant
* gnu/packages/bootloaders.scm (u-boot-firefly-rk3399) [arguments]: Use gexps.
[native-inputs]: Use modify-inputs and turn into...
[inputs]: ... this.
---
(no changes since v4)
Changes in v4:
- Move arm-trusted-firmware-rk3399 to inputs
gnu/packages/bootloaders.scm | 20 ++++++++++----------
1 file changed, 10 insertions(+), 10 deletions(-)
diff --git a/gnu/packages/bootloaders.scm b/gnu/packages/bootloaders.scm
index f3b3c91c47..624a832802 100644
--- a/gnu/packages/bootloaders.scm
+++ b/gnu/packages/bootloaders.scm
@@ -1156,16 +1156,16 @@ (define-public u-boot-firefly-rk3399
(arguments
(substitute-keyword-arguments (package-arguments base)
((#:phases phases)
- `(modify-phases ,phases
- (add-after 'unpack 'set-environment
- (lambda* (#:key inputs #:allow-other-keys)
- (setenv "BL31" (search-input-file inputs "/bl31.elf"))))
- ;; Phases do not succeed on the bl31 ELF.
- (delete 'strip)
- (delete 'validate-runpath)))))
- (native-inputs
- `(("firmware" ,arm-trusted-firmware-rk3399)
- ,@(package-native-inputs base))))))
+ #~(modify-phases #$phases
+ (add-after 'unpack 'set-environment
+ (lambda* (#:key native-inputs inputs #:allow-other-keys)
+ (setenv "BL31" (search-input-file inputs "bl31.elf"))))
+ ;; Phases do not succeed on the bl31 ELF.
+ (delete 'strip)
+ (delete 'validate-runpath)))))
+ (inputs
+ (modify-inputs (package-inputs base)
+ (append arm-trusted-firmware-rk3399))))))
(define-public u-boot-rockpro64-rk3399
(let ((base (make-u-boot-package "rockpro64-rk3399" "aarch64-linux-gnu"
--
2.38.1
^ permalink raw reply related [flat|nested] 53+ messages in thread
* [bug#60224] [PATCH v5 08/13] gnu: make-u-boot-sunxi64-package: Use gexps and fix build.
2023-01-16 3:25 ` [bug#60224] [PATCH v5 01/13] gnu: make-u-boot-package: Add a u-boot argument and use gexps Maxim Cournoyer
` (5 preceding siblings ...)
2023-01-16 3:25 ` [bug#60224] [PATCH v5 07/13] gnu: u-boot-firefly-rk3399: Use gexps and fix build Maxim Cournoyer
@ 2023-01-16 3:25 ` Maxim Cournoyer
2023-01-16 3:25 ` [bug#60224] [PATCH v5 09/13] gnu: u-boot-rock64-rk3328: " Maxim Cournoyer
` (5 subsequent siblings)
12 siblings, 0 replies; 53+ messages in thread
From: Maxim Cournoyer @ 2023-01-16 3:25 UTC (permalink / raw)
To: 60224; +Cc: rekado, Maxim Cournoyer, vagrant
* gnu/packages/bootloaders.scm (make-u-boot-sunxi64-package)
[native-inputs]: Turn into...
[inputs]: ... this.
---
Changes in v5:
- Fix commit message
Changes in v4:
- Revert erroneously replaced firmware package
- Revert bl31.bin -> bl31.elf change caused by the above
- Make the arm-trusted-firmware-sun50i-a64 a host input
gnu/packages/bootloaders.scm | 18 +++++++-----------
1 file changed, 7 insertions(+), 11 deletions(-)
diff --git a/gnu/packages/bootloaders.scm b/gnu/packages/bootloaders.scm
index 624a832802..53e6557ac7 100644
--- a/gnu/packages/bootloaders.scm
+++ b/gnu/packages/bootloaders.scm
@@ -1001,17 +1001,13 @@ (define*-public (make-u-boot-sunxi64-package board triplet
(arguments
(substitute-keyword-arguments (package-arguments base)
((#:phases phases)
- `(modify-phases ,phases
- (add-after 'unpack 'set-environment
- (lambda* (#:key native-inputs inputs #:allow-other-keys)
- (let ((bl31
- (string-append
- (assoc-ref (or native-inputs inputs) "firmware")
- "/bl31.bin")))
- (setenv "BL31" bl31))))))))
- (native-inputs
- `(("firmware" ,arm-trusted-firmware-sun50i-a64)
- ,@(package-native-inputs base))))))
+ #~(modify-phases #$phases
+ (add-after 'unpack 'set-environment
+ (lambda* (#:key native-inputs inputs #:allow-other-keys)
+ (setenv "BL31" (search-input-file inputs "bl31.bin"))))))))
+ (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"))
--
2.38.1
^ permalink raw reply related [flat|nested] 53+ messages in thread
* [bug#60224] [PATCH v5 09/13] gnu: u-boot-rock64-rk3328: Use gexps and fix build.
2023-01-16 3:25 ` [bug#60224] [PATCH v5 01/13] gnu: make-u-boot-package: Add a u-boot argument and use gexps Maxim Cournoyer
` (6 preceding siblings ...)
2023-01-16 3:25 ` [bug#60224] [PATCH v5 08/13] gnu: make-u-boot-sunxi64-package: " Maxim Cournoyer
@ 2023-01-16 3:25 ` Maxim Cournoyer
2023-01-16 3:25 ` [bug#60224] [PATCH v5 10/13] gnu: u-boot-sifive-unmatched: Use gexps and remove inputs labels Maxim Cournoyer
` (4 subsequent siblings)
12 siblings, 0 replies; 53+ messages in thread
From: Maxim Cournoyer @ 2023-01-16 3:25 UTC (permalink / raw)
To: 60224; +Cc: rekado, Maxim Cournoyer, vagrant
* gnu/packages/bootloaders.scm (u-boot-rock64-rk3328)
[arguments]: Use gexps.
[native-inputs]: Remove input labels and use modify-inputs, and turn into...
[inputs]: ... this.
---
(no changes since v4)
Changes in v4:
- Make arm-trusted-firmware-rk3328 a regular input
gnu/packages/bootloaders.scm | 15 +++++++--------
1 file changed, 7 insertions(+), 8 deletions(-)
diff --git a/gnu/packages/bootloaders.scm b/gnu/packages/bootloaders.scm
index 53e6557ac7..64af453844 100644
--- a/gnu/packages/bootloaders.scm
+++ b/gnu/packages/bootloaders.scm
@@ -1136,14 +1136,13 @@ (define-public u-boot-rock64-rk3328
(arguments
(substitute-keyword-arguments (package-arguments base)
((#:phases phases)
- `(modify-phases ,phases
- (add-after 'unpack 'set-environment
- (lambda* (#:key inputs #:allow-other-keys)
- (let ((bl31 (search-input-file inputs "/bl31.elf")))
- (setenv "BL31" bl31))))))))
- (native-inputs
- `(("firmware" ,arm-trusted-firmware-rk3328)
- ,@(package-native-inputs base))))))
+ #~(modify-phases #$phases
+ (add-after 'unpack 'set-environment
+ (lambda* (#:key native-inputs inputs #:allow-other-keys)
+ (setenv "BL31 "(search-input-file inputs "bl31.elf"))))))))
+ (inputs
+ (modify-inputs (package-inputs base)
+ (append arm-trusted-firmware-rk3328))))))
(define-public u-boot-firefly-rk3399
(let ((base (make-u-boot-package "firefly-rk3399" "aarch64-linux-gnu")))
--
2.38.1
^ permalink raw reply related [flat|nested] 53+ messages in thread
* [bug#60224] [PATCH v5 10/13] gnu: u-boot-sifive-unmatched: Use gexps and remove inputs labels.
2023-01-16 3:25 ` [bug#60224] [PATCH v5 01/13] gnu: make-u-boot-package: Add a u-boot argument and use gexps Maxim Cournoyer
` (7 preceding siblings ...)
2023-01-16 3:25 ` [bug#60224] [PATCH v5 09/13] gnu: u-boot-rock64-rk3328: " Maxim Cournoyer
@ 2023-01-16 3:25 ` Maxim Cournoyer
2023-01-16 3:25 ` [bug#60224] [PATCH v5 11/13] gnu: u-boot-rockpro64-rk3399: Use gexps and fix build Maxim Cournoyer
` (3 subsequent siblings)
12 siblings, 0 replies; 53+ messages in thread
From: Maxim Cournoyer @ 2023-01-16 3:25 UTC (permalink / raw)
To: 60224; +Cc: rekado, Maxim Cournoyer, vagrant
* gnu/packages/bootloaders.scm (u-boot-sifive-unmatched)
[arguments]: Use gexps. Use search-input-file.
[inputs]: Remove labels. Use modify-inputs.
---
(no changes since v1)
gnu/packages/bootloaders.scm | 15 +++++++--------
1 file changed, 7 insertions(+), 8 deletions(-)
diff --git a/gnu/packages/bootloaders.scm b/gnu/packages/bootloaders.scm
index 64af453844..d9f9672f77 100644
--- a/gnu/packages/bootloaders.scm
+++ b/gnu/packages/bootloaders.scm
@@ -1119,15 +1119,14 @@ (define-public u-boot-sifive-unmatched
(arguments
(substitute-keyword-arguments (package-arguments base)
((#:phases phases)
- `(modify-phases ,phases
- (add-after 'unpack 'set-environment
- (lambda* (#:key inputs #:allow-other-keys)
- (let ((opensbi (string-append (assoc-ref inputs "firmware")
- "/fw_dynamic.bin")))
- (setenv "OPENSBI" opensbi))))))))
+ #~(modify-phases #$phases
+ (add-after 'unpack 'set-environment
+ (lambda* (#:key inputs #:allow-other-keys)
+ (setenv "OPENSBI" (search-input-file inputs
+ "fw_dynamic.bin"))))))))
(inputs
- `(("firmware" ,opensbi-generic)
- ,@(package-inputs base))))))
+ (modify-inputs (package-inputs base)
+ (append opensbi-generic))))))
(define-public u-boot-rock64-rk3328
(let ((base (make-u-boot-package "rock64-rk3328" "aarch64-linux-gnu")))
--
2.38.1
^ permalink raw reply related [flat|nested] 53+ messages in thread
* [bug#60224] [PATCH v5 11/13] gnu: u-boot-rockpro64-rk3399: Use gexps and fix build.
2023-01-16 3:25 ` [bug#60224] [PATCH v5 01/13] gnu: make-u-boot-package: Add a u-boot argument and use gexps Maxim Cournoyer
` (8 preceding siblings ...)
2023-01-16 3:25 ` [bug#60224] [PATCH v5 10/13] gnu: u-boot-sifive-unmatched: Use gexps and remove inputs labels Maxim Cournoyer
@ 2023-01-16 3:25 ` Maxim Cournoyer
2023-01-16 3:25 ` [bug#60224] [PATCH v5 12/13] gnu: make-arm-trusted-firmware: Simplify build Maxim Cournoyer
` (2 subsequent siblings)
12 siblings, 0 replies; 53+ messages in thread
From: Maxim Cournoyer @ 2023-01-16 3:25 UTC (permalink / raw)
To: 60224; +Cc: rekado, Maxim Cournoyer, vagrant
* gnu/packages/bootloaders.scm (u-boot-rockpro64-rk3399)
[phases]: Use gexps.
[native-inputs]: Use modify-inputs and turn into...
[inputs]: ... this.
---
(no changes since v4)
Changes in v4:
- Make the arm-trusted-firmware-rk3399 a regular input
gnu/packages/bootloaders.scm | 45 ++++++++++++++++++------------------
1 file changed, 22 insertions(+), 23 deletions(-)
diff --git a/gnu/packages/bootloaders.scm b/gnu/packages/bootloaders.scm
index d9f9672f77..9da97232ea 100644
--- a/gnu/packages/bootloaders.scm
+++ b/gnu/packages/bootloaders.scm
@@ -1176,37 +1176,36 @@ (define-public u-boot-rockpro64-rk3399
(arguments
(substitute-keyword-arguments (package-arguments base)
((#:phases phases)
- `(modify-phases ,phases
- (add-after 'unpack 'set-environment
- (lambda* (#:key inputs #:allow-other-keys)
- (setenv "BL31"
- (search-input-file inputs "/bl31.elf"))))
- (add-after 'unpack 'patch-header
- (lambda _
- (substitute* "include/config_distro_bootcmd.h"
- (("\"scsi_need_init=false")
- "\"setenv scsi_need_init false")
- (("#define BOOTENV_SET_SCSI_NEED_INIT \"scsi_need_init=;")
- "#define BOOTENV_SET_SCSI_NEED_INIT \"setenv scsi_need_init;"))
- (substitute* "include/configs/rockchip-common.h"
- (("#define BOOT_TARGET_DEVICES\\(func\\)")
- "
+ #~(modify-phases #$phases
+ (add-after 'unpack 'set-environment
+ (lambda* (#:key inputs #:allow-other-keys)
+ (setenv "BL31" (search-input-file inputs "/bl31.elf"))))
+ (add-after 'unpack 'patch-header
+ (lambda _
+ (substitute* "include/config_distro_bootcmd.h"
+ (("\"scsi_need_init=false")
+ "\"setenv scsi_need_init false")
+ (("#define BOOTENV_SET_SCSI_NEED_INIT \"scsi_need_init=;")
+ "#define BOOTENV_SET_SCSI_NEED_INIT \"setenv scsi_need_init;"))
+ (substitute* "include/configs/rockchip-common.h"
+ (("#define BOOT_TARGET_DEVICES\\(func\\)")
+ "
#if CONFIG_IS_ENABLED(CMD_SCSI)
#define BOOT_TARGET_SCSI(func) func(SCSI, scsi, 0)
#else
#define BOOT_TARGET_SCSI(func)
#endif
#define BOOT_TARGET_DEVICES(func)")
- (("BOOT_TARGET_NVME\\(func\\) \\\\")
- "\
+ (("BOOT_TARGET_NVME\\(func\\) \\\\")
+ "\
BOOT_TARGET_NVME(func) \\
BOOT_TARGET_SCSI(func) \\"))))
- ;; Phases do not succeed on the bl31 ELF.
- (delete 'strip)
- (delete 'validate-runpath)))))
- (native-inputs
- `(("firmware" ,arm-trusted-firmware-rk3399)
- ,@(package-native-inputs base))))))
+ ;; Phases do not succeed on the bl31 ELF.
+ (delete 'strip)
+ (delete 'validate-runpath)))))
+ (inputs
+ (modify-inputs (package-inputs base)
+ (append arm-trusted-firmware-rk3399))))))
(define-public u-boot-pinebook-pro-rk3399
(let ((base (make-u-boot-package "pinebook-pro-rk3399" "aarch64-linux-gnu")))
--
2.38.1
^ permalink raw reply related [flat|nested] 53+ messages in thread
* [bug#60224] [PATCH v5 12/13] gnu: make-arm-trusted-firmware: Simplify build.
2023-01-16 3:25 ` [bug#60224] [PATCH v5 01/13] gnu: make-u-boot-package: Add a u-boot argument and use gexps Maxim Cournoyer
` (9 preceding siblings ...)
2023-01-16 3:25 ` [bug#60224] [PATCH v5 11/13] gnu: u-boot-rockpro64-rk3399: Use gexps and fix build Maxim Cournoyer
@ 2023-01-16 3:25 ` Maxim Cournoyer
2023-01-16 3:25 ` [bug#60224] [PATCH v5 13/13] gnu: u-boot-puma-rk3399: Use gexps and fix build Maxim Cournoyer
2023-01-19 2:10 ` bug#60224: [PATCH 0/9] Improvements to our u-boot tooling Maxim Cournoyer
12 siblings, 0 replies; 53+ messages in thread
From: Maxim Cournoyer @ 2023-01-16 3:25 UTC (permalink / raw)
To: 60224; +Cc: rekado, Maxim Cournoyer, vagrant
Reuse knowledge from recent U-Boot modifications to streamline the package
definition.
* gnu/packages/firmware.scm (make-arm-trusted-firmware): Change optional
argument ARCH to keyword TRIPLET. Default to aarch64-linux-gnu.
[arguments]: Use gexps. Add a #:target argument. Streamline how the
CROSS_COMPILE make flag is computed.
[native-inputs]: Delete field.
---
(no changes since v4)
Changes in v4:
- New commit
gnu/packages/firmware.scm | 116 +++++++++++++++++---------------------
1 file changed, 52 insertions(+), 64 deletions(-)
diff --git a/gnu/packages/firmware.scm b/gnu/packages/firmware.scm
index b6ee4c0565..029e84d5c2 100644
--- a/gnu/packages/firmware.scm
+++ b/gnu/packages/firmware.scm
@@ -8,7 +8,7 @@
;;; Copyright © 2019 Mathieu Othacehe <m.othacehe@gmail.com>
;;; Copyright © 2020, 2021, 2022 Marius Bakke <marius@gnu.org>
;;; Copyright © 2021 Petr Hodina <phodina@protonmail.com>
-;;; Copyright © 2022 Maxim Cournoyer <maxim.cournoyer@gmail.com>
+;;; Copyright © 2022, 2023 Maxim Cournoyer <maxim.cournoyer@gmail.com>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -944,70 +944,58 @@ (define-public ovmf-arm
(string-append fmw "/ovmf_arm.bin")))))))))
(supported-systems %supported-systems)))
-(define* (make-arm-trusted-firmware platform #:optional (arch "aarch64"))
- (package
- (name (string-append "arm-trusted-firmware-" platform))
- (version "2.8")
- (source
- (origin
- (method git-fetch)
- (uri (git-reference
+(define* (make-arm-trusted-firmware platform
+ #:key (triplet "aarch64-linux-gnu"))
+ (let ((native-build? (lambda ()
+ ;; Note: %current-system is a *triplet*, unlike its
+ ;; name would suggest.
+ (or (not triplet) ;disable cross-compilation
+ (string=? (%current-system)
+ (gnu-triplet->nix-system triplet))))))
+ (package
+ (name (string-append "arm-trusted-firmware-" platform))
+ (version "2.8")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
;; There are only GitHub generated release snapshots.
(url "https://git.trustedfirmware.org/TF-A/trusted-firmware-a.git/")
(commit (string-append "v" version))))
- (file-name (git-file-name "arm-trusted-firmware" version))
- (sha256
- (base32
- "0grq3fgxi9xhcljnhwlxjvdghyz15gaq50raw41xy4lm8rkmnzp3"))
- (snippet
- #~(begin
- (use-modules (guix build utils))
- ;; Remove binary blobs which do not contain source or proper license.
- (for-each (lambda (file)
- (delete-file file))
- (find-files "." "\\.bin$"))))))
- (build-system gnu-build-system)
- (arguments
- `(#:phases
- (modify-phases %standard-phases
- (delete 'configure) ; no configure script
- (replace 'install
- (lambda* (#:key outputs #:allow-other-keys)
- (let ((out (assoc-ref outputs "out"))
- (bin (find-files "." "\\.(bin|elf)$")))
- (for-each
- (lambda (file)
- (install-file file out))
- bin)))))
- #:make-flags (list (string-append "PLAT=" ,platform)
- ,@(if (and (not (string-prefix? "aarch64"
- (%current-system)))
- (string-prefix? "aarch64" arch))
- `("CROSS_COMPILE=aarch64-linux-gnu-")
- '())
- ,@(if (and (not (string-prefix? "armhf"
- (%current-system)))
- (string-prefix? "armhf" arch))
- `("CROSS_COMPILE=arm-linux-gnueabihf-")
- '())
- "DEBUG=1")
- #:tests? #f)) ; no tests
- (native-inputs
- (let ((system (%current-system)))
- (cond
- ((and (not (string-prefix? "aarch64" system))
- (string-prefix? "aarch64" arch))
- (list (cross-gcc "aarch64-linux-gnu")
- (cross-binutils "aarch64-linux-gnu")))
- ((and (not (string-prefix? "armhf" system))
- (string-prefix? "armhf" arch))
- (list (cross-gcc "arm-linux-gnueabihf")
- (cross-binutils "arm-linux-gnueabihf")))
- (else '()))))
- (home-page "https://www.trustedfirmware.org/")
- (synopsis "Implementation of \"secure world software\"")
- (description
- "ARM Trusted Firmware provides a reference implementation of secure world
+ (file-name (git-file-name "arm-trusted-firmware" version))
+ (sha256
+ (base32
+ "0grq3fgxi9xhcljnhwlxjvdghyz15gaq50raw41xy4lm8rkmnzp3"))
+ (snippet
+ #~(begin
+ (use-modules (guix build utils))
+ ;; Remove binary blobs which do not contain source or proper
+ ;; license.
+ (for-each (lambda (file)
+ (delete-file file))
+ (find-files "." "\\.bin$"))))))
+ (build-system gnu-build-system)
+ (arguments
+ (list
+ #:target (and (not (native-build?)) triplet)
+ #:phases
+ #~(modify-phases %standard-phases
+ (delete 'configure) ;no configure script
+ (replace 'install
+ (lambda _
+ (for-each (lambda (file)
+ (install-file file #$output))
+ (find-files "." "\\.(bin|elf)$")))))
+ #:make-flags #~(list (string-append "PLAT=" #$platform)
+ #$@(if (not (native-build?))
+ (list (string-append "CROSS_COMPILE=" triplet "-"))
+ '())
+ "DEBUG=1")
+ #:tests? #f)) ;no test suite
+ (home-page "https://www.trustedfirmware.org/")
+ (synopsis "Implementation of \"secure world software\"")
+ (description
+ "ARM Trusted Firmware provides a reference implementation of secure world
software for ARMv7A and ARMv8-A, including a Secure Monitor executing at
@dfn{Exception Level 3} (EL3). It implements various ARM interface standards,
such as:
@@ -1018,8 +1006,8 @@ (define* (make-arm-trusted-firmware platform #:optional (arch "aarch64"))
@item System Control and Management Interface
@item Software Delegated Exception Interface (SDEI)
@end enumerate\n")
- (license (list license:bsd-3
- license:bsd-2)))) ; libfdt
+ (license (list license:bsd-3
+ license:bsd-2))))) ; libfdt
(define-public arm-trusted-firmware-sun50i-a64
(let ((base (make-arm-trusted-firmware "sun50i_a64")))
--
2.38.1
^ permalink raw reply related [flat|nested] 53+ messages in thread
* [bug#60224] [PATCH v5 13/13] gnu: u-boot-puma-rk3399: Use gexps and fix build.
2023-01-16 3:25 ` [bug#60224] [PATCH v5 01/13] gnu: make-u-boot-package: Add a u-boot argument and use gexps Maxim Cournoyer
` (10 preceding siblings ...)
2023-01-16 3:25 ` [bug#60224] [PATCH v5 12/13] gnu: make-arm-trusted-firmware: Simplify build Maxim Cournoyer
@ 2023-01-16 3:25 ` Maxim Cournoyer
2023-01-19 2:10 ` bug#60224: [PATCH 0/9] Improvements to our u-boot tooling Maxim Cournoyer
12 siblings, 0 replies; 53+ messages in thread
From: Maxim Cournoyer @ 2023-01-16 3:25 UTC (permalink / raw)
To: 60224; +Cc: rekado, Maxim Cournoyer, vagrant
* gnu/packages/bootloaders.scm (u-boot-puma-rk3399)
[arguments]: Use gexps.
[native-inputs]: Turn into...
[inputs]: ... this, and use modify-inputs.
---
(no changes since v4)
Changes in v4:
- New commit
gnu/packages/bootloaders.scm | 21 ++++++++++-----------
1 file changed, 10 insertions(+), 11 deletions(-)
diff --git a/gnu/packages/bootloaders.scm b/gnu/packages/bootloaders.scm
index 9da97232ea..4cf6a74022 100644
--- a/gnu/packages/bootloaders.scm
+++ b/gnu/packages/bootloaders.scm
@@ -1091,17 +1091,16 @@ (define-public u-boot-puma-rk3399
(arguments
(substitute-keyword-arguments (package-arguments base)
((#:phases phases)
- `(modify-phases ,phases
- (add-after 'unpack 'set-environment
- (lambda* (#:key inputs #:allow-other-keys)
- (setenv "BL31"
- (search-input-file inputs "/bl31.elf"))))
- ;; Phases do not succeed on the bl31 ELF.
- (delete 'strip)
- (delete 'validate-runpath)))))
- (native-inputs
- `(("firmware" ,arm-trusted-firmware-rk3399)
- ,@(package-native-inputs base))))))
+ #~(modify-phases #$phases
+ (add-after 'unpack 'set-environment
+ (lambda* (#:key inputs #:allow-other-keys)
+ (setenv "BL31" (search-input-file inputs "/bl31.elf"))))
+ ;; Phases do not succeed on the bl31 ELF.
+ (delete 'strip)
+ (delete 'validate-runpath)))))
+ (inputs
+ (modify-inputs (package-native-inputs base)
+ (append arm-trusted-firmware-rk3399))))))
(define-public u-boot-qemu-riscv64
(make-u-boot-package "qemu-riscv64" "riscv64-linux-gnu"))
--
2.38.1
^ permalink raw reply related [flat|nested] 53+ messages in thread
* bug#60224: [PATCH 0/9] Improvements to our u-boot tooling
2023-01-16 3:25 ` [bug#60224] [PATCH v5 01/13] gnu: make-u-boot-package: Add a u-boot argument and use gexps Maxim Cournoyer
` (11 preceding siblings ...)
2023-01-16 3:25 ` [bug#60224] [PATCH v5 13/13] gnu: u-boot-puma-rk3399: Use gexps and fix build Maxim Cournoyer
@ 2023-01-19 2:10 ` Maxim Cournoyer
12 siblings, 0 replies; 53+ messages in thread
From: Maxim Cournoyer @ 2023-01-19 2:10 UTC (permalink / raw)
To: 60224-done; +Cc: rekado, vagrant
Hi,
Maxim Cournoyer <maxim.cournoyer@gmail.com> writes:
> And have that u-boot argument used as the complete base of the template, so
> that a user can override it.
>
> * gnu/packages/bootloaders.scm (make-u-boot-package): New U-BOOT argument.
> Document it.
> [native-inputs]: Move the native-inputs of U-BOOT first, so that the
> cross compilation tools can be overridden via U-BOOT.
> [arguments]: Rewrite using substitute-keyword-arguments, extending rather than
> overriding most arguments. Use gexps. Do not bind OUTPUTS.
As suggested by Vagrant on #guix, I've checked some outputs md5 sums
matched with the new build style (they did!) and pushed.
Thanks for the reviews!
--
Thanks,
Maxim
^ permalink raw reply [flat|nested] 53+ messages in thread
end of thread, other threads:[~2023-01-19 2:11 UTC | newest]
Thread overview: 53+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2022-12-20 16:50 [bug#60224] [PATCH 0/9] Improvements to our u-boot tooling Maxim Cournoyer
2022-12-20 18:34 ` [bug#60224] [PATCH 1/9] gnu: make-u-boot-package: Add a u-boot argument and use gexps Maxim Cournoyer
2022-12-20 18:34 ` [bug#60224] [PATCH 2/9] gnu: make-u-boot-package: Install .imx files Maxim Cournoyer
2022-12-20 18:34 ` [bug#60224] [PATCH 3/9] gnu: make-uboot-package: Simplify build Maxim Cournoyer
2022-12-20 18:34 ` [bug#60224] [PATCH 4/9] gnu: u-boot-pinebook-pro-rk3399: Remove input labels and use gexps Maxim Cournoyer
2022-12-20 18:34 ` [bug#60224] [PATCH 5/9] gnu: u-boot-firefly-rk3399: Use gexps and fix cross-build Maxim Cournoyer
2022-12-20 18:34 ` [bug#60224] [PATCH 6/9] gnu: make-u-boot-sunxi64-package: Use gexps and adjust file name Maxim Cournoyer
2022-12-20 18:34 ` [bug#60224] [PATCH 7/9] gnu: u-boot-rock64-rk3328: Fix build Maxim Cournoyer
2022-12-20 18:34 ` [bug#60224] [PATCH 8/9] gnu: u-boot-sifive-unmatched: Use gexps and remove inputs Maxim Cournoyer
2022-12-20 18:34 ` [bug#60224] [PATCH 9/9] gnu: u-boot-puma-rk3399: Use make-u-boot-sunxi64-package Maxim Cournoyer
2022-12-29 19:18 ` [bug#60224] [PATCH 0/9] Improvements to our u-boot tooling Ricardo Wurmus
2023-01-02 0:27 ` Maxim Cournoyer
2023-01-02 0:46 ` [bug#60224] [PATCH v3 01/11] gnu: make-u-boot-package: Add a u-boot argument and use gexps Maxim Cournoyer
2023-01-02 0:46 ` [bug#60224] [PATCH v3 02/11] gnu: make-u-boot-package: Install .imx files Maxim Cournoyer
2023-01-02 0:46 ` [bug#60224] [PATCH v3 03/11] gnu: make-uboot-package: Simplify build Maxim Cournoyer
2023-01-02 0:46 ` [bug#60224] [PATCH v3 04/11] gnu: make-u-boot-package: Allow disabling cross-compilation Maxim Cournoyer
2023-01-02 0:46 ` [bug#60224] [PATCH v3 05/11] gnu: u-boot-pinebook-pro-rk3399: Remove input labels and use gexps Maxim Cournoyer
2023-01-02 0:46 ` [bug#60224] [PATCH v3 06/11] gnu: u-boot-firefly-rk3399: Use gexps and fix cross-build Maxim Cournoyer
2023-01-02 0:46 ` [bug#60224] [PATCH v3 07/11] gnu: make-u-boot-sunxi64-package: Use gexps and adjust file name Maxim Cournoyer
2023-01-06 17:17 ` Vagrant Cascadian
2023-01-11 19:55 ` Maxim Cournoyer
2023-01-02 0:46 ` [bug#60224] [PATCH v3 08/11] gnu: u-boot-rock64-rk3328: Fix build Maxim Cournoyer
2023-01-02 0:46 ` [bug#60224] [PATCH v3 09/11] gnu: u-boot-sifive-unmatched: Use gexps and remove inputs Maxim Cournoyer
2023-01-02 0:46 ` [bug#60224] [PATCH v3 10/11] gnu: u-boot-puma-rk3399: Use make-u-boot-sunxi64-package Maxim Cournoyer
2023-01-06 17:09 ` Vagrant Cascadian
2023-01-02 0:46 ` [bug#60224] [PATCH v3 11/11] gnu: u-boot-rockpro64-rk3399: Fix build Maxim Cournoyer
2023-01-11 20:44 ` [bug#60224] [PATCH v4 01/12] gnu: make-u-boot-package: Add a u-boot argument and use gexps Maxim Cournoyer
2023-01-11 20:44 ` [bug#60224] [PATCH v4 02/12] gnu: make-u-boot-package: Install .imx files Maxim Cournoyer
2023-01-11 20:44 ` [bug#60224] [PATCH v4 03/12] gnu: make-uboot-package: Simplify build Maxim Cournoyer
2023-01-11 20:44 ` [bug#60224] [PATCH v4 04/12] gnu: make-u-boot-package: Allow disabling cross-compilation Maxim Cournoyer
2023-01-11 20:44 ` [bug#60224] [PATCH v4 05/12] gnu: u-boot-pinebook-pro-rk3399: Remove input labels and use gexps Maxim Cournoyer
2023-01-11 20:44 ` [bug#60224] [PATCH v4 06/12] gnu: u-boot-firefly-rk3399: Use gexps and fix cross-build Maxim Cournoyer
2023-01-11 20:44 ` [bug#60224] [PATCH v4 07/12] gnu: make-u-boot-sunxi64-package: Use gexps and adjust file name Maxim Cournoyer
2023-01-12 22:12 ` Vagrant Cascadian
2023-01-11 20:44 ` [bug#60224] [PATCH v4 08/12] gnu: u-boot-rock64-rk3328: Fix build Maxim Cournoyer
2023-01-11 20:44 ` [bug#60224] [PATCH v4 09/12] gnu: u-boot-sifive-unmatched: Use gexps and remove inputs Maxim Cournoyer
2023-01-11 20:44 ` [bug#60224] [PATCH v4 10/12] gnu: u-boot-rockpro64-rk3399: Fix build Maxim Cournoyer
2023-01-11 20:44 ` [bug#60224] [PATCH v4 11/12] gnu: make-arm-trusted-firmware: Simplify build Maxim Cournoyer
2023-01-11 20:44 ` [bug#60224] [PATCH v4 12/12] gnu: u-boot-puma-rk3399: Fix build Maxim Cournoyer
2023-01-16 3:25 ` [bug#60224] [PATCH v5 01/13] gnu: make-u-boot-package: Add a u-boot argument and use gexps Maxim Cournoyer
2023-01-16 3:25 ` [bug#60224] [PATCH v5 02/13] gnu: make-u-boot-package: Install .imx files Maxim Cournoyer
2023-01-16 3:25 ` [bug#60224] [PATCH v5 03/13] gnu: u-boot: Reduce the number of native inputs Maxim Cournoyer
2023-01-16 3:25 ` [bug#60224] [PATCH v5 04/13] gnu: make-uboot-package: Simplify build Maxim Cournoyer
2023-01-16 3:25 ` [bug#60224] [PATCH v5 05/13] gnu: make-u-boot-package: Allow disabling cross-compilation Maxim Cournoyer
2023-01-16 3:25 ` [bug#60224] [PATCH v5 06/13] gnu: u-boot-pinebook-pro-rk3399: Remove input labels and use gexps Maxim Cournoyer
2023-01-16 3:25 ` [bug#60224] [PATCH v5 07/13] gnu: u-boot-firefly-rk3399: Use gexps and fix build Maxim Cournoyer
2023-01-16 3:25 ` [bug#60224] [PATCH v5 08/13] gnu: make-u-boot-sunxi64-package: " Maxim Cournoyer
2023-01-16 3:25 ` [bug#60224] [PATCH v5 09/13] gnu: u-boot-rock64-rk3328: " Maxim Cournoyer
2023-01-16 3:25 ` [bug#60224] [PATCH v5 10/13] gnu: u-boot-sifive-unmatched: Use gexps and remove inputs labels Maxim Cournoyer
2023-01-16 3:25 ` [bug#60224] [PATCH v5 11/13] gnu: u-boot-rockpro64-rk3399: Use gexps and fix build Maxim Cournoyer
2023-01-16 3:25 ` [bug#60224] [PATCH v5 12/13] gnu: make-arm-trusted-firmware: Simplify build Maxim Cournoyer
2023-01-16 3:25 ` [bug#60224] [PATCH v5 13/13] gnu: u-boot-puma-rk3399: Use gexps and fix build Maxim Cournoyer
2023-01-19 2:10 ` bug#60224: [PATCH 0/9] Improvements to our u-boot tooling Maxim Cournoyer
Code repositories for project(s) associated with this public inbox
https://git.savannah.gnu.org/cgit/guix.git
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).