From cc420fb8bdbc37a0c10b7dc2e02928bcd840147a Mon Sep 17 00:00:00 2001 From: V3n3RiX Date: Tue, 5 Mar 2024 19:06:10 +0000 Subject: gentoo auto-resync : 05:03:2024 - 19:06:10 --- dev-python/pyotherside/Manifest | 4 +- .../files/pyotherside-1.6.0-qt6.5.patch | 34 +++++++ dev-python/pyotherside/pyotherside-1.6.0-r1.ebuild | 106 +++++++++++++++++++++ dev-python/pyotherside/pyotherside-1.6.0.ebuild | 15 +-- 4 files changed, 152 insertions(+), 7 deletions(-) create mode 100644 dev-python/pyotherside/files/pyotherside-1.6.0-qt6.5.patch create mode 100644 dev-python/pyotherside/pyotherside-1.6.0-r1.ebuild (limited to 'dev-python/pyotherside') diff --git a/dev-python/pyotherside/Manifest b/dev-python/pyotherside/Manifest index 139447fb794b..439546fba549 100644 --- a/dev-python/pyotherside/Manifest +++ b/dev-python/pyotherside/Manifest @@ -1,3 +1,5 @@ +AUX pyotherside-1.6.0-qt6.5.patch 1745 BLAKE2B ed4b87ad3379b9a24534c44bf34e8b94f6aa14a90551cbfee8ee7bcc3ca15ff2e9a3e29b5de83567071132c4a56fdae99939b9c7e581a1516d5716927a660cb2 SHA512 2f214a6475742d205ef641495fc52857ff56fed056fce7e7b7303c3b00371d419de1472592c3da1f4d40889d7871840f2e0448548fdb54637070e70753d3e518 DIST pyotherside-1.6.0.tar.gz 183645 BLAKE2B e2a12a9a96f3672a5e322c9f2e84d485b8086bdcacfc6586e0c23f6dd730d3e66cea66618540fd9a304480a9ab86386e2fe0136047c59f70bfa3b5cff9e8e76e SHA512 57835db9d65fae10e6b3ec8ab37793e316324e7a819a1045436adf9eabdee11ccf3090a4db0302283b236e77e5e0bd14cf92ed1430835ccc324e50085a872787 -EBUILD pyotherside-1.6.0.ebuild 1262 BLAKE2B 2bff5a8d65ccfe2b214fc8382ba187cd17afb8cd2b42b03b21597e2169b3113e74c080cc0a9ae7e85ff57d888b127432f0361e99ca9e1b97f68cd3aebfa0feaf SHA512 13411b2916ca77f278643e68951a7f7becb61e59df16e472746aa821d216223bf5254d5e869d925e7d96f3fd3970aeba4cbf7da2c2fc4e5d0db9345ac696d72c +EBUILD pyotherside-1.6.0-r1.ebuild 1965 BLAKE2B 798b2305c0feeae69a9699dad74e2238ed6737ec40bf2409eaeee2e613a5b7a905ac915e3c6b13f9348f916405e3dfbe10ecd59865bf093f3ff3480f62319215 SHA512 9506d25c5faa9521ed5956a0173bc1823d738d007df31eb8eaf71c0cd7c069e92aa93ad709479877a49ff9422832a8e1c88b62edc5a243a228b4d4f8ac102729 +EBUILD pyotherside-1.6.0.ebuild 1303 BLAKE2B aabb06d23f6b2a81f83b7f365b233d7ec6197c60a397a8399c395a723a95106daa8ec2a3f044933fef452a9e99e0cd23b2d74c3ad0b98c2c332145251114013b SHA512 e04da50c62fde18ef9a082fd85118d03f3446afb8724f1c1727fc43d0a644d375c551b039ea5dd33a94888ac78f789233557deb683d6bee9ed65c5f30e6c3d4b MISC metadata.xml 326 BLAKE2B c323223e1038b40f67b25b1f13a4f5fec61175ef0b73bd3ec3a4228bb51b0a41e0f27ca2f47ec9f2b595e07a83358c74f254054d06b4488ff25d2a1c046899b4 SHA512 9d4649f09f1a00a9aa4a8eeb4e535ceff6b924253cd3ac93a8c0d1f6fe2a94c02a7f14f5b722b7b39744ab7331cd3efb57dc59bcb7ab6fb5ce59f692c0f2718a diff --git a/dev-python/pyotherside/files/pyotherside-1.6.0-qt6.5.patch b/dev-python/pyotherside/files/pyotherside-1.6.0-qt6.5.patch new file mode 100644 index 000000000000..08844cc8338d --- /dev/null +++ b/dev-python/pyotherside/files/pyotherside-1.6.0-qt6.5.patch @@ -0,0 +1,34 @@ +From 45044252aaf73262cd46443acd049e7afcdf072b Mon Sep 17 00:00:00 2001 +From: Thomas Perl +Date: Sat, 2 Dec 2023 18:46:06 +0100 +Subject: [PATCH] Fix build error with Qt >= 6.5 (fixes #128) + +--- a/src/qpython_priv.cpp ++++ b/src/qpython_priv.cpp +@@ -405,8 +405,25 @@ pyotherside_QObjectMethod_call(PyObject *callable_object, PyObject *args, PyObje + } + + QVariant result; ++#if QT_VERSION < QT_VERSION_CHECK(6, 5, 0) ++ QGenericReturnArgument returnArg = Q_RETURN_ARG(QVariant, result); ++#else ++ /** ++ * Starting with Qt 6.5, Q_RETURN_ARG() expands to a QMetaMethodReturnArgument, ++ * whereas previously it returned a QGenericReturnArgument. Since we are using ++ * the old, deprecated QMetaMethod::invoke() functions, and those take a ++ * QGenericReturnArgument and not a QMetaMethodReturnArgument, we need to ++ * create the QGenericReturnArgument ourselves by emulating what Q_RETURN_ARG() ++ * does in old Qt versions before 6.5. ++ * ++ * See also: ++ * https://bugreports.qt.io/browse/QTBUG-113147 ++ * https://github.com/thp/pyotherside/issues/128 ++ **/ ++ QGenericReturnArgument returnArg {QT_STRINGIFY(QVariant), &result}; ++#endif + if (method.invoke(o, Qt::DirectConnection, +- Q_RETURN_ARG(QVariant, result), genericArguments.value(0), ++ returnArg, genericArguments.value(0), + genericArguments.value(1), genericArguments.value(2), + genericArguments.value(3), genericArguments.value(4), + genericArguments.value(5), genericArguments.value(6), diff --git a/dev-python/pyotherside/pyotherside-1.6.0-r1.ebuild b/dev-python/pyotherside/pyotherside-1.6.0-r1.ebuild new file mode 100644 index 000000000000..44c3228186f8 --- /dev/null +++ b/dev-python/pyotherside/pyotherside-1.6.0-r1.ebuild @@ -0,0 +1,106 @@ +# Copyright 1999-2024 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +PYTHON_COMPAT=( python3_{10..12} ) + +inherit multibuild qmake-utils python-single-r1 + +DESCRIPTION="Asynchronous Python 3 Bindings for Qt" +HOMEPAGE="https://github.com/thp/pyotherside https://thp.io/2011/pyotherside/" +SRC_URI="https://github.com/thp/${PN}/archive/${PV}.tar.gz -> ${P}.tar.gz" + +LICENSE="ISC" +SLOT="0" +KEYWORDS="~amd64 ~arm64 ~ppc64 ~riscv" +IUSE="qt5 qt6" + +REQUIRED_USE="${PYTHON_REQUIRED_USE} + || ( qt5 qt6 )" + +RDEPEND=" + ${PYTHON_DEPS} + qt5? ( + dev-qt/qtcore:5 + dev-qt/qtdeclarative:5 + dev-qt/qtgui:5 + dev-qt/qtopengl:5 + dev-qt/qtsvg:5 + ) + qt6? ( + dev-qt/qtbase:6[opengl] + dev-qt/qtdeclarative:6[opengl] + dev-qt/qtquick3d:6[opengl] + dev-qt/qtsvg:6 + )" +DEPEND="${RDEPEND}" + +PATCHES=( + "${FILESDIR}"/${PN}-1.6.0-qt6.5.patch +) + +pkg_setup() { + MULTIBUILD_VARIANTS=( $(usev qt5) $(usev qt6) ) + python_setup +} + +src_prepare() { + default + sed -i -e "s/qtquicktests//" pyotherside.pro || die + multibuild_copy_sources +} + +src_configure() { + myconfigure() { + pushd "${BUILD_DIR}" > /dev/null || die + + if [[ "${MULTIBUILD_VARIANT}" == qt5 ]]; then + eqmake5 + elif [[ "${MULTIBUILD_VARIANT}" == qt6 ]]; then + eqmake6 + else + # This should never happen if REQUIRED_USE is enforced + die "Neither Qt5 nor Qt6 support enabled, aborting" + fi + popd > /dev/null || die + } + + multibuild_foreach_variant myconfigure +} + +src_compile() { + mycompile() { + pushd "${BUILD_DIR}" > /dev/null || die + + emake + + popd > /dev/null || die + } + + multibuild_foreach_variant mycompile +} + +src_test() { + mytest() { + pushd "${BUILD_DIR}" > /dev/null || die + + QT_QPA_PLATFORM="offscreen" tests/tests || die + + popd > /dev/null || die + } + + multibuild_foreach_variant mytest +} + +src_install() { + myinstall() { + pushd "${BUILD_DIR}" > /dev/null || die + + emake install INSTALL_ROOT="${D}" + + popd > /dev/null || die + } + + multibuild_foreach_variant myinstall +} diff --git a/dev-python/pyotherside/pyotherside-1.6.0.ebuild b/dev-python/pyotherside/pyotherside-1.6.0.ebuild index 41263ea70ea1..f151aceda94f 100644 --- a/dev-python/pyotherside/pyotherside-1.6.0.ebuild +++ b/dev-python/pyotherside/pyotherside-1.6.0.ebuild @@ -1,9 +1,9 @@ -# Copyright 1999-2023 Gentoo Authors +# Copyright 1999-2024 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=8 -PYTHON_COMPAT=( python3_{9..11} ) +PYTHON_COMPAT=( python3_{10..12} ) inherit qmake-utils python-single-r1 @@ -19,9 +19,7 @@ IUSE="+qt5 qt6" REQUIRED_USE="${PYTHON_REQUIRED_USE} ^^ ( qt5 qt6 )" -# qt6 TODO: -# - check if all qt6 deps are okay yet -# - multibuild for both qt5 and qt6 if requested +# TODO: multibuild for both qt5 and qt6 if requested RDEPEND=" ${PYTHON_DEPS} qt5? ( @@ -33,11 +31,16 @@ RDEPEND=" ) qt6? ( dev-qt/qtbase:6[opengl] - dev-qt/qtdeclarative:6 + dev-qt/qtdeclarative:6[opengl] + dev-qt/qtquick3d:6[opengl] dev-qt/qtsvg:6 )" DEPEND="${RDEPEND}" +PATCHES=( + "${FILESDIR}"/${PN}-1.6.0-qt6.5.patch +) + src_prepare() { default sed -i -e "s/qtquicktests//" pyotherside.pro || die -- cgit v1.2.3