summaryrefslogtreecommitdiff
path: root/dev-python
diff options
context:
space:
mode:
Diffstat (limited to 'dev-python')
-rw-r--r--dev-python/Manifest.gzbin269246 -> 269257 bytes
-rw-r--r--dev-python/ffmpeg-python/Manifest2
-rw-r--r--dev-python/ffmpeg-python/ffmpeg-python-0.2.0.ebuild13
-rw-r--r--dev-python/pypy-exe-bin/Manifest11
-rw-r--r--dev-python/pypy-exe-bin/metadata.xml3
-rw-r--r--dev-python/pypy-exe-bin/pypy-exe-bin-7.3.15.ebuild82
-rw-r--r--dev-python/pypy-exe/Manifest5
-rw-r--r--dev-python/pypy-exe/metadata.xml3
-rw-r--r--dev-python/pypy-exe/pypy-exe-7.3.15.ebuild181
-rw-r--r--dev-python/pypy/Manifest5
-rw-r--r--dev-python/pypy/metadata.xml3
-rw-r--r--dev-python/pypy/pypy-7.3.15.ebuild306
-rw-r--r--dev-python/pypy3/Manifest1
-rw-r--r--dev-python/pypy3/pypy3-7.3.15.ebuild26
-rw-r--r--dev-python/pypy3_10-exe-bin/Manifest11
-rw-r--r--dev-python/pypy3_10-exe-bin/metadata.xml3
-rw-r--r--dev-python/pypy3_10-exe-bin/pypy3_10-exe-bin-7.3.15.ebuild85
-rw-r--r--dev-python/pypy3_10-exe/Manifest5
-rw-r--r--dev-python/pypy3_10-exe/metadata.xml3
-rw-r--r--dev-python/pypy3_10-exe/pypy3_10-exe-7.3.15.ebuild136
-rw-r--r--dev-python/pypy3_10/Manifest5
-rw-r--r--dev-python/pypy3_10/metadata.xml6
-rw-r--r--dev-python/pypy3_10/pypy3_10-7.3.15.ebuild212
-rw-r--r--dev-python/pypy3_9-exe-bin/Manifest11
-rw-r--r--dev-python/pypy3_9-exe-bin/metadata.xml3
-rw-r--r--dev-python/pypy3_9-exe-bin/pypy3_9-exe-bin-7.3.15.ebuild85
-rw-r--r--dev-python/pypy3_9-exe/Manifest5
-rw-r--r--dev-python/pypy3_9-exe/metadata.xml3
-rw-r--r--dev-python/pypy3_9-exe/pypy3_9-exe-7.3.15.ebuild132
-rw-r--r--dev-python/pypy3_9/Manifest5
-rw-r--r--dev-python/pypy3_9/metadata.xml6
-rw-r--r--dev-python/pypy3_9/pypy3_9-7.3.15.ebuild211
32 files changed, 1551 insertions, 17 deletions
diff --git a/dev-python/Manifest.gz b/dev-python/Manifest.gz
index c6c407e92f43..c09f69cd145c 100644
--- a/dev-python/Manifest.gz
+++ b/dev-python/Manifest.gz
Binary files differ
diff --git a/dev-python/ffmpeg-python/Manifest b/dev-python/ffmpeg-python/Manifest
index 5afe16f8f92b..bb6aca640d2d 100644
--- a/dev-python/ffmpeg-python/Manifest
+++ b/dev-python/ffmpeg-python/Manifest
@@ -3,6 +3,6 @@ AUX ffmpeg-python-0.2.0-no-future-795.patch 6088 BLAKE2B 259372f7b0ab18eecc387cc
AUX ffmpeg-python-0.2.0-setup.py-pytest-runner.patch 366 BLAKE2B 874898215b2102406fa11ab4e2289671dc03a8b40a8831aa6958048b94c64a5cd1cd34d326539144ebe549046cb0df074e6ffb4b37a72aaa44d94c0bc161cfb6 SHA512 627bfc39b3f0feef02306d73d8dc113673483e0e1aa5182cada9d12195413d7638b94071a76b546092061d6916d45575a42aa5d949c8bd9df737c34b1b62ea71
DIST ffmpeg-python-0.2.0.tar.gz 3267771 BLAKE2B 8bca4a24434b6c7a542e3c178cb7bf1e5650f9763636d5378f9652cdd07ef19b0e96007d6bb71fdf1664efb6e33d597844c7d6a44dc8dcb1c083e21f53649469 SHA512 933ed958d61536bbbc0e0b08e19521c4b1f7df1cfe97de0b3d149a2748c5bd74915a3134861e8ecb1f92d5860315228b76aefcd087fcf07e188a56c651f5e301
DIST ffmpeg-python-0.2.0_p20220711.gh.tar.gz 3286678 BLAKE2B f2dd4445f43ebf2a867d528e24e80b137ddc099770069e1fdf081b640f8ea192ee0b17c26d9ee3d8a69a9c7bbd61d0b75cc3468aa5da4fdd809e50126dff4e06 SHA512 81f20e5cad819500b941d9ac579fe01efb4292f61e6279c6d560d70c11143d7c04146a8ccf9ae8ab6985cf04e6b7cc05849ec67df646caa75764f3a2c5761cde
-EBUILD ffmpeg-python-0.2.0.ebuild 917 BLAKE2B d62bec0570717bd80bb3d6b400467c6a2a5e5653bbe0fe5402e71ae42f0ffb42244caff0bcbe5e9c610cd799999ec1a7912190bbda54ad1d19a0aea2615dd367 SHA512 1726b029f532ecdcdd73adc4498cecf380a5b7ce78c96f4b7ae8b3dac11bbab3c1862b569081a1af54fdd66ff8db088eb957fbc6b2d740e471a95661a79ca564
+EBUILD ffmpeg-python-0.2.0.ebuild 1362 BLAKE2B a4de875270a6828e1daca329421ced60179fa07f88257e4bd0b047736b5f44e977ed73a7cdc0c858e522184295e8771c94bf641758467d92336e96587d4b44e8 SHA512 f337a2b35f737bd93ef765e04ddcdbfdbccd29bf079c6d9b266021cb9cd8c7e13ff3dc58e5b101bd5deedccb89fa334b1dc989f470ffe9fe531c187c3f71ccc3
EBUILD ffmpeg-python-0.2.0_p20220711.ebuild 1409 BLAKE2B 8cf02ec06819c3fbb60586b2c608c6a3f427a127838f7badd658a9ba9a2d06f06a83b1a3010dab4378a592de786c86d528b22e55e334564cdadc072ba7fa05ca SHA512 38562a541681e01bf19a4751479b811defa86448799e0e7dfd6574139c96753aca707e19384d1ad22426b1874c2ba889c4af39197b3c94f92a51507cc792e53e
MISC metadata.xml 577 BLAKE2B b155f565cf1946c705d3e9ad1a6f350235eebbb065bd109e53825cac7103c266f5fe675795daeeee960c36857e7ba88e72694ea42a7f5630117194bb9a72891d SHA512 aad6a67315534a72e86b1cf3146f7f43612c1e3a3782a681541e4ed4e6d5be70b2f1d46167fd0dd7efbe3bb07699787423b609b5da27a13e65081014adcd1653
diff --git a/dev-python/ffmpeg-python/ffmpeg-python-0.2.0.ebuild b/dev-python/ffmpeg-python/ffmpeg-python-0.2.0.ebuild
index 030b42d5156f..fd18cd92f295 100644
--- a/dev-python/ffmpeg-python/ffmpeg-python-0.2.0.ebuild
+++ b/dev-python/ffmpeg-python/ffmpeg-python-0.2.0.ebuild
@@ -1,4 +1,4 @@
-# Copyright 1999-2023 Gentoo Authors
+# Copyright 1999-2024 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
@@ -34,5 +34,16 @@ PATCHES=(
"${FILESDIR}"/${P}-setup.py-pytest-runner.patch
)
+EPYTEST_DESELECT=(
+ ffmpeg/tests/test_ffmpeg.py::test__get_filter_complex_input
+ ffmpeg/tests/test_ffmpeg.py::test__input__start_time
+ ffmpeg/tests/test_ffmpeg.py::test__multi_output_edge_label_order
+ ffmpeg/tests/test_ffmpeg.py::test__probe
+ ffmpeg/tests/test_ffmpeg.py::test__probe__extra_args
+ ffmpeg/tests/test_ffmpeg.py::test_fluent_complex_filter
+ ffmpeg/tests/test_ffmpeg.py::test_pipe
+ ffmpeg/tests/test_ffmpeg.py::test_repeated_args
+)
+
distutils_enable_tests pytest
distutils_enable_sphinx doc/src
diff --git a/dev-python/pypy-exe-bin/Manifest b/dev-python/pypy-exe-bin/Manifest
index 8dc5eea12d18..c56a6a750d60 100644
--- a/dev-python/pypy-exe-bin/Manifest
+++ b/dev-python/pypy-exe-bin/Manifest
@@ -14,6 +14,15 @@ DIST pypy-exe-7.3.14-1.ppc64le-musl.gpkg.tar 6696960 BLAKE2B 7478945b927d9df57e1
DIST pypy-exe-7.3.14-1.ppc64le.gpkg.tar 11110400 BLAKE2B 2651e0d0b592020a7b70a6bc43bd6d1eecc3842022a7fe09668abed088c2b6cbddc91f6dfa23a1474199290a2b1cc90111c3d5225c55b88e96ca26e19fe836f0 SHA512 aba7abe80d340ecedaaaf47747a109a32cf15bc0b2b16e3272440e8405b91314e423668c301a5cefa4a6b49c3718611012c138f5dc969cc78b5c8c53407ccdac
DIST pypy-exe-7.3.14-1.x86-musl.gpkg.tar 9830400 BLAKE2B 2c8b24951ed3f74ffca0be4e4f3c9e841240591d2b66a996f7028011270b292702e827ca59a1591a439fa3adcc1d5e3167d87fd9a15799985389acc3ede9b82d SHA512 dac584239b247738165d650b9b7da87cf006ee88081f32b8daaebd1dfb62aef86c0278b93a1b161ffd7bb0d15675fb7c85f18b373202389536c671194dffc227
DIST pypy-exe-7.3.14-1.x86.gpkg.tar 9861120 BLAKE2B 02fb30d79d4dc7f844179f9f8ea42e8e4db607bf58b43f944dc2c2dcfaf1adf3acede93c32785bf46bb259af546a891471f558db7a00e653bf169760130dc0eb SHA512 e586be487950f0e33c558c8a2fc9f97fc46e9b4e5c113870661e45ee3c553b21686818eb36829b525201c24ec4c13da14bb22c723ae118ca40f222d2bf826458
+DIST pypy-exe-7.3.15-1.amd64-musl.gpkg.tar 12912640 BLAKE2B 7119865aae291e7920f7f62f489468696d9c508046db9ab3060ee6bd443dc7f4136670d0de45cd8f84c9231ec25b6664354208db4a7195d3a26c385b599b5258 SHA512 42305bd1c9f8034ef6dbcf25ae2f2318b8eb30fd04dd8de531b1a9a66304861331027722261101984194c4850e541ffa5b522d5188987b213f97057e3dc8a3cc
+DIST pypy-exe-7.3.15-1.amd64.gpkg.tar 12892160 BLAKE2B 75c496341f45db9f9e3a202bf3f6f80e8d10f21588ffefef630920f9c4518aa7e4089ef7bd6287110123bed64a18081b6e739e590deff64ed5258ce318f81972 SHA512 bdc35fa69d8fbcdeb55e7707450197d5bedf33422e4cf7c8ee21e88d8673e0781e626a871c6ddd671248fb90d9474c3bc7371d771dcc81f9b88f413599d5ff3a
+DIST pypy-exe-7.3.15-1.arm64-musl.gpkg.tar 10874880 BLAKE2B 69fcbab296f95a4c1ac1daea9e97de09d89949fdf8e247e1229a134a5eeda586e044c87ccd05a762656ad2d14cc8fc5ce1b7a65ae4f0568668b66e9f6a33b003 SHA512 b3b6164760dadbcc0af6151209e449f9143e6117fa4863d11502a0dbfca4efc0ad95c63f9a7b773a0a25f68a6028f8ed5fd8487b14ac8da565da480e706742d1
+DIST pypy-exe-7.3.15-1.arm64.gpkg.tar 10874880 BLAKE2B 5d4c6f3f422d1a90fb47a7603aacc1470dab6d5779a03b2bf07eb57035490d89abd7226a314a93f93566a5ff9703bc5a267c57ff6e6d4e7e6d3f7abf7763e78d SHA512 0400d9478de16a8e1e4ce312def4f4508470996268430d12a7f8def41e4d12cd69433f00fc61ba9b6056fba6090fd82e87ebe2d4da6314957c69c00e343717e1
+DIST pypy-exe-7.3.15-1.ppc64le-musl.gpkg.tar 6696960 BLAKE2B a39cb7d46c4a877b2eab6c81c2728dea490953e71fda305c84eaca0131c8088372b14570bb06feb449201d67b5a416362a8571fee850c8109ec9f18890f5f2d3 SHA512 40a23a44ef11eefb4d7680ad947ec72e34e00e4fcd1a7f04cb078320dd8222918d5113de6d42b9e45a42066af861130887647087a40f6515e7ff4ba9cf0db07f
+DIST pypy-exe-7.3.15-1.ppc64le.gpkg.tar 11100160 BLAKE2B 294ba3f95fc81122348747e922f589d16028a34bcc5dee12464a06584986f3bd6e542a4f097d7fdee3348d727bf4bbf1fdd6beb655f8e34f4608b319e22e8339 SHA512 c374a605372cd200cf7c7cd8792c74dd1187fc77c5405537539823044da344bde5a540442bcde39aaaa7c8bc330ea03896311e8353e0e81bab312fac40ff60fc
+DIST pypy-exe-7.3.15-1.x86-musl.gpkg.tar 9861120 BLAKE2B 97d3d7b80150246c49688847d2a7008cade36a0a3c89c3223be6205cf17c4623520786b393c301d42146863afb6118f7b58bb406a25bdabd9b6737016cee8718 SHA512 ca98a1bce5cbc9e9d2b90c6766b6eee094165420c38c676e63a185f54db50f275723b4b5e6183b1cc44ffec199973a57c3b0cc5fb4b0b9c6ebc2837ba84095a8
+DIST pypy-exe-7.3.15-1.x86.gpkg.tar 9902080 BLAKE2B 79cc4705c9ebdac2a4a982f095750538ecb63ca38db97dcd995ce922781f80c006311025f8e51dc8e4ef32ebfaa0ae4ae333513b19e9778503947edd1a7c69bd SHA512 12cda3f33a38c3a624095ddd25bcdde8b3ecb5b6886182ee94d7149389703b98733413d6dcbb818d9363195b46d89fc997620e72b9bd26f797223604707fef57
EBUILD pypy-exe-bin-7.3.13.ebuild 1947 BLAKE2B ced9c32c68bc0d6991a3c023c5ac6f3952cae5be14c39bbaf498c2efa249715235747526090d59f6a39da4645c83551ebfebabb2a2c7a25343c5acb64d9a1d6e SHA512 3ca0ae4098385dbd208bb3d069b17f9654b2b61b8d85fc822776a91e69341a60492c101310c24fc10a7d0e68b080ce28976d1bc9d5c120dbb40d4af04a7215ae
EBUILD pypy-exe-bin-7.3.14.ebuild 1949 BLAKE2B 144e22713546812ee4664e6c7f092188d521a4c5788f2b1473d2e0fe7ad3b49a16f6965ac4ee194e51d5b64e599b5d80f84fce2cc13b1c667f245f6f75e16847 SHA512 a6905d688350e83368fb1ab2ba273b730adf4be279b45ee3d78d2721532cfd0a1919b694be446df9c7cd2c2fbdf023614dcbd9ef5554c006b9fad0fc4f5cdd87
-MISC metadata.xml 241 BLAKE2B 4f18c355c71824c25df283b2d463a5abbf2295446e74b960e868dd78d4910ac066725450478087567a6e66b7a8948d99e053f13a7e58dbf2b89fdaf5c2f3436c SHA512 c46e70ffd66754ad84c64806f2bbff25ba9a688f035176a4565afc95351ce10fffba64bbde89965501460b05978c7e59b3d84db6a8cb6efff4055d4b7a5ab5d8
+EBUILD pypy-exe-bin-7.3.15.ebuild 1983 BLAKE2B 615619171184e5afbc664e02b44e922677024e858d1bdcb94fcdf0a366a89182f1cd985972fa25a8ac3ef8a80aa174eed2025f7250fab9bf011eda329e3d6adb SHA512 e5a3c1e90aec2ca9832c33d8171520a8cc65a32bf40d85fb0eb32cea2a487e194ceee23ad46530f6c5258634eaeb23d32197826febef1c2881957eeec2c4df00
+MISC metadata.xml 315 BLAKE2B da5ed341c55250028587ffb479a27b7ec31eb0f8bd0e11b8a98a374e23d989f7d5bcce647ca9c78cd12f64b6b83dd0568c4f3a992a6c8c5089c52cef9de87441 SHA512 ebe1c4d655c49fd20127dd240b603f1b99d67c0a6d21c7eb37bee48f4ec6bba50648816ea2b1b746af58fcf8de576d24fe355ecfa2de07ebaa0265ade2ea38ba
diff --git a/dev-python/pypy-exe-bin/metadata.xml b/dev-python/pypy-exe-bin/metadata.xml
index efd7c8c21836..2ed15cb705e2 100644
--- a/dev-python/pypy-exe-bin/metadata.xml
+++ b/dev-python/pypy-exe-bin/metadata.xml
@@ -5,4 +5,7 @@
<email>python@gentoo.org</email>
<name>Python</name>
</maintainer>
+ <upstream>
+ <remote-id type="github">pypy/pypy</remote-id>
+ </upstream>
</pkgmetadata>
diff --git a/dev-python/pypy-exe-bin/pypy-exe-bin-7.3.15.ebuild b/dev-python/pypy-exe-bin/pypy-exe-bin-7.3.15.ebuild
new file mode 100644
index 000000000000..c0fdb67c4006
--- /dev/null
+++ b/dev-python/pypy-exe-bin/pypy-exe-bin-7.3.15.ebuild
@@ -0,0 +1,82 @@
+# Copyright 1999-2024 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/
+ https://github.com/pypy/pypy/
+"
+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 422250f0ca7c..da85f0d8f9cd 100644
--- a/dev-python/pypy-exe/Manifest
+++ b/dev-python/pypy-exe/Manifest
@@ -1,7 +1,10 @@
DIST pypy2.7-gentoo-patches-7.3.13.tar.xz 5340 BLAKE2B 843a7a5e4c2fd56fc4db51ba388736c0aa6593d45b145503f6428783a9fd815a77e2a06809077effced6fccf75c0dd38527a0695211852fd2a4c61b34e40c15c SHA512 cc8f6fc69f00030609a8d79f05a60b2e185141e9fc70a53b476b60a183dd0500627023658c6a57c2412f32af1db6fae91a361a4992d84e7dfbadb7eb4a98b8a1
DIST pypy2.7-gentoo-patches-7.3.14.tar.xz 5344 BLAKE2B 841556694ad6bb61ea96e063c125508d574fa0be493f930435dff784a35def18c17d510c7123229cf85d576111b4a721cb52341ebb5f618d731335fbcf9ed267 SHA512 ccc8d03a17825607fb41c1e3926ff17908bd644542d9431c8f9291ed10a852416cf91b09c5c0ba0446f73208755b3bbb742c926be55875cfd69646f1ac7a8cae
+DIST pypy2.7-gentoo-patches-7.3.15.tar.xz 5324 BLAKE2B 395b1292b59cc9b2147fd488726d7cb2c18e7240d604d0bb19f172654c87b453a27f33f29bd2c1cb230d35b660457a317247c3b2eb73e8f3247c7d01fd35aa6a SHA512 698a58b30f5a4785e2d94c38cb0e7ce2666b6b621ee0ae4e9fd51862efce13449342afe6408edc9f4ba68497f2138d653617fa4a31cd925a51a048dd79467913
DIST pypy2.7-v7.3.13-src.tar.bz2 19907651 BLAKE2B ce80db193afadbc721e781cbfe3d72bfe420eef3ede408f23213ab5d87a9a42c025d3c31c742dcb55a039b618930ebc4899d704f060d294f2e492d4d754effba SHA512 deeca234abbe526102cec637dc88399f462f64ae66c38782e6f3372b484d25fa4e88b906f783ba515bed17d2e82626d1c94fd6ee9b8b64e393f9bc0f5ee2b07b
DIST pypy2.7-v7.3.14-src.tar.bz2 19910947 BLAKE2B 3d03b16b4e6344b8590aaf1815202782bb355ab21422c5ea5b40cd84f36fa2ff37b2493313a3faf242039b9b91e3c8ea8fe1237a487a0dac44e4c27bf29f5f85 SHA512 e806aedc1625c1601fa623c3b03881f820d37455c5432bef345f85ef0300247f7725efe3bf470fe533aa422dbceaadca636d0c4bf74c65e1e04c0f82380e53f0
+DIST pypy2.7-v7.3.15-src.tar.bz2 19834343 BLAKE2B 4e1145cac007223de0616029dfe763a8d2b3e25a6d867c98da0e8e0431d775c6aa7e50834c761e19f96b96309dbb415a39d7811c68b1b3a26c16cd222911205d SHA512 40448c7c94878bcb88402de8719a4a6a4ffe3f68d7e70500f04fe77a460b1605c83dace360988d2dae70fa2c9bb31a20c22003f70a3a2fde988f6d60507edefe
EBUILD pypy-exe-7.3.13.ebuild 4060 BLAKE2B 5c6883e608eba8f972af83966b23dfd3e13edfeeb511d1a47f303b60746d5cb08ab9bdb9914b5b7dd2ff6ef630e15a0fca3a3c3f253e4f76aca7145ff72cf35c SHA512 d5dc8433dd88b0ae58b3283ad233dd7524acf31763e917e46ab8f837623d340f4d487a06fce679a7e91fa96cf89acf98171a423acf4b0251776f1e2abdf41c0c
EBUILD pypy-exe-7.3.14.ebuild 4062 BLAKE2B b9437200b3738b7e2d76cc05aee4847d4b4e4757ce3631391f345a66d7dc5ed587bcff75d4c8d2d158181578800dc0aaaca794107170ead0ee0072855164cb1a SHA512 e89eea8f316311d8b84b3e493029579d66774e4f41fb6af9d6ce1696470a8d22c967375bba37cfafa1e6288a04f55f2c199311ad8cc0e5073bc915601193affa
-MISC metadata.xml 498 BLAKE2B 8dbcdb7c3a4a2fa5d1a922fd5197fb5e3337adcaec1e7d382f25f8696c80726e5b79843477bf8e5ce131aecde6e2c4c283548c5b337e54cb58aaa066013c445a SHA512 8a9bb514bbf3bf328aa63734e1fdc106f6aaf5ccb88c29ad8a686ab2724f3d1f4727163500013dd16e7b34232b881cf47d2f174212b5428ee076af27cf43628d
+EBUILD pypy-exe-7.3.15.ebuild 4151 BLAKE2B e538d92455d65fd018140e60effcff16214f6ab769684d404dfc13c926b0a8d991c0aa31aba24472d73dfca126b81cefebdc408796d507360a819fa5175e008e SHA512 63c2e03db16741e1714042fe0494e8740e6a103715073718971d2980cc1887b9dd7ee6a13d2ff1ecf91e7a8653690880b236a266ebb7c0ff0b8f46a54822e897
+MISC metadata.xml 572 BLAKE2B cfcd1422ec312338fd876bc4747a962ac3c4bd06e28a3891489b065fba4c7be2daa6955f51e8136d9b8cf7b68bb7eb887b6f419ee9fd626ebd6db204acb7995d SHA512 c79250d47e3d5c99c2c903bfc185449cc41f88e2b923b8eae1401e83c0f23fa1a12ad85f50b6e25844e805e543ae897ccf43185a1bdf9f992dff765249e55bc1
diff --git a/dev-python/pypy-exe/metadata.xml b/dev-python/pypy-exe/metadata.xml
index 9f1f42740089..3f2aeb55aa5e 100644
--- a/dev-python/pypy-exe/metadata.xml
+++ b/dev-python/pypy-exe/metadata.xml
@@ -5,6 +5,9 @@
<email>python@gentoo.org</email>
<name>Python</name>
</maintainer>
+ <upstream>
+ <remote-id type="github">pypy/pypy</remote-id>
+ </upstream>
<use>
<flag name="low-memory">Build using PyPy with the engine configured towards low memory footprint.
This makes it possible to build PyPy using ~3.5G of RAM on amd64 and ~half of that on x86,
diff --git a/dev-python/pypy-exe/pypy-exe-7.3.15.ebuild b/dev-python/pypy-exe/pypy-exe-7.3.15.ebuild
new file mode 100644
index 000000000000..7af34673edb7
--- /dev/null
+++ b/dev-python/pypy-exe/pypy-exe-7.3.15.ebuild
@@ -0,0 +1,181 @@
+# Copyright 1999-2024 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/
+ https://github.com/pypy/pypy/
+"
+SRC_URI="
+ https://downloads.python.org/pypy/${MY_P}-src.tar.bz2
+ 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 6e4af980d565..4558ba0e83fc 100644
--- a/dev-python/pypy/Manifest
+++ b/dev-python/pypy/Manifest
@@ -1,7 +1,10 @@
DIST pypy2.7-gentoo-patches-7.3.13.tar.xz 5340 BLAKE2B 843a7a5e4c2fd56fc4db51ba388736c0aa6593d45b145503f6428783a9fd815a77e2a06809077effced6fccf75c0dd38527a0695211852fd2a4c61b34e40c15c SHA512 cc8f6fc69f00030609a8d79f05a60b2e185141e9fc70a53b476b60a183dd0500627023658c6a57c2412f32af1db6fae91a361a4992d84e7dfbadb7eb4a98b8a1
DIST pypy2.7-gentoo-patches-7.3.14.tar.xz 5344 BLAKE2B 841556694ad6bb61ea96e063c125508d574fa0be493f930435dff784a35def18c17d510c7123229cf85d576111b4a721cb52341ebb5f618d731335fbcf9ed267 SHA512 ccc8d03a17825607fb41c1e3926ff17908bd644542d9431c8f9291ed10a852416cf91b09c5c0ba0446f73208755b3bbb742c926be55875cfd69646f1ac7a8cae
+DIST pypy2.7-gentoo-patches-7.3.15.tar.xz 5324 BLAKE2B 395b1292b59cc9b2147fd488726d7cb2c18e7240d604d0bb19f172654c87b453a27f33f29bd2c1cb230d35b660457a317247c3b2eb73e8f3247c7d01fd35aa6a SHA512 698a58b30f5a4785e2d94c38cb0e7ce2666b6b621ee0ae4e9fd51862efce13449342afe6408edc9f4ba68497f2138d653617fa4a31cd925a51a048dd79467913
DIST pypy2.7-v7.3.13-src.tar.bz2 19907651 BLAKE2B ce80db193afadbc721e781cbfe3d72bfe420eef3ede408f23213ab5d87a9a42c025d3c31c742dcb55a039b618930ebc4899d704f060d294f2e492d4d754effba SHA512 deeca234abbe526102cec637dc88399f462f64ae66c38782e6f3372b484d25fa4e88b906f783ba515bed17d2e82626d1c94fd6ee9b8b64e393f9bc0f5ee2b07b
DIST pypy2.7-v7.3.14-src.tar.bz2 19910947 BLAKE2B 3d03b16b4e6344b8590aaf1815202782bb355ab21422c5ea5b40cd84f36fa2ff37b2493313a3faf242039b9b91e3c8ea8fe1237a487a0dac44e4c27bf29f5f85 SHA512 e806aedc1625c1601fa623c3b03881f820d37455c5432bef345f85ef0300247f7725efe3bf470fe533aa422dbceaadca636d0c4bf74c65e1e04c0f82380e53f0
+DIST pypy2.7-v7.3.15-src.tar.bz2 19834343 BLAKE2B 4e1145cac007223de0616029dfe763a8d2b3e25a6d867c98da0e8e0431d775c6aa7e50834c761e19f96b96309dbb415a39d7811c68b1b3a26c16cd222911205d SHA512 40448c7c94878bcb88402de8719a4a6a4ffe3f68d7e70500f04fe77a460b1605c83dace360988d2dae70fa2c9bb31a20c22003f70a3a2fde988f6d60507edefe
EBUILD pypy-7.3.13.ebuild 7044 BLAKE2B 318cb3094bdfe996eab44bff918703747e01d28accba19c111b62a64ea2c41b899222db2ef964bacf4db83eb31b48ad3c1a0ed16c3dce98fbe0498938b2f8090 SHA512 5815a10db7550687502c5109a5927d3752f3263beb641de2cca22a87a83d744ba5d1a64ca6d8f6a1f026a3c5d596b0f9e2fc25b1b58149b5e16c1f90e45db54c
EBUILD pypy-7.3.14.ebuild 7046 BLAKE2B d1944efab0f0b0a034081c4b012a9a4dab5b829bdccc2a43c0410680620555eeb39c1ddc936aef3d2ea9eaba7dc5ea1ca315f38abc1e8099ca35694b0b97f2d4 SHA512 7c25069635329e92065922c6668915b9816bfde79b4779cc907c457af6da7e7c1940e3d8267623af7c5179711efdd777aa7c1a0a9d2fec38e4e5eebbca02a748
-MISC metadata.xml 565 BLAKE2B 956a62e9d3632a7ab9ade67527bae54fe0b58d79a6c2f26dc7017a6b8d337f7e5a155b747f24b98f345eb9e1d15c3f38d8530212ad16cfa5292d6cb1ecbf3e91 SHA512 6dd5bc7712533a926b7efdba10c3bea32c813d703916f6bf152ff14f7561cdc466354c8fdbb9640afe415daa3cf2d9365351261e89b8aadfae7b74afd48ae061
+EBUILD pypy-7.3.15.ebuild 7135 BLAKE2B 56bb977f353a6d869d9fe4d70c47d3c57a6377577bfe899948aa9ca184122e4518ae2d51cc12f4f1fd454ec8e119c73da248f8cf4ec99121c8addf8c48465020 SHA512 a990eebd0fe30035e99d00805961f6564cf2dd346e63906815e9e3d4206308ce6a6555f2d255931369bd38ffc0d4debcfbd7be878ded97829352cd25a029edc8
+MISC metadata.xml 639 BLAKE2B 4a977b801c8dd73ca9b2dec71aaf6d008515b5eef249c59f17a98dce945028e17bea147a6b916c685820fc177c8cb07732688ddee1eab3933334e81342e525f1 SHA512 5d6e6734b07f454b25f3fba961b38f91a34c7f495f711bc82540b3c84d24909ef910d9cf0ea1d912e347bcd4711cbd2091d6d3814f4d21d5b56ce0ac70366854
diff --git a/dev-python/pypy/metadata.xml b/dev-python/pypy/metadata.xml
index 786955f8b2f0..f0c3b30b4ce3 100644
--- a/dev-python/pypy/metadata.xml
+++ b/dev-python/pypy/metadata.xml
@@ -5,6 +5,9 @@
<email>python@gentoo.org</email>
<name>Python</name>
</maintainer>
+ <upstream>
+ <remote-id type="github">pypy/pypy</remote-id>
+ </upstream>
<use>
<flag name="full-stdlib">
Install complete stdlib as necessary to use PyPy for general
diff --git a/dev-python/pypy/pypy-7.3.15.ebuild b/dev-python/pypy/pypy-7.3.15.ebuild
new file mode 100644
index 000000000000..6e2429669fac
--- /dev/null
+++ b/dev-python/pypy/pypy-7.3.15.ebuild
@@ -0,0 +1,306 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit pax-utils
+
+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/
+ https://github.com/pypy/pypy/
+"
+SRC_URI="
+ https://downloads.python.org/pypy/${MY_P}-src.tar.bz2
+ 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 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}" -m compileall \
+ -x 'bad_coding|badsyntax|make_ssl_data|lib2to3/tests/data' \
+ -q -f -d "${dest}" "${ED}/${dest}" || die
+
+ # remove to avoid collisions
+ rm "${PYTHON}" || die
+}
diff --git a/dev-python/pypy3/Manifest b/dev-python/pypy3/Manifest
index cc413c300375..ebac06ee8bb6 100644
--- a/dev-python/pypy3/Manifest
+++ b/dev-python/pypy3/Manifest
@@ -2,4 +2,5 @@ EBUILD pypy3-7.3.13.ebuild 583 BLAKE2B 9308115fd68cc96beed284dcd1eec6f3a404254b4
EBUILD pypy3-7.3.14.ebuild 585 BLAKE2B 5c5704a58e65e6d2bc4272988aaf0ca2e4b2bb21aa316c629ebb8594500743add0a901704f0a2ded2aa803841d4ec16a754884f435ece9a8682da1a70a1a2bff SHA512 3513a60f7264acf12d10d9b1921e843460db4aadaca2b0137a624a870a2ee31a44c52ed065d0cab4a9c35c1c24fbaaffbfd1dab838d1e12117ee53e528e8e481
EBUILD pypy3-7.3.14_p1.ebuild 585 BLAKE2B ee89e4b7c3d3abf4c149145605d6dddbbd27d68f5bacf36a5a5e07aa4b1c6e4cde77e5a9f6599777674d1e6a0c0738edd3c25c979765ab045c886110e04e3a65 SHA512 f4281ec2cfe94d7997d5f15dbc01e7b113073b9fbc589b42926eee397771eed9fd66198c463b14fce7e74d25650098b3fe4b85b62ea9ef3595f0152befb9ff23
EBUILD pypy3-7.3.14_p2.ebuild 585 BLAKE2B ee89e4b7c3d3abf4c149145605d6dddbbd27d68f5bacf36a5a5e07aa4b1c6e4cde77e5a9f6599777674d1e6a0c0738edd3c25c979765ab045c886110e04e3a65 SHA512 f4281ec2cfe94d7997d5f15dbc01e7b113073b9fbc589b42926eee397771eed9fd66198c463b14fce7e74d25650098b3fe4b85b62ea9ef3595f0152befb9ff23
+EBUILD pypy3-7.3.15.ebuild 585 BLAKE2B ee89e4b7c3d3abf4c149145605d6dddbbd27d68f5bacf36a5a5e07aa4b1c6e4cde77e5a9f6599777674d1e6a0c0738edd3c25c979765ab045c886110e04e3a65 SHA512 f4281ec2cfe94d7997d5f15dbc01e7b113073b9fbc589b42926eee397771eed9fd66198c463b14fce7e74d25650098b3fe4b85b62ea9ef3595f0152befb9ff23
MISC metadata.xml 317 BLAKE2B 9da451fe362dc5c1f6b3412b33065ab6e316e5ae49fd8e6a8e7485cd5cb7440c316c7c5c9b504a69c4f21a6370317edfe11f388238665133b8557a26acbfe1eb SHA512 96039ea2033b920e595e05c8749ee7e316e951bc6ff544a2f4d175d862cf7537401cbba1d4535f20245bbcac32d5ce1261d04aee412953401b513ecc5e7217bc
diff --git a/dev-python/pypy3/pypy3-7.3.15.ebuild b/dev-python/pypy3/pypy3-7.3.15.ebuild
new file mode 100644
index 000000000000..c8a1509c574f
--- /dev/null
+++ b/dev-python/pypy3/pypy3-7.3.15.ebuild
@@ -0,0 +1,26 @@
+# Copyright 1999-2024 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 cfa9c67f1fb7..3849d3180682 100644
--- a/dev-python/pypy3_10-exe-bin/Manifest
+++ b/dev-python/pypy3_10-exe-bin/Manifest
@@ -22,7 +22,16 @@ DIST pypy3_10-exe-7.3.14_p1-1.ppc64le-musl.gpkg.tar 6748160 BLAKE2B 560a219f05c8
DIST pypy3_10-exe-7.3.14_p1-1.ppc64le.gpkg.tar 10352640 BLAKE2B 844039054d1932e530b997af73685457f5dbb37554e446c98819b88dd3b269f7b8d0c1efa16cd3300ad520945b24cc6cb51b2c21b2b01f35455d3fb1b3d6bf3c SHA512 635b6da329258df90a4df971648b044d4355f02befe91f204c5a3238722a16ff58f764f14bca4c8a50f4069907101e7f7281d663cf82e7e988f8d0270f522a02
DIST pypy3_10-exe-7.3.14_p1-1.x86-musl.gpkg.tar 9000960 BLAKE2B 87d02a2d4372c7f05ee876b4f16fc6c9949b558faf6b589793b6af683982528b87b1eda8aa2339d1962833a05295ec40e6768fd7d4de555d8ad5dd672dba8c2d SHA512 dcd81b65c16682ca021f469baa74863efd6f357b8251db4968c7ed56c0aad2411ebe66cee81a96eafac0988d240dd90f9278c319765c96c9be4b225a42168362
DIST pypy3_10-exe-7.3.14_p1-1.x86.gpkg.tar 9031680 BLAKE2B c5cccc0ebccb9f508c522dc5800a28116b4ca6617d030d047614ecdf8495390af9cec7dde17d1bdec0cea999eef0ba2b3ac7771e84f5cf6351b9f7f7902f9b4f SHA512 1ca328f387d2ea775701ede811dac1e19191521ca4259e42e9d39cc23bf9788430342f984dfe956b2fd3ab8e16c752ee68edc42f8a08cc5a44f123294038a8c0
+DIST pypy3_10-exe-7.3.15-1.amd64-musl.gpkg.tar 12021760 BLAKE2B ffd47668ced69ffa0ff685afad343a9e4d6fcf2bb679c974ad639ad9d345bc7f87451c324e9491ab9efa5b0f8eae43ba9993f6771f2aa94caec0ec66acaf7dd1 SHA512 d515fbf498bce06680b3ec9689f3be7d4e4d467c6b00d8e8a392138c3bcd8e7ee078a57cbcf58e1e73815cfc7647583f00ce4147d0d5cb6658a170844f5c45e1
+DIST pypy3_10-exe-7.3.15-1.amd64.gpkg.tar 11991040 BLAKE2B 5a2d723b767bc1bb3861aca6400ea5a69f191b7afeace13c38c5c767a1fc17c2c8c1234835581cc8713e07334069afbc2e177772bcb84a88ecbcbd5083a66747 SHA512 6bc7212478a255b549bec93c47f949e9eaf5080b10fa1679f1e8138e2302b5d5c7dd2fb7bc4d4cb66b5f691d721b0b346ce7e40767eb96bfc31f0b50e5be22be
+DIST pypy3_10-exe-7.3.15-1.arm64-musl.gpkg.tar 10127360 BLAKE2B ae36fb4e6dbb2e8c79eef5ab0def608a18aa3c3d30c83493337fab5b20b679cd68c7138290f12cd42e957ee94dd3594643a93c0003bba5365fc69c66141c906a SHA512 c31a30ef1d552d428ea2ab30e812e8506434c8c0bc1167793d1d8469f59671850278a6a34d796ad509b9b647d1d886752734550d2fd4fd27295b754b133970c4
+DIST pypy3_10-exe-7.3.15-1.arm64.gpkg.tar 10117120 BLAKE2B 39ec595d3d24ddb0496febe7308daa6b70c1150b9b3d92fcb5e62bd9854f6f68f1f486869bf5a7432276b3892ee2c4f3d387946f8fa756524d58f1b4c93f7d25 SHA512 d3e31f15a4d5781da8c942cbb7ec952fad6660dd725d61852a6de9c6d969d73ec350845d205185306bc4aec1b5ddddbb994ac58bf139a9cf779c3d8dbd48a4e8
+DIST pypy3_10-exe-7.3.15-1.ppc64le-musl.gpkg.tar 6758400 BLAKE2B 737a1a6779e65e67d583c8cf1b7b8b210cc0c42fe7f40f21ee2096d40e541635ff930316893db65f8ce492b717073c5090517871839a2e6868eab08e09d9d80c SHA512 3fb9332d61da0c7998f5ae9a248ed3a87b6d62a3f1815e075434cac215de7ec4d19ed4c7ac78ccb2a568bbbb2cfe3007423609166177ad2485b735ef243532c9
+DIST pypy3_10-exe-7.3.15-1.ppc64le.gpkg.tar 10465280 BLAKE2B b7af5d3f89e6881f697cdd16e7b8f3a7f3dd574125c0559b21f2ae5bb7ef1f948c1149c1a891ad5815461ed03e224086ab810fe45071dd2cbef9b35fe1c8cc00 SHA512 90f610253833c31d10e09e81e2ada135f5ad7486816cbc5421087cf386d1281901cfde13331c440df726d8bd2b703cf068f7effa7a13cafde48af0833027c1f0
+DIST pypy3_10-exe-7.3.15-1.x86-musl.gpkg.tar 9062400 BLAKE2B 14e371118171709a7a88cad1cc6877a486269819758f27f86083f37635d1d148ae1cdcac0f25eb0db241c199341f34f709dcaffe8292ec8c34332ddba2477f75 SHA512 833f915fd2b873ae038844bf594863fedef2bb534e81af599f356b6f9287584bde8748b066d54ad972f2a77df41fe4e61ad1a51d48e8b60c3e91cb29d1e7e210
+DIST pypy3_10-exe-7.3.15-1.x86.gpkg.tar 9011200 BLAKE2B 6d6766f1e343dfde5627d9a1ca33a27c1df39377dbf3e42c969298e20586c4430fd81ba7b9332d4258fce01167ec2c95783c65496262a1fc56bbcd07a57c1c5e SHA512 f4804bf874389eb8493a692d238e354dac3e52e6a7888c34a2bf3801429121e337e6008b0da8c9c36a15d579a3fa04e617339aab7e82e3c83ebbc0747345bf33
EBUILD pypy3_10-exe-bin-7.3.13_p3.ebuild 2034 BLAKE2B 2929a8321810f24f9acdf39df73ac574f6f251f527aca9f88c9391672ea1f20f7b0a63ca9ec253b5eed2ced2157390b90f5ba085bf823dca0fb468909c279c48 SHA512 b08ceef463a43a3a3945129844f489763df275d84ac6d96a84f9817b3940ffb65a9956919e3d3e8d61e932585b395b55d6b5401ce307dc92761b710c10fe05b6
EBUILD pypy3_10-exe-bin-7.3.14.ebuild 2036 BLAKE2B de1e4d8df35611557315fa2a5502e9eb4bbf5c6870fab8cc9187839dfd2c80400f8c24cde3078b06a3080ba7d7508582b32479d7a1ef59e22066dbf04f522282 SHA512 3842581febdaa65140fda3fb96db5f127c63e0956aa089f5cc152f453baa5edf64f2248a09a7e69717be95bed6141e3cb8395e86fce9b465c7695678f2071a96
EBUILD pypy3_10-exe-bin-7.3.14_p1.ebuild 2036 BLAKE2B 2f882e7f8fc759216be500424717cf0a0f330720d0850c27076b1576686b3449ce64df358e520c58eab35187f9a684f69c0f56c7e348342f74197193f4e86558 SHA512 4cde3d8f21851d6082649a6ce41c24c28cc6ceb428ed1c5b834fc7de873cb4627901ba23dd7dee7a0554ef4231da727943c3f02e5b3cea75707c1dcd14d08d92
-MISC metadata.xml 241 BLAKE2B 4f18c355c71824c25df283b2d463a5abbf2295446e74b960e868dd78d4910ac066725450478087567a6e66b7a8948d99e053f13a7e58dbf2b89fdaf5c2f3436c SHA512 c46e70ffd66754ad84c64806f2bbff25ba9a688f035176a4565afc95351ce10fffba64bbde89965501460b05978c7e59b3d84db6a8cb6efff4055d4b7a5ab5d8
+EBUILD pypy3_10-exe-bin-7.3.15.ebuild 2070 BLAKE2B d1620a179878d11cbb3e3c9b14d0d6d33ca45f68b53edb0c612fa3df3ec6241b1b35a630234b4810c339fd1144a0ed614fd1c344b92ba6240c83bb7a7339219f SHA512 f44b89ab0ffb78d5db91b347d296809397360c2ad62daf2c44ad562758d682d8c7e14fb971a3a8f3e04e70a03d8c78878cdf04113f9f33c746c4ba60eb726f93
+MISC metadata.xml 315 BLAKE2B da5ed341c55250028587ffb479a27b7ec31eb0f8bd0e11b8a98a374e23d989f7d5bcce647ca9c78cd12f64b6b83dd0568c4f3a992a6c8c5089c52cef9de87441 SHA512 ebe1c4d655c49fd20127dd240b603f1b99d67c0a6d21c7eb37bee48f4ec6bba50648816ea2b1b746af58fcf8de576d24fe355ecfa2de07ebaa0265ade2ea38ba
diff --git a/dev-python/pypy3_10-exe-bin/metadata.xml b/dev-python/pypy3_10-exe-bin/metadata.xml
index efd7c8c21836..2ed15cb705e2 100644
--- a/dev-python/pypy3_10-exe-bin/metadata.xml
+++ b/dev-python/pypy3_10-exe-bin/metadata.xml
@@ -5,4 +5,7 @@
<email>python@gentoo.org</email>
<name>Python</name>
</maintainer>
+ <upstream>
+ <remote-id type="github">pypy/pypy</remote-id>
+ </upstream>
</pkgmetadata>
diff --git a/dev-python/pypy3_10-exe-bin/pypy3_10-exe-bin-7.3.15.ebuild b/dev-python/pypy3_10-exe-bin/pypy3_10-exe-bin-7.3.15.ebuild
new file mode 100644
index 000000000000..7f49ead5be5a
--- /dev/null
+++ b/dev-python/pypy3_10-exe-bin/pypy3_10-exe-bin-7.3.15.ebuild
@@ -0,0 +1,85 @@
+# Copyright 1999-2024 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.10 executable (pre-built version)"
+HOMEPAGE="
+ https://www.pypy.org/
+ https://github.com/pypy/pypy/
+"
+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 d46632446b1a..8366fc8c4a0b 100644
--- a/dev-python/pypy3_10-exe/Manifest
+++ b/dev-python/pypy3_10-exe/Manifest
@@ -1,9 +1,12 @@
DIST pypy3.10-gentoo-patches-7.3.13_p3.tar.xz 9780 BLAKE2B a72cfc6723ad914f012309eac7606a37f2e6dd2c5f83c049c0d68466dae45a366536f2065c1ccdc9516339cb8949b146e410ab04b1cbbff3b9d62620a039040d SHA512 c1beb5c661dd0c0d94bebb23b82972ac9442caf777c377923c31b3f82b007396d0c3ef9874fc01cf765986cc7c6a941628f7e377a732a0706e99e3acb6fc5db6
DIST pypy3.10-gentoo-patches-7.3.14.tar.xz 4772 BLAKE2B 3866dd6a86f88bf10d5a9a639defea0dbe3cb301ccb23d015b147a220f0e32041dc46497e43ad03c1c486291bb56752d77eaa2703e164e58f4f6af3e6b1e2433 SHA512 5da998beefaabe1307a16f1d9d4239453b9017aaabefbdb34d70ce339bfb9f8b7a258cdfcba74e0241bf140b3d2aae500710309d1dddb667154be7c482e88daa
DIST pypy3.10-gentoo-patches-7.3.14_p1.tar.xz 5176 BLAKE2B 9cc684a9257a2855e44bed01d01020c0009dc966ff6fee7a789439e19814b1bfacc5fa0da166c8cb886f0dbadba365f6c6e2c520a4f5116e90ac637748e31e73 SHA512 11e468c2cab5e2234ffc68d98407bf7a676ea3b495a7e9ad7481f47fd39e2b1868b695da81b4edcee74cb8f01e997b72e994f18826331695427d80b2e43e926b
+DIST pypy3.10-gentoo-patches-7.3.15.tar.xz 4760 BLAKE2B 9131794293aa15cbafbc245727b5b60183606bb0273b05f4ebf8d24b525c3d6a39c8fe6f2c38487cda4a47d5defbdbb494c7786ee25a9ddc23cc9f209e5fc3cd SHA512 d2780be7ce91524bb71a47d51d9e9ad9a6aa5bd6c19903c90391cf7e6d4c9a96a98f414d22e9da7af67960ab9639f9a0f58f103c90ca9d694dcdfc4f0982bd6b
DIST pypy3.10-v7.3.13-src.tar.bz2 23067819 BLAKE2B 6e2bfd83bcf16feef006dad39ab6d8f452418ee6bc4043edaa590db702f39275e775004bdba762736a901da94cb5274cd34f2811461048d46ac0f4af04158702 SHA512 16fbc76558152b3eadca999d56197a6bf906cbb7bb75035ccd3501372af0f0c22533d22ba231a40b7c02afa11f0d692a6ae85ba6d5e1607b737b8c68209b7c43
DIST pypy3.10-v7.3.14-src.tar.bz2 23828709 BLAKE2B 15b3197953ff6271ddc9aad317f06094e1744111b7236447f029299dcc8a8ee089a8d91eec46d634489e0e89c94c0b18fda97dee51b3030ac62b0beeea7d6413 SHA512 4162d60d3869cfc87b1850266b9c7147413d3a7184a3c0c2edf1d1270ba3dff2db8047c7f2b5bbdd4c4d5136823adc078a5d45d575715984bab6633d1462f694
+DIST pypy3.10-v7.3.15-src.tar.bz2 23934723 BLAKE2B 12b438729547faa81bc31c429e166d4bfab2b4e76cb16a687886903ad83e3369e0532297222eafbc8b0f4ae006d87cbe15b2c360ad828fd9a44124067aa788ff SHA512 84f9a30484cf0b0bcf3ef1f71ce2ecae02a51b6609acc4f6edd4096302c9940541dc947f3f0767216d83d261f8db85ea43760af8ce3c9137c70aabe5571d1249
EBUILD pypy3_10-exe-7.3.13_p3.ebuild 2859 BLAKE2B d25fd1d2fe4db8b14b32822743d303e1fe164d4236af519bc231a0db118cd32f950582bcd2e1c6de0522c10ff8d26d383bd0c8c2bb4ab0c4376066354a9ef624 SHA512 8e89ddb61bb26cf58e290ad7488b9cddc9698a2aadeb88897a5b901997b93806bc54cd50ce66a109613d919d6c55b29548e23396442974f8924bef248c1e051d
EBUILD pypy3_10-exe-7.3.14.ebuild 2861 BLAKE2B aa9e25b2a21232e0c5ac08939cf4376911920c7c7dba220f810be9b3b1c544395315b5e9a066d3e2a4b797ac19aff419d696cac554322483a9c308a45d389a89 SHA512 482398a63227ae2eaac531825b4e3c4bab022c729b64cfb29747bbb80d2eff9d7b576a06ab04902868fc4d27e6716afd9dcfc3b7532ea9c74c8082de8aff0747
EBUILD pypy3_10-exe-7.3.14_p1.ebuild 2861 BLAKE2B f98a1f1266c4e4689bb69ca67fa680b16948cb6fd75a113c18c0d3b4da612bc288e1aaef7db28f32967e5bd60c42ac666cdc572c0752aec4d97a93324ff1a1ec SHA512 2a136c3356bf33711cc940a3a9d60abda0d811c5160502a449ec20ca2903afb950d38e794b68a749e3fe0d184737327427afb0b4f916198470090cb79440eef0
-MISC metadata.xml 498 BLAKE2B 8dbcdb7c3a4a2fa5d1a922fd5197fb5e3337adcaec1e7d382f25f8696c80726e5b79843477bf8e5ce131aecde6e2c4c283548c5b337e54cb58aaa066013c445a SHA512 8a9bb514bbf3bf328aa63734e1fdc106f6aaf5ccb88c29ad8a686ab2724f3d1f4727163500013dd16e7b34232b881cf47d2f174212b5428ee076af27cf43628d
+EBUILD pypy3_10-exe-7.3.15.ebuild 2950 BLAKE2B e4bd943f4445acfcad14adf26bd5056bc1000bc7242a1f358173b6a95bbfab30911ad1d3aac0bb51feeba5f6be775754d124fc2481c2895f49892c3c64a6f77e SHA512 2d4d234105b20b28b8293fe9bc93aae330a40f05845371ab7dc73efc6defafb727b6e33c3a14df73b32067d2da9771831afdd213424bb3bae407cbf9f58d3a12
+MISC metadata.xml 572 BLAKE2B cfcd1422ec312338fd876bc4747a962ac3c4bd06e28a3891489b065fba4c7be2daa6955f51e8136d9b8cf7b68bb7eb887b6f419ee9fd626ebd6db204acb7995d SHA512 c79250d47e3d5c99c2c903bfc185449cc41f88e2b923b8eae1401e83c0f23fa1a12ad85f50b6e25844e805e543ae897ccf43185a1bdf9f992dff765249e55bc1
diff --git a/dev-python/pypy3_10-exe/metadata.xml b/dev-python/pypy3_10-exe/metadata.xml
index 9f1f42740089..3f2aeb55aa5e 100644
--- a/dev-python/pypy3_10-exe/metadata.xml
+++ b/dev-python/pypy3_10-exe/metadata.xml
@@ -5,6 +5,9 @@
<email>python@gentoo.org</email>
<name>Python</name>
</maintainer>
+ <upstream>
+ <remote-id type="github">pypy/pypy</remote-id>
+ </upstream>
<use>
<flag name="low-memory">Build using PyPy with the engine configured towards low memory footprint.
This makes it possible to build PyPy using ~3.5G of RAM on amd64 and ~half of that on x86,
diff --git a/dev-python/pypy3_10-exe/pypy3_10-exe-7.3.15.ebuild b/dev-python/pypy3_10-exe/pypy3_10-exe-7.3.15.ebuild
new file mode 100644
index 000000000000..e43d52fb8c34
--- /dev/null
+++ b/dev-python/pypy3_10-exe/pypy3_10-exe-7.3.15.ebuild
@@ -0,0 +1,136 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit check-reqs flag-o-matic 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.10 executable (build from source)"
+HOMEPAGE="
+ https://www.pypy.org/
+ https://github.com/pypy/pypy/
+"
+SRC_URI="
+ https://downloads.python.org/pypy/${MY_P}-src.tar.bz2
+ 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
+ virtual/pkgconfig
+"
+
+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
+
+ # Yes, yuck, but it's being worked on upstream (bug #918971).
+ # https://foss.heptapod.net/pypy/pypy/-/issues/4042
+ append-flags $(test-flags-CC -Wno-error=incompatible-pointer-types)
+
+ 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 da92b32162ae..2b9a31c845d1 100644
--- a/dev-python/pypy3_10/Manifest
+++ b/dev-python/pypy3_10/Manifest
@@ -2,10 +2,13 @@ DIST pypy3.10-gentoo-patches-7.3.13_p3.tar.xz 9780 BLAKE2B a72cfc6723ad914f01230
DIST pypy3.10-gentoo-patches-7.3.14.tar.xz 4772 BLAKE2B 3866dd6a86f88bf10d5a9a639defea0dbe3cb301ccb23d015b147a220f0e32041dc46497e43ad03c1c486291bb56752d77eaa2703e164e58f4f6af3e6b1e2433 SHA512 5da998beefaabe1307a16f1d9d4239453b9017aaabefbdb34d70ce339bfb9f8b7a258cdfcba74e0241bf140b3d2aae500710309d1dddb667154be7c482e88daa
DIST pypy3.10-gentoo-patches-7.3.14_p1.tar.xz 5176 BLAKE2B 9cc684a9257a2855e44bed01d01020c0009dc966ff6fee7a789439e19814b1bfacc5fa0da166c8cb886f0dbadba365f6c6e2c520a4f5116e90ac637748e31e73 SHA512 11e468c2cab5e2234ffc68d98407bf7a676ea3b495a7e9ad7481f47fd39e2b1868b695da81b4edcee74cb8f01e997b72e994f18826331695427d80b2e43e926b
DIST pypy3.10-gentoo-patches-7.3.14_p2.tar.xz 5660 BLAKE2B 0381c95df65d7b77e9bbe53f4a714737736bc766ccdfac826a98abb7f5477797394e52e301baf29e9ab94575b243c4c62fc04744b2a1d8df75ac722514a019ff SHA512 5dd6ff6d546b1107ff1af29b36d0ff4b2787aeb805f4dd9787731935238f614acc123addc6d0a27cb7d4858f9935be41790152d1690871b681eba19e311ea4d8
+DIST pypy3.10-gentoo-patches-7.3.15.tar.xz 4760 BLAKE2B 9131794293aa15cbafbc245727b5b60183606bb0273b05f4ebf8d24b525c3d6a39c8fe6f2c38487cda4a47d5defbdbb494c7786ee25a9ddc23cc9f209e5fc3cd SHA512 d2780be7ce91524bb71a47d51d9e9ad9a6aa5bd6c19903c90391cf7e6d4c9a96a98f414d22e9da7af67960ab9639f9a0f58f103c90ca9d694dcdfc4f0982bd6b
DIST pypy3.10-v7.3.13-src.tar.bz2 23067819 BLAKE2B 6e2bfd83bcf16feef006dad39ab6d8f452418ee6bc4043edaa590db702f39275e775004bdba762736a901da94cb5274cd34f2811461048d46ac0f4af04158702 SHA512 16fbc76558152b3eadca999d56197a6bf906cbb7bb75035ccd3501372af0f0c22533d22ba231a40b7c02afa11f0d692a6ae85ba6d5e1607b737b8c68209b7c43
DIST pypy3.10-v7.3.14-src.tar.bz2 23828709 BLAKE2B 15b3197953ff6271ddc9aad317f06094e1744111b7236447f029299dcc8a8ee089a8d91eec46d634489e0e89c94c0b18fda97dee51b3030ac62b0beeea7d6413 SHA512 4162d60d3869cfc87b1850266b9c7147413d3a7184a3c0c2edf1d1270ba3dff2db8047c7f2b5bbdd4c4d5136823adc078a5d45d575715984bab6633d1462f694
+DIST pypy3.10-v7.3.15-src.tar.bz2 23934723 BLAKE2B 12b438729547faa81bc31c429e166d4bfab2b4e76cb16a687886903ad83e3369e0532297222eafbc8b0f4ae006d87cbe15b2c360ad828fd9a44124067aa788ff SHA512 84f9a30484cf0b0bcf3ef1f71ce2ecae02a51b6609acc4f6edd4096302c9940541dc947f3f0767216d83d261f8db85ea43760af8ce3c9137c70aabe5571d1249
EBUILD pypy3_10-7.3.13_p3.ebuild 6312 BLAKE2B eaf56803de815ba2b66ce1f41c545589e0db710337c3635c939dc606465c5754fffeb97069c08b8dd4522bc6431009bc17d527362e3a1de0c4aa69b198abddce SHA512 c92b97d4257cae186b013bdae4caa8ae7bf1045567ebfeb8432c39179693e6a3c2122ba9c8f98d173f3e9043d373e930ccc486190c5db4483071c5834d6ecdc1
EBUILD pypy3_10-7.3.14-r1.ebuild 6370 BLAKE2B a8c2b8b86fc0d4613fac21eb9356fb43fea4a52035443e6c669529588e56d4ca73772a133a850c3c746ea0d4935a9667d53574c08822ad4d73b112e86560d29d SHA512 69e9380deeaae1c1dddec1b92abd0e546be53763c33991b231cd48b955225162ad7451c1a83a426a89d971b16d8a7e1154e558a447c54b878ca3adbb7daae80f
EBUILD pypy3_10-7.3.14_p1.ebuild 6370 BLAKE2B 5c6b341c6a9a02ad994b1cf83838a8b189ea401624eae24ad77ee32dbfb3955b52f264fd5bb963747a16eca89c9a30984da2b7d41ef4e6a67b717918cb834cde SHA512 8df647fbf918fa27f2ba2c0fe3b3ffd8ee2d259b9518025614be1bb4aed2e1b0bce63938ac86744180631a16f9ff509b89919457aba38790d75034cb365aceb6
EBUILD pypy3_10-7.3.14_p2.ebuild 6370 BLAKE2B 5c6b341c6a9a02ad994b1cf83838a8b189ea401624eae24ad77ee32dbfb3955b52f264fd5bb963747a16eca89c9a30984da2b7d41ef4e6a67b717918cb834cde SHA512 8df647fbf918fa27f2ba2c0fe3b3ffd8ee2d259b9518025614be1bb4aed2e1b0bce63938ac86744180631a16f9ff509b89919457aba38790d75034cb365aceb6
-MISC metadata.xml 531 BLAKE2B 0f727c7ced9fb24ba0dc0b41d51c177b3711de33b838bf46cfdde5d8b751de9694873c13fe8153747f2cb533c078c54f004ee84b1c3c57b6f8d62128ffb9dba2 SHA512 331b66647a58047ded4bcf1529e3ca16b21cbb37afa82d8be0a4b6ad605e17bf3f1478fad1ea3b9c970bdf5162cb41e6adcb029a261fcbf894e807998b9219f6
+EBUILD pypy3_10-7.3.15.ebuild 6332 BLAKE2B a762d6c7db414bbcaf3db73b04f1e5f2b130293f9c4752410a054157e76716c5d42d95e9e2a80591fef2606c58a452b819bb1db11fc5e2262a4eeb04a350ea9e SHA512 50cf5d33e0b5f4a1f239efddfcc62338375b8db06a35e1ff8cc398179b2672891e8f152f52dc6ed9233d86f20c9a7e493396882e2ff7cc40b2be2d8bfc3ea82c
+MISC metadata.xml 529 BLAKE2B 4121978ab7ed8811781be50eb702082b54ce8e2da22b1cf24f009a64d14b1c644f1420467e7f74d48b65e9644b9100d6e55bd5da0907565a4dd0ba6fc4d029ee SHA512 c862efc8092df86bcf1399abb86081709829b9d3ce9564f8a4d0d8d5d59a4089f79a70156efc093fdf08a2b563cffc8c5aa3f51e33c87456369ae75a5cef3f1a
diff --git a/dev-python/pypy3_10/metadata.xml b/dev-python/pypy3_10/metadata.xml
index 279dc3f87516..2a6a5bdac475 100644
--- a/dev-python/pypy3_10/metadata.xml
+++ b/dev-python/pypy3_10/metadata.xml
@@ -5,6 +5,9 @@
<email>python@gentoo.org</email>
<name>Python</name>
</maintainer>
+ <upstream>
+ <remote-id type="github">pypy/pypy</remote-id>
+ </upstream>
<use>
<flag name="ensurepip">
Install the ensurepip module that uses bundled wheels
@@ -12,7 +15,4 @@
be only possible to use venv `--without-pip`)
</flag>
</use>
- <upstream>
- <remote-id type="heptapod">pypy/pypy</remote-id>
- </upstream>
</pkgmetadata>
diff --git a/dev-python/pypy3_10/pypy3_10-7.3.15.ebuild b/dev-python/pypy3_10/pypy3_10-7.3.15.ebuild
new file mode 100644
index 000000000000..f4c610dc7626
--- /dev/null
+++ b/dev-python/pypy3_10/pypy3_10-7.3.15.ebuild
@@ -0,0 +1,212 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit multiprocessing pax-utils 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://github.com/pypy/pypy/
+"
+SRC_URI="
+ https://downloads.python.org/pypy/${MY_P}-src.tar.bz2
+ 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=
+ )
+"
+DEPEND="
+ ${RDEPEND}
+"
+
+src_prepare() {
+ local PATCHES=(
+ "${WORKDIR}/${PATCHSET}"
+ )
+
+ default
+}
+
+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
+ ctypes_test testmultiphase
+ )
+ 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
+ # testcapi does not have a "build" script
+ ../pypy${PYVER}-c -c "import _testcapi" || die
+
+ # Verify that CFFI module list is up-to-date
+ local expected_cksum=a4138e48
+ 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.c" -o -name '*.o' \) -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 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..."
+ # exclude list from CPython Makefile.pre.in
+ "${PYTHON}" -m compileall -j "$(makeopts_jobs)" -o 0 -o 1 -o 2 \
+ -x 'bad_coding|badsyntax|site-packages|lib2to3/tests/data' \
+ --hardlink-dupes -q -f -d "${dest}" "${ED}${dest}" || die
+
+ # 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 32cc4b2c9028..6ae3afa5623b 100644
--- a/dev-python/pypy3_9-exe-bin/Manifest
+++ b/dev-python/pypy3_9-exe-bin/Manifest
@@ -14,6 +14,15 @@ DIST pypy3_9-exe-7.3.14-1.ppc64le-musl.gpkg.tar 6584320 BLAKE2B 7fdcf4a6ed39a0c2
DIST pypy3_9-exe-7.3.14-1.ppc64le.gpkg.tar 10260480 BLAKE2B 94ec718a5c37dbf6b15e91346147918284e9778b8f5240dc0169fe13cd2356fbea87ae0c24a718f86e04929cc63a8e8e0b5291da4c257338c7f4f419448848ef SHA512 809f76e514ef3a050be570b81e56a872573a7125c55581104057505a13d11580d2f0f71a3e59c6fd22b2dcd3fb3cd1e2ae046ff4dcb9bf2c791675e112ff6526
DIST pypy3_9-exe-7.3.14-1.x86-musl.gpkg.tar 8888320 BLAKE2B 6aa189e8a5e80bbed01216808d2b7b543831a19e0039f7e8ed037881ea6a5a22ecc3acb1179a7892a4896dd2ef783ce169689a8f6c45bbaef662528cc2b74264 SHA512 4b68eae8185ece64a59b0ba952779f8fa31594f874dbccf125a9243ff656b86e0381d4ac39f70f2456edf58a2715277e0ee29840126437643587c4dfcf065904
DIST pypy3_9-exe-7.3.14-1.x86.gpkg.tar 8919040 BLAKE2B 3896f0db4893fb54bc085f79a861cafc2395a3160efe8efe344530052e5c9e4547121e6e3263e4e1ad36ea7aa45de62b454bd89a5ddefd999d088be612b9d97a SHA512 1dd32f1e05817f18ca76a3c5ad38b100ac8601a2df20307fbec1336b0139a7e2a701759a833b5991875458a117a772bb94b7aba80f7a2712ff380a2e3d9be62e
+DIST pypy3_9-exe-7.3.15-1.amd64-musl.gpkg.tar 11847680 BLAKE2B 6e2e13c6ef1faaa9ba451727a64a1749f3e2ab4645d4206420c6ee2c186438817f2a77c9a7939d485a4f04fd5b1f39d0886a42c32969e9869b44ca16fbf60be9 SHA512 fd757c68631381400901ecc2f18299eba701baa5086fb0c77ac2fbedbd7f188061c16ec0e4c84c8864ed5d235e4f98d8c5f9f26843f9acc881e2fa661d3e0131
+DIST pypy3_9-exe-7.3.15-1.amd64.gpkg.tar 11857920 BLAKE2B 052bb16e6c983ac32a860b5de1532fca6158510364ddc52f9992b1c69b948f6d6e7ba32fbaaba86597fa73db5f09a19c3e6a0208f624c9d3bbc28c43b056c886 SHA512 336f484699f89e5e3fa8bab7c8468d4e1a6cf957f947a727858b59cd9b372c94a07f5304b1f367b0bd3cd443d688fbfbe17fd23e6939988d0270c4be6df9f7a9
+DIST pypy3_9-exe-7.3.15-1.arm64-musl.gpkg.tar 9943040 BLAKE2B 701257e473f784e367a9e984dfe6af7d50ee42b214e8ebf0aa4e761102ef83b48c88ad69ea601c52b17333527bf45f908754da7e128659bd79b1849a4041612a SHA512 0bb71f3acd90f3a45dd802d1108da13b0b4c41ecbf212fa5aec22633daab85b8420c37a58bfc52dfaaa2f577ea5885df588750e634a51e165bf7fc933e5de4cb
+DIST pypy3_9-exe-7.3.15-1.arm64.gpkg.tar 9973760 BLAKE2B fdacf63806aa759c7ffd3a574d1f6d8a52448d14461414e5d6aa853097d49e6bca18202af71370f340de8b8ec126b1d75c40b585b9a1d1526400236c6a050de5 SHA512 0cc8c1b96b15f4540ecbef149507bbc9f5e54258f6c7887f60c4441bf77f5dad3476e10c110d3f9c483a2abad90d513062791235810f9353d294c0c61c1c03e5
+DIST pypy3_9-exe-7.3.15-1.ppc64le-musl.gpkg.tar 6635520 BLAKE2B 89974e2537e9c2f12b0e7f0b2a92b1140ec0351c28b8b72f41b97bc4ea201b8a2f1d7bd2f71d9e47ab5775ee623167242799f051ba43421a524a897d837984d6 SHA512 c7ec389bb6a097ad023cc962989e18f45f9851e599b979c486d487048517e2d02655e90f74328f39d765d421eae1e338a73a31bf4e9c9e269941905bc9f9acec
+DIST pypy3_9-exe-7.3.15-1.ppc64le.gpkg.tar 10301440 BLAKE2B 0a1a6f625a0929a65bfe01b333143d1ebe6c6c89a9a9bc1ec0c2a9274f897c56e8e080fecfbf6066d0b033d84582c7d71fbf03cb6310c01393e7f28d2e4aa2c1 SHA512 256fa79652a070747a865728f7e53e5b6d6ee4f8cdaca7cbbcf310cec883f8ed9606756bd1cb3d628fa7ba8e55f9fb7f2fa497e93c82567ff285c8ae913a3da2
+DIST pypy3_9-exe-7.3.15-1.x86-musl.gpkg.tar 8919040 BLAKE2B 58f523aa9082284adc5b4fb131023adbeba411654501e71ba286abe5e0501d070180a44236c57f39bc310ad35f5734f314139b9701c4e48ae304674eeae5ec4e SHA512 9dda550b304e73453e5eea8a5243ac2796576cb3e70ba770c8096d3077c99a0663d6a5d3f2ade3e88b6e814f994e71d5b56dfe779c3d2fc51242c01f8602bcb2
+DIST pypy3_9-exe-7.3.15-1.x86.gpkg.tar 8898560 BLAKE2B c8d3fcb749e5317e5bdd37981318cdea6ed801fccfdcf19dbc2c40457ac32e2d02e8ec500f25149172daea91decf79e62f7fd410512cf9d3e63c31f1d7c323b8 SHA512 1a547f42b739095658d96e1c8432b43f49913e0053f7ec596b2f409d6428c6291f741b56addcf88dac97f053089ca37c66b46a44b4284b00dc37b1918a5fdeff
EBUILD pypy3_9-exe-bin-7.3.13.ebuild 2024 BLAKE2B 4c187873f36c357f98926b74ca630433f108857489e3b7edf38dfa95b6204792fd7f1114032f331bcd62c6779138f6476a8415fcb7b469d0673d15fb9002de64 SHA512 caf6b5685a328ee31e399d5586e1f404ada1d3008fcd4630d2d1976770797c540dee0db6550a3a707616d0ee0d2d218fcbacff77eb89fbcdfec3004cef8b78e0
EBUILD pypy3_9-exe-bin-7.3.14.ebuild 2024 BLAKE2B 4c187873f36c357f98926b74ca630433f108857489e3b7edf38dfa95b6204792fd7f1114032f331bcd62c6779138f6476a8415fcb7b469d0673d15fb9002de64 SHA512 caf6b5685a328ee31e399d5586e1f404ada1d3008fcd4630d2d1976770797c540dee0db6550a3a707616d0ee0d2d218fcbacff77eb89fbcdfec3004cef8b78e0
-MISC metadata.xml 241 BLAKE2B 4f18c355c71824c25df283b2d463a5abbf2295446e74b960e868dd78d4910ac066725450478087567a6e66b7a8948d99e053f13a7e58dbf2b89fdaf5c2f3436c SHA512 c46e70ffd66754ad84c64806f2bbff25ba9a688f035176a4565afc95351ce10fffba64bbde89965501460b05978c7e59b3d84db6a8cb6efff4055d4b7a5ab5d8
+EBUILD pypy3_9-exe-bin-7.3.15.ebuild 2058 BLAKE2B a5f799ff5f584a2c735f9f9b4055a8b4e56159bf199af5944bd3d5272c619e9693a76283b3e1775a27088dc2250ca8c12d425caa392e1744c489d30162cceadd SHA512 bc98f03d75554b90cb83d5306b158038520de835169558788fec732105aa2e378ffac99c19abee490080d03b1641cf9116d6e3eed55af087206f4fb9e90eda05
+MISC metadata.xml 315 BLAKE2B da5ed341c55250028587ffb479a27b7ec31eb0f8bd0e11b8a98a374e23d989f7d5bcce647ca9c78cd12f64b6b83dd0568c4f3a992a6c8c5089c52cef9de87441 SHA512 ebe1c4d655c49fd20127dd240b603f1b99d67c0a6d21c7eb37bee48f4ec6bba50648816ea2b1b746af58fcf8de576d24fe355ecfa2de07ebaa0265ade2ea38ba
diff --git a/dev-python/pypy3_9-exe-bin/metadata.xml b/dev-python/pypy3_9-exe-bin/metadata.xml
index efd7c8c21836..2ed15cb705e2 100644
--- a/dev-python/pypy3_9-exe-bin/metadata.xml
+++ b/dev-python/pypy3_9-exe-bin/metadata.xml
@@ -5,4 +5,7 @@
<email>python@gentoo.org</email>
<name>Python</name>
</maintainer>
+ <upstream>
+ <remote-id type="github">pypy/pypy</remote-id>
+ </upstream>
</pkgmetadata>
diff --git a/dev-python/pypy3_9-exe-bin/pypy3_9-exe-bin-7.3.15.ebuild b/dev-python/pypy3_9-exe-bin/pypy3_9-exe-bin-7.3.15.ebuild
new file mode 100644
index 000000000000..b4d8e231b125
--- /dev/null
+++ b/dev-python/pypy3_9-exe-bin/pypy3_9-exe-bin-7.3.15.ebuild
@@ -0,0 +1,85 @@
+# Copyright 1999-2024 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.9 executable (pre-built version)"
+HOMEPAGE="
+ https://www.pypy.org/
+ https://github.com/pypy/pypy/
+"
+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 bcfffc355b78..58ae97c95d74 100644
--- a/dev-python/pypy3_9-exe/Manifest
+++ b/dev-python/pypy3_9-exe/Manifest
@@ -1,7 +1,10 @@
DIST pypy3.9-gentoo-patches-7.3.13.tar.xz 7476 BLAKE2B 70f80c489686e92e933a200d2e92a095a80e2300814ec4e1f3cb31ec5f5500a45667f7bfe9570ea5eef3933fdda33a9930bdf2cf683c28e3ddb610bebeeca6dd SHA512 5170f5141beb93b3b37cc94f85324c88182967eaff2f8ca26b81d63d5b0d20414a139ca44c250c07b46c747e27c97fd0fe5a2365f6636aba2dd28df3bc55cdca
DIST pypy3.9-gentoo-patches-7.3.14.tar.xz 5808 BLAKE2B 92ab7e9129838ff22cc13a64fe1ffe9ffd3af45ec777bde531ce2e15b87681e17fca2f1dc037ee4798bca5a9312ca4c961ec97b0a53bf5e6dc36fd12241151c9 SHA512 dffd17558d5ec2625682e5476ea53a9fe273f553b94d2589628e23ac3b45c50b5bf3ba9c7d92935e477374d9220af6ed310abae1270175f091a8c5a267a4bacd
+DIST pypy3.9-gentoo-patches-7.3.15.tar.xz 5800 BLAKE2B e3466eb528c7cfaa8a189552041852d29bbacb45e08dc967deec1d8486107725ab2b2b1e65c98307983ff1f3ad038d3e54bf84eaadc32060185661c8023dea06 SHA512 c834433bfaaa1cd081fb71f9e122810b66fbd0a52f8473b6ec02a8615f0b0328da51ca1e3f0f209d325d9884876b634dbd1ec202f428620044fe5e60b4ce910a
DIST pypy3.9-v7.3.13-src.tar.bz2 23452374 BLAKE2B b5ce8dd78e4851b5c7fa6aa0c6f2f5c198a3b2d1e4691ccb20d1b229397d60ac41eaecef37f7c76e4de837876bdd6c1e4276302afc292080e0a38f1a58869580 SHA512 04b184050625f06d2acaa836a786db788c4f658f3384ebde176d0acc95044ee83dbf7193ebab1e4fd6275bed7a590d3945482294be32d8f94e8c541e053dce59
DIST pypy3.9-v7.3.14-src.tar.bz2 24683302 BLAKE2B 318fe17b423ce9c5b374cbceacf480ddbad7862bd6507d74289bbc0bd8ba8cf350ad21297b1e2dab7dfe6e7f542d929259be8d57867420b8a9a59284532aa9e2 SHA512 77db85092ca8ce419e30b274ec001566bbd275d88e74e5a3a3d0d557b18beb5a1e98428487f338e46f64893e54bf426464d372056c37a87a2b42b36c7d0fb536
+DIST pypy3.9-v7.3.15-src.tar.bz2 24694333 BLAKE2B 151c3c8b828c7a35cfd63dd73b8683c3fe5529c5f6df7cc628d2967e5c61e16490b8663efe838fc6efd9f0b4a08fde8c9315e2f0a471bb62a2395055f2f130c6 SHA512 64faca74c507ef3e8dd2df34ad81874c24bc336e79ecf53bbbb43c21adebdea60efafe6ad38bdbf15bc2a677980d7db2c2c0affa04beb7e7e1b739d85e17f333
EBUILD pypy3_9-exe-7.3.13.ebuild 2662 BLAKE2B 9b78336e1adc2bc216953a6e464f8dc433ceda3898dbcd6ff96b60f886cd35b6d0532e22f5d77b6a1247b0f203cac01d1dd85b23eed8b7f9ecb7a822d45b841f SHA512 6e7019c636edfd391824b725d1552fcde4960284e9ba2c595aa6973cf65586a7c8ffe6ca61694904328c777898dacf5bd79c5d57117d4512e293af95bd928902
EBUILD pypy3_9-exe-7.3.14.ebuild 2662 BLAKE2B 9b78336e1adc2bc216953a6e464f8dc433ceda3898dbcd6ff96b60f886cd35b6d0532e22f5d77b6a1247b0f203cac01d1dd85b23eed8b7f9ecb7a822d45b841f SHA512 6e7019c636edfd391824b725d1552fcde4960284e9ba2c595aa6973cf65586a7c8ffe6ca61694904328c777898dacf5bd79c5d57117d4512e293af95bd928902
-MISC metadata.xml 498 BLAKE2B 8dbcdb7c3a4a2fa5d1a922fd5197fb5e3337adcaec1e7d382f25f8696c80726e5b79843477bf8e5ce131aecde6e2c4c283548c5b337e54cb58aaa066013c445a SHA512 8a9bb514bbf3bf328aa63734e1fdc106f6aaf5ccb88c29ad8a686ab2724f3d1f4727163500013dd16e7b34232b881cf47d2f174212b5428ee076af27cf43628d
+EBUILD pypy3_9-exe-7.3.15.ebuild 2751 BLAKE2B da9b92b12a8996c96c9c5e42c996863477899b5d94e4b68f9e36e3fe37ca82310caed49b12b30c872855398e49df5543457c481bd81371813aefe56674654c9a SHA512 ea1d2c71d44f0e106d23fb373b5da06e4300eca019f8144870a75e3418cc88162f9ec22bdbe34c5151b205420c7730fcac4c0fc46972edd521c0b734ced7caca
+MISC metadata.xml 572 BLAKE2B cfcd1422ec312338fd876bc4747a962ac3c4bd06e28a3891489b065fba4c7be2daa6955f51e8136d9b8cf7b68bb7eb887b6f419ee9fd626ebd6db204acb7995d SHA512 c79250d47e3d5c99c2c903bfc185449cc41f88e2b923b8eae1401e83c0f23fa1a12ad85f50b6e25844e805e543ae897ccf43185a1bdf9f992dff765249e55bc1
diff --git a/dev-python/pypy3_9-exe/metadata.xml b/dev-python/pypy3_9-exe/metadata.xml
index 9f1f42740089..3f2aeb55aa5e 100644
--- a/dev-python/pypy3_9-exe/metadata.xml
+++ b/dev-python/pypy3_9-exe/metadata.xml
@@ -5,6 +5,9 @@
<email>python@gentoo.org</email>
<name>Python</name>
</maintainer>
+ <upstream>
+ <remote-id type="github">pypy/pypy</remote-id>
+ </upstream>
<use>
<flag name="low-memory">Build using PyPy with the engine configured towards low memory footprint.
This makes it possible to build PyPy using ~3.5G of RAM on amd64 and ~half of that on x86,
diff --git a/dev-python/pypy3_9-exe/pypy3_9-exe-7.3.15.ebuild b/dev-python/pypy3_9-exe/pypy3_9-exe-7.3.15.ebuild
new file mode 100644
index 000000000000..9cff29fef442
--- /dev/null
+++ b/dev-python/pypy3_9-exe/pypy3_9-exe-7.3.15.ebuild
@@ -0,0 +1,132 @@
+# Copyright 1999-2024 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.9 executable (build from source)"
+HOMEPAGE="
+ https://www.pypy.org/
+ https://github.com/pypy/pypy/
+"
+SRC_URI="
+ https://downloads.python.org/pypy/${MY_P}-src.tar.bz2
+ 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
+ virtual/pkgconfig
+"
+
+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 2877f01e35bd..d7d54d390e77 100644
--- a/dev-python/pypy3_9/Manifest
+++ b/dev-python/pypy3_9/Manifest
@@ -1,4 +1,7 @@
DIST pypy3.9-gentoo-patches-7.3.14.tar.xz 5808 BLAKE2B 92ab7e9129838ff22cc13a64fe1ffe9ffd3af45ec777bde531ce2e15b87681e17fca2f1dc037ee4798bca5a9312ca4c961ec97b0a53bf5e6dc36fd12241151c9 SHA512 dffd17558d5ec2625682e5476ea53a9fe273f553b94d2589628e23ac3b45c50b5bf3ba9c7d92935e477374d9220af6ed310abae1270175f091a8c5a267a4bacd
+DIST pypy3.9-gentoo-patches-7.3.15.tar.xz 5800 BLAKE2B e3466eb528c7cfaa8a189552041852d29bbacb45e08dc967deec1d8486107725ab2b2b1e65c98307983ff1f3ad038d3e54bf84eaadc32060185661c8023dea06 SHA512 c834433bfaaa1cd081fb71f9e122810b66fbd0a52f8473b6ec02a8615f0b0328da51ca1e3f0f209d325d9884876b634dbd1ec202f428620044fe5e60b4ce910a
DIST pypy3.9-v7.3.14-src.tar.bz2 24683302 BLAKE2B 318fe17b423ce9c5b374cbceacf480ddbad7862bd6507d74289bbc0bd8ba8cf350ad21297b1e2dab7dfe6e7f542d929259be8d57867420b8a9a59284532aa9e2 SHA512 77db85092ca8ce419e30b274ec001566bbd275d88e74e5a3a3d0d557b18beb5a1e98428487f338e46f64893e54bf426464d372056c37a87a2b42b36c7d0fb536
+DIST pypy3.9-v7.3.15-src.tar.bz2 24694333 BLAKE2B 151c3c8b828c7a35cfd63dd73b8683c3fe5529c5f6df7cc628d2967e5c61e16490b8663efe838fc6efd9f0b4a08fde8c9315e2f0a471bb62a2395055f2f130c6 SHA512 64faca74c507ef3e8dd2df34ad81874c24bc336e79ecf53bbbb43c21adebdea60efafe6ad38bdbf15bc2a677980d7db2c2c0affa04beb7e7e1b739d85e17f333
EBUILD pypy3_9-7.3.14.ebuild 6311 BLAKE2B 02ece4d982b6444166c1ec035f3a95e2af738b25df03a8614d06edce6318df28f04d553464e55f2112ac79ee1ef124ef67495db291445ab436a5d4bf559910b3 SHA512 a83d9ce03cace746c3b113e89a31880b67287876f0e7d53daed16195e1668d8e2c04aa045762d13126adaf29b8bbc5b1ffcd84003730ca5ee09240c827639676
-MISC metadata.xml 531 BLAKE2B 0f727c7ced9fb24ba0dc0b41d51c177b3711de33b838bf46cfdde5d8b751de9694873c13fe8153747f2cb533c078c54f004ee84b1c3c57b6f8d62128ffb9dba2 SHA512 331b66647a58047ded4bcf1529e3ca16b21cbb37afa82d8be0a4b6ad605e17bf3f1478fad1ea3b9c970bdf5162cb41e6adcb029a261fcbf894e807998b9219f6
+EBUILD pypy3_9-7.3.15.ebuild 6329 BLAKE2B 0f39bd23b8735e3fe675a272f9d980ac7e9f6368736eb4ac5035bc5c0151e625c217f339be3b9656e4406e3a59ebba13f0dd368f77023b38714b3feb77c38d22 SHA512 bd3e93c88fa50e5e3be2dfa101bf3acf006bebb110ccca2c160842c838c84b536bc0f7edf0a52b7760e3b646f149a608ea9ecd7f749a3077361f477d567f2053
+MISC metadata.xml 529 BLAKE2B 4121978ab7ed8811781be50eb702082b54ce8e2da22b1cf24f009a64d14b1c644f1420467e7f74d48b65e9644b9100d6e55bd5da0907565a4dd0ba6fc4d029ee SHA512 c862efc8092df86bcf1399abb86081709829b9d3ce9564f8a4d0d8d5d59a4089f79a70156efc093fdf08a2b563cffc8c5aa3f51e33c87456369ae75a5cef3f1a
diff --git a/dev-python/pypy3_9/metadata.xml b/dev-python/pypy3_9/metadata.xml
index 279dc3f87516..2a6a5bdac475 100644
--- a/dev-python/pypy3_9/metadata.xml
+++ b/dev-python/pypy3_9/metadata.xml
@@ -5,6 +5,9 @@
<email>python@gentoo.org</email>
<name>Python</name>
</maintainer>
+ <upstream>
+ <remote-id type="github">pypy/pypy</remote-id>
+ </upstream>
<use>
<flag name="ensurepip">
Install the ensurepip module that uses bundled wheels
@@ -12,7 +15,4 @@
be only possible to use venv `--without-pip`)
</flag>
</use>
- <upstream>
- <remote-id type="heptapod">pypy/pypy</remote-id>
- </upstream>
</pkgmetadata>
diff --git a/dev-python/pypy3_9/pypy3_9-7.3.15.ebuild b/dev-python/pypy3_9/pypy3_9-7.3.15.ebuild
new file mode 100644
index 000000000000..cd6b3d3e3ed8
--- /dev/null
+++ b/dev-python/pypy3_9/pypy3_9-7.3.15.ebuild
@@ -0,0 +1,211 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit multiprocessing pax-utils 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://github.com/pypy/pypy/
+"
+SRC_URI="
+ https://downloads.python.org/pypy/${MY_P}-src.tar.bz2
+ 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=
+ )
+"
+DEPEND="
+ ${RDEPEND}
+"
+
+src_prepare() {
+ local PATCHES=(
+ "${WORKDIR}/${PATCHSET}"
+ )
+ default
+}
+
+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
+ ctypes_test testmultiphase
+ )
+ 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
+ # testcapi does not have a "build" script
+ ../pypy${PYVER}-c -c "import _testcapi" || die
+
+ # Verify that CFFI module list is up-to-date
+ local expected_cksum=a4138e48
+ 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.c" -o -name '*.o' \) -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 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..."
+ # exclude list from CPython Makefile.pre.in
+ "${PYTHON}" -m compileall -j "$(makeopts_jobs)" -o 0 -o 1 -o 2 \
+ -x 'bad_coding|badsyntax|site-packages|lib2to3/tests/data' \
+ --hardlink-dupes -q -f -d "${dest}" "${ED}${dest}" || die
+
+ # remove to avoid collisions
+ rm "${PYTHON}" || die
+}