security bump, bug 545144, fix XSA-125,126,127
authorYixun Lan <dlan@gentoo.org>
Fri, 3 Apr 2015 05:01:20 +0000 (05:01 +0000)
committerYixun Lan <dlan@gentoo.org>
Fri, 3 Apr 2015 05:01:20 +0000 (05:01 +0000)
Package-Manager: portage-2.2.18/cvs/Linux x86_64

app-emulation/xen/ChangeLog
app-emulation/xen/Manifest
app-emulation/xen/xen-4.2.5-r8.ebuild [new file with mode: 0644]
app-emulation/xen/xen-4.4.2-r1.ebuild [new file with mode: 0644]
app-emulation/xen/xen-4.5.0-r5.ebuild [new file with mode: 0644]

index 49fd36bc5769d95bb5a799d1f647f473202b7e57..f1886b9554854c0aec45f11ab5f072d29898eb23 100644 (file)
@@ -1,6 +1,14 @@
 # ChangeLog for app-emulation/xen
 # Copyright 1999-2015 Gentoo Foundation; Distributed under the GPL v2
-# $Header: /var/cvsroot/gentoo-x86/app-emulation/xen/ChangeLog,v 1.194 2015/03/28 13:25:42 dlan Exp $
+# $Header: /var/cvsroot/gentoo-x86/app-emulation/xen/ChangeLog,v 1.195 2015/04/03 05:01:16 dlan Exp $
+
+*xen-4.5.0-r5 (03 Apr 2015)
+*xen-4.4.2-r1 (03 Apr 2015)
+*xen-4.2.5-r8 (03 Apr 2015)
+
+  03 Apr 2015; <dlan@gentoo.org> +xen-4.2.5-r8.ebuild, +xen-4.4.2-r1.ebuild,
+  +xen-4.5.0-r5.ebuild:
+  security bump, bug 545144, fix XSA-125,126,127
 
 *xen-4.4.2 (28 Mar 2015)
 
index 8663dc789ad85ba1b5f2e54e52d428bfba49e4d0..40443eb147c6188f41c72117af90bbc64df3b5e6 100644 (file)
@@ -1,6 +1,3 @@
------BEGIN PGP SIGNED MESSAGE-----
-Hash: SHA256
-
 AUX xen-4-fix_dotconfig-gcc.patch 1525 SHA256 943119cde08d16d05a927a85fb54ee4cee323cb4870dd0d90a552051fedc9907 SHA512 aa507594d96159c4e01ccfc4781f9afe7b6fe125c9df5925128c002f28fdf04999954b523cc53c6d7eaa49cb6e05120605f4e7d6f8bab6d5718d73a60b5accea WHIRLPOOL 6f4395203199b8037363ed56256e12f426f0c26f449c5e4a001c5454370a0e412f18cd03099866c30592ee0413556b85b3c374efb7172212db37ff3891c004af
 AUX xen-4.2-efi.patch 2216 SHA256 0886961e2656fe7e140dd0ac0e6620d4c14ef0796b8f8889bda163e2a9f8db8b SHA512 ecaa4f1f1c3ca737931fe5343529708dfb7ec7040dbf2acf2b155e7c7f019ce3e2630ddb302213570a2647fe220dbf23eb6c28618d6b1be9161e25fcadd71cb4 WHIRLPOOL 63b56e22683b2755ae17e7871c1b535d750f655ff8c003979d039654f5ef3303457b5d4469f216c1744202d4d1f4561f7498c1d93171ab1110a93e3a2fa8db8d
 AUX xen-4.3-fix_dotconfig-gcc.patch 8854 SHA256 4e0d22acdb4ecc4a1d418ec91bc6ddb9ef1c283ee3ca1f67bac85d3116d76ccc SHA512 b4c969b0cf166862ea5c5cb0912d7dae8c5bf7befd6dd6bdf4e56df8a4daf85c0a36c94247053f74edc0f24b1c15a18e7ddae9d24ad28d54b726a1fbbab442be WHIRLPOOL de7b614ae486fd2cc591b405b475745b003c638c9be4c8153b61a368802af36d2a2974d1e022eb14fb58ad9260f9f82c438c84cb65c3499076c579f7e1c3e6ad
