summaryrefslogtreecommitdiff
path: root/dev-python
diff options
context:
space:
mode:
authorLiguros - Gitlab CI/CD [develop] <gitlab@liguros.net>2023-06-16 19:26:59 +0000
committerLiguros - Gitlab CI/CD [develop] <gitlab@liguros.net>2023-06-16 19:26:59 +0000
commit129088e03705a92bbfef178ccaf3c977d65cd15d (patch)
tree8f1e104299a44bd208767d8eaa044d743875a78c /dev-python
parent5f832665b7f7250a75f1fb46d926a93d18d766da (diff)
downloadbaldeagleos-repo-129088e03705a92bbfef178ccaf3c977d65cd15d.tar.gz
baldeagleos-repo-129088e03705a92bbfef178ccaf3c977d65cd15d.tar.xz
baldeagleos-repo-129088e03705a92bbfef178ccaf3c977d65cd15d.zip
Adding metadata
Diffstat (limited to 'dev-python')
-rw-r--r--dev-python/contourpy/contourpy-1.1.0.ebuild2
-rw-r--r--dev-python/langdetect/Manifest2
-rw-r--r--dev-python/langdetect/metadata.xml10
-rw-r--r--dev-python/meson-python/meson-python-0.13.1.ebuild2
-rw-r--r--dev-python/pypy-exe-bin/Manifest8
-rw-r--r--dev-python/pypy-exe-bin/pypy-exe-bin-7.3.12.ebuild79
-rw-r--r--dev-python/pypy-exe/Manifest2
-rw-r--r--dev-python/pypy-exe/pypy-exe-7.3.12.ebuild177
-rw-r--r--dev-python/pypy3_10-exe-bin/Manifest8
-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/Manifest2
-rw-r--r--dev-python/pypy3_10-exe/pypy3_10-exe-7.3.12.ebuild127
-rw-r--r--dev-python/pypy3_10/Manifest2
-rw-r--r--dev-python/pypy3_10/pypy3_10-7.3.12.ebuild208
-rw-r--r--dev-python/pypy3_9-exe-bin/Manifest8
-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/Manifest2
-rw-r--r--dev-python/pypy3_9-exe/pypy3_9-exe-7.3.12.ebuild127
-rw-r--r--dev-python/pypy3_9/Manifest2
-rw-r--r--dev-python/pypy3_9/pypy3_9-7.3.12.ebuild208
-rw-r--r--dev-python/wurlitzer/wurlitzer-3.0.3.ebuild2
21 files changed, 1135 insertions, 7 deletions
diff --git a/dev-python/contourpy/contourpy-1.1.0.ebuild b/dev-python/contourpy/contourpy-1.1.0.ebuild
index ca8b6d01a1bf..a7e13f876818 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/langdetect/Manifest b/dev-python/langdetect/Manifest
index a11d7c268c91..e9da2ac43cac 100644
--- a/dev-python/langdetect/Manifest
+++ b/dev-python/langdetect/Manifest
@@ -1 +1,3 @@
DIST langdetect-1.0.9.tar.gz 981474 BLAKE2B ea8a9c3f16a2987c080742473bff4f2c1503f53fb3c2b40b0b1d6212bb6133ea22dce7864ffcfb8968c3a46b157d45cb3e2cf6f84bdbed0266cc716a853b032c SHA512 7558d674c47b080c79e43a00a25d2c7f77188cf60bea2cecb3bebb803d75e1aa42b43c74bd26ea1b541f4cb927421908882cbec01a91f0913984217e71ccc8db
+EBUILD langdetect-1.0.9.ebuild 493 BLAKE2B 0df8bce19bc80f79f8e76bcef5a4c2caf333365fe0cb9a3c076b7858bceded5a3e58921474f866a2709dd657b7ed330c1ec4a7f9d7bab0fcf1bc92d77cabc32d SHA512 ea2a1adcb133ac5fc951ba1aa90ef1ce3dfcc424e59727591763d4875aa044a74188be2d15fd89c6b2e83ed6ea04ec3d9851ed584ae79d2c2c127bde7d994b48
+MISC metadata.xml 457 BLAKE2B 630128a3e982b6d60cc7b9f74c79fcb5ee47a71a02c73a50af9da8cedb6fad8e20a7f74b881e5b25c6483b92c9edbd56552cd38b2d9cbfa8b3eb4530facea969 SHA512 674f4f5cd809c6c77bc14e0f5687fa972bef14bdfa0b3343c5d66b7163eef1906eb87d060c8288732f825de71dce291ad0b841a5f2f0dd230f957b5687e45d45
diff --git a/dev-python/langdetect/metadata.xml b/dev-python/langdetect/metadata.xml
index ddb5b0f1787e..020e07f2a3dd 100644
--- a/dev-python/langdetect/metadata.xml
+++ b/dev-python/langdetect/metadata.xml
@@ -2,9 +2,11 @@
<!DOCTYPE pkgmetadata SYSTEM "https://liguros.gitlab.io/dtd/metadata.dtd">
<pkgmetadata>
<maintainer type="person">
- <email>cyber+gentoo@sysrq.in</email>
- <name>Anna</name>
+ <email>marcin.deranek@slonko.net</email>
+ <name>Marcin Deranek</name>
</maintainer>
-
- <origin>gentoo-guru-overlay</origin>
+ <upstream>
+ <bugs-to>https://github.com/Mimino666/langdetect/issues</bugs-to>
+ </upstream>
+ <origin>slonko-overlay</origin>
</pkgmetadata> \ No newline at end of file
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 0f2115d4c2df..ed8b610ed674 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 e7f6ce1cc8bf..78dc5ec17ca5 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
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 e2cd0b09858f..78bd3992bd15 100644
--- a/dev-python/pypy-exe/Manifest
+++ b/dev-python/pypy-exe/Manifest
@@ -1,6 +1,8 @@
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
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/pypy3_10-exe-bin/Manifest b/dev-python/pypy3_10-exe-bin/Manifest
index 6671d9cacf77..aff8c11a4017 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
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 a5f10a112902..09ca609fe384 100644
--- a/dev-python/pypy3_10-exe/Manifest
+++ b/dev-python/pypy3_10-exe/Manifest
@@ -1,2 +1,4 @@
+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
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 8616cfe77a19..69b741f8470c 100644
--- a/dev-python/pypy3_10/Manifest
+++ b/dev-python/pypy3_10/Manifest
@@ -1,3 +1,5 @@
+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
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 1e877888f58b..7ca64fe719a5 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
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 7982662b600c..db0c20cda216 100644
--- a/dev-python/pypy3_9-exe/Manifest
+++ b/dev-python/pypy3_9-exe/Manifest
@@ -1,2 +1,4 @@
+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
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 7982662b600c..db0c20cda216 100644
--- a/dev-python/pypy3_9/Manifest
+++ b/dev-python/pypy3_9/Manifest
@@ -1,2 +1,4 @@
+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
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/wurlitzer-3.0.3.ebuild b/dev-python/wurlitzer/wurlitzer-3.0.3.ebuild
index 477ce4c84398..9d25661dd810 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