summaryrefslogtreecommitdiff
path: root/dev-python
diff options
context:
space:
mode:
Diffstat (limited to 'dev-python')
-rw-r--r--dev-python/Manifest.gzbin262351 -> 262324 bytes
-rw-r--r--dev-python/contourpy/Manifest2
-rw-r--r--dev-python/contourpy/contourpy-1.1.0.ebuild2
-rw-r--r--dev-python/meson-python/Manifest2
-rw-r--r--dev-python/meson-python/meson-python-0.13.1.ebuild2
-rw-r--r--dev-python/pypy-exe-bin/Manifest9
-rw-r--r--dev-python/pypy-exe-bin/pypy-exe-bin-7.3.12.ebuild79
-rw-r--r--dev-python/pypy-exe/Manifest3
-rw-r--r--dev-python/pypy-exe/pypy-exe-7.3.12.ebuild177
-rw-r--r--dev-python/pypy/Manifest3
-rw-r--r--dev-python/pypy/pypy-7.3.12.ebuild301
-rw-r--r--dev-python/pypy3/Manifest1
-rw-r--r--dev-python/pypy3/pypy3-7.3.12.ebuild26
-rw-r--r--dev-python/pypy3_10-exe-bin/Manifest9
-rw-r--r--dev-python/pypy3_10-exe-bin/pypy3_10-exe-bin-7.3.12.ebuild82
-rw-r--r--dev-python/pypy3_10-exe/Manifest3
-rw-r--r--dev-python/pypy3_10-exe/pypy3_10-exe-7.3.12.ebuild127
-rw-r--r--dev-python/pypy3_10/Manifest3
-rw-r--r--dev-python/pypy3_10/pypy3_10-7.3.12.ebuild208
-rw-r--r--dev-python/pypy3_9-exe-bin/Manifest9
-rw-r--r--dev-python/pypy3_9-exe-bin/pypy3_9-exe-bin-7.3.12.ebuild82
-rw-r--r--dev-python/pypy3_9-exe/Manifest3
-rw-r--r--dev-python/pypy3_9-exe/pypy3_9-exe-7.3.12.ebuild127
-rw-r--r--dev-python/pypy3_9/Manifest3
-rw-r--r--dev-python/pypy3_9/pypy3_9-7.3.12.ebuild208
-rw-r--r--dev-python/wurlitzer/Manifest2
-rw-r--r--dev-python/wurlitzer/wurlitzer-3.0.3.ebuild2
27 files changed, 1469 insertions, 6 deletions
diff --git a/dev-python/Manifest.gz b/dev-python/Manifest.gz
index 668ed8b96e99..26f053699bd6 100644
--- a/dev-python/Manifest.gz
+++ b/dev-python/Manifest.gz
Binary files differ
diff --git a/dev-python/contourpy/Manifest b/dev-python/contourpy/Manifest
index ca8e360d0d1b..2bb57bbac8a2 100644
--- a/dev-python/contourpy/Manifest
+++ b/dev-python/contourpy/Manifest
@@ -1,5 +1,5 @@
DIST contourpy-1.0.7.gh.tar.gz 13357940 BLAKE2B 740214d68eb95c2d80dfb4008fbf82ae1bbd7135476a7f1a45863e2fd88331c959e80dd56afde67789e95325fe4613a6404c24d4deafebacfabbdebc0b199dfe SHA512 64edcfc911b3d7af9b422058d1f595c05d64f7fca8511ea199d30fa52854aee53a7c7dd95e2f47964f57e7764ce6b7b05c8ccee5ed0309eb5daa822d488ce0ff
DIST contourpy-1.1.0.gh.tar.gz 13413711 BLAKE2B 020bf7f63dbe304e71b66249cdfa86047598a3f8352657f7c179bc068869bf7659fb7c821749a0be33a8a04ec02dc642ac7a9ed14f5fd73d4a1e9f20c3606ee2 SHA512 aeb60db039aa14aed29a31dcf6091708daf7e65589964dd7682dc28e085d584103abb872e607685408eaefd4947adeba966c9a0d93cb1f827805189e498c67d8
EBUILD contourpy-1.0.7.ebuild 1096 BLAKE2B c3317bcfe470279d63620caecf219d03b281ad4a7c194bb3ed701324f9fa3cdc0bb61b9fadd59334af923ad97f9146317a271c15b885897ef0344de5b8a51486 SHA512 f6e416ba0d6382842484d1f88183d5f50b49663c9b1f7157359973b8dcc7b25e7912b3c793f68671a6e52390f5168ef37c95af40621b114ec91803023f94da2a
-EBUILD contourpy-1.1.0.ebuild 958 BLAKE2B 61e31cef6094af272b0010dabf476ed711fa433b55f80f8febe887e7b54bea48115b088c960a37b2be938b629688b7ec78519d68c441cf0ca5430a688c8f0847 SHA512 9366f1990218e7d46ebd699f6f599afc4d1f6c75e4426727d9c045216f8128a983a24738abbc4ab3d4f5e98fdfa10355ad4b859a711ddcc13b87fd8c1fa4610c
+EBUILD contourpy-1.1.0.ebuild 964 BLAKE2B ba8e326bdeeed2faec256c53514bb6c940db186e647af3a5a16c0574859e3d6e4712bda94e02517560df369ac8fa542457b289c8360ab8ddcc75c04c24f7d58f SHA512 2785e14cf39fce5736fbff3866fffc720fb51b77ac66382c662ce590821d8836e4c933d25caa0f788dea44aa397f55cfa85bca29cdd3863bc36c7e72345d3dcf
MISC metadata.xml 372 BLAKE2B de3d6cc9d8727bf43be63fdbb8aa2ad375667d189019e189be262e39d028acab98a21e200798c2d5c5c72521aa7d38202e3e235dd44de9b43a7dc9e045d50c47 SHA512 e692f94d805d7f56fc895a4c76dfbacf2f068d687b9191482b946445baa3bd0a685eda7a1b0aec2aaf9a02e6f23d87f0bf22d90f42e3c21d930724c635ff859a
diff --git a/dev-python/contourpy/contourpy-1.1.0.ebuild b/dev-python/contourpy/contourpy-1.1.0.ebuild
index b62d02738e9e..363f925265a6 100644
--- a/dev-python/contourpy/contourpy-1.1.0.ebuild
+++ b/dev-python/contourpy/contourpy-1.1.0.ebuild
@@ -21,7 +21,7 @@ SRC_URI="
LICENSE="BSD"
SLOT="0"
-KEYWORDS="~amd64 ~ia64 ~riscv ~x86"
+KEYWORDS="~amd64 ~hppa ~ia64 ~riscv ~x86"
RDEPEND="
>=dev-python/numpy-1.16[${PYTHON_USEDEP}]
diff --git a/dev-python/meson-python/Manifest b/dev-python/meson-python/Manifest
index f996fe788113..27a068a641ff 100644
--- a/dev-python/meson-python/Manifest
+++ b/dev-python/meson-python/Manifest
@@ -1,3 +1,3 @@
DIST meson-python-0.13.1.gh.tar.gz 69434 BLAKE2B c3442eb1c066772b80efe4e41764897df85a3581c94f9d958951af04e9ad7a01c646c7ed7f0104fbe957567e16b80c6e3744ab23b6b66a8df3cc920cb68c852f SHA512 037825eabcaec5bdb73890114ecfcfb05373bcb5e2806a8d38e4afeeecea42aa14f9c8cf0bec151bd231e2984c64608b28a1ec79640485933cd57c8895b6a305
-EBUILD meson-python-0.13.1.ebuild 1355 BLAKE2B 34e4e0425f890c6e951bd9ade3d8c810f18396d14df1d8acdfd89a8503e07b20e7b3da4f8c0854f7968756d9afb2eaf94ce2c3dc63737bc420ee7eab4d8ed854 SHA512 ac8417492f3426b091958fbfa6c588d99aabf77b787aa17fab226322c0e3dcf2a80a1090dd5dca462e954021499bbf9de86ed88af875fa62f4bb4a7ea98bc622
+EBUILD meson-python-0.13.1.ebuild 1361 BLAKE2B c8027342a89492b33b6706c7c8b8fa4b9a353446a140d2b89e26cd213dc83d1a3130d23475af86956667b735549e677d8d342d2129412253427d0e01c6248969 SHA512 1e36c73cda18862498eb6fce715789cfaf9107f42fed5bf3730073a3ea1eaf561f590981f2f707a3d5198ab5e833c49a14db8c18b8ce424acce77673159c1bd6
MISC metadata.xml 357 BLAKE2B c2b5fd8c6ad39e92970a5e6c1db8950b4850660c9a95a84063504ab75e5dd69e3ab844fcef23cb51f33493b7e522a6d26227ff48dd893c92c422badc70f3c962 SHA512 1402ace4da543de7320a1d97f44177593807d5be9f1891d8a53190581877569508c46fe6b4ce63516c7fee2d2165d59d39f44343dde18438570883da3f4ad28c
diff --git a/dev-python/meson-python/meson-python-0.13.1.ebuild b/dev-python/meson-python/meson-python-0.13.1.ebuild
index 34fc8b4454e3..c12394d97822 100644
--- a/dev-python/meson-python/meson-python-0.13.1.ebuild
+++ b/dev-python/meson-python/meson-python-0.13.1.ebuild
@@ -20,7 +20,7 @@ SRC_URI="
LICENSE="MIT"
SLOT="0"
-KEYWORDS="amd64 arm arm64 ~ia64 ~loong ppc ppc64 ~riscv ~s390 ~sparc x86"
+KEYWORDS="amd64 arm arm64 ~hppa ~ia64 ~loong ppc ppc64 ~riscv ~s390 ~sparc x86"
RDEPEND="
>=dev-python/pyproject-metadata-0.7.1[${PYTHON_USEDEP}]
diff --git a/dev-python/pypy-exe-bin/Manifest b/dev-python/pypy-exe-bin/Manifest
index e0926de5fed7..9c3a40cd3bc6 100644
--- a/dev-python/pypy-exe-bin/Manifest
+++ b/dev-python/pypy-exe-bin/Manifest
@@ -6,6 +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-1.amd64-musl.gpkg.tar 12994560 BLAKE2B c256566f601e0e8dec9f5652edfb7381d6ceb8bef429e463569990b6dadad8fb154c9b0a3183bb6fcbf5f42ac903fd2187fc3b190da915db8ba6c5f84f165fb5 SHA512 53894f7ff1307ddef709097efe1aab371a4e4f7dc7eb812148c89e826e293c2c51eb173c1ff73bc6d76ea19890963a52bdc130e8a37c6409d94b420b116216f9
+DIST pypy-exe-7.3.12-1.amd64.gpkg.tar 12994560 BLAKE2B 49509b81f19c065d9105e64d22993ff9ec445164f4dd9b231eb2e1f204f9e44028e8101f19f8d476f467213012299932dc967c12ba816f74f8daa5b564f92af0 SHA512 96e5507fcbcf7b0cf858aa489bdac663971239c98277da94499fd7e73dd7c86c6c3a97c571fceb8ed5619dc024e02a32cfe8e6e691272af937c2dc610fade53e
+DIST pypy-exe-7.3.12-1.arm64-musl.gpkg.tar 10864640 BLAKE2B 85241b3cf812434b7fc4d9e7efc50bc35cce1332970c94340999b991d881b4c5e066d7b1935fa4a576a7594c7f17808098617002936c58235ca6a97f4cfa4a6c SHA512 9fdf91a7ce7e4b32392d5741db38f839e7fe0258c228e64d0ada0f044649ee271fa627d0ea9772ee95ec2ea3a49ff65fc4aa6fd3b7058beac3100c89b5901a09
+DIST pypy-exe-7.3.12-1.arm64.gpkg.tar 10833920 BLAKE2B 265ee9f444389dc73534299318c67017e8ffd3972e30905ea16ba088034da5e0de73eaa39d01d5c154c3b0261ee111d8d7296864ca8c1bdde7986f3bd0b24fed SHA512 7219c3886cc488d467b74ff43276dc046601316486e1d0a9c32e0941dbe047d17380619191e5b62aaab97dabdc1be47833c214b2c4e5bd928abc527906c689a1
+DIST pypy-exe-7.3.12-1.ppc64le-musl.gpkg.tar 6604800 BLAKE2B 221372df3496c61547200c231c2e4051c3955ff5cde994fd531f5fc02b3a94a080dfe7c7ac2eb0596b4cf81e4a4d8ecdd90d8c44e43ba5218b17744d268e36c7 SHA512 fea9d8628047d3f2ccedbecbedfdf66416e6351d8a1896118855f2cdaa39ec1d588f87165d2a08b0d64c89dccb06eebfa9202ea5163c32c5ef09c45f925644c6
+DIST pypy-exe-7.3.12-1.ppc64le.gpkg.tar 10967040 BLAKE2B 36e3ac01761215ea3fc189397d68ebc44e36e7e26321b4ee63523cd444b8266691ce91237a9baa6b2a658036bd4083a99b99e9937298f1a823d9cd9346ccacba SHA512 f6b9b1ff1a5bf9da56c76df4e7f1348bc09db91cdc8e981cc48dde46fa3583d2f1aba04931fa46e61c237ea76f85db0eb18537ec44b12d02a1952ea42e0991b3
+DIST pypy-exe-7.3.12-1.x86-musl.gpkg.tar 9758720 BLAKE2B 188951a20efc67031969755530edcf8a3e68711e05f37563420419b3f90f4a04ce3692ab8640693121c8ffcc507e6cfed196b261dfd34a751263203f0b602e5f SHA512 c5683f03ed4620ddf370583da3395ef691afc29cd71ece934ccf004ecac5800c29dcea7ee5b0dd1d88cea7283fc6d8efa2989d56af4fe8ab376de66e8b7569e4
+DIST pypy-exe-7.3.12-1.x86.gpkg.tar 9615360 BLAKE2B 0496855e1b745ca78692459c2287d4c69116c84ff60dff8e91eb6a8d29845201946845ec9e8431764986c6bbf58be46195091ff8aced8fe5928e3015b91ec800 SHA512 36b322d8548600b531ecbc9fb256ed068852d2a24d376a61b317fefd16b23c22ba875f4debf591516717fbcd5217ac6b9251d30027ba690fd7ec1e2dee42210b
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
@@ -23,6 +31,7 @@ DIST pypy-exe-7.3.12_rc2-1.ppc64le.gpkg.tar 11069440 BLAKE2B 3e6dc47b3c07b2d66a1
DIST pypy-exe-7.3.12_rc2-1.x86-musl.gpkg.tar 9758720 BLAKE2B 530be9dce21558783e933a5dafd70d928b19df6178c2dcf297e022183a2f2dc5e6eb13577974bffd41ea87b21a703776307d2f2970718740b74700ba9672c9c6 SHA512 c2737e1344d3360e940d4f253b7601ae71b06c27928ee359b9e65484a16be4a8d9770446480608237c42874cb87fc22d888eb4f43cdebc899f2f5aba56b2f872
DIST pypy-exe-7.3.12_rc2-1.x86.gpkg.tar 9594880 BLAKE2B 8ad400c475f977e7f6655c99a8ff3160ce46475cfe27eb0354139a7b4ac5f01464a453fa47372b25d5249dd43336ead6b5688338f8c96015087543f7a0a285a9 SHA512 99d83ff66083ed6cc31a9587f37b3a6e8e25e8e40591875eb9ff4b5cbf1c4c4417bf6e8ffb7984a51665eed2a6a01171f7d4d93d911a1c0c352c5392872a7b57
EBUILD pypy-exe-bin-7.3.11.ebuild 1947 BLAKE2B ced9c32c68bc0d6991a3c023c5ac6f3952cae5be14c39bbaf498c2efa249715235747526090d59f6a39da4645c83551ebfebabb2a2c7a25343c5acb64d9a1d6e SHA512 3ca0ae4098385dbd208bb3d069b17f9654b2b61b8d85fc822776a91e69341a60492c101310c24fc10a7d0e68b080ce28976d1bc9d5c120dbb40d4af04a7215ae
+EBUILD pypy-exe-bin-7.3.12.ebuild 1949 BLAKE2B 144e22713546812ee4664e6c7f092188d521a4c5788f2b1473d2e0fe7ad3b49a16f6965ac4ee194e51d5b64e599b5d80f84fce2cc13b1c667f245f6f75e16847 SHA512 a6905d688350e83368fb1ab2ba273b730adf4be279b45ee3d78d2721532cfd0a1919b694be446df9c7cd2c2fbdf023614dcbd9ef5554c006b9fad0fc4f5cdd87
EBUILD pypy-exe-bin-7.3.12_rc1.ebuild 1924 BLAKE2B b5e1e5fb1312582986443b509caa8b474f61a08a265df9aeb052600ee849f56cd62b342cb3d2fbf4817494ac81ac4c7a5c57eaf4f699facec47b49081faa7512 SHA512 4b3ae540128ead771e4f858f1f86c0965b7cdb95bebaa03ed713118d51f3b1eb65c92ee8652bb53bc3191d93d2eb4b179a0a80a9b3d6eeffa90b9011c8f637c3
EBUILD pypy-exe-bin-7.3.12_rc2.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.ebuild b/dev-python/pypy-exe-bin/pypy-exe-bin-7.3.12.ebuild
new file mode 100644
index 000000000000..577201cf8c2d
--- /dev/null
+++ b/dev-python/pypy-exe-bin/pypy-exe-bin-7.3.12.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="~amd64 ~arm64 ~ppc64 ~x86"
+
+# 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 a4607d6d83c3..aa7b9db342e1 100644
--- a/dev-python/pypy-exe/Manifest
+++ b/dev-python/pypy-exe/Manifest
@@ -1,10 +1,13 @@
DIST pypy2.7-gentoo-patches-7.3.11.tar.xz 5312 BLAKE2B 3692453a184a88d61fe1dd7aa815aa02a4bdf4b29defd2e98a354261784643f78799b979bb356c19311b40932cc7f8b8e050e10553755a846938951a87021bc9 SHA512 24308317d92b278f9f7d74327303ebba34628a2d8dd5798ae3d472d14fd0519a470b6f9c420da88e07251215342a1e4f5cf8d4230f9663119274d3194d3811a5
+DIST pypy2.7-gentoo-patches-7.3.12.tar.xz 5340 BLAKE2B 1a7375412087e8df02e69c80cee6d8246cc444a352323e6a49c1e1a0e6f5d662584c4cce194f03fc139f29de4ecf5d9f68cea5a8c19a720f1a51c1563804e19a SHA512 026a435377f0f04a526d4e0bef1ac832543f24ff2b39579e2cc7ca2cb3eae0415fcdb3c701fc4b85b0659a2ab17180a45469d79920262ed6dfd68d401df85fa1
DIST pypy2.7-gentoo-patches-7.3.12rc1.tar.xz 5340 BLAKE2B 4631f3daa7002033af7b9a7026777053454bcb20ed03ad551a1df7efc32adef478e78d449d81dfad903c887cca53b9742edcc97e6cd1e368c3803f779fa6ee4d SHA512 b99723360d15e4411f7cf8ea75b6fd8de92acb3c123d2f3893bd3f2b820099a3ddb625e275e95fb858cb3fd5e4fe18dc653faf90509e7593b5088bcdf7c2092d
DIST pypy2.7-gentoo-patches-7.3.12rc2.tar.xz 5340 BLAKE2B 7b0028aa61cc9d0800f23cc9dc3f5e4dccc75cb56e55abc382f322d0eddac9ceeb6419f4aee201a12de006ab30585d5920705f96b5d09519e1c8982253e3472d SHA512 dd9ccbd66874d57e3111923b2171f134ae18ffc73d0b5ce3168cb0bea47048be6840c747f5f0da75d29b298935c873aa345b244b57e265ceafc2ac769f2f2e5c
DIST pypy2.7-v7.3.11-src.tar.bz2 19850421 BLAKE2B ed8bd61e3857c37689f24a23d38d5043bd190ee0e6de5d7906284ea2eab5e7aeff5c994c22f97195f5a1ded2867725f74dc562b375c0165b6231eae69213c06e SHA512 31fd93fe3e761fd096ff52c2a0afa40f78e4df700deb911e221d1682b35e8374c9deac7ba19b474f7ca7a366d3ae9b36ebaf78e81c4ec8306431fd0873daea55
+DIST pypy2.7-v7.3.12-src.tar.bz2 19904555 BLAKE2B be8677c0632ef331db285938ad6ffbcb1aa70f44422a1ce5ed09b5a557e68d9185a11d1c20a4a3c6cf32ab41e623a2bc7b3ab7485bf270a9a604fb8a5769bf3f SHA512 35ec35376f1e7c1a5dea9dc5bce6819a94c2df2645806c83185487587470b47ab529c25ecb8ca200505319f40789859a2919c61902b693421e2001313b46e5f4
DIST pypy2.7-v7.3.12rc1-src.tar.bz2 19898483 BLAKE2B a0f618f69fc938ce59148cd98f03bcca09b89fd4f500132d5212212c391c703d64ea04681d5105b252e1efe41f001a8aa9692cfd3c37dfab4ff5af29b276dbfb SHA512 9faa36f27339a14dc5e7b326a0732ab8dc9c4401eabfe5787c14054a0d0961cc07c0d8e49dbaaaeb78a62ccf73e325b1d31731a138e3b24a6032f44550f6b346
DIST pypy2.7-v7.3.12rc2-src.tar.bz2 19903233 BLAKE2B 3621951e3ec5d65318f31efedfc7f1ea8b1532594a311a832e1e6f9a27be2946e967c63a61cbb18808f7baa7235c757b58153352551d88ca09f69017fd0cb2b0 SHA512 e8845dcd98294a9d715cf962e1b600beb81a18b388617bac7cf8675d99364156ec278166b39d8bc0928f65df63336c8d6571387d95921f613660ec30849e69ce
EBUILD pypy-exe-7.3.11.ebuild 4060 BLAKE2B 5c6883e608eba8f972af83966b23dfd3e13edfeeb511d1a47f303b60746d5cb08ab9bdb9914b5b7dd2ff6ef630e15a0fca3a3c3f253e4f76aca7145ff72cf35c SHA512 d5dc8433dd88b0ae58b3283ad233dd7524acf31763e917e46ab8f837623d340f4d487a06fce679a7e91fa96cf89acf98171a423acf4b0251776f1e2abdf41c0c
+EBUILD pypy-exe-7.3.12.ebuild 4062 BLAKE2B b9437200b3738b7e2d76cc05aee4847d4b4e4757ce3631391f345a66d7dc5ed587bcff75d4c8d2d158181578800dc0aaaca794107170ead0ee0072855164cb1a SHA512 e89eea8f316311d8b84b3e493029579d66774e4f41fb6af9d6ce1696470a8d22c967375bba37cfafa1e6288a04f55f2c199311ad8cc0e5073bc915601193affa
EBUILD pypy-exe-7.3.12_rc1.ebuild 4013 BLAKE2B 753611889ecda52fbe8678be995fae38ee9dd6a82a10a835d1daa568855b1fed55abbfb61b9c9a800386bf787b02261482dcf20808b28dd413c82d386baa89ee SHA512 89d7d24d87664f2f80b805fdac1f43ee2bd7b88d540df9b21a4c9cc596a169993f0aecf597dce0cb77c211eec34c20ac7097e69b46d4b40e6c9ab6a86b4576f6
EBUILD pypy-exe-7.3.12_rc2.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.ebuild b/dev-python/pypy-exe/pypy-exe-7.3.12.ebuild
new file mode 100644
index 000000000000..6f7eef22f3b8
--- /dev/null
+++ b/dev-python/pypy-exe/pypy-exe-7.3.12.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="~amd64 ~arm64 ~ppc64 ~x86 ~amd64-linux ~x86-linux"
+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 d495b74225ef..2847b5f5d350 100644
--- a/dev-python/pypy/Manifest
+++ b/dev-python/pypy/Manifest
@@ -1,10 +1,13 @@
DIST pypy2.7-gentoo-patches-7.3.11.tar.xz 5312 BLAKE2B 3692453a184a88d61fe1dd7aa815aa02a4bdf4b29defd2e98a354261784643f78799b979bb356c19311b40932cc7f8b8e050e10553755a846938951a87021bc9 SHA512 24308317d92b278f9f7d74327303ebba34628a2d8dd5798ae3d472d14fd0519a470b6f9c420da88e07251215342a1e4f5cf8d4230f9663119274d3194d3811a5
+DIST pypy2.7-gentoo-patches-7.3.12.tar.xz 5340 BLAKE2B 1a7375412087e8df02e69c80cee6d8246cc444a352323e6a49c1e1a0e6f5d662584c4cce194f03fc139f29de4ecf5d9f68cea5a8c19a720f1a51c1563804e19a SHA512 026a435377f0f04a526d4e0bef1ac832543f24ff2b39579e2cc7ca2cb3eae0415fcdb3c701fc4b85b0659a2ab17180a45469d79920262ed6dfd68d401df85fa1
DIST pypy2.7-gentoo-patches-7.3.12rc1.tar.xz 5340 BLAKE2B 4631f3daa7002033af7b9a7026777053454bcb20ed03ad551a1df7efc32adef478e78d449d81dfad903c887cca53b9742edcc97e6cd1e368c3803f779fa6ee4d SHA512 b99723360d15e4411f7cf8ea75b6fd8de92acb3c123d2f3893bd3f2b820099a3ddb625e275e95fb858cb3fd5e4fe18dc653faf90509e7593b5088bcdf7c2092d
DIST pypy2.7-gentoo-patches-7.3.12rc2.tar.xz 5340 BLAKE2B 7b0028aa61cc9d0800f23cc9dc3f5e4dccc75cb56e55abc382f322d0eddac9ceeb6419f4aee201a12de006ab30585d5920705f96b5d09519e1c8982253e3472d SHA512 dd9ccbd66874d57e3111923b2171f134ae18ffc73d0b5ce3168cb0bea47048be6840c747f5f0da75d29b298935c873aa345b244b57e265ceafc2ac769f2f2e5c
DIST pypy2.7-v7.3.11-src.tar.bz2 19850421 BLAKE2B ed8bd61e3857c37689f24a23d38d5043bd190ee0e6de5d7906284ea2eab5e7aeff5c994c22f97195f5a1ded2867725f74dc562b375c0165b6231eae69213c06e SHA512 31fd93fe3e761fd096ff52c2a0afa40f78e4df700deb911e221d1682b35e8374c9deac7ba19b474f7ca7a366d3ae9b36ebaf78e81c4ec8306431fd0873daea55
+DIST pypy2.7-v7.3.12-src.tar.bz2 19904555 BLAKE2B be8677c0632ef331db285938ad6ffbcb1aa70f44422a1ce5ed09b5a557e68d9185a11d1c20a4a3c6cf32ab41e623a2bc7b3ab7485bf270a9a604fb8a5769bf3f SHA512 35ec35376f1e7c1a5dea9dc5bce6819a94c2df2645806c83185487587470b47ab529c25ecb8ca200505319f40789859a2919c61902b693421e2001313b46e5f4
DIST pypy2.7-v7.3.12rc1-src.tar.bz2 19898483 BLAKE2B a0f618f69fc938ce59148cd98f03bcca09b89fd4f500132d5212212c391c703d64ea04681d5105b252e1efe41f001a8aa9692cfd3c37dfab4ff5af29b276dbfb SHA512 9faa36f27339a14dc5e7b326a0732ab8dc9c4401eabfe5787c14054a0d0961cc07c0d8e49dbaaaeb78a62ccf73e325b1d31731a138e3b24a6032f44550f6b346
DIST pypy2.7-v7.3.12rc2-src.tar.bz2 19903233 BLAKE2B 3621951e3ec5d65318f31efedfc7f1ea8b1532594a311a832e1e6f9a27be2946e967c63a61cbb18808f7baa7235c757b58153352551d88ca09f69017fd0cb2b0 SHA512 e8845dcd98294a9d715cf962e1b600beb81a18b388617bac7cf8675d99364156ec278166b39d8bc0928f65df63336c8d6571387d95921f613660ec30849e69ce
EBUILD pypy-7.3.11.ebuild 6979 BLAKE2B 686a1e5b5821a0c9552345736bb20bc508840934979c66c3d2199c17f1fd7066dbfabaf1f11925f38cc508efe2390690306fecc967088a187c4ff470fa0f28bc SHA512 1dc67d9882f9a007053b75e39bda286c86aa8a4f3cd010939da3ea056a0c343f04b3958ffbe55d0faeff6f4499bf53ab12097a9fbfae9c079ce687675032529b
+EBUILD pypy-7.3.12.ebuild 6981 BLAKE2B 08b2bbdf962d3d7daf534b56da6f0f85de7846c785fde3c69a61cfcbefde073f9f5ea28bf1aa57c80f9c8c91d757a59a652584a0e8fd816279fbf5a09f461f78 SHA512 4b6205c8aa6b27fdbcd117ff24cad1bc447d8821b0ca78befdfa6e06758f36e1f30c1dd1f2daf1bbeb53841255d36c3ab261162afc7e1bf0049c8a11d0bb9fde
EBUILD pypy-7.3.12_rc1.ebuild 6932 BLAKE2B 67c9d42ce0c600581c9c5eeedc9f703ef717fd5c999fd6929251e28cb1ddbc26807a02d95ab36713a85460b04027d606673493d13f03fa6d0fa02107ac24b174 SHA512 b5c683680e6dbf0be64c8f92f66668cc16f79c0a0aba6a617382b2f182d8a1bb05a7914074359c8040b2e71cc8d7d5f3357f74a91f75b8b9db0c6ef83903d9b0
EBUILD pypy-7.3.12_rc2.ebuild 6932 BLAKE2B 67c9d42ce0c600581c9c5eeedc9f703ef717fd5c999fd6929251e28cb1ddbc26807a02d95ab36713a85460b04027d606673493d13f03fa6d0fa02107ac24b174 SHA512 b5c683680e6dbf0be64c8f92f66668cc16f79c0a0aba6a617382b2f182d8a1bb05a7914074359c8040b2e71cc8d7d5f3357f74a91f75b8b9db0c6ef83903d9b0
MISC metadata.xml 565 BLAKE2B 956a62e9d3632a7ab9ade67527bae54fe0b58d79a6c2f26dc7017a6b8d337f7e5a155b747f24b98f345eb9e1d15c3f38d8530212ad16cfa5292d6cb1ecbf3e91 SHA512 6dd5bc7712533a926b7efdba10c3bea32c813d703916f6bf152ff14f7561cdc466354c8fdbb9640afe415daa3cf2d9365351261e89b8aadfae7b74afd48ae061
diff --git a/dev-python/pypy/pypy-7.3.12.ebuild b/dev-python/pypy/pypy-7.3.12.ebuild
new file mode 100644
index 000000000000..a5164317e321
--- /dev/null
+++ b/dev-python/pypy/pypy-7.3.12.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="~amd64 ~arm64 ~ppc64 ~x86 ~amd64-linux ~x86-linux"
+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/Manifest b/dev-python/pypy3/Manifest
index 73f4385b461c..6c5725649581 100644
--- a/dev-python/pypy3/Manifest
+++ b/dev-python/pypy3/Manifest
@@ -3,6 +3,7 @@ DIST pypy3.10-v7.3.12rc1-src.tar.bz2 22994145 BLAKE2B fff1a0c82f60db6abfa1db5b8f
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.ebuild 585 BLAKE2B 5c5704a58e65e6d2bc4272988aaf0ca2e4b2bb21aa316c629ebb8594500743add0a901704f0a2ded2aa803841d4ec16a754884f435ece9a8682da1a70a1a2bff SHA512 3513a60f7264acf12d10d9b1921e843460db4aadaca2b0137a624a870a2ee31a44c52ed065d0cab4a9c35c1c24fbaaffbfd1dab838d1e12117ee53e528e8e481
EBUILD pypy3-7.3.12_rc1.ebuild 5985 BLAKE2B b20531caea85e49ce83733502f76f4870d83d072e77d4d48d0a18ee30db1626600aaf1ba7f8d78e6da201e748d1023036752556a3ddab6ccac87c0ce4c6782c4 SHA512 73f416e974b0c3cd5dd0a8ab378883270fbc61073f375b5076b3dd6e6c1b6bc13d7e8f6919ae26a238d6a31aeb982b113e551ec301550e72276e2752c75917e6
EBUILD pypy3-7.3.12_rc2-r100.ebuild 536 BLAKE2B 312952cce46085dc1104c15bc077c056a3af6eb47ccd4f69bfa8bbf11a7862d517394a182b1ae7d598174c2803f3a136a384b29b7b28518161b5e4706d2156a1 SHA512 8b099211cb8ca6467f5e0ed33b2a16fd38fb554ebfd3be78ec2c04d656700dcc477604e190e30fdbf81192c7c9f65cf6e4c7a4a685a016af7d27a73f89691717
EBUILD pypy3-7.3.12_rc2.ebuild 533 BLAKE2B e2e2653f575e2571136cb1d499ea7cec2d31d22c00e7b7e3be0542c7d57a712908d03000084b8cd32a3ec8cebc454d1ec36e9651045bd72a9f12a7e9cb183f59 SHA512 2ce3d7e445d545326a122cf81daf85396fedfef63a2fcb3e4210b2621e9c4d705734c4c213094b1aa62a546dee89e4ad05eb1cea976ebb3e1290743b07754600
diff --git a/dev-python/pypy3/pypy3-7.3.12.ebuild b/dev-python/pypy3/pypy3-7.3.12.ebuild
new file mode 100644
index 000000000000..ecf195f8f782
--- /dev/null
+++ b/dev-python/pypy3/pypy3-7.3.12.ebuild
@@ -0,0 +1,26 @@
+# Copyright 1999-2023 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+PYVER=3.10
+DESCRIPTION="A fast, compliant alternative implementation of the Python (${PYVER}) language"
+HOMEPAGE="
+ https://www.pypy.org/
+ https://foss.heptapod.net/pypy/pypy/
+"
+S=${WORKDIR}
+
+LICENSE="MIT"
+SLOT="0/pypy310-pp73-384"
+KEYWORDS="~amd64 ~arm64 ~ppc64 ~x86 ~amd64-linux ~x86-linux"
+IUSE="+gdbm ncurses sqlite tk"
+
+RDEPEND="
+ =dev-python/pypy3_10-${PV}*:${SLOT}[gdbm?,ncurses?,sqlite?,tk?]
+"
+
+src_install() {
+ dodir /usr/bin
+ dosym pypy${PYVER} /usr/bin/pypy3
+}
diff --git a/dev-python/pypy3_10-exe-bin/Manifest b/dev-python/pypy3_10-exe-bin/Manifest
index e40673ca6a46..84dbae85c2a4 100644
--- a/dev-python/pypy3_10-exe-bin/Manifest
+++ b/dev-python/pypy3_10-exe-bin/Manifest
@@ -1,3 +1,11 @@
+DIST pypy3_10-exe-7.3.12-1.amd64-musl.gpkg.tar 11939840 BLAKE2B fe5b99ef9131ddfe7116b0a857df3cc3261dafdac043741d18b46a2380a783b1354a10cd8af5070e7afd208bdff73ff52b0c8c3e6469d760780b28b4cab50f13 SHA512 4a79ac7adf59c67d7d304b24943ad5a4e6477dbcb468fcd4b6dfdb9111fe0f5ac9435bf8cd9b460fde0ad02a8854045d8029fd5d24841b4dd8b70561a2ab3c09
+DIST pypy3_10-exe-7.3.12-1.amd64.gpkg.tar 11909120 BLAKE2B a4976928dddd8e45992747973bd0f58df67c279913843fad343f7608fc2e6199b321fa57a26e694ab04bcde5ca9c28f6b7427de0177122216a5136fe1e1a2038 SHA512 dcd78736472a0f26b9bac869b9dda2c64eb36b68ab4b89960c0461e2bcfab4bfff3ae5d31800e3ef102771a65e8b81acc2b80f8e3273a32eafa9d0c986ab9ba0
+DIST pypy3_10-exe-7.3.12-1.arm64-musl.gpkg.tar 9932800 BLAKE2B 1076123d55bc749744d7f04a079e03b46336bb57b32395f7b5924c311be5c8627c6080e81879078ae6faaab462b92ea9429daf92cfe1c536329f0b023ee36849 SHA512 9923b69652273f421ef6fe2658ef1c21c92ddb0c0f9ec30f39c00ab5ba01aaf435c8ad37eac406213ca5835d5e4687d527d43e741a36f410bae81b7893bd67cc
+DIST pypy3_10-exe-7.3.12-1.arm64.gpkg.tar 9902080 BLAKE2B c1f503828d25f99cd1ab5c0112c0f747ec3c3f7128e5daa2fb71e652e887a733c35c5465d1c6ecca5d35d92d1642548cd558aba0cdd9950c38abbfe170d85d3d SHA512 1f151c9bca991e85a2b46a2fc82c3241b44f784ea4812aac99adbd96d78d245afc5d83576ec794f27bc6bcc8a0685c79577dc195bcd917c773b82317696c8858
+DIST pypy3_10-exe-7.3.12-1.ppc64le-musl.gpkg.tar 6543360 BLAKE2B c8bb60fc0144800ae26637ef02a43e8917f4c68268f9c50d607c95f41baa0f1dbe5f23b55f32b0aa08213259ba5322609f0ea59cb3a05cd8152f798bb38f2f6e SHA512 15cf155ef73113a6c076f3eb2b7d20d063f7bc194b724307e7d98901aa74a5c52912cb01b05bdf39ad7682a941488e1ac38b76e0e25edb9f9add33dde33a0de1
+DIST pypy3_10-exe-7.3.12-1.ppc64le.gpkg.tar 10137600 BLAKE2B 773b4b158939842df61dab2c8d3e0ceb6063e88cfbfc30450ede0de4b0089d45f01ae3fccc913c51542c9a8ada0c760f9abb041a0e588a36fdc6096531a0166c SHA512 195140ce7a041682aaff6dc812c5c476ebbf001cea073d636fcebe6b236316f2acc72f3568ad3f01f53c7e727d3033cc53d2d487db46157c47853c6fd3d87fc3
+DIST pypy3_10-exe-7.3.12-1.x86-musl.gpkg.tar 8898560 BLAKE2B 8b9e91c69bc726ac48f7c9db1a2722791ce5171e636d25e99ec57f38ea32442400b7e18d07c5f055bd7a68e607ff33f41faf1a235079807dfc15ce3b1138e521 SHA512 54e73b0786e45f4dc0f102f7e975d5ff7b806bcde9779411bbca64c3c2be115257d7e6dd3c44c9bdf8c62de0a101aca1c6c94aa44b6e39535137317f3052a870
+DIST pypy3_10-exe-7.3.12-1.x86.gpkg.tar 8775680 BLAKE2B 2e260a89bf5b01a8d13653988dffd86315607f541d176ee2cca50d2a4c26f247b8a77b04c74c3512875eadf7ae00d7643e5450b31e4f0e0b79f660d302e2842f SHA512 734d2817b07d87b7087d74abfc605747990823c8fdd45de1b2e6275025ac46550fae8525dc55048412b0b2a076462ee2c21555f3c9dba72774e67be169766f36
DIST pypy3_10-exe-7.3.12_rc2-1.amd64-musl.gpkg.tar 11919360 BLAKE2B b2218bde7a9b7d1eb72730ccd09ebd16b740fdea688b5faf43eead699bb9361892ad1c9d3ea619120bdce7a6cdf01ec23163bd59cf87fc9189fe845dd9a3fd3b SHA512 0003b1b5366a92ba16e55c78da52b0765f40133be51b9d1302b667da22ffcae7698ce23a59133ffbe43595cf6705549203ad1da6264a90b38ce5e3bdf88533a2
DIST pypy3_10-exe-7.3.12_rc2-1.amd64.gpkg.tar 11919360 BLAKE2B 8d31c4ccc737e1c5f9e3317e3aa05a963d442c4927262c6ac5f0927ce589df73af54bbc1e7d256b6ca07247e541578fce252dc49e0bc5fdb0715412df90f84d0 SHA512 9d91e226122aa08e9a336ea699c6f793a964b1e0810e196958f17f04ccd30184649f0211afe846d3ad2649d867b82ee6ff9fda7ca4c7e243d1282582b267a870
DIST pypy3_10-exe-7.3.12_rc2-1.arm64-musl.gpkg.tar 9932800 BLAKE2B 04b9eb19baa4c1754c7af8ebea2419ab98773b4aef71aaff458aef6d31c5d30f3c311cd485bb85bc2a1d08674f96086ff7cacdda1ccadc5bafd85e8a2e9309a3 SHA512 0e077cf79f7a6b411f4f571e47e70412dae54c6c4c0190ac176a19192dbb984b8a829718be64fb5ac86cb15aaf89d12f51f67abfbe8a14a399264483cab59fa4
@@ -6,5 +14,6 @@ DIST pypy3_10-exe-7.3.12_rc2-1.ppc64le-musl.gpkg.tar 6553600 BLAKE2B 22384bcf8a1
DIST pypy3_10-exe-7.3.12_rc2-1.ppc64le.gpkg.tar 10240000 BLAKE2B 27f22ea3d1e635ee0ecc5b7a1fa17d9c6e52b8d49feaf18c2eac25998006f70d99d1831c8c253a4c6777e0683360fc5f95edbe67ae21f2cf000327398c8b4675 SHA512 c3895902458aeefb655a3feb02ea092027c09a97660f97d454626ddb79e0a4093e6e36b87c6ab57cff3eb24eb4fba26ee141ce9c0e34f1e0ce82e07c9ab84093
DIST pypy3_10-exe-7.3.12_rc2-1.x86-musl.gpkg.tar 8898560 BLAKE2B b1388567bf84bf3c6be20568c89a4706c8d9a58b74fa8c67e557eaefc79ebf280cfaf9d488ca46f3eddb1249c4c6de33c7d5daadb7037407a804e69775241983 SHA512 6ff9f94202ab4be7a50f0c63fbd01c5062fa337ad5c39c723d88a24a87dc8bd54229e1a125b9026ecfd4ca0a13251127d8cf70c914f034b2f5480edb882b5de8
DIST pypy3_10-exe-7.3.12_rc2-1.x86.gpkg.tar 8826880 BLAKE2B af377e52221fbf34fe175a3d76bb29b3bbb7d7de1c4747442ad16f0c7c92796321b2e0a1cda71902de406b72d3db27547baaffb0c0813b1f6a99abb22a76c37f SHA512 d7d0301f2a78af6d17238af1b3dffc3bfd3d2443698d45884a3b65be36cdd48836b8db58eda5996f36d2d58ad1dae4c0ccddf77f04c64d84eece5da6206de6a7
+EBUILD pypy3_10-exe-bin-7.3.12.ebuild 2033 BLAKE2B 0fdf8bd677b59278990ec771a932c461d1a425717173cbf780b9496510b774be8fcabffb6ea732d772b7b5ce0960242680c373ae73f225cc1daea9a022262c93 SHA512 f9b07b1249a97f2bdb96fcb4193049a915b3e769dec9a7c0b6755e48d726cb7ff0e8bf9c8bef2c6418365d9279251a82c2ed8fab59cc54de42eaff169dfe3534
EBUILD pypy3_10-exe-bin-7.3.12_rc2.ebuild 2008 BLAKE2B 04de3f0762e23188adae0f9aa56228fcaf58e5307ed06419af02a2123be2dac67132f301b632d622f6f4c8f0ecc9023fa28b2fd04e4ea13a76a8d56ac140fb11 SHA512 15758954df5b06dc2fb1d0548bcf1d3e928d38407b1ac4f4450a5950782a347fc329834431b4838502df529d17a7f85943e0cf819bba9e8f646bd95574d1e55f
MISC metadata.xml 241 BLAKE2B 4f18c355c71824c25df283b2d463a5abbf2295446e74b960e868dd78d4910ac066725450478087567a6e66b7a8948d99e053f13a7e58dbf2b89fdaf5c2f3436c SHA512 c46e70ffd66754ad84c64806f2bbff25ba9a688f035176a4565afc95351ce10fffba64bbde89965501460b05978c7e59b3d84db6a8cb6efff4055d4b7a5ab5d8
diff --git a/dev-python/pypy3_10-exe-bin/pypy3_10-exe-bin-7.3.12.ebuild b/dev-python/pypy3_10-exe-bin/pypy3_10-exe-bin-7.3.12.ebuild
new file mode 100644
index 000000000000..77878f3bc763
--- /dev/null
+++ b/dev-python/pypy3_10-exe-bin/pypy3_10-exe-bin-7.3.12.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_10-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_10-exe/${MY_P}.gpkg.tar
+ -> ${MY_P}.amd64.gpkg.tar
+ )
+ arm64? (
+ https://dev.gentoo.org/~mgorny/binpkg/arm64/pypy/dev-python/pypy3_10-exe/${MY_P}.gpkg.tar
+ -> ${MY_P}.arm64.gpkg.tar
+ )
+ ppc64? (
+ https://dev.gentoo.org/~mgorny/binpkg/ppc64le/pypy/dev-python/pypy3_10-exe/${MY_P}.gpkg.tar
+ -> ${MY_P}.ppc64le.gpkg.tar
+ )
+ x86? (
+ https://dev.gentoo.org/~mgorny/binpkg/x86/pypy/dev-python/pypy3_10-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_10-exe/${MY_P}.gpkg.tar
+ -> ${MY_P}.amd64-musl.gpkg.tar
+ )
+ arm64? (
+ https://dev.gentoo.org/~mgorny/binpkg/arm64-musl/pypy/dev-python/pypy3_10-exe/${MY_P}.gpkg.tar
+ -> ${MY_P}.arm64-musl.gpkg.tar
+ )
+ ppc64? (
+ https://dev.gentoo.org/~mgorny/binpkg/ppc64le-musl/pypy/dev-python/pypy3_10-exe/${MY_P}.gpkg.tar
+ -> ${MY_P}.ppc64le-musl.gpkg.tar
+ )
+ x86? (
+ https://dev.gentoo.org/~mgorny/binpkg/x86-musl/pypy/dev-python/pypy3_10-exe/${MY_P}.gpkg.tar
+ -> ${MY_P}.x86-musl.gpkg.tar
+ )
+ )
+"
+S=${WORKDIR}/${MY_P}
+
+LICENSE="MIT"
+SLOT="${PV%_p*}"
+KEYWORDS="~amd64 ~arm64 ~ppc64 ~x86"
+
+# 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_10-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_10-exe/Manifest b/dev-python/pypy3_10-exe/Manifest
index 5aff23fe4951..1a8ef5484657 100644
--- a/dev-python/pypy3_10-exe/Manifest
+++ b/dev-python/pypy3_10-exe/Manifest
@@ -1,4 +1,7 @@
+DIST pypy3.10-gentoo-patches-7.3.12.tar.xz 3736 BLAKE2B 9283b05e84b385289900a07a8591d830589c5ae9cb77dc5350cb0c6a4c8f71118ed13d270060d900079ec8f7d57c256a973f55016299d001e8be585ba2a2ad30 SHA512 9ec7d8d6e16719971d43cc37cf3fdfaf76b1a707ae37b02681b0a07d17c60df503e926fa8034c9f4866d46136089a0059ee165a0c222f56f2537f374e915b3ca
DIST pypy3.10-gentoo-patches-7.3.12rc2.tar.xz 3416 BLAKE2B 5aac048a8758aff3ea43de12da8b5bcffb5ca1a97d58b307d9badb9583376f0c2513d034ec394216b5d20ab5985a7f1142bd20f9affd5c48b8b86a5286194bad SHA512 3980fef808ac4d9530f9cc4f17ff70eff2612c31f7470c62a4ad83d727216c19cac62d6874d7187004ba83e1fbd349efebc303e0f74c3491baebaf8a630f6a89
+DIST pypy3.10-v7.3.12-src.tar.bz2 23009064 BLAKE2B ad45d90de9ae51803ebcfa202763889f92f7e5c2939331433a496e53ca67dd6eeaf9c61e16cb648945409dff3c6dd6b8a2a01dfe1bed6cd6a9df98f112bff181 SHA512 080520c7de267e17a2823f06cd0a15c108a2c32fc296d6e24782050eb546fa74852d948ede2c381dba110774121b20efc3a07b553acd0ac0db4a844dfc09069e
DIST pypy3.10-v7.3.12rc2-src.tar.bz2 23030434 BLAKE2B a94e427450350c239bd514a9747813337b1208edafeb6a05c18c0b7cd2075edd480d2081d605e62ec9b1ed227154396ed30bba05294db722a43de33c46e34893 SHA512 9e850d3ba16db7dc36069e50c3026d812f08763c5a92fc5e43fff0fcf54fad202c2a13b7101c49d52ee2fb89062fab335473334ccdd067d69ace6d9ecf7f92d2
+EBUILD pypy3_10-exe-7.3.12.ebuild 2642 BLAKE2B 7ff59d8e65dc1e72b7e41fb8f02b95c6568d193c886640036a7b848dd0aec198b341740688de83fd8e71d0949c4e3101f4443a5a1cd725f5ea7c69724ecd4ce8 SHA512 b815f8df8994518ab2f5ff87c4d12f0fc8312c7930ef5d02e183e5c0f5cea4a71a87f75ff415ab2c5b6afea895641d6596adad15da405a5d21ca70d03bdf3f32
EBUILD pypy3_10-exe-7.3.12_rc2.ebuild 2593 BLAKE2B 01c7d1f616340b010ceebde3e8575574daa94d41c064cf1cf02842d6fe5d267fbc5e06eb7d5702a67690629245baf2cbb70414cb459c27d8c0a275601e180b5c SHA512 2a06e12083c220d1c259103f8b35b183954c9aad485b6a2e0fac560594e26b76dfd12e6c326aaeb0098ce1629f914cea422b7f75ea2fd12d26565555d0d313ef
MISC metadata.xml 498 BLAKE2B 8dbcdb7c3a4a2fa5d1a922fd5197fb5e3337adcaec1e7d382f25f8696c80726e5b79843477bf8e5ce131aecde6e2c4c283548c5b337e54cb58aaa066013c445a SHA512 8a9bb514bbf3bf328aa63734e1fdc106f6aaf5ccb88c29ad8a686ab2724f3d1f4727163500013dd16e7b34232b881cf47d2f174212b5428ee076af27cf43628d
diff --git a/dev-python/pypy3_10-exe/pypy3_10-exe-7.3.12.ebuild b/dev-python/pypy3_10-exe/pypy3_10-exe-7.3.12.ebuild
new file mode 100644
index 000000000000..90c4bbea14a2
--- /dev/null
+++ b/dev-python/pypy3_10-exe/pypy3_10-exe-7.3.12.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="${PYPY_PV}"
+KEYWORDS="~amd64 ~arm64 ~ppc64 ~x86 ~amd64-linux ~x86-linux"
+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_10/Manifest b/dev-python/pypy3_10/Manifest
index 4c013f9284a8..d60e2ea30413 100644
--- a/dev-python/pypy3_10/Manifest
+++ b/dev-python/pypy3_10/Manifest
@@ -1,6 +1,9 @@
+DIST pypy3.10-gentoo-patches-7.3.12.tar.xz 3736 BLAKE2B 9283b05e84b385289900a07a8591d830589c5ae9cb77dc5350cb0c6a4c8f71118ed13d270060d900079ec8f7d57c256a973f55016299d001e8be585ba2a2ad30 SHA512 9ec7d8d6e16719971d43cc37cf3fdfaf76b1a707ae37b02681b0a07d17c60df503e926fa8034c9f4866d46136089a0059ee165a0c222f56f2537f374e915b3ca
DIST pypy3.10-gentoo-patches-7.3.12rc2.tar.xz 3416 BLAKE2B 5aac048a8758aff3ea43de12da8b5bcffb5ca1a97d58b307d9badb9583376f0c2513d034ec394216b5d20ab5985a7f1142bd20f9affd5c48b8b86a5286194bad SHA512 3980fef808ac4d9530f9cc4f17ff70eff2612c31f7470c62a4ad83d727216c19cac62d6874d7187004ba83e1fbd349efebc303e0f74c3491baebaf8a630f6a89
DIST pypy3.10-gentoo-patches-7.3.12rc2_p1.tar.xz 7952 BLAKE2B 651a1f036df60b919e486a18082781be1244a88168579fbdb110eaeee73610eed7ddd77c68bdbca717a79d86ac91fe5342d8eb685b1c023a39ef5896c59e0932 SHA512 e361e781ecea0db4b5bb359a1b81e987ac5687a45d6cb6b20e41aa90a6bfee1ea5dd68823a99a3671d35759c5522571afa8c9410caa676cfaf5c27cb88ee4644
+DIST pypy3.10-v7.3.12-src.tar.bz2 23009064 BLAKE2B ad45d90de9ae51803ebcfa202763889f92f7e5c2939331433a496e53ca67dd6eeaf9c61e16cb648945409dff3c6dd6b8a2a01dfe1bed6cd6a9df98f112bff181 SHA512 080520c7de267e17a2823f06cd0a15c108a2c32fc296d6e24782050eb546fa74852d948ede2c381dba110774121b20efc3a07b553acd0ac0db4a844dfc09069e
DIST pypy3.10-v7.3.12rc2-src.tar.bz2 23030434 BLAKE2B a94e427450350c239bd514a9747813337b1208edafeb6a05c18c0b7cd2075edd480d2081d605e62ec9b1ed227154396ed30bba05294db722a43de33c46e34893 SHA512 9e850d3ba16db7dc36069e50c3026d812f08763c5a92fc5e43fff0fcf54fad202c2a13b7101c49d52ee2fb89062fab335473334ccdd067d69ace6d9ecf7f92d2
+EBUILD pypy3_10-7.3.12.ebuild 6012 BLAKE2B df78a45fb649a28aabd12e16f95a6f1a39abf2b8808b58afa8a2d6e11752715f3198b5051d2d3778407affa10ba51dc0969ff2dd84c0232e0cb9c723d76ff0f2 SHA512 cbc46300a2107bd0b4680374801a8572123a61f56c2383ca43350ae4701676284d8e305c44a03d8fceddd7058f5c6b0f9b449c0f68918d82ece27aa1ae102d5e
EBUILD pypy3_10-7.3.12_rc2.ebuild 5963 BLAKE2B 992e98bacb735773d73451d7430647756149a776f95a64de96a6d0589126dcb8aa948e6ce358a8a275bd805b611ba759e5751197d64adc27fa2888c1906a4eff SHA512 7c8f12a212f9c95497198c35614bb7d1ed8608dcd46ca51829166be9d9ba623342c8c1063e840d986b9390f995d0a81def72ac206385238d4c05c76c08726f3a
EBUILD pypy3_10-7.3.12_rc2_p1.ebuild 5963 BLAKE2B 992e98bacb735773d73451d7430647756149a776f95a64de96a6d0589126dcb8aa948e6ce358a8a275bd805b611ba759e5751197d64adc27fa2888c1906a4eff SHA512 7c8f12a212f9c95497198c35614bb7d1ed8608dcd46ca51829166be9d9ba623342c8c1063e840d986b9390f995d0a81def72ac206385238d4c05c76c08726f3a
MISC metadata.xml 531 BLAKE2B 0f727c7ced9fb24ba0dc0b41d51c177b3711de33b838bf46cfdde5d8b751de9694873c13fe8153747f2cb533c078c54f004ee84b1c3c57b6f8d62128ffb9dba2 SHA512 331b66647a58047ded4bcf1529e3ca16b21cbb37afa82d8be0a4b6ad605e17bf3f1478fad1ea3b9c970bdf5162cb41e6adcb029a261fcbf894e807998b9219f6
diff --git a/dev-python/pypy3_10/pypy3_10-7.3.12.ebuild b/dev-python/pypy3_10/pypy3_10-7.3.12.ebuild
new file mode 100644
index 000000000000..006c64a10402
--- /dev/null
+++ b/dev-python/pypy3_10/pypy3_10-7.3.12.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="~amd64 ~arm64 ~ppc64 ~x86 ~amd64-linux ~x86-linux"
+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/${PN}-exe-${PYPY_PV}:${PYPY_PV}[bzip2(+),ncurses?]
+ >=dev-python/${PN}-exe-bin-${PYPY_PV}:${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=
+ )
+ !~dev-python/pypy3-7.3.12_rc1
+"
+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}
+ 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
+}
diff --git a/dev-python/pypy3_9-exe-bin/Manifest b/dev-python/pypy3_9-exe-bin/Manifest
index 4ce43e465758..28749e14cae8 100644
--- a/dev-python/pypy3_9-exe-bin/Manifest
+++ b/dev-python/pypy3_9-exe-bin/Manifest
@@ -1,3 +1,11 @@
+DIST pypy3_9-exe-7.3.12-1.amd64-musl.gpkg.tar 11776000 BLAKE2B cf5527ce75ae59ff056489ab5456ac15eeb8e71028834b77266e99f5ec85e77651839a1e4956fd7600a3a8aaed031379b5cee38afd98656da3921e971739c061 SHA512 5537fe441b7f12cc99ccbf5d6efcc02e03efe1925fd11e42234d1ad040f0ab75f058cc4937233a3e1e967e58ae9a91cdd807f2edec932752975f9dba1ed1378c
+DIST pypy3_9-exe-7.3.12-1.amd64.gpkg.tar 11765760 BLAKE2B fa4f6d2da905c70517fac775caa85e2f9903318c87b04e5d450efedc0b566785ec0f2b2ee2df428cb613643b293681d45d267a1eae57a504d6af4b8ce4f7d9d2 SHA512 4f1c995599d699238ce89380eff96afd0ec86850c02f023a7cfa84ec975c3b8a17e90e5b23a1f00cfd4ef8625891e00e1244d07a5a72f9380184c0fdaba30c73
+DIST pypy3_9-exe-7.3.12-1.arm64-musl.gpkg.tar 9830400 BLAKE2B 6f3af7ba9d825489399bea27b78602662a45806cc07c34d85878ffb246c9bea0f4f262b6b47dd358aff1a3df2676eb47ee411bbd781a97cb587c7a569dbefdb4 SHA512 18c752e15eb6714bf2d89922dce52d3e1e9a87a32f96752cc135354465976757c4847da5682bce33e7db5ee938d87014558c99d5d62f4b320a518038d9c17da8
+DIST pypy3_9-exe-7.3.12-1.arm64.gpkg.tar 9830400 BLAKE2B 68d29046f528e2081ed1a141f7d7a8adbd0a101390622d19546bcd6a87fbcfedb9966d3a0c1b95a4d2feb4b1a43bddb99229460e41da6f66b801fee7cddb16da SHA512 091e4592dd976cabc957ffc8dae0aeb7e43eb2ae5091e041c92007c5e8444fbe34d1d6251e0d047b75055f34342f209d28cbbc994b63c33d5558939d79127f00
+DIST pypy3_9-exe-7.3.12-1.ppc64le-musl.gpkg.tar 6359040 BLAKE2B 44c5c98a1b21e13638f6fc78fa65f8d2a1805bb814cccca695a0e1a1e729b590e66254b0ae96ae53ee77f8b3cecaf164d27d36a497333030d73e2afeb295f67b SHA512 f5fda1d200f29986e48aab03db0adcd0051cdf4795f231c453462fddeaaf75c4a2e4bcb4e08f997f1672e1fcf2652a02635eea5cd124d990de76e93409faef0c
+DIST pypy3_9-exe-7.3.12-1.ppc64le.gpkg.tar 10106880 BLAKE2B fb6b6520b30ef7db9be1737b4b09a793f6312e37a26aff40e60b509c9b90356dbe376da2679891c4e6a1e469e2877ff5791b25955f25f39d1ad698760d288662 SHA512 3ef689bce8b30e50eef81da6ce6989540d2008b214074933d71bfcb9622ab2d233dc24d36db4b94a4940546b5c398cfd726bec9d82515326cf18507ed9a4c1a5
+DIST pypy3_9-exe-7.3.12-1.x86-musl.gpkg.tar 8775680 BLAKE2B 159b68f1ff2b27ec172dd3feb2eb1e44e30ab16e9bfe0dce887e79eb8cc2ceb438735614f9b1681976fc6304fef798cac23cc81379edd84bfcbbcb65280aada7 SHA512 86b91e6323b8e25af30bc237eeda24f213592b5d2a6f52a89e71cdcb6b83a2b1b9ff35f46ee5e4a50d74852f1a2075749f775ff1a3ce02cd05f8e9e13f14a03e
+DIST pypy3_9-exe-7.3.12-1.x86.gpkg.tar 8714240 BLAKE2B 60847cfad5d5c8d988ab3b4f79c508e47445ab8321fa4700c3bfc3727a57d55a201bff0d74740e9ffc5d2e679bb1653b81ab22a35f8fb71bfb43c2d1add5e4c9 SHA512 bc04225b35b82b917d8186c1ed7fa892beaedcafb831f1eb6a134f54778ff973888d51f9107a892c7d6a3fbfc7c792f4089ba9e76fcdb18b6f1d53d98b9037d3
DIST pypy3_9-exe-7.3.12_rc2-1.amd64-musl.gpkg.tar 11765760 BLAKE2B 4fbae8b10e2460f3909bb4736046a120139800a70cb432de04f8b4d4bcfe5e6db0c747ad302d97918454f95675313d2c5754e85c9c1ebbb2413cd4b9e025ddf5 SHA512 82299f068a8e1a0d7772843d1269872e40db9939ccfab94c86f0a62dff203eaa9a281e1b0cfee1a8c030a7ee792bb917a3cabb23e9303e92d3fe43c0f924fb45
DIST pypy3_9-exe-7.3.12_rc2-1.amd64.gpkg.tar 11765760 BLAKE2B f0ed332de083849ad8c58904f8cf49619a0deb93d8fb7988a7257160e0b1af03cc31e27fe40bd61ab36a67844488d4877a6831f8740a3a7047b845d1e90b6fe8 SHA512 fc2856979a7d00c274c24ca48bf91c3447aab36c8075b4ec40dfc1dc4e070188a7e66aefaa25875c97d2736a3b59591a2a8c7d28c309fcfb17ffad010469287b
DIST pypy3_9-exe-7.3.12_rc2-1.arm64-musl.gpkg.tar 9850880 BLAKE2B a69cbdb4a814e9bc6a1197ffcacd95d701314975ca7b12c6ed1767e741a65d623b937e958d3b05f95a5dd05ddf6fba43e32e99ac9cc1cf6f1656bd2c8217d677 SHA512 164a5094d02237a09f378afaa78ddce33056327819367c9200a6cf792788e6f4606aed07e0b65145e3dceb63597de83b8441e461f8a93595822de2d32a04cc00
@@ -6,5 +14,6 @@ DIST pypy3_9-exe-7.3.12_rc2-1.ppc64le-musl.gpkg.tar 6440960 BLAKE2B 3746b592aa0d
DIST pypy3_9-exe-7.3.12_rc2-1.ppc64le.gpkg.tar 10168320 BLAKE2B 412dac367dc4514da400ab31c4aaf3e308be3596dc227f5f53b85b9e5591c2075db038532773e20d2b403b9dd527c10dc5340d81a86060ccd32e01f0bfb3852d SHA512 f66a82860186972a156044a18f175d1da654b075cf7982463ff65c824ec97df26b3b226635d1d2052c2bfbeedba86b2028c3145fdeb7d4f37aa4a4eb3c90bf58
DIST pypy3_9-exe-7.3.12_rc2-1.x86-musl.gpkg.tar 8796160 BLAKE2B e55bbe14558aa00349768077f79c7a53c881ce13a93497677786f681551686d1407688d83d6abaaf59bfd8c2a941c6fb20c540e77a50b4b728e59a6c27c11254 SHA512 88b959f303400b4a0a70db433a0d2b7e5fc7c67548ab6cc26272012aab3845707c1fd6aa84a1f942647f6cc4eb88dfd845d8b7761eb0792d914fbe031f81d1d1
DIST pypy3_9-exe-7.3.12_rc2-1.x86.gpkg.tar 8704000 BLAKE2B 6ce103402b29c66fc5e033711538b9fe97d92b1ea68b7d668d7d7354435936fa7cb0254587f9b5cc2d10fe369a672f5c800efde2114f9e62a79727056f4ac713 SHA512 26d1444d548a2708eb7d9090d6759bfac1e51f456d5c09eaea38547169f51f74113c01bdce9032f0887c5e349079228e7c348c8e4be06aa2fa5a2f4af1b419db
+EBUILD pypy3_9-exe-bin-7.3.12.ebuild 2022 BLAKE2B 5e49d281eb806dcf898d160fc9c9ad689b56c09b1c112cbd2e45515bbe83d189653ca4be70fc806d1a46ada3a87199f9aac3905dab8c238361bdd98f62c4cfc3 SHA512 534720a8d7226460559d01a43c9301b19010b6a54560bba0068fdf753256ce68f8b755c12969fcfde426dce9c3d2a79d5d38db5777f0e53c9ed4c407e4ccb43f
EBUILD pypy3_9-exe-bin-7.3.12_rc2.ebuild 1997 BLAKE2B 7e5c2b91f011f16f31ac4b1de8bb4e2ee7d3f589e297551d940e0b75cae7ed8662d37fd91a68bded32373be082dab65b23e447d2f457eb0ba9f892181190bd37 SHA512 2d5eb81eb7e7b16a24d6f2459ed95523207b52c661e05ef2eff23ee1ddd1e91d536acf64cebce57ae8702e638f8ab018d83a6e8eba11ce4ec6e82cdd2087daba
MISC metadata.xml 241 BLAKE2B 4f18c355c71824c25df283b2d463a5abbf2295446e74b960e868dd78d4910ac066725450478087567a6e66b7a8948d99e053f13a7e58dbf2b89fdaf5c2f3436c SHA512 c46e70ffd66754ad84c64806f2bbff25ba9a688f035176a4565afc95351ce10fffba64bbde89965501460b05978c7e59b3d84db6a8cb6efff4055d4b7a5ab5d8
diff --git a/dev-python/pypy3_9-exe-bin/pypy3_9-exe-bin-7.3.12.ebuild b/dev-python/pypy3_9-exe-bin/pypy3_9-exe-bin-7.3.12.ebuild
new file mode 100644
index 000000000000..cb99c4b6d977
--- /dev/null
+++ b/dev-python/pypy3_9-exe-bin/pypy3_9-exe-bin-7.3.12.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.9
+MY_P=pypy3_9-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_9-exe/${MY_P}.gpkg.tar
+ -> ${MY_P}.amd64.gpkg.tar
+ )
+ arm64? (
+ https://dev.gentoo.org/~mgorny/binpkg/arm64/pypy/dev-python/pypy3_9-exe/${MY_P}.gpkg.tar
+ -> ${MY_P}.arm64.gpkg.tar
+ )
+ ppc64? (
+ https://dev.gentoo.org/~mgorny/binpkg/ppc64le/pypy/dev-python/pypy3_9-exe/${MY_P}.gpkg.tar
+ -> ${MY_P}.ppc64le.gpkg.tar
+ )
+ x86? (
+ https://dev.gentoo.org/~mgorny/binpkg/x86/pypy/dev-python/pypy3_9-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_9-exe/${MY_P}.gpkg.tar
+ -> ${MY_P}.amd64-musl.gpkg.tar
+ )
+ arm64? (
+ https://dev.gentoo.org/~mgorny/binpkg/arm64-musl/pypy/dev-python/pypy3_9-exe/${MY_P}.gpkg.tar
+ -> ${MY_P}.arm64-musl.gpkg.tar
+ )
+ ppc64? (
+ https://dev.gentoo.org/~mgorny/binpkg/ppc64le-musl/pypy/dev-python/pypy3_9-exe/${MY_P}.gpkg.tar
+ -> ${MY_P}.ppc64le-musl.gpkg.tar
+ )
+ x86? (
+ https://dev.gentoo.org/~mgorny/binpkg/x86-musl/pypy/dev-python/pypy3_9-exe/${MY_P}.gpkg.tar
+ -> ${MY_P}.x86-musl.gpkg.tar
+ )
+ )
+"
+S=${WORKDIR}/${MY_P}
+
+LICENSE="MIT"
+SLOT="${PV%_p*}"
+KEYWORDS="~amd64 ~arm64 ~ppc64 ~x86"
+
+# 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_9-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_9-exe/Manifest b/dev-python/pypy3_9-exe/Manifest
index 2fdb38f3f15b..b94384ccf64b 100644
--- a/dev-python/pypy3_9-exe/Manifest
+++ b/dev-python/pypy3_9-exe/Manifest
@@ -1,4 +1,7 @@
+DIST pypy3.9-gentoo-patches-7.3.12.tar.xz 7472 BLAKE2B 3948dc62af0b48c77e86cf25113363984ffcf118ca0ea797807a34d509223c6449edc66a835bd550cbdbb41c2c7386f2c56479b26e60effcf1c3a315ed113d0e SHA512 37f935d02a08c88aeab0337eb48a543c02cae37af5c0e692dda899f1b7acb811cf7d6c4d162829d6876d926d9cf376c522ec28ea7fb8957ca9a3ea7654262302
DIST pypy3.9-gentoo-patches-7.3.12rc2.tar.xz 7476 BLAKE2B d425ac68f555aeee07ca2b993341f5c7662d27f599200b1dbb3ad489a925b6934b6e95c39505c1dc899bde4b1e903822988ea98e6af883418d7b2b11ca8f42fb SHA512 c3fee32098544a13b7a14809357e7a8f060f0223eb50dd246981a304d1f273c8633b4dbca64ef2bb1a1f79fd1e7a48482d729f933c676768d11b7955f9f6c2d7
+DIST pypy3.9-v7.3.12-src.tar.bz2 23528145 BLAKE2B 28cc42b10d6a84c441af673e1a0dc6d19e09daa1da9249a7fec39a9aaccbe5010a3586068ae0b10cd402b72e5acc58998469d5c99019caa41399951c2a221e26 SHA512 8e819a1ec3f3ce7fc5f901fb554660288a57e2a4834a3da35c1a57faf88ef4129240628a58334d2e0c2b1dda412da5d85ec943abe8046c0ce5d0cd0a0f7fc42a
DIST pypy3.9-v7.3.12rc2-src.tar.bz2 23585984 BLAKE2B 52fbdc403c7af9b2b96f50efe2256ad0f2b2fcf4622649f42606349994ac9bc4a9475b52dce58ee4cc36be06a845c009ac2097887e6d784f1712ed9ab0a0cf63 SHA512 5795081557e192b9b007eb0e324f2df5e520204d0c4fe9bb1118c99203584629b4c4da241d8b172e04654bc61c07d43d0b968232265f927bb425d76e7e9bc442
+EBUILD pypy3_9-exe-7.3.12.ebuild 2641 BLAKE2B 6d51f81fa21178cc50f0acccf3fcd5dec9afcde32d797f327c37d80196f6b3935b85e52cadf75b077ac995786f87a7bd54fc40c18cbf4a32d99b01123e0a5101 SHA512 03333393dab6347e5246ae95265ac3061a3e56d524098e332a416b83a05dd5362d51d193951b5555c42a30ef29b08fcd8ee28317230520cbddfea57bd574d7de
EBUILD pypy3_9-exe-7.3.12_rc2.ebuild 2592 BLAKE2B 5c41cca333a46313334a490b47043ff5a321689545439a48e9a9accdc8d4c0d11d21b179b1879cad68ead4e30ac1461758b2acb5de0393f538b57ee1e24e9bf0 SHA512 01d703479d8844754c782d0e252305ca592314c541511aae4623c967bf874def3287de7b7c90f35f3578f1a084f0697a0aaf9ca84c0f8728ac2a3e1b5fe24b0c
MISC metadata.xml 498 BLAKE2B 8dbcdb7c3a4a2fa5d1a922fd5197fb5e3337adcaec1e7d382f25f8696c80726e5b79843477bf8e5ce131aecde6e2c4c283548c5b337e54cb58aaa066013c445a SHA512 8a9bb514bbf3bf328aa63734e1fdc106f6aaf5ccb88c29ad8a686ab2724f3d1f4727163500013dd16e7b34232b881cf47d2f174212b5428ee076af27cf43628d
diff --git a/dev-python/pypy3_9-exe/pypy3_9-exe-7.3.12.ebuild b/dev-python/pypy3_9-exe/pypy3_9-exe-7.3.12.ebuild
new file mode 100644
index 000000000000..b9174fee3c95
--- /dev/null
+++ b/dev-python/pypy3_9-exe/pypy3_9-exe-7.3.12.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.9
+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="${PYPY_PV}"
+KEYWORDS="~amd64 ~arm64 ~ppc64 ~x86 ~amd64-linux ~x86-linux"
+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_9/Manifest b/dev-python/pypy3_9/Manifest
index c507387b0c8c..741195e386be 100644
--- a/dev-python/pypy3_9/Manifest
+++ b/dev-python/pypy3_9/Manifest
@@ -1,4 +1,7 @@
+DIST pypy3.9-gentoo-patches-7.3.12.tar.xz 7472 BLAKE2B 3948dc62af0b48c77e86cf25113363984ffcf118ca0ea797807a34d509223c6449edc66a835bd550cbdbb41c2c7386f2c56479b26e60effcf1c3a315ed113d0e SHA512 37f935d02a08c88aeab0337eb48a543c02cae37af5c0e692dda899f1b7acb811cf7d6c4d162829d6876d926d9cf376c522ec28ea7fb8957ca9a3ea7654262302
DIST pypy3.9-gentoo-patches-7.3.12rc2.tar.xz 7476 BLAKE2B d425ac68f555aeee07ca2b993341f5c7662d27f599200b1dbb3ad489a925b6934b6e95c39505c1dc899bde4b1e903822988ea98e6af883418d7b2b11ca8f42fb SHA512 c3fee32098544a13b7a14809357e7a8f060f0223eb50dd246981a304d1f273c8633b4dbca64ef2bb1a1f79fd1e7a48482d729f933c676768d11b7955f9f6c2d7
+DIST pypy3.9-v7.3.12-src.tar.bz2 23528145 BLAKE2B 28cc42b10d6a84c441af673e1a0dc6d19e09daa1da9249a7fec39a9aaccbe5010a3586068ae0b10cd402b72e5acc58998469d5c99019caa41399951c2a221e26 SHA512 8e819a1ec3f3ce7fc5f901fb554660288a57e2a4834a3da35c1a57faf88ef4129240628a58334d2e0c2b1dda412da5d85ec943abe8046c0ce5d0cd0a0f7fc42a
DIST pypy3.9-v7.3.12rc2-src.tar.bz2 23585984 BLAKE2B 52fbdc403c7af9b2b96f50efe2256ad0f2b2fcf4622649f42606349994ac9bc4a9475b52dce58ee4cc36be06a845c009ac2097887e6d784f1712ed9ab0a0cf63 SHA512 5795081557e192b9b007eb0e324f2df5e520204d0c4fe9bb1118c99203584629b4c4da241d8b172e04654bc61c07d43d0b968232265f927bb425d76e7e9bc442
+EBUILD pypy3_9-7.3.12.ebuild 6009 BLAKE2B 3f8e30c578a89f2f1ea5d9433c0ad0699e31859229bbe5f5bfdeaec88a8bab055882464fdc8c280e8424ab8ee4926507e6111882cfb5ac31b3cbbd04cbbec782 SHA512 44501013752baa50300a5f9a5d9e6e176f732c0e7430a55dbfb63936cf14b2ac27978da2be2740c58f4aed81883768e928dc4ff7a6f715e9858642c23235c85c
EBUILD pypy3_9-7.3.12_rc2.ebuild 5960 BLAKE2B 0cb10ef07b6c80eded84dfde9ce70859010f03490f768796fd49b336100fe68782de713697b8224f3397f8dd2d2568ea24b533c2dcb80df11a380255610f2630 SHA512 c024e779399ee7102f95ba9dc07862a7e6da7a1a3e0361ec57b0a078a5bb34186619376c01569f5b1d9fe0ea78170813936aa851533993c49ddbb799ca00c876
MISC metadata.xml 531 BLAKE2B 0f727c7ced9fb24ba0dc0b41d51c177b3711de33b838bf46cfdde5d8b751de9694873c13fe8153747f2cb533c078c54f004ee84b1c3c57b6f8d62128ffb9dba2 SHA512 331b66647a58047ded4bcf1529e3ca16b21cbb37afa82d8be0a4b6ad605e17bf3f1478fad1ea3b9c970bdf5162cb41e6adcb029a261fcbf894e807998b9219f6
diff --git a/dev-python/pypy3_9/pypy3_9-7.3.12.ebuild b/dev-python/pypy3_9/pypy3_9-7.3.12.ebuild
new file mode 100644
index 000000000000..6f73d957d6ea
--- /dev/null
+++ b/dev-python/pypy3_9/pypy3_9-7.3.12.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.9
+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/pypy39-pp73-336"
+KEYWORDS="~amd64 ~arm64 ~ppc64 ~x86 ~amd64-linux ~x86-linux"
+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/${PN}-exe-${PYPY_PV}:${PYPY_PV}[bzip2(+),ncurses?]
+ >=dev-python/${PN}-exe-bin-${PYPY_PV}:${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=
+ )
+ !<dev-python/pypy3-7.3.12_rc
+"
+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}
+ 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
+}
diff --git a/dev-python/wurlitzer/Manifest b/dev-python/wurlitzer/Manifest
index a995cc9ad46c..d1520c3143fc 100644
--- a/dev-python/wurlitzer/Manifest
+++ b/dev-python/wurlitzer/Manifest
@@ -1,3 +1,3 @@
DIST wurlitzer-3.0.3.tar.gz 10171 BLAKE2B bf0ab15aaf0b693df64e0e9db38309ad1dad117aa97c1f380021ca81153eaf08ef742a97cf7451e72cc3473a2824fe142d8d8cd7ea1b28a367ed5761527c8d6a SHA512 6914ca77af8540bd949b74dfffe58b6ff9de603474e42e973b712f91a11dc906d7753f769932d26106c0543e98f42929741ed4de9ae14601eeadbd0dc5bfca35
-EBUILD wurlitzer-3.0.3.ebuild 474 BLAKE2B 1213c2838e696d57dfb7117b0b93b485497ad2e972be2565f0fb62b9e1f61ab2f3f5ba6fd7a672f627aed8b8362ac66b560d022707f4b9ebebfdfa87d5d7fe6a SHA512 218a935092ce3976203028bfa3af75f0c833dd6e17aacdbce84988f9af5f111f2c8c7039740dc61c39da47d669907e702b17a719a977b089ead7271b3a93467f
+EBUILD wurlitzer-3.0.3.ebuild 480 BLAKE2B 75fd190fa9808a0727885966bde3ea709464f9e90361766990a509354da0442c3668cfea44676f7ca76b916e0e58ae32f8eae7979614621ef5a4b9592399cb5a SHA512 18dd3d1ed1331cfa7020a8d56629ac9bf2f2886083948ca32e53048b0da68bb917497202e4095564dddaae78859e3875edcb3be532fb86296f004a7df10d9f5f
MISC metadata.xml 511 BLAKE2B edeba987bc614b3c48f4bb8bc8535ad345b48e2fe4fd9efae19ed6df05c04188ca4a046d821941a7f6bd6284beb7a5c3281b5e9ebe6c3ad325e8707c1120baba SHA512 4e641fff5a9a209bbf65b7170bdc65f94d88d3bc4720ca5e105850671ebb286627c3fc2d90d8a8c25097c50f2be92cb29f1d61f4eb1d482b9baa3a80b79e6e60
diff --git a/dev-python/wurlitzer/wurlitzer-3.0.3.ebuild b/dev-python/wurlitzer/wurlitzer-3.0.3.ebuild
index 14fed14bf3a0..cd2a1557bb7d 100644
--- a/dev-python/wurlitzer/wurlitzer-3.0.3.ebuild
+++ b/dev-python/wurlitzer/wurlitzer-3.0.3.ebuild
@@ -16,7 +16,7 @@ HOMEPAGE="
LICENSE="MIT"
SLOT="0"
-KEYWORDS="amd64 ~ia64 ~riscv x86"
+KEYWORDS="amd64 ~hppa ~ia64 ~riscv x86"
distutils_enable_tests pytest