# Template file for 'python-PyQt5' pkgname=python-PyQt5 version=5.13.0 revision=1 _sipver=4.19.18 lib32disabled=yes wrksrc="PyQt5_gpl-${version}" pycompile_module="PyQt5" hostmakedepends="pkg-config python-devel python3-devel python-sip-devel python3-sip-devel python-dbus-devel qt5-tools-devel qt5-connectivity-devel qt5-declarative-devel qt5-location-devel qt5-multimedia-devel qt5-sensors-devel qt5-serialport-devel qt5-svg-devel qt5-webchannel-devel qt5-webkit-devel qt5-websockets-devel qt5-x11extras-devel qt5-xmlpatterns-devel qt5-networkauth-devel pulseaudio-devel python-enum34" makedepends="${hostmakedepends/pkg-config/}" depends="python-sip-PyQt5>=${_sipver} python-enum34" short_desc="Python2 bindings for the Qt5 toolkit" maintainer="Alessio Sergi <al3hex@gmail.com>" homepage="https://riverbankcomputing.com/software/pyqt/intro" license="GPL-3.0-only" distfiles="https://www.riverbankcomputing.com/static/Downloads/PyQt5/${version}/PyQt5_gpl-${version}.tar.gz" checksum=0cdbffe5135926527b61cc3692dd301cd0328dd87eeaf1313e610787c46faff9 pre_build() { mkdir -p pyqt5-${py2_ver} mv * pyqt5-${py2_ver} || true cp -a pyqt5-${py2_ver} pyqt5-${py3_ver} rm -rf pyqt5-${py2_ver}/pyuic/uic/port_v3 rm -rf pyqt5-${py3_ver}/pyuic/uic/port_v2 } do_build() { local _sysroot= _configuration= py_abiver= qt_version for pyver in $py2_ver $py3_ver; do if [ "$pyver" = "$py3_ver" ]; then py_abiver="$py3_abiver" fi cd $wrksrc/pyqt5-$pyver if [ "$CROSS_BUILD" ]; then qt_version=$(qmake -query QT_VERSION) cat > pyqt5_${XBPS_CROSS_TRIPLET}.cfg <<EOF py_platform = linux py_inc_dir = %(sysroot)/usr/include/python%(py_major).%(py_minor)${py_abiver} py_pyshlib = python%(py_major).%(py_minor)${py_abiver}.so pyqt_disabled_features = PyQt_Desktop_OpenGL PyQt_qreal_double qt_shared = True [Qt ${qt_version}] # _QOpenGLFunctions_ES2 doesn't work pyqt_modules = QtCore QtGui QtHelp QtMultimedia QtMultimediaWidgets QtNetwork QtOpenGL QtPrintSupport QtQml QtQuick QtSql QtSvg QtTest QtWebKit QtWebKitWidgets QtWidgets QtXml QtXmlPatterns QtDesigner QtDBus QtSensors QtSerialPort QtX11Extras QtBluetooth QtPositioning QtQuickWidgets QtWebSockets QtWebChannel QtLocation QtNfc QtNetworkAuth EOF _sysroot="--sysroot $XBPS_CROSS_BASE" _configuration="--configuration $wrksrc/pyqt5-$pyver/pyqt5_${XBPS_CROSS_TRIPLET}.cfg" fi python${pyver} configure.py --confirm-license --assume-shared --no-dist-info $_sysroot $_configuration \ QMAKE_CC="${CC}" QMAKE_CFLAGS="${CFLAGS}" QMAKE_CXX="${CXX}" QMAKE_CXXFLAGS="${CXXFLAGS}" \ QMAKE_LINK="${CXX}" QMAKE_LINK_SHLIB="${CXX}" QMAKE_LFLAGS="${LDFLAGS}" QMAKE_STRIP="" if [ "$CROSS_BUILD" ]; then # Fix location of libraries find . -name Makefile | xargs sed -i -E "s|(/usr/lib/libQt5[^ ]+so)|${XBPS_CROSS_BASE}\1|g" fi make ${makejobs} done } do_install() { # install python-pyqt5 make -C pyqt5-${py2_ver} DESTDIR=${DESTDIR} INSTALL_ROOT=${DESTDIR} install for f in pylupdate5 pyrcc5 pyuic5; do sed -i 's,/usr/bin/python2.7,/usr/bin/python2,' ${DESTDIR}/usr/bin/${f} mv ${DESTDIR}/usr/bin/{,python2-}${f} done # install python3-pyqt5 make -C pyqt5-${py3_ver} DESTDIR=${DESTDIR} INSTALL_ROOT=${DESTDIR} install for f in pylupdate5 pyrcc5 pyuic5; do sed -i 's,/usr/bin/python3[.0-9]*,/usr/bin/python3,' ${DESTDIR}/usr/bin/${f} mv ${DESTDIR}/usr/bin/{,python3-}${f} done } python-PyQt5-devel-tools_package() { lib32disabled=yes depends="${sourcepkg}-${version}_${revision}" short_desc+=" - development tools" alternatives=" pyqt5:pylupdate5:/usr/bin/python2-pylupdate5 pyqt5:pyrcc5:/usr/bin/python2-pyrcc5 pyqt5:pyuic5:/usr/bin/python2-pyuic5" pycompile_module="PyQt5" pkg_install() { vmove usr/bin/python2-* vmove ${py2_sitelib}/PyQt5/pylupdate.so vmove ${py2_sitelib}/PyQt5/pylupdate_main.py vmove ${py2_sitelib}/PyQt5/pyrcc.so vmove ${py2_sitelib}/PyQt5/pyrcc_main.py } } python3-PyQt5-devel-tools_package() { lib32disabled=yes depends="python3-PyQt5-${version}_${revision}" short_desc="${short_desc/Python2/Python3} - development tools" alternatives=" pyqt5:pylupdate5:/usr/bin/python3-pylupdate5 pyqt5:pyrcc5:/usr/bin/python3-pyrcc5 pyqt5:pyuic5:/usr/bin/python3-pyuic5" pycompile_module="PyQt5" pkg_install() { vmove usr/bin/python3-* vmove ${py3_sitelib}/PyQt5/pylupdate.so vmove ${py3_sitelib}/PyQt5/pylupdate_main.py vmove ${py3_sitelib}/PyQt5/pyrcc.so vmove ${py3_sitelib}/PyQt5/pyrcc_main.py } } python-PyQt5-devel_package() { depends="python-sip-devel python3-sip-devel python-PyQt5-${version}_${revision} python3-PyQt5-${version}_${revision}" short_desc+=" - development files" pkg_install() { vmove usr/share/sip } } python-PyQt5-dbus_package() { lib32disabled=yes depends="${sourcepkg}-${version}_${revision} python-dbus" short_desc+=" - dbus support" pkg_install() { vmove ${py2_sitelib}/dbus/mainloop/pyqt5.so } } python-PyQt5-connectivity_package() { lib32disabled=yes depends="${sourcepkg}-${version}_${revision}" short_desc+=" - connectivity module" pkg_install() { vmove ${py2_sitelib}/PyQt5/QtBluetooth.so vmove ${py2_sitelib}/PyQt5/QtNfc.so } } python-PyQt5-multimedia_package() { lib32disabled=yes depends="${sourcepkg}-${version}_${revision}" short_desc+=" - multimedia module" pkg_install() { vmove ${py2_sitelib}/PyQt5/QtMultimedia.so vmove ${py2_sitelib}/PyQt5/QtMultimediaWidgets.so } } python-PyQt5-networkauth_package() { lib32disabled=yes depends="${sourcepkg}-${version}_${revision} python-enum34" short_desc+=" - networkauth module" pkg_install() { vmove ${py2_sitelib}/PyQt5/QtNetworkAuth.so } } python-PyQt5-opengl_package() { lib32disabled=yes depends="${sourcepkg}-${version}_${revision}" short_desc+=" - opengl module" pkg_install() { vmove ${py2_sitelib}/PyQt5/QtOpenGL.so if [ -z "$CROSS_BUILD" ]; then vmove ${py2_sitelib}/PyQt5/_QOpenGLFunctions_*.so fi } } python-PyQt5-location_package() { lib32disabled=yes depends="${sourcepkg}-${version}_${revision}" short_desc+=" - location module" pkg_install() { vmove ${py2_sitelib}/PyQt5/QtLocation.so vmove ${py2_sitelib}/PyQt5/QtPositioning.so } } python-PyQt5-quick_package() { lib32disabled=yes depends="${sourcepkg}-${version}_${revision}" short_desc+=" - quick module" pkg_install() { vmove ${py2_sitelib}/PyQt5/QtQml.so vmove ${py2_sitelib}/PyQt5/QtQuick.so vmove ${py2_sitelib}/PyQt5/QtQuickWidgets.so } } python-PyQt5-sensors_package() { lib32disabled=yes depends="${sourcepkg}-${version}_${revision}" short_desc+=" - sensors module" pkg_install() { vmove ${py2_sitelib}/PyQt5/QtSensors.so } } python-PyQt5-serialport_package() { lib32disabled=yes depends="${sourcepkg}-${version}_${revision}" short_desc+=" - serialport module" pkg_install() { vmove ${py2_sitelib}/PyQt5/QtSerialPort.so } } python-PyQt5-sql_package() { lib32disabled=yes depends="${sourcepkg}-${version}_${revision}" short_desc+=" - sql module" pkg_install() { vmove ${py2_sitelib}/PyQt5/QtSql.so } } python-PyQt5-svg_package() { lib32disabled=yes depends="${sourcepkg}-${version}_${revision}" short_desc+=" - svg module" pkg_install() { vmove ${py2_sitelib}/PyQt5/QtSvg.so } } python-PyQt5-tools_package() { lib32disabled=yes depends="${sourcepkg}-${version}_${revision}" short_desc+=" - designer, help modules" pkg_install() { vmove ${py2_sitelib}/PyQt5/QtHelp.so vmove ${py2_sitelib}/PyQt5/QtDesigner.so } } python-PyQt5-webchannel_package() { lib32disabled=yes depends="${sourcepkg}-${version}_${revision}" short_desc+=" - webchannel module" pkg_install() { vmove ${py2_sitelib}/PyQt5/QtWebChannel.so } } python-PyQt5-webkit_package() { lib32disabled=yes depends="${sourcepkg}-${version}_${revision}" short_desc+=" - webkit module" pkg_install() { vmove ${py2_sitelib}/PyQt5/QtWebKit.so vmove ${py2_sitelib}/PyQt5/QtWebKitWidgets.so } } python-PyQt5-websockets_package() { lib32disabled=yes depends="${sourcepkg}-${version}_${revision}" short_desc+=" - websockets module" pkg_install() { vmove ${py2_sitelib}/PyQt5/QtWebSockets.so } } python-PyQt5-x11extras_package() { lib32disabled=yes depends="${sourcepkg}-${version}_${revision}" short_desc+=" - x11extras module" pkg_install() { vmove ${py2_sitelib}/PyQt5/QtX11Extras.so } } python-PyQt5-xmlpatterns_package() { lib32disabled=yes depends="${sourcepkg}-${version}_${revision}" short_desc+=" - xmlpatterns module" pkg_install() { vmove ${py2_sitelib}/PyQt5/QtXmlPatterns.so } } python3-PyQt5_package() { lib32disabled=yes pycompile_module="PyQt5" depends="python3-sip-PyQt5>=${_sipver}" short_desc="${short_desc/Python2/Python3}" pkg_install() { vmove ${py3_sitelib} } } python3-PyQt5-dbus_package() { lib32disabled=yes depends="python3-PyQt5-${version}_${revision} python3-dbus" short_desc="${short_desc/Python2/Python3} - dbus support" pkg_install() { vmove ${py3_sitelib}/dbus/mainloop/pyqt5.so } } python3-PyQt5-connectivity_package() { lib32disabled=yes depends="python3-PyQt5-${version}_${revision}" short_desc="${short_desc/Python2/Python3} - connectivity module" pkg_install() { vmove ${py3_sitelib}/PyQt5/QtBluetooth.pyi vmove ${py3_sitelib}/PyQt5/QtBluetooth.so vmove ${py3_sitelib}/PyQt5/QtNfc.pyi vmove ${py3_sitelib}/PyQt5/QtNfc.so } } python3-PyQt5-multimedia_package() { lib32disabled=yes depends="python3-PyQt5-${version}_${revision}" short_desc="${short_desc/Python2/Python3} - multimedia module" pkg_install() { vmove ${py3_sitelib}/PyQt5/QtMultimedia.pyi vmove ${py3_sitelib}/PyQt5/QtMultimedia.so vmove ${py3_sitelib}/PyQt5/QtMultimediaWidgets.pyi vmove ${py3_sitelib}/PyQt5/QtMultimediaWidgets.so } } python3-PyQt5-networkauth_package() { lib32disabled=yes depends="python3-PyQt5-${version}_${revision}" short_desc="${short_desc/Python2/Python3} - networkauth module" pkg_install() { vmove ${py3_sitelib}/PyQt5/QtNetworkAuth.pyi vmove ${py3_sitelib}/PyQt5/QtNetworkAuth.so } } python3-PyQt5-opengl_package() { lib32disabled=yes depends="python3-PyQt5-${version}_${revision}" short_desc="${short_desc/Python2/Python3} - opengl module" pkg_install() { vmove ${py3_sitelib}/PyQt5/QtOpenGL.pyi vmove ${py3_sitelib}/PyQt5/QtOpenGL.so if [ -z "$CROSS_BUILD" ]; then vmove ${py3_sitelib}/PyQt5/_QOpenGLFunctions_*.so fi } } python3-PyQt5-location_package() { lib32disabled=yes depends="python3-PyQt5-${version}_${revision}" short_desc="${short_desc/Python2/Python3} - location module" pkg_install() { vmove ${py3_sitelib}/PyQt5/QtLocation.pyi vmove ${py3_sitelib}/PyQt5/QtLocation.so vmove ${py3_sitelib}/PyQt5/QtPositioning.pyi vmove ${py3_sitelib}/PyQt5/QtPositioning.so } } python3-PyQt5-quick_package() { lib32disabled=yes depends="python3-PyQt5-${version}_${revision}" short_desc="${short_desc/Python2/Python3} - quick module" pkg_install() { vmove ${py3_sitelib}/PyQt5/QtQml.pyi vmove ${py3_sitelib}/PyQt5/QtQml.so vmove ${py3_sitelib}/PyQt5/QtQuick.pyi vmove ${py3_sitelib}/PyQt5/QtQuick.so vmove ${py3_sitelib}/PyQt5/QtQuickWidgets.pyi vmove ${py3_sitelib}/PyQt5/QtQuickWidgets.so vmove usr/lib/qt5/plugins/PyQt5/libpyqt5qmlplugin.so } } python3-PyQt5-sensors_package() { lib32disabled=yes depends="python3-PyQt5-${version}_${revision}" short_desc="${short_desc/Python2/Python3} - sensors module" pkg_install() { vmove ${py3_sitelib}/PyQt5/QtSensors.pyi vmove ${py3_sitelib}/PyQt5/QtSensors.so } } python3-PyQt5-serialport_package() { lib32disabled=yes depends="python3-PyQt5-${version}_${revision}" short_desc="${short_desc/Python2/Python3} - serialport module" pkg_install() { vmove ${py3_sitelib}/PyQt5/QtSerialPort.pyi vmove ${py3_sitelib}/PyQt5/QtSerialPort.so } } python3-PyQt5-sql_package() { lib32disabled=yes depends="python3-PyQt5-${version}_${revision}" short_desc="${short_desc/Python2/Python3} - sql module" pkg_install() { vmove ${py3_sitelib}/PyQt5/QtSql.pyi vmove ${py3_sitelib}/PyQt5/QtSql.so } } python3-PyQt5-svg_package() { lib32disabled=yes depends="python3-PyQt5-${version}_${revision}" short_desc="${short_desc/Python2/Python3} - svg module" pkg_install() { vmove ${py3_sitelib}/PyQt5/QtSvg.pyi vmove ${py3_sitelib}/PyQt5/QtSvg.so } } python3-PyQt5-tools_package() { lib32disabled=yes depends="python3-PyQt5-${version}_${revision}" short_desc="${short_desc/Python2/Python3} - designer, help modules" pkg_install() { vmove ${py3_sitelib}/PyQt5/QtHelp.pyi vmove ${py3_sitelib}/PyQt5/QtHelp.so vmove ${py3_sitelib}/PyQt5/QtDesigner.pyi vmove ${py3_sitelib}/PyQt5/QtDesigner.so vmove usr/lib/qt5/plugins/designer/libpyqt5.so } } python3-PyQt5-webchannel_package() { lib32disabled=yes depends="python3-PyQt5-${version}_${revision}" short_desc="${short_desc/Python2/Python3} - webchannel module" pkg_install() { vmove ${py3_sitelib}/PyQt5/QtWebChannel.pyi vmove ${py3_sitelib}/PyQt5/QtWebChannel.so } } python3-PyQt5-webkit_package() { lib32disabled=yes depends="python3-PyQt5-${version}_${revision}" short_desc="${short_desc/Python2/Python3} - webkit module" pkg_install() { vmove ${py3_sitelib}/PyQt5/QtWebKit.pyi vmove ${py3_sitelib}/PyQt5/QtWebKit.so vmove ${py3_sitelib}/PyQt5/QtWebKitWidgets.pyi vmove ${py3_sitelib}/PyQt5/QtWebKitWidgets.so } } python3-PyQt5-websockets_package() { lib32disabled=yes depends="python3-PyQt5-${version}_${revision}" short_desc="${short_desc/Python2/Python3} - websockets module" pkg_install() { vmove ${py3_sitelib}/PyQt5/QtWebSockets.pyi vmove ${py3_sitelib}/PyQt5/QtWebSockets.so } } python3-PyQt5-x11extras_package() { lib32disabled=yes depends="python3-PyQt5-${version}_${revision}" short_desc="${short_desc/Python2/Python3} - x11extras module" pkg_install() { vmove ${py3_sitelib}/PyQt5/QtX11Extras.pyi vmove ${py3_sitelib}/PyQt5/QtX11Extras.so } } python3-PyQt5-xmlpatterns_package() { lib32disabled=yes depends="python3-PyQt5-${version}_${revision}" short_desc="${short_desc/Python2/Python3} - xmlpatterns module" pkg_install() { vmove ${py3_sitelib}/PyQt5/QtXmlPatterns.pyi vmove ${py3_sitelib}/PyQt5/QtXmlPatterns.so } }