Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

New packages: python3-pyside6 + shiboken6 (Qt for python) #41957

Closed
wants to merge 2 commits into from
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
3 changes: 3 additions & 0 deletions common/shlibs
Original file line number Diff line number Diff line change
Expand Up @@ -1677,7 +1677,10 @@ libgtkglext-x11-1.0.so.0 gtkglext-1.2.0_4
libgdkglext-x11-1.0.so.0 gtkglext-1.2.0_4
libXaw3d.so.8 libXaw3d-1.6.2_1
libshiboken2.so.5.15 libshiboken2-5.15.0_1
libshiboken6.so.6.4 libshiboken6-6.4.2_1
libpyside2.so.5.15 libpyside2-python3-5.15.0_1
libpyside6.so.6.4 libpyside6-python3-6.4.2_1
libpyside6qml.so.6.4 libpyside6-python3-6.4.2_1
libupsclient.so.6 libnetwork-ups-tools-2.8.0_1
libnutclient.so.2 libnetwork-ups-tools-2.8.0_1
libnutscan.so.2 libnetwork-ups-tools-2.8.0_1
Expand Down
1 change: 1 addition & 0 deletions srcpkgs/libpyside6-python3
1 change: 1 addition & 0 deletions srcpkgs/libpyside6-python3-devel
1 change: 1 addition & 0 deletions srcpkgs/libshiboken6
1 change: 1 addition & 0 deletions srcpkgs/libshiboken6-devel
27 changes: 27 additions & 0 deletions srcpkgs/python3-pyside6/patches/tests-disable-invalid-tests.patch
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
Disable failing tests for various reasons.
pyside 6.1.0: about 5 tests out of 447 with "offline" backend display.

--- a/sources/pyside6/tests/registry/CMakeLists.txt.ORIG 2021-04-19 18:07:00.000000000 +0200
+++ b/sources/pyside6/tests/registry/CMakeLists.txt 2021-05-08 13:41:06.980088190 +0200
@@ -3,2 +3,1 @@

-PYSIDE_TEST(existence_test.py)
--- a/sources/pyside6/tests/QtWidgets/CMakeLists.txt.ORIG 2021-04-19 18:07:00.000000000 +0200
+++ b/sources/pyside6/tests/QtWidgets/CMakeLists.txt 2021-05-08 20:57:01.609450094 +0200
@@ -119,7 +119,6 @@
PYSIDE_TEST(qtoolbox_test.py)
PYSIDE_TEST(qvariant_test.py)
PYSIDE_TEST(qwidget_setlayout_test.py)
-PYSIDE_TEST(qwidget_test.py)
PYSIDE_TEST(qcolormap_test.py)
PYSIDE_TEST(reference_count_test.py)
PYSIDE_TEST(signature_test.py)
--- a/sources/pyside6/tests/QtOpenGL/CMakeLists.txt.ORIG 2021-04-19 18:07:00.000000000 +0200
+++ b/sources/pyside6/tests/QtOpenGL/CMakeLists.txt 2021-05-08 20:59:14.970903599 +0200
@@ -1,2 +1 @@
-PYSIDE_TEST(qopenglbuffer_test.py)
PYSIDE_TEST(qopenglwindow_test.py)
--- a/sources/pyside6/tests/Qt3DExtras/CMakeLists.txt.ORIG 2021-04-19 18:07:00.000000000 +0200
+++ b/sources/pyside6/tests/Qt3DExtras/CMakeLists.txt 2021-05-09 00:43:00.059103014 +0200
@@ -1 +0,0 @@
-PYSIDE_TEST(qt3dextras_test.py)
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
Use pyside python modules from build since they are not installed yet.
Reported upstream: https://bugreports.qt.io/browse/PYSIDE-1430 (pyside2)
Additional fix for pyside6

--- a/sources/pyside6/tests/init_paths.py.ORIG 2021-04-19 18:07:00.000000000 +0200
+++ b/sources/pyside6/tests/init_paths.py 2021-05-08 09:55:33.560511618 +0200
@@ -48,13 +48,12 @@

