* [bug#70913] [PATCH 01/11] gnu: edk2-tools: Update to 202402.
2024-05-13 8:19 [bug#70913] [PATCH 00/11] Combine edk2-tools and ovmf firmware Efraim Flashner
@ 2024-05-13 8:21 ` Efraim Flashner
2024-05-13 8:21 ` [bug#70913] [PATCH 02/11] gnu: edk2-tools: Enable submodules Efraim Flashner
` (10 subsequent siblings)
11 siblings, 0 replies; 13+ messages in thread
From: Efraim Flashner @ 2024-05-13 8:21 UTC (permalink / raw)
To: 70913; +Cc: Efraim Flashner, Efraim Flashner, Vagrant Cascadian
* gnu/packages/firmware.scm (edk2-tools): Update to 202402.
Change-Id: I3ab7d75a8193faea2b3b3649f9b14bba48611187
---
gnu/packages/firmware.scm | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/gnu/packages/firmware.scm b/gnu/packages/firmware.scm
index 6f0c2da806..62753e3769 100644
--- a/gnu/packages/firmware.scm
+++ b/gnu/packages/firmware.scm
@@ -2,7 +2,7 @@
;;; Copyright © 2014, 2015, 2016 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2016 Eric Bavier <bavier@member.fsf.org>
;;; Copyright © 2017 David Craven <david@craven.ch>
-;;; Copyright © 2017, 2018, 2022, 2023 Efraim Flashner <efraim@flashner.co.il>
+;;; Copyright © 2017, 2018, 2022-2024 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2018, 2020 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2018 Vagrant Cascadian <vagrant@debian.org>
;;; Copyright © 2019 Mathieu Othacehe <m.othacehe@gmail.com>
@@ -814,7 +814,7 @@ (define-public sgabios
(define-public edk2-tools
(package
(name "edk2-tools")
- (version "202308")
+ (version "202402")
(source (origin
(method git-fetch)
(uri (git-reference
@@ -823,7 +823,7 @@ (define-public edk2-tools
(file-name (git-file-name name version))
(sha256
(base32
- "19g3g94hayvcwmn6sjs6mghq0qf5nsd785k5j8szcrj2p0vjh54f"))))
+ "1x0h89cz3ihihcp4n93bw708q9r3icprb8cjsrrfcgq10clavdzx"))))
(build-system gnu-build-system)
(arguments
(list #:make-flags
--
Efraim Flashner <efraim@flashner.co.il> רנשלפ םירפא
GPG key = A28B F40C 3E55 1372 662D 14F7 41AA E7DC CA3D 8351
Confidentiality cannot be guaranteed on emails sent or received unencrypted
^ permalink raw reply related [flat|nested] 13+ messages in thread
* [bug#70913] [PATCH 02/11] gnu: edk2-tools: Enable submodules.
2024-05-13 8:19 [bug#70913] [PATCH 00/11] Combine edk2-tools and ovmf firmware Efraim Flashner
2024-05-13 8:21 ` [bug#70913] [PATCH 01/11] gnu: edk2-tools: Update to 202402 Efraim Flashner
@ 2024-05-13 8:21 ` Efraim Flashner
2024-05-13 8:21 ` [bug#70913] [PATCH 03/11] gnu: Add ovmf-x86-64 Efraim Flashner
` (9 subsequent siblings)
11 siblings, 0 replies; 13+ messages in thread
From: Efraim Flashner @ 2024-05-13 8:21 UTC (permalink / raw)
To: 70913; +Cc: Efraim Flashner, Efraim Flashner, Vagrant Cascadian
* gnu/packages/firmware.scm (edk2-tools)[source]: Checkout submodules.
[arguments]: Don't disable building brotli or xz compression.
Change-Id: I8b318373e38767e1a309e9e385f1626429bfbb20
---
gnu/packages/firmware.scm | 15 ++++-----------
1 file changed, 4 insertions(+), 11 deletions(-)
diff --git a/gnu/packages/firmware.scm b/gnu/packages/firmware.scm
index 62753e3769..f3bb51bcb1 100644
--- a/gnu/packages/firmware.scm
+++ b/gnu/packages/firmware.scm
@@ -819,11 +819,13 @@ (define-public edk2-tools
(method git-fetch)
(uri (git-reference
(url "https://github.com/tianocore/edk2")
- (commit (string-append "edk2-stable" version))))
+ (commit (string-append "edk2-stable" version))
+ ;; EDK2 makes extensive use of submodules.
+ (recursive? #t)))
(file-name (git-file-name name version))
(sha256
(base32
- "1x0h89cz3ihihcp4n93bw708q9r3icprb8cjsrrfcgq10clavdzx"))))
+ "0y7jfpijgi099znhzjklnsczn0k0vm1d1qznq9x2a2sa0glydsin"))))
(build-system gnu-build-system)
(arguments
(list #:make-flags
@@ -835,15 +837,6 @@ (define-public edk2-tools
(add-after 'unpack 'change-directory
(lambda _
(chdir "BaseTools")))
- (add-after 'change-directory 'disable-some-tools
- (lambda _
- ;; Disable building brotli and xz, since we package them
- ;; separately, and it would require fetching submodules.
- (substitute* "Source/C/GNUmakefile"
- (("^[[:blank:]]+BrotliCompress[[:blank:]]+\\\\")
- "\\")
- (("^[[:blank:]]+LzmaCompress[[:blank:]]+\\\\")
- "\\"))))
(replace 'build
(lambda* (#:key (make-flags #~'()) #:allow-other-keys)
;; The default build target also runs tests.
--
Efraim Flashner <efraim@flashner.co.il> רנשלפ םירפא
GPG key = A28B F40C 3E55 1372 662D 14F7 41AA E7DC CA3D 8351
Confidentiality cannot be guaranteed on emails sent or received unencrypted
^ permalink raw reply related [flat|nested] 13+ messages in thread
* [bug#70913] [PATCH 03/11] gnu: Add ovmf-x86-64.
2024-05-13 8:19 [bug#70913] [PATCH 00/11] Combine edk2-tools and ovmf firmware Efraim Flashner
2024-05-13 8:21 ` [bug#70913] [PATCH 01/11] gnu: edk2-tools: Update to 202402 Efraim Flashner
2024-05-13 8:21 ` [bug#70913] [PATCH 02/11] gnu: edk2-tools: Enable submodules Efraim Flashner
@ 2024-05-13 8:21 ` Efraim Flashner
2024-05-13 8:21 ` [bug#70913] [PATCH 04/11] gnu: Add ovmf-i686 Efraim Flashner
` (8 subsequent siblings)
11 siblings, 0 replies; 13+ messages in thread
From: Efraim Flashner @ 2024-05-13 8:21 UTC (permalink / raw)
To: 70913; +Cc: Efraim Flashner, Efraim Flashner, Vagrant Cascadian
* gnu/packages/firmware.scm (make-ovmf-firmware): New procedure.
(ovmf-x86-64): New variable.
Change-Id: I283065577b5507f3b7d695eaa67a6d248174bcf5
---
gnu/packages/firmware.scm | 133 ++++++++++++++++++++++++++++++++++++++
1 file changed, 133 insertions(+)
diff --git a/gnu/packages/firmware.scm b/gnu/packages/firmware.scm
index f3bb51bcb1..40ca541437 100644
--- a/gnu/packages/firmware.scm
+++ b/gnu/packages/firmware.scm
@@ -869,6 +869,139 @@ (define-public edk2-tools
@end itemize")
(license license:bsd-2)))
+(define* (make-ovmf-firmware arch)
+ (let ((toolchain "GCC")
+ (arch-string (match arch
+ ("x86_64" "X64")
+ ("i686" "IA32")
+ ("aarch64" "AARCH64")
+ ("armhf" "ARM")
+ ("riscv64" "RISCV64")
+ ("loongarch64" "LOONGARCH64")
+ (_ "NONE"))))
+ (package
+ (inherit edk2-tools)
+ (name (string-append "ovmf-" arch))
+ (arguments
+ (list
+ #:tests? #f ; No check target.
+ #:target #f ; Package produces firmware.
+ #:modules '((guix build gnu-build-system)
+ (guix build utils)
+ (ice-9 match))
+ #:phases
+ #~(modify-phases %standard-phases
+ (add-after 'unpack 'patch-source
+ (lambda _
+ (substitute* "edksetup.sh"
+ (("^return \\$\\?")
+ "exit $?"))))
+ (add-before 'configure 'set-env
+ (lambda _
+ (unless (string-prefix? #$arch #$(%current-system))
+ (setenv (string-append #$toolchain "_X64_PREFIX")
+ "x86_64-linux-gnu-")
+ (setenv (string-append #$toolchain "_IA32_PREFIX")
+ "i686-linux-gnu-")
+ (setenv (string-append #$toolchain "_AARCH64_PREFIX")
+ "aarch64-linux-gnu-")
+ (setenv (string-append #$toolchain "_ARM_PREFIX")
+ "arm-linux-gnueabihf-")
+ (setenv (string-append #$toolchain "_RISCV64_PREFIX")
+ "riscv64-linux-gnu-")
+ (setenv (string-append #$toolchain "_LOONGARCH64_PREFIX")
+ "loongarch64-linux-gnu-"))))
+ (replace 'configure
+ (lambda _
+ (let* ((cwd (getcwd))
+ (tools (string-append cwd "/BaseTools"))
+ (bin (string-append tools "/BinWrappers/PosixLike")))
+ (setenv "WORKSPACE" cwd)
+ (setenv "EDK_TOOLS_PATH" tools)
+ (setenv "PYTHON3_ENABLE" "TRUE")
+ (setenv "PYTHON_COMMAND" "python3")
+ (setenv "PATH" (string-append (getenv "PATH") ":" bin))
+ (invoke "bash" "edksetup.sh")
+ (substitute* "Conf/target.txt"
+ (("^TARGET[ ]*=.*$") "TARGET = RELEASE\n")
+ (("^TOOL_CHAIN_TAG[ ]*=.*$")
+ (string-append "TOOL_CHAIN_TAG = " #$toolchain "\n"))
+ (("^TARGET_ARCH[ ]*=.*$")
+ (string-append "TARGET_ARCH = " #$arch-string
+ "\n"))
+ (("^MAX_CONCURRENT_THREAD_NUMBER[ ]*=.*$")
+ (format #f "MAX_CONCURRENT_THREAD_NUMBER = ~a~%"
+ (number->string (parallel-job-count)))))
+ ;; Build build support.
+ (setenv "CC" "gcc")
+ (invoke "make" "-C" tools))))
+ (replace 'build
+ (lambda _
+ (invoke "build" "-a" #$arch-string "-t" #$toolchain "-p"
+ (match #$arch
+ ("x86_64"
+ "OvmfPkg/OvmfPkgX64.dsc")
+ ("i686"
+ "OvmfPkg/OvmfPkgIa32.dsc")
+ ((or "aarch64" "armhf")
+ "ArmVirtPkg/ArmVirtQemu.dsc")
+ ("riscv64"
+ "OvmfPkg/RiscVVirt/RiscVVirtQemu.dsc")
+ (_ #t)))))
+ (add-before 'install 'install-efi-shell
+ (lambda _
+ (let ((fmw (string-append #$output "/share/firmware")))
+ (mkdir-p fmw)
+ (for-each
+ (lambda (file)
+ (copy-file file
+ (string-append fmw "/Shell_"
+ (string-downcase #$arch-string)
+ ".efi")))
+ (find-files "Build" "Shell\\.efi"))))))))
+ (native-inputs
+ (append
+ (list acpica
+ nasm
+ perl
+ python-3
+ (list util-linux "lib"))
+ (if (not (string-prefix? arch (%current-system)))
+ (if (string=? arch "armhf")
+ (list (cross-gcc "arm-linux-gnueabihf")
+ (cross-binutils "arm-linux-gnueabihf"))
+ (list (cross-gcc (string-append arch "-linux-gnu"))
+ (cross-binutils (string-append arch "-linux-gnu"))))
+ '())))
+ (synopsis "UEFI firmware for QEMU")
+ (description "OVMF is an EDK II based project to enable UEFI support for
+Virtual Machines. OVMF contains a sample UEFI firmware for QEMU and KVM.")
+ (license (list license:expat
+ license:bsd-2 license:bsd-3 license:bsd-4)))))
+
+(define-public ovmf-x86-64
+ (let ((base (make-ovmf-firmware "x86_64")))
+ (package
+ (inherit base)
+ (name "ovmf-x86-64")
+ (arguments
+ (substitute-keyword-arguments (package-arguments base)
+ ((#:phases phases)
+ #~(modify-phases #$phases
+ (replace 'install
+ (lambda _
+ (let ((fmw (string-append #$output "/share/firmware")))
+ (mkdir-p fmw)
+ (for-each
+ (lambda (file)
+ (copy-file
+ (string-append "Build/OvmfX64/RELEASE_GCC"
+ "/FV/" file ".fd")
+ (string-append fmw "/" (string-downcase file) "_x64.bin")))
+ (list "OVMF"
+ "OVMF_CODE"
+ "OVMF_VARS"))))))))))))
+
(define-public ovmf
(let ((toolchain-ver "GCC5"))
(package
--
Efraim Flashner <efraim@flashner.co.il> רנשלפ םירפא
GPG key = A28B F40C 3E55 1372 662D 14F7 41AA E7DC CA3D 8351
Confidentiality cannot be guaranteed on emails sent or received unencrypted
^ permalink raw reply related [flat|nested] 13+ messages in thread
* [bug#70913] [PATCH 04/11] gnu: Add ovmf-i686.
2024-05-13 8:19 [bug#70913] [PATCH 00/11] Combine edk2-tools and ovmf firmware Efraim Flashner
` (2 preceding siblings ...)
2024-05-13 8:21 ` [bug#70913] [PATCH 03/11] gnu: Add ovmf-x86-64 Efraim Flashner
@ 2024-05-13 8:21 ` Efraim Flashner
2024-05-13 8:21 ` [bug#70913] [PATCH 05/11] gnu: ovmf-aarch64: Update to 202402 Efraim Flashner
` (7 subsequent siblings)
11 siblings, 0 replies; 13+ messages in thread
From: Efraim Flashner @ 2024-05-13 8:21 UTC (permalink / raw)
To: 70913; +Cc: Efraim Flashner, Efraim Flashner, Vagrant Cascadian
* gnu/packages/firmware.scm (ovmf-i686): New variable.
Change-Id: Ie5702435695e24ed1d2731152a89b0aeb9a050dd
---
gnu/packages/firmware.scm | 22 ++++++++++++++++++++++
1 file changed, 22 insertions(+)
diff --git a/gnu/packages/firmware.scm b/gnu/packages/firmware.scm
index 40ca541437..ab39f8d0d2 100644
--- a/gnu/packages/firmware.scm
+++ b/gnu/packages/firmware.scm
@@ -1002,6 +1002,28 @@ (define-public ovmf-x86-64
"OVMF_CODE"
"OVMF_VARS"))))))))))))
+(define-public ovmf-i686
+ (let ((base (make-ovmf-firmware "i686")))
+ (package
+ (inherit base)
+ (arguments
+ (substitute-keyword-arguments (package-arguments base)
+ ((#:phases phases)
+ #~(modify-phases #$phases
+ (replace 'install
+ (lambda _
+ (let ((fmw (string-append #$output "/share/firmware")))
+ (mkdir-p fmw)
+ (for-each
+ (lambda (file)
+ (copy-file
+ (string-append "Build/OvmfIa32/RELEASE_GCC"
+ "/FV/" file ".fd")
+ (string-append fmw "/" (string-downcase file) "_ia32.bin")))
+ (list "OVMF"
+ "OVMF_CODE"
+ "OVMF_VARS"))))))))))))
+
(define-public ovmf
(let ((toolchain-ver "GCC5"))
(package
--
Efraim Flashner <efraim@flashner.co.il> רנשלפ םירפא
GPG key = A28B F40C 3E55 1372 662D 14F7 41AA E7DC CA3D 8351
Confidentiality cannot be guaranteed on emails sent or received unencrypted
^ permalink raw reply related [flat|nested] 13+ messages in thread
* [bug#70913] [PATCH 05/11] gnu: ovmf-aarch64: Update to 202402.
2024-05-13 8:19 [bug#70913] [PATCH 00/11] Combine edk2-tools and ovmf firmware Efraim Flashner
` (3 preceding siblings ...)
2024-05-13 8:21 ` [bug#70913] [PATCH 04/11] gnu: Add ovmf-i686 Efraim Flashner
@ 2024-05-13 8:21 ` Efraim Flashner
2024-05-13 8:21 ` [bug#70913] [PATCH 06/11] gnu: ovmf-arm: " Efraim Flashner
` (6 subsequent siblings)
11 siblings, 0 replies; 13+ messages in thread
From: Efraim Flashner @ 2024-05-13 8:21 UTC (permalink / raw)
To: 70913; +Cc: Efraim Flashner, Efraim Flashner, Vagrant Cascadian
* gnu/packages/firmware.scm (ovmf-aarch64): Update to 202402. Build
using make-ovmf-firmware.
Change-Id: I270bd8fa79f2df3d73bdf8d5685d27a3cc0cef6a
---
gnu/packages/firmware.scm | 51 ++++++++++++---------------------------
1 file changed, 16 insertions(+), 35 deletions(-)
diff --git a/gnu/packages/firmware.scm b/gnu/packages/firmware.scm
index ab39f8d0d2..ae11c82d1a 100644
--- a/gnu/packages/firmware.scm
+++ b/gnu/packages/firmware.scm
@@ -1024,6 +1024,22 @@ (define-public ovmf-i686
"OVMF_CODE"
"OVMF_VARS"))))))))))))
+(define-public ovmf-aarch64
+ (let ((base (make-ovmf-firmware "aarch64")))
+ (package
+ (inherit base)
+ (arguments
+ (substitute-keyword-arguments (package-arguments base)
+ ((#:phases phases)
+ #~(modify-phases #$phases
+ (replace 'install
+ (lambda _
+ (let ((fmw (string-append #$output "/share/firmware")))
+ (mkdir-p fmw)
+ (copy-file (string-append "Build/ArmVirtQemu-AARCH64/"
+ "RELEASE_GCC/FV/QEMU_EFI.fd")
+ (string-append fmw "/ovmf_aarch64.bin"))))))))))))
+
(define-public ovmf
(let ((toolchain-ver "GCC5"))
(package
@@ -1124,41 +1140,6 @@ (define-public ovmf
(license (list license:expat
license:bsd-2 license:bsd-3 license:bsd-4)))))
-(define-public ovmf-aarch64
- (let ((toolchain-ver "GCC5"))
- (package
- (inherit ovmf)
- (name "ovmf-aarch64")
- (native-inputs
- (append (package-native-inputs ovmf)
- (if (not (string-prefix? "aarch64" (%current-system)))
- `(("cross-gcc" ,(cross-gcc "aarch64-linux-gnu"))
- ("cross-binutils" ,(cross-binutils "aarch64-linux-gnu")))
- '())))
- (arguments
- (substitute-keyword-arguments (package-arguments ovmf)
- ((#:phases phases)
- #~(modify-phases #$phases
- #$@(if (string-prefix? "aarch64" (%current-system))
- '()
- #~((add-before 'configure 'set-env
- (lambda _
- (setenv (string-append #$toolchain-ver "_AARCH64_PREFIX")
- "aarch64-linux-gnu-")))))
- (replace 'build
- (lambda _
- (invoke "build" "-a" "AARCH64" "-t" #$toolchain-ver
- "-p" "ArmVirtPkg/ArmVirtQemu.dsc")))
- (delete 'build-x64)
- (replace 'install
- (lambda _
- (let ((fmw (string-append #$output "/share/firmware")))
- (mkdir-p fmw)
- (copy-file (string-append "Build/ArmVirtQemu-AARCH64/RELEASE_"
- #$toolchain-ver "/FV/QEMU_EFI.fd")
- (string-append fmw "/ovmf_aarch64.bin")))))))))
- (supported-systems %supported-systems))))
-
(define-public ovmf-arm
(let ((toolchain-ver "GCC5"))
(package
--
Efraim Flashner <efraim@flashner.co.il> רנשלפ םירפא
GPG key = A28B F40C 3E55 1372 662D 14F7 41AA E7DC CA3D 8351
Confidentiality cannot be guaranteed on emails sent or received unencrypted
^ permalink raw reply related [flat|nested] 13+ messages in thread
* [bug#70913] [PATCH 06/11] gnu: ovmf-arm: Update to 202402.
2024-05-13 8:19 [bug#70913] [PATCH 00/11] Combine edk2-tools and ovmf firmware Efraim Flashner
` (4 preceding siblings ...)
2024-05-13 8:21 ` [bug#70913] [PATCH 05/11] gnu: ovmf-aarch64: Update to 202402 Efraim Flashner
@ 2024-05-13 8:21 ` Efraim Flashner
2024-05-13 8:21 ` [bug#70913] [PATCH 07/11] gnu: ovmf-riscv64: " Efraim Flashner
` (5 subsequent siblings)
11 siblings, 0 replies; 13+ messages in thread
From: Efraim Flashner @ 2024-05-13 8:21 UTC (permalink / raw)
To: 70913; +Cc: Efraim Flashner, Efraim Flashner, Vagrant Cascadian
* gnu/packages/firmware.scm (ovmf-arm): Update to 202402. Build using
make-ovmf-firmware.
Change-Id: I1adf1afc9ceb29db373c2e0d05d42a3c68232cb5
---
gnu/packages/firmware.scm | 52 +++++++++++++--------------------------
1 file changed, 17 insertions(+), 35 deletions(-)
diff --git a/gnu/packages/firmware.scm b/gnu/packages/firmware.scm
index ae11c82d1a..f660c21712 100644
--- a/gnu/packages/firmware.scm
+++ b/gnu/packages/firmware.scm
@@ -1040,6 +1040,23 @@ (define-public ovmf-aarch64
"RELEASE_GCC/FV/QEMU_EFI.fd")
(string-append fmw "/ovmf_aarch64.bin"))))))))))))
+(define-public ovmf-arm
+ (let ((base (make-ovmf-firmware "armhf")))
+ (package
+ (inherit base)
+ (name "ovmf-arm")
+ (arguments
+ (substitute-keyword-arguments (package-arguments base)
+ ((#:phases phases)
+ #~(modify-phases #$phases
+ (replace 'install
+ (lambda _
+ (let ((fmw (string-append #$output "/share/firmware")))
+ (mkdir-p fmw)
+ (copy-file (string-append "Build/ArmVirtQemu-ARM/"
+ "RELEASE_GCC/FV/QEMU_EFI.fd")
+ (string-append fmw "/ovmf_arm.bin"))))))))))))
+
(define-public ovmf
(let ((toolchain-ver "GCC5"))
(package
@@ -1140,41 +1157,6 @@ (define-public ovmf
(license (list license:expat
license:bsd-2 license:bsd-3 license:bsd-4)))))
-(define-public ovmf-arm
- (let ((toolchain-ver "GCC5"))
- (package
- (inherit ovmf)
- (name "ovmf-arm")
- (native-inputs
- (append (package-native-inputs ovmf)
- (if (not (string-prefix? "armhf" (%current-system)))
- `(("cross-gcc" ,(cross-gcc "arm-linux-gnueabihf"))
- ("cross-binutils" ,(cross-binutils "arm-linux-gnueabihf")))
- '())))
- (arguments
- (substitute-keyword-arguments (package-arguments ovmf)
- ((#:phases phases)
- #~(modify-phases #$phases
- #$@(if (string-prefix? "armhf" (%current-system))
- '()
- #~((add-before 'configure 'set-env
- (lambda _
- (setenv (string-append #$toolchain-ver "_ARM_PREFIX")
- "arm-linux-gnueabihf-")))))
- (replace 'build
- (lambda _
- (invoke "build" "-a" "ARM" "-t" #$toolchain-ver
- "-p" "ArmVirtPkg/ArmVirtQemu.dsc")))
- (delete 'build-x64)
- (replace 'install
- (lambda _
- (let ((fmw (string-append #$output "/share/firmware")))
- (mkdir-p fmw)
- (copy-file (string-append "Build/ArmVirtQemu-ARM/RELEASE_"
- #$toolchain-ver "/FV/QEMU_EFI.fd")
- (string-append fmw "/ovmf_arm.bin")))))))))
- (supported-systems %supported-systems))))
-
(define-public ovmf-riscv64
(let ((toolchain-ver "GCC5"))
(package
--
Efraim Flashner <efraim@flashner.co.il> רנשלפ םירפא
GPG key = A28B F40C 3E55 1372 662D 14F7 41AA E7DC CA3D 8351
Confidentiality cannot be guaranteed on emails sent or received unencrypted
^ permalink raw reply related [flat|nested] 13+ messages in thread
* [bug#70913] [PATCH 07/11] gnu: ovmf-riscv64: Update to 202402.
2024-05-13 8:19 [bug#70913] [PATCH 00/11] Combine edk2-tools and ovmf firmware Efraim Flashner
` (5 preceding siblings ...)
2024-05-13 8:21 ` [bug#70913] [PATCH 06/11] gnu: ovmf-arm: " Efraim Flashner
@ 2024-05-13 8:21 ` Efraim Flashner
2024-05-13 8:21 ` [bug#70913] [PATCH 08/11] gnu: Use new ovmf firmware packages Efraim Flashner
` (4 subsequent siblings)
11 siblings, 0 replies; 13+ messages in thread
From: Efraim Flashner @ 2024-05-13 8:21 UTC (permalink / raw)
To: 70913; +Cc: Efraim Flashner, Efraim Flashner, Vagrant Cascadian
* gnu/packages/firmware.scm (ovmf-riscv64): Update to 202402. Build
using make-ovmf-firmware.
Change-Id: I1a7dcaac3975669a61723b929162ad33affa1619
---
gnu/packages/firmware.scm | 54 ++++++++++++---------------------------
1 file changed, 16 insertions(+), 38 deletions(-)
diff --git a/gnu/packages/firmware.scm b/gnu/packages/firmware.scm
index f660c21712..b0638382cb 100644
--- a/gnu/packages/firmware.scm
+++ b/gnu/packages/firmware.scm
@@ -1057,6 +1057,22 @@ (define-public ovmf-arm
"RELEASE_GCC/FV/QEMU_EFI.fd")
(string-append fmw "/ovmf_arm.bin"))))))))))))
+(define-public ovmf-riscv64
+ (let ((base (make-ovmf-firmware "riscv64")))
+ (package
+ (inherit base)
+ (arguments
+ (substitute-keyword-arguments (package-arguments base)
+ ((#:phases phases)
+ #~(modify-phases #$phases
+ (replace 'install
+ (lambda _
+ (let ((fmw (string-append #$output "/share/firmware")))
+ (mkdir-p fmw)
+ (with-directory-excursion "Build/RiscVVirtQemu/RELEASE_GCC/FV"
+ (install-file "RISCV_VIRT_CODE.fd" fmw)
+ (install-file "RISCV_VIRT_VARS.fd" fmw))))))))))))
+
(define-public ovmf
(let ((toolchain-ver "GCC5"))
(package
@@ -1157,44 +1173,6 @@ (define-public ovmf
(license (list license:expat
license:bsd-2 license:bsd-3 license:bsd-4)))))
-(define-public ovmf-riscv64
- (let ((toolchain-ver "GCC5"))
- (package
- (inherit ovmf)
- (name "ovmf-riscv64")
- (native-inputs
- (append (package-native-inputs ovmf)
- (if (not (string-prefix? "riscv64" (%current-system)))
- `(("cross-gcc" ,(cross-gcc "riscv64-linux-gnu"))
- ("cross-binutils" ,(cross-binutils "riscv64-linux-gnu")))
- '())))
- (arguments
- (substitute-keyword-arguments (package-arguments ovmf)
- ((#:phases phases)
- #~(modify-phases #$phases
- #$@(if (string-prefix? "riscv64" (%current-system))
- '()
- #~((add-before 'configure 'set-env
- (lambda _
- (setenv (string-append #$toolchain-ver "_RISCV64_PREFIX")
- "riscv64-linux-gnu-")))))
- (replace 'build
- (lambda _
- (invoke "build" "-a" "RISCV64" "-t" #$toolchain-ver
- "-p" "OvmfPkg/RiscVVirt/RiscVVirtQemu.dsc")))
- (delete 'build-x64)
- (replace 'install
- (lambda _
- (let ((fmw (string-append #$output "/share/firmware")))
- (mkdir-p fmw)
- (copy-file (string-append "Build/RiscVVirtQemu/RELEASE_"
- #$toolchain-ver "/FV/RISCV_VIRT_CODE.fd")
- (string-append fmw "/RISCV_VIRT_CODE.fd"))
- (copy-file (string-append "Build/RiscVVirtQemu/RELEASE_"
- #$toolchain-ver "/FV/RISCV_VIRT_VARS.fd")
- (string-append fmw "/RISCV_VIRT_VARS.fd")))))))))
- (supported-systems %supported-systems))))
-
(define* (make-arm-trusted-firmware platform
#:key (triplet "aarch64-linux-gnu"))
(let ((native-build? (lambda ()
--
Efraim Flashner <efraim@flashner.co.il> רנשלפ םירפא
GPG key = A28B F40C 3E55 1372 662D 14F7 41AA E7DC CA3D 8351
Confidentiality cannot be guaranteed on emails sent or received unencrypted
^ permalink raw reply related [flat|nested] 13+ messages in thread
* [bug#70913] [PATCH 08/11] gnu: Use new ovmf firmware packages.
2024-05-13 8:19 [bug#70913] [PATCH 00/11] Combine edk2-tools and ovmf firmware Efraim Flashner
` (6 preceding siblings ...)
2024-05-13 8:21 ` [bug#70913] [PATCH 07/11] gnu: ovmf-riscv64: " Efraim Flashner
@ 2024-05-13 8:21 ` Efraim Flashner
2024-05-13 8:21 ` [bug#70913] [PATCH 09/11] tests: install: Add support for aarch64 UEFI tests Efraim Flashner
` (3 subsequent siblings)
11 siblings, 0 replies; 13+ messages in thread
From: Efraim Flashner @ 2024-05-13 8:21 UTC (permalink / raw)
To: 70913
Cc: Efraim Flashner, Florian Pelz, Ludovic Courtès,
Matthew Trzcinski
* doc/guix.texi (Invoking guix system): Update qemu command to use
ovmf-x86-64.
* gnu/packages/virtualization.scm (xen)[inputs]: Replace ovmf with
ovmf-i686.
* gnu/tests/install.scm (uefi-firmware): Use system appropriate ovmf
firmware.
Change-Id: Ia2ff76eaf766c8d4fb0be4a7cc7b8941574433d0
---
doc/guix.texi | 2 +-
gnu/packages/virtualization.scm | 2 +-
gnu/tests/install.scm | 4 ++--
3 files changed, 4 insertions(+), 4 deletions(-)
diff --git a/doc/guix.texi b/doc/guix.texi
index ce1a06747c..6058658996 100644
--- a/doc/guix.texi
+++ b/doc/guix.texi
@@ -42250,7 +42250,7 @@ Invoking guix system
cp $image /tmp/my-image.qcow2
chmod +w /tmp/my-image.qcow2
qemu-system-x86_64 -enable-kvm -hda /tmp/my-image.qcow2 -m 1000 \
- -bios $(guix build ovmf)/share/firmware/ovmf_x64.bin
+ -bios $(guix build ovmf-x86-64)/share/firmware/ovmf_x64.bin
@end example
When using the @code{mbr-hybrid-raw} image type, a raw disk image is
diff --git a/gnu/packages/virtualization.scm b/gnu/packages/virtualization.scm
index 34cccd6550..c701ae2d45 100644
--- a/gnu/packages/virtualization.scm
+++ b/gnu/packages/virtualization.scm
@@ -2670,7 +2670,7 @@ (define-public xen
yajl
ncurses
openssl
- ovmf
+ ovmf-i686
pixman
qemu-minimal
seabios
diff --git a/gnu/tests/install.scm b/gnu/tests/install.scm
index 16da320000..6248faed9b 100644
--- a/gnu/tests/install.scm
+++ b/gnu/tests/install.scm
@@ -210,9 +210,9 @@ (define (uefi-firmware system)
"Return the appropriate QEMU OVMF UEFI firmware for the given SYSTEM."
(cond
((string-prefix? "x86_64" system)
- (file-append ovmf "/share/firmware/ovmf_x64.bin"))
+ (file-append ovmf-x86-64 "/share/firmware/ovmf_x64.bin"))
((string-prefix? "i686" system)
- (file-append ovmf "/share/firmware/ovmf_ia32.bin"))
+ (file-append ovmf-i686 "/share/firmware/ovmf_ia32.bin"))
(else #f)))
(define* (run-install target-os target-os-source
--
Efraim Flashner <efraim@flashner.co.il> רנשלפ םירפא
GPG key = A28B F40C 3E55 1372 662D 14F7 41AA E7DC CA3D 8351
Confidentiality cannot be guaranteed on emails sent or received unencrypted
^ permalink raw reply related [flat|nested] 13+ messages in thread
* [bug#70913] [PATCH 09/11] tests: install: Add support for aarch64 UEFI tests.
2024-05-13 8:19 [bug#70913] [PATCH 00/11] Combine edk2-tools and ovmf firmware Efraim Flashner
` (7 preceding siblings ...)
2024-05-13 8:21 ` [bug#70913] [PATCH 08/11] gnu: Use new ovmf firmware packages Efraim Flashner
@ 2024-05-13 8:21 ` Efraim Flashner
2024-05-13 8:21 ` [bug#70913] [PATCH 10/11] gnu: ovmf: Deprecate in favor of ovmf-x86-64 Efraim Flashner
` (2 subsequent siblings)
11 siblings, 0 replies; 13+ messages in thread
From: Efraim Flashner @ 2024-05-13 8:21 UTC (permalink / raw)
To: 70913; +Cc: Efraim Flashner
* gnu/tests/install.scm (uefi-firmware): Add case for aarch64.
Change-Id: I77a506f792790954a289eda5a7a395a2b37c19c7
---
gnu/tests/install.scm | 2 ++
1 file changed, 2 insertions(+)
diff --git a/gnu/tests/install.scm b/gnu/tests/install.scm
index 6248faed9b..90e1ca6e75 100644
--- a/gnu/tests/install.scm
+++ b/gnu/tests/install.scm
@@ -213,6 +213,8 @@ (define (uefi-firmware system)
(file-append ovmf-x86-64 "/share/firmware/ovmf_x64.bin"))
((string-prefix? "i686" system)
(file-append ovmf-i686 "/share/firmware/ovmf_ia32.bin"))
+ ((string-prefix? "aarch64" system)
+ (file-append ovmf-aarch64 "/share/firmware/ovmf_aarch64.bin"))
(else #f)))
(define* (run-install target-os target-os-source
--
Efraim Flashner <efraim@flashner.co.il> רנשלפ םירפא
GPG key = A28B F40C 3E55 1372 662D 14F7 41AA E7DC CA3D 8351
Confidentiality cannot be guaranteed on emails sent or received unencrypted
^ permalink raw reply related [flat|nested] 13+ messages in thread
* [bug#70913] [PATCH 10/11] gnu: ovmf: Deprecate in favor of ovmf-x86-64.
2024-05-13 8:19 [bug#70913] [PATCH 00/11] Combine edk2-tools and ovmf firmware Efraim Flashner
` (8 preceding siblings ...)
2024-05-13 8:21 ` [bug#70913] [PATCH 09/11] tests: install: Add support for aarch64 UEFI tests Efraim Flashner
@ 2024-05-13 8:21 ` Efraim Flashner
2024-05-13 8:22 ` [bug#70913] [PATCH 11/11] tests: install: Use a default qemu machine for arm architectures Efraim Flashner
[not found] ` <handler.70913.B.17155884115327.ack@debbugs.gnu.org>
11 siblings, 0 replies; 13+ messages in thread
From: Efraim Flashner @ 2024-05-13 8:21 UTC (permalink / raw)
To: 70913; +Cc: Efraim Flashner, Efraim Flashner, Vagrant Cascadian
* gnu/packages/firmware.scm (ovmf): Deprecate package in favor of
ovmf-x86-64.
Change-Id: I912c2b122f80a7f3fd473b8d91ae6e714b27808f
---
gnu/packages/firmware.scm | 100 +-------------------------------------
1 file changed, 2 insertions(+), 98 deletions(-)
diff --git a/gnu/packages/firmware.scm b/gnu/packages/firmware.scm
index b0638382cb..55f78c3da6 100644
--- a/gnu/packages/firmware.scm
+++ b/gnu/packages/firmware.scm
@@ -30,6 +30,7 @@
(define-module (gnu packages firmware)
#:use-module ((guix licenses) #:prefix license:)
#:use-module (guix memoization)
+ #:use-module (guix deprecation)
#:use-module (guix packages)
#:use-module (guix platform)
#:use-module (guix download)
@@ -1074,104 +1075,7 @@ (define-public ovmf-riscv64
(install-file "RISCV_VIRT_VARS.fd" fmw))))))))))))
(define-public ovmf
- (let ((toolchain-ver "GCC5"))
- (package
- (name "ovmf")
- (version "202311")
- (source (origin
- (method git-fetch)
- (uri (git-reference
- ;; OVMF is part of the edk2 source tree.
- (url "https://github.com/tianocore/edk2")
- (recursive? #t) ;edk2 now uses a lot of submodules
- (commit (string-append "edk2-stable" version))))
- (file-name (git-file-name name version))
- (sha256
- (base32
- "136dl5cxpjpg37whzlqq7jrrjsgybmwrgkbbmks8xaixqmzwhbw0"))))
- (build-system gnu-build-system)
- (arguments
- (list
- #:tests? #f ; No check target.
- #:target #f ; Package produces firmware.
- #:phases
- #~(modify-phases %standard-phases
- (add-after 'unpack 'patch-source
- (lambda _
- (substitute* "edksetup.sh"
- (("^return \\$\\?")
- "exit $?"))))
- (replace 'configure
- (lambda _
- (let* ((cwd (getcwd))
- (tools (string-append cwd "/BaseTools"))
- (bin (string-append tools "/BinWrappers/PosixLike")))
- (setenv "WORKSPACE" cwd)
- (setenv "EDK_TOOLS_PATH" tools)
- (setenv "PYTHON3_ENABLE" "TRUE")
- (setenv "PYTHON_COMMAND" "python3")
- (setenv "PATH" (string-append (getenv "PATH") ":" bin))
- (invoke "bash" "edksetup.sh")
- (substitute* "Conf/tools_def.txt"
- ;; Guix gcc is compiled without pie
- ;; The -no-pie flag causes the Ia32 build to fail
- (("-no-pie") ""))
- (substitute* "Conf/target.txt"
- (("^TARGET[ ]*=.*$") "TARGET = RELEASE\n")
- (("^TOOL_CHAIN_TAG[ ]*=.*$")
- (string-append "TOOL_CHAIN_TAG = " #$toolchain-ver "\n"))
- (("^TARGET_ARCH[ ]*=.*$")
- (string-append "TARGET_ARCH = IA32"
- #$@(if (string=? "x86_64-linux" (%current-system))
- '(", X64")
- '())
- "\n"))
- (("^MAX_CONCURRENT_THREAD_NUMBER[ ]*=.*$")
- (format #f "MAX_CONCURRENT_THREAD_NUMBER = ~a~%"
- (number->string (parallel-job-count)))))
- ;; Build build support.
- (setenv "CC" "gcc")
- (invoke "make" "-C" tools))))
- (replace 'build
- (lambda _
- (invoke "build" "-a" "IA32" "-t" #$toolchain-ver
- "-p" "OvmfPkg/OvmfPkgIa32.dsc")))
- #$@(if (string=? "x86_64-linux" (%current-system))
- #~((add-after 'build 'build-x64
- (lambda _
- (invoke "build" "-a" "X64" "-t" #$toolchain-ver
- "-p" "OvmfPkg/OvmfPkgX64.dsc"))))
- #~())
- (replace 'install
- (lambda _
- (let ((fmw (string-append #$output "/share/firmware")))
- (mkdir-p fmw)
- (for-each
- (lambda (file)
- (copy-file (string-append "Build/OvmfIa32/RELEASE_"
- #$toolchain-ver "/FV/" file ".fd")
- (string-append fmw "/" (string-downcase file) "_ia32.bin"))
- #$@(if (string=? "x86_64-linux" (%current-system))
- #~((copy-file (string-append "Build/OvmfX64/RELEASE_"
- #$toolchain-ver "/FV/" file ".fd")
- (string-append fmw "/" (string-downcase file) "_x64.bin")))
- #~()))
- (list "OVMF"
- "OVMF_CODE"
- "OVMF_VARS"))))))))
- (native-inputs
- `(("acpica" ,acpica)
- ("nasm" ,nasm)
- ("perl" ,perl)
- ("python-3" ,python-3)
- ("util-linux" ,util-linux "lib")))
- (supported-systems '("x86_64-linux" "i686-linux"))
- (home-page "https://www.tianocore.org")
- (synopsis "UEFI firmware for QEMU")
- (description "OVMF is an EDK II based project to enable UEFI support for
-Virtual Machines. OVMF contains a sample UEFI firmware for QEMU and KVM.")
- (license (list license:expat
- license:bsd-2 license:bsd-3 license:bsd-4)))))
+ (deprecated-package "ovmf" ovmf-x86-64))
(define* (make-arm-trusted-firmware platform
#:key (triplet "aarch64-linux-gnu"))
--
Efraim Flashner <efraim@flashner.co.il> רנשלפ םירפא
GPG key = A28B F40C 3E55 1372 662D 14F7 41AA E7DC CA3D 8351
Confidentiality cannot be guaranteed on emails sent or received unencrypted
^ permalink raw reply related [flat|nested] 13+ messages in thread
* [bug#70913] [PATCH 11/11] tests: install: Use a default qemu machine for arm architectures.
2024-05-13 8:19 [bug#70913] [PATCH 00/11] Combine edk2-tools and ovmf firmware Efraim Flashner
` (9 preceding siblings ...)
2024-05-13 8:21 ` [bug#70913] [PATCH 10/11] gnu: ovmf: Deprecate in favor of ovmf-x86-64 Efraim Flashner
@ 2024-05-13 8:22 ` Efraim Flashner
[not found] ` <handler.70913.B.17155884115327.ack@debbugs.gnu.org>
11 siblings, 0 replies; 13+ messages in thread
From: Efraim Flashner @ 2024-05-13 8:22 UTC (permalink / raw)
To: 70913; +Cc: Efraim Flashner
* gnu/tests/install.scm (qemu-command*): Adjust qemu command when run on
armhf-linux or aarch64-linux to include a machine type.
(run-install): Same.
Change-Id: I32f85183cd8ec39c6a2e66624954743fd5983582
---
gnu/tests/install.scm | 12 ++++++++++++
1 file changed, 12 insertions(+)
diff --git a/gnu/tests/install.scm b/gnu/tests/install.scm
index 90e1ca6e75..36dbd9111f 100644
--- a/gnu/tests/install.scm
+++ b/gnu/tests/install.scm
@@ -289,6 +289,12 @@ (define* (run-install target-os target-os-source
(define marionette
(make-marionette
`(,(which #$(qemu-command system))
+ ;; Neither of these architectures have a default machine.
+ ,@(if (or (string=? "aarch64-linux" #$system)
+ (string=? "armhf-linux" #$system))
+ '("-machine" "virt"
+ "-cpu" "host")
+ '())
"-no-reboot"
"-m" "1200"
,@(if #$uefi-firmware
@@ -363,6 +369,12 @@ (define* (qemu-command* images #:key (uefi-support? #f) (memory-size 256))
(use-modules (srfi srfi-1))
`(,(string-append #$qemu-minimal "/bin/"
#$(qemu-command system))
+ ;; Neither of these architectures have a default machine.
+ ,@(if (or (string=? "aarch64-linux" #$system)
+ (string=? "armhf-linux" #$system))
+ '("-machine" "virt"
+ "-cpu" "host")
+ '())
"-snapshot" ;for the volatile, writable overlay
,@(if (file-exists? "/dev/kvm")
'("-enable-kvm")
--
Efraim Flashner <efraim@flashner.co.il> רנשלפ םירפא
GPG key = A28B F40C 3E55 1372 662D 14F7 41AA E7DC CA3D 8351
Confidentiality cannot be guaranteed on emails sent or received unencrypted
^ permalink raw reply related [flat|nested] 13+ messages in thread
[parent not found: <handler.70913.B.17155884115327.ack@debbugs.gnu.org>]