Bug#802659: dbus-python: Please drop recommends on PyQt4 packages

Dmitry Shachnev mitya57 at debian.org
Tue Jan 26 10:37:26 UTC 2016


Hi Simon,

On Wed, Jan 20, 2016 at 09:15:24AM +0000, Simon McVittie wrote:
> Sorry for the delay in responding to this; dbus-python hasn't been high
> on my priority list.

No problem!

> On Thu, 22 Oct 2015 at 12:29:54 +0300, Dmitry Shachnev wrote:
>>   Drop obsolete recommendations of Qt 4 packages
> ...
>>   * python3-dbus.mainloop.qt is a package providing support for Qt (4.x) main
>>     loop. However, Qt uses GLib main loops on UNIX systems by default, so this
>>     package is needed very rarely and we should not recommend it.
>
> I'd be happy enough to do this, but I'd like to give the Qt/KDE
> maintainers (Cc'd) the opportunity to object first, so that if I get
> bug reports asking me to revert the change because someone feels that
> python[3]-gi is insufficiently desktop-neutral, I can point the bug
> reporter to the relevant discussion and close the bug.

The list you added is mostly for robots, the one we actually use is what I
CCed now. Though I was filing this bug with my Qt/PyQt co-maintainer hat,
so that's probably not much needed :)

> The library can be used without main loop support, and it doesn't
> really care which main loop glue you use (options are currently GLib,
> (GLib via) Qt, or E); but the majority of its functionality relies
> on having *some* main loop glue for dbus-python, and then running a
> compatible main loop in your program.  I included the Recommends so
> that "apt install python{,3}-dbus" would give users enough modules to
> run locally-written programs similar to dbus-python's own examples.
> See <https://bugs.debian.org/656230> for further context.

My point was that Qt main loop is usually used on Windows / OS X but *not*
on Debian. Here, Qt is compiled with GLib support and will use GLib main
loop unless explicitly asked not to do so (via QT_NO_GLIB=1 env variable).
That is a very rare use case and I don't see why one will ever need it.

So I still think these packages should not be recommended. If they are,
(Py)Qt developers will have a false assumption that they probably need them.

> (Anything that specifically imports dbus.mainloop.whatever should of course
> continue to depend on the appropriate package.)
>
> This main loop glue nonsense is an artefact of dbus-python trying hard
> to be non-desktop-specific. With hindsight, that was a bad idea, and
> these days I much prefer self-contained D-Bus implementations/bindings
> (GDBus, QtDBus, sd-bus) that assume a particular main-loop framework
> and can benefit from being properly integrated with it.
>
>>   * python-qt4-dbus is a replacement for dbus-python; if one uses one package,
>>     he will not need the other.
>
> Really? It looks a lot like a direct equivalent of python3-dbus.mainloop.qt
> to me:
> 
> % dpkg -L python-qt4-dbus
> [... the usual /usr/share/doc noise ...]
> [... some directories ... ]
> /usr/lib/python2.7/dist-packages/dbus/mainloop/qt.so
>
> Its name is presumably for historical reasons; if it was created today,
> it would be named python-dbus.mainloop.qt.

Oh, sorry, you are right and I was indeed confused by the name.

> At the time dbus-python was written, PyQt did not bind QtDBus; now it
> does (which I believe was partially a response to how long it took to
> make dbus-python work in Python 3), and I would advise developers who are
> using Python with Qt to consider using the QtDBus bindings in preference
> to dbus-python. dbus-python is not actually a great API, and has
> several historical design mistakes, which we can't correct because its
> most significant advantage over other D-Bus bindings/implementations
> is compatibility with older versions of itself. I haven't tried QtDBus
> but I suspect it may be better, or at least present a more Qt-like API.

dbus-python is still useful for those who need a simple Python API and don't
want to depend on bigger libraries like Qt and GLib/Gtk.

>>   In the description of python-dbus-dev, replace dbus.mainloop.qt with
>>   dbus.mainloop.pyqt5, which is the modern successor of dbus.mainloop.qt.
>
> Done in git, thanks.
>
>>   Also, drop the alternative recommendation for python-gobject-2. That
>>   package has been deprecated for a long time and we want to remove it from
>>   the archive as soon as possible.
>
> Also done, thanks.

Thanks!

> I'll apply the remaining changes (losing the Qt equivalents from
> Recommends) if there's consensus that this is what people who like
> Qt want me to do.

If you don't remove these packages from Recommends, then at least please
replace them with their modern PyQt5 alternatives, i.e.:

python-qt4-dbus → python-dbus.mainloop.pyqt5
python3-dbus.mainloop.qt → python3-dbus.mainloop.pyqt5

--
Dmitry Shachnev
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 819 bytes
Desc: not available
URL: <http://lists.alioth.debian.org/pipermail/pkg-kde-talk/attachments/20160126/81b204d3/attachment-0001.sig>


More information about the pkg-kde-talk mailing list