python_dirs = [os.path.join(src_dir, 'util')] # Helper module

- pyside_build_dir = os.path.join(get_build_dir(), 'pyside6')
- python_dirs.append(pyside_build_dir) # for PySide6
- lib_dirs = [os.path.join(pyside_build_dir, 'libpyside'),
- os.path.join(pyside_build_dir, 'libpysideqml')]
+ python_dirs.append(get_build_dir()) # for PySide6
+ lib_dirs = [os.path.join(get_build_dir(), 'libpyside'),
+ os.path.join(get_build_dir(), 'libpysideqml')]

if testbindings_module:
- python_dirs.append(os.path.join(pyside_build_dir,
+ python_dirs.append(os.path.join(get_build_dir(),
'tests', 'pysidetest'))
lib_dirs.append(_get_qt_lib_dir())

16 changes: 16 additions & 0 deletions srcpkgs/python3-pyside6/patches/tests-fix-build_dir.patch
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
Reported upstream: https://bugreports.qt.io/browse/PYSIDE-1430 (pyside2)
Additional fix for qt6

--- a/sources/pyside6/tests/CMakeLists.txt.ORIG 2021-04-19 18:07:00.000000000 +0200
+++ b/sources/pyside6/tests/CMakeLists.txt 2021-05-08 10:09:53.745441190 +0200
@@ -4,8 +4,7 @@

# BUILD_DIR and QT_DIR are used by init_paths.py for setting
# the path to the testbinding module
-get_filename_component(BUILD_DIR "${CMAKE_BINARY_DIR}" DIRECTORY)
-get_filename_component(BUILD_DIR "${CMAKE_BINARY_DIR}" DIRECTORY)
-set(QT_DIR "${_qt5Core_install_prefix}")
+set(BUILD_DIR "${CMAKE_BINARY_DIR}")
+set(QT_DIR "${QT6_INSTALL_PREFIX}")

macro(TEST_QT_MODULE var name)
47 changes: 47 additions & 0 deletions srcpkgs/python3-pyside6/template
Original file line number Diff line number Diff line change
@@ -0,0 +1,47 @@
# Template file for 'python3-pyside6'
pkgname=python3-pyside6
version=6.5.0
revision=1
_pkgname="pyside-setup-opensource-src-${version}"
# wrksrc="${_pkgname}"
build_wrksrc="sources/pyside6"
build_style=cmake
configure_args="-DPYTHON_EXECUTABLE=/usr/bin/python -DQT_HOST_PATH=/usr"
hostmakedepends="python3 shiboken6 qt6-base-devel"
makedepends="libshiboken6-devel python3-devel qt6-base-devel qt6-tools-devel
qt6-declarative-devel qt6-scxml-devel qt6-svg-devel qt6-networkauth-devel
qt6-3d-devel qt6-charts-devel"
checkdepends="tzdata qt6-plugin-sqlite"
short_desc="Python3 bindings for the Qt6 toolkit"
maintainer="fanyx <fanyx+github@posteo.net>"
license="GPL-3.0-only WITH Qt-GPL-exception-1.0, LGPL-3.0-only, GPL-2.0-or-later"
homepage="https://doc.qt.io/qtforpython/"
distfiles="https://download.qt.io/official_releases/QtForPython/pyside6/PySide6-${version}-src/${_pkgname}.tar.xz"
checksum=1ec9d0936332efd229650cf10fed36cadddff7a613a2ea6e897de4d504c1b505

# needed by shiboken6 runtime
export CLANG_INSTALL_DIR=/usr

pre_check() {
export QT_QPA_PLATFORM=offscreen
}

libpyside6-python3-devel_package() {
depends="${sourcepkg}-${version}_${revision}
libpyside6-python3-${version}_${revision}"
short_desc+=" - shared library (development files)"
pkg_install() {
vmove usr/include
vmove usr/lib/cmake
vmove usr/lib/pkgconfig
vmove "usr/lib/*.so"
vmove usr/share
}
}

libpyside6-python3_package() {
short_desc+=" - shared library"
pkg_install() {
vmove "usr/lib/*.so.*"
}
}
3 changes: 3 additions & 0 deletions srcpkgs/python3-pyside6/update
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
pkgname=pyside-setup-opensource-src
vdprefix=PySide6-
vdsuffix=-src
1 change: 1 addition & 0 deletions srcpkgs/python3-shiboken6
38 changes: 38 additions & 0 deletions srcpkgs/shiboken6/patches/no-python-suffix.patch
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
no python suffix like ".cpython-36m-x86_64-linux-gnu": provides a consistent
naming across architecture.

Also don't overwrite the "real" cmake file with the generic wrapper's one: they
have the same name if no python suffix.

--- a/sources/shiboken6/cmake/ShibokenSetup.cmake.ORIG
+++ b/sources/shiboken6/cmake/ShibokenSetup.cmake
@@ -73,6 +73,11 @@
"PYTHON_CONFIG_SUFFIX is empty. It should never be empty. Please file a bug report.")
endif()

+# no suffix like '.cpython-36m-x86_64-linux-gnu'
+set(PYTHON_EXTENSION_SUFFIX "")
+set(PYTHON_CONFIG_SUFFIX "")
+set(PYTHON_SHARED_LIBRARY_SUFFIX "")
+
message(STATUS "PYTHON_EXTENSION_SUFFIX: ${PYTHON_EXTENSION_SUFFIX}")
message(STATUS "PYTHON_CONFIG_SUFFIX: ${PYTHON_CONFIG_SUFFIX}")
message(STATUS "PYTHON_SHARED_LIBRARY_SUFFIX: ${PYTHON_SHARED_LIBRARY_SUFFIX}")
--- a/sources/shiboken6/data/CMakeLists.txt.ORIG
+++ b/sources/shiboken6/data/CMakeLists.txt
@@ -37,15 +37,11 @@
PATH_VARS SHIBOKEN_PYTHON_MODULE_DIR SHIBOKEN_SHARED_LIBRARY_DIR
)

