diff options
Diffstat (limited to 'libre/pyside6/PKGBUILD')
-rw-r--r-- | libre/pyside6/PKGBUILD | 168 |
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 +} |