Gentoo Archives: gentoo-commits

From: "Michał Górny" <mgorny@g.o>
To: gentoo-commits@l.g.o
Subject: [gentoo-commits] repo/gentoo:master commit in: dev-python/pypy3-exe/
Date: Fri, 08 Oct 2021 08:44:58
Message-Id: 1633682689.bda51d90da842306926b40d682ee45dbd7c3f6ee.mgorny@gentoo
1 commit: bda51d90da842306926b40d682ee45dbd7c3f6ee
2 Author: Michał Górny <mgorny <AT> gentoo <DOT> org>
3 AuthorDate: Fri Oct 8 07:08:05 2021 +0000
4 Commit: Michał Górny <mgorny <AT> gentoo <DOT> org>
5 CommitDate: Fri Oct 8 08:44:49 2021 +0000
6 URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=bda51d90
7
8 dev-python/pypy3-exe: Bump to 7.3.6_rc2
9
10 Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>
11
12 dev-python/pypy3-exe/Manifest | 2 +
13 dev-python/pypy3-exe/pypy3-exe-7.3.6_rc2.ebuild | 166 ++++++++++++++++++++++++
14 2 files changed, 168 insertions(+)
15
16 diff --git a/dev-python/pypy3-exe/Manifest b/dev-python/pypy3-exe/Manifest
17 index 04436ed0c8e..70b86a08bb9 100644
18 --- a/dev-python/pypy3-exe/Manifest
19 +++ b/dev-python/pypy3-exe/Manifest
20 @@ -1,4 +1,6 @@
21 DIST pypy3.7-gentoo-patches-7.3.5.tar.xz 8164 BLAKE2B 0f8707fda16c0358c1d3a2a60d83046bc5c6186906e07d0e2441d26da4c5d2e7978aa9013be211daf0a1bfddbb10f96745ba4be84b61903e177f4d906045ed67 SHA512 95d3acb11c811e4342ba3a56e925433614c5affb6a1fc873ecd2f2cfd55459424088b928f46bcb9a6f0e467fb77905af387ad04bad45a37b928fe0ea320ac33e
22 DIST pypy3.7-v7.3.5-src.tar.bz2 25350766 BLAKE2B 34d5c83284271b184f71492dbd65b8760cc0fcdec71e41ef48b9561280dd67ef4c37fdd70759d0b95114d127446fc0ea5d04feb99022c1a725233862b2028834 SHA512 253d2efc81d55fb392ab810741e3a633f664e1908b2c26db7a8830c971655cca6be1b8d34581d13aa2d738a4a4c8ba23c2c90333b6e03d4608372e8013ea723b
23 DIST pypy3.8-gentoo-patches-7.3.6rc1.tar.xz 4660 BLAKE2B 2a1fff331707a29dfb232ce4c2c6d3cada127b4452036172c3aac7579d89b8e0d4ea41300ffcadf0ec04b9cde32044371d55d225a477f2178dddb03642aa569b SHA512 bb781369d4e0dd387659fc474c7a23d8c54ab88477fdd007d3552c95e870a1896a0628dbba876e870956c5a1efeb52efbfd343a08f8a70a4515f41b1dc8ed60d
24 +DIST pypy3.8-gentoo-patches-7.3.6rc2.tar.xz 4380 BLAKE2B 1ad68c088d4888d3579c0b48789be3a95413ab8f11d971f9f616a1701ceed2b8eba595612e28dbbdbc1732e4f8a7cd08cbbb89cdc413d1a3e9eabbcd78fdde76 SHA512 c2d68610b78ed33aaa67ce5244d289409256f66f2505ac19f0a679c0c10e6024993bbc7d37a59547daac38d321653b8b1a63c55e3f52d1409969f0961842fdd7
25 DIST pypy3.8-v7.3.6rc1-src.tar.bz2 24320127 BLAKE2B 920738d1d9a346dca8e76602fc5a1502ff6f610897e1f5b841b5207a32f82c52770684ba4ea076209e18b664cb9ba5df555a21f838ae581b436cbff9e2adb506 SHA512 334baf973397f8068137382c29632afd1288b76b57f21047bef59397d2718d8c420ba68acc2f1082501aadf7fbf8ee6a9fa86405c2a54d720a9a02dd7a7371aa
26 +DIST pypy3.8-v7.3.6rc2-src.tar.bz2 24350986 BLAKE2B fe167b7e1f4f81e1737220bb679874a1e0faa8605b0ec7d10db275c08226e12f8fcff5b958a5a2c42efba5125d88dea150b707441af13bd9b7ef0c9ef36d9c1b SHA512 98715c4053d995a442877f93b32ecb976ffc4160df869d35843718bacfd97d2bbd697f85b5961c420f8130d22e64d740d8d180a4f9ff802250897b4b8c216a6a
27
28 diff --git a/dev-python/pypy3-exe/pypy3-exe-7.3.6_rc2.ebuild b/dev-python/pypy3-exe/pypy3-exe-7.3.6_rc2.ebuild
29 new file mode 100644
30 index 00000000000..89b01acb0ce
31 --- /dev/null
32 +++ b/dev-python/pypy3-exe/pypy3-exe-7.3.6_rc2.ebuild
33 @@ -0,0 +1,166 @@
34 +# Copyright 1999-2021 Gentoo Authors
35 +# Distributed under the terms of the GNU General Public License v2
36 +
37 +EAPI=7
38 +
39 +# pypy3 needs to be built using python 2
40 +PYTHON_COMPAT=( python2_7 )
41 +inherit check-reqs pax-utils python-any-r1 toolchain-funcs
42 +
43 +PYPY_PV=${PV%_p*}
44 +MY_P=pypy3.8-v${PYPY_PV/_}
45 +PATCHSET="pypy3.8-gentoo-patches-${PV/_}"
46 +
47 +DESCRIPTION="PyPy3 executable (build from source)"
48 +HOMEPAGE="https://www.pypy.org/"
49 +SRC_URI="https://buildbot.pypy.org/pypy/${MY_P}-src.tar.bz2
50 + https://dev.gentoo.org/~mgorny/dist/python/${PATCHSET}.tar.xz"
51 +S="${WORKDIR}/${MY_P}-src"
52 +
53 +LICENSE="MIT"
54 +SLOT="${PYPY_PV}"
55 +KEYWORDS=""
56 +IUSE="bzip2 +jit low-memory ncurses cpu_flags_x86_sse2"
57 +
58 +RDEPEND=">=sys-libs/zlib-1.1.3:0=
59 + dev-libs/libffi:0=
60 + virtual/libintl:0=
61 + dev-libs/expat:0=
62 + bzip2? ( app-arch/bzip2:0= )
63 + ncurses? ( sys-libs/ncurses:0= )
64 + !dev-python/pypy3-exe-bin:${PYPY_PV}"
65 +DEPEND="${RDEPEND}"
66 +BDEPEND="
67 + low-memory? ( dev-python/pypy )
68 + !low-memory? (
69 + || (
70 + dev-python/pypy
71 + dev-lang/python:2.7
72 + )
73 + )"
74 +
75 +check_env() {
76 + if use low-memory; then
77 + CHECKREQS_MEMORY="1750M"
78 + use amd64 && CHECKREQS_MEMORY="3500M"
79 + else
80 + CHECKREQS_MEMORY="3G"
81 + use amd64 && CHECKREQS_MEMORY="6G"
82 + fi
83 +
84 + check-reqs_pkg_pretend
85 +}
86 +
87 +pkg_pretend() {
88 + [[ ${MERGE_TYPE} != binary ]] && check_env
89 +}
90 +
91 +pkg_setup() {
92 + if [[ ${MERGE_TYPE} != binary ]]; then
93 + check_env
94 +
95 + # unset to allow forcing pypy below :)
96 + use low-memory && EPYTHON=
97 + if [[ ! ${EPYTHON} || ${EPYTHON} == pypy ]] &&
98 + { has_version -b dev-python/pypy ||
99 + has_version -b dev-python/pypy-bin; }
100 + then
101 + einfo "Using PyPy to perform the translation."
102 + EPYTHON=pypy
103 + else
104 + einfo "Using ${EPYTHON:-python2} to perform the translation. Please note that upstream"
105 + einfo "recommends using PyPy for that. If you wish to do so, please install"
106 + einfo "dev-python/pypy and ensure that EPYTHON variable is unset."
107 + python-any-r1_pkg_setup
108 + fi
109 + fi
110 +}
111 +
112 +src_prepare() {
113 + local PATCHES=(
114 + "${WORKDIR}/${PATCHSET}"
115 + )
116 + default
117 +}
118 +
119 +src_configure() {
120 + tc-export CC
121 +
122 + local jit_backend
123 + if use jit; then
124 + jit_backend='--jit-backend='
125 +
126 + # We only need the explicit sse2 switch for x86.
127 + # On other arches we can rely on autodetection which uses
128 + # compiler macros. Plus, --jit-backend= doesn't accept all
129 + # the modern values...
130 +
131 + if use x86; then
132 + if use cpu_flags_x86_sse2; then
133 + jit_backend+=x86
134 + else
135 + jit_backend+=x86-without-sse2
136 + fi
137 + else
138 + jit_backend+=auto
139 + fi
140 + fi
141 +
142 + local args=(
143 + --no-shared
144 + $(usex jit -Ojit -O2)
145 +
146 + ${jit_backend}
147 +
148 + pypy/goal/targetpypystandalone
149 + )
150 +
151 + # Avoid linking against libraries disabled by use flags
152 + local opts=(
153 + bzip2:bz2
154 + ncurses:_minimal_curses
155 + )
156 +
157 + local opt
158 + for opt in "${opts[@]}"; do
159 + local flag=${opt%:*}
160 + local mod=${opt#*:}
161 +
162 + args+=(
163 + $(usex ${flag} --withmod --withoutmod)-${mod}
164 + )
165 + done
166 +
167 + local interp=( "${EPYTHON}" )
168 + if use low-memory; then
169 + interp=( env PYPY_GC_MAX_DELTA=200MB
170 + "${EPYTHON}" --jit loop_longevity=300 )
171 + fi
172 +
173 + if [[ ${EPYTHON} != pypy ]]; then
174 + # reuse bundled pycparser to avoid external dep
175 + mkdir -p "${T}"/pymod/cffi || die
176 + : > "${T}"/pymod/cffi/__init__.py || die
177 + cp -r lib_pypy/cffi/_pycparser "${T}"/pymod/cffi/ || die
178 + local -x PYTHONPATH=${T}/pymod:${PYTHONPATH}
179 + fi
180 +
181 + # translate into the C sources
182 + # we're going to build them ourselves since otherwise pypy does not
183 + # free up the unneeded memory before spawning the compiler
184 + set -- "${interp[@]}" rpython/bin/rpython --batch --source "${args[@]}"
185 + echo -e "\033[1m${@}\033[0m"
186 + "${@}" || die "translation failed"
187 +}
188 +
189 +src_compile() {
190 + emake -C "${T}"/usession*-0/testing_1
191 +}
192 +
193 +src_install() {
194 + cd "${T}"/usession*-0 || die
195 + newbin testing_1/pypy3-c pypy3-c-${PYPY_PV}
196 + insinto /usr/include/pypy3.8/${PYPY_PV}
197 + doins pypy_*.h
198 + pax-mark m "${ED}/usr/bin/pypy3-c-${PYPY_PV}"
199 +}