void-packages/srcpkgs/python-PyQt5/template
2018-05-13 18:22:23 +02:00

478 lines
14 KiB
Bash

# Template file for 'python-PyQt5'
pkgname=python-PyQt5
version=5.10.1
revision=2
_sipver=4.19.4
lib32disabled=yes
wrksrc="PyQt5_gpl-${version}"
replaces="python-PyQt5-doc<5.10.1"
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-webengine-devel qt5-webkit-devel qt5-websockets-devel
qt5-x11extras-devel qt5-xmlpatterns-devel qt5-networkauth-devel pulseaudio-devel"
makedepends="${hostmakedepends/pkg-config/}"
depends="python-sip>=${_sipver}"
short_desc="Python2 bindings for the Qt5 toolkit"
maintainer="Alessio Sergi <al3hex@gmail.com>"
homepage="https://riverbankcomputing.com/software/pyqt/intro"
license="GPL-3"
distfiles="${SOURCEFORGE_SITE}/pyqt/PyQt5_gpl-${version}.tar.gz"
checksum=9932e971e825ece4ea08f84ad95017837fa8f3f29c6b0496985fa1093661e9ef
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=
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
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 ${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 QtWebEngineWidgets QtLocation QtNfc QtWebEngineCore
QtWebEngine 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 $_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=""
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
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
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-webengine_package() {
lib32disabled=yes
depends="${sourcepkg}-${version}_${revision}
python-PyQt5-webchannel-${version}_${revision}"
short_desc+=" - webengine module"
pkg_install() {
vmove ${py2_sitelib}/PyQt5/QtWebEngine.so
vmove ${py2_sitelib}/PyQt5/QtWebEngineCore.so
vmove ${py2_sitelib}/PyQt5/QtWebEngineWidgets.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>=${_sipver}"
replaces="python-PyQt5-doc<5.10.1"
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-webengine_package() {
lib32disabled=yes
depends="python3-PyQt5-${version}_${revision}
python3-PyQt5-webchannel-${version}_${revision}"
short_desc="${short_desc/Python2/Python3} - webengine module"
pkg_install() {
vmove ${py3_sitelib}/PyQt5/QtWebEngine.pyi
vmove ${py3_sitelib}/PyQt5/QtWebEngine.so
vmove ${py3_sitelib}/PyQt5/QtWebEngineCore.pyi
vmove ${py3_sitelib}/PyQt5/QtWebEngineCore.so
vmove ${py3_sitelib}/PyQt5/QtWebEngineWidgets.pyi
vmove ${py3_sitelib}/PyQt5/QtWebEngineWidgets.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
}
}