app-emulation/xen: bump to 4.11.2-r2
authorTomas Mozes <hydrapolic@gmail.com>
Wed, 13 Nov 2019 10:24:12 +0000 (11:24 +0100)
committerYixun Lan <dlan@gentoo.org>
Wed, 13 Nov 2019 14:11:02 +0000 (14:11 +0000)
Bug: https://bugs.gentoo.org/699990
Closes: https://github.com/gentoo/gentoo/pull/13627
Package-Manager: Portage-2.3.79, Repoman-2.3.17
Signed-off-by: Tomáš Mózes <hydrapolic@gmail.com>
Signed-off-by: Yixun Lan <dlan@gentoo.org>
app-emulation/xen/Manifest
app-emulation/xen/xen-4.11.2-r2.ebuild [new file with mode: 0644]

index 364dcaa0492297ceaf4b475676ee1a9845fe8d43..0081207e08793fb05151a4fd354eafe74c7ea2fc 100644 (file)
@@ -1,4 +1,5 @@
 DIST xen-4.11.2-upstream-patches-1.tar.xz 77556 BLAKE2B f95af370f8a99a27bfc762e661364da6f1ef1b08dd5a6b81a5421d32bcad820097a694c5656e174cec7ed53ff140f80d63f57ac31867edf12e68ef4d87ea8b44 SHA512 f41f2ff20648eed76918c865958d42b99d2743188514c63e27797c80e9169f7f5843ac48195e38d269d02edcb9889f042b992b85773ca61c267282e41ea8dae6
+DIST xen-4.11.2-upstream-patches-2.tar.xz 86812 BLAKE2B c2dcb7e031f9dd0a18fed5705f1c81901e94264d8bc0993a8e6c10108ac01efc6a52487076ece078a96395608c6233f26696c6b9d4f89d0f034f5e14dd546793 SHA512 c11b848396258a403c8148c054f9ac5650e149a50aba3ee1554bbacda6e2fcc4c84b8e02a1bb1bcfaf406c637165ac3fe6ea6826365875444098fce30112136e
 DIST xen-4.11.2.tar.gz 25164925 BLAKE2B 11adea16d93235af5807e6e3784e0fc36ce34f274a85d1976a5c8ad36a323437216b0cf6bb6cb13b00e1e838e319a9f8f4b9c417870eef9ed660f22274d81310 SHA512 48d3d926d35eb56c79c06d0abc6e6be2564fadb43367cc7f46881c669a75016707672179c2cca1c4cfb14af2cefd46e2e7f99470cddf7df2886d8435a2de814e
 DIST xen-4.12.1-upstream-patches-1.tar.xz 62920 BLAKE2B a7f070e4b48c04fa26b75ccbd46aa1172df306060ae180f29f5ea61a5f0b4c2e854a5d1127ed42c05b21977a0e43b36b7e137c1758496b242f48626c5a00e22b SHA512 d7094b86f297a4b1da7007d73752ca8478a26c675ec5d93ade4599935cd51ebd80220a4ea7223d878e0d2c2209336577d196017c463abe9e47ff20914ffa5021
 DIST xen-4.12.1.tar.gz 26970584 BLAKE2B ceab2af3d36b72d838d7b4f58f6855c97cf05282a4ea3c82eda29b8945ee20563845b7be02884bf0a061a633fb2b3016a2f7396ce34d9b3d93f90d6ee6d449ed SHA512 be15d3af6b109771aaf59b3621e4e1560b7d9a963d9b7f6a1f6f4a1c907fd97434b060c15f75849b44fbda33f26eb51b030d14d068c6ad5103ad240fe7a98f40
