Frameworks/Coinstallability

From KDE Community Wiki
Revision as of 14:33, 5 November 2013 by Jriddell (talk | contribs)

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

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

  • bin/makekdewidgets
  • bin/checkXML
  • bin/preparetips
  • bin/kconfig_compiler

Some are interchangeable binaries:

  • bin/kmailservice
  • bin/ktelnetservice
Some are runtime binaries and need confirmed if they are interchangeable or need renamed:
* bin/kjs
* bin/kjscmd
* bin/kcookiejar4
* bin/kross

libraries:

All libraries renamed and versoned to 5.0.0 except
* libkimproxy.so.4.12.0

just 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 need to be co-installable for application use (e.g. rekonq)

  • developer files in include/ and lib/pkgconfig and lib/cmake/ will be mutually exclusive
  • plugins installed into plugins/kf5 to keep them separate
* main library has same soname and needs renamed libKActivities.so.6.2.0
* kactivitymanagerd needs renamed
* share/ontologies/kao* need renamed and kao.ontology.in changed to point to the new name