summaryrefslogtreecommitdiff
path: root/dev-python/pypy
diff options
context:
space:
mode:
authorV3n3RiX <venerix@koprulu.sector>2021-10-20 10:22:14 +0100
committerV3n3RiX <venerix@koprulu.sector>2021-10-20 10:22:14 +0100
commit46eedbedafdb0040c37884982d4c775ce277fb7b (patch)
treedb33a91259730be84999e13a8d8168c799f50ac0 /dev-python/pypy
parente23a08d0c97a0cc415aaa165da840b056f93c997 (diff)
gentoo resync : 20.10.2021
Diffstat (limited to 'dev-python/pypy')
-rw-r--r--dev-python/pypy/Manifest3
-rw-r--r--dev-python/pypy/pypy-7.3.6.ebuild164
2 files changed, 167 insertions, 0 deletions
diff --git a/dev-python/pypy/Manifest b/dev-python/pypy/Manifest
index 561fb3f33922..589ecd4f33b1 100644
--- a/dev-python/pypy/Manifest
+++ b/dev-python/pypy/Manifest
@@ -1,10 +1,13 @@
DIST pypy2.7-gentoo-patches-7.3.5_p2.tar.xz 8976 BLAKE2B 4bd12fa964da45a516b6d8cee8f2b9b1cd4cac9ee2e6369de1e8be5be2abab77e60a0fdc9416a76624b22f385135659b84edf7c64aa98f59a1c94f837c7e0d20 SHA512 ab47d5a0199997501f246399c3650919cc20423cc7e9517f16d1640e1863819016a944659e10af3e8ca803060f983546603feaba7c8f4cc3fb4996506fe59919
+DIST pypy2.7-gentoo-patches-7.3.6.tar.xz 7904 BLAKE2B 6a809f8f1fd59c18627abaf81b47fa5948d39d5ece86fa416944c1c6585ec5d43b56f4228479a6afdca9788a0ecfdc83fceb4eeea25f289c1dc0b2dbda79b882 SHA512 01fe42cdf94b559ed787e253325f7df0add62e30e77c6b6e4c0301c81ff624a31167d95b39d24d72f28441468d571112f424957de38e7f26ecdbfe0f33617296
DIST pypy2.7-gentoo-patches-7.3.6rc1.tar.xz 7904 BLAKE2B 3a5b8efaa67d5a1b4f65a56c6256a3b1efa765079e0fb2c2d380b325175f2e8f3a7d7c4886f734374b6069b3ebf3ac63483f90ada0ece72ff5d8e5c82940c875 SHA512 820d6155e3451b22076719eb3ffc29fab74965761faeade52013d3928fd63cd00b8c5d045f0da0bc1f303a9d2998cd210cd6bec05b2ca01c8b281a61c9a4a73c
DIST pypy2.7-gentoo-patches-7.3.6rc2.tar.xz 7900 BLAKE2B 66861532418a35f0f926fdd85dbf701ed06f6edef0dd82313302f899bd7c0049572ae069bafe1b927053f342f965341b28eeef913e9342af3c592721fd2c8fb5 SHA512 f727d73fa51737685eff9ea933c7bb3684a942abddd891e7c4d90f3185556954aefb0a04f543578c79f2fe2fea275b98e6e7857ac5d7c8774f9fd6ff893fa3e9
DIST pypy2.7-v7.3.5-src.tar.bz2 21572184 BLAKE2B 388b8623c2c5de839dea0e60acc5e11a6a774b4a6cdc051691053a97fe13ec12c6735a4be64015653ef420c0d8af2c79d8faa90a7dfc3042e29f35f4e1ded6c3 SHA512 a30c666c29eec7cca7e2e52f26480958b5885cd59c6b2e3d3c0d8c1cc55c298e878fc95f88e38a4297bb3d7d1cc1f77470de958e5acfd317e1fc8bdd5d013dcb
+DIST pypy2.7-v7.3.6-src.tar.bz2 21621891 BLAKE2B a2d18ae9d455747484de491df228e7f26af46fc3bc1fd1c16ceba79eba5a3a3272d48312c9da112ae9310722b5af33098f28a7dc15d7ff4760886a8c974692a2 SHA512 df914f5e1a1f5ae5c1ea11cd8e29482309af4dce041cf2ae6d7b35a35717fec903be70f56e5f1ddbc9fd370cbe29f6896d25eb2cd10c493c352c80b279070ba3
DIST pypy2.7-v7.3.6rc1-src.tar.bz2 21617621 BLAKE2B 659dd16920b157dae94c5d1f7a9346c7b933ec8c6a3019e36aaa6911bd01d5c9d064a75baa3d8f3df423db4d5a1de5d4f3c8fb63c8d5188d23401b07cc7611be SHA512 f8b949488c3af8acc5533d92238b7bca9ce59c24e93413e0db88094eaf58af5f92a9c9a941f3b7184d2761af2c2c4775891353df053a0762519606a4ce7ca544
DIST pypy2.7-v7.3.6rc2-src.tar.bz2 21621430 BLAKE2B 2e8f5c41b4c79bd47a43c5ad38a4478ee6e7df7a20929e9be1315534a3b55c28d29bde5b46ff728aeba5cc05a0ed332045a4c114864d8b34746341a0023d1984 SHA512 e6354261f949cd042ba63988dff6a52dbc15c9a86be098b014c146218eaca9caffd76697134a5d4e4a18319b45229dfa73a617588f914dbee649b11197f296a0
EBUILD pypy-7.3.5_p2.ebuild 4832 BLAKE2B 862e40dcfbab64b8cec4c44fbdafacafc2411037ae74e0601fc0d71dda70c376d868f71b19ceecc21bd2556d0cd02a6d009ae30454e85d5be5a2af7df007dde5 SHA512 835173f9ea59e57ceb7162d320ab38372c0d9feb3548c5e2d0c7fab54c129d53f5fbe0c7ed5599e95e1301634fb04cb23da306ca7762f116dc1016f081f52f40
+EBUILD pypy-7.3.6.ebuild 4891 BLAKE2B 4867f3bd85bfcf775f249e496f2361f0862a495616a4fd87df46a807e68b309f79c3d5f3ecce83938f16f813ad024e68ffa422b5e082d67de9087967222fdec0 SHA512 d777989f9845a95c14c24915d3cd65e38582769c565246a63400c553eb9e5bf6a73be66f5edff5002f421d73c0146ab9cb6a2dda4c68f95a4a26662a108e0ad5
EBUILD pypy-7.3.6_rc1.ebuild 4975 BLAKE2B 029e4bf65279cf79ac5ef4f26c68e124da1c2388bf5f5a9cabbf40d0069b18a5e55411ba20ef176db076caf860b42757f84ec27fd8968eef951a79f92bcb790e SHA512 99498536a6b1d0ddcde0241354728932059cedc74ce69240921d96a5b8c0e8aa4e2ba37b224e2576317a729d573b176668bf873dab1ea903e9e4908c4a841a4f
EBUILD pypy-7.3.6_rc2.ebuild 4985 BLAKE2B 4a5d2b818a7ae4c3d7d710f187b8df68d624b21f661ffbc697f89796ad0a9234061e28d898b04d12fb0e660d7ec10a078ca15a5dec4a97533029fb0b4d2d5b7c SHA512 d1fab937e08da6d0953bc892ba093db79554f2f401cfcecc01caa071a51ddf4b2d3d50cd3ba076cee598f42e3e1c85b639c7a0f48b95007575d0e5488e1a0390
MISC metadata.xml 241 BLAKE2B 4f18c355c71824c25df283b2d463a5abbf2295446e74b960e868dd78d4910ac066725450478087567a6e66b7a8948d99e053f13a7e58dbf2b89fdaf5c2f3436c SHA512 c46e70ffd66754ad84c64806f2bbff25ba9a688f035176a4565afc95351ce10fffba64bbde89965501460b05978c7e59b3d84db6a8cb6efff4055d4b7a5ab5d8
diff --git a/dev-python/pypy/pypy-7.3.6.ebuild b/dev-python/pypy/pypy-7.3.6.ebuild
new file mode 100644
index 000000000000..63cde1b09a03
--- /dev/null
+++ b/dev-python/pypy/pypy-7.3.6.ebuild
@@ -0,0 +1,164 @@
+# Copyright 1999-2021 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+inherit pax-utils python-utils-r1
+
+PYPY_PV=${PV%_p*}
+MY_P=pypy2.7-v${PYPY_PV/_}
+PATCHSET="pypy2.7-gentoo-patches-${PV/_rc/rc}"
+
+DESCRIPTION="A fast, compliant alternative implementation of the Python language"
+HOMEPAGE="https://www.pypy.org/"
+SRC_URI="https://buildbot.pypy.org/pypy/${MY_P}-src.tar.bz2
+ https://dev.gentoo.org/~mgorny/dist/python/${PATCHSET}.tar.xz"
+S="${WORKDIR}/${MY_P}-src"
+
+LICENSE="MIT"
+# pypy -c 'import sysconfig; print sysconfig.get_config_var("SOABI")'
+SLOT="0/73"
+KEYWORDS="~amd64 ~arm64 ~ppc64 ~x86 ~amd64-linux ~x86-linux"
+IUSE="bzip2 gdbm +jit ncurses sqlite tk"
+
+RDEPEND="
+ || (
+ >=dev-python/pypy-exe-${PYPY_PV}:${PYPY_PV}[bzip2?,ncurses?]
+ >=dev-python/pypy-exe-bin-${PYPY_PV}:${PYPY_PV}
+ )
+ dev-libs/openssl:0=
+ gdbm? ( sys-libs/gdbm:0= )
+ sqlite? ( dev-db/sqlite:3= )
+ tk? (
+ dev-lang/tk:0=
+ dev-tcltk/tix:0=
+ )
+ !<dev-python/pypy-bin-7.3.0:0"
+DEPEND="${RDEPEND}"
+
+src_prepare() {
+ local PATCHES=(
+ "${WORKDIR}/${PATCHSET}"
+ )
+ default
+
+ sed -e "s^@EPREFIX@^${EPREFIX}^" \
+ -i lib-python/2.7/distutils/command/install.py || die
+}
+
+src_compile() {
+ # copy over to make sys.prefix happy
+ cp -p "${BROOT}"/usr/lib/pypy2.7/pypy-c-${PYPY_PV} pypy-c || die
+ cp -p "${BROOT}"/usr/lib/pypy2.7/include/${PYPY_PV}/* include/ || die
+ # (not installed by pypy)
+ rm pypy/module/cpyext/include/_numpypy/numpy/README || die
+ mv pypy/module/cpyext/include/* include/ || die
+ mv pypy/module/cpyext/parse/*.h include/ || die
+ pax-mark m pypy-c
+
+ # verify the subslot
+ local soabi=$(./pypy-c -c 'import sysconfig; print sysconfig.get_config_var("SOABI")')
+ [[ ${soabi#pypy-} == ${SLOT#*/} ]] || die "update subslot to ${soabi}"
+
+ einfo "Generating caches and CFFI modules ..."
+
+ # Generate Grammar and PatternGrammar pickles.
+ ./pypy-c -c "import lib2to3.pygram, lib2to3.patcomp; lib2to3.patcomp.PatternCompiler()" \
+ || die "Generation of Grammar and PatternGrammar pickles failed"
+
+ # Generate cffi modules
+ # Please keep in sync with pypy/tool/build_cffi_imports.py!
+ cffi_targets=( pypy_util ssl audioop syslog pwdgrp resource )
+ use gdbm && cffi_targets+=( gdbm )
+ use ncurses && cffi_targets+=( curses )
+ use sqlite && cffi_targets+=( sqlite3 )
+ use tk && cffi_targets+=( tkinter/tklib )
+
+ local t
+ # all modules except tkinter output to .
+ # tkinter outputs to the correct dir ...
+ cd lib_pypy || die
+ for t in "${cffi_targets[@]}"; do
+ # tkinter doesn't work via -m
+ ../pypy-c "_${t}_build.py" || die "Failed to build CFFI bindings for ${t}"
+ done
+
+ # Verify that CFFI module list is up-to-date
+ local expected_cksum=2d3acf18
+ local local_cksum=$(../pypy-c -c '
+from pypy_tools.build_cffi_imports import cffi_build_scripts as x;
+import binascii, json;
+print("%08x" % (binascii.crc32(json.dumps(x)),))')
+ if [[ ${local_cksum} != ${expected_cksum} ]]; then
+ die "Please verify cffi_targets and update checksum to ${local_cksum}"
+ fi
+
+ # Cleanup temporary objects
+ find -name "_cffi_*.[co]" -delete || die
+ find -type d -empty -delete || die
+}
+
+src_test() {
+ # (unset)
+ local -x PYTHONDONTWRITEBYTECODE=
+ local -x COLUMNS=80
+
+ local ignored_tests=(
+ # network
+ --ignore=lib-python/2.7/test/test_urllibnet.py
+ --ignore=lib-python/2.7/test/test_urllib2net.py
+ # lots of free space
+ --ignore=lib-python/2.7/test/test_zipfile64.py
+ )
+
+ ./pypy-c ./pypy/test_all.py --pypy=./pypy-c -vv \
+ "${ignored_tests[@]}" lib-python || die
+}
+
+src_install() {
+ local dest=/usr/lib/pypy2.7
+ einfo "Installing PyPy ..."
+ dosym pypy-c-${PYPY_PV} "${dest}/pypy-c"
+ insinto "${dest}"
+ # preserve mtimes to avoid obsoleting caches
+ insopts -p
+ doins -r include lib_pypy lib-python
+
+ # replace copied headers with symlinks
+ for x in "${BROOT}"/usr/lib/pypy2.7/include/${PYPY_PV}/*; do
+ dosym "${PYPY_PV}/${x##*/}" "${dest}/include/${x##*/}"
+ done
+
+ dosym ../lib/pypy2.7/pypy-c /usr/bin/pypy
+ dodoc README.rst
+
+ if ! use gdbm; then
+ rm -r "${ED}${dest}"/lib_pypy/gdbm.py \
+ "${ED}${dest}"/lib-python/*2.7/test/test_gdbm.py || die
+ fi
+ if ! use sqlite; then
+ rm -r "${ED}${dest}"/lib-python/*2.7/sqlite3 \
+ "${ED}${dest}"/lib_pypy/_sqlite3.py \
+ "${ED}${dest}"/lib-python/*2.7/test/test_sqlite.py || die
+ fi
+ if ! use tk; then
+ rm -r "${ED}${dest}"/lib-python/*2.7/{idlelib,lib-tk} \
+ "${ED}${dest}"/lib_pypy/_tkinter \
+ "${ED}${dest}"/lib-python/*2.7/test/test_{tcl,tk,ttk*}.py || die
+ fi
+
+ local -x EPYTHON=pypy
+ local -x PYTHON=${ED}${dest}/pypy-c-${PYPY_PV}
+ # temporarily copy to build tree to facilitate module builds
+ cp -p "${BROOT}${dest}/pypy-c-${PYPY_PV}" "${PYTHON}" || die
+
+ echo "EPYTHON='${EPYTHON}'" > epython.py || die
+ python_moduleinto /usr/lib/pypy2.7/site-packages
+ python_domodule epython.py
+
+ einfo "Byte-compiling Python standard library..."
+ python_optimize "${ED}${dest}"
+
+ # remove to avoid collisions
+ rm "${PYTHON}" || die
+}