summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJames Le Cuirot <chewi@gentoo.org>2024-09-28 00:23:21 +0100
committerJames Le Cuirot <chewi@gentoo.org>2024-10-10 17:29:40 +0100
commit36739908a2b814613caa1076a26242b18cdba75a (patch)
tree286879c7970fa5f3eb433827484fe04a566788b2 /sys-firmware
parentsys-firmware/edk2-ovmf-bin: Rename to edk2-bin to support other platforms (diff)
downloadgentoo-36739908a2b814613caa1076a26242b18cdba75a.tar.gz
gentoo-36739908a2b814613caa1076a26242b18cdba75a.tar.bz2
gentoo-36739908a2b814613caa1076a26242b18cdba75a.zip
sys-firmware/edk2-bin: Version bump to 202408
This now installs arm64 firmware. Signed-off-by: James Le Cuirot <chewi@gentoo.org>
Diffstat (limited to 'sys-firmware')
-rw-r--r--sys-firmware/edk2-bin/Manifest2
-rw-r--r--sys-firmware/edk2-bin/edk2-bin-202408.ebuild69
2 files changed, 71 insertions, 0 deletions
diff --git a/sys-firmware/edk2-bin/Manifest b/sys-firmware/edk2-bin/Manifest
index 3acdd51ad6e6..bb1fb35f4b77 100644
--- a/sys-firmware/edk2-bin/Manifest
+++ b/sys-firmware/edk2-bin/Manifest
@@ -1 +1,3 @@
+DIST edk2-202408-1-amd64.xpak 6406269 BLAKE2B 4989c77321b01165253a8a3bf9955f5b75598cc49371ed74b342786b8158c232f088f1f8a34b8afae0e72f8aabe6cb2a437f5d1f495d3e09d939ef5b4ddfecc6 SHA512 9ead4ac94c634b740ea2a19dcad968e31bc90662b8caf6a9bb96f7517358af23bc1bc996317ca4e7bf2a7b685b2c80fae4757eb1d10fd8d3550388580a0b6ff2
+DIST edk2-202408-1-arm64.xpak 2710314 BLAKE2B e21ee00e178c59cd89cc297f22a044459446f394000e6e959a2cea59c120e9778682ba3e040b02e155d05d5196aebe45c8fc50ae6923a51fd2be2308132b23f9 SHA512 9f2c99755e3ca482ef240f58711d571a57c2e29fc29b696d0345a1c02d185b325f840cd747d139724bde7dfeaced99fd6eecc5e95ec3b45a6651c797d7989576
DIST edk2-ovmf-202202-1.xpak 2672386 BLAKE2B 75c15d4379610ab2af85b78166e350d52f4f1bc1fff5b2eb693ad0d7b1f6648e65d8ae3e2c5467f93f1557ad3b4fa664ab2d76ff10794667de22c2ea8cca6b2d SHA512 06783b89c96bada0fd025ff39eaee501a027abcb03c0bdcf3ff497d52be22927ab03013d90f145ee94a8662cfffe4f8c154dcd06db1bb1acef8a85ae43de14a3
diff --git a/sys-firmware/edk2-bin/edk2-bin-202408.ebuild b/sys-firmware/edk2-bin/edk2-bin-202408.ebuild
new file mode 100644
index 000000000000..75bd9bda8186
--- /dev/null
+++ b/sys-firmware/edk2-bin/edk2-bin-202408.ebuild
@@ -0,0 +1,69 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit readme.gentoo-r1 secureboot
+
+BINPKG="${P/-bin/}-1"
+ARCHES="amd64 arm64"
+
+DESCRIPTION="TianoCore EDK II UEFI firmware for virtual machines"
+HOMEPAGE="https://github.com/tianocore/edk2"
+SRC_URI=$(printf "https://dev.gentoo.org/~chewi/distfiles/${BINPKG}-%s.xpak\n" ${ARCHES})
+S="${WORKDIR}"
+LICENSE="BSD-2 MIT"
+SLOT="0"
+KEYWORDS="~amd64 ~arm64 ~loong ~ppc ~ppc64 ~riscv ~x86"
+
+RDEPEND="!sys-firmware/edk2"
+
+DOC_CONTENTS="This package includes the TianoCore EDK II UEFI firmware for virtual \
+machines of these architectures: ${ARCHES}. See each architecture's README for \
+usage details."
+
+src_unpack() {
+ local a
+ for a in ${ARCHES}; do
+ mkdir "${a}" || die
+ tar -C "${a}" -xf - < <(xz -c -d --single-stream "${DISTDIR}/${BINPKG}-${a}.xpak") ||
+ die "unpacking ${a} binpkg failed"
+ done
+}
+
+src_prepare() {
+ bunzip2 */usr/share/doc/*/README.gentoo.bz2 || die
+ default
+}
+
+src_install() {
+ insinto /usr/share
+ doins -r */usr/share/{edk2,qemu}/
+
+ # Compatibility with older package versions.
+ dosym edk2/OvmfX64 /usr/share/edk2-ovmf
+
+ secureboot_auto_sign --in-place
+ readme.gentoo_create_doc
+
+ local a
+ for a in ${ARCHES}; do
+ newdoc "${a}"/usr/share/doc/*/README.gentoo README-"${a}".gentoo
+ done
+}
+
+pkg_preinst() {
+ local OLD=${EROOT}/usr/share/edk2-ovmf NEW=${EROOT}/usr/share/edk2/OvmfX64
+ if [[ -d ${OLD} && ! -L ${OLD} ]]; then
+ {
+ rm -vf "${OLD}"/{OVMF_{CODE,CODE.secboot,VARS}.fd,EnrollDefaultKeys.efi,Shell.efi,UefiShell.img} &&
+ mkdir -p "${NEW}" &&
+ find "${OLD}" -mindepth 1 -maxdepth 1 -execdir mv --update=none-fail -vt "${NEW}"/ {} + &&
+ rmdir "${OLD}"
+ } || die "unable to replace old directory with compatibility symlink"
+ fi
+}
+
+pkg_postinst() {
+ readme.gentoo_print_elog
+}