summaryrefslogtreecommitdiff
path: root/dev-python
diff options
context:
space:
mode:
authorLiguros - Gitlab CI/CD [develop] <gitlab@liguros.net>2024-01-15 22:13:22 +0000
committerLiguros - Gitlab CI/CD [develop] <gitlab@liguros.net>2024-01-15 22:13:22 +0000
commite9e12eac037074d9b53c22638d74e0ae17fce9e5 (patch)
tree8e68ef4152c0be980ffb009c6413c3503bba66ba /dev-python
parentaea6b4bfed22702ee1491628941d1455e4e9a8fd (diff)
downloadbaldeagleos-repo-e9e12eac037074d9b53c22638d74e0ae17fce9e5.tar.gz
baldeagleos-repo-e9e12eac037074d9b53c22638d74e0ae17fce9e5.tar.xz
baldeagleos-repo-e9e12eac037074d9b53c22638d74e0ae17fce9e5.zip
Adding metadata
Diffstat (limited to 'dev-python')
-rw-r--r--dev-python/boto3/Manifest1
-rw-r--r--dev-python/boto3/boto3-1.34.19.ebuild64
-rw-r--r--dev-python/botocore/Manifest1
-rw-r--r--dev-python/botocore/botocore-1.34.19.ebuild68
-rw-r--r--dev-python/bump2version/Manifest1
-rw-r--r--dev-python/bump2version/bump2version-1.0.1.ebuild42
-rw-r--r--dev-python/bump2version/metadata.xml6
-rw-r--r--dev-python/bumpfontversion/bumpfontversion-0.4.1.ebuild2
-rw-r--r--dev-python/ffmpeg-python/ffmpeg-python-0.2.0.ebuild13
-rw-r--r--dev-python/jplephem/Manifest2
-rw-r--r--dev-python/jplephem/jplephem-2.18.ebuild21
-rw-r--r--dev-python/jplephem/jplephem-2.19.ebuild21
-rw-r--r--dev-python/jplephem/jplephem-2.21.ebuild2
-rw-r--r--dev-python/langdetect/Manifest2
-rw-r--r--dev-python/langdetect/metadata.xml10
-rw-r--r--dev-python/pypy-exe-bin/Manifest8
-rw-r--r--dev-python/pypy-exe-bin/pypy-exe-bin-7.3.15.ebuild82
-rw-r--r--dev-python/pypy-exe/Manifest2
-rw-r--r--dev-python/pypy-exe/pypy-exe-7.3.15.ebuild181
-rw-r--r--dev-python/pypy3/pypy3-7.3.15.ebuild26
-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.15.ebuild85
-rw-r--r--dev-python/pypy3_10-exe/Manifest2
-rw-r--r--dev-python/pypy3_10-exe/pypy3_10-exe-7.3.15.ebuild136
-rw-r--r--dev-python/pypy3_10/Manifest2
-rw-r--r--dev-python/pypy3_10/pypy3_10-7.3.15.ebuild212
-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.15.ebuild85
-rw-r--r--dev-python/pypy3_9-exe/Manifest2
-rw-r--r--dev-python/pypy3_9-exe/pypy3_9-exe-7.3.15.ebuild132
-rw-r--r--dev-python/pypy3_9/Manifest2
-rw-r--r--dev-python/pypy3_9/pypy3_9-7.3.15.ebuild211
-rw-r--r--dev-python/python-ipware/Manifest1
-rw-r--r--dev-python/python-ipware/metadata.xml4
-rw-r--r--dev-python/python-ipware/python-ipware-2.0.1.ebuild20
-rw-r--r--dev-python/python-memcached/Manifest1
-rw-r--r--dev-python/python-memcached/python-memcached-1.62.ebuild50
-rw-r--r--dev-python/repology-client/repology-client-0.0.2.ebuild2
-rw-r--r--dev-python/service-identity/Manifest1
-rw-r--r--dev-python/service-identity/service-identity-24.1.0.ebuild35
-rw-r--r--dev-python/types-setuptools/Manifest1
-rw-r--r--dev-python/types-setuptools/types-setuptools-69.0.0.20240115.ebuild17
-rw-r--r--dev-python/unearth/Manifest1
-rw-r--r--dev-python/unearth/unearth-0.13.0.ebuild39
44 files changed, 1511 insertions, 101 deletions
diff --git a/dev-python/boto3/Manifest b/dev-python/boto3/Manifest
index fa08c82914aa..4a84f72345b4 100644
--- a/dev-python/boto3/Manifest
+++ b/dev-python/boto3/Manifest
@@ -1,3 +1,4 @@
DIST boto3-1.34.11.gh.tar.gz 760539 BLAKE2B 8ce756d33b604aed9d42bcccf60be467bd519f4c7a890592d9652fe3cd2851425f7a16afc7a194ccbda43a9859d0b9b683562ce1672eda9383119bc9de0dc0c9 SHA512 82b1920f1a5ad0e23364815a6b0552efceb7f49e17e585370917f63c1b74ea746eddc4f3d8c055d1eac7ca1cdbe5ac2bd304ce66e2ee12edf75ea2e261e88c56
DIST boto3-1.34.14.gh.tar.gz 762792 BLAKE2B 87857a6ff7e19f8438fe6b57978cdb3c8d22f8a68008fad4fcfdd40358b919a1c45f810bc45637da5971d20ce221cd8343440663d072666349e32c4df2be97a2 SHA512 8b651c5946394e159d6dd719337e4a5a60f708fa22ef26026bd85a18b3f34efa06f71282b9e9ea8c8ad4995e4bd6d0c13e4dddac75a51922fc30154ac0b87ecb
DIST boto3-1.34.18.gh.tar.gz 765458 BLAKE2B 29414e20fa034f63c899b6f2d5460d8973dd617aa97adbe1940daaf3f4a08cf9286bf24709fe9bcd745fdec8415578a87033f99cfd1335baa8ecf29f1723074d SHA512 aa5dc9363d3f04f49a40ea352ab75a30b52e9b1aa1153ab4ed9d6bef6059ea6cb0cb04301158f0e857d9abd19c670db447dda6cd9d8898d6c71c0b69242775fc
+DIST boto3-1.34.19.gh.tar.gz 764452 BLAKE2B c0388452728e54cdded0a9944e37e6725e8150b242c8e91ce812aed29a1316ce59e880d5e466e956d9c3dafcea99996801d90a1bfdef2b4eed9852f6dd861f0b SHA512 bad2a283c7c829f1de661c19058b963bfe2dca5e71513729f6099a4102d130a48e5095e44877d29e73308c8104f667229ba402503d4eba287ae975f4cef18c29
diff --git a/dev-python/boto3/boto3-1.34.19.ebuild b/dev-python/boto3/boto3-1.34.19.ebuild
new file mode 100644
index 000000000000..13391b8a8e76
--- /dev/null
+++ b/dev-python/boto3/boto3-1.34.19.ebuild
@@ -0,0 +1,64 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=setuptools
+PYTHON_COMPAT=( python3_{8,9,10,11,12} )
+
+inherit distutils-r1
+
+DESCRIPTION="The AWS SDK for Python"
+HOMEPAGE="
+ https://github.com/boto/boto3/
+ https://pypi.org/project/boto3/
+"
+LICENSE="Apache-2.0"
+SLOT="0"
+
+if [[ "${PV}" == "9999" ]]; then
+ EGIT_REPO_URI="https://github.com/boto/boto3"
+ inherit git-r3
+ BOTOCORE_PV=${PV}
+else
+ SRC_URI="
+ https://github.com/boto/boto3/archive/${PV}.tar.gz
+ -> ${P}.gh.tar.gz
+ "
+ KEYWORDS="~amd64 ~arm ~arm64 ~ppc ~ppc64 ~riscv ~sparc ~x86 ~amd64-linux ~x86-linux"
+fi
+
+RDEPEND="
+ >=dev-python/botocore-${PV}[${PYTHON_USEDEP}]
+ >=dev-python/jmespath-0.7.1[${PYTHON_USEDEP}]
+ >=dev-python/s3transfer-0.10.0[${PYTHON_USEDEP}]
+"
+BDEPEND="
+ test? (
+ dev-python/mock[${PYTHON_USEDEP}]
+ )
+"
+
+EPYTEST_XDIST=1
+distutils_enable_tests pytest
+
+python_prepare_all() {
+ # don't lock versions to narrow ranges
+ sed -e '/botocore/ d' \
+ -e '/jmespath/ d' \
+ -e '/s3transfer/ d' \
+ -i setup.py || die
+
+ # do not rely on bundled deps in botocore (sic!)
+ find -name '*.py' -exec sed -i \
+ -e 's:from botocore[.]vendored import:import:' \
+ -e 's:from botocore[.]vendored[.]:from :' \
+ {} + || die
+
+ distutils-r1_python_prepare_all
+}
+
+python_test() {
+ local -x PYTEST_DISABLE_PLUGIN_AUTOLOAD=1
+ epytest tests/{functional,unit}
+}
diff --git a/dev-python/botocore/Manifest b/dev-python/botocore/Manifest
index e4f05d954922..82eb713a00fc 100644
--- a/dev-python/botocore/Manifest
+++ b/dev-python/botocore/Manifest
@@ -1,3 +1,4 @@
DIST botocore-1.34.11.gh.tar.gz 12612317 BLAKE2B 8a8648dfb27fad0d0a52df37ce9d988ef3349b773d88bc752dd9d22866f3adb8dc6346128767df5523fb335a602d666be8a5758fdfbe27c221779a0c4ec23590 SHA512 4159f2794d98532dc5e94a91061165b1aa2f43c5a493604c6d3dec426b51d582359577fc62d0ac20044a8b94e196efacbbcfd436cc38390db9bbaf7b4eb3d16c
DIST botocore-1.34.14.gh.tar.gz 12617340 BLAKE2B c4aac6682ccb8951f4652477857d58221c4f0d8f1d154b7ecfa4e536f6bdb199e4be43ef63f0fce0843e95c01cfc0a479af8c7773a9717461afc04cd4bb27912 SHA512 44b7b0e96c815b033dc603892c3940869a37c76d0826812d5778b644ca785ff27f870f3ec54c7d87696bd57d2a38cc31c4b3e70f295fe9d588afc12e8f7a914e
DIST botocore-1.34.18.gh.tar.gz 12634296 BLAKE2B c3f18b042ea56c65f66b578f5b010613e34d4ca7a203cdbd479ef781fbebf3876b40623468e0fbbf7721f9a3e7ad82e71d1771bb24c721e3bc450acaff1f296a SHA512 bd0ace3da7e45edf98a13b1616b0699b0a2e2c3aec1e59dc7f8c11a3817fb1aefc8aae5634abcbf24f242c155df24ba93348f55fd6cb588abf129010b28f351e
+DIST botocore-1.34.19.gh.tar.gz 12634480 BLAKE2B 839124ae13bd87697bd9d2c4d62f3171244cbd9b3c1cf96ffbf2b536d9c1432a37c5cdaa6311da327e13caf0e4739bc4cf0543a26f7f3911ab41c022c54d9106 SHA512 4db43c898f93494d69e1bf33f64c7687cf4b6f43580b0a03bbe93986e4ff09c97b57365ffd4992860dc36dd43b797c5501837db1036fefdbc84a9b94d97e920f
diff --git a/dev-python/botocore/botocore-1.34.19.ebuild b/dev-python/botocore/botocore-1.34.19.ebuild
new file mode 100644
index 000000000000..2fc3a4924fdb
--- /dev/null
+++ b/dev-python/botocore/botocore-1.34.19.ebuild
@@ -0,0 +1,68 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=setuptools
+PYTHON_COMPAT=( python3_{8,9,10,11,12} )
+
+inherit distutils-r1
+
+DESCRIPTION="Low-level, data-driven core of boto 3"
+HOMEPAGE="
+ https://github.com/boto/botocore/
+ https://pypi.org/project/botocore/
+"
+LICENSE="Apache-2.0"
+SLOT="0"
+
+if [[ "${PV}" == "9999" ]]; then
+ EGIT_REPO_URI="https://github.com/boto/botocore"
+ inherit git-r3
+else
+ SRC_URI="
+ https://github.com/boto/botocore/archive/${PV}.tar.gz
+ -> ${P}.gh.tar.gz
+ "
+ KEYWORDS="~amd64 ~arm ~arm64 ~ppc ~ppc64 ~riscv ~sparc ~x86 ~amd64-linux ~x86-linux"
+fi
+
+RDEPEND="
+ dev-python/six[${PYTHON_USEDEP}]
+ <dev-python/jmespath-2[${PYTHON_USEDEP}]
+ dev-python/python-dateutil[${PYTHON_USEDEP}]
+ >=dev-python/urllib3-1.25.4[${PYTHON_USEDEP}]
+"
+BDEPEND="
+ test? (
+ dev-python/jsonschema[${PYTHON_USEDEP}]
+ )
+"
+
+EPYTEST_XDIST=1
+distutils_enable_tests pytest
+
+src_prepare() {
+ # unpin deps
+ sed -i -e "s:>=.*':':" setup.py || die
+
+ # unbundle deps
+ rm -r botocore/vendored || die
+ find -name '*.py' -exec sed -i \
+ -e 's:from botocore[.]vendored import:import:' \
+ -e 's:from botocore[.]vendored[.]:from :' \
+ {} + || die
+
+ distutils-r1_src_prepare
+}
+
+python_test() {
+ local EPYTEST_DESELECT=(
+ # rely on bundled six
+ tests/functional/test_six_imports.py::test_no_bare_six_imports
+ tests/functional/test_six_threading.py::test_six_thread_safety
+ )
+
+ local -x EPYTEST_DISABLE_PLUGIN_AUTOLOAD=1
+ epytest tests/{functional,unit}
+}
diff --git a/dev-python/bump2version/Manifest b/dev-python/bump2version/Manifest
deleted file mode 100644
index 115c46e5e597..000000000000
--- a/dev-python/bump2version/Manifest
+++ /dev/null
@@ -1 +0,0 @@
-DIST bump2version-1.0.1.tar.gz 36236 BLAKE2B 74c2f0ad8c875438b597927f9cd8cdc67494b4ea1aefd7b0770d3494093bbb90d8050ec6c225eb7b0c599124b8b77e18ebdf570798674ee421397fe6700eb613 SHA512 687ad38eabdac57a3daf66714166ebb41aaf8e1a42292c69a1eb56738955413d310fecc7b36a7c39aba2e7ca1bc20ff38b4cc0d40a722304689f03a1b6dd0be8
diff --git a/dev-python/bump2version/bump2version-1.0.1.ebuild b/dev-python/bump2version/bump2version-1.0.1.ebuild
deleted file mode 100644
index bca1c91eebd7..000000000000
--- a/dev-python/bump2version/bump2version-1.0.1.ebuild
+++ /dev/null
@@ -1,42 +0,0 @@
-# Copyright 2023 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-DISTUTILS_USE_PEP517=setuptools
-PYTHON_COMPAT=( python3_{8,9,10,11,12} )
-inherit distutils-r1 pypi
-
-DESCRIPTION="Version-bump your software with a single command!"
-HOMEPAGE="
- https://pypi.org/project/bump2version/
- https://github.com/c4urself/bump2version
-"
-
-LICENSE="MIT"
-SLOT="0"
-KEYWORDS="~amd64"
-
-BDEPEND="
- test? (
- dev-vcs/git
- dev-vcs/mercurial
- dev-python/testfixtures[${PYTHON_USEDEP}]
- )
-"
-
-EPYTEST_DESELECT=(
- tests/test_cli.py::test_usage_string
- "tests/test_cli.py::test_regression_help_in_work_dir[git]"
- "tests/test_cli.py::test_regression_help_in_work_dir[hg]"
- tests/test_cli.py::test_defaults_in_usage_with_config
-)
-
-distutils_enable_tests pytest
-
-src_test() {
- git config --global user.email "you@example.com" || die
- git config --global user.name "Your Name" || die
-
- distutils-r1_src_test
-}
diff --git a/dev-python/bump2version/metadata.xml b/dev-python/bump2version/metadata.xml
deleted file mode 100644
index 736a1167c898..000000000000
--- a/dev-python/bump2version/metadata.xml
+++ /dev/null
@@ -1,6 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE pkgmetadata SYSTEM "https://liguros.gitlab.io/dtd/metadata.dtd">
-<pkgmetadata>
-
- <origin>gentoo-guru-overlay</origin>
-</pkgmetadata> \ No newline at end of file
diff --git a/dev-python/bumpfontversion/bumpfontversion-0.4.1.ebuild b/dev-python/bumpfontversion/bumpfontversion-0.4.1.ebuild
index 041aae8f733d..6b2b631e2327 100644
--- a/dev-python/bumpfontversion/bumpfontversion-0.4.1.ebuild
+++ b/dev-python/bumpfontversion/bumpfontversion-0.4.1.ebuild
@@ -18,9 +18,9 @@ SLOT="0"
KEYWORDS="~amd64"
RDEPEND="
- dev-python/bump2version[${PYTHON_USEDEP}]
dev-python/fonttools[${PYTHON_USEDEP}]
dev-python/glyphsLib[${PYTHON_USEDEP}]
dev-python/openstep-plist[${PYTHON_USEDEP}]
dev-python/ufoLib2[${PYTHON_USEDEP}]
+ dev-util/bump2version[${PYTHON_USEDEP}]
"
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 04901d0d05ab..fbbae92b165a 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/jplephem/Manifest b/dev-python/jplephem/Manifest
index 8d33f7b48f07..8bf4c89d2a23 100644
--- a/dev-python/jplephem/Manifest
+++ b/dev-python/jplephem/Manifest
@@ -1,3 +1 @@
-DIST jplephem-2.18.tar.gz 40886 BLAKE2B c6beb3cb2aec7d82023a253f9b5bafd989fbc7631b1b727322bf8f092509eeb25c6921d550c7bb5862be74d493a19ca29b3835f9a18efbd44509d4776ca660f6 SHA512 8f3117445f33de25d1f1eb5b5cfa0f67d92e62e7ac8d7a32f92690d12533ef8cd5498a62b5ee9cb7dac6f43c944879bbf10aa73950a749caa02d814f81b37fbf
-DIST jplephem-2.19.tar.gz 43698 BLAKE2B 7313b14c64e0a2f2263fe4b2233e3113bb85f335f9d84ea13668b2a6f52b3b5c3a98d0b0d97ffc3ceb70b4569d9c2f547a5e03718eed69ddc0bc6a0be23f150f SHA512 f6595db4039029fe0af2c2901c635cde298d9480c29d4768ef8275833735b7363bf6312a4fd3afc135ecbc9e9cf32b6b1e2766405456a44f7a9ed584d9f7ae82
DIST jplephem-2.21.tar.gz 44359 BLAKE2B 53e816f9eb6ffed8635cd93b4ca68d904c130af2e2dcfcae58c0575ad11c0269487cef1eb73934184c84773387f18ba2eec7c850a383757cf7be649fd5a2e8f6 SHA512 1cd8df8c96dd6bdd73b2615cc78fcf845d2d6d44daa99754662e2449e2c185052983056a9f0de11bfce390cc6c09a798b2ad1908b3eb0bca113e8c0ba16445e2
diff --git a/dev-python/jplephem/jplephem-2.18.ebuild b/dev-python/jplephem/jplephem-2.18.ebuild
deleted file mode 100644
index 3907632194f4..000000000000
--- a/dev-python/jplephem/jplephem-2.18.ebuild
+++ /dev/null
@@ -1,21 +0,0 @@
-# Copyright 1999-2023 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-DISTUTILS_USE_SETUPTOOLS=no
-PYTHON_COMPAT=( python3_{8,9,10,11,12} )
-
-inherit distutils-r1 pypi
-
-DESCRIPTION="Python version of NASA DE4xx ephemerides for Astronomical Alamanac"
-HOMEPAGE="https://pypi.org/project/jplephem/"
-
-LICENSE="MIT"
-SLOT="0"
-KEYWORDS="~amd64 ~x86"
-IUSE="test"
-RESTRICT="!test? ( test )"
-
-RDEPEND="dev-python/numpy[${PYTHON_USEDEP}]"
-DEPEND="${RDEPEND}"
diff --git a/dev-python/jplephem/jplephem-2.19.ebuild b/dev-python/jplephem/jplephem-2.19.ebuild
deleted file mode 100644
index 3907632194f4..000000000000
--- a/dev-python/jplephem/jplephem-2.19.ebuild
+++ /dev/null
@@ -1,21 +0,0 @@
-# Copyright 1999-2023 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-DISTUTILS_USE_SETUPTOOLS=no
-PYTHON_COMPAT=( python3_{8,9,10,11,12} )
-
-inherit distutils-r1 pypi
-
-DESCRIPTION="Python version of NASA DE4xx ephemerides for Astronomical Alamanac"
-HOMEPAGE="https://pypi.org/project/jplephem/"
-
-LICENSE="MIT"
-SLOT="0"
-KEYWORDS="~amd64 ~x86"
-IUSE="test"
-RESTRICT="!test? ( test )"
-
-RDEPEND="dev-python/numpy[${PYTHON_USEDEP}]"
-DEPEND="${RDEPEND}"
diff --git a/dev-python/jplephem/jplephem-2.21.ebuild b/dev-python/jplephem/jplephem-2.21.ebuild
index 3907632194f4..a85fe35a8cd9 100644
--- a/dev-python/jplephem/jplephem-2.21.ebuild
+++ b/dev-python/jplephem/jplephem-2.21.ebuild
@@ -3,7 +3,7 @@
EAPI=8
-DISTUTILS_USE_SETUPTOOLS=no
+DISTUTILS_USE_PEP517=setuptools
PYTHON_COMPAT=( python3_{8,9,10,11,12} )
inherit distutils-r1 pypi
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 736a1167c898..020e07f2a3dd 100644
--- a/dev-python/langdetect/metadata.xml
+++ b/dev-python/langdetect/metadata.xml
@@ -1,6 +1,12 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE pkgmetadata SYSTEM "https://liguros.gitlab.io/dtd/metadata.dtd">
<pkgmetadata>
-
- <origin>gentoo-guru-overlay</origin>
+ <maintainer type="person">
+ <email>marcin.deranek@slonko.net</email>
+ <name>Marcin Deranek</name>
+ </maintainer>
+ <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/pypy-exe-bin/Manifest b/dev-python/pypy-exe-bin/Manifest
index f80e887d8d0e..ca8e70340ce0 100644
--- a/dev-python/pypy-exe-bin/Manifest
+++ b/dev-python/pypy-exe-bin/Manifest
@@ -14,3 +14,11 @@ 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
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 1d1bd519014b..4e60d28d91b9 100644
--- a/dev-python/pypy-exe/Manifest
+++ b/dev-python/pypy-exe/Manifest
@@ -1,4 +1,6 @@
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
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/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 32bbf96d1eb0..cacf94855ca3 100644
--- a/dev-python/pypy3_10-exe-bin/Manifest
+++ b/dev-python/pypy3_10-exe-bin/Manifest
@@ -22,3 +22,11 @@ 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
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 3654121464c7..b1b2a134217b 100644
--- a/dev-python/pypy3_10-exe/Manifest
+++ b/dev-python/pypy3_10-exe/Manifest
@@ -1,5 +1,7 @@
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
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 1d0f56357d9f..bc5ad2e88381 100644
--- a/dev-python/pypy3_10/Manifest
+++ b/dev-python/pypy3_10/Manifest
@@ -2,5 +2,7 @@ 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
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 17aa6a91cb8e..c6f26aa2a384 100644
--- a/dev-python/pypy3_9-exe-bin/Manifest
+++ b/dev-python/pypy3_9-exe-bin/Manifest
@@ -14,3 +14,11 @@ 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
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 398f5084298e..01463537cdc5 100644
--- a/dev-python/pypy3_9-exe/Manifest
+++ b/dev-python/pypy3_9-exe/Manifest
@@ -1,4 +1,6 @@
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
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 dde316b9d375..755616050e96 100644
--- a/dev-python/pypy3_9/Manifest
+++ b/dev-python/pypy3_9/Manifest
@@ -1,2 +1,4 @@
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
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
+}
diff --git a/dev-python/python-ipware/Manifest b/dev-python/python-ipware/Manifest
index 13461900d6f8..bcfc279c17c4 100644
--- a/dev-python/python-ipware/Manifest
+++ b/dev-python/python-ipware/Manifest
@@ -1 +1,2 @@
DIST python-ipware-0.9.0.gh.tar.gz 11844 BLAKE2B 0d68933880063fa6a28a04bea3dd3e45c55af318b95e6e3d6bd163b6d77433b0fecd90b31d074107738534340fdd1e373b9d70012665ed5b2bc74a6a26d00f03 SHA512 9cbd44a31e1007958e08217ce43a4412390f386adacea18a5c242c970e103b892c351845d824a2cc88b9ee96694b21a2c938ad92ffa07f9c38e387fc37ea8816
+DIST python-ipware-2.0.1.gh.tar.gz 12714 BLAKE2B 09486e6bf0090c95108030ba9b9027e0465ab5e1b9306ff03c214007034b88097925210da15c5dd52b9c25f3b706507196257e4836448c9449117c56e128ad33 SHA512 91f5d0c311238c48dce195db48ef29058d7fc35d3d1e81edcef63d7f267879399ee7bba87b101c8ab869f5e45d55af9a11e65333a11a56f9b24da98555d4b686
diff --git a/dev-python/python-ipware/metadata.xml b/dev-python/python-ipware/metadata.xml
index a2df676e20ae..f85b4846a177 100644
--- a/dev-python/python-ipware/metadata.xml
+++ b/dev-python/python-ipware/metadata.xml
@@ -2,9 +2,9 @@
<!DOCTYPE pkgmetadata SYSTEM "https://liguros.gitlab.io/dtd/metadata.dtd">
<pkgmetadata>
<maintainer type="project">
- <email>core@liguros.net</email>
+ <email>dev@liguros.net</email>
<name>Development</name>
</maintainer>
<origin>ports</origin>
-</pkgmetadata> \ No newline at end of file
+</pkgmetadata>
diff --git a/dev-python/python-ipware/python-ipware-2.0.1.ebuild b/dev-python/python-ipware/python-ipware-2.0.1.ebuild
new file mode 100644
index 000000000000..251bcecbf35c
--- /dev/null
+++ b/dev-python/python-ipware/python-ipware-2.0.1.ebuild
@@ -0,0 +1,20 @@
+# Copyright 2023-2024 Liguros Authors
+# Distributed under the terms of the GNU General Public License v2
+EAPI=8
+
+DISTUTILS_USE_PEP517=setuptools
+PYTHON_COMPAT=( python3_{8,9,10,11,12} )
+
+inherit distutils-r1
+
+DESCRIPTION="A Django application to retrieve user's IP address"
+HOMEPAGE="https://github.com/un33k/python-ipware https://pypi.org/project/python-ipware/"
+SRC_URI="https://github.com/un33k/python-ipware/archive/refs/tags/v${PV}.tar.gz -> ${P}.gh.tar.gz"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~amd64"
+
+python_test() {
+ "${EPYTHON}" tests/manage.py test -v2 myapp || die "Tests failed with ${EPYTHON}"
+}
diff --git a/dev-python/python-memcached/Manifest b/dev-python/python-memcached/Manifest
index 56ca0e6f8fc4..764eb87253b0 100644
--- a/dev-python/python-memcached/Manifest
+++ b/dev-python/python-memcached/Manifest
@@ -1 +1,2 @@
DIST python-memcached-1.61.gh.tar.gz 29238 BLAKE2B 4b24ae56716a0c17297c2041e26c555e0e675d87d3e77f75fd33e60f9c7f3791f1e4ef0e8fcaf0f895a2dce2f5539ddf5a6d2e42d3198a71d5edcc9a52716442 SHA512 ea66a04129816863d700718ae525838b381aaca6da3a239e3b2ff5cfc92297083a4b66fe0a10c1460f597e066b3d30902cdab1c38999be49b77d745a078d1da2
+DIST python-memcached-1.62.gh.tar.gz 28598 BLAKE2B 4251931d4e77e83b959d1d3c23d96b532083ebe86e23c25e899185485de59348994041529c03be22be412128657e8bac9edd326b81a218113c465d69e4ae2b4f SHA512 0394a3c6c1521e2dd5ce27953ebe285ab6ffc514ea64f8da22e9e630d01d49e975f5f81e8fc12080424a35409f7b39b4d8a0ff9893ab4b4985bad1005c6c1026
diff --git a/dev-python/python-memcached/python-memcached-1.62.ebuild b/dev-python/python-memcached/python-memcached-1.62.ebuild
new file mode 100644
index 000000000000..07ed2589418f
--- /dev/null
+++ b/dev-python/python-memcached/python-memcached-1.62.ebuild
@@ -0,0 +1,50 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=setuptools
+PYTHON_COMPAT=( python3_{8,9,10,11,12} pypy3 )
+
+inherit distutils-r1
+
+DESCRIPTION="Pure python memcached client"
+HOMEPAGE="
+ https://github.com/linsomniac/python-memcached/
+ https://pypi.org/project/python-memcached/
+"
+SRC_URI="
+ https://github.com/linsomniac/python-memcached/archive/${PV}.tar.gz
+ -> ${P}.gh.tar.gz
+"
+
+LICENSE="PSF-2.4"
+SLOT="0"
+KEYWORDS="~amd64 ~arm64 ~ppc ~x86 ~amd64-linux ~x86-linux"
+
+BDEPEND="
+ test? (
+ net-misc/memcached
+ )
+"
+
+distutils_enable_tests unittest
+
+python_test() {
+ local pidfile="${TMPDIR}/memcached.pid"
+
+ memcached -d -P "${pidfile}" || die "failed to start memcached"
+
+ eunittest || die "Tests fail with ${EPYTHON}"
+
+ kill "$(<"${pidfile}")" || die "failed to kill memcached"
+ local elapsed=0
+ while [[ -f ${pidfile} ]]; do
+ if [[ $(( elapsed++ )) -ge 30 ]]; then
+ kill -KILL "$(<"${pidfile}")" ||
+ die "failed to kill -KILL memcached"
+ die "memcached failed to stop after 30 seconds"
+ fi
+ sleep 1
+ done
+}
diff --git a/dev-python/repology-client/repology-client-0.0.2.ebuild b/dev-python/repology-client/repology-client-0.0.2.ebuild
index d4400f21938a..78cfb441e6e2 100644
--- a/dev-python/repology-client/repology-client-0.0.2.ebuild
+++ b/dev-python/repology-client/repology-client-0.0.2.ebuild
@@ -10,7 +10,7 @@ inherit distutils-r1 pypi
DESCRIPTION="Asynchronous wrapper for Repology API"
HOMEPAGE="
https://repology-client.sysrq.in/
- https://pypi.org/project/repology-client
+ https://pypi.org/project/repology-client/
"
LICENSE="CC-BY-SA-3.0 EUPL-1.2"
diff --git a/dev-python/service-identity/Manifest b/dev-python/service-identity/Manifest
index 48340f1a8a93..616acdde5baf 100644
--- a/dev-python/service-identity/Manifest
+++ b/dev-python/service-identity/Manifest
@@ -1 +1,2 @@
DIST service_identity-23.1.0.tar.gz 39840 BLAKE2B d4445cce42e9dba3ae192b05b3f66daab72cefe521c299837a73af84ff2705060580e3a052af01ba9abad820d3d252804050d8e3b2220dad48252832db8a90fa SHA512 bc53f563050811a2b40dbfcf1e0a1b1b5677e2b48ed4e94e37d29735baea49ed7a7099d656444c0054fa2c23ae96026e67919cf24b01a3ae6b3549fd25dfe4d1
+DIST service_identity-24.1.0.tar.gz 40183 BLAKE2B d597f4bfced6e766e1b256f43d134537a44e048bf4c704dbec1c16e6a29a42d60c2392c679e810b2ecc2f8ea3f681ddbe59bc0bfbd2d2c145bcc648f803b0964 SHA512 86cf2754bf8564d828d8cae4dec25dae04537ae59f5e2ee8450594f473cbd27f4c96313f743bad6842f9344a53a76a9d22064d8143e9d2d41a83376627d309fd
diff --git a/dev-python/service-identity/service-identity-24.1.0.ebuild b/dev-python/service-identity/service-identity-24.1.0.ebuild
new file mode 100644
index 000000000000..cea43f4428cd
--- /dev/null
+++ b/dev-python/service-identity/service-identity-24.1.0.ebuild
@@ -0,0 +1,35 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=hatchling
+PYTHON_COMPAT=( python3_{8,9,10,11,12} pypy3 )
+
+inherit distutils-r1 pypi
+
+DESCRIPTION="Service identity verification for pyOpenSSL"
+HOMEPAGE="
+ https://github.com/pyca/service-identity/
+ https://pypi.org/project/service-identity/
+"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~arm64 ~loong ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~x64-macos"
+
+RDEPEND="
+ >=dev-python/attrs-19.1.0[${PYTHON_USEDEP}]
+ dev-python/cryptography[${PYTHON_USEDEP}]
+ dev-python/pyasn1[${PYTHON_USEDEP}]
+ dev-python/pyasn1-modules[${PYTHON_USEDEP}]
+"
+BDEPEND="
+ dev-python/hatch-fancy-pypi-readme[${PYTHON_USEDEP}]
+ dev-python/hatch-vcs[${PYTHON_USEDEP}]
+ test? (
+ dev-python/pyopenssl[${PYTHON_USEDEP}]
+ )
+"
+
+distutils_enable_tests pytest
diff --git a/dev-python/types-setuptools/Manifest b/dev-python/types-setuptools/Manifest
index b4b859a78d07..171e31c010bd 100644
--- a/dev-python/types-setuptools/Manifest
+++ b/dev-python/types-setuptools/Manifest
@@ -1,2 +1,3 @@
DIST types-setuptools-69.0.0.0.tar.gz 33164 BLAKE2B 1a99600bb93b21ca0c87a4d8b32ca61903b113b40e1d4b6641f303c4144032e8ef9c95b76bbede9f44b584a332640dd89ec50502df5a12b04a36bd5d8ab4c413 SHA512 e7b5945a2654334bf9188e98f13a153fe09fc548419888b28262b71cf04086f62a50f1f086cb348d327c3c0bb5fb537279e105802592fc9e75ef301538de5503
DIST types-setuptools-69.0.0.20240106.tar.gz 33210 BLAKE2B 9bc899b61de4bca93459c88c8f615b4669f9082b1294b1336b5ce83607c4ff074799d809f867b8c9316b78afe535cc1cd9b54903b78e4c5c58353de670d9cf9e SHA512 5c66be446b8e02952139ce7f68e84ae066444a1a576645f1cc623a4c2ea4945b6471ff432bf8193e5a1439b6ed5b88ad446a0cd50df27d2ecac1d799e51c9a9a
+DIST types-setuptools-69.0.0.20240115.tar.gz 33254 BLAKE2B 384e9a604f9ebd5ed6fd5c30c70cddbdfe12b616641b943e33f594cd15d43f4555a27cdc11b4ef09840880f830fbc1d5123ace77abc6d420f94e4b2ca6084c8b SHA512 fe60efa5ae55ad8427c8c641784193bee3c9bddea0c19e45660c3b16d0f7b492eb58a4e594ce23b0c64db8939e1e7e3a764efb84b30436b252f911e0cb50baa5
diff --git a/dev-python/types-setuptools/types-setuptools-69.0.0.20240115.ebuild b/dev-python/types-setuptools/types-setuptools-69.0.0.20240115.ebuild
new file mode 100644
index 000000000000..c755b6e96b17
--- /dev/null
+++ b/dev-python/types-setuptools/types-setuptools-69.0.0.20240115.ebuild
@@ -0,0 +1,17 @@
+# Copyright 2023-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=setuptools
+PYPI_NO_NORMALIZE=1
+PYTHON_COMPAT=( python3_{8,9,10,11,12} )
+
+inherit distutils-r1 pypi
+
+DESCRIPTION="Typing stubs for setuptools"
+HOMEPAGE="https://pypi.org/project/types-setuptools/"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~loong ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
diff --git a/dev-python/unearth/Manifest b/dev-python/unearth/Manifest
index ab589b0de01e..9b6582feb767 100644
--- a/dev-python/unearth/Manifest
+++ b/dev-python/unearth/Manifest
@@ -1 +1,2 @@
DIST unearth-0.12.1.tar.gz 280628 BLAKE2B 2f96c818f5744b228d11d81fac8fb69da4df685b221f3a77424a1eb1d584e154798974ad4548c6f4264faa98f52cddeb94249e1c7e21136c50c08d97446149b6 SHA512 f726562191a3f2b9c189d16223b86307d79f0ca9e251c155e7acbc92160bed834c78064fbc5d745cd90b84ccd6eb2a24c737018fd670474921db0c7d15480576
+DIST unearth-0.13.0.tar.gz 280537 BLAKE2B 92e8cfd42c36d067eccba594ef6e510491156bb4e85d66ab0c1050029be3acf3308c21581d82a3ffd1982d1c8eb966d0be68d1fb8739621b52aa9e7073fd5963 SHA512 48bcdd2e61ffc6580ce19d0124e43aab0411efa913801cd74365ddefa3cec50eb0742997fd6359b6191a00314964b052ebf8d3ea5a173d37bc2cfedc1d030408
diff --git a/dev-python/unearth/unearth-0.13.0.ebuild b/dev-python/unearth/unearth-0.13.0.ebuild
new file mode 100644
index 000000000000..aee1a2fadc70
--- /dev/null
+++ b/dev-python/unearth/unearth-0.13.0.ebuild
@@ -0,0 +1,39 @@
+# Copyright 2023-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=pdm-backend
+PYTHON_COMPAT=( python3_{8,9,10,11,12} pypy3 )
+
+inherit distutils-r1 pypi
+
+DESCRIPTION="A utility to fetch and download python packages"
+HOMEPAGE="
+ https://pypi.org/project/unearth/
+ https://github.com/frostming/unearth/
+"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~amd64 ~arm64"
+
+RDEPEND="
+ dev-python/packaging[${PYTHON_USEDEP}]
+ dev-python/requests[${PYTHON_USEDEP}]
+"
+BDEPEND="
+ test? (
+ dev-python/pytest-httpserver[${PYTHON_USEDEP}]
+ dev-python/flask[${PYTHON_USEDEP}]
+ dev-python/requests-wsgi-adapter[${PYTHON_USEDEP}]
+ dev-python/trustme[${PYTHON_USEDEP}]
+ )
+"
+
+distutils_enable_tests pytest
+
+python_test() {
+ local -x PYTEST_DISABLE_PLUGIN_AUTOLOAD=1
+ epytest -p pytest_httpserver
+}