Source: python-qtpy Version: 2.4.1-2 Severity: normal X-Debbugs-Cc: stu...@debian.org
Dear Maintainer, The qtpy description says "Abstraction layer for PySide2/PySide6/PyQt5/PyQt6" however the packaging for python3-qtpy is optimised only for applications using PyQt5, declaring Depends on all the python3-pyqt5 packages. An application that uses qtpy and any library other than pyqt5 needs to have pyqt5 installed in addition to what is actually required. As a concrete example, the next version of sasview will need PySide6 for Qt6 while using qtpy (via superqt widgets). The current packaging of qtpy means that 'apt install sasview' will end up installing PySide6 and Qt6 via sasview's own dependencies plus also PyQt5 and Qt5 via python3-qtpy's dependencies. One possible solution to this would be for src:python-qtpy to include the following packages: Package: python3-qtpy Depends: python3-packaging Contains: everything Package: python3-qtpy-pyqt5 Depends: python3-qtpy, python3-pyqt5, python3-pyqt5.* Contains: probably nothing Package: python3-qtpy-pyqt6 Depends: python3-qtpy, python3-pyqt6, python3-pyqt6.* Contains: probably nothing Package: python3-qtpy-pyside6 Depends: python3-qtpy, python3-pyside6.* Contains: probably nothing Another solution is for python-qtpy to declare at most Suggests on any of the pyqt/pyside packages and leave it to the application to declare dependencies on the toolkit packages it needs. The application package knows what toolkit and libraries are required while, by design, qtpy does not. This would also provide better support for the split toolkit packages given that Qt5 and Qt6 are modularised - the application can depend on only what is needed rather than having all the split packages installed just in case. PySide6 will hit NEW soon-ish and sasview will need the updated packaging for qtpy soon after. I'm happy to do a Team Upload to implement whichever agreed strategy you prefer. thanks! Stuart