KDE Frameworks 5

From Wikipedia, the free encyclopedia
  (Redirected from KDE Frameworks)
Jump to: navigation, search
KDE Frameworks
Original author(s) KDE
Developer(s) KDE
Initial release 1 July 2014; 25 days ago (2014-07-01)
Stable release 5.0 (July 1, 2014; 25 days ago (2014-07-01)) [±][1]
Preview release 4.100.0 (June 5, 2014; 51 days ago (2014-06-05)) [±][2]
Written in C++
Operating system Linux, OS X, Microsoft Windows, et al.
Type
License GNU Lesser General Public License (LGPL)[3]
Website www.kde.org

KDE Frameworks is a collection of libraries and software frameworks by KDE that serve as technological foundation for KDE Plasma 5 and KDE Applications 5 distributed under the GNU Lesser General Public License (LGPL).

The included individual frameworks offer a wide variety of commonly needed functionality providing solutions including hardware integration, file format support, additional graphical control elements, plotting functions, spell checking and more. Many[which?] of the frameworks are available for multiple operating systems and have minimal or no extra dependencies.

KDE Frameworks represents an effort to rework KDE Platform 4 into a set of individual and independent, cross platform modules that will be readily available to all Qt-based applications. The transition from KDE Platform to KDE Frameworks has been in progress for over 3 years, guided by top KDE technical contributors.[4]

After the release of KDE Frameworks 5.0 and without the stress of a strict deadline, the developers will focus on adding features to the components in KDE Frameworks 5.[5] Such as a better integration of Firefox into KDE.[6]

Adoption[edit]

The source code in KDE Frameworks has been around since KDElibs 1. Besides the KDE Software Compilation, there may be other adopters, such as e.g. the desktop environments Razor-Qt, LXQt, MoonLightDE or Hawaii or applications such as Amarok, Avogadro, Trojitá or Subsurface.[citation needed]

Software architecture[edit]

Structure[edit]

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 2 Frameworks can depend only on Tier 1.
  • Tier 3 Frameworks can depend on other Tier 3 Frameworks as well as Tier 2 and Tier 1.

Components[edit]

The KDE Frameworks bundle consists of over 60 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.[7]

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.[8]

Complete list of frameworks
Name Tier Description
Frameworkintegration 4 Integration of Qt applications with KDE Plasma Workspaces.
KActivities 3 Core components for KDE's Activities Activity Manager.
KApiDox 4 Scripts and data for building API documentation in a standard format and style.
KArchive 1 Classes for easy reading, creation and manipulation of "archive" formats like zip and tar.
KAuth 2 Provides a convenient, system-integrated way to offload actions that need to be performed as a privileged user to small helper utilities.
KBookmarks 3 Web browser bookmark management.
KCMUtils 3 Utilities for KDE System Settings modules.
KCodecs 1 Provides a collection of methods to manipulate strings using various encodings.
KCompletion 2 String completion framework.
KConfig 1 Back-end for storing application configuration.
KConfigWidgets 3 Graphical control elements (widgets) for configuration dialogs.
KCoreAddons 1 Utilities for core application functionality and accessing the OS.
KCrash 2 Provides support for intercepting and handling application crashes.
KDBusAddons 1
KDE4Support 4
KDeclarative 3
KDED 3
KDesignerPlugin 3
KDESu 3
KDEWebkit 3
KDNSSDFramework 2
KDocTools 2
KEmoticons 3
KF5Umbrella 1
KFileAudioPreview 4
KGlobalAccel 1
KGuiAddons 1
KHTML 4
Ki18n 1
KIconThemes 3
KIdleTime 1
KImageFormats 1
KInit 3
KIO 3
KItemModels 1
KItemViews 1
KJobWidgets 2
KJS 1
KJSEmbed 3
KMediaPlayer 3
KNewStuff 3
KNotifications 3
KNotifyConfig 3
KParts 3
KPlotting 1
KPrintUtils 3
KPty 2
Kross 3
KRunner 3
KService 3
KTextEditor 3
KTextWidgets 3
KUnitConversion 2
KWalletFramework 3
KWidgetsAddons 1
KWindowSystem 1 allows to interact with the windowing system. It provides a NETRootInfo for accessing the global state (all that’s set on the root window) and NETWinInfo for all information about a specific window. The classes have a window manager and client perspective. This is the foundation which powers KWin and various parts of the graphical shell such as the taskmanager.[9]

