sys-firmware/edk2-ovmf: also create a convenience UefiShell.img
authorMatthias Maier <tamiko@gentoo.org>
Sun, 28 Jul 2019 22:44:15 +0000 (17:44 -0500)
committerMatthias Maier <tamiko@gentoo.org>
Sun, 28 Jul 2019 23:17:33 +0000 (18:17 -0500)
Package-Manager: Portage-2.3.69, Repoman-2.3.16
Signed-off-by: Matthias Maier <tamiko@gentoo.org>
sys-firmware/edk2-ovmf/edk2-ovmf-201905.ebuild

index 246a385385055aaa09655f9b31be15cfe8670f4e..6e9f4e3babf5f1ffd492aee96c443b22f51a56a8 100644 (file)
@@ -12,6 +12,7 @@ DESCRIPTION="UEFI firmware for 64-bit x86 virtual machines"
 HOMEPAGE="https://github.com/tianocore/edk2"
 
 NON_BINARY_DEPEND="
+       app-emulation/qemu
        >=dev-lang/nasm-2.0.7
        >=sys-power/iasl-20160729
        ${PYTHON_DEPS}
@@ -123,6 +124,8 @@ src_compile() {
 
        . ./edksetup.sh
 
+       # Build all EFI firmware blobs:
+
        mkdir -p ovmf
 
        ./OvmfPkg/build.sh \
@@ -137,8 +140,17 @@ src_compile() {
                ${SECUREBOOT_BUILD_FLAGS} || die "OvmfPkg/build.sh failed"
 
        cp Build/OvmfX64/*/FV/OVMF_CODE.fd ovmf/OVMF_CODE.secboot.fd || die "cp failed"
-       cp Build/OvmfX64/*/X64/Shell.efi ovmf/ || dies "cp failed"
-       cp Build/OvmfX64/*/X64/EnrollDefaultKeys.efi ovmf || dies "cp failed"
+       cp Build/OvmfX64/*/X64/Shell.efi ovmf/ || die "cp failed"
+       cp Build/OvmfX64/*/X64/EnrollDefaultKeys.efi ovmf || die "cp failed"
+
+       # Build a convenience UefiShell.img:
+
+       mkdir -p iso_image/efi/boot || die "mkdir failed"
+       cp ovmf/Shell.efi iso_image/efi/boot/bootx64.efi || die "cp failed"
+       cp ovmf/EnrollDefaultKeys.efi iso_image || die "cp failed"
+       qemu-img convert --image-opts \
+               driver=vvfat,floppy=on,fat-type=12,label=UEFI_SHELL,dir=iso_image \
+               ovmf/UefiShell.img || die "qemu-img failed"
 }
 
 src_install() {