1 |
commit: 68e1a062cc4ff32417d9dd14f57471df4be36c3c |
2 |
Author: Matthias Maier <tamiko <AT> gentoo <DOT> org> |
3 |
AuthorDate: Wed May 3 01:01:40 2017 +0000 |
4 |
Commit: Matthias Maier <tamiko <AT> gentoo <DOT> org> |
5 |
CommitDate: Wed May 3 01:01:40 2017 +0000 |
6 |
URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=68e1a062 |
7 |
|
8 |
app-emulation/qemu: add an elog warning for firmware bump |
9 |
|
10 |
See bug #560050 and bug #529862 |
11 |
|
12 |
Package-Manager: Portage-2.3.5, Repoman-2.3.2 |
13 |
|
14 |
app-emulation/qemu/qemu-2.9.0-r50.ebuild | 36 +++++++++++++++++++++++++++----- |
15 |
1 file changed, 31 insertions(+), 5 deletions(-) |
16 |
|
17 |
diff --git a/app-emulation/qemu/qemu-2.9.0-r50.ebuild b/app-emulation/qemu/qemu-2.9.0-r50.ebuild |
18 |
index 671050e6a2e..7704be239de 100644 |
19 |
--- a/app-emulation/qemu/qemu-2.9.0-r50.ebuild |
20 |
+++ b/app-emulation/qemu/qemu-2.9.0-r50.ebuild |
21 |
@@ -8,6 +8,8 @@ PYTHON_REQ_USE="ncurses,readline" |
22 |
|
23 |
PLOCALES="bg de_DE fr_FR hu it tr zh_CN" |
24 |
|
25 |
+FIRMWARE_ABI_VERSION="2.9.0-r50" |
26 |
+ |
27 |
inherit eutils flag-o-matic linux-info toolchain-funcs multilib python-r1 \ |
28 |
user udev fcaps readme.gentoo-r1 pax-utils l10n |
29 |
|
30 |
@@ -150,12 +152,13 @@ SOFTMMU_TOOLS_DEPEND=" |
31 |
xfs? ( sys-fs/xfsprogs[static-libs(+)] )" |
32 |
|
33 |
X86_FIRMWARE_DEPEND=" |
34 |
- >=sys-firmware/ipxe-1.0.0_p20130624 |
35 |
pin-upstream-blobs? ( |
36 |
- ~sys-firmware/seabios-1.10.1 |
37 |
+ ~sys-firmware/ipxe-1.0.0_p20160620 |
38 |
+ ~sys-firmware/seabios-1.10.1[binary] |
39 |
~sys-firmware/sgabios-0.1_pre8 |
40 |
) |
41 |
!pin-upstream-blobs? ( |
42 |
+ sys-firmware/ipxe |
43 |
sys-firmware/seabios |
44 |
sys-firmware/sgabios |
45 |
)" |
46 |
@@ -722,15 +725,38 @@ src_install() { |
47 |
readme.gentoo_create_doc |
48 |
} |
49 |
|
50 |
-pkg_postinst() { |
51 |
- DISABLE_AUTOFORMATTING=true |
52 |
- readme.gentoo_print_elog |
53 |
+firmware_abi_change() { |
54 |
+ local pv |
55 |
+ for pv in ${REPLACING_VERSIONS}; do |
56 |
+ if ! version_is_at_least ${FIRMWARE_ABI_VERSION} ${pv}; then |
57 |
+ return 0 |
58 |
+ fi |
59 |
+ done |
60 |
+ return 1 |
61 |
+} |
62 |
|
63 |
+pkg_postinst() { |
64 |
if [[ -n ${softmmu_targets} ]] && use kernel_linux; then |
65 |
udev_reload |
66 |
fi |
67 |
|
68 |
fcaps cap_net_admin /usr/libexec/qemu-bridge-helper |
69 |
+ |
70 |
+ DISABLE_AUTOFORMATTING=true |
71 |
+ readme.gentoo_print_elog |
72 |
+ |
73 |
+ if use pin-upstream-blobs && firmware_abi_change; then |
74 |
+ ewarn "This version of qemu pins new versions of firmware blobs:" |
75 |
+ ewarn " $(best_version sys-firmware/ipxe)" |
76 |
+ ewarn " $(best_version sys-firmware/seabios)" |
77 |
+ ewarn " $(best_version sys-firmware/sgabios)" |
78 |
+ ewarn "This might break resume of hibernated guests (started with a different" |
79 |
+ ewarn "firmware version) and live migration to/from qemu versions with different" |
80 |
+ ewarn "firmware. Please (cold) restart all running guests. For functional" |
81 |
+ ewarn "guest migration ensure that all" |
82 |
+ ewarn "hosts run at least" |
83 |
+ ewarn " app-emulation/qemu-${FIRMWARE_ABI_VERSION}." |
84 |
+ fi |
85 |
} |
86 |
|
87 |
pkg_info() { |