Frameworks/Coinstallability: Difference between revisions

From KDE Community Wiki
No edit summary
(49 intermediate revisions by 6 users not shown)
Line 3: Line 3:
It should be possible to install a kde frameworks 5 runtime alonside a kdelibs 4 runtime so apps can use either one
It should be possible to install a kde frameworks 5 runtime alonside a kdelibs 4 runtime so apps can use either one


= Dependencies: =
Many paths have changed by default so there is no clash
* kdelibs 4 CONFIG_INSTALL_DIR: /usr/share/config
* kf5 CONFIG_INSTALL_DIR: /etc/xdg
* kdelibs 4 DATA_INSTALL_DIR: /usr/share/apps
* kf5 DATA_INSTALL_DIR: /usr/share


Qt libraries it depends on already have two versions with different sonames or different names
HTML_INSTALL_DIR does clash as /usr/share/doc/HTML to allow khelpcentre to find docs from both kdelibs4 land and kf5 land


* phonon - rename done
[[Plasma/Coinstallability|Plasma Next coinstallability page]]
* 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 =
= kactivities =
== data files: ==


Most install into DATA_INSTALL_DIR which can be made version specific, e.g. /usr/share/kde4/ and /usr/share/kdeframeworks5
The libraries are co-installable, but the daemon is not.


* share/LICENSES/ DATA_INSTALL_DIR
* libkactivities/qt5 requires kactivitymanagerd/qt5
* share/kcharselect/kcharselect-data  DATA_INSTALL_DIR
* libkactivities/qt4 works with both kactivitymanagerd/qt4 and kactivitymanagerd/qt5 (though, the later is advised since it is more stable)
* 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
In order to build only the library part of kactivities/qt4, you can pass -DKACTIVITIES_LIBRARY_ONLY=true to cmake. libkactivities/qt4 works with the qt5 version of the daemon.


* share/locale/  can be shared
* link to the original discussion: https://git.reviewboard.kde.org/r/115602/
* 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 (I assume nepomuk will be the same)

Revision as of 13:35, 18 September 2014

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

Many paths have changed by default so there is no clash

  • kdelibs 4 CONFIG_INSTALL_DIR: /usr/share/config
  • kf5 CONFIG_INSTALL_DIR: /etc/xdg
  • kdelibs 4 DATA_INSTALL_DIR: /usr/share/apps
  • kf5 DATA_INSTALL_DIR: /usr/share

HTML_INSTALL_DIR does clash as /usr/share/doc/HTML to allow khelpcentre to find docs from both kdelibs4 land and kf5 land

Plasma Next coinstallability page

kactivities

The libraries are co-installable, but the daemon is not.

  • libkactivities/qt5 requires kactivitymanagerd/qt5
  • libkactivities/qt4 works with both kactivitymanagerd/qt4 and kactivitymanagerd/qt5 (though, the later is advised since it is more stable)

In order to build only the library part of kactivities/qt4, you can pass -DKACTIVITIES_LIBRARY_ONLY=true to cmake. libkactivities/qt4 works with the qt5 version of the daemon.