summarylogtreecommitdiffstats
diff options
context:
space:
mode:
authorAntonio Rojas2022-03-21 15:30:24 +0000
committerAntonio Rojas2022-03-21 15:30:24 +0000
commita2fbf6eec8bbb21988f9690efefd9440e53d206d (patch)
treeb7e7e73b16638f71b722bfe7246d4cff8e0927a1
parent8e7609a8a86f82d19d9c831b47c4389a428b0320 (diff)
downloadaur-a2fbf6eec8bbb21988f9690efefd9440e53d206d.tar.gz
Fixed upstream tarball, merge shiboken2 and pyside2-tools
-rw-r--r--PKGBUILD78
-rw-r--r--python310.patch46
2 files changed, 75 insertions, 49 deletions
diff --git a/PKGBUILD b/PKGBUILD
index a89cae99311a..f36d1b127b65 100644
--- a/PKGBUILD
+++ b/PKGBUILD
@@ -1,19 +1,19 @@
# Maintainer: Antonio Rojas <arojas@archlinux.org>
# Maintainer: Felix Yan <felixonmars@archlinux.org>
-pkgname=pyside2
+pkgbase=pyside2
+pkgname=(shiboken2 python-shiboken2 pyside2 pyside2-tools)
_qtver=5.15.3
+_clangver=13.0.1
pkgver=${_qtver/-/}
-pkgrel=1
+pkgrel=2
arch=(x86_64)
url='https://www.qt.io'
license=(LGPL)
-pkgdesc='Enables the use of Qt5 APIs in Python applications'
-depends=(python-shiboken2 qt5-declarative)
-makedepends=(shiboken2 cmake python-setuptools
+makedepends=(cmake python-setuptools llvm clang=$_clangver
qt5-multimedia qt5-tools qt5-sensors qt5-charts qt5-webengine qt5-datavis3d
qt5-websockets qt5-speech qt5-3d qt5-svg qt5-script qt5-scxml qt5-x11extras
- qt5-quickcontrols2 qt5-serialport qt5-remoteobjects)
+ qt5-quickcontrols2 qt5-serialport qt5-remoteobjects qt5-xmlpatterns)
optdepends=('qt5-svg: QtSvg bindings'
'qt5-script: QtScript bindings'
'qt5-speech: QtTextToSpeech bindings'
@@ -29,34 +29,82 @@ optdepends=('qt5-svg: QtSvg bindings'
'qt5-remoteobjects: QtRemoteObjects bindings'
'qt5-serialport: QtSerialPort bindings'
'qt5-quickcontrols2: QtQuickControls2 bindings')
-groups=(qt qt5)
-conflicts=(python-pyside2)
-provides=(python-pyside2 qt5-python-bindings)
-replaces=(python-pyside2)
_pkgfqn=pyside-setup-opensource-src-$_qtver
source=(https://download.qt.io/official_releases/QtForPython/pyside2/PySide2-$pkgver-src/${_pkgfqn}.tar.xz
python310.patch)
-sha256sums=('69481d137d80ed42461cbdb06cee06477f0a8cbe235d61b56472a66ed7982093'
- '4c23df7c69e3c258261b8648ca3ce0eb054282b9da4dd79f707d97772aa4b459')
+sha256sums=('7ff5f1cc4291fffb6d5a3098b3090abe4d415da2adec740b4e901893d95d7137'
+ 'dcda195170a2ada52d7914be8535926e9deea7bdcd006a4ea37b1b82dbe5cae4')
prepare() {
patch -d $_pkgfqn -p1 -i ../python310.patch # Fix build with Python 3.10
}
build() {
- cmake -B build -S $_pkgfqn/sources/pyside2 \
+ cmake -B build -S $_pkgfqn \
-DCMAKE_INSTALL_PREFIX=/usr \
+ -DCMAKE_BUILD_TYPE=None \
-DBUILD_TESTS=OFF \
-DPYTHON_EXECUTABLE=/usr/bin/python
cmake --build build
}
-package() {
- DESTDIR="$pkgdir" cmake --install build
+package_shiboken2() {
+ pkgdesc='Generates bindings for C++ libraries using CPython source code'
+ depends=(clang=$_clangver llvm libxslt qt5-xmlpatterns)
+
+ DESTDIR="$pkgdir" cmake --install build/sources/shiboken2
+# Provided in python-shiboken2
+ rm -r "$pkgdir"/usr/lib/{python*,libshiboken*}
+# Conflicts with shiboken6 and doesn't work anyway
+ rm "$pkgdir"/usr/bin/shiboken_tool.py
+}
+
+package_python-shiboken2() {
+ pkgdesc='Python bindings for shiboken2'
+ depends=(python)
+
+ DESTDIR="$pkgdir" cmake --install build/sources/shiboken2
+# Provided in shiboken2
+ rm -r "$pkgdir"/usr/{bin,include,lib/{cmake,pkgconfig}}
# Install egg-info
cd $_pkgfqn
+ python setup.py egg_info --build-type=shiboken2
+ _pythonpath=`python -c "from sysconfig import get_path; print(get_path('platlib'))"`
+ cp -r shiboken2.egg-info "$pkgdir"/$_pythonpath
+}
+
+package_pyside2() {
+ pkgdesc='Enables the use of Qt5 APIs in Python applications'
+ depends=(python-shiboken2 qt5-declarative)
+ optdepends=('qt5-svg: QtSvg bindings'
+ 'qt5-script: QtScript bindings'
+ 'qt5-speech: QtTextToSpeech bindings'
+ 'qt5-websockets: QtWebSockets bindings'
+ 'qt5-webengine: QtWebEngine bindings'
+ 'qt5-datavis3d: QtDataVisualization bindings'
+ 'qt5-scxml: QtScxml bindings'
+ 'qt5-sensors: QtSensors bindings'
+ 'qt5-3d: Qt3D bindings'
+ 'qt5-x11extras: QtX11Extras bindings'
+ 'qt5-charts: QtCharts bindings'
+ 'qt5-tools: QtHelp bindings'
+ 'qt5-remoteobjects: QtRemoteObjects bindings'
+ 'qt5-serialport: QtSerialPort bindings'
+ 'qt5-quickcontrols2: QtQuickControls2 bindings')
+
+ DESTDIR="$pkgdir" cmake --install build/sources/pyside2
+# Install egg-info
+ cd $_pkgfqn
python setup.py egg_info --build-type=pyside2
_pythonpath=`python -c "from sysconfig import get_path; print(get_path('platlib'))"`
cp -r PySide2.egg-info "$pkgdir"/$_pythonpath
}
+
+package_pyside2-tools() {
+ pkgdesc='Tools for PySide2'
+ depends=(pyside2)
+
+ DESTDIR="$pkgdir" cmake --install build/sources/pyside2-tools
+ rm "$pkgdir"/usr/bin/{rcc,uic,designer} # provided by qt5-base
+}
diff --git a/python310.patch b/python310.patch
index c61b5f287435..e6af59c84818 100644
--- a/python310.patch
+++ b/python310.patch
@@ -1,34 +1,12 @@
-diff --git a/build_scripts/config.py b/build_scripts/config.py
-index b1b32068d..00cbd3fc9 100644
---- a/build_scripts/config.py
-+++ b/build_scripts/config.py
-@@ -93,6 +93,7 @@ class Config(object):
- 'Programming Language :: Python :: 3.7',
- 'Programming Language :: Python :: 3.8',
- 'Programming Language :: Python :: 3.9',
-+ 'Programming Language :: Python :: 3.10',
- ]
-
- self.setup_script_dir = None
-@@ -135,7 +136,7 @@ class Config(object):
- setup_kwargs['zip_safe'] = False
- setup_kwargs['cmdclass'] = cmd_class_dict
- setup_kwargs['version'] = package_version
-- setup_kwargs['python_requires'] = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*, <3.10"
-+ setup_kwargs['python_requires'] = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*, <3.11"
-
- if quiet:
- # Tells distutils / setuptools to be quiet, and only print warnings or errors.
-diff --git a/build_scripts/wheel_override.py b/build_scripts/wheel_override.py
-index 66141763b..3f3c12a2e 100644
---- a/build_scripts/wheel_override.py
-+++ b/build_scripts/wheel_override.py
-@@ -90,7 +90,7 @@ class PysideBuildWheel(_bdist_wheel, DistUtilsCommandMixin):
- limited_api_enabled = (OPTION["LIMITED_API"] == 'yes'
- and sys.version_info[0] >= 3)
- if limited_api_enabled:
-- self.py_limited_api = "cp35.cp36.cp37.cp38.cp39"
-+ self.py_limited_api = "cp35.cp36.cp37.cp38.cp39.cp310"
-
- self._package_version = get_package_version()
-
+diff -upr pyside-setup-opensource-src-5.15.2.orig/sources/shiboken2/libshiboken/pep384impl.cpp pyside-setup-opensource-src-5.15.2/sources/shiboken2/libshiboken/pep384impl.cpp
+--- pyside-setup-opensource-src-5.15.2.orig/sources/shiboken2/libshiboken/pep384impl.cpp 2020-11-11 14:51:30.000000000 +0200
++++ pyside-setup-opensource-src-5.15.2/sources/shiboken2/libshiboken/pep384impl.cpp 2021-12-01 15:17:21.444888977 +0200
+@@ -751,7 +751,7 @@ _Pep_PrivateMangle(PyObject *self, PyObj
+ #endif // IS_PY2
+ Shiboken::AutoDecRef privateobj(PyObject_GetAttr(
+ reinterpret_cast<PyObject *>(Py_TYPE(self)), Shiboken::PyMagicName::name()));
+-#ifndef Py_LIMITED_API
++#if 0
+ return _Py_Mangle(privateobj, name);
+ #else
+ // PYSIDE-1436: _Py_Mangle is no longer exposed; implement it always.