Github messages for voidlinux
 help / color / mirror / Atom feed
* [PR PATCH] New package: python3-pyside6-6.6.0
@ 2024-05-21  8:14 chrysos349
  2024-05-21 10:18 ` [PR PATCH] [Updated] " chrysos349
                   ` (3 more replies)
  0 siblings, 4 replies; 5+ messages in thread
From: chrysos349 @ 2024-05-21  8:14 UTC (permalink / raw)
  To: ml

[-- Attachment #1: Type: text/plain, Size: 813 bytes --]

There is a new pull request by chrysos349 against master on the void-packages repository

https://github.com/chrysos349/void-packages python3-pyside6
https://github.com/void-linux/void-packages/pull/50452

New package: python3-pyside6-6.6.0
#### Testing the changes
- I tested the changes in this PR: **YES**

#### New package
- This new package conforms to the [package requirements](https://github.com/void-linux/void-packages/blob/master/CONTRIBUTING.md#package-requirements): **YES**

#### Local build testing
- I built this PR locally for my native architecture, (x86_64)
- I built this PR locally for these architectures (if supported. mark crossbuilds):
  - aarch64-musl x
  - armv7l x
  - armv6l-musl x

A patch file from https://github.com/void-linux/void-packages/pull/50452.patch is attached

[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: github-pr-python3-pyside6-50452.patch --]
[-- Type: text/x-diff, Size: 21059 bytes --]

From e22bd841e0b296e21ba91e9b13760825feefea23 Mon Sep 17 00:00:00 2001
From: chrysos349 <chrysostom349@gmail.com>
Date: Tue, 21 May 2024 11:12:14 +0300
Subject: [PATCH] New package: python3-pyside6-6.6.0

---
 common/shlibs                                 |   3 +
 srcpkgs/libpyside6                            |   1 +
 srcpkgs/libpyside6-devel                      |   1 +
 srcpkgs/libshiboken6                          |   1 +
 srcpkgs/libshiboken6-devel                    |   1 +
 .../patches/designer-plugin-install-dir.patch |  10 +
 .../python3-pyside6/patches/fix-build.patch   |  14 ++
 .../patches/fix-install-dir.patch             |  10 +
 .../fix-shiboken-wrapper-on-cross.patch       | 186 ++++++++++++++++++
 .../patches/no-python-suffix.patch            |  38 ++++
 srcpkgs/python3-pyside6/template              | 111 +++++++++++
 srcpkgs/python3-pyside6/update                |   3 +
 srcpkgs/python3-shiboken6                     |   1 +
 13 files changed, 380 insertions(+)
 create mode 120000 srcpkgs/libpyside6
 create mode 120000 srcpkgs/libpyside6-devel
 create mode 120000 srcpkgs/libshiboken6
 create mode 120000 srcpkgs/libshiboken6-devel
 create mode 100644 srcpkgs/python3-pyside6/patches/designer-plugin-install-dir.patch
 create mode 100644 srcpkgs/python3-pyside6/patches/fix-build.patch
 create mode 100644 srcpkgs/python3-pyside6/patches/fix-install-dir.patch
 create mode 100644 srcpkgs/python3-pyside6/patches/fix-shiboken-wrapper-on-cross.patch
 create mode 100644 srcpkgs/python3-pyside6/patches/no-python-suffix.patch
 create mode 100644 srcpkgs/python3-pyside6/template
 create mode 100644 srcpkgs/python3-pyside6/update
 create mode 120000 srcpkgs/python3-shiboken6

diff --git a/common/shlibs b/common/shlibs
index 5445c9f3d1f46a..f2855f96f21050 100644
--- a/common/shlibs
+++ b/common/shlibs
@@ -4438,3 +4438,6 @@ libcamera.so.0.2 libcamera-0.2.0_1
 libcamera-base.so.0.2 libcamera-0.2.0_1
 libKPim6MimeTreeParserCore.so.6 mimetreeparser-24.02.0_1
 libKPim6MimeTreeParserWidgets.so.6 mimetreeparser-24.02.0_1
+libpyside6.so.6.6 libpyside6-6.6.0_1
+libpyside6qml.so.6.6 libpyside6-6.6.0_1
+libshiboken6.so.6.6 libshiboken6-6.6.0_1
diff --git a/srcpkgs/libpyside6 b/srcpkgs/libpyside6
new file mode 120000
index 00000000000000..6491748d6ac687
--- /dev/null
+++ b/srcpkgs/libpyside6
@@ -0,0 +1 @@
+python3-pyside6
\ No newline at end of file
diff --git a/srcpkgs/libpyside6-devel b/srcpkgs/libpyside6-devel
new file mode 120000
index 00000000000000..6491748d6ac687
--- /dev/null
+++ b/srcpkgs/libpyside6-devel
@@ -0,0 +1 @@
+python3-pyside6
\ No newline at end of file
diff --git a/srcpkgs/libshiboken6 b/srcpkgs/libshiboken6
new file mode 120000
index 00000000000000..6491748d6ac687
--- /dev/null
+++ b/srcpkgs/libshiboken6
@@ -0,0 +1 @@
+python3-pyside6
\ No newline at end of file
diff --git a/srcpkgs/libshiboken6-devel b/srcpkgs/libshiboken6-devel
new file mode 120000
index 00000000000000..6491748d6ac687
--- /dev/null
+++ b/srcpkgs/libshiboken6-devel
@@ -0,0 +1 @@
+python3-pyside6
\ No newline at end of file
diff --git a/srcpkgs/python3-pyside6/patches/designer-plugin-install-dir.patch b/srcpkgs/python3-pyside6/patches/designer-plugin-install-dir.patch
new file mode 100644
index 00000000000000..e0b4b0c66ae74e
--- /dev/null
+++ b/srcpkgs/python3-pyside6/patches/designer-plugin-install-dir.patch
@@ -0,0 +1,10 @@
+diff --git a/sources/pyside6/plugins/designer/CMakeLists.txt b/sources/pyside6/plugins/designer/CMakeLists.txt
+index 570fee1fe..d95e9ed21 100644
+--- a/sources/pyside6/plugins/designer/CMakeLists.txt
++++ b/sources/pyside6/plugins/designer/CMakeLists.txt
+@@ -53,4 +53,4 @@ target_link_libraries(PySidePlugin PRIVATE
+                       Qt::Widgets
+                       ${SHIBOKEN_PYTHON_LIBRARIES})
+ 
+-install(TARGETS PySidePlugin LIBRARY DESTINATION "plugins/designer")
++install(TARGETS PySidePlugin LIBRARY DESTINATION "lib/qt6/plugins/designer")
diff --git a/srcpkgs/python3-pyside6/patches/fix-build.patch b/srcpkgs/python3-pyside6/patches/fix-build.patch
new file mode 100644
index 00000000000000..bb3f763ef0dfcd
--- /dev/null
+++ b/srcpkgs/python3-pyside6/patches/fix-build.patch
@@ -0,0 +1,14 @@
+diff --git a/sources/pyside6/qtexampleicons/CMakeLists.txt b/sources/pyside6/qtexampleicons/CMakeLists.txt
+index 1562f7b27..58ecc7c17 100644
+--- a/sources/pyside6/qtexampleicons/CMakeLists.txt
++++ b/sources/pyside6/qtexampleicons/CMakeLists.txt
+@@ -32,6 +32,9 @@ elseif(CMAKE_BUILD_TYPE STREQUAL "Release")
+     target_compile_definitions(QtExampleIcons PRIVATE "-DNDEBUG")
+ endif()
+ 
++get_property(SHIBOKEN_PYTHON_LIBRARIES GLOBAL PROPERTY shiboken_python_libraries)
++get_property(SHIBOKEN_PYTHON_INCLUDE_DIRS GLOBAL PROPERTY shiboken_python_include_dirs)
++
+ target_include_directories(QtExampleIcons PRIVATE ${SHIBOKEN_PYTHON_INCLUDE_DIRS})
+ 
+ get_property(SHIBOKEN_PYTHON_LIBRARIES GLOBAL PROPERTY shiboken_python_libraries)
diff --git a/srcpkgs/python3-pyside6/patches/fix-install-dir.patch b/srcpkgs/python3-pyside6/patches/fix-install-dir.patch
new file mode 100644
index 00000000000000..74e441554927ad
--- /dev/null
+++ b/srcpkgs/python3-pyside6/patches/fix-install-dir.patch
@@ -0,0 +1,10 @@
+diff --git a/sources/pyside6/PySide6/CMakeLists.txt b/sources/pyside6/PySide6/CMakeLists.txt
+index e24fdb682..37b7a6c9c 100644
+--- a/sources/pyside6/PySide6/CMakeLists.txt
++++ b/sources/pyside6/PySide6/CMakeLists.txt
+@@ -111,4 +111,4 @@ install(FILES ${CMAKE_CURRENT_BINARY_DIR}/pyside6_global.h
+         DESTINATION include/${BINDING_NAME}${pyside6_SUFFIX})
+ 
+ install(DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/QtAsyncio"
+-        DESTINATION "${CMAKE_CURRENT_BINARY_DIR}")
++        DESTINATION "${PYTHON_SITE_PACKAGES}/${BINDING_NAME}${pyside6_SUFFIX}")
diff --git a/srcpkgs/python3-pyside6/patches/fix-shiboken-wrapper-on-cross.patch b/srcpkgs/python3-pyside6/patches/fix-shiboken-wrapper-on-cross.patch
new file mode 100644
index 00000000000000..9c0df2f894f156
--- /dev/null
+++ b/srcpkgs/python3-pyside6/patches/fix-shiboken-wrapper-on-cross.patch
@@ -0,0 +1,186 @@
+CMake: Fix shiboken_wrapper.sh not existing during yocto cross builds
+
+Previously we tried to reuse an existing host build dir shell wrapper
+to run shiboken. But the wrapper won't be available in a yocto
+cross-build because the file is never installed.
+
+Instead of installing the shell wrapper, save the original host paths
+in exported target properties and always regenerate the wrapper.
+
+The new lookup order is:
+- check the new command line cache vars
+- otherwise use the original host paths when they are valid / exist
+- otherwise use the usual QT6_INSTALL_PREFIX var and LLVM_INSTALL_DIR
+  env var
+
+The new command line cache vars are:
+- SHIBOKEN_WRAPPER_HOST_QT_LIB_PATH
+- SHIBOKEN_WRAPPER_HOST_CLANG_LIB_PATH
+
+Amends cc0481a46f801473c3dbabe855534a7aa034443f
+Amends 4685aca4fc09db54b21814c7e70b62d4689bdccb
+
+Pick-to: 6.6
+Fixes: PYSIDE-2530
+Change-Id: I7ff75e7b8a78427b1ee02662503575a2ea5d4568
+Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
+Reviewed-by: Shyamnath Premnadh <Shyamnath.Premnadh@qt.io>
+diff --git a/sources/shiboken6/cmake/ShibokenHelpers.cmake b/sources/shiboken6/cmake/ShibokenHelpers.cmake
+index b71f01e..298eaf7 100644
+--- a/sources/shiboken6/cmake/ShibokenHelpers.cmake
++++ b/sources/shiboken6/cmake/ShibokenHelpers.cmake
+@@ -690,28 +690,10 @@
+ # tool_name should be a unique tool name, preferably without spaces.
+ # Returns the wrapper path in path_out_var.
+ #
+-# Currently adds the Qt lib dir and libclang to PATH.
++# Currently adds the Qt lib dir and libclang to PATH / LD_LIBRARY_PATH / DYLD_LIBRARY_PATH.
+ # Meant to be used as the first argument to add_custom_command's COMMAND option.
+ # TODO: Remove tool_name as the tool_name for this function is always shiboken.
+ function(shiboken_get_tool_shell_wrapper tool_name path_out_var)
+-
+-    # Make sure that for cross building, the host shiboken_wrapper.sh tool is used instead of target
+-    # shiboken_wrapper.sh when calling shiboken. This wrapper script resolves the dependency to Qt
+-    # libraries.
+-    if((SHIBOKEN_IS_CROSS_BUILD OR PYSIDE_IS_CROSS_BUILD) AND
+-       (CMAKE_HOST_UNIX AND NOT CMAKE_HOST_APPLE))
+-        set(host_tool_wrapper_path
+-            "${QFP_SHIBOKEN_HOST_PATH}/../build/shiboken6/.qfp/bin/shiboken_wrapper.sh")
+-
+-        if(EXISTS "${host_tool_wrapper_path}")
+-            set_property(GLOBAL PROPERTY "_shiboken_tool_wrapper_shiboken_path"
+-                        "${host_tool_wrapper_path}")
+-            set_property(GLOBAL PROPERTY "_shiboken_tool_wrapper_shiboken_created" TRUE)
+-        else()
+-            message(FATAL_ERROR "${host_tool_wrapper_path} does not exist")
+-        endif()
+-    endif()
+-
+     # Generate the wrapper only once during the execution of CMake.
+     get_property(is_called GLOBAL PROPERTY "_shiboken_tool_wrapper_${tool_name}_created")
+ 
+@@ -725,25 +707,56 @@
+     set(path_dirs_native "")
+ 
+     if(CMAKE_HOST_WIN32)
+-        # in Windows the Qt dll are store `bin` in directory
+-        set(qt_library_dir ${QT6_INSTALL_BINS})
+         set(wrapper_script_extension ".bat")
+     else()
+-        # in Unix the .so are stored in `lib` directory
+-        set(qt_library_dir ${QT6_INSTALL_LIBS})
+         set(wrapper_script_extension ".sh")
+     endif()
+ 
++    # Try to get original host shiboken paths from exported target properties.
++    shiboken_get_host_tool_wrapper_properties(orig_qt_library_dir_absolute orig_libclang_lib_dir)
++
++    # Get path to the Qt bin/lib dir depending on the platform and developer input.
++    # Prefer values given on the command line, then the original host path if it exists, otherwise
++    # try to use the Qt install prefix and libclang env vars.
++    #
++    # Note that in a cross-compiling case, using the Qt install prefix is very likely
++    # wrong, because you want to use the location of the host Qt, not the target Qt. Same for
++    # libclang. Unfortunately we currently don't provide a host Qt and host libclang option via
++    # setup.py, so the manual cmake vars will have to suffice.
++    if(SHIBOKEN_WRAPPER_HOST_QT_LIB_PATH AND EXISTS "${SHIBOKEN_WRAPPER_HOST_QT_LIB_PATH}")
++        set(qt_library_dir_absolute "${SHIBOKEN_WRAPPER_HOST_QT_LIB_PATH}")
++    elseif(orig_qt_library_dir_absolute AND EXISTS "${orig_qt_library_dir_absolute}")
++        set(qt_library_dir_absolute "${orig_qt_library_dir_absolute}")
++    elseif(CMAKE_HOST_WIN32)
++        # in Windows the Qt dll are store `bin` in directory
++        set(qt_library_dir ${QT6_INSTALL_BINS})
++    else()
++        # in Unix the .so are stored in `lib` directory
++        set(qt_library_dir ${QT6_INSTALL_LIBS})
++    endif()
++
+     # Assert that Qt is already found.
+-    if(NOT QT6_INSTALL_PREFIX OR NOT qt_library_dir)
++    if((QT6_INSTALL_PREFIX AND qt_library_dir) OR orig_qt_library_dir_absolute)
++    else()
+         message(FATAL_ERROR "Qt should have been found already by now.")
+     endif()
+ 
+-    # Get path to the Qt bin/lib dir depending on the platform
+-    list(APPEND path_dirs "${QT6_INSTALL_PREFIX}/${qt_library_dir}")
++    if(NOT qt_library_dir_absolute)
++        set(qt_library_dir_absolute "${QT6_INSTALL_PREFIX}/${qt_library_dir}")
++    endif()
++    list(APPEND path_dirs "${qt_library_dir_absolute}")
+ 
+-    # find libclang
+-    find_libclang()
++    # Get libclang lib dir path.
++    # Prefer values given on the command line, then the original host path if it exists.
++    if(SHIBOKEN_WRAPPER_HOST_CLANG_LIB_PATH AND EXISTS "${SHIBOKEN_WRAPPER_HOST_CLANG_LIB_PATH}")
++        set(libclang_lib_dir "${SHIBOKEN_WRAPPER_HOST_CLANG_LIB_PATH}")
++    elseif(orig_libclang_lib_dir AND EXISTS "${orig_libclang_lib_dir}")
++        set(libclang_lib_dir "${orig_libclang_lib_dir}")
++    else()
++        # find libclang
++        find_libclang()
++    endif()
++
+     if(libclang_lib_dir)
+         list(APPEND path_dirs "${libclang_lib_dir}")
+     endif()
+@@ -781,6 +794,9 @@
+     set_property(GLOBAL PROPERTY "_shiboken_tool_wrapper_${tool_name}_path" "${wrapper_path}")
+     set_property(GLOBAL PROPERTY "_shiboken_tool_wrapper_${tool_name}_created" TRUE)
+ 
++    # Save original host paths for future cross-builds.
++    shiboken_save_host_tool_wrapper_properties("${qt_library_dir_absolute}" "${libclang_lib_dir}")
++
+     # give execute permission to run the file
+     if(CMAKE_HOST_UNIX)
+         execute_process(COMMAND chmod +x ${wrapper_path})
+@@ -789,6 +805,48 @@
+     set(${path_out_var} "${wrapper_path}" PARENT_SCOPE)
+ endfunction()
+ 
++# Retrieve the original host shiboken runtime dependency paths from the installed (namespaced)
++# shiboken generator target.
++function(shiboken_get_host_tool_wrapper_properties out_qt_library_dir out_libclang_lib_dir)
++    if(TARGET Shiboken6::shiboken6)
++        get_target_property(qt_library_dir Shiboken6::shiboken6 _shiboken_original_qt_lib_dir)
++        if(NOT qt_library_dir)
++            set(qt_library_dir "")
++        endif()
++        get_target_property(libclang_lib_dir Shiboken6::shiboken6
++            _shiboken_original_libclang_lib_dir)
++        if(NOT libclang_lib_dir)
++            set(libclang_lib_dir "")
++        endif()
++    endif()
++
++    set(${out_qt_library_dir} "${qt_library_dir}" PARENT_SCOPE)
++    set(${out_libclang_lib_dir} "${libclang_lib_dir}" PARENT_SCOPE)
++endfunction()
++
++# Save original host shiboken runtime dependency paths as target properties, so they can be used
++# when generating the wrapper file for cross-builds.
++# Should only be done when shiboken is being built (aka it's a non-imported target).
++function(shiboken_save_host_tool_wrapper_properties qt_library_dir libclang_lib_dir)
++    if(TARGET shiboken6)
++        get_target_property(is_imported shiboken6 IMPORTED)
++        if(is_imported)
++            return()
++        endif()
++
++        set_target_properties(shiboken6 PROPERTIES
++            _shiboken_original_qt_lib_dir "${qt_library_dir}")
++        set_property(TARGET shiboken6 APPEND PROPERTY
++            EXPORT_PROPERTIES _shiboken_original_qt_lib_dir)
++        if(libclang_lib_dir)
++            set_target_properties(shiboken6 PROPERTIES
++                _shiboken_original_libclang_lib_dir "${libclang_lib_dir}")
++            set_property(TARGET shiboken6 APPEND PROPERTY
++                EXPORT_PROPERTIES _shiboken_original_libclang_lib_dir)
++        endif()
++    endif()
++endfunction()
++
+ # Returns the platform-specific relative rpath base token, if it's supported.
+ # If it's not supported, returns the string NO_KNOWN_RPATH_REL_BASE.
+ function(get_rpath_base_token out_var)
diff --git a/srcpkgs/python3-pyside6/patches/no-python-suffix.patch b/srcpkgs/python3-pyside6/patches/no-python-suffix.patch
new file mode 100644
index 00000000000000..658c7c69e129ab
--- /dev/null
+++ b/srcpkgs/python3-pyside6/patches/no-python-suffix.patch
@@ -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
+@@ -36,16 +36,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")
+-
+ install(FILES "${CMAKE_CURRENT_BINARY_DIR}/install/Shiboken6Config${PYTHON_CONFIG_SUFFIX}.cmake"
+         DESTINATION "${LIB_INSTALL_DIR}/cmake/Shiboken6")
diff --git a/srcpkgs/python3-pyside6/template b/srcpkgs/python3-pyside6/template
new file mode 100644
index 00000000000000..431822ad260fcd
--- /dev/null
+++ b/srcpkgs/python3-pyside6/template
@@ -0,0 +1,111 @@
+# Template file for 'python3-pyside6'
+# keep in sync with Qt6
+pkgname=python3-pyside6
+version=6.6.0
+revision=1
+build_style=cmake
+configure_args="
+ -DBUILD_TESTS=OFF
+ -DFORCE_LIMITED_API=no
+ -DNO_QT_TOOLS=yes
+ -DNUMPY_INCLUDE_DIR=/${py3_sitelib}/numpy/core/include
+ -DPYTHON_EXECUTABLE=/usr/bin/python3
+ -Wno-dev"
+hostmakedepends="python3-numpy python3-setuptools qt6-base"
+makedepends="libedit-devel libxslt-devel llvm17-devel python3-devel qt6-3d-devel
+ qt6-base-devel qt6-charts-devel qt6-connectivity-devel qt6-declarative-devel
+ qt6-location-devel qt6-multimedia-devel qt6-networkauth-devel
+ qt6-position-devel qt6-quick3d-devel qt6-remoteobjects-devel qt6-scxml-devel
+ qt6-sensors-devel qt6-serialport-devel qt6-shadertools-devel qt6-speech-devel
+ qt6-speech-plugin-flite qt6-speech-plugin-mock qt6-speech-plugin-speechd
+ qt6-svg-devel qt6-tools-devel qt6-webchannel-devel qt6-websockets-devel
+ $(vopt_if pdf qt6-pdf-devel) $(vopt_if webengine qt6-webengine-devel)"
+depends="python3-shiboken6"
+short_desc="Python bindings of Qt6-based libraries"
+maintainer="chrysos349 <chrysostom349@gmail.com>"
+license="LGPL-3.0-only, GPL-2.0-only"
+homepage="https://doc.qt.io/qtforpython/shiboken6"
+distfiles="https://download.qt.io/official_releases/QtForPython/pyside6/PySide6-${version}-src/pyside-setup-everywhere-src-${version}.tar.xz"
+checksum=2dd002db8851a87173354f38aa8c6ec42d0ff1fac99ea422b29e2dfce52d1638
+
+build_options="pdf webengine"
+
+case "$XBPS_TARGET_MACHINE" in
+	armv5*|armv6*) build_options_default=""    ;;
+	*)             build_options_default="pdf" ;;
+esac
+
+if [ "$XBPS_WORDSIZE$XBPS_WORDSIZE" = "64$XBPS_TARGET_WORDSIZE" ]; then
+	build_options_default+=" webengine"
+fi
+
+if [ "$CROSS_BUILD" ]; then
+	hostmakedepends+=" libglvnd-devel libshiboken6-devel python3-shiboken6"
+
+	case "$XBPS_TARGET_MACHINE" in
+		x86_64*|aarch64*) makedepends+=" libomp-devel";;
+	esac
+
+	configure_args+="
+	 -DQFP_PYTHON_HOST_PATH=/usr/bin/python3
+	 -DQFP_PYTHON_SITE_PACKAGES=/${py3_sitelib}"
+
+	# fix pkg-config file on cross
+	post_patch() {
+		vsed -i sources/shiboken6/data/shiboken6.pc.in \
+			-e "s/PYTHON_EXECUTABLE/QFP_PYTHON_HOST_PATH/"
+	}
+fi
+
+export LLVM_INSTALL_DIR=${XBPS_CROSS_BASE}/usr
+export PYTHONPATH=$PYTHONPATH:${XBPS_BUILDDIR}/${pkgname}-${version}/build/sources
+
+libpyside6-devel_package() {
+	depends="libpyside6-${version}_${revision}
+	 libshiboken6-devel-${version}_${revision}"
+	short_desc+=" - development files"
+	pkg_install() {
+		vmove "usr/lib/cmake/PySide*"
+		vmove "usr/lib/libpyside*.so"
+		vmove usr/include/PySide6
+		vmove usr/lib/pkgconfig/pyside6.pc
+		vmove usr/share
+	}
+}
+
+libpyside6_package() {
+	short_desc+=" - shared library"
+	pkg_install() {
+		vmove "usr/lib/libpyside*.so.*"
+		vmove usr/lib/qt6
+	}
+}
+
+libshiboken6-devel_package() {
+	depends="libshiboken6-${version}_${revision}"
+	short_desc="CPython bindings generator for C++ libraries - development files"
+	pkg_install() {
+		vmove "usr/lib/cmake/Shiboken*"
+		vmove usr/include/shiboken6
+		vmove usr/lib/libshiboken6.so
+		vmove usr/lib/pkgconfig/shiboken6.pc
+	}
+}
+
+libshiboken6_package() {
+	short_desc="CPython bindings generator for C++ libraries - shared library"
+	pkg_install() {
+		vmove "usr/lib/libshiboken6.so*"
+	}
+}
+
+python3-shiboken6_package() {
+	short_desc="CPython bindings generator for C++ libraries"
+	depends="python3"
+	pkg_install() {
+		if [ -z "$CROSS_BUILD" ]; then
+			vmove "usr/bin/shiboken*"
+		fi
+		vmove ${py3_sitelib}/shiboken6
+	}
+}
diff --git a/srcpkgs/python3-pyside6/update b/srcpkgs/python3-pyside6/update
new file mode 100644
index 00000000000000..38f0b57b82d932
--- /dev/null
+++ b/srcpkgs/python3-pyside6/update
@@ -0,0 +1,3 @@
+pkgname=pyside-setup-everywhere
+vdprefix=PySide6-
+vdsuffix=-src
diff --git a/srcpkgs/python3-shiboken6 b/srcpkgs/python3-shiboken6
new file mode 120000
index 00000000000000..6491748d6ac687
--- /dev/null
+++ b/srcpkgs/python3-shiboken6
@@ -0,0 +1 @@
+python3-pyside6
\ No newline at end of file

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [PR PATCH] [Updated] New package: python3-pyside6-6.6.0
  2024-05-21  8:14 [PR PATCH] New package: python3-pyside6-6.6.0 chrysos349
