summaryrefslogtreecommitdiff
path: root/dev-python
diff options
context:
space:
mode:
Diffstat (limited to 'dev-python')
-rw-r--r--dev-python/Manifest.gzbin275552 -> 275539 bytes
-rw-r--r--dev-python/pika/Manifest2
-rw-r--r--dev-python/pika/pika-1.3.2.ebuild4
-rw-r--r--dev-python/pyside/Manifest12
-rw-r--r--dev-python/pyside/pyside-6.8.2-r1.ebuild51
-rw-r--r--dev-python/pyside/pyside-6.8.3.ebuild27
-rw-r--r--dev-python/pyside/pyside-6.9.0.ebuild507
-rw-r--r--dev-python/pyside/pyside-6.9.9999.ebuild27
-rw-r--r--dev-python/pyside/pyside-6.9999.ebuild27
-rw-r--r--dev-python/pytest-check/Manifest2
-rw-r--r--dev-python/pytest-check/pytest-check-2.5.3.ebuild28
11 files changed, 619 insertions, 68 deletions
diff --git a/dev-python/Manifest.gz b/dev-python/Manifest.gz
index dd60a3f8856e..966ee542fd69 100644
--- a/dev-python/Manifest.gz
+++ b/dev-python/Manifest.gz
Binary files differ
diff --git a/dev-python/pika/Manifest b/dev-python/pika/Manifest
index 653fdd51bb4f..b230456bff3d 100644
--- a/dev-python/pika/Manifest
+++ b/dev-python/pika/Manifest
@@ -1,3 +1,3 @@
DIST pika-1.3.2.gh.tar.gz 323647 BLAKE2B 30cd1154bd35708a29a924d6f0f646ebdd3737745ba588e5d56fd2ae6b2a138005352475b346738b5eea66adadedb0c50fa9411f659c4f6c6b81bc9bf048c7fb SHA512 86c1c33db808274052cbe18af68bef685fafa260f692d16dcd3ce6259107c343ebdd3482713a7948583566581defa6037f3344d03b11c50458432d044d8b2057
-EBUILD pika-1.3.2.ebuild 1526 BLAKE2B 09da436cf92825d79be2d14a29337a33e09d134a182499b85f597e2d862eae76d26cc3cb9a58991bed2a8c07d92efdbb3876c8e6e52dd47cb219e8a49da81621 SHA512 ef4f7e9db7274f2f69bba6c56225e859fd3209573316a421bd6bbc581e3863894162df0411c92bc45b9d56254c91d70ff811feab3c3efbaa4d8db8a794f322e0
+EBUILD pika-1.3.2.ebuild 1527 BLAKE2B a89803d7e53281ab0745578ba066dc493995457bc743781ceb81a699b6266aac4c4593c843e7c806fcecbd1c54499db7c69c51c72f0f7576205c20b477659e7a SHA512 2aeeaa2551065361bb5cb5c979c1a5a305fc9b16a93987f60e68ec1e663c9c0af754545b3dc9ef7d48c5e4c35b6fd5fd44977131740629e5c339926ed66393ed
MISC metadata.xml 679 BLAKE2B 1db50c96bdf43def09d0e2fbd0a9ca50eeee10dca95cadb0ed942fe3d6d376e55131fdcff03195ecd3531afe6f7580aab345939f11f0c98166b2d779b46572be SHA512 3b72153d645da660448e2b9a36d0f5eec9052529a6209c8740cd418cc57743033fcef3f9db12cd0158d601c1bdfa15ff125396aca9dfc5635a1557f99af6fa70
diff --git a/dev-python/pika/pika-1.3.2.ebuild b/dev-python/pika/pika-1.3.2.ebuild
index 75b80c3792f5..e7e9871c0f99 100644
--- a/dev-python/pika/pika-1.3.2.ebuild
+++ b/dev-python/pika/pika-1.3.2.ebuild
@@ -1,10 +1,10 @@
-# Copyright 1999-2023 Gentoo Authors
+# 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_{9..11} )
+PYTHON_COMPAT=( python3_{11..13} )
inherit distutils-r1
DESCRIPTION="Pure-Python implementation of the AMQP"
diff --git a/dev-python/pyside/Manifest b/dev-python/pyside/Manifest
index 95f3c68514b8..2f391b8ca866 100644
--- a/dev-python/pyside/Manifest
+++ b/dev-python/pyside/Manifest
@@ -1,9 +1,11 @@
AUX pyside-6.8.2-no-qtexampleicons.patch 285 BLAKE2B 13d406b6dde61962e3d47c651fc8041784fe2e71de626ab4a2884f045abb65d498ef05837d88e1a593ef4ca05914c4b45fa93605d504eef8f6cea00dfcafa4f6 SHA512 64f6bacb56a6930169ff4c727c5650ca8c515ad91733fcd8e4ddc1ec69c515f273ec619033f97e058d183d4fa1b80bb5464519cc21a12e513eb283a1964cb95c
AUX pyside-6.8.2-quick-fix-build-wheel.patch 725 BLAKE2B d86c59ea666e0d21b6d7e43ddf0c9ba0f404c7543a02994239f12f4910a89c1a587b85122631da3bfa0818d3834ad3edac2bb5a54e2faafccadd463a3a534737 SHA512 2cd73337a8d1b9c5e9f774b97c3705265fbb61ef837fab438c8331e753508bffd125fbf2d9e235a496fe905038e5fb7e9247ba732f9af50416a4d6378386945c
-DIST pyside-pyside-setup-6.8.2.gh.tar.gz 19305680 BLAKE2B d4da8ec63d35714bf4418cdc9ff5921fe554c1635a7c5c467657b64c2140208b4bba57fc9932f0f96426e1d15c124209b0b29eb9340261d34eed194128a03545 SHA512 30691d27afaeaa3117e68b60745918d9697c8d9e4ee8941eaab51995cb5128c56d44964511f2db731f448bf32219160032e4a4cd4773d3fccc4de8c0e509d1c1
+DIST pyside-setup-everywhere-src-6.8.2.tar.xz 16609596 BLAKE2B 7e4f12cf81d649e2d7e52ff31eedda55db29650230e5dac2a930d38827d7e43101309a601e0dc3ccebea0274f006f25c9a6be79baa3d0390526dbb8583920230 SHA512 cc522143974d08133d68d3259caa5127916534e16678693866d65965a546db98b5b1b07d92f7c0918b7c8fb10213d94ad50259b22cf9ebc2a63b985068d75452
DIST pyside-setup-everywhere-src-6.8.3.tar.xz 16611768 BLAKE2B 119696fc184c5caa450807dab6acae903a9a2b1e98b5c641659fdb77bfcb855e3a7cb8abb4fbc0d22c5df9312ce924599aff615e28bedd45b9ee30e88dee8b56 SHA512 a7d1bbd0edd8c42e6925bf880e5ee613391fb1d75f2880598577c49fe90d0c0b81907fd4cd3032ba665bcf70a6915e0ee1a8648c7012a28e598d5c7eb6da1bfe
-EBUILD pyside-6.8.2-r1.ebuild 16425 BLAKE2B f74f557b51c5e4cd585c12edfd79732aee841c90272cdc96f745056b7f001239061c54fd19f262b4c6526156d9afc749f867f4e6a4d691334b2a140b4d0e4c41 SHA512 f95832ca202eb3038ac83fe62b36267a69d0d8fe3899006864c069b2e4d47cdcfe315286f1fbf2ece5e9904644bc7cd77cb48bc1cf4f673b4c03164bbe010a8a
-EBUILD pyside-6.8.3.ebuild 16836 BLAKE2B 614fe660b67382f3b9e678964f8fbab8e19ac898c9f543fae08bfc9b8148355733afcabccae45bea5f1376dab7155b86a00700479aab9a13c873a9fc0813c464 SHA512 6f0c468124b557dd588424aec392112a95c0c69dc20b72cd760152c8e69c753696ecc139a6f9248aa7007d4e788748c9fce4179831dd17f85f8a7162eb0e7255
-EBUILD pyside-6.9.9999.ebuild 16836 BLAKE2B 614fe660b67382f3b9e678964f8fbab8e19ac898c9f543fae08bfc9b8148355733afcabccae45bea5f1376dab7155b86a00700479aab9a13c873a9fc0813c464 SHA512 6f0c468124b557dd588424aec392112a95c0c69dc20b72cd760152c8e69c753696ecc139a6f9248aa7007d4e788748c9fce4179831dd17f85f8a7162eb0e7255
-EBUILD pyside-6.9999.ebuild 16836 BLAKE2B 614fe660b67382f3b9e678964f8fbab8e19ac898c9f543fae08bfc9b8148355733afcabccae45bea5f1376dab7155b86a00700479aab9a13c873a9fc0813c464 SHA512 6f0c468124b557dd588424aec392112a95c0c69dc20b72cd760152c8e69c753696ecc139a6f9248aa7007d4e788748c9fce4179831dd17f85f8a7162eb0e7255
+DIST pyside-setup-everywhere-src-6.9.0.tar.xz 16652756 BLAKE2B 38c8580d4e0854d58853ac74568a234f4a9d352e26b49e35eb0b76baaad2e304786dc119bfd00b18b7df006a37d09f4a9a02b89c11f145a8b74b40ecd5c15106 SHA512 b5f574397e0e1a891a3d305d91dc8b91a149bfd6427dde29f2900052a63dc684f238eca511386fdd891d0e343615c1f1b05c050a4aa63f8fcae70075c2ab4f70
+EBUILD pyside-6.8.2-r1.ebuild 17381 BLAKE2B ff3beb4dfd0bde155e5ad72b7357610ccf1788477ad47f9f8d6aee28af575edc2918aef5d3b180a3d9b04d7d355c376ead587108ecc80fde469fa2700ca5b05d SHA512 b3614c49507a94ed5040c206ccef6571aff6fdb8bc15dbef38d2fd6633623911bf27f820209202d5262ea0379edb4a3aab4d446736439a9b37f88a77e330f7a6
+EBUILD pyside-6.8.3.ebuild 17262 BLAKE2B 44fd06b6130ee4b812a7061e243318c84df33f08a4da0ddce9984f8959cb87a00fbb61264a09d16423f88af10007e299f2592b69e125c14a73ccff234fdfdf83 SHA512 86eaeaae18bf9c5a836f15fa18db26e81c55fcadf6f92f662dae31beaf18ed5f2226ac497dbdef1b1eca88c63490e421ca6ee035943133d163963eda245b0913
+EBUILD pyside-6.9.0.ebuild 17262 BLAKE2B 44fd06b6130ee4b812a7061e243318c84df33f08a4da0ddce9984f8959cb87a00fbb61264a09d16423f88af10007e299f2592b69e125c14a73ccff234fdfdf83 SHA512 86eaeaae18bf9c5a836f15fa18db26e81c55fcadf6f92f662dae31beaf18ed5f2226ac497dbdef1b1eca88c63490e421ca6ee035943133d163963eda245b0913
+EBUILD pyside-6.9.9999.ebuild 17262 BLAKE2B 44fd06b6130ee4b812a7061e243318c84df33f08a4da0ddce9984f8959cb87a00fbb61264a09d16423f88af10007e299f2592b69e125c14a73ccff234fdfdf83 SHA512 86eaeaae18bf9c5a836f15fa18db26e81c55fcadf6f92f662dae31beaf18ed5f2226ac497dbdef1b1eca88c63490e421ca6ee035943133d163963eda245b0913
+EBUILD pyside-6.9999.ebuild 17262 BLAKE2B 44fd06b6130ee4b812a7061e243318c84df33f08a4da0ddce9984f8959cb87a00fbb61264a09d16423f88af10007e299f2592b69e125c14a73ccff234fdfdf83 SHA512 86eaeaae18bf9c5a836f15fa18db26e81c55fcadf6f92f662dae31beaf18ed5f2226ac497dbdef1b1eca88c63490e421ca6ee035943133d163963eda245b0913
MISC metadata.xml 2977 BLAKE2B abf5f630457dc13ad1bc9e08ed5fcd3f0beadff9815cf6d7ddb6107410c6584f7acae7d08194c7b621eb4470f844d67e13b97df7620493e27d2df2ec54dbbf77 SHA512 51fd0bdc6059a221fadb7c04b627be5ccd523d28a3234c5f01118d50b6d4b5938fda8390ce5e26e8f1f630b58ef4f5201710804c996607e85d7d69d793a4a09a
diff --git a/dev-python/pyside/pyside-6.8.2-r1.ebuild b/dev-python/pyside/pyside-6.8.2-r1.ebuild
index c565fb32f91b..6eadff3a3747 100644
--- a/dev-python/pyside/pyside-6.8.2-r1.ebuild
+++ b/dev-python/pyside/pyside-6.8.2-r1.ebuild
@@ -1,6 +1,11 @@
# Copyright 1999-2025 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
+# NOTE: We combine here several PyPI packages, we do this because
+# pyside can and does break if it is compiled with a different
+# toolchain then was used to build shiboken. This bundling ensures
+# that we always use the same toolchain for all components.
+
EAPI=8
PYTHON_COMPAT=( python3_{10..13} )
@@ -10,17 +15,28 @@ DISTUTILS_EXT=1
inherit distutils-r1 llvm-r1 multiprocessing qmake-utils virtualx
-MY_PN=pyside-pyside-setup
+MY_PN=${PN}-setup-everywhere-src
MY_P=${MY_PN}-${PV}
DESCRIPTION="Python bindings for the Qt framework"
HOMEPAGE="https://wiki.qt.io/PySide6"
-SRC_URI="https://github.com/qtproject/${MY_PN}/archive/refs/tags/v${PV}.tar.gz -> ${MY_P}.gh.tar.gz"
-S="${WORKDIR}/${MY_P}"
+
+if [[ ${PV} == *.9999 ]]; then
+ inherit git-r3
+ EGIT_REPO_URI=(
+ "https://code.qt.io/${PN}/${PN}-setup.git"
+ "https://github.com/qtproject/${PN}-${PN}-setup.git"
+ )
+ EGIT_BRANCH=dev
+ [[ ${PV} == 6.*.9999 ]] && EGIT_BRANCH=${PV%.9999}
+else
+ SRC_URI="https://download.qt.io/official_releases/QtForPython/${PN}6/PySide6-${PV}-src/${MY_P}.tar.xz"
+ S="${WORKDIR}/${MY_P}"
+ KEYWORDS="amd64 ~arm arm64 ~loong ~ppc64 ~riscv ~x86"
+fi
LICENSE="|| ( GPL-2 GPL-3 LGPL-3 )"
SLOT="6/${PV}"
-KEYWORDS="amd64 ~arm arm64 ~loong ~ppc64 ~riscv ~x86"
# If a flag enables multiple Qt modules, they should be ordered
# according to their dependencies, e.g. for 3d, 3DCore must be first.
@@ -107,7 +123,7 @@ declare -A QT_REQUIREMENTS=(
["webchannel"]="core"
["webengine"]="core gui network printsupport quick webchannel"
["websockets"]="network"
- ["webview"]="gui"
+ ["webview"]="gui quick webengine"
["widgets"]="gui"
["xml"]="core"
)
@@ -345,9 +361,15 @@ python_compile() {
--build-type=shiboken6
)
distutils-r1_python_compile
+
+ # The build system uses its own build dir, find the name of this dir.
+ local pyside_build_dir=$(find "${BUILD_DIR}/build$((${#DISTUTILS_WHEELS[@]}-1))" -maxdepth 1 -type d -name 'qfp-*' -printf "%f\n")
+ export BUILD_ID=${pyside_build_dir#qfp-py${EPYTHON#python}-qt$(ver_cut 1-3)-}
+
DISTUTILS_ARGS=(
"${MAIN_DISTUTILS_ARGS[@]}"
--reuse-build
+ --shiboken-target-path="${BUILD_DIR}/build$((${#DISTUTILS_WHEELS[@]}-1))/${pyside_build_dir}/install"
--build-type=shiboken6-generator
)
distutils-r1_python_compile
@@ -356,7 +378,7 @@ python_compile() {
DISTUTILS_ARGS=(
"${MAIN_DISTUTILS_ARGS[@]}"
--reuse-build
- --shiboken-target-path="$(find "${BUILD_DIR}/build" -type d -name cmake)/../../"
+ --shiboken-target-path="${BUILD_DIR}/build$((${#DISTUTILS_WHEELS[@]}-1))/${pyside_build_dir}/install"
--build-type=pyside6
)
distutils-r1_python_compile
@@ -410,7 +432,7 @@ python_compile() {
done
# Install misc files from inner install dir
- find "${BUILD_DIR}"/build/*/install -type f \
+ find "${BUILD_DIR}"/build*/${pyside_build_dir}/install -type f \
-name libPySidePlugin.so -exec \
mkdir -p "${BUILD_DIR}/install/$(qt6_get_plugindir)/designer/" \; \
-exec \
@@ -418,7 +440,7 @@ python_compile() {
|| die
for dir in cmake pkgconfig; do
- find "${BUILD_DIR}"/build/*/install -type d -name ${dir} \
+ find "${BUILD_DIR}"/build*/${pyside_build_dir}/install -type d -name ${dir} \
-exec cp -r "{}" "${BUILD_DIR}/install/usr/lib/" \; \
|| die
done
@@ -470,18 +492,11 @@ python_compile() {
}
python_test() {
- # figure out the build dir
- local build_dir build_classifier
- build_dir=$(ls -d "${BUILD_DIR}"/build/qfp-*/build/)
- build_classifier="${build_dir##${BUILD_DIR}/build/qfp-}"
- build_classifier="${build_dir%%/build}"
-
# Otherwise it picks the last built directory breaking assumption for multi target builds
mkdir -p build_history/9999-99-99_999999/ || die
- cat <<- EOF > build_history/9999-99-99_999999/build_dir.txt || die
- ${build_dir}
- ${build_classifier}
- EOF
+ local pyside_build_dir=qfp-py${EPYTHON#python}-qt$(ver_cut 1-3)-${BUILD_ID}
+ echo "$(ls -d "${BUILD_DIR}"/build*/${pyside_build_dir}/build | sort -V | tail -n 1)" > build_history/9999-99-99_999999/build_dir.txt || die
+ echo "${pyside_build_dir}" >> build_history/9999-99-99_999999/build_dir.txt || die
virtx ${EPYTHON} testrunner.py test --projects=shiboken6 $(usev core '--projects=pyside6') ||
die "Tests failed with ${EPYTHON}"
diff --git a/dev-python/pyside/pyside-6.8.3.ebuild b/dev-python/pyside/pyside-6.8.3.ebuild
index 0cc05197aff0..5e583ba3e82d 100644
--- a/dev-python/pyside/pyside-6.8.3.ebuild
+++ b/dev-python/pyside/pyside-6.8.3.ebuild
@@ -30,7 +30,7 @@ if [[ ${PV} == *.9999 ]]; then
EGIT_BRANCH=dev
[[ ${PV} == 6.*.9999 ]] && EGIT_BRANCH=${PV%.9999}
else
- SRC_URI="https://download.qt.io/official_releases/QtForPython/${PN}6/PySide6-6.8.3-src/${MY_P}.tar.xz"
+ SRC_URI="https://download.qt.io/official_releases/QtForPython/${PN}6/PySide6-${PV}-src/${MY_P}.tar.xz"
S="${WORKDIR}/${MY_P}"
KEYWORDS="~amd64 ~arm ~arm64 ~loong ~ppc64 ~riscv ~x86"
fi
@@ -359,9 +359,15 @@ python_compile() {
--build-type=shiboken6
)
distutils-r1_python_compile
+
+ # The build system uses its own build dir, find the name of this dir.
+ local pyside_build_dir=$(find "${BUILD_DIR}/build$((${#DISTUTILS_WHEELS[@]}-1))" -maxdepth 1 -type d -name 'qfp-*' -printf "%f\n")
+ export BUILD_ID=${pyside_build_dir#qfp-py${EPYTHON#python}-qt$(ver_cut 1-3)-}
+
DISTUTILS_ARGS=(
"${MAIN_DISTUTILS_ARGS[@]}"
--reuse-build
+ --shiboken-target-path="${BUILD_DIR}/build$((${#DISTUTILS_WHEELS[@]}-1))/${pyside_build_dir}/install"
--build-type=shiboken6-generator
)
distutils-r1_python_compile
@@ -370,7 +376,7 @@ python_compile() {
DISTUTILS_ARGS=(
"${MAIN_DISTUTILS_ARGS[@]}"
--reuse-build
- --shiboken-target-path="$(find "${BUILD_DIR}/build" -type d -name cmake)/../../"
+ --shiboken-target-path="${BUILD_DIR}/build$((${#DISTUTILS_WHEELS[@]}-1))/${pyside_build_dir}/install"
--build-type=pyside6
)
distutils-r1_python_compile
@@ -424,7 +430,7 @@ python_compile() {
done
# Install misc files from inner install dir
- find "${BUILD_DIR}"/build/*/install -type f \
+ find "${BUILD_DIR}"/build*/${pyside_build_dir}/install -type f \
-name libPySidePlugin.so -exec \
mkdir -p "${BUILD_DIR}/install/$(qt6_get_plugindir)/designer/" \; \
-exec \
@@ -432,7 +438,7 @@ python_compile() {
|| die
for dir in cmake pkgconfig; do
- find "${BUILD_DIR}"/build/*/install -type d -name ${dir} \
+ find "${BUILD_DIR}"/build*/${pyside_build_dir}/install -type d -name ${dir} \
-exec cp -r "{}" "${BUILD_DIR}/install/usr/lib/" \; \
|| die
done
@@ -484,18 +490,11 @@ python_compile() {
}
python_test() {
- # figure out the build dir
- local build_dir build_classifier
- build_dir=$(ls -d "${BUILD_DIR}"/build/qfp-*/build/)
- build_classifier="${build_dir##${BUILD_DIR}/build/qfp-}"
- build_classifier="${build_dir%%/build}"
-
# Otherwise it picks the last built directory breaking assumption for multi target builds
mkdir -p build_history/9999-99-99_999999/ || die
- cat <<- EOF > build_history/9999-99-99_999999/build_dir.txt || die
- ${build_dir}
- ${build_classifier}
- EOF
+ local pyside_build_dir=qfp-py${EPYTHON#python}-qt$(ver_cut 1-3)-${BUILD_ID}
+ echo "$(ls -d "${BUILD_DIR}"/build*/${pyside_build_dir}/build | sort -V | tail -n 1)" > build_history/9999-99-99_999999/build_dir.txt || die
+ echo "${pyside_build_dir}" >> build_history/9999-99-99_999999/build_dir.txt || die
virtx ${EPYTHON} testrunner.py test --projects=shiboken6 $(usev core '--projects=pyside6') ||
die "Tests failed with ${EPYTHON}"
diff --git a/dev-python/pyside/pyside-6.9.0.ebuild b/dev-python/pyside/pyside-6.9.0.ebuild
new file mode 100644
index 000000000000..5e583ba3e82d
--- /dev/null
+++ b/dev-python/pyside/pyside-6.9.0.ebuild
@@ -0,0 +1,507 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+# NOTE: We combine here several PyPI packages, we do this because
+# pyside can and does break if it is compiled with a different
+# toolchain then was used to build shiboken. This bundling ensures
+# that we always use the same toolchain for all components.
+
+EAPI=8
+
+PYTHON_COMPAT=( python3_{10..13} )
+LLVM_COMPAT=( {16..20} )
+DISTUTILS_USE_PEP517=setuptools
+DISTUTILS_EXT=1
+
+inherit distutils-r1 llvm-r1 multiprocessing qmake-utils virtualx
+
+MY_PN=${PN}-setup-everywhere-src
+MY_P=${MY_PN}-${PV}
+
+DESCRIPTION="Python bindings for the Qt framework"
+HOMEPAGE="https://wiki.qt.io/PySide6"
+
+if [[ ${PV} == *.9999 ]]; then
+ inherit git-r3
+ EGIT_REPO_URI=(
+ "https://code.qt.io/${PN}/${PN}-setup.git"
+ "https://github.com/qtproject/${PN}-${PN}-setup.git"
+ )
+ EGIT_BRANCH=dev
+ [[ ${PV} == 6.*.9999 ]] && EGIT_BRANCH=${PV%.9999}
+else
+ SRC_URI="https://download.qt.io/official_releases/QtForPython/${PN}6/PySide6-${PV}-src/${MY_P}.tar.xz"
+ S="${WORKDIR}/${MY_P}"
+ KEYWORDS="~amd64 ~arm ~arm64 ~loong ~ppc64 ~riscv ~x86"
+fi
+
+LICENSE="|| ( GPL-2 GPL-3 LGPL-3 )"
+SLOT="6/${PV}"
+
+# If a flag enables multiple Qt modules, they should be ordered
+# according to their dependencies, e.g. for 3d, 3DCore must be first.
+# Widgets for various modules are handled as a special case later
+declare -A QT_MODULES=(
+ ["3d"]="3DCore 3DRender 3DLogic 3DInput 3DAnimation 3DExtras"
+ ["bluetooth"]="Bluetooth"
+ ["charts"]="Charts"
+ ["+concurrent"]="Concurrent"
+ ["+core"]="Core"
+ ["+dbus"]="DBus"
+ ["designer"]="Designer"
+ ["+gui"]="Gui"
+ ["help"]="Help"
+ ["httpserver"]="HttpServer"
+ ["location"]="Location"
+ ["multimedia"]="Multimedia" # plus widgets
+ ["network-auth"]="NetworkAuth"
+ ["+network"]="Network"
+ ["nfc"]="Nfc"
+ ["+opengl"]="OpenGL" # plus widgets
+ ["pdfium"]="Pdf" # plus widgets
+ ["positioning"]="Positioning"
+ ["+printsupport"]="PrintSupport"
+ ["qml"]="Qml"
+ ["quick3d"]="Quick3D"
+ ["quick"]="Quick" # plus widgets
+ ["remoteobjects"]="RemoteObjects"
+ ["scxml"]="Scxml"
+ ["sensors"]="Sensors"
+ ["serialbus"]="SerialBus"
+ ["serialport"]="SerialPort"
+ ["spatialaudio"]="SpatialAudio"
+ ["+sql"]="Sql"
+ ["svg"]="Svg" # plus widgets
+ ["speech"]="TextToSpeech"
+ ["+testlib"]="Test"
+ ["uitools"]="UiTools"
+ ["webchannel"]="WebChannel"
+ ["webengine"]="WebEngineCore" # plus widgets and quick
+ ["websockets"]="WebSockets"
+ ["webview"]="WebView"
+ ["+widgets"]="Widgets"
+ ["+xml"]="Xml"
+)
+
+# Manually reextract these requirements on version bumps by running the
+# following one-liner from within "${S}":
+# $ grep 'set.*_deps' PySide6/Qt*/CMakeLists.txt
+declare -A QT_REQUIREMENTS=(
+ ["3d"]="gui network opengl"
+ ["bluetooth"]="core"
+ ["charts"]="core gui widgets"
+ ["concurrent"]="core"
+ ["dbus"]="core"
+ ["designer"]="widgets"
+ ["gles2-only"]="gui"
+ ["gui"]="core"
+ ["help"]="widgets"
+ ["httpserver"]="core concurrent network websockets"
+ ["location"]="core positioning"
+ ["multimedia"]="core gui network"
+ ["network-auth"]="network"
+ ["network"]="core"
+ ["nfc"]="core"
+ ["opengl"]="gui"
+ ["pdfium"]="core gui network"
+ ["positioning"]="core"
+ ["printsupport"]="widgets"
+ ["qml"]="network"
+ ["quick"]="gui network qml opengl"
+ ["quick3d"]="gui network qml quick"
+ ["remoteobjects"]="core network"
+ ["scxml"]="core"
+ ["sensors"]="core"
+ ["serialbus"]="core network serialport"
+ ["serialport"]="core"
+ ["spatialaudio"]="core gui network multimedia"
+ ["speech"]="core multimedia"
+ ["sql"]="widgets"
+ ["svg"]="gui"
+ ["testlib"]="widgets"
+ ["uitools"]="widgets"
+ ["webchannel"]="core"
+ ["webengine"]="core gui network printsupport quick webchannel"
+ ["websockets"]="network"
+ ["webview"]="gui quick webengine"
+ ["widgets"]="gui"
+ ["xml"]="core"
+)
+
+IUSE="${!QT_MODULES[@]} debug doc gles2-only numpy test tools"
+RESTRICT="!test? ( test )"
+
+# majority of QtQml tests require QtQuick support
+REQUIRED_USE="
+ test? (
+ qml? ( quick )
+ )
+"
+for requirement in ${!QT_REQUIREMENTS[@]}; do
+ REQUIRED_USE+=" ${requirement}? ( ${QT_REQUIREMENTS[${requirement}]} ) "
+done
+
+# Minimal supported version of Qt.
+QT_PV="$(ver_cut 1-3)*:6"
+
+# WebEngine needs sound support, so enable either pulseaudio or alsa
+RDEPEND="
+ =dev-qt/qtbase-${QT_PV}[concurrent?,dbus?,gles2-only=,network?,opengl?,sql?,widgets?,xml?]
+ 3d? ( =dev-qt/qt3d-${QT_PV}[qml?,gles2-only=] )
+ bluetooth? ( =dev-qt/qtconnectivity-${QT_PV}[bluetooth] )
+ charts? ( =dev-qt/qtcharts-${QT_PV} )
+ designer? ( =dev-qt/qttools-${QT_PV}[designer,widgets,gles2-only=] )
+ gui? (
+ =dev-qt/qtbase-${QT_PV}[gui,jpeg(+)]
+ x11-libs/libxkbcommon
+ )
+ help? ( =dev-qt/qttools-${QT_PV}[assistant,gles2-only=] )
+ httpserver? ( =dev-qt/qthttpserver-${QT_PV} )
+ location? ( =dev-qt/qtlocation-${QT_PV} )
+ multimedia? ( =dev-qt/qtmultimedia-${QT_PV}[widgets(+)?] )
+ network? ( =dev-qt/qtbase-${QT_PV}[ssl] )
+ network-auth? ( =dev-qt/qtnetworkauth-${QT_PV} )
+ nfc? ( =dev-qt/qtconnectivity-${QT_PV}[nfc] )
+ numpy? ( >=dev-python/numpy-2.1.3[${PYTHON_USEDEP}] )
+ pdfium? ( =dev-qt/qtwebengine-${QT_PV}[pdfium(-),widgets?] )
+ positioning? ( =dev-qt/qtpositioning-${QT_PV} )
+ printsupport? ( =dev-qt/qtbase-${QT_PV}[gui,widgets] )
+ qml? ( =dev-qt/qtdeclarative-${QT_PV}[opengl?,widgets?] )
+ quick3d? ( =dev-qt/qtquick3d-${QT_PV}[opengl?] )
+ remoteobjects? ( =dev-qt/qtremoteobjects-${QT_PV} )
+ scxml? ( =dev-qt/qtscxml-${QT_PV} )
+ sensors? ( =dev-qt/qtsensors-${QT_PV}[qml?] )
+ speech? ( =dev-qt/qtspeech-${QT_PV} )
+ serialbus? ( =dev-qt/qtserialbus-${QT_PV} )
+ serialport? ( =dev-qt/qtserialport-${QT_PV} )
+ svg? ( =dev-qt/qtsvg-${QT_PV} )
+ testlib? ( =dev-qt/qtbase-${QT_PV}[gui] )
+ tools? (
+ =dev-qt/qtbase-${QT_PV}
+ =dev-qt/qtdeclarative-${QT_PV}[qmlls]
+ =dev-qt/qttools-${QT_PV}[assistant,designer,linguist]
+ dev-python/pkginfo[${PYTHON_USEDEP}]
+ )
+ uitools? ( =dev-qt/qttools-${QT_PV}[gles2-only=,widgets] )
+ webchannel? ( =dev-qt/qtwebchannel-${QT_PV} )
+ webengine? ( || (
+ =dev-qt/qtwebengine-${QT_PV}[alsa,widgets?]
+ =dev-qt/qtwebengine-${QT_PV}[pulseaudio,widgets?]
+ )
+ )
+ websockets? ( =dev-qt/qtwebsockets-${QT_PV} )
+ webview? ( =dev-qt/qtwebview-${QT_PV} )
+ !dev-python/pyside:0
+ !dev-python/shiboken6
+ !dev-python/pyside6-tools
+"
+
+DEPEND="${RDEPEND}
+ $(llvm_gen_dep '
+ llvm-core/clang:${LLVM_SLOT}
+ llvm-core/llvm:${LLVM_SLOT}
+ ')
+ dev-util/vulkan-headers
+ test? ( =dev-qt/qtbase-${QT_PV}[gui] )
+" # testlib is toggled by the gui flag on qtbase
+
+BDEPEND="
+ dev-build/cmake
+ dev-python/distro[${PYTHON_USEDEP}]
+ dev-util/patchelf
+ doc? (
+ >=dev-libs/libxml2-2.6.32
+ >=dev-libs/libxslt-1.1.19
+ media-gfx/graphviz
+ dev-python/sphinx[${PYTHON_USEDEP}]
+ dev-python/myst-parser[${PYTHON_USEDEP}]
+ )
+ numpy? ( dev-python/numpy[${PYTHON_USEDEP}] )
+"
+
+PATCHES=(
+ # Needs porting to newer wheel and setuptools
+ "${FILESDIR}/${PN}-6.8.2-quick-fix-build-wheel.patch"
+)
+
+# Build system duplicates system libraries. TODO: fix
+QA_PREBUILT=(
+ "/usr/lib/python*/site-packages/PySide6/*"
+)
+
+python_prepare_all() {
+ distutils-r1_python_prepare_all
+
+ # Shiboken6 assumes Vulkan headers live under either "$VULKAN_SDK/include"
+ # or "$VK_SDK_PATH/include" rather than "${EPREFIX}/usr/include/vulkan".
+ sed -i -e "s~\bdetectVulkan(&headerPaths);~headerPaths.append(HeaderPath{QByteArrayLiteral(\"${EPREFIX}/usr/include/vulkan\"), HeaderType::System});~" \
+ sources/shiboken6/ApiExtractor/clangparser/compilersupport.cpp || die
+
+ # Shiboken6 assumes the "/usr/lib/clang/${CLANG_NEWEST_VERSION}/include/"
+ # subdirectory provides Clang builtin includes (e.g., "stddef.h") for the
+ # currently installed version of Clang, where ${CLANG_NEWEST_VERSION} is
+ # the largest version specifier that exists under the "/usr/lib/clang/"
+ # subdirectory. This assumption is false in edge cases, including when
+ # users downgrade from newer Clang versions but fail to remove those
+ # versions with "emerge --depclean". See also:
+ # https://github.com/leycec/raiagent/issues/85
+ #
+ # Sadly, the clang-* family of functions exported by the "toolchain-funcs"
+ # eclass are defective, returning nonsensical placeholder strings if the
+ # end user has *NOT* explicitly configured their C++ compiler to be Clang.
+ # PySide6 does *NOT* care whether the end user has done so or not, as
+ # PySide6 unconditionally requires Clang in either case. See also:
+ # https://bugs.gentoo.org/619490
+ sed -e \
+ 's~(findClangBuiltInIncludesDir())~(QStringLiteral("'"${EPREFIX}"'/usr/lib/clang/'"${LLVM_SLOT}"'/include"))~' \
+ -i sources/shiboken6/ApiExtractor/clangparser/compilersupport.cpp || die
+
+ # blacklist.txt works like XFAIL
+ cat <<- EOF >> build_history/blacklist.txt || die
+ # segfaults with QOpenGLContext::create
+ [pysidetest::qapp_like_a_macro_test]
+ linux
+ # Tries to execute pip install
+ [pyside6-deploy::test_pyside6_deploy]
+ linux
+ [pyside6-android-deploy::test_pyside6_android_deploy]
+ linux
+ EOF
+
+ if ! use numpy; then
+ cat <<- EOF >> build_history/blacklist.txt || die
+ # Requires numpy support to pass
+ [sample::array_numpy]
+ linux
+ [sample::nontypetemplate]
+ linux
+ [QtGui::qpainter_test]
+ linux
+ EOF
+ fi
+}
+
+python_configure_all() {
+ ENABLED_QT_MODULES=()
+
+ # The order matters, dependencies must come first so process
+ # REQUIRED_USE and recursively enable modules
+ enable_qt_mod() {
+ local flag=${1}
+ local modules=${QT_MODULES[${flag}]}
+ if [[ -z ${modules} ]]; then
+ die "incorrect flag=${flag}, not registered"
+ fi
+ local dependencies=${QT_REQUIREMENTS[${flag//+}]}
+ if [[ -n ${dependencies} ]]; then
+ local depflag
+ for depflag in ${dependencies}; do
+ if use ${depflag}; then
+ if [[ -z ${QT_MODULES[${depflag}]} ]]; then
+ depflag=+${depflag}
+ fi
+ enable_qt_mod ${depflag}
+ else
+ die "${depflag} is required but not enabled"
+ fi
+ done
+ fi
+ if [[ "${ENABLED_QT_MODULES[*]}" != *${modules}* ]]; then
+ ENABLED_QT_MODULES+=( ${modules} )
+ fi
+ }
+ # Enable specified qt modules
+ local flag
+ for flag in ${!QT_MODULES[@]}; do
+ if use ${flag//+}; then
+ enable_qt_mod ${flag}
+ fi
+ done
+
+ # Special cases
+ if use widgets; then
+ use multimedia && ENABLED_QT_MODULES+=( MultimediaWidgets )
+ use opengl && ENABLED_QT_MODULES+=( OpenGLWidgets )
+ use pdfium && ENABLED_QT_MODULES+=( PdfWidgets )
+ use quick && ENABLED_QT_MODULES+=( QuickWidgets )
+ use svg && ENABLED_QT_MODULES+=( SvgWidgets )
+ use webengine && ENABLED_QT_MODULES+=( WebEngineWidgets )
+ fi
+ if use quick; then
+ use webengine && ENABLED_QT_MODULES+=( WebEngineQuick )
+ use testlib && ENABLED_QT_MODULES+=( QuickTest )
+ fi
+
+ # Arguments listed in options.py
+ MAIN_DISTUTILS_ARGS=(
+ --cmake="${EPREFIX}/usr/bin/cmake"
+ --ignore-git
+ --limited-api=no
+ --module-subset="$(printf '%s,' "${ENABLED_QT_MODULES[@]}")"
+ --no-strip
+ --no-size-optimization
+ --openssl="${EPREFIX}/usr/bin/openssl"
+ --qt=$(ver_cut 1-3)
+ --qtpaths=$(qt6_get_bindir)/qtpaths
+ --verbose-build
+ --parallel=$(makeopts_jobs)
+ $(usex debug "--debug" "--relwithdebinfo")
+ $(usex doc "--build-docs" "--skip-docs")
+ $(usex numpy "--enable-numpy-support" "--disable-numpy-support")
+ $(usex test "--build-tests --use-xvfb" "")
+ $(usex tools "" "--no-qt-tools")
+ )
+}
+
+python_compile() {
+ DISTUTILS_ARGS=(
+ "${MAIN_DISTUTILS_ARGS[@]}"
+ --build-type=shiboken6
+ )
+ distutils-r1_python_compile
+
+ # The build system uses its own build dir, find the name of this dir.
+ local pyside_build_dir=$(find "${BUILD_DIR}/build$((${#DISTUTILS_WHEELS[@]}-1))" -maxdepth 1 -type d -name 'qfp-*' -printf "%f\n")
+ export BUILD_ID=${pyside_build_dir#qfp-py${EPYTHON#python}-qt$(ver_cut 1-3)-}
+
+ DISTUTILS_ARGS=(
+ "${MAIN_DISTUTILS_ARGS[@]}"
+ --reuse-build
+ --shiboken-target-path="${BUILD_DIR}/build$((${#DISTUTILS_WHEELS[@]}-1))/${pyside_build_dir}/install"
+ --build-type=shiboken6-generator
+ )
+ distutils-r1_python_compile
+ # If no pyside modules enabled, build just shiboken
+ if [[ ${#ENABLED_QT_MODULES[@]} -gt 0 ]]; then
+ DISTUTILS_ARGS=(
+ "${MAIN_DISTUTILS_ARGS[@]}"
+ --reuse-build
+ --shiboken-target-path="${BUILD_DIR}/build$((${#DISTUTILS_WHEELS[@]}-1))/${pyside_build_dir}/install"
+ --build-type=pyside6
+ )
+ distutils-r1_python_compile
+ fi
+
+ # Link libraries to the usual location for backwards compatibility
+ pushd "${BUILD_DIR}/install/$(python_get_sitedir)" >/dev/null ||
+ die
+ mkdir -p "${BUILD_DIR}/install/usr/$(get_libdir)" || die
+ local lib
+ for lib in */*.cpython-*.so
+ do
+ local base=${lib##*/}
+ ln -s "${base}" "${lib%/*}/${base%%.*}-${EPYTHON}.so" ||
+ die
+ done
+ for lib in */*.cpython-*.so.$(ver_cut 1-2)
+ do
+ local base=${lib##*/}
+ ln -s "${base}" "${lib%/*}/${base%%.*}-${EPYTHON}.so.$(ver_cut 1-2)" ||
+ die
+ done
+ for lib in */*.so*; do
+ ln -s "../../$(python_get_sitedir)/${lib}" \
+ "${BUILD_DIR}/install/usr/$(get_libdir)/${lib#*/}" || die
+ done
+ popd >/dev/null || die
+
+ # Symlinks for compatibility with pypi wheels
+ local dir
+ if [[ -d ${BUILD_DIR}/install/$(python_get_sitedir)/PySide6 ]]
+ then
+ pushd "${BUILD_DIR}/install/$(python_get_sitedir)/PySide6" \
+ >/dev/null || die
+ mkdir -p "${BUILD_DIR}/install/usr/share/PySide6" || die
+ for dir in doc glue typesystems; do
+ ln -s "../../../$(python_get_sitedir)/PySide6/${dir}" \
+ "${BUILD_DIR}/install/usr/share/PySide6/${dir}" ||
+ die
+ done
+ popd >/dev/null || die
+ fi
+ mkdir -p "${BUILD_DIR}/install/usr/include"
+ for dir in PySide6 shiboken6_generator; do
+ if [[ -d ${BUILD_DIR}/install/$(python_get_sitedir)/${dir}/include ]]
+ then
+ ln -s "../../$(python_get_sitedir)/${dir}/include" \
+ "${BUILD_DIR}/install/usr/include/${dir//_generator}" ||
+ die
+ fi
+ done
+
+ # Install misc files from inner install dir
+ find "${BUILD_DIR}"/build*/${pyside_build_dir}/install -type f \
+ -name libPySidePlugin.so -exec \
+ mkdir -p "${BUILD_DIR}/install/$(qt6_get_plugindir)/designer/" \; \
+ -exec \
+ cp "{}" "${BUILD_DIR}/install/$(qt6_get_plugindir)/designer/" \; \
+ || die
+
+ for dir in cmake pkgconfig; do
+ find "${BUILD_DIR}"/build*/${pyside_build_dir}/install -type d -name ${dir} \
+ -exec cp -r "{}" "${BUILD_DIR}/install/usr/lib/" \; \
+ || die
+ done
+
+ # Uniquify the pkgconfigs file for the current Python target,
+ # preserving an unversioned "shiboken6.pc" file arbitrarily
+ # associated with the last Python target.
+ if [[ -f ${BUILD_DIR}/install/usr/lib/pkgconfig/shiboken6.pc ]]
+ then
+ sed -e 's~prefix=.*~prefix=/usr~g' \
+ -e 's~exec_prefix=.*~exec_prefix=${prefix}~g' \
+ -e "s~libdir=.*~libdir=$(python_get_sitedir)/shiboken6~g" \
+ -e "s~includedir=.*~includedir=$(python_get_sitedir)/shiboken6_generator/include~g" \
+ -i "${BUILD_DIR}/install/usr/lib/pkgconfig/shiboken6.pc" || die
+ cp "${BUILD_DIR}/install/usr/lib/pkgconfig/"shiboken6{,-${EPYTHON}}.pc || die
+ fi
+ if [[ -f ${BUILD_DIR}/install/usr/lib/pkgconfig/pyside6.pc ]]
+ then
+ sed -e 's~^Requires: shiboken6$~&-'${EPYTHON}'~' \
+ -e 's~prefix=.*~prefix=/usr~g' \
+ -e 's~exec_prefix=.*~exec_prefix=${prefix}~g' \
+ -e "s~libdir=.*~libdir=$(python_get_sitedir)/PySide6~g" \
+ -e "s~includedir=.*~includedir=$(python_get_sitedir)/PySide6/include~g" \
+ -e "s~typesystemdir=.*~typesystemdir=$(python_get_sitedir)/PySide6/typesystems~g" \
+ -e "s~gluedir=.*~gluedir=$(python_get_sitedir)/PySide6/glue~g" \
+ -e "s~pythonpath=.*~pythonpath=$(python_get_sitedir)~g" \
+ -i "${BUILD_DIR}/install/usr/lib/pkgconfig/pyside6.pc" || die
+ cp "${BUILD_DIR}/install/usr/lib/pkgconfig/"pyside6{,-${EPYTHON}}.pc || die
+ fi
+
+ sed \
+ -e "s~/lib/libshiboken6\.cpython~/$(get_libdir)/libshiboken6\.cpython~g" \
+ -e "s~/lib/libpyside6\.cpython~/$(get_libdir)/libpyside6\.cpython~g" \
+ -e "s~/lib/libpyside6qml\.cpython~/$(get_libdir)/libpyside6qml\.cpython~g" \
+ -e "s~libshiboken6\.cpython.*\.so\.$(ver_cut 1-3)~libshiboken6\${PYTHON_CONFIG_SUFFIX}\.so\.$(ver_cut 1-2)~g" \
+ -e "s~libpyside6\.cpython.*\.so\.$(ver_cut 1-3)~libpyside6\${PYTHON_CONFIG_SUFFIX}\.so\.$(ver_cut 1-2)~g" \
+ -e "s~libpyside6qml\.cpython.*\.so\.$(ver_cut 1-3)~libpyside6qml\${PYTHON_CONFIG_SUFFIX}\.so\.$(ver_cut 1-2)~g" \
+ -e "s~libshiboken6\.cpython.*\.so\.$(ver_cut 1-2)~libshiboken6\${PYTHON_CONFIG_SUFFIX}\.so\.$(ver_cut 1-2)~g" \
+ -e "s~libpyside6\.cpython.*\.so\.$(ver_cut 1-2)~libpyside6\${PYTHON_CONFIG_SUFFIX}\.so\.$(ver_cut 1-2)~g" \
+ -e "s~libpyside6qml\.cpython.*\.so\.$(ver_cut 1-2)~libpyside6qml\${PYTHON_CONFIG_SUFFIX}\.so\.$(ver_cut 1-2)~g" \
+ -i "${BUILD_DIR}/install/usr/lib/cmake/"*/*.cmake || die
+ local file
+ for file in "${BUILD_DIR}/install/usr/lib/cmake/"*/*.cpython-*.cmake
+ do
+ local base=${file##*/}
+ ln -s "${base}" "${file%/*}/${base%%.*}-${EPYTHON}.cmake" ||
+ die
+ done
+}
+
+python_test() {
+ # Otherwise it picks the last built directory breaking assumption for multi target builds
+ mkdir -p build_history/9999-99-99_999999/ || die
+ local pyside_build_dir=qfp-py${EPYTHON#python}-qt$(ver_cut 1-3)-${BUILD_ID}
+ echo "$(ls -d "${BUILD_DIR}"/build*/${pyside_build_dir}/build | sort -V | tail -n 1)" > build_history/9999-99-99_999999/build_dir.txt || die
+ echo "${pyside_build_dir}" >> build_history/9999-99-99_999999/build_dir.txt || die
+
+ virtx ${EPYTHON} testrunner.py test --projects=shiboken6 $(usev core '--projects=pyside6') ||
+ die "Tests failed with ${EPYTHON}"
+}
+
+pkg_preinst() {
+ # Avoid symlinks being blocked by directories
+ rm -rf "${EROOT}/usr/include/"{PySide6,shiboken6} || die
+ rm -rf "${EROOT}/usr/share/PySide6" || die
+}
diff --git a/dev-python/pyside/pyside-6.9.9999.ebuild b/dev-python/pyside/pyside-6.9.9999.ebuild
index 0cc05197aff0..5e583ba3e82d 100644
--- a/dev-python/pyside/pyside-6.9.9999.ebuild
+++ b/dev-python/pyside/pyside-6.9.9999.ebuild
@@ -30,7 +30,7 @@ if [[ ${PV} == *.9999 ]]; then
EGIT_BRANCH=dev
[[ ${PV} == 6.*.9999 ]] && EGIT_BRANCH=${PV%.9999}
else
- SRC_URI="https://download.qt.io/official_releases/QtForPython/${PN}6/PySide6-6.8.3-src/${MY_P}.tar.xz"
+ SRC_URI="https://download.qt.io/official_releases/QtForPython/${PN}6/PySide6-${PV}-src/${MY_P}.tar.xz"
S="${WORKDIR}/${MY_P}"
KEYWORDS="~amd64 ~arm ~arm64 ~loong ~ppc64 ~riscv ~x86"
fi
@@ -359,9 +359,15 @@ python_compile() {
--build-type=shiboken6
)
distutils-r1_python_compile
+
+ # The build system uses its own build dir, find the name of this dir.
+ local pyside_build_dir=$(find "${BUILD_DIR}/build$((${#DISTUTILS_WHEELS[@]}-1))" -maxdepth 1 -type d -name 'qfp-*' -printf "%f\n")
+ export BUILD_ID=${pyside_build_dir#qfp-py${EPYTHON#python}-qt$(ver_cut 1-3)-}
+
DISTUTILS_ARGS=(
"${MAIN_DISTUTILS_ARGS[@]}"
--reuse-build
+ --shiboken-target-path="${BUILD_DIR}/build$((${#DISTUTILS_WHEELS[@]}-1))/${pyside_build_dir}/install"
--build-type=shiboken6-generator
)
distutils-r1_python_compile
@@ -370,7 +376,7 @@ python_compile() {
DISTUTILS_ARGS=(
"${MAIN_DISTUTILS_ARGS[@]}"
--reuse-build
- --shiboken-target-path="$(find "${BUILD_DIR}/build" -type d -name cmake)/../../"
+ --shiboken-target-path="${BUILD_DIR}/build$((${#DISTUTILS_WHEELS[@]}-1))/${pyside_build_dir}/install"
--build-type=pyside6
)
distutils-r1_python_compile
@@ -424,7 +430,7 @@ python_compile() {
done
# Install misc files from inner install dir
- find "${BUILD_DIR}"/build/*/install -type f \
+ find "${BUILD_DIR}"/build*/${pyside_build_dir}/install -type f \
-name libPySidePlugin.so -exec \
mkdir -p "${BUILD_DIR}/install/$(qt6_get_plugindir)/designer/" \; \
-exec \
@@ -432,7 +438,7 @@ python_compile() {
|| die
for dir in cmake pkgconfig; do
- find "${BUILD_DIR}"/build/*/install -type d -name ${dir} \
+ find "${BUILD_DIR}"/build*/${pyside_build_dir}/install -type d -name ${dir} \
-exec cp -r "{}" "${BUILD_DIR}/install/usr/lib/" \; \
|| die
done
@@ -484,18 +490,11 @@ python_compile() {
}
python_test() {
- # figure out the build dir
- local build_dir build_classifier
- build_dir=$(ls -d "${BUILD_DIR}"/build/qfp-*/build/)
- build_classifier="${build_dir##${BUILD_DIR}/build/qfp-}"
- build_classifier="${build_dir%%/build}"
-
# Otherwise it picks the last built directory breaking assumption for multi target builds
mkdir -p build_history/9999-99-99_999999/ || die
- cat <<- EOF > build_history/9999-99-99_999999/build_dir.txt || die
- ${build_dir}
- ${build_classifier}
- EOF
+ local pyside_build_dir=qfp-py${EPYTHON#python}-qt$(ver_cut 1-3)-${BUILD_ID}
+ echo "$(ls -d "${BUILD_DIR}"/build*/${pyside_build_dir}/build | sort -V | tail -n 1)" > build_history/9999-99-99_999999/build_dir.txt || die
+ echo "${pyside_build_dir}" >> build_history/9999-99-99_999999/build_dir.txt || die
virtx ${EPYTHON} testrunner.py test --projects=shiboken6 $(usev core '--projects=pyside6') ||
die "Tests failed with ${EPYTHON}"
diff --git a/dev-python/pyside/pyside-6.9999.ebuild b/dev-python/pyside/pyside-6.9999.ebuild
index 0cc05197aff0..5e583ba3e82d 100644
--- a/dev-python/pyside/pyside-6.9999.ebuild
+++ b/dev-python/pyside/pyside-6.9999.ebuild
@@ -30,7 +30,7 @@ if [[ ${PV} == *.9999 ]]; then
EGIT_BRANCH=dev
[[ ${PV} == 6.*.9999 ]] && EGIT_BRANCH=${PV%.9999}
else
- SRC_URI="https://download.qt.io/official_releases/QtForPython/${PN}6/PySide6-6.8.3-src/${MY_P}.tar.xz"
+ SRC_URI="https://download.qt.io/official_releases/QtForPython/${PN}6/PySide6-${PV}-src/${MY_P}.tar.xz"
S="${WORKDIR}/${MY_P}"
KEYWORDS="~amd64 ~arm ~arm64 ~loong ~ppc64 ~riscv ~x86"
fi
@@ -359,9 +359,15 @@ python_compile() {
--build-type=shiboken6
)
distutils-r1_python_compile
+
+ # The build system uses its own build dir, find the name of this dir.
+ local pyside_build_dir=$(find "${BUILD_DIR}/build$((${#DISTUTILS_WHEELS[@]}-1))" -maxdepth 1 -type d -name 'qfp-*' -printf "%f\n")
+ export BUILD_ID=${pyside_build_dir#qfp-py${EPYTHON#python}-qt$(ver_cut 1-3)-}
+
DISTUTILS_ARGS=(
"${MAIN_DISTUTILS_ARGS[@]}"
--reuse-build
+ --shiboken-target-path="${BUILD_DIR}/build$((${#DISTUTILS_WHEELS[@]}-1))/${pyside_build_dir}/install"
--build-type=shiboken6-generator
)
distutils-r1_python_compile
@@ -370,7 +376,7 @@ python_compile() {
DISTUTILS_ARGS=(
"${MAIN_DISTUTILS_ARGS[@]}"
--reuse-build
- --shiboken-target-path="$(find "${BUILD_DIR}/build" -type d -name cmake)/../../"
+ --shiboken-target-path="${BUILD_DIR}/build$((${#DISTUTILS_WHEELS[@]}-1))/${pyside_build_dir}/install"
--build-type=pyside6
)
distutils-r1_python_compile
@@ -424,7 +430,7 @@ python_compile() {
done
# Install misc files from inner install dir
- find "${BUILD_DIR}"/build/*/install -type f \
+ find "${BUILD_DIR}"/build*/${pyside_build_dir}/install -type f \
-name libPySidePlugin.so -exec \
mkdir -p "${BUILD_DIR}/install/$(qt6_get_plugindir)/designer/" \; \
-exec \
@@ -432,7 +438,7 @@ python_compile() {
|| die
for dir in cmake pkgconfig; do
- find "${BUILD_DIR}"/build/*/install -type d -name ${dir} \
+ find "${BUILD_DIR}"/build*/${pyside_build_dir}/install -type d -name ${dir} \
-exec cp -r "{}" "${BUILD_DIR}/install/usr/lib/" \; \
|| die
done
@@ -484,18 +490,11 @@ python_compile() {
}
python_test() {
- # figure out the build dir
- local build_dir build_classifier
- build_dir=$(ls -d "${BUILD_DIR}"/build/qfp-*/build/)
- build_classifier="${build_dir##${BUILD_DIR}/build/qfp-}"
- build_classifier="${build_dir%%/build}"
-
# Otherwise it picks the last built directory breaking assumption for multi target builds
mkdir -p build_history/9999-99-99_999999/ || die
- cat <<- EOF > build_history/9999-99-99_999999/build_dir.txt || die
- ${build_dir}
- ${build_classifier}
- EOF
+ local pyside_build_dir=qfp-py${EPYTHON#python}-qt$(ver_cut 1-3)-${BUILD_ID}
+ echo "$(ls -d "${BUILD_DIR}"/build*/${pyside_build_dir}/build | sort -V | tail -n 1)" > build_history/9999-99-99_999999/build_dir.txt || die
+ echo "${pyside_build_dir}" >> build_history/9999-99-99_999999/build_dir.txt || die
virtx ${EPYTHON} testrunner.py test --projects=shiboken6 $(usev core '--projects=pyside6') ||
die "Tests failed with ${EPYTHON}"
diff --git a/dev-python/pytest-check/Manifest b/dev-python/pytest-check/Manifest
index 0c4b7f07b189..6c669254216b 100644
--- a/dev-python/pytest-check/Manifest
+++ b/dev-python/pytest-check/Manifest
@@ -1,7 +1,9 @@
DIST pytest_check-2.5.0.tar.gz 26844 BLAKE2B 3428071078f9a15ae33937be56957c537c4c98344cb3a5cda798f71caa6bd99e067113af64f548380c949bf6a79202db84e98da16f861d73ad23053a3ea2ec05 SHA512 0a3738f67f1a8467504919d5289398811af8b6bbacef81e27942ce467d3d9e373f2ec9497e4f1794ead2e3f8f9552da538c2472236b9c882cfd2ee3822c50d39
DIST pytest_check-2.5.1.tar.gz 26889 BLAKE2B 3922c81743a9065860a40501b07c258005a128f8377a7060032fb20cb06dbfba9567211ee51e05a3776384d3b3b7f2612353c724c5412b41cc7405f826364916 SHA512 5407f88036d47d88e41da369400209191dda5f3814c4c964056d1bb561931d212068f11844fc382a1e42821ca850baa483420741c44b2e1574370453305085d9
DIST pytest_check-2.5.2.tar.gz 27363 BLAKE2B a4bc4547a4867132c513972771c4d4c6d10347f3eaf541bede31ba4c3900545629be93cf45d67e0d09b61e978aefc9feeb0b52a75c8db2a5f607b154ed56898d SHA512 cb4e7d265be4aee100a893196578736d4fd66e12b6ea49b03213c47f9fa93f19509dddaaa3229fe2a73d8b3fa61fed373113ba67e43092fc6ea82fbb5bb0e320
+DIST pytest_check-2.5.3.tar.gz 27422 BLAKE2B 74f34c31beccdee3afa6f04dd26bbd167935df20ca106698eb29630dab5aa7f75f36bd2f333d72e339985e8123b0d2f2a5033bee1239a8b42825175fd781e50f SHA512 42012648272299272ced14f314a3e9d0ac634b3e65da8dcd4f7c3287d7416066ca07ad908d36eb353fba75f3f47dab58cf59d0aa7bc94e6b59ead4f71f62339b
EBUILD pytest-check-2.5.0.ebuild 658 BLAKE2B c83d6b3014614325412cfcc431386b229b24b802a685c2cee2bfd1b15736595925777af2b9e9a3d9501e33d6807e753189b1b9cbf4eb1441da02ab9c035e7e41 SHA512 5a0aae31fec8dcacf04b8aae1ed690723742eb44d03c3927610bba28bdab0d82c2e13ed56ab67ff763542d2f504c015f7fcd458d5419b6cbaceaf72b17f00404
EBUILD pytest-check-2.5.1.ebuild 665 BLAKE2B 9eabd9e382589b95a7c8f81e54c1b381cf61bceafa2461222b9ad7e449aa4e181ddb2cf58b38369f7a8d44470ed2ba8dae36b82e564db9a4c65d4394987caf25 SHA512 037ea9e3ea4d7f8ceb82f8bb311ed5c69b96711487028431eac636a3dbf0b791fb305716b4a2d20217f1e80d40b8784422370f62c2c1093a392cff1fca5ad094
EBUILD pytest-check-2.5.2.ebuild 665 BLAKE2B 9eabd9e382589b95a7c8f81e54c1b381cf61bceafa2461222b9ad7e449aa4e181ddb2cf58b38369f7a8d44470ed2ba8dae36b82e564db9a4c65d4394987caf25 SHA512 037ea9e3ea4d7f8ceb82f8bb311ed5c69b96711487028431eac636a3dbf0b791fb305716b4a2d20217f1e80d40b8784422370f62c2c1093a392cff1fca5ad094
+EBUILD pytest-check-2.5.3.ebuild 665 BLAKE2B 9eabd9e382589b95a7c8f81e54c1b381cf61bceafa2461222b9ad7e449aa4e181ddb2cf58b38369f7a8d44470ed2ba8dae36b82e564db9a4c65d4394987caf25 SHA512 037ea9e3ea4d7f8ceb82f8bb311ed5c69b96711487028431eac636a3dbf0b791fb305716b4a2d20217f1e80d40b8784422370f62c2c1093a392cff1fca5ad094
MISC metadata.xml 509 BLAKE2B 85ec27b195520ffaf65e8f9a0fe166f0ba07aa22bb8981d558f96d2d89cb00441478eacc47a482bf2243d26b015ff42a1058c2e90a58d7cfbb20bc521b5722f5 SHA512 8d9082c66dde73cd751e3b42fc08ddd3c1815f6a7882d1b659972e5fff64506de79265df97161d63f05e3106c818b0155c2c3e21c861a44d330ff57506bd64a3
diff --git a/dev-python/pytest-check/pytest-check-2.5.3.ebuild b/dev-python/pytest-check/pytest-check-2.5.3.ebuild
new file mode 100644
index 000000000000..c0c5c022b5c4
--- /dev/null
+++ b/dev-python/pytest-check/pytest-check-2.5.3.ebuild
@@ -0,0 +1,28 @@
+# Copyright 2021-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=hatchling
+PYTHON_COMPAT=( python3_{10..13} )
+
+inherit distutils-r1 pypi
+
+DESCRIPTION="pytest plugin that allows multiple failures per test"
+HOMEPAGE="
+ https://github.com/okken/pytest-check/
+ https://pypi.org/project/pytest-check/
+"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
+
+RDEPEND="
+ >=dev-python/pytest-7.0.0[${PYTHON_USEDEP}]
+ $(python_gen_cond_dep '
+ >=dev-python/typing-extensions-4.12.2[${PYTHON_USEDEP}]
+ ' 3.10)
+"
+
+distutils_enable_tests pytest