From 2fd57282f0262ca084e05b0f2c63fbada395d02b Mon Sep 17 00:00:00 2001 From: V3n3RiX Date: Sun, 16 Jan 2022 20:27:28 +0000 Subject: gentoo resync : 16.01.2021 --- app-emulation/xen/Manifest | 8 +- app-emulation/xen/files/xen-4.16-efi.patch | 38 ----- app-emulation/xen/files/xen-4.16-no-symlink.patch | 17 +++ app-emulation/xen/metadata.xml | 1 + app-emulation/xen/xen-4.15.1-r2.ebuild | 4 +- app-emulation/xen/xen-4.16.0-r1.ebuild | 164 ++++++++++++++++++++++ app-emulation/xen/xen-4.16.0.ebuild | 163 --------------------- 7 files changed, 188 insertions(+), 207 deletions(-) delete mode 100644 app-emulation/xen/files/xen-4.16-efi.patch create mode 100644 app-emulation/xen/files/xen-4.16-no-symlink.patch create mode 100644 app-emulation/xen/xen-4.16.0-r1.ebuild delete mode 100644 app-emulation/xen/xen-4.16.0.ebuild (limited to 'app-emulation/xen') diff --git a/app-emulation/xen/Manifest b/app-emulation/xen/Manifest index dce4b848907e..6e236dd4350e 100644 --- a/app-emulation/xen/Manifest +++ b/app-emulation/xen/Manifest @@ -1,13 +1,13 @@ AUX xen-4.14-efi.patch 1969 BLAKE2B dec62e9b04ce23025443caa68df2fd69c50a3fdf650bf26047b28f3a72d1aa58124127274cd2c1373a4e133784b2691145c49c9a182bd635aa9c60bb1e45a0c1 SHA512 3e32aac5ba2ec371a3877d64532e8d134c3b4fe3a6644477ee8ecf56cbb8378b20f9d5d7415bec891d96910550a787848779c82ee4b9d57046f4c13235531ea0 AUX xen-4.15-efi.patch 2181 BLAKE2B a06b944dea37c3dfdbe4344191ec4a286348f46bcccf1b5a75f061e55b961d767972456803b8c9aa15120b2b2497651495e903925bf93b04c483e0713d9117a9 SHA512 7ec52fc65b5b8a22877c941f0ab6f249ba1d7b40ad7d50d8f0ac793069cc0eb85b1e5394ce81adf60fa23b01ecc8ce983e6c508b8e0d22189dc46e2c1ad8c1b4 AUX xen-4.15-flask.patch 400 BLAKE2B 68ee04b8b0923cbe7e2b93b834a23b465c9c8e63ae41bea98c8b4bce4ff59374534294b8c5cd5be30ea64d7c66caec54de0bc1bf70d80275d027b3a082ec2003 SHA512 146c6a161d3def5ab947264d6ac5932066f3124e25be14185ebd75eaa18932adcf35daf21edd051861cacd28b950b6a3ee5c5ac335ccc1d0e27b3242da5c4441 -AUX xen-4.16-efi.patch 2107 BLAKE2B 67cf3fa6f3505c9f54820f535e7d74eba087390c3f7a9a13ef57a6cd700543e2b3fe536a1212f4e6702c6e5f4b4bd97b7e72900754977cab5540512e4a389692 SHA512 64b3b07de8bb7b7a827a004095ae6017d972b4a5cfe22329f77b0d553ba7722031569d033eeb74113fee94c01c2784647fcfd165d1b7d4a8111985767c5dd736 +AUX xen-4.16-no-symlink.patch 1044 BLAKE2B 3f5cb93403e3cd606a5eabb8b0e7facb3c95ae7f805c4bfa0e5a357342b845f6f260915f9eac46573bd9813fa602702df6254ad4b946fccb32cfea7514cc86b3 SHA512 0d1a8c8dbfdd57dac6d9732afcf4d0da1746ecbfa06689eb343b3d54167a784c9b9b65555f4cabd8f30a97692c511ee16c7787cdc3d335f7e39c2e3f8fc86ccf DIST xen-4.14.3-upstream-patches-2.tar.xz 28336 BLAKE2B 45666fd4aa81c5b8d3c13f5fa949f30a3c168c3ece0109f66092a93d1c2c204dda21afdb46357ca836f763cddaa66a9dbe895939294db36ed28a348e0d92d072 SHA512 c80c4e1cf6c5b870d3471b7430478f1180704d55b5327ef0748e2dc5c3bc03eee05003888160a802b439a6a11aa6bd047122f340ea0cdc1b6bfd71371090e827 DIST xen-4.14.3.tar.gz 39982036 BLAKE2B 927fd2937f451567238702430cea3a6e5d2db70d5eef10f029bb1d6d030681573c851eb8076c8bad89c97c115f81a19ac8e46e78ca3f0e642565f7300c264ca1 SHA512 b462fcc1549f6e57f7f2a4fd10ce1e957a25a6a7c0319672b62699468f6c4330b9cd0cf2b0231b5cce94f4bb142a957eb8aa58aa0ffb5c85b37211d6b34ccf16 DIST xen-4.15.1-upstream-patches-2.tar.xz 30180 BLAKE2B 675c13cfb4a6f47121dfe125ddea21d98e7e37563f63b91cde96cd92d94eff648eaa65426fec09833ad668102959948b2e684860631db2b5a2a53b2521a01069 SHA512 f0a6c0829068828ac400d67230d3066b2370a90303e537dd5e0761920ac0d584139b59244a72d9dcd2e4cb1a151ab80d3197ba908e642e13817b89b9a33c73fb DIST xen-4.15.1.tar.gz 40800852 BLAKE2B 39475ea33f029fb0e84b82b4a2b13fd613bab01e3ef6c241dfede3d190ee9be53c99b62121d37d83b1e078764b3e4d88d1dfb99be1b5623691e56519850c6798 SHA512 8d3cbdf708f46477e32ee7cbd16a490c82efa855cecd84ee712b8680df4d69c987ba9ab00ff3851f627b98a8ebbc5dab71f92f142ed958ee2bc538bc792cd4b9 DIST xen-4.16.0.tar.gz 44982322 BLAKE2B 7e16a93b3f1131e2b10307fabc10641a9c5983173155b9a35eaf6ff317b6a747bccf6b8c87c06686830acc2c4bd3e19e5867eb443eabac9a1e4ee59124dfa87f SHA512 2869ed90d1779c9754d7f2397f5fc67a655304d9c32953ac20655ef96cb154521d8fce9f23915ac0c91f984dc54f72c67e5e619e2da318b5997748f44cf21b87 EBUILD xen-4.14.3-r2.ebuild 4408 BLAKE2B 46ca07316dd866afdfe43386665acc3552c5ebc0c8d289d1f59c752f2be948122cc550c2e8fa2583cc1ef172f6e5026d6c16bdcd57bbc9b72f1bf917c65b2a68 SHA512 2afd50d4c3c6bee62a6fc8eb17f90caf400906dc8f7fa3a99610d22680eb7e5192a8a83e24ef5d703c04a94e50d72ed4758d9e97a2b89d1a931a304b9639d745 -EBUILD xen-4.15.1-r2.ebuild 4409 BLAKE2B 22601b8aedb52c39d584837ea28eba60c2a229b244d28f19f49ee7e8cb60a62a6b0fe75fbbeacc7b91f6954fe561c82fbef78a900efe1c701bd700a60967dcde SHA512 9ee6862e2487a26cee46c8ed909ed9cb33d599cb6ecff829733292b661ddfa312ffde89957e7fc97f6b2d537a7646115ef6d0b3ff81990e64220272a8b461464 -EBUILD xen-4.16.0.ebuild 4409 BLAKE2B a5d61c1e953ae1d5a9905c0492f2a03bdcc6b62e2d3b606f66a5871ea856d8dc5c36fe3541011cdc086b66338c138a5cb9d3970ca5b04aca32e79dc6ab4bceb7 SHA512 94158f5d4461052b547e48e0c1823501d635d1ef822d493e17b1053d4cd9ca71fda5e3a0108c725d9085757d1d9893bde4a80e2c2f8a85f45658b31eea6b71ad -MISC metadata.xml 676 BLAKE2B 23003620a5ae9ecc8fca8bea77951fdf0469bb3b997819bfaccb7be4ece20b8a2c2f4b3385f1fc04e749d40a3f2353ed8559806049069fa6bf6bcbe43921db03 SHA512 027f25045231ae0425f5d60e7cf0981654f9e0f445ebfecdee9d7ca0f13272c0edc0440faf9bca85feb55711391d4e3dce402b138a5d4e72f30aa7ee680e14fb +EBUILD xen-4.15.1-r2.ebuild 4408 BLAKE2B f2870cf9b704b5871d61fac799e0ffdc59d914fbcd49d67e6c5125d5f2f4094ae32ff6987c0bb7371de8271d5292c720e5f1a8c263c05c3abda1ca562565b600 SHA512 46624811280430ff388cc6089d60b5142d96a7b22f2e09b02b1ceef0f476997a1755146b9eabef84ff8d8165c059cff76efa753273dedef51a692e91a9f543d0 +EBUILD xen-4.16.0-r1.ebuild 4485 BLAKE2B 6dbaccad0866a01d32e99286568423e558b3e19252c939ddba1017eaa9c5b0e946a95a30ef6b67e89702415aa0d079e65095f0a216d39afb20f6bbf4053b94fd SHA512 eaacd8e41fd113090270e868fa99c1681d62057bf6edae7d4f0348757994a20a51e90b2f513d2fa0e2055032a8e605ef29c26bc7f2f368d8856c38805e91c4d6 +MISC metadata.xml 773 BLAKE2B 3d0c64f8bfaf753ee92681f9da2dfabd6196952b5694244b806cb6cdac02fedd10d8c8defb4f4211664e135cce38c671f543faab58575ae2d603efcb9b2a48b8 SHA512 16993794d7f578562112533f97bb76d1a2fafd0dce038dbd879a4a65d5fc893251f1d188cdc1a2b9f955a27581f76a26409cc0c90706c86514c05e81501966b9 diff --git a/app-emulation/xen/files/xen-4.16-efi.patch b/app-emulation/xen/files/xen-4.16-efi.patch deleted file mode 100644 index 1285c421f3d2..000000000000 --- a/app-emulation/xen/files/xen-4.16-efi.patch +++ /dev/null @@ -1,38 +0,0 @@ -diff --git a/xen/Makefile b/xen/Makefile -index dfb0efcc..3bd51ec1 100644 ---- a/xen/Makefile -+++ b/xen/Makefile -@@ -311,9 +311,17 @@ _install: Z=$(CONFIG_XEN_INSTALL_SUFFIX) - _install: $(TARGET)$(CONFIG_XEN_INSTALL_SUFFIX) - [ -d $(D)$(BOOT_DIR) ] || $(INSTALL_DIR) $(D)$(BOOT_DIR) - $(INSTALL_DATA) $(TARGET)$(Z) $(D)$(BOOT_DIR)/$(T)-$(XEN_FULLVERSION)$(Z) -- ln -f -s $(T)-$(XEN_FULLVERSION)$(Z) $(D)$(BOOT_DIR)/$(T)-$(XEN_VERSION).$(XEN_SUBVERSION)$(Z) -- ln -f -s $(T)-$(XEN_FULLVERSION)$(Z) $(D)$(BOOT_DIR)/$(T)-$(XEN_VERSION)$(Z) -- ln -f -s $(T)-$(XEN_FULLVERSION)$(Z) $(D)$(BOOT_DIR)/$(T)$(Z) -+ -+ if [ 'x$(EFI_VENDOR)' == 'x' ]; then \ -+ ln -f -s $(T)-$(XEN_FULLVERSION)$(Z) $(D)$(BOOT_DIR)/$(T)-$(XEN_VERSION).$(XEN_SUBVERSION)$(Z); \ -+ ln -f -s $(T)-$(XEN_FULLVERSION)$(Z) $(D)$(BOOT_DIR)/$(T)-$(XEN_VERSION)$(Z); \ -+ ln -f -s $(T)-$(XEN_FULLVERSION)$(Z) $(D)$(BOOT_DIR)/$(T)$(Z); \ -+ else \ -+ $(INSTALL_DATA) $(TARGET)$(Z) $(D)$(BOOT_DIR)/$(T)-$(XEN_VERSION).$(XEN_SUBVERSION)$(Z); \ -+ $(INSTALL_DATA) $(TARGET)$(Z) $(D)$(BOOT_DIR)/$(T)-$(XEN_VERSION)$(Z); \ -+ $(INSTALL_DATA) $(TARGET)$(Z) $(D)$(BOOT_DIR)/$(T)$(Z); \ -+ fi; -+ - [ -d "$(D)$(DEBUG_DIR)" ] || $(INSTALL_DIR) $(D)$(DEBUG_DIR) - $(INSTALL_DATA) $(TARGET)-syms $(D)$(DEBUG_DIR)/$(T)-syms-$(XEN_FULLVERSION) - $(INSTALL_DATA) $(TARGET)-syms.map $(D)$(DEBUG_DIR)/$(T)-syms-$(XEN_FULLVERSION).map -diff --git a/xen/arch/x86/Makefile b/xen/arch/x86/Makefile -index 69b6cfad..d8b09d95 100644 ---- a/xen/arch/x86/Makefile -+++ b/xen/arch/x86/Makefile -@@ -127,7 +127,7 @@ export XEN_BUILD_EFI := $(shell $(CC) $(XEN_CFLAGS) -c efi/check.c -o efi/check. - CFLAGS-$(XEN_BUILD_EFI) += -DXEN_BUILD_EFI - - # Check if the linker supports PE. --EFI_LDFLAGS = $(patsubst -m%,-mi386pep,$(XEN_LDFLAGS)) --subsystem=10 -+EFI_LDFLAGS = -mi386pep $(patsubst -m%,-mi386pep,$(XEN_LDFLAGS)) --subsystem=10 - XEN_BUILD_PE := $(if $(XEN_BUILD_EFI),$(call ld-option,$(EFI_LDFLAGS) --image-base=0x100000000 -o efi/check.efi efi/check.o)) - # If the above failed, it may be merely because of the linker not dealing well - # with debug info. Try again with stripping it. diff --git a/app-emulation/xen/files/xen-4.16-no-symlink.patch b/app-emulation/xen/files/xen-4.16-no-symlink.patch new file mode 100644 index 000000000000..8aed75b520c5 --- /dev/null +++ b/app-emulation/xen/files/xen-4.16-no-symlink.patch @@ -0,0 +1,17 @@ +diff --git a/xen/Makefile b/xen/Makefile +index dfb0efcc..1816eb66 100644 +--- a/xen/Makefile ++++ b/xen/Makefile +@@ -311,9 +311,9 @@ _install: Z=$(CONFIG_XEN_INSTALL_SUFFIX) + _install: $(TARGET)$(CONFIG_XEN_INSTALL_SUFFIX) + [ -d $(D)$(BOOT_DIR) ] || $(INSTALL_DIR) $(D)$(BOOT_DIR) + $(INSTALL_DATA) $(TARGET)$(Z) $(D)$(BOOT_DIR)/$(T)-$(XEN_FULLVERSION)$(Z) +- ln -f -s $(T)-$(XEN_FULLVERSION)$(Z) $(D)$(BOOT_DIR)/$(T)-$(XEN_VERSION).$(XEN_SUBVERSION)$(Z) +- ln -f -s $(T)-$(XEN_FULLVERSION)$(Z) $(D)$(BOOT_DIR)/$(T)-$(XEN_VERSION)$(Z) +- ln -f -s $(T)-$(XEN_FULLVERSION)$(Z) $(D)$(BOOT_DIR)/$(T)$(Z) ++ $(INSTALL_DATA) $(TARGET)$(Z) $(D)$(BOOT_DIR)/$(T)-$(XEN_VERSION).$(XEN_SUBVERSION)$(Z) ++ $(INSTALL_DATA) $(TARGET)$(Z) $(D)$(BOOT_DIR)/$(T)-$(XEN_VERSION)$(Z) ++ $(INSTALL_DATA) $(TARGET)$(Z) $(D)$(BOOT_DIR)/$(T)$(Z) + [ -d "$(D)$(DEBUG_DIR)" ] || $(INSTALL_DIR) $(D)$(DEBUG_DIR) + $(INSTALL_DATA) $(TARGET)-syms $(D)$(DEBUG_DIR)/$(T)-syms-$(XEN_FULLVERSION) + $(INSTALL_DATA) $(TARGET)-syms.map $(D)$(DEBUG_DIR)/$(T)-syms-$(XEN_FULLVERSION).map diff --git a/app-emulation/xen/metadata.xml b/app-emulation/xen/metadata.xml index c9b2f33aa70a..68e9c297bc42 100644 --- a/app-emulation/xen/metadata.xml +++ b/app-emulation/xen/metadata.xml @@ -14,6 +14,7 @@ Gentoo Xen Project + Symlink xen.gz variants in /boot, disable on fat filesystems Enable the Flask XSM module from NSA Adds efi boot support, requires LDFLAG -melf_x86_64 for amd64 diff --git a/app-emulation/xen/xen-4.15.1-r2.ebuild b/app-emulation/xen/xen-4.15.1-r2.ebuild index 9170b0ac6fc9..c47eb7e424a0 100644 --- a/app-emulation/xen/xen-4.15.1-r2.ebuild +++ b/app-emulation/xen/xen-4.15.1-r2.ebuild @@ -1,4 +1,4 @@ -# Copyright 1999-2021 Gentoo Authors +# Copyright 1999-2022 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=7 @@ -15,7 +15,7 @@ if [[ ${PV} == *9999 ]]; then EGIT_REPO_URI="git://xenbits.xen.org/xen.git" SRC_URI="" else - KEYWORDS="~amd64 ~arm -x86" + KEYWORDS="amd64 ~arm -x86" UPSTREAM_VER=2 SECURITY_VER= GENTOO_VER= diff --git a/app-emulation/xen/xen-4.16.0-r1.ebuild b/app-emulation/xen/xen-4.16.0-r1.ebuild new file mode 100644 index 000000000000..ea9f254e98d2 --- /dev/null +++ b/app-emulation/xen/xen-4.16.0-r1.ebuild @@ -0,0 +1,164 @@ +# Copyright 1999-2022 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +PYTHON_COMPAT=( python3_{8..10} ) + +inherit flag-o-matic mount-boot 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= + 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="+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}" + +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 +} + +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 + + # Symlinks do not work on fat32 volumes # 829765 + if ! use boot-symlinks || use efi; then + eapply "${FILESDIR}"/${PN}-4.16-no-symlink.patch + fi + + # Enable XSM-FLASK + use flask && eapply "${FILESDIR}"/${PN}-4.15-flask.patch + + # 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 +} + +src_configure() { + use arm && myopt="${myopt} CONFIG_EARLY_PRINTK=sun7i" + use debug && myopt="${myopt} debug=y" + + # remove flags + unset CFLAGS + unset LDFLAGS + unset ASFLAGS + + tc-ld-disable-gold # Bug 700374 +} + +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)" LD="$(tc-getLD)" 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" + + ewarn + ewarn "Xen 4.12+ changed the default scheduler to credit2 which can cause" + ewarn "domU lockups on multi-cpu systems. The legacy credit scheduler seems" + ewarn "to work fine." + ewarn + ewarn "Add sched=credit to xen command line options to use the legacy scheduler." + ewarn + ewarn "https://wiki.gentoo.org/wiki/Xen#Xen_domU_hanging_with_Xen_4.12.2B" +} diff --git a/app-emulation/xen/xen-4.16.0.ebuild b/app-emulation/xen/xen-4.16.0.ebuild deleted file mode 100644 index 5cbf9f980141..000000000000 --- a/app-emulation/xen/xen-4.16.0.ebuild +++ /dev/null @@ -1,163 +0,0 @@ -# Copyright 1999-2021 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -PYTHON_COMPAT=( python3_{8..10} ) - -inherit flag-o-matic mount-boot 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= - 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 ) - 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}" - -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 -} - -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 - - # Symlinks do not work on fat32 volumes - eapply "${FILESDIR}"/${PN}-4.16-efi.patch - - # Enable XSM-FLASK - use flask && eapply "${FILESDIR}"/${PN}-4.15-flask.patch - - # 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 -} - -src_configure() { - use arm && myopt="${myopt} CONFIG_EARLY_PRINTK=sun7i" - use debug && myopt="${myopt} debug=y" - - # remove flags - unset CFLAGS - unset LDFLAGS - unset ASFLAGS - - tc-ld-disable-gold # Bug 700374 -} - -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)" LD="$(tc-getLD)" 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" - - ewarn - ewarn "Xen 4.12+ changed the default scheduler to credit2 which can cause" - ewarn "domU lockups on multi-cpu systems. The legacy credit scheduler seems" - ewarn "to work fine." - ewarn - ewarn "Add sched=credit to xen command line options to use the legacy scheduler." - ewarn - ewarn "https://wiki.gentoo.org/wiki/Xen#Xen_domU_hanging_with_Xen_4.12.2B" -} -- cgit v1.2.3