On Thursday 11 December 2014 08:40:20 Blasche Alexander wrote:
> So far there are two cases:
> 
> 1.) no dbus (nice qmake check to cut for Windows, Android and some other
> platforms) 
> 2.) dbus available but no daemon or permission issues
> (QDbusConnection::connectToBus(...).isConnected()) 
> 3.) all working and enabled

Off by one error?

Actually, it's a little more complex than that. D-Bus is useful on Windows 
too, just like on OS X, which was the cause of the changes. It just happens 
that we built QtDBus for OS X but not for Windows. And as I learned yesterday, 
no one has EVER built the QtDBus unit tests on Windows.

By default, on OS X with just our build, you'll get a slightly different 
scenario you didn't list: QtDBus available but no libdbus-1. However, if 
libdbus-1 isn't present, the daemon most likely isn't either, so we could say 
it's case #2.

> Consequences of eventual 5.5 changes:
> 
> - Now I cannot use point 1. above anymore to compile dbus backends out on
> platforms where DBus is useless anyway. That's doable by emulating your
> platform specific enabler in my own modules of course. I guess this is just
> convenience which I lost.

Correct. I expect you to know where D-Bus isn't useful to you, as opposed to 
having me force that upon you. There are legitimate reasons to use D-Bus on OS 
X and Windows, even on Android. So I'm just giving you the tools, you choose 
what use to make of them.

> - Case 2 above is even further overloaded. How do I distinguish the
> no-daemon case from permission issues from dlopen failures. Any new API
> calls for that? This is especially important when you don't want to do the
> "compile dbus out on win" checks in qmake. Do I have to duplicate your
> dlopen() attempt to figure that out? How about a
> "QDBusConnection::platformSupportsDbus()" call?

It's not more further overloaded than it already is. Like I said above for 
OS X, your case here was already present. No one has required this check in 
the 7 years since we began dlopen'ing libdbus-1.

> What were your reasons/motivation?

Fixing Qt 5.4 after the last-minute changes for 5.4.0 that were introduced to 
unbreak the build on OS X. This is not a policy change. It just so happens 
that we now *can* build QtDBus on all of those OS, so we will. Previously, we 
couldn't.

-- 
Thiago Macieira - thiago.macieira (AT) intel.com
  Software Architect - Intel Open Source Technology Center

_______________________________________________
Development mailing list
Development@qt-project.org
http://lists.qt-project.org/mailman/listinfo/development

Reply via email to