1 |
commit: 0647ece2a5a3cf9dcd2983f145c33fde7173782b |
2 |
Author: Tomas Mozes <hydrapolic <AT> gmail <DOT> com> |
3 |
AuthorDate: Sun Apr 14 03:31:11 2019 +0000 |
4 |
Commit: Yixun Lan <dlan <AT> gentoo <DOT> org> |
5 |
CommitDate: Tue Apr 16 06:27:48 2019 +0000 |
6 |
URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=0647ece2 |
7 |
|
8 |
app-emulation/xen-tools: improve ipxe support |
9 |
|
10 |
Add choice to build ipxe from xen-tools or use the system provided |
11 |
sys-firmware/ipxe package. Since ipxe depends on rombios, make it |
12 |
and explicit USE. By default, qemu, rombios and ipxe are enabled in |
13 |
xen so enable then in Gentoo too, with hvm as it's needed for |
14 |
rombios/ipxe. Dropping unused patches from xen patchset 17. |
15 |
|
16 |
Closes: https://github.com/gentoo/gentoo/pull/11675 |
17 |
Closes: https://bugs.gentoo.org/682710 |
18 |
|
19 |
Signed-off-by: Tomáš Mózes <hydrapolic <AT> gmail.com> |
20 |
Signed-off-by: Yixun Lan <dlan <AT> gentoo.org> |
21 |
|
22 |
app-emulation/xen-tools/Manifest | 2 ++ |
23 |
app-emulation/xen-tools/files/gentoo-patches.conf | 2 ++ |
24 |
app-emulation/xen-tools/metadata.xml | 11 ++++--- |
25 |
...ls-4.12.0.ebuild => xen-tools-4.12.0-r1.ebuild} | 36 ++++++++++++++-------- |
26 |
4 files changed, 35 insertions(+), 16 deletions(-) |
27 |
|
28 |
diff --git a/app-emulation/xen-tools/Manifest b/app-emulation/xen-tools/Manifest |
29 |
index e92f3a49114..a7a4b99ecae 100644 |
30 |
--- a/app-emulation/xen-tools/Manifest |
31 |
+++ b/app-emulation/xen-tools/Manifest |
32 |
@@ -1,4 +1,5 @@ |
33 |
DIST edk2-ef529e6ab7c31290a33045bb1f1837447cc0eb56.tar.gz 38714813 BLAKE2B 1c0670c6447aa7d2610e59481324eafe3dbf54cc0480c855380372cf5b95469de4182b569d1c4429df71ceb9be014cb414e070a808609d185b488519955b8677 SHA512 8eb88006500d9d6982e5565bdb71bf47dfe2b9669e107f48b6b237d7efbbfb54b9fd81841421c347e5c0ca45ef9c08f0b95983c8b922c2e1072b0e42b8ede92c |
34 |
+DIST ipxe-git-d2063b7693e0e35db97b2264aa987eb6341ae779.tar.gz 3792227 BLAKE2B 720ac29ab3187d7abaec33823dda967caab7eea9631123a7619d2f83d3ad6c7bb47db01665a4c54548fe367866606936d36690a06ecf42323b9bd0ef00e41569 SHA512 2b4ae8e65cd678dbb376f24001294eb54aead8d66456e06fc270dec178d90b282c1eb19731234d8b458054e49c5b8b8c4a89345c63ed0a4dafaf205e642b00b7 |
35 |
DIST ovmf-20170321.tar.xz 22141096 BLAKE2B 79e991c8f9deb297865c319e88b6e6d46b1d08067d3fd639c83f2a379670779ecc60c74c2671ea4eb4a6659fe08ac2d7d4ff337b010b42a908a50829a2d18eeb SHA512 f65dabde3df967224e2072817211786ee4fc3994ee31f8f9d6f67fd74e3479e1da459c720169dd81020cdc1777e4600e531bb124b4625c2ded42c6005bdc802a |
36 |
DIST seabios-1.10.0.tar.gz 588213 BLAKE2B 254eb4572a1dac06020a545820efb53a130a027aaab035cd916009b424475f89bd151f82f1bc5103c01c4657d09da3219d2fbcc7728add473011dcfc7bff7410 SHA512 f1b83ce37b59070b488e19f98c95ca9f413cf4969663331b631c3ccb884c90b2db793d32a779ef05cead538c2fd123be4b73391ad2fa20c900a1f14237178d8c |
37 |
DIST seabios-1.12.0.tar.gz 613542 BLAKE2B f145c2db716996bfa9e5c014086ccfaa8ae96ebc158f34303b122b7bf209408c567665d8691364df8d8e886f63e0e72a3f3cd319dfa86ef581023201b5d94e53 SHA512 e52c5363e5bb37b5286e55545aa06bd126218f9d0e3a06ac2e189de68fe3de3256c11ca1bb13357a9c384d7e3af6284083ff3aa587688b5de04ef11b97bdfa27 |
38 |
@@ -9,4 +10,5 @@ DIST xen-4.11.1-upstream-patches-0.tar.xz 45416 BLAKE2B 3990dbf338c2aebe1cd601d7 |
39 |
DIST xen-4.11.1.tar.gz 25152217 BLAKE2B a8dfbeb3d490787725c589e1ce82dcbbcd0be7fb4743b38daf3a8704dffda34d1faabb07d74e01d2fab1572ce0b730c21192469317545e8b3edb3fae1130ef8c SHA512 c1655c5decdaed95a2b9a99652318cfc72f6cfdae957cfe60d635f7787e8850f33e8fafc4c4b8d61fb579c9b9d93028a6382903e71808a0418b931e76d72a649 |
40 |
DIST xen-4.12.0.tar.gz 26949697 BLAKE2B 9175cc9054e4a2b5c34df89a4efd667f86b4861bef9c3310bf431d041f710a7cb265b4d34a76ab18a17a3121392942d2e5d76c5044eb9b957d4255af889fe69a SHA512 0ce366dcac607c9b592c5e9c0f40652eef743913b246bed4b0c380b8d59ac23a6adcd05befec37fc799a61476f47df76d4911cbf1da6ceb51441c546bf2464de |
41 |
DIST xen-gentoo-patches-16.tar.xz 36980 BLAKE2B a59fcb221a915e39fbbc463fa8b1ca1ef00007654936cc17f64853d91737478a6f78480a3e459b07b8c3ddcc81ab9400beb9ea3906750ba69864d1b97db349d2 SHA512 7727e5c7f4ef997eea830618bc26b26f3a99539a1c702264132401e41a328b384346a06b6721f18e3056fc91a2d2d2bf6320e0ae3c79432c7458a24a0d269c56 |
42 |
+DIST xen-gentoo-patches-17.tar.xz 15688 BLAKE2B d5e3bdb15e182c5f0c21adfa5cb5b88e3453e5035659823e3322074646c3ea89b55bf54d0ec6c54966d9739544d156de365a60acf928b799b68978be3380a002 SHA512 f1000ca36166fa21d4b18fb9ecf36f55b1450c312622fbe38545f78aabc150e2d6cce4bd58472c41bd9be8945940a0bc953ba7e470cd5095cf2e7d8a87769b2b |
43 |
DIST xen-ovmf-patches-3.tar.xz 4208 BLAKE2B 0df8f85667a33c91cbfd86c59aec2ae65eca892b45d66eed76f793a52e2748989bc2785861f8bfdf94235ef7a6c0be6572c6e6cce9695469e40f0facd0ce3947 SHA512 abe001053ca702138bbcdd6bea14e2daae5c785f862d6a15001ca894c8ed8617f0c5dc439c6f54a41433b988acf57c71911af1db074aa76732c39d98622a3b5b |
44 |
|
45 |
diff --git a/app-emulation/xen-tools/files/gentoo-patches.conf b/app-emulation/xen-tools/files/gentoo-patches.conf |
46 |
index 8b3a7b89fb0..7b4465859fe 100644 |
47 |
--- a/app-emulation/xen-tools/files/gentoo-patches.conf |
48 |
+++ b/app-emulation/xen-tools/files/gentoo-patches.conf |
49 |
@@ -1,5 +1,6 @@ |
50 |
# Bug 496708 |
51 |
_gx045=" xen-tools-4.10.1-unbundle-ipxe.patch" |
52 |
+_gx054=" xen-tools-4.12.0-unbundle-ipxe.patch" |
53 |
|
54 |
# Bug 379537 |
55 |
_gx017=" fix-gold-ld.patch" |
56 |
@@ -78,4 +79,5 @@ ${_gx027} |
57 |
${_gx028} ${_gx029} |
58 |
${_gx037} ${_gx042} |
59 |
${_gx053} ${_gx050} ${_gx051} |
60 |
+${_gx054} |
61 |
" |
62 |
|
63 |
diff --git a/app-emulation/xen-tools/metadata.xml b/app-emulation/xen-tools/metadata.xml |
64 |
index 5009c6f323e..3d5273174a3 100644 |
65 |
--- a/app-emulation/xen-tools/metadata.xml |
66 |
+++ b/app-emulation/xen-tools/metadata.xml |
67 |
@@ -9,14 +9,17 @@ |
68 |
<flag name="api">Build the C libxenapi bindings</flag> |
69 |
<flag name="flask">Enable the Flask XSM module from NSA</flag> |
70 |
<flag name="hvm">Enable support for hardware based virtualization (VT-x,AMD-v)</flag> |
71 |
+ <flag name="ipxe">Enable ipxe support</flag> |
72 |
+ <flag name="ocaml">Enable support for the ocaml language</flag> |
73 |
+ <flag name="ovmf">Enable support to boot UEFI guest vm, needed by hvm</flag> |
74 |
+ <flag name="pam">Enable pam support</flag> |
75 |
+ <flag name="pygrub">Install the pygrub boot loader</flag> |
76 |
<flag name="qemu">Enable IOEMU support via the use of qemu-dm</flag> |
77 |
<flag name="qemu-traditional">Build the old qemu traditional device model (useful only if you cannot change to the new device model e.g. Windows VMs)</flag> |
78 |
- <flag name="pygrub">Install the pygrub boot loader</flag> |
79 |
+ <flag name="rombios">Enable rombios support, needed by ipxe</flag> |
80 |
<flag name="screen">Enable support for running domain U console in an <pkg>app-misc/screen</pkg> session</flag> |
81 |
+ <flag name="system-ipxe">Using <pkg>sys-firmware/ipxe</pkg> instead of the bundled one</flag> |
82 |
<flag name="system-qemu">Using <pkg>app-emulation/qemu</pkg> instead of the bundled one</flag> |
83 |
<flag name="system-seabios">Using <pkg>sys-firmware/seabios</pkg> instead of the bundled one</flag> |
84 |
- <flag name="ocaml">Enable support for the ocaml language</flag> |
85 |
- <flag name="ovmf">Enable support to boot UEFI guest vm, needed by hvm</flag> |
86 |
- <flag name="pam">Enable pam support</flag> |
87 |
</use> |
88 |
</pkgmetadata> |
89 |
|
90 |
diff --git a/app-emulation/xen-tools/xen-tools-4.12.0.ebuild b/app-emulation/xen-tools/xen-tools-4.12.0-r1.ebuild |
91 |
similarity index 94% |
92 |
rename from app-emulation/xen-tools/xen-tools-4.12.0.ebuild |
93 |
rename to app-emulation/xen-tools/xen-tools-4.12.0-r1.ebuild |
94 |
index f68edb0a8dd..3084ea4bee9 100644 |
95 |
--- a/app-emulation/xen-tools/xen-tools-4.12.0.ebuild |
96 |
+++ b/app-emulation/xen-tools/xen-tools-4.12.0-r1.ebuild |
97 |
@@ -20,7 +20,7 @@ else |
98 |
UPSTREAM_VER= |
99 |
SECURITY_VER= |
100 |
# xen-tools's gentoo patches tarball |
101 |
- GENTOO_VER=16 |
102 |
+ GENTOO_VER=17 |
103 |
# xen-tools's gentoo patches version which apply to this specific ebuild |
104 |
GENTOO_GPV=0 |
105 |
# xen-tools ovmf's patches |
106 |
@@ -28,6 +28,7 @@ else |
107 |
|
108 |
SEABIOS_VER=1.12.0 |
109 |
EDK2_COMMIT=ef529e6ab7c31290a33045bb1f1837447cc0eb56 |
110 |
+ IPXE_COMMIT=d2063b7693e0e35db97b2264aa987eb6341ae779 |
111 |
|
112 |
[[ -n ${UPSTREAM_VER} ]] && \ |
113 |
UPSTREAM_PATCHSET_URI="https://dev.gentoo.org/~dlan/distfiles/${P/-tools/}-upstream-patches-${UPSTREAM_VER}.tar.xz |
114 |
@@ -42,6 +43,7 @@ else |
115 |
|
116 |
SRC_URI="https://downloads.xenproject.org/release/xen/${MY_PV}/xen-${MY_PV}.tar.gz |
117 |
https://www.seabios.org/downloads/seabios-${SEABIOS_VER}.tar.gz |
118 |
+ ipxe? ( http://xenbits.xen.org/xen-extfiles/ipxe-git-${IPXE_COMMIT}.tar.gz ) |
119 |
ovmf? ( https://github.com/tianocore/edk2/archive/${EDK2_COMMIT}.tar.gz -> edk2-${EDK2_COMMIT}.tar.gz |
120 |
${OVMF_PATCHSET_URI} ) |
121 |
${UPSTREAM_PATCHSET_URI} |
122 |
@@ -60,13 +62,17 @@ SLOT="0/$(ver_cut 1-2)" |
123 |
# Inclusion of IUSE ocaml on stabalizing requires maintainer of ocaml to (get off his hands and) make |
124 |
# >=dev-lang/ocaml-4 stable |
125 |
# Masked in profiles/eapi-5-files instead |
126 |
-IUSE="api custom-cflags debug doc flask hvm ocaml ovmf +pam pygrub python +qemu +qemu-traditional screen sdl static-libs system-qemu system-seabios" |
127 |
+IUSE="api custom-cflags debug doc flask +hvm +ipxe ocaml ovmf +pam pygrub python +qemu +qemu-traditional +rombios screen sdl static-libs system-ipxe system-qemu system-seabios" |
128 |
|
129 |
REQUIRED_USE=" |
130 |
${PYTHON_REQUIRED_USE} |
131 |
- pygrub? ( python ) |
132 |
+ ipxe? ( rombios ) |
133 |
ovmf? ( hvm ) |
134 |
- ^^ ( qemu system-qemu )" |
135 |
+ pygrub? ( python ) |
136 |
+ rombios? ( hvm ) |
137 |
+ system-ipxe? ( rombios ) |
138 |
+ ?? ( ipxe system-ipxe ) |
139 |
+ ?? ( qemu system-qemu )" |
140 |
|
141 |
COMMON_DEPEND=" |
142 |
sys-apps/pciutils |
143 |
@@ -92,11 +98,10 @@ DEPEND="${COMMON_DEPEND} |
144 |
$(python_gen_impl_dep sqlite) |
145 |
) |
146 |
!amd64? ( >=sys-apps/dtc-1.4.0 ) |
147 |
- amd64? ( sys-devel/bin86 |
148 |
+ amd64? ( sys-power/iasl |
149 |
system-seabios? ( sys-firmware/seabios ) |
150 |
- sys-firmware/ipxe |
151 |
- sys-devel/dev86 |
152 |
- sys-power/iasl ) |
153 |
+ system-ipxe? ( sys-firmware/ipxe[qemu] ) |
154 |
+ rombios? ( sys-devel/bin86 sys-devel/dev86 ) ) |
155 |
dev-lang/perl |
156 |
app-misc/pax-utils |
157 |
doc? ( |
158 |
@@ -242,12 +247,17 @@ src_prepare() { |
159 |
cp tools/firmware/ovmf-makefile tools/firmware/ovmf-dir-remote/Makefile || die |
160 |
fi |
161 |
|
162 |
+ # ipxe |
163 |
+ if use ipxe; then |
164 |
+ cp "${DISTDIR}/ipxe-git-${IPXE_COMMIT}.tar.gz" tools/firmware/etherboot/_ipxe.tar.gz || die |
165 |
+ fi |
166 |
+ |
167 |
mv tools/qemu-xen/qemu-bridge-helper.c tools/qemu-xen/xen-bridge-helper.c || die |
168 |
|
169 |
# Fix texi2html build error with new texi2html, qemu.doc.html |
170 |
sed -i -e "/texi2html -monolithic/s/-number//" tools/qemu-xen-traditional/Makefile || die |
171 |
|
172 |
- use api || sed -e "/SUBDIRS-\$(LIBXENAPI_BINDINGS) += libxen/d" -i tools/Makefile || die |
173 |
+ use api || sed -e "/SUBDIRS-\$(LIBXENAPI_BINDINGS) += libxen/d" -i tools/Makefile || die |
174 |
sed -e 's:$(MAKE) PYTHON=$(PYTHON) subdirs-$@:LC_ALL=C "$(MAKE)" PYTHON=$(PYTHON) subdirs-$@:' \ |
175 |
-i tools/firmware/Makefile || die |
176 |
|
177 |
@@ -354,11 +364,13 @@ src_configure() { |
178 |
--disable-xen \ |
179 |
--enable-tools \ |
180 |
--enable-docs \ |
181 |
- --with-system-ipxe=${PREFIX}/usr/share/ipxe \ |
182 |
- $(use_enable pam) \ |
183 |
$(use_enable api xenapi) \ |
184 |
- $(use_enable ovmf) \ |
185 |
+ $(use_enable ipxe) \ |
186 |
+ $(usex system-ipxe '--with-system-ipxe=/usr/share/ipxe' '') \ |
187 |
$(use_enable ocaml ocamltools) \ |
188 |
+ $(use_enable ovmf) \ |
189 |
+ $(use_enable pam) \ |
190 |
+ $(use_enable rombios) \ |
191 |
--with-xenstored=$(usex ocaml 'oxenstored' 'xenstored') \ |
192 |
" |