@ 2024-05-21 10:18 ` chrysos349
  2024-05-23 15:08 ` Calandracas606
                   ` (2 subsequent siblings)
  3 siblings, 0 replies; 5+ messages in thread
From: chrysos349 @ 2024-05-21 10:18 UTC (permalink / raw)
  To: ml

[-- Attachment #1: Type: text/plain, Size: 818 bytes --]

There is an updated pull request by chrysos349 against master on the void-packages repository

https://github.com/chrysos349/void-packages python3-pyside6
https://github.com/void-linux/void-packages/pull/50452

New package: python3-pyside6-6.6.0
#### Testing the changes
- I tested the changes in this PR: **YES**

#### New package
- This new package conforms to the [package requirements](https://github.com/void-linux/void-packages/blob/master/CONTRIBUTING.md#package-requirements): **YES**

#### Local build testing
- I built this PR locally for my native architecture, (x86_64)
- I built this PR locally for these architectures (if supported. mark crossbuilds):
  - aarch64-musl x
  - armv7l x
  - armv6l-musl x

A patch file from https://github.com/void-linux/void-packages/pull/50452.patch is attached

[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: github-pr-python3-pyside6-50452.patch --]
[-- Type: text/x-diff, Size: 21110 bytes --]

From dcf9af3faab94175badf747293f2b805999631ba Mon Sep 17 00:00:00 2001
From: chrysos349 <chrysostom349@gmail.com>
Date: Tue, 21 May 2024 11:12:14 +0300
Subject: [PATCH] New package: python3-pyside6-6.6.0

---
 common/shlibs                                 |   3 +
 srcpkgs/libpyside6                            |   1 +
 srcpkgs/libpyside6-devel                      |   1 +
 srcpkgs/libshiboken6                          |   1 +
 srcpkgs/libshiboken6-devel                    |   1 +
 .../patches/designer-plugin-install-dir.patch |  10 +
 .../python3-pyside6/patches/fix-build.patch   |  14 ++
 .../patches/fix-install-dir.patch             |  10 +
 .../fix-shiboken-wrapper-on-cross.patch       | 186 ++++++++++++++++++
 .../patches/no-python-suffix.patch            |  38 ++++
 srcpkgs/python3-pyside6/template              | 113 +++++++++++
 srcpkgs/python3-pyside6/update                |   3 +
 srcpkgs/python3-shiboken6                     |   1 +
 13 files changed, 382 insertions(+)
 create mode 120000 srcpkgs/libpyside6
 create mode 120000 srcpkgs/libpyside6-devel
 create mode 120000 srcpkgs/libshiboken6
 create mode 120000 srcpkgs/libshiboken6-devel
 create mode 100644 srcpkgs/python3-pyside6/patches/designer-plugin-install-dir.patch
 create mode 100644 srcpkgs/python3-pyside6/patches/fix-build.patch
 create mode 100644 srcpkgs/python3-pyside6/patches/fix-install-dir.patch
 create mode 100644 srcpkgs/python3-pyside6/patches/fix-shiboken-wrapper-on-cross.patch
 create mode 100644 srcpkgs/python3-pyside6/patches/no-python-suffix.patch
 create mode 100644 srcpkgs/python3-pyside6/template
 create mode 100644 srcpkgs/python3-pyside6/update
 create mode 120000 srcpkgs/python3-shiboken6

diff --git a/common/shlibs b/common/shlibs
index 5445c9f3d1f46a..f2855f96f21050 100644
--- a/common/shlibs
+++ b/common/shlibs
@@ -4438,3 +4438,6 @@ libcamera.so.0.2 libcamera-0.2.0_1
 libcamera-base.so.0.2 libcamera-0.2.0_1
 libKPim6MimeTreeParserCore.so.6 mimetreeparser-24.02.0_1
 libKPim6MimeTreeParserWidgets.so.6 mimetreeparser-24.02.0_1
+libpyside6.so.6.6 libpyside6-6.6.0_1
+libpyside6qml.so.6.6 libpyside6-6.6.0_1
+libshiboken6.so.6.6 libshiboken6-6.6.0_1
diff --git a/srcpkgs/libpyside6 b/srcpkgs/libpyside6
new file mode 120000
index 00000000000000..6491748d6ac687
--- /dev/null
+++ b/srcpkgs/libpyside6
@@ -0,0 +1 @@
+python3-pyside6
\ No newline at end of file
diff --git a/srcpkgs/libpyside6-devel b/srcpkgs/libpyside6-devel
new file mode 120000
index 00000000000000..6491748d6ac687
--- /dev/null
+++ b/srcpkgs/libpyside6-devel
@@ -0,0 +1 @@
+python3-pyside6
\ No newline at end of file
diff --git a/srcpkgs/libshiboken6 b/srcpkgs/libshiboken6
new file mode 120000
index 00000000000000..6491748d6ac687
--- /dev/null
+++ b/srcpkgs/libshiboken6
@@ -0,0 +1 @@
+python3-pyside6
\ No newline at end of file
diff --git a/srcpkgs/libshiboken6-devel b/srcpkgs/libshiboken6-devel
new file mode 120000
index 00000000000000..6491748d6ac687
--- /dev/null
+++ b/srcpkgs/libshiboken6-devel
@@ -0,0 +1 @@
+python3-pyside6
\ No newline at end of file
diff --git a/srcpkgs/python3-pyside6/patches/designer-plugin-install-dir.patch b/srcpkgs/python3-pyside6/patches/designer-plugin-install-dir.patch
new file mode 100644
index 00000000000000..e0b4b0c66ae74e
--- /dev/null
+++ b/srcpkgs/python3-pyside6/patches/designer-plugin-install-dir.patch
@@ -0,0 +1,10 @@
+diff --git a/sources/pyside6/plugins/designer/CMakeLists.txt b/sources/pyside6/plugins/designer/CMakeLists.txt
+index 570fee1fe..d95e9ed21 100644
+--- a/sources/pyside6/plugins/designer/CMakeLists.txt
++++ b/sources/pyside6/plugins/designer/CMakeLists.txt
+@@ -53,4 +53,4 @@ target_link_libraries(PySidePlugin PRIVATE
+                       Qt::Widgets
+                       ${SHIBOKEN_PYTHON_LIBRARIES})
+ 
+-install(TARGETS PySidePlugin LIBRARY DESTINATION "plugins/designer")
++install(TARGETS PySidePlugin LIBRARY DESTINATION "lib/qt6/plugins/designer")
diff --git a/srcpkgs/python3-pyside6/patches/fix-build.patch b/srcpkgs/python3-pyside6/patches/fix-build.patch
new file mode 100644
index 00000000000000..bb3f763ef0dfcd
--- /dev/null
+++ b/srcpkgs/python3-pyside6/patches/fix-build.patch
@@ -0,0 +1,14 @@
+diff --git a/sources/pyside6/qtexampleicons/CMakeLists.txt b/sources/pyside6/qtexampleicons/CMakeLists.txt
+index 1562f7b27..58ecc7c17 100644
+--- a/sources/pyside6/qtexampleicons/CMakeLists.txt
++++ b/sources/pyside6/qtexampleicons/CMakeLists.txt
+@@ -32,6 +32,9 @@ elseif(CMAKE_BUILD_TYPE STREQUAL "Release")
+     target_compile_definitions(QtExampleIcons PRIVATE "-DNDEBUG")
+ endif()
+ 
++get_property(SHIBOKEN_PYTHON_LIBRARIES GLOBAL PROPERTY shiboken_python_libraries)
++get_property(SHIBOKEN_PYTHON_INCLUDE_DIRS GLOBAL PROPERTY shiboken_python_include_dirs)
++
+ target_include_directories(QtExampleIcons PRIVATE ${SHIBOKEN_PYTHON_INCLUDE_DIRS})
+ 
+ get_property(SHIBOKEN_PYTHON_LIBRARIES GLOBAL PROPERTY shiboken_python_libraries)
diff --git a/srcpkgs/python3-pyside6/patches/fix-install-dir.patch b/srcpkgs/python3-pyside6/patches/fix-install-dir.patch
new file mode 100644
index 00000000000000..74e441554927ad
--- /dev/null
+++ b/srcpkgs/python3-pyside6/patches/fix-install-dir.patch
@@ -0,0 +1,10 @@
+diff --git a/sources/pyside6/PySide6/CMakeLists.txt b/sources/pyside6/PySide6/CMakeLists.txt
+index e24fdb682..37b7a6c9c 100644
+--- a/sources/pyside6/PySide6/CMakeLists.txt
++++ b/sources/pyside6/PySide6/CMakeLists.txt
+@@ -111,4 +111,4 @@ install(FILES ${CMAKE_CURRENT_BINARY_DIR}/pyside6_global.h
+         DESTINATION include/${BINDING_NAME}${pyside6_SUFFIX})
+ 
+ install(DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/QtAsyncio"
+-        DESTINATION "${CMAKE_CURRENT_BINARY_DIR}")
++        DESTINATION "${PYTHON_SITE_PACKAGES}/${BINDING_NAME}${pyside6_SUFFIX}")
diff --git a/srcpkgs/python3-pyside6/patches/fix-shiboken-wrapper-on-cross.patch b/srcpkgs/python3-pyside6/patches/fix-shiboken-wrapper-on-cross.patch
new file mode 100644
index 00000000000000..9c0df2f894f156
--- /dev/null
+++ b/srcpkgs/python3-pyside6/patches/fix-shiboken-wrapper-on-cross.patch
@@ -0,0 +1,186 @@
+CMake: Fix shiboken_wrapper.sh not existing during yocto cross builds
+
+Previously we tried to reuse an existing host build dir shell wrapper
+to run shiboken. But the wrapper won't be available in a yocto
+cross-build because the file is never installed.
+
+Instead of installing the shell wrapper, save the original host paths
+in exported target properties and always regenerate the wrapper.
+
+The new lookup order is:
+- check the new command line cache vars
+- otherwise use the original host paths when they are valid / exist
+- otherwise use the usual QT6_INSTALL_PREFIX var and LLVM_INSTALL_DIR
+  env var
+
+The new command line cache vars are:
+- SHIBOKEN_WRAPPER_HOST_QT_LIB_PATH
+- SHIBOKEN_WRAPPER_HOST_CLANG_LIB_PATH
+
+Amends cc0481a46f801473c3dbabe855534a7aa034443f
+Amends 4685aca4fc09db54b21814c7e70b62d4689bdccb
+
+Pick-to: 6.6
+Fixes: PYSIDE-2530
+Change-Id: I7ff75e7b8a78427b1ee02662503575a2ea5d4568
+Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
+Reviewed-by: Shyamnath Premnadh <Shyamnath.Premnadh@qt.io>
+diff --git a/sources/shiboken6/cmake/ShibokenHelpers.cmake b/sources/shiboken6/cmake/ShibokenHelpers.cmake
+index b71f01e..298eaf7 100644
+--- a/sources/shiboken6/cmake/ShibokenHelpers.cmake
++++ b/sources/shiboken6/cmake/ShibokenHelpers.cmake
+@@ -690,28 +690,10 @@
+ # tool_name should be a unique tool name, preferably without spaces.
+ # Returns the wrapper path in path_out_var.
+ #
+-# Currently adds the Qt lib dir and libclang to PATH.
++# Currently adds the Qt lib dir and libclang to PATH / LD_LIBRARY_PATH / DYLD_LIBRARY_PATH.
+ # Meant to be used as the first argument to add_custom_command's COMMAND option.
+ # TODO: Remove tool_name as the tool_name for this function is always shiboken.
+ function(shiboken_get_tool_shell_wrapper tool_name path_out_var)
+-
+-    # Make sure that for cross building, the host shiboken_wrapper.sh tool is used instead of target
+-    # shiboken_wrapper.sh when calling shiboken. This wrapper script resolves the dependency to Qt
+-    # libraries.
+-    if((SHIBOKEN_IS_CROSS_BUILD OR PYSIDE_IS_CROSS_BUILD) AND
+-       (CMAKE_HOST_UNIX AND NOT CMAKE_HOST_APPLE))
+-        set(host_tool_wrapper_path
+-            "${QFP_SHIBOKEN_HOST_PATH}/../build/shiboken6/.qfp/bin/shiboken_wrapper.sh")
+-
+-        if(EXISTS "${host_tool_wrapper_path}")
+-            set_property(GLOBAL PROPERTY "_shiboken_tool_wrapper_shiboken_path"
+-                        "${host_tool_wrapper_path}")
+-            set_property(GLOBAL PROPERTY "_shiboken_tool_wrapper_shiboken_created" TRUE)
+-        else()
+-            message(FATAL_ERROR "${host_tool_wrapper_path} does not exist")
+-        endif()
+-    endif()
+-
+     # Generate the wrapper only once during the execution of CMake.
+     get_property(is_called GLOBAL PROPERTY "_shiboken_tool_wrapper_${tool_name}_created")
+ 
+@@ -725,25 +707,56 @@
+     set(path_dirs_native "")
+ 
+     if(CMAKE_HOST_WIN32)
+-        # in Windows the Qt dll are store `bin` in directory
+-        set(qt_library_dir ${QT6_INSTALL_BINS})
+         set(wrapper_script_extension ".bat")
+     else()
+-        # in Unix the .so are stored in `lib` directory
+-        set(qt_library_dir ${QT6_INSTALL_LIBS})
+         set(wrapper_script_extension ".sh")
+     endif()
+ 
++    # Try to get original host shiboken paths from exported target properties.
++    shiboken_get_host_tool_wrapper_properties(orig_qt_library_dir_absolute orig_libclang_lib_dir)
++
++    # Get path to the Qt bin/lib dir depending on the platform and developer input.
++    # Prefer values given on the command line, then the original host path if it exists, otherwise
++    # try to use the Qt install prefix and libclang env vars.
++    #
++    # Note that in a cross-compiling case, using the Qt install prefix is very likely
++    # wrong, because you want to use the location of the host Qt, not the target Qt. Same for
++    # libclang. Unfortunately we currently don't provide a host Qt and host libclang option via
++    # setup.py, so the manual cmake vars will have to suffice.
++    if(SHIBOKEN_WRAPPER_HOST_QT_LIB_PATH AND EXISTS "${SHIBOKEN_WRAPPER_HOST_QT_LIB_PATH}")
++        set(qt_library_dir_absolute "${SHIBOKEN_WRAPPER_HOST_QT_LIB_PATH}")
++    elseif(orig_qt_library_dir_absolute AND EXISTS "${orig_qt_library_dir_absolute}")
++        set(qt_library_dir_absolute "${orig_qt_library_dir_absolute}")
++    elseif(CMAKE_HOST_WIN32)
++        # in Windows the Qt dll are store `bin` in directory
++        set(qt_library_dir ${QT6_INSTALL_BINS})
++    else()
++        # in Unix the .so are stored in `lib` directory
++        set(qt_library_dir ${QT6_INSTALL_LIBS})
++    endif()
++
+     # Assert that Qt is already found.
+-    if(NOT QT6_INSTALL_PREFIX OR NOT qt_library_dir)
++    if((QT6_INSTALL_PREFIX AND qt_library_dir) OR orig_qt_library_dir_absolute)
++    else()
+         message(FATAL_ERROR "Qt should have been found already by now.")
+     endif()
+ 
+-    # Get path to the Qt bin/lib dir depending on the platform
+-    list(APPEND path_dirs "${QT6_INSTALL_PREFIX}/${qt_library_dir}")
++    if(NOT qt_library_dir_absolute)
++        set(qt_library_dir_absolute "${QT6_INSTALL_PREFIX}/${qt_library_dir}")
++    endif()
++    list(APPEND path_dirs "${qt_library_dir_absolute}")
+ 
+-    # find libclang
+-    find_libclang()
++    # Get libclang lib dir path.
++    # Prefer values given on the command line, then the original host path if it exists.
++    if(SHIBOKEN_WRAPPER_HOST_CLANG_LIB_PATH AND EXISTS "${SHIBOKEN_WRAPPER_HOST_CLANG_LIB_PATH}")
++        set(libclang_lib_dir "${SHIBOKEN_WRAPPER_HOST_CLANG_LIB_PATH}")
++    elseif(orig_libclang_lib_dir AND EXISTS "${orig_libclang_lib_dir}")
++        set(libclang_lib_dir "${orig_libclang_lib_dir}")
++    else()
++        # find libclang
++        find_libclang()
++    endif()
++
+     if(libclang_lib_dir)
+         list(APPEND path_dirs "${libclang_lib_dir}")
+     endif()
+@@ -781,6 +794,9 @@
+     set_property(GLOBAL PROPERTY "_shiboken_tool_wrapper_${tool_name}_path" "${wrapper_path}")
+     set_property(GLOBAL PROPERTY "_shiboken_tool_wrapper_${tool_name}_created" TRUE)
+ 
++    # Save original host paths for future cross-builds.
++    shiboken_save_host_tool_wrapper_properties("${qt_library_dir_absolute}" "${libclang_lib_dir}")
++
+     # give execute permission to run the file
+     if(CMAKE_HOST_UNIX)
+         execute_process(COMMAND chmod +x ${wrapper_path})
+@@ -789,6 +805,48 @@
+     set(${path_out_var} "${wrapper_path}" PARENT_SCOPE)
+ endfunction()
+ 
++# Retrieve the original host shiboken runtime dependency paths from the installed (namespaced)
++# shiboken generator target.
++function(shiboken_get_host_tool_wrapper_properties out_qt_library_dir out_libclang_lib_dir)
++    if(TARGET Shiboken6::shiboken6)
++        get_target_property(qt_library_dir Shiboken6::shiboken6 _shiboken_original_qt_lib_dir)
++        if(NOT qt_library_dir)
++            set(qt_library_dir "")
++        endif()
++        get_target_property(libclang_lib_dir Shiboken6::shiboken6
++            _shiboken_original_libclang_lib_dir)
++        if(NOT libclang_lib_dir)
++            set(libclang_lib_dir "")
++        endif()
++    endif()
++
++    set(${out_qt_library_dir} "${qt_library_dir}" PARENT_SCOPE)
++    set(${out_libclang_lib_dir} "${libclang_lib_dir}" PARENT_SCOPE)
++endfunction()
++
++# Save original host shiboken runtime dependency paths as target properties, so they can be used
++# when generating the wrapper file for cross-builds.
++# Should only be done when shiboken is being built (aka it's a non-imported target).
++function(shiboken_save_host_tool_wrapper_properties qt_library_dir libclang_lib_dir)
++    if(TARGET shiboken6)
++        get_target_property(is_imported shiboken6 IMPORTED)
++        if(is_imported)
++            return()
++        endif()
++
++        set_target_properties(shiboken6 PROPERTIES
++            _shiboken_original_qt_lib_dir "${qt_library_dir}")
++        set_property(TARGET shiboken6 APPEND PROPERTY
++            EXPORT_PROPERTIES _shiboken_original_qt_lib_dir)
++        if(libclang_lib_dir)
++            set_target_properties(shiboken6 PROPERTIES
++                _shiboken_original_libclang_lib_dir "${libclang_lib_dir}")
++            set_property(TARGET shiboken6 APPEND PROPERTY
++                EXPORT_PROPERTIES _shiboken_original_libclang_lib_dir)
++        endif()
++    endif()
++endfunction()
++
+ # Returns the platform-specific relative rpath base token, if it's supported.
+ # If it's not supported, returns the string NO_KNOWN_RPATH_REL_BASE.
+ function(get_rpath_base_token out_var)
diff --git a/srcpkgs/python3-pyside6/patches/no-python-suffix.patch b/srcpkgs/python3-pyside6/patches/no-python-suffix.patch
new file mode 100644
index 00000000000000..658c7c69e129ab
--- /dev/null
+++ b/srcpkgs/python3-pyside6/patches/no-python-suffix.patch
@@ -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
+@@ -36,16 +36,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")
+-
+ install(FILES "${CMAKE_CURRENT_BINARY_DIR}/install/Shiboken6Config${PYTHON_CONFIG_SUFFIX}.cmake"
+         DESTINATION "${LIB_INSTALL_DIR}/cmake/Shiboken6")
diff --git a/srcpkgs/python3-pyside6/template b/srcpkgs/python3-pyside6/template
new file mode 100644
index 00000000000000..63094f3cc33d31
--- /dev/null
+++ b/srcpkgs/python3-pyside6/template
@@ -0,0 +1,113 @@
+# Template file for 'python3-pyside6'
+# keep in sync with Qt6
+pkgname=python3-pyside6
+version=6.6.0
+revision=1
+build_style=cmake
+configure_args="
+ -DBUILD_TESTS=OFF
+ -DFORCE_LIMITED_API=no
+ -DNO_QT_TOOLS=yes
+ -DNUMPY_INCLUDE_DIR=/${py3_sitelib}/numpy/core/include
+ -DPYTHON_EXECUTABLE=/usr/bin/python3
+ -Wno-dev"
+hostmakedepends="python3-numpy python3-setuptools qt6-base"
+makedepends="libedit-devel libxslt-devel llvm17-devel python3-devel qt6-3d-devel
+ qt6-base-devel qt6-charts-devel qt6-connectivity-devel qt6-declarative-devel
+ qt6-location-devel qt6-multimedia-devel qt6-networkauth-devel
+ qt6-position-devel qt6-quick3d-devel qt6-remoteobjects-devel qt6-scxml-devel
+ qt6-sensors-devel qt6-serialport-devel qt6-shadertools-devel qt6-speech-devel
+ qt6-speech-plugin-flite qt6-speech-plugin-mock qt6-speech-plugin-speechd
+ qt6-svg-devel qt6-tools-devel qt6-webchannel-devel qt6-websockets-devel
+ $(vopt_if pdf qt6-pdf-devel) $(vopt_if webengine qt6-webengine-devel)"
+depends="python3-shiboken6"
+short_desc="Python bindings of Qt6-based libraries"
+maintainer="chrysos349 <chrysostom349@gmail.com>"
+license="LGPL-3.0-only, GPL-2.0-only"
+homepage="https://doc.qt.io/qtforpython/shiboken6"
+distfiles="https://download.qt.io/official_releases/QtForPython/pyside6/PySide6-${version}-src/pyside-setup-everywhere-src-${version}.tar.xz"
+checksum=2dd002db8851a87173354f38aa8c6ec42d0ff1fac99ea422b29e2dfce52d1638
+conflicts="pyside2-tools"
+
+build_options="pdf webengine"
+
+case "$XBPS_TARGET_MACHINE" in
+	armv5*|armv6*) build_options_default=""    ;;
+	*)             build_options_default="pdf" ;;
+esac
+
+if [ "$XBPS_WORDSIZE$XBPS_WORDSIZE" = "64$XBPS_TARGET_WORDSIZE" ]; then
+	build_options_default+=" webengine"
+fi
+
+if [ "$CROSS_BUILD" ]; then
+	hostmakedepends+=" libglvnd-devel libshiboken6-devel python3-shiboken6"
+
+	case "$XBPS_TARGET_MACHINE" in
+		x86_64*|aarch64*) makedepends+=" libomp-devel";;
+	esac
+
+	configure_args+="
+	 -DQFP_PYTHON_HOST_PATH=/usr/bin/python3
+	 -DQFP_PYTHON_SITE_PACKAGES=/${py3_sitelib}"
+
+	# fix pkg-config file on cross
+	post_patch() {
+		vsed -i sources/shiboken6/data/shiboken6.pc.in \
+			-e "s/PYTHON_EXECUTABLE/QFP_PYTHON_HOST_PATH/"
+	}
+fi
+
+export LLVM_INSTALL_DIR=${XBPS_CROSS_BASE}/usr
+export PYTHONPATH=$PYTHONPATH:${XBPS_BUILDDIR}/${pkgname}-${version}/build/sources
+
+libpyside6-devel_package() {
+	depends="libpyside6-${version}_${revision}
+	 libshiboken6-devel-${version}_${revision}"
+	short_desc+=" - development files"
+	pkg_install() {
+		vmove "usr/lib/cmake/PySide*"
+		vmove "usr/lib/libpyside*.so"
+		vmove usr/include/PySide6
+		vmove usr/lib/pkgconfig/pyside6.pc
+		vmove usr/share
+	}
+}
+
+libpyside6_package() {
+	short_desc+=" - shared library"
+	pkg_install() {
+		vmove "usr/lib/libpyside*.so.*"
+		vmove usr/lib/qt6
+	}
+}
+
+libshiboken6-devel_package() {
+	depends="libshiboken6-${version}_${revision}"
+	short_desc="CPython bindings generator for C++ libraries - development files"
+	pkg_install() {
+		vmove "usr/lib/cmake/Shiboken*"
+		vmove usr/include/shiboken6
+		vmove usr/lib/libshiboken6.so
+		vmove usr/lib/pkgconfig/shiboken6.pc
+	}
+}
+
+libshiboken6_package() {
+	short_desc="CPython bindings generator for C++ libraries - shared library"
+	pkg_install() {
+		vmove "usr/lib/libshiboken6.so*"
+	}
+}
+
+python3-shiboken6_package() {
+	short_desc="CPython bindings generator for C++ libraries"
+	depends="python3"
+	conflicts="shiboken2"
+	pkg_install() {
+		if [ -z "$CROSS_BUILD" ]; then
+			vmove "usr/bin/shiboken*"
+		fi
+		vmove ${py3_sitelib}/shiboken6
+	}
+}
diff --git a/srcpkgs/python3-pyside6/update b/srcpkgs/python3-pyside6/update
new file mode 100644
index 00000000000000..38f0b57b82d932
--- /dev/null
+++ b/srcpkgs/python3-pyside6/update
@@ -0,0 +1,3 @@
+pkgname=pyside-setup-everywhere
+vdprefix=PySide6-
+vdsuffix=-src
diff --git a/srcpkgs/python3-shiboken6 b/srcpkgs/python3-shiboken6
new file mode 120000
index 00000000000000..6491748d6ac687
--- /dev/null
+++ b/srcpkgs/python3-shiboken6
@@ -0,0 +1 @@
+python3-pyside6
\ No newline at end of file

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: New package: python3-pyside6-6.6.0
  2024-05-21  8:14 [PR PATCH] New package: python3-pyside6-6.6.0 chrysos349
  2024-05-21 10:18 ` [PR PATCH] [Updated] " chrysos349