@@ -15,30 +12,15 @@ DIST xen-4.4.1.tar.gz 18134427 SHA256 55b49d3c4575d7791275125ff87c0f86f1d1e0f7f2
 DIST xen-4.4.2.tar.gz 18137195 SHA256 cd53592e86669e5e8c4d4a731b0199e8af17d8eadbb8f26dbb69f1b751259204 SHA512 7dae2a1d601d5c65c350ea9fe9870551ec53dff47b6ebe56e99285fd1112aa1cba3a2594e294b871defcf43fb7fccace9f18910e69f02dfce162d7bf453eb07b WHIRLPOOL 2dfe3de5fd800d2172ad2c95117e0646c6b2045cfcb9fa5eccc46b695f1c58aa861bf2a591f78db5baf5a89894b3fa26dc1ba63cb0d57f87be4df5c445c82a94
 DIST xen-4.5.0-upstream-patches-3.tar.xz 27560 SHA256 25bd1414f56b2279efc0ba6a915fd86cf5d3c2fdee26da5876a8a4e875aa0132 SHA512 73bfba732b344bc45bf484b586b004852207fed08d69263ba1354ad14a2941df131526c2669a93b8bc55f231ddfc13f1d30a3f4aefdbb7e609616ab555396f76 WHIRLPOOL 454f8d1b5e4b433bca7691323220867ab50467aca998ccdfeb4dc51a44e4315ac32d830560cdf29ea31f39fc3c41d03945aee2ec0bb4e8cb8c8912654ac34ff6
 DIST xen-4.5.0.tar.gz 18404933 SHA256 5bdb40e2b28d2eeb541bd71a9777f40cbe2ae444b987521d33f099541a006f3b SHA512 31621fbaf621ad350125d03366ecff4dec5d810b0c1242ca0e28788f7556ac1443d7ee9247e1f76dec07e148e0b4ae16d08a7c10101bb78d6529375f3e40998e WHIRLPOOL 4a77588a4aa4846cfbf9493ab20bd2f293c55a941a5639fdd166a43f284cc0cc7218969def755a1acd89e640181bdd862fff0b566cfb8e628d73deeb6369c924
+DIST xen-security-patches-0.tar.xz 5944 SHA256 c0456793064185f0781668264a09a2412a25e2ff8c4ce0d332204e37b94d7e96 SHA512 de812e66563e608548b220aa00c8fd71973af748a00cea79959f46a5b6893a38248d2ea455026af43f47e3f5e566d08b5a6f3d18f22e940d75d2a2ca76cec3d3 WHIRLPOOL 3e18d32798bdfe584ee8d102963090b569ec3660fd5723d8c608091e5c7d935c1edced5e258d92bf51fe06975455a3ae33dfedd01702c6076aedf97ea61f2d1b
 EBUILD xen-4.2.5-r6.ebuild 4223 SHA256 52aa2f77fa720abeafca2f3357166703415670866156a1f29dd6300d339078a8 SHA512 a0f08a01445b570bc9facb2cdce2a8ccf9c4f21198e0c7416fc6122d4bef8556fca3f005c4869badd3df12ec9330bd7cb634049b5771c12fd8c7434377983de1 WHIRLPOOL 41ead4f9bfc92a2d0fc32f31c1004aa37910fb53b13b45037aca53f83669026782ebd9770cd57223c3843274c4b7732ad9be5c22c645f90717ec7d108d4d871b
 EBUILD xen-4.2.5-r7.ebuild 4588 SHA256 7ac3076861f3a3ad63200c73f6b5087bd721b823ea08f4fc05c851fd3c95edde SHA512 88c80f73d01f0cfe76e1ab506a81e7a71e138e182dd49630202dd8c076c4e2d49b8bf23b46694f3ae8ca1b2ab2ff01bb40ddfde4f73921662e51b2c9637d45f5 WHIRLPOOL 69f02c9beb83c5980a90c7f1b342c1cdf2d6142f375b30003261704fbc04fac9f01942400b64508628252a459ae607e482bd244e578a3738b38eb4fbf28be227
+EBUILD xen-4.2.5-r8.ebuild 4589 SHA256 0ae86c9412af7534b9f0297052ed4986813320012c1d6d8cde5d60a132e8559e SHA512 3b5a1cf42613b053a7c0bfc277dd12a019efa3f1ce7bef7db24e7cb0a7b484660de6d983170cec73987fcecbdb7af048d8908d4a40b031390588758c9b592ed3 WHIRLPOOL b1e00d021b66d15dcd170b03902529c6732b7302c079d5341d6449104b22fff63721504073c89c6c32c824802614cbf8620ff19abc5d53c70b28d487f4d1e810
 EBUILD xen-4.4.1-r8.ebuild 4347 SHA256 d55b80e6abbfda8eee5faf26b85975363a1aff0877ccc80f80509c9e79486678 SHA512 74cafc2e6c199eb6bac27c9c8ddb2c3c444320dff840479b3c58b37b20775d8a2cd94360d1b29045299b4a6086f08da7090a3c108a1b25948e832f40843e3e4d WHIRLPOOL 3a989629b0a0a74a4246cd4b199bac8a307366a30a84a68a6decff8bc6fce3a858be786384f0ec98119016e1420165975f949dbf2a6abea2cc91c93662e7854c
 EBUILD xen-4.4.1-r9.ebuild 4349 SHA256 8b300b58f60f0c2db57ce659b5150e88d9059e9706137eb37fecb8b495a94fb8 SHA512 d53a20d23f81a8b75fc2ddce1ae6db470aabdbd9fa643de451c820a88ead6688bd8c11fd4072e8afee753e1a8b9c8e8b6d601c8ec3644e07b31ba3b734e21099 WHIRLPOOL 37db13c785c4e322b2105d621658a3bc97a816b26702f9415eabf10584e3713d93c70f0eb122b341c6e1c70a3c356de2503279b3c552b28783533998ab6843ae
