summaryrefslogtreecommitdiff
path: root/dev-python
diff options
context:
space:
mode:
Diffstat (limited to 'dev-python')
-rw-r--r--dev-python/Manifest.gzbin269133 -> 269148 bytes
-rw-r--r--dev-python/pypy-exe-bin/Manifest9
-rw-r--r--dev-python/pypy-exe-bin/pypy-exe-bin-7.3.14.ebuild79
-rw-r--r--dev-python/pypy-exe/Manifest3
-rw-r--r--dev-python/pypy-exe/pypy-exe-7.3.14.ebuild177
-rw-r--r--dev-python/pypy/Manifest3
-rw-r--r--dev-python/pypy/pypy-7.3.14.ebuild302
-rw-r--r--dev-python/pypy3/Manifest1
-rw-r--r--dev-python/pypy3/pypy3-7.3.14.ebuild26
-rw-r--r--dev-python/pypy3_10-exe-bin/Manifest9
-rw-r--r--dev-python/pypy3_10-exe-bin/pypy3_10-exe-bin-7.3.14.ebuild82
-rw-r--r--dev-python/pypy3_10-exe/Manifest3
-rw-r--r--dev-python/pypy3_10-exe/pypy3_10-exe-7.3.14.ebuild132
-rw-r--r--dev-python/pypy3_10/Manifest3
-rw-r--r--dev-python/pypy3_10/pypy3_10-7.3.14.ebuild211
-rw-r--r--dev-python/pypy3_9-exe-bin/Manifest9
-rw-r--r--dev-python/pypy3_9-exe-bin/pypy3_9-exe-bin-7.3.14.ebuild82
-rw-r--r--dev-python/pypy3_9-exe/Manifest3
-rw-r--r--dev-python/pypy3_9-exe/pypy3_9-exe-7.3.14.ebuild128
-rw-r--r--dev-python/pypy3_9/Manifest3
-rw-r--r--dev-python/pypy3_9/pypy3_9-7.3.14.ebuild211
-rw-r--r--dev-python/python-sense-hat/Manifest3
-rw-r--r--dev-python/sense-hat/Manifest5
-rw-r--r--dev-python/sense-hat/metadata.xml (renamed from dev-python/python-sense-hat/metadata.xml)0
-rw-r--r--dev-python/sense-hat/sense-hat-2.4.0.ebuild (renamed from dev-python/python-sense-hat/python-sense-hat-2.4.0.ebuild)4
-rw-r--r--dev-python/sense-hat/sense-hat-2.6.0.ebuild27
26 files changed, 1511 insertions, 4 deletions
diff --git a/dev-python/Manifest.gz b/dev-python/Manifest.gz
index 3b28c30114ec..12a55e07f89b 100644
--- a/dev-python/Manifest.gz
+++ b/dev-python/Manifest.gz
Binary files differ
diff --git a/dev-python/pypy-exe-bin/Manifest b/dev-python/pypy-exe-bin/Manifest
index 4250d5577dd4..8dc5eea12d18 100644
--- a/dev-python/pypy-exe-bin/Manifest
+++ b/dev-python/pypy-exe-bin/Manifest
@@ -6,5 +6,14 @@ DIST pypy-exe-7.3.13-1.ppc64le-musl.gpkg.tar 6563840 BLAKE2B cc7938c4a9f3b80a9b7
DIST pypy-exe-7.3.13-1.ppc64le.gpkg.tar 10936320 BLAKE2B eaacb2af2c5f62fd487893e4d97ab288ead1c81a0b3ba99782f11ab95ac525c81bc37af5093e76843a17c8ce792aa601befe51b6774908a5328fd4ad449651f8 SHA512 733ec08aa5ab055ec4983e677c8261a4b62006c88a01f0e9ff9abed45781da5144eb4acd41ed7203f74622cd35cbb89c1384ec113c915e38a8d9d81288952b19
DIST pypy-exe-7.3.13-1.x86-musl.gpkg.tar 9656320 BLAKE2B 61f608aaaa316a64de7445fd856aedf34e11bb08d5f1d7819faa198c7014d397244acd54eb35fe95fc79ef53c5ff770f6e608a0868508422386f110c4357fb69 SHA512 0c3799d15688496ff67007323e0398e7b82becb83d77db4585b5439107f3b4244cff658b908d125d1615391265cc5add2ba5116027bf67c7603c49de54b73f02
DIST pypy-exe-7.3.13-1.x86.gpkg.tar 9574400 BLAKE2B 29b9d82995b503f5fa933c0ab3ea988b0321768692974d232040afc1b24fb45905f1ae526f57e443110e7341ed310753e4a0ffd161979b0bdc8e6cf1374ca540 SHA512 9046ae99f4996188c04a098e5d716e885545437f5e31e1c75268b45f80d4743b1c431a2aeed990746530ce3c6077a985ff535f813fabcf2ccac91ed8dbc4f2ef
+DIST pypy-exe-7.3.14-1.amd64-musl.gpkg.tar 12943360 BLAKE2B dcb129b19ba43ba92697f6b9133591ca02923b2d5b2bcbbc8c2936ea0aaa7c77caffe264fc5ed35bb46621b4ab47ebeaa8079a56558d39153b26d95c42d1b809 SHA512 783c09d6054209a0c4c7fbd366bf712fd53deb14a8083e1bb18cb5e4f2c5cbd2c638e42a0b8e2abc7d5fcd3b1437004532089ac8c35fcda512f3695e4105c2d7
+DIST pypy-exe-7.3.14-1.amd64.gpkg.tar 12861440 BLAKE2B 88ff25e6ecd12ac2844317923e4d353608bdcc8b65c3a828b5728d0b92759a8c6844b4b0e62563cd24c13b755416176f670a288e26317d8b114af3a1d774f5de SHA512 fa1407b2dae1e6e796611921a32a1f655ecf932601211c0257e6b3877636d99140c2a3617c6601a517eda1c1166f2b9d2fc47edf51703d7e0342699906bd1eaf
+DIST pypy-exe-7.3.14-1.arm64-musl.gpkg.tar 10895360 BLAKE2B c8ad4bd01df3ac990e54e6b22cca5d19d2b1c145e8672def6ef5e80e8b1240ec497fb5bfbcedafd2165e654a813ec5091eed6be797bba6c8ce431bf176e68818 SHA512 705ac967d776003c504df4c4c74549ba52c9b91e8145ed6e7d51e35603b5d2800350f159312077ff754254ec8ab539817d989d61b3ab289fdf32e52c85a58992
+DIST pypy-exe-7.3.14-1.arm64.gpkg.tar 10864640 BLAKE2B 6bf4cf7188edeca9cc94c4764c3c1f1cefb36e6430c3ec8c014ae25a91f9a1e6fd87701d0a6d06a36d3a607eef5c01605d6ed86fb1112901ca4b3827fec8c5c0 SHA512 fd85453a5729be5905a2eaf58109fa19268358244989d24d4a7fd4e627a60ff083d6ef96a3a244016ec87f4d3f76ee777f5fe6e356ef8819621b3740c0b19fc5
+DIST pypy-exe-7.3.14-1.ppc64le-musl.gpkg.tar 6696960 BLAKE2B 7478945b927d9df57e1242edbb57b99ab004d3e62159fbcdfb4ea6d406e1df73cfdb2e56bd87dc716b070792973ddffb2b9e535a0c63fe12548457920e20f29e SHA512 4e10026546933bbb734aa203b94941bb63471ab44396a405f6a0273a05e3f9225c8ec46011866e246681591f3ec9896d83a1246a1ca393739f864cdee53e8da8
+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
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
diff --git a/dev-python/pypy-exe-bin/pypy-exe-bin-7.3.14.ebuild b/dev-python/pypy-exe-bin/pypy-exe-bin-7.3.14.ebuild
new file mode 100644
index 000000000000..577201cf8c2d
--- /dev/null
+++ b/dev-python/pypy-exe-bin/pypy-exe-bin-7.3.14.ebuild
@@ -0,0 +1,79 @@
+# Copyright 1999-2023 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit pax-utils unpacker
+
+MY_P=pypy-exe-${PV}-1
+DESCRIPTION="PyPy executable (pre-built version)"
+HOMEPAGE="https://www.pypy.org/"
+SRC_URI="
+ elibc_glibc? (
+ amd64? (
+ https://dev.gentoo.org/~mgorny/binpkg/amd64/pypy/dev-python/pypy-exe/${MY_P}.gpkg.tar
+ -> ${MY_P}.amd64.gpkg.tar
+ )
+ arm64? (
+ https://dev.gentoo.org/~mgorny/binpkg/arm64/pypy/dev-python/pypy-exe/${MY_P}.gpkg.tar
+ -> ${MY_P}.arm64.gpkg.tar
+ )
+ ppc64? (
+ https://dev.gentoo.org/~mgorny/binpkg/ppc64le/pypy/dev-python/pypy-exe/${MY_P}.gpkg.tar
+ -> ${MY_P}.ppc64le.gpkg.tar
+ )
+ x86? (
+ https://dev.gentoo.org/~mgorny/binpkg/x86/pypy/dev-python/pypy-exe/${MY_P}.gpkg.tar
+ -> ${MY_P}.x86.gpkg.tar
+ )
+ )
+ elibc_musl? (
+ amd64? (
+ https://dev.gentoo.org/~mgorny/binpkg/amd64-musl/pypy/dev-python/pypy-exe/${MY_P}.gpkg.tar
+ -> ${MY_P}.amd64-musl.gpkg.tar
+ )
+ arm64? (
+ https://dev.gentoo.org/~mgorny/binpkg/arm64-musl/pypy/dev-python/pypy-exe/${MY_P}.gpkg.tar
+ -> ${MY_P}.arm64-musl.gpkg.tar
+ )
+ ppc64? (
+ https://dev.gentoo.org/~mgorny/binpkg/ppc64le-musl/pypy/dev-python/pypy-exe/${MY_P}.gpkg.tar
+ -> ${MY_P}.ppc64le-musl.gpkg.tar
+ )
+ x86? (
+ https://dev.gentoo.org/~mgorny/binpkg/x86-musl/pypy/dev-python/pypy-exe/${MY_P}.gpkg.tar
+ -> ${MY_P}.x86-musl.gpkg.tar
+ )
+ )
+"
+S="${WORKDIR}"
+
+LICENSE="MIT"
+SLOT="${PV%_p*}"
+KEYWORDS="~amd64 ~arm64 ~ppc64 ~x86"
+
+# sys-devel/gcc for libgcc_s.so
+RDEPEND="
+ app-arch/bzip2:0/1
+ dev-libs/expat:0/0
+ dev-libs/libffi:0/8
+ sys-libs/ncurses:0/6
+ >=sys-libs/zlib-1.1.3:0/1
+ virtual/libintl:0/0
+ elibc_glibc? (
+ sys-devel/gcc
+ >=sys-libs/glibc-2.35
+ )
+ !dev-python/pypy-exe:${SLOT}
+"
+
+QA_PREBUILT="
+ usr/lib/pypy2.7/pypy-c-${SLOT}
+"
+
+src_install() {
+ insinto /
+ doins -r */image/usr
+ fperms +x "/usr/lib/pypy2.7/pypy-c-${SLOT}"
+ pax-mark m "${ED}/usr/lib/pypy2.7/pypy-c-${SLOT}"
+}
diff --git a/dev-python/pypy-exe/Manifest b/dev-python/pypy-exe/Manifest
index c087ccb62cfe..422250f0ca7c 100644
--- a/dev-python/pypy-exe/Manifest
+++ b/dev-python/pypy-exe/Manifest
@@ -1,4 +1,7 @@
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-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
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
diff --git a/dev-python/pypy-exe/pypy-exe-7.3.14.ebuild b/dev-python/pypy-exe/pypy-exe-7.3.14.ebuild
new file mode 100644
index 000000000000..6f7eef22f3b8
--- /dev/null
+++ b/dev-python/pypy-exe/pypy-exe-7.3.14.ebuild
@@ -0,0 +1,177 @@
+# Copyright 1999-2023 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit check-reqs pax-utils toolchain-funcs
+
+PYPY_PV=${PV%_p*}
+MY_P=pypy2.7-v${PYPY_PV/_}
+PATCHSET="pypy2.7-gentoo-patches-${PV/_}"
+
+DESCRIPTION="PyPy executable (build from source)"
+HOMEPAGE="https://www.pypy.org/"
+SRC_URI="
+ https://buildbot.pypy.org/pypy/${MY_P}-src.tar.bz2
+ https://dev.gentoo.org/~mgorny/dist/python/${PATCHSET}.tar.xz
+"
+S="${WORKDIR}/${MY_P}-src"
+
+LICENSE="MIT"
+SLOT="${PYPY_PV}"
+KEYWORDS="~amd64 ~arm64 ~ppc64 ~x86 ~amd64-linux ~x86-linux"
+IUSE="bzip2 +jit low-memory ncurses cpu_flags_x86_sse2"
+
+DEPEND="
+ >=sys-libs/zlib-1.1.3:0=
+ dev-libs/libffi:0=
+ virtual/libintl:0=
+ dev-libs/expat:0=
+ bzip2? ( app-arch/bzip2:0= )
+ ncurses? ( sys-libs/ncurses:0= )
+"
+RDEPEND="
+ ${DEPEND}
+ !dev-python/pypy-exe-bin:${PYPY_PV}
+"
+# don't enforce the dep on dev-python/pypy with USE=low-memory
+# since it's going to cause circular dep with unhelpful error message
+BDEPEND="
+ !low-memory? (
+ || (
+ dev-python/pypy
+ dev-lang/python:2.7
+ )
+ )
+"
+
+check_env() {
+ if ! has_version -b dev-python/pypy; then
+ if use low-memory; then
+ eerror "USE=low-memory requires (a prior version of) dev-python/pypy"
+ eerror "installed."
+ else
+ ewarn "CPython 2.7 will be used to perform the translation. Upstream"
+ ewarn "recommends using (a prior version of) dev-python/pypy instead."
+ fi
+ elog "You can install a prebuilt version of PyPy first using e.g.:"
+ elog " $ emerge -1v dev-python/pypy dev-python/pypy-exe-bin"
+
+ if use low-memory; then
+ die "dev-python/pypy needs to be installed for USE=low-memory"
+ fi
+ fi
+
+ if use low-memory; then
+ CHECKREQS_MEMORY="1750M"
+ use amd64 && CHECKREQS_MEMORY="3500M"
+ else
+ CHECKREQS_MEMORY="3G"
+ use amd64 && CHECKREQS_MEMORY="6G"
+ fi
+
+ check-reqs_pkg_pretend
+}
+
+pkg_pretend() {
+ [[ ${MERGE_TYPE} != binary ]] && check_env
+}
+
+pkg_setup() {
+ [[ ${MERGE_TYPE} != binary ]] && check_env
+}
+
+src_prepare() {
+ local PATCHES=(
+ "${WORKDIR}/${PATCHSET}"
+ )
+ default
+}
+
+src_configure() {
+ tc-export CC
+
+ local jit_backend
+ if use jit; then
+ jit_backend='--jit-backend='
+
+ # We only need the explicit sse2 switch for x86.
+ # On other arches we can rely on autodetection which uses
+ # compiler macros. Plus, --jit-backend= doesn't accept all
+ # the modern values...
+
+ if use x86; then
+ if use cpu_flags_x86_sse2; then
+ jit_backend+=x86
+ else
+ jit_backend+=x86-without-sse2
+ fi
+ else
+ jit_backend+=auto
+ fi
+ fi
+
+ local args=(
+ --no-shared
+ $(usex jit -Ojit -O2)
+
+ ${jit_backend}
+
+ pypy/goal/targetpypystandalone
+ )
+
+ # Avoid linking against libraries disabled by use flags
+ local opts=(
+ bzip2:bz2
+ ncurses:_minimal_curses
+ )
+
+ local opt
+ for opt in "${opts[@]}"; do
+ local flag=${opt%:*}
+ local mod=${opt#*:}
+
+ args+=(
+ $(usex ${flag} --withmod --withoutmod)-${mod}
+ )
+ done
+
+ local interp
+ if use low-memory || has_version -b dev-python/pypy; then
+ einfo "Using already-installed PyPy to perform the translation."
+ interp=( pypy )
+ if use low-memory; then
+ local -x PYPY_GC_MAX_DELTA=200MB
+ interp+=( --jit loop_longevity=300 )
+ fi
+ else
+ einfo "Using CPython 2.7 to perform the translation."
+ interp=( python2.7 )
+
+ # reuse bundled pycparser to avoid external dep
+ mkdir -p "${T}"/pymod/cffi || die
+ : > "${T}"/pymod/cffi/__init__.py || die
+ cp -r lib_pypy/cffi/_pycparser "${T}"/pymod/cffi/ || die
+ local -x PYTHONPATH=${T}/pymod:${PYTHONPATH}
+ fi
+
+ # translate into the C sources
+ # we're going to build them ourselves since otherwise pypy does not
+ # free up the unneeded memory before spawning the compiler
+ set -- "${interp[@]}" rpython/bin/rpython --batch --source "${args[@]}"
+ echo -e "\033[1m${@}\033[0m"
+ "${@}" || die "translation failed"
+}
+
+src_compile() {
+ emake -C "${T}"/usession*-0/testing_1
+}
+
+src_install() {
+ local dest=/usr/lib/pypy2.7
+ exeinto "${dest}"
+ newexe "${T}"/usession*-0/testing_1/pypy-c pypy-c-${PYPY_PV}
+ insinto "${dest}"/include/${PYPY_PV}
+ doins include/pypy_*
+ pax-mark m "${ED}${dest}/pypy-c-${PYPY_PV}"
+}
diff --git a/dev-python/pypy/Manifest b/dev-python/pypy/Manifest
index 288848860ce5..6e4af980d565 100644
--- a/dev-python/pypy/Manifest
+++ b/dev-python/pypy/Manifest
@@ -1,4 +1,7 @@
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-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
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
diff --git a/dev-python/pypy/pypy-7.3.14.ebuild b/dev-python/pypy/pypy-7.3.14.ebuild
new file mode 100644
index 000000000000..1ef22f293672
--- /dev/null
+++ b/dev-python/pypy/pypy-7.3.14.ebuild
@@ -0,0 +1,302 @@
+# Copyright 1999-2023 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/"
+SRC_URI="
+ https://buildbot.pypy.org/pypy/${MY_P}-src.tar.bz2
+ https://dev.gentoo.org/~mgorny/dist/python/${PATCHSET}.tar.xz
+"
+S="${WORKDIR}/${MY_P}-src"
+
+LICENSE="MIT"
+# pypy -c 'import sysconfig; print sysconfig.get_config_var("SOABI")'
+SLOT="0/73"
+KEYWORDS="~amd64 ~arm64 ~ppc64 ~x86 ~amd64-linux ~x86-linux"
+IUSE="bzip2 full-stdlib gdbm +jit ncurses sqlite tk"
+RESTRICT="!full-stdlib? ( test )"
+
+RDEPEND="
+ || (
+ >=dev-python/pypy-exe-bin-${PYPY_PV}:${PYPY_PV}
+ >=dev-python/pypy-exe-${PYPY_PV}:${PYPY_PV}[bzip2?,ncurses?]
+ )
+ dev-libs/openssl:0=
+ gdbm? ( sys-libs/gdbm:0= )
+ sqlite? ( dev-db/sqlite:3= )
+ tk? (
+ dev-lang/tk:0=
+ dev-tcltk/tix:0=
+ )
+"
+DEPEND="
+ ${RDEPEND}
+"
+
+src_prepare() {
+ local PATCHES=(
+ "${WORKDIR}/${PATCHSET}"
+ )
+ default
+}
+
+src_compile() {
+ # copy over to make sys.prefix happy
+ cp -p "${BROOT}"/usr/lib/pypy2.7/pypy-c-${PYPY_PV} pypy-c || die
+ cp -p "${BROOT}"/usr/lib/pypy2.7/include/${PYPY_PV}/* include/ || die
+ # (not installed by pypy)
+ rm pypy/module/cpyext/include/_numpypy/numpy/README || die
+ mv pypy/module/cpyext/include/* include/ || die
+ mv pypy/module/cpyext/parse/*.h include/ || die
+ pax-mark m pypy-c
+
+ # verify the subslot
+ local soabi=$(
+ ./pypy-c - <<-EOF
+ import sysconfig
+ print sysconfig.get_config_var("SOABI")
+ EOF
+ )
+ [[ ${soabi#pypy-} == ${SLOT#*/} ]] || die "update subslot to ${soabi}"
+
+ einfo "Generating caches and CFFI modules ..."
+
+ if use full-stdlib; then
+ # Generate Grammar and PatternGrammar pickles.
+ ./pypy-c - <<-EOF || die "Generation of Grammar and PatternGrammar pickles failed"
+ import lib2to3.pygram
+ import lib2to3.patcomp
+ lib2to3.patcomp.PatternCompiler()
+ EOF
+
+ # Generate cffi modules
+ # Please keep in sync with pypy/tool/build_cffi_imports.py!
+ cffi_targets=( pypy_util ssl audioop syslog pwdgrp resource )
+ use gdbm && cffi_targets+=( gdbm )
+ use ncurses && cffi_targets+=( curses )
+ use sqlite && cffi_targets+=( sqlite3 )
+ use tk && cffi_targets+=( tkinter/tklib )
+
+ local t
+ # all modules except tkinter output to .
+ # tkinter outputs to the correct dir ...
+ cd lib_pypy || die
+ for t in "${cffi_targets[@]}"; do
+ # tkinter doesn't work via -m
+ ../pypy-c "_${t}_build.py" || die "Failed to build CFFI bindings for ${t}"
+ done
+
+ # Verify that CFFI module list is up-to-date
+ local expected_cksum=2d3acf18
+ local local_cksum=$(
+ ../pypy-c - <<-EOF
+ import binascii
+ import json
+ from pypy_tools.build_cffi_imports import cffi_build_scripts as x
+ print("%08x" % (binascii.crc32(json.dumps(x)),))
+ EOF
+ )
+ if [[ ${local_cksum} != ${expected_cksum} ]]; then
+ die "Please verify cffi_targets and update checksum to ${local_cksum}"
+ fi
+
+ # Cleanup temporary objects
+ find -name "_cffi_*.[co]" -delete || die
+ find -type d -empty -delete || die
+ fi
+}
+
+src_test() {
+ # (unset)
+ local -x PYTHONDONTWRITEBYTECODE=
+ local -x COLUMNS=80
+
+ local ignored_tests=(
+ # network
+ --ignore=lib-python/2.7/test/test_urllibnet.py
+ --ignore=lib-python/2.7/test/test_urllib2net.py
+ # lots of free space
+ --ignore=lib-python/2.7/test/test_zipfile64.py
+
+ # broken by expat-2.4.5
+ --ignore=lib-python/2.7/test/test_minidom.py
+ --ignore=lib-python/2.7/test/test_xml_etree.py
+ --ignore=lib-python/2.7/test/test_xml_etree_c.py
+ )
+
+ ./pypy-c ./pypy/test_all.py --pypy=./pypy-c -vv \
+ "${ignored_tests[@]}" lib-python || die
+}
+
+src_install() {
+ local dest=/usr/lib/pypy2.7
+ einfo "Installing PyPy ..."
+ dosym pypy-c-${PYPY_PV} "${dest}/pypy-c"
+ insinto "${dest}"
+ # preserve mtimes to avoid obsoleting caches
+ insopts -p
+ if use full-stdlib; then
+ doins -r include lib_pypy lib-python
+
+ # replace copied headers with symlinks
+ for x in "${BROOT}"/usr/lib/pypy2.7/include/${PYPY_PV}/*; do
+ dosym "${PYPY_PV}/${x##*/}" "${dest}/include/${x##*/}"
+ done
+
+ if ! use gdbm; then
+ rm -r "${ED}${dest}"/lib_pypy/gdbm.py \
+ "${ED}${dest}"/lib-python/*2.7/test/test_gdbm.py || die
+ fi
+ if ! use sqlite; then
+ rm -r "${ED}${dest}"/lib-python/*2.7/sqlite3 \
+ "${ED}${dest}"/lib_pypy/_sqlite3.py \
+ "${ED}${dest}"/lib-python/*2.7/test/test_sqlite.py || die
+ fi
+ if ! use tk; then
+ rm -r "${ED}${dest}"/lib-python/*2.7/{idlelib,lib-tk} \
+ "${ED}${dest}"/lib_pypy/_tkinter \
+ "${ED}${dest}"/lib-python/*2.7/test/test_{tcl,tk,ttk*}.py || die
+ fi
+ else
+ # install only the absolutely minimal subset of modules needed
+ # for pypy3 build
+ local lib_py_modules=(
+ # base modules needed to even start pypy (and import site)
+ codecs.py
+ copy_reg.py
+ encodings
+ genericpath.py
+ linecache.py
+ os.py
+ pkgutil.py
+ posixpath.py
+ re.py
+ runpy.py
+ site.py
+ sre_compile.py
+ sre_constants.py
+ sre_parse.py
+ stat.py
+ string.py
+ sysconfig.py
+ traceback.py
+ warnings.py
+ UserDict.py
+
+ # needed for python_optimize
+ compileall.py
+ getopt.py
+ py_compile.py
+ struct.py
+
+ # needed for rpython
+ argparse.py
+ atexit.py
+ base64.py
+ bdb.py
+ bisect.py
+ cmd.py
+ code.py
+ codeop.py
+ collections.py
+ colorsys.py
+ contextlib.py
+ copy.py
+ ctypes
+ dis.py
+ fnmatch.py
+ functools.py
+ gettext.py
+ hashlib.py
+ heapq.py
+ inspect.py
+ io.py
+ json
+ keyword.py
+ locale.py
+ logging
+ new.py
+ opcode.py
+ optparse.py
+ pdb.py
+ pickle.py
+ platform.py
+ pprint.py
+ random.py
+ repr.py
+ shlex.py
+ shutil.py
+ StringIO.py
+ subprocess.py
+ tempfile.py
+ textwrap.py
+ threading.py
+ tokenize.py
+ weakref.py
+ zipfile.py
+ )
+
+ local distutils_modules=(
+ # needed by site
+ __init__.py
+ errors.py
+ sysconfig.py
+ sysconfig_cpython.py
+ sysconfig_pypy.py
+ )
+
+ local lib_pypy_modules=(
+ # needed by site
+ _sysconfigdata.py
+
+ # needed by rpython
+ cffi
+ _ctypes
+ _ffi.py
+ _functools.py
+ _sha.py
+ _sha256.py
+ _sha512.py
+
+ # NB: we're deliberately skipping _hashlib to avoid some deps
+ )
+
+ cd lib-python/2.7 || die
+ insinto "${dest}/lib-python/2.7"
+ doins -r "${lib_py_modules[@]}"
+ cd - >/dev/null || die
+
+ cd lib-python/2.7/distutils || die
+ insinto "${dest}/lib-python/2.7/distutils"
+ doins -r "${distutils_modules[@]}"
+ cd - >/dev/null || die
+
+ cd lib_pypy || die
+ insinto "${dest}/lib_pypy"
+ doins -r "${lib_pypy_modules[@]}"
+ cd - >/dev/null || die
+ fi
+
+ dosym ../lib/pypy2.7/pypy-c /usr/bin/pypy
+ dodoc README.rst
+
+ local -x 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 a7490915ffd1..6706465d6624 100644
--- a/dev-python/pypy3/Manifest
+++ b/dev-python/pypy3/Manifest
@@ -1,2 +1,3 @@
EBUILD pypy3-7.3.13.ebuild 583 BLAKE2B 9308115fd68cc96beed284dcd1eec6f3a404254b422cd7f88dbf6ffbc30e69050d3613bcc34151a4fd64375d1901b0899e32f42d843c68ab281c7ed10c5b9611 SHA512 df2c8d9903a9e772bce5c5d93203a31b68ee8e413ce5b721d6c59d9542f65ff13c9676ee22080cf1b361cb5762dfc22d1a5ee3a498c6aa2ba6d13731e9cd09de
+EBUILD pypy3-7.3.14.ebuild 585 BLAKE2B 5c5704a58e65e6d2bc4272988aaf0ca2e4b2bb21aa316c629ebb8594500743add0a901704f0a2ded2aa803841d4ec16a754884f435ece9a8682da1a70a1a2bff SHA512 3513a60f7264acf12d10d9b1921e843460db4aadaca2b0137a624a870a2ee31a44c52ed065d0cab4a9c35c1c24fbaaffbfd1dab838d1e12117ee53e528e8e481
MISC metadata.xml 317 BLAKE2B 9da451fe362dc5c1f6b3412b33065ab6e316e5ae49fd8e6a8e7485cd5cb7440c316c7c5c9b504a69c4f21a6370317edfe11f388238665133b8557a26acbfe1eb SHA512 96039ea2033b920e595e05c8749ee7e316e951bc6ff544a2f4d175d862cf7537401cbba1d4535f20245bbcac32d5ce1261d04aee412953401b513ecc5e7217bc
diff --git a/dev-python/pypy3/pypy3-7.3.14.ebuild b/dev-python/pypy3/pypy3-7.3.14.ebuild
new file mode 100644
index 000000000000..ecf195f8f782
--- /dev/null
+++ b/dev-python/pypy3/pypy3-7.3.14.ebuild
@@ -0,0 +1,26 @@
+# Copyright 1999-2023 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+PYVER=3.10
+DESCRIPTION="A fast, compliant alternative implementation of the Python (${PYVER}) language"
+HOMEPAGE="
+ https://www.pypy.org/
+ https://foss.heptapod.net/pypy/pypy/
+"
+S=${WORKDIR}
+
+LICENSE="MIT"
+SLOT="0/pypy310-pp73-384"
+KEYWORDS="~amd64 ~arm64 ~ppc64 ~x86 ~amd64-linux ~x86-linux"
+IUSE="+gdbm ncurses sqlite tk"
+
+RDEPEND="
+ =dev-python/pypy3_10-${PV}*:${SLOT}[gdbm?,ncurses?,sqlite?,tk?]
+"
+
+src_install() {
+ dodir /usr/bin
+ dosym pypy${PYVER} /usr/bin/pypy3
+}
diff --git a/dev-python/pypy3_10-exe-bin/Manifest b/dev-python/pypy3_10-exe-bin/Manifest
index 71841d0820ab..a49e922a9fce 100644
--- a/dev-python/pypy3_10-exe-bin/Manifest
+++ b/dev-python/pypy3_10-exe-bin/Manifest
@@ -6,5 +6,14 @@ DIST pypy3_10-exe-7.3.13_p3-1.ppc64le-musl.gpkg.tar 6522880 BLAKE2B 6c1a9c390e35
DIST pypy3_10-exe-7.3.13_p3-1.ppc64le.gpkg.tar 10065920 BLAKE2B 951899b54a4fd248643625df6fa6926ed831b7b43d3020c62b109101877a06f5413ed41e1bf165b23bb66e2bfc4b910f84d6a3a9ad67cfaee2e8fbe5dec96bac SHA512 24b72ddedadce461b8dbaedc25dc582e8f215b194431a9a946b3d21725506730564e3ec64e640ae29baee0fae132e7b756b781444a6c0080890953234afb509f
DIST pypy3_10-exe-7.3.13_p3-1.x86-musl.gpkg.tar 8806400 BLAKE2B 92152ea6f9c7a75934cb3a507d2c1ec17f91465aa3d5fb8f2cf8add2708d721a90d90c15656ada1c2ee0bf2290891cce090fed2b8ea4c8b9a17bccf3239ba1e9 SHA512 73292601e8ffb2c977a1b1253878d17bdf686d8a3b5ef7a737319aabfafe342c1b210f0773765203a41b55359a7c4fbe4958cc9813fc6849bf78ff5c5aaca7b0
DIST pypy3_10-exe-7.3.13_p3-1.x86.gpkg.tar 8765440 BLAKE2B 1ea5c757b5f87846000ed010ef9eecb40ff278b3bf97211037e184a0c96f643f17656a0801ae0fc8ff45f7fc20372474439d1e3a7ba38755a1f64cc56d5670c3 SHA512 88a7ab0d960f89d38ef1703eaf8afdfad18b9b1ee046295914bb4968f719759e3dd9a604930348568feb60afd466258705bd9c6e26f6c760f56ffb0ddf1038e7
+DIST pypy3_10-exe-7.3.14-1.amd64-musl.gpkg.tar 12001280 BLAKE2B 9f0507d48bea2773b0d648bf2817f3228c6cd985e2c5229456887af00a0d4b8e9f4d0f8a2c0dabd73880c06ab93c89ca7ddc5aa5cec8720407d14ed40303604b SHA512 7f2740e94100ff64b2e492d30d4f4ca7f313586b29eb2edbd6c405fcbee1712f253205d09a010cf6992c593b3bdc593732ab76eb41b154aaf170cfa46e2da800
+DIST pypy3_10-exe-7.3.14-1.amd64.gpkg.tar 12011520 BLAKE2B 256a561cc40aa2fa980766e19f253bfca5d301a0e79de419d18d13b23b038db593835cfcb5faa3089cec9e86fcee98b09498d951d549a66aac1545c5c7e39a47 SHA512 e250e7f2d7acdd7dd521cae9ed12b344759970280da4c4c8ee3f3d667449c31fd3762be9ae44093b7d0b7a963a1a3c82586ee298a6bea425e77638162c3662ea
+DIST pypy3_10-exe-7.3.14-1.arm64-musl.gpkg.tar 10199040 BLAKE2B 782501fb169ad7ab0c22d10b58a559b3063d8c67db707c66147864b69d16dbde55027c841ad8548aaf574e20df95d87af7fdd7fb52030c9a2d71fc6a16ecda4e SHA512 9c353521198b6ff35213075177a5cea4d1f76d8148823077221f8fb2e32fc55cbe89590a69e36e670d97700c888f705cc26dd237ea137759cb44c311dbf89a49
+DIST pypy3_10-exe-7.3.14-1.arm64.gpkg.tar 10117120 BLAKE2B 4135a346b1d6e34ae90e5bfb255d3ca840fcfd13cd848b3b6562a650b364a9ff1f91a5eb81070252297bef87bc511cefeecf30e274be1c06b731eb33a88fbc33 SHA512 b60eade588eafbdea5285c31cda25c1f735da586ef56e7c81f98b883c481d866837680b86d5fdafa847282d1a83e1b7da9b4a95096041f7932ec6f77c74b897d
+DIST pypy3_10-exe-7.3.14-1.ppc64le-musl.gpkg.tar 6737920 BLAKE2B 3578757c8fc2da1079808107272cff3b49ae295d8fea1009d9787faab68e8f32c6e633093394d83feb629b39a4c149d083cb80a1e48b2e892570f0ee43f72ba3 SHA512 f5c66d9f96d4ba94c54739812d315b92a99ca2f85c777c6fd8b704405ba8d2fc9f28e4ced24fab0548ceadee3e2b60288dafb9b023653439c2a0596d05b45d3b
+DIST pypy3_10-exe-7.3.14-1.ppc64le.gpkg.tar 10362880 BLAKE2B f9422fb581ea1196d97ad420ebf192a6de343cd9024a030e987267a0c51b1a7070783ddd123c862cca7338c99011368bc5a8b6e603b15ae8e70358dd13275e97 SHA512 e9b55117a13767a855b4f25e0c3550370d9d4e4110aa7e685b4131e07dfaef9a68a01e3e18620aee40d9152a37e01271ada0e112d71dc92cafcc1ba240bf03a5
+DIST pypy3_10-exe-7.3.14-1.x86-musl.gpkg.tar 9031680 BLAKE2B ebd345010960b2c30e8ba68b79b5986c88c3657577c4cab36f8edd28e7df6f7e0f37a42a696cd6e6b17a2bc40896cab4280b1da9c0883925711d5eb46f827dda SHA512 ae2974c7c792900152d65114fd08c81ace540d13ab428de2fa8018bd8a1f279b13cac7c0b7b75b77335feb1463c537f2e7009d362ef42a1c54af7b5097d27d5b
+DIST pypy3_10-exe-7.3.14-1.x86.gpkg.tar 9021440 BLAKE2B 48a724bcfc5751413abcdf7adfe906a221e3541bdb8c550ad3711be0a8420b60c7716372eac6cbbadcae496fa135864507293fb9d3c287fa82eb921bf9107726 SHA512 7499e54bf34d9786b414bde6cc6265fc9c7372136461577af9af3a74a1775144168ce8100a3c9dc090491b24a863442bec29db4117bb326dd1c878925794575f
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
MISC metadata.xml 241 BLAKE2B 4f18c355c71824c25df283b2d463a5abbf2295446e74b960e868dd78d4910ac066725450478087567a6e66b7a8948d99e053f13a7e58dbf2b89fdaf5c2f3436c SHA512 c46e70ffd66754ad84c64806f2bbff25ba9a688f035176a4565afc95351ce10fffba64bbde89965501460b05978c7e59b3d84db6a8cb6efff4055d4b7a5ab5d8
diff --git a/dev-python/pypy3_10-exe-bin/pypy3_10-exe-bin-7.3.14.ebuild b/dev-python/pypy3_10-exe-bin/pypy3_10-exe-bin-7.3.14.ebuild
new file mode 100644
index 000000000000..3933dcac88c9
--- /dev/null
+++ b/dev-python/pypy3_10-exe-bin/pypy3_10-exe-bin-7.3.14.ebuild
@@ -0,0 +1,82 @@
+# Copyright 1999-2023 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit pax-utils unpacker
+
+PYVER=3.10
+MY_P=pypy3_10-exe-${PV}-1
+
+DESCRIPTION="PyPy3.10 executable (pre-built version)"
+HOMEPAGE="https://www.pypy.org/"
+SRC_URI="
+ elibc_glibc? (
+ amd64? (
+ https://dev.gentoo.org/~mgorny/binpkg/amd64/pypy/dev-python/pypy3_10-exe/${MY_P}.gpkg.tar
+ -> ${MY_P}.amd64.gpkg.tar
+ )
+ arm64? (
+ https://dev.gentoo.org/~mgorny/binpkg/arm64/pypy/dev-python/pypy3_10-exe/${MY_P}.gpkg.tar
+ -> ${MY_P}.arm64.gpkg.tar
+ )
+ ppc64? (
+ https://dev.gentoo.org/~mgorny/binpkg/ppc64le/pypy/dev-python/pypy3_10-exe/${MY_P}.gpkg.tar
+ -> ${MY_P}.ppc64le.gpkg.tar
+ )
+ x86? (
+ https://dev.gentoo.org/~mgorny/binpkg/x86/pypy/dev-python/pypy3_10-exe/${MY_P}.gpkg.tar
+ -> ${MY_P}.x86.gpkg.tar
+ )
+ )
+ elibc_musl? (
+ amd64? (
+ https://dev.gentoo.org/~mgorny/binpkg/amd64-musl/pypy/dev-python/pypy3_10-exe/${MY_P}.gpkg.tar
+ -> ${MY_P}.amd64-musl.gpkg.tar
+ )
+ arm64? (
+ https://dev.gentoo.org/~mgorny/binpkg/arm64-musl/pypy/dev-python/pypy3_10-exe/${MY_P}.gpkg.tar
+ -> ${MY_P}.arm64-musl.gpkg.tar
+ )
+ ppc64? (
+ https://dev.gentoo.org/~mgorny/binpkg/ppc64le-musl/pypy/dev-python/pypy3_10-exe/${MY_P}.gpkg.tar
+ -> ${MY_P}.ppc64le-musl.gpkg.tar
+ )
+ x86? (
+ https://dev.gentoo.org/~mgorny/binpkg/x86-musl/pypy/dev-python/pypy3_10-exe/${MY_P}.gpkg.tar
+ -> ${MY_P}.x86-musl.gpkg.tar
+ )
+ )
+"
+S=${WORKDIR}/${MY_P}
+
+LICENSE="MIT"
+SLOT="${PV%_p*}"
+KEYWORDS="~amd64 ~arm64 ~ppc64 ~x86"
+
+# sys-devel/gcc for libgcc_s.so
+RDEPEND="
+ app-arch/bzip2:0/1
+ dev-libs/expat:0/0
+ dev-libs/libffi:0/8
+ sys-libs/ncurses:0/6
+ >=sys-libs/zlib-1.1.3:0/1
+ virtual/libintl:0/0
+ elibc_glibc? (
+ sys-devel/gcc
+ >=sys-libs/glibc-2.35
+ )
+ !dev-python/pypy3_10-exe:${SLOT}
+"
+
+PYPY_PV=${PV%_p*}
+QA_PREBUILT="
+ usr/bin/pypy${PYVER}-c-${PYPY_PV}
+"
+
+src_install() {
+ insinto /
+ doins -r image/usr
+ fperms +x "/usr/bin/pypy${PYVER}-c-${PYPY_PV}"
+ pax-mark m "${ED}/usr/bin/pypy${PYVER}-c-${PYPY_PV}"
+}
diff --git a/dev-python/pypy3_10-exe/Manifest b/dev-python/pypy3_10-exe/Manifest
index 1ebb96dbf816..5d7e6e429a15 100644
--- a/dev-python/pypy3_10-exe/Manifest
+++ b/dev-python/pypy3_10-exe/Manifest
@@ -1,4 +1,7 @@
DIST pypy3.10-gentoo-patches-7.3.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-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
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
MISC metadata.xml 498 BLAKE2B 8dbcdb7c3a4a2fa5d1a922fd5197fb5e3337adcaec1e7d382f25f8696c80726e5b79843477bf8e5ce131aecde6e2c4c283548c5b337e54cb58aaa066013c445a SHA512 8a9bb514bbf3bf328aa63734e1fdc106f6aaf5ccb88c29ad8a686ab2724f3d1f4727163500013dd16e7b34232b881cf47d2f174212b5428ee076af27cf43628d
diff --git a/dev-python/pypy3_10-exe/pypy3_10-exe-7.3.14.ebuild b/dev-python/pypy3_10-exe/pypy3_10-exe-7.3.14.ebuild
new file mode 100644
index 000000000000..9eec2da0971d
--- /dev/null
+++ b/dev-python/pypy3_10-exe/pypy3_10-exe-7.3.14.ebuild
@@ -0,0 +1,132 @@
+# Copyright 1999-2023 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/"
+SRC_URI="
+ https://buildbot.pypy.org/pypy/${MY_P}-src.tar.bz2
+ https://dev.gentoo.org/~mgorny/dist/python/${PATCHSET}.tar.xz
+"
+S="${WORKDIR}/${MY_P}-src"
+
+LICENSE="MIT"
+SLOT="${PYPY_PV}"
+KEYWORDS="~amd64 ~arm64 ~ppc64 ~x86 ~amd64-linux ~x86-linux"
+IUSE="+jit low-memory ncurses cpu_flags_x86_sse2"
+
+RDEPEND="
+ app-arch/bzip2:0=
+ dev-libs/expat:0=
+ dev-libs/libffi:0=
+ >=sys-libs/zlib-1.1.3:0=
+ virtual/libintl:0=
+ ncurses? ( sys-libs/ncurses:0= )
+ !dev-python/pypy3-exe-bin:${SLOT}
+"
+DEPEND="
+ ${RDEPEND}
+"
+BDEPEND="
+ dev-python/pypy
+ 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 b4f2a3d56e9f..be8dd4c40674 100644
--- a/dev-python/pypy3_10/Manifest
+++ b/dev-python/pypy3_10/Manifest
@@ -1,4 +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-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
EBUILD pypy3_10-7.3.13_p3.ebuild 6312 BLAKE2B eaf56803de815ba2b66ce1f41c545589e0db710337c3635c939dc606465c5754fffeb97069c08b8dd4522bc6431009bc17d527362e3a1de0c4aa69b198abddce SHA512 c92b97d4257cae186b013bdae4caa8ae7bf1045567ebfeb8432c39179693e6a3c2122ba9c8f98d173f3e9043d373e930ccc486190c5db4483071c5834d6ecdc1
+EBUILD pypy3_10-7.3.14.ebuild 6314 BLAKE2B 529442108d44e4612a66c4bbb1a511f5472840b1d5f952a9a12a9ad6e0ca771d589474f69fa7790c4f47e7e99201011b76a884d60711bf11d1e07e52b05049cf SHA512 de94b475e6dcfcd5ea24eed5710856af9167a9a3276eb13ec598a93b90e0f55ec27ebebef4f763905017e4d2efa58489242206d9341d8b9a0ae44d7adc041e71
MISC metadata.xml 531 BLAKE2B 0f727c7ced9fb24ba0dc0b41d51c177b3711de33b838bf46cfdde5d8b751de9694873c13fe8153747f2cb533c078c54f004ee84b1c3c57b6f8d62128ffb9dba2 SHA512 331b66647a58047ded4bcf1529e3ca16b21cbb37afa82d8be0a4b6ad605e17bf3f1478fad1ea3b9c970bdf5162cb41e6adcb029a261fcbf894e807998b9219f6
diff --git a/dev-python/pypy3_10/pypy3_10-7.3.14.ebuild b/dev-python/pypy3_10/pypy3_10-7.3.14.ebuild
new file mode 100644
index 000000000000..723a5ebe36a9
--- /dev/null
+++ b/dev-python/pypy3_10/pypy3_10-7.3.14.ebuild
@@ -0,0 +1,211 @@
+# Copyright 1999-2023 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://foss.heptapod.net/pypy/pypy/
+"
+SRC_URI="
+ https://buildbot.pypy.org/pypy/${MY_P}-src.tar.bz2
+ https://dev.gentoo.org/~mgorny/dist/python/${PATCHSET}.tar.xz
+"
+S="${WORKDIR}/${MY_P}-src"
+
+LICENSE="MIT"
+# pypy3 -c 'import sysconfig; print(sysconfig.get_config_var("SOABI"))'
+# also check pypy/interpreter/pycode.py -> pypy_incremental_magic
+SLOT="0/pypy310-pp73-384"
+KEYWORDS="~amd64 ~arm64 ~ppc64 ~x86 ~amd64-linux ~x86-linux"
+IUSE="+ensurepip gdbm +jit ncurses sqlite tk"
+# many tests are failing upstream
+# see https://buildbot.pypy.org/summary?branch=py${PYVER}
+RESTRICT="test"
+
+RDEPEND="
+ || (
+ >=dev-python/${PN}-exe-${PYPY_PV}:${PYPY_PV}[bzip2(+),ncurses?]
+ >=dev-python/${PN}-exe-bin-${PYPY_PV}:${PYPY_PV}
+ )
+ dev-lang/python-exec[python_targets_pypy3(-)]
+ dev-libs/openssl:0=
+ dev-python/gentoo-common
+ ensurepip? ( dev-python/ensurepip-wheels )
+ gdbm? ( sys-libs/gdbm:0= )
+ sqlite? ( dev-db/sqlite:3= )
+ tk? (
+ dev-lang/tk:0=
+ dev-tcltk/tix:0=
+ )
+ !~dev-python/pypy3-7.3.12_rc1
+"
+DEPEND="
+ ${RDEPEND}
+"
+
+src_prepare() {
+ local PATCHES=(
+ "${WORKDIR}/${PATCHSET}"
+ )
+ default
+}
+
+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 841c6c3b9635..32cc4b2c9028 100644
--- a/dev-python/pypy3_9-exe-bin/Manifest
+++ b/dev-python/pypy3_9-exe-bin/Manifest
@@ -6,5 +6,14 @@ DIST pypy3_9-exe-7.3.13-1.ppc64le-musl.gpkg.tar 6389760 BLAKE2B 1eb0a9aed7e28227
DIST pypy3_9-exe-7.3.13-1.ppc64le.gpkg.tar 9963520 BLAKE2B 07e02711f40e336077162887f1e39e761c295ef13300be46871082a4ecc998bedabbca38aba2a22d76899dd367d25194cf60f5ebe75fd89306c6661beaf4383e SHA512 939850b6d1c4acf634e9fb7eacabefb4888938fda2e333dd658e46304b281619b737cf3b5c1969c4114269a5a2ad90a193a1e7ca3bf57d67c4b777d308997cdf
DIST pypy3_9-exe-7.3.13-1.x86-musl.gpkg.tar 8704000 BLAKE2B 22e5b403fe30d147d4eeff43b4ff010f5234a759a4383d2131a04e871039ac19f0c9918f43d2958554c0d25c2a1ad5532ab90a11bb2b401ec00f804b8a4f0b58 SHA512 3e9f5f3529473beaa13e1c473743449d08eb636f45fe6f94ecd5dc3560f2b48bd46ba9dc7aef9fbb54c94fd822e1835f0b58b611522a5349d54e5c509a5c1384
DIST pypy3_9-exe-7.3.13-1.x86.gpkg.tar 8642560 BLAKE2B c5f481f79ba67c5250d6d72d3582ff72be3f55516f14acbfe6720b65d7d6b1464c9a2703f7bb75e9479c5a1e83b07f0c6fa628a55a019eeb9ac939cb68275e99 SHA512 0eadc7cf710c2c02ef9c0ba7ae0c45a9055bb65f0f341d5039e41934d3217b0cd92ee169569205a7b14217f92e91da9b8d376b0dfb25c6c41be150771711ba36
+DIST pypy3_9-exe-7.3.14-1.amd64-musl.gpkg.tar 11878400 BLAKE2B 200c9e8ad15eff269c26edb0db30fb642502f969a35290e86d1aa1814a1b331dbf2b5cbb7848164b2383f2e7b1bd03ed69f44c010c8240bc34d9ca44d638c5a0 SHA512 7e41264432aab6f70e552931e27be8ee0126b9eb530a8d7b5f7cac32f1e5778965481f92c92cb1ab485a6d3f0196300741d591e20ce2f0c53af08e6f25224236
+DIST pypy3_9-exe-7.3.14-1.amd64.gpkg.tar 11857920 BLAKE2B e65451a17c7c253ccf6865e0c1e4767cc382322f0d3d6d476e847db0f0535eb82db5ff1716f1e5114fb73fee9f9fa2ac8b3251cd53ba3a271e0a6a9170b38a85 SHA512 2e0c1fbff05f8b3f24b442f53cbe2c937d108176b86195483b2de718b48c198a3efd2916d1206bbf2b8579b93657a954b688445918ff306dcde1d0157dd3f84f
+DIST pypy3_9-exe-7.3.14-1.arm64-musl.gpkg.tar 10024960 BLAKE2B 68191a2c591d88dda53064572e85a4df07fd72c4219a89e73bcb03b87cee307aa385f4d8d366edf6ae7338b2f494d73c06e2b7f74f9251787d3fba9b92ba98bc SHA512 90870861fc0e9d70ab750b2ef259c056019173b475b514edf563231e05488cd3fd47d61ccd2d7742482b2c463fcb5280daf1f48089f16ef99eb43f9b24e69cc8
+DIST pypy3_9-exe-7.3.14-1.arm64.gpkg.tar 10024960 BLAKE2B 7e386315979ce7f4da6883906c3c754ad021df0ca7e5a9b57d81dc2bb1c09158d81b9960320bbdab47433d5b45d84f8024dc575a6f215c5e502bda3828797b60 SHA512 5311e5d8a6196398bc891b24d2b2ac0efe8ff64d254d27d04fae7e1d20418d77a19408a4276830b90951c1baf5f331bf4632476ac1e3845cbc8e4d47d0e578e5
+DIST pypy3_9-exe-7.3.14-1.ppc64le-musl.gpkg.tar 6584320 BLAKE2B 7fdcf4a6ed39a0c25be6dac0c3b5880e7aa7f5ea179b8790ac9d520b69fc1165554094d783d9d9327a3b3305b839c5ff3d94bcae04139606d6f10290f263c5c2 SHA512 299b851b509ef0905313761f82d89034cfe3cae5defeeb938635cb6a5d456ff9f3254b3875177d3720622168fdd0e8d635c62ddb6179d1ff2652ea333e1e730a
+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
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
diff --git a/dev-python/pypy3_9-exe-bin/pypy3_9-exe-bin-7.3.14.ebuild b/dev-python/pypy3_9-exe-bin/pypy3_9-exe-bin-7.3.14.ebuild
new file mode 100644
index 000000000000..d714e8dea6e4
--- /dev/null
+++ b/dev-python/pypy3_9-exe-bin/pypy3_9-exe-bin-7.3.14.ebuild
@@ -0,0 +1,82 @@
+# Copyright 1999-2023 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit pax-utils unpacker
+
+PYVER=3.9
+MY_P=pypy3_9-exe-${PV}-1
+
+DESCRIPTION="PyPy3.9 executable (pre-built version)"
+HOMEPAGE="https://www.pypy.org/"
+SRC_URI="
+ elibc_glibc? (
+ amd64? (
+ https://dev.gentoo.org/~mgorny/binpkg/amd64/pypy/dev-python/pypy3_9-exe/${MY_P}.gpkg.tar
+ -> ${MY_P}.amd64.gpkg.tar
+ )
+ arm64? (
+ https://dev.gentoo.org/~mgorny/binpkg/arm64/pypy/dev-python/pypy3_9-exe/${MY_P}.gpkg.tar
+ -> ${MY_P}.arm64.gpkg.tar
+ )
+ ppc64? (
+ https://dev.gentoo.org/~mgorny/binpkg/ppc64le/pypy/dev-python/pypy3_9-exe/${MY_P}.gpkg.tar
+ -> ${MY_P}.ppc64le.gpkg.tar
+ )
+ x86? (
+ https://dev.gentoo.org/~mgorny/binpkg/x86/pypy/dev-python/pypy3_9-exe/${MY_P}.gpkg.tar
+ -> ${MY_P}.x86.gpkg.tar
+ )
+ )
+ elibc_musl? (
+ amd64? (
+ https://dev.gentoo.org/~mgorny/binpkg/amd64-musl/pypy/dev-python/pypy3_9-exe/${MY_P}.gpkg.tar
+ -> ${MY_P}.amd64-musl.gpkg.tar
+ )
+ arm64? (
+ https://dev.gentoo.org/~mgorny/binpkg/arm64-musl/pypy/dev-python/pypy3_9-exe/${MY_P}.gpkg.tar
+ -> ${MY_P}.arm64-musl.gpkg.tar
+ )
+ ppc64? (
+ https://dev.gentoo.org/~mgorny/binpkg/ppc64le-musl/pypy/dev-python/pypy3_9-exe/${MY_P}.gpkg.tar
+ -> ${MY_P}.ppc64le-musl.gpkg.tar
+ )
+ x86? (
+ https://dev.gentoo.org/~mgorny/binpkg/x86-musl/pypy/dev-python/pypy3_9-exe/${MY_P}.gpkg.tar
+ -> ${MY_P}.x86-musl.gpkg.tar
+ )
+ )
+"
+S=${WORKDIR}/${MY_P}
+
+LICENSE="MIT"
+SLOT="${PV%_p*}"
+KEYWORDS="~amd64 ~arm64 ~ppc64 ~x86"
+
+# sys-devel/gcc for libgcc_s.so
+RDEPEND="
+ app-arch/bzip2:0/1
+ dev-libs/expat:0/0
+ dev-libs/libffi:0/8
+ sys-libs/ncurses:0/6
+ >=sys-libs/zlib-1.1.3:0/1
+ virtual/libintl:0/0
+ elibc_glibc? (
+ sys-devel/gcc
+ >=sys-libs/glibc-2.35
+ )
+ !dev-python/pypy3_9-exe:${SLOT}
+"
+
+PYPY_PV=${PV%_p*}
+QA_PREBUILT="
+ usr/bin/pypy${PYVER}-c-${PYPY_PV}
+"
+
+src_install() {
+ insinto /
+ doins -r image/usr
+ fperms +x "/usr/bin/pypy${PYVER}-c-${PYPY_PV}"
+ pax-mark m "${ED}/usr/bin/pypy${PYVER}-c-${PYPY_PV}"
+}
diff --git a/dev-python/pypy3_9-exe/Manifest b/dev-python/pypy3_9-exe/Manifest
index 5daeebc2a3b2..bcfffc355b78 100644
--- a/dev-python/pypy3_9-exe/Manifest
+++ b/dev-python/pypy3_9-exe/Manifest
@@ -1,4 +1,7 @@
DIST pypy3.9-gentoo-patches-7.3.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-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
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
diff --git a/dev-python/pypy3_9-exe/pypy3_9-exe-7.3.14.ebuild b/dev-python/pypy3_9-exe/pypy3_9-exe-7.3.14.ebuild
new file mode 100644
index 000000000000..a6d7ba06e1b1
--- /dev/null
+++ b/dev-python/pypy3_9-exe/pypy3_9-exe-7.3.14.ebuild
@@ -0,0 +1,128 @@
+# Copyright 1999-2023 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit check-reqs pax-utils toolchain-funcs
+
+PYPY_PV=${PV%_p*}
+PYVER=3.9
+MY_P="pypy${PYVER}-v${PYPY_PV/_}"
+PATCHSET="pypy${PYVER}-gentoo-patches-${PV/_}"
+
+DESCRIPTION="PyPy3.9 executable (build from source)"
+HOMEPAGE="https://www.pypy.org/"
+SRC_URI="
+ https://buildbot.pypy.org/pypy/${MY_P}-src.tar.bz2
+ https://dev.gentoo.org/~mgorny/dist/python/${PATCHSET}.tar.xz
+"
+S="${WORKDIR}/${MY_P}-src"
+
+LICENSE="MIT"
+SLOT="${PYPY_PV}"
+KEYWORDS="~amd64 ~arm64 ~ppc64 ~x86 ~amd64-linux ~x86-linux"
+IUSE="+jit low-memory ncurses cpu_flags_x86_sse2"
+
+RDEPEND="
+ app-arch/bzip2:0=
+ dev-libs/expat:0=
+ dev-libs/libffi:0=
+ >=sys-libs/zlib-1.1.3:0=
+ virtual/libintl:0=
+ ncurses? ( sys-libs/ncurses:0= )
+ !dev-python/pypy3-exe-bin:${SLOT}
+"
+DEPEND="
+ ${RDEPEND}
+"
+BDEPEND="
+ dev-python/pypy
+ 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 f1663407d20d..0ab70cf286b5 100644
--- a/dev-python/pypy3_9/Manifest
+++ b/dev-python/pypy3_9/Manifest
@@ -1,4 +1,7 @@
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-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
EBUILD pypy3_9-7.3.13-r1.ebuild 6311 BLAKE2B a026679c0a4e092f2219f4f63718623012a62552439598525c080dc98d6b0bbbb4c561a0204b089989a66ca38ff3d614c1151480e70616e2cb083d9cc3d09363 SHA512 65f1ef6b8775982c6fe834a5aff09c0aae2d2e6a0f28bc07a885346c6263fb135444f9fdd397c083fa6196f712190e486f5fc013ee0184612d181ca1d40c8ca8
+EBUILD pypy3_9-7.3.14.ebuild 6311 BLAKE2B 02ece4d982b6444166c1ec035f3a95e2af738b25df03a8614d06edce6318df28f04d553464e55f2112ac79ee1ef124ef67495db291445ab436a5d4bf559910b3 SHA512 a83d9ce03cace746c3b113e89a31880b67287876f0e7d53daed16195e1668d8e2c04aa045762d13126adaf29b8bbc5b1ffcd84003730ca5ee09240c827639676
MISC metadata.xml 531 BLAKE2B 0f727c7ced9fb24ba0dc0b41d51c177b3711de33b838bf46cfdde5d8b751de9694873c13fe8153747f2cb533c078c54f004ee84b1c3c57b6f8d62128ffb9dba2 SHA512 331b66647a58047ded4bcf1529e3ca16b21cbb37afa82d8be0a4b6ad605e17bf3f1478fad1ea3b9c970bdf5162cb41e6adcb029a261fcbf894e807998b9219f6
diff --git a/dev-python/pypy3_9/pypy3_9-7.3.14.ebuild b/dev-python/pypy3_9/pypy3_9-7.3.14.ebuild
new file mode 100644
index 000000000000..6a263ec2fbb4
--- /dev/null
+++ b/dev-python/pypy3_9/pypy3_9-7.3.14.ebuild
@@ -0,0 +1,211 @@
+# Copyright 1999-2023 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://foss.heptapod.net/pypy/pypy/
+"
+SRC_URI="
+ https://buildbot.pypy.org/pypy/${MY_P}-src.tar.bz2
+ https://dev.gentoo.org/~mgorny/dist/python/${PATCHSET}.tar.xz
+"
+S="${WORKDIR}/${MY_P}-src"
+
+LICENSE="MIT"
+# pypy3 -c 'import sysconfig; print(sysconfig.get_config_var("SOABI"))'
+# also check pypy/interpreter/pycode.py -> pypy_incremental_magic
+SLOT="0/pypy39-pp73-336"
+KEYWORDS="~amd64 ~arm64 ~ppc64 ~x86 ~amd64-linux ~x86-linux"
+IUSE="+ensurepip gdbm +jit ncurses sqlite tk"
+# many tests are failing upstream
+# see https://buildbot.pypy.org/summary?branch=py${PYVER}
+RESTRICT="test"
+
+RDEPEND="
+ || (
+ >=dev-python/${PN}-exe-${PYPY_PV}:${PYPY_PV}[bzip2(+),ncurses?]
+ >=dev-python/${PN}-exe-bin-${PYPY_PV}:${PYPY_PV}
+ )
+ dev-lang/python-exec[python_targets_pypy3(-)]
+ dev-libs/openssl:0=
+ dev-python/gentoo-common
+ ensurepip? ( dev-python/ensurepip-wheels )
+ gdbm? ( sys-libs/gdbm:0= )
+ sqlite? ( dev-db/sqlite:3= )
+ tk? (
+ dev-lang/tk:0=
+ dev-tcltk/tix:0=
+ )
+ !<dev-python/pypy3-7.3.12_rc
+"
+DEPEND="
+ ${RDEPEND}
+"
+
+src_prepare() {
+ local PATCHES=(
+ "${WORKDIR}/${PATCHSET}"
+ )
+ default
+}
+
+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-sense-hat/Manifest b/dev-python/python-sense-hat/Manifest
deleted file mode 100644
index de85f1e723a1..000000000000
--- a/dev-python/python-sense-hat/Manifest
+++ /dev/null
@@ -1,3 +0,0 @@
-DIST python-sense-hat-2.4.0.gh.tar.gz 27396 BLAKE2B 7f7482e17f80a3598c92f53f7a5b99ce4f5da10a5fc9ba6de656b6e18db323f8133f720d1486c3ecbe9badfdfe597c5365d2ba17ff637933d3053ec52f36dcfa SHA512 b2ce6c231b814d415dcf72b1031b29fd2309ccf194b8996401b1d3d7ff356ad4ed83a9ecff7c182410f789c3f1f47c3a6d64dd53884abf952f928734b94e54a5
-EBUILD python-sense-hat-2.4.0.ebuild 596 BLAKE2B eb167b8b31a8e76f366ae2ec77429abec36691dc283df8c9c4123e21b71f55d17f430cdeab20066b838b7f37bf7e41a89ada7665599856db51a8a075533eb15d SHA512 b8b6587287c02d17b49c41a760f22e206ac13221deea1bd196f78d451e34b6e39f9cdacecc3849244085f96902fd966d0e2d783b3048965e5f1e409c8ae222a7
-MISC metadata.xml 696 BLAKE2B 8c66d39989f0a29eb4b674afdfea3787c8ea4446d7fd41713f1a77d5e76c926f71200b685e3ca243dfac9c88ac9b7c11569fc36dc5c08e39e6aad24cc2ff94f7 SHA512 4c8725ab9fd8388006ccba8befe362e59962d9cc368d541dc57686544c10d81b891ff20788f6e209d79eaaabce3f857045b88acc5fb87a54995046e4b6ad21e9
diff --git a/dev-python/sense-hat/Manifest b/dev-python/sense-hat/Manifest
new file mode 100644
index 000000000000..3fd9ef55cef0
--- /dev/null
+++ b/dev-python/sense-hat/Manifest
@@ -0,0 +1,5 @@
+DIST sense-hat-2.4.0.gh.tar.gz 27396 BLAKE2B 7f7482e17f80a3598c92f53f7a5b99ce4f5da10a5fc9ba6de656b6e18db323f8133f720d1486c3ecbe9badfdfe597c5365d2ba17ff637933d3053ec52f36dcfa SHA512 b2ce6c231b814d415dcf72b1031b29fd2309ccf194b8996401b1d3d7ff356ad4ed83a9ecff7c182410f789c3f1f47c3a6d64dd53884abf952f928734b94e54a5
+DIST sense-hat-2.6.0.gh.tar.gz 26598 BLAKE2B eabb9cae494584bb05d4d6e7111284925c2be8c8abcfe0f346f148ab2e29bae4ee3adf46aa1c83ad098760f7adf57635fa7b392effa5ffab065562c0f8a60e17 SHA512 23a10b7af223bf373ecef987c40da6ec7b7e802169b8abb0a810dce369d969276c290aef9b9e6e70ee3824ce6d238dcc2654e06d87d0e05b056d11f64ac9209a
+EBUILD sense-hat-2.4.0.ebuild 639 BLAKE2B 09aaec1c75bac78c413bc5736275edb086638ee5df26408225e770802f43149fd6bb9dcb815170d1047f979b6786bcb83adc5006d1a618a4e8fc57e5ff1a13a1 SHA512 a9871f4858dc734f4c38ffaf62d33323054fea14cb9b7181e7ce9db2a1e42c8afe97ecf759714035882ad646870148aca9ffd44919769cae2096eba336f16bb0
+EBUILD sense-hat-2.6.0.ebuild 642 BLAKE2B dd371d659e3cdb424d46d9e0f0c4e9be57ea0b89c9d70d4590a9f988e768d8ed3c818f66223f80e7e90f5880c78a76658ce3a432b3475a3341eee2113c6b5458 SHA512 deb7746a932662ec5f5845729863469cb66d823c6ffa14db14fe0899d41af1aa7cd92672ac682e6f34ea1383eaa41d4b9c9ebe9f85bf66d781458c0d2682f2d9
+MISC metadata.xml 696 BLAKE2B 8c66d39989f0a29eb4b674afdfea3787c8ea4446d7fd41713f1a77d5e76c926f71200b685e3ca243dfac9c88ac9b7c11569fc36dc5c08e39e6aad24cc2ff94f7 SHA512 4c8725ab9fd8388006ccba8befe362e59962d9cc368d541dc57686544c10d81b891ff20788f6e209d79eaaabce3f857045b88acc5fb87a54995046e4b6ad21e9
diff --git a/dev-python/python-sense-hat/metadata.xml b/dev-python/sense-hat/metadata.xml
index 036fcee9c23f..036fcee9c23f 100644
--- a/dev-python/python-sense-hat/metadata.xml
+++ b/dev-python/sense-hat/metadata.xml
diff --git a/dev-python/python-sense-hat/python-sense-hat-2.4.0.ebuild b/dev-python/sense-hat/sense-hat-2.4.0.ebuild
index f2e7bd4fe801..8fd3c87b3cc6 100644
--- a/dev-python/python-sense-hat/python-sense-hat-2.4.0.ebuild
+++ b/dev-python/sense-hat/sense-hat-2.4.0.ebuild
@@ -4,13 +4,15 @@
EAPI=8
DISTUTILS_USE_PEP517=setuptools
+MY_PN="python-${PN}"
PYTHON_COMPAT=( python3_{9..11} )
inherit distutils-r1
DESCRIPTION="Raspberry Pi Sense HAT python library"
HOMEPAGE="https://github.com/astro-pi/python-sense-hat"
-SRC_URI="https://github.com/astro-pi/python-sense-hat/archive/v${PV}.tar.gz -> ${P}.gh.tar.gz"
+SRC_URI="https://github.com/astro-pi/${MY_PN}/archive/v${PV}.tar.gz -> ${P}.gh.tar.gz"
+S="${WORKDIR}/${MY_PN}-${PV}"
LICENSE="BSD"
SLOT="0"
diff --git a/dev-python/sense-hat/sense-hat-2.6.0.ebuild b/dev-python/sense-hat/sense-hat-2.6.0.ebuild
new file mode 100644
index 000000000000..e628fd7360e8
--- /dev/null
+++ b/dev-python/sense-hat/sense-hat-2.6.0.ebuild
@@ -0,0 +1,27 @@
+# Copyright 1999-2023 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=setuptools
+MY_PN="python-${PN}"
+PYTHON_COMPAT=( python3_{10..12} )
+
+inherit distutils-r1
+
+DESCRIPTION="Raspberry Pi Sense HAT python library"
+HOMEPAGE="https://github.com/astro-pi/python-sense-hat"
+SRC_URI="https://github.com/astro-pi/${MY_PN}/archive/v${PV}.tar.gz -> ${P}.gh.tar.gz"
+S="${WORKDIR}/${MY_PN}-${PV}"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~arm ~arm64"
+
+RDEPEND="
+ dev-python/numpy[${PYTHON_USEDEP}]
+ dev-python/pillow[${PYTHON_USEDEP}]
+ dev-python/rtimulib[${PYTHON_USEDEP}]
+"
+
+DEPEND="${RDEPEND}"