diff options
Diffstat (limited to 'dev-python/pypy')
-rw-r--r-- | dev-python/pypy/Manifest | 5 | ||||
-rw-r--r-- | dev-python/pypy/metadata.xml | 2 | ||||
-rw-r--r-- | dev-python/pypy/pypy-7.3.6_rc1.ebuild | 164 |
3 files changed, 169 insertions, 2 deletions
diff --git a/dev-python/pypy/Manifest b/dev-python/pypy/Manifest index f1fbef6f8a75..fac8c42f292d 100644 --- a/dev-python/pypy/Manifest +++ b/dev-python/pypy/Manifest @@ -1,4 +1,7 @@ DIST pypy2.7-gentoo-patches-7.3.5_p2.tar.xz 8976 BLAKE2B 4bd12fa964da45a516b6d8cee8f2b9b1cd4cac9ee2e6369de1e8be5be2abab77e60a0fdc9416a76624b22f385135659b84edf7c64aa98f59a1c94f837c7e0d20 SHA512 ab47d5a0199997501f246399c3650919cc20423cc7e9517f16d1640e1863819016a944659e10af3e8ca803060f983546603feaba7c8f4cc3fb4996506fe59919 +DIST pypy2.7-gentoo-patches-7.3.6rc1.tar.xz 7904 BLAKE2B 3a5b8efaa67d5a1b4f65a56c6256a3b1efa765079e0fb2c2d380b325175f2e8f3a7d7c4886f734374b6069b3ebf3ac63483f90ada0ece72ff5d8e5c82940c875 SHA512 820d6155e3451b22076719eb3ffc29fab74965761faeade52013d3928fd63cd00b8c5d045f0da0bc1f303a9d2998cd210cd6bec05b2ca01c8b281a61c9a4a73c DIST pypy2.7-v7.3.5-src.tar.bz2 21572184 BLAKE2B 388b8623c2c5de839dea0e60acc5e11a6a774b4a6cdc051691053a97fe13ec12c6735a4be64015653ef420c0d8af2c79d8faa90a7dfc3042e29f35f4e1ded6c3 SHA512 a30c666c29eec7cca7e2e52f26480958b5885cd59c6b2e3d3c0d8c1cc55c298e878fc95f88e38a4297bb3d7d1cc1f77470de958e5acfd317e1fc8bdd5d013dcb +DIST pypy2.7-v7.3.6rc1-src.tar.bz2 21617621 BLAKE2B 659dd16920b157dae94c5d1f7a9346c7b933ec8c6a3019e36aaa6911bd01d5c9d064a75baa3d8f3df423db4d5a1de5d4f3c8fb63c8d5188d23401b07cc7611be SHA512 f8b949488c3af8acc5533d92238b7bca9ce59c24e93413e0db88094eaf58af5f92a9c9a941f3b7184d2761af2c2c4775891353df053a0762519606a4ce7ca544 EBUILD pypy-7.3.5_p2.ebuild 4832 BLAKE2B 862e40dcfbab64b8cec4c44fbdafacafc2411037ae74e0601fc0d71dda70c376d868f71b19ceecc21bd2556d0cd02a6d009ae30454e85d5be5a2af7df007dde5 SHA512 835173f9ea59e57ceb7162d320ab38372c0d9feb3548c5e2d0c7fab54c129d53f5fbe0c7ed5599e95e1301634fb04cb23da306ca7762f116dc1016f081f52f40 -MISC metadata.xml 240 BLAKE2B 41e6a4d9da33dab2decc5ff419924f382a8f64d27a81fdb97576db8c6cf125be95911747946ec8be1b453f56617fef1084f5947f84b50a8db419d46df2ae8a0f SHA512 9c23321eaa853f851bf00195ea64ac2ba093e516f9b57855ee5aa58fbb1988130c9f0c17c2a9ce9fae4ee033e0a28a70c868e0f5acdfa1dd316ab533c5279d59 +EBUILD pypy-7.3.6_rc1.ebuild 4975 BLAKE2B 029e4bf65279cf79ac5ef4f26c68e124da1c2388bf5f5a9cabbf40d0069b18a5e55411ba20ef176db076caf860b42757f84ec27fd8968eef951a79f92bcb790e SHA512 99498536a6b1d0ddcde0241354728932059cedc74ce69240921d96a5b8c0e8aa4e2ba37b224e2576317a729d573b176668bf873dab1ea903e9e4908c4a841a4f +MISC metadata.xml 241 BLAKE2B 4f18c355c71824c25df283b2d463a5abbf2295446e74b960e868dd78d4910ac066725450478087567a6e66b7a8948d99e053f13a7e58dbf2b89fdaf5c2f3436c SHA512 c46e70ffd66754ad84c64806f2bbff25ba9a688f035176a4565afc95351ce10fffba64bbde89965501460b05978c7e59b3d84db6a8cb6efff4055d4b7a5ab5d8 diff --git a/dev-python/pypy/metadata.xml b/dev-python/pypy/metadata.xml index 7f4f33c6dbc9..efd7c8c21836 100644 --- a/dev-python/pypy/metadata.xml +++ b/dev-python/pypy/metadata.xml @@ -1,5 +1,5 @@ <?xml version="1.0" encoding="UTF-8"?> -<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd"> +<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd"> <pkgmetadata> <maintainer type="project"> <email>python@gentoo.org</email> diff --git a/dev-python/pypy/pypy-7.3.6_rc1.ebuild b/dev-python/pypy/pypy-7.3.6_rc1.ebuild new file mode 100644 index 000000000000..c4b76dcdef06 --- /dev/null +++ b/dev-python/pypy/pypy-7.3.6_rc1.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="" +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_build_scripts = { +# "_ssl": "_ssl_build.py", +# "sqlite3": "_sqlite3_build.py", +# "audioop": "_audioop_build.py", +# "tk": "_tkinter/tklib_build.py", +# "curses": "_curses_build.py" if sys.platform != "win32" else None, +# "syslog": "_syslog_build.py" if sys.platform != "win32" else None, +# "gdbm": "_gdbm_build.py" if sys.platform != "win32" else None, +# "pwdgrp": "_pwdgrp_build.py" if sys.platform != "win32" else None, +# "resource": "_resource_build.py" if sys.platform != "win32" else None, + cffi_targets=( 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 + + # 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 +} |