+EBUILD xen-4.4.2-r1.ebuild 4711 SHA256 32066ca3a76ba2d43b2eaedb2251c67fa4c4cd3b9a984d8ccd86cffe83eb89c8 SHA512 60fa1c89bb1f790041c29d1318f1a6c7c714a254f2ecf21dc8eab0674922a740abbd00bd50d73416512e25329ce86861bad248496471844873172a8eb2b0bfaa WHIRLPOOL e72db973b24960a21a541b7a04e0ae0a18328d597e4929bc0f8c9fa9efa82d935427bcd583e0438039642a4e8a5528f2d286a5830a3e84636eccd4867afd739f
 EBUILD xen-4.4.2.ebuild 4707 SHA256 582030d64c89f31633038cc13580b18a0270de417eb4263cb431406e9cf93a1d SHA512 cb61787026575d1c992051a120a907e2f19d57b7cb51aedce47384d6b8ac7e4ddd109984e4b1b023a30412c69f108b42579d8ee73806d6f969dbd508c91ea967 WHIRLPOOL a519c26e2ab6ba8697038c336c92b875db96d26e26764687a204ac4ea85c320c3d34e728bef1d3ad1fdd4d89a41bb6fce797b0a5871694660ec312290992f111
 EBUILD xen-4.5.0-r4.ebuild 4770 SHA256 ef1f250d774c09a8e7e6ae152c8b1b098b2fbe2f21c069b8604de20b5f2f9103 SHA512 205f1ae654553a1a35ff92f7f71b5a3cf7bb5b4ea7e2dafd96988a9afef5126dff500e28ce16f98cb9f212b2375f988fee1593ff75f051c1cb5ee982abfd76b7 WHIRLPOOL 639564358aa1837e6fb3938ef538ab276cd86a9c0fa2f02d5d0033403c01f47aa7db0d65a9cb028e5c013ea1368153bc398de5a483ed2ac988e5a9a59b8465b4
-MISC ChangeLog 36530 SHA256 e48d4fb2aa211f9f38d5a7acd5f52f631fc4cbaee891729b1ed4cee1e8adc508 SHA512 7336bd77d608847e1945c16b1ad7db0985c4ec403ad3ce98333f6a360d6553be7a60a02a90d05b306ec1f9a243ba149dcd3b8eacf9ed3c224d02d35fa8d83ed5 WHIRLPOOL a6839757ebdc4a50688cec265118c4f4c0ac7aee6dfb2459ccae9a3753fc9ac8cf30ecc264e56cda7f84fa7ce3e161094c1ea13215dc0eec5b3178cbb16d575a
+EBUILD xen-4.5.0-r5.ebuild 4771 SHA256 800a8a01aa8ce16b3a33646065b06bbeec2cc10e25f6d32f905af6c1b7de9e10 SHA512 01d1038df8d9147ba7cb0d9023e52f257de0892e7d7e425e71435c4d186079a008b694fad66516e7ad958e1cd0047ab4bbe67da055e4156eb56ed88676c656c9 WHIRLPOOL d339132220706f2918dc6db366781b8553a471de013ff4d7ecb895239e941680a9487bf06dc93fa1a9af5597935efa402edeb82d176f76360b004c2f6bb29974
+MISC ChangeLog 36766 SHA256 bea1b5becd675cfe1cf43e05a561eac917b76865a14bb017a2a999c674779be0 SHA512 2d1235df376f31a2457c3ef95d180ad6e06065f065102af0d3fb02be03e60595d8afe29d11705b0eefca60f3b1a9469a9d0d9419aebd100a8baf2d2048b6c03c WHIRLPOOL 0dc639187b650e68983c1143231f31ad4956bf6bcc56d5b78ea950021c01a5e23698b6ec7d9684d15df2739b7f11af1a432a293ee4fa8404f13e8f5e921b8b66
 MISC metadata.xml 480 SHA256 c6d867148db1480748552aea9692bdee95fb98a94fcfadab0d128cbf1102b0d5 SHA512 888aa860cbb74d79c76f096107d8b22975470373ab11249da2c4ae9c4e172bc52fee73fdfaf07c19e977cabbbdf35ea5b3c6508d4a6f555b771ab6729806fe5c WHIRLPOOL c4d10589ca2c8b4e8bbd877dfc8f4f3b66ce8ae7bece71617e9571f07a39270f54c41f5fbbb2b29020ffc6473e2341064bd708813af3e20a31d5b9bd0510ebe2
