summaryrefslogtreecommitdiff
path: root/dev-python/pypy
diff options
context:
space:
mode:
authorV3n3RiX <venerix@koprulu.sector>2023-06-16 19:42:08 +0100
committerV3n3RiX <venerix@koprulu.sector>2023-06-16 19:42:08 +0100
commitdada2d5b0b1d7e87f9c3ebe4b31ca9b4f4b2ed62 (patch)
tree13f8ae66d8cf83c150ffe3bb20472348b9f65b09 /dev-python/pypy
parentbc501129c389446f47e98f759f8bb140966240af (diff)
gentoo auto-resync : 16:06:2023 - 19:42:08
Diffstat (limited to 'dev-python/pypy')
-rw-r--r--dev-python/pypy/Manifest3
-rw-r--r--dev-python/pypy/pypy-7.3.12.ebuild301
2 files changed, 304 insertions, 0 deletions
diff --git a/dev-python/pypy/Manifest b/dev-python/pypy/Manifest
index d495b74225ef..2847b5f5d350 100644
--- a/dev-python/pypy/Manifest
+++ b/dev-python/pypy/Manifest
@@ -1,10 +1,13 @@
DIST pypy2.7-gentoo-patches-7.3.11.tar.xz 5312 BLAKE2B 3692453a184a88d61fe1dd7aa815aa02a4bdf4b29defd2e98a354261784643f78799b979bb356c19311b40932cc7f8b8e050e10553755a846938951a87021bc9 SHA512 24308317d92b278f9f7d74327303ebba34628a2d8dd5798ae3d472d14fd0519a470b6f9c420da88e07251215342a1e4f5cf8d4230f9663119274d3194d3811a5
+DIST pypy2.7-gentoo-patches-7.3.12.tar.xz 5340 BLAKE2B 1a7375412087e8df02e69c80cee6d8246cc444a352323e6a49c1e1a0e6f5d662584c4cce194f03fc139f29de4ecf5d9f68cea5a8c19a720f1a51c1563804e19a SHA512 026a435377f0f04a526d4e0bef1ac832543f24ff2b39579e2cc7ca2cb3eae0415fcdb3c701fc4b85b0659a2ab17180a45469d79920262ed6dfd68d401df85fa1
DIST pypy2.7-gentoo-patches-7.3.12rc1.tar.xz 5340 BLAKE2B 4631f3daa7002033af7b9a7026777053454bcb20ed03ad551a1df7efc32adef478e78d449d81dfad903c887cca53b9742edcc97e6cd1e368c3803f779fa6ee4d SHA512 b99723360d15e4411f7cf8ea75b6fd8de92acb3c123d2f3893bd3f2b820099a3ddb625e275e95fb858cb3fd5e4fe18dc653faf90509e7593b5088bcdf7c2092d
DIST pypy2.7-gentoo-patches-7.3.12rc2.tar.xz 5340 BLAKE2B 7b0028aa61cc9d0800f23cc9dc3f5e4dccc75cb56e55abc382f322d0eddac9ceeb6419f4aee201a12de006ab30585d5920705f96b5d09519e1c8982253e3472d SHA512 dd9ccbd66874d57e3111923b2171f134ae18ffc73d0b5ce3168cb0bea47048be6840c747f5f0da75d29b298935c873aa345b244b57e265ceafc2ac769f2f2e5c
DIST pypy2.7-v7.3.11-src.tar.bz2 19850421 BLAKE2B ed8bd61e3857c37689f24a23d38d5043bd190ee0e6de5d7906284ea2eab5e7aeff5c994c22f97195f5a1ded2867725f74dc562b375c0165b6231eae69213c06e SHA512 31fd93fe3e761fd096ff52c2a0afa40f78e4df700deb911e221d1682b35e8374c9deac7ba19b474f7ca7a366d3ae9b36ebaf78e81c4ec8306431fd0873daea55
+DIST pypy2.7-v7.3.12-src.tar.bz2 19904555 BLAKE2B be8677c0632ef331db285938ad6ffbcb1aa70f44422a1ce5ed09b5a557e68d9185a11d1c20a4a3c6cf32ab41e623a2bc7b3ab7485bf270a9a604fb8a5769bf3f SHA512 35ec35376f1e7c1a5dea9dc5bce6819a94c2df2645806c83185487587470b47ab529c25ecb8ca200505319f40789859a2919c61902b693421e2001313b46e5f4
DIST pypy2.7-v7.3.12rc1-src.tar.bz2 19898483 BLAKE2B a0f618f69fc938ce59148cd98f03bcca09b89fd4f500132d5212212c391c703d64ea04681d5105b252e1efe41f001a8aa9692cfd3c37dfab4ff5af29b276dbfb SHA512 9faa36f27339a14dc5e7b326a0732ab8dc9c4401eabfe5787c14054a0d0961cc07c0d8e49dbaaaeb78a62ccf73e325b1d31731a138e3b24a6032f44550f6b346
DIST pypy2.7-v7.3.12rc2-src.tar.bz2 19903233 BLAKE2B 3621951e3ec5d65318f31efedfc7f1ea8b1532594a311a832e1e6f9a27be2946e967c63a61cbb18808f7baa7235c757b58153352551d88ca09f69017fd0cb2b0 SHA512 e8845dcd98294a9d715cf962e1b600beb81a18b388617bac7cf8675d99364156ec278166b39d8bc0928f65df63336c8d6571387d95921f613660ec30849e69ce
EBUILD pypy-7.3.11.ebuild 6979 BLAKE2B 686a1e5b5821a0c9552345736bb20bc508840934979c66c3d2199c17f1fd7066dbfabaf1f11925f38cc508efe2390690306fecc967088a187c4ff470fa0f28bc SHA512 1dc67d9882f9a007053b75e39bda286c86aa8a4f3cd010939da3ea056a0c343f04b3958ffbe55d0faeff6f4499bf53ab12097a9fbfae9c079ce687675032529b
+EBUILD pypy-7.3.12.ebuild 6981 BLAKE2B 08b2bbdf962d3d7daf534b56da6f0f85de7846c785fde3c69a61cfcbefde073f9f5ea28bf1aa57c80f9c8c91d757a59a652584a0e8fd816279fbf5a09f461f78 SHA512 4b6205c8aa6b27fdbcd117ff24cad1bc447d8821b0ca78befdfa6e06758f36e1f30c1dd1f2daf1bbeb53841255d36c3ab261162afc7e1bf0049c8a11d0bb9fde
EBUILD pypy-7.3.12_rc1.ebuild 6932 BLAKE2B 67c9d42ce0c600581c9c5eeedc9f703ef717fd5c999fd6929251e28cb1ddbc26807a02d95ab36713a85460b04027d606673493d13f03fa6d0fa02107ac24b174 SHA512 b5c683680e6dbf0be64c8f92f66668cc16f79c0a0aba6a617382b2f182d8a1bb05a7914074359c8040b2e71cc8d7d5f3357f74a91f75b8b9db0c6ef83903d9b0
EBUILD pypy-7.3.12_rc2.ebuild 6932 BLAKE2B 67c9d42ce0c600581c9c5eeedc9f703ef717fd5c999fd6929251e28cb1ddbc26807a02d95ab36713a85460b04027d606673493d13f03fa6d0fa02107ac24b174 SHA512 b5c683680e6dbf0be64c8f92f66668cc16f79c0a0aba6a617382b2f182d8a1bb05a7914074359c8040b2e71cc8d7d5f3357f74a91f75b8b9db0c6ef83903d9b0
MISC metadata.xml 565 BLAKE2B 956a62e9d3632a7ab9ade67527bae54fe0b58d79a6c2f26dc7017a6b8d337f7e5a155b747f24b98f345eb9e1d15c3f38d8530212ad16cfa5292d6cb1ecbf3e91 SHA512 6dd5bc7712533a926b7efdba10c3bea32c813d703916f6bf152ff14f7561cdc466354c8fdbb9640afe415daa3cf2d9365351261e89b8aadfae7b74afd48ae061
diff --git a/dev-python/pypy/pypy-7.3.12.ebuild b/dev-python/pypy/pypy-7.3.12.ebuild
new file mode 100644
index 000000000000..a5164317e321
--- /dev/null
+++ b/dev-python/pypy/pypy-7.3.12.ebuild
@@ -0,0 +1,301 @@
+# Copyright 1999-2023 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+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 full-stdlib gdbm +jit ncurses sqlite tk"
+RESTRICT="!full-stdlib? ( test )"
+
+RDEPEND="
+ || (
+ >=dev-python/pypy-exe-bin-${PYPY_PV}:${PYPY_PV}
+ >=dev-python/pypy-exe-${PYPY_PV}:${PYPY_PV}[bzip2?,ncurses?]
+ )
+ dev-libs/openssl:0=
+ gdbm? ( sys-libs/gdbm:0= )
+ sqlite? ( dev-db/sqlite:3= )
+ tk? (
+ dev-lang/tk:0=
+ dev-tcltk/tix:0=
+ )
+"
+DEPEND="
+ ${RDEPEND}
+"
+
+src_prepare() {
+ local PATCHES=(
+ "${WORKDIR}/${PATCHSET}"
+ )
+ default
+}
+
+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 - <<-EOF
+ import sysconfig
+ print sysconfig.get_config_var("SOABI")
+ EOF
+ )
+ [[ ${soabi#pypy-} == ${SLOT#*/} ]] || die "update subslot to ${soabi}"
+
+ einfo "Generating caches and CFFI modules ..."
+
+ if use full-stdlib; then
+ # Generate Grammar and PatternGrammar pickles.
+ ./pypy-c - <<-EOF || die "Generation of Grammar and PatternGrammar pickles failed"
+ import lib2to3.pygram
+ import lib2to3.patcomp
+ lib2to3.patcomp.PatternCompiler()
+ EOF
+
+ # 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 - <<-EOF
+ import binascii
+ import json
+ from pypy_tools.build_cffi_imports import cffi_build_scripts as x
+ print("%08x" % (binascii.crc32(json.dumps(x)),))
+ EOF
+ )
+ 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
+ fi
+}
+
+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
+
+ # broken by expat-2.4.5
+ --ignore=lib-python/2.7/test/test_minidom.py
+ --ignore=lib-python/2.7/test/test_xml_etree.py
+ --ignore=lib-python/2.7/test/test_xml_etree_c.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
+ if use full-stdlib; then
+ 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
+
+ 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
+ else
+ # install only the absolutely minimal subset of modules needed
+ # for pypy3 build
+ local lib_py_modules=(
+ # base modules needed to even start pypy (and import site)
+ codecs.py
+ copy_reg.py
+ encodings
+ genericpath.py
+ linecache.py
+ os.py
+ pkgutil.py
+ posixpath.py
+ re.py
+ runpy.py
+ site.py
+ sre_compile.py
+ sre_constants.py
+ sre_parse.py
+ stat.py
+ string.py
+ sysconfig.py
+ traceback.py
+ warnings.py
+ UserDict.py
+
+ # needed for python_optimize
+ compileall.py
+ getopt.py
+ py_compile.py
+ struct.py
+
+ # needed for rpython
+ argparse.py
+ atexit.py
+ base64.py
+ bdb.py
+ bisect.py
+ cmd.py
+ code.py
+ codeop.py
+ collections.py
+ colorsys.py
+ contextlib.py
+ copy.py
+ ctypes
+ dis.py
+ fnmatch.py
+ functools.py
+ gettext.py
+ hashlib.py
+ heapq.py
+ inspect.py
+ io.py
+ json
+ keyword.py
+ locale.py
+ logging
+ new.py
+ opcode.py
+ optparse.py
+ pdb.py
+ pickle.py
+ platform.py
+ pprint.py
+ random.py
+ repr.py
+ shlex.py
+ shutil.py
+ StringIO.py
+ subprocess.py
+ tempfile.py
+ textwrap.py
+ threading.py
+ tokenize.py
+ weakref.py
+ zipfile.py
+ )
+
+ local distutils_modules=(
+ # needed by site
+ __init__.py
+ errors.py
+ sysconfig.py
+ sysconfig_cpython.py
+ sysconfig_pypy.py
+ )
+
+ local lib_pypy_modules=(
+ # needed by site
+ _sysconfigdata.py
+
+ # needed by rpython
+ cffi
+ _ctypes
+ _ffi.py
+ _functools.py
+ _sha.py
+ _sha256.py
+ _sha512.py
+
+ # NB: we're deliberately skipping _hashlib to avoid some deps
+ )
+
+ cd lib-python/2.7 || die
+ insinto "${dest}/lib-python/2.7"
+ doins -r "${lib_py_modules[@]}"
+ cd - >/dev/null || die
+
+ cd lib-python/2.7/distutils || die
+ insinto "${dest}/lib-python/2.7/distutils"
+ doins -r "${distutils_modules[@]}"
+ cd - >/dev/null || die
+
+ cd lib_pypy || die
+ insinto "${dest}/lib_pypy"
+ doins -r "${lib_pypy_modules[@]}"
+ cd - >/dev/null || die
+ fi
+
+ dosym ../lib/pypy2.7/pypy-c /usr/bin/pypy
+ dodoc README.rst
+
+ 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
+
+ einfo "Byte-compiling Python standard library..."
+ python_optimize "${ED}${dest}"
+
+ # remove to avoid collisions
+ rm "${PYTHON}" || die
+}