commit:     b6516692f1a024169d489ec028e1ead68465bb20
Author:     Florian Schmaus <flow <AT> gentoo <DOT> org>
AuthorDate: Wed Oct 19 09:07:51 2022 +0000
Commit:     Florian Schmaus <flow <AT> gentoo <DOT> org>
CommitDate: Wed Oct 19 09:15:49 2022 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=b6516692

app-emulation/xen: add 4.16.3_pre

Signed-off-by: Florian Schmaus <flow <AT> gentoo.org>

 app-emulation/xen/Manifest              |   1 +
 app-emulation/xen/xen-4.16.3_pre.ebuild | 174 ++++++++++++++++++++++++++++++++
 2 files changed, 175 insertions(+)

diff --git a/app-emulation/xen/Manifest b/app-emulation/xen/Manifest
index 91571bf45b7d..60b67daa68c7 100644
--- a/app-emulation/xen/Manifest
+++ b/app-emulation/xen/Manifest
@@ -2,3 +2,4 @@ DIST xen-4.15.3.tar.gz 40793144 BLAKE2B 
33932d855a0502cfe2768a7c8ae19d7da285d70b
 DIST xen-4.16.2.tar.gz 44995249 BLAKE2B 
a221d1e4578ab6eb3250754b3b0f36fb30133c1c83246532ebb9648c3d025b3f5132227371b5d3dd82099594f4ee738227480528ee944b8de6231d9c89892d15
 SHA512 
b6cd036c1073798dffa167ca14c954fbdfb4c0ef99662f7c435e7e5de687d1bde8856ff6bd030d0d2e661bd17ab631551f01b2cc728cad7e70b59aaa6e692783
 DIST xen-gentoo-patches-4.16.1-gentoo-patchset-2.tar.bz2 5403 BLAKE2B 
7fa3b4aa123b2deed260d02b8d34a35dd205207038edb92569278b25c6fe32e0f0e3857c07755553e047f0eb0d9fe7f8b0816e0f3d7f68aee7929afaf6611dfd
 SHA512 
9e7d25640b24235acf756b031b8b7cee582dded65fe7b94a706c990232e9704d574036c3a9605f285e8e9534578d100a3f38719b27b22775f17ef8f68287997e
 DIST xen-upstream-patches-4.15.4-pre-patchset-1.tar.bz2 68066 BLAKE2B 
ee6aac9aa8988423fd1594fa09c54678ee8d089abfff27913fdbe4f60c1f2a038e06cca5d03924595036bd9ca9be8a7f61ed5d7662e6534b05a45da24c88babd
 SHA512 
65c7c900ca91f7444cdc03fa0902e8d58d68cd755cfa2d16cf1df76b657328e374fec0da3ceb734aefa10cfa874a46de5f731c3827ab4f815b4eabc305ed497f
+DIST xen-upstream-patches-4.16.3-pre-patchset-0.tar.bz2 36580 BLAKE2B 
7a16b452fda7cf00321c70c239f30fbff72204d5b021aba23e1e08b2d8dee0f1180a18301b5935f4d35dc54533e2e253f047681b837de187a2a174191a168c3c
 SHA512 
5e7328c8cd7ce98cdff47033a76705395419c1322d5212206aa1255d19aeb2fd3d097e71d39137ab97aeab0b9f991e1660b92a6ddb08f02c9407ceaa24aa9ec0