-configure_file("${CMAKE_CURRENT_SOURCE_DIR}/Shiboken6Config.cmake.in"
- "${CMAKE_CURRENT_BINARY_DIR}/Shiboken6Config.cmake" @ONLY)
configure_file("${CMAKE_CURRENT_SOURCE_DIR}/Shiboken6ConfigVersion.cmake.in"
"${CMAKE_CURRENT_BINARY_DIR}/Shiboken6ConfigVersion.cmake" @ONLY)
configure_file("${CMAKE_CURRENT_SOURCE_DIR}/shiboken6.pc.in"
"${CMAKE_CURRENT_BINARY_DIR}/shiboken6${shiboken6_SUFFIX}.pc" @ONLY)

-install(FILES "${CMAKE_CURRENT_BINARY_DIR}/Shiboken6Config.cmake"
- DESTINATION "${LIB_INSTALL_DIR}/cmake/Shiboken6-${shiboken6_VERSION}")

install(FILES "${CMAKE_CURRENT_BINARY_DIR}/install/Shiboken6Config${PYTHON_CONFIG_SUFFIX}.cmake"
DESTINATION "${LIB_INSTALL_DIR}/cmake/Shiboken6-${shiboken6_VERSION}")
15 changes: 15 additions & 0 deletions srcpkgs/shiboken6/patches/tests-need-python-modules.patch
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
tests need python modules that are not yet installed, so point the built ones.
Reported upstream: https://bugreports.qt.io/browse/PYSIDE-1429 (shiboken2)
Updated for shiboken6 : use a shiboken6's temporary python module.

