summaryrefslogtreecommitdiff
path: root/libre/pyside6/PKGBUILD
diff options
context:
space:
mode:
Diffstat (limited to 'libre/pyside6/PKGBUILD')
-rw-r--r--libre/pyside6/PKGBUILD168
1 files changed, 168 insertions, 0 deletions
diff --git a/libre/pyside6/PKGBUILD b/libre/pyside6/PKGBUILD
new file mode 100644
index 000000000..6ec03add6
--- /dev/null
+++ b/libre/pyside6/PKGBUILD
@@ -0,0 +1,168 @@
+# Maintainer (arch): Antonio Rojas <arojas@archlinux.org>
+# Maintainer (arch): Felix Yan <felixonmars@archlinux.org>
+# Maintainer: Parabola Hackers <dev@lists.parabola.nu>
+# Contributor: bill-auger <bill-auger@programmer.net>
+
+
+# parabola changes and rationale:
+# libre:
+# - remove 'qt6-webengine' dependency
+# technical:
+# - add support for armv7h and i686
+# - build from versioned source-ball rather than VCS
+
+
+pkgbase=pyside6
+pkgname=(pyside6
+ pyside6-tools
+ shiboken6)
+_qtver=6.7.0
+_clangver=17.0.6
+pkgver=${_qtver/-/}
+pkgrel=4
+_pkgver_i686=6.4.2
+_pkgrel_i686=5.0
+eval "[[ -v _pkgver_${CARCH} ]] && pkgver=\$_pkgver_${CARCH}" # our different arches do not
+eval "[[ -v _pkgrel_${CARCH} ]] && pkgrel=\$_pkgrel_${CARCH}" # always roll at the same speed
+arch=(x86_64)
+arch+=(armv7h i686)
+url='https://www.qt.io'
+license=(LGPL)
+makedepends=(clang
+ cmake
+ git
+ llvm
+ ninja
+ python-numpy
+ python-setuptools
+ qt6-3d
+ qt6-charts
+ qt6-connectivity
+ qt6-datavis3d
+ qt6-graphs
+ qt6-httpserver
+ qt6-location
+ qt6-multimedia
+ qt6-networkauth
+ qt6-positioning
+ qt6-quick3d
+ qt6-remoteobjects
+ qt6-scxml
+ qt6-sensors
+ qt6-serialbus
+ qt6-serialport
+ qt6-shadertools
+ qt6-speech
+ qt6-svg
+ qt6-tools
+ qt6-webchannel
+ qt6-webengine
+ qt6-websockets)
+makedepends=( ${makedepends[*]/git/} )
+makedepends=( ${makedepends[*]/qt6-webengine/} )
+_src_dir=pyside-setup-everywhere-src-$_qtver
+source=(https://download.qt.io/official_releases/QtForPython/pyside6/PySide6-$pkgver-src/${_src_dir}.tar.xz
+ fix-build.patch)
+sha256sums=('82eae370737df5ecf539c165d09d7c81d5fc6153a541b8d3d37b11275f9e3e8f'
+ '77b83cb164ea87d826259864f6a81fb33199510e1948d6daaf5c8d5ab55735a7')
+
+prepare() {
+ ln -fs ${_src_dir} pyside-setup # link source-ball root dir as VCS root dirname
+
+ patch -d pyside-setup -p1 < fix-build.patch
+}
+
+build() {
+ cmake -B build -S pyside-setup -G Ninja \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ -DCMAKE_BUILD_TYPE=None \
+ -DSHIBOKEN_PYTHON_LIBRARIES=`pkgconf python3-embed --libs` \
+ -DBUILD_TESTS=OFF \
+ -DFORCE_LIMITED_API=no \
+ -DNO_QT_TOOLS=yes
+ PYTHONPATH="$PWD"/build/sources \
+ cmake --build build
+}
+
+package_shiboken6() {
+ pkgdesc='Generates bindings for C++ libraries using CPython source code'
+ depends=(clang=$_clangver
+ gcc-libs
+ glibc
+ libxml2
+ libxslt
+ llvm
+ python
+ qt6-base)
+ optdepends=('python: Python bindings')
+
+ DESTDIR="$pkgdir" cmake --install build/sources/shiboken6
+
+# Install egg-info
+ export PATH="/usr/lib/qt6/bin:$PATH"
+ cd pyside-setup
+ python setup.py egg_info --build-type=shiboken6
+ python setup.py egg_info --build-type=shiboken6-generator
+ _pythonpath=`python -c "from sysconfig import get_path; print(get_path('platlib'))"`
+ cp -r shiboken6*.egg-info "$pkgdir"/$_pythonpath
+}
+
+package_pyside6() {
+ pkgdesc='Enables the use of Qt6 APIs in Python applications'
+ depends=(gcc-libs
+ glibc
+ python
+ qt6-base
+ qt6-declarative
+ shiboken6)
+ optdepends=('qt6-3d: Qt3D bindings'
+ 'qt6-charts: QtCharts bindings'
+ 'qt6-connectivity: QtBluetooth and QtNfc bindings'
+ 'qt6-datavis3d: QtDataVisualization bindings'
+ 'qt6-graphs: QtGraphs bindings'
+ 'qt6-httpserver: QtHttpServer bindings'
+ 'qt6-location: QtLocation bindings'
+ 'qt6-multimedia: QtMultimedia bindings'
+ 'qt6-networkauth: QtNetworkAuth bindings'
+ 'qt6-positioning: QtPositioning bindings'
+ 'qt6-quick3d: QtQuick3D bindings'
+ 'qt6-remoteobjects: QtRemoteObjects bindings'
+ 'qt6-scxml: QtScxml bindings'
+ 'qt6-sensors: QtSensors bindings'
+ 'qt6-serialbus: QtSerialBus bindings'
+ 'qt6-serialport: QtSerialPort bindings'
+ 'qt6-speech: QtTextToSpeech bindings'
+ 'qt6-svg: QtSvg bindings'
+ 'qt6-tools: QtHelp, QtUiTools bindings'
+ 'qt6-webchannel: QtWebChannel bindings'
+ #'qt6-webengine: QtWebEngine bindings'
+ 'qt6-websockets: QtWebSockets bindings')
+ provides=(qt6-python-bindings)
+
+ DESTDIR="$pkgdir" cmake --install build/sources/pyside6
+
+# Install egg-info
+ export PATH="/usr/lib/qt6/bin:$PATH"
+ cd pyside-setup
+ python setup.py egg_info --build-type=pyside6
+ _pythonpath=`python -c "from sysconfig import get_path; print(get_path('platlib'))"`
+ cp -r PySide6.egg-info "$pkgdir"/$_pythonpath
+
+# Install pyi files
+ install -Dm644 "$srcdir"/build/sources/pyside6/PySide6/*.pyi -t "$pkgdir"/usr/lib/python*/site-packages/PySide6
+}
+
+package_pyside6-tools() {
+ pkgdesc='Tools for pyside6'
+ depends=(pyside6
+ python)
+ optdepends=('nuitka: for deploy.py')
+
+ DESTDIR="$pkgdir" cmake --install build/sources/pyside-tools
+
+# Add convenience pyside6-designer wrapper
+# Entry points in /usr/bin are not installed in the cmake build. This is the only one that does anything besides wrapping the Qt executable
+ echo "export LD_PRELOAD="`python -c "from sysconfig import get_config_var; print(get_config_var('LDLIBRARY'))"` > pyside6-designer
+ echo "exec designer6 \$@" >> pyside6-designer
+ install -Dm755 pyside6-designer -t "$pkgdir"/usr/bin
+}