diff --git a/app-emulation/xen/xen-4.16.3_pre.ebuild 
b/app-emulation/xen/xen-4.16.3_pre.ebuild
new file mode 100644
index 000000000000..a589835461bf
--- /dev/null
+++ b/app-emulation/xen/xen-4.16.3_pre.ebuild
@@ -0,0 +1,174 @@
+# Copyright 1999-2022 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+PYTHON_COMPAT=( python3_{8..11} )
+
+inherit flag-o-matic mount-boot python-any-r1 toolchain-funcs
+
+if [[ ${PV} == *9999 ]]; then
+       inherit git-r3
+       EGIT_REPO_URI="git://xenbits.xen.org/xen.git"
+       SRC_URI=""
+else
+       KEYWORDS="~amd64 ~arm -x86"
+
+       XEN_GENTOO_PATCHSET_NUM=2
+       XEN_GENTOO_PATCHSET_BASE=4.16.1
+       XEN_PRE_PATCHSET_NUM=0
+       XEN_PRE_VERSION_BASE=4.16.2
+
+       XEN_BASE_PV="${PV}"
+       if [[ -n "${XEN_PRE_VERSION_BASE}" ]]; then
+               XEN_BASE_PV="${XEN_PRE_VERSION_BASE}"
+       fi
+
+       
SRC_URI="https://downloads.xenproject.org/release/xen/${XEN_BASE_PV}/xen-${XEN_BASE_PV}.tar.gz";
+
+       if [[ -n "${XEN_PRE_PATCHSET_NUM}" ]]; then
+               XEN_UPSTREAM_PATCHES_TAG="$(ver_cut 
1-3)-pre-patchset-${XEN_PRE_PATCHSET_NUM}"
+               
XEN_UPSTREAM_PATCHES_NAME="xen-upstream-patches-${XEN_UPSTREAM_PATCHES_TAG}"
+               SRC_URI+=" 
https://gitweb.gentoo.org/proj/xen-upstream-patches.git/snapshot/${XEN_UPSTREAM_PATCHES_NAME}.tar.bz2";
+               
XEN_UPSTREAM_PATCHES_DIR="${WORKDIR}/${XEN_UPSTREAM_PATCHES_NAME}"
+       fi
+       if [[ -n "${XEN_GENTOO_PATCHSET_NUM}" ]]; then
+               XEN_GENTOO_PATCHES_TAG="$(ver_cut 1-3 
${XEN_GENTOO_PATCHSET_BASE})-gentoo-patchset-${XEN_GENTOO_PATCHSET_NUM}"
+               
XEN_GENTOO_PATCHES_NAME="xen-gentoo-patches-${XEN_GENTOO_PATCHES_TAG}"
+               SRC_URI+=" 
https://gitweb.gentoo.org/proj/xen-gentoo-patches.git/snapshot/${XEN_GENTOO_PATCHES_NAME}.tar.bz2";
+               XEN_GENTOO_PATCHES_DIR="${WORKDIR}/${XEN_GENTOO_PATCHES_NAME}"
+       fi
+fi
+
+DESCRIPTION="The Xen virtual machine monitor"
+HOMEPAGE="https://xenproject.org";
+
+S="${WORKDIR}/xen-$(ver_cut 1-3 ${XEN_BASE_PV})"
+
+LICENSE="GPL-2"
+SLOT="0"
+IUSE="+boot-symlinks debug efi flask"
+REQUIRED_USE="arm? ( debug )"
+
+DEPEND="${PYTHON_DEPS}
+       efi? ( >=sys-devel/binutils-2.22[multitarget] )
+       !efi? ( >=sys-devel/binutils-2.22 )
+       flask? ( sys-apps/checkpolicy )"
+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}"
+
+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
+}
+
+src_prepare() {
+       if [[ -v XEN_UPSTREAM_PATCHES_DIR ]]; then
+               eapply "${XEN_UPSTREAM_PATCHES_DIR}"
+       fi
+
+       if [[ -v XEN_GENTOO_PATCHES_DIR ]]; then
+               eapply "${XEN_GENTOO_PATCHES_DIR}"
+       fi
+
+       # Symlinks do not work on fat32 volumes # 829765
+       if ! use boot-symlinks || use efi; then
+               eapply 
"${XEN_GENTOO_PATCHES_DIR}"/no-boot-symlinks/${PN}-4.16-no-symlinks.patch
+       fi
+
+       # Workaround new gcc-11 options
+       sed -e '/^CFLAGS/s/-Werror//g' -i xen/Makefile || die
+
+       # 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
+}
+
+xen_make() {
+       # Setting clang to either 'y' or 'n' tells Xen's build system
+       # whether or not clang is used.
+       local clang=n
+       if tc-is-clang; then
+               clang=y
+       fi
+
+       # Send raw LDFLAGS so that --as-needed works
+       emake \
+               V=1 \
+               LDFLAGS="$(raw-ldflags)" \
+               HOSTCC="$(tc-getBUILD_CC)" \
+               HOSTCXX="$(tc-getBUILD_CXX)" \
+               CC="$(tc-getCC)" \
+               CXX="$(tc-getCXX)" \
+               LD="$(tc-getLD)" \
+               AR="$(tc-getAR)" \
+               OBJDUMP="$(tc-getOBJDUMP)" \
+               RANLIB="$(tc-getRANLIB)" \
+               clang="${clang}" \
+               "$@"
+}
+
+src_configure() {
+       cd xen || die
+
+       touch gentoo-config || die
+       if use arm; then
+          echo "CONFIG_EARLY_PRINTK=sun7i" >> gentoo-config || die
+       fi
+       if use debug; then
+               cat <<-EOF >> gentoo-config || die
+               CONFIG_DEBUG=y
+               CONFIG_CRASH_DEBUG=y
+EOF
+       fi
+       if use flask; then
+               echo "CONFIG_XSM=y" >> gentoo-config || die
+       fi
+
+       # remove flags
+       unset CFLAGS
+
+       tc-ld-disable-gold # Bug 700374
+
+       xen_make KCONFIG_ALLCONFIG=gentoo-config alldefconfig
+}
+
+src_compile() {
+       xen_make -C xen
+}
+
+src_install() {
+       # The 'make install' doesn't 'mkdir -p' the subdirs
+       if use efi; then
+               mkdir -p "${D}"${EFI_MOUNTPOINT}/efi/${EFI_VENDOR} || die
+       fi
+
+       xen_make DESTDIR="${D}" -C xen install
+
+       # make install likes to throw in some extra EFI bits if it built
+       use efi || rm -rf "${D}/usr/$(get_libdir)/efi"
+}

Reply via email to