[KDE/Mac] KDE4/KF5 "cohabitation"

nicos at macports.org nicos at macports.org
Wed Jan 13 15:54:59 UTC 2016


Hello, 

> I'm sure you've noticed that I'm making progress with ports for KF5. Maybe I should have asked your opinion on how to approach this (if so, apologies that I didn't), but I would like to know your thoughts on the issue of co-existence of KDE4 and KF5 ports.

Yes, I saw the tickets you posted, and was meaning to answer for some time, but got swamped in other things. Furthermore, my very small knowledge of KF5 means that I am not able to provide detailed answers.

> KF5 is designed to allow for step-by-step migration of applications from KDE4 to KDE5, but with the underlying idea that once an application has been migrated it's the better version and users are not supposed to feel the need to keep the older version around.
> 
> I have some issues with that premise and know of nothing in MacPorts that would make it the default behaviour to force a choice between either KDE4 or KF5 versions of an application (fortunately, with all the inter-dependencies).

I agree that it would very appreciable to be able to install the core package of both KDE4 and KF5, in order to enable the installation of applications from both systems, in particular as several of the applications would not be yet ported to KF5, while others could still be better in their KF5 form. 
However, I imagine that wanting to make the whole installation in parallel could be much more difficult, and that the same application with its KDE4 and KF5 versions would conflict in several ways, as it would intend to install the same binaries.

It is not clear to me at this point what aim you have. Are you aiming for full install (including applications) in parallel, or for non-conflicting core packages so that different applications from both KDE4 and KF5 could be installed ?

> KF5 software doesn't leave a lot of leeway to configure it such that it won't clash with KDE4 versions of the same, in line with said premise. Fortunately most of the time the conflicts are limited to non-crucial things in ${prefix}/share, usually even things that were not changed w.r.t. their KDE4 version. So most of the time, the +kde4compat variant of a KF5 ports just omits files that are already installed by the KDE4 version of the port.

Does this means that executables and libraries are not conflicting? I would have expected them to clash with identical names.
> 
> There are however certain modifications that have to be made to (certain) KDE4 ports:
> 
> - The most frequent conflict occurs at the level of headerfiles. This can be avoided very easily by building KDELibs4 with -DINCLUDE_INSTALL_DIR=${prefix}/include/KDE4 . That puts the KDELibs headers under include/KDE4 but also records the path in a cmake module, so that it is inherited by all dependents.
> The nice thing is that this change doesn't break binary compatibility, so I have set it unconditionally in my KDE4 PortGroup; it gets applied when a port is rebuilt.

Which means that independently of binary compatibility, all KDE4 Portfiles would have to be revbumped if the change is applied.

> - CMake modules are still an issue; I haven't yet found out a good way to install them to ${prefix}/lib/cmake/KDE4 . I'm looking into simply moving the files to a place outside the standard cmake include path (requiring CMAKE_PREFIX_PATH to be set) ... but that will only protect against file name clashes and against KF5 ports picking up cmake modules from KDE4 software :-/

> [snip

> 
> This is where I could use help from others who have KDE4 ports installed, the more complicated the dependencies the better.
> There is only so much time I can devote to checking existing KDE4 ports (which do not yet have a KF5 version) against the compatibility changes I've been making, in addition to the time I spend developing KF5 ports.
> 
> Help could come in 2 or 3 forms:
> - install my KDE4 portgroup and port:kdelibs4. Check what effect that has on your existing KDE4 ports; should be transparent. Check if that's still the case after rebuilding them (supposing that works out OK). One set of ports that I haven't rebuilt is akonadi/kdepimlibs,kdepim,kdepim-runtime because those are a bit too crucial for me…

It seems to me that the best way to get feedback would be to commit some of the changes, if indeed these are harmless. On the other hand, as I am under the impression that it is getting possible to have KF5 somewhat working within Macports (did not try myself), I also think that most useful thing for the users base at this point would be to include KF5 to Macports’ provided ports.

Cheers, 

Nicolas


More information about the kde-mac mailing list