Getting Started
Getting_Started
Languages: عربي | Asturianu | Català | Česky | Kaszëbsczi | Dansk | Deutsch | English | Esperanto | Español | Eesti | فارسی | Suomi | Français | Galego | Italiano | 日本語 | 한국어 | Norwegian | Polski | Português Brasileiro | Română | Русский | Svenska | Slovenčina | Slovenščina | српски | Türkçe | Tiếng Việt | Українська | 简体中文 | 繁體中文
Determine Your Needs
KDE versions are split into branches off of the Trunk. The steps to build most branches are very similar. However, each branch has different prerequisites.
You will need to know what version you want, how often you will use the development environment (more work upfront may be justified if you intend to use it more).
Our content is generally written with KDE4 and Linux in mind. For Windows, BSD, and KDE3 look at the other Supported Platforms page.
Choose Version
- Distribution synchronized
- To ease finding dependencies, See Distributions with KDE, or you may have a requirement to support a version supplied by a vendor.
- As a developer looking to develop a patch against an existing application, you might want to look at this.
- Latest Features for production
- branch (stable / beta)
- Core Development
- trunk Where new features grow (may have build problems on Mondays)
- Browse availability
- http://websvn.kde.org/branches/KDE/
Choose Location
Choose where you want to put the KDE installation, and keep source and build directories. (The QCA plugin may have to be installed as root if using system Qt).
Source and Build Directories
- suggested: ~/kde/src and ~/kde/build (where ~ is the home directory of the user who runs KDE)
- possibly /usr/src/ if building as root.
Installation Directory
These are the recommended installation directories for the different situations:
- Casual Curiosity
- development user home if you do not want to mess up your production KDE
- your home directory if you are willing to use environment variables to keep versions separate (using scripts) or have no other access to the machine
- As root not advised unless you have a dedicated machine
- Application Developer
- development user home same as for curious user
- as root will be more useful to simulate environment of customers
- your home directory may simplify your development
- Distribution Manager
- To test KDM, you may want to install as root and/or on a virtual machine so you do not damage a production system.
- Contributor
- keeping your system similar to other developers will help make troubleshooting easier, see Developer Setups
Gather Prerequisites
Your build will fail if you are missing one of them, and the list changes. There are some options, however the make system can often find optional packages even if you do not intend to use them, so you may need to pass disable options.
- Getting_Started/Build/KDE4/Prerequisites
- build requirements by distribution
Qt
- System Qt
- Often the easiest way to go, because most people have it already, you may have to install the QCA plugin as root though.
- KDE-Qt
- Previously known as qt-copy -- This is the minimum version of Qt any of your users are expected to have. Some bugs may be fixed in new Qt, so you may have to work-around bugs in lower versions, including this one.
- Main Qt
- Get it straight from Nokia, experience the latest cool features, but note that many people will be using older distributions with older Qt.
Getting the Source
We are migrating from SVN to git. We have extensive infrastructure that is being converted, but please know that this is a much anticipated, complex, and popular change. http://www.omat.nl/2010/07/07/move-to-git-the-progress-so-far/
- Anonymous SVN Quickstart Guide
- Using Subversion with KDE A more in depth look at accessing KDE source code with subversion, including the repository layout and working with revisions and patches.
- Amarok Git Tutorial Amarok has moved to Git (with the rest of KDE to follow), so it requires different steps to check out and develop.
- Daily Snapshots
- Browse code online, or search the code
Build it
- Manual Steps
- KDE 4 (Development version, TRUNK)
- KDE 4.x (Stable version or 4.x SVN BRANCH)
- Upgrade KDE-4.x.y release version or KDE-4.x SVN BRANCH)
- Other versions and FAQ Including information for building on non-linux systems
- augmented with bash functions.
- Getting_Started/Increased_Productivity_in_KDE4_with_Scripts
- Specific examples:Build KDE4.6 on Kubuntu
- distribution specific
There may be pre-made builds for your distribution, For example, in Kubuntu, Project Neon, aims to provide a recent trunk build environment, and PPA's provide latest branch versions.
- kdesrc-build
This script will do most of the downloading and compiling for you. It can be configured to build most versions, by default it builds Trunk. There full-process instructions at http://kdesrc-build.kde.org and more here kdesrc-build, and here is a list of working configuration files.
Troubleshooting the build
Troubleshooting information is similar between branches as well.
Compile and Linking errors are frequent sources of discouragement. Make careful note of the first occurrence of an error in your build process. It could be as simple as a bad environment variable, an unexpected version of a library or missing prerequisite.
Please review your logs and do searches for fixes. If you cannot find a solution, try Build/KDE4/Errors, the IRC channel, and the mailing lists. Build/Stories
Using your KDE
After KDE has been built, you'll want a good way to launch apps and perform your regular development tasks:
Environment Variables
Your system won't know to use your new KDE until you tell it how to find the KDE applications and libraries.
Set up Development Tools
You will likely want to use a stable package from your distribution instead of the ones of the KDE version you are working on.
For most development topics, and documentation, see Development
- Opening and creating KDE project files
Contribution
You may not need the latest bleeding-edge version of KDE with which to develop. Much of the code will be similar between versions and your patch might work. However, Trunk is where major changes are introduced, and branches are mostly for maintenance/bug fixes.