diff --git a/app-emulation/xen/xen-4.11.2-r2.ebuild b/app-emulation/xen/xen-4.11.2-r2.ebuild
new file mode 100644 (file)
index 0000000..ffe55e4
--- /dev/null
@@ -0,0 +1,154 @@
+# Copyright 1999-2019 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+PYTHON_COMPAT=( python2_7 )
+
+inherit flag-o-matic mount-boot multilib python-any-r1 toolchain-funcs
+
+MY_PV=${PV/_/-}
+MY_P=${PN}-${MY_PV}
+
+if [[ $PV == *9999 ]]; then
+       inherit git-r3
+       EGIT_REPO_URI="git://xenbits.xen.org/xen.git"
+       SRC_URI=""
+else
+       KEYWORDS="~amd64 ~arm -x86"
+       UPSTREAM_VER=2
+       SECURITY_VER=
+       GENTOO_VER=
+
+       [[ -n ${UPSTREAM_VER} ]] && \
+               UPSTREAM_PATCHSET_URI="https://dev.gentoo.org/~dlan/distfiles/${P}-upstream-patches-${UPSTREAM_VER}.tar.xz
+               https://github.com/hydrapolic/gentoo-dist/raw/master/xen/${P}-upstream-patches-${UPSTREAM_VER}.tar.xz"
+       [[ -n ${SECURITY_VER} ]] && \
+               SECURITY_PATCHSET_URI="https://dev.gentoo.org/~dlan/distfiles/${PN}-security-patches-${SECURITY_VER}.tar.xz"
+       [[ -n ${GENTOO_VER} ]] && \
+               GENTOO_PATCHSET_URI="https://dev.gentoo.org/~dlan/distfiles/${PN}-gentoo-patches-${GENTOO_VER}.tar.xz"
+       SRC_URI="https://downloads.xenproject.org/release/xen/${MY_PV}/${MY_P}.tar.gz
+               ${UPSTREAM_PATCHSET_URI}
+               ${SECURITY_PATCHSET_URI}
+               ${GENTOO_PATCHSET_URI}"
+fi
+
+DESCRIPTION="The Xen virtual machine monitor"
+HOMEPAGE="https://www.xenproject.org"
+LICENSE="GPL-2"
+SLOT="0"
+IUSE="debug efi flask"
+
+DEPEND="${PYTHON_DEPS}
+       efi? ( >=sys-devel/binutils-2.22[multitarget] )
+       !efi? ( >=sys-devel/binutils-2.22 )"
+RDEPEND=""
+PDEPEND="~app-emulation/xen-tools-${PV}"
+
+# no tests are available for the hypervisor
+# prevent the silliness of /usr/lib/debug/usr/lib/debug files
+# prevent stripping of the debug info from the /usr/lib/debug/xen-syms
+RESTRICT="test splitdebug strip"
+
+# Approved by QA team in bug #144032
+QA_WX_LOAD="boot/xen-syms-${PV}"
+
+REQUIRED_USE="arm? ( debug )"
+
+S="${WORKDIR}/${MY_P}"
+
+pkg_setup() {
+       python-any-r1_pkg_setup
+       if [[ -z ${XEN_TARGET_ARCH} ]]; then
+               if 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"
+       fi
+}
+
+src_prepare() {
+       # Upstream's patchset
+       [[ -n ${UPSTREAM_VER} ]] && eapply "${WORKDIR}"/patches-upstream
+
+       # Security patchset
+       if [[ -n ${SECURITY_VER} ]]; then
+       einfo "Try to apply Xen Security patch set"
+               # apply main xen patches
+               # Two parallel systems, both work side by side
+               # Over time they may concdense into one. This will suffice for now
+               source "${WORKDIR}"/patches-security/${PV}.conf
+
+               local i
+               for i in ${XEN_SECURITY_MAIN}; do
+                       eapply "${WORKDIR}"/patches-security/xen/$i
+               done
+       fi
+
+       # Gentoo's patchset
+       [[ -n ${GENTOO_VER} ]] && eapply "${WORKDIR}"/patches-gentoo
+
+       eapply "${FILESDIR}"/${PN}-4.6-efi.patch
+
+       # Drop .config
+       sed -e '/-include $(XEN_ROOT)\/.config/d' -i Config.mk || die "Couldn't drop"
+
+       if use efi; then
+               export EFI_VENDOR="gentoo"
+               export EFI_MOUNTPOINT="boot"
+       fi
+
+       default
+}
+
+src_configure() {
+       use arm && myopt="${myopt} CONFIG_EARLY_PRINTK=sun7i"
+
+       use debug && myopt="${myopt} debug=y"
+
+       # remove flags
+       unset CFLAGS
+       unset LDFLAGS
+       unset ASFLAGS
+}
+
+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
+
+       # make install likes to throw in some extra EFI bits if it built
+       use efi || rm -rf "${D}/usr/$(get_libdir)/efi"
+}
+
+pkg_postinst() {
+       elog "Official Xen Guide:"
+       elog " https://wiki.gentoo.org/wiki/Xen"
+
+       use efi && einfo "The efi executable is installed in boot/efi/gentoo"
+
+       elog "You can optionally block the installation of /boot/xen-syms by an entry"
+       elog "in folder /etc/portage/env using the portage's feature INSTALL_MASK"
+       elog "e.g. echo ${msg} > /etc/portage/env/xen.conf"
+}