> On May 12, 2016, 8:15 a.m., Kåre Särs wrote: > > I think this patch should not include any platform specific defines. > > Disabling DBus requirement on Windows might also be interesting for some > > projects. I propose to do something similar to what is done in kxmlgui to > > disable kglobalaccel. The default is to require kglobalaccel, but if you > > knowingly specify "-DFORCE_DISABLE_KGLOBALACCEL=1" kglobalaccel is not > > required or searched for. > > René J.V. Bertin wrote: > True, even if there's probably very little point in disabling DBus on a > standard Unix/Linux set-up. > > But indeed, a platform-agnostic option can still be included in the > options that will be flipped by a platform-specific option like > `APPLE_STANDALONE_BUNDLE` I've proposed in a patch for Marble. > > To come back to what I suggested earlier: even if there were to be a KF5 > framework that encapsulates DBus or "something more platform native" there > would still be a use-case for using DBus through that framework even on OS X > (or MS Windows). Projects like HomeBrew, MacPorts and Cygwin don't exist to > replace the native desktop, but to complement it; to provide an easy way to > install and maintain FOSS and provide a context in which those applications > can run as much as possible as they do on their native platform. That > evidently includes DBus, but not just so that Gnome apps can talk with other > Gnome apps and KDE apps with other KDE apps. I don't have any stats on this, > but I'd expect that a good many of the users of such projects use them not so > much for software development per se, but as tools for their actual work > (often in science and/or engineering, in my impression). That might very well > include using Gnome/GTk apps alongside KDE applications, and in that case > they'd proba bly expect the same kind of interoperability as those apps would have on the other platforms they might use. > IOW, I don't think a distribution system that aims to provide the best > possible context for the applications it carries can get around using DBus. > > But this is probably not the best place for an in-depth discussion around > underlying principles; that should probably be done on a ML (and ideally > include a DBus dev or two). > > Nick Shaforostoff wrote: > i don't see a reason behind introducing a special cmake option other than > code coverage (test dbus and dbus-free branches with the same qt): why one > should want to disable dbus on a system where he/she has Qt with dbus? > > can you explain this to me? > > regarding homebrew, i repeat: by default it installs a precompiled > version of Qt without dbus. if user wants dbus then he/she has to have > homebrew recompile whole Qt (takes about 1 hour). and what if kde app doesn't > need any IPC? that would just pollute his/her system with redundant stuff. > how many gtk-based apps require dbus to run on windows and osx? > > Kåre Särs wrote: > We have Kate as an example. At the moment the main thing we need DBus for > on windows is opening documents in only one window when opening new documents > through explorer. Without the DBus daemon it does not work. KDevelop has a > solution for it without using DBus which means that we could skip DBus usage > for this purpose and we would not need to tell people to install the service > (DBus) that occasionally has been flagged as mallware. > > You might argue that we should just compile support without installing > the service, but how do I know what features don't work without the service? > If the frameworks need special options to disable DBus I'm informed about > what is disabled and can choose if I need it or not. Without the option the > feature is silently disabled. This is the reason I want separate options for > each framework that provides it and not a global one in ECM. > > Almost all Qt users on Windows that I know of would not even dream of > compiling their own Qt and pre-compiled Qt comes with DBus support. > > René J.V. Bertin wrote: > > can you explain this to me? > > An option here would allow using a single Qt install to build and bundle > software either with or without support for DBus. > > I wouldn't worry about the "pollution" aspect of redundant stuff here. > There are other things that are just as redundant and pollute a lot more > (like "tons of" translation files) and that are still installed because disk > space is cheap compared to the potential cost of being overly concerned about > the overhead. It's also cheap compared to the cost of building Qt from source. > > I'll repeat something too: if HB considers it appropriate to provide a > pre-compiled Qt version that doesn't include DBus support, than it's up to HB > to assume any consequences that might have on IPC abilities of dependent > packages. For instance by building with a specific cmake switch to disable > DBus. > MacPorts also provides pre-compiled packages, only of the default port > variants, but as much as possible those default variants are conceived to > cater to the needs of the largest number of dependents. IOW, if most Qt5 > dependents require DBus support, the Qt5 package that most users would want > to install should include DBus support. > > I agree that it seems acceptable to make DBus optional in the build > system (that could probably apply on Linux as well where QtDBus should always > be available). That requires only limited changes to CMake files. OTOH, > littering the source code with `#ifndef QT_NO_DBUS` lines is a change of a > different order of magnitude IMHO, one that should be hidden in a central > class. > > > gtk-based apps require dbus to run on windows and osx > > No idea how many require it to *run*, but the real question is how many > lack features without DBus. > > KDE apps that don't require DBus presumably don't attempt to pull in > QtDBus (or could be patched not to). > > DBus is small, doesn't take up a lot of resources or hog the CPU, can be > launched as a system service via launchctl. Replacing it is going to require > significant effort across the board, most likely only to come up with > something that is just a reinvention of the same wheel. An effort better > spent at making feel DBus more at home on those other platforms, if you ask > me. > > René J.V. Bertin wrote: > > KDevelop has a solution for it without using DBus > > Have you tested if that actually works? I've tried their > QtSingleApplication build on OS X, but cannot find any connection to the > FileOpen signal it emits when a file open request is received through > LaunchServices (and indeed, no file is actually opened, the application is > just raised as if it's about to open one). > > Remember that DBus isn't only used for asking an application to open a > file, or to check if an instance of the application is already running. The > KDE Wallet uses DBus to communicate with the kwallet daemon (and I'm more or > less convinced now that's a better solution than my attempt to provide the > same feature set against an OS X Keychain backend). And that's not even > mentioning KDE PIM ... > > There's nothing wrong with limiting the use of DBus where feasible and > justifiable (in terms of code maintenance), but I don't really believe it's > plausible (nor justifiable in terms of effort) to change all of KDE so it > uses DBus on Linux/Unix+X11 and something else elsewhere. Reasons exposed in > my previous posts. And not in KF5, anyway. Maybe K?6 (KG6? :)) but in a way I > hope I'll no longer be around when that transition begins. > > Nick Shaforostoff wrote: > > No idea how many require it to run, but the real question is how many > lack features without DBus. > > examples are gimp and libreoffice, firefox, chrome and so on. > > i have implemented opening documents in an already running app instance > in Lokalize without using dbus on both osx and windows -- took me one day. > you can see the code at > https://quickgit.kde.org/?p=lokalize.git&a=blob&h=80c18c8cdb5ef66b9e599b1e4e3ffd7afbbf2551&hb=c1f1e99f78bcabd004cf1fff073a79cd15695733&f=src%2Fmain.cpp > > i'll update the diff introducing a special cmake option this evening
> examples are gimp and libreoffice, firefox, chrome and so on The only gtk-based application on OS X or MS Windows in that list is gimp. Again, it's rather trivial to implement opening a document without DBus; on OS X that uses the same basic technique as opening a document in a not-yet-started application that isn't started from a terminal (LaunchServices doesn't pass documents to open via `argv`). But that's not all for which DBus is used. Telling another application to open a file without using DBus is a different matter though. - René J.V. ----------------------------------------------------------- This is an automatically generated e-mail. To reply, visit: https://git.reviewboard.kde.org/r/127896/#review95405 ----------------------------------------------------------- On May 12, 2016, 7:16 a.m., Nick Shaforostoff wrote: > > ----------------------------------------------------------- > This is an automatically generated e-mail. To reply, visit: > https://git.reviewboard.kde.org/r/127896/ > ----------------------------------------------------------- > > (Updated May 12, 2016, 7:16 a.m.) > > > Review request for KDE Software on Mac OS X, KDE Frameworks, David Edmundson, > and Martin Gräßlin. > > > Repository: kauth > > > Description > ------- > > this is the first patch to make kde frameworks build (and then work) without > dbus. > > this will allow homebrew users use precompiled vanilla Qt to build kde apps > on osx. as dbus is not a common service in osx world, kde apps on osx should > use native means for interprocess communication instead -- this will make > them better citizens in osx ecosystem. > > > Diffs > ----- > > CMakeLists.txt 48dc2d9 > autotests/BackendsManager.cpp 59675b3 > autotests/CMakeLists.txt b53d760 > autotests/HelperTest.cpp 8050a06 > src/CMakeLists.txt 1b6930d > src/ConfigureChecks.cmake d46761a > > Diff: https://git.reviewboard.kde.org/r/127896/diff/ > > > Testing > ------- > > compiles fine on osx, compiles fine on linux, tests on linux still pass. > > > Thanks, > > Nick Shaforostoff > >
_______________________________________________ Kde-frameworks-devel mailing list Kde-frameworks-devel@kde.org https://mail.kde.org/mailman/listinfo/kde-frameworks-devel