Gentoo Archives: gentoo-commits

From: Yixun Lan <dlan@g.o>
To: gentoo-commits@l.g.o
Subject: [gentoo-commits] repo/gentoo:master commit in: app-emulation/xen/
Date: Mon, 25 May 2020 14:21:37
Message-Id: 1590416413.1c239537b78efbb5922a6a08f3ef58ba1e54bf19.dlan@gentoo
1 commit: 1c239537b78efbb5922a6a08f3ef58ba1e54bf19
2 Author: Tomáš Mózes <hydrapolic <AT> gmail <DOT> com>
3 AuthorDate: Tue May 19 10:54:24 2020 +0000
4 Commit: Yixun Lan <dlan <AT> gentoo <DOT> org>
5 CommitDate: Mon May 25 14:20:13 2020 +0000
6 URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=1c239537
7
8 app-emulation/xen: bump to 4.13.1
9
10 Closes: https://github.com/gentoo/gentoo/pull/15857
11 Signed-off-by: Tomáš Mózes <hydrapolic <AT> gmail.com>
12 Signed-off-by: Yixun Lan <dlan <AT> gentoo.org>
13
14 app-emulation/xen/Manifest | 1 +
15 app-emulation/xen/xen-4.13.1.ebuild | 165 ++++++++++++++++++++++++++++++++++++
16 2 files changed, 166 insertions(+)
17
18 diff --git a/app-emulation/xen/Manifest b/app-emulation/xen/Manifest
19 index a86d21603bf..1fc0fd00909 100644
20 --- a/app-emulation/xen/Manifest
21 +++ b/app-emulation/xen/Manifest
22 @@ -3,3 +3,4 @@ DIST xen-4.12.2.tar.gz 26985135 BLAKE2B 530821011a6dd0ac0a99fb135ff5311eb8e975c3
23 DIST xen-4.12.3.tar.gz 26985230 BLAKE2B 403de519a552f1cd49e5a85b63f48df1b7a47ff8381385860b67df32af0b33be1c13c92ca2234e4479b7f415e711e0f46c396c3f62dfb5b2465d2991723cf6ef SHA512 7bbf4e752477f18143ac9a62fb633b1fbe115a1a9b03d0132f33dfca025bc9b76d9c2e9b66a3e407d14aff161b940b1a82e3e3ca43213798e9dd38b6970194e0
24 DIST xen-4.13.0-upstream-patches-2.tar.xz 55980 BLAKE2B b85512456cac253d7f4dd0dca120d694cde0b0f4d0270023bca337f9bc693eb768c1a43d74d412c38dc665ee50a70d2985e5bfc6edde3eacc4376d2f6d7877c8 SHA512 fb852be98209e135a11241dd15e9bd174a5a3724bfaea1fc3b12ba964b8fc275946b1c443c70a78212dff0bc9b25015a00d9f902183c135053e27957b55b6bb6
25 DIST xen-4.13.0.tar.gz 39005191 BLAKE2B cd85bfe549e20447afb8ec6b2ab33ea1893f45392c08737730d7898706748ebb96b2e842b2ff3e4af8c5d8a705e6d25a2bfb8acf0d7cc771805d0cc97757a949 SHA512 5b2ded9a2fe3f7ddf40eed1fa9858baead06233a01eb6099cc45b3c78b6c3823acfe7b731910733e87125dfa49d08c53f74c215fb1b320a92b44b87a0a105225
26 +DIST xen-4.13.1.tar.gz 39024612 BLAKE2B efff138699fac2c14fad2e0dfd4535ebd744577df3dddccc2a589b81a76f24fc81c75e295f4cd33ca2e820929417b22d714504b576cb0737a563037bd56b6a95 SHA512 b56d20704155d98d803496cba83eb928e0f986a750831cd5600fc88d0ae772fe1456571654375054043d2da8daca255cc98385ebf08b1b1a75ecf7f4b7a0ee90
27
28 diff --git a/app-emulation/xen/xen-4.13.1.ebuild b/app-emulation/xen/xen-4.13.1.ebuild
29 new file mode 100644
30 index 00000000000..d6b6b7ddd30
31 --- /dev/null
32 +++ b/app-emulation/xen/xen-4.13.1.ebuild
33 @@ -0,0 +1,165 @@
34 +# Copyright 1999-2020 Gentoo Authors
35 +# Distributed under the terms of the GNU General Public License v2
36 +
37 +EAPI=7
38 +
39 +PYTHON_COMPAT=( python3_{6,7,8} )
40 +
41 +inherit flag-o-matic mount-boot multilib python-any-r1 toolchain-funcs
42 +
43 +MY_PV=${PV/_/-}
44 +MY_P=${PN}-${MY_PV}
45 +
46 +if [[ $PV == *9999 ]]; then
47 + inherit git-r3
48 + EGIT_REPO_URI="git://xenbits.xen.org/xen.git"
49 + SRC_URI=""
50 +else
51 + KEYWORDS="~amd64 ~arm -x86"
52 + UPSTREAM_VER=
53 + SECURITY_VER=
54 + GENTOO_VER=
55 +
56 + [[ -n ${UPSTREAM_VER} ]] && \
57 + UPSTREAM_PATCHSET_URI="https://dev.gentoo.org/~dlan/distfiles/${P}-upstream-patches-${UPSTREAM_VER}.tar.xz
58 + https://github.com/hydrapolic/gentoo-dist/raw/master/xen/${P}-upstream-patches-${UPSTREAM_VER}.tar.xz"
59 + [[ -n ${SECURITY_VER} ]] && \
60 + SECURITY_PATCHSET_URI="https://dev.gentoo.org/~dlan/distfiles/${PN}-security-patches-${SECURITY_VER}.tar.xz"
61 + [[ -n ${GENTOO_VER} ]] && \
62 + GENTOO_PATCHSET_URI="https://dev.gentoo.org/~dlan/distfiles/${PN}-gentoo-patches-${GENTOO_VER}.tar.xz"
63 + SRC_URI="https://downloads.xenproject.org/release/xen/${MY_PV}/${MY_P}.tar.gz
64 + ${UPSTREAM_PATCHSET_URI}
65 + ${SECURITY_PATCHSET_URI}
66 + ${GENTOO_PATCHSET_URI}"
67 +fi
68 +
69 +DESCRIPTION="The Xen virtual machine monitor"
70 +HOMEPAGE="https://www.xenproject.org"
71 +LICENSE="GPL-2"
72 +SLOT="0"
73 +IUSE="debug efi flask"
74 +
75 +DEPEND="${PYTHON_DEPS}
76 + efi? ( >=sys-devel/binutils-2.22[multitarget] )
77 + !efi? ( >=sys-devel/binutils-2.22 )"
78 +RDEPEND=""
79 +PDEPEND="~app-emulation/xen-tools-${PV}"
80 +
81 +# no tests are available for the hypervisor
82 +# prevent the silliness of /usr/lib/debug/usr/lib/debug files
83 +# prevent stripping of the debug info from the /usr/lib/debug/xen-syms
84 +RESTRICT="test splitdebug strip"
85 +
86 +# Approved by QA team in bug #144032
87 +QA_WX_LOAD="boot/xen-syms-${PV}"
88 +
89 +REQUIRED_USE="arm? ( debug )"
90 +
91 +S="${WORKDIR}/${MY_P}"
92 +
93 +pkg_setup() {
94 + python-any-r1_pkg_setup
95 + if [[ -z ${XEN_TARGET_ARCH} ]]; then
96 + if use amd64; then
97 + export XEN_TARGET_ARCH="x86_64"
98 + elif use arm; then
99 + export XEN_TARGET_ARCH="arm32"
100 + elif use arm64; then
101 + export XEN_TARGET_ARCH="arm64"
102 + else
103 + die "Unsupported architecture!"
104 + fi
105 + fi
106 +
107 + if use flask ; then
108 + export "XSM_ENABLE=y"
109 + export "FLASK_ENABLE=y"
110 + fi
111 +}
112 +
113 +src_prepare() {
114 + # Upstream's patchset
115 + [[ -n ${UPSTREAM_VER} ]] && eapply "${WORKDIR}"/patches-upstream
116 +
117 + # Security patchset
118 + if [[ -n ${SECURITY_VER} ]]; then
119 + einfo "Try to apply Xen Security patch set"
120 + # apply main xen patches
121 + # Two parallel systems, both work side by side
122 + # Over time they may concdense into one. This will suffice for now
123 + source "${WORKDIR}"/patches-security/${PV}.conf
124 +
125 + local i
126 + for i in ${XEN_SECURITY_MAIN}; do
127 + eapply "${WORKDIR}"/patches-security/xen/$i
128 + done
129 + fi
130 +
131 + # Gentoo's patchset
132 + [[ -n ${GENTOO_VER} ]] && eapply "${WORKDIR}"/patches-gentoo
133 +
134 + eapply "${FILESDIR}"/${PN}-4.11-efi.patch
135 +
136 + # Drop .config
137 + sed -e '/-include $(XEN_ROOT)\/.config/d' -i Config.mk || die "Couldn't drop"
138 +
139 + if use efi; then
140 + export EFI_VENDOR="gentoo"
141 + export EFI_MOUNTPOINT="/boot"
142 + fi
143 +
144 + default
145 +}
146 +
147 +src_configure() {
148 + use arm && myopt="${myopt} CONFIG_EARLY_PRINTK=sun7i"
149 +
150 + use debug && myopt="${myopt} debug=y"
151 +
152 + # remove flags
153 + unset CFLAGS
154 + unset LDFLAGS
155 + unset ASFLAGS
156 +
157 + tc-ld-disable-gold # Bug 700374
158 +}
159 +
160 +src_compile() {
161 + # Send raw LDFLAGS so that --as-needed works
162 + emake V=1 CC="$(tc-getCC)" LDFLAGS="$(raw-ldflags)" LD="$(tc-getLD)" -C xen ${myopt}
163 +}
164 +
165 +src_install() {
166 + local myopt
167 + use debug && myopt="${myopt} debug=y"
168 +
169 + # The 'make install' doesn't 'mkdir -p' the subdirs
170 + if use efi; then
171 + mkdir -p "${D}"${EFI_MOUNTPOINT}/efi/${EFI_VENDOR} || die
172 + fi
173 +
174 + emake LDFLAGS="$(raw-ldflags)" DESTDIR="${D}" -C xen ${myopt} install
175 +
176 + # make install likes to throw in some extra EFI bits if it built
177 + use efi || rm -rf "${D}/usr/$(get_libdir)/efi"
178 +}
179 +
180 +pkg_postinst() {
181 + elog "Official Xen Guide:"
182 + elog " https://wiki.gentoo.org/wiki/Xen"
183 +
184 + use efi && einfo "The efi executable is installed in /boot/efi/gentoo"
185 +
186 + elog "You can optionally block the installation of /boot/xen-syms by an entry"
187 + elog "in folder /etc/portage/env using the portage's feature INSTALL_MASK"
188 + elog "e.g. echo ${msg} > /etc/portage/env/xen.conf"
189 +
190 + ewarn
191 + ewarn "Xen 4.12+ changed the default scheduler to credit2 which can cause"
192 + ewarn "domU lockups on multi-cpu systems. The legacy credit scheduler seems"
193 + ewarn "to work fine."
194 + ewarn
195 + ewarn "Add sched=credit to xen command line options to use the legacy scheduler."
196 + ewarn
197 + ewarn "https://wiki.gentoo.org/wiki/Xen#Xen_domU_hanging_with_Xen_4.12.2B"
198 +}