Add dbus to umbrello
ClosedPublic

Authored by habacker on Dec 19 2018, 8:10 AM.

Diff Detail

Repository
R877 Craft Blueprints for KDE
Lint
Automatic diff as part of commit; lint not applicable.
Unit
Automatic diff as part of commit; unit tests not applicable.
habacker requested review of this revision.Dec 19 2018, 8:10 AM
habacker created this revision.
bcooksley edited reviewers, added: vonreth; removed: bcooksley.Dec 19 2018, 8:20 AM

I'm not sure why Umbrello has a hard dependency on D-Bus (considering it's foreign to Windows and macOS).
In any case, Hannah is the right person to be reviewing changes to Craft, not me.

vonreth accepted this revision.Dec 19 2018, 8:34 AM

qt has already a dependency to dbus so its implicit.
You probably won't need qdbus though.

This revision is now accepted and ready to land.Dec 19 2018, 8:34 AM
habacker added a comment.EditedDec 19 2018, 9:27 AM

qt has already a dependency to dbus so its implicit.

That means it is only required to exclude the related executables in the blacklist file ?

The dbus config files provided by the dbus package in etc/dbus1 and share/dbus-1, which are required to run the daemon.
Looking in blacklist.txt there is

etc/.* 
share/.*

which seems to exclude them as far as I understand the file syntax.
How can I specify this ?

You probably won't need qdbus though.

In the recent packages it is included, see for example https://download.kde.org/stable/umbrello/2.26.2/win64/umbrello-x86_64-w64-mingw32-2.26.2-76.2-bin.7z

I'm not sure why Umbrello has a hard dependency on D-Bus (considering it's foreign to Windows and macOS).

If I start umbrello on linux it registers itself in dbus as many other KDE applications. It will do the same on Windows.

I'm not sure why Umbrello has a hard dependency on D-Bus (considering it's foreign to Windows and macOS).

If I start umbrello on linux it registers itself in dbus as many other KDE applications. It will do the same on Windows.

There is very little point to it though, as every application gets it's own D-Bus instance so they can't talk to each other.

I'm not sure why Umbrello has a hard dependency on D-Bus (considering it's foreign to Windows and macOS).

If I start umbrello on linux it registers itself in dbus as many other KDE applications. It will do the same on Windows.

There is very little point to it though, as every application gets it's own D-Bus instance so they can't talk to each other.

But it can be remote controlled from clients in the same installation path.
Sharing a dbus instance by several applications on Windows is possible with some manual config and environment adjustments. To have such support out of the box some design work is required and depends on an independent dbus installer or portable package.

I'm not sure why Umbrello has a hard dependency on D-Bus (considering it's foreign to Windows and macOS).

An additional reason is that KDE libraries internal starts kdeinit for session startup, which starts dbus, kded and klauncher for io processing and so on

qt has already a dependency to dbus so its implicit.

That means it is only required to exclude the related executables in the blacklist file ?

The dbus config files provided by the dbus package in etc/dbus1 and share/dbus-1, which are required to run the daemon.
Looking in blacklist.txt there is

etc/.* 
share/.*

which seems to exclude them as far as I understand the file syntax.
How can I specify this ?

You probably won't need qdbus though.

In the recent packages it is included, see for example https://download.kde.org/stable/umbrello/2.26.2/win64/umbrello-x86_64-w64-mingw32-2.26.2-76.2-bin.7z

For compatibility with KDE and Qt on Windows we patched dbus to use bin/data instead of share, on Windows.
And yes your blacklist ignores everything from etc

habacker added a comment.EditedDec 19 2018, 11:54 AM

Thanks for this pointer.

For compatibility with KDE and Qt on Windows we patched dbus to use bin/data instead of share, on Windows.

Which is an additional QT5/KF5 cross platform burden :-(

For cross compiled QT5/KF5 packages on OBS (https://build.opensuse.org/) I did the exact opposite - I patched Qt and ECM also to support unix file layout on Windows (see https://build.opensuse.org/package/view_file/home:rhabacker:branches:windows:mingw:win32:KF547/mingw32-extra-cmake-modules/0001-Add-support-for-using-share-as-data-root-on-windows-by.txt?expand=1 and https://build.opensuse.org/package/view_file/windows:mingw:win32/mingw32-libqt5-qtbase/0001-Use-unix-path-layout-on-Windows-too-to-match-Framework.patch?expand=1)

This revision was automatically updated to reflect the committed changes.

Maybe https://github.com/KDE/craft-blueprints-kde/blob/master/libs/qt5/qtbase/0001-Allow-additional-QStandardPaths-data-directories-on-.patch could help you which is supposed to be upstreamed soon.
This is the patch we had to apply to dbus, basically to use cmake paths instead of hardcoded paths

This is the patch we had to apply to dbus, basically to use cmake paths instead of hardcoded paths

I assume with this statement you are refering to the patch located at https://cgit.kde.org/craft-blueprints-kde.git/tree/libs/dbus/dbus-fix_data_dir.diff ?

I assume with this statement you are refering to the patch located at https://cgit.kde.org/craft-blueprints-kde.git/tree/libs/dbus/dbus-fix_data_dir.diff ?

Looking at the patch there is a minor issue related to https://gitlab.freedesktop.org/dbus/dbus/blob/master/bus/session.conf.in#L39, which could be fixed by specifing CMAKE_INSTALL_FULL_SYSCONFDIR (see https://gitlab.freedesktop.org/dbus/dbus/blob/master/cmake/CMakeLists.txt#L82 for details)

You may open a dbus merge request for this patch to get into dbus-1.13

kde/kdesdk/umbrello/blacklist.txt
51

Recent binaries does not include umbrello executable, which seems to be excluded by a bug in the above mentioned change.

Where can I find a documentation of the blacklist.txt file format ?

I'm sorry there is no real documentation but it's just plain regex. And as I mentioned pls push to 2018.12