commit:     f58e5aea709c5e8aceb2acd1f46a84686930d173
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Fri Feb 11 10:07:03 2022 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Fri Feb 11 12:16:00 2022 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=f58e5aea

dev-python/pypy: Bump to 7.3.8_rc2

Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>

 dev-python/pypy/Manifest              |   2 +
 dev-python/pypy/pypy-7.3.8_rc2.ebuild | 164 ++++++++++++++++++++++++++++++++++
 2 files changed, 166 insertions(+)

diff --git a/dev-python/pypy/Manifest b/dev-python/pypy/Manifest
index e54c9e8a69a2..7c9c676fd5de 100644
--- a/dev-python/pypy/Manifest
+++ b/dev-python/pypy/Manifest
@@ -1,4 +1,6 @@
 DIST pypy2.7-gentoo-patches-7.3.6.tar.xz 7904 BLAKE2B 
6a809f8f1fd59c18627abaf81b47fa5948d39d5ece86fa416944c1c6585ec5d43b56f4228479a6afdca9788a0ecfdc83fceb4eeea25f289c1dc0b2dbda79b882
 SHA512 
01fe42cdf94b559ed787e253325f7df0add62e30e77c6b6e4c0301c81ff624a31167d95b39d24d72f28441468d571112f424957de38e7f26ecdbfe0f33617296
 DIST pypy2.7-gentoo-patches-7.3.8rc1.tar.xz 7424 BLAKE2B 
931fccd3415e0da7c0fa5a228fc1fec2006a9d12d3523222fc0618a901c161df9f149d09e354029b42ca2144bdeebbd228ec6025574d87d4b630fd0750bc4919
 SHA512 
c193610c46d4b02d1445073f12c3285ce053f5b860584b1c39bff48d5e800c609d40ff0eb91049cdf8f4bfdb4e7bb48d7059de98785e598349022602b97e5f2c
+DIST pypy2.7-gentoo-patches-7.3.8rc2.tar.xz 7424 BLAKE2B 
1d0e7e86cbc08ac3dc6f10fdb887bc4b634a9ac0aeeb39962b5cca85e05122c7dd8548848933d88f62508d3d2032f5f4abe1feea6cf06976659d142d451d0ffb
 SHA512 
62d33bd700c28cd93617d69ccbbb3651fa794378583fdf584b2030f330b3a9bf55fba7d03539baacd9faac02e5d812b481c64b9c3f25cf304d780d162e8c3840
 DIST pypy2.7-v7.3.6-src.tar.bz2 21621891 BLAKE2B 
a2d18ae9d455747484de491df228e7f26af46fc3bc1fd1c16ceba79eba5a3a3272d48312c9da112ae9310722b5af33098f28a7dc15d7ff4760886a8c974692a2
 SHA512 
df914f5e1a1f5ae5c1ea11cd8e29482309af4dce041cf2ae6d7b35a35717fec903be70f56e5f1ddbc9fd370cbe29f6896d25eb2cd10c493c352c80b279070ba3
 DIST pypy2.7-v7.3.8rc1-src.tar.bz2 23267987 BLAKE2B 
035aef49ff0e8b1caed24e87712364ca350fe9f51247eaf732a32458a756264a867ad1270d4edc500daba8dcf70ca8882eb7f381135961f7f48d784ffe8bc6ee
 SHA512 
88184be129ca3698db4e04ae6d241b7c748626870400a100ee2b8bba6ae3c0508071e435adb204bd6b34642ff3c8b0b71643446a3b443cc4467d68591fd53ceb
+DIST pypy2.7-v7.3.8rc2-src.tar.bz2 23272804 BLAKE2B 
5ff559f603f06a44a6149dd898df3351f2de4c42219dbcf6e811e1120079e8979a3edb3c76a01a30400684bb8088eb8e15c0408b6ea0d3762eff87eca41a0021
 SHA512 
ab85b219d43d556d84847af116d3012706264571d6ebdc0b1242195cdc906f9a9073ce5f42e9e5b4a9d1f974fe103b64190c7f3e5b53766443a4b9b938f55d1c

diff --git a/dev-python/pypy/pypy-7.3.8_rc2.ebuild 
b/dev-python/pypy/pypy-7.3.8_rc2.ebuild
new file mode 100644
index 000000000000..baea47fe59a1
--- /dev/null
+++ b/dev-python/pypy/pypy-7.3.8_rc2.ebuild
@@ -0,0 +1,164 @@
+# Copyright 1999-2022 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=""
+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
+}

Reply via email to