diff options
author | V3n3RiX <venerix@redcorelinux.org> | 2019-12-15 18:09:03 +0000 |
---|---|---|
committer | V3n3RiX <venerix@redcorelinux.org> | 2019-12-15 18:09:03 +0000 |
commit | 7bc9c63c9da678a7e6fceb095d56c634afd22c56 (patch) | |
tree | 4a67d50a439e9af63947e5f8b6ba3719af98b6c9 /dev-python/pypy3 | |
parent | b284a3168fa91a038925d2ecf5e4791011ea5e7d (diff) |
gentoo resync : 15.12.2019
Diffstat (limited to 'dev-python/pypy3')
-rw-r--r-- | dev-python/pypy3/Manifest | 6 | ||||
-rw-r--r-- | dev-python/pypy3/pypy3-7.2.0-r1.ebuild | 2 | ||||
-rw-r--r-- | dev-python/pypy3/pypy3-7.3.0_rc1.ebuild | 268 | ||||
-rw-r--r-- | dev-python/pypy3/pypy3-9999.ebuild | 2 |
4 files changed, 274 insertions, 4 deletions
diff --git a/dev-python/pypy3/Manifest b/dev-python/pypy3/Manifest index aa9a7be5dc04..fd5c947215ac 100644 --- a/dev-python/pypy3/Manifest +++ b/dev-python/pypy3/Manifest @@ -4,6 +4,8 @@ AUX 7.0.0-gentoo-path.patch 1880 BLAKE2B ff89983185c9249a91e32bf69903e139d75efea AUX 7.2.0-distutils-cxx.patch 14432 BLAKE2B 7c2f5a22457781c4b7d21954a3ffe7b1dfb55f12f890205cfe294316be86e7b206c4ce732f15fbf021c0fc87ed05a20aa57918cda869226efadb01e5fb2823a7 SHA512 7ccb64419d4ad90d03958bf6ddbb700a253fec75bceca7f9355f5f8496e1aba9ac72b09d0616600ebf8169d5ec705d6b058556905b032db8fb5abd23cf9b30e8 AUX python-3.5-distutils-OO-build.patch 3627 BLAKE2B fe4fd23515f0d1cfc236ac3e773b6a70a9b0fbbaff4719c1f1621e21433cfdb1f53b6bf5f348069d7bf03d26bd039f793e4ef2ac4f6271062d83c088ccbab56d SHA512 5e8e4ab7d326386a244df9d0fca5b54e16b5943e35d12ecaf9ea986e79d2d8d8e85585f6286e0fc440dbb7a8c17e2bcf7a11498ff9cc5f523e97d8b353d9a511 DIST pypy3.6-v7.2.0-src.tar.bz2 21850076 BLAKE2B 756ea3034fe8971c979ec83c9cbfac55a680f3ef03b276475aa4318f3480ae5ede609b8413412df64db553a33979670498b1f97184f3b57406619c9db7f01127 SHA512 bcbb53062a473d504bcc082cf6286f6169c83d1f38d22c4d7c4e46ddc32bca9d91e71194637e6650db5bec02b29fe262b22fe236d627b6bc3e6e0c59c66c07cc -EBUILD pypy3-7.2.0-r1.ebuild 7382 BLAKE2B 42377d253011d2a1643b0cb68d0d719ae530bb6fd48f64592f7907f19e5a8d4f6574388aef305cd653743a4ce07d35773fffded9ea0e4a4b22d515a102f913a6 SHA512 ee2f630e7034bd64d32989d4e0114750b047012a5c7981754da36f4ccc6ac3ea3e1a783200543ef639eb17799174fd8f9defa34b172afda23a4fa7e8b40cf889 -EBUILD pypy3-9999.ebuild 7432 BLAKE2B f7fda6aa9308f9a5e0bfa20da5ae0a825d6ec1254ab14bfecb77a6d3b7e46a3788119c9f944bf06e440028e4bab31305ef7d1a26aff8f0395eae03ab623d1006 SHA512 348c6bc2dcd474e1c2423551d8fa57578366729dcf4d0740e0bed96f5f68e99dd11ddb88aed5fe34e0449bbf7d7e1b03f87c8d4e8a2b0aed49524da5979c42d5 +DIST pypy3.6-v7.3.0rc1-src.tar.bz2 22009224 BLAKE2B f5b2557369a8ba101ef38c46437a6b2af03521a5cdbedd2d1b1ee6c1349b66b7bf740290620e1143b544ca7cbcac960192cca889ac253585185bd7776b487110 SHA512 3f39b0b1454f2063b321221453487b42ee96d08ecaf5a19dc788a2b9975e9601c39ccb6e7b0de54ee81c24f4def217d8ddaa09ed5541a857c77d05f9cfc62c05 +EBUILD pypy3-7.2.0-r1.ebuild 7372 BLAKE2B 7a7fa28a01e7f9a78a62b73dcc086dee0335aba592fcab5a6cd9e50679aa6938636eeaa94d7ea7912757d3047ec38f2af8093a905e7df372be4b39639ea537ea SHA512 df7dc437945ee6fc72e101f62a1d1d29ed8a78a621fe2f9db789ca4b37b9ac3dd0d47f9ad9829980819b968648fb4c2acb4be20b956a30232396a2ed2fc491fc +EBUILD pypy3-7.3.0_rc1.ebuild 7344 BLAKE2B ec5d1af4538d9871a6587c06422d23b174156415d2a995be44e9b01d45c0371aaf36f82410a3c82d9dff0c9c60dae00acda5b4d8f514c7d09f42b11b8d0ab444 SHA512 cdb6815f6cb99ccd3ceef825632961e645a002c650495f782d6b4f11491c181d188da276b7480830c33e142e4a23704cb7db613ee99144d2555f4ac67fbf70f1 +EBUILD pypy3-9999.ebuild 7422 BLAKE2B c4cb3e80b31979b0523231faf2af60ed93692fe6e08b676efc577024834fc7de98bee3132579d0f6a4501f17461fb0cde672006a221139677b5d27cd635e2db5 SHA512 4b90d3797d7fd1572201ca67022ac2402a40d067b66521c06e5a3ffba3b9cc3b95184ce39033825d4faddcf02b528ed9b9f62d9d3b4e1e5a0a4518ba86d93692 MISC metadata.xml 636 BLAKE2B da5771ec2ee59ac934959f6e72c5aee2225ee2d88e2c4c5d6acfae95b9652c973160ed0ea29f0f6143d25a249944925ef157693979871863c04a483da972bd7e SHA512 c52d59231928b12da09c2c7149afbb852ceaf1342a2747d85493c9abc15b8d68fd24495349e583aee5cea18799bd4dada3943bc523a4e18745e2036446cd0841 diff --git a/dev-python/pypy3/pypy3-7.2.0-r1.ebuild b/dev-python/pypy3/pypy3-7.2.0-r1.ebuild index b703db56d2da..0b49fbb2bc8d 100644 --- a/dev-python/pypy3/pypy3-7.2.0-r1.ebuild +++ b/dev-python/pypy3/pypy3-7.2.0-r1.ebuild @@ -24,7 +24,7 @@ RDEPEND=">=sys-libs/zlib-1.1.3:0= virtual/libffi:0= virtual/libintl:0= dev-libs/expat:0= - !libressl? ( dev-libs/openssl:0=[-bindist] ) + !libressl? ( dev-libs/openssl:0= ) libressl? ( dev-libs/libressl:0= ) bzip2? ( app-arch/bzip2:0= ) gdbm? ( sys-libs/gdbm:0= ) diff --git a/dev-python/pypy3/pypy3-7.3.0_rc1.ebuild b/dev-python/pypy3/pypy3-7.3.0_rc1.ebuild new file mode 100644 index 000000000000..50bd413a6dab --- /dev/null +++ b/dev-python/pypy3/pypy3-7.3.0_rc1.ebuild @@ -0,0 +1,268 @@ +# Copyright 1999-2019 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=7 + +# pypy3 needs to be built using python 2 +PYTHON_COMPAT=( python2_7 pypy ) +inherit check-reqs pax-utils python-any-r1 toolchain-funcs + +MY_P=pypy3.6-v${PV/_/} + +DESCRIPTION="A fast, compliant alternative implementation of the Python (3.6) language" +HOMEPAGE="https://pypy.org/" +SRC_URI="https://bitbucket.org/pypy/pypy/downloads/${MY_P}-src.tar.bz2" + +LICENSE="MIT" +# pypy3 -c 'import sysconfig; print(sysconfig.get_config_var("SOABI"))' +SLOT="0/pypy36-pp73" +KEYWORDS="" +IUSE="bzip2 cpu_flags_x86_sse2 gdbm +jit libressl low-memory ncurses + sandbox sqlite tk" + +RDEPEND=">=sys-libs/zlib-1.1.3:0= + virtual/libffi:0= + virtual/libintl:0= + dev-libs/expat:0= + !libressl? ( dev-libs/openssl:0= ) + libressl? ( dev-libs/libressl:0= ) + bzip2? ( app-arch/bzip2:0= ) + gdbm? ( sys-libs/gdbm:0= ) + ncurses? ( sys-libs/ncurses:0= ) + sqlite? ( dev-db/sqlite:3= ) + tk? ( + dev-lang/tk:0= + dev-tcltk/tix:0= + ) + !dev-python/pypy3-bin:0" +DEPEND="${RDEPEND} + low-memory? ( virtual/pypy ) + !low-memory? ( + || ( + virtual/pypy + ( + dev-lang/python:2.7 + dev-python/pycparser[python_targets_python2_7(-),python_single_target_python2_7(+)] + ) + ) + )" + +S="${WORKDIR}/${MY_P}-src" + +check_env() { + if use low-memory; then + CHECKREQS_MEMORY="1750M" + use amd64 && CHECKREQS_MEMORY="3500M" + else + CHECKREQS_MEMORY="3G" + use amd64 && CHECKREQS_MEMORY="6G" + fi + + check-reqs_pkg_pretend +} + +pkg_pretend() { + [[ ${MERGE_TYPE} != binary ]] && check_env +} + +pkg_setup() { + if [[ ${MERGE_TYPE} != binary ]]; then + check_env + + # unset to allow forcing pypy below :) + use low-memory && local EPYTHON= + if python_is_installed pypy && [[ ! ${EPYTHON} || ${EPYTHON} == pypy ]]; then + einfo "Using PyPy to perform the translation." + local EPYTHON=pypy + else + einfo "Using ${EPYTHON:-python2} to perform the translation. Please note that upstream" + einfo "recommends using PyPy for that. If you wish to do so, please install" + einfo "virtual/pypy and ensure that EPYTHON variable is unset." + fi + + python-any-r1_pkg_setup + fi +} + +src_prepare() { + eapply "${FILESDIR}/7.0.0-gentoo-path.patch" + eapply "${FILESDIR}/1.9-distutils.unixccompiler.UnixCCompiler.runtime_library_dir_option.patch" + eapply "${FILESDIR}"/5.9.0-shared-lib.patch # 517002 + eapply "${FILESDIR}"/7.2.0-distutils-cxx.patch + + sed -e "s^@EPREFIX@^${EPREFIX}^" \ + -i lib-python/3/distutils/command/install.py || die + + # apply CPython stdlib patches + pushd lib-python/3 > /dev/null || die + eapply "${FILESDIR}"/python-3.5-distutils-OO-build.patch + popd > /dev/null || die + + eapply_user +} + +src_configure() { + tc-export CC + + local jit_backend + if use jit; then + jit_backend='--jit-backend=' + + # We only need the explicit sse2 switch for x86. + # On other arches we can rely on autodetection which uses + # compiler macros. Plus, --jit-backend= doesn't accept all + # the modern values... + + if use x86; then + if use cpu_flags_x86_sse2; then + jit_backend+=x86 + else + jit_backend+=x86-without-sse2 + fi + else + jit_backend+=auto + fi + fi + + local args=( + --shared + $(usex jit -Ojit -O2) + $(usex sandbox --sandbox '') + + ${jit_backend} + + pypy/goal/targetpypystandalone + ) + + # Avoid linking against libraries disabled by use flags + local opts=( + bzip2:bz2 + ncurses:_minimal_curses + ) + + local opt + for opt in "${opts[@]}"; do + local flag=${opt%:*} + local mod=${opt#*:} + + args+=( + $(usex ${flag} --withmod --withoutmod)-${mod} + ) + done + + local interp=( "${PYTHON}" ) + if use low-memory; then + interp=( env PYPY_GC_MAX_DELTA=200MB + "${PYTHON}" --jit loop_longevity=300 ) + fi + + # translate into the C sources + # we're going to make them ourselves since otherwise pypy does not + # free up the unneeded memory before spawning the compiler + set -- "${interp[@]}" rpython/bin/rpython --batch --source "${args[@]}" + echo -e "\033[1m${@}\033[0m" + "${@}" || die "translation failed" +} + +src_compile() { + emake -C "${T}"/usession*-0/testing_1 + + # copy back to make sys.prefix happy + cp -p "${T}"/usession*-0/testing_1/{pypy3-c,libpypy3-c.so} . || die + pax-mark m pypy3-c libpypy3-c.so + + einfo "Generating caches and CFFI modules ..." + + # Generate Grammar and PatternGrammar pickles. + ./pypy3-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 = { +# "_blake2": "_blake2/_blake2_build.py", +# "_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, +# "lzma": "_lzma_build.py", +# "_decimal": "_decimal_build.py", +# "_sha3": "_sha3/_sha3_build.py", + cffi_targets=( blake2/_blake2 sha3/_sha3 ssl + audioop syslog pwdgrp resource lzma decimal ) + 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 + ../pypy3-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= + + # Test runner requires Python 2 too. However, it spawns PyPy3 + # internally so that we end up testing the correct interpreter. + "${PYTHON}" ./pypy/test_all.py --pypy=./pypy3-c -vv lib-python || die +} + +src_install() { + local dest=/usr/lib/pypy3.6 + einfo "Installing PyPy ..." + exeinto "${dest}" + doexe pypy3-c libpypy3-c.so + pax-mark m "${ED}${dest}/pypy3-c" "${ED}${dest}/libpypy3-c.so" + insinto "${dest}" + # preserve mtimes to avoid obsoleting caches + insopts -p + doins -r include lib_pypy lib-python + dosym ../lib/pypy3.6/pypy3-c /usr/bin/pypy3 + dodoc README.rst + + if ! use gdbm; then + rm -r "${ED}${dest}"/lib_pypy/_gdbm* || die + fi + if ! use sqlite; then + rm -r "${ED}${dest}"/lib-python/*3/sqlite3 \ + "${ED}${dest}"/lib_pypy/_sqlite3* \ + "${ED}${dest}"/lib-python/*3/test/test_sqlite.py || die + fi + if ! use tk; then + rm -r "${ED}${dest}"/lib-python/*3/{idlelib,tkinter} \ + "${ED}${dest}"/lib_pypy/_tkinter \ + "${ED}${dest}"/lib-python/*3/test/test_{tcl,tk,ttk*}.py || die + fi + + einfo "Generating caches and byte-compiling ..." + + local -x PYTHON=${ED}${dest}/pypy3-c + # we can't use eclass function since PyPy is dumb and always gives + # paths relative to the interpreter + local PYTHON_SITEDIR=${EPREFIX}/usr/lib/pypy3.6/site-packages + python_export pypy3 EPYTHON + + echo "EPYTHON='${EPYTHON}'" > epython.py || die + python_domodule epython.py + + einfo "Byte-compiling Python standard library..." + + # compile the installed modules + python_optimize "${ED}${dest}" +} diff --git a/dev-python/pypy3/pypy3-9999.ebuild b/dev-python/pypy3/pypy3-9999.ebuild index 12b0e7fae866..10dbaca72bfa 100644 --- a/dev-python/pypy3/pypy3-9999.ebuild +++ b/dev-python/pypy3/pypy3-9999.ebuild @@ -27,7 +27,7 @@ RDEPEND=">=sys-libs/zlib-1.1.3:0= virtual/libffi:0= virtual/libintl:0= dev-libs/expat:0= - !libressl? ( dev-libs/openssl:0=[-bindist] ) + !libressl? ( dev-libs/openssl:0= ) libressl? ( dev-libs/libressl:0= ) bzip2? ( app-arch/bzip2:0= ) gdbm? ( sys-libs/gdbm:0= ) |