--- a/sources/shiboken6/tests/CMakeLists.txt.ORIG 2021-05-05 08:27:28.000000000 +0200
+++ b/sources/shiboken6/tests/CMakeLists.txt 2021-05-14 17:37:25.572549382 +0200
@@ -52,7 +52,7 @@
set(test_name "${CMAKE_MATCH_1}_${CMAKE_MATCH_3}")
list(FIND test_blacklist ${test_name} expect_fail)
add_test(${test_name} ${PYTHON_EXECUTABLE} ${test_file})
- set_tests_properties(${test_name} PROPERTIES ENVIRONMENT "BUILD_DIR=${BUILD_DIR}")
+ set_tests_properties(${test_name} PROPERTIES ENVIRONMENT "BUILD_DIR=${BUILD_DIR};PYTHONPATH=${minimal_BINARY_DIR}/../../tmpmodule:${minimal_BINARY_DIR}:${sample_BINARY_DIR}:${other_BINARY_DIR}:${smart_BINARY_DIR}")
set_tests_properties(${test_name} PROPERTIES TIMEOUT ${CTEST_TESTING_TIMEOUT})
if (${expect_fail} GREATER -1)
set_tests_properties(${test_name} PROPERTIES WILL_FAIL TRUE)
65 changes: 65 additions & 0 deletions srcpkgs/shiboken6/template
Original file line number Diff line number Diff line change
@@ -0,0 +1,65 @@
# Template file for 'shiboken6'
pkgname=shiboken6
version=6.5.0
revision=1
_pkgname="pyside-setup-opensource-src-${version}"
# wrksrc="${_pkgname}"
build_wrksrc="sources/shiboken6"
build_style=cmake
configure_args="-DNUMPY_INCLUDE_DIR=${XBPS_CROSS_BASE}/${py3_sitelib}/numpy/core/include"
hostmakedepends="python3-devel"
makedepends="qt6-base-devel python3-devel clang-tools-extra llvm libxslt-devel python3-numpy"
depends="clang"
short_desc="Python binding generator of Qt6 C++ API"
maintainer="fanyx <fanyx+github@posteo.net>"
license="GPL-3.0-only WITH Qt-GPL-exception-1.0, LGPL-3.0-only, GPL-2.0-or-later"
homepage="https://doc.qt.io/qtforpython/shiboken6/"
distfiles="https://download.qt.io/official_releases/QtForPython/pyside6/PySide6-${version}-src/${_pkgname}.tar.xz"
checksum=1ec9d0936332efd229650cf10fed36cadddff7a613a2ea6e897de4d504c1b505
conflicts="shiboken2"
python_version=3

export CLANG_INSTALL_DIR=${XBPS_CROSS_BASE}/usr

if [ "$CROSS_BUILD" ]; then
hostmakedepends+=" qt6-base-devel shiboken6"
# use host's automoc
configure_args+=" -DQT_HOST_PATH=/usr"
fi

pre_check() {
# create a temporary shiboken6 python module for testing.
# Needed since 6.1 and the reorg of generated stuff
# (see https://bugreports.qt.io/browse/PYSIDE-1497)
# related with tests-need-python-modules.patch
local _tmpmodule="${cmake_builddir:=build}/tmpmodule/shiboken6"
mkdir -p ${_tmpmodule}
cp -p ${cmake_builddir}/__init__.py ${_tmpmodule}/.
cp -p ${cmake_builddir}/Shiboken.so ${_tmpmodule}/.
}

libshiboken6-devel_package() {
depends="${sourcepkg}-${version}_${revision}
libshiboken6-${version}_${revision} python3-shiboken6-${version}_${revision}"
short_desc+=" - common development files"
pkg_install() {
vmove usr/include
vmove usr/lib/cmake
vmove usr/lib/pkgconfig
vmove "usr/lib/*.so"
}
}

libshiboken6_package() {
short_desc="Python3 shiboken6 bindings - shared library"
pkg_install() {
vmove "usr/lib/*.so.*"
}
}

python3-shiboken6_package() {
short_desc="Python3 shiboken6 bindings"
pkg_install() {
vmove ${py3_sitelib}
}
}
3 changes: 3 additions & 0 deletions srcpkgs/shiboken6/update
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
pkgname=pyside-setup-opensource-src
vdprefix=PySide6-
vdsuffix=-src