------BEGIN PGP SIGNATURE-----
-Version: GnuPG v2.0
-
-iQJ8BAEBCABmBQJVFqvlXxSAAAAAAC4AKGlzc3Vlci1mcHJAbm90YXRpb25zLm9w
-ZW5wZ3AuZmlmdGhob3JzZW1hbi5uZXRCNUJBQjhDOUMzMUI3MTE1NjcwMjIzREMz
-MUFBRUE0NzU5NERCQkVEAAoJEDGq6kdZTbvt6HQP/jfMvqCdTl29Cz5YdH40NZ07
-hm1CBplcMOBdWrfi5JRsc28TFEPEJRGtz+VBPdu21IsZWrMPNR1jsIfgppEjSRtf
-Sq+0Ld/SMgLcevErL2f66ZtdYrfXcDC/rKEkKTyaIYJ2qv7DebXa0FRj+oxQ3SyM
-vZYRUjqL6sdfAumfr7WdK7tkycQ7jHcF1B1b+JKW51yz0a0NSRJ5XgZlz2X4E8Ah
-vk3Tp1cihTd7TkXGfvTBwYopI10sQXuAtPNuHOtLvLui9UKLBTOmq1gq/5qN4FOY
-qcGp5MqaCXphcL94But7b/u6La+ofn2Cfk9G7AzlUdqzmqo6dVBaRj8lrgoZlsES
-EiWuzcnqRBuqsJI3zthA/pO8mGQUZW0E6nikS434ypRwuHuIkXux/J3M3Kk93tVV
-jLuaWGYuSWelH54hUgbqGG7kMsp+Vp+0qyufykaQI8l/UE1Bj31bOkirRZU0c1c8
-mIPzVfTDrk22MTtwEvnVNK1t9k1CHQT4KPvZ51hqHwjxGT9RmUstdHVzRIMjG8Eb
-//6BmCbcZVmrKTzy9GJmfFIJzPnG9l8WTtZTxfuBoPW/CoX3hAvx/AcefKA4iSD1
-xJ0FN5qucjsfV4YKFWN7GskwRkOUrj9YzPMvh/Vs3aZXYoVOjoerCwUnIfGr+dPQ
-otBUWQWwsGbQJeDLmP5x
-=35XS
------END PGP SIGNATURE-----
diff --git a/app-emulation/xen/xen-4.2.5-r8.ebuild b/app-emulation/xen/xen-4.2.5-r8.ebuild
new file mode 100644 (file)
index 0000000..0bf82f1
--- /dev/null
@@ -0,0 +1,167 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: /var/cvsroot/gentoo-x86/app-emulation/xen/xen-4.2.5-r8.ebuild,v 1.1 2015/04/03 05:01:16 dlan Exp $
+
+EAPI=5
+
+PYTHON_COMPAT=( python{2_6,2_7} )
+
+if [[ $PV == *9999 ]]; then
+       KEYWORDS=""
+       REPO="xen-unstable.hg"
+       EHG_REPO_URI="http://xenbits.xensource.com/${REPO}"
+       S="${WORKDIR}/${REPO}"
+       live_eclass="mercurial"
+else
+       KEYWORDS="~amd64 ~x86"
+       UPSTREAM_VER=6
+       SECURITY_VER=0
+       GENTOO_VER=
+
+       [[ -n ${UPSTREAM_VER} ]] && \
+               UPSTREAM_PATCHSET_URI="http://dev.gentoo.org/~dlan/distfiles/${P}-upstream-patches-${UPSTREAM_VER}.tar.xz"
+       [[ -n ${SECURITY_VER} ]] && \
+               SECURITY_PATCHSET_URI="http://dev.gentoo.org/~dlan/distfiles/${PN}-security-patches-${SECURITY_VER}.tar.xz"
+       [[ -n ${GENTOO_VER} ]] && \
+               GENTOO_PATCHSET_URI="http://dev.gentoo.org/~dlan/distfiles/${PN}-gentoo-patches-${GENTOO_VER}.tar.xz"
+       SRC_URI="http://bits.xensource.com/oss-xen/release/${PV}/xen-${PV}.tar.gz
+               ${UPSTREAM_PATCHSET_URI}
+               ${SECURITY_PATCHSET_URI}
+               ${GENTOO_PATCHSET_URI}"
+fi
+
+inherit mount-boot flag-o-matic python-any-r1 toolchain-funcs eutils ${live_eclass}
+
+DESCRIPTION="The Xen virtual machine monitor"
+HOMEPAGE="http://xen.org/"
+LICENSE="GPL-2"
+SLOT="0"
+IUSE="custom-cflags debug efi flask pae xsm"
+
+DEPEND="${PYTHON_DEPS}
+       efi? ( >=sys-devel/binutils-2.22[multitarget] )
+       !efi? ( >=sys-devel/binutils-2.22[-multitarget] )"
+RDEPEND=""
+PDEPEND="~app-emulation/xen-tools-${PV}"
+
+RESTRICT="test"
+
+# Approved by QA team in bug #144032
+QA_WX_LOAD="boot/xen-syms-${PV}"
+
+REQUIRED_USE="
+       flask? ( xsm )
+       "
+
+pkg_setup() {
+       python-any-r1_pkg_setup
+       if [[ -z ${XEN_TARGET_ARCH} ]]; then
+               if use x86 && use amd64; then
+                       die "Confusion! Both x86 and amd64 are set in your use flags!"
+               elif use x86; then
+                       export XEN_TARGET_ARCH="x86_32"
+               elif use amd64; then
+                       export XEN_TARGET_ARCH="x86_64"
+               else
+                       die "Unsupported architecture!"
+               fi
+       fi
+
+       if use flask ; then
+               export "XSM_ENABLE=y"
+               export "FLASK_ENABLE=y"
+       elif use xsm ; then
+               export "XSM_ENABLE=y"
+       fi
+}
+
+src_prepare() {
+       # Upstream's patchset
+       if [[ -n ${UPSTREAM_VER} ]]; then
+               EPATCH_SUFFIX="patch" \
+               EPATCH_FORCE="yes" \
+               EPATCH_OPTS="-p1" \
+                       epatch "${WORKDIR}"/patches-upstream
+       fi
+
+       # Security patchset
+       if [[ -n ${SECURITY_VER} ]]; then
+               EPATCH_SUFFIX="patch" \
+               EPATCH_FORCE="yes" \
+               EPATCH_OPTS="-p1" \
+                       epatch "${WORKDIR}/patches-security/${PV}"
+       fi
+
+       # Gentoo's patchset
+       if [[ -n ${GENTOO_VER} ]]; then
+               EPATCH_SUFFIX="patch" \
+               EPATCH_FORCE="yes" \
+                       epatch "${WORKDIR}"/patches-gentoo
+       fi
+
+       # Drop .config and fix gcc-4.6
+       epatch  "${FILESDIR}"/${PN/-pvgrub/}-4-fix_dotconfig-gcc.patch
+
+       if use efi; then
+               epatch "${FILESDIR}"/${PN}-4.2-efi.patch
+               export EFI_VENDOR="gentoo"
+               export EFI_MOUNTPOINT="boot"
+       fi
+
+       # if the user *really* wants to use their own custom-cflags, let them
+       if use custom-cflags; then
+               einfo "User wants their own CFLAGS - removing defaults"
+               # try and remove all the default custom-cflags
+               find "${S}" -name Makefile -o -name Rules.mk -o -name Config.mk -exec sed \
+                       -e 's/CFLAGS\(.*\)=\(.*\)-O3\(.*\)/CFLAGS\1=\2\3/' \
+                       -e 's/CFLAGS\(.*\)=\(.*\)-march=i686\(.*\)/CFLAGS\1=\2\3/' \
+                       -e 's/CFLAGS\(.*\)=\(.*\)-fomit-frame-pointer\(.*\)/CFLAGS\1=\2\3/' \
+                       -e 's/CFLAGS\(.*\)=\(.*\)-g3*\s\(.*\)/CFLAGS\1=\2 \3/' \
+                       -e 's/CFLAGS\(.*\)=\(.*\)-O2\(.*\)/CFLAGS\1=\2\3/' \
+                       -i {} \; || die "failed to re-set custom-cflags"
+       fi
+
+       # not strictly necessary to fix this
+       sed -i 's/, "-Werror"//' "${S}/tools/python/setup.py" || die "failed to re-set setup.py"
+
+       epatch_user
+}
+
+src_configure() {
+       use debug && myopt="${myopt} debug=y"
+       use pae && myopt="${myopt} pae=y"
+
+       if use custom-cflags; then
+               filter-flags -fPIE -fstack-protector
+               replace-flags -O3 -O2
+       else
+               unset CFLAGS
+       fi
+}
+
+src_compile() {
+       # Send raw LDFLAGS so that --as-needed works
+       emake CC="$(tc-getCC)" LDFLAGS="$(raw-ldflags)" LD="$(tc-getLD)" -C xen ${myopt}
+}
+
+src_install() {
+       local myopt
+       use debug && myopt="${myopt} debug=y"
+       use pae && myopt="${myopt} pae=y"
+
+       # The 'make install' doesn't 'mkdir -p' the subdirs
+       if use efi; then
+               mkdir -p "${D}"${EFI_MOUNTPOINT}/efi/${EFI_VENDOR} || die
+       fi
+
+       emake LDFLAGS="$(raw-ldflags)" DESTDIR="${D}" -C xen ${myopt} install
+}
+
+pkg_postinst() {
+       elog "Official Xen Guide and the unoffical wiki page:"
+       elog " https://wiki.gentoo.org/wiki/Xen"
+       elog " http://en.gentoo-wiki.com/wiki/Xen/"
+
+       use pae && ewarn "This is a PAE build of Xen. It will *only* boot PAE kernels!"
+       use efi && einfo "The efi executable is installed in boot/efi/gentoo"
+}
diff --git a/app-emulation/xen/xen-4.4.2-r1.ebuild b/app-emulation/xen/xen-4.4.2-r1.ebuild
new file mode 100644 (file)
index 0000000..82d9cd0
--- /dev/null
@@ -0,0 +1,174 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: /var/cvsroot/gentoo-x86/app-emulation/xen/xen-4.4.2-r1.ebuild,v 1.1 2015/04/03 05:01:16 dlan Exp $
+
+EAPI=5
+
+PYTHON_COMPAT=( python2_7 )
+
+MY_PV=${PV/_/-}
+MY_P=${PN}-${PV/_/-}
+
+if [[ $PV == *9999 ]]; then
+       KEYWORDS=""
+       EGIT_REPO_URI="git://xenbits.xen.org/${PN}.git"
+       live_eclass="git-2"
+else
+       KEYWORDS="~amd64 ~arm -x86"
+       UPSTREAM_VER=
+       SECURITY_VER=0
+       GENTOO_VER=
+
+       [[ -n ${UPSTREAM_VER} ]] && \
+               UPSTREAM_PATCHSET_URI="http://dev.gentoo.org/~dlan/distfiles/${P}-upstream-patches-${UPSTREAM_VER}.tar.xz"
+       [[ -n ${SECURITY_VER} ]] && \
+               SECURITY_PATCHSET_URI="http://dev.gentoo.org/~dlan/distfiles/${PN}-security-patches-${SECURITY_VER}.tar.xz"
+       [[ -n ${GENTOO_VER} ]] && \
+               GENTOO_PATCHSET_URI="http://dev.gentoo.org/~dlan/distfiles/${PN}-gentoo-patches-${GENTOO_VER}.tar.xz"
+       SRC_URI="http://bits.xensource.com/oss-xen/release/${MY_PV}/${MY_P}.tar.gz
+               ${UPSTREAM_PATCHSET_URI}
+               ${SECURITY_PATCHSET_URI}
+               ${GENTOO_PATCHSET_URI}"
+
+fi
+
+inherit mount-boot flag-o-matic python-any-r1 toolchain-funcs eutils ${live_eclass}
+
+DESCRIPTION="The Xen virtual machine monitor"
+HOMEPAGE="http://xen.org/"
+LICENSE="GPL-2"
+SLOT="0"
+IUSE="custom-cflags debug efi flask xsm"
+
+DEPEND="${PYTHON_DEPS}
+       efi? ( >=sys-devel/binutils-2.22[multitarget] )
+       !efi? ( >=sys-devel/binutils-2.22[-multitarget] )"
+RDEPEND=""
+PDEPEND="~app-emulation/xen-tools-${PV}"
+
+RESTRICT="test"
+
+# Approved by QA team in bug #144032
+QA_WX_LOAD="boot/xen-syms-${PV}"
+
+REQUIRED_USE="flask? ( xsm )
+       arm? ( debug )"
+
+S="${WORKDIR}/${MY_P}"
+
+pkg_setup() {
+       python-any-r1_pkg_setup
+       if [[ -z ${XEN_TARGET_ARCH} ]]; then
+               if use x86 && use amd64; then
+                       die "Confusion! Both x86 and amd64 are set in your use flags!"
+               elif use x86; then
+                       export XEN_TARGET_ARCH="x86_32"
+               elif use amd64; then
+                       export XEN_TARGET_ARCH="x86_64"
+               elif use arm; then
+                       export XEN_TARGET_ARCH="arm32"
+               else
+                       die "Unsupported architecture!"
+               fi
+       fi
+
+       if use flask ; then
+               export "XSM_ENABLE=y"
+               export "FLASK_ENABLE=y"
+       elif use xsm ; then
+               export "XSM_ENABLE=y"
+       fi
+}
+
+src_prepare() {
+       # Upstream's patchset
+       if [[ -n ${UPSTREAM_VER} ]]; then
+               EPATCH_SUFFIX="patch" \
+               EPATCH_FORCE="yes" \
+               EPATCH_OPTS="-p1" \
+                       epatch "${WORKDIR}"/patches-upstream
+       fi
+
+       # Security patchset
+       if [[ -n ${SECURITY_VER} ]]; then
+               EPATCH_SUFFIX="patch" \
+               EPATCH_FORCE="yes" \
+               EPATCH_OPTS="-p1" \
+                       epatch "${WORKDIR}/patches-security/${PV}"
+       fi
+
+       # Gentoo's patchset
+       if [[ -n ${GENTOO_VER} ]]; then
+               EPATCH_SUFFIX="patch" \
+               EPATCH_FORCE="yes" \
+                       epatch "${WORKDIR}"/patches-gentoo
+       fi
+
+       # Drop .config
+       sed -e '/-include $(XEN_ROOT)\/.config/d' -i Config.mk || die "Couldn't drop"
+
+       if use efi; then
+               epatch "${FILESDIR}"/${PN}-4.4-efi.patch
+               export EFI_VENDOR="gentoo"
+               export EFI_MOUNTPOINT="boot"
+       fi
+
+       # if the user *really* wants to use their own custom-cflags, let them
+       if use custom-cflags; then
+               einfo "User wants their own CFLAGS - removing defaults"
+               # try and remove all the default custom-cflags
+               find "${S}" -name Makefile -o -name Rules.mk -o -name Config.mk -exec sed \
+                       -e 's/CFLAGS\(.*\)=\(.*\)-O3\(.*\)/CFLAGS\1=\2\3/' \
+                       -e 's/CFLAGS\(.*\)=\(.*\)-march=i686\(.*\)/CFLAGS\1=\2\3/' \
+                       -e 's/CFLAGS\(.*\)=\(.*\)-fomit-frame-pointer\(.*\)/CFLAGS\1=\2\3/' \
+                       -e 's/CFLAGS\(.*\)=\(.*\)-g3*\s\(.*\)/CFLAGS\1=\2 \3/' \
+                       -e 's/CFLAGS\(.*\)=\(.*\)-O2\(.*\)/CFLAGS\1=\2\3/' \
+                       -i {} \; || die "failed to re-set custom-cflags"
+       fi
+
+       # remove -Werror for gcc-4.6's sake
+       find "${S}" -name 'Makefile*' -o -name '*.mk' -o -name 'common.make' | \
+               xargs sed -i 's/ *-Werror */ /'
+       # not strictly necessary to fix this
+       sed -i 's/, "-Werror"//' "${S}/tools/python/setup.py" || die "failed to re-set setup.py"
+
+       epatch_user
+}
+
+src_configure() {
+       use arm && myopt="${myopt} CONFIG_EARLY_PRINTK=sun7i"
+
+       use debug && myopt="${myopt} debug=y"
+
+       if use custom-cflags; then
+               filter-flags -fPIE -fstack-protector
+               replace-flags -O3 -O2
+       else
+               unset CFLAGS
+       fi
+}
+
+src_compile() {
+       # Send raw LDFLAGS so that --as-needed works
+       emake V=1 CC="$(tc-getCC)" LDFLAGS="$(raw-ldflags)" LD="$(tc-getLD)" -C xen ${myopt}
+}
+
+src_install() {
+       local myopt
+       use debug && myopt="${myopt} debug=y"
+
+       # The 'make install' doesn't 'mkdir -p' the subdirs
+       if use efi; then
+               mkdir -p "${D}"${EFI_MOUNTPOINT}/efi/${EFI_VENDOR} || die
+       fi
+
+       emake LDFLAGS="$(raw-ldflags)" DESTDIR="${D}" -C xen ${myopt} install
+}
+
+pkg_postinst() {
+       elog "Official Xen Guide and the unoffical wiki page:"
+       elog " https://wiki.gentoo.org/wiki/Xen"
+       elog " http://en.gentoo-wiki.com/wiki/Xen/"
+
+       use efi && einfo "The efi executable is installed in boot/efi/gentoo"
+}
diff --git a/app-emulation/xen/xen-4.5.0-r5.ebuild b/app-emulation/xen/xen-4.5.0-r5.ebuild
new file mode 100644 (file)
index 0000000..12caa86
--- /dev/null
@@ -0,0 +1,176 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: /var/cvsroot/gentoo-x86/app-emulation/xen/xen-4.5.0-r5.ebuild,v 1.1 2015/04/03 05:01:16 dlan Exp $
+
+EAPI=5
+
+PYTHON_COMPAT=( python2_7 )
+
+MY_PV=${PV/_/-}
+MY_P=${PN}-${PV/_/-}
+
+if [[ $PV == *9999 ]]; then
+       KEYWORDS=""
+       EGIT_REPO_URI="git://xenbits.xen.org/${PN}.git"
+       live_eclass="git-2"
+else
+       KEYWORDS="~arm ~arm64 ~amd64"
+       UPSTREAM_VER=3
+       SECURITY_VER=0
+       GENTOO_VER=
+
+       [[ -n ${UPSTREAM_VER} ]] && \
+               UPSTREAM_PATCHSET_URI="http://dev.gentoo.org/~dlan/distfiles/${P}-upstream-patches-${UPSTREAM_VER}.tar.xz"
+       [[ -n ${SECURITY_VER} ]] && \
+               SECURITY_PATCHSET_URI="http://dev.gentoo.org/~dlan/distfiles/${PN}-security-patches-${SECURITY_VER}.tar.xz"
+       [[ -n ${GENTOO_VER} ]] && \
+               GENTOO_PATCHSET_URI="http://dev.gentoo.org/~dlan/distfiles/${PN}-gentoo-patches-${GENTOO_VER}.tar.xz"
+       SRC_URI="http://bits.xensource.com/oss-xen/release/${MY_PV}/${MY_P}.tar.gz
+               ${UPSTREAM_PATCHSET_URI}
+               ${SECURITY_PATCHSET_URI}
+               ${GENTOO_PATCHSET_URI}"
+
+fi
+
+inherit mount-boot flag-o-matic python-any-r1 toolchain-funcs eutils ${live_eclass}
+
+DESCRIPTION="The Xen virtual machine monitor"
+HOMEPAGE="http://xen.org/"
+LICENSE="GPL-2"
+SLOT="0"
+IUSE="custom-cflags debug efi flask xsm"
+
+DEPEND="${PYTHON_DEPS}
+       efi? ( >=sys-devel/binutils-2.22[multitarget] )
+       !efi? ( >=sys-devel/binutils-2.22[-multitarget] )"
+RDEPEND=""
+PDEPEND="~app-emulation/xen-tools-${PV}"
+
+RESTRICT="test"
+
+# Approved by QA team in bug #144032
+QA_WX_LOAD="boot/xen-syms-${PV}"
+
+REQUIRED_USE="flask? ( xsm )
+       arm? ( debug )"
+
+S="${WORKDIR}/${MY_P}"
+
+pkg_setup() {
+       python-any-r1_pkg_setup
+       if [[ -z ${XEN_TARGET_ARCH} ]]; then
+               if use x86 && use amd64; then
+                       die "Confusion! Both x86 and amd64 are set in your use flags!"
+               elif use x86; then
+                       export XEN_TARGET_ARCH="x86_32"
+               elif use amd64; then
+                       export XEN_TARGET_ARCH="x86_64"
+               elif use arm; then
+                       export XEN_TARGET_ARCH="arm32"
+               elif use arm64; then
+                       export XEN_TARGET_ARCH="arm64"
+               else
+                       die "Unsupported architecture!"
+               fi
+       fi
+
+       if use flask ; then
+               export "XSM_ENABLE=y"
+               export "FLASK_ENABLE=y"
+       elif use xsm ; then
+               export "XSM_ENABLE=y"
+       fi
+}
+
+src_prepare() {
+       # Upstream's patchset
+       if [[ -n ${UPSTREAM_VER} ]]; then
+               EPATCH_SUFFIX="patch" \
+               EPATCH_FORCE="yes" \
+               EPATCH_OPTS="-p1" \
+                       epatch "${WORKDIR}"/patches-upstream
+       fi
+
+       # Security patchset
+       if [[ -n ${SECURITY_VER} ]]; then
+               EPATCH_SUFFIX="patch" \
+               EPATCH_FORCE="yes" \
+               EPATCH_OPTS="-p1" \
+                       epatch "${WORKDIR}/patches-security/${PV}"
+       fi
+
+       # Gentoo's patchset
+       if [[ -n ${GENTOO_VER} ]]; then
+               EPATCH_SUFFIX="patch" \
+               EPATCH_FORCE="yes" \
+                       epatch "${WORKDIR}"/patches-gentoo
+       fi
+
+       # Drop .config
+       sed -e '/-include $(XEN_ROOT)\/.config/d' -i Config.mk || die "Couldn't drop"
+
+       if use efi; then
+               epatch "${FILESDIR}"/${PN}-4.5-efi.patch
+               export EFI_VENDOR="gentoo"
+               export EFI_MOUNTPOINT="boot"
+       fi
+
+       # if the user *really* wants to use their own custom-cflags, let them
+       if use custom-cflags; then
+               einfo "User wants their own CFLAGS - removing defaults"
+               # try and remove all the default custom-cflags
+               find "${S}" -name Makefile -o -name Rules.mk -o -name Config.mk -exec sed \
+                       -e 's/CFLAGS\(.*\)=\(.*\)-O3\(.*\)/CFLAGS\1=\2\3/' \
+                       -e 's/CFLAGS\(.*\)=\(.*\)-march=i686\(.*\)/CFLAGS\1=\2\3/' \
+                       -e 's/CFLAGS\(.*\)=\(.*\)-fomit-frame-pointer\(.*\)/CFLAGS\1=\2\3/' \
+                       -e 's/CFLAGS\(.*\)=\(.*\)-g3*\s\(.*\)/CFLAGS\1=\2 \3/' \
+                       -e 's/CFLAGS\(.*\)=\(.*\)-O2\(.*\)/CFLAGS\1=\2\3/' \
+                       -i {} \; || die "failed to re-set custom-cflags"
+       fi
+
+       # remove -Werror for gcc-4.6's sake
+       find "${S}" -name 'Makefile*' -o -name '*.mk' -o -name 'common.make' | \
+               xargs sed -i 's/ *-Werror */ /'
+       # not strictly necessary to fix this
+       sed -i 's/, "-Werror"//' "${S}/tools/python/setup.py" || die "failed to re-set setup.py"
+
+       epatch_user
+}
+
+src_configure() {
+       use arm && myopt="${myopt} CONFIG_EARLY_PRINTK=sun7i"
+
+       use debug && myopt="${myopt} debug=y"
+
+       if use custom-cflags; then
+               filter-flags -fPIE -fstack-protector
+               replace-flags -O3 -O2
+       else
+               unset CFLAGS
+       fi
+}
+
+src_compile() {
+       # Send raw LDFLAGS so that --as-needed works
+       emake V=1 CC="$(tc-getCC)" LDFLAGS="$(raw-ldflags)" LD="$(tc-getLD)" -C xen ${myopt}
+}
+
+src_install() {
+       local myopt
+       use debug && myopt="${myopt} debug=y"
+
+       # The 'make install' doesn't 'mkdir -p' the subdirs
+       if use efi; then
+               mkdir -p "${D}"${EFI_MOUNTPOINT}/efi/${EFI_VENDOR} || die
+       fi
+
+       emake LDFLAGS="$(raw-ldflags)" DESTDIR="${D}" -C xen ${myopt} install
+}
+
+pkg_postinst() {
+       elog "Official Xen Guide and the unoffical wiki page:"
+       elog " https://wiki.gentoo.org/wiki/Xen"
+       elog " http://en.gentoo-wiki.com/wiki/Xen/"
+
+       use efi && einfo "The efi executable is installed in boot/efi/gentoo"
+}