summaryrefslogtreecommitdiff
path: root/gnu/packages/firmware.scm
diff options
context:
space:
mode:
authorMaxim Cournoyer <maxim.cournoyer@gmail.com>2025-03-18 00:32:39 +0900
committerMaxim Cournoyer <maxim.cournoyer@gmail.com>2025-03-27 21:21:06 +0900
commit0e151a865d223cb14ac997288cb4386225fa502f (patch)
tree4437e05dd9f1d63f4fafad0b6219b74dd0324f8f /gnu/packages/firmware.scm
parent8afea02d4d42cca9eedac077947a83f8f3989493 (diff)
gnu: ovmf-x86-64: Install QEMU firmware metadata file.
* gnu/packages/firmware.scm (ovmf-x86-64) [phases] {install-qemu-firmware-metadata}: New phase. (ovmf-aux-file): New procedure. * gnu/packages/aux-files/ovmf/51-edk2-ovmf-2m-raw-x64-nosb.json: New file. * Makefile.am (AUX_FILES): Register it. Change-Id: I301eac8b79aed523f3b4cdedb7b3925d8fd0ad3d
Diffstat (limited to 'gnu/packages/firmware.scm')
-rw-r--r--gnu/packages/firmware.scm26
1 files changed, 24 insertions, 2 deletions
diff --git a/gnu/packages/firmware.scm b/gnu/packages/firmware.scm
index 2cd3908b0d..f04edefafe 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, 2023 Maxim Cournoyer <maxim.cournoyer@gmail.com>
+;;; Copyright © 2022, 2023, 2025 Maxim Cournoyer <maxim.cournoyer@gmail.com>
;;; Copyright © 2023 Foundation Devices, Inc. <hello@foundationdevices.com>
;;; Copyright © 2023, 2024 Zheng Junjie <873216071@qq.com>
;;; Copyright © 2024 Ricardo Wurmus <rekado@elephly.net>
@@ -1001,6 +1001,10 @@ 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 (ovmf-aux-file name)
+ "Return as a gexp the auxiliary OVMF file corresponding to NAME."
+ (local-file (search-auxiliary-file (string-append "ovmf/" name))))
+
(define-public ovmf-x86-64
(let ((base (make-ovmf-firmware "x86_64")))
(package
@@ -1022,7 +1026,25 @@ Virtual Machines. OVMF contains a sample UEFI firmware for QEMU and KVM.")
(string-append fmw "/" (string-downcase file) "_x64.bin")))
(list "OVMF"
"OVMF_CODE"
- "OVMF_VARS"))))))))))))
+ "OVMF_VARS")))))
+ (add-after 'install 'install-qemu-firmware-metadata
+ (lambda _
+ ;; The QEMU firmware metadata files are taken from the
+ ;; Fedora project (see:
+ ;; https://src.fedoraproject.org/rpms/edk2/tree/rawhide).
+ (let ((51-edk2-ovmf-2m-raw-x64-nosb.json-source
+ #$(ovmf-aux-file "51-edk2-ovmf-2m-raw-x64-nosb.json"))
+ (51-edk2-ovmf-2m-raw-x64-nosb.json-dest
+ (string-append #$output "/share/qemu/firmware/"
+ "51-edk2-ovmf-2m-raw-x64-nosb.json")))
+ (mkdir-p (dirname 51-edk2-ovmf-2m-raw-x64-nosb.json-dest))
+ (copy-file 51-edk2-ovmf-2m-raw-x64-nosb.json-source
+ 51-edk2-ovmf-2m-raw-x64-nosb.json-dest)
+ (substitute* 51-edk2-ovmf-2m-raw-x64-nosb.json-dest
+ (("/usr/share/edk2/ovmf/OVMF_(CODE|VARS).fd" _ kind)
+ (string-append
+ #$output "/share/firmware/ovmf_"
+ (string-downcase kind) "_x64.bin")))))))))))))
(define-public ovmf-i686
(let ((base (make-ovmf-firmware "i686")))