commit:     3d4dbd115773c2908f290097434d9cfef1b13cc6
Author:     Matthias Maier <tamiko <AT> gentoo <DOT> org>
AuthorDate: Wed May  3 01:23:12 2017 +0000
Commit:     Matthias Maier <tamiko <AT> gentoo <DOT> org>
CommitDate: Wed May  3 01:23:12 2017 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=3d4dbd11

app-emulation/qemu: update live ebuild

Package-Manager: Portage-2.3.5, Repoman-2.3.2

 app-emulation/qemu/qemu-9999.ebuild | 38 +++++++++++++++++++++++++++++++------
 1 file changed, 32 insertions(+), 6 deletions(-)

diff --git a/app-emulation/qemu/qemu-9999.ebuild 
b/app-emulation/qemu/qemu-9999.ebuild
index af471f81307..4db20db5a77 100644
--- a/app-emulation/qemu/qemu-9999.ebuild
+++ b/app-emulation/qemu/qemu-9999.ebuild
@@ -8,6 +8,8 @@ PYTHON_REQ_USE="ncurses,readline"
 
 PLOCALES="bg de_DE fr_FR hu it tr zh_CN"
 
+FIRMWARE_ABI_VERSION="2.9.0-r50"
+
 inherit eutils flag-o-matic linux-info toolchain-funcs multilib python-r1 \
        user udev fcaps readme.gentoo-r1 pax-utils l10n
 
@@ -149,12 +151,13 @@ SOFTMMU_TOOLS_DEPEND="
        xfs? ( sys-fs/xfsprogs[static-libs(+)] )"
 
 X86_FIRMWARE_DEPEND="
-       >=sys-firmware/ipxe-1.0.0_p20130624
        pin-upstream-blobs? (
-               ~sys-firmware/seabios-1.10.1
+               ~sys-firmware/ipxe-1.0.0_p20160620
+               ~sys-firmware/seabios-1.10.1[binary]
                ~sys-firmware/sgabios-0.1_pre8
        )
        !pin-upstream-blobs? (
+               sys-firmware/ipxe
                sys-firmware/seabios
                sys-firmware/sgabios
        )"
@@ -679,7 +682,7 @@ src_install() {
                        dosym ../seabios/bios.bin /usr/share/qemu/bios.bin
                fi
 
-               # Remove vgabios since we're using the vgabios packaged one
+               # Remove vgabios since we're using the seavgabios packaged one
                rm "${ED}/usr/share/qemu/vgabios.bin"
                rm "${ED}/usr/share/qemu/vgabios-cirrus.bin"
                rm "${ED}/usr/share/qemu/vgabios-qxl.bin"
@@ -717,15 +720,38 @@ src_install() {
        readme.gentoo_create_doc
 }
 
-pkg_postinst() {
-       DISABLE_AUTOFORMATTING=true
-       readme.gentoo_print_elog
+firmware_abi_change() {
+       local pv
+       for pv in ${REPLACING_VERSIONS}; do
+               if ! version_is_at_least ${FIRMWARE_ABI_VERSION} ${pv}; then
+                       return 0
+               fi
+       done
+       return 1
+}
 
+pkg_postinst() {
        if [[ -n ${softmmu_targets} ]] && use kernel_linux; then
                udev_reload
        fi
 
        fcaps cap_net_admin /usr/libexec/qemu-bridge-helper
+
+       DISABLE_AUTOFORMATTING=true
+       readme.gentoo_print_elog
+
+       if use pin-upstream-blobs && firmware_abi_change; then
+               ewarn "This version of qemu pins new versions of firmware 
blobs:"
+               ewarn " $(best_version sys-firmware/ipxe)"
+               ewarn " $(best_version sys-firmware/seabios)"
+               ewarn " $(best_version sys-firmware/sgabios)"
+               ewarn "This might break resume of hibernated guests (started 
with a different"
+               ewarn "firmware version) and live migration to/from qemu 
versions with different"
+               ewarn "firmware. Please (cold) restart all running guests. For 
functional"
+               ewarn "guest migration ensure that all"
+               ewarn "hosts run at least"
+               ewarn " app-emulation/qemu-${FIRMWARE_ABI_VERSION}."
+       fi
 }
 
 pkg_info() {

Reply via email to