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/pypy-bin/
Date: Fri, 27 Nov 2015 19:50:04
Message-Id: 1448653769.3d41060bb504da5fb2dd2de649a058fe4ef81b53.mgorny@gentoo
1 commit: 3d41060bb504da5fb2dd2de649a058fe4ef81b53
2 Author: Michał Górny <mgorny <AT> gentoo <DOT> org>
3 AuthorDate: Fri Nov 27 19:13:50 2015 +0000
4 Commit: Michał Górny <mgorny <AT> gentoo <DOT> org>
5 CommitDate: Fri Nov 27 19:49:29 2015 +0000
6 URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=3d41060b
7
8 dev-python/pypy-bin: Bump to 4.0.1
9
10 dev-python/pypy-bin/Manifest | 8 ++
11 dev-python/pypy-bin/pypy-bin-4.0.1.ebuild | 201 ++++++++++++++++++++++++++++++
12 2 files changed, 209 insertions(+)
13
14 diff --git a/dev-python/pypy-bin/Manifest b/dev-python/pypy-bin/Manifest
15 index 8409437..cbbf863 100644
16 --- a/dev-python/pypy-bin/Manifest
17 +++ b/dev-python/pypy-bin/Manifest
18 @@ -1,5 +1,6 @@
19 DIST pypy-2.6.0-src.tar.bz2 16858400 SHA256 9bf353f22d25e97a85a6d3766619966055edea1ea1b2218445d683a8ad0399d9 SHA512 82a6a44c0c551a1291215394610e5331cf83216b38ac9f1a79a3eab53ba2933b121c3154b58cead814c73a1da1fc95d895324bb0c43e8e0429438b0dea527cc4 WHIRLPOOL e536ff5d3b393c6834fd721f383318b5dcef79046f475b0f1fe737c67c56e8769cabc0a35f553da5dc475a255c5711de01bd6d42e541cabbab3b9e30f20c9a5c
20 DIST pypy-4.0.0-src.tar.bz2 17244624 SHA256 acff480e44ce92acd057f2e786775af36dc3c2cd12e9efc60a1ac6a562ad7b4d SHA512 2bbdc2536a32b0aa28f7b12ec3d879ed28afe984fad38635bc3e1d950a9fe198cfbaf9b554f0fa245e7fd512ec7a76297f05a1d3e17f73fb49e8506561190f5b WHIRLPOOL e94bdf5e8ea2cbab8e25d37bb7cb36b9bae773ec051d603cfce784e0fd8e591ed16e6896f49d14d9ae094c5f613a0ba871380c8adc2a1cf0023157e3e2a51f52
21 +DIST pypy-4.0.1-src.tar.bz2 17172844 SHA256 29f5aa6ba17b34fd980e85172dfeb4086fdc373ad392b1feff2677d2d8aea23c SHA512 66358cc3fe9ccb402b717379c48731aca8f9f85a1a754a54e3a060113398955b87a3f3048ba731a93be4b49c0f5c7e3bac49dc4523263e1bf4f4b5149d5db5c4 WHIRLPOOL 656a6c60aeb26cb6355db121a92bafcf2b744a7f09dccf21b4a16052c0117d239891ccf6762fcb4fee7f913862263c589becd5984498edc4a8b6d55784957994
22 DIST pypy-bin-2.6.0-amd64+bzip2+jit+ncurses+shadowstack.tar.xz 12713852 SHA256 5a23efc74a73f2073d14975949b29b46f85eb815e40fe617d788bcc8463914c2 SHA512 3dbb73047365ab39f328b1c48f370015577ac68aa8ae331d2f49b89a65f2146fa9f53629c33e424ca3949e03caf1b7616c852bd65f49a635a0a3d600f1f252ae WHIRLPOOL fdb1f43231a2e0b99f9a4db6077cda172160514b8504def1f925a66521033a522710b68f7755363701639069bb8d20edfc627dc4fb8c04015b78214581c0999d
23 DIST pypy-bin-2.6.0-amd64+bzip2+jit+ncurses.tar.xz 13707848 SHA256 f989708173de093a9d98f190b249a8ed32642fe96ace548f231457e4c743ce57 SHA512 c45cc995349f30630ae14171125bb2ddf8974a77eb817f01a0d86845050832932ca00f3d2c0fcabb15649d3b19a19cfa55d515a90e750d507828ec598aaf998e WHIRLPOOL 3e07920c7bbc9217dccbad948dd404af808c441a725c804e90b2a427fb37fbaaa08dbe12f1ad970292b301e4dd2c0014442761839290a8c7f39a3a11bf6a4019
24 DIST pypy-bin-2.6.0-amd64+bzip2+ncurses.tar.xz 7440860 SHA256 b86d2c6939949c16f745729082ee35ef221a48d745f98d0d9a09897187412ca9 SHA512 de9bfe9ddd342e806c59477e333c22afc672175fa3207519379c71d8d359b004a187ac0ed59211347beb562802daa05ba4e6cbb08dd8ad3587c2c9be41ed1307 WHIRLPOOL d62aec345b8a98b3ab790a2588108745c4e0203e8a76580ee700c2379b22215b141141c31d41ab211c451713aadebf05ae0f9cdd1e2b318b73e43a6f2a5ff76f
25 @@ -14,4 +15,11 @@ DIST pypy-bin-4.0.0-x86+bzip2+jit+ncurses+shadowstack+sse2.tar.xz 9944576 SHA256
26 DIST pypy-bin-4.0.0-x86+bzip2+jit+ncurses+sse2.tar.xz 11065800 SHA256 b6275632bc7901affbad59c6ee773c42bb4df0d449565a2a69beeb6b3dfedd70 SHA512 eff3d32aa3a1a106b581c715bfe2db121ce66fe60cec94e7533c1096fdec2c599a6141d688af10a51dff4e1b6ee4805d2b07ea1bdea28f343923b8a6f315b8e2 WHIRLPOOL b2d50c065dfc93fe1be3e588810586041bd42a21ca13d7b568cd1da6c2a79a4467c490fa8636315ef9a369bd914eb338c235dbea8a4b639002e8efef39aa5592
27 DIST pypy-bin-4.0.0-x86+bzip2+ncurses+sse2.tar.xz 5822756 SHA256 b254570e2414f6c420146a07390260d63218e327c07d6c5048893f3ce56b78f7 SHA512 7354dbb7a6bb48ee7845ea3e99773381e845d1be1bd2b784c90596ceb01a4192d5bcef9bbe1bbf377d5ce9189e19d2d08d4701e948a04b1e5e54f83dc33f9cb5 WHIRLPOOL c5ff5a335f5bbd5a337aff0a2b4a66636228dc7c81c85fccdd885f2411d88cb5e795c2931b8d7d7f3baed89c0a01d7b858b25b792fd30a55cf25b948e9df1899
28 DIST pypy-bin-4.0.0-x86+bzip2+ncurses.tar.xz 5803376 SHA256 8f7a87c48801ecc5825a00659b691125a7700c6e8d4f0e67a6c3a5dd7f4c1fc2 SHA512 678b98a093817508e23e3d55cfa514520f0f2b2d2dab3088a9b4481744eb39fe8d9ee4fbe81744c4fdab86c2cc53913bd2f63cda64a9d74166a900da7bb28aae WHIRLPOOL 0638426bc82903d0244c54a2bacb22061031c7b7f13b51a3af9911eb8abceed0d7ddb7e7d4ec3b48096d217eecee9058fbeaacb1d1705a88e643a20e58958318
29 +DIST pypy-bin-4.0.1-amd64+bzip2+jit+ncurses+shadowstack.tar.xz 13085168 SHA256 79ab082d2d61a46ef80759455e06afa340a8d31b3eeb5f88f47b7a1bc3370562 SHA512 dd2a0b53bd86511a5e6c8fe4cdc78cda34911082e185d5e5cbe29343132f4e3b7e86e8ed1d826c2937ae9c72aec9944ace8108d0739ad0a83b9869e61fc4e541 WHIRLPOOL b8c1282a408e60006ac8afe8aae1af89b6603ab38961dac188c3474df39db101f8c2b8c887eeca30b34f8f6a84b34161275b4433f380f463cb29d86d118c7ec0
30 +DIST pypy-bin-4.0.1-amd64+bzip2+jit+ncurses.tar.xz 14142344 SHA256 8251d5ac21e7cf49866ee2dfb16656a2369dc23bc8c6f50ac2439631240dc60f SHA512 ba4e4d952e895d11f164a128943d048af880077ee6d5f77154ac9dad9f46188232ff4e33b3d07f67917abfcb79ec8a55e71c2c2d4c287c6616a9b48148615221 WHIRLPOOL 14e03438503e5d914b21d91eb706a58e4772372dce300f6b4aa9be54b86b84c79b7f437d19d010a32988d92fa3645f633f70c241c6a2d6f077c204185529d328
31 +DIST pypy-bin-4.0.1-amd64+bzip2+ncurses.tar.xz 7524080 SHA256 0417f17763a683928534f9394c183742dca917b2ec5c06e8d241bc86deab0860 SHA512 3a048b8a1af3df6b4a3c7611e8fd4d7586805f1f6e56f7a414f7b4b2b2e84d68307f732491c6fe2d72991b4505b841de9870ac1207f9f0799d41a73c9fa69673 WHIRLPOOL fadd736ff0bd8e8a03755b5f8992e86ed14773bc566cadeae17ce326122d5d9ce422ac5b33b80105b0d0f786d03e1aacf714798ec665dd5acbcef87de3bb3266
32 +DIST pypy-bin-4.0.1-x86+bzip2+jit+ncurses+shadowstack+sse2.tar.xz 9948032 SHA256 d77948a7fd055303fe261f3364128793e61aa49bbad06488f924331082eb9fe4 SHA512 c7269694195064ed7ca5464d79b2efd3ad0ae7d409e3694a6b1cb7c9fb99a460f55393f02db795875214243ba616de58ec321f39e97c1eb6fa1ba3365fb56dbf WHIRLPOOL 394176b7bbd4d8cefe44cb209a0479eddb588f31c429f4576bd3f6d9f8497ae0108567a8f3f9d5a272170f61197635abc589bbb32ba5b59687ead5d64736f69d
33 +DIST pypy-bin-4.0.1-x86+bzip2+jit+ncurses+sse2.tar.xz 11110500 SHA256 7cf8334c8f6fbdfbc4a08b8767e23bbe51f8082ad190c109b9e5d6fa7e1c5b77 SHA512 c5f9ee5997c84ea190d40ce0af052e6a401e4ad104ddc5bab69426913c29d0affe87a7fcb688fb7ad6862a7cd74ad4e8675ecdc8c0efe918cdef23f7516fabdb WHIRLPOOL 692ecfadda6020981510aa1ac85c4b8ff6ed6addf6b1f9fc2a7ca3a98e1630efd5fee917e3c6a25d7c7298ebbc9da7f4f9b628529896f0ca2de7149fc7496739
34 +DIST pypy-bin-4.0.1-x86+bzip2+ncurses+sse2.tar.xz 5820624 SHA256 480b5fdfcc8757dfd44a3368627944c1234835ee01259572f94587fd134e74c4 SHA512 62f0b7c81fc7d3e71a4d43c81a8f212026d0390e52da2aa7ebb5f19d17bd1c8ce7c4760b9317e2782eba536e07f21afc19ab3a4c3bc04c5a28360a52ec7e1bb7 WHIRLPOOL af25d3b7903969a4488a5051b9dca8bea3987e6f4b16a8ff11e0d5089e3b788b9d2df4550f068ffb63d52f04f7f0ebb4f3ff9288d31b5f773b30cef90a80bafa
35 +DIST pypy-bin-4.0.1-x86+bzip2+ncurses.tar.xz 5820156 SHA256 fa4cd54bcb42a189ab58fde4717af940700f94d50ada2452780f2ea71963313f SHA512 7c3fbdcdddb7f743706a69874d83634f8a7a58695136737187735fe884c89e46c17b12bba8ad8aada67ebc711a096a6d193bf2af56cecf39f28f07d7161fd882 WHIRLPOOL 7aececedc47931eb1d798dba3709c3e6d74079aead655794f77270ffe2ecd6b421b10a7ed91fd5d2e7ed83a58a65c16d2b37f5725362694ee241f4f715b6d3f0
36 DIST python-gentoo-patches-2.7.10-0.tar.xz 12892 SHA256 c9a838bd62ae50cc385da23a837acfd05f2b74e4f086c9c76eb4d3aa5366ef6d SHA512 5f100944635e360691dc0a2b340a906646c4ae9ee558246ddffc56e8b15d389f25f1fbdc1db4cc08e7d29560d04d66b058b3904902899d58ecae8c408ebdf056 WHIRLPOOL f69e9a518bb7ee50c1b262a21e70e1e2443f859ee6d2f4fa84421120dbd054a06ce8dd6cfea8512cbc64bce806322b879c25c561d5eb05e1ba6cc15035b373a9
37
38 diff --git a/dev-python/pypy-bin/pypy-bin-4.0.1.ebuild b/dev-python/pypy-bin/pypy-bin-4.0.1.ebuild
39 new file mode 100644
40 index 0000000..c2c94e8
41 --- /dev/null
42 +++ b/dev-python/pypy-bin/pypy-bin-4.0.1.ebuild
43 @@ -0,0 +1,201 @@
44 +# Copyright 1999-2015 Gentoo Foundation
45 +# Distributed under the terms of the GNU General Public License v2
46 +# $Id$
47 +
48 +EAPI=5
49 +
50 +PYTHON_COMPAT=( python2_7 pypy )
51 +inherit eutils multilib pax-utils python-any-r1 versionator
52 +
53 +BINHOST="https://dev.gentoo.org/~mgorny/dist/pypy-bin/${PV}"
54 +CPY_PATCHSET_VERSION="2.7.10-0"
55 +
56 +DESCRIPTION="Pre-built version of PyPy"
57 +HOMEPAGE="http://pypy.org/"
58 +SRC_URI="https://bitbucket.org/pypy/pypy/downloads/pypy-${PV}-src.tar.bz2
59 + https://dev.gentoo.org/~floppym/python/python-gentoo-patches-${CPY_PATCHSET_VERSION}.tar.xz
60 + amd64? (
61 + jit? ( shadowstack? (
62 + ${BINHOST}/${P}-amd64+bzip2+jit+ncurses+shadowstack.tar.xz
63 + ) )
64 + jit? ( !shadowstack? (
65 + ${BINHOST}/${P}-amd64+bzip2+jit+ncurses.tar.xz
66 + ) )
67 + !jit? ( !shadowstack? (
68 + ${BINHOST}/${P}-amd64+bzip2+ncurses.tar.xz
69 + ) )
70 + )
71 + x86? (
72 + cpu_flags_x86_sse2? (
73 + jit? ( shadowstack? (
74 + ${BINHOST}/${P}-x86+bzip2+jit+ncurses+shadowstack+sse2.tar.xz
75 + ) )
76 + jit? ( !shadowstack? (
77 + ${BINHOST}/${P}-x86+bzip2+jit+ncurses+sse2.tar.xz
78 + ) )
79 + !jit? ( !shadowstack? (
80 + ${BINHOST}/${P}-x86+bzip2+ncurses+sse2.tar.xz
81 + ) )
82 + )
83 + !cpu_flags_x86_sse2? (
84 + !jit? ( !shadowstack? (
85 + ${BINHOST}/${P}-x86+bzip2+ncurses.tar.xz
86 + ) )
87 + )
88 + )"
89 +
90 +# Supported variants
91 +REQUIRED_USE="!jit? ( !shadowstack )
92 + x86? ( !cpu_flags_x86_sse2? ( !jit !shadowstack ) )"
93 +
94 +LICENSE="MIT"
95 +SLOT="0/$(get_version_component_range 1-2 ${PV})"
96 +KEYWORDS="~amd64 ~x86"
97 +IUSE="doc gdbm +jit shadowstack sqlite cpu_flags_x86_sse2 test tk"
98 +
99 +# yep, world would be easier if people started filling subslots...
100 +RDEPEND="
101 + app-arch/bzip2:0
102 + dev-libs/expat:0
103 + dev-libs/libffi:0
104 + dev-libs/openssl:0[-bindist]
105 + sys-libs/glibc:2.2
106 + sys-libs/ncurses:0/6
107 + sys-libs/zlib:0
108 + gdbm? ( sys-libs/gdbm:0= )
109 + sqlite? ( dev-db/sqlite:3= )
110 + tk? (
111 + dev-lang/tk:0=
112 + dev-tcltk/tix:0=
113 + )
114 + !dev-python/pypy:0"
115 +DEPEND="app-arch/xz-utils
116 + doc? ( ${PYTHON_DEPS}
117 + dev-python/sphinx )
118 + test? ( ${RDEPEND} )"
119 +PDEPEND="app-admin/python-updater"
120 +
121 +S=${WORKDIR}/pypy-${PV}-src
122 +
123 +pkg_setup() {
124 + if [[ ${MERGE_TYPE} != binary ]]; then
125 + use doc && python-any-r1_pkg_setup
126 + fi
127 +}
128 +
129 +src_prepare() {
130 + epatch "${FILESDIR}/4.0.0-gentoo-path.patch" \
131 + "${FILESDIR}/1.9-distutils.unixccompiler.UnixCCompiler.runtime_library_dir_option.patch"
132 +
133 + sed -e "s^@EPREFIX@^${EPREFIX}^" \
134 + -e "s^@libdir@^$(get_libdir)^" \
135 + -i lib-python/2.7/distutils/command/install.py || die
136 +
137 + # apply CPython stdlib patches
138 + pushd lib-python/2.7 > /dev/null || die
139 + epatch "${FILESDIR}"/2.5.0_all_distutils_cxx.patch \
140 + "${WORKDIR}"/patches/22_all_turkish_locale.patch \
141 + "${WORKDIR}"/patches/62_all_xml.use_pyxml.patch
142 + popd > /dev/null || die
143 +
144 + epatch_user
145 +}
146 +
147 +src_compile() {
148 + # Tadaam! PyPy compiled!
149 + mv "${WORKDIR}"/${P}*/{libpypy-c.so,pypy-c} . || die
150 + mv "${WORKDIR}"/${P}*/include/*.h include/ || die
151 + mv pypy/module/cpyext/include/*.h include/ || die
152 + mv pypy/module/cpyext/include/numpy include/ || die
153 +
154 + use doc && emake -C pypy/doc/ html
155 + #needed even without jit :( also needed in both compile and install phases
156 + pax-mark m pypy-c
157 +
158 + # ctypes config cache
159 + # this one we need to do with python2 too...
160 + ./pypy-c lib_pypy/ctypes_config_cache/rebuild.py \
161 + || die "Failed to rebuild ctypes config cache"
162 +}
163 +
164 +src_test() {
165 + # (unset)
166 + local -x PYTHONDONTWRITEBYTECODE
167 +
168 + ./pypy-c ./pypy/test_all.py --pypy=./pypy-c lib-python || die
169 +}
170 +
171 +src_install() {
172 + einfo "Installing PyPy ..."
173 + insinto "/usr/$(get_libdir)/pypy"
174 + doins -r include lib_pypy lib-python pypy-c libpypy-c.so
175 + fperms a+x ${INSDESTTREE}/pypy-c ${INSDESTTREE}/libpypy-c.so
176 + pax-mark m "${ED%/}${INSDESTTREE}/pypy-c" "${ED%/}${INSDESTTREE}/libpypy-c.so"
177 + dosym ../$(get_libdir)/pypy/pypy-c /usr/bin/pypy
178 + dodoc README.rst
179 +
180 + if ! use gdbm; then
181 + rm -r "${ED%/}${INSDESTTREE}"/lib_pypy/gdbm.py \
182 + "${ED%/}${INSDESTTREE}"/lib-python/*2.7/test/test_gdbm.py || die
183 + fi
184 + if ! use sqlite; then
185 + rm -r "${ED%/}${INSDESTTREE}"/lib-python/*2.7/sqlite3 \
186 + "${ED%/}${INSDESTTREE}"/lib_pypy/_sqlite3.py \
187 + "${ED%/}${INSDESTTREE}"/lib-python/*2.7/test/test_sqlite.py || die
188 + fi
189 + if ! use tk; then
190 + rm -r "${ED%/}${INSDESTTREE}"/lib-python/*2.7/{idlelib,lib-tk} \
191 + "${ED%/}${INSDESTTREE}"/lib_pypy/_tkinter \
192 + "${ED%/}${INSDESTTREE}"/lib-python/*2.7/test/test_{tcl,tk,ttk*}.py || die
193 + fi
194 +
195 + # Install docs
196 + use doc && dohtml -r pypy/doc/_build/html/
197 +
198 + einfo "Generating caches and byte-compiling ..."
199 +
200 + local -x PYTHON=${ED%/}${INSDESTTREE}/pypy-c
201 + local -x LD_LIBRARY_PATH="${ED%/}${INSDESTTREE}"
202 + # we can't use eclass function since PyPy is dumb and always gives
203 + # paths relative to the interpreter
204 + local PYTHON_SITEDIR=${EPREFIX}/usr/$(get_libdir)/pypy/site-packages
205 + python_export pypy EPYTHON
206 +
207 + echo "EPYTHON='${EPYTHON}'" > epython.py || die
208 + python_domodule epython.py
209 +
210 + # Generate Grammar and PatternGrammar pickles.
211 + "${PYTHON}" -c "import lib2to3.pygram, lib2to3.patcomp; lib2to3.patcomp.PatternCompiler()" \
212 + || die "Generation of Grammar and PatternGrammar pickles failed"
213 +
214 + # Generate cffi modules
215 + # Please keep in sync with pypy/tool/build_cffi_imports.py!
216 +#cffi_build_scripts = {
217 +# "sqlite3": "_sqlite3_build.py",
218 +# "audioop": "_audioop_build.py",
219 +# "tk": "_tkinter/tklib_build.py",
220 +# "curses": "_curses_build.py" if sys.platform != "win32" else None,
221 +# "syslog": "_syslog_build.py" if sys.platform != "win32" else None,
222 +# "gdbm": "_gdbm_build.py" if sys.platform != "win32" else None,
223 +# "pwdgrp": "_pwdgrp_build.py" if sys.platform != "win32" else None,
224 + cffi_targets=( audioop curses syslog gdbm pwdgrp )
225 + use gdbm && cffi_targets+=( gdbm )
226 + use sqlite && cffi_targets+=( sqlite3 )
227 + use tk && cffi_targets+=( tkinter/tklib )
228 +
229 + local t
230 + # all modules except tkinter output to .
231 + # tkinter outputs to the correct dir ...
232 + cd "${ED%/}${INSDESTTREE}"/lib_pypy || die
233 + for t in "${cffi_targets[@]}"; do
234 + # tkinter doesn't work via -m
235 + "${PYTHON}" "_${t}_build.py" || die "Failed to build CFFI bindings for ${t}"
236 + done
237 +
238 + # Cleanup temporary objects
239 + find "${ED%/}${INSDESTTREE}" -name "_cffi_*.[co]" -delete || die
240 + find "${ED%/}${INSDESTTREE}" -type d -empty -delete || die
241 +
242 + # compile the installed modules
243 + python_optimize "${ED%/}${INSDESTTREE}"
244 +}