f56dac939c
PyQt5 officially only supports Python 3. However, it works with Python 2, at least with calibre. Don't merge with python3 version, since it build with different dependencies. And there's some conflicts when generate binary.
250 lines
7 KiB
Bash
250 lines
7 KiB
Bash
# Template file for 'python-PyQt5'
|
|
pkgname=python-PyQt5
|
|
version=5.15.0
|
|
revision=1
|
|
_sipver=4.19.23
|
|
wrksrc="PyQt5-${version}"
|
|
hostmakedepends="pkg-config
|
|
python-devel python-sip-devel python-dbus-devel qt5
|
|
qt5-devel qt5-tools-devel qt5-connectivity-devel qt5-declarative-devel qt5-location-devel
|
|
qt5-multimedia-devel qt5-qmake 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="Python 2 bindings for the Qt5 toolkit"
|
|
maintainer="Orphaned <orphan@voidlinux.org>"
|
|
license="GPL-3.0-only"
|
|
homepage="https://riverbankcomputing.com/software/pyqt/intro"
|
|
distfiles="${PYPI_SITE}/P/PyQt5/PyQt5-${version}.tar.gz"
|
|
checksum=c6f75488ffd5365a65893bc64ea82a6957db126fbfe33654bcd43ae1c30c52f9
|
|
lib32disabled=yes
|
|
|
|
post_extract() {
|
|
rm -rf pyuic/uic/port_v3
|
|
}
|
|
|
|
do_configure() {
|
|
local _sysroot= _configuration= qt_version
|
|
if [ "$CROSS_BUILD" ]; then
|
|
qt_version=$(qmake -query QT_VERSION)
|
|
_sysroot="--sysroot $XBPS_CROSS_BASE"
|
|
_configuration="--configuration $wrksrc/pyqt5_${XBPS_CROSS_TRIPLET}.cfg"
|
|
cat >pyqt5_${XBPS_CROSS_TRIPLET}.cfg <<EOF
|
|
py_platform = linux
|
|
py_inc_dir = %(sysroot)/usr/include/python%(py_major).%(py_minor)
|
|
py_pyshlib = python%(py_major).%(py_minor).so
|
|
pyqt_disabled_features = PyQt_Desktop_OpenGL
|
|
|
|
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
|
|
fi
|
|
|
|
python2 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=""
|
|
|
|
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
|
|
}
|
|
|
|
do_build() {
|
|
make ${makejobs}
|
|
}
|
|
|
|
do_install() {
|
|
# install python-pyqt5
|
|
make 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
|
|
}
|
|
|
|
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"
|
|
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
|
|
}
|
|
}
|
|
python-PyQt5-devel_package() {
|
|
depends="python-sip-devel python-PyQt5-${version}_${revision}"
|
|
short_desc+=" - development files"
|
|
conflicts="python3-PyQt5-devel>=0"
|
|
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
|
|
}
|
|
}
|