This PR proposes the update of the latest versions of PyQT/SIP and what goes with it.
Sip
As mentioned in the update from sip to sip5, this is a transitional version to remove what is deprecated in sip4.
Sip6 completely removes the deprecated parts.
We have already made the effort to support updates to sip >= 5.
Just like the different software have integrated these changes to support the current versions of sip or to offer an option to choose one or the other version.
Unfortunately, cura and its dependencies don't seem to want to update [1], and I reintroduced sip4 just for them; this is what is done in the others having cura :/
PyQt
At the same time, I took the opportunity to simplify PyQT.
We are the only ones to offer such a separate installation (except sub-package).
I used the some the logic as some other linux distributions like Arch to propose only one PyQT package (what we do today for devel/pyside2) now named devel/py-qt5-pyqt.
This allows us to be in adequacy with the packages that the author of these libraries proposes, namely:
PyQt - devel/py-qt5-pyqt
PyQt-3D – not in ports
PyQt-Charts - x11-toolkits/py-qt5-chart
PyQt-DataVisualization – not in ports
PyQt-NetworkAuth – net/py-qt5-networkauth
PyQt-Purchasing – not in ports
PyQt-WebEngine – www/py-qt5-webengine
SIP – devel/py-sip
py-sip - devel/py-qt5-sip
PyQt-builder - devel/py-qtbuilder
pyqtdeploy – not in ports
Qscintilla - devel/py-qt5-qscintilla2
The disadvantage of this method is that if you are a user of a tool that requires only a single dependency like py-qt5-core or py-qt5-widgets, you will pull all the dependencies from Qt5.
However, this has to be put into perspective because only two are concerned (devel/py-qstylizer and dns/knock [2]). The others already have substantial dependencies.
Detailled actions
- rm of all */py-qt5-* but a few ports and create devel/py-qt5-pyqt
- Add a dedicated MASTER_SITES for py-qt5-webengine
- Update SIP to 6.3.1, qtbuilder to 1.12.0
- Simplify PyQt, There is only 4 values : pyqt5 chart networkauth and webengine
- ${SIP} is now bin/sip-build-${PYTHON_VER}
- adapt all ports to USE_PYQT= pyqt5 instead of USE_PYQT= core gui svg etc.
- reintroduce sip4 only for Ultimaker ports (libsavitar, libArcus, pynest2d and Cura)
- devel/git-cola : fix pkg-plist issue. Don’t know if it’s related to sip or the ports is broken.
- science/py-veusz : update to 3.4 and remove SIP patches (fixed upstream)
- PyQt
- use new pyproject and new sip to build the ports
- ex- pyqt5-core remove useless PyQt5,Qt patch.
- ex- pyqt5-core remove configure patch : not needed since now PyQt5 is not separated. BTW use the option --protected-is-public instead of patch the port.
- net/py-qt5-networkauth, www/py-qt5-webengine and x11-toolkits/py-qt5-chart use “PYQT_DIST build system”
- remove Api option (installed by default)
- www/qutebrowser : update options
- Install dist-info (maybe required by some ports)
sip4 / cura
- devel/libSavitar update to 4.11.0 and add BUILD_DEPENDS to sip4
- devel/py-pynest2d update to 4.12.1, remove patches included upstream and add BUILD_DEPENDS to sip4
- net/libarcus update to 4.12.1, remove patches included upstream and add BUILD_DEPENDS to sip4
[1] https://github.com/Ultimaker/libSavitar/pull/26#issuecomment-734223225
[2] and maybe remove pyqt option since there is a mention that “pyqt:5 isn't used”