diff options
author | V3n3RiX <venerix@redcorelinux.org> | 2020-11-25 22:39:15 +0000 |
---|---|---|
committer | V3n3RiX <venerix@redcorelinux.org> | 2020-11-25 22:39:15 +0000 |
commit | d934827bf44b7cfcf6711964418148fa60877668 (patch) | |
tree | 0625f358789b5e015e49db139cc1dbc9be00428f /dev-python/pypy3-exe | |
parent | 2e34d110f164bf74d55fced27fe0000201b3eec5 (diff) |
gentoo resync : 25.11.2020
Diffstat (limited to 'dev-python/pypy3-exe')
-rw-r--r-- | dev-python/pypy3-exe/Manifest | 14 | ||||
-rw-r--r-- | dev-python/pypy3-exe/files/pypy3-7.3.2-ppc64-segfault.patch | 64 | ||||
-rw-r--r-- | dev-python/pypy3-exe/files/pypy3-7.3.2-sethostname-bytes.patch | 61 | ||||
-rw-r--r-- | dev-python/pypy3-exe/pypy3-exe-7.3.2-r1.ebuild | 161 | ||||
-rw-r--r-- | dev-python/pypy3-exe/pypy3-exe-7.3.2_p37-r1.ebuild | 162 | ||||
-rw-r--r-- | dev-python/pypy3-exe/pypy3-exe-7.3.3.ebuild (renamed from dev-python/pypy3-exe/pypy3-exe-7.3.2.ebuild) | 0 | ||||
-rw-r--r-- | dev-python/pypy3-exe/pypy3-exe-7.3.3_p37.ebuild (renamed from dev-python/pypy3-exe/pypy3-exe-7.3.2_p37.ebuild) | 0 | ||||
-rw-r--r-- | dev-python/pypy3-exe/pypy3-exe-7.3.3_rc1.ebuild | 156 | ||||
-rw-r--r-- | dev-python/pypy3-exe/pypy3-exe-7.3.3_rc1_p37.ebuild | 157 |
9 files changed, 773 insertions, 2 deletions
diff --git a/dev-python/pypy3-exe/Manifest b/dev-python/pypy3-exe/Manifest index f3d6122e34ed..954b28dd7151 100644 --- a/dev-python/pypy3-exe/Manifest +++ b/dev-python/pypy3-exe/Manifest @@ -1,7 +1,17 @@ +AUX pypy3-7.3.2-ppc64-segfault.patch 3077 BLAKE2B 88085062fb0db4641f995a560386fb3adca7ef9d54225ad42a9a52c0bb976a816366c1f94e1a17616b49213635ebb9305e090e7e1dcb9f8c05cf5dcb9a08e6f1 SHA512 c07698452b0c88959a08ecc3730980dc1899f39b43d71b62b455ed0c8fb863717f0d8555c7f96d2c465c790fecfedb0c06afc5bb8b5b6255ee04c66a7ac1c377 +AUX pypy3-7.3.2-sethostname-bytes.patch 2400 BLAKE2B 62efad01272c9d3575e4eb9994a66acf087ae3ed078f227f0f27dee0d903be10bf8e77a07eb756c698a8622041d3bc103006a682d5dfe42364e0cd8f0f1734d9 SHA512 b0d30dce8eaf9072257632eeab0ccf84dd9f444b21a52beb9a18cdd03b70955dceb81268a929e0660646e699ed1e6d8b0b17b48d2680a57981399c42f39f03a0 DIST pypy3.6-v7.3.1-src.tar.bz2 22712809 BLAKE2B 4250b3fe98c611b9635319c106b80e88ab469eab5f883babb738e175e7b7adc22c85f8ef3fdce1cdc127b521beef8d6c7862e188d8c8889c39f90136d6bbe374 SHA512 f8e32aae7f01225e0e4d6763eaac40fc02dffc3d0b6a30f22d422147f9be4f3290ea78160a912ffae311dea3d503eb31a7a4f3999d3b541fbccd93d1cef4ca56 DIST pypy3.6-v7.3.2-src.tar.bz2 22736022 BLAKE2B e2338ac3f7af06b987c43e93eab9ff14d46262143472b0393b30b011fff67d33add45d8198cee7109354e09c52a2540938abeef364b0cf12f2891ca9c7aac2a4 SHA512 ed861a57d6edf1548c061d10295313a05d0ac54fe68a8755211ff76fa2dc78d7b1479c6152dc5d0d1cdce4e247c240c1a2edf59ec8a53d0004ec7713514c9c35 +DIST pypy3.6-v7.3.3-src.tar.bz2 22484684 BLAKE2B a252e3070ec1c7cfd708cd694bd461d56241100463bac5ff7bbcf2d2667e01990ec8b4ceb947449ab1f620d0d5a8984bd8af3e2565555e5f73218e3c35ae1ebd SHA512 3bc9d9cc362f500e9e79c2694fc355706ac44d6dd5b8f5fb4d017d0997581472a9fdda08ccbe45469c7b52facdc0512be07843ba54d1d691fdb37f6628065879 +DIST pypy3.6-v7.3.3rc1-src.tar.bz2 22401663 BLAKE2B 278b71a3b608999ee20b6558598eda453f3a87645965b8b705a11d05784722106c04b405375f62bd8e7ce2968df311314ee1672a2ddecb0f6afc49a3cbe8e670 SHA512 d865125925603e74412be7e750ab403670f05e76f2dfe6280c8b0ef123ed3e2f463d9457b65aa4f84c47a3529b2d3bca84b84307623bf995f60b549c85dcce2d DIST pypy3.7-v7.3.2-src.tar.bz2 25060911 BLAKE2B 35ecfee4c64e13539827c65a61e0cd359de4046f77553629cdf63479327c6ad86afd1443caa7a911a6271f496f0f3caf1b919ce91de717d0a71d008927b7f77b SHA512 563a9cf63e818b95aeb14c25b55bb5fb0bf8283f0b9f2bdd9a8833989beb651681f53f52368fb9db2c75fb60be0456eec87d48b557740b57847c4104003cb288 +DIST pypy3.7-v7.3.3-src.tar.bz2 24633503 BLAKE2B 0fb9fbb8866cf661c5b1d8d029fb2bc50737fae097875d0dac86c9ec21dc907093173b350a4f89d2c5a1fbed4c92ca4919f047536b828d4ee35583d615e7ddce SHA512 c98955e72dc0bd0452e4e16e0fe0ab318a34d6d57217ea33349e98ed047597ba97be7d15b41edd4dc85028fcca0a6257a4bb98fe96ce876e41a04df012261f4a +DIST pypy3.7-v7.3.3rc1-src.tar.bz2 24511164 BLAKE2B 7fba1fde1bb248006f95fbb52dd9f237086f7221b99d6a288c1a32188a76ed76b1908e7f2054fd969b597c422c566214dd1e9ec409e243a776e8fa466fbf2039 SHA512 f98e7d209f75c4fa5645db16e1cc721ba80d44ad76030bd1c412800bb723ba528a83da89c8793a7e105d8391e72eeef7cb0198f9b30041178e90b628f14e5a3e EBUILD pypy3-exe-7.3.1.ebuild 3458 BLAKE2B 70d5be9e72cdd482d6f2107143cd79ddc024d50ef242b7fdf467d91c9a2d3c1130510750c54bfa869220fb248aba7fb46c9ce7b50dd0cbc69d55c23c98a3b60a SHA512 2b986efb595c46e284e96cfba530fdb7f16a6d931f015b98ab1254ecb142064ca562e9cfa797d6b28dd942b74640ba5d7436afbc360c42582f45d1e105a2c7e3 -EBUILD pypy3-exe-7.3.2.ebuild 3641 BLAKE2B 745f107bc0f5efe5e3a4ce67de747d3230111262787aca7e893edd181a1416f2a3c2ce9885d4e08e0d81d6606b74b41c919cc10d6a8cb7407fbf78f793554270 SHA512 9674383075e1861344854147e405fb9d31de7abda958095118be14af725f9ecb846881f49080e8fbbf2ae3ce4ca05ba7512c351ddf8338f0d9b2fbef93d5b234 -EBUILD pypy3-exe-7.3.2_p37.ebuild 3680 BLAKE2B 37640296820c961bfb69fd153faafaa03693758be90ec58c5b5bcb586fd12d4af9033e5a39a3bcb671c24f1e51781b793a97769494fdf482c2fb17dd8883513f SHA512 bdb87e56c6577494a6044157b8f065676cd331be132117155a9d2f1838719afb0af84b5f0344e84b16ed7f1e27326de78550da8af642e0de66be150b484fd8fc +EBUILD pypy3-exe-7.3.2-r1.ebuild 3753 BLAKE2B 8f8509589f3c21378786ad7b15e18b310a3b7d19cd2e5c8534169d72b76ad844543185a5fa06810441eb44d989fb3d2c2a0934279acce9774ba4be01dcf52511 SHA512 5c5e6c7af37dbdf4ec865bae69b7f9f982663bba8bdef77a8bf8a88e5b915a314dfd2b32d25cef61e55321e2950f6ed75da170cfd7c3558c1690e5abe1d6b7e5 +EBUILD pypy3-exe-7.3.2_p37-r1.ebuild 3792 BLAKE2B 000a9bcc94aca80c657798185066f9752d571d61e8a4765b80cdab909ab19a04f7229e082ffd63918a1efef5259ba671f34536ca1ba63de3b8f6a471cd59b76f SHA512 0b2dadc820da3b1f1069dc9783dfc25f25f2e5c091dcfae275b15fe5a43f531c6cd674711b8eeb2895b27a3173659d7b98679ea447d803a41cb602ad740c6f4d +EBUILD pypy3-exe-7.3.3.ebuild 3641 BLAKE2B 745f107bc0f5efe5e3a4ce67de747d3230111262787aca7e893edd181a1416f2a3c2ce9885d4e08e0d81d6606b74b41c919cc10d6a8cb7407fbf78f793554270 SHA512 9674383075e1861344854147e405fb9d31de7abda958095118be14af725f9ecb846881f49080e8fbbf2ae3ce4ca05ba7512c351ddf8338f0d9b2fbef93d5b234 +EBUILD pypy3-exe-7.3.3_p37.ebuild 3680 BLAKE2B 37640296820c961bfb69fd153faafaa03693758be90ec58c5b5bcb586fd12d4af9033e5a39a3bcb671c24f1e51781b793a97769494fdf482c2fb17dd8883513f SHA512 bdb87e56c6577494a6044157b8f065676cd331be132117155a9d2f1838719afb0af84b5f0344e84b16ed7f1e27326de78550da8af642e0de66be150b484fd8fc +EBUILD pypy3-exe-7.3.3_rc1.ebuild 3592 BLAKE2B 4c593f15cff4c0c5989d66637a58f69d34c9c4de34c26ea438b81339df0514bca86af8d40bf3f0511a4172e34b330ac916596ca87255c09e20364ff54a550f6e SHA512 d0ec75c3deef8fd3fdc3fee3917f8c9ca9da6d9e5baad3e40db9d023c3ac00c808a03d254b06f91883c7e20fe63225866f4a866b190bd714896bf8fc11ff1596 +EBUILD pypy3-exe-7.3.3_rc1_p37.ebuild 3631 BLAKE2B ac13f8855d41d44c58f9adab48b3cac4cbcb51d162219fbc4419186d0fe3f9c9afa35435860e0e5d788ab0d5773ac44efddd86c81d9fbeb26a80fd8c9a3256b4 SHA512 f468cd7444193e384a5177bef63cca69e8799673c51ada60cd8378899ca3892701f2db64403ba1375042cb03ec1f63047aaac904006622b3c4b7c9e47b4f62b5 MISC metadata.xml 497 BLAKE2B 02040ea95327971e16090c00e5771bc684710e90000ca07b366226fedbae8973a1f4bdd9d37506446a2fe3caea4fdf83ca186d2706747adccd14ea24a19486b3 SHA512 816621f5288b822fc1c7b360ac6f1e5f7b464a60c9b6e58fc464860bb8a4f44be932fe6562625006925ddda2b5cc14feeaef587303642d894494ddea6472cd2a diff --git a/dev-python/pypy3-exe/files/pypy3-7.3.2-ppc64-segfault.patch b/dev-python/pypy3-exe/files/pypy3-7.3.2-ppc64-segfault.patch new file mode 100644 index 000000000000..c143a3765cdf --- /dev/null +++ b/dev-python/pypy3-exe/files/pypy3-7.3.2-ppc64-segfault.patch @@ -0,0 +1,64 @@ +From 913e0dae8ac7ce8219a5f31126fee8a794cc314c Mon Sep 17 00:00:00 2001 +From: Armin Rigo <arigo@tunes.org> +Date: Sat, 26 Sep 2020 09:26:24 +0200 +Subject: [PATCH] oops, fix for test_gc_indexed_box_plus_large_offset + +--- + rpython/jit/backend/ppc/opassembler.py | 16 +++++++++++----- + rpython/jit/backend/ppc/regalloc.py | 4 ++-- + 2 files changed, 13 insertions(+), 7 deletions(-) + +diff --git a/rpython/jit/backend/ppc/opassembler.py b/rpython/jit/backend/ppc/opassembler.py +index b79b18e530..4bbfbba93a 100644 +--- a/rpython/jit/backend/ppc/opassembler.py ++++ b/rpython/jit/backend/ppc/opassembler.py +@@ -755,13 +755,19 @@ class FieldOpAssembler(object): + def _apply_offset(self, index_loc, ofs_loc): + # If offset != 0 then we have to add it here. Note that + # mc.addi() would not be valid with operand r0. +- assert ofs_loc.is_imm() # must be an immediate... +- assert _check_imm_arg(ofs_loc.getint()) # ...that fits 16 bits + assert index_loc.is_core_reg() + assert index_loc is not r.SCRATCH2 +- # (simplified version of _apply_scale()) +- if ofs_loc.value > 0: +- self.mc.addi(r.SCRATCH2.value, index_loc.value, ofs_loc.value) ++ if ofs_loc.is_imm(): ++ # if it is an immediate, it must fit into 16 bits ++ assert _check_imm_arg(ofs_loc.getint()) ++ # (simplified version of _apply_scale()) ++ if ofs_loc.value != 0: ++ self.mc.addi(r.SCRATCH2.value, index_loc.value, ofs_loc.value) ++ index_loc = r.SCRATCH2 ++ else: ++ # larger immediates are loaded into a register in regalloc.py ++ assert ofs_loc.is_core_reg() ++ self.mc.add(r.SCRATCH2.value, index_loc.value, ofs_loc.value) + index_loc = r.SCRATCH2 + return index_loc + +diff --git a/rpython/jit/backend/ppc/regalloc.py b/rpython/jit/backend/ppc/regalloc.py +index f3ee1129e4..827953cf12 100644 +--- a/rpython/jit/backend/ppc/regalloc.py ++++ b/rpython/jit/backend/ppc/regalloc.py +@@ -771,7 +771,7 @@ class Regalloc(BaseRegalloc, VectorRegalloc): + value_loc = self.ensure_reg(op.getarg(2)) + assert op.getarg(3).getint() == 1 # scale + ofs_loc = self.ensure_reg_or_16bit_imm(op.getarg(4)) +- assert ofs_loc.is_imm() # the arg(4) should always be a small constant ++ # the arg(4) is often a small constant, but it may be too large + size_loc = self.ensure_reg_or_any_imm(op.getarg(5)) + return [base_loc, index_loc, value_loc, ofs_loc, size_loc] + +@@ -780,7 +780,7 @@ class Regalloc(BaseRegalloc, VectorRegalloc): + index_loc = self.ensure_reg(op.getarg(1)) + assert op.getarg(2).getint() == 1 # scale + ofs_loc = self.ensure_reg_or_16bit_imm(op.getarg(3)) +- assert ofs_loc.is_imm() # the arg(3) should always be a small constant ++ # the arg(3) is often a small constant, but it may be too large + self.free_op_vars() + res_loc = self.force_allocate_reg(op) + size_box = op.getarg(4) +-- +GitLab + diff --git a/dev-python/pypy3-exe/files/pypy3-7.3.2-sethostname-bytes.patch b/dev-python/pypy3-exe/files/pypy3-7.3.2-sethostname-bytes.patch new file mode 100644 index 000000000000..68025600b1f5 --- /dev/null +++ b/dev-python/pypy3-exe/files/pypy3-7.3.2-sethostname-bytes.patch @@ -0,0 +1,61 @@ +From 5ee2925459372a8af805e952f433acd75e426325 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Micha=C5=82=20G=C3=B3rny?= <mgorny@gentoo.org> +Date: Sun, 4 Oct 2020 15:46:23 +0200 +Subject: [PATCH] Fix sethostname() failure when passed bytes + +My implementation of sethostname() was broken and failed when passed +bytes on Python 3. Update the implementation to match CPython -- that +is, use bytes if provided, or fsencode() when str is provided. + +--HG-- +branch : py3.6 +--- + pypy/module/_socket/interp_func.py | 8 +++++++- + pypy/module/_socket/test/test_sock_app.py | 12 ++++++++++++ + 2 files changed, 19 insertions(+), 1 deletion(-) + +diff --git a/pypy/module/_socket/interp_func.py b/pypy/module/_socket/interp_func.py +index bdc4f1293f..1727e51d51 100644 +--- a/pypy/module/_socket/interp_func.py ++++ b/pypy/module/_socket/interp_func.py +@@ -392,7 +392,13 @@ if hasattr(rsocket, 'sethostname'): + + Set the host name. + """ +- hostname = space.text_w(w_hostname) ++ if space.isinstance_w(w_hostname, space.w_bytes): ++ hostname = space.bytes_w(w_hostname) ++ elif space.isinstance_w(w_hostname, space.w_unicode): ++ hostname = space.fsencode_w(w_hostname) ++ else: ++ raise oefmt(space.w_TypeError, ++ "sethostname() argument 1 must be str or bytes") + try: + res = rsocket.sethostname(hostname) + except SocketError as e: +diff --git a/pypy/module/_socket/test/test_sock_app.py b/pypy/module/_socket/test/test_sock_app.py +index fe3efec8e3..355fb8a2a9 100644 +--- a/pypy/module/_socket/test/test_sock_app.py ++++ b/pypy/module/_socket/test/test_sock_app.py +@@ -210,6 +210,18 @@ def test_getaddrinfo(space, w_socket): + assert space.unwrap(w_l) == True + + ++def test_sethostname(space, w_socket): ++ space.raises_w(space.w_OSError, space.appexec, ++ [w_socket], ++ "(_socket): _socket.sethostname(_socket.gethostname())") ++ ++ ++def test_sethostname_bytes(space, w_socket): ++ space.raises_w(space.w_OSError, space.appexec, ++ [w_socket], ++ "(_socket): _socket.sethostname(_socket.gethostname().encode())") ++ ++ + def test_unknown_addr_as_object(space, ): + from pypy.module._socket.interp_socket import addr_as_object + c_addr = lltype.malloc(rsocket._c.sockaddr, flavor='raw', track_allocation=False) +-- +GitLab + diff --git a/dev-python/pypy3-exe/pypy3-exe-7.3.2-r1.ebuild b/dev-python/pypy3-exe/pypy3-exe-7.3.2-r1.ebuild new file mode 100644 index 000000000000..26077ca69aaa --- /dev/null +++ b/dev-python/pypy3-exe/pypy3-exe-7.3.2-r1.ebuild @@ -0,0 +1,161 @@ +# Copyright 1999-2020 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 ) +inherit check-reqs pax-utils python-any-r1 toolchain-funcs + +MY_P=pypy3.6-v${PV/_/} +DESCRIPTION="PyPy3 executable (build from source)" +HOMEPAGE="https://pypy.org/" +SRC_URI="https://buildbot.pypy.org/pypy/${MY_P}-src.tar.bz2" +S="${WORKDIR}/${MY_P}-src" + +LICENSE="MIT" +SLOT="${PV}" +KEYWORDS="~amd64 ~arm64 ~ppc64 ~x86 ~amd64-linux ~x86-linux" +IUSE="bzip2 +jit low-memory ncurses cpu_flags_x86_sse2" + +RDEPEND=">=sys-libs/zlib-1.1.3:0= + dev-libs/libffi:0= + virtual/libintl:0= + dev-libs/expat:0= + bzip2? ( app-arch/bzip2:0= ) + ncurses? ( sys-libs/ncurses:0= ) + !dev-python/pypy3-exe-bin:${PV}" +DEPEND="${RDEPEND}" +BDEPEND=" + low-memory? ( dev-python/pypy ) + !low-memory? ( + || ( + dev-python/pypy + dev-lang/python:2.7 + ) + )" + +PATCHES=( + "${FILESDIR}"/pypy3-7.3.2-sethostname-bytes.patch + "${FILESDIR}"/pypy3-7.3.2-ppc64-segfault.patch +) + +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 && EPYTHON= + if [[ ! ${EPYTHON} || ${EPYTHON} == pypy ]] && + { has_version -b dev-python/pypy || + has_version -b dev-python/pypy-bin; } + then + einfo "Using PyPy to perform the translation." + 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 "dev-python/pypy and ensure that EPYTHON variable is unset." + python-any-r1_pkg_setup + fi + fi +} + +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=( + --no-shared + $(usex jit -Ojit -O2) + + ${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=( "${EPYTHON}" ) + if use low-memory; then + interp=( env PYPY_GC_MAX_DELTA=200MB + "${EPYTHON}" --jit loop_longevity=300 ) + fi + + if [[ ${EPYTHON} != pypy ]]; then + # reuse bundled pycparser to avoid external dep + mkdir -p "${T}"/pymod/cffi || die + : > "${T}"/pymod/cffi/__init__.py || die + cp -r lib_pypy/cffi/_pycparser "${T}"/pymod/cffi/ || die + local -x PYTHONPATH=${T}/pymod:${PYTHONPATH} + fi + + # translate into the C sources + # we're going to build 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 +} + +src_install() { + local dest=/usr/lib/pypy3.6 + exeinto "${dest}" + newexe "${T}"/usession*-0/testing_1/pypy3-c pypy3-c-${PV} + insinto "${dest}"/include/${PV} + doins include/pypy_* + pax-mark m "${ED}${dest}/pypy3-c-${PV}" +} diff --git a/dev-python/pypy3-exe/pypy3-exe-7.3.2_p37-r1.ebuild b/dev-python/pypy3-exe/pypy3-exe-7.3.2_p37-r1.ebuild new file mode 100644 index 000000000000..4fe37f8704e9 --- /dev/null +++ b/dev-python/pypy3-exe/pypy3-exe-7.3.2_p37-r1.ebuild @@ -0,0 +1,162 @@ +# Copyright 1999-2020 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 ) +inherit check-reqs pax-utils python-any-r1 toolchain-funcs + +PYPY_PV=${PV%_p37} +MY_P=pypy3.7-v${PYPY_PV/_/} +DESCRIPTION="PyPy3 executable (build from source)" +HOMEPAGE="https://pypy.org/" +SRC_URI="https://buildbot.pypy.org/pypy/${MY_P}-src.tar.bz2" +S="${WORKDIR}/${MY_P}-src" + +LICENSE="MIT" +SLOT="${PV}" +KEYWORDS="~amd64 ~arm64 ~ppc64 ~x86 ~amd64-linux ~x86-linux" +IUSE="bzip2 +jit low-memory ncurses cpu_flags_x86_sse2" + +RDEPEND=">=sys-libs/zlib-1.1.3:0= + dev-libs/libffi:0= + virtual/libintl:0= + dev-libs/expat:0= + bzip2? ( app-arch/bzip2:0= ) + ncurses? ( sys-libs/ncurses:0= ) + !dev-python/pypy3-exe-bin:${PV}" +DEPEND="${RDEPEND}" +BDEPEND=" + low-memory? ( dev-python/pypy ) + !low-memory? ( + || ( + dev-python/pypy + dev-lang/python:2.7 + ) + )" + +PATCHES=( + "${FILESDIR}"/pypy3-7.3.2-sethostname-bytes.patch + "${FILESDIR}"/pypy3-7.3.2-ppc64-segfault.patch +) + +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 && EPYTHON= + if [[ ! ${EPYTHON} || ${EPYTHON} == pypy ]] && + { has_version -b dev-python/pypy || + has_version -b dev-python/pypy-bin; } + then + einfo "Using PyPy to perform the translation." + 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 "dev-python/pypy and ensure that EPYTHON variable is unset." + python-any-r1_pkg_setup + fi + fi +} + +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=( + --no-shared + $(usex jit -Ojit -O2) + + ${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=( "${EPYTHON}" ) + if use low-memory; then + interp=( env PYPY_GC_MAX_DELTA=200MB + "${EPYTHON}" --jit loop_longevity=300 ) + fi + + if [[ ${EPYTHON} != pypy ]]; then + # reuse bundled pycparser to avoid external dep + mkdir -p "${T}"/pymod/cffi || die + : > "${T}"/pymod/cffi/__init__.py || die + cp -r lib_pypy/cffi/_pycparser "${T}"/pymod/cffi/ || die + local -x PYTHONPATH=${T}/pymod:${PYTHONPATH} + fi + + # translate into the C sources + # we're going to build 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 +} + +src_install() { + local dest=/usr/lib/pypy3.7 + exeinto "${dest}" + newexe "${T}"/usession*-0/testing_1/pypy3-c pypy3-c-${PYPY_PV} + insinto "${dest}"/include/${PYPY_PV} + doins include/pypy_* + pax-mark m "${ED}${dest}/pypy3-c-${PYPY_PV}" +} diff --git a/dev-python/pypy3-exe/pypy3-exe-7.3.2.ebuild b/dev-python/pypy3-exe/pypy3-exe-7.3.3.ebuild index a8648c1e6ea9..a8648c1e6ea9 100644 --- a/dev-python/pypy3-exe/pypy3-exe-7.3.2.ebuild +++ b/dev-python/pypy3-exe/pypy3-exe-7.3.3.ebuild diff --git a/dev-python/pypy3-exe/pypy3-exe-7.3.2_p37.ebuild b/dev-python/pypy3-exe/pypy3-exe-7.3.3_p37.ebuild index 5992fb3e87ef..5992fb3e87ef 100644 --- a/dev-python/pypy3-exe/pypy3-exe-7.3.2_p37.ebuild +++ b/dev-python/pypy3-exe/pypy3-exe-7.3.3_p37.ebuild diff --git a/dev-python/pypy3-exe/pypy3-exe-7.3.3_rc1.ebuild b/dev-python/pypy3-exe/pypy3-exe-7.3.3_rc1.ebuild new file mode 100644 index 000000000000..8a08b429432f --- /dev/null +++ b/dev-python/pypy3-exe/pypy3-exe-7.3.3_rc1.ebuild @@ -0,0 +1,156 @@ +# Copyright 1999-2020 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 ) +inherit check-reqs pax-utils python-any-r1 toolchain-funcs + +MY_P=pypy3.6-v${PV/_/} +DESCRIPTION="PyPy3 executable (build from source)" +HOMEPAGE="https://pypy.org/" +SRC_URI="https://buildbot.pypy.org/pypy/${MY_P}-src.tar.bz2" +S="${WORKDIR}/${MY_P}-src" + +LICENSE="MIT" +SLOT="${PV}" +KEYWORDS="" +IUSE="bzip2 +jit low-memory ncurses cpu_flags_x86_sse2" + +RDEPEND=">=sys-libs/zlib-1.1.3:0= + dev-libs/libffi:0= + virtual/libintl:0= + dev-libs/expat:0= + bzip2? ( app-arch/bzip2:0= ) + ncurses? ( sys-libs/ncurses:0= ) + !dev-python/pypy3-exe-bin:${PV}" +DEPEND="${RDEPEND}" +BDEPEND=" + low-memory? ( dev-python/pypy ) + !low-memory? ( + || ( + dev-python/pypy + dev-lang/python:2.7 + ) + )" + +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 && EPYTHON= + if [[ ! ${EPYTHON} || ${EPYTHON} == pypy ]] && + { has_version -b dev-python/pypy || + has_version -b dev-python/pypy-bin; } + then + einfo "Using PyPy to perform the translation." + 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 "dev-python/pypy and ensure that EPYTHON variable is unset." + python-any-r1_pkg_setup + fi + fi +} + +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=( + --no-shared + $(usex jit -Ojit -O2) + + ${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=( "${EPYTHON}" ) + if use low-memory; then + interp=( env PYPY_GC_MAX_DELTA=200MB + "${EPYTHON}" --jit loop_longevity=300 ) + fi + + if [[ ${EPYTHON} != pypy ]]; then + # reuse bundled pycparser to avoid external dep + mkdir -p "${T}"/pymod/cffi || die + : > "${T}"/pymod/cffi/__init__.py || die + cp -r lib_pypy/cffi/_pycparser "${T}"/pymod/cffi/ || die + local -x PYTHONPATH=${T}/pymod:${PYTHONPATH} + fi + + # translate into the C sources + # we're going to build 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 +} + +src_install() { + local dest=/usr/lib/pypy3.6 + exeinto "${dest}" + newexe "${T}"/usession*-0/testing_1/pypy3-c pypy3-c-${PV} + insinto "${dest}"/include/${PV} + doins include/pypy_* + pax-mark m "${ED}${dest}/pypy3-c-${PV}" +} diff --git a/dev-python/pypy3-exe/pypy3-exe-7.3.3_rc1_p37.ebuild b/dev-python/pypy3-exe/pypy3-exe-7.3.3_rc1_p37.ebuild new file mode 100644 index 000000000000..ab01a0805456 --- /dev/null +++ b/dev-python/pypy3-exe/pypy3-exe-7.3.3_rc1_p37.ebuild @@ -0,0 +1,157 @@ +# Copyright 1999-2020 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 ) +inherit check-reqs pax-utils python-any-r1 toolchain-funcs + +PYPY_PV=${PV%_p37} +MY_P=pypy3.7-v${PYPY_PV/_/} +DESCRIPTION="PyPy3 executable (build from source)" +HOMEPAGE="https://pypy.org/" +SRC_URI="https://buildbot.pypy.org/pypy/${MY_P}-src.tar.bz2" +S="${WORKDIR}/${MY_P}-src" + +LICENSE="MIT" +SLOT="${PV}" +KEYWORDS="" +IUSE="bzip2 +jit low-memory ncurses cpu_flags_x86_sse2" + +RDEPEND=">=sys-libs/zlib-1.1.3:0= + dev-libs/libffi:0= + virtual/libintl:0= + dev-libs/expat:0= + bzip2? ( app-arch/bzip2:0= ) + ncurses? ( sys-libs/ncurses:0= ) + !dev-python/pypy3-exe-bin:${PV}" +DEPEND="${RDEPEND}" +BDEPEND=" + low-memory? ( dev-python/pypy ) + !low-memory? ( + || ( + dev-python/pypy + dev-lang/python:2.7 + ) + )" + +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 && EPYTHON= + if [[ ! ${EPYTHON} || ${EPYTHON} == pypy ]] && + { has_version -b dev-python/pypy || + has_version -b dev-python/pypy-bin; } + then + einfo "Using PyPy to perform the translation." + 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 "dev-python/pypy and ensure that EPYTHON variable is unset." + python-any-r1_pkg_setup + fi + fi +} + +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=( + --no-shared + $(usex jit -Ojit -O2) + + ${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=( "${EPYTHON}" ) + if use low-memory; then + interp=( env PYPY_GC_MAX_DELTA=200MB + "${EPYTHON}" --jit loop_longevity=300 ) + fi + + if [[ ${EPYTHON} != pypy ]]; then + # reuse bundled pycparser to avoid external dep + mkdir -p "${T}"/pymod/cffi || die + : > "${T}"/pymod/cffi/__init__.py || die + cp -r lib_pypy/cffi/_pycparser "${T}"/pymod/cffi/ || die + local -x PYTHONPATH=${T}/pymod:${PYTHONPATH} + fi + + # translate into the C sources + # we're going to build 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 +} + +src_install() { + local dest=/usr/lib/pypy3.7 + exeinto "${dest}" + newexe "${T}"/usession*-0/testing_1/pypy3-c pypy3-c-${PYPY_PV} + insinto "${dest}"/include/${PYPY_PV} + doins include/pypy_* + pax-mark m "${ED}${dest}/pypy3-c-${PYPY_PV}" +} |