KDE Frameworks is a collection of libraries and software frameworks readily available to any Qt-based software stacks or applications on multiple operating systems. Featuring frequently needed functionality solutions like hardware integration, file format support, additional graphical control elements, plotting functions, spell checking the collection serves as technological foundation for KDE Plasma 5 and KDE Applications distributed under the GNU Lesser General Public License.
Overview
Current KDE Frameworks are based on Qt 5, which enables a more widespread use of QML, a simpler JavaScript-based declarative programming language, for the design of user interfaces. The graphics rendering engine used by QML allows for more fluid user interfaces across different devices. Since the split of the KDE Software Compilation into KDE Frameworks 5, KDE Plasma 5 and KDE Applications, each sub-project can pick its own development pace. KDE Frameworks are released on a monthly basis and use git. It should be possible to install KDE Frameworks alongside the KDE Platform 4 so apps can use either one.
Platform releases are those which begin a series. Only these major releases are allowed to break binary compatibility with the predecessor. Releases in the minor series will guarantee binary portability. This means, for instance, that software that was developed for KDE 3.0 will work on all KDE 3 releases; however, an application developed for KDE 2 is not guaranteed to be able to make use of the KDE 3 libraries. KDE major version numbers mainly follow the Qt release cycle, meaning that KDE SC 4 is based on Qt 4, while KDE 3 was based on Qt 3.
Supported operating systems
The repository of each framework should contain a file named metainfo.yaml. This file documents the maintainer of the framework, the type, the supported operating system and other information. The currently supported platforms are Linux, Microsoft Windows, Mac OS X and Android.
Software architecture
Structure
The Frameworks have a clear dependency structure, divided into "categories" and "tiers". The "categories" refer to runtime dependencies:
Functional elements have no runtime dependencies.
Integration designates code that may require runtime dependencies for integration depending on what the OS or platform offers.
Solutions have mandatory runtime dependencies.
The "Tiers" refer to compile-time dependencies on other Frameworks.
Tier 1 Frameworks have no dependencies within Frameworks and only need Qt and other relevant libraries.
Tier 3 Frameworks can depend on other Tier 3 Frameworks as well as Tier 2 and Tier 1.
Components
The KDE Frameworks bundle consists of over 70 packages. These existed as a single large package, called kdelibs, in KDE SC 4. Kdelibs was split into several individual frameworks, some of which are no longer part of KDE but were integrated into Qt 5.2. KDE Frameworks are grouped in four different tiers according to dependency on other libraries. Tier 1 frameworks only depend on Qt or other system libraries. Tier 2 frameworks can depend on tier 1 libraries, Qt and/or other system libraries and so forth.
Software packages
Linux distribution use some package management system to package the software they distribute. Debian for example distributes KGlobalAccel under the package name libkf5globalaccel, while Fedora distributes it under the name kf5-kglobalaccel.
Release history
The 5.0 release was preceded by a technology preview, two alpha releases, and three beta releases.
History
The source code of KDE Frameworks has been around since KDElibs 1. The first release as KDE Frameworks was with version 5, to account for the fact that the code base was that of KDE Platform version 4. The transition from KDE Platform to KDE Frameworks began in August 2013, guided by top KDE technical contributors. After the initial release of KDE Frameworks 5.0, the developers focused on adding new features to the components in KDE Frameworks 5, an example being better integration of Firefox into KDE. The major improvement of Frameworks 5 is its modularization. In earlier KDE versions, the libraries were bundled as a single large package. In Frameworks, the libraries were split into individual smaller packages. This facilitates utilization of the libraries by other Qt-based software, since dependencies can be kept at a minimum. While KDE 4 was based on version 4 of the Qt widget toolkit, Frameworks 5 is based on version 5.