@ 2024-05-23 15:08 ` Calandracas606
  2024-05-23 18:31 ` chrysos349
  2024-06-15 19:15 ` Eloitor
  3 siblings, 0 replies; 5+ messages in thread
From: Calandracas606 @ 2024-05-23 15:08 UTC (permalink / raw)
  To: ml

[-- Attachment #1: Type: text/plain, Size: 196 bytes --]

New comment by Calandracas606 on void-packages repository

https://github.com/void-linux/void-packages/pull/50452#issuecomment-2127381620

Comment:
void already has a shiboken package `shiboken2`

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: New package: python3-pyside6-6.6.0
  2024-05-21  8:14 [PR PATCH] New package: python3-pyside6-6.6.0 chrysos349
  2024-05-21 10:18 ` [PR PATCH] [Updated] " chrysos349
  2024-05-23 15:08 ` Calandracas606
@ 2024-05-23 18:31 ` chrysos349
  2024-06-15 19:15 ` Eloitor
  3 siblings, 0 replies; 5+ messages in thread
From: chrysos349 @ 2024-05-23 18:31 UTC (permalink / raw)
  To: ml

[-- Attachment #1: Type: text/plain, Size: 187 bytes --]

New comment by chrysos349 on void-packages repository

https://github.com/void-linux/void-packages/pull/50452#issuecomment-2127796585

Comment:
@Calandracas606 

good observation. and?

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: New package: python3-pyside6-6.6.0
  2024-05-21  8:14 [PR PATCH] New package: python3-pyside6-6.6.0 chrysos349
                   ` (2 preceding siblings ...)
  2024-05-23 18:31 ` chrysos349
@ 2024-06-15 19:15 ` Eloitor
  3 siblings, 0 replies; 5+ messages in thread
From: Eloitor @ 2024-06-15 19:15 UTC (permalink / raw)
  To: ml

[-- Attachment #1: Type: text/plain, Size: 212 bytes --]

New comment by Eloitor on void-packages repository

https://github.com/void-linux/void-packages/pull/50452#issuecomment-2170542020

Comment:
Hydrus needs this package now. Once this is merged I'll update hydrus.

^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2024-06-15 19:15 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2024-05-21  8:14 [PR PATCH] New package: python3-pyside6-6.6.0 chrysos349
2024-05-21 10:18 ` [PR PATCH] [Updated] " chrysos349
2024-05-23 15:08 ` Calandracas606
2024-05-23 18:31 ` chrysos349
2024-06-15 19:15 ` Eloitor

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).