Gentoo Archives: gentoo-commits

From: "Misbakh-Soloviev Vadim A." <mva@×××.name>
To: gentoo-commits@l.g.o
Subject: [gentoo-commits] proj/virtualization:master commit in: app-emulation/xen/, app-emulation/xen-tools/, app-emulation/xen-pvgrub/
Date: Sun, 02 Sep 2012 01:06:13
Message-Id: 1346547951.c96f12de2c480114ae11e7fbb7f489d04e6a2980.mva@gentoo
1 commit: c96f12de2c480114ae11e7fbb7f489d04e6a2980
2 Author: Vadim A. Misbakh-Soloviov <mva <AT> mva <DOT> name>
3 AuthorDate: Sun Sep 2 01:05:34 2012 +0000
4 Commit: Misbakh-Soloviev Vadim A. <mva <AT> mva <DOT> name>
5 CommitDate: Sun Sep 2 01:05:51 2012 +0000
6 URL: http://git.overlays.gentoo.org/gitweb/?p=proj/virtualization.git;a=commit;h=c96f12de
7
8 bump Xen to 4.1.3 (pvgrub needs more testing)
9
10 Signed-off-by: Vadim A. Misbakh-Soloviov <mva <AT> mva.name>
11
12 ---
13 app-emulation/xen-pvgrub/Manifest | 1 +
14 app-emulation/xen-pvgrub/xen-pvgrub-4.1.3.ebuild | 123 ++++++++
15 app-emulation/xen-tools/Manifest | 1 +
16 app-emulation/xen-tools/xen-tools-4.1.3.ebuild | 329 ++++++++++++++++++++++
17 app-emulation/xen/Manifest | 1 +
18 app-emulation/xen/xen-4.1.3.ebuild | 120 ++++++++
19 6 files changed, 575 insertions(+), 0 deletions(-)
20
21 diff --git a/app-emulation/xen-pvgrub/Manifest b/app-emulation/xen-pvgrub/Manifest
22 index 8689f0f..9604cdf 100644
23 --- a/app-emulation/xen-pvgrub/Manifest
24 +++ b/app-emulation/xen-pvgrub/Manifest
25 @@ -2,4 +2,5 @@ DIST grub-0.97.tar.gz 971783 SHA256 4e1d15d12dbd3e9208111d6b806ad5a9857ca8850c47
26 DIST lwip-1.3.0.tar.gz 398933 SHA256 772e4d550e07826665ed0528c071dd5404ef7dbe1825a38c8adbc2a00bca948f SHA512 1465b58279af1647f909450e394fe002ca165f0ff4a0254bfa9fe0e64316f50facdde2729d79a4e632565b4500cf4d6c74192ac0dd3bc9fe09129bbd67ba089d WHIRLPOOL 63bdd9eb70f168ba2006a8f4bbe166b68528abe8364b23cdc1d468ccc4b137bb3447bf90695920f016e09d53d3b93ccf6e3697b3c46840f00b794789cb424acc
27 DIST newlib-1.16.0.tar.gz 12024353 SHA256 db426394965c48c1d29023e1cc6d965ea6b9a9035d8a849be2750ca4659a3d07 SHA512 40eb96bbc6736a16b6399e0cdb73e853d0d90b685c967e77899183446664d64570277a633fdafdefc351b46ce210a99115769a1d9f47ac749d7e82837d4d1ac3 WHIRLPOOL 47f7afd525f482d79d9e964f0e75ee8a77e59551bd19cd94f9b95ac3af9406afa381c9d8d224f76eb568441ab613b2b194f8e5be50aa222f9ed2d9b9761829db
28 DIST pciutils-2.2.9.tar.bz2 212265 SHA256 f60ae61cfbd5da1d849d0beaa21f593c38dac9359f0b3ddc612f447408265b24 SHA512 2b3d98d027e46d8c08037366dde6f0781ca03c610ef2b380984639e4ef39899ed8d8b8e4cd9c9dc54df101279b95879bd66bfd4d04ad07fef41e847ea7ae32b5 WHIRLPOOL ce801947fcf7ba0b56710029f25e746d3e03a80699af9d3570efcd417b12b546264f286b2e78b1402cca766c08e35bdd0ff0a692ab4ad419295f00bcfe91130e
29 +DIST xen-4.1.3.tar.gz 10382132 SHA256 178ef186aca2490126aef69ceb41fc509baf89e0d582768cfa33b17fd145c0e4 SHA512 7a675251840f763c127478a90736ff8a2b20d0097071a4b4ade47cfd6c982817880052305ccf2c3973f38bc19c015ebfe3a38d859e6a24b54ed2d338528f30e3 WHIRLPOOL 8a3fecd491a37c7b84680ada53d53def09dcc769cf18ee66015a5850db98f01cef655bdbd6d3c6699b2759c781fa6c03fe0ea4162d685fe190bcedaef8cb4141
30 DIST zlib-1.2.3.tar.gz 496597 SHA256 1795c7d067a43174113fdf03447532f373e1c6c57c08d61d9e4e9be5e244b05e SHA512 021b958fcd0d346c4ba761bcf0cc40f3522de6186cf5a0a6ea34a70504ce9622b1c2626fce40675bc8282cf5f5ade18473656abc38050f72f5d6480507a2106e WHIRLPOOL 8fd7010faf6a48a9c7ff4bcfe3ce4fe9061eb541259e0a2d0def214e8c4becf2b22e8d6f96f65ca827abffeaa9d96e95ed2402844f99835f7b079fc9f3e84276
31
32 diff --git a/app-emulation/xen-pvgrub/xen-pvgrub-4.1.3.ebuild b/app-emulation/xen-pvgrub/xen-pvgrub-4.1.3.ebuild
33 new file mode 100644
34 index 0000000..64b9804
35 --- /dev/null
36 +++ b/app-emulation/xen-pvgrub/xen-pvgrub-4.1.3.ebuild
37 @@ -0,0 +1,123 @@
38 +# Copyright 1999-2012 Gentoo Foundation
39 +# Distributed under the terms of the GNU General Public License v2
40 +# $Header: /var/cvsroot/gentoo-x86/app-emulation/xen-pvgrub/xen-pvgrub-4.1.2.ebuild,v 1.3 2012/04/24 09:49:47 mgorny Exp $
41 +
42 +EAPI="2"
43 +
44 +inherit flag-o-matic eutils multilib toolchain-funcs
45 +
46 +XEN_EXTFILES_URL="http://xenbits.xensource.com/xen-extfiles"
47 +LIBPCI_URL=ftp://atrey.karlin.mff.cuni.cz/pub/linux/pci
48 +GRUB_URL=mirror://gnu-alpha/grub
49 +SRC_URI="
50 + http://bits.xensource.com/oss-xen/release/${PV}/xen-${PV}.tar.gz
51 + $GRUB_URL/grub-0.97.tar.gz
52 + $XEN_EXTFILES_URL/zlib-1.2.3.tar.gz
53 + $LIBPCI_URL/pciutils-2.2.9.tar.bz2
54 + $XEN_EXTFILES_URL/lwip-1.3.0.tar.gz
55 + $XEN_EXTFILES_URL/newlib/newlib-1.16.0.tar.gz
56 + "
57 +
58 +S="${WORKDIR}/xen-${PV}"
59 +
60 +DESCRIPTION="allows to boot Xen domU kernels from a menu.lst laying inside guest filesystem"
61 +HOMEPAGE="http://xen.org/"
62 +LICENSE="GPL-2"
63 +SLOT="0"
64 +KEYWORDS="~amd64 ~x86"
65 +IUSE="custom-cflags"
66 +
67 +DEPEND="sys-devel/gettext
68 + sys-devel/gcc"
69 +
70 +RDEPEND=">=app-emulation/xen-${PV}"
71 +
72 +src_prepare() {
73 + # Drop .config
74 + sed -e '/-include $(XEN_ROOT)\/.config/d' -i Config.mk || die "Couldn't drop"
75 + # if the user *really* wants to use their own custom-cflags, let them
76 + if use custom-cflags; then
77 + einfo "User wants their own CFLAGS - removing defaults"
78 + # try and remove all the default custom-cflags
79 + find "${S}" -name Makefile -o -name Rules.mk -o -name Config.mk -exec sed \
80 + -e 's/CFLAGS\(.*\)=\(.*\)-O3\(.*\)/CFLAGS\1=\2\3/' \
81 + -e 's/CFLAGS\(.*\)=\(.*\)-march=i686\(.*\)/CFLAGS\1=\2\3/' \
82 + -e 's/CFLAGS\(.*\)=\(.*\)-fomit-frame-pointer\(.*\)/CFLAGS\1=\2\3/' \
83 + -e 's/CFLAGS\(.*\)=\(.*\)-g3*\s\(.*\)/CFLAGS\1=\2 \3/' \
84 + -e 's/CFLAGS\(.*\)=\(.*\)-O2\(.*\)/CFLAGS\1=\2\3/' \
85 + -i {} \;
86 + fi
87 +
88 + sed -i \
89 + -e 's/WGET=.*/WGET=cp -t . /' \
90 + -e "s;\$(XEN_EXTFILES_URL);${DISTDIR};" \
91 + -e 's/$(LD)/$(LD) LDFLAGS=/' \
92 + -e 's;install-grub: pv-grub;install-grub:;' \
93 + "${S}"/stubdom/Makefile || die
94 + # Fix gcc-4.6
95 + sed -i \
96 + -e "s:-Werror::g" \
97 + -i tools/libxc/Makefile \
98 + -i extras/mini-os/minios.mk || die
99 +
100 + #Prevent internal downloading
101 + cp $DISTDIR/zlib-1.2.3.tar.gz \
102 + $DISTDIR/pciutils-2.2.9.tar.bz2 \
103 + $DISTDIR/lwip-1.3.0.tar.gz \
104 + $DISTDIR/newlib-1.16.0.tar.gz \
105 + $DISTDIR/grub-0.97.tar.gz \
106 + ./stubdom/ || die "files not coped to stubdom"
107 +
108 + einfo "files copied to stubdom"
109 +
110 + sed -e 's:^\t$(WGET) $(LWIP_URL):#\t$(WGET) $(LWIP_URL):' \
111 + -e 's:^\t$(WGET) $(NEWLIB_URL):#\t$(WGET) $(NEWLIB_URL):' \
112 + -e 's:^\t$(WGET) $(ZLIB_URL):#\t$(WGET) $(ZLIB_URL):' \
113 + -e 's:^\t$(WGET) $(LIBPCI_URL):#\t$(WGET) $(LIBPCI_URL):' \
114 + -e 's:^\t$(WGET) $(GRUB_URL):#$(WGET) $(GRUB_URL):' \
115 + -i stubdom/Makefile || die "stubdom/Makefile could not be adjusted"
116 +}
117 +
118 +src_compile() {
119 + use custom-cflags || unset CFLAGS
120 + if test-flag-CC -fno-strict-overflow; then
121 + append-flags -fno-strict-overflow
122 + fi
123 +
124 + emake CC="$(tc-getCC)" LD="$(tc-getLD)" -C tools/include || die "prepare libelf headers failed"
125 +
126 + if use x86; then
127 + emake -j1 CC="$(tc-getCC)" LD="$(tc-getLD)" \
128 + XEN_TARGET_ARCH="x86_32" -C stubdom pv-grub || \
129 + die "compile pv-grub_x86_32 failed"
130 + fi
131 + if use amd64; then
132 + emake -j1 CC="$(tc-getCC)" LD="$(tc-getLD)" \
133 + XEN_TARGET_ARCH="x86_64" -C stubdom pv-grub || \
134 + die "compile pv-grub_x86_64 failed"
135 + if use multilib; then
136 + multilib_toolchain_setup x86
137 + emake -j1 \
138 + XEN_TARGET_ARCH="x86_32" -C stubdom pv-grub || \
139 + die "compile pv-grub_x86_32 failed"
140 + fi
141 + fi
142 +}
143 +
144 +src_install() {
145 + if use x86; then
146 + emake XEN_TARGET_ARCH="x86_32" DESTDIR="${D}" -C stubdom install-grub || die "install pv-grub_x86_32 failed"
147 + fi
148 + if use amd64; then
149 + emake XEN_TARGET_ARCH="x86_64" DESTDIR="${D}" -C stubdom install-grub || die "install pv-grub_x86_64 failed"
150 + if use multilib; then
151 + emake XEN_TARGET_ARCH="x86_32" DESTDIR="${D}" -C stubdom install-grub || die "install pv-grub_x86_32 failed"
152 + fi
153 + fi
154 +}
155 +
156 +pkg_postinst() {
157 + elog "Official Xen Guide and the unoffical wiki page:"
158 + elog " http://www.gentoo.org/doc/en/xen-guide.xml"
159 + elog " http://en.gentoo-wiki.com/wiki/Xen/"
160 +}
161
162 diff --git a/app-emulation/xen-tools/Manifest b/app-emulation/xen-tools/Manifest
163 index d4f52aa..b0c8473 100644
164 --- a/app-emulation/xen-tools/Manifest
165 +++ b/app-emulation/xen-tools/Manifest
166 @@ -1,3 +1,4 @@
167 DIST ipxe-git-9a93db3f0947484e30e753bbd61a10b17336e20e.tar.gz 2888480 SHA256 ea2a52a999afab7fefa6300e0f1b38409c170a7503a51d8b572d790e71f2d0f0 SHA512 02314727af850bdf51c1963e8da258a65868f3ef116e9833918c770b8737cd1501891d4dc90d787702a1f34e35198e57373d730b7e2e6671e5fa93ece7c2f073 WHIRLPOOL 9a232852c3dee266dcbd27fae6814497814a0f65123484c37196a99c6cc746a348cf38c77ba084e62e052c64e950b34aa2f152a154e99c0366746f97941b23d7
168 DIST ipxe-git-v1.0.0.tar.gz 1996881 SHA256 d3128bfda9a1542049c278755f85bbcbb8441da7bfd702d511ce237fcf86a723 SHA512 6921fb857ca615899a5912d5590ca36b6f46daf828b85edc75461c08a189d9fed71ee74a82e42724da7a1355e45070d28a0a61694b3a4872c3554390e4bb4147 WHIRLPOOL 160e24eea479c9d67a8a5c7c5182864904ee594167f061adc40a3e74974197b6befe2ecdb76af1c101ff1a5697b060dae71dd3f9f969c8e18054526584d57031
169 DIST xen-4.1.2.tar.gz 10365786 SHA256 7d9c93057cf480d3f1efa792b19285a84fa3c06060ea5c5c453be00887389b0d SHA512 8f50f238b0b474ec5556279cbd51d704b4365033f2541a5d0376f287b26b7e8f0193172041109d97bb76d35ace3adf71e12f89f5766ff79a8ea861e7282f00d7 WHIRLPOOL 93a4bdd05125ef722464ef682798191c8b3db7228cbc0a27bcbe7932a7776491f90e727e1fcc4a9e7ec3eada7f56c567c07ad61cdda2f514109f702800fe5566
170 +DIST xen-4.1.3.tar.gz 10382132 SHA256 178ef186aca2490126aef69ceb41fc509baf89e0d582768cfa33b17fd145c0e4 SHA512 7a675251840f763c127478a90736ff8a2b20d0097071a4b4ade47cfd6c982817880052305ccf2c3973f38bc19c015ebfe3a38d859e6a24b54ed2d338528f30e3 WHIRLPOOL 8a3fecd491a37c7b84680ada53d53def09dcc769cf18ee66015a5850db98f01cef655bdbd6d3c6699b2759c781fa6c03fe0ea4162d685fe190bcedaef8cb4141
171
172 diff --git a/app-emulation/xen-tools/xen-tools-4.1.3.ebuild b/app-emulation/xen-tools/xen-tools-4.1.3.ebuild
173 new file mode 100644
174 index 0000000..4d22347
175 --- /dev/null
176 +++ b/app-emulation/xen-tools/xen-tools-4.1.3.ebuild
177 @@ -0,0 +1,329 @@
178 +# Copyright 1999-2012 Gentoo Foundation
179 +# Distributed under the terms of the GNU General Public License v2
180 +# $Header: /var/cvsroot/gentoo-x86/app-emulation/xen-tools/xen-tools-4.1.2-r2.ebuild,v 1.3 2012/01/12 13:40:01 alexxy Exp $
181 +
182 +EAPI="4"
183 +PYTHON_DEPEND="2"
184 +PYTHON_USE_WITH="xml threads"
185 +
186 +if [[ $PV == *9999 ]]; then
187 + KEYWORDS=""
188 + REPO="xen-unstable.hg"
189 + EHG_REPO_URI="http://xenbits.xensource.com/${REPO}"
190 + S="${WORKDIR}/${REPO}"
191 + live_eclass="mercurial"
192 +else
193 + KEYWORDS="~amd64 ~x86"
194 + XEN_EXTFILES_URL="http://xenbits.xensource.com/xen-extfiles"
195 + SRC_URI="http://bits.xensource.com/oss-xen/release/${PV}/xen-${PV}.tar.gz \
196 + $XEN_EXTFILES_URL/ipxe-git-v1.0.0.tar.gz"
197 + S="${WORKDIR}/xen-${PV}"
198 +fi
199 +
200 +inherit flag-o-matic eutils multilib python toolchain-funcs ${live_eclass}
201 +
202 +DESCRIPTION="Xend daemon and tools"
203 +HOMEPAGE="http://xen.org/"
204 +DOCS=( README docs/README.xen-bugtool docs/ChangeLog )
205 +
206 +LICENSE="GPL-2"
207 +SLOT="0"
208 +IUSE="api custom-cflags debug doc flask hvm qemu pygrub screen static-libs xend"
209 +
210 +REQUIRED_USE="hvm? ( qemu )"
211 +
212 +QA_PRESTRIPPED="/usr/share/xen/qemu/openbios-ppc \
213 + /usr/share/xen/qemu/openbios-sparc64 \
214 + /usr/share/xen/qemu/openbios-sparc32"
215 +QA_WX_LOAD=${QA_PRESTRIPPED}
216 +
217 +CDEPEND="<dev-libs/yajl-2
218 + dev-python/lxml
219 + dev-python/pypam
220 + dev-python/pyxml
221 + sys-libs/zlib
222 + hvm? ( media-libs/libsdl
223 + sys-power/iasl )
224 + api? ( dev-libs/libxml2 net-misc/curl )"
225 +
226 +DEPEND="${CDEPEND}
227 + sys-devel/gcc
228 + dev-lang/perl
229 + app-misc/pax-utils
230 + dev-ml/findlib
231 + doc? (
232 + app-doc/doxygen
233 + dev-tex/latex2html[png,gif]
234 + media-gfx/transfig
235 + media-gfx/graphviz
236 + dev-tex/xcolor
237 + dev-texlive/texlive-latexextra
238 + virtual/latex-base
239 + dev-tex/latexmk
240 + dev-texlive/texlive-latex
241 + dev-texlive/texlive-pictures
242 + dev-texlive/texlive-latexrecommended
243 + )
244 + hvm? (
245 + x11-proto/xproto
246 + sys-devel/dev86
247 + ) pygrub? ( dev-lang/python[ncurses] )
248 + "
249 +
250 +RDEPEND="${CDEPEND}
251 + sys-apps/iproute2
252 + net-misc/bridge-utils
253 + >=dev-lang/ocaml-3.12.0
254 + screen? (
255 + app-misc/screen
256 + app-admin/logrotate
257 + )
258 + || ( sys-fs/udev sys-apps/hotplug )"
259 +
260 +# hvmloader is used to bootstrap a fully virtualized kernel
261 +# Approved by QA team in bug #144032
262 +QA_WX_LOAD="usr/lib/xen/boot/hvmloader"
263 +QA_EXECSTACK="usr/share/xen/qemu/openbios-sparc32
264 + usr/share/xen/qemu/openbios-sparc64"
265 +RESTRICT="test"
266 +
267 +pkg_setup() {
268 + python_set_active_version 2
269 + python_pkg_setup
270 + export "CONFIG_LOMOUNT=y"
271 +
272 + if use qemu; then
273 + export "CONFIG_IOEMU=y"
274 + else
275 + export "CONFIG_IOEMU=n"
276 + fi
277 +
278 + if ! use x86 && ! has x86 $(get_all_abis) && use hvm; then
279 + eerror "HVM (VT-x and AMD-v) cannot be built on this system. An x86 or"
280 + eerror "an amd64 multilib profile is required. Remove the hvm use flag"
281 + eerror "to build xen-tools on your current profile."
282 + die "USE=hvm is unsupported on this system."
283 + fi
284 +
285 + if [[ -z ${XEN_TARGET_ARCH} ]] ; then
286 + if use x86 && use amd64; then
287 + die "Confusion! Both x86 and amd64 are set in your use flags!"
288 + elif use x86; then
289 + export XEN_TARGET_ARCH="x86_32"
290 + elif use amd64 ; then
291 + export XEN_TARGET_ARCH="x86_64"
292 + else
293 + die "Unsupported architecture!"
294 + fi
295 + fi
296 +
297 + use api && export "LIBXENAPI_BINDINGS=y"
298 + use flask && export "FLASK_ENABLE=y"
299 +}
300 +
301 +src_prepare() {
302 + cp "$DISTDIR/ipxe-git-v1.0.0.tar.gz" tools/firmware/etherboot/ipxe.tar.gz
303 + sed -e 's/-Wall//' -i Config.mk || die "Couldn't sanitize CFLAGS"
304 +
305 + # Drop .config
306 + sed -e '/-include $(XEN_ROOT)\/.config/d' -i Config.mk || die "Couldn't drop"
307 + # Xend
308 + if ! use xend; then
309 + sed -e 's:xm xen-bugtool xen-python-path xend:xen-bugtool xen-python-path:' \
310 + -i tools/misc/Makefile || die "Disabling xend failed" || die
311 + sed -e 's:^XEND_INITD:#XEND_INITD:' \
312 + -i tools/examples/Makefile || "Disabling xend failed" || die
313 + fi
314 + # if the user *really* wants to use their own custom-cflags, let them
315 + if use custom-cflags; then
316 + einfo "User wants their own CFLAGS - removing defaults"
317 +
318 + # try and remove all the default custom-cflags
319 + find "${S}" -name Makefile -o -name Rules.mk -o -name Config.mk -exec sed \
320 + -e 's/CFLAGS\(.*\)=\(.*\)-O3\(.*\)/CFLAGS\1=\2\3/' \
321 + -e 's/CFLAGS\(.*\)=\(.*\)-march=i686\(.*\)/CFLAGS\1=\2\3/' \
322 + -e 's/CFLAGS\(.*\)=\(.*\)-fomit-frame-pointer\(.*\)/CFLAGS\1=\2\3/' \
323 + -e 's/CFLAGS\(.*\)=\(.*\)-g3*\s\(.*\)/CFLAGS\1=\2 \3/' \
324 + -e 's/CFLAGS\(.*\)=\(.*\)-O2\(.*\)/CFLAGS\1=\2\3/' \
325 + -i {} \; || die "failed to re-set custom-cflags"
326 + fi
327 +
328 + if ! use pygrub; then
329 + sed -e '/^SUBDIRS-$(PYTHON_TOOLS) += pygrub$/d' -i tools/Makefile || die
330 + fi
331 +
332 + # Disable hvm support on systems that don't support x86_32 binaries.
333 + if ! use hvm; then
334 + chmod 644 tools/check/check_x11_devel
335 + sed -e '/^CONFIG_IOEMU := y$/d' -i config/*.mk || die
336 + sed -e '/SUBDIRS-$(CONFIG_X86) += firmware/d' -i tools/Makefile || die
337 + fi
338 +
339 + # Don't bother with qemu, only needed for fully virtualised guests
340 + if ! use qemu; then
341 + sed -e "/^CONFIG_IOEMU := y$/d" -i config/*.mk || die
342 + sed -e "s:install-tools\: tools/ioemu-dir:install-tools\: :g" -i Makefile || die
343 + fi
344 +
345 + # Fix build for gcc-4.6
346 + sed -e "s:-Werror::g" -i tools/xenstat/xentop/Makefile || die
347 +
348 + # Fix network broadcast on bridged networks
349 + epatch "${FILESDIR}/${PN}-3.4.0-network-bridge-broadcast.patch"
350 +
351 + # Do not strip binaries
352 + epatch "${FILESDIR}/${PN}-3.3.0-nostrip.patch"
353 +
354 + # Prevent the downloading of ipxe
355 + sed -e 's:^\tif ! wget -O _$T:#\tif ! wget -O _$T:' \
356 + -e 's:^\tfi:#\tfi:' -i \
357 + -e 's:^\tmv _$T $T:#\tmv _$T $T:' \
358 + -i tools/firmware/etherboot/Makefile || die
359 +
360 + # Fix bridge by idella4, bug #362575
361 + epatch "${FILESDIR}/${PN}-4.1.1-bridge.patch"
362 +
363 + # Remove check_curl, new fix to Bug #386487
364 + epatch "${FILESDIR}/${PN}-4.1.1-curl.patch"
365 + sed -i -e 's|has_or_fail curl-config|has_or_fail curl-config\nset -ux|' \
366 + tools/check/check_curl || die
367 +
368 + # Don't build ipxe with pie on hardened, Bug #360805
369 + if gcc-specs-pie; then
370 + epatch "${FILESDIR}/ipxe-nopie.patch"
371 + fi
372 +
373 + # Fix create.py for pyxml Bug 367735
374 + epatch "${FILESDIR}/xen-tools-4.1.2-pyxml.patch"
375 +}
376 +
377 +src_compile() {
378 + export VARTEXFONTS="${T}/fonts"
379 + local myopt
380 + use debug && myopt="${myopt} debug=y"
381 +
382 + use custom-cflags || unset CFLAGS
383 + if test-flag-CC -fno-strict-overflow; then
384 + append-flags -fno-strict-overflow
385 + fi
386 +
387 + unset LDFLAGS
388 + emake CC=$(tc-getCC) LD=$(tc-getLD) -C tools ${myopt}
389 +
390 + if use doc; then
391 + sh ./docs/check_pkgs || die "package check failed"
392 + emake docs
393 + emake dev-docs
394 + fi
395 +
396 + emake -C docs man-pages
397 +}
398 +
399 +src_install() {
400 + # Override auto-detection in the build system, bug #382573
401 + export INITD_DIR=/etc/init.d
402 + export CONFIG_LEAF_DIR=default
403 +
404 + emake DESTDIR="${ED}" DOCDIR="/usr/share/doc/${PF}" XEN_PYTHON_NATIVE_INSTALL=y install-tools
405 + python_convert_shebangs -r 2 "${ED}"
406 +
407 + # Remove RedHat-specific stuff
408 + rm -rf "${ED}"/etc/init.d/xen* "${ED}"/etc/default || die
409 +
410 + # uncomment lines in xl.conf
411 + sed -e 's:^#autoballoon=1:autoballoon=1:' \
412 + -e 's:^#lockfile="/var/lock/xl":lockfile="/var/lock/xl":' \
413 + -e 's:^#vifscript="vif-bridge":vifscript="vif-bridge":' \
414 + -i tools/examples/xl.conf || die
415 +
416 +# dodoc README docs/README.xen-bugtool docs/ChangeLog
417 + if use doc; then
418 + emake DESTDIR="${ED}" DOCDIR="/usr/share/doc/${PF}" install-docs
419 +
420 + dohtml -r docs/api/
421 + docinto pdf
422 + dodoc ${DOCS[@]}
423 + #docs/api/tools/python/latex/refman.pdf
424 + [ -d "${ED}"/usr/share/doc/xen ] && mv "${ED}"/usr/share/doc/xen/* "${ED}"/usr/share/doc/${PF}/html
425 + fi
426 + rm -rf "${ED}"/usr/share/doc/xen/
427 + doman docs/man?/*
428 +
429 + if use xend; then
430 + newinitd "${FILESDIR}"/xend.initd-r2 xend || die "Couldn't install xen.initd"
431 + fi
432 + newconfd "${FILESDIR}"/xendomains.confd xendomains
433 + newconfd "${FILESDIR}"/xenstored.confd xenstored
434 + newconfd "${FILESDIR}"/xenconsoled.confd xenconsoled
435 + newinitd "${FILESDIR}"/xendomains.initd-r2 xendomains
436 + newinitd "${FILESDIR}"/xenstored.initd xenstored
437 + newinitd "${FILESDIR}"/xenconsoled.initd xenconsoled
438 +
439 + if use screen; then
440 + cat "${FILESDIR}"/xendomains-screen.confd >> "${ED}"/etc/conf.d/xendomains || die
441 + cp "${FILESDIR}"/xen-consoles.logrotate "${ED}"/etc/xen/ || die
442 + keepdir /var/log/xen-consoles
443 + fi
444 +
445 + # For -static-libs wrt Bug 384355
446 + if ! use static-libs; then
447 + rm -f ${ED}usr/$(get_libdir)/*.a ${ED}usr/$(get_libdir)/ocaml/*/*.a
448 + fi
449 +
450 + python_convert_shebangs -r 2 "${ED}"
451 + # xend expects these to exist
452 + keepdir /var/run/xenstored /var/lib/xenstored /var/xen/dump /var/lib/xen /var/log/xen
453 +
454 + # for xendomains
455 + keepdir /etc/xen/auto
456 +}
457 +
458 +pkg_postinst() {
459 + elog "Official Xen Guide and the unoffical wiki page:"
460 + elog " http://www.gentoo.org/doc/en/xen-guide.xml"
461 + elog " http://gentoo-wiki.com/HOWTO_Xen_and_Gentoo"
462 +
463 + if [[ "$(scanelf -s __guard -q $(type -P python))" ]] ; then
464 + echo
465 + ewarn "xend may not work when python is built with stack smashing protection (ssp)."
466 + ewarn "If 'xm create' fails with '<ProtocolError for /RPC2: -1 >', see bug #141866"
467 + ewarn "This probablem may be resolved as of Xen 3.0.4, if not post in the bug."
468 + fi
469 +
470 + if ! has_version "dev-lang/python[ncurses]"; then
471 + echo
472 + ewarn "NB: Your dev-lang/python is built without USE=ncurses."
473 + ewarn "Please rebuild python with USE=ncurses to make use of xenmon.py."
474 + fi
475 +
476 + if has_version "sys-apps/iproute2[minimal]"; then
477 + echo
478 + ewarn "Your sys-apps/iproute2 is built with USE=minimal. Networking"
479 + ewarn "will not work until you rebuild iproute2 without USE=minimal."
480 + fi
481 +
482 + if ! use hvm; then
483 + echo
484 + elog "HVM (VT-x and AMD-V) support has been disabled. If you need hvm"
485 + elog "support enable the hvm use flag."
486 + elog "An x86 or amd64 multilib system is required to build HVM support."
487 + echo
488 + elog "The qemu use flag has been removed and replaced with hvm."
489 + fi
490 +
491 + if use xend; then
492 + echo
493 + elog "xend capability has been enabled and installed"
494 + fi
495 +
496 + if grep -qsF XENSV= "${ROOT}/etc/conf.d/xend"; then
497 + echo
498 + elog "xensv is broken upstream (Gentoo bug #142011)."
499 + elog "Please remove '${ROOT%/}/etc/conf.d/xend', as it is no longer needed."
500 + fi
501 + python_mod_optimize $(use pygrub && echo grub) xen
502 +}
503 +
504 +pkg_postrm() {
505 + python_mod_cleanup $(use pygrub && echo grub) xen
506 +}
507
508 diff --git a/app-emulation/xen/Manifest b/app-emulation/xen/Manifest
509 new file mode 100644
510 index 0000000..a6afc84
511 --- /dev/null
512 +++ b/app-emulation/xen/Manifest
513 @@ -0,0 +1 @@
514 +DIST xen-4.1.3.tar.gz 10382132 SHA256 178ef186aca2490126aef69ceb41fc509baf89e0d582768cfa33b17fd145c0e4 SHA512 7a675251840f763c127478a90736ff8a2b20d0097071a4b4ade47cfd6c982817880052305ccf2c3973f38bc19c015ebfe3a38d859e6a24b54ed2d338528f30e3 WHIRLPOOL 8a3fecd491a37c7b84680ada53d53def09dcc769cf18ee66015a5850db98f01cef655bdbd6d3c6699b2759c781fa6c03fe0ea4162d685fe190bcedaef8cb4141
515
516 diff --git a/app-emulation/xen/xen-4.1.3.ebuild b/app-emulation/xen/xen-4.1.3.ebuild
517 new file mode 100644
518 index 0000000..3bd3903
519 --- /dev/null
520 +++ b/app-emulation/xen/xen-4.1.3.ebuild
521 @@ -0,0 +1,120 @@
522 +# Copyright 1999-2011 Gentoo Foundation
523 +# Distributed under the terms of the GNU General Public License v2
524 +# $Header: /var/cvsroot/gentoo-x86/app-emulation/xen/xen-4.1.2.ebuild,v 1.2 2011/11/07 17:34:55 alexxy Exp $
525 +
526 +EAPI="4"
527 +
528 +if [[ $PV == *9999 ]]; then
529 + KEYWORDS=""
530 + REPO="xen-unstable.hg"
531 + EHG_REPO_URI="http://xenbits.xensource.com/${REPO}"
532 + S="${WORKDIR}/${REPO}"
533 + live_eclass="mercurial"
534 +else
535 + KEYWORDS="~amd64 ~x86"
536 + SRC_URI="http://bits.xensource.com/oss-xen/release/${PV}/xen-${PV}.tar.gz"
537 +fi
538 +
539 +inherit mount-boot flag-o-matic toolchain-funcs ${live_eclass}
540 +
541 +DESCRIPTION="The Xen virtual machine monitor"
542 +HOMEPAGE="http://xen.org/"
543 +
544 +LICENSE="GPL-2"
545 +SLOT="0"
546 +IUSE="custom-cflags debug flask pae xsm"
547 +
548 +RDEPEND="|| ( sys-boot/grub
549 + sys-boot/grub-static )"
550 +PDEPEND="~app-emulation/xen-tools-${PV}"
551 +
552 +RESTRICT="test"
553 +
554 +# Approved by QA team in bug #144032
555 +QA_WX_LOAD="boot/xen-syms-${PV}"
556 +
557 +REQUIRED_USE="
558 + flask? ( xsm )
559 + "
560 +
561 +pkg_setup() {
562 + if [[ -z ${XEN_TARGET_ARCH} ]]; then
563 + if use x86 && use amd64; then
564 + die "Confusion! Both x86 and amd64 are set in your use flags!"
565 + elif use x86; then
566 + export XEN_TARGET_ARCH="x86_32"
567 + elif use amd64; then
568 + export XEN_TARGET_ARCH="x86_64"
569 + else
570 + die "Unsupported architecture!"
571 + fi
572 + fi
573 +
574 + if use flask ; then
575 + export "XSM_ENABLE=y"
576 + export "FLASK_ENABLE=y"
577 + elif use xsm ; then
578 + export "XSM_ENABLE=y"
579 + fi
580 +}
581 +
582 +src_prepare() {
583 +
584 + # Drop .config
585 + sed -e '/-include $(XEN_ROOT)\/.config/d' -i Config.mk || die "Couldn't drop"
586 +
587 + # if the user *really* wants to use their own custom-cflags, let them
588 + if use custom-cflags; then
589 + einfo "User wants their own CFLAGS - removing defaults"
590 + # try and remove all the default custom-cflags
591 + find "${S}" -name Makefile -o -name Rules.mk -o -name Config.mk -exec sed \
592 + -e 's/CFLAGS\(.*\)=\(.*\)-O3\(.*\)/CFLAGS\1=\2\3/' \
593 + -e 's/CFLAGS\(.*\)=\(.*\)-march=i686\(.*\)/CFLAGS\1=\2\3/' \
594 + -e 's/CFLAGS\(.*\)=\(.*\)-fomit-frame-pointer\(.*\)/CFLAGS\1=\2\3/' \
595 + -e 's/CFLAGS\(.*\)=\(.*\)-g3*\s\(.*\)/CFLAGS\1=\2 \3/' \
596 + -e 's/CFLAGS\(.*\)=\(.*\)-O2\(.*\)/CFLAGS\1=\2\3/' \
597 + -i {} \; || die "failed to re-set custom-cflags"
598 + fi
599 +
600 + # remove -Werror for gcc-4.6's sake
601 + find "${S}" -name 'Makefile*' -o -name '*.mk' -o -name 'common.make' | \
602 + xargs sed -i 's/ *-Werror */ /'
603 + # not strictly necessary to fix this
604 + sed -i 's/, "-Werror"//' "${S}/tools/python/setup.py" || die "failed to re-set setup.py"
605 +}
606 +
607 +src_configure() {
608 + use debug && myopt="${myopt} debug=y"
609 + use pae && myopt="${myopt} pae=y"
610 +
611 + if use custom-cflags; then
612 + filter-flags -fPIE -fstack-protector
613 + replace-flags -O3 -O2
614 + else
615 + unset CFLAGS
616 + fi
617 +}
618 +
619 +src_compile() {
620 + # Send raw LDFLAGS so that --as-needed works
621 + emake CC="$(tc-getCC)" LDFLAGS="$(raw-ldflags)" LD="$(tc-getLD)" -C xen ${myopt}
622 +}
623 +
624 +src_install() {
625 + local myopt
626 + use debug && myopt="${myopt} debug=y"
627 + use pae && myopt="${myopt} pae=y"
628 +
629 + emake LDFLAGS="$(raw-ldflags)" DESTDIR="${ED}" -C xen ${myopt} install
630 +}
631 +
632 +pkg_postinst() {
633 + elog "Official Xen Guide and the unoffical wiki page:"
634 + elog " http://www.gentoo.org/doc/en/xen-guide.xml"
635 + elog " http://en.gentoo-wiki.com/wiki/Xen/"
636 +
637 + if use pae; then
638 + echo
639 + ewarn "This is a PAE build of Xen. It will *only* boot PAE kernels!"
640 + fi
641 +}