commit:     5519f4abdc4be060b4f4a043ffadffbbbe97c1ee
Author:     Robin H. Johnson <robbat2 <AT> gentoo <DOT> org>
AuthorDate: Fri Nov 10 22:22:46 2017 +0000
Commit:     Robin H. Johnson <robbat2 <AT> gentoo <DOT> org>
CommitDate: Fri Nov 10 23:23:57 2017 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=5519f4ab

app-emulation/qemu: need seavgabios for pseries

Emulation of PPC64 pSeries needs a VGA BIOS:
$ qemu-system-ppc64 -m 256 -nographic \
  -echr 0x05 \
  -kernel cirros-0.4.0~pre1-ppc64-kernel \
  -initrd cirros-0.4.0~pre1-ppc64-initramfs \
  -append rdroot \
  -m 256 \
  -machine pseries
qemu-system-ppc64: Initialization of device VGA failed: failed to find romfile 
"vgabios-stdvga.bin"

Tested on bogsucker.ppc64.dev.g.o by booting CirrOS PPC64 images.

Package-Manager: Portage-2.3.8, Repoman-2.3.3
Signed-off-by: Robin H. Johnson <robbat2 <AT> gentoo.org>

 app-emulation/qemu/qemu-2.10.0-r1.ebuild | 15 +++++++++++++--
 app-emulation/qemu/qemu-9999.ebuild      | 15 +++++++++++++--
 2 files changed, 26 insertions(+), 4 deletions(-)

diff --git a/app-emulation/qemu/qemu-2.10.0-r1.ebuild 
b/app-emulation/qemu/qemu-2.10.0-r1.ebuild
index a1210f3d599..0c1e2e68231 100644
--- a/app-emulation/qemu/qemu-2.10.0-r1.ebuild
+++ b/app-emulation/qemu/qemu-2.10.0-r1.ebuild
@@ -164,6 +164,14 @@ X86_FIRMWARE_DEPEND="
                >=sys-firmware/seabios-1.10.2[seavgabios]
                sys-firmware/sgabios
        )"
+PPC64_FIRMWARE_DEPEND="
+       pin-upstream-blobs? (
+               ~sys-firmware/seabios-1.10.2[binary,seavgabios]
+       )
+       !pin-upstream-blobs? (
+               >=sys-firmware/seabios-1.10.2[seavgabios]
+       )
+"
 
 CDEPEND="
        !static? (
@@ -171,7 +179,9 @@ CDEPEND="
                ${SOFTMMU_TOOLS_DEPEND//\[static-libs(+)]}
        )
        qemu_softmmu_targets_i386? ( ${X86_FIRMWARE_DEPEND} )
-       qemu_softmmu_targets_x86_64? ( ${X86_FIRMWARE_DEPEND} )"
+       qemu_softmmu_targets_x86_64? ( ${X86_FIRMWARE_DEPEND} )
+       qemu_softmmu_targets_ppc64? ( ${PPC64_FIRMWARE_DEPEND} )
+"
 DEPEND="${CDEPEND}
        dev-lang/perl
        =dev-lang/python-2*
@@ -698,7 +708,8 @@ src_install() {
                rm "${ED}/usr/share/qemu/vgabios-stdvga.bin"
                rm "${ED}/usr/share/qemu/vgabios-virtio.bin"
                rm "${ED}/usr/share/qemu/vgabios-vmware.bin"
-               if use qemu_softmmu_targets_x86_64 || use 
qemu_softmmu_targets_i386; then
+               # PPC64 loads vgabios-stdvga
+               if use qemu_softmmu_targets_x86_64 || use 
qemu_softmmu_targets_i386 || use qemu_softmmu_targets_ppc64; then
                        dosym ../seavgabios/vgabios-isavga.bin 
/usr/share/qemu/vgabios.bin
                        dosym ../seavgabios/vgabios-cirrus.bin 
/usr/share/qemu/vgabios-cirrus.bin
                        dosym ../seavgabios/vgabios-qxl.bin 
/usr/share/qemu/vgabios-qxl.bin

diff --git a/app-emulation/qemu/qemu-9999.ebuild 
b/app-emulation/qemu/qemu-9999.ebuild
index e96e3a8a8f4..a256ce5e7f7 100644
--- a/app-emulation/qemu/qemu-9999.ebuild
+++ b/app-emulation/qemu/qemu-9999.ebuild
@@ -164,6 +164,14 @@ X86_FIRMWARE_DEPEND="
                >=sys-firmware/seabios-1.10.2[seavgabios]
                sys-firmware/sgabios
        )"
+PPC64_FIRMWARE_DEPEND="
+       pin-upstream-blobs? (
+               ~sys-firmware/seabios-1.10.2[binary,seavgabios]
+       )
+       !pin-upstream-blobs? (
+               >=sys-firmware/seabios-1.10.2[seavgabios]
+       )
+"
 
 CDEPEND="
        !static? (
@@ -171,7 +179,9 @@ CDEPEND="
                ${SOFTMMU_TOOLS_DEPEND//\[static-libs(+)]}
        )
        qemu_softmmu_targets_i386? ( ${X86_FIRMWARE_DEPEND} )
-       qemu_softmmu_targets_x86_64? ( ${X86_FIRMWARE_DEPEND} )"
+       qemu_softmmu_targets_x86_64? ( ${X86_FIRMWARE_DEPEND} )
+       qemu_softmmu_targets_ppc64? ( ${PPC64_FIRMWARE_DEPEND} )
+"
 DEPEND="${CDEPEND}
        dev-lang/perl
        =dev-lang/python-2*
@@ -695,7 +705,8 @@ src_install() {
                rm "${ED}/usr/share/qemu/vgabios-stdvga.bin"
                rm "${ED}/usr/share/qemu/vgabios-virtio.bin"
                rm "${ED}/usr/share/qemu/vgabios-vmware.bin"
-               if use qemu_softmmu_targets_x86_64 || use 
qemu_softmmu_targets_i386; then
+               # PPC64 loads vgabios-stdvga
+               if use qemu_softmmu_targets_x86_64 || use 
qemu_softmmu_targets_i386 || use qemu_softmmu_targets_ppc64; then
                        dosym ../seavgabios/vgabios-isavga.bin 
/usr/share/qemu/vgabios.bin
                        dosym ../seavgabios/vgabios-cirrus.bin 
/usr/share/qemu/vgabios-cirrus.bin
                        dosym ../seavgabios/vgabios-qxl.bin 
/usr/share/qemu/vgabios-qxl.bin

Reply via email to