Project:KDE/Frameworks

KDE Frameworks, Plasma, and Applications 5 is the next generation of KDE software, based on Qt 5. The single monolithic release in KDE ('KDE SC 4') has been replaced by these three distinct components, each with their own release cycle.

High level overview
KDE Frameworks is a large collection of libraries organised into tiers. Tier 1 libraries may only depend on Qt frameworks or other system libraries. Tier 2 libraries may only depend on tier 1 libraries, Qt frameworks or other system libraries, and so on. This design makes it easy for other projects to benefit without having to "pull in KDE".

KDE Plasma builds upon Frameworks to provide the desktop environment. Due to an upstream design decision, it is not coinstallable with Plasma 4.

KDE Applications provides a mix of applications, some Frameworks-based and some KDE4-based. With each major release more applications will be ported to Frameworks.

In order to match this distinct three-way upstream categorisation, we have introduced three new categories: kde-frameworks, kde-plasma, and kde-apps. The old kde-base category remains with Plasma 4 and some other deprecated modules, and eventually will be removed.

Todo

 * Follow up test failures with upstream
 * New overlay wiki page for frameworks 5
 * New overlay wiki page for plasma 5
 * New kde wiki page for frameworks 5
 * New kde wiki page for plasma 5
 * Eclass: make tests optional as some upstream maintainers refuses to accept optional test patches
 * Eclass: make handbook optional if some upstream maintainers refuses to accept optional test patches
 * A lot of frameworks now require linguist-tools, review what to do when translations are shipped?
 * Check handbook stuff.

✅

 * Urgent - patch kde4-meta.eclass to use KDE/4.x branch for kde-workspace 9999 ebuilds, as master will soon be KF5
 * Tests are optional to build, but dependencies required for them are still pulled in. The add_subdirectory entry for autotests should just be commented out when tests are disabled. tests/ and examples/ should always be removed.
 * Create a new or update existing bump script for releases
 * Review local coinstallability changes eg. many binaries are renamed upstream, but we still install everything into a custom directory
 * Audit which packages have tests and add FRAMEWORKS_TEST="false" as appropriate
 * Some frameworks with X USE flag now have runtime detection. Drop USE flag where appropriate, and look at porting the dep checks upstream away from deprecated HAVE_X11 (which unconditionally requires xproto and libX11) to the specific header
 * doc USE flag is turned on by default by kde-frameworks eclass, but this is likely only required for actual frameworks.
 * KF Keyword file generation
 * Eclass: implement subslots
 * Overlay wiki page refactoring
 * kde wiki page refactoring

Blockers

 * Naming scheme - kde-workspace master will become KF5 soon, breaking all -9999 overlay ebuilds from that repo ✅
 * Parallel installation (kde-base/kdelibs and kde-frameworks/* naturally collide) ✅
 * Qt 5 in the tree ✅
 * New eclass approval ✅
 * New category approval ✅