Frameworks/Coinstallability

From KDE Community Wiki
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.

KDE Frameworks 5 and Plasma 2 co-installability

It should be possible to install a kde frameworks 5 runtime alonside a kdelibs 4 runtime so apps can use either one

Dependencies:

Qt libraries it depends on already have two versions with different sonames or different names

  • phonon - rename done
  • attica - rename done
  • dbusmenu - rename done
  • oxygen-icons - just install the latest version
  • qimageblitz - rename done
  • libstream and libstreamanalyzer - not qt libraries so ABI the same and no rename needed
  • grantlee - not ported to Qt 5 but it is only used for a test which is disabled.
  • polkit-qt-1 - collides with Qt4 counterpart, both by name and soname

KDE Frameworks 5

data files:

Most install into DATA_INSTALL_DIR which can be made version specific, e.g. /usr/share/kde4/ and /usr/share/kdeframeworks5

  • share/LICENSES/ DATA_INSTALL_DIR
  • share/kcharselect/kcharselect-data DATA_INSTALL_DIR
  • share/ksgmltools2 DATA_INSTALL_DIR
  • share/xmlgui/pics/aboutkde.png DATA_INSTALL_DIR
  • share/khtml/ DATA_INSTALL_DIR
  • share/kssl/ DATA_INSTALL_DIR
  • share/kconfigwidgets DATA_INSTALL_DIR (and changed dir name)
  • share/knewstuff/pics DATA_INSTALL_DIR
  • share/kconf_update DATA_INSTALL_DIR
  • share/kjava DATA_INSTALL_DIR
  • share/proxyscout/ DATA_INSTALL_DIR
  • share/kcm_componentchooser/ DATA_INSTALL_DIR
  • share/kdewidgets/ DATA_INSTALL_DIR

These are files which can be shared between kdelibs 4 and kde frameworks 5

  • share/locale/ can be shared
  • share/mime/packages/kde.xml can be shared
  • share/icons/hicolor/ - kimproxy icons can be shared
  • share/doc can be shared
  • etc/dbus-1/system.d/org.kde.auth.conf can be shared
  • etc/xdg/ can be shared

Some files are only needed for developers where the kdelibs and kdeframeworks packages can be made to conflict

  • share/dbus-1/interfaces/ dev files
  • share/kauth/ dev files and DATA_INSTALL_DIR
  • share/cmake/modules/ dev files and DATA_INSTALL_DIR

binaries:

Some are renamed already or a new:

  • bin/kdeinit5_shutdown
  • bin/kbuildsycoca5
  • bin/kdeinit5_wrapper
  • bin/meinproc5
  • bin/kdeinit5
  • bin/kf5-config
  • bin/kded5
  • bin/desktoptojson
  • bin/kshell5
  • bin/kwrapper5
  • bin/kcookiejar5 (arguably a developer only binary)

Some are developer only binaries, the -dev package can be muturally exclusive:

  • bin/makekdewidgets
  • bin/checkXML
  • bin/preparetips
  • bin/kconfig_compiler
  • bin/kjs
  • bin/kjscmd

Kross is probably unimportant enough to just swap for KF5 version, this can be used to run some non-GUI kross scripts

  • bin/kross

Some are interchangeable binaries:

  • bin/kmailservice
  • bin/ktelnetservice

libraries:

All libraries renamed and versoned to 5.0.0

set some cmake variables to keep various bits separate

  • plugins/ needs QT_PLUGIN_INSTALL_DIR set
  • lib/cmake needs CMAKECONFIG_INSTALL_DIR set
  • lib/qml/org/kde/solid/libsolidextensionplugin.so new file
  • libexec can be put in a kf5 directory with LIBEXEC_INSTALL_DIR

KActivities

kdelibs 4 and kde frameworks 5 versions are co-installable

  • developer files in include/ and lib/pkgconfig and lib/cmake/ will be mutually exclusive
  • plugins installed into plugins/kf5 to keep them separate
  • kactivities library has been renamed with capital letters and new SONAME
  • kactivitymanagerd can be shared between libkactivities in kde4 and in kf5, it has the same same dbus interface
  • share/ontologies/kao* can be shared

kde-runtime

Much of kde-runtime is yet to be ported

binaries

renamed binaries

  • kcmshell5

interchangeable binaries, packagers should use the version from kde sc 5 and drop the version from kde sc 4

  • kdecp
  • kdemv
  • kdeopen
  • kioclient
  • ktrash

plugins

  • kioexec set a separate LIBEXEC_INSTALL_DIR
  • plugins/kf5 set a separate PLUGIN_INSTALL_DIR

data files

  • jpegcreatorsettings.kcfg set a separate KCFG_INSTALL_DIR e.g. /usr/share/kf5/config.kcfg
  • kcmlocale/pics/background.png set a separate DATA_INSTALL_DIR
  • .desktop and .protocol files set SERVICES_INSTALL_DIR to e.g. /usr/share/kde5/services

developer files

KDE Workspace

Not co-installable, the whole point is to have Plasma 2 and the workspace ported to KF5

KControl Modules

Various KControl modules in kde-runtime and kde-workspace need ported to KF5.

They will then edit files in the kf5 settings directory ~/.config/kf5 and not kde 4 settings. For some it might be useful to share settings, a symlink from e.g. ~/.kde/share/config/kdeglobals to ~/.config/kf5/kdeglobals may work if the config values are the same.