summaryrefslogtreecommitdiff
path: root/dev-python
diff options
context:
space:
mode:
Diffstat (limited to 'dev-python')
-rw-r--r--dev-python/django/Manifest2
-rw-r--r--dev-python/django/django-6.0.ebuild102
-rw-r--r--dev-python/libvirt-python/Manifest2
-rw-r--r--dev-python/libvirt-python/libvirt-python-11.10.0.ebuild63
-rw-r--r--dev-python/numpy/Manifest2
-rw-r--r--dev-python/numpy/numpy-2.4.0_rc1.ebuild306
-rw-r--r--dev-python/protobuf/protobuf-5.29.5.ebuild2
-rw-r--r--dev-python/protobuf/protobuf-6.30.2-r2.ebuild2
-rw-r--r--dev-python/protobuf/protobuf-6.31.1.ebuild2
-rw-r--r--dev-python/protobuf/protobuf-6.32.0.ebuild2
-rw-r--r--dev-python/protobuf/protobuf-6.32.1-r1.ebuild2
-rw-r--r--dev-python/protobuf/protobuf-6.32.1.ebuild2
-rw-r--r--dev-python/protobuf/protobuf-6.33.0.ebuild2
-rw-r--r--dev-python/protobuf/protobuf-6.33.1.ebuild2
14 files changed, 485 insertions, 8 deletions
diff --git a/dev-python/django/Manifest b/dev-python/django/Manifest
index bf40e3074e7f..6985d3b96e03 100644
--- a/dev-python/django/Manifest
+++ b/dev-python/django/Manifest
@@ -4,6 +4,7 @@ DIST Django-5.1.14.checksum.txt 2550 BLAKE2B 73aa763ab3cb61b8de40cd58ea4ef9ca8c5
DIST Django-5.1.15.checksum.txt 2493 BLAKE2B ad415c28c9676c39de6fd93976706a7228fbb3a257c6af1151d10ab33cc90b096caebc7150a6ff1f71f2469fcb9053076a29a22d336dd2dee9ed1efac2df6762 SHA512 04504dc22603ff97b0dc5bb1885d22368223d7a047a1a30db225b95376578dd7375b31d4b43036e4ae55e31156cc9d7c01d71f3d46e72bba72e74883a44de36a
DIST Django-5.2.8.checksum.txt 2540 BLAKE2B 6ce5b10c1125ac0f8429dd2050d252e4c3a32c00cc71b727cdf48b80add05031cc017bc0976a6e3bd9ee69ac1c1b8e5eb50c793ff48dc2d611a8396e2a0564ee SHA512 b17e87987f0c9d772d4265e10cbfd51db6ef31dc43f25364762df1dd0da1acf9ca5aa0f300110f511d8eb1e8e87bf48ecc19a0710e7a01b19884459f644982a7
DIST Django-5.2.9.checksum.txt 2483 BLAKE2B b46ad16f6096fb52ad83518d0976fe3cad4b7b21f984be6aa8fd20255306635ccfed7f018ff420052d94ca97d2444dedc4d9a4deacf95fe92718f979aaa7157d SHA512 e72fcd67ebf3542d1f17aed46cc6dcf5efa3e1f39ad6914c50521170a944f08b94ec36caccc254178be8bcf306b76654285d37c02eb4d8c6f0728df53054a3b2
+DIST Django-6.0.checksum.txt 2463 BLAKE2B 7b0add97f793695868326b8eb58f22433b67d7b9539c932737b7ac148d0816b059436665f38dfdad007d57ed417c4353a8e970601c6a60e678c321f15bb431a3 SHA512 183de83b61595533330ff21412b587c1eeca5a7d9df956f4d2b735b603483ed96169032a387c49d2ab2e0577a1285b4411f3020dbb2025bdd2c0983527c6ede5
DIST Django-6.0b1.checksum.txt 2540 BLAKE2B 6f045bd743c38698c7c0bbf914aca26d8eca883db60f530456b0261570fa73690755965416bf71c8f78bd6a388c5fd63de255c09a7b882eacc270f805c1c1543 SHA512 b300ba29fa55c523255fb3688079c823873e44c2b3bcd4ce3ef91e67dfac83798b56ac0588ea7487841a2d0b69af038ee563e62ebf570feaf405e0971cb453b5
DIST Django-6.0rc1.checksum.txt 2551 BLAKE2B 0f7837fd757ba1b5845fdace35277516a9372b563623348245150ba875bc1cda4689941e1f188b6e6574a3173f7c3f66fc4cfdefeacc9737ec74ae23308f443a SHA512 92aa1687f370b53b5c69d18e7c9db26ed65d708b51e043e5f9fd32a60d68d6071e5835cedb4a44b774fcc6dbd0a993860a30a596191cf51c91e54388e4d7e023
DIST django-4.2.17-pypy3.patch.xz 5900 BLAKE2B 2a564fc31d8e2f3def5a532d3bca1a4426a496c659192f602d659e0c1a5f5882978baedb384cc3b67fda8c836513ce43aece80db1528c8e8b6e9ca420f7572ce SHA512 9c9d935aff6db7230a26931b5e7f5f94f3b5ff4fc8f7d4201178571de9d9c7929a0e1e558cc2d9b54b8ee91f85819a5680d24fad6251620515a4a020e3b2d66d
@@ -13,5 +14,6 @@ DIST django-5.1.14.tar.gz 10720998 BLAKE2B 83bc02c1375a75b83678a9fe86362077e96b3
DIST django-5.1.15.tar.gz 10719662 BLAKE2B fd8a78384b04cf1e0fa7553ebd7db77078450227c6f66e63f5f251efc2c7a7f71a48d1235c179e2f316efe5666681622a1608a129c0aab40c1d2ca4bf0f3879a SHA512 050a3ded3566e378cb273cb95fa1720632f1920aa86993c998758236df5041628ada7a5fb6bd3056720a5becbb45e358c70a2ca7c230b28606a1fd954771c070
DIST django-5.2.8.tar.gz 10849032 BLAKE2B c24bed7d303ef60d468b898e8b5f09eea21ff98ddc1ee5f44f6c796c47b645cddcd877d0a64817e7c993023c8ed6cc8211ac72470ad4c500c8e54918e4a75a44 SHA512 e360b69d45841c5c6068e96560621155cba5450901c0f598da226bc6fb9ea89c5a909f5568e4b492aa852006e7b00ab3528aa8f5ff6d97baa6227e7dcf8c068c
DIST django-5.2.9.tar.gz 10848762 BLAKE2B 45dc5c96153e57622a1ec52d93db358c3ca6100a82fd95d26f451d44a2792e78948c89c4e90fb0db8c48cbce8e6aad8d0dedc54fa13bf74fa623e6f85251a98a SHA512 669bb4e21b2073fd7a59971efa6d662c5bbfc05284867b562f93b6e56039b06f843726a1a964a4763458c211e238b21d1f91e70cda394d78031a2324bbf35d7f
+DIST django-6.0.tar.gz 10932418 BLAKE2B 897e529e59791ef6813c3abfa44ed7ce9dd051a2770c0fbfdcf47ae9aacc3e0f10a6b0fb6cd47bbd5d609dfd1d8a442528af9c42422c13d6e08bdc5937f35358 SHA512 ebc54f2320c7d7307cffff40d68142596e2cb91128eeec4a21ed88b5791aba6fe3ef599a13ef59b6e5e620531259496e4a7d1ae061e80bcdeb8a6b743c220cb6
DIST django-6.0b1.tar.gz 11172994 BLAKE2B 03f52be511d9e3509402ff2ec8a5f582a0c199503d41f395e3e34ad37f3aadcadd7f5c4c134bc2685186a833342c0a15e734468316d4241ae3ffc8e8b886b5e8 SHA512 5007fee32b7af26afa4f9aaa506d2cb552a38ba5ac221775c12511f4fed815fae1901352ff9c35bfed48b766ee01f323a0773dcdf5e2924793612ae565c300a0
DIST django-6.0rc1.tar.gz 10921876 BLAKE2B 35d3010cfd9aed79b8df2e50d34d731c056c86a31f0148a4b5c737f268f44353d5a5fe672ee2b5b352e25a90a08adc0f98de9c2ff820d55658aaab517b2fd9e4 SHA512 ebee0f89719992f28e49ee15ec4543fe5f65caefcf624a96146e3bb2ec327cc4646d3228d127384d97a72e0e197d636741fdb753d0291fc9fd888e496e742ea5
diff --git a/dev-python/django/django-6.0.ebuild b/dev-python/django/django-6.0.ebuild
new file mode 100644
index 000000000000..68358883c24a
--- /dev/null
+++ b/dev-python/django/django-6.0.ebuild
@@ -0,0 +1,102 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=setuptools
+PYTHON_COMPAT=( python3_{10..14} )
+PYTHON_REQ_USE='sqlite?,threads(+)'
+
+inherit bash-completion-r1 distutils-r1 multiprocessing optfeature verify-sig
+
+MY_P=${P/_}
+DESCRIPTION="High-level Python web framework"
+HOMEPAGE="
+ https://www.djangoproject.com/
+ https://github.com/django/django/
+ https://pypi.org/project/Django/
+"
+SRC_URI="
+ https://media.djangoproject.com/releases/$(ver_cut 1-2)/${MY_P}.tar.gz
+ verify-sig? ( https://media.djangoproject.com/pgp/${MY_P^}.checksum.txt )
+"
+S=${WORKDIR}/${MY_P}
+
+LICENSE="BSD"
+# admin fonts: Roboto (media-fonts/roboto)
+LICENSE+=" Apache-2.0"
+# admin icons, jquery, xregexp.js
+LICENSE+=" MIT"
+SLOT="0/$(ver_cut 1-2)"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~ppc ~ppc64 ~riscv ~sparc ~x86 ~x64-macos"
+IUSE="doc sqlite test"
+RESTRICT="!test? ( test )"
+
+RDEPEND="
+ <dev-python/asgiref-4[${PYTHON_USEDEP}]
+ >=dev-python/asgiref-3.9.1[${PYTHON_USEDEP}]
+ >=dev-python/sqlparse-0.5.0[${PYTHON_USEDEP}]
+ sys-libs/timezone-data
+"
+BDEPEND="
+ test? (
+ $(python_gen_impl_dep sqlite)
+ ${RDEPEND}
+ >=dev-python/docutils-0.19[${PYTHON_USEDEP}]
+ >=dev-python/jinja2-2.11.0[${PYTHON_USEDEP}]
+ dev-python/numpy[${PYTHON_USEDEP}]
+ dev-python/pillow[webp,${PYTHON_USEDEP}]
+ dev-python/pyyaml[${PYTHON_USEDEP}]
+ >=dev-python/selenium-4.8.0[${PYTHON_USEDEP}]
+ >=dev-python/tblib-1.5.0[${PYTHON_USEDEP}]
+ sys-devel/gettext
+ )
+ verify-sig? ( >=sec-keys/openpgp-keys-django-20240807 )
+"
+
+PATCHES=(
+ "${FILESDIR}"/django-4.0-bashcomp.patch
+ # upstream hardcodes fixed versions, we backported the fixes
+ "${FILESDIR}"/django-5.2.6-htmlparser.patch
+)
+
+distutils_enable_sphinx docs --no-autodoc
+
+VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/django.asc
+
+src_unpack() {
+ if use verify-sig; then
+ cd "${DISTDIR}" || die
+ verify-sig_verify_signed_checksums \
+ "${MY_P^}.checksum.txt" sha256 "${MY_P}.tar.gz"
+ cd "${WORKDIR}" || die
+ fi
+
+ default
+}
+
+python_test() {
+ # Tests have non-standard assumptions about PYTHONPATH,
+ # and don't work with ${BUILD_DIR}/lib.
+ PYTHONPATH=. "${EPYTHON}" tests/runtests.py --settings=test_sqlite \
+ -v2 --parallel="${EPYTEST_JOBS:-$(makeopts_jobs)}" ||
+ die "Tests fail with ${EPYTHON}"
+}
+
+python_install_all() {
+ newbashcomp extras/django_bash_completion django-admin
+ bashcomp_alias django-admin django-admin.py
+
+ distutils-r1_python_install_all
+}
+
+pkg_postinst() {
+ optfeature_header "Additional Backend support can be enabled via:"
+ optfeature "MySQL backend support" dev-python/mysqlclient
+ optfeature "PostgreSQL backend support" dev-python/psycopg:0
+ optfeature_header
+ optfeature "GEO Django" "sci-libs/gdal[geos]"
+ optfeature "Memcached support" dev-python/pylibmc dev-python/python-memcached
+ optfeature "ImageField Support" dev-python/pillow
+ optfeature "Password encryption" dev-python/bcrypt
+}
diff --git a/dev-python/libvirt-python/Manifest b/dev-python/libvirt-python/Manifest
index 442aa30d589e..d705f59c01f4 100644
--- a/dev-python/libvirt-python/Manifest
+++ b/dev-python/libvirt-python/Manifest
@@ -1,5 +1,7 @@
DIST libvirt-python-11.6.0.tar.gz 242654 BLAKE2B 33150ead07e0329768ddec082b36e69a71235b5083004afdc0293a78f79b9df3605e5d8cb8bc4ec3a4523c8846fe201203d3e4ff0a0ceddaa23989b156199bb9 SHA512 06c09e8c62eafe11cb2419f8a13e040e9f4380591b235d1debdfc29e11b9f62535c1d8285e19bc190528dc3d987076bd39511c1c734b4bd590937d788977f05b
DIST libvirt-python-11.6.0.tar.gz.asc 833 BLAKE2B 342066ba8d6f82f310908a532f507dcb6b47ea3df810b2d54e537cf7965d42df87fc1a4647fc3c581ce4cc07f69ffa8eecda1467d11fa15f0c9d53f15de7c97c SHA512 75d8c79cd4157c3e1787cdd3c0fbf2ea3265e48d65d7d0fce2a4741ac5199026d01773799e0cf7861d948a2515ebcc468d56b93cafa9d4cb23d004efba864a24
+DIST libvirt_python-11.10.0.tar.gz 243286 BLAKE2B 7dbc2e2ea0329e4523805d9ef6c95d96af7eb7d8d0ad1cc99d68b258ddcb27eb26dbbfefd10ecda1a093594b309ffbc821cc303a71e87a91f6a7802d7f5222a0 SHA512 aa0156face7766c8d2faa053ae8729059bce3041899e3f545e90683d70f2809c782eff15dc1bca42493dd79bc263523d21d3e671c7c3559f127e3002dc8aa24b
+DIST libvirt_python-11.10.0.tar.gz.asc 833 BLAKE2B 664adc7d6bc30160ddd5e1fd1d79db742827169970de483cf9a3a5a0922dbe58c0a7e1b3102573e6555f817b851a4a7d8afdcf96d06000a94cf4b66a04843849 SHA512 c28d5ef9ec68d4a423684bddb4ec91f22f1951193f5519ae3931aba52d6d5b32273efaecbf44e1d0977569038d1bfa97200124dc10cd10d49e9eb914dd8b264c
DIST libvirt_python-11.8.0.tar.gz 242986 BLAKE2B df2262200aea58f4198cbe0e94639e000053d0e0451e5314227aff79971739b704442312c33f02e7c6e452fc66f2d26db13ee4c017109b7e69aeebb4d04997ad SHA512 8a82169d8b7c17d16150d8441900c4e1bac620c079d681a6c8e76d5b4924b65d7c13e3e04d776f23304ea594da7eb35f97d6e5915931397a14bb466b5f20ee3f
DIST libvirt_python-11.8.0.tar.gz.asc 833 BLAKE2B 7fbd65fc891a026568498d5d1118feb360054a3a1df647285622ef9ea0203fed510750b1e265b246bf9ab4cda695ded904f64f1a020cd8aff565e14ac9866c42 SHA512 0165d5fcd91f181e22bd27b663bb8492190572b67102f5695fd097fdfa4e6db70d8e93f3717e53cd3bb44ec80f6a1c4ccbc017485bce2bc3b53c65d447f27e92
DIST libvirt_python-11.9.0.tar.gz 243243 BLAKE2B 774d867a07736c2db0cb928aac50257831e8effbd7c86c838c9caa29552763cfcaa3bd079667b5a2265e6bc73373245e5801310a02acecb621245f618aff072e SHA512 33e13d04f13f7afd81030e8ccf7339830de3b50f941f08060eec755fbb104910e9858e8f92921d7a6c7941544a228e83f4466e6ea189028ac107a44ad530999d
diff --git a/dev-python/libvirt-python/libvirt-python-11.10.0.ebuild b/dev-python/libvirt-python/libvirt-python-11.10.0.ebuild
new file mode 100644
index 000000000000..3c25247486c9
--- /dev/null
+++ b/dev-python/libvirt-python/libvirt-python-11.10.0.ebuild
@@ -0,0 +1,63 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+# Packages which get releases together:
+# app-emacs/nxml-libvirt-schemas
+# dev-python/libvirt-python
+# dev-perl/Sys-Virt
+# app-emulation/libvirt
+# Please bump them together!
+
+DISTUTILS_EXT=1
+DISTUTILS_USE_PEP517=setuptools
+PYTHON_COMPAT=( python3_{10..14} )
+inherit distutils-r1 verify-sig
+
+if [[ ${PV} == *9999* ]]; then
+ inherit git-r3
+ EGIT_REPO_URI="https://gitlab.com/libvirt/libvirt-python.git"
+ RDEPEND="app-emulation/libvirt:="
+else
+ MY_P="${P/-/_}"
+ SRC_URI="https://download.libvirt.org/python/${MY_P}.tar.gz
+ verify-sig? ( https://download.libvirt.org/python/${MY_P}.tar.gz.asc )"
+ KEYWORDS="~amd64 ~arm ~arm64 ~ppc64 ~x86"
+ RDEPEND="app-emulation/libvirt:0/${PV}"
+ S="${WORKDIR}/${MY_P}"
+fi
+
+DESCRIPTION="libvirt Python bindings"
+HOMEPAGE="https://www.libvirt.org"
+
+LICENSE="LGPL-2"
+SLOT="0"
+IUSE="examples test"
+RESTRICT="!test? ( test )"
+
+BDEPEND="
+ virtual/pkgconfig
+ test? (
+ dev-python/lxml[${PYTHON_USEDEP}]
+ )
+ verify-sig? ( sec-keys/openpgp-keys-libvirt )
+"
+
+VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/libvirt.org.asc
+
+distutils_enable_tests pytest
+
+python_compile() {
+ # setuptools is broken for C extensions, bug #907718
+ distutils-r1_python_compile -j1
+}
+
+python_install_all() {
+ if use examples; then
+ dodoc -r examples
+ docompress -x /usr/share/doc/${PF}/examples
+ fi
+
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/numpy/Manifest b/dev-python/numpy/Manifest
index e862320b59f2..d8a480808ee3 100644
--- a/dev-python/numpy/Manifest
+++ b/dev-python/numpy/Manifest
@@ -7,3 +7,5 @@ DIST numpy-2.3.4.tar.gz 20582187 BLAKE2B 268754c3e50049a9a3c8a9d5bc3159a7bf635bf
DIST numpy-2.3.4.tar.gz.provenance 9933 BLAKE2B f25013995927114ba965e6297725d3d0cfdf70a2080e90c05b7297c8451b1cfe6a03bf81dc9cfb678e64ec4eaf0ec7fd3892fdf2ebb75ddb052bbf451b44870f SHA512 1689825964ca90f5af3ff2493df889b61b8ec4ca6e36b8c8ab1fede5ddac8f2606109c9434163dde92e9a6f0b0f7f2c328ffb322dc8f19b69b5de4a1c5a35cd7
DIST numpy-2.3.5.tar.gz 20584950 BLAKE2B a203d249631a49c8a28d8b81fb395d41f40c02c32955014c9010fd887bbd29631a94bf0f781a16a3b84fdde740c7728a5bfdcf4489e2c82b17c7f9cf2f641230 SHA512 055e5c0363e1e6d75e514b2f3a2dbbf830a0172a1381f3872b68cc4605bfafae91afcab37b710d12379488eba343fad7aeeb466ea23fa45d1d817a33aefe75fe
DIST numpy-2.3.5.tar.gz.provenance 9651 BLAKE2B 51039d094df01b45dfc013deb5149d6788869b5d36f187acd3048e9c5c7fca06c2d90e074633cd4a434d83112898a64a04e1b031760cbf5ad11f824f9384e588 SHA512 a86367d78e782148c3278fbc45b996a31d73ea5750bfee4599b6b06797ec196b9c8d25773efd7896e128900be9cf325d3ba8d0edae3701d1907626ee3d92e54c
+DIST numpy-2.4.0rc1.tar.gz 20658299 BLAKE2B ffefdc86ebdf77c503f7be7228efec64b095846814f5c5afe19f701047e151c0beb924515dfdccb7f8b0e9f991c9cef27786f3524a32b302e0daa6ffb3b38b94 SHA512 9e2373d6b6316922a7360e08261bfb15642f375ac95bff130920066ab674f34b4c784fe21c0421e838a28de47453d1d2dd4b81cefaa2b99a08b20f46f3544293
+DIST numpy-2.4.0rc1.tar.gz.provenance 9749 BLAKE2B a554580b5d9ddffeca3ddce5edb49130de5b27bb3678acc44ad9d1c0f3b0617f5cb723f1803e31048641e3647e950ea85a469fe08c0b8467b0419d882639a228 SHA512 0758b3bb844433ec7fc662901c63768e6ca6f43dda784a405124aceaf25cae20d885cd2f0cfecd7897874953e9c21c42337159f7174c024d30bb8511c0ff1f98
diff --git a/dev-python/numpy/numpy-2.4.0_rc1.ebuild b/dev-python/numpy/numpy-2.4.0_rc1.ebuild
new file mode 100644
index 000000000000..08efc3c9c2ea
--- /dev/null
+++ b/dev-python/numpy/numpy-2.4.0_rc1.ebuild
@@ -0,0 +1,306 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_EXT=1
+DISTUTILS_USE_PEP517=meson-python
+PYPI_VERIFY_REPO=https://github.com/numpy/numpy-release
+PYTHON_COMPAT=( python3_{10..14} )
+PYTHON_REQ_USE="threads(+)"
+FORTRAN_NEEDED=lapack
+
+inherit distutils-r1 flag-o-matic fortran-2 pypi
+
+DESCRIPTION="Fast array and numerical python library"
+HOMEPAGE="
+ https://numpy.org/
+ https://github.com/numpy/numpy/
+ https://pypi.org/project/numpy/
+"
+
+LICENSE="BSD 0BSD MIT ZLIB CC0-1.0"
+SLOT="0/2"
+# +lapack because the internal fallbacks are pretty slow. Building without blas
+# is barely supported anyway, see bug #914358.
+IUSE="big-endian +cpudetection index64 +lapack"
+
+# upstream-flag[:gentoo-flag]
+ARM_FLAGS=( neon{,-fp16} vfpv4 asimd{,hp,dp,fhm} sve )
+PPC_FLAGS=( vsx vsx2 vsx3 vsx4 )
+X86_FLAGS=(
+ avx2 avx512{bw,dq,vl} avx512_{bf16,bitalg,fp16,vbmi2} sse4_2
+)
+IUSE+="
+ ${ARM_FLAGS[*]/#/cpu_flags_arm_}
+ ${PPC_FLAGS[*]/#/cpu_flags_ppc_}
+ ${X86_FLAGS[*]/#/cpu_flags_x86_}
+"
+
+RDEPEND="
+ lapack? (
+ >=virtual/cblas-3.8[index64(-)?]
+ >=virtual/lapack-3.8[index64(-)?]
+ )
+"
+BDEPEND="
+ ${RDEPEND}
+ >=dev-build/meson-1.5.2
+ >=dev-python/cython-3.0.6[${PYTHON_USEDEP}]
+ lapack? (
+ virtual/pkgconfig
+ )
+ test? (
+ $(python_gen_cond_dep '
+ >=dev-python/cffi-1.14.0[${PYTHON_USEDEP}]
+ ' 'python*')
+ dev-python/charset-normalizer[${PYTHON_USEDEP}]
+ >=dev-python/pytz-2019.3[${PYTHON_USEDEP}]
+ )
+"
+
+QA_CONFIG_IMPL_DECL_SKIP=(
+ # https://bugs.gentoo.org/925367
+ vrndq_f32
+)
+
+EPYTEST_PLUGINS=( hypothesis pytest-timeout )
+EPYTEST_XDIST=1
+distutils_enable_tests pytest
+
+has_all_x86() {
+ local flag
+ for flag; do
+ if ! use "cpu_flags_x86_${flag}"; then
+ return 1
+ fi
+ done
+ return 0
+}
+
+python_configure_all() {
+ local cpu_baseline=()
+ local map flag
+ case ${ARCH} in
+ arm)
+ # every flag implies the previous one
+ for map in NEON:neon NEON_FP16:neon-fp16 NEON_VFPV4:vfpv4; do
+ if ! use "cpu_flags_arm_${map#*:}"; then
+ break
+ fi
+ cpu_baseline+=( "${map%:*}" )
+ done
+ ;&
+ arm64)
+ # on 32-bit ARM, ASIMD implies all NEON* flags
+ # on 64-bit ARM, they are all linked together
+ if use arm64 ||
+ [[ ${cpu_baseline[@]} && ${cpu_baseline[-1]} == NEON_VFPV4 ]]
+ then
+ cpu_baseline+=( $(usev cpu_flags_arm_asimd ASIMD) )
+ fi
+
+ # these two imply ASIMD
+ if [[ ${cpu_baseline[@]} && ${cpu_baseline[-1]} == ASIMD ]]; then
+ for flag in dp hp; do
+ cpu_baseline+=(
+ $(usev "cpu_flags_arm_asimd${flag}" "ASIMD${flag^^}")
+ )
+ done
+ fi
+
+ # these two imply ASIMDHP
+ if [[ ${cpu_baseline[@]} && ${cpu_baseline[-1]} == ASIMDHP ]]; then
+ for flag in asimdfhm sve; do
+ cpu_baseline+=(
+ $(usev "cpu_flags_arm_${flag}" "${flag^^}")
+ )
+ done
+ fi
+ ;;
+ ppc64)
+ # every flag implies the previous one
+ for flag in '' 2 3 4; do
+ if ! use "cpu_flags_ppc_vsx${flags}"; then
+ break
+ fi
+ cpu_baseline+=( "VSX${flag}" )
+ done
+ ;;
+ amd64|x86)
+ # upstream combines multiple instructions into sets
+ local mapping=(
+ # for these, we just check the newest instruction set,
+ # since all earlier instruction sets imply it
+ "X86_V2=sse4_2"
+ "X86_V3=avx2"
+ # from here on, we check all features that were added
+ # in the lowest CPU supporting them all
+ # https://en.wikipedia.org/wiki/AVX-512
+ "X86_V4=avx512bw avx512dq avx512vl"
+ "AVX512_ICL=avx512_vbmi2 avx512_bitalg"
+ "AVX512_SPR=avx512_bf16 avx512_fp16"
+ )
+
+ local m
+ for m in "${mapping[@]}"; do
+ local feature=${m%=*}
+ local sets=${m#*=}
+
+ if has_all_x86 ${sets}; then
+ einfo "${feature} enabled: all of ${sets} enabled"
+ cpu_baseline+=( "${feature}" )
+ else
+ einfo "${feature} disabled: not all of ${sets} enabled"
+ break
+ fi
+ done
+ ;;
+ *)
+ cpu_baseline=MIN
+ ;;
+ esac
+
+ DISTUTILS_ARGS=(
+ -Dallow-noblas=$(usex !lapack true false)
+ -Duse-ilp64=$(usex index64 true false)
+ -Dblas=$(usev lapack $(usex index64 cblas64 cblas))
+ -Dlapack=$(usev lapack $(usex index64 lapack64 lapack))
+ -Dcpu-baseline="${cpu_baseline[*]}"
+ -Dcpu-baseline-detect=disabled
+ -Dcpu-dispatch="$(usev cpudetection MAX)"
+ )
+
+ # bug #922457
+ filter-lto
+ # https://github.com/numpy/numpy/issues/25004
+ append-flags -fno-strict-aliasing
+}
+
+python_test() {
+ # We run tests in parallel, so avoid having n^2 threads in lapack
+ # tests.
+ local -x BLIS_NUM_THREADS=1
+ local -x MKL_NUM_THREADS=1
+ local -x OMP_NUM_THREADS=1
+ local -x OPENBLAS_NUM_THREADS=1
+
+ # don't run tests that require more than 2 GiB of RAM (per process)
+ local -x NPY_AVAILABLE_MEM="2 GiB"
+
+ local EPYTEST_DESELECT=(
+ # Very disk-and-memory-hungry
+ numpy/lib/tests/test_io.py::TestSavezLoad::test_closing_fid
+ numpy/lib/tests/test_io.py::TestSavezLoad::test_closing_zipfile_after_load
+
+ # Precision problems
+ numpy/_core/tests/test_umath_accuracy.py::TestAccuracy::test_validate_transcendentals
+
+ numpy/typing/tests/test_typing.py
+
+ # Flaky, reruns don't help
+ numpy/f2py/tests/test_crackfortran.py
+ numpy/f2py/tests/test_data.py::TestData{,F77}::test_crackedlines
+ numpy/f2py/tests/test_f2py2e.py::test_gen_pyf
+ numpy/f2py/tests/test_f2py2e.py::test_gh22819_cli
+ )
+
+ if [[ $(uname -m) == armv8l ]]; then
+ # Degenerate case of arm32 chroot on arm64, bug #774108
+ EPYTEST_DESELECT+=(
+ numpy/_core/tests/test_cpu_features.py::Test_ARM_Features::test_features
+ )
+ fi
+
+ case ${ARCH} in
+ arm)
+ EPYTEST_DESELECT+=(
+ # TODO: warnings
+ numpy/_core/tests/test_umath.py::TestSpecialFloats::test_unary_spurious_fpexception
+
+ # TODO
+ numpy/_core/tests/test_function_base.py::TestLinspace::test_denormal_numbers
+ numpy/f2py/tests/test_kind.py::TestKind::test_real
+ numpy/f2py/tests/test_kind.py::TestKind::test_quad_precision
+
+ # require too much memory
+ 'numpy/_core/tests/test_multiarray.py::TestDot::test_huge_vectordot[complex128]'
+ 'numpy/_core/tests/test_multiarray.py::TestDot::test_huge_vectordot[float64]'
+ )
+ ;;
+ hppa)
+ EPYTEST_DESELECT+=(
+ # https://bugs.gentoo.org/942689
+ "numpy/_core/tests/test_dtype.py::TestBuiltin::test_dtype[int]"
+ "numpy/_core/tests/test_dtype.py::TestBuiltin::test_dtype[float]"
+ "numpy/_core/tests/test_dtype.py::TestBuiltin::test_dtype_bytes_str_equivalence[datetime64]"
+ "numpy/_core/tests/test_dtype.py::TestBuiltin::test_dtype_bytes_str_equivalence[timedelta64]"
+ "numpy/_core/tests/test_dtype.py::TestBuiltin::test_dtype_bytes_str_equivalence[<f]"
+ "numpy/_core/tests/test_dtype.py::TestPickling::test_pickle_dtype[dt28]"
+ numpy/f2py/tests/test_kind.py::TestKind::test_real
+ numpy/f2py/tests/test_kind.py::TestKind::test_quad_precision
+ numpy/tests/test_ctypeslib.py::TestAsArray::test_reference_cycles
+ numpy/tests/test_ctypeslib.py::TestAsArray::test_segmentation_fault
+ numpy/tests/test_ctypeslib.py::TestAsCtypesType::test_scalar
+ numpy/tests/test_ctypeslib.py::TestAsCtypesType::test_subarray
+ numpy/tests/test_ctypeslib.py::TestAsCtypesType::test_structure
+ numpy/tests/test_ctypeslib.py::TestAsCtypesType::test_structure_aligned
+ numpy/tests/test_ctypeslib.py::TestAsCtypesType::test_union
+ numpy/tests/test_ctypeslib.py::TestAsCtypesType::test_padded_union
+ )
+ ;;
+ ppc|x86)
+ EPYTEST_DESELECT+=(
+ # require too much memory
+ 'numpy/_core/tests/test_multiarray.py::TestDot::test_huge_vectordot[complex128]'
+ 'numpy/_core/tests/test_multiarray.py::TestDot::test_huge_vectordot[float64]'
+ )
+ ;;
+ esac
+
+ if [[ ${CHOST} == powerpc64le-* ]]; then
+ EPYTEST_DESELECT+=(
+ # long double thingy
+ numpy/_core/tests/test_scalarprint.py::TestRealScalars::test_ppc64_ibm_double_double128
+ )
+ fi
+
+ if use big-endian; then
+ EPYTEST_DESELECT+=(
+ # ppc64 and sparc
+ numpy/linalg/tests/test_linalg.py::TestDet::test_generalized_sq_cases
+ numpy/linalg/tests/test_linalg.py::TestDet::test_sq_cases
+ "numpy/f2py/tests/test_return_character.py::TestFReturnCharacter::test_all_f77[s1]"
+ "numpy/f2py/tests/test_return_character.py::TestFReturnCharacter::test_all_f77[t1]"
+ "numpy/f2py/tests/test_return_character.py::TestFReturnCharacter::test_all_f90[s1]"
+ "numpy/f2py/tests/test_return_character.py::TestFReturnCharacter::test_all_f90[t1]"
+ )
+ fi
+
+ if ! has_version -b "~${CATEGORY}/${P}[${PYTHON_USEDEP}]" ; then
+ # depends on importing numpy.random from system namespace
+ EPYTEST_DESELECT+=(
+ 'numpy/random/tests/test_extending.py::test_cython'
+ )
+ fi
+
+ if has_version ">=dev-python/setuptools-74[${PYTHON_USEDEP}]"; then
+ # msvccompiler removal
+ EPYTEST_DESELECT+=(
+ numpy/tests/test_public_api.py::test_all_modules_are_expected_2
+ numpy/tests/test_public_api.py::test_api_importable
+ )
+ EPYTEST_IGNORE+=(
+ numpy/distutils/tests/test_mingw32ccompiler.py
+ numpy/distutils/tests/test_system_info.py
+ )
+ fi
+
+ cd "${BUILD_DIR}/install$(python_get_sitedir)" || die
+ epytest
+}
+
+python_install_all() {
+ local DOCS=( LICENSE.txt README.md THANKS.txt )
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/protobuf/protobuf-5.29.5.ebuild b/dev-python/protobuf/protobuf-5.29.5.ebuild
index d6a77c824251..f2061697055d 100644
--- a/dev-python/protobuf/protobuf-5.29.5.ebuild
+++ b/dev-python/protobuf/protobuf-5.29.5.ebuild
@@ -36,7 +36,7 @@ KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~mips ~ppc ~ppc64 ~riscv ~sparc ~x86"
# need protobuf compiler
BDEPEND="
test? (
- dev-libs/protobuf
+ dev-libs/protobuf[protoc(+)]
dev-python/absl-py[${PYTHON_USEDEP}]
dev-python/numpy[${PYTHON_USEDEP}]
dev-python/pytest-forked[${PYTHON_USEDEP}]
diff --git a/dev-python/protobuf/protobuf-6.30.2-r2.ebuild b/dev-python/protobuf/protobuf-6.30.2-r2.ebuild
index f8cd350bbc78..0750eb22c29b 100644
--- a/dev-python/protobuf/protobuf-6.30.2-r2.ebuild
+++ b/dev-python/protobuf/protobuf-6.30.2-r2.ebuild
@@ -33,7 +33,7 @@ KEYWORDS="~amd64 ~arm ~arm64 ~x86"
# need protobuf compiler
BDEPEND="
test? (
- dev-libs/protobuf
+ dev-libs/protobuf[protoc(+)]
dev-python/absl-py[${PYTHON_USEDEP}]
dev-python/numpy[${PYTHON_USEDEP}]
)
diff --git a/dev-python/protobuf/protobuf-6.31.1.ebuild b/dev-python/protobuf/protobuf-6.31.1.ebuild
index 8a5c3f88691b..32ccd758545b 100644
--- a/dev-python/protobuf/protobuf-6.31.1.ebuild
+++ b/dev-python/protobuf/protobuf-6.31.1.ebuild
@@ -33,7 +33,7 @@ KEYWORDS="~alpha amd64 arm arm64 ~hppa ~mips ppc ppc64 ~riscv ~sparc x86"
# need protobuf compiler
BDEPEND="
test? (
- dev-libs/protobuf
+ dev-libs/protobuf[protoc(+)]
dev-python/absl-py[${PYTHON_USEDEP}]
dev-python/numpy[${PYTHON_USEDEP}]
dev-python/pytest-forked[${PYTHON_USEDEP}]
diff --git a/dev-python/protobuf/protobuf-6.32.0.ebuild b/dev-python/protobuf/protobuf-6.32.0.ebuild
index d6a77c824251..f2061697055d 100644
--- a/dev-python/protobuf/protobuf-6.32.0.ebuild
+++ b/dev-python/protobuf/protobuf-6.32.0.ebuild
@@ -36,7 +36,7 @@ KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~mips ~ppc ~ppc64 ~riscv ~sparc ~x86"
# need protobuf compiler
BDEPEND="
test? (
- dev-libs/protobuf
+ dev-libs/protobuf[protoc(+)]
dev-python/absl-py[${PYTHON_USEDEP}]
dev-python/numpy[${PYTHON_USEDEP}]
dev-python/pytest-forked[${PYTHON_USEDEP}]
diff --git a/dev-python/protobuf/protobuf-6.32.1-r1.ebuild b/dev-python/protobuf/protobuf-6.32.1-r1.ebuild
index 1aaa2a3f5276..ff9301de8cb3 100644
--- a/dev-python/protobuf/protobuf-6.32.1-r1.ebuild
+++ b/dev-python/protobuf/protobuf-6.32.1-r1.ebuild
@@ -36,7 +36,7 @@ KEYWORDS="~alpha amd64 ~arm arm64 ~hppa ~mips ~ppc ppc64 ~riscv ~sparc ~x86"
# need protobuf compiler
BDEPEND="
test? (
- dev-libs/protobuf
+ dev-libs/protobuf[protoc(+)]
dev-python/absl-py[${PYTHON_USEDEP}]
dev-python/numpy[${PYTHON_USEDEP}]
)
diff --git a/dev-python/protobuf/protobuf-6.32.1.ebuild b/dev-python/protobuf/protobuf-6.32.1.ebuild
index 246cce5e415e..ef25686033e8 100644
--- a/dev-python/protobuf/protobuf-6.32.1.ebuild
+++ b/dev-python/protobuf/protobuf-6.32.1.ebuild
@@ -36,7 +36,7 @@ KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~mips ~ppc ~ppc64 ~riscv ~sparc ~x86"
# need protobuf compiler
BDEPEND="
test? (
- dev-libs/protobuf
+ dev-libs/protobuf[protoc(+)]
dev-python/absl-py[${PYTHON_USEDEP}]
dev-python/numpy[${PYTHON_USEDEP}]
)
diff --git a/dev-python/protobuf/protobuf-6.33.0.ebuild b/dev-python/protobuf/protobuf-6.33.0.ebuild
index f5d1adf34524..d7dcaa3cbc5a 100644
--- a/dev-python/protobuf/protobuf-6.33.0.ebuild
+++ b/dev-python/protobuf/protobuf-6.33.0.ebuild
@@ -36,7 +36,7 @@ KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~mips ~ppc ~ppc64 ~riscv ~sparc ~x86"
# need protobuf compiler
BDEPEND="
test? (
- dev-libs/protobuf
+ dev-libs/protobuf[protoc(+)]
dev-python/absl-py[${PYTHON_USEDEP}]
dev-python/numpy[${PYTHON_USEDEP}]
)
diff --git a/dev-python/protobuf/protobuf-6.33.1.ebuild b/dev-python/protobuf/protobuf-6.33.1.ebuild
index f5d1adf34524..d7dcaa3cbc5a 100644
--- a/dev-python/protobuf/protobuf-6.33.1.ebuild
+++ b/dev-python/protobuf/protobuf-6.33.1.ebuild
@@ -36,7 +36,7 @@ KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~mips ~ppc ~ppc64 ~riscv ~sparc ~x86"
# need protobuf compiler
BDEPEND="
test? (
- dev-libs/protobuf
+ dev-libs/protobuf[protoc(+)]
dev-python/absl-py[${PYTHON_USEDEP}]
dev-python/numpy[${PYTHON_USEDEP}]
)