Frameworks/Coinstallability

From KDE Community Wiki
Revision as of 16:40, 12 November 2013 by Jriddell (talk | contribs) (kde-runtime start)

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.

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

clashing binaries

* 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:

  • org.kde.KTimeZoned.xml no need to install it