On top of those X11-specific classes we have a convenient API KWindowInfo and KWindowSystem which provides a windowing system independent API for our applications.

KXMLGUI 3
Plasma-framework 3
Solid 1
Sonnet 1 spell checker
ThreadWeaver 1

History[edit]

The first release of KDE Frameworks was version 5 to account for the fact, that the entire code base is that of KDE Platform, whereas the only version of KDE Platform was version 4 to account for the fact that it was a repacking thing and the entire code base remained from predecessors.

Major improvements aimed for in Frameworks 5 include increased modularization. In earlier KDE versions, the libraries were bundled as a single large package. In Frameworks, the libraries will be split into individual smaller packages. This will facilitate utilization of the libraries by other Qt-based software, since dependencies can be kept at a minimum.[4]

Whereas KDE 4 was based on version 4 of the widget toolkit Qt, Frameworks 5 will be based on version 5. Qt 5 enables increased usage of QML, a simpler JavaScript-based declarative programming language, for design of user interfaces. The graphics rendering engine used by QML allows for more fluid user interfaces across different devices.[4]

Release schedule[edit]

Version Planned date Actual date Notes
Tech preview 1 December 2013[4] 7 January 2014[10]
Alpha 1 1 February 2014[11] 14 February 2014[12]
Alpha 2 1 March 2014[13] 3 March 2014[14]
Beta 1 1 April 2014[13] 1 April 2014[2]
Beta 2 4 May 2014[13] TBD
Beta 3 1 June 2014[13] 5 June 2014
Final 1 July 2014[13] 7 July 2014[15]

References[edit]

  1. ^ "KDE Frameworks 5.0 Release Announcement". KDE. 2014-07-01. Retrieved 2014-07-07. 
  2. ^ a b "KDE Ships Third Beta of Frameworks 5". KDE. 2014-06-05. 
  3. ^ "First release of KDE Frameworks 5". 2014-07-07. 
  4. ^ a b c d Howard Chan (2013-09-04). "KDE Release Structure Evolves". KDE. Retrieved 2014-02-27. 
  5. ^ "KF5 Update Meeting Minutes 2014-w28". 2014-07-08. 
  6. ^ "Firefox + KDE integration: Getting FF to use Dolphin reliably". 2014-07-03. 
  7. ^ Jos Poortvliet (2013-12-17). "Qt 5.2 - Foundation for KDE Frameworks 5". Dot.kde.org. Retrieved 2014-03-10. 
  8. ^ Howard Chan (2013-09-25). "Frameworks 5". Dot.kde.org. Retrieved 2014-03-10. 
  9. ^ http://blog.martin-graesslin.com/blog/2014/02/kwindowsystem-in-frameworks-5/
  10. ^ "Frameworks 5 Technology Preview". KDE. 2014-01-07. 
  11. ^ Kevin Ottens (2014-01-06). "KDE Frameworks: Moving toward 5.0 final and Governance". kde-core-devel mailing list. http://lists.kde.org/?l=kde-core-devel&m=138899121007825&w=1. Retrieved 2014-02-27.
  12. ^ "KDE Ships First Alpha of Frameworks 5". KDE. 2014-02-14. 
  13. ^ a b c d e "KDE Frameworks Epics Dashboard". KDE. 2014-02-14. Retrieved 2014-02-27. 
  14. ^ "KDE Ships Second Alpha of Frameworks 5". KDE. 2014-03-03. 
  15. ^ "First release of KDE Frameworks 5". Retrieved 8 July 2014.