summaryrefslogtreecommitdiff
path: root/dev-python
diff options
context:
space:
mode:
authorV3n3RiX <venerix@koprulu.sector>2023-05-14 22:02:07 +0100
committerV3n3RiX <venerix@koprulu.sector>2023-05-14 22:02:07 +0100
commit78db24b58a7f75bf18548cbf5c3b210f2f33f2f4 (patch)
tree53f180d30387a94fd028e0c5a10635621ebeb98f /dev-python
parent153fd195574cc30040446316bb666af0e58d985f (diff)
gentoo auto-resync : 14:05:2023 - 22:02:07
Diffstat (limited to 'dev-python')
-rw-r--r--dev-python/Manifest.gzbin259504 -> 258869 bytes
-rw-r--r--dev-python/Pyro4/Manifest3
-rw-r--r--dev-python/Pyro4/Pyro4-4.82-r1.ebuild60
-rw-r--r--dev-python/Pyro4/metadata.xml13
-rw-r--r--dev-python/django-tagging/Manifest3
-rw-r--r--dev-python/django-tagging/django-tagging-0.5.0-r1.ebuild35
-rw-r--r--dev-python/django-tagging/metadata.xml13
-rw-r--r--dev-python/misaka/Manifest3
-rw-r--r--dev-python/misaka/metadata.xml16
-rw-r--r--dev-python/misaka/misaka-2.1.1-r1.ebuild21
-rw-r--r--dev-python/picklemagic/Manifest3
-rw-r--r--dev-python/picklemagic/metadata.xml21
-rw-r--r--dev-python/picklemagic/picklemagic-0.0_pre20160415.ebuild30
-rw-r--r--dev-python/pypy-exe-bin/Manifest9
-rw-r--r--dev-python/pypy-exe-bin/pypy-exe-bin-7.3.12_rc1.ebuild79
-rw-r--r--dev-python/pypy-exe/Manifest3
-rw-r--r--dev-python/pypy-exe/pypy-exe-7.3.12_rc1.ebuild177
-rw-r--r--dev-python/pypy/Manifest3
-rw-r--r--dev-python/pypy/pypy-7.3.12_rc1.ebuild301
-rw-r--r--dev-python/pypy3-exe-bin/Manifest9
-rw-r--r--dev-python/pypy3-exe-bin/pypy3-exe-bin-7.3.12_rc1.ebuild82
-rw-r--r--dev-python/pypy3-exe/Manifest3
-rw-r--r--dev-python/pypy3-exe/pypy3-exe-7.3.12_rc1.ebuild127
-rw-r--r--dev-python/pypy3/Manifest3
-rw-r--r--dev-python/pypy3/pypy3-7.3.12_rc1.ebuild208
25 files changed, 1004 insertions, 221 deletions
diff --git a/dev-python/Manifest.gz b/dev-python/Manifest.gz
index 37e61a8f3694..5972d93bb01c 100644
--- a/dev-python/Manifest.gz
+++ b/dev-python/Manifest.gz
Binary files differ
diff --git a/dev-python/Pyro4/Manifest b/dev-python/Pyro4/Manifest
deleted file mode 100644
index 26335ecbc308..000000000000
--- a/dev-python/Pyro4/Manifest
+++ /dev/null
@@ -1,3 +0,0 @@
-DIST Pyro4-4.82.tar.gz 516110 BLAKE2B ecd7b5cf1469896acfec1db92d99784aa316db5cadbb7fc595a5f9916ac705619d070771549fb8ba7379a7395e4449eabcfc84aa131d4b23b587b7467f4bf196 SHA512 f5916ce37ec52d8cd23bece79325480140621ac8412febb4877a32b1ce54502ef17d20bf591dc30eb20e9619741548b30a78165937d5e69e8d1911d95a23b1e1
-EBUILD Pyro4-4.82-r1.ebuild 1547 BLAKE2B 5b8088c06906796cd35b4459036646aad845dc5f586adbf111c8de943a7c4a438c79eb9c0790820919a783769e020fec1501fbe1b75e8eb0ce6d99db2b365e72 SHA512 ddca35dcc55d5a391e6bf033344610af5d29418a6f201074be1479d6f4d3603c153b13d4391c2d004c70af10370dd0ec80e5a41c8392d8b97733ba5089e062ef
-MISC metadata.xml 384 BLAKE2B e0dcf58b7db6287f6912e1ce549f52fb269eeac53def37ff75b8c30957c02eaef506a44bc15c3fdfdf01c2607e803b8706cc3be6b50585383f30edcd8c3cebf6 SHA512 9f4ed623a9e07d84fd61b3eccf65d80c883265b3de24d79b888c5d880498325dd268e4e5390f60ed67b19101e072276b1d7eb80724bf7a0cd6713fc20d374e33
diff --git a/dev-python/Pyro4/Pyro4-4.82-r1.ebuild b/dev-python/Pyro4/Pyro4-4.82-r1.ebuild
deleted file mode 100644
index 6f082109842a..000000000000
--- a/dev-python/Pyro4/Pyro4-4.82-r1.ebuild
+++ /dev/null
@@ -1,60 +0,0 @@
-# Copyright 1999-2023 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-DISTUTILS_USE_PEP517=setuptools
-PYPI_NO_NORMALIZE=1
-PYTHON_COMPAT=( python3_{9..10} )
-
-inherit distutils-r1 pypi
-
-DESCRIPTION="Distributed object middleware for Python (RPC)"
-HOMEPAGE="
- https://github.com/irmen/Pyro4/
- https://pypi.org/project/Pyro4/
-"
-
-LICENSE="MIT"
-SLOT="0"
-KEYWORDS="amd64 ~arm64 ppc x86"
-IUSE="doc examples"
-
-RDEPEND="
- >=dev-python/serpent-1.27[${PYTHON_USEDEP}]
-"
-DEPEND="
- test? (
- >=dev-python/cloudpickle-1.2.1[${PYTHON_USEDEP}]
- >=dev-python/dill-0.2.6[${PYTHON_USEDEP}]
- >=dev-python/msgpack-0.5.2[${PYTHON_USEDEP}]
- )
-"
-
-distutils_enable_tests pytest
-
-python_test() {
- local EPYTEST_DESELECT=(
- # network
- tests/PyroTests/test_naming.py
- tests/PyroTests/test_naming2.py::OfflineNameServerTests::testStartNSfunc
- tests/PyroTests/test_naming2.py::OfflineNameServerTestsDbmStorage::testStartNSfunc
- tests/PyroTests/test_naming2.py::OfflineNameServerTestsSqlStorage::testStartNSfunc
- tests/PyroTests/test_serialize.py::SerializeTests_dill::testSerCoreOffline
- tests/PyroTests/test_serialize.py::SerializeTests_dill::testSerializeDumpsAndDumpsCall
- tests/PyroTests/test_socket.py::TestSocketutil::testBroadcast
- tests/PyroTests/test_socket.py::TestSocketutil::testGetIP
- )
-
- cd tests/PyroTests || die
- epytest
-}
-
-python_install_all() {
- use doc && HTML_DOCS=( docs/. )
- if use examples; then
- dodoc -r examples
- docompress -x /usr/share/doc/${PF}/examples
- fi
- distutils-r1_python_install_all
-}
diff --git a/dev-python/Pyro4/metadata.xml b/dev-python/Pyro4/metadata.xml
deleted file mode 100644
index 30fa539c40df..000000000000
--- a/dev-python/Pyro4/metadata.xml
+++ /dev/null
@@ -1,13 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
-<pkgmetadata>
- <maintainer type="project">
- <email>python@gentoo.org</email>
- <name>Python</name>
- </maintainer>
- <stabilize-allarches/>
- <upstream>
- <remote-id type="github">irmen/Pyro4</remote-id>
- <remote-id type="pypi">Pyro4</remote-id>
- </upstream>
-</pkgmetadata>
diff --git a/dev-python/django-tagging/Manifest b/dev-python/django-tagging/Manifest
deleted file mode 100644
index 92c73836a51e..000000000000
--- a/dev-python/django-tagging/Manifest
+++ /dev/null
@@ -1,3 +0,0 @@
-DIST django-tagging-0.5.0.tar.gz 42827 BLAKE2B 0889af1ca2943c3bd8e4ffe3aecf8ceec85d2546daf9cccba06bbf9d34943ac7de41240ee79ab77797c6af490dc8dc2d3d9c7249b1c83d71488116e3fb78c0d3 SHA512 7a740c24cb9674f3e9c7f98aeb46f99537ba7afc79bbfd810004b921786e1246fe2ea1f219a2a6c414189497e7b9409bc4f7170714c6c03bb163ccede77c3266
-EBUILD django-tagging-0.5.0-r1.ebuild 838 BLAKE2B 683798d39a8820639f6127ae89857f33a1120c808f8d1fd7ac5bbfa1fd58f081196033f6df169e39bfcf051289f4de8904a03b91246a15cb25849cca4f6cc2aa SHA512 a05ab32f5af07775f574056191571d11dece09603817087f6fe307136f501e9a2a2611368ab85009a85bfef26fba8eef746d3a05fa177495e5615e64244f2120
-MISC metadata.xml 420 BLAKE2B a94e07f5ca4b53fd55ef1efe42f1717f320e362fac35bae2934136953ef889cc8bb93eac97f0a4ef0e161d7dfdee4dd734f925f03de6b8f5806b89430d6eb3a8 SHA512 622a20fa728f8c946c5dfa0501d472a78b52660e23f89dc3d32384450e823777676d4918f45a744dd7647ff6e07941b5800f730813ab91fc87aefb2d7471a971
diff --git a/dev-python/django-tagging/django-tagging-0.5.0-r1.ebuild b/dev-python/django-tagging/django-tagging-0.5.0-r1.ebuild
deleted file mode 100644
index 395cf2286647..000000000000
--- a/dev-python/django-tagging/django-tagging-0.5.0-r1.ebuild
+++ /dev/null
@@ -1,35 +0,0 @@
-# Copyright 1999-2023 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-PYPI_NO_NORMALIZE=1
-PYTHON_COMPAT=( python3_{9..10} )
-
-inherit distutils-r1 pypi
-
-DESCRIPTION="Generic tagging application for Django"
-HOMEPAGE="https://pypi.org/project/django-tagging/
- https://github.com/Fantomas42/django-tagging"
-
-LICENSE="BSD"
-SLOT="0"
-KEYWORDS="~amd64 ~x86"
-IUSE="test"
-RESTRICT="!test? ( test )"
-
-# wants smart_text which was removed from django-4.0 and up
-RDEPEND=">=dev-python/django-1.0[${PYTHON_USEDEP}]
- <dev-python/django-4[${PYTHON_USEDEP}]"
-BDEPEND="
- test? (
- $(python_gen_impl_dep sqlite)
- )"
-
-distutils_enable_sphinx docs
-
-python_test() {
- local -x DJANGO_SETTINGS_MODULE=tagging.tests.settings
- local -x PYTHONPATH=.
- django-admin test -v 2 tagging || die "Tests failed with ${EPYTHON}"
-}
diff --git a/dev-python/django-tagging/metadata.xml b/dev-python/django-tagging/metadata.xml
deleted file mode 100644
index cd6a4e03d379..000000000000
--- a/dev-python/django-tagging/metadata.xml
+++ /dev/null
@@ -1,13 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
-<pkgmetadata>
- <maintainer type="project">
- <email>python@gentoo.org</email>
- <name>Python</name>
- </maintainer>
- <stabilize-allarches/>
- <upstream>
- <remote-id type="pypi">django-tagging</remote-id>
- <remote-id type="github">Fantomas42/django-tagging</remote-id>
- </upstream>
-</pkgmetadata>
diff --git a/dev-python/misaka/Manifest b/dev-python/misaka/Manifest
deleted file mode 100644
index 20b4a7ac47fd..000000000000
--- a/dev-python/misaka/Manifest
+++ /dev/null
@@ -1,3 +0,0 @@
-DIST misaka-2.1.1.tar.gz 112700 BLAKE2B 0d50cfbfa127a51bc6da2abc3a91c8ce4706b6a1dbbfc4af14f85d47262ab1cca4bdca0ba7056e668570b20bed1f1a150124a2d5da45ff8866cb7007b2b9bca3 SHA512 4b9288d56ddd57e07985043acbb5a2dfec9b7c0bf385b689b17f2b062f5d7aa961e0dab8e237173e714b13aa5eabafc646833d5a78cf728035444d6fbd365bee
-EBUILD misaka-2.1.1-r1.ebuild 567 BLAKE2B 5106c741bdb3f030458c336621a8080bba9eede8385acdb31c5ce30a094f55c7d29757a172e04ae01eae93dee590945651f2604c8789d39e7e38fa72ed2dea2f SHA512 887d3236094d0749143adf7e12f2e6929a1356b0450d53aa2cd6990ba8d1d938616ae8c30951db5ef8b054d8e9edc30fed5de027b1ade99655491be9f67a5288
-MISC metadata.xml 499 BLAKE2B 88b448e6397db40d76c2f5237866846f7461e6722c5a468f8318db789a48df77567e03461927271af3c6e68dd7791d657af88d3d03c5596a0c9b21c65fa25f8f SHA512 99761aa316e3df24fd63cc51af21898499ae405f0ddfe54e391d114ca02dbd0ee1e3f365c958f70c33293cdfd7516f60e91ccf10486978c28ca0bf9d331840ba
diff --git a/dev-python/misaka/metadata.xml b/dev-python/misaka/metadata.xml
deleted file mode 100644
index 39e55214de28..000000000000
--- a/dev-python/misaka/metadata.xml
+++ /dev/null
@@ -1,16 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
-<pkgmetadata>
- <maintainer type="project">
- <email>openstack@gentoo.org</email>
- <name>Openstack</name>
- </maintainer>
- <maintainer type="person">
- <email>prometheanfire@gentoo.org</email>
- <name>Matthew Thode</name>
- </maintainer>
- <upstream>
- <remote-id type="github">FSX/misaka</remote-id>
- <remote-id type="pypi">misaka</remote-id>
- </upstream>
-</pkgmetadata>
diff --git a/dev-python/misaka/misaka-2.1.1-r1.ebuild b/dev-python/misaka/misaka-2.1.1-r1.ebuild
deleted file mode 100644
index 7a8f6b03444a..000000000000
--- a/dev-python/misaka/misaka-2.1.1-r1.ebuild
+++ /dev/null
@@ -1,21 +0,0 @@
-# Copyright 1999-2023 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-PYTHON_COMPAT=( python3_{9..11} )
-
-inherit distutils-r1
-
-DESCRIPTION="A CFFI binding for Hoedown, a markdown parsing library"
-HOMEPAGE="http://misaka.61924.nl/ https://github.com/FSX/misaka"
-SRC_URI="https://github.com/FSX/misaka/archive/v${PV}.tar.gz -> ${P}.tar.gz"
-
-KEYWORDS="~amd64 ~x86"
-IUSE=""
-LICENSE="MIT"
-SLOT="0"
-
-RDEPEND="dev-python/cffi[${PYTHON_USEDEP}]"
-
-# FIXME: tests requires write access outside sandbox
-#distutils_enable_tests setup.py
diff --git a/dev-python/picklemagic/Manifest b/dev-python/picklemagic/Manifest
deleted file mode 100644
index e4db1d82c71d..000000000000
--- a/dev-python/picklemagic/Manifest
+++ /dev/null
@@ -1,3 +0,0 @@
-DIST picklemagic-0.0_pre20160415.tar.xz 23364 BLAKE2B 07104393d41c68fabb26d642b6a78b5b5506322edc1322f6a0957c485c2681aafb388488b4d65d920102fb56839ebdeb82cbde909dae3d982311a3d776ca8aca SHA512 0b0866895df5f5f49462d75ad6a435f93796c60eae2442350ea0768872cc1938406b68f5ecb54e1583c245c6ac6d4feada32469184e24186adf78d002adfcd76
-EBUILD picklemagic-0.0_pre20160415.ebuild 667 BLAKE2B 4ebf7c01ee9dd5303a6f4f097872fa20b1b441373a5e58456f1b96d288110601f44611ce228362319fe23ac5276188170f86d57d1dd874b4359d4acc6edee2c3 SHA512 624830cca975da694f501a10ed20c7c7eccde3aa003d3a200a6743581423a9165b4e8180edbe9053c24006f71e62b73a00cd9d0a9eaeed68d3be73f2dd6d02d4
-MISC metadata.xml 1090 BLAKE2B 1f40f412683b97396e9ff6257d33a9f754b3a3e5e03c409c1f3a6a7640d6fd9bf2688ef6e79603023dfbc283a439ac3a5f4e201a36c9692171e0a58ae60fbfae SHA512 474903af747e9b60d4b5440190045c4a0f0fe54bc8436c40c9c4b2186025d246c173ca6bfe80cc966f5e843d469fea852251d142266661490d6a0f6b8dd84a1c
diff --git a/dev-python/picklemagic/metadata.xml b/dev-python/picklemagic/metadata.xml
deleted file mode 100644
index fd5c1e286b51..000000000000
--- a/dev-python/picklemagic/metadata.xml
+++ /dev/null
@@ -1,21 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
-<pkgmetadata>
- <maintainer type="person">
- <email>bircoph@gentoo.org</email>
- <name>Andrew Savchenko</name>
- </maintainer>
- <longdescription>
- A set of modules for analyzing and playing with the mechanics of python pickles.
- Features:
- * Forgiving: Extracts as much data as possible from the pickle, even if class definitions are unavailable.
- * Safe: You can safely unpickle data structures from unknown sources
- * Easy to use: Tools are provided which make it possible to code around the unpickled datastructures as if they were created from the actual class definitions.
- * Customizeable: Most functionality is easily subclassable to suit your needs.
- * Create pickles as if you were writing python: Via a few constructs it's possible to create custom pickles with the ease of writing normal python.
- * Works in both python 2 and 3
- </longdescription>
- <upstream>
- <remote-id type="github">CensoredUsername/picklemagic</remote-id>
- </upstream>
-</pkgmetadata>
diff --git a/dev-python/picklemagic/picklemagic-0.0_pre20160415.ebuild b/dev-python/picklemagic/picklemagic-0.0_pre20160415.ebuild
deleted file mode 100644
index 62aedd757fa9..000000000000
--- a/dev-python/picklemagic/picklemagic-0.0_pre20160415.ebuild
+++ /dev/null
@@ -1,30 +0,0 @@
-# Copyright 1999-2023 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-PYTHON_COMPAT=( python3_{9..10} )
-inherit python-r1
-
-DESCRIPTION="A library for analysing python pickles safely"
-HOMEPAGE="https://github.com/CensoredUsername/picklemagic"
-SRC_URI="https://dev.gentoo.org/~bircoph/distfiles/${P}.tar.xz"
-
-LICENSE="WTFPL-2"
-SLOT="0"
-KEYWORDS="~amd64 ~x86"
-IUSE="doc"
-REQUIRED_USE="${PYTHON_REQUIRED_USE}"
-
-BDEPEND="doc? ( dev-python/sphinx )"
-RDEPEND="${PYTHON_DEPS}"
-
-src_compile() {
- use doc && emake -C doc html
-}
-
-src_install() {
- default
- python_foreach_impl python_domodule *.py
- use doc && dodoc -r doc/build/html
-}
diff --git a/dev-python/pypy-exe-bin/Manifest b/dev-python/pypy-exe-bin/Manifest
index 3b4c37d28bfc..f242625860a6 100644
--- a/dev-python/pypy-exe-bin/Manifest
+++ b/dev-python/pypy-exe-bin/Manifest
@@ -6,5 +6,14 @@ DIST pypy-exe-7.3.11-1.ppc64le-musl.gpkg.tar 6656000 BLAKE2B 6934c8cf6b0c6ae8f25
DIST pypy-exe-7.3.11-1.ppc64le.gpkg.tar 11110400 BLAKE2B 5c37eec6ee5f38821c9f2a53df525387a1b29535b0063be40de18b4f14d755f4e0568a694a34b00835d905d7d724baf80d4b27a2fcbcb4b35f9366226a42d1e5 SHA512 4e04c388af7cf4c3a3893345a5c02fbe651004237d8dfac00ab61210f387956bd16aacadad2dd288d7d9111d5863f37349d284d405cdef20c11009037700750e
DIST pypy-exe-7.3.11-1.x86-musl.gpkg.tar 9758720 BLAKE2B 19fa123ca6d25f90a8b330efe1bf8147a29f7a2038f4c23897442ef9f7fd6a5ea7a56c51e1539ec43e5726d333e7037e4f60999d15b87bd4de0fe336b48bcefa SHA512 e761b37c9fa8801b51015329707e1b92cadd3901937ecc5ccc5ce51a564933553e4b4058092f87930a6da080ab2a608bffb1e76376ef711091cce8d3f773cbdd
DIST pypy-exe-7.3.11-1.x86.gpkg.tar 9748480 BLAKE2B 737b88b88c756b084183a30149709d10d868c9a8feb723c6d1ae10fb1cc4b9f5a363e3aba3d2dd2718b5df727e0a6cf4a55efc449b8d2a00ea12bc1a67b9762f SHA512 56518c8142909296e01d716062acc4187d204af958ff197fc3116bfaac47b94abc67f6ba1d8ac0ac74c9a287231af8d35c7511b0f65c9fdf1f93b75294094ccc
+DIST pypy-exe-7.3.12_rc1-1.amd64-musl.gpkg.tar 12963840 BLAKE2B 10916895b4261f67a6342f6f46e1837d55e9ba3d3724233c84214b49b52cb31cf538709844aa907d2ea5f97f53f2bf5e1903dafd0f2640da2f4b6addf69e6272 SHA512 d34b14477742492a8f2418e861dd50d1b62e42bfda68d9cecc5e6b516fa1e96d930e3eb6bde0512fd3fd8fd33b53ad771b43314532081cae685f7ea4075e5b1b
+DIST pypy-exe-7.3.12_rc1-1.amd64.gpkg.tar 12943360 BLAKE2B d6f5432e3af0416007d363dc9de6e28ec12311c3e5e1116d2a6409142a2ffb6831681443889c3bb4c612eb738886827c0cb8e56ca4855963fc6d41d80491ab5d SHA512 83ab4856b03ede6b86b09c73391be13f809a90fecf4d8c6909402a0f3e8217ed85035a11ce485c5ec8ea41d6bf78d820a9c2f0f8cb1300a92d6138eb9716aee0
+DIST pypy-exe-7.3.12_rc1-1.arm64-musl.gpkg.tar 10905600 BLAKE2B 6709a6533239ae948baa26f864e2d0f03a04421b30928b5f60ef82df096c21ae7087ae7b83fe4aba0165008eb5d3c73b8d01f541a754c4e95a4e5f973698b166 SHA512 6b79574ae8799e26382c602e913ad957262bb6d3c838d0ed285601c575632ada6e88f47bbd8a7193480b91b35fc27451ab1f7a7233ab366e2bfdcc0f870d479b
+DIST pypy-exe-7.3.12_rc1-1.arm64.gpkg.tar 10782720 BLAKE2B cb71e7cc1f34f469475f2062bfd4f075620db3c9d807335e38cb3a73cc4d64794211d54c5092e7efa3c3b2e637ab1e63149bdeafc94822c5d863bf53ae69f69e SHA512 ce5c3d199394a74ee09b0d7cfe138478a204ba6e6616961726e1a8816a15def9f9c5a17ac7a8fccac703cef8e57d98fa370c6a6dc8dbfbd70bf3950fb288d671
+DIST pypy-exe-7.3.12_rc1-1.ppc64le-musl.gpkg.tar 6604800 BLAKE2B 91ca6e456c6788d7df19b367905f78f8782586b36c4bed966eaffbbaa9a71f6004d3a20832f2e392983a3114c1b126878dadea1e31107c1eed15a2491b200391 SHA512 9af01dd2598b26c9eeb35c404804b10bb1040aafc17f769d89a274f663ebd0b0145481a23a98ea9ea514dab5aebd5924b2c028923e70745ef3069b4fba3b363f
+DIST pypy-exe-7.3.12_rc1-1.ppc64le.gpkg.tar 11038720 BLAKE2B cfea3f2abf4aee74df082e61d0cb235fde08900806d1dd730671a1364aff25e326ce675a483b3ddb05e3305ce74b8031fbdafcb4c5418da1d6ac236b17b98614 SHA512 a6194c321afffe5788e17b876d4f14de5d0686b61fad740ec2bae9b47d27052861742559d7bb8b530cfdc3a880f7291fc5af5768d49ce2c4a40b486585d0dca6
+DIST pypy-exe-7.3.12_rc1-1.x86-musl.gpkg.tar 9748480 BLAKE2B c68992a784786ad6ee0a81891b209507c67ddb084716ba75f8aa55aee01243f144f252726643aa5f641e49fff93eb31ddb9cbab8e767df50ab05ecf0aa4e7e23 SHA512 7f56e4e199fa6893868af8f1c6616c2ab938c143df2b8647995c593532ab13e96d27bfa9bfa344d3967a70e849ca4e1ff5dfb2d8c447edd5c42b036d4afb2119
+DIST pypy-exe-7.3.12_rc1-1.x86.gpkg.tar 9615360 BLAKE2B 466d9bb61c73c583ffccb79596db273fb3450f95fedc6b2b16309a1ca2a13b5ec4916a8015a74ca9fe9a6c98db14b06f125eb861cbdbc32531aaaaea925ba5fa SHA512 dbaddc9a52a4da886913993eade553bea94eae9ab818ecfd6cb12759edd24397d8fbe1b3d5d60dd6285d9b5a4b46444ab67ef85df6610f5061530f0771d8c88b
EBUILD pypy-exe-bin-7.3.11.ebuild 1947 BLAKE2B ced9c32c68bc0d6991a3c023c5ac6f3952cae5be14c39bbaf498c2efa249715235747526090d59f6a39da4645c83551ebfebabb2a2c7a25343c5acb64d9a1d6e SHA512 3ca0ae4098385dbd208bb3d069b17f9654b2b61b8d85fc822776a91e69341a60492c101310c24fc10a7d0e68b080ce28976d1bc9d5c120dbb40d4af04a7215ae
+EBUILD pypy-exe-bin-7.3.12_rc1.ebuild 1924 BLAKE2B b5e1e5fb1312582986443b509caa8b474f61a08a265df9aeb052600ee849f56cd62b342cb3d2fbf4817494ac81ac4c7a5c57eaf4f699facec47b49081faa7512 SHA512 4b3ae540128ead771e4f858f1f86c0965b7cdb95bebaa03ed713118d51f3b1eb65c92ee8652bb53bc3191d93d2eb4b179a0a80a9b3d6eeffa90b9011c8f637c3
MISC metadata.xml 241 BLAKE2B 4f18c355c71824c25df283b2d463a5abbf2295446e74b960e868dd78d4910ac066725450478087567a6e66b7a8948d99e053f13a7e58dbf2b89fdaf5c2f3436c SHA512 c46e70ffd66754ad84c64806f2bbff25ba9a688f035176a4565afc95351ce10fffba64bbde89965501460b05978c7e59b3d84db6a8cb6efff4055d4b7a5ab5d8
diff --git a/dev-python/pypy-exe-bin/pypy-exe-bin-7.3.12_rc1.ebuild b/dev-python/pypy-exe-bin/pypy-exe-bin-7.3.12_rc1.ebuild
new file mode 100644
index 000000000000..7e8642a993b5
--- /dev/null
+++ b/dev-python/pypy-exe-bin/pypy-exe-bin-7.3.12_rc1.ebuild
@@ -0,0 +1,79 @@
+# Copyright 1999-2023 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit pax-utils unpacker
+
+MY_P=pypy-exe-${PV}-1
+DESCRIPTION="PyPy executable (pre-built version)"
+HOMEPAGE="https://www.pypy.org/"
+SRC_URI="
+ elibc_glibc? (
+ amd64? (
+ https://dev.gentoo.org/~mgorny/binpkg/amd64/pypy/dev-python/pypy-exe/${MY_P}.gpkg.tar
+ -> ${MY_P}.amd64.gpkg.tar
+ )
+ arm64? (
+ https://dev.gentoo.org/~mgorny/binpkg/arm64/pypy/dev-python/pypy-exe/${MY_P}.gpkg.tar
+ -> ${MY_P}.arm64.gpkg.tar
+ )
+ ppc64? (
+ https://dev.gentoo.org/~mgorny/binpkg/ppc64le/pypy/dev-python/pypy-exe/${MY_P}.gpkg.tar
+ -> ${MY_P}.ppc64le.gpkg.tar
+ )
+ x86? (
+ https://dev.gentoo.org/~mgorny/binpkg/x86/pypy/dev-python/pypy-exe/${MY_P}.gpkg.tar
+ -> ${MY_P}.x86.gpkg.tar
+ )
+ )
+ elibc_musl? (
+ amd64? (
+ https://dev.gentoo.org/~mgorny/binpkg/amd64-musl/pypy/dev-python/pypy-exe/${MY_P}.gpkg.tar
+ -> ${MY_P}.amd64-musl.gpkg.tar
+ )
+ arm64? (
+ https://dev.gentoo.org/~mgorny/binpkg/arm64-musl/pypy/dev-python/pypy-exe/${MY_P}.gpkg.tar
+ -> ${MY_P}.arm64-musl.gpkg.tar
+ )
+ ppc64? (
+ https://dev.gentoo.org/~mgorny/binpkg/ppc64le-musl/pypy/dev-python/pypy-exe/${MY_P}.gpkg.tar
+ -> ${MY_P}.ppc64le-musl.gpkg.tar
+ )
+ x86? (
+ https://dev.gentoo.org/~mgorny/binpkg/x86-musl/pypy/dev-python/pypy-exe/${MY_P}.gpkg.tar
+ -> ${MY_P}.x86-musl.gpkg.tar
+ )
+ )
+"
+S="${WORKDIR}"
+
+LICENSE="MIT"
+SLOT="${PV%_p*}"
+KEYWORDS=""
+
+# sys-devel/gcc for libgcc_s.so
+RDEPEND="
+ app-arch/bzip2:0/1
+ dev-libs/expat:0/0
+ dev-libs/libffi:0/8
+ sys-libs/ncurses:0/6
+ >=sys-libs/zlib-1.1.3:0/1
+ virtual/libintl:0/0
+ elibc_glibc? (
+ sys-devel/gcc
+ >=sys-libs/glibc-2.35
+ )
+ !dev-python/pypy-exe:${SLOT}
+"
+
+QA_PREBUILT="
+ usr/lib/pypy2.7/pypy-c-${SLOT}
+"
+
+src_install() {
+ insinto /
+ doins -r */image/usr
+ fperms +x "/usr/lib/pypy2.7/pypy-c-${SLOT}"
+ pax-mark m "${ED}/usr/lib/pypy2.7/pypy-c-${SLOT}"
+}
diff --git a/dev-python/pypy-exe/Manifest b/dev-python/pypy-exe/Manifest
index 958b1f96ae2b..d2149646521b 100644
--- a/dev-python/pypy-exe/Manifest
+++ b/dev-python/pypy-exe/Manifest
@@ -1,4 +1,7 @@
DIST pypy2.7-gentoo-patches-7.3.11.tar.xz 5312 BLAKE2B 3692453a184a88d61fe1dd7aa815aa02a4bdf4b29defd2e98a354261784643f78799b979bb356c19311b40932cc7f8b8e050e10553755a846938951a87021bc9 SHA512 24308317d92b278f9f7d74327303ebba34628a2d8dd5798ae3d472d14fd0519a470b6f9c420da88e07251215342a1e4f5cf8d4230f9663119274d3194d3811a5
+DIST pypy2.7-gentoo-patches-7.3.12rc1.tar.xz 5340 BLAKE2B 4631f3daa7002033af7b9a7026777053454bcb20ed03ad551a1df7efc32adef478e78d449d81dfad903c887cca53b9742edcc97e6cd1e368c3803f779fa6ee4d SHA512 b99723360d15e4411f7cf8ea75b6fd8de92acb3c123d2f3893bd3f2b820099a3ddb625e275e95fb858cb3fd5e4fe18dc653faf90509e7593b5088bcdf7c2092d
DIST pypy2.7-v7.3.11-src.tar.bz2 19850421 BLAKE2B ed8bd61e3857c37689f24a23d38d5043bd190ee0e6de5d7906284ea2eab5e7aeff5c994c22f97195f5a1ded2867725f74dc562b375c0165b6231eae69213c06e SHA512 31fd93fe3e761fd096ff52c2a0afa40f78e4df700deb911e221d1682b35e8374c9deac7ba19b474f7ca7a366d3ae9b36ebaf78e81c4ec8306431fd0873daea55
+DIST pypy2.7-v7.3.12rc1-src.tar.bz2 19898483 BLAKE2B a0f618f69fc938ce59148cd98f03bcca09b89fd4f500132d5212212c391c703d64ea04681d5105b252e1efe41f001a8aa9692cfd3c37dfab4ff5af29b276dbfb SHA512 9faa36f27339a14dc5e7b326a0732ab8dc9c4401eabfe5787c14054a0d0961cc07c0d8e49dbaaaeb78a62ccf73e325b1d31731a138e3b24a6032f44550f6b346
EBUILD pypy-exe-7.3.11.ebuild 4060 BLAKE2B 5c6883e608eba8f972af83966b23dfd3e13edfeeb511d1a47f303b60746d5cb08ab9bdb9914b5b7dd2ff6ef630e15a0fca3a3c3f253e4f76aca7145ff72cf35c SHA512 d5dc8433dd88b0ae58b3283ad233dd7524acf31763e917e46ab8f837623d340f4d487a06fce679a7e91fa96cf89acf98171a423acf4b0251776f1e2abdf41c0c
+EBUILD pypy-exe-7.3.12_rc1.ebuild 4013 BLAKE2B 753611889ecda52fbe8678be995fae38ee9dd6a82a10a835d1daa568855b1fed55abbfb61b9c9a800386bf787b02261482dcf20808b28dd413c82d386baa89ee SHA512 89d7d24d87664f2f80b805fdac1f43ee2bd7b88d540df9b21a4c9cc596a169993f0aecf597dce0cb77c211eec34c20ac7097e69b46d4b40e6c9ab6a86b4576f6
MISC metadata.xml 498 BLAKE2B 8dbcdb7c3a4a2fa5d1a922fd5197fb5e3337adcaec1e7d382f25f8696c80726e5b79843477bf8e5ce131aecde6e2c4c283548c5b337e54cb58aaa066013c445a SHA512 8a9bb514bbf3bf328aa63734e1fdc106f6aaf5ccb88c29ad8a686ab2724f3d1f4727163500013dd16e7b34232b881cf47d2f174212b5428ee076af27cf43628d
diff --git a/dev-python/pypy-exe/pypy-exe-7.3.12_rc1.ebuild b/dev-python/pypy-exe/pypy-exe-7.3.12_rc1.ebuild
new file mode 100644
index 000000000000..37c1d0145b66
--- /dev/null
+++ b/dev-python/pypy-exe/pypy-exe-7.3.12_rc1.ebuild
@@ -0,0 +1,177 @@
+# Copyright 1999-2023 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit check-reqs pax-utils toolchain-funcs
+
+PYPY_PV=${PV%_p*}
+MY_P=pypy2.7-v${PYPY_PV/_}
+PATCHSET="pypy2.7-gentoo-patches-${PV/_}"
+
+DESCRIPTION="PyPy executable (build from source)"
+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"
+SLOT="${PYPY_PV}"
+KEYWORDS=""
+IUSE="bzip2 +jit low-memory ncurses cpu_flags_x86_sse2"
+
+DEPEND="
+ >=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= )
+"
+RDEPEND="
+ ${DEPEND}
+ !dev-python/pypy-exe-bin:${PYPY_PV}
+"
+# don't enforce the dep on dev-python/pypy with USE=low-memory
+# since it's going to cause circular dep with unhelpful error message
+BDEPEND="
+ !low-memory? (
+ || (
+ dev-python/pypy
+ dev-lang/python:2.7
+ )
+ )
+"
+
+check_env() {
+ if ! has_version -b dev-python/pypy; then
+ if use low-memory; then
+ eerror "USE=low-memory requires (a prior version of) dev-python/pypy"
+ eerror "installed."
+ else
+ ewarn "CPython 2.7 will be used to perform the translation. Upstream"
+ ewarn "recommends using (a prior version of) dev-python/pypy instead."
+ fi
+ elog "You can install a prebuilt version of PyPy first using e.g.:"
+ elog " $ emerge -1v dev-python/pypy dev-python/pypy-exe-bin"
+
+ if use low-memory; then
+ die "dev-python/pypy needs to be installed for USE=low-memory"
+ fi
+ fi
+
+ 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() {
+ [[ ${MERGE_TYPE} != binary ]] && check_env
+}
+
+src_prepare() {
+ local PATCHES=(
+ "${WORKDIR}/${PATCHSET}"
+ )
+ default
+}
+
+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
+ if use low-memory || has_version -b dev-python/pypy; then
+ einfo "Using already-installed PyPy to perform the translation."
+ interp=( pypy )
+ if use low-memory; then
+ local -x PYPY_GC_MAX_DELTA=200MB
+ interp+=( --jit loop_longevity=300 )
+ fi
+ else
+ einfo "Using CPython 2.7 to perform the translation."
+ interp=( python2.7 )
+
+ # 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/pypy2.7
+ exeinto "${dest}"
+ newexe "${T}"/usession*-0/testing_1/pypy-c pypy-c-${PYPY_PV}
+ insinto "${dest}"/include/${PYPY_PV}
+ doins include/pypy_*
+ pax-mark m "${ED}${dest}/pypy-c-${PYPY_PV}"
+}
diff --git a/dev-python/pypy/Manifest b/dev-python/pypy/Manifest
index 0a1e0ab36762..35a5e1a15b4c 100644
--- a/dev-python/pypy/Manifest
+++ b/dev-python/pypy/Manifest
@@ -1,4 +1,7 @@
DIST pypy2.7-gentoo-patches-7.3.11.tar.xz 5312 BLAKE2B 3692453a184a88d61fe1dd7aa815aa02a4bdf4b29defd2e98a354261784643f78799b979bb356c19311b40932cc7f8b8e050e10553755a846938951a87021bc9 SHA512 24308317d92b278f9f7d74327303ebba34628a2d8dd5798ae3d472d14fd0519a470b6f9c420da88e07251215342a1e4f5cf8d4230f9663119274d3194d3811a5
+DIST pypy2.7-gentoo-patches-7.3.12rc1.tar.xz 5340 BLAKE2B 4631f3daa7002033af7b9a7026777053454bcb20ed03ad551a1df7efc32adef478e78d449d81dfad903c887cca53b9742edcc97e6cd1e368c3803f779fa6ee4d SHA512 b99723360d15e4411f7cf8ea75b6fd8de92acb3c123d2f3893bd3f2b820099a3ddb625e275e95fb858cb3fd5e4fe18dc653faf90509e7593b5088bcdf7c2092d
DIST pypy2.7-v7.3.11-src.tar.bz2 19850421 BLAKE2B ed8bd61e3857c37689f24a23d38d5043bd190ee0e6de5d7906284ea2eab5e7aeff5c994c22f97195f5a1ded2867725f74dc562b375c0165b6231eae69213c06e SHA512 31fd93fe3e761fd096ff52c2a0afa40f78e4df700deb911e221d1682b35e8374c9deac7ba19b474f7ca7a366d3ae9b36ebaf78e81c4ec8306431fd0873daea55
+DIST pypy2.7-v7.3.12rc1-src.tar.bz2 19898483 BLAKE2B a0f618f69fc938ce59148cd98f03bcca09b89fd4f500132d5212212c391c703d64ea04681d5105b252e1efe41f001a8aa9692cfd3c37dfab4ff5af29b276dbfb SHA512 9faa36f27339a14dc5e7b326a0732ab8dc9c4401eabfe5787c14054a0d0961cc07c0d8e49dbaaaeb78a62ccf73e325b1d31731a138e3b24a6032f44550f6b346
EBUILD pypy-7.3.11.ebuild 6979 BLAKE2B 686a1e5b5821a0c9552345736bb20bc508840934979c66c3d2199c17f1fd7066dbfabaf1f11925f38cc508efe2390690306fecc967088a187c4ff470fa0f28bc SHA512 1dc67d9882f9a007053b75e39bda286c86aa8a4f3cd010939da3ea056a0c343f04b3958ffbe55d0faeff6f4499bf53ab12097a9fbfae9c079ce687675032529b
+EBUILD pypy-7.3.12_rc1.ebuild 6932 BLAKE2B 67c9d42ce0c600581c9c5eeedc9f703ef717fd5c999fd6929251e28cb1ddbc26807a02d95ab36713a85460b04027d606673493d13f03fa6d0fa02107ac24b174 SHA512 b5c683680e6dbf0be64c8f92f66668cc16f79c0a0aba6a617382b2f182d8a1bb05a7914074359c8040b2e71cc8d7d5f3357f74a91f75b8b9db0c6ef83903d9b0
MISC metadata.xml 565 BLAKE2B 956a62e9d3632a7ab9ade67527bae54fe0b58d79a6c2f26dc7017a6b8d337f7e5a155b747f24b98f345eb9e1d15c3f38d8530212ad16cfa5292d6cb1ecbf3e91 SHA512 6dd5bc7712533a926b7efdba10c3bea32c813d703916f6bf152ff14f7561cdc466354c8fdbb9640afe415daa3cf2d9365351261e89b8aadfae7b74afd48ae061
diff --git a/dev-python/pypy/pypy-7.3.12_rc1.ebuild b/dev-python/pypy/pypy-7.3.12_rc1.ebuild
new file mode 100644
index 000000000000..f7ee13fcb47a
--- /dev/null
+++ b/dev-python/pypy/pypy-7.3.12_rc1.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=""
+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
+}
diff --git a/dev-python/pypy3-exe-bin/Manifest b/dev-python/pypy3-exe-bin/Manifest
index 282ccbda0aa9..6488684fbc03 100644
--- a/dev-python/pypy3-exe-bin/Manifest
+++ b/dev-python/pypy3-exe-bin/Manifest
@@ -6,5 +6,14 @@ DIST pypy3-exe-7.3.11-1.ppc64le-musl.gpkg.tar 6492160 BLAKE2B a58cd99780af478369
DIST pypy3-exe-7.3.11-1.ppc64le.gpkg.tar 10127360 BLAKE2B 0ee59ebc8f66b5ba4628cfe7cd64bf3578d756b030bf6ff4681c177d45b23212605a7c605f470631708305d36c146b9c746f043fe169ad6fcce457e224d66d10 SHA512 8049a615299ca033834edcd996744cd125d2f258cac0352448796ea9e9dd51e395af15feb42d27432da04ae58fa6e76a8195a39f74316627b0b3e4e0bd1b43cc
DIST pypy3-exe-7.3.11-1.x86-musl.gpkg.tar 8734720 BLAKE2B 563de983b21fa8eece55056af0596abc2fe9679bdc29042a3f9c97710c473e51415d0109a08c2c404ce8cb9296527350deb310c538b52216c8d68e708f8f8f0d SHA512 ddda659acefcd1125c620421b8570495fb26ae85a3a80a622f2e4cec9748a17ab522d37692629fd78fac3067f5db978c8b8cbf1617d1b1b25e267c26dbcc43fb
DIST pypy3-exe-7.3.11-1.x86.gpkg.tar 8724480 BLAKE2B f1843bb2302918171a0b6fafa93f3528f85b5d887b8af2cc8c0ea6a03d2f264fde2129299c8301c0a48c6b4e7e75e38d68b9ff8eafa01e58bb79438238c181dc SHA512 2f3ae0dae6cf7353a2ddf2fac37c3f8d947eae62a36b7580722b63a1085174d7ccd16077ad6ca040cf906189c4ab0ac6cf86f573b93f733ee8bb61e203d5044a
+DIST pypy3-exe-7.3.12_rc1-1.amd64-musl.gpkg.tar 11919360 BLAKE2B 0e43d5c48d7ffd31ea6d7b179ddd0eb38a0b8df0c8e8a3b6223b117d1e10ee01abeb0be122313979ac55c5576030695f9bb77ca62ac88317e100968e313b0cfa SHA512 7b9a68fae9e2452a7fc83253add74644558d160ca01d5004a84b942bf6d4e54cd0a0af68ac87f2689a1aaec0a70b5560665fe18204f6e6c7d9f17bcbb72b00ab
+DIST pypy3-exe-7.3.12_rc1-1.amd64.gpkg.tar 11950080 BLAKE2B fe472ced6af6d1ac5c8ff0985378ff33d717b926f98e6e4ab70c5754e33476f1cea997b137777e743d69e8fbf560b1768ac236da8de13e5a9d703d6839ff81b1 SHA512 c0a7c253e3fbbdf263ca51729c29f8f2026673c5bdbd96e11235031b795e2d7660fe20d61975c1ccbf765d13dce5322c7ce2d090b83dc98f9550a106d9ac3e69
+DIST pypy3-exe-7.3.12_rc1-1.arm64-musl.gpkg.tar 9973760 BLAKE2B 184ff02dd2f2acc7ee1b4a2fa944e5380ff1cc667555b8ca8510d7b722b0d1524a42c33004dee337328297c4e5c8a7ed4a505c3698593518833e303b19de6214 SHA512 ff9455dece6d0c8d1faf06eb9ff032e036b9d1161622cba4f44fd7eec86a9ff2cc292f5b158c10579929d37dd8e69206ced1859d5d859c437c9c1b130bfdd166
+DIST pypy3-exe-7.3.12_rc1-1.arm64.gpkg.tar 9922560 BLAKE2B df63afc3846216e8fd855a6b52ed83e1326f9d6438734dbb428bfc54fb328e1b672fd22d6d5fac15e4b18145eef2e85197b88de5f62118d4ac1fb3f5fb465bc2 SHA512 50794b9c3d23d0643f3ca54888440d1eed4e3c76f220cdeafc4dfa35ef8fe410202ec0fdbb8b5d29c8b3a5a4e9bdb37ddc738395e5d8fa2c424211b21847b215
+DIST pypy3-exe-7.3.12_rc1-1.ppc64le-musl.gpkg.tar 6543360 BLAKE2B e6dfc8012560da9ecf560cce8f7bb36d72a06b001508b4f7a80069b4f0ea20f0638f1b5b5e50a09fd93abbdb7ee4532c4677ccb0d75fc86084eacd225c5fffb9 SHA512 7c4f4aa032370762f3b344c22eed9ba94a75f2118b61b82c3dd0c9c4e9ec682fd3d692d1fd2d6c8c038928f15b11fb353f1d50da461ac6247157ee54b37f70b9
+DIST pypy3-exe-7.3.12_rc1-1.ppc64le.gpkg.tar 10147840 BLAKE2B 6aed4a74f454a0b6970e21fb6b0d7dd904cd44b833581caf7081ed53a855fac6fb6c7b46e3b9f02747666a908180d88cb73b7e24805d22f1d643ada473e16a21 SHA512 8fe3dc76ae177537f6567303aac697c4b4670b72eeb38d383d7452200d27086d511c1c213f6520e8bbb26b7367d017e5077a1396ce87483d77c7a231256385d7
+DIST pypy3-exe-7.3.12_rc1-1.x86-musl.gpkg.tar 8908800 BLAKE2B 4b4900688f60915da23f64a69117270fbff2de44b43d34d086704f7ef39f85fb64c1ca029b114f7aecaade2d3ba8466a986b89b9f6d7e4bc3b335e04987ddf5a SHA512 3135b418925730dc91c2df48bf0668ba73fd352e149d83ea0a831fddb215aba11adc3dd393776da8f770bf63acb85ac77e96ff3a24ce245713f578340eb271a4
+DIST pypy3-exe-7.3.12_rc1-1.x86.gpkg.tar 8826880 BLAKE2B ca4a9da5e48caca57dd264815b81c8f9775c44eee4d1d0aa0c12962e4b2f1b290626e379e707f3caa560df73909be55d0d8e12c8d74887a607ff35f7ae425a3b SHA512 fd1fd115879f29d0e048313477934f0500853186aa0148d92434ea5ce1ff8dd485ab39acd81ec89d0a6e7d6ccbb94ebabdb96ea7d72ed97732f7f538152c7da3
EBUILD pypy3-exe-bin-7.3.11.ebuild 1978 BLAKE2B ead3a080db1801462d7850d892e2f9c5a38f88207d8d72db0d79332152ccf838b6b9f9e6e3d761f64ea382df30093efee3704571945c0110136ab71aff3006f8 SHA512 8f8983c1cae829dc65e0c42e021f4c7912961a21a5908ede07f30d6ad39495adc1087eef78cf73b597c2dbee6ccdc26dbf80766e468a34f17256be7f04390ba6
+EBUILD pypy3-exe-bin-7.3.12_rc1.ebuild 1987 BLAKE2B 94b28760e5456d437a2272e9a09c1883ba5c40a76cee35088c7a15df7a440b4c519670f5f6c1375dea05a8b5573352e6214b60244a4c0295cded7e00bd75287f SHA512 5f174ed7a4e382e13b6780498c97ca1bc8060b97476839048acf4628224a457227f347a8ac525a8af48cb8c6383404c7116aea4e4e31c15b156ae71201e3cb38
MISC metadata.xml 241 BLAKE2B 4f18c355c71824c25df283b2d463a5abbf2295446e74b960e868dd78d4910ac066725450478087567a6e66b7a8948d99e053f13a7e58dbf2b89fdaf5c2f3436c SHA512 c46e70ffd66754ad84c64806f2bbff25ba9a688f035176a4565afc95351ce10fffba64bbde89965501460b05978c7e59b3d84db6a8cb6efff4055d4b7a5ab5d8
diff --git a/dev-python/pypy3-exe-bin/pypy3-exe-bin-7.3.12_rc1.ebuild b/dev-python/pypy3-exe-bin/pypy3-exe-bin-7.3.12_rc1.ebuild
new file mode 100644
index 000000000000..368277d5d40a
--- /dev/null
+++ b/dev-python/pypy3-exe-bin/pypy3-exe-bin-7.3.12_rc1.ebuild
@@ -0,0 +1,82 @@
+# Copyright 1999-2023 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit pax-utils unpacker
+
+PYVER=3.10
+MY_P=pypy3-exe-${PV}-1
+
+DESCRIPTION="PyPy3 executable (pre-built version)"
+HOMEPAGE="https://www.pypy.org/"
+SRC_URI="
+ elibc_glibc? (
+ amd64? (
+ https://dev.gentoo.org/~mgorny/binpkg/amd64/pypy/dev-python/pypy3-exe/${MY_P}.gpkg.tar
+ -> ${MY_P}.amd64.gpkg.tar
+ )
+ arm64? (
+ https://dev.gentoo.org/~mgorny/binpkg/arm64/pypy/dev-python/pypy3-exe/${MY_P}.gpkg.tar
+ -> ${MY_P}.arm64.gpkg.tar
+ )
+ ppc64? (
+ https://dev.gentoo.org/~mgorny/binpkg/ppc64le/pypy/dev-python/pypy3-exe/${MY_P}.gpkg.tar
+ -> ${MY_P}.ppc64le.gpkg.tar
+ )
+ x86? (
+ https://dev.gentoo.org/~mgorny/binpkg/x86/pypy/dev-python/pypy3-exe/${MY_P}.gpkg.tar
+ -> ${MY_P}.x86.gpkg.tar
+ )
+ )
+ elibc_musl? (
+ amd64? (
+ https://dev.gentoo.org/~mgorny/binpkg/amd64-musl/pypy/dev-python/pypy3-exe/${MY_P}.gpkg.tar
+ -> ${MY_P}.amd64-musl.gpkg.tar
+ )
+ arm64? (
+ https://dev.gentoo.org/~mgorny/binpkg/arm64-musl/pypy/dev-python/pypy3-exe/${MY_P}.gpkg.tar
+ -> ${MY_P}.arm64-musl.gpkg.tar
+ )
+ ppc64? (
+ https://dev.gentoo.org/~mgorny/binpkg/ppc64le-musl/pypy/dev-python/pypy3-exe/${MY_P}.gpkg.tar
+ -> ${MY_P}.ppc64le-musl.gpkg.tar
+ )
+ x86? (
+ https://dev.gentoo.org/~mgorny/binpkg/x86-musl/pypy/dev-python/pypy3-exe/${MY_P}.gpkg.tar
+ -> ${MY_P}.x86-musl.gpkg.tar
+ )
+ )
+"
+S=${WORKDIR}/${MY_P}
+
+LICENSE="MIT"
+SLOT="${PYVER}-${PV%_p*}"
+KEYWORDS=""
+
+# sys-devel/gcc for libgcc_s.so
+RDEPEND="
+ app-arch/bzip2:0/1
+ dev-libs/expat:0/0
+ dev-libs/libffi:0/8
+ sys-libs/ncurses:0/6
+ >=sys-libs/zlib-1.1.3:0/1
+ virtual/libintl:0/0
+ elibc_glibc? (
+ sys-devel/gcc
+ >=sys-libs/glibc-2.35
+ )
+ !dev-python/pypy3-exe:${SLOT}
+"
+
+PYPY_PV=${PV%_p*}
+QA_PREBUILT="
+ usr/bin/pypy${PYVER}-c-${PYPY_PV}
+"
+
+src_install() {
+ insinto /
+ doins -r image/usr
+ fperms +x "/usr/bin/pypy${PYVER}-c-${PYPY_PV}"
+ pax-mark m "${ED}/usr/bin/pypy${PYVER}-c-${PYPY_PV}"
+}
diff --git a/dev-python/pypy3-exe/Manifest b/dev-python/pypy3-exe/Manifest
index 197ff4d857d2..5b2268efb39b 100644
--- a/dev-python/pypy3-exe/Manifest
+++ b/dev-python/pypy3-exe/Manifest
@@ -1,4 +1,7 @@
+DIST pypy3.10-gentoo-patches-7.3.12rc1.tar.xz 3416 BLAKE2B 1ad7e2f05fa26136f7a89fc36f9bba6247f5e7dab235798d47599d412783802e09fb98453386d546169010b944d6d564ac759eb3329da50c5401957d243a55d0 SHA512 93a7b1d1efcf88e5616f5b149e3b7c2c40c7a42d8b689f02f9ffa8e9d03356dbaba647181dc73c3cc41d0eb8b9a7a83301a9bb5d6224752a4c4d8e0afb4c2eab
+DIST pypy3.10-v7.3.12rc1-src.tar.bz2 22994145 BLAKE2B fff1a0c82f60db6abfa1db5b8fc833f62882f98965c3fb6131028e7ccc9f40475d375e7e0f7de564f91dc82840f5b263d097c6cab83458c82298c18498d55d8b SHA512 9f7eb625236d8a1740d80a02cd4e1bebd09ff4f3c5e117881b133c416c615b5a7ca5d5df2cfc42f5aa014905096005fc4ef328d05554d39ef00bae870e30b9c0
DIST pypy3.9-gentoo-patches-7.3.11.tar.xz 6444 BLAKE2B adcc1ae4c3ae2c5317a05d6de51785945625d8bcc7cb35bd6608fa80f09b37c483c95663eacb0353013a5abec308d25b12666699c65512f5f3a6d7345f2b5b18 SHA512 f2064ecffa09ba23f5f8c281ca4c8c0740cb6b57185d66c02eec2bcb77cfb566b1a2db4f52c472bcaf0d5fb759ee8003b27761af37785d12465c2010fd73c49d
DIST pypy3.9-v7.3.11-src.tar.bz2 23460769 BLAKE2B fa8a827c28813243926c8689addb008c0a43acdc3f81a18749a8f2c1926b6294f2c0c95a4c315e3b77ce84b4f337af7a0bce5daf8dcb60ead965532d4af183cb SHA512 33c978ffbeeb39453028d1d1646ccfdace062ce48a5d939245bea41643038dd3687e80e34f88fa0622bcb175d7dd78f75cbe36b24229c8052f09d2d17dcdfd8c
EBUILD pypy3-exe-7.3.11.ebuild 2595 BLAKE2B 8d9c7bca5a971c04cddf096e062ca0a9b5c7bd179ffaee342ae23b96fea45ffeb88a61a345dbfa83ead8dfed15b397a60a6f45ea36a510d1823e640b283fd7a0 SHA512 893caf597db4d5f36bad0b9329fb0b3aef510adf23b438540449540b8c37bb4f27152770f78bf9f85b694ba4ffd90740a5ba932f9fc509fdc43ff9c450a3e720
+EBUILD pypy3-exe-7.3.12_rc1.ebuild 2602 BLAKE2B f402bbb181bb8328993ecba4a32cb6b61785003ed153b324c59568f3e36e8c7daffcce5ccfca851d30bab072b2469714697712cadfb493252d715593580ab723 SHA512 d611aa8fcddcc2007e287d4ed02f9e6baf6b80985edd346a273c3d5727d714f6834040a0610eb8fe537343d375a143ffed08802a7089346959336f2d0e0cd3d5
MISC metadata.xml 498 BLAKE2B 8dbcdb7c3a4a2fa5d1a922fd5197fb5e3337adcaec1e7d382f25f8696c80726e5b79843477bf8e5ce131aecde6e2c4c283548c5b337e54cb58aaa066013c445a SHA512 8a9bb514bbf3bf328aa63734e1fdc106f6aaf5ccb88c29ad8a686ab2724f3d1f4727163500013dd16e7b34232b881cf47d2f174212b5428ee076af27cf43628d
diff --git a/dev-python/pypy3-exe/pypy3-exe-7.3.12_rc1.ebuild b/dev-python/pypy3-exe/pypy3-exe-7.3.12_rc1.ebuild
new file mode 100644
index 000000000000..4891a0cfa8db
--- /dev/null
+++ b/dev-python/pypy3-exe/pypy3-exe-7.3.12_rc1.ebuild
@@ -0,0 +1,127 @@
+# Copyright 1999-2023 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit check-reqs pax-utils toolchain-funcs
+
+PYPY_PV=${PV%_p*}
+PYVER=3.10
+MY_P="pypy${PYVER}-v${PYPY_PV/_}"
+PATCHSET="pypy${PYVER}-gentoo-patches-${PV/_}"
+
+DESCRIPTION="PyPy3 executable (build from source)"
+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"
+SLOT="${PYVER}-${PYPY_PV}"
+KEYWORDS=""
+IUSE="+jit low-memory ncurses cpu_flags_x86_sse2"
+
+RDEPEND="
+ app-arch/bzip2:0=
+ dev-libs/expat:0=
+ dev-libs/libffi:0=
+ >=sys-libs/zlib-1.1.3:0=
+ virtual/libintl:0=
+ ncurses? ( sys-libs/ncurses:0= )
+ !dev-python/pypy3-exe-bin:${SLOT}
+"
+DEPEND="
+ ${RDEPEND}
+"
+BDEPEND="
+ dev-python/pypy
+"
+
+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() {
+ [[ ${MERGE_TYPE} != binary ]] && check_env
+}
+
+src_prepare() {
+ local PATCHES=(
+ "${WORKDIR}/${PATCHSET}"
+ )
+ default
+}
+
+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
+ --withmod-bz2
+ $(usex ncurses --with{,out}mod-_minimal_curses)
+ )
+
+ local interp=( pypy )
+ if use low-memory; then
+ local -x PYPY_GC_MAX_DELTA=200MB
+ interp+=( --jit loop_longevity=300 )
+ 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() {
+ cd "${T}"/usession*-0 || die
+ newbin "testing_1/pypy${PYVER}-c" "pypy${PYVER}-c-${PYPY_PV}"
+ insinto "/usr/include/pypy${PYVER}/${PYPY_PV}"
+ doins *.h
+ pax-mark m "${ED}/usr/bin/pypy${PYVER}-c-${PYPY_PV}"
+}
diff --git a/dev-python/pypy3/Manifest b/dev-python/pypy3/Manifest
index 591c0cec6700..5e6cec7b103d 100644
--- a/dev-python/pypy3/Manifest
+++ b/dev-python/pypy3/Manifest
@@ -1,4 +1,7 @@
+DIST pypy3.10-gentoo-patches-7.3.12rc1.tar.xz 3416 BLAKE2B 1ad7e2f05fa26136f7a89fc36f9bba6247f5e7dab235798d47599d412783802e09fb98453386d546169010b944d6d564ac759eb3329da50c5401957d243a55d0 SHA512 93a7b1d1efcf88e5616f5b149e3b7c2c40c7a42d8b689f02f9ffa8e9d03356dbaba647181dc73c3cc41d0eb8b9a7a83301a9bb5d6224752a4c4d8e0afb4c2eab
+DIST pypy3.10-v7.3.12rc1-src.tar.bz2 22994145 BLAKE2B fff1a0c82f60db6abfa1db5b8fc833f62882f98965c3fb6131028e7ccc9f40475d375e7e0f7de564f91dc82840f5b263d097c6cab83458c82298c18498d55d8b SHA512 9f7eb625236d8a1740d80a02cd4e1bebd09ff4f3c5e117881b133c416c615b5a7ca5d5df2cfc42f5aa014905096005fc4ef328d05554d39ef00bae870e30b9c0
DIST pypy3.9-gentoo-patches-7.3.11_p1.tar.xz 7480 BLAKE2B ffb478402e82244af25dd67bb9e21abb4bb186d98495899f8ca8f323bdf27a77356e40efd33217a5238ef86f6156fc7d85c681a747ea5a35bd73bab659972986 SHA512 6c3ee21b51145907c2434f740e9849ac02ad83203fdcb2802b97ba199f37d08297d8016f659069bea3f0854ace30aefb947af4f057cbc91332106d9fc1389cf4
DIST pypy3.9-v7.3.11-src.tar.bz2 23460769 BLAKE2B fa8a827c28813243926c8689addb008c0a43acdc3f81a18749a8f2c1926b6294f2c0c95a4c315e3b77ce84b4f337af7a0bce5daf8dcb60ead965532d4af183cb SHA512 33c978ffbeeb39453028d1d1646ccfdace062ce48a5d939245bea41643038dd3687e80e34f88fa0622bcb175d7dd78f75cbe36b24229c8052f09d2d17dcdfd8c
EBUILD pypy3-7.3.11_p1.ebuild 5860 BLAKE2B 1dc807f5275e756aa18726045ed5770c821c4dc8361c27270d2c2057eca84a49aa7a1557406a01d0b395e5eded2805764532916c81feaf43bebd7bf09362a9b4 SHA512 776b342d4c51e5d42229912afab4deb0ff16e84db5bc7a696e8dcff6e476ad7931bf5b13cd5f8e3b1edc08b51b8f5f4f47cf0637139a9a3af011ed8a98511983
+EBUILD pypy3-7.3.12_rc1.ebuild 5985 BLAKE2B b20531caea85e49ce83733502f76f4870d83d072e77d4d48d0a18ee30db1626600aaf1ba7f8d78e6da201e748d1023036752556a3ddab6ccac87c0ce4c6782c4 SHA512 73f416e974b0c3cd5dd0a8ab378883270fbc61073f375b5076b3dd6e6c1b6bc13d7e8f6919ae26a238d6a31aeb982b113e551ec301550e72276e2752c75917e6
MISC metadata.xml 531 BLAKE2B 0f727c7ced9fb24ba0dc0b41d51c177b3711de33b838bf46cfdde5d8b751de9694873c13fe8153747f2cb533c078c54f004ee84b1c3c57b6f8d62128ffb9dba2 SHA512 331b66647a58047ded4bcf1529e3ca16b21cbb37afa82d8be0a4b6ad605e17bf3f1478fad1ea3b9c970bdf5162cb41e6adcb029a261fcbf894e807998b9219f6
diff --git a/dev-python/pypy3/pypy3-7.3.12_rc1.ebuild b/dev-python/pypy3/pypy3-7.3.12_rc1.ebuild
new file mode 100644
index 000000000000..88738f20e479
--- /dev/null
+++ b/dev-python/pypy3/pypy3-7.3.12_rc1.ebuild
@@ -0,0 +1,208 @@
+# Copyright 1999-2023 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit pax-utils python-utils-r1 toolchain-funcs
+
+PYPY_PV=${PV%_p*}
+PYVER=3.10
+MY_P="pypy${PYVER}-v${PYPY_PV/_}"
+PATCHSET="pypy${PYVER}-gentoo-patches-${PV/_rc/rc}"
+
+DESCRIPTION="A fast, compliant alternative implementation of the Python (${PYVER}) language"
+HOMEPAGE="
+ https://www.pypy.org/
+ https://foss.heptapod.net/pypy/pypy/
+"
+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"
+# pypy3 -c 'import sysconfig; print(sysconfig.get_config_var("SOABI"))'
+# also check pypy/interpreter/pycode.py -> pypy_incremental_magic
+SLOT="0/pypy310-pp73-384"
+KEYWORDS=""
+IUSE="+ensurepip gdbm +jit ncurses sqlite tk"
+# many tests are failing upstream
+# see https://buildbot.pypy.org/summary?branch=py${PYVER}
+RESTRICT="test"
+
+RDEPEND="
+ || (
+ >=dev-python/pypy3-exe-${PYPY_PV}:${PYVER}-${PYPY_PV}[bzip2(+),ncurses?]
+ >=dev-python/pypy3-exe-bin-${PYPY_PV}:${PYVER}-${PYPY_PV}
+ )
+ dev-lang/python-exec[python_targets_pypy3(-)]
+ dev-libs/openssl:0=
+ dev-python/gentoo-common
+ ensurepip? ( dev-python/ensurepip-wheels )
+ 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
+
+ eapply_user
+}
+
+src_configure() {
+ tc-export CC
+}
+
+src_compile() {
+ mkdir bin || die
+ # switch to the layout expected for cffi module builds
+ mkdir include/pypy${PYVER} || die
+ # copy over to make sys.prefix happy
+ cp -p "${BROOT}"/usr/bin/pypy${PYVER}-c-${PYPY_PV} pypy${PYVER}-c || die
+ cp -p "${BROOT}"/usr/include/pypy${PYVER}/${PYPY_PV}/* include/pypy${PYVER}/ || die
+ # (not installed by pypy-exe)
+ rm pypy/module/cpyext/include/_numpypy/numpy/README || die
+ mv pypy/module/cpyext/include/* include/pypy${PYVER}/ || die
+ mv pypy/module/cpyext/parse/*.h include/pypy${PYVER}/ || die
+ pax-mark m pypy${PYVER}-c
+
+ # verify the subslot
+ local soabi=$(
+ ./pypy${PYVER}-c - <<-EOF
+ import importlib.util
+ import sysconfig
+ soabi = sysconfig.get_config_var("SOABI")
+ magic = importlib.util._RAW_MAGIC_NUMBER & 0xffff
+ print(f"{soabi}-{magic}")
+ EOF
+ )
+ [[ ${soabi} == ${SLOT#*/} ]] || die "update subslot to ${soabi}"
+
+ # Add epython.py to the distribution
+ echo 'EPYTHON="pypy3"' > lib-python/3/epython.py || die
+
+ einfo "Generating caches and CFFI modules ..."
+
+ # Generate sysconfig data
+ local host_gnu_type=$(sh pypy/tool/release/config.guess)
+ local overrides=(
+ HOST_GNU_TYPE "${host_gnu_type:-unknown}"
+ INCLUDEPY "${EPREFIX}/usr/include/pypy${PYVER}"
+ LIBDIR "${EPREFIX}/usr/$(get_libdir)"
+ TZPATH "${EPREFIX}/usr/share/zoneinfo"
+ WHEEL_PKG_DIR "${EPREFIX}/usr/lib/python/ensurepip"
+ )
+ ./pypy${PYVER}-c -m sysconfig --generate-posix-vars "${overrides[@]}" || die
+ local outdir
+ outdir=$(<pybuilddir.txt) || die
+ cp "${outdir}"/_sysconfigdata__*.py lib-python/3/ || die
+
+ # Generate Grammar and PatternGrammar pickles.
+ ./pypy${PYVER}-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 lib_pypy/pypy_tools/build_cffi_imports.py!
+ # (NB: we build CFFI modules first to avoid error log when importing
+ # build_cffi_imports).
+ cffi_targets=(
+ pypy_util blake2/_blake2 sha3/_sha3 ssl
+ audioop syslog pwdgrp resource lzma posixshmem
+ )
+ 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${PYVER}-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=63d4659f
+ local local_cksum=$(
+ ../pypy${PYVER}-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).encode()),))
+ 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
+}
+
+src_install() {
+ einfo "Installing PyPy ..."
+ dodir /usr/bin
+ dosym pypy${PYVER}-c-${PYPY_PV} /usr/bin/pypy${PYVER}
+ dosym pypy${PYVER} /usr/bin/pypy3
+ insinto /usr/lib/pypy${PYVER}
+ # preserve mtimes to avoid obsoleting caches
+ insopts -p
+ doins -r lib-python/3/. lib_pypy/.
+ insinto /usr/include
+ doins -r include/pypy${PYVER}
+
+ # replace copied headers with symlinks
+ for x in "${BROOT}"/usr/include/pypy${PYVER}/${PYPY_PV}/*; do
+ dosym "${PYPY_PV}/${x##*/}" "/usr/include/pypy${PYVER}/${x##*/}"
+ done
+
+ dodoc README.rst
+
+ local dest=/usr/lib/pypy${PYVER}
+ rm -r "${ED}${dest}"/ensurepip/_bundled || die
+ if ! use ensurepip; then
+ rm -r "${ED}${dest}"/ensurepip || die
+ fi
+ if ! use gdbm; then
+ rm -r "${ED}${dest}"/_gdbm* || die
+ fi
+ if ! use sqlite; then
+ rm -r "${ED}${dest}"/sqlite3 \
+ "${ED}${dest}"/_sqlite3* \
+ "${ED}${dest}"/test/test_sqlite.py || die
+ fi
+ if ! use tk; then
+ rm -r "${ED}${dest}"/{idlelib,tkinter} \
+ "${ED}${dest}"/_tkinter \
+ "${ED}${dest}"/test/test_{tcl,tk,ttk*}.py || die
+ fi
+ dosym ../python/EXTERNALLY-MANAGED "${dest}/EXTERNALLY-MANAGED"
+
+ local -x EPYTHON=pypy3
+ local -x PYTHON=${ED}/usr/bin/pypy${PYVER}-c-${PYPY_PV}
+ # temporarily copy to build tree to facilitate module builds
+ cp -p "${BROOT}/usr/bin/pypy${PYVER}-c-${PYPY_PV}" "${PYTHON}" || die
+
+ einfo "Byte-compiling Python standard library..."
+ python_optimize "${ED}${dest}"
+
+ # remove to avoid collisions
+ rm "${PYTHON}" || die
+}