DBus on Windows - failing Jenkins builds

Ben Cooksley bcooksley at kde.org
Wed Feb 12 09:17:00 GMT 2020


On Mon, Feb 3, 2020 at 8:15 PM Johnny Jazeix <jazeix at gmail.com> wrote:
>
> Thank you Hannah for the addition,
>
> It now affects also skrooge and kwordquiz :/ (maybe more soon when
> they will be compiled again).
>
> I can try to find some time during the month and take a look to add
> these ifdef, if nobody fixes it before.

Another option is to raise this on KDE Frameworks Devel, as someone
there may know of an easy way to shortcut the D-Bus code in KSNI.

Cheers,
Ben

>
> Johnny
>
> Le dim. 2 févr. 2020 à 12:46, Hannah von Reth <vonreth at kde.org> a écrit :
> >
> > I had another look.
> > It looks like we need to add a couple of ifdefs to https://github.com/KDE/knotifications/blob/master/src/kstatusnotifieritem.cpp
> > There is no point in using dbus on Windows or mac here, as there is no desktop service that could receive it....
> >
> >
> > On 01.02.20 18:36, Ben Cooksley wrote:
> >
> > On Sun, Feb 2, 2020 at 1:53 AM Johnny Jazeix <jazeix at gmail.com> wrote:
> >
> > The applications link to KF5Notifications.lib library, the issue is
> > that this one does not compile KStatusNotifierItem class because it's
> > in a conditional if in the CMakeLists.txt of KF5Notifications.
> >
> > Which is the correct behaviour as we want a version without D-Bus.
> >
> > Unfortunately though that means every KDE application that wants to
> > provide a system tray icon will fail to compile, as we use KSNI for
> > that. For systems that don't mind having dbus around at runtime, it
> > isn't an issue as KSNI will fallback to QSystemTrayIcon. We of course
> > don't want DBus at all (even at runtime), so it seems to me that the
> > necessary fix is for KSNI on Windows to skip all the DBus stuff and
> > just provide it's wrapper functionality.
> >
> > The same should probably apply on macOS.
> >
> > Thoughts?
> >
> > Cheers,
> > Ben
> >
> > Le sam. 1 févr. 2020 à 13:15, Hannah von Reth <vonreth at kde.org> a écrit :
> >
> > Directly linking to KStatusNotifierItem sounds wrong.
> >
> > It should probably use the normal knotifications api.
> >
> >
> > Cheers,
> >
> > Hannah
> >
> >
> > On 01.02.20 12:49, Johnny Jazeix wrote:
> >
> > Le sam. 1 févr. 2020 à 09:57, Ben Cooksley <bcooksley at kde.org> a écrit :
> >
> > On Sat, Feb 1, 2020 at 9:51 PM Johnny Jazeix <jazeix at gmail.com> wrote:
> >
> > Hi,
> >
> > Hi Johnny,
> >
> > There are some builds in Jenkins that fail because of unresolved
> > external symbol of KStatusNotifierItem class (and let's be fair, I
> > don't like failing Jenkins).
> > After digging a bit, it is due to the fact that KNotifications is
> > built without dbus support:
> > https://cgit.kde.org/knotifications.git/tree/CMakeLists.txt#n42
> > meaning kstatusnotifieritem.cpp is not compiled:
> > https://cgit.kde.org/knotifications.git/tree/src/CMakeLists.txt#n24
> >
> > Aha. I had seen a few of these KSNI symbol failures, so it's nice to
> > know why they're occurring.
> >
> > However dependencies (drkonqi and ruqola if I'm not wrong), don't have
> > a condition on Windows for DBus use and directly use the
> > KStatusNotifierItem class.
> >
> > I'm not sure on the support of DBus on Windows and what is the right
> > direction to go:
> > * either enable dbus on KNotifications for Windows (if it is supported).
> > * or disable dbus on Windows on programs that uses it (drkonqi and ruqola)..
> >
> > Given that D-Bus doesn't really belong on Windows, doesn't bring us
> > much in the way of benefits there (as users are using just a single
> > application in many cases), and has tended to cause false positives
> > with anti-malware products, i'd suggest we follow the path of
> > disabling dbus support.
> >
> > Of course that brings up the question of whether KSNI should exist at
> > all on Windows. If memory serves it provides support for system tray
> > icons, in which case it probably should just wrap around the
> > appropriate Qt classes (for which I think fallback code already
> > exists?) and not compile any of the D-Bus stuff.
> >
> > Thoughts?
> >
> > It may be something to discuss on kde-devel (or directly with the
> > corresponding teams) because I don't know much about the use of the
> > library in the applications.
> >
> > KStatusNotifierItem is not used a lot on drkonqi:
> > https://github.com/KDE/drkonqi/search?q=statusnotifier&unscoped_q=statusnotifier
> > so it should not be complicated to bypass it on Windows but it seems
> > to require more efforts for ruqola.
> >
> > Johnny
> >
> >
> > Johnny
> >
> > Do you have any input on this?
> >
> > Johnny
> >
> > Cheers,
> > Ben


More information about the Kde-windows mailing list