1. Master on Free Software
Albert Astals Cid
2. Master on Free Software
Table of Contents
Introduction to KDE
The KDE platform
Who's Who in KDE
3. Master on Free Software
Introduction to KDE
What is KDE?
KDE Business Environment
4. Master on Free Software
What is KDE?
KDE is an international technology team that creates Free Software for desktop and
portable computing. Among KDE's products are a modern desktop system for Linux and
UNIX platforms, comprehensive office productivity and groupware suites and hundreds
of software titles in many categories including Internet and web applications,
multimedia, entertainment, educational, graphics and software development. KDE
software is translated into more than 60 languages and is built with ease of use and
modern accessibility principles in mind. KDE4's fullfeatured applications run natively on
Linux, BSD, Solaris, Windows and Mac OS X.
5. Master on Free Software
KDE is International
Commiters to KDE Subversion Repository for the week of
February 10 2008
6. Master on Free Software
KDE is Free Software
KDE uses Free Software licenses for the software it creates
KDE uses Free Software applications to provide it's network
No non free software is mandatory for KDE development
7. Master on Free Software
KDE has a Desktop
8. Master on Free Software
KDE has Applications
Document Viewer Web Browser Music Player
Periodic Table Planetary Mahjongg
9. Master on Free Software
KDE is translated
KDE 4.0.2 is distributed in 50 different languages
Major languages: Chinese, Spanish, English, Arabic, Hindi
Minor languages: Kashubian (Poland, ~50.000 speakers)
West Frisian (Netherlands, ~500.000 speakers)
10. Master on Free Software
KDE is Cross-platform
11. Master on Free Software
October 14 1996: New Project: Kool Desktop Environment (KDE)
A GUI for endusers
Use same toolkit (Qt) to ensure same behaviour for all applications
August 1997: KDEONE Meeting, 15 participants
December 1997: KDE e.V. is founded
April 1998: The KDE Free Qt Foundation is announced
July 1998: KDE 1.0
12. Master on Free Software
KDE History (II)
October 1999: KDETwo meeting, 40 participants
September 2000: Qt goes GPLv2
October 2000: KDE 2.0
April 2002: KDE 3.0
January 2008: KDE 4.0
13. Master on Free Software
KDE Developer Meetings
KDE One Arnsberg, Germany 1997
KDE Two Erlangen, Germany 1999
KDE Three Beta Trysil, Norway 2000
KDE Three Nürnberg, Germany, 2002
Kastle Nové Hrady, Czech Republic 2003
aKademy 2004 Ludwigsburg, Germany
aKademy 2005 Málaga, Spain
aKademy 2006 Dublin, Ireland
aKademy 2007 Glasgow, Scotland
Akademy 2008 SintKatelijneWaver, Belgium
Last editions had around 300 attendees
14. Master on Free Software
kdelibs, kdepimlibs or kdebaseruntime public libraries:
LGPL version 2.1 or later
Applications also allow GPL 2 or later
Documentation also also allow FDL 1.2 or later
15. Master on Free Software
KDE Licenses (II)
Qt was released under the FreeQt until Qt 1.45
FreeQt was not approved neither by the Open Source Initiative nor by the
Free Software Foundation
Qt 2.0 and 2.1 were released under the QPL, approved by the OSI but not by
Qt 2.2 was released on September 2000 and introduced the GPLv2
Qt was released under GPLv2 or GPLv3 on January 2008
16. Master on Free Software
KDE Licenses (III)
The Foundation has the right to release Qt under a BSDstyle license in case
Trolltech doesn't continue the development of the Qt Free Edition for any reason
including, but not limited to, a buyout of Trolltech, a merger or bankruptcy.
Formed by 2 KDE e.V. members and 2 Trolltech members.
17. Master on Free Software
No benevolent dictator
Core team based on previous contributions
Lots of small subcommunities (kdegames, kdeedu, amarok, etc.)
Mailing lists and IRC for communication (not forums)
Friendly to new people
Multiple areas: Translators, artists, usability people, testers, documentation
writers, promoters, packagers, developers
18. Master on Free Software
KDE Community (II)
1791 accounts (26 February 2008)
11000 commits per month
19. Master on Free Software
KDE Community (III)
Non for profit organization that represents KDE in a legal way
Owns the registered KDE trademark in Europe and USA
Does not take part in development except for helping with money or
145 members (19 October 2007)
Board formed by 5 members elected by the general assembly
20. Master on Free Software
KDE versions follow the X.y.z scheme where:
X is the major version
y is the minor version
z is the patch version
Binary and Source compatibility of core libraries is maintained for the whole life
of major versions
Minor versions are to introduce improvements that do not need radical redesigns
Patch versions are to fix bugs and improve translations
21. Master on Free Software
KDE Versions (II)
July 1998: KDE 1.0: The initial release, few apps, not much quality, was very
good to attract people
October 2000: KDE 2.0: The technologies release, introduced KIO, dcop,
KParts, KHTML, XMLGUI, arts, ...
April 2002: KDE 3.0: The applications release
January 2008: KDE 4.0: The new technologies release, introduced Phonon,
Until now major releases have been tied to Qt major releases
22. Master on Free Software
KDE Business Environment
The Kolab Konsortium: Develops Kolab (groupware server) and improves
kdepim (groupware client) for the german government
Klarälvdalens Datakonsult AB
KDE developer owned companies
Distributions and Deployers
23. Master on Free Software
KDE Business Environment (II)
Not strictly KDE environment but worth to mention.
Qt is used in lots of multiplatform programs:
Adobe Photoshop Elements
Perforce Visual Client
Knowing KDE will give you an advantage on Qt related business
24. Master on Free Software
KDE is almost totally written in C++
There are bindings for Python, Ruby, C#, Perl, etc. but they are usually not used
for core libraries/applications and they are not much widespread either for user
There are two main reasons:
KDE Developers already know C++
Qt adds syntactic sugar to C++ so that it seems more a scripted language
than raw C++
25. Master on Free Software
KDE Languages (II)
Dual licensed library (commercial/GPL) developed by Trolltech
Core classes strings/list/hash
Graphical classes buttons/windows/tables
26. Master on Free Software
The KDE Platform
KDE 3 vs KDE 4
KDE 3 is more stable
KDE 4 API is nicer
KDE 4 is the current KDE
KDE 3 API is similar to KDE 4 one in some fields
KDE4 is the future
So we'll cover KDE 4
27. Master on Free Software
The KDE Platform (II)
Techbase: Is the KDE wiki for developers and deployers, contains lots of
information, ranging from how to build from source, to how to obtain a SVN
account passing by programming tutorials. http://techbase.kde.org
KDE API: The KDE API as generated by doxygen, contains all the
categorized API of all KDE modules and versions. http://api.kde.org
Qt documentation: The Qt documentation is very comprehensive, it is
available locally using the assistant program but also online at
29. Master on Free Software
KConfig: Class to store configuration. It has all the typical methods to store any
kind of type. Currently only has a .inilike backend but more are in preparation
KDebug: Class to debug, allows serialization of all kind of data types. Allows
filtering by debug area.
i18n: Classes for translating texts, numbers, etc.
KStandardDirs: Class for getting installed data files without having to care
about where they are
KToolInvocation: Class to invoke help/mail/browser or to start services
30. Master on Free Software
KAction: KActions can be plugged on menus or toolbars to represent a
mainwindow action. There are all kinds of KActions, toggable, radio, font size,
recent files, ..
KMainWindow: Provides typical actions needed for main windows like saving
toolbar/menubar/statusbar settings (and optionally window size).
KConfigDialog: Provides the base KDE configuration dialog, together with
KConfigXT makes storing user configuration very easy
XMLGui: The KDE way of defining top level windows menus and toolbars
All kind of widgets: KArrowButton, KRuler, KGradientSelector, KPlotWidget, ...
31. Master on Free Software
KIO: Provides transparent network I/O to KDE programs through asynchronous
jobs for each i/o operation(copy, delete, chmod, etc)
KIO::NetAcess: Synchronous (easy to use) methods for each of the
KDirWatch: File/Directory monitor
KFileDialog: KDE file dialog
KBookmark: KDE Bookmark handling
32. Master on Free Software
KDE parts are elaborate widgets with a userinterface defined in terms of actions
KParts::ReadOnlyPart: Base class for any "viewer" part.
KParts::ReadWritePart: Base class for an "editor" part.
KParts::MainWindow: A KPartaware main window
33. Master on Free Software
KDE 4 uses DBus for interprocess communications.
DBus is a freedesktop.org specification heavily inspired by KDE 3 interprocess
KDE uses Qt4 DBus bindings to talk to DBus
34. Master on Free Software
Kross is a scripting bridge to embed scripting functionality into an application.
Kross provides an abstract API to provide scripting functionality in a interpreter
independent way. The application that uses Kross should not need to know
anything about the scripting language being used.
Java and Falcon plugins are being worked on.
35. Master on Free Software
KWallet is the KDE integrated password protected data managing framework.
It is composed by a library that lets you query the wallet for data, and a user
interface to manage this data.
It is very comfortable to use as it gives a central repository for password
protected data so for example, Okular and KWord can store/retrieve for ODT
files open by the other application so the user has a more pleasing experience.
36. Master on Free Software
The KDE Meta Data library
Three types of meta data can be identified:
Meta data that is stored with the data itself and is available at all times. This
includes id3 tags, the number of pages in a pdf document, or even the size
of a file or the subject of an email.
Meta data that is created by the user manually like annotations or tags that
are assigned to files, emails, or whatever resources.
Meta data that can be gathered automatically by applications such as the
source of a downloaded file or the email an attachment was saved from or
the original when copying a file locally.
Nepomuk aims at solving types 2 and 3 as type 1 is already widely available.
37. Master on Free Software
Phonon is the KDE 4 Multimedia framework. In opposition to aRts (KDE3) it is
just a wrapper for already existant multimedia libraries like libxine, gstreamer,
etc. This allows developers accessing the power of well established libraries
with a KDElike API.
MediaObject: Interface for media playback of a given URL.
VideoPlayer: Playback class for simple tasks.
38. Master on Free Software
Solid is a device integration framework.
It provides a way of querying and interacting with hardware independently of the
underlying operating system.
Currently, only the HAL backend is implemented, more backends will follow.
Supported devices include Battery, Button, NetworkInterface, OpticalDisc, etc.
39. Master on Free Software
Sonnet is the KDE framework for Spell Checking.
Sonnet::Speller: The core speller class, you can ask it if a word is correct, to
give suggestions for a given word, etc.
Sonnet::BackgroundChecker: Used to perform spell checking without blocking
Sonnet::Dialog: Provides the default KDE spell checking dialog
40. Master on Free Software
ThreadWeaver is a helper for multithreaded programming. It uses a jobbased
interface to queue tasks and execute them in an efficient way.
You simply divide the workload into jobs, state the dependencies between the
jobs and ThreadWeaver will work out the most efficient way of dividing the work
between threads within a set of resource limits.
ThreadWeaver::Job: Simple abstraction of an action that is to be executed
ThreadWeaver::Weaver: Singleton to manage the job queue
41. Master on Free Software
Qt Designer: Creating graphical user interfaces
KDevelop: KDE IDE
CMake: New generation build system
Commit Filter: Filter commits into KDE Subversion repository
English Breakfast Network: Automatic checker
42. Master on Free Software
43. Master on Free Software
44. Master on Free Software
CMake is KDE 4 buildsystem. It replaces Autotools that were used in KDE 3.
There are several reasons for that:
KDE 4 supports more platforms than the ones correctly supported by
CMake is easier to understand/write because it's language is less obscure
than the various ones used in autotools
CMake developers are more open to suggestions than autotools developers
45. Master on Free Software
Commit Filter: Allows people filtering commits to the KDE subversion repository
either by path or by author name
English Breakfast Network: It is composed by code, API and documentation
Code checking warns about bad i18n constructs, use of FALSE/TRUE, etc.
API checking warns about not documented functions/parameters, etc.
Documentation checking warns about problems on docbooks for user
46. Master on Free Software
Who's Who in KDE
KDE is too big to know everyone that is or was ever involved in the project, but
knowing some of the key people helps when reading only or when you want to
contact someone, although most of the times you should contact the appropiate
mailing list or use the bugzilla and not the author directly.
47. Master on Free Software
KDE eV Board
Aaron J. Seigo
President, Plasma (KDE 4 desktop)
Adriaan de Groot
Board Member, Marketing
48. Master on Free Software
David Faure (KParts architect, Koffice architect, kdecore all around)
Kevin Ottens (Solid)
Stephan Kulow (OpenSuse Project Leader, KDE 3 release dude)
Jonathan Riddell (Kubuntu Project Leader)
Stephan Binner (OpenSuse KDE)
Thiago Macieira (Qt Release Manager)
49. Master on Free Software
KDE 4 Release Team
Dirk Mueller (Release dude, OpenSuse)
Matt Rogers (KDevelop, kdesdk)
Allen Winter (kdepimlibs, kdepim)
Matthias Kretz (kdemultimedia, Phonon)
Tom Albers (kdereview)
Urs Wolfer (kdenetwork)
Andras Mantia (kdewebdev)
Helio Chissini de Castro (extragear)
Albert Astals Cid (localization)
Boudewijn Rempt (KOffice)
50. Master on Free Software
No longer involved with code but very worth to mention:
Matthias Ettrich, KDE founder, Qt Lead Architect
Kalle Dalheimer, KDAB owner
Waldo Bastian, Intel
Martin Konold, erfrakon founder
Chris Slaeger, AMD
51. Master on Free Software
KDE in Spain
It always helps knowing people that is near you:
Alfredo Beaumont Sainz (KOffice hacker)
Rafael Fernández López (kdelibs hacker)
Antonio Larrosa Jimenez (KDE oldie, aKademy 2005 organizer)
Aleix Pol González (KDevelop and KDEedu hacker)
Jaime Robles (Spanish translation coordinator)
Agustín Benito Bethencourt (Canary Islands KDE Distribution Leader)
Isaac Clerencia Pérez (DebianKDE packager)
Ana Beatriz Guerrero López (DebianKDE packager)