<?xml version="1.0"?>
<?xml-stylesheet type="text/css" href="http://techbase.kde.org/skins/common/feed.css?0.2"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
		<id>http://techbase.kde.org/api.php?action=feedcontributions&amp;user=Logixoul&amp;feedformat=atom</id>
		<title>KDE TechBase - User contributions [en]</title>
		<link rel="self" type="application/atom+xml" href="http://techbase.kde.org/api.php?action=feedcontributions&amp;user=Logixoul&amp;feedformat=atom"/>
		<link rel="alternate" type="text/html" href="http://techbase.kde.org/Special:Contributions/Logixoul"/>
		<updated>2013-05-20T18:23:02Z</updated>
		<subtitle>User contributions</subtitle>
		<generator>MediaWiki 1.20.2</generator>

	<entry>
		<id>http://techbase.kde.org/User_talk:Logixoul</id>
		<title>User talk:Logixoul</title>
		<link rel="alternate" type="text/html" href="http://techbase.kde.org/User_talk:Logixoul"/>
				<updated>2011-02-22T02:13:14Z</updated>
		
		<summary type="html">&lt;p&gt;Logixoul: Reverted edits by Koko351152 (Talk) to last version by Logixoul&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;err... did you move/delete [[debugging]] ? I just wanted to write more about this. And there were some things there that were important because I cannot remember them. [[User:Tstaerk|Tstaerk]]&lt;br /&gt;
:I didn't, [[User:dhaumann]] did. See [http://developernew.kde.org/index.php?title=Special:Log/delete&amp;amp;page=Debugging]. I undeleted it. Now, if you think the contents of [[Debugging]] are important only for you, move them to your userpage and I'll take care of [[Debugging]]. ;) [[User:Logixoul|Logixoul]] 00:58, 14 September 2006 (CEST)&lt;/div&gt;</summary>
		<author><name>Logixoul</name></author>	</entry>

	<entry>
		<id>http://techbase.kde.org/Getting_Started/Build/Troubleshooting</id>
		<title>Getting Started/Build/Troubleshooting</title>
		<link rel="alternate" type="text/html" href="http://techbase.kde.org/Getting_Started/Build/Troubleshooting"/>
				<updated>2008-06-20T10:41:55Z</updated>
		
		<summary type="html">&lt;p&gt;Logixoul: same here.. change the order of kdebase and kdepimlibs to emphasize nondependency&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Template:I18n/Language Navigation Bar|Getting_Started/Build/KDE4/Troubleshooting}}&lt;br /&gt;
&lt;br /&gt;
{{TutorialBrowser|&lt;br /&gt;
&lt;br /&gt;
series=Getting Started|&lt;br /&gt;
&lt;br /&gt;
name=Building KDE4 From Source/Troubleshooting|&lt;br /&gt;
&lt;br /&gt;
pre=[[../|KDE SVN Quickstart Guide]]|&lt;br /&gt;
&lt;br /&gt;
next=[[../|KDE SVN Quickstart Guide]]|&lt;br /&gt;
|&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
This page contains some troubleshooting tips for issues you may encounter while building kde4 from source.&lt;br /&gt;
&lt;br /&gt;
Many of the issues listed here may be out of date.&lt;br /&gt;
&lt;br /&gt;
== Issues building kdelibs ==&lt;br /&gt;
If you have problems compiling kdelibs, first make sure the software in the [[Getting_Started/Build/KDE4#Software_Requirements|Required Software]] section above is installed and works. If you install additional software, it may be necessary to remove {{path|~/kde/src/KDE/kdelibs/CMakeCache.txt}} before trying the build again.&lt;br /&gt;
&lt;br /&gt;
Other possible hints include:&lt;br /&gt;
* If the &amp;lt;tt&amp;gt;cmakekde&amp;lt;/tt&amp;gt; command fails stating that CMake requires an out of source build directory, remove {{path|~/kde/src/KDE/kdelibs/CMakeCache.txt}}, and try again.&lt;br /&gt;
&lt;br /&gt;
If &amp;lt;tt&amp;gt;cmakekde&amp;lt;/tt&amp;gt; still gives the same error then try this &lt;br /&gt;
 cd&lt;br /&gt;
 cmake -DCMAKE_INSTALL_PREFIX=$KDEDIR \&lt;br /&gt;
 -DCMAKE_BUILD_TYPE=debugfull \&lt;br /&gt;
 -DKDE4_BUILD_TESTS=ON \&lt;br /&gt;
 ~/kde/src/KDE/kdelibs&lt;br /&gt;
 make&lt;br /&gt;
 make install&lt;br /&gt;
* If you received an error stating &amp;quot;Please create a separate build directory and run 'cmake path_to_kdelibs [options]' there.&amp;quot;, then you need to change to your build directory before running cmakekde. (e.g &amp;lt;tt&amp;gt;cs KDE/kdelibs &amp;amp;&amp;amp; cb &amp;amp;&amp;amp; cmakekde&amp;lt;/tt&amp;gt;) If the message stays, run 'svn status' in the kdelibs directory and remove all files labeled with '?'.&lt;br /&gt;
* If Qt wasn't found or the wrong version of Qt was found, make sure that the qmake from the Qt you need is the first qmake in the path.&lt;br /&gt;
* If qmake wasn't found and you are using Debian packages, /usr/bin/qmake probably points to a wrong qmake version. To fix this run as root:&lt;br /&gt;
 update-alternatives --config qmake&lt;br /&gt;
* If the problems persist, try the CMake make-option &amp;lt;tt&amp;gt;--keep-going&amp;lt;/tt&amp;gt;.&lt;br /&gt;
* Here you need the libungif library, otherwise you will get an error message like &amp;quot;&amp;lt;tt&amp;gt;Could NOT find GIF&amp;lt;/tt&amp;gt;&amp;quot;.&lt;br /&gt;
* Qt-4.3 upgrade: if you get a link error in kjsembed talking about QScriptEngine, edit CMakeCache.txt in kdelibs and remove the lines that talk about QT_QTUITOOLS_LIBRARY, then type make again (that static library has a new dependency, and the cmake code that adds it needs to run).&lt;br /&gt;
* if you get &amp;lt;code&amp;gt;CMake Error: KDE Requires Qt to be built with SSL support&lt;br /&gt;
&amp;lt;/code&amp;gt;, install openssl-devel, remove CMakeCache.txt and re-compile QT.&lt;br /&gt;
* if you get &amp;lt;code&amp;gt;kdelibs/kimgio/ico.cpp:188: undefined reference to `QImage::jumpTable()'&amp;lt;/code&amp;gt; it means you compiled QT without QT3 support(no, linking to a true QT3 install won't work)&lt;br /&gt;
* if none of the errors above match yours, you might just try a quick'n'dirty &amp;lt;code&amp;gt;make clean&amp;lt;/code&amp;gt; in kdelibs.&lt;br /&gt;
* if you get &amp;quot;The PCRE regular expression library has not been found  &amp;gt;=4.5 &amp;quot; then watch out the http://techbase.kde.org/index.php?title=Getting_Started/Build/KDE4/Kubuntu_and_Debian (Getting Started/Build/KDE4/Kubuntu and Debian-&amp;gt; kdelibs dependancies -&amp;gt;Recommended packages ) or &lt;br /&gt;
remove ../.. build/kdelibs &lt;br /&gt;
cs KDE/kdelibs&lt;br /&gt;
cmakekde&lt;br /&gt;
&lt;br /&gt;
* [stub] What to do if you have a problem like kde-config.cpp:56: undefined reference to `KLocalizedString::~KLocalizedString()' and &lt;br /&gt;
/Depot/Temp/kdelibs-4.0.2/kdecore/kde-config.cpp:197: undefined reference to `KConfigGroup::readPathEntry(char const*, QString const&amp;amp;) const' and kde-config.cpp:66: undefined reference to `ki18n(char const*)'?&lt;br /&gt;
Seems to happen with some localization stuff&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Issues building kdebase ==&lt;br /&gt;
If you have troubles compiling kdebase:&lt;br /&gt;
* XINE is needed to compile kdebase-runtime&lt;br /&gt;
* Make sure you have the &amp;lt;tt&amp;gt;libxss headers&amp;lt;/tt&amp;gt; installed. (Usually you got undefined references on xscreensaver objects if you do not have those headers)&lt;br /&gt;
* &amp;lt;tt&amp;gt;which meinproc4&amp;lt;/tt&amp;gt; has to deliver {{path|/home/kde-devel/kde/bin/meinproc4}}&lt;br /&gt;
* if cmakekde can not find the path of kdepimlibs, edit the file {{path|$KDE_BUILD/KDE/kdebase/CMakeCache.txt}} and manually set &amp;lt;tt&amp;gt;KDEPIMLIBS_INCLUDE_DIR:PATH=$KDE_BUILD/kdepimlibs&amp;lt;/tt&amp;gt;&lt;br /&gt;
* if you get an error saying &amp;quot;Please set the following variables: X11_XTest_LIB (ADVANCED)&amp;quot;, install the devel package of &amp;lt;tt&amp;gt;Xtst&amp;lt;/tt&amp;gt;. On some systems, this is packaged separately from &amp;lt;tt&amp;gt;xext&amp;lt;/tt&amp;gt; and called &amp;lt;tt&amp;gt;x11proto-xext-dev&amp;lt;/tt&amp;gt; or &amp;lt;tt&amp;gt;libxtst-dev&amp;lt;/tt&amp;gt;. You may also need to remove the CMakeCache.txt file in the build dir after installing the package.&lt;br /&gt;
* the same for &amp;quot;X11_Xinerama_LIB (ADVANCED)&amp;quot; where you will need the devel package for &amp;lt;tt&amp;gt;xinerama&amp;lt;/tt&amp;gt;.&lt;br /&gt;
* if you get an error complaining about a missing variable X11_Xrandr_LIB, you need the devel package for libxrandr (libxrandr-devel on ubuntu-systems)&lt;br /&gt;
* if you get the error &amp;quot;Please set the following variables: FONTCONFIG_INCLUDE_DIR, FONTCONFIG_LIBRARIES (ADVANCED)&amp;quot;, then you need to install  the libfontconfig headers&lt;br /&gt;
* if you get the error &amp;quot;CMake Error: This project requires some variables to be set, and cmake can not find them. Please set the following variables: KMETADATA_LIBRARIES&amp;quot;, you need to install soprano from kdesupport and to rebuild kdelibs&lt;br /&gt;
* if you get the error &amp;quot;‘XserverRegion’ does not name a type&amp;quot; make sure you have libxcomposite headers installed (&amp;lt;tt&amp;gt;libxcomposite-dev&amp;lt;/tt&amp;gt; in ubuntu)&lt;br /&gt;
* if you get the error &amp;quot;CMake Error: This project requires some variables to be set, and cmake can not find them. Please set the following variables: QT_QTOPENGL_LIBRARY (ADVANCED) &amp;quot;, try editing CMakeCache.txt and setting QT_QTOPENGL_LIBRARY:FILEPATH=/home/kde-devel/qt-copy/lib/libQtOpenGL.so&lt;br /&gt;
&lt;br /&gt;
* if you get messages as &amp;quot;KDE4_INSTALL_HANDBOOK() is deprecated. Remove it please. Now all is done in KDE4_CREATE_HANDBOOK.&amp;quot; then, either find the files containing the offending line and comment it out manually, or run the following script in ~/kde/src/KDE/kdebase: [http://www.plamadeala.com/files/macros_corrector.sh macros_corrector.sh]. It will just REMOVE the line that has &amp;quot;kde4_create_handbook&amp;quot; in it from all the found files.&lt;br /&gt;
*If you get an error (in ubuntu) concerning libxtst.so install the libxtst-dev package&lt;br /&gt;
* If you get the message &amp;quot;kdebase/workspace/kcontrol/kxkb/x11helper.cpp:131: error: ‘KGlobal’ has not been declared&amp;quot;, you might need to install libxklavier development packages.&lt;br /&gt;
* If you get &amp;quot;/home/kde-devel/kde/lib/libkio.so: undefined reference to `Strigi::AnalysisResult::AnalysisResult(std::basic_string&amp;lt;char, std::char_traits&amp;lt;char&amp;gt;, std::allocator&amp;lt;char&amp;gt; &amp;gt; const&amp;amp;, long, Strigi::IndexWriter&amp;amp;, Strigi::StreamAnalyzer&amp;amp;)'&amp;quot; you probably have an outdated version of strigi installed by your distro. By the way, after update the strigi, you must recompile kdelibs for a new libkio.so.&lt;br /&gt;
* If you get the issue &amp;quot;can't find REQUIRED package Blitz&amp;quot;, install qimageblitz4 and qimageblitz-dev&lt;br /&gt;
* If you get an error &amp;quot;class QWebFrame' has no member named 'contentsSize'&amp;quot; you need to upgrade your Qt&lt;br /&gt;
* If you have troubles building networkmanager-0.6, check if you have networkmanager-dev and libnm-util-dev installed&lt;br /&gt;
* If you get during cmake&lt;br /&gt;
 Please set the following variables:&lt;br /&gt;
 CLUCENE_LIBRARY_DIR (ADVANCED)&lt;br /&gt;
Make sure you have clucene installed and clucene-devel. If necessary, get the source from sourceforge and compile it. If you have SUSE and an x64 installation, you need to make cmake aware your library path is /usr/lib64, not /usr/lib. Do this with &lt;br /&gt;
 cmake -DLIB_SUFFIX=64 .&lt;br /&gt;
* If you get an error saying your soprano libraries are too old, but you've installed them under kdesupport, check to see if your build is using your system libraries instead. If so, then set:&lt;br /&gt;
 CMAKE_LIBRARY_PATH=/home/kde-devel/kde/lib:$CMAKE_LIBRARY_PATH&lt;br /&gt;
 CMAKE_INCLUDE_PATH=/home/kde-devel/kde/include:$CMAKE_INCLUDE_PATH&lt;br /&gt;
&lt;br /&gt;
 and delete the CMakeCache.txt in your build directory. &lt;br /&gt;
== Issues building kdepimlibs ==&lt;br /&gt;
If you have trouble compiling kdepimlibs:&lt;br /&gt;
* the cmakekde command may require a later version of the gpgme library.  This is available from the project's web site: http://www.gnupg.org/download/index.html - please note that the build of gpgme also requires libgpg-error, also available from the same location.  Both libraries are installed by the &amp;quot;./configure&amp;quot;, &amp;quot;make&amp;quot; and &amp;quot;sudo make install&amp;quot; sequence, with the gpgme library configured with the additional &amp;quot;--with-gpg-error-prefix&amp;quot; parameter.  You may need to overwrite your existing &amp;quot;/usr/bin/gpgme-config&amp;quot; file with the newer version for the kdepimlibs to pick up the new install.&lt;br /&gt;
* if cmake complains about missing akonadi headers, (CMake Error: Could not find Akonadi includes. or something similiar), then you lack the akonadi package which can be found in the kdesupport module. Since the kdesupport as a whole is quite large it is recommended that you selectively download the packages you need instead of fetching the entire kdesupport module.Akonadi relies on automoc, so we have to install it prior to building akonadi. The Automoc module can also be found in kdesupport.&lt;br /&gt;
&lt;br /&gt;
=== The Recipe for Automoc ===&lt;br /&gt;
 cd&lt;br /&gt;
 cs&lt;br /&gt;
 mkdir kdesupport &amp;amp;&amp;amp; cd kdesupport&lt;br /&gt;
 svn checkout svn://anonsvn.kde.org/home/kde/trunk/kdesupport/automoc&lt;br /&gt;
 cd automoc&lt;br /&gt;
 cmakekde&lt;br /&gt;
&lt;br /&gt;
=== The Recipe for Akonadi ===&lt;br /&gt;
 cd&lt;br /&gt;
 cs&lt;br /&gt;
 cd kdesupport&lt;br /&gt;
 svn checkout svn://anonsvn.kde.org/home/kde/trunk/kdesupport/akonadi&lt;br /&gt;
 cd akonadi&lt;br /&gt;
 cmakekde&lt;br /&gt;
&lt;br /&gt;
== Running programs ==&lt;br /&gt;
&lt;br /&gt;
* If you get &lt;br /&gt;
 KUniqueApplication: Cannot find the D-Bus session server&lt;br /&gt;
make sure you can access the display, e.g. type&lt;br /&gt;
 xclock&lt;br /&gt;
then a clock must appear on the screen. If it does and the error persists, start your shell using&lt;br /&gt;
 dbus-launch xterm&lt;br /&gt;
and start your program in there.&lt;br /&gt;
&lt;br /&gt;
* If you get something like&lt;br /&gt;
 Error: standard icon theme &amp;quot;oxygen&amp;quot; not found!&lt;br /&gt;
 &lt;br /&gt;
 ASSERT: &amp;quot;!isEmpty()&amp;quot; in file /home/kde-devel/qt-copy/include/QtCore/../../src/corelib/tools/qlist.h, line 245&lt;br /&gt;
 Aborted (core dumped)&lt;br /&gt;
You need to install kdebase - see above. It is enough to install the &amp;quot;runtime&amp;quot; directory from kdebase.&lt;br /&gt;
&lt;br /&gt;
== General troubleshooting ==&lt;br /&gt;
&lt;br /&gt;
What can happen over time, after some &amp;lt;tt&amp;gt;svn up&amp;lt;/tt&amp;gt; commands, is that some of the tools used in the KDE build chain change their output format. For example, &amp;lt;tt&amp;gt;kcfg&amp;lt;/tt&amp;gt; files are read by &amp;lt;tt&amp;gt;kconfig_compiler&amp;lt;/tt&amp;gt; to produce configuration dialogs. CMake cannot detect those changes, and the compilation might fail. A workaround is to always force a re-generation of all such files:&lt;br /&gt;
 find $KDE_SRC/KDE/kdebase -name &amp;quot;*.kcfg&amp;quot; | xargs touch&lt;br /&gt;
The same applies to &amp;lt;tt&amp;gt;ui&amp;lt;/tt&amp;gt; files as produced by Qt designer.&lt;br /&gt;
&lt;br /&gt;
=== Locked sessions ===&lt;br /&gt;
When installing KDE 4 as a user, one will not be able to unlock a locked session. To work around this issue you can either:&lt;br /&gt;
 su chown root.root $KDEDIR/lib/kde4/libexec/kcheckpass&lt;br /&gt;
or&lt;br /&gt;
 chmod 755 $KDEDIR/lib/kde4/libexec/kcheckpass&lt;br /&gt;
&lt;br /&gt;
Also you have to add a &amp;quot;kde&amp;quot; service in /etc/pam.d/ folder&lt;br /&gt;
&lt;br /&gt;
For example for RH/Fedora based distros:&lt;br /&gt;
&amp;lt;code&amp;gt; &lt;br /&gt;
 #%PAM-1.0&lt;br /&gt;
 auth       include      system-auth&lt;br /&gt;
 account    include      system-auth&lt;br /&gt;
 password   include      system-auth&lt;br /&gt;
 session    include      system-auth&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
while for debian/Kubuntu (requires having libpam-dev installed while building kdebase):&lt;br /&gt;
&amp;lt;code&amp;gt; &lt;br /&gt;
# Standard Un*x authentication.&lt;br /&gt;
@include common-auth&lt;br /&gt;
@include common-account&lt;br /&gt;
@include common-session&lt;br /&gt;
@include common-password&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;/div&gt;</summary>
		<author><name>Logixoul</name></author>	</entry>

	<entry>
		<id>http://techbase.kde.org/Getting_Started/Build/KDE4</id>
		<title>Getting Started/Build/KDE4</title>
		<link rel="alternate" type="text/html" href="http://techbase.kde.org/Getting_Started/Build/KDE4"/>
				<updated>2008-06-20T10:38:49Z</updated>
		
		<summary type="html">&lt;p&gt;Logixoul: changing the order of kdepimlibs and kdebase as discussed in #kde-devel&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Template:I18n/Language Navigation Bar|Getting_Started/Build/KDE4}}&lt;br /&gt;
&lt;br /&gt;
{{TutorialBrowser|&lt;br /&gt;
&lt;br /&gt;
series=Getting Started|&lt;br /&gt;
&lt;br /&gt;
name=Building KDE4 From Source|&lt;br /&gt;
&lt;br /&gt;
pre=[[../../Sources/Anonymous_SVN|Anonymous SVN Quickstart Guide]]|&lt;br /&gt;
&lt;br /&gt;
next=[[../../Set_up_KDE_4_for_development|Set up KDE 4 for development]]|&lt;br /&gt;
&lt;br /&gt;
reading=[[../kdesvn-build|kdesvn-build: The KDE From Subversion Build Tool]]&amp;lt;br&amp;gt;[[../../Increased_Productivity_in_KDE4_with_Scripts|Increased Productivity in KDE4 with Scripts]]&amp;lt;br&amp;gt;[[Development/Tutorials/CMake |Introduction to CMake]]&amp;lt;br&amp;gt;[[../KDE4/FreeBSD|FreeBSD notes]]&amp;lt;br&amp;gt;[[../KDE4/Mac OS X|Instructions for Mac OS X]]&amp;lt;br&amp;gt;[[../KDE4/Windows|Instructions for MS Windows]]|&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== Abstract ==&lt;br /&gt;
&lt;br /&gt;
This tutorial shows one way to get KDE from trunk running on Linux/BSD systems. There are also tutorials for [[Getting_Started/Build/KDE4/FreeBSD|FreeBSD]], [http://www.kdelibs.com/ Windows], [[Getting_Started/Build/KDE4/Mac OS X|Mac OS X]] and [http://solaris.kde.org/ Solaris]. Throughout the tutorial the bash shell is used.&lt;br /&gt;
&lt;br /&gt;
{{warning|Expect a higher risk of build failure '''on Mondays''' when most kdelibs changes are committed. [http://developer.kde.org/~dirk/dashboard/ Dashboard] reports unexpected breakages. You are encouraged to fix failing modules.}}&lt;br /&gt;
&lt;br /&gt;
== Create a user account for KDE4 development ==&lt;br /&gt;
&lt;br /&gt;
{{Note|&lt;br /&gt;
Some people like to have a separate user account for KDE 4 (for instance an old bug deleted files by mistake), and the instructions below were written with that approach.&lt;br /&gt;
&lt;br /&gt;
However it is much more efficient to do everything with a single user account, see [[Getting_Started/Increased_Productivity_in_KDE4_with_Scripts|Increased Productivity in KDE4 with Scripts]]&lt;br /&gt;
for more details. &lt;br /&gt;
&lt;br /&gt;
You can still follow the instructions below, but don't put the environment variables in your &amp;lt;tt&amp;gt;.bashrc&amp;lt;/tt&amp;gt;, put them in a separate file that you source to switch to the KDE 4 environment.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Option 1: Command Line ===&lt;br /&gt;
{{Note|&lt;br /&gt;
On some systems a new user is configured by default to use {{path|/bin/sh}}. Using {{path|/bin/sh}} can be very inconvenient to work with and you may want to change it to {{path|/bin/bash}} or another shell.&lt;br /&gt;
On Ark Linux and Fedora, you can skip the &amp;lt;tt&amp;gt;-s /bin/bash&amp;lt;/tt&amp;gt; switch - {{path|/bin/sh}} is {{path|bash}}.&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;code bash&amp;gt;&lt;br /&gt;
useradd -m kde-devel -s /bin/bash&lt;br /&gt;
passwd kde-devel&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{Warning|&lt;br /&gt;
The new kde-devel user will not be added automatically to all the user groups, which will result in not having sound, not being able to sudo, etc. Edit your /etc/groups file to add the kde-devel user to all the groups that you need (probably the groups that your usual username is already assigned to).&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
=== Option 2: Using KControl ===&lt;br /&gt;
&lt;br /&gt;
Instead of using the commands above, you can also use the User module in the KDE Control Center if you already have KDE3 installed.&lt;br /&gt;
&lt;br /&gt;
=== Setting up the environment ===&lt;br /&gt;
&lt;br /&gt;
Copy the {{path|~/.bashrc}} from your normal user account to the new kde-devel account. Next, copy and paste the contents of the [[Getting Started/Increased Productivity in KDE4 with Scripts/.bashrc|example .bashrc]] into {{path|~kde-devel/.bashrc}}. Be sure to comment out the line &amp;lt;tt&amp;gt;alias make=makeobj&amp;lt;/tt&amp;gt; if you do not have the &amp;lt;tt&amp;gt;[[Getting Started/Build/KDE4#Required Software|makeobj]]&amp;lt;/tt&amp;gt; command available. Alternatively, you can download the kde-sdk package (or perform a subversion checkout) and include the kde-sdk/scripts/ directory in your path. You will probably also want to modify the path to make sure it doesn't include your kde3 paths. Also if you want to use KDevelop to develop KDE 4 applications you may pass the ''-GKDevelop3'' flag to the ''cmake'' command (to make CMake generate KDevelop project files, it will help to avoid rebuilding in the future, see [[Getting_Started/Set_up_KDE_4_for_development#Setting_up_the_environment|this]]).  &lt;br /&gt;
To make it run, you have to open a new bash or to execute &lt;br /&gt;
&amp;lt;code bash&amp;gt;&lt;br /&gt;
source ~/.bashrc&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This will provide access to commands such as &amp;lt;tt&amp;gt;cmakekde&amp;lt;/tt&amp;gt; that are used in this tutorial as well as ensure that the proper paths are in place for Qt, KDE and CMake binaries.&lt;br /&gt;
&lt;br /&gt;
For more information, please read the [[Getting Started/Increased Productivity in KDE4 with Scripts]] tutorial.&lt;br /&gt;
&lt;br /&gt;
=== Switching to the New User ===&lt;br /&gt;
Switch to the user kde-devel: (don't forget the dash)&lt;br /&gt;
&amp;lt;code bash&amp;gt;&lt;br /&gt;
ssh -X kde-devel@localhost&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{Note|&lt;br /&gt;
If the ssh command fails, check out the [[Getting_Started/Set_up_KDE_4_for_development#Launching_KDE_4_apps|Launching KDE 4 apps]] section of the [[Getting_Started/Set_up_KDE_4_for_development|KDE4 development guide]].&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== Required packages from your distribution ==&lt;br /&gt;
The requirements to build kde4 from source vary from distribution to distribution. Instructions for your distribution are provided below:&lt;br /&gt;
&lt;br /&gt;
* [[Getting_Started/Build/KDE4/Ark Linux|Ark Linux]]&lt;br /&gt;
* [[Getting_Started/Build/KDE4/Arch Linux|Arch Linux]]&lt;br /&gt;
* [[Getting_Started/Build/KDE4/Fedora|Fedora]]&lt;br /&gt;
* [[Getting_Started/Build/KDE4/Kubuntu and Debian|Kubuntu and Debian]]&lt;br /&gt;
* [[Getting_Started/Build/KDE4/openSUSE|openSUSE]] Note: there is a [http://en.opensuse.org/KDE/Developing/Guide specific guide for openSUSE].&lt;br /&gt;
* [[Getting_Started/Build/KDE4/Gentoo|Gentoo]]&lt;br /&gt;
* [[Getting_Started/Build/KDE4/LFS|Linux from Scratch]] or to build from source.&lt;br /&gt;
* [[Getting_Started/Build/KDE4/Mandriva|Mandriva]]&lt;br /&gt;
&lt;br /&gt;
* [[Getting_Started/Build/KDE4/Generic|any other distro]]&lt;br /&gt;
&lt;br /&gt;
Your next compilation step depends on the packages supplied by your distro.&lt;br /&gt;
&lt;br /&gt;
=== Compiling qt-copy, HAL etc. ===&lt;br /&gt;
If you do not want to use the packages provided by your distro you can compile things like Qt yourself. Instructions for building all dependencies including HAL, Cmake, Qt4 (qt-copy) and kde-support are available in [[Getting_Started/Build/KDE4/Prerequisites|the build prerequisites page]].&lt;br /&gt;
&lt;br /&gt;
== Building KDE for development or stable use ==&lt;br /&gt;
&lt;br /&gt;
The commands below are used to build the latest unstable version of KDE from trunk. This should not be used in a production environment, but is recommended for developers.&lt;br /&gt;
&lt;br /&gt;
To build the stable version of KDE4, change the svn checkout commands below to &amp;lt;tt&amp;gt;branches/KDE/4.0/&amp;lt;/tt&amp;gt; instead of &amp;lt;tt&amp;gt;trunk/KDE/&amp;lt;/tt&amp;gt;, ie:&lt;br /&gt;
&lt;br /&gt;
 svn checkout svn://anonsvn.kde.org/home/kde/branches/KDE/4.0/kdelibs&lt;br /&gt;
&lt;br /&gt;
 svn checkout svn://anonsvn.kde.org/home/kde/branches/KDE/4.0/kdepimlibs&lt;br /&gt;
&lt;br /&gt;
 svn checkout svn://anonsvn.kde.org/home/kde/branches/KDE/4.0/kdebase&lt;br /&gt;
&lt;br /&gt;
etc...&lt;br /&gt;
&lt;br /&gt;
== kdelibs ==&lt;br /&gt;
&lt;br /&gt;
We can now move on to building KDE's base libraries.&lt;br /&gt;
&lt;br /&gt;
=== The Recipe ===&lt;br /&gt;
 cd   &lt;br /&gt;
 cs # [[Getting_Started/Increased_Productivity_in_KDE4_with_Scripts/.bashrc|'cs' is a bash function, click here to learn more]]&lt;br /&gt;
 mkdir KDE &amp;amp;&amp;amp; cd KDE&lt;br /&gt;
 svn checkout svn://anonsvn.kde.org/home/kde/trunk/KDE/kdelibs&lt;br /&gt;
 cd kdelibs&lt;br /&gt;
 cmakekde&lt;br /&gt;
&lt;br /&gt;
=== What's Happening ===&lt;br /&gt;
We change to the base source directory (line 1) then make and go into the KDE directory (line 2). We download the sources for kdelibs using subversion (line 3), go into the new {{path|~/kde/src/KDE/kdelibs}} directory (line 4), and commence the build (line 5). This will leave us in the &amp;lt;tt&amp;gt;kdelibs&amp;lt;/tt&amp;gt; build directory after the build is completed.&lt;br /&gt;
&lt;br /&gt;
{{tip|There might be missing dependencies on your system! They are easily overlooked in the output of &amp;lt;tt&amp;gt;cmakekde&amp;lt;/tt&amp;gt;.&lt;br /&gt;
You might want to do a &amp;lt;tt&amp;gt;cmake $KDE_SRC/KDE/MODULE_NAME&amp;lt;/tt&amp;gt; prior to compiling any kde modules (like kdelibs, kdepimlibs etc.)}}&lt;br /&gt;
&lt;br /&gt;
=== Additional KDE-specific CMake know-how ===&lt;br /&gt;
&lt;br /&gt;
There are additional CMake modules in {{path|kdelibs/cmake/modules/}} that are necessary for building KDE4 applications. These will be installed for you when  kdelibs itself is installed.&lt;br /&gt;
&lt;br /&gt;
To make a non-debug-release (e.g. suppressing all kDebug() messages), use e.g.&lt;br /&gt;
 cmake -DCMAKE_BUILD_TYPE=Release . &amp;amp;&amp;amp; make &amp;amp;&amp;amp; make install&lt;br /&gt;
&lt;br /&gt;
=== Troubleshooting ===&lt;br /&gt;
&lt;br /&gt;
For troubleshooting information, see the [[Getting_Started/Build/KDE4/Troubleshooting#Issues_building_kdelibs|kdelibs troubleshooting section]].&lt;br /&gt;
&lt;br /&gt;
== kdebase ==&lt;br /&gt;
kdebase is divided into three parts:&lt;br /&gt;
* '''apps'''&lt;br /&gt;
:This contains applications like Dolphin or KWrite.&lt;br /&gt;
* '''runtime'''&lt;br /&gt;
:This contains things needed by every application at runtime, like icons. It is a required dependency for each KDE application, so you have to compile and install this.&lt;br /&gt;
* '''workspace'''&lt;br /&gt;
:This contains things specific to the KDE desktop, like Plasma or the window manager. Most stuff here depends on X11. You only need it if you want to build a full KDE desktop.&lt;br /&gt;
&lt;br /&gt;
You can build all of kdebase at once, which is described in the recipe below. If you only want to build kdebase-runtime, which is the only requirement, you can replace &amp;lt;code bash&amp;gt;cd kdebase&amp;lt;/code&amp;gt; with &amp;lt;code bash&amp;gt;cd kdebase/runtime&amp;lt;/code&amp;gt; in the recipe below.&lt;br /&gt;
&lt;br /&gt;
=== The Recipe ===&lt;br /&gt;
 cs KDE # [[Getting_Started/Increased_Productivity_in_KDE4_with_Scripts/.bashrc|'cs' is a bash function, click here to learn more]]&lt;br /&gt;
 svn checkout svn://anonsvn.kde.org/home/kde/trunk/KDE/kdebase&lt;br /&gt;
 cd kdebase&lt;br /&gt;
 cmakekde&lt;br /&gt;
&lt;br /&gt;
=== Troubleshooting ===&lt;br /&gt;
For troubleshooting information, see the [[Getting_Started/Build/KDE4/Troubleshooting#Issues_building_kdebase|kdebase troubleshooting section]].&lt;br /&gt;
&lt;br /&gt;
== Running KDE 4 programs ==&lt;br /&gt;
&lt;br /&gt;
You can now run KDE 4 programs (e.g. kwrite) by typing:&lt;br /&gt;
 ssh -X kde-devel@localhost&lt;br /&gt;
 kwrite &lt;br /&gt;
&lt;br /&gt;
=== Troubleshooting ===&lt;br /&gt;
&lt;br /&gt;
For troubleshooting issues see [[Getting_Started/Build/KDE4/Troubleshooting#Running_programs|troubleshooting running programs]].&lt;br /&gt;
&lt;br /&gt;
== kdepimlibs ==&lt;br /&gt;
It is a good idea to build kdepimlibs, since some other packages require it (within KDE those are kdepim, kdeutils and kdenetwork).&lt;br /&gt;
&lt;br /&gt;
=== The Recipe ===&lt;br /&gt;
 cs KDE # [[Getting_Started/Increased_Productivity_in_KDE4_with_Scripts/.bashrc|'cs' is a bash function, click here to learn more]]&lt;br /&gt;
 svn checkout svn://anonsvn.kde.org/home/kde/trunk/KDE/kdepimlibs&lt;br /&gt;
 cd kdepimlibs&lt;br /&gt;
 cmakekde&lt;br /&gt;
&lt;br /&gt;
=== What's Happening ===&lt;br /&gt;
We go into the KDE source directory (line 1), download the source code for kdepimlibs using subversion (line 2) and then go into the new {{path|~/kde/src/KDE/kdepimlibs}} directory (line 3). We then commence the build (line 4). This will leave us in the &amp;lt;tt&amp;gt;kdepimlibs&amp;lt;/tt&amp;gt; build directory after the build is completed.&lt;br /&gt;
&lt;br /&gt;
=== Troubleshooting ===&lt;br /&gt;
&lt;br /&gt;
For troubleshooting information, see the [[Getting_Started/Build/KDE4/Troubleshooting#Issues_building_kdepimlibs|kdepimlibs troubleshooting section]].&lt;br /&gt;
&lt;br /&gt;
== Generating local API documentation ==&lt;br /&gt;
&lt;br /&gt;
See the [[Development/Tools/apidox|generating apidox]] page.&lt;br /&gt;
&lt;br /&gt;
== Staying up to date ==&lt;br /&gt;
&lt;br /&gt;
In order to keep the kde4 installation up to date, each of the modules installed should be updated periodically. As Monday is the day for big changes in kdelibs, Tuesday may be the best day to do this. For each module checked out, run &amp;lt;tt&amp;gt;svn up&amp;lt;/tt&amp;gt; and &amp;lt;tt&amp;gt;make&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
For example:&lt;br /&gt;
&amp;lt;code bash&amp;gt;&lt;br /&gt;
cs kdesupport # cs is not a typo&lt;br /&gt;
svn up&lt;br /&gt;
cb # cb is not a typo&lt;br /&gt;
make install&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Note: it is not necessary to run cmakekde for updates.&lt;br /&gt;
&lt;br /&gt;
== Installing a subset of a module ==&lt;br /&gt;
&lt;br /&gt;
Many modules in KDE contain a large number of programs which could take a long time to download and compile. In cases where you want to work only on a particular program or programs in a module, it is possible to download and compile particular folders. In some cases, certain folders are required for any build of the module. This is determined in the CMakeLists.txt file of the module. For example the [http://websvn.kde.org/branches/KDE/4.0/kdegames/CMakeLists.txt?view=markup kdegames CMakeLists.txt file] lists:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
add_subdirectory(libkdegames)&lt;br /&gt;
add_subdirectory(libkmahjongg)&lt;br /&gt;
&lt;br /&gt;
macro_optional_add_subdirectory(doc)&lt;br /&gt;
macro_optional_add_subdirectory(lskat)&lt;br /&gt;
macro_optional_add_subdirectory(katomic)&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
So, the libkdegames and libkmahjongg directories are required to build any of kdegames. The cmake directory will also usually be required. All the other directories (doc, katomic etc) are optional. They will be built if present on your machine. In this example, we build kmahjongg and kbattleship:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code bash&amp;gt;&lt;br /&gt;
cs KDE&lt;br /&gt;
svn co -N svn://anonsvn.kde.org/home/kde/trunk/KDE/kdegames # The -N switch performs a non-recursive checkout&lt;br /&gt;
cd kdegames&lt;br /&gt;
svn co svn://anonsvn.kde.org/home/kde/trunk/KDE/kdegames/libkdegames # Get required directories&lt;br /&gt;
svn co svn://anonsvn.kde.org/home/kde/trunk/KDE/kdegames/libkmahjongg&lt;br /&gt;
svn co svn://anonsvn.kde.org/home/kde/trunk/KDE/kdegames/cmake&lt;br /&gt;
svn co svn://anonsvn.kde.org/home/kde/trunk/KDE/kdegames/kbattleship # Get optional directories&lt;br /&gt;
svn co svn://anonsvn.kde.org/home/kde/trunk/KDE/kdegames/kmahjongg&lt;br /&gt;
cmakekde &lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Success! ==&lt;br /&gt;
&lt;br /&gt;
You are now ready to start building other svn modules in the same fashion as you built kdebase, running and testing KDE4 or writing your own patches and applications.&lt;br /&gt;
&lt;br /&gt;
See the [[Getting Started/Set up KDE 4 for development|Set up KDE 4 for development]] tutorial for how to start KDE 4 applications and how to use KDevelop to work on them.&lt;br /&gt;
&lt;br /&gt;
[[Category:Build KDE]]&lt;br /&gt;
[[Category:KDE4]]&lt;/div&gt;</summary>
		<author><name>Logixoul</name></author>	</entry>

	<entry>
		<id>http://techbase.kde.org/Contribute/Bugsquad/BugDays/flashplugin</id>
		<title>Contribute/Bugsquad/BugDays/flashplugin</title>
		<link rel="alternate" type="text/html" href="http://techbase.kde.org/Contribute/Bugsquad/BugDays/flashplugin"/>
				<updated>2008-05-08T09:06:56Z</updated>
		
		<summary type="html">&lt;p&gt;Logixoul: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Flash support in Konqueror=&lt;br /&gt;
&amp;lt;b&amp;gt;Please list kde version, flash version, 32/64bit here.&amp;lt;/b&amp;gt;&lt;br /&gt;
&lt;br /&gt;
about:plugins in the urlbar will tell you what flash version you have&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Reproducibility is what we are looking for here, backtraces aren't as useful, apparently.&amp;lt;/b&amp;gt; Eventually we can perhaps just link to this webpage from bugreports, as we'll have a nice matrix of what versions work, right?&lt;br /&gt;
&lt;br /&gt;
[[User:Blauzahl|Blauzahl]] WORKSFORME flash 9.0.115 on a 32bit compiled system, 4.0.3ish branch. Note: should test with latest svn up...&lt;br /&gt;
&lt;br /&gt;
I ([[User:mutlu_inek|mutlu_inek]]) can use flash. It works with a few errors (see  test cases below) &amp;lt;s&amp;gt;and reliable crashes of nspluginviewer, not Konqui, every time I browse away from a site using flash. The Nspluginviewer does automatically restart, though, so no grave problem.&amp;lt;/s&amp;gt; I am using self-compiled trunk, rev. &amp;lt;s&amp;gt;798847&amp;lt;/s&amp;gt; &amp;lt;s&amp;gt;799237&amp;lt;/s&amp;gt; &amp;lt;s&amp;gt;800877&amp;lt;/s&amp;gt; 804277, and adobe's flashplugin 9.0.124 on Arch Linux, 32 bit.&lt;br /&gt;
&lt;br /&gt;
The nsplugin crashes have been fixed in trunk, I am running rev. 804277 (mutlu_inek).&lt;br /&gt;
&lt;br /&gt;
Flash Player 9.0.48 works perfectly in my Konq r803177 (trunk). IIRC 9.0.115 hung randomly, crashed, and continuously spiked the CPU. System is 32bit. [[User:Logixoul|Logixoul]] 11:00, 8 May 2008 (CEST)&lt;br /&gt;
&lt;br /&gt;
=Test site #1: pathological goodness=&lt;br /&gt;
&lt;br /&gt;
http://www.canal13.cl&lt;br /&gt;
&lt;br /&gt;
What happens?&lt;br /&gt;
&lt;br /&gt;
Sahaqiel -If I close the tab after hovering the second ad counting from the right, nspluginviewer will crash. &amp;lt;s&amp;gt;And besides, the ad will expand leaving a blank spot with the size the ad occupied&amp;lt;/s&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
[[User:Blauzahl|Blauzahl]] - Sad. It doesn't all display. I get gray boxes. I swear this site worked fine for me the last time we did BugDay. I also get the ad expansion blanking the underlying text. [http://pobox.com/~zahl/kde/canal.pathalogical.png screenshot]&lt;br /&gt;
 &lt;br /&gt;
if you have multiple tabs open, and then hover over the dog ad, then close that tab, does it crash? &lt;br /&gt;
uga says: uhm... tried but, as soon as I tried opening a new tab, my (google) konqui got locked&lt;br /&gt;
&lt;br /&gt;
[[User:mutlu_inek|mutlu_inek]] - The site looks and works exactly like in Firefox: [http://img185.imageshack.us/img185/5559/snapshot3kw1.png screenshot]&lt;br /&gt;
*&amp;lt;s&amp;gt;Flash boxes that resize themselves are not displayed correctly, they claim the space they use when they are full-sized by displaying a white box over the other flash content.&amp;lt;/s&amp;gt; The same issue with Firefox. Appears to have nothing to do with Konqui.&lt;br /&gt;
*&amp;lt;s&amp;gt;The video player flash box has a black background that is larger than the video player box.&amp;lt;/s&amp;gt; The same issue with Firefox. Appears to have nothing to do with Konqui.&lt;br /&gt;
*&amp;lt;s&amp;gt;Nspluginviewer crashes when browsing away from the site.&amp;lt;/s&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Test site #2: youtube=&lt;br /&gt;
&lt;br /&gt;
http://youtube.com&lt;br /&gt;
[http://youtube.com/watch?v=wCF3ywukQYA nice shoes.]&lt;br /&gt;
&lt;br /&gt;
[[User:mutlu_inek|mutlu_inek]] - The site looks and works exactly like in Firefox: [http://img262.imageshack.us/img262/4219/snapshot6og5.png screenshot]&lt;br /&gt;
*&amp;lt;s&amp;gt;Nspluginviewer crashes when browsing away from the site.&amp;lt;/s&amp;gt;&lt;br /&gt;
[[User:Blauzahl|Blauzahl]] - worked for me, will retest if someone gives me a hockey video&lt;br /&gt;
&lt;br /&gt;
=Test site #3: Google streetview=&lt;br /&gt;
&lt;br /&gt;
http://maps.google.com ---&amp;gt; streetview &lt;br /&gt;
Does it work?&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[User:mutlu_inek|mutlu_inek]] - The site looks exactly like in Firefox.&lt;br /&gt;
&amp;lt;br&amp;gt;Issues:&lt;br /&gt;
*Full-Screen View does not work. The view is enlarged only within the regular google map box (it does not take over the search results space on the left as in Firefox). Also, the street scene becomes gray and nothing will get the functionality back (not even returning from full-screen view). To be able to use street view again, the street view window has to be closed and a new one opened.&lt;br /&gt;
*Moving the map that underlies the street view moves the street view popup since it is fixed to the location on the map that was searched for [This is correct behavior]. When the street view popup leaves the frame of the regular map view in Firefox, it is _below_ the search results and address bar parts of the website. In Konqueror, however, the street view (without the popup's frame) overlays the rest of the website. See: [http://img376.imageshack.us/my.php?image=snapshot8jv4.png screenshot]&lt;br /&gt;
*&amp;lt;s&amp;gt;Nspluginviewer crashes when browsing away from the site and when closing a street view popup.&amp;lt;/s&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{Bug|161137}} probably ought to just be closed, but we'll see if the guy does so first&lt;br /&gt;
&lt;br /&gt;
=Test site #4: Music site: jamendo.com=&lt;br /&gt;
http://jamendo.com &lt;br /&gt;
&lt;br /&gt;
[[User:Blauzahl|Blauzahl]] says: Newest site on my shitlist. &lt;br /&gt;
*Super slow. &lt;br /&gt;
*I can't change languages. (works under iceweasel 2.0.0.18)&lt;br /&gt;
*I can't play music. It gives a popup box saying there's a problem with the flash audio backend. In Iceweasel it says it wants Flash 6+ to run jamPlayerWeb. So maybe it just isn't finding it?&lt;br /&gt;
*btw: Lots of commentary on irc about how they just look for ff or ie and refuse everyone else. Probably are screwed here. Don't remember if cloaking made it work.&lt;br /&gt;
&lt;br /&gt;
[[User:mutlu_inek|mutlu_inek]] finds that the site works reasonably fast and simply browsing it has not yet triggered any errors. However, ...&lt;br /&gt;
*Playing music (whether through the embedded player in the upper right or through the popup player does not work. In both cases, Konqueror simply freezes. In the latter case, the popup does not even show. No hints at what is wrong on the command line. No crash report.&lt;br /&gt;
*Downloading songs in not possible, either. Clicking the &amp;quot;download&amp;quot; button equally freezes Konqueror.&lt;br /&gt;
&lt;br /&gt;
=Keep an eye on:=&lt;br /&gt;
*http://bugs.kde.org/show_bug.cgi?id=161383&lt;br /&gt;
*&amp;lt;s&amp;gt;http://lists.kde.org/?t=120903182100001&amp;amp;r=1&amp;amp;w=2&amp;lt;/s&amp;gt;&lt;/div&gt;</summary>
		<author><name>Logixoul</name></author>	</entry>

	<entry>
		<id>http://techbase.kde.org/Contribute/Bugsquad/BugDays/flashplugin</id>
		<title>Contribute/Bugsquad/BugDays/flashplugin</title>
		<link rel="alternate" type="text/html" href="http://techbase.kde.org/Contribute/Bugsquad/BugDays/flashplugin"/>
				<updated>2008-05-08T09:00:36Z</updated>
		
		<summary type="html">&lt;p&gt;Logixoul: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Flash support in Konqueror=&lt;br /&gt;
&amp;lt;b&amp;gt;Please list kde version, flash version, 32/64bit here.&amp;lt;/b&amp;gt;&lt;br /&gt;
about:plugins in the urlbar will tell you what flash version you have&lt;br /&gt;
&lt;br /&gt;
[[User:Blauzahl|Blauzahl]] WORKSFORME flash 9.0.115 on a 32bit compiled system, 4.0.3ish branch. Note: should test with latest svn up...&lt;br /&gt;
&lt;br /&gt;
I ([[User:mutlu_inek|mutlu_inek]]) can use flash. It works with a few errors (see  test cases below) &amp;lt;s&amp;gt;and reliable crashes of nspluginviewer, not Konqui, every time I browse away from a site using flash. The Nspluginviewer does automatically restart, though, so no grave problem.&amp;lt;/s&amp;gt; I am using self-compiled trunk, rev. &amp;lt;s&amp;gt;798847&amp;lt;/s&amp;gt; &amp;lt;s&amp;gt;799237&amp;lt;/s&amp;gt; &amp;lt;s&amp;gt;800877&amp;lt;/s&amp;gt; 804277, and adobe's flashplugin 9.0.124 on Arch Linux, 32 bit.&lt;br /&gt;
&lt;br /&gt;
The nsplugin crashes have been fixed in trunk, I am running rev. 804277 (mutlu_inek).&lt;br /&gt;
&lt;br /&gt;
Flash Player 9.0.48 works perfectly in my Konq r803177 (trunk). IIRC 9.0.115 hung randomly, crashed, and continuously spiked the CPU. [[User:Logixoul|Logixoul]] 11:00, 8 May 2008 (CEST)&lt;br /&gt;
&lt;br /&gt;
=Test site #1: pathological goodness=&lt;br /&gt;
&lt;br /&gt;
http://www.canal13.cl&lt;br /&gt;
&lt;br /&gt;
What happens?&lt;br /&gt;
&lt;br /&gt;
Sahaqiel -If I close the tab after hovering the second ad counting from the right, nspluginviewer will crash. &amp;lt;s&amp;gt;And besides, the ad will expand leaving a blank spot with the size the ad occupied&amp;lt;/s&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
[[User:Blauzahl|Blauzahl]] - Sad. It doesn't all display. I get gray boxes. I swear this site worked fine for me the last time we did BugDay. I also get the ad expansion blanking the underlying text. [http://pobox.com/~zahl/kde/canal.pathalogical.png screenshot]&lt;br /&gt;
 &lt;br /&gt;
if you have multiple tabs open, and then hover over the dog ad, then close that tab, does it crash? &lt;br /&gt;
uga says: uhm... tried but, as soon as I tried opening a new tab, my (google) konqui got locked&lt;br /&gt;
&lt;br /&gt;
[[User:mutlu_inek|mutlu_inek]] - The site looks and works exactly like in Firefox: [http://img185.imageshack.us/img185/5559/snapshot3kw1.png screenshot]&lt;br /&gt;
*&amp;lt;s&amp;gt;Flash boxes that resize themselves are not displayed correctly, they claim the space they use when they are full-sized by displaying a white box over the other flash content.&amp;lt;/s&amp;gt; The same issue with Firefox. Appears to have nothing to do with Konqui.&lt;br /&gt;
*&amp;lt;s&amp;gt;The video player flash box has a black background that is larger than the video player box.&amp;lt;/s&amp;gt; The same issue with Firefox. Appears to have nothing to do with Konqui.&lt;br /&gt;
*&amp;lt;s&amp;gt;Nspluginviewer crashes when browsing away from the site.&amp;lt;/s&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Test site #2: youtube=&lt;br /&gt;
&lt;br /&gt;
http://youtube.com&lt;br /&gt;
[http://youtube.com/watch?v=wCF3ywukQYA nice shoes.]&lt;br /&gt;
&lt;br /&gt;
[[User:mutlu_inek|mutlu_inek]] - The site looks and works exactly like in Firefox: [http://img262.imageshack.us/img262/4219/snapshot6og5.png screenshot]&lt;br /&gt;
*&amp;lt;s&amp;gt;Nspluginviewer crashes when browsing away from the site.&amp;lt;/s&amp;gt;&lt;br /&gt;
[[User:Blauzahl|Blauzahl]] - worked for me, will retest if someone gives me a hockey video&lt;br /&gt;
&lt;br /&gt;
=Test site #3: Google streetview=&lt;br /&gt;
&lt;br /&gt;
http://maps.google.com ---&amp;gt; streetview &lt;br /&gt;
Does it work?&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[User:mutlu_inek|mutlu_inek]] - The site looks exactly like in Firefox.&lt;br /&gt;
&amp;lt;br&amp;gt;Issues:&lt;br /&gt;
*Full-Screen View does not work. The view is enlarged only within the regular google map box (it does not take over the search results space on the left as in Firefox). Also, the street scene becomes gray and nothing will get the functionality back (not even returning from full-screen view). To be able to use street view again, the street view window has to be closed and a new one opened.&lt;br /&gt;
*Moving the map that underlies the street view moves the street view popup since it is fixed to the location on the map that was searched for [This is correct behavior]. When the street view popup leaves the frame of the regular map view in Firefox, it is _below_ the search results and address bar parts of the website. In Konqueror, however, the street view (without the popup's frame) overlays the rest of the website. See: [http://img376.imageshack.us/my.php?image=snapshot8jv4.png screenshot]&lt;br /&gt;
*&amp;lt;s&amp;gt;Nspluginviewer crashes when browsing away from the site and when closing a street view popup.&amp;lt;/s&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{Bug|161137}} probably ought to just be closed, but we'll see if the guy does so first&lt;br /&gt;
&lt;br /&gt;
=Test site #4: Music site: jamendo.com=&lt;br /&gt;
http://jamendo.com &lt;br /&gt;
&lt;br /&gt;
[[User:Blauzahl|Blauzahl]] says: Newest site on my shitlist. &lt;br /&gt;
*Super slow. &lt;br /&gt;
*I can't change languages. (works under iceweasel 2.0.0.18)&lt;br /&gt;
*I can't play music. It gives a popup box saying there's a problem with the flash audio backend. In Iceweasel it says it wants Flash 6+ to run jamPlayerWeb. So maybe it just isn't finding it?&lt;br /&gt;
*btw: Lots of commentary on irc about how they just look for ff or ie and refuse everyone else. Probably are screwed here. Don't remember if cloaking made it work.&lt;br /&gt;
&lt;br /&gt;
[[User:mutlu_inek|mutlu_inek]] finds that the site works reasonably fast and simply browsing it has not yet triggered any errors. However, ...&lt;br /&gt;
*Playing music (whether through the embedded player in the upper right or through the popup player does not work. In both cases, Konqueror simply freezes. In the latter case, the popup does not even show. No hints at what is wrong on the command line. No crash report.&lt;br /&gt;
*Downloading songs in not possible, either. Clicking the &amp;quot;download&amp;quot; button equally freezes Konqueror.&lt;br /&gt;
&lt;br /&gt;
=Keep an eye on:=&lt;br /&gt;
*http://bugs.kde.org/show_bug.cgi?id=161383&lt;br /&gt;
*&amp;lt;s&amp;gt;http://lists.kde.org/?t=120903182100001&amp;amp;r=1&amp;amp;w=2&amp;lt;/s&amp;gt;&lt;/div&gt;</summary>
		<author><name>Logixoul</name></author>	</entry>

	<entry>
		<id>http://techbase.kde.org/Projects/Oxygen/StyleWinDec</id>
		<title>Projects/Oxygen/StyleWinDec</title>
		<link rel="alternate" type="text/html" href="http://techbase.kde.org/Projects/Oxygen/StyleWinDec"/>
				<updated>2008-04-30T08:19:55Z</updated>
		
		<summary type="html">&lt;p&gt;Logixoul: old warning, the page is protected now&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The current Oxygen style and window decoration for KDE4 can be found in SVN under http://websvn.kde.org/trunk/KDE/kdebase/runtime/kstyles/oxygen and http://websvn.kde.org/trunk/KDE/kdebase/workspace/kwin/clients/oxygen&lt;br /&gt;
&lt;br /&gt;
== Visitors ==&lt;br /&gt;
We no longer accept bugs here.&lt;br /&gt;
&lt;br /&gt;
Please use bugs.kde.org under Oxygen&lt;br /&gt;
&lt;br /&gt;
We strongly suggest that you come to #oxygen on irc first to discuss the bug.&lt;br /&gt;
&lt;br /&gt;
== Rejected Bugs ==&lt;br /&gt;
* In (double) spinboxes the font is positioned one pixel too high. Lowering it one makes it baseline-aligned with labels in front. &amp;lt;b&amp;gt;Unfortunately not possible. We want them to be the same size as editable comboboxes and lineedits and buttons so those line up. The 1px wrong placement of text is a qt weirdness that gives visual bugs when we try to work around it &amp;lt;/b&amp;gt;&lt;br /&gt;
* Centered group titles pose several problems. Left align group titles instead. See Discussion for more details.&lt;br /&gt;
* KMenu::addTitle() adds a widget action to display a title in a popup menu. This is not specific to Oxygen, but the widget it creates could use some polishing. (to see this, right click any icon in the system tray)&amp;lt;b&amp;gt;not a style bug report to kmenu maintainer - and don't ever add things to &amp;quot;accepted bugs&amp;quot; below again - this went unnoticed because of that &amp;lt;/b&amp;gt;&lt;br /&gt;
* &amp;quot;flat&amp;quot; buttons drawn same as regular buttons &amp;lt;b&amp;gt;we may not want flat buttons - considering&amp;lt;/b&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Things we'd like to do ==&lt;br /&gt;
* progress bars still not like the artist wants &amp;lt;span style=&amp;quot;color: orange&amp;quot;&amp;gt;priority&amp;lt;/span&amp;gt;&lt;br /&gt;
* should repaint on globalChange signal (how?) &amp;lt;span style=&amp;quot;color: green&amp;quot;&amp;gt;releasable&amp;lt;/span&amp;gt;&lt;br /&gt;
** this seems to only be a problem for the colors kcm, may not even be a style bug&lt;br /&gt;
*headers in tables&lt;br /&gt;
**not really done - but the plain color look is acceptable for now &amp;lt;span style=&amp;quot;color: green&amp;quot;&amp;gt;releasable&amp;lt;/span&amp;gt;&lt;br /&gt;
* Rounded corners of floatables (windows,menus dockers) should be done with alpha&lt;br /&gt;
* Windeco should use alpha for corners (need kwin improvements?)&lt;br /&gt;
* groupboxes&lt;br /&gt;
** make flat more homogeneous in look with normal (very short regular?)&lt;br /&gt;
* docked dockers might need a nicer frame&lt;br /&gt;
&lt;br /&gt;
== QA ==&lt;br /&gt;
This is helpful checklist to use when looking for bugs in a style:&lt;br /&gt;
* reverse layout&lt;br /&gt;
* high-contrast color schemes (i.e. all fg/bg black or white)&lt;br /&gt;
* reverse-light/dark color schemes (e.g. light-on-dark buttons with dark-on-light views, etc.)&lt;br /&gt;
* [http://pastebin.ca/803298 QA color scheme]&lt;br /&gt;
* sliders, scrollbars, progress - in all orientations and good cross section of values&lt;br /&gt;
* content padding works for all controls, does not break sizeToContents functionality&lt;br /&gt;
* controls align nicely and controls that should be the same size, are&lt;br /&gt;
* no obvious glitches in uidemo&lt;br /&gt;
&lt;br /&gt;
[[Category:Artwork]][[Category:Oxygen]]&lt;/div&gt;</summary>
		<author><name>Logixoul</name></author>	</entry>

	<entry>
		<id>http://techbase.kde.org/Projects/Oxygen/StyleWinDec</id>
		<title>Projects/Oxygen/StyleWinDec</title>
		<link rel="alternate" type="text/html" href="http://techbase.kde.org/Projects/Oxygen/StyleWinDec"/>
				<updated>2008-04-30T08:18:48Z</updated>
		
		<summary type="html">&lt;p&gt;Logixoul: removing fixed item&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The current Oxygen style and window decoration for KDE4 can be found in SVN under http://websvn.kde.org/trunk/KDE/kdebase/runtime/kstyles/oxygen and http://websvn.kde.org/trunk/KDE/kdebase/workspace/kwin/clients/oxygen&lt;br /&gt;
&lt;br /&gt;
== Visitors ==&lt;br /&gt;
We no long accept bugs here.&lt;br /&gt;
&lt;br /&gt;
Please use bugs.kde.org under Oxygen&lt;br /&gt;
&lt;br /&gt;
We strongly suggest that you come to #oxygen on irc first to discuss the bug.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;DO NOT EDIT SECTIONS WITHOUT PERMISSION&amp;lt;/b&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Rejected Bugs ==&lt;br /&gt;
* In (double) spinboxes the font is positioned one pixel too high. Lowering it one makes it baseline-aligned with labels in front. &amp;lt;b&amp;gt;Unfortunately not possible. We want them to be the same size as editable comboboxes and lineedits and buttons so those line up. The 1px wrong placement of text is a qt weirdness that gives visual bugs when we try to work around it &amp;lt;/b&amp;gt;&lt;br /&gt;
* Centered group titles pose several problems. Left align group titles instead. See Discussion for more details.&lt;br /&gt;
* KMenu::addTitle() adds a widget action to display a title in a popup menu. This is not specific to Oxygen, but the widget it creates could use some polishing. (to see this, right click any icon in the system tray)&amp;lt;b&amp;gt;not a style bug report to kmenu maintainer - and don't ever add things to &amp;quot;accepted bugs&amp;quot; below again - this went unnoticed because of that &amp;lt;/b&amp;gt;&lt;br /&gt;
* &amp;quot;flat&amp;quot; buttons drawn same as regular buttons &amp;lt;b&amp;gt;we may not want flat buttons - considering&amp;lt;/b&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Things we'd like to do ==&lt;br /&gt;
* progress bars still not like the artist wants &amp;lt;span style=&amp;quot;color: orange&amp;quot;&amp;gt;priority&amp;lt;/span&amp;gt;&lt;br /&gt;
* should repaint on globalChange signal (how?) &amp;lt;span style=&amp;quot;color: green&amp;quot;&amp;gt;releasable&amp;lt;/span&amp;gt;&lt;br /&gt;
** this seems to only be a problem for the colors kcm, may not even be a style bug&lt;br /&gt;
*headers in tables&lt;br /&gt;
**not really done - but the plain color look is acceptable for now &amp;lt;span style=&amp;quot;color: green&amp;quot;&amp;gt;releasable&amp;lt;/span&amp;gt;&lt;br /&gt;
* Rounded corners of floatables (windows,menus dockers) should be done with alpha&lt;br /&gt;
* Windeco should use alpha for corners (need kwin improvements?)&lt;br /&gt;
* groupboxes&lt;br /&gt;
** make flat more homogeneous in look with normal (very short regular?)&lt;br /&gt;
* docked dockers might need a nicer frame&lt;br /&gt;
&lt;br /&gt;
== QA ==&lt;br /&gt;
This is helpful checklist to use when looking for bugs in a style:&lt;br /&gt;
* reverse layout&lt;br /&gt;
* high-contrast color schemes (i.e. all fg/bg black or white)&lt;br /&gt;
* reverse-light/dark color schemes (e.g. light-on-dark buttons with dark-on-light views, etc.)&lt;br /&gt;
* [http://pastebin.ca/803298 QA color scheme]&lt;br /&gt;
* sliders, scrollbars, progress - in all orientations and good cross section of values&lt;br /&gt;
* content padding works for all controls, does not break sizeToContents functionality&lt;br /&gt;
* controls align nicely and controls that should be the same size, are&lt;br /&gt;
* no obvious glitches in uidemo&lt;br /&gt;
&lt;br /&gt;
[[Category:Artwork]][[Category:Oxygen]]&lt;/div&gt;</summary>
		<author><name>Logixoul</name></author>	</entry>

	<entry>
		<id>http://techbase.kde.org/User_talk:JRT</id>
		<title>User talk:JRT</title>
		<link rel="alternate" type="text/html" href="http://techbase.kde.org/User_talk:JRT"/>
				<updated>2008-04-05T18:18:06Z</updated>
		
		<summary type="html">&lt;p&gt;Logixoul: KDE4-both&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== KDE4-both ==&lt;br /&gt;
&lt;br /&gt;
Hey, I removed your link to &amp;quot;KDE4-both&amp;quot;, because no one has written that page yet ;) also I find it of questionable usefulness. --[[User:Logixoul|Logixoul]] 20:18, 5 April 2008 (CEST)&lt;/div&gt;</summary>
		<author><name>Logixoul</name></author>	</entry>

	<entry>
		<id>http://techbase.kde.org/Getting_Started</id>
		<title>Getting Started</title>
		<link rel="alternate" type="text/html" href="http://techbase.kde.org/Getting_Started"/>
				<updated>2008-04-05T18:17:27Z</updated>
		
		<summary type="html">&lt;p&gt;Logixoul: no such page yet ;)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Template:I18n/Language Navigation Bar|Getting_Started}}&lt;br /&gt;
{{Box|Getting the Source|&lt;br /&gt;
[[Image:Action_down.svg|right|32px]]&lt;br /&gt;
* [[Getting_Started/Sources/Anonymous SVN|Anonymous SVN Quickstart Guide]]&lt;br /&gt;
* [[Getting_Started/Sources/Using Subversion with KDE|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.''&lt;br /&gt;
* [[Getting_Started/Sources/Snapshots|Daily Snapshots]]&lt;br /&gt;
* [http://websvn.kde.org/ Browse Code Online]&lt;br /&gt;
|100%}}&lt;br /&gt;
&lt;br /&gt;
{{Box|Building KDE|&lt;br /&gt;
[[Image:Action_tool.svg|right|32px]]&lt;br /&gt;
There are different KDE branches. For production use, we recommend using a stable version of KDE.&lt;br /&gt;
* [[Getting_Started/Build/KDE4|KDE 4 (Development version, TRUNK)]]&lt;br /&gt;
* [[Getting_Started/Build/KDE4.0|KDE 4 (Current Release or BRANCH)]]&lt;br /&gt;
* [[Getting_Started/Build/Stable Version|KDE 3.5 (Stable version)]]&lt;br /&gt;
* [[Getting_Started/Build|Other versions and FAQ]] ''Including information for building on non-linux systems''&lt;br /&gt;
|100%}}&lt;br /&gt;
&lt;br /&gt;
{{Box|Setting up the Environment|&lt;br /&gt;
[[Image:Action_pen.svg|right|32px]]&lt;br /&gt;
After KDE has been built, you'll want a good way to launch apps and perform your regular development tasks:&lt;br /&gt;
* [[Getting_Started/Increased Productivity in KDE4 with Scripts|Increased Productivity in KDE4 with Scripts]]&lt;br /&gt;
* [[Getting_Started/Set up KDE 4 for development|Set up KDE 4 for development]]&lt;br /&gt;
|100%}}&lt;br /&gt;
[[Category:Build KDE]]&lt;/div&gt;</summary>
		<author><name>Logixoul</name></author>	</entry>

	<entry>
		<id>http://techbase.kde.org/Getting_Started/Sources/Anonymous_SVN</id>
		<title>Getting Started/Sources/Anonymous SVN</title>
		<link rel="alternate" type="text/html" href="http://techbase.kde.org/Getting_Started/Sources/Anonymous_SVN"/>
				<updated>2008-03-08T09:40:17Z</updated>
		
		<summary type="html">&lt;p&gt;Logixoul: /* Abstract */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Template:I18n/Language Navigation Bar|Getting Started/Sources/Anonymous SVN}}&lt;br /&gt;
{{TutorialBrowser|&lt;br /&gt;
&lt;br /&gt;
series=Getting Started|&lt;br /&gt;
&lt;br /&gt;
name=Getting KDE Sources Using Anonymous Subversion (SVN)|&lt;br /&gt;
&lt;br /&gt;
next=[[../../Build/KDE4|Building KDE4]]|&lt;br /&gt;
&lt;br /&gt;
reading=[http://svnbook.red-bean.com/ Version Control with Subversion]|&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== Abstract ==&lt;br /&gt;
&lt;br /&gt;
For those of us that like to stay on the &amp;quot;bleeding edge&amp;quot; there's an easy way to keep a local copy of the KDE sources up-to-date - anonymous SVN.&lt;br /&gt;
&lt;br /&gt;
Alternatively, install [[Getting_Started/Distribution_Packages|KDE SVN packages from your distribution]].&lt;br /&gt;
&lt;br /&gt;
== Anonymous SVN ==&lt;br /&gt;
&lt;br /&gt;
=== Setup Subversion ===&lt;br /&gt;
&lt;br /&gt;
First, install the subversion (svn) binary if it isn't already on your computer. Your operating system should have a package for it. Alternatively you can download and compile it yourself via the [http://subversion.tigris.org/project_packages.html svn project download page]. Please read the [[Getting_Started/Sources/Using_Subversion_with_KDE|KDE Subversion tutorial]] if you are interested in how to use Subversion.&lt;br /&gt;
&lt;br /&gt;
=== Checkout KDE ===&lt;br /&gt;
&lt;br /&gt;
'''/trunk/''' is where the Qt4-based KDE 4 is being developed. The following is the minimal set of modules you will need to check out to build KDE and KDE software:&lt;br /&gt;
      &lt;br /&gt;
 svn co svn://anonsvn.kde.org/home/kde/trunk/KDE/kdelibs&lt;br /&gt;
 svn co svn://anonsvn.kde.org/home/kde/trunk/KDE/kdebase&lt;br /&gt;
&lt;br /&gt;
{{tip|If your firewall doesn't allow access to arbitrary ports, substitute '''svn://anonsvn.kde.org/''' with '''svn://websvn.kde.org:443/''' above.}}&lt;br /&gt;
&lt;br /&gt;
{{tip|The kdebase module has an external dependency, using svn:externals. The problem is, at this time, the externals property is set with an absolute path, pointing to anonsvn. For those using behind a firewall, this is a problem. You can change the property for your workspace, using two commands:&lt;br /&gt;
 cs KDE&lt;br /&gt;
 svn propset svn:externals &amp;quot;lib svn://websvn.kde.org:443/home/kde/trunk/KDE/kdebase/runtime/kstyles/oxygen/lib&amp;quot; kdebase/workspace/kwin/clients/oxygen &lt;br /&gt;
 This way the external property will look for the aditional files in the websvn repository.}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''qt-copy''' is a copy of the latest stable [http://www.trolltech.com Qt] release which works with KDE, put into SVN for convenience. It also contains patches by KDE developers that haven't found their way to Qt yet. They are recommended for those working with KDE from '''trunk'''. Instructions on how to get and configure it can be found [[Getting_Started/Build/KDE4/Prerequisites#Qt |here]].&lt;br /&gt;
&lt;br /&gt;
If you wish to have a complete copy of the KDE distribution, you can simply check out the entire source tree with one command:&lt;br /&gt;
&lt;br /&gt;
 svn co svn://anonsvn.kde.org/home/kde/trunk/KDE&lt;br /&gt;
&lt;br /&gt;
{{note|It is smarter to first use [http://websvn.kde.org/trunk/KDE The KDE Source Repository Web Viewer]. Use it to choose which modules to download. This way KDE will be quicker to install and try out.}}&lt;br /&gt;
&lt;br /&gt;
If you want additional software packages you can check out the following modules within '''trunk/''' as well:&lt;br /&gt;
&lt;br /&gt;
 koffice&lt;br /&gt;
 extragear&lt;br /&gt;
 playground&lt;br /&gt;
 kdereview&lt;br /&gt;
&lt;br /&gt;
So, for example, if you want to check out koffice trunk, you can use &lt;br /&gt;
&lt;br /&gt;
 svn co svn://anonsvn.kde.org/home/kde/trunk/koffice&lt;br /&gt;
&lt;br /&gt;
=== Checking out trunk using snapshots ===&lt;br /&gt;
&lt;br /&gt;
If you are checking out modules from '''trunk/''' you may be able to save time by using snapshots.  Using Subversion trunk snapshots is described at [[../Snapshots|the Subversion snapshots tutorial page]].&lt;br /&gt;
&lt;br /&gt;
=== Checking out KDE 3 instead ===&lt;br /&gt;
&lt;br /&gt;
If you want to track KDE 3 rather than the bleeding edge, you may retrieve the KDE 3.5 sources using:&lt;br /&gt;
&lt;br /&gt;
 svn co svn://anonsvn.kde.org/home/kde/branches/arts/1.5/arts&lt;br /&gt;
 svn co svn://anonsvn.kde.org/home/kde/branches/KDE/3.5/&lt;br /&gt;
&lt;br /&gt;
And if you want the matching qt-copy:&lt;br /&gt;
 svn co svn://anonsvn.kde.org/home/kde/branches/qt/3.3/qt-copy&lt;br /&gt;
&lt;br /&gt;
=== Checking out specific releases ===&lt;br /&gt;
&lt;br /&gt;
KDE modules are also tagged at each release so that it is possible to get a specific release of KDE. Most KDE modules have a tag name in the format '''tags/KDE/X.Y.Z''' (where X, Y and Z represent the exact version). The arts module (only needed for KDE 2 and KDE 3) has a different format of tag name, '''tags/arts/X.Y.Z'''. For instance to get kdelibs as it was shipped in KDE 3.5.0, do: &lt;br /&gt;
&lt;br /&gt;
 svn co svn://anonsvn.kde.org/home/kde/tags/KDE/3.5.0/kdelibs/&lt;br /&gt;
&lt;br /&gt;
If you then want to update this checkout to KDE 3.5.5, use this command:&lt;br /&gt;
&lt;br /&gt;
 svn switch svn://anonsvn.kde.org/home/kde/tags/KDE/3.5.5/kdelibs&lt;br /&gt;
&lt;br /&gt;
{{tip|If you used a '''/branch/''' or '''/trunk/''' path, then there is no need to switch, just run '''svn update'''.}}&lt;br /&gt;
&lt;br /&gt;
=== Checking out translations ===&lt;br /&gt;
If you are looking for translations and other localizations, check out the appropriate language from the [http://websvn.kde.org/trunk/l10n l10n] module. &lt;br /&gt;
&lt;br /&gt;
{{Warning|The l10n module is ''extremely'' large. Be sure you have lots of time and disk space on hand before checking out the entire l10n module. Most people only check out specific language subdirectories rather than the entire l10n module.}}&lt;br /&gt;
&lt;br /&gt;
You are now ready to start building KDE! Visit [[Getting_Started/Build/KDE4|this page]] for instructions on building trunk or [[Getting_Started/Build/Stable_Version|this page]] for instruction on compiling the last stable release.&lt;br /&gt;
&lt;br /&gt;
== Also of interest ==&lt;br /&gt;
* anonsvn.kde.org is located in Tuebingen, Germany, maintained by [mailto:dirk@kde.org Dirk Mueller] However, a more local mirror could be faster for you than anonsvn.kde.org itself. Current mirrors are, sorted by performance:&lt;br /&gt;
** kde.mneisen.org is located near Nuernberg, Germany, maintained by [mailto:martin.eisenhardt@mneisen.org Martin Eisenhardt]&lt;br /&gt;
** www.englishbreakfastnetwork.org also hosts an anonymous SVN mirror, at the University of Nijmegen, Netherlands. Maintained by [mailto:groot@kde.org Adriaan de Groot]&lt;br /&gt;
** svn://azkaban.caltech.edu is located near Los Angeles, USA and is maintained by [mailto:eugen.plamadeala@gmail.com Eugeniu Plamadeala]. It has the same folder hierarchy as anonsvn.kde.org.&lt;br /&gt;
: Be careful when switching between mirrors. SVN remembers the server in the working copy, so to switch you have to run&lt;br /&gt;
 svn switch --relocate svn://anonsvn.kde.org/ svn://kde.mneisen.org/&lt;br /&gt;
: in all your checkouts.&lt;br /&gt;
If you're interested in setting up a svn mirror, please contact [mailto:mueller@kde.org Dirk Mueller].&lt;br /&gt;
&lt;br /&gt;
[[Category:Build KDE]]&lt;/div&gt;</summary>
		<author><name>Logixoul</name></author>	</entry>

	<entry>
		<id>http://techbase.kde.org/Getting_Started/Sources/Anonymous_SVN</id>
		<title>Getting Started/Sources/Anonymous SVN</title>
		<link rel="alternate" type="text/html" href="http://techbase.kde.org/Getting_Started/Sources/Anonymous_SVN"/>
				<updated>2008-03-08T09:38:41Z</updated>
		
		<summary type="html">&lt;p&gt;Logixoul: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Template:I18n/Language Navigation Bar|Getting Started/Sources/Anonymous SVN}}&lt;br /&gt;
{{TutorialBrowser|&lt;br /&gt;
&lt;br /&gt;
series=Getting Started|&lt;br /&gt;
&lt;br /&gt;
name=Getting KDE Sources Using Anonymous Subversion (SVN)|&lt;br /&gt;
&lt;br /&gt;
next=[[../../Build/KDE4|Building KDE4]]|&lt;br /&gt;
&lt;br /&gt;
reading=[http://svnbook.red-bean.com/ Version Control with Subversion]|&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== Abstract ==&lt;br /&gt;
&lt;br /&gt;
For those of us that like to stay on the &amp;quot;bleeding edge&amp;quot; there's an easy way to keep a local copy of the KDE sources up-to-date - anonymous SVN.&lt;br /&gt;
&lt;br /&gt;
Please note that several Linux distributions now already provide KDE SVN packages, so '''building Qt and KDE from source may well not be necessary for you at all! '''See [[Getting_Started/Distribution_Packages]] for instructions and information.&lt;br /&gt;
&lt;br /&gt;
== Anonymous SVN ==&lt;br /&gt;
&lt;br /&gt;
=== Setup Subversion ===&lt;br /&gt;
&lt;br /&gt;
First, install the subversion (svn) binary if it isn't already on your computer. Your operating system should have a package for it. Alternatively you can download and compile it yourself via the [http://subversion.tigris.org/project_packages.html svn project download page]. Please read the [[Getting_Started/Sources/Using_Subversion_with_KDE|KDE Subversion tutorial]] if you are interested in how to use Subversion.&lt;br /&gt;
&lt;br /&gt;
=== Checkout KDE ===&lt;br /&gt;
&lt;br /&gt;
'''/trunk/''' is where the Qt4-based KDE 4 is being developed. The following is the minimal set of modules you will need to check out to build KDE and KDE software:&lt;br /&gt;
      &lt;br /&gt;
 svn co svn://anonsvn.kde.org/home/kde/trunk/KDE/kdelibs&lt;br /&gt;
 svn co svn://anonsvn.kde.org/home/kde/trunk/KDE/kdebase&lt;br /&gt;
&lt;br /&gt;
{{tip|If your firewall doesn't allow access to arbitrary ports, substitute '''svn://anonsvn.kde.org/''' with '''svn://websvn.kde.org:443/''' above.}}&lt;br /&gt;
&lt;br /&gt;
{{tip|The kdebase module has an external dependency, using svn:externals. The problem is, at this time, the externals property is set with an absolute path, pointing to anonsvn. For those using behind a firewall, this is a problem. You can change the property for your workspace, using two commands:&lt;br /&gt;
 cs KDE&lt;br /&gt;
 svn propset svn:externals &amp;quot;lib svn://websvn.kde.org:443/home/kde/trunk/KDE/kdebase/runtime/kstyles/oxygen/lib&amp;quot; kdebase/workspace/kwin/clients/oxygen &lt;br /&gt;
 This way the external property will look for the aditional files in the websvn repository.}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''qt-copy''' is a copy of the latest stable [http://www.trolltech.com Qt] release which works with KDE, put into SVN for convenience. It also contains patches by KDE developers that haven't found their way to Qt yet. They are recommended for those working with KDE from '''trunk'''. Instructions on how to get and configure it can be found [[Getting_Started/Build/KDE4/Prerequisites#Qt |here]].&lt;br /&gt;
&lt;br /&gt;
If you wish to have a complete copy of the KDE distribution, you can simply check out the entire source tree with one command:&lt;br /&gt;
&lt;br /&gt;
 svn co svn://anonsvn.kde.org/home/kde/trunk/KDE&lt;br /&gt;
&lt;br /&gt;
{{note|It is smarter to first use [http://websvn.kde.org/trunk/KDE The KDE Source Repository Web Viewer]. Use it to choose which modules to download. This way KDE will be quicker to install and try out.}}&lt;br /&gt;
&lt;br /&gt;
If you want additional software packages you can check out the following modules within '''trunk/''' as well:&lt;br /&gt;
&lt;br /&gt;
 koffice&lt;br /&gt;
 extragear&lt;br /&gt;
 playground&lt;br /&gt;
 kdereview&lt;br /&gt;
&lt;br /&gt;
So, for example, if you want to check out koffice trunk, you can use &lt;br /&gt;
&lt;br /&gt;
 svn co svn://anonsvn.kde.org/home/kde/trunk/koffice&lt;br /&gt;
&lt;br /&gt;
=== Checking out trunk using snapshots ===&lt;br /&gt;
&lt;br /&gt;
If you are checking out modules from '''trunk/''' you may be able to save time by using snapshots.  Using Subversion trunk snapshots is described at [[../Snapshots|the Subversion snapshots tutorial page]].&lt;br /&gt;
&lt;br /&gt;
=== Checking out KDE 3 instead ===&lt;br /&gt;
&lt;br /&gt;
If you want to track KDE 3 rather than the bleeding edge, you may retrieve the KDE 3.5 sources using:&lt;br /&gt;
&lt;br /&gt;
 svn co svn://anonsvn.kde.org/home/kde/branches/arts/1.5/arts&lt;br /&gt;
 svn co svn://anonsvn.kde.org/home/kde/branches/KDE/3.5/&lt;br /&gt;
&lt;br /&gt;
And if you want the matching qt-copy:&lt;br /&gt;
 svn co svn://anonsvn.kde.org/home/kde/branches/qt/3.3/qt-copy&lt;br /&gt;
&lt;br /&gt;
=== Checking out specific releases ===&lt;br /&gt;
&lt;br /&gt;
KDE modules are also tagged at each release so that it is possible to get a specific release of KDE. Most KDE modules have a tag name in the format '''tags/KDE/X.Y.Z''' (where X, Y and Z represent the exact version). The arts module (only needed for KDE 2 and KDE 3) has a different format of tag name, '''tags/arts/X.Y.Z'''. For instance to get kdelibs as it was shipped in KDE 3.5.0, do: &lt;br /&gt;
&lt;br /&gt;
 svn co svn://anonsvn.kde.org/home/kde/tags/KDE/3.5.0/kdelibs/&lt;br /&gt;
&lt;br /&gt;
If you then want to update this checkout to KDE 3.5.5, use this command:&lt;br /&gt;
&lt;br /&gt;
 svn switch svn://anonsvn.kde.org/home/kde/tags/KDE/3.5.5/kdelibs&lt;br /&gt;
&lt;br /&gt;
{{tip|If you used a '''/branch/''' or '''/trunk/''' path, then there is no need to switch, just run '''svn update'''.}}&lt;br /&gt;
&lt;br /&gt;
=== Checking out translations ===&lt;br /&gt;
If you are looking for translations and other localizations, check out the appropriate language from the [http://websvn.kde.org/trunk/l10n l10n] module. &lt;br /&gt;
&lt;br /&gt;
{{Warning|The l10n module is ''extremely'' large. Be sure you have lots of time and disk space on hand before checking out the entire l10n module. Most people only check out specific language subdirectories rather than the entire l10n module.}}&lt;br /&gt;
&lt;br /&gt;
You are now ready to start building KDE! Visit [[Getting_Started/Build/KDE4|this page]] for instructions on building trunk or [[Getting_Started/Build/Stable_Version|this page]] for instruction on compiling the last stable release.&lt;br /&gt;
&lt;br /&gt;
== Also of interest ==&lt;br /&gt;
* anonsvn.kde.org is located in Tuebingen, Germany, maintained by [mailto:dirk@kde.org Dirk Mueller] However, a more local mirror could be faster for you than anonsvn.kde.org itself. Current mirrors are, sorted by performance:&lt;br /&gt;
** kde.mneisen.org is located near Nuernberg, Germany, maintained by [mailto:martin.eisenhardt@mneisen.org Martin Eisenhardt]&lt;br /&gt;
** www.englishbreakfastnetwork.org also hosts an anonymous SVN mirror, at the University of Nijmegen, Netherlands. Maintained by [mailto:groot@kde.org Adriaan de Groot]&lt;br /&gt;
** svn://azkaban.caltech.edu is located near Los Angeles, USA and is maintained by [mailto:eugen.plamadeala@gmail.com Eugeniu Plamadeala]. It has the same folder hierarchy as anonsvn.kde.org.&lt;br /&gt;
: Be careful when switching between mirrors. SVN remembers the server in the working copy, so to switch you have to run&lt;br /&gt;
 svn switch --relocate svn://anonsvn.kde.org/ svn://kde.mneisen.org/&lt;br /&gt;
: in all your checkouts.&lt;br /&gt;
If you're interested in setting up a svn mirror, please contact [mailto:mueller@kde.org Dirk Mueller].&lt;br /&gt;
&lt;br /&gt;
[[Category:Build KDE]]&lt;/div&gt;</summary>
		<author><name>Logixoul</name></author>	</entry>

	<entry>
		<id>http://techbase.kde.org/Getting_Started/Sources/Anonymous_SVN</id>
		<title>Getting Started/Sources/Anonymous SVN</title>
		<link rel="alternate" type="text/html" href="http://techbase.kde.org/Getting_Started/Sources/Anonymous_SVN"/>
				<updated>2008-03-08T09:36:47Z</updated>
		
		<summary type="html">&lt;p&gt;Logixoul: this page should go eventually... start consolidating&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Template:I18n/Language Navigation Bar|Getting Started/Sources/Anonymous SVN}}&lt;br /&gt;
{{TutorialBrowser|&lt;br /&gt;
&lt;br /&gt;
series=Getting Started|&lt;br /&gt;
&lt;br /&gt;
name=Getting KDE Sources Using Anonymous Subversion (SVN)|&lt;br /&gt;
&lt;br /&gt;
next=[[../../Build/KDE4|Building KDE4]]|&lt;br /&gt;
&lt;br /&gt;
reading=[http://svnbook.red-bean.com/ Version Control with Subversion]|&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== Abstract ==&lt;br /&gt;
&lt;br /&gt;
For those of us that like to stay on the &amp;quot;bleeding edge&amp;quot; there's an easy way to keep a local copy of the KDE sources up-to-date - anonymous SVN.&lt;br /&gt;
&lt;br /&gt;
Please note that several Linux distributions now already provide KDE SVN packages, so '''building Qt and KDE from source may well not be necessary for you at all! '''See [[Getting_Started/Distribution_Packages]] for instructions and information.&lt;br /&gt;
&lt;br /&gt;
== Anonymous SVN ==&lt;br /&gt;
&lt;br /&gt;
=== Setup Subversion ===&lt;br /&gt;
&lt;br /&gt;
First, install the subversion (svn) binary if it isn't already on your computer. Your operating system should have a package for it. Alternatively you can download and compile it yourself via the [http://subversion.tigris.org/project_packages.html svn project download page]. Please read the [[Getting_Started/Sources/Using_Subversion_with_KDE|KDE Subversion tutorial]] if you are interested in how to use Subversion.&lt;br /&gt;
&lt;br /&gt;
=== Checkout KDE ===&lt;br /&gt;
&lt;br /&gt;
'''/trunk/''' is where the Qt4-based KDE 4 is being developed. The following is the minimal set of modules you will need to check out to build KDE and KDE software:&lt;br /&gt;
      &lt;br /&gt;
 svn co svn://anonsvn.kde.org/home/kde/trunk/KDE/kdelibs&lt;br /&gt;
 svn co svn://anonsvn.kde.org/home/kde/trunk/KDE/kdebase&lt;br /&gt;
&lt;br /&gt;
{{tip|If your firewall doesn't allow access to arbitrary ports, substitute '''svn://anonsvn.kde.org/''' with '''svn://websvn.kde.org:443/''' above.}}&lt;br /&gt;
&lt;br /&gt;
{{tip|The kdebase module has an external dependency, using svn:externals. The problem is, at this time, the externals property is set with an absolute path, pointing to anonsvn. For those using behind a firewall, this is a problem. You can change the property for your workspace, using two commands:&lt;br /&gt;
 cs KDE&lt;br /&gt;
 svn propset svn:externals &amp;quot;lib svn://websvn.kde.org:443/home/kde/trunk/KDE/kdebase/runtime/kstyles/oxygen/lib&amp;quot; kdebase/workspace/kwin/clients/oxygen &lt;br /&gt;
 This way the external property will look for the aditional files in the websvn repository.}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''qt-copy''' is a copy of the latest stable [http://www.trolltech.com Qt] release which works with KDE, put into SVN for convenience. It also contains patches by KDE developers that haven't found their way to Qt yet. They are recommended for those working with KDE from '''trunk'''. Instructions on how to get and configure it can be found [[Getting_Started/Build/KDE4/Prerequisites#Qt |here]].&lt;br /&gt;
&lt;br /&gt;
If you wish to have a complete copy of the KDE distribution, you can simply check out the entire source tree with one command:&lt;br /&gt;
&lt;br /&gt;
 svn co svn://anonsvn.kde.org/home/kde/trunk/KDE&lt;br /&gt;
&lt;br /&gt;
{{note|It is smarter to first use [http://websvn.kde.org/trunk/KDE The KDE Source Repository Web Viewer]. Use it to choose which modules to download. This way KDE will be quicker to install and try out.}}&lt;br /&gt;
&lt;br /&gt;
If you want additional software packages you can check out the following modules within '''trunk/''' as well:&lt;br /&gt;
&lt;br /&gt;
 koffice&lt;br /&gt;
 extragear&lt;br /&gt;
 playground&lt;br /&gt;
 kdereview&lt;br /&gt;
&lt;br /&gt;
So, for example, if you want to check out koffice trunk, you can use &lt;br /&gt;
&lt;br /&gt;
 svn co svn://anonsvn.kde.org/home/kde/trunk/koffice&lt;br /&gt;
&lt;br /&gt;
=== Checking out trunk using snapshots ===&lt;br /&gt;
&lt;br /&gt;
If you are checking out modules from '''trunk/''' you may be able to save time by using snapshots.  Using Subversion trunk snapshots is described at [[../Snapshots|the Subversion snapshots tutorial page]].&lt;br /&gt;
&lt;br /&gt;
=== Checking out KDE 3 instead ===&lt;br /&gt;
&lt;br /&gt;
If you want to track KDE 3 rather than the bleeding edge, you may retrieve the KDE 3.5 sources using:&lt;br /&gt;
&lt;br /&gt;
 svn co svn://anonsvn.kde.org/home/kde/branches/arts/1.5/arts&lt;br /&gt;
 svn co svn://anonsvn.kde.org/home/kde/branches/KDE/3.5/&lt;br /&gt;
&lt;br /&gt;
And if you want the matching qt-copy:&lt;br /&gt;
 svn co svn://anonsvn.kde.org/home/kde/branches/qt/3.3/qt-copy&lt;br /&gt;
&lt;br /&gt;
=== Checking out specific releases ===&lt;br /&gt;
&lt;br /&gt;
KDE modules are also tagged at each release so that it is possible to get a specific release of KDE. Most KDE modules have a tag name in the format '''tags/KDE/X.Y.Z''' (where X, Y and Z represent the exact version). The arts module (only needed for KDE 2 and KDE 3) has a different format of tag name, '''tags/arts/X.Y.Z'''. For instance to get kdelibs as it was shipped in KDE 3.5.0, do: &lt;br /&gt;
&lt;br /&gt;
 svn co svn://anonsvn.kde.org/home/kde/tags/KDE/3.5.0/kdelibs/&lt;br /&gt;
&lt;br /&gt;
If you then want to update this checkout to KDE 3.5.5, use this command:&lt;br /&gt;
&lt;br /&gt;
 svn switch svn://anonsvn.kde.org/home/kde/tags/KDE/3.5.5/kdelibs&lt;br /&gt;
&lt;br /&gt;
{{tip|If you used a '''/branch/''' or '''/trunk/''' path, then there is no need to switch, just run '''svn update'''.}}&lt;br /&gt;
&lt;br /&gt;
{{tip|[http://websvn.kde.org/tags/ WebSVN] is a convenient way to check for a tag name.}}&lt;br /&gt;
&lt;br /&gt;
=== Checking out translations ===&lt;br /&gt;
If you are looking for translations and other localizations, check out the appropriate language from the [http://websvn.kde.org/trunk/l10n l10n] module. &lt;br /&gt;
&lt;br /&gt;
{{Warning|The l10n module is ''extremely'' large. Be sure you have lots of time and disk space on hand before checking out the entire l10n module. Most people only check out specific language subdirectories rather than the entire l10n module.}}&lt;br /&gt;
&lt;br /&gt;
You are now ready to start building KDE! Visit [[Getting_Started/Build/KDE4|this page]] for instructions on building trunk or [[Getting_Started/Build/Stable_Version|this page]] for instruction on compiling the last stable release.&lt;br /&gt;
&lt;br /&gt;
== Also of interest ==&lt;br /&gt;
* anonsvn.kde.org is located in Tuebingen, Germany, maintained by [mailto:dirk@kde.org Dirk Mueller] However, a more local mirror could be faster for you than anonsvn.kde.org itself. Current mirrors are, sorted by performance:&lt;br /&gt;
** kde.mneisen.org is located near Nuernberg, Germany, maintained by [mailto:martin.eisenhardt@mneisen.org Martin Eisenhardt]&lt;br /&gt;
** www.englishbreakfastnetwork.org also hosts an anonymous SVN mirror, at the University of Nijmegen, Netherlands. Maintained by [mailto:groot@kde.org Adriaan de Groot]&lt;br /&gt;
** svn://azkaban.caltech.edu is located near Los Angeles, USA and is maintained by [mailto:eugen.plamadeala@gmail.com Eugeniu Plamadeala]. It has the same folder hierarchy as anonsvn.kde.org.&lt;br /&gt;
: Be careful when switching between mirrors. SVN remembers the server in the working copy, so to switch you have to run&lt;br /&gt;
 svn switch --relocate svn://anonsvn.kde.org/ svn://kde.mneisen.org/&lt;br /&gt;
: in all your checkouts.&lt;br /&gt;
If you're interested in setting up a svn mirror, please contact [mailto:mueller@kde.org Dirk Mueller].&lt;br /&gt;
&lt;br /&gt;
[[Category:Build KDE]]&lt;/div&gt;</summary>
		<author><name>Logixoul</name></author>	</entry>

	<entry>
		<id>http://techbase.kde.org/User:Logixoul</id>
		<title>User:Logixoul</title>
		<link rel="alternate" type="text/html" href="http://techbase.kde.org/User:Logixoul"/>
				<updated>2008-03-08T09:33:54Z</updated>
		
		<summary type="html">&lt;p&gt;Logixoul: Removing all content from page&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Logixoul</name></author>	</entry>

	<entry>
		<id>http://techbase.kde.org/Getting_Started/Build/KDE4</id>
		<title>Getting Started/Build/KDE4</title>
		<link rel="alternate" type="text/html" href="http://techbase.kde.org/Getting_Started/Build/KDE4"/>
				<updated>2008-03-08T09:33:11Z</updated>
		
		<summary type="html">&lt;p&gt;Logixoul: /* Success!! */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Template:I18n/Language Navigation Bar|Getting_Started/Build/KDE4}}&lt;br /&gt;
&lt;br /&gt;
{{TutorialBrowser|&lt;br /&gt;
&lt;br /&gt;
series=Getting Started|&lt;br /&gt;
&lt;br /&gt;
name=Building KDE4 From Source|&lt;br /&gt;
&lt;br /&gt;
pre=[[../../Sources/Anonymous_SVN|Anonymous SVN Quickstart Guide]]|&lt;br /&gt;
&lt;br /&gt;
next=[[../../Set_up_KDE_4_for_development|Set up KDE 4 for development]]|&lt;br /&gt;
&lt;br /&gt;
reading=[[../kdesvn-build|kdesvn-build: The KDE From Subversion Build Tool]]&amp;lt;br&amp;gt;[[../../Increased_Productivity_in_KDE4_with_Scripts|Increased Productivity in KDE4 with Scripts]]&amp;lt;br&amp;gt;[[Development/Tutorials/CMake |Introduction to CMake]]&amp;lt;br&amp;gt;[[../KDE4/FreeBSD|FreeBSD notes]]&amp;lt;br&amp;gt;[[../KDE4/Mac OS X|Instructions for Mac OS X]]&amp;lt;br&amp;gt;[[../KDE4/Windows|Instructions for MS Windows]]|&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== Abstract ==&lt;br /&gt;
&lt;br /&gt;
This tutorial shows one way to get KDE from trunk running on Linux/BSD systems. There are also tutorials for [[Getting_Started/Build/KDE4/FreeBSD|FreeBSD]], [http://www.kdelibs.com/ Windows], [[Getting_Started/Build/KDE4/Mac OS X|Mac OS X]] and [http://solaris.kde.org/ Solaris]. Throughout the tutorial the bash shell is used.&lt;br /&gt;
&lt;br /&gt;
{{warning|Expect a higher risk of build failure '''on Mondays''' when most kdelibs changes are committed. [http://developer.kde.org/~dirk/dashboard/ Dashboard] reports unexpected breakages. You are encouraged to fix failing modules.}}&lt;br /&gt;
&lt;br /&gt;
== Create a user account for KDE4 development ==&lt;br /&gt;
&lt;br /&gt;
{{Note|&lt;br /&gt;
Some people like to have a separate user account for KDE 4 (for instance an old bug deleted files by mistake), and the instructions below were written with that approach.&lt;br /&gt;
&lt;br /&gt;
However it is much more efficient to do everything with a single user account, see [[Getting_Started/Increased_Productivity_in_KDE4_with_Scripts|Increased Productivity in KDE4 with Scripts]]&lt;br /&gt;
for more details. &lt;br /&gt;
&lt;br /&gt;
You can still follow the instructions below, but don't put the environment variables in your &amp;lt;tt&amp;gt;.bashrc&amp;lt;/tt&amp;gt;, put them in a separate file that you source to switch to the KDE 4 environment.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Option 1: Command Line ===&lt;br /&gt;
{{Note|&lt;br /&gt;
On some systems a new user is configured by default to use {{path|/bin/sh}}. Using {{path|/bin/sh}} can be very inconvenient to work with and you may want to change it to {{path|/bin/bash}} or another shell.&lt;br /&gt;
On Ark Linux and Fedora, you can skip the &amp;lt;tt&amp;gt;-s /bin/bash&amp;lt;/tt&amp;gt; switch - {{path|/bin/sh}} is {{path|bash}}.&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;code bash&amp;gt;&lt;br /&gt;
useradd -m kde-devel -s /bin/bash&lt;br /&gt;
passwd kde-devel&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{Warning|&lt;br /&gt;
The new kde-devel user will not be added automatically to all the user groups, which will result in not having sound, not being able to sudo, etc. Edit your /etc/groups file to add the kde-devel user to all the groups that you need (probably the groups that your usual username is already assigned to).&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
=== Option 2: Using KControl ===&lt;br /&gt;
&lt;br /&gt;
Instead of using the commands above, you can also use the User module in the KDE Control Center if you already have KDE3 installed.&lt;br /&gt;
&lt;br /&gt;
=== Setting up the environment ===&lt;br /&gt;
&lt;br /&gt;
Copy the {{path|~/.bashrc}} from your normal user account to the new kde-devel account. Next, copy and paste the contents of the [[Getting Started/Increased Productivity in KDE4 with Scripts/.bashrc|example .bashrc]] into {{path|~kde-devel/.bashrc}}. Be sure to comment out the line &amp;lt;tt&amp;gt;alias make=makeobj&amp;lt;/tt&amp;gt; if you do not have the &amp;lt;tt&amp;gt;[[Getting Started/Build/KDE4#Required Software|makeobj]]&amp;lt;/tt&amp;gt; command available. Alternatively, you can download the kde-sdk package (or perform a subversion checkout) and include the kde-sdk/scripts/ directory in your path. You will probably also want to modify the path to make sure it doesn't include your kde3 paths. Also if you want to use KDevelop to develop KDE 4 applications you may pass the ''-GKDevelop3'' flag to the ''cmake'' command (to make CMake generate KDevelop project files, it will help to avoid rebuilding in the future, see [[Getting_Started/Set_up_KDE_4_for_development#Setting_up_the_environment|this]]).  &lt;br /&gt;
To make it run, you have to open a new bash or to execute &lt;br /&gt;
&amp;lt;code bash&amp;gt;&lt;br /&gt;
source ~/.bashrc&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This will provide access to commands such as &amp;lt;tt&amp;gt;cmakekde&amp;lt;/tt&amp;gt; that are used in this tutorial as well as ensure that the proper paths are in place for Qt, KDE and CMake binaries.&lt;br /&gt;
&lt;br /&gt;
For more information, please read the [[Getting Started/Increased Productivity in KDE4 with Scripts]] tutorial.&lt;br /&gt;
&lt;br /&gt;
=== Switching to the New User ===&lt;br /&gt;
Switch to the user kde-devel: (don't forget the dash)&lt;br /&gt;
&amp;lt;code bash&amp;gt;&lt;br /&gt;
ssh -X kde-devel@localhost&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{Note|&lt;br /&gt;
If the ssh command fails, check out the [[Getting_Started/Set_up_KDE_4_for_development#Launching_KDE_4_apps|Launching KDE 4 apps]] section of the [[Getting_Started/Set_up_KDE_4_for_development|KDE4 development guide]].&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== Required packages from your distribution ==&lt;br /&gt;
The requirements to build kde4 from source vary from distribution to distribution. Instructions for your distribution are provided below:&lt;br /&gt;
&lt;br /&gt;
* [[Getting_Started/Build/KDE4/Ark Linux|Ark Linux]]&lt;br /&gt;
* [[Getting_Started/Build/KDE4/Arch Linux|Arch Linux]]&lt;br /&gt;
* [[Getting_Started/Build/KDE4/Fedora|Fedora]]&lt;br /&gt;
* [[Getting_Started/Build/KDE4/Kubuntu and Debian|Kubuntu and Debian]]&lt;br /&gt;
* [[Getting_Started/Build/KDE4/openSUSE|openSUSE]]&lt;br /&gt;
* [[Getting_Started/Build/KDE4/Gentoo|Gentoo]]&lt;br /&gt;
* [[Getting_Started/Build/KDE4/Mandriva|Mandriva]]&lt;br /&gt;
&lt;br /&gt;
Your next compilation step depends on the packages supplied by your distro.&lt;br /&gt;
&lt;br /&gt;
=== Compiling qt-copy, HAL etc. ===&lt;br /&gt;
If you do not want to use the packages provided by your distro you can compile things like Qt yourself. Instructions for building all dependencies including HAL, Cmake, Qt4 (qt-copy) and kde-support are available in [[Getting_Started/Build/KDE4/Prerequisites|the build prerequisites page]].&lt;br /&gt;
&lt;br /&gt;
== Building KDE for development or stable use ==&lt;br /&gt;
&lt;br /&gt;
The commands below are used to build the latest unstable version of KDE from trunk. This should not be used in a production environment, but is recommended for developers.&lt;br /&gt;
&lt;br /&gt;
To build the stable version of KDE4, change the svn checkout commands below to &amp;lt;tt&amp;gt;branches/KDE/4.0/&amp;lt;/tt&amp;gt; instead of &amp;lt;tt&amp;gt;trunk/KDE/&amp;lt;/tt&amp;gt;, ie:&lt;br /&gt;
&lt;br /&gt;
 svn checkout svn://anonsvn.kde.org/home/kde/branches/KDE/4.0/kdelibs&lt;br /&gt;
&lt;br /&gt;
 svn checkout svn://anonsvn.kde.org/home/kde/branches/KDE/4.0/kdepimlibs&lt;br /&gt;
&lt;br /&gt;
 svn checkout svn://anonsvn.kde.org/home/kde/branches/KDE/4.0/kdebase&lt;br /&gt;
&lt;br /&gt;
etc...&lt;br /&gt;
&lt;br /&gt;
== kdelibs ==&lt;br /&gt;
&lt;br /&gt;
We can now move on to building KDE's base libraries.&lt;br /&gt;
&lt;br /&gt;
=== The Recipe ===&lt;br /&gt;
 cd   &lt;br /&gt;
 cs # [[Getting_Started/Increased_Productivity_in_KDE4_with_Scripts/.bashrc|'cs' is a bash function, click here to learn more]]&lt;br /&gt;
 mkdir KDE &amp;amp;&amp;amp; cd KDE&lt;br /&gt;
 svn checkout svn://anonsvn.kde.org/home/kde/trunk/KDE/kdelibs&lt;br /&gt;
 cd kdelibs&lt;br /&gt;
 cmakekde&lt;br /&gt;
&lt;br /&gt;
=== What's Happening ===&lt;br /&gt;
We change to the base source directory (line 1) then make and go into the KDE directory (line 2). We download the sources for kdelibs using subversion (line 3), go into the new {{path|~/kde/src/KDE/kdelibs}} directory (line 4), and commence the build (line 5). This will leave us in the &amp;lt;tt&amp;gt;kdelibs&amp;lt;/tt&amp;gt; build directory after the build is completed.&lt;br /&gt;
&lt;br /&gt;
{{tip|There might be missing dependencies on your system! They are easily overlooked in the output of &amp;lt;tt&amp;gt;cmakekde&amp;lt;/tt&amp;gt;.&lt;br /&gt;
You might want to do a &amp;lt;tt&amp;gt;cmake $KDE_SRC/KDE/MODULE_NAME&amp;lt;/tt&amp;gt; prior to compiling any kde modules (like kdelibs, kdepimlibs etc.)}}&lt;br /&gt;
&lt;br /&gt;
=== Additional KDE-specific CMake know-how ===&lt;br /&gt;
&lt;br /&gt;
There are additional CMake modules in {{path|kdelibs/cmake/modules/}} that are necessary for building KDE4 applications. These will be installed for you when  kdelibs itself is installed.&lt;br /&gt;
&lt;br /&gt;
To make a non-debug-release (e.g. suppressing all kDebug() messages), use e.g.&lt;br /&gt;
 cmake -DCMAKE_BUILD_TYPE=Release . &amp;amp;&amp;amp; make &amp;amp;&amp;amp; make install&lt;br /&gt;
&lt;br /&gt;
=== Troubleshooting ===&lt;br /&gt;
&lt;br /&gt;
For troubleshooting information, see the [[Getting_Started/Build/KDE4/Troubleshooting#Issues_building_kdelibs|kdelibs troubleshooting section]].&lt;br /&gt;
&lt;br /&gt;
== kdepimlibs ==&lt;br /&gt;
After &amp;lt;tt&amp;gt;kdelibs&amp;lt;/tt&amp;gt;, but before ''kdebase'', you need to build and install ''kdepimlibs''.&lt;br /&gt;
&lt;br /&gt;
=== The Recipe ===&lt;br /&gt;
&amp;lt;!--'cs' and 'cb' are NOT typos!--&amp;gt;&lt;br /&gt;
 cs KDE # [[Getting_Started/Increased_Productivity_in_KDE4_with_Scripts/.bashrc|'cs' is a bash function, click here to learn more]]&lt;br /&gt;
 svn checkout svn://anonsvn.kde.org/home/kde/trunk/KDE/kdepimlibs&lt;br /&gt;
 cd kdepimlibs&lt;br /&gt;
 cmakekde&lt;br /&gt;
&lt;br /&gt;
=== What's Happening ===&lt;br /&gt;
We go into the KDE source directory (line 1), download the source code for kdepimlibs using subversion (line 2) and then go into the new {{path|~/kde/src/KDE/kdepimlibs}} directory (line 3). We then commence the build (line 4). This will leave us in the &amp;lt;tt&amp;gt;kdepimlibs&amp;lt;/tt&amp;gt; build directory after the build is completed.&lt;br /&gt;
&lt;br /&gt;
=== Troubleshooting ===&lt;br /&gt;
&lt;br /&gt;
For troubleshooting information, see the [[Getting_Started/Build/KDE4/Troubleshooting#Issues_building_kdepimlibs|kdepimlibs troubleshooting section]].&lt;br /&gt;
&lt;br /&gt;
== kdebase ==&lt;br /&gt;
kdebase is divided into three parts:&lt;br /&gt;
* '''apps'''&lt;br /&gt;
:This contains applications like Dolphin or KWrite.&lt;br /&gt;
* '''runtime'''&lt;br /&gt;
:This contains things needed by every application at runtime, like icons. It is a required dependency for each KDE application, so you have to compile and install this.&lt;br /&gt;
* '''workspace'''&lt;br /&gt;
:This contains things specific to the KDE desktop, like Plasma or the window manager. Most stuff here depends on X11. You only need it if you want to build a full KDE desktop.&lt;br /&gt;
&lt;br /&gt;
You can build all of kdebase at once, which is described in the recipe below. If you only want to build kdebase-runtime, which is the only requirement, you can replace &amp;lt;code bash&amp;gt;cd kdebase&amp;lt;/code&amp;gt; with &amp;lt;code bash&amp;gt;cd kdebase/runtime&amp;lt;/code&amp;gt; in the recipe below.&lt;br /&gt;
&lt;br /&gt;
=== The Recipe ===&lt;br /&gt;
&amp;lt;!--'cs' and 'cb' are NOT typos!--&amp;gt;&lt;br /&gt;
 cs KDE # [[Getting_Started/Increased_Productivity_in_KDE4_with_Scripts/.bashrc|'cs' is a bash function, click here to learn more]]&lt;br /&gt;
 svn checkout svn://anonsvn.kde.org/home/kde/trunk/KDE/kdebase&lt;br /&gt;
 cd kdebase&lt;br /&gt;
 cmakekde&lt;br /&gt;
&lt;br /&gt;
=== Troubleshooting ===&lt;br /&gt;
For troubleshooting information, see the [[Getting_Started/Build/KDE4/Troubleshooting#Issues_building_kdebase|kdebase troubleshooting section]].&lt;br /&gt;
&lt;br /&gt;
== Running KDE 4 programs ==&lt;br /&gt;
&lt;br /&gt;
You can now run KDE 4 programs (e.g. kwrite) by typing:&lt;br /&gt;
 ssh -X kde-devel@localhost&lt;br /&gt;
 kwrite &lt;br /&gt;
&lt;br /&gt;
=== Troubleshooting ===&lt;br /&gt;
&lt;br /&gt;
For troubleshooting issues see [[Getting_Started/Build/KDE4/Troubleshooting#Running_programs|troubleshooting running programs]].&lt;br /&gt;
&lt;br /&gt;
== Generating local API documentation ==&lt;br /&gt;
Although the API documentation for KDE is available online at [http://api.kde.org api.kde.org], it is sometimes useful to have it on your own disk, for example when you want to use [[Getting_Started/Set_up_KDE_4_for_development#KDevelop|KDevelop]] for browsing the documentation or when you are not able to be online all the time.&lt;br /&gt;
&lt;br /&gt;
Be aware that generating the API documentation can take several hours and takes almost half a gigabyte of diskspace.&lt;br /&gt;
The generation is handled by a script in {{path|kdelibs/doc/api}}, you need &amp;lt;tt&amp;gt;doxygen&amp;lt;/tt&amp;gt; to be able to run it. &lt;br /&gt;
&lt;br /&gt;
To build the API documentation for kdelibs, type the following:&lt;br /&gt;
&amp;lt;!--'cs' and 'cb' are NOT typos!--&amp;gt;&lt;br /&gt;
 cs KDE/kdelibs # [[Getting_Started/Increased_Productivity_in_KDE4_with_Scripts/.bashrc|'cs' is a bash function, click here to learn more]]&lt;br /&gt;
 $KDE_SRC/KDE/kdelibs/doc/api/doxygen.sh \&lt;br /&gt;
 --doxdatadir=$KDE_SRC/KDE/kdelibs/doc/common .&lt;br /&gt;
&lt;br /&gt;
You will notice a new subdirectory called {{path|kdelibs-apidocs}} is created for you. Simply copy that directory to whereever you want your API documentation to be stored.&lt;br /&gt;
&lt;br /&gt;
Repeat for other modules (eg. kdepimlibs, kdevplatform, etc) as desired. For example:&lt;br /&gt;
 cs KDE/kdepimlibs&lt;br /&gt;
 $KDE_SRC/KDE/kdelibs/doc/api/doxygen.sh \&lt;br /&gt;
 --doxdatadir=$KDE_SRC/KDE/kdelibs/doc/common .&lt;br /&gt;
&lt;br /&gt;
Another, even easier method involves downloading this [[Doxyfile]] to your local system. Then simply change directory to where you want to create the documentation and run&lt;br /&gt;
&amp;lt;code bash&amp;gt;&lt;br /&gt;
% doxygen /path/to/Doxyfile&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
Then review the file {{path|doxygen.log}} to see the doxygen errors and warnings. You'll find the actual documentation in the {{path|apidocs}} subdirectory.&lt;br /&gt;
&lt;br /&gt;
== Staying up to date ==&lt;br /&gt;
&lt;br /&gt;
In order to keep the kde4 installation up to date, each of the modules installed should be updated periodically. As Monday is the day for big changes in kdelibs, Tuesday may be the best day to do this. For each module checked out, run &amp;lt;tt&amp;gt;svn up&amp;lt;/tt&amp;gt; and &amp;lt;tt&amp;gt;make&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
For example:&lt;br /&gt;
&amp;lt;code bash&amp;gt;&lt;br /&gt;
cs kdesupport # cs is not a typo&lt;br /&gt;
svn up&lt;br /&gt;
cb # cb is not a typo&lt;br /&gt;
make install&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Note: it is not necessary to run cmakekde for updates.&lt;br /&gt;
&lt;br /&gt;
== Installing a subset of a module ==&lt;br /&gt;
&lt;br /&gt;
Many modules in KDE contain a large number of programs which could take a long time to download and compile. In cases where you want to work only on a particular program or programs in a module, it is possible to download and compile particular folders. In some cases, certain folders are required for any build of the module. This is determined in the CMakeLists.txt file of the module. For example the [http://websvn.kde.org/branches/KDE/4.0/kdegames/CMakeLists.txt?view=markup kdegames CMakeLists.txt file] lists:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
add_subdirectory(libkdegames)&lt;br /&gt;
add_subdirectory(libkmahjongg)&lt;br /&gt;
&lt;br /&gt;
macro_optional_add_subdirectory(doc)&lt;br /&gt;
macro_optional_add_subdirectory(lskat)&lt;br /&gt;
macro_optional_add_subdirectory(katomic)&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
So, the libkdegames and libkmahjongg directories are required to build any of kdegames. The cmake directory will also usually be required. All the other directories (doc, katomic etc) are optional. They will be built if present on your machine. In this example, we build kmahjongg and kbattleship:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code bash&amp;gt;&lt;br /&gt;
cs KDE&lt;br /&gt;
svn co -N kdegames # The -N switch performs a non-recursive checkout&lt;br /&gt;
cd kdegames&lt;br /&gt;
svn up libkdegames # Get required directories&lt;br /&gt;
svn up libkmahjongg&lt;br /&gt;
svn up cmake&lt;br /&gt;
svn up kbattleship # Get optional directories&lt;br /&gt;
svn up kmahjongg&lt;br /&gt;
cmakekde &lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Success! ==&lt;br /&gt;
&lt;br /&gt;
You are now ready to start building other svn modules in the same fashion as you built kdebase, running and testing KDE4 or writing your own patches and applications.&lt;br /&gt;
&lt;br /&gt;
See the [[Getting Started/Set up KDE 4 for development|Set up KDE 4 for development]] tutorial for how to start KDE 4 applications and how to use KDevelop to work on them.&lt;br /&gt;
&lt;br /&gt;
[[Category:Build KDE]]&lt;br /&gt;
[[Category:KDE4]]&lt;/div&gt;</summary>
		<author><name>Logixoul</name></author>	</entry>

	<entry>
		<id>http://techbase.kde.org/Contribute/Bugsquad/KrushDays</id>
		<title>Contribute/Bugsquad/KrushDays</title>
		<link rel="alternate" type="text/html" href="http://techbase.kde.org/Contribute/Bugsquad/KrushDays"/>
				<updated>2007-11-07T12:31:47Z</updated>
		
		<summary type="html">&lt;p&gt;Logixoul: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Box|KDE4 Krush Days|Join us Saturdays on irc in the #kde4-krush channel to work out release critical issues for KDE 4.0. Testers, artists, documenters and programmers are all welcome and encouraged to join in on the fun. Issues that are identified and being worked on will be added to this community scratchpad page.}}{{Box|Note|&lt;br /&gt;
* Please attach you nickname in irc when you add a bug to this page.&lt;br /&gt;
*In order to mark a bug as fixed please use &amp;lt;nowiki&amp;gt;&amp;lt;s&amp;gt;&amp;lt;/s&amp;gt;&amp;lt;/nowiki&amp;gt;-tags and mention the revision number(s) of this fix.}}&lt;br /&gt;
&lt;br /&gt;
{{Box|Crash Backtraces|&lt;br /&gt;
Do &amp;lt;b&amp;gt;not&amp;lt;/b&amp;gt; use [http://rafb.net/paste/ http://rafb.net/paste/] for your crash backtraces, because those paste URLs there will expire after 24 hours.&lt;br /&gt;
&lt;br /&gt;
Please use &amp;lt;b&amp;gt;[http://pastebin.ca/ http://pastebin.ca/]&amp;lt;/b&amp;gt; for crash backtraces and add a link to your paste when you add the crash to the list below. &lt;br /&gt;
&lt;br /&gt;
A backtrace is generally &amp;lt;b&amp;gt;very&amp;lt;/b&amp;gt; helpful for developers to identify the reason for the crash. To get good backtraces, read [[Development/Tutorials/Debugging/How_to_create_useful_crash_reports|this article]].&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==== Screen Locker (krunner_lock) ====&lt;br /&gt;
* unlocking the session is impossible as I get &amp;quot;wrong password&amp;quot; (logixoul) (confirmed by goliath23)&lt;br /&gt;
** prolly installed as user - kcheckpass requires setuid root&lt;br /&gt;
* enabling and disabling capslock in the &amp;quot;unlock session&amp;quot; dialog doesn't hide the red &amp;quot;Warning: capslock enabled&amp;quot; label (logixoul) (works fine for TunaTom [rev 731731])&lt;br /&gt;
&lt;br /&gt;
==== Packaging ====&lt;br /&gt;
* share/icons/oxygen/22x22/actions/kscd-dock.png is installed by both kdebase and kdemultimedia (jstubbs)&lt;br /&gt;
&lt;br /&gt;
==== Konsole ====&lt;br /&gt;
* Try opening tab in konsole, closing it, and opening a new one (for me, it freezes for a minute and then displays &amp;quot;QProcess: Destroyed while process is still running.&amp;quot;) (tagx)&lt;br /&gt;
** Note: I [goliath23] cannot confirm this. file-&amp;gt;new tab, then rightclick-&amp;gt;close tab, and then file-&amp;gt;new tab works fine here [rev 732226] (TunaTom: Ctrl-Shift-n -&amp;gt; Ctrl-D -&amp;gt; Ctrl-Shift-n works as well [rev r732048])&lt;br /&gt;
** Note2: (tagx:) Someone on else on irc confirmed it (name begins with t...) he was using gentoo too (I am using gentoo). (jstubbs:) Also confirmed and also with Gentoo.&lt;br /&gt;
** I also have this issue. The system is CentOS 4.4. /yess&lt;br /&gt;
* Selecting text in the default color scheme gives black-on-black selections (jstubbs)(confirmed by annma)(not reproducible by TunaTom)&lt;br /&gt;
* None of the Alt+&amp;lt;letter&amp;gt; menu shortcuts work when the terminal has focus (apaku) (confirmed by TunaTom)&lt;br /&gt;
* Wish: Could the links be not clickable as an option? it really goes on the way as it makes copy/paste too difficult when a link is present in the copied text (annma)&lt;br /&gt;
* Wish: could we have the Start New Session little icon back pleaaaaase? (annma)&lt;br /&gt;
** If you mean the icon that was to the left of the tabs in KDE 3 then no, I do not plan to reintroduce this.  It has been replaced by a better set of keyboard shortcuts out of the box.  The default shortcut to create a new session is Ctrl+Shift+N (robertknight)&lt;br /&gt;
*** Well, too bad you don't even considere it as a config option. I'll start a &amp;quot;New Tab icon&amp;quot; fan club then.&lt;br /&gt;
* crashes when clicking on a link, but konqueror opens successfully ([C]167&lt;br /&gt;
*Changes made with &amp;quot;Edit Current Profile::Appearance&amp;quot; are not &lt;br /&gt;
saved. &amp;lt;JRT&amp;gt;&lt;br /&gt;
*&amp;quot;Edit Font&amp;quot; isn't restricted to only monospace fonts. &amp;lt;JRT&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Dolphin ====&lt;br /&gt;
* &amp;lt;s&amp;gt;Restoring a deleted item from the trash crashes dolphin/konqueror (mbiebl)&amp;lt;/s&amp;gt;&lt;br /&gt;
** Fixed by Sergej Melderis and David Faure (Peter Penz)&lt;br /&gt;
* The &amp;quot;Desktop&amp;quot; and &amp;quot;Root&amp;quot; icons in dolphin have a completely different style than the usual folder icon. (mbiebl)&lt;br /&gt;
* &amp;lt;s&amp;gt;Dolphin has no proper icon in taskbar/window decoration. (mbiebl)&amp;lt;/s&amp;gt;&lt;br /&gt;
** fixed. (logixoul)&lt;br /&gt;
* Select icon in folder/file properties doesn't show the icons of the selected categories at first. Only after changing the combobox the icons are loaded. (bbroeksema)(I can confirmed that [TunaTom r732119])&lt;br /&gt;
* &amp;lt;s&amp;gt;Edit Locations (F6) doesn't work as expected. Currently it only switches to edit mode and focuses the location bar if it's in navigation mode, otherwise it doesn't do anything. (Mogger)&amp;lt;/s&amp;gt;&lt;br /&gt;
** For me, it switches from navigation to edit mode and focuses as well [TunaTom r732119]&lt;br /&gt;
*** Yeah same for me, sorry for being unclear. Edited now. (Mogger)&lt;br /&gt;
**** Thanks for the report, this issue is fixed now :-) (Peter Penz)&lt;br /&gt;
* no option for 'select on hover' (emilsedgh)&lt;br /&gt;
* cannot show thumbnails (it was showing the thumbnails when konqueror was unable to show them, so seems a different bug with konqueror's &amp;quot;cannot show preview&amp;quot; bug, also file properties-&amp;gt;preview hasnt the preview anyymore) (emilsedgh)&lt;br /&gt;
** fixed by mlaurent (logixoul)&lt;br /&gt;
* &amp;quot;Empty Trash&amp;quot; does not show up in the file menu when viewing the trash (yuriy)&lt;br /&gt;
** Application menus should never be changed dynamically. So an option would be showing &amp;quot;Empty Trash&amp;quot; always. From my point of view using the context menu is enough (at least I'm not aware about any file manager that has &amp;quot;Empty Trash&amp;quot; as part of the file-menu). For further discussions please mail me directly (peter.penz@gmx.at) or just use the kfm-devel mailing list. Thanks! (Peter Penz)&lt;br /&gt;
* Several of the F1-F11 do not show up in the &amp;quot;Configure Shortcuts&amp;quot; dialog (e.g. F4) (gissi)&lt;br /&gt;
* Inconsistency (IMHO): F4 in dolphin behaves different than in Konqueror (terminal panel vs. terminal in new window) (gissi)&lt;br /&gt;
* It can only configure mimetype associations individually via properties on a file, and later clicking on a small settings button. To configure mimetypes globally, and not file related, it has to be done with Konqueror settings, as there is no such entry in SystemSettings. IMHO Dolphin or SystemSettings should also get the Konqueror's File association settings panel. (q3xr2).&lt;br /&gt;
* &amp;lt;s&amp;gt;When moving a hidden file to trash this file is not shown in trash. However, it is in ~/.local/share/Trash, so it's not lost. The problem is probably that kiotrash ignores hidden files. (gissi, confirmed by JustinNoel, luca_b and logixoul)&amp;lt;/s&amp;gt;&lt;br /&gt;
** Fixed by Sergejs Melderis and David Faure (Peter Penz)&lt;br /&gt;
* When you delete Trash from sidebar, you can't get it back. (amp)&lt;br /&gt;
&lt;br /&gt;
==== Phonon ====&lt;br /&gt;
* Can't get any sound to work. Chosen backend is xine. Tried to play an mp3 in juk. juk says its playing, but I get no sound. (mbiebl)&lt;br /&gt;
&lt;br /&gt;
==== Juk ====&lt;br /&gt;
* Too much colums in default setting. Not a bug but a bad looking thing. (frank95com)&lt;br /&gt;
&lt;br /&gt;
==== Oxygen ====&lt;br /&gt;
* Missing icons for &amp;quot;Appearance&amp;quot; and &amp;quot;Desktop&amp;quot; in systemsettings. (mbiebl)&lt;br /&gt;
* Visual glitches in Oxygen: tabs in konqui, progressbar in dolphin. (mbiebl)&lt;br /&gt;
* konsole, Oxygen: the arrows of the right scrollbar are not visible (black on black). (mbiebl)&lt;br /&gt;
* Chanel icons in KMix could use some Oxygenification (JLP)&lt;br /&gt;
* Too little contrast in the window-list from alt-tab shortcut, people with only slight visual problems won't be able to see the difference between selected/not selected (apaku)&lt;br /&gt;
* Buttons inside konqueror are not drawn properly, text labels are off and often are missing completely. This doesn't happen with plain Qt style, but also with Plastik (apaku)&lt;br /&gt;
&lt;br /&gt;
==== Plasma ====&lt;br /&gt;
* Unable to resize the kickoff menu. (mbiebl)&lt;br /&gt;
* The taskbar doesn't remember the position of the clock plasmoid. (mbiebl)&lt;br /&gt;
* Kickoff opens konqueror when clicking on an entry under &amp;quot;My Computer&amp;quot;. (mbiebl)&lt;br /&gt;
* The network plasmoid does not automatically selet the active network connection (It uses eth0 by default, but I use wlan0 mostly) (mbiebl)&lt;br /&gt;
* In kickoff, clicking the utilities menu and then clicking back again shows the top menu scrolled to the top rather than where it was before clicking utilities. (jstubbs)&lt;br /&gt;
** Confirmed. Additional strange bahaviour: When opened by clicking on a link in &amp;quot;Storage&amp;quot; for example, Konqueror shows the contents of &amp;quot;/&amp;quot; in an unnamed tab. Right of that tab is another one showing the correct location. If you click that tab, konqeuror crashes. (goliath23)&lt;br /&gt;
* systemtray: starting one juk instance shows two identical icons in the systray.&lt;br /&gt;
* with the plasma toolbox, clicking &amp;quot;add widgets&amp;quot; but releasing the mouse button elsewhere still activates it. (jstubbs)&lt;br /&gt;
* hovering the plasma toolbox for the first time after cleaning config makes buttons slide in from TOP-LEFT rather than TOP-RIGHT. Every subsequent hovering works correctly. (logixoul)&lt;br /&gt;
* can't move panel plasmoids. (logixoul)&lt;br /&gt;
* can't put pager or systray on panel. (logixoul)&lt;br /&gt;
* systray on desktop has no border. (logixoul)&lt;br /&gt;
* MinimizeAnimation doesn't animates correctly to the taskbar, with Kicker it   works fine (Plasma should tell KWin where the taskbar-entry is) (boom1992)&lt;br /&gt;
* The dictionary plasmoid doesn't show the results. (Mogger)&lt;br /&gt;
** Looks like fixed in r732655, shows the result, but first changes the box with animation, then changes the result text, also its a bit slow (emilsedgh)&lt;br /&gt;
* krunner hangs on each and every letter typed in after some time working in a kde4 desktop. May be related to manual killing the strigidaemon which goes nuts on CPU usage. Output from console: http://www.apaku.de/vardata/krunner_output_hang (apaku)&lt;br /&gt;
* notes applet should be resized when the text is bigger that current size (emilsedgh)&lt;br /&gt;
* Kickoff: Clicking the applications tab, when the tab is open should return it to top-level.Current catalog-memory is a good feature however, so keep that aswell. (eirik_)&lt;br /&gt;
* Colorpicker and Kickoff plasmoid don't have context menu, so they can't be removed. (TunaTom)&lt;br /&gt;
** context menus are going to be replaced by hover-action-icons (ivan)&lt;br /&gt;
** Lancelot now has context menu and is (re)movable (emilsedgh)&lt;br /&gt;
* Running plasma with QT_FLUSH_PAINT I can see lots of extra repainting. For example the panel is very bad. (rich)&lt;br /&gt;
* Plasma is shown in the Alt+Tab windowlist, this should not happen (especially since switching to this app then does nothing visually except lose focus from the toplevel window) (BCoppens)&lt;br /&gt;
* Analog Clock: add text &amp;amp; seconds indicator. Change size to 400. Is so SLOW that it easily skips 3 seconds per redraw! (Core2 Duo 2.20GHz, Quadro FX 570M, nvidia binary drivers, Thinkpad T61p) (BCoppens)&lt;br /&gt;
* Digital clock is useless by its inconfigurability: I'm not interested in a disorganized list of timezones, no, I want a) the date underneath, b) a less fancy digital font instead of the current one with the distracting 'line' in the middle. (BCoppens)&lt;br /&gt;
**The date format is not affected by the settings in KControl.&amp;lt;JRT&amp;gt;&lt;br /&gt;
** Time Zone list should be redundant in configuration since the TZ should be set in KControl.  All that is needed is an option to display it.  Note, I think that this is the standard timezone list.  If what is wanted is an option to display a TZ other than the user's TZ, this should be a separate context menu item. &amp;lt;JRT&amp;gt;&lt;br /&gt;
* Kickoff does not start firefox. It loads the .desktop file in kwrite (amp)&lt;br /&gt;
* The Lock/Logout Widget has rectangular buttons -- should have square? IAC, icons should be centered on buttons. &amp;lt;JRT&amp;gt;&lt;br /&gt;
*System Tray Widget doesn't work correctly: The Widget doesn't size itself to hold the contents.  The contents seem to have the wrong X display priority (they are always on top).  It (the contents, not the widget) interacts with windows (snap).  The contents are only displayed on Desktop #1.  When something triggers a refresh of something, then the SystemTray widget resizes and looks correct but the icons are still not working correctly.  They are only on DeskTop #1 and always on top. &amp;lt;JRT&amp;gt;&lt;br /&gt;
*The Application Launcher Widget seems to be stuck in the middle of the screen; I can't drag it.  In this position with 1024x768 the menu window does not open correctly.  It extends beyond the top of the screen and is cut off. &amp;lt;JRT&amp;gt;&lt;br /&gt;
*The Clock on the Panel slides over and winds up on top of the TaskBar on the Panel.&amp;lt;JRT&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== System Settings ====&lt;br /&gt;
* systemsettings has no menu entry. Typing it into kickoffs search entry doesn't find/list it either. (mbiebl)&lt;br /&gt;
* When clicking on &amp;quot;Appearance&amp;quot;, it seems to delete a file. http://rafb.net/p/zzS2fM55.html (Mogger)&lt;br /&gt;
**When I select &amp;quot;Appearance&amp;quot; in &amp;quot;System Settings&amp;quot;, three &amp;quot;Progress Dialog&amp;quot; boxes pop up.&amp;lt;JRT&amp;gt;&lt;br /&gt;
* Missing &amp;quot;get root rights&amp;quot; button on pages like Date/Time, thus its impossible to change such settings (apaku)&lt;br /&gt;
* Searching something doesn't seem to limit the displayed modules or highlight any of the search results.&lt;br /&gt;
* no settings to be changed for keyboard shortcuts - everything is empty (nixternal)&lt;br /&gt;
**This is probably a function of your system configuration.  IIUC,It reads an X11 file. &amp;lt;JRT&amp;gt;&lt;br /&gt;
* When clicking e.g. &amp;quot;Appearance&amp;quot;, the System Settings window doesn't get resized. This causes very ugly (horizontal and vertical) scrollbars (gissi)&lt;br /&gt;
* Default size for the text beneath the icons is too small. I see stuff like 'ppearanc' instead of 'Appearance' and 'ccesibilit'. Some other texts are wide enough, like 'Splash Screen'. (BCoppens)&lt;br /&gt;
* Changing the style to Oxygen changes all windows, EXCEPT the System Settings (BCoppens)&lt;br /&gt;
*Regional &amp;amp; Language::Time &amp;amp; Dates (should that be &amp;quot;Time &amp;amp; Date&amp;quot;?) doesn't have USA style date formats in &amp;quot;Short date format&amp;quot;: MM.DD.YYYY &amp;amp; mM.dD.YYYY and should also have formats with only 2 digits for year: YY.&lt;br /&gt;
&lt;br /&gt;
==== KMix ====&lt;br /&gt;
* &amp;lt;s&amp;gt;m_qcb-&amp;gt;blockSignals( true ); where m_qcb is null from MDWSlider::updateInternal during kmix startup http://pastebin.ca/759601 (jstubbs)&amp;lt;/s&amp;gt; Fixed by SVN commit [http://websvn.kde.org/?view=rev&amp;amp;revision=732246 732246]&lt;br /&gt;
* &amp;lt;s&amp;gt;Right click on KMix icon in system tray, select master channel, dialog comes up empty, when you close it KMix icon disappears from the tray (JLP)&amp;lt;/s&amp;gt; Fixed by SVN commit [http://websvn.kde.org/?view=rev&amp;amp;revision=732367 732367]&lt;br /&gt;
&lt;br /&gt;
==== KWin ====&lt;br /&gt;
* Windows are not fully redrawn when minimizing and then restoring with OpenGL compositing in use (jstubbs)&lt;br /&gt;
* the compositing KCM should provide an easy way to enable the COMPOSITE extension (logixoul)&lt;br /&gt;
* &amp;lt;s&amp;gt;Menu shadows are being left on the desktop (but not on windows, it seems) (Mogger)&amp;lt;/s&amp;gt; Fixed by SVN commit [http://websvn.kde.org/?view=rev&amp;amp;revision=732268 732268]&lt;br /&gt;
* Sometimes (tested with Konsole, X.org 7.3, latest nvidia drivers and a Geforce 5900XT), the clicked menus are not displayed and KWin crashes. Backtrace : [http://rafb.net/p/zmYj1980.html] (idem)&lt;br /&gt;
* After a while the alt-tab window list is completely missing though I can still switch between windows with alt+tab (apaku)&lt;br /&gt;
* alt+tab only allows to switch between windows on the same screen in a multihead setup, its impossible to activate a window on another screen (though its on the same virtual X11 desktop) (apaku)&lt;br /&gt;
* alt+tab (without compositing) shows a list of windows but no indication which window in this list is selected when cycling through them. (goliath23)&lt;br /&gt;
* KWin does not detect compositing ability on my pc with a GeForce 7600 GS (driver version 100.14.19) (goliath23) &lt;br /&gt;
* The Composite Effect 'Demo Liquid' crashes KWin (BCoppens)&lt;br /&gt;
* 'Scale In' effect also scales in Menus and Dropdown boxes from the 'middle' of their target area, this is ugly. Either don't do that for such windows, or let them scale in from their topleft corner (BCoppens)&lt;br /&gt;
* Alt+Shift+Tab for backwards scrolling through Alt+Tab shortcut is not assigned, but I can't remember if this was the case in KDE3 as well or not... (BCoppens)&lt;br /&gt;
*Moving windows with &amp;quot;Display Content&amp;quot; turned off does not display an empty frame. (using an OpenSource driver)&amp;lt;JRT&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== KNS ====&lt;br /&gt;
* KNS uses 100% CPU when 550 is enabled in kdebugdialog (jstubbs)&lt;br /&gt;
* Sometimes KNS dialog is under Settings dialog (Kanagram and KStars) modal/non-modal issue when KNS is invoked from a Config dialog (jstubbs)&lt;br /&gt;
&lt;br /&gt;
==== KHangMan ====&lt;br /&gt;
* &amp;lt;s&amp;gt;&amp;quot;Already Guessed&amp;quot; tooltip timer does not work.&amp;lt;/s&amp;gt; FIXED annma r732068&lt;br /&gt;
* &amp;lt;s&amp;gt;When changing the &amp;quot;Already Guessed&amp;quot; tim in Config, the current word should stay (KHangMan jumps to a new word).&amp;lt;/s&amp;gt; FIXED annma r732068&lt;br /&gt;
*  After typing an already typed letter, the focus is left on the guess &amp;quot;button&amp;quot;, which means I have to press tab to get back to the letter entry field. If we enable the focus back before tooltip is hidden, it means the tooltip has to be hidden when a new letter is entered. (jstubbs)&lt;br /&gt;
** annma: intented behaviour is that the input is impossible why popup is shown. To leave the kid the time to understand what he is doing. Messing with the tooltip now seems bad to me. It's a WON'T FIX until we have it tested with kids ;) sorry jstubbs!&lt;br /&gt;
* &amp;lt;s&amp;gt;See if the font progressbar can disappear after first run (jstubbs)&amp;lt;/s&amp;gt;&lt;br /&gt;
** annma: Removing your ~/.fonts/d dustismo_roman.ttf will make the bug go away. The font will reinstall and then it'll be found. Not sure why it happened...&lt;br /&gt;
* Test what happens for the fonts when no internet connection (jstubbs)&lt;br /&gt;
* Wish: when using the Special chars toolbar, letters should go immediatly in the word or in Missed. Annma is not sure this would work with kids, they maybe won't understand what happens. (jstubbs)&lt;br /&gt;
** annma: maybe a config option for KDE 4.1 as we are in feature freeze now.&lt;br /&gt;
* Language combo in toolbar does not resize correctly when changing language. (jstubbs)&lt;br /&gt;
* &amp;lt;s&amp;gt;Right-clicking &amp;quot;Type accented letters&amp;quot; does not offer the context sensitive help when the option is disabled. (jstubbs)&amp;lt;/s&amp;gt;&lt;br /&gt;
** annma: this is from Qt, it's default behaviour for QWhatsThis help.&lt;br /&gt;
&lt;br /&gt;
==== Kiten ====&lt;br /&gt;
* Searching for &amp;quot;one&amp;quot; takes a long time to process, during which the application blocks without any feedback. (jstubbs)&lt;br /&gt;
* From the Search menu, selecting Search {with Beginning of Word, Anywhere}, Grade or Strokes does not seem to have any affect (jstubbs)&lt;br /&gt;
* Selecting Verb or Noun from the grammatical element dropdown does not seem to have any affect (jstubbs)&lt;br /&gt;
&lt;br /&gt;
==== KBruch ====&lt;br /&gt;
* In fraction tasks, the denominators used sometimes exceed the max denominator that is set. (jstubbs) r732343 attempted to fixe it but not totally&lt;br /&gt;
&lt;br /&gt;
==== KPercentage ====&lt;br /&gt;
* &amp;lt;s&amp;gt;When starting a new set of tests, and on various other actions, the window unnecessarily moves to the centre of the screen (jstubbs)&amp;lt;/s&amp;gt; Fixed r732700&lt;br /&gt;
&lt;br /&gt;
==== KGeography ====&lt;br /&gt;
* &amp;lt;s&amp;gt;Intermittent crash after a placing state on a map (jstubbs)&amp;lt;/s&amp;gt; Fixed r732331 (tsdgeos)&lt;br /&gt;
* &amp;lt;s&amp;gt;Selecting zoom when placing state on a map leaves the cursor as the state to be placed - perhaps the cursor should change back to a pointer while in zoom mode? (jstubbs)&amp;lt;/s&amp;gt; Fixed r732314 (tsdgeos)&lt;br /&gt;
* With KWin's dimming of inactive windows, it is difficult to relate the colors signfying right/wrong answers back to the map (jstubbs)&lt;br /&gt;
&lt;br /&gt;
==== KmPlot ====&lt;br /&gt;
* Editing function does not work as if Enter is not doing anything (rivo, gissi and idem-kde4) Annma cannot reproduce.&lt;br /&gt;
**Note by gissi: For me, only editing a cartesian plot doesn't work, the others work as expected. Don't know wether that's the same for rivo and idem.&lt;br /&gt;
&lt;br /&gt;
==== KMail ====&lt;br /&gt;
* Creating a new Imap Account and press &amp;quot;Check what the Server Supports&amp;quot; in Security crashes KMail. Stacktrace / ConsoleLog at http://pastebin.ca/759562 (voltaire) &lt;br /&gt;
:: This is probably a KSSL problem, which will be fixed when the new KSSL arrives in kdelibs --[[User:TMG|TMG]] 00:03, 4 November 2007 (CET)&lt;br /&gt;
* &amp;lt;s&amp;gt;If I open a link from an email it opens it but then it crashes - Backtrace http://pastebin.ca/759997 (frank95com)&amp;lt;/s&amp;gt;&lt;br /&gt;
:: &amp;lt;s&amp;gt;This is a kdelibs (krun) bug, it happens in other apps, like Konsole, as well&amp;lt;/s&amp;gt; --[[User:TMG|TMG]] 00:03, 4 November 2007 (CET)&lt;br /&gt;
:: Fixed in kdelibs --[[User:TMG|TMG]] 21:27, 6 November 2007 (CET)&lt;br /&gt;
*When an IMAP server stops responding KMail popups up the &amp;quot;IMAP Disconnected&amp;quot; dialog with an &amp;quot;Ok&amp;quot; button. Clicking &amp;quot;Ok&amp;quot; crashes KMail. Stack Trace: http://www.pastebin.ca/759969 (JustinNoel)&lt;br /&gt;
* KMail initial account wizard. A process related to the KMail initial setup wizard crashes when &amp;quot;Check for supported security capabilites on...&amp;quot; appears. Console spew suggests something crashed. KMail starts with an IMAP account with an incorrect security configuration. Description/Reproduction Steps/Console Spew: http://www.pastebin.ca/760052 Needs verification as I only have one IMAP server to try. (Justin Noel)&lt;br /&gt;
:: Seems like the same bug above, the one reported by voltaire. --[[User:TMG|TMG]] 00:03, 4 November 2007 (CET)&lt;br /&gt;
* KMail with disconnected IMAP: after customizing options and restart, it crashes on startup http://pastebin.ca/764484 ([[User:Lure|Lure]] 09:07, 7 November 2007 (CET))&lt;br /&gt;
&lt;br /&gt;
==== Build issue ====&lt;br /&gt;
* in kdebase when OpenGL is not found, cmake stops with &amp;quot;CMake Error: This project requires some variables to be set, and cmake can not find them. Please set the following variables: OPENGL_gl_LIBRARY (ADVANCED)&amp;quot; so there is a bad check somewhere in kdebase (annma, issue of frank95com, http://pastebin.ca/759575). Possible patch: http://pastebin.ca/759603 (annma). Other possible patch by ThomasZ: http://pastebin.ca/759605	&lt;br /&gt;
* In kdebase on OS X 10.5 the build WITH_XKB = OFF variable is not respected resulting in failure of the build. (build process info found at http://techbase.kde.org/Getting_Started/Build/KDE4/Mac_OS_X_10.5_issues) Sorry it's so wordy, but I initially wrote it up for personal use.&lt;br /&gt;
&lt;br /&gt;
==== Kolf ====&lt;br /&gt;
* The direction and velocity marker flickers and often cannot be seen. Using opengl compositing. (jstubbs)&lt;br /&gt;
&lt;br /&gt;
==== KDElibs ====&lt;br /&gt;
* &amp;lt;s&amp;gt;The tab order of the configure shortcuts dialog is incorrect. (Mogger)&amp;lt;/s&amp;gt; Fixed by SVN commit [http://websvn.kde.org/?view=rev&amp;amp;revision=732404 732404]''&lt;br /&gt;
* Drag and drop doesn't work in the configure toolbars dialog. (Mogger)&lt;br /&gt;
* Applications crash when downloading something. Traceback from Konsole when clicking on a link: http://rafb.net/p/1aiHyn63.html (Mogger)&lt;br /&gt;
* cannot write Right-To-Left...in kde3 when you start a line with a character of an rtl language, the line goes rtl automatically (emilsedgh)&lt;br /&gt;
* Configure shortcuts dialog is too small at start: I cannot see the action name at all (it says stuff like 'C...' instead of 'Close'). Furthermore, and much worse: I cannot change the width of the columns at all to try to make the action names readable! (BCoppens)&lt;br /&gt;
&lt;br /&gt;
==== Konqueror ====&lt;br /&gt;
* Website http://kriptopolis.org it is really bad rendered, however it is fine with Konqueror 3.5.7. (q3xr2)&lt;br /&gt;
* often doesn't load pages properly, for example clicking the login link on a techbase page almost always gets me an empty page (apaku) (frank95com too, gruf too)&lt;br /&gt;
* Cannot show thumbnails (emilsedgh)&lt;br /&gt;
** fixed by mlaurent (logixoul)&lt;br /&gt;
* Up Button loads a different view, while back button doesn't, when walking through the filesystem. The up button loads a similar view to what you get in dolhpin, while the default view when typing in a local path is a plain iconview (apaku)&lt;br /&gt;
* When entering already visited directories, the animated logo doesn't stop. (Plain iconview instead of dolphin part?) (Mogger)&lt;br /&gt;
* Nothing in View -&amp;gt; Sort By, Additional Information, Panels, Navigation Bar submenus (yuriy)&lt;br /&gt;
* Nothing except &amp;quot;home folder&amp;quot; in home folder sidebar (yuriy)&lt;br /&gt;
* Some favicons do not appear in Konqueror's nav bar to titlebar. google.com and kubuntu.org works. kde.org, cnn.com and slashdot.org do not work. (JustinNoel)&lt;br /&gt;
* pressing ctrl+a when focus is on addressbar selects whole webpage instead of the text that is written in the addressbar (only on webpages: khtmlpart?) (emilsedgh)&lt;br /&gt;
* have to keep refreshing pages in order for them to display (nixternal)&lt;br /&gt;
* have quite a few problems trying to edit this page alone (nixternal)&lt;br /&gt;
* In file management mode it can't show hidden files, it doesn't have this option in the View menu, neither there is a shorcut available. (q3xr2)&lt;br /&gt;
* In HTML forms (such as the textbox to edit this wikipage with, or the username box), the initial fontsize is small. Once I click on the form, the font suddenly enlargens. Especially annoying with this editbox, since the place where you think you clicked changes after fontsize change (BCoppens)&lt;br /&gt;
* Asks nicely if it has to store my form data (such as password and username in the Wallet, but does not actually do so (BCoppens)&lt;br /&gt;
* Clicking on a link to an in-page 'tag' (the a href=#tag thing, like there are lots of in the index of this wiki page), results in konqueror showing the 'Drag link' mouse cursor (BCoppens)&lt;br /&gt;
* Not only do I get blank pages, but I get the following on trying to edit this wiki with Konqueror of KDE4: after sending in the changes, it shows a blank page. I press F5, and Konq asks me to resubmit form data. Wiki then shows an almost-empty edit page, with 'Sorry! We could not process your edit due to a loss of session data' (BCoppens)&lt;br /&gt;
* Start Konq.  Press 'Next: An Introduction to Konqueror'. The page goes blank, and 'Previous page' also shows up blank. (BCoppens)&lt;br /&gt;
* With Konqui becoming webbrowser as primary task, it would make sense to redesign the start page altogether and remove stuff like Storage media, Trash etc. Show something like &amp;quot;Search the web&amp;quot; which points to a search engine, like Google, yahoo,...&lt;br /&gt;
* Start Konq. Enter '~'. Make a new tab (CtrlShift+N). Type something. Note how the cursor goes OVER the map icon, instead of starting next to it (BCoppens)&lt;br /&gt;
* (Different from the one above) Start Konq. Enter '~'. Make a new tab (CtrlShift+N). Enter '/'. Switch back to the first tab. It's caption suddenly changes from '/home/kde4/' to 'kde4'! Switching to the second tab, removes the '/' and makes that tab nameless) (BCoppens)&lt;br /&gt;
&lt;br /&gt;
==== IO-slaves ====&lt;br /&gt;
* Browsing with IO-slaves that require autenthication is broken: SMB, FTP, SSH do not display anything after authentication is entered (luca_b, nixternal, yuriy).&lt;br /&gt;
* When adding RSA keys using fish:/, the buttons to accept/refuse are blank. (luca_b, yuriy)&lt;br /&gt;
* smb:/ ioslave causes crash (nixternal)&lt;br /&gt;
* smb:/ ioslave does not work with shares that need authentication. Console output: http://pastebin.ca/760196 (luca_b)&lt;br /&gt;
* kio_file: After a while I have 100% of CPU usage when running KDE4. top says, the process is kio_file, which is sometimes up to 4 times running (amp)&lt;br /&gt;
* The settings:/ ioslave (accessible through Settings on the welcome screen of Konq) does not work at all. For example, try Appearanc&amp;amp;Themes -&amp;gt; Fonts: it tries to open this with KWrite! (BCoppens)&lt;br /&gt;
&lt;br /&gt;
==== Color KCM ====&lt;br /&gt;
* Changing the checkbox &amp;quot;Apply colors to non-KDE4 apps&amp;quot; doesn't trigger the changed signal and thus the apply button in systemsettings stays grayed out (apaku)&lt;br /&gt;
* the same as above applies to the whole Effects tab (apaku)&lt;br /&gt;
&lt;br /&gt;
==== Kate ====&lt;br /&gt;
* Crash when going down page-wise with PageDn beyond the end of the file. Backtrace: http://www.apaku.de/vardata/kate_crash_pagedn (apaku)&lt;br /&gt;
&lt;br /&gt;
==== Marble ====&lt;br /&gt;
* Navigate to Minneapolis (search is quick) and then zoom in until &amp;quot;saint paul&amp;quot; appears. Rotating up and down will now cause the text &amp;quot;saint paul&amp;quot; to jump around. (jstubbs)&lt;br /&gt;
* In full screen mode, clicking in the right half of the globe doesn't work. It seems that plasma is getting the events? (jstubbs)&lt;br /&gt;
&lt;br /&gt;
==== Kinfocenter ====&lt;br /&gt;
* Most of the Items are empty (emilsedgh)&lt;br /&gt;
&lt;br /&gt;
==== Kopete ====&lt;br /&gt;
* Adding an account a second time (same protocol, same user id as an existing) makes kopete crash (moi1392, idem-kde4). http://pastebin.ca/759660. More verbose fix in the works (Earthwings). http://lists.kde.org/?l=kopete-devel&amp;amp;m=119411618226111&amp;amp;w=2&lt;br /&gt;
* I can't get my Google Talk account to finish it's authentication process, however I can login without any troubles with my jabber.org account. I don't know if the trouble it's related to the SSL login or qca-tls which I have installed (q3xr2).&lt;br /&gt;
** Google Talk did not work before for me, but it works now (with today's SVN version), maybe you should retest with current SVN version.&lt;br /&gt;
* Configure-&amp;gt;Plugins results in consistent crash here http://pastebin.ca/764575 ([[User:Lure|Lure]] 12:34, 7 November 2007 (CET))&lt;br /&gt;
&lt;br /&gt;
==== kfind ====&lt;br /&gt;
* kfind crashes when the find is stopped (by pressing &amp;quot;stop&amp;quot; button) during the find process (shaga)&lt;br /&gt;
* the stop button has to be pressed twice, the first click is lost (shaga)&lt;br /&gt;
&lt;br /&gt;
==== Gwenview ====&lt;br /&gt;
* Random crashes when navigating to directories, or when editing the path manually. Backtrace http://pastebin.ca/760077 (luca_b)&lt;br /&gt;
&lt;br /&gt;
==== Login Manager KCM ====&lt;br /&gt;
* There are numbers on the tabs (yuriy)&lt;br /&gt;
** yes - the kcm is too big to have non-clashing letter shortcuts.&lt;br /&gt;
&lt;br /&gt;
==== kscd ====&lt;br /&gt;
* crashes when inserting a CD. Problem is an assert thats hit (apaku):&lt;br /&gt;
  kscd(31228)/kdecore (KConfigSkeleton) KConfigSkeleton::readConfig: KConfigSkeleton::readConfig()&lt;br /&gt;
  kscd(31228)/libkcddb KCDDB::Cache::lookup: Looking up  &amp;quot;ae0cdb0e&amp;quot;  in CDDB   cache&lt;br /&gt;
  kscd(31228)/libkcddb KCDDB::CDInfo::load: Loaded CDInfo for  &amp;quot;ae0cdb0e&amp;quot;&lt;br /&gt;
  kscd(31228)/libkcddb KCDDB::Client::lookup: Found  1  hit(s)&lt;br /&gt;
  ASSERT: &amp;quot;info.numberOfTracks() == cddbInfo.numberOfTracks()&amp;quot; in   file /home/andreas/KDE-work/4.0/kdemultimedia/kscd/kscd.cpp, line 753&lt;br /&gt;
* crashes when starting up (but not if the user does not have permissions to acces the cdrom) backtrace: http://pastebin.ca/760172 (yuriy)&lt;br /&gt;
==== KFontChooser ====&lt;br /&gt;
*It doesn't work correctly for the bit mapped fonts Fixed[Misc] &amp;amp; Fixed[Sony] which come with X11 are the best example of this since they might be used in Konsole.  This is mainly a Konsole issue. &amp;lt;JRT&amp;gt; &lt;br /&gt;
**There should be only 2 sizes of Fixed[Sony] which works correctly in KDE3 it displays only two sizes.  I'm not 100% clear on how this works if you have a screen resolution other than 75 or 100, but xfontsel lists two point sizes for 100 dpi: 12 &amp;amp; 17 and this agrees with the KFontSel dialog.  But in KDE4 it lists the usual list of sizes from 4 to 64.&lt;br /&gt;
**There are several sizes of Fixed[Misc], according to xfonsel they are: 5, 6, 7, 8, 10, 11, 12, &amp;amp; 14.  KDE has this fairly close to correct -- close enough that it works OK.  It also lists 4 which may be a 75 dpi font and it lists 9 but not 12.  Could these be rounding errors?  IAC, KDE4 is the same as with Fixed[Sony], it has the standard list of 4 to 64.&lt;br /&gt;
*We need to first ask if this is a Qt bug/error as are other font issues.&lt;br /&gt;
**The Fixed{Misc} fonts are not a uniform set of fonts and I don't think that there is any way that Qt can deal with this issue.&lt;br /&gt;
&lt;br /&gt;
==== Akregator ====&lt;br /&gt;
*Crashes while trying to delete a feed.&lt;br /&gt;
==== Kontact ====&lt;br /&gt;
*Crashes starting the application.&lt;br /&gt;
::We need a backtrace, otherwise we can't do anything. It doesn't crash for us. --[[User:TMG|TMG]] 21:24, 6 November 2007 (CET)&lt;br /&gt;
&lt;br /&gt;
==== KDEPrint ====&lt;br /&gt;
*Printing a html file from konqueror. The &amp;quot;HTML Settings&amp;quot; tab has an odd layout. It seems to miss a proper border. (mbiebl)&lt;/div&gt;</summary>
		<author><name>Logixoul</name></author>	</entry>

	<entry>
		<id>http://techbase.kde.org/Contribute/Bugsquad/KrushDays</id>
		<title>Contribute/Bugsquad/KrushDays</title>
		<link rel="alternate" type="text/html" href="http://techbase.kde.org/Contribute/Bugsquad/KrushDays"/>
				<updated>2007-11-03T13:22:00Z</updated>
		
		<summary type="html">&lt;p&gt;Logixoul: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Box|KDE4 Krush Days|Join us Saturdays on irc in the #kde4-krush channel to work out release critical issues for KDE 4.0. Testers, artists, documenters and programmers are all welcome and encouraged to join in on the fun. Issues that are identified and being worked on will be added to this community scratchpad page.}}&lt;br /&gt;
&lt;br /&gt;
irc nick in parenthesis&lt;br /&gt;
&lt;br /&gt;
'''KDM (?)'''&lt;br /&gt;
* unlocking the session is impossible as I get &amp;quot;wrong password&amp;quot; (logixoul)&lt;br /&gt;
* enabling and disabling capslock in the &amp;quot;unlock session&amp;quot; dialog doesn't hide the red &amp;quot;Warning: capslock enabled&amp;quot; label (logixoul)&lt;br /&gt;
&lt;br /&gt;
'''Packaging'''&lt;br /&gt;
* share/icons/oxygen/22x22/actions/kscd-dock.png is installed by both kdebase and kdemultimedia (jstubbs)&lt;br /&gt;
&lt;br /&gt;
'''Konsole'''&lt;br /&gt;
* Try opening tab in konsole, closing it, and opening a new one (for me, it freezes for a minute and then displays &amp;quot;QProcess: Destroyed while process is still running.&amp;quot;) (tagx)&lt;br /&gt;
* Selecting text in the default color scheme gives black-on-black selections (jstubbs)(confirmed by annma)&lt;br /&gt;
* Wish: Could the links be not clickable as an option? it really goes on the way as it makes copy/paste too difficult when a link is present in the copied text (annma)&lt;br /&gt;
* Wish: could we have the Start New Session little icon back pleaaaaase? (annma) &lt;br /&gt;
&lt;br /&gt;
'''Dolphin'''&lt;br /&gt;
* Restoring a deleted item from the trash crashes dolphin/konqueror (mbiebl)&lt;br /&gt;
* The &amp;quot;Desktop&amp;quot; and &amp;quot;Root&amp;quot; icons in dolphin have a completely different style than the usual folder icon. (mbiebl)&lt;br /&gt;
* Dolphin has no proper icon in taskbar/window decoration. (mbiebl)&lt;br /&gt;
** patch written and sent. (logixoul)&lt;br /&gt;
* Select icon in folder/file properties doesn't show the icons of the selected categories at first. Only after changing the combobox the icons are loaded. (bbroeksema)&lt;br /&gt;
* Edit Locations (F6) doesn't work as expected. Currently it only focuses the location bar if it's in navigation mode, otherwise it doesn't do anything. (Mogger)&lt;br /&gt;
&lt;br /&gt;
'''Phonon'''&lt;br /&gt;
* Can't get any sound to work. Chosen backend is xine. Tried to play an mp3 in juk. juk says its playing, but I get no sound. (mbiebl)&lt;br /&gt;
&lt;br /&gt;
'''Oxygen'''&lt;br /&gt;
* Missing icons for &amp;quot;Appearance&amp;quot; and &amp;quot;Desktop&amp;quot; in systemsettings. (mbiebl)&lt;br /&gt;
* Visual glitches in Oxygen: tabs in konqui, progressbar in dolphin. (mbiebl)&lt;br /&gt;
* konsole, Oxygen: the arrows of the right scrollbar are not visible (black on black). (mbiebl)&lt;br /&gt;
* Chanel icons in KMix could use some Oxygenification (JLP)&lt;br /&gt;
&lt;br /&gt;
'''Plasma'''&lt;br /&gt;
* Unable to resize the kickoff menu. (mbiebl)&lt;br /&gt;
* The taskbar doesn't remember the position of the clock plasmoid. (mbiebl)&lt;br /&gt;
* Kickoff opens konqueror when clicking on an entry under &amp;quot;My Computer&amp;quot;. (mbiebl)&lt;br /&gt;
* The network plasmoid does not automatically selet the active network connection (It uses eth0 by default, but I use wlan0 mostly) (mbiebl)&lt;br /&gt;
* In kickoff, clicking the utilities menu and then clicking back again shows the top menu scrolled to the top rather than where it was before clicking utilities. (jstubbs)&lt;br /&gt;
* systemtray: starting one juk instance shows two identical icons in the systray.&lt;br /&gt;
* with the plasma toolbox, clicking &amp;quot;add widgets&amp;quot; but releasing the mouse button elsewhere still activates it. (jstubbs)&lt;br /&gt;
* hovering the plasma toolbox for the first time after cleaning config makes buttons slide in from TOP-LEFT rather than TOP-RIGHT. Every subsequent hovering works correctly. (logixoul)&lt;br /&gt;
* can't move panel plasmoids. (logixoul)&lt;br /&gt;
* can't put pager or systray on panel. (logixoul)&lt;br /&gt;
* systray on desktop has no border. (logixoul)&lt;br /&gt;
* MinimizeAnimation doesn't animates correctly to the taskbar, with Kicker it   works fine (Plasma should tell KWin where the taskbar-entry is) (boom1992)&lt;br /&gt;
&lt;br /&gt;
'''System Settings'''&lt;br /&gt;
* systemsettings has no menu entry. Typing it into kickoffs search entry doesn't find/list it either. (mbiebl)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''KMix'''&lt;br /&gt;
* m_qcb-&amp;gt;blockSignals( true ); where m_qcb is null from MDWSlider::updateInternal during kmix startup http://pastebin.ca/759601 (jstubbs) - Fixed by SVN commit [http://websvn.kde.org/?view=rev&amp;amp;revision=732246 732246]&lt;br /&gt;
* Right click on KMix icon in system tray, select master channel, dialog comes up empty, when you close it KMix icon disappears from the tray (JLP)&lt;br /&gt;
&lt;br /&gt;
'''KWin'''&lt;br /&gt;
* Windows are not fully redrawn when minimizing and then restoring with OpenGL compositing in use (jstubbs)&lt;br /&gt;
* the compositing KCM should provide an easy way to enable the COMPOSITE extension (logixoul)&lt;br /&gt;
* Menu shadows are being left on the desktop (but not on windows, it seems) (Mogger) - Fixed by SVN commit [http://websvn.kde.org/?view=rev&amp;amp;revision=732268 732268]&lt;br /&gt;
&lt;br /&gt;
'''KNS'''&lt;br /&gt;
* KNS uses 100% CPU when 550 is enabled in kdebugdialog (jstubbs)&lt;br /&gt;
* Sometimes KNS dialog is under Settings dialog (Kanagram and KStars) modal/non-modal issue when KNS is invoked from a Config dialog (jstubbs)&lt;br /&gt;
&lt;br /&gt;
'''KHangMan'''&lt;br /&gt;
*  After typing an already typed letter, the focus is left on the guess &amp;quot;button&amp;quot;, which means I have to press tab to get back to the letter entry field. If we enable the focus back before tooltip is hidden, it means the tooltip has to be hidden when a new letter is entered. (jstubbs)&lt;br /&gt;
* See if the font progressbar can disappear after first run (jstubbs)&lt;br /&gt;
* Test what happens for the fonts when no internet connection (jstubbs)&lt;br /&gt;
* Wish: when using the Special chars toolbar, letters should go immediatly in the word or in Missed. Annma is not sure this would work with kids, they maybe won't understand what happens. (jstubbs)&lt;br /&gt;
* Language combo in toolbar does not resize correctly when whanging language. (jstubbs)&lt;br /&gt;
* Right-clicking &amp;quot;Type accented letters&amp;quot; does not offer the context sensitive help when the option is disabled. (jstubbs)&lt;br /&gt;
&lt;br /&gt;
'''Kiten'''&lt;br /&gt;
* Searching for &amp;quot;one&amp;quot; takes a long time to process, during which the application blocks without any feedback. (jstubbs)&lt;br /&gt;
* From the Search menu, selecting Search {with Beginning of Word, Anywhere}, Grade or Strokes does not seem to have any affect (jstubbs)&lt;br /&gt;
* Selecting Verb or Noun from the grammatical element dropdown does not seem to have any affect (jstubbs)&lt;br /&gt;
&lt;br /&gt;
'''KBruch'''&lt;br /&gt;
* In fraction tasks, the denominators used sometimes exceed the max denominator that is set. (jstubbs)&lt;br /&gt;
&lt;br /&gt;
'''KPercentage'''&lt;br /&gt;
* When starting a new set of tests, and on various other actions, the window unnecessarily moves to the centre of the screen (jstubbs)&lt;br /&gt;
&lt;br /&gt;
'''KGeography'''&lt;br /&gt;
* Intermittent crash after a placing state on a map (jstubbs)&lt;br /&gt;
* Selecting zoom when placing state on a map leaves the cursor as the state to be placed - perhaps the cursor should change back to a pointer while in zoom mode? (jstubbs)&lt;br /&gt;
* With KWin's dimming of inactive windows, it is difficult to relate the colors signfying right/wrong answers back to the map (jstubbs)&lt;br /&gt;
&lt;br /&gt;
'''KMail'''&lt;br /&gt;
* Creating a new Imap Account and press &amp;quot;Check what the Server Supports&amp;quot; in Security crashes KMail. Stacktrace / ConsoleLog at http://pastebin.ca/759562 (voltaire)&lt;br /&gt;
&lt;br /&gt;
'''Build issue'''&lt;br /&gt;
* in kdebase when OpenGL is not found, cmake stops with&lt;br /&gt;
&amp;quot;CMake Error: This project requires some variables to be set,&lt;br /&gt;
and cmake can not find them.&lt;br /&gt;
Please set the following variables:&lt;br /&gt;
OPENGL_gl_LIBRARY (ADVANCED)&amp;quot;so there is a bad check somewhere in kdebase (annma, issue of frank95com, http://pastebin.ca/759575)&lt;br /&gt;
&lt;br /&gt;
Possible patch: http://pastebin.ca/759603 (annma)&lt;br /&gt;
Other possible patch by ThomasZ: http://pastebin.ca/759605&lt;br /&gt;
&lt;br /&gt;
'''Kolf'''&lt;br /&gt;
* The direction and velocity marker flickers and often cannot be seen. Using opengl compositing. (jstubbs)&lt;br /&gt;
&lt;br /&gt;
'''KDElibs'''&lt;br /&gt;
* The tab order of the configure shortcuts dialog is incorrect. (Mogger)&lt;br /&gt;
* Drag and drop doesn't work in the configure toolbars dialog. (Mogger)&lt;br /&gt;
* Applications crash when downloading something. Traceback from Konsole when clicking on a link: http://rafb.net/p/1aiHyn63.html (Mogger)&lt;br /&gt;
&lt;br /&gt;
'''KGet'''&lt;/div&gt;</summary>
		<author><name>Logixoul</name></author>	</entry>

	<entry>
		<id>http://techbase.kde.org/Contribute/Bugsquad/KrushDays</id>
		<title>Contribute/Bugsquad/KrushDays</title>
		<link rel="alternate" type="text/html" href="http://techbase.kde.org/Contribute/Bugsquad/KrushDays"/>
				<updated>2007-11-03T11:13:27Z</updated>
		
		<summary type="html">&lt;p&gt;Logixoul: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Box|KDE4 Krush Days|Join us Saturdays on irc in the #kde4-krush channel to work out release critical issues for KDE 4.0. Testers, artists, documenters and programmers are all welcome and encouraged to join in on the fun. Issues that are identified and being worked on will be added to this community scratchpad page.}}&lt;br /&gt;
&lt;br /&gt;
irc nick in parenthesis&lt;br /&gt;
&lt;br /&gt;
'''KDM (?)'''&lt;br /&gt;
* unlocking the session is impossible as I get &amp;quot;wrong password&amp;quot; (logixoul)&lt;br /&gt;
* enabling and disabling capslock in the &amp;quot;unlock session&amp;quot; dialog doesn't hide the red &amp;quot;Warning: capslock enabled&amp;quot; label (logixoul)&lt;br /&gt;
&lt;br /&gt;
'''Packaging'''&lt;br /&gt;
* share/icons/oxygen/22x22/actions/kscd-dock.png is installed by both kdebase and kdemultimedia (jstubbs)&lt;br /&gt;
&lt;br /&gt;
'''Konsole'''&lt;br /&gt;
* Try opening tab in konsole, closing it, and opening a new one (for me, it freezes for a minute and then displays &amp;quot;QProcess: Destroyed while process is still running.&amp;quot;) (tagx)&lt;br /&gt;
* Selecting text in the default color scheme gives black-on-black selections (jstubbs)(confirmed by annma)&lt;br /&gt;
* Wish: Could the links be not clickable as an option? it really goes on the way as it makes copy/paste too difficult when a link is present in the copied text (annma)&lt;br /&gt;
* Wish: could we have the Start New Session little icon back pleaaaaase? (annma) &lt;br /&gt;
&lt;br /&gt;
'''Dolphin'''&lt;br /&gt;
* Restoring a deleted item from the trash crashes dolphin/konqueror (mbiebl)&lt;br /&gt;
* The &amp;quot;Desktop&amp;quot; and &amp;quot;Root&amp;quot; icons in dolphin have a completely different style than the usual folder icon. (mbiebl)&lt;br /&gt;
* Dolphin has no proper icon in taskbar/window decoration. (mbiebl)&lt;br /&gt;
* Select icon in folder/file properties doesn't show the icons of the selected categories at first. Only after changing the combobox the icons are loaded. (bbroeksema)&lt;br /&gt;
&lt;br /&gt;
'''Phonon'''&lt;br /&gt;
* Can't get any sound to work. Chosen backend is xine. Tried to play an mp3 in juk. juk says its playing, but I get no sound. (mbiebl)&lt;br /&gt;
&lt;br /&gt;
'''Oxygen'''&lt;br /&gt;
* Missing icons for &amp;quot;Appearance&amp;quot; and &amp;quot;Desktop&amp;quot; in systemsettings. (mbiebl)&lt;br /&gt;
* Visual glitches in Oxygen: tabs in konqui, progressbar in dolphin. (mbiebl)&lt;br /&gt;
* konsole, Oxygen: the arrows of the right scrollbar are not visible (black on black). (mbiebl)&lt;br /&gt;
* Chanel icons in KMix could use some Oxygenification (JLP)&lt;br /&gt;
&lt;br /&gt;
'''Plasma'''&lt;br /&gt;
* Unable to resize the kickoff menu. (mbiebl)&lt;br /&gt;
* The taskbar doesn't remember the position of the clock plasmoid. (mbiebl)&lt;br /&gt;
* Kickoff opens konqueror when clicking on an entry under &amp;quot;My Computer&amp;quot;. (mbiebl)&lt;br /&gt;
* The network plasmoid does not automatically selet the active network connection (It uses eth0 by default, but I use wlan0 mostly) (mbiebl)&lt;br /&gt;
* In kickoff, clicking the utilities menu and then clicking back again shows the top menu scrolled to the top rather than where it was before clicking utilities. (jstubbs)&lt;br /&gt;
* systemtray: starting one juk instance shows two identical icons in the systray.&lt;br /&gt;
* with the plasma toolbox, clicking &amp;quot;add widgets&amp;quot; but releasing the mouse button elsewhere still activates it. (jstubbs)&lt;br /&gt;
* hovering the plasma toolbox for the first time after cleaning config makes buttons slide in from TOP-LEFT rather than TOP-RIGHT. Every subsequent hovering works correctly. (logixoul)&lt;br /&gt;
* can't move panel plasmoids. (logixoul)&lt;br /&gt;
* can't put pager or systray on panel. (logixoul)&lt;br /&gt;
* systray on desktop has no border. (logixoul)&lt;br /&gt;
&lt;br /&gt;
'''System Settings'''&lt;br /&gt;
* systemsettings has no menu entry. Typing it into kickoffs search entry doesn't find/list it either. (mbiebl)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''KMix'''&lt;br /&gt;
* m_qcb-&amp;gt;blockSignals( true ); where m_qcb is null from MDWSlider::updateInternal during kmix startup http://pastebin.ca/759601 (jstubbs) - Fixed by SVN commit [http://websvn.kde.org/?view=rev&amp;amp;revision=732246 732246]&lt;br /&gt;
* Right click on KMix icon in system tray, select master channel, dialog comes up empty, when you close it KMix icon disappears from the tray (JLP)&lt;br /&gt;
&lt;br /&gt;
'''KWin'''&lt;br /&gt;
* Windows are not fully redrawn when minimizing and then restoring with OpenGL compositing in use (jstubbs)&lt;br /&gt;
* the compositing KCM should provide an easy way to enable the COMPOSITE extension (logixoul)&lt;br /&gt;
* Menu shadows are being left on the desktop (but not on windows, it seems) (Mogger)&lt;br /&gt;
&lt;br /&gt;
'''KNS'''&lt;br /&gt;
* KNS uses 100% CPU when 550 is enabled in kdebugdialog (jstubbs)&lt;br /&gt;
* Sometimes KNS dialog is under Settings dialog (Kanagram and KStars) modal/non-modal issue when KNS is invoked from a Config dialog (jstubbs)&lt;br /&gt;
&lt;br /&gt;
'''KHangMan'''&lt;br /&gt;
*  After typing an already typed letter, the focus is left on the guess &amp;quot;button&amp;quot;, which means I have to press tab to get back to the letter entry field. If we enable the focus back before tooltip is hidden, it means the tooltip has to be hidden when a new letter is entered. (jstubbs)&lt;br /&gt;
* See if the font progressbar can disappear after first run (jstubbs)&lt;br /&gt;
* Test what happens for the fonts when no internet connection (jstubbs)&lt;br /&gt;
* Wish: when using the Special chars toolbar, letters should go immediatly in the word or in Missed. Annma is not sure this would work with kids, they maybe won't understand what happens. (jstubbs)&lt;br /&gt;
* Language combo in toolbar does not resize correctly when whanging language. (jstubbs)&lt;br /&gt;
* Right-clicking &amp;quot;Type accented letters&amp;quot; does not offer the context sensitive help when the option is disabled. (jstubbs)&lt;br /&gt;
&lt;br /&gt;
'''Kiten'''&lt;br /&gt;
* Searching for &amp;quot;one&amp;quot; takes a long time to process, during which the application blocks without any feedback. (jstubbs)&lt;br /&gt;
* From the Search menu, selecting Search {with Beginning of Word, Anywhere}, Grade or Strokes does not seem to have any affect (jstubbs)&lt;br /&gt;
* Selecting Verb or Noun from the grammatical element dropdown does not seem to have any affect (jstubbs)&lt;br /&gt;
&lt;br /&gt;
'''KBruch'''&lt;br /&gt;
* In fraction tasks, the denominators used sometimes exceed the max denominator that is set. (jstubbs)&lt;br /&gt;
&lt;br /&gt;
'''KPercentage'''&lt;br /&gt;
* When starting a new set of tests, and on various other actions, the window unnecessarily moves to the centre of the screen (jstubbs)&lt;br /&gt;
&lt;br /&gt;
'''KGeography'''&lt;br /&gt;
* Intermittent crash after a placing state on a map (jstubbs)&lt;br /&gt;
* Selecting zoom when placing state on a map leaves the cursor as the state to be placed - perhaps the cursor should change back to a pointer while in zoom mode? (jstubbs)&lt;br /&gt;
* With KWin's dimming of inactive windows, it is difficult to relate the colors signfying right/wrong answers back to the map (jstubbs)&lt;br /&gt;
&lt;br /&gt;
'''KMail'''&lt;br /&gt;
* Creating a new Imap Account and press &amp;quot;Check what the Server Supports&amp;quot; in Security crashes KMail. Stacktrace / ConsoleLog at http://pastebin.ca/759562 (voltaire)&lt;br /&gt;
&lt;br /&gt;
'''Build issue'''&lt;br /&gt;
* in kdebase when OpenGL is not found, cmake stops with&lt;br /&gt;
&amp;quot;CMake Error: This project requires some variables to be set,&lt;br /&gt;
and cmake can not find them.&lt;br /&gt;
Please set the following variables:&lt;br /&gt;
OPENGL_gl_LIBRARY (ADVANCED)&amp;quot;so there is a bad check somewhere in kdebase (annma, issue of frank95com, http://pastebin.ca/759575)&lt;br /&gt;
&lt;br /&gt;
Possible patch: http://pastebin.ca/759603 (annma)&lt;br /&gt;
Other possible patch by ThomasZ: http://pastebin.ca/759605&lt;br /&gt;
&lt;br /&gt;
'''Kolf'''&lt;br /&gt;
* The direction and velocity marker flickers and often cannot be seen. Using opengl compositing. (jstubbs)&lt;/div&gt;</summary>
		<author><name>Logixoul</name></author>	</entry>

	<entry>
		<id>http://techbase.kde.org/Contribute/Bugsquad/KrushDays</id>
		<title>Contribute/Bugsquad/KrushDays</title>
		<link rel="alternate" type="text/html" href="http://techbase.kde.org/Contribute/Bugsquad/KrushDays"/>
				<updated>2007-11-03T11:01:32Z</updated>
		
		<summary type="html">&lt;p&gt;Logixoul: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Box|KDE4 Krush Days|Join us Saturdays on irc in the #kde4-krush channel to work out release critical issues for KDE 4.0. Testers, artists, documenters and programmers are all welcome and encouraged to join in on the fun. Issues that are identified and being worked on will be added to this community scratchpad page.}}&lt;br /&gt;
&lt;br /&gt;
irc nick in parenthesis&lt;br /&gt;
&lt;br /&gt;
'''Packaging'''&lt;br /&gt;
* share/icons/oxygen/22x22/actions/kscd-dock.png is installed by both kdebase and kdemultimedia (jstubbs)&lt;br /&gt;
&lt;br /&gt;
'''Konsole'''&lt;br /&gt;
* Try opening tab in konsole, closing it, and opening a new one (for me, it freezes for a minute and then displays &amp;quot;QProcess: Destroyed while process is still running.&amp;quot;) (tagx)&lt;br /&gt;
* Selecting text in the default color scheme gives black-on-black selections (jstubbs)(confirmed by annma)&lt;br /&gt;
* Wish: Could the links be not clickable as an option? it really goes on the way as it makes copy/paste too difficult when a link is present in the copied text (annma)&lt;br /&gt;
* Wish: could we have the Start New Session little icon back pleaaaaase? (annma) &lt;br /&gt;
&lt;br /&gt;
'''Dolphin'''&lt;br /&gt;
* Restoring a deleted item from the trash crashes dolphin/konqueror (mbiebl)&lt;br /&gt;
* The &amp;quot;Desktop&amp;quot; and &amp;quot;Root&amp;quot; icons in dolphin have a completely different style than the usual folder icon. (mbiebl)&lt;br /&gt;
* Dolphin has no proper icon in taskbar/window decoration. (mbiebl)&lt;br /&gt;
* Select icon in folder/file properties doesn't show the icons of the selected categories at first. Only after changing the combobox the icons are loaded. (bbroeksema)&lt;br /&gt;
&lt;br /&gt;
'''Phonon'''&lt;br /&gt;
* Can't get any sound to work. Chosen backend is xine. Tried to play an mp3 in juk. juk says its playing, but I get no sound. (mbiebl)&lt;br /&gt;
&lt;br /&gt;
'''Oxygen'''&lt;br /&gt;
* Missing icons for &amp;quot;Appearance&amp;quot; and &amp;quot;Desktop&amp;quot; in systemsettings. (mbiebl)&lt;br /&gt;
* Visual glitches in Oxygen: tabs in konqui, progressbar in dolphin. (mbiebl)&lt;br /&gt;
* konsole, Oxygen: the arrows of the right scrollbar are not visible (black on black). (mbiebl)&lt;br /&gt;
&lt;br /&gt;
'''Plasma'''&lt;br /&gt;
* Unable to resize the kickoff menu. (mbiebl)&lt;br /&gt;
* The taskbar doesn't remember the position of the clock plasmoid. (mbiebl)&lt;br /&gt;
* Kickoff opens konqueror when clicking on an entry under &amp;quot;My Computer&amp;quot;. (mbiebl)&lt;br /&gt;
* The network plasmoid does not automatically selet the active network connection (It uses eth0 by default, but I use wlan0 mostly) (mbiebl)&lt;br /&gt;
* In kickoff, clicking the utilities menu and then clicking back again shows the top menu scrolled to the top rather than where it was before clicking utilities. (jstubbs)&lt;br /&gt;
* systemtray: starting one juk instance shows two identical icons in the systray.&lt;br /&gt;
* with the plasma toolbox, clicking &amp;quot;add widgets&amp;quot; but releasing the mouse button elsewhere still activates it. (jstubbs)&lt;br /&gt;
* hovering the plasma toolbox for the first time after cleaning config makes buttons slide in from TOP-LEFT rather than TOP-RIGHT. Every subsequent hovering works correctly. (logixoul)&lt;br /&gt;
* can't move panel plasmoids. (logixoul)&lt;br /&gt;
* can't put pager or systray on panel. (logixoul)&lt;br /&gt;
* systray on desktop has no border. (logixoul)&lt;br /&gt;
&lt;br /&gt;
'''System Settings'''&lt;br /&gt;
* systemsettings has no menu entry. Typing it into kickoffs search entry doesn't find/list it either. (mbiebl)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''KMix'''&lt;br /&gt;
* m_qcb-&amp;gt;blockSignals( true ); where m_qcb is null from MDWSlider::updateInternal during kmix startup http://pastebin.ca/759601 (jstubbs) - Fixed by SVN commit [http://websvn.kde.org/?view=rev&amp;amp;revision=732246 732246]&lt;br /&gt;
* Right click on KMix icon in system tray, select master channel, dialog comes up empty, when you close it KMix icon disappears from the tray (JLP)&lt;br /&gt;
&lt;br /&gt;
'''KWin'''&lt;br /&gt;
* Windows are not fully redrawn when minimizing and then restoring with OpenGL compositing in use (jstubbs)&lt;br /&gt;
* the compositing KCM should provide an easy way to enable the COMPOSITE extension (logixoul)&lt;br /&gt;
&lt;br /&gt;
'''KNS'''&lt;br /&gt;
* KNS uses 100% CPU when 550 is enabled in kdebugdialog (jstubbs)&lt;br /&gt;
* Sometimes KNS dialog is under Settings dialog (Kanagram and KStars) modal/non-modal issue when KNS is invoked from a Config dialog (jstubbs)&lt;br /&gt;
&lt;br /&gt;
'''KHangMan'''&lt;br /&gt;
*  After typing an already typed letter, the focus is left on the guess &amp;quot;button&amp;quot;, which means I have to press tab to get back to the letter entry field. If we enable the focus back before tooltip is hidden, it means the tooltip has to be hidden when a new letter is entered. (jstubbs)&lt;br /&gt;
* See if the font progressbar can disappear after first run (jstubbs)&lt;br /&gt;
* Test what happens for the fonts when no internet connection (jstubbs)&lt;br /&gt;
* Wish: when using the Special chars toolbar, letters should go immediatly in the word or in Missed. Annma is not sure this would work with kids, they maybe won't understand what happens. (jstubbs)&lt;br /&gt;
* Language combo in toolbar does not resize correctly when whanging language. (jstubbs)&lt;br /&gt;
* Right-clicking &amp;quot;Type accented letters&amp;quot; does not offer the context sensitive help when the option is disabled. (jstubbs)&lt;br /&gt;
&lt;br /&gt;
'''Kiten'''&lt;br /&gt;
* Searching for &amp;quot;one&amp;quot; takes a long time to process, during which the application blocks without any feedback. (jstubbs)&lt;br /&gt;
* From the Search menu, selecting Search {with Beginning of Word, Anywhere}, Grade or Strokes does not seem to have any affect (jstubbs)&lt;br /&gt;
* Selecting Verb or Noun from the grammatical element dropdown does not seem to have any affect (jstubbs)&lt;br /&gt;
&lt;br /&gt;
'''KBruch'''&lt;br /&gt;
* In fraction tasks, the denominators used sometimes exceed the max denominator that is set. (jstubbs)&lt;br /&gt;
&lt;br /&gt;
'''KPercentage'''&lt;br /&gt;
* When starting a new set of tests, and on various other actions, the window unnecessarily moves to the centre of the screen (jstubbs)&lt;br /&gt;
&lt;br /&gt;
'''KGeography'''&lt;br /&gt;
* Intermittent crash after a placing state on a map (jstubbs)&lt;br /&gt;
* Selecting zoom when placing state on a map leaves the cursor as the state to be placed - perhaps the cursor should change back to a pointer while in zoom mode? (jstubbs)&lt;br /&gt;
* With KWin's dimming of inactive windows, it is difficult to relate the colors signfying right/wrong answers back to the map (jstubbs)&lt;br /&gt;
&lt;br /&gt;
'''KMail'''&lt;br /&gt;
* Creating a new Imap Account and press &amp;quot;Check what the Server Supports&amp;quot; in Security crashes KMail. Stacktrace / ConsoleLog at http://pastebin.ca/759562 (voltaire)&lt;br /&gt;
&lt;br /&gt;
'''Build issue'''&lt;br /&gt;
* in kdebase when OpenGL is not found, cmake stops with&lt;br /&gt;
&amp;quot;CMake Error: This project requires some variables to be set,&lt;br /&gt;
and cmake can not find them.&lt;br /&gt;
Please set the following variables:&lt;br /&gt;
OPENGL_gl_LIBRARY (ADVANCED)&amp;quot;so there is a bad check somewhere in kdebase (annma, issue of frank95com, http://pastebin.ca/759575)&lt;br /&gt;
&lt;br /&gt;
Possible patch: http://pastebin.ca/759603 (annma)&lt;br /&gt;
Other possible patch by ThomasZ: http://pastebin.ca/759605&lt;br /&gt;
&lt;br /&gt;
'''Kolf'''&lt;br /&gt;
* The direction and velocity marker flickers and often cannot be seen. Using opengl compositing. (jstubbs)&lt;/div&gt;</summary>
		<author><name>Logixoul</name></author>	</entry>

	<entry>
		<id>http://techbase.kde.org/Contribute/Bugsquad/KrushDays</id>
		<title>Contribute/Bugsquad/KrushDays</title>
		<link rel="alternate" type="text/html" href="http://techbase.kde.org/Contribute/Bugsquad/KrushDays"/>
				<updated>2007-11-03T10:49:55Z</updated>
		
		<summary type="html">&lt;p&gt;Logixoul: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Box|KDE4 Krush Days|Join us Saturdays on irc in the #kde4-krush channel to work out release critical issues for KDE 4.0. Testers, artists, documenters and programmers are all welcome and encouraged to join in on the fun. Issues that are identified and being worked on will be added to this community scratchpad page.}}&lt;br /&gt;
&lt;br /&gt;
irc nick in parenthesis&lt;br /&gt;
&lt;br /&gt;
'''Packaging'''&lt;br /&gt;
* share/icons/oxygen/22x22/actions/kscd-dock.png is installed by both kdebase and kdemultimedia (jstubbs)&lt;br /&gt;
&lt;br /&gt;
'''Konsole'''&lt;br /&gt;
* Try opening tab in konsole, closing it, and opening a new one (for me, it freezes for a minute and then displays &amp;quot;QProcess: Destroyed while process is still running.&amp;quot;) (tagx)&lt;br /&gt;
* Selecting text in the default color scheme gives black-on-black selections (jstubbs)(confirmed by annma)&lt;br /&gt;
* Wish: Could the links be not clickable as an option? it really goes on the way as it makes copy/paste too difficult when a link is present in the copied text (annma)&lt;br /&gt;
* Wish: could we have the Start New Session little icon back pleaaaaase? (annma) &lt;br /&gt;
&lt;br /&gt;
'''Dolphin'''&lt;br /&gt;
* Restoring a deleted item from the trash crashes dolphin/konqueror (mbiebl)&lt;br /&gt;
* The &amp;quot;Desktop&amp;quot; and &amp;quot;Root&amp;quot; icons in dolphin have a completely different style than the usual folder icon. (mbiebl)&lt;br /&gt;
* Dolphin has no proper icon in taskbar/window decoration. (mbiebl)&lt;br /&gt;
* Select icon in folder/file properties doesn't show the icons of the selected categories at first. Only after changing the combobox the icons are loaded. (bbroeksema)&lt;br /&gt;
&lt;br /&gt;
'''Phonon'''&lt;br /&gt;
* Can't get any sound to work. Chosen backend is xine. Tried to play an mp3 in juk. juk says its playing, but I get no sound. (mbiebl)&lt;br /&gt;
&lt;br /&gt;
'''Oxygen'''&lt;br /&gt;
* Visual glitches in Oxygen: tabs in konqui, progressbar in dolphin. (mbiebl)&lt;br /&gt;
* konsole, Oxygen: the arrows of the right scrollbar are not visible (black on black). (mbiebl)&lt;br /&gt;
&lt;br /&gt;
'''Plasma'''&lt;br /&gt;
* Unable to resize the kickoff menu. (mbiebl)&lt;br /&gt;
* The taskbar doesn't remember the position of the clock plasmoid. (mbiebl)&lt;br /&gt;
* Kickoff opens konqueror when clicking on an entry under &amp;quot;My Computer&amp;quot;. (mbiebl)&lt;br /&gt;
* The network plasmoid does not automatically selet the active network connection (It uses eth0 by default, but I use wlan0 mostly) (mbiebl)&lt;br /&gt;
* In kickoff, clicking the utilities menu and then clicking back again shows the top menu scrolled to the top rather than where it was before clicking utilities. (jstubbs)&lt;br /&gt;
* systemtray: starting one juk instance shows two identical icons in the systray.&lt;br /&gt;
* with the plasma toolbox, clicking &amp;quot;add widgets&amp;quot; but releasing the mouse button elsewhere still activates it. (jstubbs)&lt;br /&gt;
* hovering the plasma toolbox for the first time after cleaning config makes buttons slide in from TOP-LEFT rather than TOP-RIGHT. Every subsequent hovering works correctly. (logixoul)&lt;br /&gt;
* can't move panel plasmoids. (logixoul)&lt;br /&gt;
* can't put pager or systray on panel. (logixoul)&lt;br /&gt;
* systray on desktop has no border. (logixoul)&lt;br /&gt;
&lt;br /&gt;
'''System Settings'''&lt;br /&gt;
* Missing icons for &amp;quot;Appearance&amp;quot; and &amp;quot;Desktop&amp;quot; in systemsettings. (mbiebl)&lt;br /&gt;
* systemsettings has no menu entry. Typing it into kickoffs search entry doesn't find/list it either. (mbiebl)&lt;br /&gt;
&lt;br /&gt;
'''KMix'''&lt;br /&gt;
* m_qcb-&amp;gt;blockSignals( true ); where m_qcb is null from MDWSlider::updateInternal during kmix startup http://pastebin.ca/759601 (jstubbs) - Fixed by SVN commit [http://websvn.kde.org/?view=rev&amp;amp;revision=732246 732246]&lt;br /&gt;
* Right click on KMix icon in system tray, select master channel, dialog comes up empty, when you close it KMix icon disappears from the tray (JLP)&lt;br /&gt;
&lt;br /&gt;
'''KWin'''&lt;br /&gt;
* Windows are not fully redrawn when minimizing and then restoring with OpenGL compositing in use (jstubbs)&lt;br /&gt;
&lt;br /&gt;
'''KNS'''&lt;br /&gt;
* KNS uses 100% CPU when 550 is enabled in kdebugdialog (jstubbs)&lt;br /&gt;
* Sometimes KNS dialog is under Settings dialog (Kanagram and KStars) modal/non-modal issue when KNS is invoked from a Config dialog (jstubbs)&lt;br /&gt;
&lt;br /&gt;
'''KHangMan'''&lt;br /&gt;
*  After typing an already typed letter, the focus is left on the guess &amp;quot;button&amp;quot;, which means I have to press tab to get back to the letter entry field. If we enable the focus back before tooltip is hidden, it means the tooltip has to be hidden when a new letter is entered. (jstubbs)&lt;br /&gt;
* See if the font progressbar can disappear after first run (jstubbs)&lt;br /&gt;
* Test what happens for the fonts when no internet connection (jstubbs)&lt;br /&gt;
* Wish: when using the Special chars toolbar, letters should go immediatly in the word or in Missed. Annma is not sure this would work with kids, they maybe won't understand what happens. (jstubbs)&lt;br /&gt;
* Language combo in toolbar does not resize correctly when whanging language. (jstubbs)&lt;br /&gt;
* Right-clicking &amp;quot;Type accented letters&amp;quot; does not offer the context sensitive help when the option is disabled. (jstubbs)&lt;br /&gt;
&lt;br /&gt;
'''Kiten'''&lt;br /&gt;
* Searching for &amp;quot;one&amp;quot; takes a long time to process, during which the application blocks without any feedback. (jstubbs)&lt;br /&gt;
* From the Search menu, selecting Search {with Beginning of Word, Anywhere}, Grade or Strokes does not seem to have any affect (jstubbs)&lt;br /&gt;
* Selecting Verb or Noun from the grammatical element dropdown does not seem to have any affect (jstubbs)&lt;br /&gt;
&lt;br /&gt;
'''KBruch'''&lt;br /&gt;
* In fraction tasks, the denominators used sometimes exceed the max denominator that is set. (jstubbs)&lt;br /&gt;
&lt;br /&gt;
'''KPercentage'''&lt;br /&gt;
* When starting a new set of tests, and on various other actions, the window unnecessarily moves to the centre of the screen (jstubbs)&lt;br /&gt;
&lt;br /&gt;
'''KGeography'''&lt;br /&gt;
* Intermittent crash after a placing state on a map (jstubbs)&lt;br /&gt;
* Selecting zoom when placing state on a map leaves the cursor as the state to be placed - perhaps the cursor should change back to a pointer while in zoom mode? (jstubbs)&lt;br /&gt;
* With KWin's dimming of inactive windows, it is difficult to relate the colors signfying right/wrong answers back to the map (jstubbs)&lt;br /&gt;
&lt;br /&gt;
'''KMail'''&lt;br /&gt;
* Creating a new Imap Account and press &amp;quot;Check what the Server Supports&amp;quot; in Security crashes KMail. Stacktrace / ConsoleLog at http://pastebin.ca/759562 (voltaire)&lt;br /&gt;
&lt;br /&gt;
'''Build issue'''&lt;br /&gt;
* in kdebase when OpenGL is not found, cmake stops with&lt;br /&gt;
&amp;quot;CMake Error: This project requires some variables to be set,&lt;br /&gt;
and cmake can not find them.&lt;br /&gt;
Please set the following variables:&lt;br /&gt;
OPENGL_gl_LIBRARY (ADVANCED)&amp;quot;so there is a bad check somewhere in kdebase (annma, issue of frank95com, http://pastebin.ca/759575)&lt;br /&gt;
&lt;br /&gt;
Possible patch: http://pastebin.ca/759603 (annma)&lt;br /&gt;
Other possible patch by ThomasZ: http://pastebin.ca/759605&lt;br /&gt;
&lt;br /&gt;
'''Kolf'''&lt;br /&gt;
* The direction and velocity marker flickers and often cannot be seen. Using opengl compositing. (jstubbs)&lt;/div&gt;</summary>
		<author><name>Logixoul</name></author>	</entry>

	<entry>
		<id>http://techbase.kde.org/Contribute/Bugsquad/KrushDays</id>
		<title>Contribute/Bugsquad/KrushDays</title>
		<link rel="alternate" type="text/html" href="http://techbase.kde.org/Contribute/Bugsquad/KrushDays"/>
				<updated>2007-11-03T10:41:05Z</updated>
		
		<summary type="html">&lt;p&gt;Logixoul: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Box|KDE4 Krush Days|Join us Saturdays on irc in the #kde4-krush channel to work out release critical issues for KDE 4.0. Testers, artists, documenters and programmers are all welcome and encouraged to join in on the fun. Issues that are identified and being worked on will be added to this community scratchpad page.}}&lt;br /&gt;
&lt;br /&gt;
irc nick in parenthesis&lt;br /&gt;
&lt;br /&gt;
'''Packaging'''&lt;br /&gt;
* share/icons/oxygen/22x22/actions/kscd-dock.png is installed by both kdebase and kdemultimedia (jstubbs)&lt;br /&gt;
&lt;br /&gt;
'''Konsole'''&lt;br /&gt;
* Try opening tab in konsole, closing it, and opening a new one (for me, it freezes for a minute and then displays &amp;quot;QProcess: Destroyed while process is still running.&amp;quot;) (tagx)&lt;br /&gt;
* Selecting text in the default color scheme gives black-on-black selections (jstubbs)(confirmed by annma)&lt;br /&gt;
* Wish: Could the links be not clickable as an option? it really goes on the way as it makes copy/paste too difficult when a link is present in the copied text (annma)&lt;br /&gt;
* Wish: could we have the Start New Session little icon back pleaaaaase? (annma) &lt;br /&gt;
&lt;br /&gt;
'''Dolphin'''&lt;br /&gt;
* Restoring a deleted item from the trash crashes dolphin/konqueror (mbiebl)&lt;br /&gt;
* The &amp;quot;Desktop&amp;quot; and &amp;quot;Root&amp;quot; icons in dolphin have a completely different style than the usual folder icon. (mbiebl)&lt;br /&gt;
* Dolphin has no proper icon in taskbar/window decoration. (mbiebl)&lt;br /&gt;
* Select icon in folder/file properties doesn't show the icons of the selected categories at first. Only after changing the combobox the icons are loaded. (bbroeksema)&lt;br /&gt;
&lt;br /&gt;
'''Phonon'''&lt;br /&gt;
* Can't get any sound to work. Chosen backend is xine. Tried to play an mp3 in juk. juk says its playing, but I get no sound. (mbiebl)&lt;br /&gt;
&lt;br /&gt;
'''Oxygen'''&lt;br /&gt;
* Visual glitches in Oxygen: tabs in konqui, progressbar in dolphin. (mbiebl)&lt;br /&gt;
* konsole, Oxygen: the arrows of the right scrollbar are not visible (black on black). (mbiebl)&lt;br /&gt;
&lt;br /&gt;
'''Plasma'''&lt;br /&gt;
* Unable to resize the kickoff menu. (mbiebl)&lt;br /&gt;
* The taskbar doesn't remember the position of the clock plasmoid. (mbiebl)&lt;br /&gt;
* Kickoff opens konqueror when clicking on an entry under &amp;quot;My Computer&amp;quot;. (mbiebl)&lt;br /&gt;
* The network plasmoid does not automatically selet the active network connection (It uses eth0 by default, but I use wlan0 mostly) (mbiebl)&lt;br /&gt;
* In kickoff, clicking the utilities menu and then clicking back again shows the top menu scrolled to the top rather than where it was before clicking utilities. (jstubbs)&lt;br /&gt;
* systemtray: starting one juk instance shows two identical icons in the systray.&lt;br /&gt;
* with the plasma toolbox, clicking &amp;quot;add widgets&amp;quot; but releasing the mouse button elsewhere still activates it. (jstubbs)&lt;br /&gt;
* hovering the plasma toolbox for the first time after cleaning config makes buttons slide in from TOP-LEFT rather than TOP-RIGHT. Every subsequent hovering works correctly. (logixoul)&lt;br /&gt;
&lt;br /&gt;
'''System Settings'''&lt;br /&gt;
* Missing icons for &amp;quot;Appearance&amp;quot; and &amp;quot;Desktop&amp;quot; in systemsettings. (mbiebl)&lt;br /&gt;
* systemsettings has no menu entry. Typing it into kickoffs search entry doesn't find/list it either. (mbiebl)&lt;br /&gt;
&lt;br /&gt;
'''KMix'''&lt;br /&gt;
* m_qcb-&amp;gt;blockSignals( true ); where m_qcb is null from MDWSlider::updateInternal during kmix startup http://pastebin.ca/759601 (jstubbs) - Fixed by SVN commit [http://websvn.kde.org/?view=rev&amp;amp;revision=732246 732246]&lt;br /&gt;
* Right click on KMix icon in system tray, select master channel, dialog comes up empty, when you close it KMix icon disappears from the tray (JLP)&lt;br /&gt;
&lt;br /&gt;
'''KWin'''&lt;br /&gt;
* Windows are not fully redrawn when minimizing and then restoring with OpenGL compositing in use (jstubbs)&lt;br /&gt;
&lt;br /&gt;
'''KNS'''&lt;br /&gt;
* KNS uses 100% CPU when 550 is enabled in kdebugdialog (jstubbs)&lt;br /&gt;
* Sometimes KNS dialog is under Settings dialog (Kanagram and KStars) modal/non-modal issue when KNS is invoked from a Config dialog (jstubbs)&lt;br /&gt;
&lt;br /&gt;
'''KHangMan'''&lt;br /&gt;
*  After typing an already typed letter, the focus is left on the guess &amp;quot;button&amp;quot;, which means I have to press tab to get back to the letter entry field. If we enable the focus back before tooltip is hidden, it means the tooltip has to be hidden when a new letter is entered. (jstubbs)&lt;br /&gt;
* See if the font progressbar can disappear after first run (jstubbs)&lt;br /&gt;
* Test what happens for the fonts when no internet connection (jstubbs)&lt;br /&gt;
* Wish: when using the Special chars toolbar, letters should go immediatly in the word or in Missed. Annma is not sure this would work with kids, they maybe won't understand what happens. (jstubbs)&lt;br /&gt;
* Language combo in toolbar does not resize correctly when whanging language. (jstubbs)&lt;br /&gt;
* Right-clicking &amp;quot;Type accented letters&amp;quot; does not offer the context sensitive help when the option is disabled. (jstubbs)&lt;br /&gt;
&lt;br /&gt;
'''Kiten'''&lt;br /&gt;
* Searching for &amp;quot;one&amp;quot; takes a long time to process, during which the application blocks without any feedback. (jstubbs)&lt;br /&gt;
* From the Search menu, selecting Search {with Beginning of Word, Anywhere}, Grade or Strokes does not seem to have any affect (jstubbs)&lt;br /&gt;
* Selecting Verb or Noun from the grammatical element dropdown does not seem to have any affect (jstubbs)&lt;br /&gt;
&lt;br /&gt;
'''KBruch'''&lt;br /&gt;
* In fraction tasks, the denominators used sometimes exceed the max denominator that is set. (jstubbs)&lt;br /&gt;
&lt;br /&gt;
'''KPercentage'''&lt;br /&gt;
* When starting a new set of tests, and on various other actions, the window unnecessarily moves to the centre of the screen (jstubbs)&lt;br /&gt;
&lt;br /&gt;
'''KGeography'''&lt;br /&gt;
* Intermittent crash after a placing state on a map (jstubbs)&lt;br /&gt;
* Selecting zoom when placing state on a map leaves the cursor as the state to be placed - perhaps the cursor should change back to a pointer while in zoom mode? (jstubbs)&lt;br /&gt;
* With KWin's dimming of inactive windows, it is difficult to relate the colors signfying right/wrong answers back to the map (jstubbs)&lt;br /&gt;
&lt;br /&gt;
'''KMail'''&lt;br /&gt;
* Creating a new Imap Account and press &amp;quot;Check what the Server Supports&amp;quot; in Security crashes KMail. Stacktrace / ConsoleLog at http://pastebin.ca/759562 (voltaire)&lt;br /&gt;
&lt;br /&gt;
'''Build issue'''&lt;br /&gt;
* in kdebase when OpenGL is not found, cmake stops with&lt;br /&gt;
&amp;quot;CMake Error: This project requires some variables to be set,&lt;br /&gt;
and cmake can not find them.&lt;br /&gt;
Please set the following variables:&lt;br /&gt;
OPENGL_gl_LIBRARY (ADVANCED)&amp;quot;so there is a bad check somewhere in kdebase (annma, issue of frank95com, http://pastebin.ca/759575)&lt;br /&gt;
&lt;br /&gt;
Possible patch: http://pastebin.ca/759603 (annma)&lt;br /&gt;
Other possible patch by ThomasZ: http://pastebin.ca/759605&lt;br /&gt;
&lt;br /&gt;
'''Kolf'''&lt;br /&gt;
* The direction and velocity marker flickers and often cannot be seen. Using opengl compositing. (jstubbs)&lt;/div&gt;</summary>
		<author><name>Logixoul</name></author>	</entry>

	<entry>
		<id>http://techbase.kde.org/KDE_System_Administration/KDE_Filesystem_Hierarchy</id>
		<title>KDE System Administration/KDE Filesystem Hierarchy</title>
		<link rel="alternate" type="text/html" href="http://techbase.kde.org/KDE_System_Administration/KDE_Filesystem_Hierarchy"/>
				<updated>2007-09-09T21:55:27Z</updated>
		
		<summary type="html">&lt;p&gt;Logixoul: KDE System Administration/Filesystem Hierarchy moved to KDE System Administration/KDE Filesystem Hierarchy over redirect: name conflicts with &amp;quot;XDG Filesystem Hierarchy&amp;quot; so...&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction ==&lt;br /&gt;
KDE defines a filesystem hierarchy that is used by the KDE environment&lt;br /&gt;
itself as well as all KDE applications. In general, KDE stores all its&lt;br /&gt;
files in a fixed directory tree.&lt;br /&gt;
&lt;br /&gt;
By default, there are two such directory trees: one at the system&lt;br /&gt;
level and one at the user level in the user's home directory. However,&lt;br /&gt;
as a system administrator you can create additional trees.&lt;br /&gt;
&lt;br /&gt;
KDE and KDE applications look up files by scanning the directory trees&lt;br /&gt;
in order of precedence. When a file is&lt;br /&gt;
present in multiple directory trees, the file from the first-listed&lt;br /&gt;
tree takes precedence.&lt;br /&gt;
Normally, the tree located in the user's home directory has the highest&lt;br /&gt;
precedence. This is also the directory tree that changes are&lt;br /&gt;
written to.&lt;br /&gt;
&lt;br /&gt;
For configuration files, the story is slightly&lt;br /&gt;
different. If multiple configuration files with the same name are found in the directory&lt;br /&gt;
trees, their content is combined. The precedence order&lt;br /&gt;
of the directory trees plays a role here: when two files define the same&lt;br /&gt;
configuration key, the file with the highest precedence determines which&lt;br /&gt;
value is used for the key.&lt;br /&gt;
&lt;br /&gt;
== Location of the Directory Trees ==&lt;br /&gt;
&lt;br /&gt;
The location of the KDE Directory Trees is determined by a number of&lt;br /&gt;
environment variables, each of which is covered below.&lt;br /&gt;
&lt;br /&gt;
=== KDEHOME ===&lt;br /&gt;
The &amp;lt;tt&amp;gt;KDEHOME&amp;lt;/tt&amp;gt; environment variable determines the location of the user-level&lt;br /&gt;
directory tree and is used by KDE applications for creating and saving&lt;br /&gt;
files. This directory tree has the highest precedence; files or settings&lt;br /&gt;
found in this directory tree will take precedence over any files or settings&lt;br /&gt;
found in other directory trees.&lt;br /&gt;
&lt;br /&gt;
This directory tree is, as the name suggests, normally located in the user's home directory. If this environment variable is not defined, the default location &amp;lt;tt&amp;gt;$HOME/.kde&amp;lt;/tt&amp;gt; is used.&lt;br /&gt;
&lt;br /&gt;
If the environment variable has a value that starts with a tilde (~), the tilde is replaced with the user's home directory at runtime. In order to use this, care must be taken to add proper quoting, otherwise the shell might do the expansion, resulting in undesired behavior in combination with &amp;lt;tt&amp;gt;su&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== KDEROOTHOME ===&lt;br /&gt;
In order to prevent problems with applications that run as root saving&lt;br /&gt;
files with root access permissions in the user's home directory, the &amp;lt;tt&amp;gt;KDEROOTHOME&amp;lt;/tt&amp;gt;&lt;br /&gt;
environment variable has been introduced in the KDE 3.x series. Applications&lt;br /&gt;
that run with uid 0 (root) will use this variable to determine the location of&lt;br /&gt;
the user level directory and where to save their files. If this variable is&lt;br /&gt;
not defined, the root user's home directory is looked up in the password&lt;br /&gt;
file and .kde is appended. Usually that results in &amp;lt;tt&amp;gt;/root/.kde&amp;lt;/tt&amp;gt; .&lt;br /&gt;
&lt;br /&gt;
=== KDEDIRS ===&lt;br /&gt;
It is possible to specify multiple system-level directory trees. This allows groups of users to each dedicate a directory to their group. Such an additional directory tree can contain additional applications, specialized application resources or a specific set of default configurations suitable for the group. Specifying default configurations this way instead of using a /etc/skel construction has the advantage that changes in the default configuration can be made after the user's account has been created.&lt;br /&gt;
&lt;br /&gt;
The directories in $KDEDIRS should be separated with a colon (:). The directories are listed in order of precedence: the first directory has the highest precedence, the last one has the lowest precedence.&lt;br /&gt;
&lt;br /&gt;
Since a group-level directory tree should normally override any settings present at the system level, one should list the group-level directory tree before the system level directory tree.&lt;br /&gt;
&lt;br /&gt;
In general communication, references to the directory trees are made in&lt;br /&gt;
terms of $KDEHOME to indicate the applicable user-level directory tree,&lt;br /&gt;
and in terms of $KDEDIRS to indicate any of the system-level directory trees.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
A staff member at a university could have the following settings:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
KDEHOME='~/.kde3'&lt;br /&gt;
KDEROOTHOME='/root/.kde3'&lt;br /&gt;
KDEDIRS='/opt/kde_staff:/opt/kde3'&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In this example the user settings are saved under the .kde3 directory&lt;br /&gt;
in the user's home directory. Applications that run as root will save their&lt;br /&gt;
settings to /root/.kde3 . KDE 3 has been installed to /opt/kde3 but there is&lt;br /&gt;
also an additional directory tree located at /opt/kde_staff . Configuration&lt;br /&gt;
files under that directory will take precedence over the ones in the /opt/kde3&lt;br /&gt;
system directories. /opt/kde-staff could contain additional applications that&lt;br /&gt;
should only be available to staff members.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Directory Tree ==&lt;br /&gt;
&lt;br /&gt;
Each directory tree used by KDE has a fixed directory structure. However, directories&lt;br /&gt;
that are not relevant for a certain tree can be left out. For example,&lt;br /&gt;
directories used for temporary files are usually only found under $KDEHOME but&lt;br /&gt;
not in any other directory tree.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The KDE runtime environment combines the subdirectories found under the&lt;br /&gt;
various directory trees and refers to them as a single KDE resource. The&lt;br /&gt;
KDE resource name is listed in the tables below.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
There are three broad categories: files that are&lt;br /&gt;
CPU/architecture-specific, files that are host-specific and files that are not specific with&lt;br /&gt;
regard to host, CPU or architecture.&lt;br /&gt;
&lt;br /&gt;
CPU/architecture-specific directories:&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
! Directory !! KDE&amp;amp;nbsp;resource !! Description&lt;br /&gt;
|-&lt;br /&gt;
| {{path|bin/}} || exe || Used for KDE executables.&lt;br /&gt;
|-&lt;br /&gt;
| {{path|cgi-bin/}} || cgi || CGI scipts that can be used by the KDE Help Center.&lt;br /&gt;
|-&lt;br /&gt;
| {{path|lib/}} || lib || Used for KDE libraries.&lt;br /&gt;
|-&lt;br /&gt;
| {{path|lib/kde3/}} || module || This directory contains components, plugins and other runtime loadable objects for use by KDE 3.x applications.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The following are host-specific directories. They are only available under&lt;br /&gt;
$KDEHOME and are normally symlinked to locations outside the $KDEHOME&lt;br /&gt;
directory tree.&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
! Directory !! KDE&amp;amp;nbsp;resource !! Description&lt;br /&gt;
|-&lt;br /&gt;
| {{path|socket-&amp;amp;lt;HOSTNAME&amp;amp;gt;}} || socket || This directory contains communication sockets. The filesystem used by $KDEHOME may not be suitable for communication sockets. For that reason this directory is symlinked to another location by default.&lt;br /&gt;
|-&lt;br /&gt;
| {{path|tmp-&amp;amp;lt;HOSTNAME&amp;amp;gt;}} || tmp || This directory is used for temporary files. The filesystem used by $KDEHOME may be on a network. For performance reasons, this directory is therefore symlinked by default to another location which is more likely to be on a local filesystem.&lt;br /&gt;
|-&lt;br /&gt;
| {{path|cache-&amp;amp;lt;HOSTNAME&amp;amp;gt;}} || cache || New in KDE 3.2. This directory is used for cached information such as HTTP objects, formatted help pages and the system configuration cache (ksycoca).&lt;br /&gt;
&lt;br /&gt;
Since this is non-essential information, this directory is&lt;br /&gt;
symlinked to a location outside $KDEHOME by default, to make it easier&lt;br /&gt;
to make backups of other information and to reclaim diskspace.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The majority of directories involves data that is not CPU-, architecture- or&lt;br /&gt;
host-specific. All these directories are prefixed with {{path|share/}}:&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
! Directory !! KDE&amp;amp;nbsp;resource !! Description&lt;br /&gt;
|-&lt;br /&gt;
| {{path|share/applnk/}} || apps || Contains .desktop files describing the KDE menu.&lt;br /&gt;
|-&lt;br /&gt;
| {{path|share/apps/}} || data || Contains application-specific data files. Each application has a subdirectory here for storing its files.&lt;br /&gt;
|-&lt;br /&gt;
| {{path|share/config/}} || config || Contains configuration files. Configuration files are normally named after the application they belong to followed by &amp;quot;rc&amp;quot;. There are also files that are specific to a component and as such referenced by all applications that use that component. A special case is &amp;quot;kdeglobals&amp;quot;: this file is read by all KDE applications.&lt;br /&gt;
|-&lt;br /&gt;
| {{path|share/config/session/}} || - || This directory is used by session management and is normally only available under $KDEHOME. At the end of a session KDE applications store their state here. The file names start with the name of the application followed by a number. The session manager &amp;quot;ksmserver&amp;quot; stores references to these numbers when saving a session in &amp;quot;ksmserverrc&amp;quot;.&lt;br /&gt;
|-&lt;br /&gt;
| {{path|share/doc/HTML/}} || html || Documentation of KDE applications is stored here. Documentation is categorized by language and the application it belongs to. &lt;br /&gt;
&lt;br /&gt;
Normally at least two files can be found in a directory: &amp;quot;index.docbook&amp;quot; which contains the documentation in the unformatted docbook format and &amp;quot;index.cache.bz2&amp;quot; which contains the same documentation formatted as bzip2 compressed html. The html version is used by khelpcenter; if the html version is missing, it will regenerate it from the docbook version, but this is a time-consuming process.&lt;br /&gt;
|-&lt;br /&gt;
| {{path|share/icons/}} || icon || Icons are stored under this directory, categorized by theme, dimension and usage category.&lt;br /&gt;
|-&lt;br /&gt;
| {{path|share/mimelnk/}} || mime || Up until KDE4, .desktop files that describe MIME types were stored in this directory.&lt;br /&gt;
|-&lt;br /&gt;
| {{path|share/mime/}} || mime || Starting with KDE4, desktop files that describe MIME types are stored in this directory. This data is shared by other software as well and is part of a freedesktop.org specification.&lt;br /&gt;
|-&lt;br /&gt;
| {{path|share/services/}}&amp;lt;br&amp;gt;{{path|share/kde4/services/}} || services || This directory contains .desktop files that describe services. Services and Applications are very similar; the major difference is that a Service is usually used by other Services or Applications while an Application is in general started by the user. Services do not appear in the KDE menu.&lt;br /&gt;
|-&lt;br /&gt;
| {{path|share/servicetypes/}}&amp;lt;br&amp;gt;{{path|share/kde4/servicetypes/}} || servicetypes || This directory contains .desktop files that describe service types. A service type usually represents a certain programming interface. Applications and Services include the servicetypes that they provide in their .desktop files.&lt;br /&gt;
|-&lt;br /&gt;
| {{path|share/sounds/}} || sound || This directory contains sound files.&lt;br /&gt;
|-&lt;br /&gt;
| {{path|share/templates/}} || templates || This directory contains templates for creating files of various types. A template consists of a .desktop file that describes the file and that includes a reference to a file in the .source subdirectory. The templates in this directory appear in the &amp;quot;Create New&amp;quot; menu available on the desktop and in the file browser. When a user selects a template from the menu, its source file is copied.&lt;br /&gt;
|-&lt;br /&gt;
| {{path|share/wallpapers/}} || wallpaper || This directory contains images that can be used as background pictures.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Outside the Directory Tree ==&lt;br /&gt;
&lt;br /&gt;
As mentioned in the description of the directory tree, there are three host-specific directories that are usually symlinked to other locations. If the directories do not already exist, the following symlinks and directories will be created using the &amp;lt;tt&amp;gt;lnusertemp&amp;lt;/tt&amp;gt; utility. Since both &amp;lt;tt&amp;gt;/tmp&amp;lt;/tt&amp;gt; and &amp;lt;tt&amp;gt;/var/tmp&amp;lt;/tt&amp;gt; are world writable, there is a possibility that one of the mentioned directories already exists but is owned by another user. In that case the &amp;lt;tt&amp;gt;lnusertemp&amp;lt;/tt&amp;gt; utility will create a new directory with an alternative name and link to that instead.&lt;br /&gt;
&lt;br /&gt;
=== Sockets ===&lt;br /&gt;
Symlink: {{path|$KDEHOME/socket-&amp;amp;lt;HOSTNAME&amp;amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
Default destination: {{path|/tmp/ksocket-&amp;amp;lt;USER&amp;amp;gt;/}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;lnusertemp&amp;amp;nbsp;socket&amp;lt;/tt&amp;gt; creates a directory for local communication sockets and point a symlink to it. The combined length of the directory name and the name of any communication socket should not exceed 106 characters. By default this directory is created under &amp;lt;tt&amp;gt;/tmp&amp;lt;/tt&amp;gt;, other locations can be used by setting the KDETMP environment variable.&lt;br /&gt;
&lt;br /&gt;
=== Temporary Files ===&lt;br /&gt;
Symlink: {{path|$KDEHOME/tmp-&amp;amp;lt;HOSTNAME&amp;amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
Default destination: {{path|/tmp/kde-&amp;amp;lt;USER&amp;amp;gt;/}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;lnusertemp&amp;amp;nbsp;tmp&amp;lt;/tt&amp;gt; creates a directory for temporary files and points a symlink to it. For performance reasons it is recommended to have this directory on a local filesystem but this is not strictly necessary.&lt;br /&gt;
&lt;br /&gt;
=== Cache Files ===&lt;br /&gt;
Symlink: {{path|$KDEHOME/cache-&amp;amp;lt;HOSTNAME&amp;amp;gt;}}&lt;br /&gt;
 &lt;br /&gt;
Default destination: {{path|/var/tmp/kdecache-&amp;amp;lt;USER&amp;amp;gt;/}}&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;lnusertemp&amp;amp;nbsp;cache&amp;lt;/tt&amp;gt; creates a directory for cache files and points a symlink to it. For performance reasons it is recommended to have this directory on a local filesystem but this is not strictly necessary.&lt;br /&gt;
&lt;br /&gt;
The system configuration cache (ksycoca and ksycocastamp) is located in here. It is recommended NOT to delete these files during boot since that will slow down the startup of KDE.&lt;br /&gt;
&lt;br /&gt;
By default this directory is created under &amp;lt;tt&amp;gt;/var/tmp&amp;lt;/tt&amp;gt;, other locations&lt;br /&gt;
can be used by setting the KDEVARTMP environment variable.&lt;br /&gt;
&lt;br /&gt;
== Adding Lookup Locations ==&lt;br /&gt;
&lt;br /&gt;
KDE applications look up data files using the resource names listed in the&lt;br /&gt;
[#dir_structure Directory Tree] section.  The KDE runtime&lt;br /&gt;
environment translates these names to actual directories&lt;br /&gt;
by combining the locations of the directory trees with the directories&lt;br /&gt;
listed in the tables.&lt;br /&gt;
&lt;br /&gt;
==== Defining Search Paths ====&lt;br /&gt;
&lt;br /&gt;
A user has the following directory tree settings:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
KDEHOME='~/.kde3'&lt;br /&gt;
KDEDIRS='/opt/kde_staff:/opt/kde3'&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
When an application now looks for a &amp;quot;wallpaper&amp;quot; file, the directory &amp;quot;share/wallpapers/&amp;quot; is added to each of the&lt;br /&gt;
directory trees. All of the&lt;br /&gt;
resulting directories are then searched for the file:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
~/.kde3/share/wallpapers/&lt;br /&gt;
/opt/kde_staff/share/wallpapers/&lt;br /&gt;
/opt/kde3/share/wallpapers/&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
By adding more directory tree to the KDEDIRS environment variable&lt;br /&gt;
it is possible to expand the number of directories that are being searched.&lt;br /&gt;
Sometimes it is desirable to include only a single directory in a search&lt;br /&gt;
but not a whole directory tree. Additional directories can be configured&lt;br /&gt;
in the kdeglobals configuration file in the &amp;quot;Directories&amp;quot; section.&lt;br /&gt;
To do so assign one or more directories to the key &amp;quot;dir_&amp;quot; followed by the&lt;br /&gt;
name of the resource. Multiple directories are separated by commas (,).&lt;br /&gt;
&lt;br /&gt;
==== Adding a Resource Directory ====&lt;br /&gt;
&lt;br /&gt;
To add the directory /data/photos to the wallpaper resource, put the&lt;br /&gt;
following two lines in kdeglobals:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code ini&amp;gt;&lt;br /&gt;
[Directories]&lt;br /&gt;
dir_wallpaper=/data/photos&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
When the application now looks for wallpaper files, it will look in the&lt;br /&gt;
following locations:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
/data/photos&lt;br /&gt;
~/.kde3/share/wallpapers/&lt;br /&gt;
/opt/kde_staff/share/wallpapers/&lt;br /&gt;
/opt/kde3/share/wallpapers/&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;/div&gt;</summary>
		<author><name>Logixoul</name></author>	</entry>

	<entry>
		<id>http://techbase.kde.org/KDE_System_Administration/KDE_Filesystem_Hierarchy</id>
		<title>KDE System Administration/KDE Filesystem Hierarchy</title>
		<link rel="alternate" type="text/html" href="http://techbase.kde.org/KDE_System_Administration/KDE_Filesystem_Hierarchy"/>
				<updated>2007-09-09T21:49:52Z</updated>
		
		<summary type="html">&lt;p&gt;Logixoul: KDE System Administration/KDE Filesystem Hierarchy moved to KDE System Administration/Filesystem Hierarchy: tautology&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction ==&lt;br /&gt;
KDE defines a filesystem hierarchy that is used by the KDE environment&lt;br /&gt;
itself as well as all KDE applications. In general, KDE stores all its&lt;br /&gt;
files in a fixed directory tree.&lt;br /&gt;
&lt;br /&gt;
By default, there are two such directory trees: one at the system&lt;br /&gt;
level and one at the user level in the user's home directory. However,&lt;br /&gt;
as a system administrator you can create additional trees.&lt;br /&gt;
&lt;br /&gt;
KDE and KDE applications look up files by scanning the directory trees&lt;br /&gt;
in order of precedence. When a file is&lt;br /&gt;
present in multiple directory trees, the file from the first-listed&lt;br /&gt;
tree takes precedence.&lt;br /&gt;
Normally, the tree located in the user's home directory has the highest&lt;br /&gt;
precedence. This is also the directory tree that changes are&lt;br /&gt;
written to.&lt;br /&gt;
&lt;br /&gt;
For configuration files, the story is slightly&lt;br /&gt;
different. If multiple configuration files with the same name are found in the directory&lt;br /&gt;
trees, their content is combined. The precedence order&lt;br /&gt;
of the directory trees plays a role here: when two files define the same&lt;br /&gt;
configuration key, the file with the highest precedence determines which&lt;br /&gt;
value is used for the key.&lt;br /&gt;
&lt;br /&gt;
== Location of the Directory Trees ==&lt;br /&gt;
&lt;br /&gt;
The location of the KDE Directory Trees is determined by a number of&lt;br /&gt;
environment variables, each of which is covered below.&lt;br /&gt;
&lt;br /&gt;
=== KDEHOME ===&lt;br /&gt;
The &amp;lt;tt&amp;gt;KDEHOME&amp;lt;/tt&amp;gt; environment variable determines the location of the user-level&lt;br /&gt;
directory tree and is used by KDE applications for creating and saving&lt;br /&gt;
files. This directory tree has the highest precedence; files or settings&lt;br /&gt;
found in this directory tree will take precedence over any files or settings&lt;br /&gt;
found in other directory trees.&lt;br /&gt;
&lt;br /&gt;
This directory tree is, as the name suggests, normally located in the user's home directory. If this environment variable is not defined, the default location &amp;lt;tt&amp;gt;$HOME/.kde&amp;lt;/tt&amp;gt; is used.&lt;br /&gt;
&lt;br /&gt;
If the environment variable has a value that starts with a tilde (~), the tilde is replaced with the user's home directory at runtime. In order to use this, care must be taken to add proper quoting, otherwise the shell might do the expansion, resulting in undesired behavior in combination with &amp;lt;tt&amp;gt;su&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== KDEROOTHOME ===&lt;br /&gt;
In order to prevent problems with applications that run as root saving&lt;br /&gt;
files with root access permissions in the user's home directory, the &amp;lt;tt&amp;gt;KDEROOTHOME&amp;lt;/tt&amp;gt;&lt;br /&gt;
environment variable has been introduced in the KDE 3.x series. Applications&lt;br /&gt;
that run with uid 0 (root) will use this variable to determine the location of&lt;br /&gt;
the user level directory and where to save their files. If this variable is&lt;br /&gt;
not defined, the root user's home directory is looked up in the password&lt;br /&gt;
file and .kde is appended. Usually that results in &amp;lt;tt&amp;gt;/root/.kde&amp;lt;/tt&amp;gt; .&lt;br /&gt;
&lt;br /&gt;
=== KDEDIRS ===&lt;br /&gt;
It is possible to specify multiple system-level directory trees. This allows groups of users to each dedicate a directory to their group. Such an additional directory tree can contain additional applications, specialized application resources or a specific set of default configurations suitable for the group. Specifying default configurations this way instead of using a /etc/skel construction has the advantage that changes in the default configuration can be made after the user's account has been created.&lt;br /&gt;
&lt;br /&gt;
The directories in $KDEDIRS should be separated with a colon (:). The directories are listed in order of precedence: the first directory has the highest precedence, the last one has the lowest precedence.&lt;br /&gt;
&lt;br /&gt;
Since a group-level directory tree should normally override any settings present at the system level, one should list the group-level directory tree before the system level directory tree.&lt;br /&gt;
&lt;br /&gt;
In general communication, references to the directory trees are made in&lt;br /&gt;
terms of $KDEHOME to indicate the applicable user-level directory tree,&lt;br /&gt;
and in terms of $KDEDIRS to indicate any of the system-level directory trees.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
A staff member at a university could have the following settings:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
KDEHOME='~/.kde3'&lt;br /&gt;
KDEROOTHOME='/root/.kde3'&lt;br /&gt;
KDEDIRS='/opt/kde_staff:/opt/kde3'&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In this example the user settings are saved under the .kde3 directory&lt;br /&gt;
in the user's home directory. Applications that run as root will save their&lt;br /&gt;
settings to /root/.kde3 . KDE 3 has been installed to /opt/kde3 but there is&lt;br /&gt;
also an additional directory tree located at /opt/kde_staff . Configuration&lt;br /&gt;
files under that directory will take precedence over the ones in the /opt/kde3&lt;br /&gt;
system directories. /opt/kde-staff could contain additional applications that&lt;br /&gt;
should only be available to staff members.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Directory Tree ==&lt;br /&gt;
&lt;br /&gt;
Each directory tree used by KDE has a fixed directory structure. However, directories&lt;br /&gt;
that are not relevant for a certain tree can be left out. For example,&lt;br /&gt;
directories used for temporary files are usually only found under $KDEHOME but&lt;br /&gt;
not in any other directory tree.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The KDE runtime environment combines the subdirectories found under the&lt;br /&gt;
various directory trees and refers to them as a single KDE resource. The&lt;br /&gt;
KDE resource name is listed in the tables below.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
There are three broad categories: files that are&lt;br /&gt;
CPU/architecture-specific, files that are host-specific and files that are not specific with&lt;br /&gt;
regard to host, CPU or architecture.&lt;br /&gt;
&lt;br /&gt;
CPU/architecture-specific directories:&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
! Directory !! KDE&amp;amp;nbsp;resource !! Description&lt;br /&gt;
|-&lt;br /&gt;
| {{path|bin/}} || exe || Used for KDE executables.&lt;br /&gt;
|-&lt;br /&gt;
| {{path|cgi-bin/}} || cgi || CGI scipts that can be used by the KDE Help Center.&lt;br /&gt;
|-&lt;br /&gt;
| {{path|lib/}} || lib || Used for KDE libraries.&lt;br /&gt;
|-&lt;br /&gt;
| {{path|lib/kde3/}} || module || This directory contains components, plugins and other runtime loadable objects for use by KDE 3.x applications.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The following are host-specific directories. They are only available under&lt;br /&gt;
$KDEHOME and are normally symlinked to locations outside the $KDEHOME&lt;br /&gt;
directory tree.&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
! Directory !! KDE&amp;amp;nbsp;resource !! Description&lt;br /&gt;
|-&lt;br /&gt;
| {{path|socket-&amp;amp;lt;HOSTNAME&amp;amp;gt;}} || socket || This directory contains communication sockets. The filesystem used by $KDEHOME may not be suitable for communication sockets. For that reason this directory is symlinked to another location by default.&lt;br /&gt;
|-&lt;br /&gt;
| {{path|tmp-&amp;amp;lt;HOSTNAME&amp;amp;gt;}} || tmp || This directory is used for temporary files. The filesystem used by $KDEHOME may be on a network. For performance reasons, this directory is therefore symlinked by default to another location which is more likely to be on a local filesystem.&lt;br /&gt;
|-&lt;br /&gt;
| {{path|cache-&amp;amp;lt;HOSTNAME&amp;amp;gt;}} || cache || New in KDE 3.2. This directory is used for cached information such as HTTP objects, formatted help pages and the system configuration cache (ksycoca).&lt;br /&gt;
&lt;br /&gt;
Since this is non-essential information, this directory is&lt;br /&gt;
symlinked to a location outside $KDEHOME by default, to make it easier&lt;br /&gt;
to make backups of other information and to reclaim diskspace.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The majority of directories involves data that is not CPU-, architecture- or&lt;br /&gt;
host-specific. All these directories are prefixed with {{path|share/}}:&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
! Directory !! KDE&amp;amp;nbsp;resource !! Description&lt;br /&gt;
|-&lt;br /&gt;
| {{path|share/applnk/}} || apps || Contains .desktop files describing the KDE menu.&lt;br /&gt;
|-&lt;br /&gt;
| {{path|share/apps/}} || data || Contains application-specific data files. Each application has a subdirectory here for storing its files.&lt;br /&gt;
|-&lt;br /&gt;
| {{path|share/config/}} || config || Contains configuration files. Configuration files are normally named after the application they belong to followed by &amp;quot;rc&amp;quot;. There are also files that are specific to a component and as such referenced by all applications that use that component. A special case is &amp;quot;kdeglobals&amp;quot;: this file is read by all KDE applications.&lt;br /&gt;
|-&lt;br /&gt;
| {{path|share/config/session/}} || - || This directory is used by session management and is normally only available under $KDEHOME. At the end of a session KDE applications store their state here. The file names start with the name of the application followed by a number. The session manager &amp;quot;ksmserver&amp;quot; stores references to these numbers when saving a session in &amp;quot;ksmserverrc&amp;quot;.&lt;br /&gt;
|-&lt;br /&gt;
| {{path|share/doc/HTML/}} || html || Documentation of KDE applications is stored here. Documentation is categorized by language and the application it belongs to. &lt;br /&gt;
&lt;br /&gt;
Normally at least two files can be found in a directory: &amp;quot;index.docbook&amp;quot; which contains the documentation in the unformatted docbook format and &amp;quot;index.cache.bz2&amp;quot; which contains the same documentation formatted as bzip2 compressed html. The html version is used by khelpcenter; if the html version is missing, it will regenerate it from the docbook version, but this is a time-consuming process.&lt;br /&gt;
|-&lt;br /&gt;
| {{path|share/icons/}} || icon || Icons are stored under this directory, categorized by theme, dimension and usage category.&lt;br /&gt;
|-&lt;br /&gt;
| {{path|share/mimelnk/}} || mime || Up until KDE4, .desktop files that describe MIME types were stored in this directory.&lt;br /&gt;
|-&lt;br /&gt;
| {{path|share/mime/}} || mime || Starting with KDE4, desktop files that describe MIME types are stored in this directory. This data is shared by other software as well and is part of a freedesktop.org specification.&lt;br /&gt;
|-&lt;br /&gt;
| {{path|share/services/}}&amp;lt;br&amp;gt;{{path|share/kde4/services/}} || services || This directory contains .desktop files that describe services. Services and Applications are very similar; the major difference is that a Service is usually used by other Services or Applications while an Application is in general started by the user. Services do not appear in the KDE menu.&lt;br /&gt;
|-&lt;br /&gt;
| {{path|share/servicetypes/}}&amp;lt;br&amp;gt;{{path|share/kde4/servicetypes/}} || servicetypes || This directory contains .desktop files that describe service types. A service type usually represents a certain programming interface. Applications and Services include the servicetypes that they provide in their .desktop files.&lt;br /&gt;
|-&lt;br /&gt;
| {{path|share/sounds/}} || sound || This directory contains sound files.&lt;br /&gt;
|-&lt;br /&gt;
| {{path|share/templates/}} || templates || This directory contains templates for creating files of various types. A template consists of a .desktop file that describes the file and that includes a reference to a file in the .source subdirectory. The templates in this directory appear in the &amp;quot;Create New&amp;quot; menu available on the desktop and in the file browser. When a user selects a template from the menu, its source file is copied.&lt;br /&gt;
|-&lt;br /&gt;
| {{path|share/wallpapers/}} || wallpaper || This directory contains images that can be used as background pictures.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Outside the Directory Tree ==&lt;br /&gt;
&lt;br /&gt;
As mentioned in the description of the directory tree, there are three host-specific directories that are usually symlinked to other locations. If the directories do not already exist, the following symlinks and directories will be created using the &amp;lt;tt&amp;gt;lnusertemp&amp;lt;/tt&amp;gt; utility. Since both &amp;lt;tt&amp;gt;/tmp&amp;lt;/tt&amp;gt; and &amp;lt;tt&amp;gt;/var/tmp&amp;lt;/tt&amp;gt; are world writable, there is a possibility that one of the mentioned directories already exists but is owned by another user. In that case the &amp;lt;tt&amp;gt;lnusertemp&amp;lt;/tt&amp;gt; utility will create a new directory with an alternative name and link to that instead.&lt;br /&gt;
&lt;br /&gt;
=== Sockets ===&lt;br /&gt;
Symlink: {{path|$KDEHOME/socket-&amp;amp;lt;HOSTNAME&amp;amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
Default destination: {{path|/tmp/ksocket-&amp;amp;lt;USER&amp;amp;gt;/}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;lnusertemp&amp;amp;nbsp;socket&amp;lt;/tt&amp;gt; creates a directory for local communication sockets and point a symlink to it. The combined length of the directory name and the name of any communication socket should not exceed 106 characters. By default this directory is created under &amp;lt;tt&amp;gt;/tmp&amp;lt;/tt&amp;gt;, other locations can be used by setting the KDETMP environment variable.&lt;br /&gt;
&lt;br /&gt;
=== Temporary Files ===&lt;br /&gt;
Symlink: {{path|$KDEHOME/tmp-&amp;amp;lt;HOSTNAME&amp;amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
Default destination: {{path|/tmp/kde-&amp;amp;lt;USER&amp;amp;gt;/}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;lnusertemp&amp;amp;nbsp;tmp&amp;lt;/tt&amp;gt; creates a directory for temporary files and points a symlink to it. For performance reasons it is recommended to have this directory on a local filesystem but this is not strictly necessary.&lt;br /&gt;
&lt;br /&gt;
=== Cache Files ===&lt;br /&gt;
Symlink: {{path|$KDEHOME/cache-&amp;amp;lt;HOSTNAME&amp;amp;gt;}}&lt;br /&gt;
 &lt;br /&gt;
Default destination: {{path|/var/tmp/kdecache-&amp;amp;lt;USER&amp;amp;gt;/}}&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;lnusertemp&amp;amp;nbsp;cache&amp;lt;/tt&amp;gt; creates a directory for cache files and points a symlink to it. For performance reasons it is recommended to have this directory on a local filesystem but this is not strictly necessary.&lt;br /&gt;
&lt;br /&gt;
The system configuration cache (ksycoca and ksycocastamp) is located in here. It is recommended NOT to delete these files during boot since that will slow down the startup of KDE.&lt;br /&gt;
&lt;br /&gt;
By default this directory is created under &amp;lt;tt&amp;gt;/var/tmp&amp;lt;/tt&amp;gt;, other locations&lt;br /&gt;
can be used by setting the KDEVARTMP environment variable.&lt;br /&gt;
&lt;br /&gt;
== Adding Lookup Locations ==&lt;br /&gt;
&lt;br /&gt;
KDE applications look up data files using the resource names listed in the&lt;br /&gt;
[#dir_structure Directory Tree] section.  The KDE runtime&lt;br /&gt;
environment translates these names to actual directories&lt;br /&gt;
by combining the locations of the directory trees with the directories&lt;br /&gt;
listed in the tables.&lt;br /&gt;
&lt;br /&gt;
==== Defining Search Paths ====&lt;br /&gt;
&lt;br /&gt;
A user has the following directory tree settings:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
KDEHOME='~/.kde3'&lt;br /&gt;
KDEDIRS='/opt/kde_staff:/opt/kde3'&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
When an application now looks for a &amp;quot;wallpaper&amp;quot; file, the directory &amp;quot;share/wallpapers/&amp;quot; is added to each of the&lt;br /&gt;
directory trees. All of the&lt;br /&gt;
resulting directories are then searched for the file:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
~/.kde3/share/wallpapers/&lt;br /&gt;
/opt/kde_staff/share/wallpapers/&lt;br /&gt;
/opt/kde3/share/wallpapers/&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
By adding more directory tree to the KDEDIRS environment variable&lt;br /&gt;
it is possible to expand the number of directories that are being searched.&lt;br /&gt;
Sometimes it is desirable to include only a single directory in a search&lt;br /&gt;
but not a whole directory tree. Additional directories can be configured&lt;br /&gt;
in the kdeglobals configuration file in the &amp;quot;Directories&amp;quot; section.&lt;br /&gt;
To do so assign one or more directories to the key &amp;quot;dir_&amp;quot; followed by the&lt;br /&gt;
name of the resource. Multiple directories are separated by commas (,).&lt;br /&gt;
&lt;br /&gt;
==== Adding a Resource Directory ====&lt;br /&gt;
&lt;br /&gt;
To add the directory /data/photos to the wallpaper resource, put the&lt;br /&gt;
following two lines in kdeglobals:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code ini&amp;gt;&lt;br /&gt;
[Directories]&lt;br /&gt;
dir_wallpaper=/data/photos&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
When the application now looks for wallpaper files, it will look in the&lt;br /&gt;
following locations:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
/data/photos&lt;br /&gt;
~/.kde3/share/wallpapers/&lt;br /&gt;
/opt/kde_staff/share/wallpapers/&lt;br /&gt;
/opt/kde3/share/wallpapers/&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;/div&gt;</summary>
		<author><name>Logixoul</name></author>	</entry>

	<entry>
		<id>http://techbase.kde.org/MediaWiki:Oxygen.css</id>
		<title>MediaWiki:Oxygen.css</title>
		<link rel="alternate" type="text/html" href="http://techbase.kde.org/MediaWiki:Oxygen.css"/>
				<updated>2007-09-09T21:16:20Z</updated>
		
		<summary type="html">&lt;p&gt;Logixoul: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#body {border-left: 1px solid #bcbcbc;}&lt;br /&gt;
&lt;br /&gt;
#footer {&lt;br /&gt;
	border-top: 1px solid #bcbcbc;&lt;br /&gt;
	border-bottom: 1px solid #bcbcbc;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.navlist {float: left;}&lt;br /&gt;
.navlist li {list-style-type: none;}&lt;br /&gt;
.navlist li img {vertical-align: middle;}&lt;br /&gt;
.allpagesredirect a {font-size: .5em; color: grey !important;}&lt;/div&gt;</summary>
		<author><name>Logixoul</name></author>	</entry>

	<entry>
		<id>http://techbase.kde.org/MediaWiki:Oxygen.css</id>
		<title>MediaWiki:Oxygen.css</title>
		<link rel="alternate" type="text/html" href="http://techbase.kde.org/MediaWiki:Oxygen.css"/>
				<updated>2007-09-09T21:16:00Z</updated>
		
		<summary type="html">&lt;p&gt;Logixoul: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#body {border-left: 1px solid #bcbcbc;}&lt;br /&gt;
&lt;br /&gt;
#footer {&lt;br /&gt;
	border-top: 1px solid #bcbcbc;&lt;br /&gt;
	border-bottom: 1px solid #bcbcbc;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.navlist {float: left;}&lt;br /&gt;
.navlist li {list-style-type: none;}&lt;br /&gt;
.navlist li img {vertical-align: middle;}&lt;br /&gt;
.allpagesredirect a {font-size: .5em; font-color: grey !important;}&lt;/div&gt;</summary>
		<author><name>Logixoul</name></author>	</entry>

	<entry>
		<id>http://techbase.kde.org/MediaWiki:Oxygen.css</id>
		<title>MediaWiki:Oxygen.css</title>
		<link rel="alternate" type="text/html" href="http://techbase.kde.org/MediaWiki:Oxygen.css"/>
				<updated>2007-09-09T21:15:49Z</updated>
		
		<summary type="html">&lt;p&gt;Logixoul: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#body {border-left: 1px solid #bcbcbc;}&lt;br /&gt;
&lt;br /&gt;
#footer {&lt;br /&gt;
	border-top: 1px solid #bcbcbc;&lt;br /&gt;
	border-bottom: 1px solid #bcbcbc;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.navlist {float: left;}&lt;br /&gt;
.navlist li {list-style-type: none;}&lt;br /&gt;
.navlist li img {vertical-align: middle;}&lt;br /&gt;
.allpagesredirect {font-size: .5em; font-color: grey !important;}&lt;/div&gt;</summary>
		<author><name>Logixoul</name></author>	</entry>

	<entry>
		<id>http://techbase.kde.org/MediaWiki:Oxygen.css</id>
		<title>MediaWiki:Oxygen.css</title>
		<link rel="alternate" type="text/html" href="http://techbase.kde.org/MediaWiki:Oxygen.css"/>
				<updated>2007-09-09T21:15:03Z</updated>
		
		<summary type="html">&lt;p&gt;Logixoul: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#body {border-left: 1px solid #bcbcbc;}&lt;br /&gt;
&lt;br /&gt;
#footer {&lt;br /&gt;
	border-top: 1px solid #bcbcbc;&lt;br /&gt;
	border-bottom: 1px solid #bcbcbc;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.navlist {float: left;}&lt;br /&gt;
.navlist li {list-style-type: none;}&lt;br /&gt;
.navlist li img {vertical-align: middle;}&lt;br /&gt;
.allpagesredirect {font-size: .5em; font-color: grey;}&lt;/div&gt;</summary>
		<author><name>Logixoul</name></author>	</entry>

	<entry>
		<id>http://techbase.kde.org/Development/Tutorials/CMake</id>
		<title>Development/Tutorials/CMake</title>
		<link rel="alternate" type="text/html" href="http://techbase.kde.org/Development/Tutorials/CMake"/>
				<updated>2007-09-09T19:43:54Z</updated>
		
		<summary type="html">&lt;p&gt;Logixoul: /* Using CMake for a KDE Project */ rm superfluous space&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Template:I18n/Language Navigation Bar|Development/Tutorials/CMake}}&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
CMake reads script files and produces input files for the native buildsystem of the platform where it runs on. It can create GNU Makefiles, KDevelop project files, XCode project files, and Visual Studio project files.&lt;br /&gt;
&lt;br /&gt;
CMake is free software and released under a BSD-style license.  It is developed by [http://www.kitware.com Kitware Inc.]&lt;br /&gt;
&lt;br /&gt;
Here are some good places to learn about CMake in general:&lt;br /&gt;
* [http://www.cmake.org/HTML/Documentation.html CMake Manual]&lt;br /&gt;
* [http://www.cmake.org/Wiki/CMake CMake Wiki]&lt;br /&gt;
* [http://www.cmake.org/Wiki/CMake_HowToDoPlatformChecks CMake System Checks ]&lt;br /&gt;
* [http://www.cmake.org/Wiki/CMake_HowToFindInstalledSoftware Finding Optional Packages ]&lt;br /&gt;
* [http://www.cmake.org/Wiki/HowToBuildKDE4Software KDE 4 Tutorial at the CMake Wiki ]&lt;br /&gt;
* [http://www.cmake.org/Wiki/CMake_FAQ CMake FAQ]&lt;br /&gt;
* [http://mail.kde.org/pipermail/kde-buildsystem/ The kde-buildsystem Mailing List Archive]&lt;br /&gt;
&lt;br /&gt;
Also, consider joining the [http://www.cmake.org/mailman/listinfo/cmake CMake mailing list].&lt;br /&gt;
&lt;br /&gt;
== Why use CMake ? ==&lt;br /&gt;
CMake is the official tool of KDE 4 release, decided in March 2006, primarily due to technical merits as compared to the older KDE tools automake and unsermake:&lt;br /&gt;
* CMake is developed independently of KDE, it can be used by other projects as well &lt;br /&gt;
* Compilation time is much faster, mainly due to not using libtool anymore&lt;br /&gt;
* The build files are easier to write&lt;br /&gt;
&lt;br /&gt;
== How to compile KDE using CMake==&lt;br /&gt;
&lt;br /&gt;
=== Get and install CMake ===&lt;br /&gt;
==== Linux, BSD, and other Unix Systems ====&lt;br /&gt;
Retrieve the latest stable version of CMake from [http://www.cmake.org/HTML/Download.html].&lt;br /&gt;
&lt;br /&gt;
Once downloaded, unpack and compile it:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
$ mkdir cmake-build&lt;br /&gt;
$ cd cmake-build&lt;br /&gt;
$ ../bootstrap&lt;br /&gt;
$ make&lt;br /&gt;
$ make install&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
By default, this will install CMake in /usr/local, so make sure to have /usr/local/bin in your execute path.   To change the installation prefix (e.g. to /usr in debian), add the '--prefix=PATH' option to the bootstrap command.&lt;br /&gt;
&lt;br /&gt;
Please follow the instructions located [http://cmake.org/HTML/Download.html#cvs here] if you would like to use the current development version.&lt;br /&gt;
&lt;br /&gt;
==== Windows ====&lt;br /&gt;
Retrieve the latest stable version of CMake from [http://www.cmake.org/HTML/Download.html].&lt;br /&gt;
&lt;br /&gt;
Once downloaded, run the cmake installer. &lt;br /&gt;
&lt;br /&gt;
By default, this will install CMake in C:\Program Files\CMake 2.4, so make sure to have &amp;lt;installpath&amp;gt;\bin in your execute path.   &lt;br /&gt;
&lt;br /&gt;
Please follow the instructions at [http://cmake.org/HTML/Download.html#cvs here] if you would like to use the current development version.&lt;br /&gt;
&lt;br /&gt;
=== Run CMake ===&lt;br /&gt;
&lt;br /&gt;
==== Linux, BSD, and other Unix Systems ====&lt;br /&gt;
You have to run CMake so that it generates the build files for your system.  Both in-source and out-of-source builds are supported by CMake, but currently in-source builds are prevented by the KDE implementation.&lt;br /&gt;
&lt;br /&gt;
So, let's say you have kdelibs/ in ~/src/kdelibs/, then do the following:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
$ ls&lt;br /&gt;
kdelibs/&lt;br /&gt;
$ mkdir kdelibs-build&lt;br /&gt;
$ cd kdelibs-build&lt;br /&gt;
$ cmake ../kdelibs&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
This will generate the Makefiles for building kdelibs/ in kdelibs-build/.&lt;br /&gt;
&lt;br /&gt;
==== Windows ====&lt;br /&gt;
You have to run CMake so that it generates the build files for your system.  Both in-source and out-of-source builds are supported by CMake, but currently in-source builds are prevented by the KDE implementation.&lt;br /&gt;
&lt;br /&gt;
So, let's say you have kdelibs\ in c:\daten\kde4, then do the following:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
c:\daten\kde4&amp;gt; cd kdelibs\win&lt;br /&gt;
c:\daten\kde4&amp;gt; cmake&lt;br /&gt;
c:\daten\kde4&amp;gt; make &lt;br /&gt;
c:\daten\kde4&amp;gt; make install&lt;br /&gt;
c:\daten\kde4&amp;gt; cd ..&lt;br /&gt;
c:\daten\kde4&amp;gt; mkdir kdelibs-build&lt;br /&gt;
c:\daten\kde4&amp;gt; cd kdelibs-build&lt;br /&gt;
c:\daten\kde4\kdelibs-build&amp;gt; cmake ..\kdelibs&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This will generated the Makefiles for building kdelibs\ in kdelibs-build\. See [[KDE On Windows]] for more informations about compiling KDE on Windows.&lt;br /&gt;
&lt;br /&gt;
==== KDevelop Project Files ====&lt;br /&gt;
If you prefer project files for KDevelop (which will basically be Makefiles accompanied by some extra files for KDevelop), run it like this:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
$ cmake ../kdelibs -GKDevelop3&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
Use 'cmake -h' to find out which generators CMake supports and the other options.&lt;br /&gt;
&lt;br /&gt;
==== CMake and Qt4 ====&lt;br /&gt;
To locate Qt 4, CMake searches for qmake in your execute path. CMake does ''not'' use the QTDIR environment variable.  So make sure that the first qmake found in the execution path is the one you like to use.&lt;br /&gt;
&lt;br /&gt;
==== More Details ====&lt;br /&gt;
When CMake has finished, it will have created a file called &amp;quot;CMakeCache.txt&amp;quot;.  This file contains all the settings CMake has detected on your system.  If you want to run CMake with another generator or you want CMake to detect everything again, delete this file.&lt;br /&gt;
&lt;br /&gt;
If CMake didn't find something, but you know it is somewere on your box, you can tell CMake manually where to find it.  CMake uses variables to store this information.  These variables are cached in the already mentioned file CMakeCache.txt.  You have three options to adjust these variables manually:&lt;br /&gt;
* tell CMake the correct value via the command line: cmake ../kdelibs -DNAME_OF_THE_VARIABLE=value&lt;br /&gt;
* use ccmake, which provides a curses based GUI to adjust the CMake variables (run: ccmake ../kdelibs)&lt;br /&gt;
* edit the file CMakeCache.txt directly (not recommended)&lt;br /&gt;
&lt;br /&gt;
You should run &amp;quot;ccmake ../kdelibs&amp;quot; at least once so that you get an impression which variables CMake uses.  Press &amp;quot;T&amp;quot; to see also the &amp;quot;advanced&amp;quot; variables.  So, if CMake didn't find something, start ccmake and adjust it manually.&lt;br /&gt;
&lt;br /&gt;
Some variables you probably will want to set:&lt;br /&gt;
* '''CMAKE_INSTALL_PREFIX''': cmake ../kdelibs -DCMAKE_INSTALL_PREFIX=/opt/kde4 is the equivalent to ./configure --prefix=/opt/kde4&lt;br /&gt;
* '''CMAKE_BUILD_TYPE''': decide which type of build you want. You can chose between &amp;quot;debugfull&amp;quot;, &amp;quot;debug&amp;quot;, &amp;quot;profile&amp;quot;, &amp;quot;relwithdebinfo&amp;quot; and &amp;quot;release&amp;quot;. The default is &amp;quot;relwithdebinfo&amp;quot; (-O2 -g). See FindKDE4Internal.cmake for details.&lt;br /&gt;
* '''RPATH_STYLE''': This is not available anymore. By default everything will be built with RPATH set correctly. If you don't want RPATH at all, set CMAKE_SKIP_RPATH to TRUE.&lt;br /&gt;
* '''WITH_FOO''': there are several options, e.g. WITH_CUPS or WITH_Jasper. If you disable them, cmake will not even try to find this package. If it is enabled, cmake will try to find it. If it fails with this, you can still adjust it manually as described above.&lt;br /&gt;
&lt;br /&gt;
=== Environment Variables ===&lt;br /&gt;
If you have headers and libraries installed in non-standard locations that cmake cannot find (e.g., fink on Mac OSX installs to /sw), then set the following as environment variables.  Despite the similar naming convention, these will not work as arguments on the cmake command line:&lt;br /&gt;
* '''CMAKE_INCLUDE_PATH''', eg. export CMAKE_INCLUDE_PATH=/sw/include&lt;br /&gt;
* '''CMAKE_LIBRARY_PATH''', eg. export CMAKE_LIBRARY_PATH=/sw/lib&lt;br /&gt;
&lt;br /&gt;
For more information on variables, see [http://www.cmake.org/Wiki/CMake_Useful_Variables this cmake.org wiki page]&lt;br /&gt;
&lt;br /&gt;
=== Going Further ===&lt;br /&gt;
If cmake finishes with &amp;quot;Generating done&amp;quot; then there was no errors, but if it finishes with &amp;quot;Configuring done&amp;quot; then there was errors that you have to fix.  Once cmake finishes successfully, run your buildtool (i.e. make, KDevelop, XCode or MSVC) and build and wait until it has finished.  Then &amp;quot;make install&amp;quot;. &lt;br /&gt;
&lt;br /&gt;
If you got a failure that says something like&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
CMake Error: This project requires some variables to be set,&lt;br /&gt;
and cmake can not find them.&lt;br /&gt;
Please set the following variables:&lt;br /&gt;
X11_XTest_LIB (ADVANCED)&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
then you may have a missing library (or other dependency). To find&lt;br /&gt;
out which library, search in the cmake/modules directory for&lt;br /&gt;
the variable that cmake can't find. In the example above, it is&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
FIND_LIBRARY(X11_XTest_LIB Xtst ${X11_LIB_SEARCH_PATH})&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
So the missing library is Xtst. You then need to find it (perhaps installing a libXtst-devel library) and re-run cmake.&lt;br /&gt;
&lt;br /&gt;
== Using CMake for a Simple Application ==&lt;br /&gt;
&lt;br /&gt;
Here's the most simple CMakeLists.txt:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
add_executable(hello main.cpp)&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
This will create an executable named &amp;quot;hello&amp;quot; (or &amp;quot;hello.exe&amp;quot; under Windows) from the source file main.cpp. You can mix C and C++ files as you want.  You can have multiple executables and libraries in one CMakeLists.txt.  The same source file can be used in multiple targets, it will be compiled for each target independently from the other targets.  Probably the most important part of the cmake language are the variables:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
SET( MY_SOURCES main.cpp widget.cpp)&lt;br /&gt;
MESSAGE(STATUS &amp;quot;my sources: ${MY_SOURCES}&amp;quot;)&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
So, use the SET() command to set the value of a variable. If you list more than one string, the variable will be a list.   A list is a list of strings separated by semicolons. If you set it to only one item, it will have just that value. To get the value of a variable, use ${VAR}.&lt;br /&gt;
You can iterate over a list using FOREACH():&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
FOREACH(next_ITEM ${MY_SOURCES})&lt;br /&gt;
   MESSAGE(STATUS &amp;quot;next item: ${next_ITEM}&amp;quot;)&lt;br /&gt;
ENDFOREACH(next_ITEM ${MY_SOURCES})&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
The commands in CMake are case-insensitive.  Names of variables and names of parameter are case-sensitive.&lt;br /&gt;
&lt;br /&gt;
You can also test for various things:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
IF (UNIX)&lt;br /&gt;
   MESSAGE(STATUS &amp;quot;This is UNIX (including OS X and CygWin)&amp;quot;)&lt;br /&gt;
ENDIF (UNIX)&lt;br /&gt;
&lt;br /&gt;
IF (MSVC)&lt;br /&gt;
   SET(MY_SRCS ${MY_SRCS} winextra.cpp)&lt;br /&gt;
ENDIF (MSVC)&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
In this second example  you can see also how to append items to a list.&lt;br /&gt;
&lt;br /&gt;
In the cmake Wiki there is also a [http://www.cmake.org/Wiki/HowToBuildKDE4Software  tutorial] on using cmake to build KDE 4 software. It is recommended reading.&lt;br /&gt;
&lt;br /&gt;
== Using CMake for a KDE Project ==&lt;br /&gt;
&lt;br /&gt;
Here's a basic CMakeList file that builds a small KDE 4 project:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
PROJECT(kde4project)&lt;br /&gt;
FIND_PACKAGE(KDE4 REQUIRED)&lt;br /&gt;
INCLUDE_DIRECTORIES( ${KDE4_INCLUDES} )&lt;br /&gt;
&lt;br /&gt;
SET(KDE4ProjectSources kde4mainapp.cpp someclass.cpp someotherclass.cpp)&lt;br /&gt;
&lt;br /&gt;
KDE4_ADD_EXECUTABLE(kde4project ${KDE4ProjectSources} )&lt;br /&gt;
&lt;br /&gt;
TARGET_LINK_LIBRARIES(kde4project ${KDE4_KDEUI_LIBS} ${KDE4_KPARTS_LIBS} )&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Extending CMake ==&lt;br /&gt;
CMake can be extended using cmake scripts. CMake comes with a number of scripts; under UNIX they are by default installed to /usr/local/share/CMake/Modules/. The KDE libraries install also a set of cmake modules into share/apps/cmake/modules/. The files located there will be preferred over the ones in the system global cmake module path. &lt;br /&gt;
For detecting software packages there are FindFOO.cmake files, see [http://www.cmake.org/Wiki/CMake_HowToFindInstalledSoftware here] for more information.&lt;br /&gt;
You can also write macros in CMake. They are powerful enough to do most things you will need to build software, but they are not intended to be used as a general purpose programming language.&lt;br /&gt;
&lt;br /&gt;
== Converting autotools-based KDE software to CMake ==&lt;br /&gt;
In kdesdk/cmake/ you can find a script am2cmake . This is a ruby script, so you need to have ruby installed. Run am2cmake in the toplevel directory of your sources:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
$ cd src/mykooltool/&lt;br /&gt;
$ am2cmake --kde4&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
Don't forget the switch &amp;quot;--kde4&amp;quot;, otherwise it won't generate files suitable for KDE 4 software. The converted files 'may' work as they are, but complicated projects will require some additional editing.&lt;br /&gt;
&lt;br /&gt;
You may have to:&lt;br /&gt;
* add more include direcories, using INCLUDE_DIRECTORIES()&lt;br /&gt;
* add more link libraries, using TARGET_LINK_LIBRARIES()&lt;br /&gt;
* add some compile switches, using ADD_DEFINITIONS()&lt;br /&gt;
* add some &amp;quot;configure&amp;quot; checks, see [http://www.cmake.org/Wiki/CMake_HowToDoPlatformChecks How To Do Platform Checks] and [http://www.cmake.org/Wiki/CMake_HowToFindInstalledSoftware How To Find Installed Software]&lt;br /&gt;
* take special care of former libtool convenience libraries. They are not supported by cmake, instead there will be a file ConvenienceLibs.cmake created.  In this file you will find for every convenience lib a variable, which contains all source files of this convenience lib.  For the targets which linked to this convenience lib, just add the variable to the sources.&lt;br /&gt;
* a file AdditionalInfo.txt will be created.  There you will see all *.in and *.in.in files of your project. The stuff done in these files will have to be converted manually to cmake.&lt;br /&gt;
&lt;br /&gt;
== Frequently Asked Questions ==&lt;br /&gt;
&lt;br /&gt;
=== How can I teach my favorite editor about CMake syntax and indentation ? ===&lt;br /&gt;
Read the CMake Wiki section [http://www.cmake.org/Wiki/CMake_Editors_Support CMake Editors Support].  It describes how to setup Emacs (XEmacs works too), VIM, Kate, KWrite, and KDevelop.&lt;br /&gt;
&lt;br /&gt;
=== I need to generate some files during the build. How do I do this ? ===&lt;br /&gt;
Use ADD_CUSTOM_COMMAND(). It's explained here in the CMake wiki: [http://www.cmake.org/Wiki/CMake_FAQ#How_can_I_generate_a_source_file_during_the_build.3F  How can I generate a source file during the build]&lt;br /&gt;
&lt;br /&gt;
=== I need to build an executable which is used later on during the build to generate files. How do I do this ? ===&lt;br /&gt;
Let's say the executable is called genembed. Then use KDE4_ADD_EXECUTABLE(foo RUN_UNINSTALLED ${fooSources})to create the executable. The RUN_UNINSTALLED option is important, because the executable has to run from the build dir and has to link to the libraries in the builddir. To achieve this, the executable is compiled with RPATH set accordingly and a wrapper shell script, named just like the executable but with the suffix &amp;quot;.sh&amp;quot; is created. This shell scripts sets up LD_LIBRARY_PATH and the calls the actual executable.&lt;br /&gt;
Use this wrapper shell script in the ADD_CUSTOM_COMMAND() as described above.&lt;br /&gt;
You can find out the name and exact location by querying the property WRAPPER_SCRIPT. Here's a full example taken from kdelibs/kstyles/keramik/ :&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
# build the executable&lt;br /&gt;
KDE4_ADD_EXECUTABLE(genembed RUN_UNINSTALLED ${genembed_SRCS})&lt;br /&gt;
&lt;br /&gt;
# get the name of the generated wrapper script (which sets up LD_LIBRARY_PATH)&lt;br /&gt;
GET_TARGET_PROPERTY(GENEMBED_EXECUTABLE genembed WRAPPER_SCRIPT)&lt;br /&gt;
&lt;br /&gt;
# and the custom command&lt;br /&gt;
ADD_CUSTOM_COMMAND(OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/keramikrc.h&lt;br /&gt;
  COMMAND ${GENEMBED_EXECUTABLE} --file ${CMAKE_CURRENT_BINARY_DIR}/keramikPics.txt &amp;gt; \&lt;br /&gt;
  ${CMAKE_CURRENT_BINARY_DIR}/pixmaps.keramik&lt;br /&gt;
  DEPENDS genembed ${keramikPics}&lt;br /&gt;
)&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
As you can see genembed is also listed as a dependency, this means cmake knows that it has to build the executable genembed before executing this rule.&lt;br /&gt;
&lt;br /&gt;
=== I don't want to set the -DCMAKE_INSTALL_PREFIX command line option.  Does cmake support the KDEDIR environment variable? ===&lt;br /&gt;
No.  $KDEDIR is deprecated in KDE 4.&lt;br /&gt;
&lt;br /&gt;
=== Why do i get compile errors like /usr/lib/qt4/include/QtCore/qstring.h:536: undefined reference to `QString::fromLatin1_helper(char const*, int)'? ===&lt;br /&gt;
A: If you have an old Qt4 version in your qt/lib directory you must delete the old (4.0.1) files.&lt;br /&gt;
&lt;br /&gt;
=== How do I tell cmake to create noisy makefiles?  I want to see the exact commands that are run during the make process. ===&lt;br /&gt;
Pass the VERBOSE variable to make, i.e.&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
% make VERBOSE=1&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
or&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
% VERBOSE=1 make&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For more details see the CMake wiki: [http://www.cmake.org/Wiki/CMake_FAQ#Is_there_an_option_to_produce_more_.27verbose.27_compiling.3F Is there an option to produce more 'verbose' compiling?]&lt;br /&gt;
&lt;br /&gt;
=== There is no 'make distclean' target in the generated Makefiles.  How do I clean up everything, including the cache files? ===&lt;br /&gt;
Simply remove the build directory, or just the contents of the build directory.&lt;br /&gt;
&lt;br /&gt;
[[Category:Programming]]&lt;br /&gt;
[[Category:Tutorial]]&lt;br /&gt;
[[Category:FAQs]]&lt;/div&gt;</summary>
		<author><name>Logixoul</name></author>	</entry>

	<entry>
		<id>http://techbase.kde.org/Getting_Started/Build</id>
		<title>Getting Started/Build</title>
		<link rel="alternate" type="text/html" href="http://techbase.kde.org/Getting_Started/Build"/>
				<updated>2007-09-09T19:04:27Z</updated>
		
		<summary type="html">&lt;p&gt;Logixoul: rm redundant link&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Template:I18n/Language Navigation Bar|Getting Started/Build}}&lt;br /&gt;
Here you will find instructions for compiling and installing KDE from source and suggestions for when compilation doesn't go so smoothly.&lt;br /&gt;
&lt;br /&gt;
== Building The Source ==&lt;br /&gt;
&lt;br /&gt;
; KDE 4 (Development version, trunk)&lt;br /&gt;
:Instructions for installing the latest and greatest KDE development source code on:&lt;br /&gt;
* [[/KDE4|Linux]] &lt;br /&gt;
* [[/KDE4/FreeBSD|FreeBSD]]&lt;br /&gt;
* [[/KDE4/Windows/GCC_And_MinGW|Microsoft Windows with GCC and MinGW]]&lt;br /&gt;
* [[/KDE4/Windows/MS_Visual_Studio|Microsoft Windows with Microsoft Visual Studio]]&lt;br /&gt;
* [[/KDE4/Mac_OS_X|Mac OS X]]&lt;br /&gt;
&lt;br /&gt;
; [[/Stable Version|KDE 3.5 (Stable version)]]: Instructions for installing the latest stable KDE 3.5 release.&lt;br /&gt;
&lt;br /&gt;
; [[/Older KDE Versions|Old Versions]]: Instructions for building older KDE versions.&lt;br /&gt;
&lt;br /&gt;
; [[/Coexisting Versions|Coexisting Versions]]: Directions to build multiple KDE versions on the same machine simultaneously.&lt;br /&gt;
&lt;br /&gt;
; [[/FAQ|FAQ]]: Help with errors and other questions you might have.&lt;br /&gt;
&lt;br /&gt;
[[Category:Build KDE]]&lt;/div&gt;</summary>
		<author><name>Logixoul</name></author>	</entry>

	<entry>
		<id>http://techbase.kde.org/Getting_Started</id>
		<title>Getting Started</title>
		<link rel="alternate" type="text/html" href="http://techbase.kde.org/Getting_Started"/>
				<updated>2007-09-09T19:03:32Z</updated>
		
		<summary type="html">&lt;p&gt;Logixoul: moving websvn last&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Template:I18n/Language Navigation Bar|Getting_Started}}&lt;br /&gt;
{{Box|Getting the Source|&lt;br /&gt;
[[Image:Action_down.svg|right|32px]]&lt;br /&gt;
* [[/Sources/Anonymous SVN|Anonymous SVN Quickstart Guide]]&lt;br /&gt;
* [[/Sources/Using Subversion with KDE|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.''&lt;br /&gt;
* [[/Sources/Snapshots|Daily Snapshots]]&lt;br /&gt;
* [http://websvn.kde.org/ Browse Code Online]&lt;br /&gt;
|100%}}&lt;br /&gt;
&lt;br /&gt;
{{Box|Building KDE|&lt;br /&gt;
[[Image:Action_tool.svg|right|32px]]&lt;br /&gt;
There are different KDE branches. For production use, a stable version of KDE is recommended.&lt;br /&gt;
* [[/Build/KDE4|KDE 4 (Development version, trunk)]]&lt;br /&gt;
* [[/Build/Stable Version|KDE 3.5 (Stable version)]]&lt;br /&gt;
* [[/Build|Other versions and FAQ]] ''Including information for building on non-linux systems''&lt;br /&gt;
|100%}}&lt;br /&gt;
&lt;br /&gt;
{{Box|Setting up the Environment|&lt;br /&gt;
[[Image:Action_pen.svg|right|32px]]&lt;br /&gt;
After KDE has been built, you'll want a good way to launch apps and perform your regular development tasks:&lt;br /&gt;
* [[/Increased Productivity in KDE4 with Scripts|Increased Productivity in KDE4 with Scripts]]&lt;br /&gt;
* [[/Set up KDE 4 for development|Set up KDE 4 for development]]&lt;br /&gt;
|100%}}&lt;br /&gt;
[[Category:Build KDE]]&lt;/div&gt;</summary>
		<author><name>Logixoul</name></author>	</entry>

	<entry>
		<id>http://techbase.kde.org/Getting_Started/Build_(fr)</id>
		<title>Getting Started/Build (fr)</title>
		<link rel="alternate" type="text/html" href="http://techbase.kde.org/Getting_Started/Build_(fr)"/>
				<updated>2007-09-09T19:01:10Z</updated>
		
		<summary type="html">&lt;p&gt;Logixoul: rm obsolete alpha&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Template:I18n/Language Navigation Bar|Getting Started/Build}}&lt;br /&gt;
&lt;br /&gt;
Vous trouverez ici toutes les informations nécessaire à la compilation et à l'installation de KDE depuis sont code source ainsi que des suggestions régler les problèmes de compilation.&lt;br /&gt;
== Construire KDE à partir du code source ==&lt;br /&gt;
&lt;br /&gt;
; [[Getting Started/Build/Stable Version|KDE 3.5 (Version stable)]]: Instructions permettant d'installer la dernière version stable de KDE 3.5.&lt;br /&gt;
&lt;br /&gt;
; [[Getting Started/Build/KDE4 (fr)|KDE 4 (Version instable, tronc)]]: Instructions pour installer la dernière et la meilleure version de développement du code source de KDE.&lt;br /&gt;
&lt;br /&gt;
; [[Getting Started/Build/Older KDE Versions|Versions anciennes]]: Instructions ppour compiler d'anciennes versions de KDE.&lt;br /&gt;
&lt;br /&gt;
; [[Getting Started/Build/Coexisting Versions|Versions Coexistantes]]: Indications permettant de compiler et installer différentes versions de KDE sur la même machine simultanément.&lt;br /&gt;
&lt;br /&gt;
; [[Getting Started/Build/FAQ|FAQ]]: Aide a propos des erreurs et d'autres questions que vous pouriez vous poser.&lt;br /&gt;
&lt;br /&gt;
== Liens supplémentaires ==&lt;br /&gt;
* Construire [http://solaris.kde.org/ KDE sur Solaris]&lt;br /&gt;
* Construire [http://www.kdelibs.com/ KDE sur Windows]&lt;br /&gt;
* Construire [[Getting Started/Build/KDE4/Mac_OS_X|KDE sur Mac OS X]]&lt;br /&gt;
* Construire [[Getting Started/Build/KDE4/FreeBSD|KDE sur FreeBSD]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Build KDE]]&lt;/div&gt;</summary>
		<author><name>Logixoul</name></author>	</entry>

	<entry>
		<id>http://techbase.kde.org/Getting_Started/Build_(da)</id>
		<title>Getting Started/Build (da)</title>
		<link rel="alternate" type="text/html" href="http://techbase.kde.org/Getting_Started/Build_(da)"/>
				<updated>2007-09-09T19:00:44Z</updated>
		
		<summary type="html">&lt;p&gt;Logixoul: rm obsolete alpha&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Template:I18n/Language Navigation Bar|Getting Started/Build}}&lt;br /&gt;
Her kan du finde instruktioner til at kompilere og installere KDE fra kildekoden og forslag til hvad man skal gøre når kompileringen ikke går så glat.&lt;br /&gt;
&lt;br /&gt;
== Bygning fra kildekode ==&lt;br /&gt;
&lt;br /&gt;
; [[Getting Started/Build/Stable Version|KDE 3.5 (Stabil version)]]: Instruktioner til at installere den seneste stabile KDE 3.5 udgivelse.&lt;br /&gt;
&lt;br /&gt;
; [[Getting Started/Build/KDE4|KDE 4 (Ustabil version, trunk)]]: Instruktioner til at installere den seneste KDE udviklings kildekode.&lt;br /&gt;
&lt;br /&gt;
; [[Getting Started/Build/Older KDE Versions|Gamle versioner]]: Instruktioner til at bygge ældre versioner af KDE.&lt;br /&gt;
&lt;br /&gt;
; [[Getting Started/Build/Coexisting Versions|Sameksisterende versioner]]: Vejledning til at bygge flere KDE versioner på den samme maskine samtidigt.&lt;br /&gt;
&lt;br /&gt;
; [[Getting Started/Build/FAQ|FAQ]]: Hjælp til fejl og andre spørgsmål du måtte have.&lt;br /&gt;
&lt;br /&gt;
== Yderligere links ==&lt;br /&gt;
* Byg [http://solaris.kde.org/ KDE på Solaris]&lt;br /&gt;
* Byg [http://www.kdelibs.com/ KDE på Windows]&lt;br /&gt;
* Byg [[Getting Started/Build/KDE4/Mac_OS_X|KDE på Mac OS X]]&lt;br /&gt;
* Byg [[Getting Started/Build/KDE4/FreeBSD|KDE å FreeBSD]]&lt;br /&gt;
[[Category:Build KDE]]&lt;/div&gt;</summary>
		<author><name>Logixoul</name></author>	</entry>

	<entry>
		<id>http://techbase.kde.org/Getting_Started/Build/Historic</id>
		<title>Getting Started/Build/Historic</title>
		<link rel="alternate" type="text/html" href="http://techbase.kde.org/Getting_Started/Build/Historic"/>
				<updated>2007-09-09T18:56:20Z</updated>
		
		<summary type="html">&lt;p&gt;Logixoul: rm stuff from the olden times&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;; [[../Compile KDE 3.4|Compiling KDE 3.4.x]]&lt;br /&gt;
: Instructions for installing KDE 3.4.x from source code.&lt;br /&gt;
&lt;br /&gt;
; [[../Compile KDE 3.3|Compiling KDE 3.3.x]]&lt;br /&gt;
: Instructions for installing KDE 3.3.x from source code.&lt;br /&gt;
&lt;br /&gt;
; [[../Compile KDE 3.2|Compiling KDE 3.2.x]]&lt;br /&gt;
: Instructions for installing KDE 3.2.x from source code.&lt;br /&gt;
&lt;br /&gt;
; [[../Compile KDE 3.1|Compiling KDE 3.1.x]]&lt;br /&gt;
: Instructions for installing KDE 3.1.x from source code.&lt;br /&gt;
&lt;br /&gt;
; [[../Compile KDE 3.0|Compiling KDE 3.0.x]]&lt;br /&gt;
: Instructions for installing KDE 3.0.x from source code.&lt;br /&gt;
&lt;br /&gt;
; [[../Compile KDE 2.2.2|Compiling KDE 2.2.2]]&lt;br /&gt;
: Instructions for installing KDE 2.2.2 from source code.&lt;br /&gt;
&lt;br /&gt;
[[Category:Build KDE]]&lt;/div&gt;</summary>
		<author><name>Logixoul</name></author>	</entry>

	<entry>
		<id>http://techbase.kde.org/User:Dhaumann</id>
		<title>User:Dhaumann</title>
		<link rel="alternate" type="text/html" href="http://techbase.kde.org/User:Dhaumann"/>
				<updated>2007-09-09T18:49:46Z</updated>
		
		<summary type="html">&lt;p&gt;Logixoul: typo :)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;todo: integrate (+ validate for kde4) those pages into sane locations ;)&lt;br /&gt;
* Common Programming Mistakes&lt;br /&gt;
: hey, the first one we have not ported yet. should be moved for kde4 into [[Development/Tutorials]] (TODO)&lt;br /&gt;
:: Thinking more about it, it could be an extension of [[Policies/Library_Code_Policy]], i.e. as subpage like [[Policies/Library_Code_Policy/Common Mistakes]] (although it's not only about libraries...)&lt;br /&gt;
* KDE Developer's Checklist&lt;br /&gt;
: looks very old. if migrated, please fix it for kde3 or even kde4 (TODO)&lt;br /&gt;
* What is Scripty?&lt;br /&gt;
: indeed a TODO :)&lt;br /&gt;
&lt;br /&gt;
see: http://developer.kde.org/documentation/other/index.html&lt;/div&gt;</summary>
		<author><name>Logixoul</name></author>	</entry>

	<entry>
		<id>http://techbase.kde.org/Getting_Started/Build</id>
		<title>Getting Started/Build</title>
		<link rel="alternate" type="text/html" href="http://techbase.kde.org/Getting_Started/Build"/>
				<updated>2007-09-09T18:48:50Z</updated>
		
		<summary type="html">&lt;p&gt;Logixoul: rm obsolete alpha instructions&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Template:I18n/Language Navigation Bar|Getting Started/Build}}&lt;br /&gt;
Here you will find instructions for compiling and installing KDE from source and suggestions for when compilation doesn't go so smoothly.&lt;br /&gt;
&lt;br /&gt;
== Building The Source ==&lt;br /&gt;
&lt;br /&gt;
; KDE 4 (Development version, trunk)&lt;br /&gt;
:Instructions for installing the latest and greatest KDE development source code on:&lt;br /&gt;
* [[/KDE4|Linux]] &lt;br /&gt;
* [[/KDE4/FreeBSD|FreeBSD]]&lt;br /&gt;
* [[/KDE4/Windows/GCC_And_MinGW|Microsoft Windows with GCC and MinGW]]&lt;br /&gt;
* [[/KDE4/Windows/MS_Visual_Studio|Microsoft Windows with Microsoft Visual Studio]]&lt;br /&gt;
* [[/KDE4/Mac_OS_X|Mac OS X]]&lt;br /&gt;
&lt;br /&gt;
; [[/Stable Version|KDE 3.5 (Stable version)]]: Instructions for installing the latest stable KDE 3.5 release.&lt;br /&gt;
&lt;br /&gt;
; [[/Older KDE Versions|Old Versions]]: Instructions for building older KDE versions.&lt;br /&gt;
&lt;br /&gt;
; [[/Coexisting Versions|Coexisting Versions]]: Directions to build multiple KDE versions on the same machine simultaneously.&lt;br /&gt;
&lt;br /&gt;
; [[/FAQ|FAQ]]: Help with errors and other questions you might have.&lt;br /&gt;
&lt;br /&gt;
== Further Links ==&lt;br /&gt;
* Build [http://solaris.kde.org/ KDE on Solaris]&lt;br /&gt;
&lt;br /&gt;
[[Category:Build KDE]]&lt;/div&gt;</summary>
		<author><name>Logixoul</name></author>	</entry>

	<entry>
		<id>http://techbase.kde.org/Getting_Started</id>
		<title>Getting Started</title>
		<link rel="alternate" type="text/html" href="http://techbase.kde.org/Getting_Started"/>
				<updated>2007-09-09T18:43:38Z</updated>
		
		<summary type="html">&lt;p&gt;Logixoul: rm superfluous introduction that's also inaccurate&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Template:I18n/Language Navigation Bar|Getting_Started}}&lt;br /&gt;
{{Box|Getting the Source|&lt;br /&gt;
[[Image:Action_down.svg|right|32px]]&lt;br /&gt;
* [[/Sources/Anonymous SVN|Anonymous SVN Quickstart Guide]]&lt;br /&gt;
* [[/Sources/Using Subversion with KDE|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.''&lt;br /&gt;
* [http://websvn.kde.org/ Browse Code Online]&lt;br /&gt;
* [[/Sources/Snapshots|Daily Snapshots]]&lt;br /&gt;
|100%}}&lt;br /&gt;
&lt;br /&gt;
{{Box|Building KDE|&lt;br /&gt;
[[Image:Action_tool.svg|right|32px]]&lt;br /&gt;
There are different KDE branches. For production use, a stable version of KDE is recommended.&lt;br /&gt;
* [[/Build/KDE4|KDE 4 (Development version, trunk)]]&lt;br /&gt;
* [[/Build/Stable Version|KDE 3.5 (Stable version)]]&lt;br /&gt;
* [[/Build|Other versions and FAQ]] ''Including information for building on non-linux systems''&lt;br /&gt;
|100%}}&lt;br /&gt;
&lt;br /&gt;
{{Box|Setting up the Environment|&lt;br /&gt;
[[Image:Action_pen.svg|right|32px]]&lt;br /&gt;
After KDE has been built, you'll want a good way to launch apps and perform your regular development tasks:&lt;br /&gt;
* [[/Increased Productivity in KDE4 with Scripts|Increased Productivity in KDE4 with Scripts]]&lt;br /&gt;
* [[/Set up KDE 4 for development|Set up KDE 4 for development]]&lt;br /&gt;
|100%}}&lt;br /&gt;
[[Category:Build KDE]]&lt;/div&gt;</summary>
		<author><name>Logixoul</name></author>	</entry>

	<entry>
		<id>http://techbase.kde.org/Welcome_to_KDE_TechBase</id>
		<title>Welcome to KDE TechBase</title>
		<link rel="alternate" type="text/html" href="http://techbase.kde.org/Welcome_to_KDE_TechBase"/>
				<updated>2007-09-09T18:41:50Z</updated>
		
		<summary type="html">&lt;p&gt;Logixoul: &amp;quot;KDE and its applications&amp;quot; is a tautology - part of KDE's definition is its applications&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Template:I18n/Language Navigation Bar|Welcome to KDE TechBase}}&lt;br /&gt;
{| style=&amp;quot;margin: 1em 2.5% 0 2.5%; padding: 0 5px;&amp;quot; cellpadding=&amp;quot;5&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|colspan=2|[[Image:Discover.png|noframe]]&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;padding-left: 50px;&amp;quot; |[[Image:Action_launch.svg|noframe|left|40px]] ||&lt;br /&gt;
;[[Getting Started|Setting up a KDE development environment]]&lt;br /&gt;
:Learn how to get, build and run KDE.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;padding-left: 50px;&amp;quot;|[[Image:Action_configure.svg|noframe|left|40px]] ||&lt;br /&gt;
;[[Development|Developing with KDE]]&lt;br /&gt;
:[[Development/Tutorials|Tutorials]] | [http://api.kde.org API Documentation] | [[Development/FAQs|FAQs]] and more.&lt;br /&gt;
:''Related'': [[Schedules|Release Schedules and Feature Plans]]&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;padding-left: 50px;&amp;quot;|[[Image:Devices_system.svg|noframe|left|40px]] ||&lt;br /&gt;
;[[KDE System Administration]]&lt;br /&gt;
:Information for system administrators managing KDE deployments. &lt;br /&gt;
|-&lt;br /&gt;
|colspan=2|[[Image:Interact.png|noframe]]&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;padding-left: 50px;&amp;quot;|[[Image:Action_favorites.svg|noframe|left|40px]] ||&lt;br /&gt;
;[[Contribute|Join the KDE Team and Contribute]]&lt;br /&gt;
:Contribute patches, keep in touch with and join our community.&lt;br /&gt;
:''Related:'' [[Policies|KDE Project Policies]] | [http://www.kde.org/support/support.php Donate Money]&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;padding-left: 50px;&amp;quot;|[[Image:Action_contents.svg|noframe|left|40px]] ||&lt;br /&gt;
;[[ISV|ISV Information]]&lt;br /&gt;
:Developer information for Independent Software Vendors.&lt;br /&gt;
|-&lt;br /&gt;
|colspan=2|[[Image:Develop.png|noframe]]&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;padding-left: 50px;&amp;quot; |[[Image:Action_wizard.svg|noframe|left|40px]] ||&lt;br /&gt;
;[[Projects|KDE projects]]&lt;br /&gt;
:Links to development wikis, task lists, etc. for various KDE Projects.&lt;br /&gt;
&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Logixoul</name></author>	</entry>

	<entry>
		<id>http://techbase.kde.org/User:Logixoul</id>
		<title>User:Logixoul</title>
		<link rel="alternate" type="text/html" href="http://techbase.kde.org/User:Logixoul"/>
				<updated>2007-09-09T18:38:14Z</updated>
		
		<summary type="html">&lt;p&gt;Logixoul: New page: If you disagree with my edits (I'm not too careful :p), try and hunt me down on IRC - I'm online most of the time.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;If you disagree with my edits (I'm not too careful :p), try and hunt me down on IRC - I'm online most of the time.&lt;/div&gt;</summary>
		<author><name>Logixoul</name></author>	</entry>

	<entry>
		<id>http://techbase.kde.org/Getting_Started/Sources/Anonymous_SVN</id>
		<title>Getting Started/Sources/Anonymous SVN</title>
		<link rel="alternate" type="text/html" href="http://techbase.kde.org/Getting_Started/Sources/Anonymous_SVN"/>
				<updated>2007-09-09T18:36:48Z</updated>
		
		<summary type="html">&lt;p&gt;Logixoul: trim&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Template:I18n/Language Navigation Bar|Getting Started/Sources/Anonymous SVN}}&lt;br /&gt;
{{TutorialBrowser|&lt;br /&gt;
&lt;br /&gt;
series=Getting Started|&lt;br /&gt;
&lt;br /&gt;
name=Getting KDE Sources Using Anonymous Subversion (SVN)|&lt;br /&gt;
&lt;br /&gt;
next=[[../../Build/KDE4|Building KDE4]]|&lt;br /&gt;
&lt;br /&gt;
reading=[http://svnbook.red-bean.com/ Version Control with Subversion]|&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== Abstract ==&lt;br /&gt;
&lt;br /&gt;
For those of us that like to stay on the &amp;quot;bleeding edge&amp;quot; there's an easy way to keep a local copy of the KDE sources up-to-date - anonymous SVN.&lt;br /&gt;
&lt;br /&gt;
Please note that several Linux distributions now already provide KDE SVN packages, so '''building Qt and KDE from source may well not be necessary for you at all! '''See [[Getting_Started/Distribution_Packages]] for instructions and information.&lt;br /&gt;
&lt;br /&gt;
== Anonymous SVN ==&lt;br /&gt;
&lt;br /&gt;
=== Setup Subversion ===&lt;br /&gt;
&lt;br /&gt;
First, install the subversion (svn) binary if it isn't already on your computer. Your operating system should have a package for it. Alternatively you can download and compile it yourself via the [http://subversion.tigris.org/project_packages.html svn project download page]. Please read the [[Getting_Started/Sources/Using_Subversion_with_KDE|KDE Subversion tutorial]] if you are interested in how to use Subversion.&lt;br /&gt;
&lt;br /&gt;
=== Checkout KDE ===&lt;br /&gt;
&lt;br /&gt;
'''/trunk/''' is where the Qt4-based KDE 4 is being developed. The following is the minimal set of modules you will need to check out to build KDE and KDE software:&lt;br /&gt;
      &lt;br /&gt;
 svn co svn://anonsvn.kde.org/home/kde/trunk/KDE/kdelibs&lt;br /&gt;
 svn co svn://anonsvn.kde.org/home/kde/trunk/KDE/kdebase&lt;br /&gt;
&lt;br /&gt;
{{tip|Only use &amp;quot;'''svn co'''&amp;quot; for the initial checkout, you will update your local sources afterwards by using &amp;quot;'''svn up''' ''modulename''&amp;quot; or &amp;quot;'''svn update''' ''modulename''&amp;quot;.}}&lt;br /&gt;
&lt;br /&gt;
{{tip|If your firewall doesn't allow access to arbitrary ports, substitute '''svn://anonsvn.kde.org/''' with '''svn://websvn.kde.org:443/''' above.}}&lt;br /&gt;
&lt;br /&gt;
'''qt-copy''' is a copy of the latest stable [http://www.trolltech.com Qt] release which works with KDE, put into SVN for convenience. It also contains patches by KDE developers that haven't found their way to Qt yet. They are recommended for those working with KDE from '''trunk'''. You can obtain '''qt-copy''' by doing:&lt;br /&gt;
&lt;br /&gt;
 svn co svn://anonsvn.kde.org/home/kde/trunk/qt-copy&lt;br /&gt;
&lt;br /&gt;
If you wish to have a complete copy of the KDE distribution, you can simply check out the entire source tree with one command:&lt;br /&gt;
&lt;br /&gt;
 svn co svn://anonsvn.kde.org/home/kde/trunk/KDE&lt;br /&gt;
&lt;br /&gt;
{{note|It is smarter to first use [http://websvn.kde.org/trunk/KDE The KDE Source Repository Web Viewer]. Use it to choose which modules to download. This way KDE will be quicker to install and try out.}}&lt;br /&gt;
&lt;br /&gt;
If you want additional software packages you can check out the following modules within '''trunk/''' as well:&lt;br /&gt;
&lt;br /&gt;
 koffice&lt;br /&gt;
 extragear&lt;br /&gt;
 playground&lt;br /&gt;
 kdereview&lt;br /&gt;
&lt;br /&gt;
So, for example, if you want to check out koffice trunk, you can use &lt;br /&gt;
&lt;br /&gt;
 svn co svn://anonsvn.kde.org/home/kde/trunk/koffice&lt;br /&gt;
&lt;br /&gt;
=== Checking out trunk using snapshots ===&lt;br /&gt;
&lt;br /&gt;
If you are checking out modules from '''trunk/''' you may be able to save time by using snapshots.  Using Subversion trunk snapshots is described at [[../Snapshots|the Subversion snapshots tutorial page]].&lt;br /&gt;
&lt;br /&gt;
=== Checking out KDE 3 instead ===&lt;br /&gt;
&lt;br /&gt;
If you want to track KDE 3 rather than the bleeding edge, you may retrieve the KDE 3.5 sources using:&lt;br /&gt;
&lt;br /&gt;
 svn co svn://anonsvn.kde.org/home/kde/branches/arts/1.5/arts&lt;br /&gt;
 svn co svn://anonsvn.kde.org/home/kde/branches/KDE/3.5/&lt;br /&gt;
&lt;br /&gt;
And if you want the matching qt-copy:&lt;br /&gt;
 svn co svn://anonsvn.kde.org/home/kde/branches/qt/3.3/qt-copy&lt;br /&gt;
&lt;br /&gt;
=== Checking out specific releases ===&lt;br /&gt;
&lt;br /&gt;
KDE modules are also tagged at each release so that it is possible to get a specific release of KDE. Most KDE modules have a tag name in the format '''tags/KDE/X.Y.Z''' (where X, Y and Z represent the exact version). The arts module (only needed for KDE 2 and KDE 3) has a different format of tag name, '''tags/arts/X.Y.Z'''. For instance to get kdelibs as it was shipped in KDE 3.5.0, do: &lt;br /&gt;
&lt;br /&gt;
 svn co svn://anonsvn.kde.org/home/kde/tags/KDE/3.5.0/kdelibs/&lt;br /&gt;
&lt;br /&gt;
If you then want to update this checkout to KDE 3.5.5, use this command:&lt;br /&gt;
&lt;br /&gt;
 svn switch svn://anonsvn.kde.org/home/kde/tags/KDE/3.5.5/kdelibs&lt;br /&gt;
&lt;br /&gt;
{{tip|If you used a '''/branch/''' or '''/trunk/''' path, then there is no need to switch, just run '''svn update'''.}}&lt;br /&gt;
&lt;br /&gt;
{{tip|[http://websvn.kde.org/tags/ WebSVN] is a convenient way to check for a tag name.}}&lt;br /&gt;
&lt;br /&gt;
=== Checking out translations ===&lt;br /&gt;
If you are looking for translations and other localizations, check out the appropriate language from the [http://websvn.kde.org/trunk/l10n l10n] module. &lt;br /&gt;
&lt;br /&gt;
{{Warning|The l10n module is ''extremely'' large. Be sure you have lots of time and disk space on hand before checking out the entire l10n module. Most people only check out specific language subdirectories rather than the entire l10n module.}}&lt;br /&gt;
&lt;br /&gt;
You are now ready to start building KDE! Visit [[Getting_Started/Build/KDE4|this page]] for instructions on building trunk or [[Getting_Started/Build/Stable_Version|this page]] for instruction on compiling the last stable release.&lt;br /&gt;
&lt;br /&gt;
== Also of interest ==&lt;br /&gt;
* anonsvn.kde.org is located in Tuebingen, Germany, maintained by [mailto:dirk@kde.org Dirk Mueller] However, a more local mirror could be faster for you than anonsvn.kde.org itself. Current mirrors are, sorted by performance:&lt;br /&gt;
** kde.mneisen.org is located near Nuernberg, Germany, maintained by [mailto:martin.eisenhardt@mneisen.org Martin Eisenhardt]&lt;br /&gt;
** www.englishbreakfastnetwork.org also hosts an anonymous SVN mirror, at the University of Nijmegen, Netherlands. Maintained by [mailto:groot@kde.org Adriaan de Groot]&lt;br /&gt;
** svn://azkaban.caltech.edu is located near Los Angeles, USA and is maintained by [mailto:eugen.plamadeala@gmail.com Eugeniu Plamadeala]. It has the same folder hierarchy as anonsvn.kde.org.&lt;br /&gt;
: Be careful when switching between mirrors. SVN remembers the server in the working copy, so to switch you have to run&lt;br /&gt;
 svn switch --relocate svn://anonsvn.kde.org/ svn://kde.mneisen.org/&lt;br /&gt;
: in all your checkouts.&lt;br /&gt;
If you're interested in setting up a svn mirror, please contact [mailto:mueller@kde.org Dirk Mueller].&lt;br /&gt;
&lt;br /&gt;
[[Category:Build KDE]]&lt;/div&gt;</summary>
		<author><name>Logixoul</name></author>	</entry>

	<entry>
		<id>http://techbase.kde.org/Getting_Started/Build/KDE4</id>
		<title>Getting Started/Build/KDE4</title>
		<link rel="alternate" type="text/html" href="http://techbase.kde.org/Getting_Started/Build/KDE4"/>
				<updated>2007-09-09T18:35:07Z</updated>
		
		<summary type="html">&lt;p&gt;Logixoul: /* Required Software */ brevity&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Template:I18n/Language Navigation Bar|Getting_Started/Build/KDE4}}&lt;br /&gt;
&lt;br /&gt;
{{TutorialBrowser|&lt;br /&gt;
&lt;br /&gt;
series=Getting Started|&lt;br /&gt;
&lt;br /&gt;
name=Building KDE4 From Source|&lt;br /&gt;
&lt;br /&gt;
pre=[[../../Sources/Anonymous_SVN|Anonymous SVN Quickstart Guide]]|&lt;br /&gt;
&lt;br /&gt;
next=[[../../Set_up_KDE_4_for_development|Set up KDE 4 for development]]|&lt;br /&gt;
&lt;br /&gt;
reading=[http://kdesvn-build.kde.org/ kdesvn-build: The KDE From Subversion Build Tool]&amp;lt;br&amp;gt;[[../../Increased_Productivity_in_KDE4_with_Scripts|Increased Productivity in KDE4 with Scripts]]&amp;lt;br&amp;gt;[[Development/Tutorials/CMake |Introduction to CMake]]&amp;lt;br&amp;gt;[[../KDE4/FreeBSD|FreeBSD notes]]&amp;lt;br&amp;gt;[[../KDE4/Mac OS X|Instructions for Mac OS X]]&amp;lt;br&amp;gt;[[../KDE4/Windows|Instructions for MS Windows]]|&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== Abstract ==&lt;br /&gt;
&lt;br /&gt;
This tutorial shows one way to get KDE from trunk running on Linux/BSD systems. There are also tutorials for [[/FreeBSD|FreeBSD]], [http://www.kdelibs.com/ Windows], [[/Mac OS X|Mac OS X]] and [http://solaris.kde.org/ Solaris]. Throughout the tutorial the bash shell is used.&lt;br /&gt;
&lt;br /&gt;
{{warning|Expect a higher risk of build failure '''on Mondays''' when most kdelibs changes are committed. [http://developer.kde.org/~dirk/dashboard/ Dashboard] reports unexpected breakages. You are encouraged to fix failing modules.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== Required Software ==&lt;br /&gt;
&lt;br /&gt;
The following must be installed first before you can successfully complete this tutorial:&lt;br /&gt;
* gcc and g++, preferably version 4.1 or higher&lt;br /&gt;
* svn, the subversion revision control client&lt;br /&gt;
* pkg-config&lt;br /&gt;
* development libraries and headers for X11, OpenGL (mesa-common-dev and libglu1-mesa-dev), libjpeg, libpng, libungif, [http://clucene.sourceforge.net/index.php/Downloads libclucene], [http://download.librdf.org/source/ librdf], libxml2 and libxslt&lt;br /&gt;
* the &amp;lt;tt&amp;gt;makeobj&amp;lt;/tt&amp;gt; script, which is part of kdesdk. You can install it as part of kdesdk (kdesdk-scripts on Debian) or similar package, or just download it itself from [http://websvn.kde.org/*checkout*/trunk/KDE/kdesdk/scripts/makeobj WebSVN]&lt;br /&gt;
* the [http://freedesktop.org/wiki/Software/shared-mime-info shared-mime-info package], which is the freedesktop MIME standard KDE is using now&lt;br /&gt;
* [http://boost.org/ boost], needed by kdebase; after compiling and/or installing boost, in order to make cmake aware about its location (FindBoost),  add boost directory (the one containing include subdirectory) to CMAKE_INCLUDE_PATH or set an environment variable called BOOST_ROOT pointing to boost directory.&lt;br /&gt;
&lt;br /&gt;
=== Ark Linux ===&lt;br /&gt;
In Ark Linux, the build dependencies you need are installed with:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code bash&amp;gt;&lt;br /&gt;
apt-get install devel-core libxml-devel libxslt-devel bzip2-devel \&lt;br /&gt;
clucene-devel librdf-devel shared-mime-info xorg-Mesa-libGL-devel \&lt;br /&gt;
subversion boost-devel doxygen giflib-devel dbus-devel openssl-devel \&lt;br /&gt;
alsa-lib-devel kdesdk-scripts qt4-devel&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you prefer a graphical interface, select the packages listed above in the &amp;quot;Install Software&amp;quot; tool in Mission Control.&lt;br /&gt;
&lt;br /&gt;
This includes installation of CMake, DBus and Qt - you can skip steps 5, 6 and 7.&lt;br /&gt;
&lt;br /&gt;
=== Kubuntu and Debian ===&lt;br /&gt;
&lt;br /&gt;
In Kubuntu 7.04 (Feisty) and Debian (Testing/Unstable) the build dependencies you need are installed with:&lt;br /&gt;
&amp;lt;code bash&amp;gt;&lt;br /&gt;
sudo aptitude install build-essential cdbs debhelper cmake \&lt;br /&gt;
libxml2-dev libxslt1-dev libbz2-dev libclucene-dev librdf-dev \&lt;br /&gt;
shared-mime-info libgl1-mesa-dev libglu1-mesa-dev mesa-common-dev \&lt;br /&gt;
libxext-dev libjpeg-dev libpng-dev subversion libsm-dev libxinerama-dev \&lt;br /&gt;
libxrender-dev libfontconfig-dev libboost-dev libxcursor-dev doxygen \&lt;br /&gt;
libungif4-dev libdbus-1-dev libgpgme11-dev libssl-dev libgpgme11-dev \&lt;br /&gt;
libasound2-dev kdesdk-scripts libpth-dev libjasper-dev ssh&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In Kubuntu 7.10 (Gutsy) you have to add:&lt;br /&gt;
&amp;lt;code bash&amp;gt;&lt;br /&gt;
sudo aptitude install dbus-x11&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For a fully functional API documentation framework you also need:&lt;br /&gt;
&amp;lt;code bash&amp;gt;&lt;br /&gt;
sudo aptitude install graphviz&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== openSUSE ===&lt;br /&gt;
&lt;br /&gt;
In openSUSE 10.2 and newer, you can install packages using [http://en.opensuse.org/Zypper Zypper]:&lt;br /&gt;
&amp;lt;code bash&amp;gt;&lt;br /&gt;
sudo zypper install &amp;lt;package-name&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In older releases of SUSE, you can use YaST:&lt;br /&gt;
&amp;lt;code bash&amp;gt;&lt;br /&gt;
su&lt;br /&gt;
yast -i &amp;lt;packagename&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Required Packages'''&lt;br /&gt;
&lt;br /&gt;
The packages you will need to install are:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
xorg-x11-devel&lt;br /&gt;
libxml2-devel &lt;br /&gt;
kdesdk3 &lt;br /&gt;
clucene-core-devel &lt;br /&gt;
boost-devel&lt;br /&gt;
libjpeg-devel &lt;br /&gt;
liblrdf-devel &lt;br /&gt;
libpng-devel &lt;br /&gt;
libxslt-devel &lt;br /&gt;
libredland-devel&lt;br /&gt;
Mesa-devel &lt;br /&gt;
giflib-devel &lt;br /&gt;
subversion &lt;br /&gt;
gcc &lt;br /&gt;
gcc-c++&lt;br /&gt;
gmp-devel (needed to build kdesupport)&lt;br /&gt;
strigi-devel (needed to build kdelibs)&lt;br /&gt;
gpgme-devel (needed to build kdepimlibs)&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Optional Packages'''&lt;br /&gt;
&lt;br /&gt;
You can skip the manual installation of Qt 4.3, CMake 2.4.6 and DBus by installing the adding the openSUSE Build Service KDE4 Repository to your installation sources.&lt;br /&gt;
&lt;br /&gt;
For openSUSE 10.2 and newer do:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
sudo zypper service-add http://software.opensuse.org/download/KDE:/KDE4/openSUSE_10.2 KDE4-102&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For older versions of SUSE Linux do:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
su&lt;br /&gt;
installation_sources -a http://software.opensuse.org/download/KDE:/KDE4/[YOUR SUSE LINUX VERSION]&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now install the following packages (and their dependencies):&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
cmake&lt;br /&gt;
dbus-1-devel&lt;br /&gt;
libqt4-devel&lt;br /&gt;
libqca2-devel (needed for building kdesupport)&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
And for fully functional apidox framework you also need:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
graphviz&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
CMake binary packages for openSUSE are available from [http://software.opensuse.org/download/devel:/tools:/building/ openSUSE build service].&lt;br /&gt;
&lt;br /&gt;
=== Gentoo ===&lt;br /&gt;
&lt;br /&gt;
==== Install by hand ====&lt;br /&gt;
&lt;br /&gt;
You can use stable ebuilds just remember to sync your portage before you begin.&lt;br /&gt;
&lt;br /&gt;
Remember: All commands are executed as root.&lt;br /&gt;
&lt;br /&gt;
Required:&lt;br /&gt;
&lt;br /&gt;
We need to allow the following keyword masked ebuilds.&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;code bash&amp;gt;&lt;br /&gt;
echo 'dev-util/cmake' &amp;gt;&amp;gt; /etc/portage/package.keywords&lt;br /&gt;
echo 'dev-cpp/clucene' &amp;gt;&amp;gt; /etc/portage/package.keywords&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Optional:&lt;br /&gt;
&lt;br /&gt;
If you decide not to use the KDE qt-copy, you need to keyword unmask Qt.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code bash&amp;gt;&lt;br /&gt;
echo 'x11-libs/qt' &amp;gt;&amp;gt; /etc/portage/package.keywords&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
And now need to mask any Clucene versions above 0.9.16a.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code bash&amp;gt;&lt;br /&gt;
echo '&amp;gt;dev-cpp/clucene-0.9.16a' &amp;gt;&amp;gt; /etc/portage/package.mask&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Make sure you have set the berkdb USE flag for redland, otherwise nepomuk won't work.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code bash&amp;gt;&lt;br /&gt;
echo 'dev-libs/redland berkdb' &amp;gt;&amp;gt; /etc/portage/package.use&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
These are the packages you will need to emerge, I included the update option into the emerge command so you will not re-emerge anything that you might already have installed.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code bash&amp;gt;&lt;br /&gt;
emerge -avu 'sys-devel/gcc' \&lt;br /&gt;
  'dev-util/subversion' \&lt;br /&gt;
  'dev-util/pkgconfig'  \&lt;br /&gt;
  'x11-base/xorg-x11' \&lt;br /&gt;
  'virtual/glut' \&lt;br /&gt;
  'media-libs/mesa' \&lt;br /&gt;
  'media-libs/jpeg' \&lt;br /&gt;
  'media-libs/libpng' \&lt;br /&gt;
  'media-libs/giflib' \&lt;br /&gt;
  'dev-cpp/clucene' \&lt;br /&gt;
  'dev-util/cppunit' \&lt;br /&gt;
  'media-libs/liblrdf' \&lt;br /&gt;
  'dev-libs/libxml2' \&lt;br /&gt;
  'dev-libs/libxslt' \&lt;br /&gt;
  'x11-misc/shared-mime-info' \&lt;br /&gt;
  'dev-libs/boost' \&lt;br /&gt;
  'dev-util/cmake' \&lt;br /&gt;
  'dev-libs/redland' \&lt;br /&gt;
  'sys-apps/dbus' \&lt;br /&gt;
  'sys-apps/hal'&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
You will also need to emerge either 'kde-base/kdesdk' or kde-base/kdesdk-scripts'.&lt;br /&gt;
&lt;br /&gt;
Optional:&lt;br /&gt;
&lt;br /&gt;
If you decided to use Gentoo's version of Qt4, you can emerge it using the following command.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code bash&amp;gt;&lt;br /&gt;
emerge -avu 'x11-libs/qt'&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
If you emerged DBUS, CMAKE, QT or HAL you may skip those sections respectively.&lt;br /&gt;
Good luck!&lt;br /&gt;
&lt;br /&gt;
==== Install via portage ====&lt;br /&gt;
&lt;br /&gt;
Also you can install the KDE 4 packages directly via &lt;br /&gt;
&amp;lt;code bash&amp;gt;&lt;br /&gt;
emerge -a &amp;lt;packagename&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To get the things you need, [http://gentoo-wiki.com/TIP_Overlays#Layman install layman] and then pull in the KDE overlay (which contains experimental KDE ebuilds): &lt;br /&gt;
&amp;lt;code bash&amp;gt;&lt;br /&gt;
layman -a kde&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
After this you need to adjust some USE-flags for KDE 4 and tell portage to use the testing KDE 4 ebuilds instead of the stable KDE 3 ones. &lt;br /&gt;
&lt;br /&gt;
That way portage will do the dependency tracking for you. &lt;br /&gt;
&lt;br /&gt;
Detailed instructions on building KDE 4 in Gentoo via portage can be found in the [http://overlays.gentoo.org/proj/kde/wiki KDE overlay wiki]. They are discussed in the thread [http://forums.gentoo.org/viewtopic-t-530111-postdays-0-postorder-asc-start-0.html KDE 4 monolithic ebuilds].&lt;br /&gt;
&lt;br /&gt;
== Create a user account for KDE4 development ==&lt;br /&gt;
&lt;br /&gt;
{{Note|&lt;br /&gt;
Some people like to have a separate user account for KDE 4 (for instance an old bug deleted files by mistake), and the instructions below were written with that approach.&lt;br /&gt;
&lt;br /&gt;
However it is much more efficient to do everything with a single user account, see [[Getting_Started/Increased_Productivity_in_KDE4_with_Scripts|Increased Productivity in KDE4 with Scripts]]&lt;br /&gt;
for more details. &lt;br /&gt;
&lt;br /&gt;
You can still follow the instructions below, but don't put the environment variables in your &amp;lt;tt&amp;gt;.bashrc&amp;lt;/tt&amp;gt;, put them in a separate file that you source to switch to the KDE 4 environment.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
=== Option 1: Command Line ===&lt;br /&gt;
&amp;lt;code bash&amp;gt;&lt;br /&gt;
useradd -m kde-devel&lt;br /&gt;
passwd kde-devel&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Option 2: Using KControl ===&lt;br /&gt;
&lt;br /&gt;
Instead of using the commands above, you can also use the User module in the KDE Control Center if you already have KDE3 installed.&lt;br /&gt;
&lt;br /&gt;
=== Setting up the environment ===&lt;br /&gt;
&lt;br /&gt;
Copy the {{path|~/.bashrc}} from your normal user account to the new kde-devel account. Next, copy and paste the contents of the [[Getting Started/Increased Productivity in KDE4 with Scripts/.bashrc|example .bashrc]] into {{path|~kde-devel/.bashrc}}. Be sure to comment out the line &amp;lt;tt&amp;gt;alias make=makeobj&amp;lt;/tt&amp;gt; if you do not have the &amp;lt;tt&amp;gt;[[Getting Started/Build/KDE4#Required Software|makeobj]]&amp;lt;/tt&amp;gt; command available. You will probably also want to modify the path to make sure it doesn't include your kde3 paths. Also if you want to use KDevelop to develop KDE 4 applications you may pass the ''-GKDevelop3'' flag to the ''cmake'' command (to make CMake generate KDevelop project files, it will help to avoid rebuilding in the future, see [[Getting_Started/Set_up_KDE_4_for_development#Setting_up_the_environment|this]]).  &lt;br /&gt;
To make it run, you have to open a new bash or to execute &lt;br /&gt;
&amp;lt;code bash&amp;gt;&lt;br /&gt;
source ~/.bashrc&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This will provide access to commands such as &amp;lt;tt&amp;gt;cmakekde&amp;lt;/tt&amp;gt; that are used in this tutorial as well as ensure that the proper paths are in place for Qt, KDE and CMake binaries.&lt;br /&gt;
&lt;br /&gt;
For more information, please read the [[Getting Started/Increased Productivity in KDE4 with Scripts]] tutorial.&lt;br /&gt;
&lt;br /&gt;
=== Switching to the New User ===&lt;br /&gt;
Switch to the user kde-devel: (don't forget the dash)&lt;br /&gt;
&amp;lt;code bash&amp;gt;&lt;br /&gt;
ssh -X kde-devel@localhost&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== The development user's shell ==&lt;br /&gt;
&lt;br /&gt;
On some systems a new user is configured by default to use {{path|/bin/sh}}. If this is not the case on your system, you can skip this section. Using {{path|/bin/sh}} can be very inconvenient to work with and you may want to change it to {{path|/bin/bash}} or another shell.&lt;br /&gt;
On Ark Linux, you can skip this step - {{path|/bin/sh}} is {{path|bash}} on Ark Linux.&lt;br /&gt;
&lt;br /&gt;
=== Option 1: As the kde-devel user ===&lt;br /&gt;
&lt;br /&gt;
If you don't have root privileges and your system supports the changing of your own shell with the &amp;lt;tt&amp;gt;chsh&amp;lt;/tt&amp;gt; application, then you could try to change your shell to {{path|/bin/bash}} by using:&lt;br /&gt;
&amp;lt;code bash&amp;gt;&lt;br /&gt;
chsh -s /bin/bash kde-devel&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Option 2: As the root user ===&lt;br /&gt;
&lt;br /&gt;
If your system comes with the &amp;lt;tt&amp;gt;usermod&amp;lt;/tt&amp;gt; application you can run the following command as root: &amp;lt;tt&amp;gt;usermod -s /bin/bash&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Another option is to use the &amp;lt;tt&amp;gt;vipw&amp;lt;/tt&amp;gt; application as root to safely edit your {{path|/etc/passwd}}. Locate 'kde-devel' in the the file. Change '{{path|/bin/sh}}' at the end of the line to read '{{path|/bin/bash}}', save your changes and exit.&lt;br /&gt;
&lt;br /&gt;
The new shell will be started automatically when you log in as the kde-devel user again.&lt;br /&gt;
&lt;br /&gt;
== D-Bus ==&lt;br /&gt;
QtDBus and KDE are known to work with D-Bus versions 0.62, as well as 0.92 and upwards. Versions 0.60 and 0.61 may work too but are not tested. Versions 0.90 and 0.91 are known not to work. We recommend using post-1.0 release versions (at least 0.94), so consider upgrading if you haven't done so.&lt;br /&gt;
&lt;br /&gt;
You may skip this section if you have a recent D-Bus version or if you don't want to upgrade. You probably want to skip building the bindings until/unless you know you will be building HAL (see below).&lt;br /&gt;
&lt;br /&gt;
Before running these steps in the recipe, make sure your X11 headers and libraries are available. The configure script run on line 5 of the following instructions should output:&lt;br /&gt;
 Building X11 code:        yes&lt;br /&gt;
&lt;br /&gt;
=== The Recipe ===&lt;br /&gt;
&lt;br /&gt;
{{tip|Make sure you did set up your environment correctly as described [[Getting_Started/Build/KDE4#Setting_up_the_environment|above]]. This is necessary for the &amp;lt;tt&amp;gt;cs&amp;lt;/tt&amp;gt; and &amp;lt;tt&amp;gt;cb&amp;lt;/tt&amp;gt; functions to work.}}&lt;br /&gt;
&lt;br /&gt;
 cs # [[Getting_Started/Increased_Productivity_in_KDE4_with_Scripts/.bashrc|'cs' is a bash function, click here to learn more]] &lt;br /&gt;
 wget http://dbus.freedesktop.org/releases/dbus/dbus-1.0.2.tar.gz&lt;br /&gt;
 tar -xvzf dbus-1.0.2.tar.gz&lt;br /&gt;
 cd dbus-1.0.2/&lt;br /&gt;
 ./configure --prefix=$DBUSDIR --localstatedir=/var&lt;br /&gt;
 make&lt;br /&gt;
 sudo make install&lt;br /&gt;
 sudo dbus-uuidgen --ensure&lt;br /&gt;
&lt;br /&gt;
 cs # see above&lt;br /&gt;
 wget http://dbus.freedesktop.org/releases/dbus-glib/dbus-glib-0.74.tar.gz&lt;br /&gt;
 tar -xvzf dbus-glib-0.74.tar.gz&lt;br /&gt;
 cd dbus-glib-0.74/&lt;br /&gt;
 ./configure --prefix=$DBUSDIR&lt;br /&gt;
 make&lt;br /&gt;
 sudo make install&lt;br /&gt;
&lt;br /&gt;
=== What's Happening === &lt;br /&gt;
After changing into the source directory (line 1), D-Bus source code is downloaded from freedesktop.org (line 2) and unpacked (line 3). After going into the newly created D-Bus directory (line 4), the build is set up using the supplied {{path|configure}} script (line 5). After building (line 6) and installing (line 7) D-Bus, we use the &amp;lt;tt&amp;gt;dbus-uuidgen&amp;lt;/tt&amp;gt; tool to install a machine identification file that allows the bus to start automatically when the desktop session starts (line 8).&lt;br /&gt;
&lt;br /&gt;
Note that you need write access to {{path|/var}} for the last two steps. If your system does not have the sudo command, you can use the &amp;lt;tt&amp;gt;su&amp;lt;/tt&amp;gt; command instead, e.g. &amp;lt;tt&amp;gt;su -c &amp;quot;make install&amp;quot;&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
The steps for building the glib bindings are similar to the above.&lt;br /&gt;
&lt;br /&gt;
== CMake ==&lt;br /&gt;
Skip this if you have [http://cmake.org/ CMake] &amp;gt;=2.4.5 installed. &lt;br /&gt;
You should be able to directly use the binary packages available on the [http://www.cmake.org/HTML/Download.html CMake site]. There are also distribution specific packages available.&lt;br /&gt;
&lt;br /&gt;
=== The Recipe ===&lt;br /&gt;
&amp;lt;!--'cs' and 'cb' are NOT typos!--&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 cs # [[Getting_Started/Increased_Productivity_in_KDE4_with_Scripts/.bashrc|'cs' is a bash function, click Here to learn more]] &lt;br /&gt;
 wget http://www.cmake.org/files/v2.4/cmake-2.4.6.tar.gz&lt;br /&gt;
 tar -zxf cmake-2.4.6.tar.gz&lt;br /&gt;
 mkdir cmake-build&lt;br /&gt;
 cd cmake-build &lt;br /&gt;
 ../cmake-2.4.6/bootstrap&lt;br /&gt;
 make&lt;br /&gt;
 sudo make install&lt;br /&gt;
&lt;br /&gt;
=== What's Happening ===&lt;br /&gt;
First, we go back to the &amp;lt;tt&amp;gt;kde-devel&amp;lt;/tt&amp;gt; user's source directory (line 1), get the CMake sources (line 2) and unpack them (line 3). We create a directory to build CMake in (line 4) and go into it (line 5). We then run the CMake bootstrap script to set up the CMake build (line 6), then make (line 7) and install it (line 8) using the root user.&lt;br /&gt;
&lt;br /&gt;
If your system does not have the &amp;lt;tt&amp;gt;sudo&amp;lt;/tt&amp;gt; command, you can instead do &amp;lt;tt&amp;gt;su -c &amp;quot;make install&amp;quot;&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Qt ==&lt;br /&gt;
Next we need to get the Qt4 that is in KDE's source repository. KDE is guaranteed to build against any Qt 4.3. Qt 4.2 and earlier are not supported and will not work. You should use the copy in the KDE Subversion servers. (note: some distros, like Debian, tend to supply Qt with patches from KDE svn applied, so you may want to cheat and use precompiled Qt from your distro)&lt;br /&gt;
&lt;br /&gt;
=== The Recipe ===&lt;br /&gt;
 cd&lt;br /&gt;
 svn checkout svn://anonsvn.kde.org/home/kde/trunk/qt-copy&lt;br /&gt;
 cd qt-copy&lt;br /&gt;
 ./apply_patches&lt;br /&gt;
 ./configure -qt-gif -no-exceptions -debug -fast \&lt;br /&gt;
  -prefix $QTDIR -nomake examples -nomake demos&lt;br /&gt;
 make -j2&lt;br /&gt;
&lt;br /&gt;
 # if we don't install, we'll just clear obj files to&lt;br /&gt;
 # save disk space&lt;br /&gt;
 if [ $QTDIR = `pwd` ]; then \&lt;br /&gt;
 find . -name '*.o' -delete ; \&lt;br /&gt;
 else make install; fi;&lt;br /&gt;
&lt;br /&gt;
=== What's Happening ===&lt;br /&gt;
We switch back to the &amp;lt;tt&amp;gt;kde-devel&amp;lt;/tt&amp;gt; user's home directory (line 1) and download the source code using subversion (svn) from KDE's repository (line 2). After changing into the resulting {{path|qt-copy}} directory (line 3), we run a script that manages the patches that come with &amp;lt;tt&amp;gt;qt-copy&amp;lt;/tt&amp;gt; (line 4). &lt;br /&gt;
&lt;br /&gt;
Once the patches have been applied, we then set up the build using the &amp;lt;tt&amp;gt;configure&amp;lt;/tt&amp;gt; script (line 5-6). The various command line options used are explained in the {{path|qt-copy/README.qt-copy}} file. Finally, we build the minimal requirements for KDE (line 7) and install (line 10) Qt. If install dir is the same as the current dir (line 8), then we just free some space (line 9) instead. If you want all the example and demo applications, you can either build them individually or simply do a &amp;lt;tt&amp;gt;make&amp;lt;/tt&amp;gt; from the {{path|qt-copy}} directory. &lt;br /&gt;
&lt;br /&gt;
Note that the installation does not require root as it installs Qt locally into {{path|$QTDIR}}. Anyway, installation is only needed if {{path|$QTDIR}} differs from {{path|$HOME/qt-copy}}, which is not the case if you have exactly followed the instructions.&lt;br /&gt;
&lt;br /&gt;
=== Troubleshooting ===&lt;br /&gt;
If you get &amp;quot;error: X11/Xlib.h: No such file or directory&amp;quot;, install the devel package of &amp;lt;tt&amp;gt;xorg&amp;lt;/tt&amp;gt; (the actual name may vary between operating systems, for example it is &amp;lt;tt&amp;gt;xorg-dev&amp;lt;/tt&amp;gt; on Ubuntu based systems such as Kubuntu). &lt;br /&gt;
&lt;br /&gt;
If you get an error in the configure step about missing defines, check the value of &amp;lt;tt&amp;gt;$QMAKESPEC&amp;lt;/tt&amp;gt;.  Some distributions set this to point directly to the system-installed Qt.  If &amp;lt;tt&amp;gt;unset QMAKESPEC&amp;lt;/tt&amp;gt; solves the problem, you probably want to add it to the &amp;lt;tt&amp;gt;~/.bashrc&amp;lt;/tt&amp;gt; script.&lt;br /&gt;
&lt;br /&gt;
If you get an error &amp;quot;.pch/debug-shared/QtCore&amp;quot;, this is because Qt-4.3 enables precompiled headers if your gcc supports it, but for some reason it doesn't work for you. If you use distcc, configure qt with -no-pch. If you use icecream, update to the latest icecream from svn trunk.&lt;br /&gt;
&lt;br /&gt;
Try running any Qt program, like {{program|assistant}}. '''Note:''' You may need to run &amp;lt;tt&amp;gt;xhost +local:kde-devel&amp;lt;/tt&amp;gt; as your regular kde3 user to run this application.  If it crashes in QSpanData::adjustSpanMethods, then your problem is the oxygen style. Try removing {{path|lib/kde4/plugins/styles/kstyle-oxygen.so}} and {{path|lib/kde4/plugins/styles/oxygen.so}} if they exist in the KDE install prefix.&lt;br /&gt;
&lt;br /&gt;
== HAL ==&lt;br /&gt;
&lt;br /&gt;
{{tip|You can use qdbusviewer to see if you have org.freedesktop.hal. If not, you might need a newer version of hal. If you have org.freedesktop.hal, you probably don't need to, and don't ''want'' to, roll your own HAL.}}&lt;br /&gt;
&lt;br /&gt;
If your system requires you to build a newer version of HAL, there's a decent chance you'll need to build other stuff as well, some of which may not be straight forward. Since this should only be required for older distros, instructions are on [[Getting_Started/Build/HAL| a separate page]].&lt;br /&gt;
&lt;br /&gt;
== kdesupport ==&lt;br /&gt;
&lt;br /&gt;
{{warning|Don't forget to read the [[Getting_Started/Build/KDE4#Setting_up_the_environment|Setting Up The Environment]] section first.}}&lt;br /&gt;
&lt;br /&gt;
There are several libraries that KDE applications rely on in the kdesupport module. This includes Strigi and Soprano for file metadata and search, QImageBlitz for image manipulation needed in kdebase, eigen for visual effects in applications such as Kalzium, taglib for music players and qca for some cryptographic needs. &lt;br /&gt;
&lt;br /&gt;
Strigi itself has a few dependencies as well: you will need the libraries and headers for libz, libbz2, openssl (libcrypto or libssl), libclucene (=0.9.16; version 0.9.17 does '''not''' work), and either libxml2 or libexpat.&lt;br /&gt;
&lt;br /&gt;
=== The Recipe ===&lt;br /&gt;
&amp;lt;!--'cs' and 'cb' are NOT typos!--&amp;gt;&lt;br /&gt;
 cs # [[Getting_Started/Increased_Productivity_in_KDE4_with_Scripts/.bashrc|cs is not a typo]]&lt;br /&gt;
 svn checkout svn://anonsvn.kde.org/home/kde/trunk/kdesupport/&lt;br /&gt;
 cd kdesupport&lt;br /&gt;
 cmakekde&lt;br /&gt;
&lt;br /&gt;
=== What's Happening ===&lt;br /&gt;
We change to the base source directory (line 1). We download the sources in kdesupport using subversion (line 2), go into the new {{path|~/kde/src/kdesupport}} directory (line 3), and commence the build (line 4). This will leave us in the kdesupport build directory after the build is completed.&lt;br /&gt;
&lt;br /&gt;
=== Troubleshooting ===&lt;br /&gt;
If you get &lt;br /&gt;
   cmakekde: command not found&lt;br /&gt;
then you have to go manualy into the kdesupport directory in ~ and execute the command cmakekde. if this still doesnt work, then something is wrong with your bashrc.&lt;br /&gt;
&lt;br /&gt;
If you get &lt;br /&gt;
 CMake Error: This project requires some variables to be set,&lt;br /&gt;
 and cmake can not find them.&lt;br /&gt;
 Please set the following variables:&lt;br /&gt;
 LIBXML2_INCLUDE_DIR (ADVANCED)&lt;br /&gt;
you should install the development package for libxml2.&lt;br /&gt;
&lt;br /&gt;
If you get &lt;br /&gt;
 CMake Error: Could NOT find REDLAND&lt;br /&gt;
then you need librdf from the Redland.&lt;br /&gt;
If your distribution does not provide the librdf package, you can download the source there: [http://download.librdf.org/source/ http://download.librdf.org/source/] and build it.&lt;br /&gt;
(Gentoo users: The ebuild for librdf is named dev-libs/redland)&lt;br /&gt;
&lt;br /&gt;
If you get&lt;br /&gt;
 Fetching external item into 'kdesupport/admin'&lt;br /&gt;
 Error validating server certificate for 'https://...'&lt;br /&gt;
see [http://techbase.kde.org/Getting_Started/Sources/Using_Subversion_with_KDE Using Subversion with KDE]&lt;br /&gt;
&lt;br /&gt;
If you get&lt;br /&gt;
 FILE cannot create directory: /usr/lib[64]/qt4/plugins/crypto. Maybe need administrative privileges.&lt;br /&gt;
 - - -&lt;br /&gt;
 make: *** [install] Error 255&lt;br /&gt;
take a second look in the .bashrc file described above, are paths correct?  Alternatively, you may see this error if you decided to use a distribution installed version of qt4 and skipped the Qt install above.  Either install qt-copy as describe above, or &amp;quot;sudo make install&amp;quot;. If you use &amp;quot;sudo make install&amp;quot;, make sure you that you change the ownership back to your user for some of the ~/kde subdirectories that were effected by using sudo (ie. &amp;quot;&amp;lt;tt&amp;gt;sudo chown -R kde-devel:kde-devel ~/kde&amp;lt;/tt&amp;gt;&amp;quot;).&lt;br /&gt;
&lt;br /&gt;
== kdelibs ==&lt;br /&gt;
&lt;br /&gt;
We can now move on to building KDE's base libraries.&lt;br /&gt;
&lt;br /&gt;
=== The Recipe ===&lt;br /&gt;
 cd   &lt;br /&gt;
 cs # [[Getting_Started/Increased_Productivity_in_KDE4_with_Scripts/.bashrc|cs is not a typo]]&lt;br /&gt;
 mkdir KDE &amp;amp;&amp;amp; cd KDE&lt;br /&gt;
 svn checkout svn://anonsvn.kde.org/home/kde/trunk/KDE/kdelibs&lt;br /&gt;
 cd kdelibs&lt;br /&gt;
 cmakekde&lt;br /&gt;
&lt;br /&gt;
=== What's Happening ===&lt;br /&gt;
We change to the base source directory (line 1) then make and go into the KDE directory (line 2). We download the sources for kdelibs using subversion (line 3), go into the new {{path|~/kde/src/KDE/kdelibs}} directory (line 4), and commence the build (line 5). This will leave us in the &amp;lt;tt&amp;gt;kdelibs&amp;lt;/tt&amp;gt; build directory after the build is completed.&lt;br /&gt;
&lt;br /&gt;
{{tip|There might be missing dependencies on your system! They are easily overlooked in the output of &amp;lt;tt&amp;gt;cmakekde&amp;lt;/tt&amp;gt;.&lt;br /&gt;
You might want to do a &amp;lt;tt&amp;gt;cmake $KDE_SRC/KDE/MODULE_NAME&amp;lt;/tt&amp;gt; prior to compiling any kde modules (like kdelibs, kdepimlibs etc.)}}&lt;br /&gt;
&lt;br /&gt;
=== Additional KDE-specific CMake modules ===&lt;br /&gt;
There are additional CMake modules in {{path|kdelibs/cmake/modules/}} that are necessary for building KDE4 applications. These will be installed for you when  kdelibs itself is installed.&lt;br /&gt;
&lt;br /&gt;
=== Troubleshooting ===&lt;br /&gt;
If you have problems compiling kdelibs, first make sure the software in the [[Getting_Started/Build/KDE4#Required_Software|Required Software]] section above is installed and works. Other possible hints include:&lt;br /&gt;
* If the &amp;lt;tt&amp;gt;cmakekde&amp;lt;/tt&amp;gt; command fails stating that CMake requires an out of source build directory, remove {{path|~/kde/src/KDE/kdelibs/CMakeCache.txt}}, and try again.&lt;br /&gt;
&lt;br /&gt;
If &amp;lt;tt&amp;gt;cmakekde&amp;lt;/tt&amp;gt; still gives the same error then try this &lt;br /&gt;
 cd&lt;br /&gt;
 cmake -DCMAKE_INSTALL_PREFIX=$KDEDIR \&lt;br /&gt;
 -DCMAKE_BUILD_TYPE=debugfull \&lt;br /&gt;
 -DKDE4_BUILD_TESTS=ON \&lt;br /&gt;
 ~/kde/src/KDE/kdelibs&lt;br /&gt;
 make&lt;br /&gt;
 make install&lt;br /&gt;
* If you received an error stating &amp;quot;Please create a separate build directory and run 'cmake path_to_kdelibs [options]' there.&amp;quot;, then you need to change to your build directory before running cmakekde. (e.g &amp;lt;tt&amp;gt;cs KDE/kdelibs &amp;amp;&amp;amp; cb &amp;amp;&amp;amp; cmakekde&amp;lt;/tt&amp;gt;) If the message stays, run 'svn status' in the kdelibs directory and remove all files labeled with '?'.&lt;br /&gt;
* If Qt wasn't found or the wrong version of Qt was found, make sure that the qmake from the Qt you need is the first qmake in the path.&lt;br /&gt;
* If the problems persist, try the CMake make-option &amp;lt;tt&amp;gt;--keep-going&amp;lt;/tt&amp;gt;.&lt;br /&gt;
* Here you need the libungif library, otherwise you will get an error message like &amp;quot;&amp;lt;tt&amp;gt;Could NOT find GIF&amp;lt;/tt&amp;gt;&amp;quot;.&lt;br /&gt;
* Qt-4.3 upgrade: if you get a link error in kjsembed talking about QScriptEngine, edit CMakeCache.txt in kdelibs and remove the lines that talk about QT_QTUITOOLS_LIBRARY, then type make again (that static library has a new dependency, and the cmake code that adds it needs to run).&lt;br /&gt;
* if you get &amp;lt;code&amp;gt;CMake Error: KDE Requires Qt to be built with SSL support&lt;br /&gt;
&amp;lt;/code&amp;gt;, install openssl-devel, remove CMakeCache.txt and re-compile QT.&lt;br /&gt;
* if you get &amp;lt;code&amp;gt;kdelibs/kimgio/ico.cpp:188: undefined reference to `QImage::jumpTable()'&amp;lt;/code&amp;gt; it means you compiled QT without QT3 support(no, linking to a true QT3 install won't work)&lt;br /&gt;
&lt;br /&gt;
== kdepimlibs ==&lt;br /&gt;
After &amp;lt;tt&amp;gt;kdelibs&amp;lt;/tt&amp;gt;, but before ''kdebase'', you need to build and install ''kdepimlibs''.&lt;br /&gt;
&lt;br /&gt;
=== The Recipe ===&lt;br /&gt;
&amp;lt;!--'cs' and 'cb' are NOT typos!--&amp;gt;&lt;br /&gt;
 cs KDE # [[Getting_Started/Increased_Productivity_in_KDE4_with_Scripts/.bashrc|cs is not a typo]]&lt;br /&gt;
 svn checkout svn://anonsvn.kde.org/home/kde/trunk/KDE/kdepimlibs&lt;br /&gt;
 cd kdepimlibs&lt;br /&gt;
 cmakekde&lt;br /&gt;
&lt;br /&gt;
=== What's Happening ===&lt;br /&gt;
We go into the KDE source directory (line 1), download the source code for kdepimlibs using subversion (line 2) and then go into the new {{path|~/kde/src/KDE/kdepimlibs}} directory (line 3). We then commence the build (line 4). This will leave us in the &amp;lt;tt&amp;gt;kdepimlibs&amp;lt;/tt&amp;gt; build directory after the build is completed.&lt;br /&gt;
&lt;br /&gt;
=== Troubleshooting ===&lt;br /&gt;
If you have trouble compiling kdepimlibs:&lt;br /&gt;
* the cmakekde command may require a later version of the gpgme library.  This is available from the project's web site: http://www.gnupg.org/(en)/download/index.html - please note that the build of gpgme also requires libgpg-error, also available from the same location.  Both libraries are installed by the &amp;quot;./configure&amp;quot;, &amp;quot;make&amp;quot; and &amp;quot;sudo make install&amp;quot; sequence, with the gpgme library configured with the additional &amp;quot;--with-gpg-error-prefix&amp;quot; parameter.  You may need to overwrite your existing &amp;quot;/usr/bin/gpgme-config&amp;quot; file with the newer version for the kdepimlibs to pick up the new install.&lt;br /&gt;
* if you get the error &amp;quot;cannot find -lpth&amp;quot; from /usr/bin/ld, then make sure you have The GNU Portable Threads (libpth-dev for Debian).&lt;br /&gt;
&lt;br /&gt;
== kdebase ==&lt;br /&gt;
kdebase is divided into three parts:&lt;br /&gt;
* '''apps'''&lt;br /&gt;
:This contains applications like Dolphin or KWrite.&lt;br /&gt;
* '''runtime'''&lt;br /&gt;
:This contains things needed by every application at runtime, like icons. It is a required dependency for each KDE application, so you have to compile and install this.&lt;br /&gt;
* '''workspace'''&lt;br /&gt;
:This contains things specific to the KDE desktop, like Plasma or the window manager. Most stuff here depends on X11. You only need it if you want to build a full KDE desktop.&lt;br /&gt;
&lt;br /&gt;
You can build all of kdebase at once, which is described in the recipe below. If you only want to build kdebase-runtime, which is the only requirement, you can replace &amp;lt;code bash&amp;gt;cd kdebase&amp;lt;/code&amp;gt; with &amp;lt;code bash&amp;gt;cd kdebase/runtime&amp;lt;/code&amp;gt; in the recipe below.&lt;br /&gt;
&lt;br /&gt;
=== The Recipe ===&lt;br /&gt;
&amp;lt;!--'cs' and 'cb' are NOT typos!--&amp;gt;&lt;br /&gt;
 cs KDE # [[Getting_Started/Increased_Productivity_in_KDE4_with_Scripts/.bashrc|cs is not a typo]]&lt;br /&gt;
 svn checkout svn://anonsvn.kde.org/home/kde/trunk/KDE/kdebase&lt;br /&gt;
 cd kdebase&lt;br /&gt;
 cmakekde&lt;br /&gt;
&lt;br /&gt;
=== Troubleshooting ===&lt;br /&gt;
If you have troubles compiling kdebase:&lt;br /&gt;
* Make sure you have the &amp;lt;tt&amp;gt;libxss headers&amp;lt;/tt&amp;gt; installed. (Usually you got undefined references on xscreensaver objects if you do not have those headers)&lt;br /&gt;
* &amp;lt;tt&amp;gt;which meinproc&amp;lt;/tt&amp;gt; has to deliver {{path|/home/kde-devel/kde/bin/meinproc}}&lt;br /&gt;
* if cmakekde can not find the path of kdepimlibs, edit the file {{path|$KDE_BUILD/KDE/kdebase/CMakeCache.txt}} and manually set &amp;lt;tt&amp;gt;KDEPIMLIBS_INCLUDE_DIR:PATH=$KDE_BUILD/kdepimlibs&amp;lt;/tt&amp;gt;&lt;br /&gt;
* if you get an error saying &amp;quot;Please set the following variables: X11_XTest_LIB (ADVANCED)&amp;quot;, install the devel package of &amp;lt;tt&amp;gt;Xtst&amp;lt;/tt&amp;gt;. On some systems, this is packaged separately from &amp;lt;tt&amp;gt;xext&amp;lt;/tt&amp;gt; and called &amp;lt;tt&amp;gt;x11proto-xext-dev&amp;lt;/tt&amp;gt; or &amp;lt;tt&amp;gt;libxtst-dev&amp;lt;/tt&amp;gt;. You may also need to remove the CMakeCache.txt file in the build dir after installing the package.&lt;br /&gt;
* the same for &amp;quot;X11_Xinerama_LIB (ADVANCED)&amp;quot; where you will need the devel package for &amp;lt;tt&amp;gt;xinerama&amp;lt;/tt&amp;gt;.&lt;br /&gt;
* if you get an error complaining about a missing variable X11_Xrandr_LIB, you need the devel package for libxrandr (libxrandr-devel on ubuntu-systems)&lt;br /&gt;
* if you get the error &amp;quot;Please set the following variables: FONTCONFIG_INCLUDE_DIR, FONTCONFIG_LIBRARIES (ADVANCED)&amp;quot;, then you need to install  the libfontconfig headers&lt;br /&gt;
* if you get the error &amp;quot;CMake Error: This project requires some variables to be set, and cmake can not find them. Please set the following variables: KMETADATA_LIBRARIES&amp;quot;, you need to install soprano from kdesupport and to rebuild kdelibs&lt;br /&gt;
* if you get the error &amp;quot;‘XserverRegion’ does not name a type&amp;quot; make sure you have libxcomposite headers installed (&amp;lt;tt&amp;gt;libxcomposite-dev&amp;lt;/tt&amp;gt; in ubuntu)&lt;br /&gt;
* if you get the error &amp;quot;CMake Error: This project requires some variables to be set, and cmake can not find them. Please set the following variables: QT_QTOPENGL_LIBRARY (ADVANCED) &amp;quot;, try editing CMakeCache.txt and setting QT_QTOPENGL_LIBRARY:FILEPATH=/home/kde-devel/qt-copy/lib/libQtOpenGL.so&lt;br /&gt;
&lt;br /&gt;
* if you get messages as &amp;quot;KDE4_INSTALL_HANDBOOK() is deprecated. Remove it please. Now all is done in KDE4_CREATE_HANDBOOK.&amp;quot; then, either find the files containing the offending line and comment it out manually, or run the following script in ~/kde/src/KDE/kdebase: [http://www.plamadeala.com/files/macros_corrector.sh macros_corrector.sh]. It will just REMOVE the line that has &amp;quot;kde4_create_handbook&amp;quot; in it from all the found files.&lt;br /&gt;
&lt;br /&gt;
== Running KDE 4 programs ==&lt;br /&gt;
&lt;br /&gt;
You can now run KDE 4 programs (e.g. kwrite) by typing:&lt;br /&gt;
 ssh -X kde-devel@localhost&lt;br /&gt;
 kwrite &lt;br /&gt;
&lt;br /&gt;
=== Troubleshooting ===&lt;br /&gt;
&lt;br /&gt;
* If you get &lt;br /&gt;
 KUniqueApplication: Cannot find the D-Bus session server&lt;br /&gt;
check if you can access the display, e.g. type&lt;br /&gt;
 xclock&lt;br /&gt;
and see if a clock appears on the screen.&lt;br /&gt;
&lt;br /&gt;
* If you get something like&lt;br /&gt;
 Error: standard icon theme &amp;quot;oxygen&amp;quot; not found!&lt;br /&gt;
 &lt;br /&gt;
 ASSERT: &amp;quot;!isEmpty()&amp;quot; in file /home/kde-devel/qt-copy/include/QtCore/../../src/corelib/tools/qlist.h, line 245&lt;br /&gt;
 Aborted (core dumped)&lt;br /&gt;
You need to install kdebase - see above. It is enough to install the &amp;quot;runtime&amp;quot; directory from kdebase.&lt;br /&gt;
&lt;br /&gt;
== Generating local API documentation ==&lt;br /&gt;
Although the API documentation for KDE is available online at [http://api.kde.org api.kde.org], it is sometimes useful to have it on your own disk, for example when you want to use [[Getting_Started/Set_up_KDE_4_for_development#KDevelop|KDevelop]] for browsing the documentation or when you are not able to be online all the time.&lt;br /&gt;
&lt;br /&gt;
Be aware that generating the API documentation can take several hours and takes almost half a gigabyte of diskspace.&lt;br /&gt;
The generation is handled by a script in {{path|kdelibs/doc/api}}, you need &amp;lt;tt&amp;gt;doxygen&amp;lt;/tt&amp;gt; to be able to run it. &lt;br /&gt;
&lt;br /&gt;
To build the API documentation for kdelibs, type the following:&lt;br /&gt;
&amp;lt;!--'cs' and 'cb' are NOT typos!--&amp;gt;&lt;br /&gt;
 cs KDE/kdelibs # [[Getting_Started/Increased_Productivity_in_KDE4_with_Scripts/.bashrc|cs is not a typo]]&lt;br /&gt;
 $KDE_SRC/KDE/kdelibs/doc/api/doxygen.sh \&lt;br /&gt;
 --doxdatadir=$KDE_SRC/KDE/kdelibs/doc/common .&lt;br /&gt;
&lt;br /&gt;
Repeat for other modules as desired.&amp;lt;br&amp;gt;&lt;br /&gt;
 cd &amp;lt;module home&amp;gt;&lt;br /&gt;
 $KDE_SRC/KDE/kdelibs/doc/api/doxygen.sh \&lt;br /&gt;
 --doxdatadir=$KDE_SRC/KDE/kdelibs/doc/common .&lt;br /&gt;
&lt;br /&gt;
Another, even easier method involves downloading this [[Doxyfile]] to your local system. Then simply change directory to where you want to create the documentation and run&lt;br /&gt;
&amp;lt;code bash&amp;gt;&lt;br /&gt;
% doxygen /path/to/Doxyfile&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
Then review the file {{path|doxygen.log}} to see the doxygen errors and warnings. You'll find the actual documentation in the {{path|apidocs}} subdirectory.&lt;br /&gt;
&lt;br /&gt;
== Staying up to date ==&lt;br /&gt;
&lt;br /&gt;
In order to keep the kde4 installation up to date, each of the modules installed should be updated periodically. As Monday is the day for big changes in kdelibs, Tuesday may be the best day to do this. For each module checked out, run &amp;lt;tt&amp;gt;svn up&amp;lt;/tt&amp;gt; and &amp;lt;tt&amp;gt;make&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
For example:&lt;br /&gt;
&amp;lt;code bash&amp;gt;&lt;br /&gt;
cs kdesupport # cs is not a typo&lt;br /&gt;
svn up&lt;br /&gt;
cb # cb is not a typo&lt;br /&gt;
make -j2 VERBOSE=1 &amp;amp;&amp;amp; make install&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== General troubleshooting ==&lt;br /&gt;
&lt;br /&gt;
What can happen over time, after some &amp;lt;tt&amp;gt;svn up&amp;lt;/tt&amp;gt; commands, is that some of the tools used in the KDE build chain change their output format. For example, &amp;lt;tt&amp;gt;kcfg&amp;lt;/tt&amp;gt; files are read by &amp;lt;tt&amp;gt;kconfig_compiler&amp;lt;/tt&amp;gt; to produce configuration dialogs. CMake cannot detect those changes, and the compilation might fail. A workaround is to always force a re-generation of all such files:&lt;br /&gt;
 find $KDE_SRC/KDE/kdebase -name &amp;quot;*.kcfg&amp;quot; | xargs touch&lt;br /&gt;
The same applies to &amp;lt;tt&amp;gt;ui&amp;lt;/tt&amp;gt; files as produced by Qt designer.&lt;br /&gt;
&lt;br /&gt;
== Success! ==&lt;br /&gt;
&lt;br /&gt;
You are now ready to start building other svn modules in the same fashion as you built kdebase, running and testing KDE4 or writing your own patches and applications.&lt;br /&gt;
&lt;br /&gt;
See the [[Getting Started/Set up KDE 4 for development|Set up KDE 4 for development]] tutorial for how to start KDE 4 applications and how to use KDevelop to work on them.&lt;br /&gt;
&lt;br /&gt;
[[Category:Build KDE]]&lt;br /&gt;
[[Category:KDE4]]&lt;/div&gt;</summary>
		<author><name>Logixoul</name></author>	</entry>

	<entry>
		<id>http://techbase.kde.org/Development/Tutorials/CMake</id>
		<title>Development/Tutorials/CMake</title>
		<link rel="alternate" type="text/html" href="http://techbase.kde.org/Development/Tutorials/CMake"/>
				<updated>2007-09-09T18:33:34Z</updated>
		
		<summary type="html">&lt;p&gt;Logixoul: we don't want empty &amp;quot;please fill me&amp;quot; sections, do we&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Template:I18n/Language Navigation Bar|Development/Tutorials/CMake}}&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
CMake reads script files and produces input files for the native buildsystem of the platform where it runs on. It can create GNU Makefiles, KDevelop project files, XCode project files, and Visual Studio project files.&lt;br /&gt;
&lt;br /&gt;
CMake is free software and released under a BSD-style license.  It is developed by [http://www.kitware.com Kitware Inc.]&lt;br /&gt;
&lt;br /&gt;
Here are some good places to learn about CMake in general:&lt;br /&gt;
* [http://www.cmake.org/HTML/Documentation.html CMake Manual]&lt;br /&gt;
* [http://www.cmake.org/Wiki/CMake CMake Wiki]&lt;br /&gt;
* [http://www.cmake.org/Wiki/CMake_HowToDoPlatformChecks CMake System Checks ]&lt;br /&gt;
* [http://www.cmake.org/Wiki/CMake_HowToFindInstalledSoftware Finding Optional Packages ]&lt;br /&gt;
* [http://www.cmake.org/Wiki/HowToBuildKDE4Software KDE 4 Tutorial at the CMake Wiki ]&lt;br /&gt;
* [http://www.cmake.org/Wiki/CMake_FAQ CMake FAQ]&lt;br /&gt;
* [http://mail.kde.org/pipermail/kde-buildsystem/ The kde-buildsystem Mailing List Archive]&lt;br /&gt;
&lt;br /&gt;
Also, consider joining the [http://www.cmake.org/mailman/listinfo/cmake CMake mailing list].&lt;br /&gt;
&lt;br /&gt;
== Why use CMake ? ==&lt;br /&gt;
CMake is the official tool of KDE 4 release, decided in March 2006, primarily due to technical merits as compared to the older KDE tools automake and unsermake:&lt;br /&gt;
* CMake is developed independently of KDE, it can be used by other projects as well &lt;br /&gt;
* Compilation time is much faster, mainly due to not using libtool anymore&lt;br /&gt;
* The build files are easier to write&lt;br /&gt;
&lt;br /&gt;
== How to compile KDE using CMake==&lt;br /&gt;
&lt;br /&gt;
=== Get and install CMake ===&lt;br /&gt;
==== Linux, BSD, and other Unix Systems ====&lt;br /&gt;
Retrieve the latest stable version of CMake from [http://www.cmake.org/HTML/Download.html].&lt;br /&gt;
&lt;br /&gt;
Once downloaded, unpack and compile it:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
$ mkdir cmake-build&lt;br /&gt;
$ cd cmake-build&lt;br /&gt;
$ ../bootstrap&lt;br /&gt;
$ make&lt;br /&gt;
$ make install&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
By default, this will install CMake in /usr/local, so make sure to have /usr/local/bin in your execute path.   To change the installation prefix (e.g. to /usr in debian), add the '--prefix=PATH' option to the bootstrap command.&lt;br /&gt;
&lt;br /&gt;
Please follow the instructions located [http://cmake.org/HTML/Download.html#cvs here] if you would like to use the current development version.&lt;br /&gt;
&lt;br /&gt;
==== Windows ====&lt;br /&gt;
Retrieve the latest stable version of CMake from [http://www.cmake.org/HTML/Download.html].&lt;br /&gt;
&lt;br /&gt;
Once downloaded, run the cmake installer. &lt;br /&gt;
&lt;br /&gt;
By default, this will install CMake in C:\Program Files\CMake 2.4, so make sure to have &amp;lt;installpath&amp;gt;\bin in your execute path.   &lt;br /&gt;
&lt;br /&gt;
Please follow the instructions at [http://cmake.org/HTML/Download.html#cvs here] if you would like to use the current development version.&lt;br /&gt;
&lt;br /&gt;
=== Run CMake ===&lt;br /&gt;
&lt;br /&gt;
==== Linux, BSD, and other Unix Systems ====&lt;br /&gt;
You have to run CMake so that it generates the build files for your system.  Both in-source and out-of-source builds are supported by CMake, but currently in-source builds are prevented by the KDE implementation.&lt;br /&gt;
&lt;br /&gt;
So, let's say you have kdelibs/ in ~/src/kdelibs/, then do the following:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
$ ls&lt;br /&gt;
kdelibs/&lt;br /&gt;
$ mkdir kdelibs-build&lt;br /&gt;
$ cd kdelibs-build&lt;br /&gt;
$ cmake ../kdelibs&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
This will generate the Makefiles for building kdelibs/ in kdelibs-build/.&lt;br /&gt;
&lt;br /&gt;
==== Windows ====&lt;br /&gt;
You have to run CMake so that it generates the build files for your system.  Both in-source and out-of-source builds are supported by CMake, but currently in-source builds are prevented by the KDE implementation.&lt;br /&gt;
&lt;br /&gt;
So, let's say you have kdelibs\ in c:\daten\kde4, then do the following:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
c:\daten\kde4&amp;gt; cd kdelibs\win&lt;br /&gt;
c:\daten\kde4&amp;gt; cmake&lt;br /&gt;
c:\daten\kde4&amp;gt; make &lt;br /&gt;
c:\daten\kde4&amp;gt; make install&lt;br /&gt;
c:\daten\kde4&amp;gt; cd ..&lt;br /&gt;
c:\daten\kde4&amp;gt; mkdir kdelibs-build&lt;br /&gt;
c:\daten\kde4&amp;gt; cd kdelibs-build&lt;br /&gt;
c:\daten\kde4\kdelibs-build&amp;gt; cmake ..\kdelibs&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This will generated the Makefiles for building kdelibs\ in kdelibs-build\. See [[KDE On Windows]] for more informations about compiling KDE on Windows.&lt;br /&gt;
&lt;br /&gt;
==== KDevelop Project Files ====&lt;br /&gt;
If you prefer project files for KDevelop (which will basically be Makefiles accompanied by some extra files for KDevelop), run it like this:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
$ cmake ../kdelibs -GKDevelop3&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
Use 'cmake -h' to find out which generators CMake supports and the other options.&lt;br /&gt;
&lt;br /&gt;
==== CMake and Qt4 ====&lt;br /&gt;
To locate Qt 4, CMake searches for qmake in your execute path. CMake does ''not'' use the QTDIR environment variable.  So make sure that the first qmake found in the execution path is the one you like to use.&lt;br /&gt;
&lt;br /&gt;
==== More Details ====&lt;br /&gt;
When CMake has finished, it will have created a file called &amp;quot;CMakeCache.txt&amp;quot;.  This file contains all the settings CMake has detected on your system.  If you want to run CMake with another generator or you want CMake to detect everything again, delete this file.&lt;br /&gt;
&lt;br /&gt;
If CMake didn't find something, but you know it is somewere on your box, you can tell CMake manually where to find it.  CMake uses variables to store this information.  These variables are cached in the already mentioned file CMakeCache.txt.  You have three options to adjust these variables manually:&lt;br /&gt;
* tell CMake the correct value via the command line: cmake ../kdelibs -DNAME_OF_THE_VARIABLE=value&lt;br /&gt;
* use ccmake, which provides a curses based GUI to adjust the CMake variables (run: ccmake ../kdelibs)&lt;br /&gt;
* edit the file CMakeCache.txt directly (not recommended)&lt;br /&gt;
&lt;br /&gt;
You should run &amp;quot;ccmake ../kdelibs&amp;quot; at least once so that you get an impression which variables CMake uses.  Press &amp;quot;T&amp;quot; to see also the &amp;quot;advanced&amp;quot; variables.  So, if CMake didn't find something, start ccmake and adjust it manually.&lt;br /&gt;
&lt;br /&gt;
Some variables you probably will want to set:&lt;br /&gt;
* '''CMAKE_INSTALL_PREFIX''': cmake ../kdelibs -DCMAKE_INSTALL_PREFIX=/opt/kde4 is the equivalent to ./configure --prefix=/opt/kde4&lt;br /&gt;
* '''CMAKE_BUILD_TYPE''': decide which type of build you want. You can chose between &amp;quot;debugfull&amp;quot;, &amp;quot;debug&amp;quot;, &amp;quot;profile&amp;quot;, &amp;quot;relwithdebinfo&amp;quot; and &amp;quot;release&amp;quot;. The default is &amp;quot;relwithdebinfo&amp;quot; (-O2 -g). See FindKDE4Internal.cmake for details.&lt;br /&gt;
* '''RPATH_STYLE''': This is not available anymore. By default everything will be built with RPATH set correctly. If you don't want RPATH at all, set CMAKE_SKIP_RPATH to TRUE.&lt;br /&gt;
* '''WITH_FOO''': there are several options, e.g. WITH_CUPS or WITH_Jasper. If you disable them, cmake will not even try to find this package. If it is enabled, cmake will try to find it. If it fails with this, you can still adjust it manually as described above.&lt;br /&gt;
&lt;br /&gt;
=== Environment Variables ===&lt;br /&gt;
If you have headers and libraries installed in non-standard locations that cmake cannot find (e.g., fink on Mac OSX installs to /sw), then set the following as environment variables.  Despite the similar naming convention, these will not work as arguments on the cmake command line:&lt;br /&gt;
* '''CMAKE_INCLUDE_PATH''', eg. export CMAKE_INCLUDE_PATH=/sw/include&lt;br /&gt;
* '''CMAKE_LIBRARY_PATH''', eg. export CMAKE_LIBRARY_PATH=/sw/lib&lt;br /&gt;
&lt;br /&gt;
For more information on variables, see [http://www.cmake.org/Wiki/CMake_Useful_Variables this cmake.org wiki page]&lt;br /&gt;
&lt;br /&gt;
=== Going Further ===&lt;br /&gt;
If cmake finishes with &amp;quot;Generating done&amp;quot; then there was no errors, but if it finishes with &amp;quot;Configuring done&amp;quot; then there was errors that you have to fix.  Once cmake finishes successfully, run your buildtool (i.e. make, KDevelop, XCode or MSVC) and build and wait until it has finished.  Then &amp;quot;make install&amp;quot;. &lt;br /&gt;
&lt;br /&gt;
If you got a failure that says something like&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
CMake Error: This project requires some variables to be set,&lt;br /&gt;
and cmake can not find them.&lt;br /&gt;
Please set the following variables:&lt;br /&gt;
X11_XTest_LIB (ADVANCED)&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
then you may have a missing library (or other dependency). To find&lt;br /&gt;
out which library, search in the cmake/modules directory for&lt;br /&gt;
the variable that cmake can't find. In the example above, it is&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
FIND_LIBRARY(X11_XTest_LIB Xtst ${X11_LIB_SEARCH_PATH})&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
So the missing library is Xtst. You then need to find it (perhaps installing a libXtst-devel library) and re-run cmake.&lt;br /&gt;
&lt;br /&gt;
== Using CMake for a Simple Application ==&lt;br /&gt;
&lt;br /&gt;
Here's the most simple CMakeLists.txt:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
add_executable(hello main.cpp)&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
This will create an executable named &amp;quot;hello&amp;quot; (or &amp;quot;hello.exe&amp;quot; under Windows) from the source file main.cpp. You can mix C and C++ files as you want.  You can have multiple executables and libraries in one CMakeLists.txt.  The same source file can be used in multiple targets, it will be compiled for each target independently from the other targets.  Probably the most important part of the cmake language are the variables:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
SET( MY_SOURCES main.cpp widget.cpp)&lt;br /&gt;
MESSAGE(STATUS &amp;quot;my sources: ${MY_SOURCES}&amp;quot;)&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
So, use the SET() command to set the value of a variable. If you list more than one string, the variable will be a list.   A list is a list of strings separated by semicolons. If you set it to only one item, it will have just that value. To get the value of a variable, use ${VAR}.&lt;br /&gt;
You can iterate over a list using FOREACH():&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
FOREACH(next_ITEM ${MY_SOURCES})&lt;br /&gt;
   MESSAGE(STATUS &amp;quot;next item: ${next_ITEM}&amp;quot;)&lt;br /&gt;
ENDFOREACH(next_ITEM ${MY_SOURCES})&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
The commands in CMake are case-insensitive.  Names of variables and names of parameter are case-sensitive.&lt;br /&gt;
&lt;br /&gt;
You can also test for various things:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
IF (UNIX)&lt;br /&gt;
   MESSAGE(STATUS &amp;quot;This is UNIX (including OS X and CygWin)&amp;quot;)&lt;br /&gt;
ENDIF (UNIX)&lt;br /&gt;
&lt;br /&gt;
IF (MSVC)&lt;br /&gt;
   SET(MY_SRCS ${MY_SRCS} winextra.cpp)&lt;br /&gt;
ENDIF (MSVC)&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
In this second example  you can see also how to append items to a list.&lt;br /&gt;
&lt;br /&gt;
In the cmake Wiki there is also a [http://www.cmake.org/Wiki/HowToBuildKDE4Software  tutorial] on using cmake to build KDE 4 software. It is recommended reading.&lt;br /&gt;
&lt;br /&gt;
== Using CMake for a KDE Project ==&lt;br /&gt;
&lt;br /&gt;
Here's a basic CMakeList file that builds a small KDE 4 project:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
PROJECT( kde4project)&lt;br /&gt;
FIND_PACKAGE(KDE4 REQUIRED)&lt;br /&gt;
INCLUDE_DIRECTORIES( ${KDE4_INCLUDES} )&lt;br /&gt;
&lt;br /&gt;
SET(KDE4ProjectSources kde4mainapp.cpp someclass.cpp someotherclass.cpp)&lt;br /&gt;
&lt;br /&gt;
KDE4_ADD_EXECUTABLE(kde4project ${KDE4ProjectSources} )&lt;br /&gt;
&lt;br /&gt;
TARGET_LINK_LIBRARIES(kde4project ${KDE4_KDEUI_LIBS} ${KDE4_KPARTS_LIBS} )&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Extending CMake ==&lt;br /&gt;
CMake can be extended using cmake scripts. CMake comes with a number of scripts; under UNIX they are by default installed to /usr/local/share/CMake/Modules/. The KDE libraries install also a set of cmake modules into share/apps/cmake/modules/. The files located there will be preferred over the ones in the system global cmake module path. &lt;br /&gt;
For detecting software packages there are FindFOO.cmake files, see [http://www.cmake.org/Wiki/CMake_HowToFindInstalledSoftware here] for more information.&lt;br /&gt;
You can also write macros in CMake. They are powerful enough to do most things you will need to build software, but they are not intended to be used as a general purpose programming language.&lt;br /&gt;
&lt;br /&gt;
== Converting autotools-based KDE software to CMake ==&lt;br /&gt;
In kdesdk/cmake/ you can find a script am2cmake . This is a ruby script, so you need to have ruby installed. Run am2cmake in the toplevel directory of your sources:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
$ cd src/mykooltool/&lt;br /&gt;
$ am2cmake --kde4&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
Don't forget the switch &amp;quot;--kde4&amp;quot;, otherwise it won't generate files suitable for KDE 4 software. The converted files 'may' work as they are, but complicated projects will require some additional editing.&lt;br /&gt;
&lt;br /&gt;
You may have to:&lt;br /&gt;
* add more include direcories, using INCLUDE_DIRECTORIES()&lt;br /&gt;
* add more link libraries, using TARGET_LINK_LIBRARIES()&lt;br /&gt;
* add some compile switches, using ADD_DEFINITIONS()&lt;br /&gt;
* add some &amp;quot;configure&amp;quot; checks, see [http://www.cmake.org/Wiki/CMake_HowToDoPlatformChecks How To Do Platform Checks] and [http://www.cmake.org/Wiki/CMake_HowToFindInstalledSoftware How To Find Installed Software]&lt;br /&gt;
* take special care of former libtool convenience libraries. They are not supported by cmake, instead there will be a file ConvenienceLibs.cmake created.  In this file you will find for every convenience lib a variable, which contains all source files of this convenience lib.  For the targets which linked to this convenience lib, just add the variable to the sources.&lt;br /&gt;
* a file AdditionalInfo.txt will be created.  There you will see all *.in and *.in.in files of your project. The stuff done in these files will have to be converted manually to cmake.&lt;br /&gt;
&lt;br /&gt;
== Frequently Asked Questions ==&lt;br /&gt;
&lt;br /&gt;
=== How can I teach my favorite editor about CMake syntax and indentation ? ===&lt;br /&gt;
Read the CMake Wiki section [http://www.cmake.org/Wiki/CMake_Editors_Support CMake Editors Support].  It describes how to setup Emacs (XEmacs works too), VIM, Kate, KWrite, and KDevelop.&lt;br /&gt;
&lt;br /&gt;
=== I need to generate some files during the build. How do I do this ? ===&lt;br /&gt;
Use ADD_CUSTOM_COMMAND(). It's explained here in the CMake wiki: [http://www.cmake.org/Wiki/CMake_FAQ#How_can_I_generate_a_source_file_during_the_build.3F  How can I generate a source file during the build]&lt;br /&gt;
&lt;br /&gt;
=== I need to build an executable which is used later on during the build to generate files. How do I do this ? ===&lt;br /&gt;
Let's say the executable is called genembed. Then use KDE4_ADD_EXECUTABLE(foo RUN_UNINSTALLED ${fooSources})to create the executable. The RUN_UNINSTALLED option is important, because the executable has to run from the build dir and has to link to the libraries in the builddir. To achieve this, the executable is compiled with RPATH set accordingly and a wrapper shell script, named just like the executable but with the suffix &amp;quot;.sh&amp;quot; is created. This shell scripts sets up LD_LIBRARY_PATH and the calls the actual executable.&lt;br /&gt;
Use this wrapper shell script in the ADD_CUSTOM_COMMAND() as described above.&lt;br /&gt;
You can find out the name and exact location by querying the property WRAPPER_SCRIPT. Here's a full example taken from kdelibs/kstyles/keramik/ :&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
# build the executable&lt;br /&gt;
KDE4_ADD_EXECUTABLE(genembed RUN_UNINSTALLED ${genembed_SRCS})&lt;br /&gt;
&lt;br /&gt;
# get the name of the generated wrapper script (which sets up LD_LIBRARY_PATH)&lt;br /&gt;
GET_TARGET_PROPERTY(GENEMBED_EXECUTABLE genembed WRAPPER_SCRIPT)&lt;br /&gt;
&lt;br /&gt;
# and the custom command&lt;br /&gt;
ADD_CUSTOM_COMMAND(OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/keramikrc.h&lt;br /&gt;
  COMMAND ${GENEMBED_EXECUTABLE} --file ${CMAKE_CURRENT_BINARY_DIR}/keramikPics.txt &amp;gt; \&lt;br /&gt;
  ${CMAKE_CURRENT_BINARY_DIR}/pixmaps.keramik&lt;br /&gt;
  DEPENDS genembed ${keramikPics}&lt;br /&gt;
)&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
As you can see genembed is also listed as a dependency, this means cmake knows that it has to build the executable genembed before executing this rule.&lt;br /&gt;
&lt;br /&gt;
=== I don't want to set the -DCMAKE_INSTALL_PREFIX command line option.  Does cmake support the KDEDIR environment variable? ===&lt;br /&gt;
No.  $KDEDIR is deprecated in KDE 4.&lt;br /&gt;
&lt;br /&gt;
=== Why do i get compile errors like /usr/lib/qt4/include/QtCore/qstring.h:536: undefined reference to `QString::fromLatin1_helper(char const*, int)'? ===&lt;br /&gt;
A: If you have an old Qt4 version in your qt/lib directory you must delete the old (4.0.1) files.&lt;br /&gt;
&lt;br /&gt;
=== How do I tell cmake to create noisy makefiles?  I want to see the exact commands that are run during the make process. ===&lt;br /&gt;
Pass the VERBOSE variable to make, i.e.&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
% make VERBOSE=1&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
or&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
% VERBOSE=1 make&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For more details see the CMake wiki: [http://www.cmake.org/Wiki/CMake_FAQ#Is_there_an_option_to_produce_more_.27verbose.27_compiling.3F Is there an option to produce more 'verbose' compiling?]&lt;br /&gt;
&lt;br /&gt;
=== There is no 'make distclean' target in the generated Makefiles.  How do I clean up everything, including the cache files? ===&lt;br /&gt;
Simply remove the build directory, or just the contents of the build directory.&lt;br /&gt;
&lt;br /&gt;
[[Category:Programming]]&lt;br /&gt;
[[Category:Tutorial]]&lt;br /&gt;
[[Category:FAQs]]&lt;/div&gt;</summary>
		<author><name>Logixoul</name></author>	</entry>

	<entry>
		<id>http://techbase.kde.org/Getting_Started/Build/KDE4</id>
		<title>Getting Started/Build/KDE4</title>
		<link rel="alternate" type="text/html" href="http://techbase.kde.org/Getting_Started/Build/KDE4"/>
				<updated>2007-09-09T18:31:30Z</updated>
		
		<summary type="html">&lt;p&gt;Logixoul: /* kdesupport */ cmon. don't insult the reader's intelligence.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Template:I18n/Language Navigation Bar|Getting_Started/Build/KDE4}}&lt;br /&gt;
&lt;br /&gt;
{{TutorialBrowser|&lt;br /&gt;
&lt;br /&gt;
series=Getting Started|&lt;br /&gt;
&lt;br /&gt;
name=Building KDE4 From Source|&lt;br /&gt;
&lt;br /&gt;
pre=[[../../Sources/Anonymous_SVN|Anonymous SVN Quickstart Guide]]|&lt;br /&gt;
&lt;br /&gt;
next=[[../../Set_up_KDE_4_for_development|Set up KDE 4 for development]]|&lt;br /&gt;
&lt;br /&gt;
reading=[http://kdesvn-build.kde.org/ kdesvn-build: The KDE From Subversion Build Tool]&amp;lt;br&amp;gt;[[../../Increased_Productivity_in_KDE4_with_Scripts|Increased Productivity in KDE4 with Scripts]]&amp;lt;br&amp;gt;[[Development/Tutorials/CMake |Introduction to CMake]]&amp;lt;br&amp;gt;[[../KDE4/FreeBSD|FreeBSD notes]]&amp;lt;br&amp;gt;[[../KDE4/Mac OS X|Instructions for Mac OS X]]&amp;lt;br&amp;gt;[[../KDE4/Windows|Instructions for MS Windows]]|&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== Abstract ==&lt;br /&gt;
&lt;br /&gt;
This tutorial shows one way to get KDE from trunk running on Linux/BSD systems. There are also tutorials for [[/FreeBSD|FreeBSD]], [http://www.kdelibs.com/ Windows], [[/Mac OS X|Mac OS X]] and [http://solaris.kde.org/ Solaris]. Throughout the tutorial the bash shell is used.&lt;br /&gt;
&lt;br /&gt;
{{warning|Expect a higher risk of build failure '''on Mondays''' when most kdelibs changes are committed. [http://developer.kde.org/~dirk/dashboard/ Dashboard] reports unexpected breakages. You are encouraged to fix failing modules.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== Required Software ==&lt;br /&gt;
&lt;br /&gt;
The following must be installed first before you can successfully complete this tutorial:&lt;br /&gt;
* gcc and g++ from the gcc project, preferably version 4.1 or higher&lt;br /&gt;
* svn, the subversion revision control client&lt;br /&gt;
* pkg-config&lt;br /&gt;
* development libraries and headers for X11, OpenGL (mesa-common-dev and libglu1-mesa-dev), libjpeg, libpng, libungif, [http://clucene.sourceforge.net/index.php/Downloads libclucene], [http://download.librdf.org/source/ librdf], libxml2 and libxslt&lt;br /&gt;
* the &amp;lt;tt&amp;gt;makeobj&amp;lt;/tt&amp;gt; script, which is part of kdesdk. You can install it as part of kdesdk (kdesdk-scripts on Debian) or similar package, or just download it itself from [http://websvn.kde.org/*checkout*/trunk/KDE/kdesdk/scripts/makeobj WebSVN]&lt;br /&gt;
* the [http://freedesktop.org/wiki/Software/shared-mime-info shared-mime-info package], which is the freedesktop MIME standard KDE is using now&lt;br /&gt;
* [http://boost.org/ boost], needed by kdebase; after compiling and/or installing boost, in order to make cmake aware about its location (FindBoost),  add boost directory (the one containing include subdirectory) to CMAKE_INCLUDE_PATH or set an environment variable called BOOST_ROOT pointing to boost directory.&lt;br /&gt;
&lt;br /&gt;
=== Ark Linux ===&lt;br /&gt;
In Ark Linux, the build dependencies you need are installed with:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code bash&amp;gt;&lt;br /&gt;
apt-get install devel-core libxml-devel libxslt-devel bzip2-devel \&lt;br /&gt;
clucene-devel librdf-devel shared-mime-info xorg-Mesa-libGL-devel \&lt;br /&gt;
subversion boost-devel doxygen giflib-devel dbus-devel openssl-devel \&lt;br /&gt;
alsa-lib-devel kdesdk-scripts qt4-devel&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you prefer a graphical interface, select the packages listed above in the &amp;quot;Install Software&amp;quot; tool in Mission Control.&lt;br /&gt;
&lt;br /&gt;
This includes installation of CMake, DBus and Qt - you can skip steps 5, 6 and 7.&lt;br /&gt;
&lt;br /&gt;
=== Kubuntu and Debian ===&lt;br /&gt;
&lt;br /&gt;
In Kubuntu 7.04 (Feisty) and Debian (Testing/Unstable) the build dependencies you need are installed with:&lt;br /&gt;
&amp;lt;code bash&amp;gt;&lt;br /&gt;
sudo aptitude install build-essential cdbs debhelper cmake \&lt;br /&gt;
libxml2-dev libxslt1-dev libbz2-dev libclucene-dev librdf-dev \&lt;br /&gt;
shared-mime-info libgl1-mesa-dev libglu1-mesa-dev mesa-common-dev \&lt;br /&gt;
libxext-dev libjpeg-dev libpng-dev subversion libsm-dev libxinerama-dev \&lt;br /&gt;
libxrender-dev libfontconfig-dev libboost-dev libxcursor-dev doxygen \&lt;br /&gt;
libungif4-dev libdbus-1-dev libgpgme11-dev libssl-dev libgpgme11-dev \&lt;br /&gt;
libasound2-dev kdesdk-scripts libpth-dev libjasper-dev ssh&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In Kubuntu 7.10 (Gutsy) you have to add:&lt;br /&gt;
&amp;lt;code bash&amp;gt;&lt;br /&gt;
sudo aptitude install dbus-x11&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For a fully functional API documentation framework you also need:&lt;br /&gt;
&amp;lt;code bash&amp;gt;&lt;br /&gt;
sudo aptitude install graphviz&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== openSUSE ===&lt;br /&gt;
&lt;br /&gt;
In openSUSE 10.2 and newer, you can install packages using [http://en.opensuse.org/Zypper Zypper]:&lt;br /&gt;
&amp;lt;code bash&amp;gt;&lt;br /&gt;
sudo zypper install &amp;lt;package-name&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In older releases of SUSE, you can use YaST:&lt;br /&gt;
&amp;lt;code bash&amp;gt;&lt;br /&gt;
su&lt;br /&gt;
yast -i &amp;lt;packagename&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Required Packages'''&lt;br /&gt;
&lt;br /&gt;
The packages you will need to install are:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
xorg-x11-devel&lt;br /&gt;
libxml2-devel &lt;br /&gt;
kdesdk3 &lt;br /&gt;
clucene-core-devel &lt;br /&gt;
boost-devel&lt;br /&gt;
libjpeg-devel &lt;br /&gt;
liblrdf-devel &lt;br /&gt;
libpng-devel &lt;br /&gt;
libxslt-devel &lt;br /&gt;
libredland-devel&lt;br /&gt;
Mesa-devel &lt;br /&gt;
giflib-devel &lt;br /&gt;
subversion &lt;br /&gt;
gcc &lt;br /&gt;
gcc-c++&lt;br /&gt;
gmp-devel (needed to build kdesupport)&lt;br /&gt;
strigi-devel (needed to build kdelibs)&lt;br /&gt;
gpgme-devel (needed to build kdepimlibs)&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Optional Packages'''&lt;br /&gt;
&lt;br /&gt;
You can skip the manual installation of Qt 4.3, CMake 2.4.6 and DBus by installing the adding the openSUSE Build Service KDE4 Repository to your installation sources.&lt;br /&gt;
&lt;br /&gt;
For openSUSE 10.2 and newer do:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
sudo zypper service-add http://software.opensuse.org/download/KDE:/KDE4/openSUSE_10.2 KDE4-102&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For older versions of SUSE Linux do:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
su&lt;br /&gt;
installation_sources -a http://software.opensuse.org/download/KDE:/KDE4/[YOUR SUSE LINUX VERSION]&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now install the following packages (and their dependencies):&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
cmake&lt;br /&gt;
dbus-1-devel&lt;br /&gt;
libqt4-devel&lt;br /&gt;
libqca2-devel (needed for building kdesupport)&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
And for fully functional apidox framework you also need:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
graphviz&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
CMake binary packages for openSUSE are available from [http://software.opensuse.org/download/devel:/tools:/building/ openSUSE build service].&lt;br /&gt;
&lt;br /&gt;
=== Gentoo ===&lt;br /&gt;
&lt;br /&gt;
==== Install by hand ====&lt;br /&gt;
&lt;br /&gt;
You can use stable ebuilds just remember to sync your portage before you begin.&lt;br /&gt;
&lt;br /&gt;
Remember: All commands are executed as root.&lt;br /&gt;
&lt;br /&gt;
Required:&lt;br /&gt;
&lt;br /&gt;
We need to allow the following keyword masked ebuilds.&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;code bash&amp;gt;&lt;br /&gt;
echo 'dev-util/cmake' &amp;gt;&amp;gt; /etc/portage/package.keywords&lt;br /&gt;
echo 'dev-cpp/clucene' &amp;gt;&amp;gt; /etc/portage/package.keywords&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Optional:&lt;br /&gt;
&lt;br /&gt;
If you decide not to use the KDE qt-copy, you need to keyword unmask Qt.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code bash&amp;gt;&lt;br /&gt;
echo 'x11-libs/qt' &amp;gt;&amp;gt; /etc/portage/package.keywords&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
And now need to mask any Clucene versions above 0.9.16a.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code bash&amp;gt;&lt;br /&gt;
echo '&amp;gt;dev-cpp/clucene-0.9.16a' &amp;gt;&amp;gt; /etc/portage/package.mask&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Make sure you have set the berkdb USE flag for redland, otherwise nepomuk won't work.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code bash&amp;gt;&lt;br /&gt;
echo 'dev-libs/redland berkdb' &amp;gt;&amp;gt; /etc/portage/package.use&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
These are the packages you will need to emerge, I included the update option into the emerge command so you will not re-emerge anything that you might already have installed.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code bash&amp;gt;&lt;br /&gt;
emerge -avu 'sys-devel/gcc' \&lt;br /&gt;
  'dev-util/subversion' \&lt;br /&gt;
  'dev-util/pkgconfig'  \&lt;br /&gt;
  'x11-base/xorg-x11' \&lt;br /&gt;
  'virtual/glut' \&lt;br /&gt;
  'media-libs/mesa' \&lt;br /&gt;
  'media-libs/jpeg' \&lt;br /&gt;
  'media-libs/libpng' \&lt;br /&gt;
  'media-libs/giflib' \&lt;br /&gt;
  'dev-cpp/clucene' \&lt;br /&gt;
  'dev-util/cppunit' \&lt;br /&gt;
  'media-libs/liblrdf' \&lt;br /&gt;
  'dev-libs/libxml2' \&lt;br /&gt;
  'dev-libs/libxslt' \&lt;br /&gt;
  'x11-misc/shared-mime-info' \&lt;br /&gt;
  'dev-libs/boost' \&lt;br /&gt;
  'dev-util/cmake' \&lt;br /&gt;
  'dev-libs/redland' \&lt;br /&gt;
  'sys-apps/dbus' \&lt;br /&gt;
  'sys-apps/hal'&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
You will also need to emerge either 'kde-base/kdesdk' or kde-base/kdesdk-scripts'.&lt;br /&gt;
&lt;br /&gt;
Optional:&lt;br /&gt;
&lt;br /&gt;
If you decided to use Gentoo's version of Qt4, you can emerge it using the following command.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code bash&amp;gt;&lt;br /&gt;
emerge -avu 'x11-libs/qt'&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
If you emerged DBUS, CMAKE, QT or HAL you may skip those sections respectively.&lt;br /&gt;
Good luck!&lt;br /&gt;
&lt;br /&gt;
==== Install via portage ====&lt;br /&gt;
&lt;br /&gt;
Also you can install the KDE 4 packages directly via &lt;br /&gt;
&amp;lt;code bash&amp;gt;&lt;br /&gt;
emerge -a &amp;lt;packagename&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To get the things you need, [http://gentoo-wiki.com/TIP_Overlays#Layman install layman] and then pull in the KDE overlay (which contains experimental KDE ebuilds): &lt;br /&gt;
&amp;lt;code bash&amp;gt;&lt;br /&gt;
layman -a kde&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
After this you need to adjust some USE-flags for KDE 4 and tell portage to use the testing KDE 4 ebuilds instead of the stable KDE 3 ones. &lt;br /&gt;
&lt;br /&gt;
That way portage will do the dependency tracking for you. &lt;br /&gt;
&lt;br /&gt;
Detailed instructions on building KDE 4 in Gentoo via portage can be found in the [http://overlays.gentoo.org/proj/kde/wiki KDE overlay wiki]. They are discussed in the thread [http://forums.gentoo.org/viewtopic-t-530111-postdays-0-postorder-asc-start-0.html KDE 4 monolithic ebuilds].&lt;br /&gt;
&lt;br /&gt;
== Create a user account for KDE4 development ==&lt;br /&gt;
&lt;br /&gt;
{{Note|&lt;br /&gt;
Some people like to have a separate user account for KDE 4 (for instance an old bug deleted files by mistake), and the instructions below were written with that approach.&lt;br /&gt;
&lt;br /&gt;
However it is much more efficient to do everything with a single user account, see [[Getting_Started/Increased_Productivity_in_KDE4_with_Scripts|Increased Productivity in KDE4 with Scripts]]&lt;br /&gt;
for more details. &lt;br /&gt;
&lt;br /&gt;
You can still follow the instructions below, but don't put the environment variables in your &amp;lt;tt&amp;gt;.bashrc&amp;lt;/tt&amp;gt;, put them in a separate file that you source to switch to the KDE 4 environment.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
=== Option 1: Command Line ===&lt;br /&gt;
&amp;lt;code bash&amp;gt;&lt;br /&gt;
useradd -m kde-devel&lt;br /&gt;
passwd kde-devel&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Option 2: Using KControl ===&lt;br /&gt;
&lt;br /&gt;
Instead of using the commands above, you can also use the User module in the KDE Control Center if you already have KDE3 installed.&lt;br /&gt;
&lt;br /&gt;
=== Setting up the environment ===&lt;br /&gt;
&lt;br /&gt;
Copy the {{path|~/.bashrc}} from your normal user account to the new kde-devel account. Next, copy and paste the contents of the [[Getting Started/Increased Productivity in KDE4 with Scripts/.bashrc|example .bashrc]] into {{path|~kde-devel/.bashrc}}. Be sure to comment out the line &amp;lt;tt&amp;gt;alias make=makeobj&amp;lt;/tt&amp;gt; if you do not have the &amp;lt;tt&amp;gt;[[Getting Started/Build/KDE4#Required Software|makeobj]]&amp;lt;/tt&amp;gt; command available. You will probably also want to modify the path to make sure it doesn't include your kde3 paths. Also if you want to use KDevelop to develop KDE 4 applications you may pass the ''-GKDevelop3'' flag to the ''cmake'' command (to make CMake generate KDevelop project files, it will help to avoid rebuilding in the future, see [[Getting_Started/Set_up_KDE_4_for_development#Setting_up_the_environment|this]]).  &lt;br /&gt;
To make it run, you have to open a new bash or to execute &lt;br /&gt;
&amp;lt;code bash&amp;gt;&lt;br /&gt;
source ~/.bashrc&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This will provide access to commands such as &amp;lt;tt&amp;gt;cmakekde&amp;lt;/tt&amp;gt; that are used in this tutorial as well as ensure that the proper paths are in place for Qt, KDE and CMake binaries.&lt;br /&gt;
&lt;br /&gt;
For more information, please read the [[Getting Started/Increased Productivity in KDE4 with Scripts]] tutorial.&lt;br /&gt;
&lt;br /&gt;
=== Switching to the New User ===&lt;br /&gt;
Switch to the user kde-devel: (don't forget the dash)&lt;br /&gt;
&amp;lt;code bash&amp;gt;&lt;br /&gt;
ssh -X kde-devel@localhost&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== The development user's shell ==&lt;br /&gt;
&lt;br /&gt;
On some systems a new user is configured by default to use {{path|/bin/sh}}. If this is not the case on your system, you can skip this section. Using {{path|/bin/sh}} can be very inconvenient to work with and you may want to change it to {{path|/bin/bash}} or another shell.&lt;br /&gt;
On Ark Linux, you can skip this step - {{path|/bin/sh}} is {{path|bash}} on Ark Linux.&lt;br /&gt;
&lt;br /&gt;
=== Option 1: As the kde-devel user ===&lt;br /&gt;
&lt;br /&gt;
If you don't have root privileges and your system supports the changing of your own shell with the &amp;lt;tt&amp;gt;chsh&amp;lt;/tt&amp;gt; application, then you could try to change your shell to {{path|/bin/bash}} by using:&lt;br /&gt;
&amp;lt;code bash&amp;gt;&lt;br /&gt;
chsh -s /bin/bash kde-devel&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Option 2: As the root user ===&lt;br /&gt;
&lt;br /&gt;
If your system comes with the &amp;lt;tt&amp;gt;usermod&amp;lt;/tt&amp;gt; application you can run the following command as root: &amp;lt;tt&amp;gt;usermod -s /bin/bash&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Another option is to use the &amp;lt;tt&amp;gt;vipw&amp;lt;/tt&amp;gt; application as root to safely edit your {{path|/etc/passwd}}. Locate 'kde-devel' in the the file. Change '{{path|/bin/sh}}' at the end of the line to read '{{path|/bin/bash}}', save your changes and exit.&lt;br /&gt;
&lt;br /&gt;
The new shell will be started automatically when you log in as the kde-devel user again.&lt;br /&gt;
&lt;br /&gt;
== D-Bus ==&lt;br /&gt;
QtDBus and KDE are known to work with D-Bus versions 0.62, as well as 0.92 and upwards. Versions 0.60 and 0.61 may work too but are not tested. Versions 0.90 and 0.91 are known not to work. We recommend using post-1.0 release versions (at least 0.94), so consider upgrading if you haven't done so.&lt;br /&gt;
&lt;br /&gt;
You may skip this section if you have a recent D-Bus version or if you don't want to upgrade. You probably want to skip building the bindings until/unless you know you will be building HAL (see below).&lt;br /&gt;
&lt;br /&gt;
Before running these steps in the recipe, make sure your X11 headers and libraries are available. The configure script run on line 5 of the following instructions should output:&lt;br /&gt;
 Building X11 code:        yes&lt;br /&gt;
&lt;br /&gt;
=== The Recipe ===&lt;br /&gt;
&lt;br /&gt;
{{tip|Make sure you did set up your environment correctly as described [[Getting_Started/Build/KDE4#Setting_up_the_environment|above]]. This is necessary for the &amp;lt;tt&amp;gt;cs&amp;lt;/tt&amp;gt; and &amp;lt;tt&amp;gt;cb&amp;lt;/tt&amp;gt; functions to work.}}&lt;br /&gt;
&lt;br /&gt;
 cs # [[Getting_Started/Increased_Productivity_in_KDE4_with_Scripts/.bashrc|'cs' is a bash function, click here to learn more]] &lt;br /&gt;
 wget http://dbus.freedesktop.org/releases/dbus/dbus-1.0.2.tar.gz&lt;br /&gt;
 tar -xvzf dbus-1.0.2.tar.gz&lt;br /&gt;
 cd dbus-1.0.2/&lt;br /&gt;
 ./configure --prefix=$DBUSDIR --localstatedir=/var&lt;br /&gt;
 make&lt;br /&gt;
 sudo make install&lt;br /&gt;
 sudo dbus-uuidgen --ensure&lt;br /&gt;
&lt;br /&gt;
 cs # see above&lt;br /&gt;
 wget http://dbus.freedesktop.org/releases/dbus-glib/dbus-glib-0.74.tar.gz&lt;br /&gt;
 tar -xvzf dbus-glib-0.74.tar.gz&lt;br /&gt;
 cd dbus-glib-0.74/&lt;br /&gt;
 ./configure --prefix=$DBUSDIR&lt;br /&gt;
 make&lt;br /&gt;
 sudo make install&lt;br /&gt;
&lt;br /&gt;
=== What's Happening === &lt;br /&gt;
After changing into the source directory (line 1), D-Bus source code is downloaded from freedesktop.org (line 2) and unpacked (line 3). After going into the newly created D-Bus directory (line 4), the build is set up using the supplied {{path|configure}} script (line 5). After building (line 6) and installing (line 7) D-Bus, we use the &amp;lt;tt&amp;gt;dbus-uuidgen&amp;lt;/tt&amp;gt; tool to install a machine identification file that allows the bus to start automatically when the desktop session starts (line 8).&lt;br /&gt;
&lt;br /&gt;
Note that you need write access to {{path|/var}} for the last two steps. If your system does not have the sudo command, you can use the &amp;lt;tt&amp;gt;su&amp;lt;/tt&amp;gt; command instead, e.g. &amp;lt;tt&amp;gt;su -c &amp;quot;make install&amp;quot;&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
The steps for building the glib bindings are similar to the above.&lt;br /&gt;
&lt;br /&gt;
== CMake ==&lt;br /&gt;
Skip this if you have [http://cmake.org/ CMake] &amp;gt;=2.4.5 installed. &lt;br /&gt;
You should be able to directly use the binary packages available on the [http://www.cmake.org/HTML/Download.html CMake site]. There are also distribution specific packages available.&lt;br /&gt;
&lt;br /&gt;
=== The Recipe ===&lt;br /&gt;
&amp;lt;!--'cs' and 'cb' are NOT typos!--&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 cs # [[Getting_Started/Increased_Productivity_in_KDE4_with_Scripts/.bashrc|'cs' is a bash function, click Here to learn more]] &lt;br /&gt;
 wget http://www.cmake.org/files/v2.4/cmake-2.4.6.tar.gz&lt;br /&gt;
 tar -zxf cmake-2.4.6.tar.gz&lt;br /&gt;
 mkdir cmake-build&lt;br /&gt;
 cd cmake-build &lt;br /&gt;
 ../cmake-2.4.6/bootstrap&lt;br /&gt;
 make&lt;br /&gt;
 sudo make install&lt;br /&gt;
&lt;br /&gt;
=== What's Happening ===&lt;br /&gt;
First, we go back to the &amp;lt;tt&amp;gt;kde-devel&amp;lt;/tt&amp;gt; user's source directory (line 1), get the CMake sources (line 2) and unpack them (line 3). We create a directory to build CMake in (line 4) and go into it (line 5). We then run the CMake bootstrap script to set up the CMake build (line 6), then make (line 7) and install it (line 8) using the root user.&lt;br /&gt;
&lt;br /&gt;
If your system does not have the &amp;lt;tt&amp;gt;sudo&amp;lt;/tt&amp;gt; command, you can instead do &amp;lt;tt&amp;gt;su -c &amp;quot;make install&amp;quot;&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Qt ==&lt;br /&gt;
Next we need to get the Qt4 that is in KDE's source repository. KDE is guaranteed to build against any Qt 4.3. Qt 4.2 and earlier are not supported and will not work. You should use the copy in the KDE Subversion servers. (note: some distros, like Debian, tend to supply Qt with patches from KDE svn applied, so you may want to cheat and use precompiled Qt from your distro)&lt;br /&gt;
&lt;br /&gt;
=== The Recipe ===&lt;br /&gt;
 cd&lt;br /&gt;
 svn checkout svn://anonsvn.kde.org/home/kde/trunk/qt-copy&lt;br /&gt;
 cd qt-copy&lt;br /&gt;
 ./apply_patches&lt;br /&gt;
 ./configure -qt-gif -no-exceptions -debug -fast \&lt;br /&gt;
  -prefix $QTDIR -nomake examples -nomake demos&lt;br /&gt;
 make -j2&lt;br /&gt;
&lt;br /&gt;
 # if we don't install, we'll just clear obj files to&lt;br /&gt;
 # save disk space&lt;br /&gt;
 if [ $QTDIR = `pwd` ]; then \&lt;br /&gt;
 find . -name '*.o' -delete ; \&lt;br /&gt;
 else make install; fi;&lt;br /&gt;
&lt;br /&gt;
=== What's Happening ===&lt;br /&gt;
We switch back to the &amp;lt;tt&amp;gt;kde-devel&amp;lt;/tt&amp;gt; user's home directory (line 1) and download the source code using subversion (svn) from KDE's repository (line 2). After changing into the resulting {{path|qt-copy}} directory (line 3), we run a script that manages the patches that come with &amp;lt;tt&amp;gt;qt-copy&amp;lt;/tt&amp;gt; (line 4). &lt;br /&gt;
&lt;br /&gt;
Once the patches have been applied, we then set up the build using the &amp;lt;tt&amp;gt;configure&amp;lt;/tt&amp;gt; script (line 5-6). The various command line options used are explained in the {{path|qt-copy/README.qt-copy}} file. Finally, we build the minimal requirements for KDE (line 7) and install (line 10) Qt. If install dir is the same as the current dir (line 8), then we just free some space (line 9) instead. If you want all the example and demo applications, you can either build them individually or simply do a &amp;lt;tt&amp;gt;make&amp;lt;/tt&amp;gt; from the {{path|qt-copy}} directory. &lt;br /&gt;
&lt;br /&gt;
Note that the installation does not require root as it installs Qt locally into {{path|$QTDIR}}. Anyway, installation is only needed if {{path|$QTDIR}} differs from {{path|$HOME/qt-copy}}, which is not the case if you have exactly followed the instructions.&lt;br /&gt;
&lt;br /&gt;
=== Troubleshooting ===&lt;br /&gt;
If you get &amp;quot;error: X11/Xlib.h: No such file or directory&amp;quot;, install the devel package of &amp;lt;tt&amp;gt;xorg&amp;lt;/tt&amp;gt; (the actual name may vary between operating systems, for example it is &amp;lt;tt&amp;gt;xorg-dev&amp;lt;/tt&amp;gt; on Ubuntu based systems such as Kubuntu). &lt;br /&gt;
&lt;br /&gt;
If you get an error in the configure step about missing defines, check the value of &amp;lt;tt&amp;gt;$QMAKESPEC&amp;lt;/tt&amp;gt;.  Some distributions set this to point directly to the system-installed Qt.  If &amp;lt;tt&amp;gt;unset QMAKESPEC&amp;lt;/tt&amp;gt; solves the problem, you probably want to add it to the &amp;lt;tt&amp;gt;~/.bashrc&amp;lt;/tt&amp;gt; script.&lt;br /&gt;
&lt;br /&gt;
If you get an error &amp;quot;.pch/debug-shared/QtCore&amp;quot;, this is because Qt-4.3 enables precompiled headers if your gcc supports it, but for some reason it doesn't work for you. If you use distcc, configure qt with -no-pch. If you use icecream, update to the latest icecream from svn trunk.&lt;br /&gt;
&lt;br /&gt;
Try running any Qt program, like {{program|assistant}}. '''Note:''' You may need to run &amp;lt;tt&amp;gt;xhost +local:kde-devel&amp;lt;/tt&amp;gt; as your regular kde3 user to run this application.  If it crashes in QSpanData::adjustSpanMethods, then your problem is the oxygen style. Try removing {{path|lib/kde4/plugins/styles/kstyle-oxygen.so}} and {{path|lib/kde4/plugins/styles/oxygen.so}} if they exist in the KDE install prefix.&lt;br /&gt;
&lt;br /&gt;
== HAL ==&lt;br /&gt;
&lt;br /&gt;
{{tip|You can use qdbusviewer to see if you have org.freedesktop.hal. If not, you might need a newer version of hal. If you have org.freedesktop.hal, you probably don't need to, and don't ''want'' to, roll your own HAL.}}&lt;br /&gt;
&lt;br /&gt;
If your system requires you to build a newer version of HAL, there's a decent chance you'll need to build other stuff as well, some of which may not be straight forward. Since this should only be required for older distros, instructions are on [[Getting_Started/Build/HAL| a separate page]].&lt;br /&gt;
&lt;br /&gt;
== kdesupport ==&lt;br /&gt;
&lt;br /&gt;
{{warning|Don't forget to read the [[Getting_Started/Build/KDE4#Setting_up_the_environment|Setting Up The Environment]] section first.}}&lt;br /&gt;
&lt;br /&gt;
There are several libraries that KDE applications rely on in the kdesupport module. This includes Strigi and Soprano for file metadata and search, QImageBlitz for image manipulation needed in kdebase, eigen for visual effects in applications such as Kalzium, taglib for music players and qca for some cryptographic needs. &lt;br /&gt;
&lt;br /&gt;
Strigi itself has a few dependencies as well: you will need the libraries and headers for libz, libbz2, openssl (libcrypto or libssl), libclucene (=0.9.16; version 0.9.17 does '''not''' work), and either libxml2 or libexpat.&lt;br /&gt;
&lt;br /&gt;
=== The Recipe ===&lt;br /&gt;
&amp;lt;!--'cs' and 'cb' are NOT typos!--&amp;gt;&lt;br /&gt;
 cs # [[Getting_Started/Increased_Productivity_in_KDE4_with_Scripts/.bashrc|cs is not a typo]]&lt;br /&gt;
 svn checkout svn://anonsvn.kde.org/home/kde/trunk/kdesupport/&lt;br /&gt;
 cd kdesupport&lt;br /&gt;
 cmakekde&lt;br /&gt;
&lt;br /&gt;
=== What's Happening ===&lt;br /&gt;
We change to the base source directory (line 1). We download the sources in kdesupport using subversion (line 2), go into the new {{path|~/kde/src/kdesupport}} directory (line 3), and commence the build (line 4). This will leave us in the kdesupport build directory after the build is completed.&lt;br /&gt;
&lt;br /&gt;
=== Troubleshooting ===&lt;br /&gt;
If you get &lt;br /&gt;
   cmakekde: command not found&lt;br /&gt;
then you have to go manualy into the kdesupport directory in ~ and execute the command cmakekde. if this still doesnt work, then something is wrong with your bashrc.&lt;br /&gt;
&lt;br /&gt;
If you get &lt;br /&gt;
 CMake Error: This project requires some variables to be set,&lt;br /&gt;
 and cmake can not find them.&lt;br /&gt;
 Please set the following variables:&lt;br /&gt;
 LIBXML2_INCLUDE_DIR (ADVANCED)&lt;br /&gt;
you should install the development package for libxml2.&lt;br /&gt;
&lt;br /&gt;
If you get &lt;br /&gt;
 CMake Error: Could NOT find REDLAND&lt;br /&gt;
then you need librdf from the Redland.&lt;br /&gt;
If your distribution does not provide the librdf package, you can download the source there: [http://download.librdf.org/source/ http://download.librdf.org/source/] and build it.&lt;br /&gt;
(Gentoo users: The ebuild for librdf is named dev-libs/redland)&lt;br /&gt;
&lt;br /&gt;
If you get&lt;br /&gt;
 Fetching external item into 'kdesupport/admin'&lt;br /&gt;
 Error validating server certificate for 'https://...'&lt;br /&gt;
see [http://techbase.kde.org/Getting_Started/Sources/Using_Subversion_with_KDE Using Subversion with KDE]&lt;br /&gt;
&lt;br /&gt;
If you get&lt;br /&gt;
 FILE cannot create directory: /usr/lib[64]/qt4/plugins/crypto. Maybe need administrative privileges.&lt;br /&gt;
 - - -&lt;br /&gt;
 make: *** [install] Error 255&lt;br /&gt;
take a second look in the .bashrc file described above, are paths correct?  Alternatively, you may see this error if you decided to use a distribution installed version of qt4 and skipped the Qt install above.  Either install qt-copy as describe above, or &amp;quot;sudo make install&amp;quot;. If you use &amp;quot;sudo make install&amp;quot;, make sure you that you change the ownership back to your user for some of the ~/kde subdirectories that were effected by using sudo (ie. &amp;quot;&amp;lt;tt&amp;gt;sudo chown -R kde-devel:kde-devel ~/kde&amp;lt;/tt&amp;gt;&amp;quot;).&lt;br /&gt;
&lt;br /&gt;
== kdelibs ==&lt;br /&gt;
&lt;br /&gt;
We can now move on to building KDE's base libraries.&lt;br /&gt;
&lt;br /&gt;
=== The Recipe ===&lt;br /&gt;
 cd   &lt;br /&gt;
 cs # [[Getting_Started/Increased_Productivity_in_KDE4_with_Scripts/.bashrc|cs is not a typo]]&lt;br /&gt;
 mkdir KDE &amp;amp;&amp;amp; cd KDE&lt;br /&gt;
 svn checkout svn://anonsvn.kde.org/home/kde/trunk/KDE/kdelibs&lt;br /&gt;
 cd kdelibs&lt;br /&gt;
 cmakekde&lt;br /&gt;
&lt;br /&gt;
=== What's Happening ===&lt;br /&gt;
We change to the base source directory (line 1) then make and go into the KDE directory (line 2). We download the sources for kdelibs using subversion (line 3), go into the new {{path|~/kde/src/KDE/kdelibs}} directory (line 4), and commence the build (line 5). This will leave us in the &amp;lt;tt&amp;gt;kdelibs&amp;lt;/tt&amp;gt; build directory after the build is completed.&lt;br /&gt;
&lt;br /&gt;
{{tip|There might be missing dependencies on your system! They are easily overlooked in the output of &amp;lt;tt&amp;gt;cmakekde&amp;lt;/tt&amp;gt;.&lt;br /&gt;
You might want to do a &amp;lt;tt&amp;gt;cmake $KDE_SRC/KDE/MODULE_NAME&amp;lt;/tt&amp;gt; prior to compiling any kde modules (like kdelibs, kdepimlibs etc.)}}&lt;br /&gt;
&lt;br /&gt;
=== Additional KDE-specific CMake modules ===&lt;br /&gt;
There are additional CMake modules in {{path|kdelibs/cmake/modules/}} that are necessary for building KDE4 applications. These will be installed for you when  kdelibs itself is installed.&lt;br /&gt;
&lt;br /&gt;
=== Troubleshooting ===&lt;br /&gt;
If you have problems compiling kdelibs, first make sure the software in the [[Getting_Started/Build/KDE4#Required_Software|Required Software]] section above is installed and works. Other possible hints include:&lt;br /&gt;
* If the &amp;lt;tt&amp;gt;cmakekde&amp;lt;/tt&amp;gt; command fails stating that CMake requires an out of source build directory, remove {{path|~/kde/src/KDE/kdelibs/CMakeCache.txt}}, and try again.&lt;br /&gt;
&lt;br /&gt;
If &amp;lt;tt&amp;gt;cmakekde&amp;lt;/tt&amp;gt; still gives the same error then try this &lt;br /&gt;
 cd&lt;br /&gt;
 cmake -DCMAKE_INSTALL_PREFIX=$KDEDIR \&lt;br /&gt;
 -DCMAKE_BUILD_TYPE=debugfull \&lt;br /&gt;
 -DKDE4_BUILD_TESTS=ON \&lt;br /&gt;
 ~/kde/src/KDE/kdelibs&lt;br /&gt;
 make&lt;br /&gt;
 make install&lt;br /&gt;
* If you received an error stating &amp;quot;Please create a separate build directory and run 'cmake path_to_kdelibs [options]' there.&amp;quot;, then you need to change to your build directory before running cmakekde. (e.g &amp;lt;tt&amp;gt;cs KDE/kdelibs &amp;amp;&amp;amp; cb &amp;amp;&amp;amp; cmakekde&amp;lt;/tt&amp;gt;) If the message stays, run 'svn status' in the kdelibs directory and remove all files labeled with '?'.&lt;br /&gt;
* If Qt wasn't found or the wrong version of Qt was found, make sure that the qmake from the Qt you need is the first qmake in the path.&lt;br /&gt;
* If the problems persist, try the CMake make-option &amp;lt;tt&amp;gt;--keep-going&amp;lt;/tt&amp;gt;.&lt;br /&gt;
* Here you need the libungif library, otherwise you will get an error message like &amp;quot;&amp;lt;tt&amp;gt;Could NOT find GIF&amp;lt;/tt&amp;gt;&amp;quot;.&lt;br /&gt;
* Qt-4.3 upgrade: if you get a link error in kjsembed talking about QScriptEngine, edit CMakeCache.txt in kdelibs and remove the lines that talk about QT_QTUITOOLS_LIBRARY, then type make again (that static library has a new dependency, and the cmake code that adds it needs to run).&lt;br /&gt;
* if you get &amp;lt;code&amp;gt;CMake Error: KDE Requires Qt to be built with SSL support&lt;br /&gt;
&amp;lt;/code&amp;gt;, install openssl-devel, remove CMakeCache.txt and re-compile QT.&lt;br /&gt;
* if you get &amp;lt;code&amp;gt;kdelibs/kimgio/ico.cpp:188: undefined reference to `QImage::jumpTable()'&amp;lt;/code&amp;gt; it means you compiled QT without QT3 support(no, linking to a true QT3 install won't work)&lt;br /&gt;
&lt;br /&gt;
== kdepimlibs ==&lt;br /&gt;
After &amp;lt;tt&amp;gt;kdelibs&amp;lt;/tt&amp;gt;, but before ''kdebase'', you need to build and install ''kdepimlibs''.&lt;br /&gt;
&lt;br /&gt;
=== The Recipe ===&lt;br /&gt;
&amp;lt;!--'cs' and 'cb' are NOT typos!--&amp;gt;&lt;br /&gt;
 cs KDE # [[Getting_Started/Increased_Productivity_in_KDE4_with_Scripts/.bashrc|cs is not a typo]]&lt;br /&gt;
 svn checkout svn://anonsvn.kde.org/home/kde/trunk/KDE/kdepimlibs&lt;br /&gt;
 cd kdepimlibs&lt;br /&gt;
 cmakekde&lt;br /&gt;
&lt;br /&gt;
=== What's Happening ===&lt;br /&gt;
We go into the KDE source directory (line 1), download the source code for kdepimlibs using subversion (line 2) and then go into the new {{path|~/kde/src/KDE/kdepimlibs}} directory (line 3). We then commence the build (line 4). This will leave us in the &amp;lt;tt&amp;gt;kdepimlibs&amp;lt;/tt&amp;gt; build directory after the build is completed.&lt;br /&gt;
&lt;br /&gt;
=== Troubleshooting ===&lt;br /&gt;
If you have trouble compiling kdepimlibs:&lt;br /&gt;
* the cmakekde command may require a later version of the gpgme library.  This is available from the project's web site: http://www.gnupg.org/(en)/download/index.html - please note that the build of gpgme also requires libgpg-error, also available from the same location.  Both libraries are installed by the &amp;quot;./configure&amp;quot;, &amp;quot;make&amp;quot; and &amp;quot;sudo make install&amp;quot; sequence, with the gpgme library configured with the additional &amp;quot;--with-gpg-error-prefix&amp;quot; parameter.  You may need to overwrite your existing &amp;quot;/usr/bin/gpgme-config&amp;quot; file with the newer version for the kdepimlibs to pick up the new install.&lt;br /&gt;
* if you get the error &amp;quot;cannot find -lpth&amp;quot; from /usr/bin/ld, then make sure you have The GNU Portable Threads (libpth-dev for Debian).&lt;br /&gt;
&lt;br /&gt;
== kdebase ==&lt;br /&gt;
kdebase is divided into three parts:&lt;br /&gt;
* '''apps'''&lt;br /&gt;
:This contains applications like Dolphin or KWrite.&lt;br /&gt;
* '''runtime'''&lt;br /&gt;
:This contains things needed by every application at runtime, like icons. It is a required dependency for each KDE application, so you have to compile and install this.&lt;br /&gt;
* '''workspace'''&lt;br /&gt;
:This contains things specific to the KDE desktop, like Plasma or the window manager. Most stuff here depends on X11. You only need it if you want to build a full KDE desktop.&lt;br /&gt;
&lt;br /&gt;
You can build all of kdebase at once, which is described in the recipe below. If you only want to build kdebase-runtime, which is the only requirement, you can replace &amp;lt;code bash&amp;gt;cd kdebase&amp;lt;/code&amp;gt; with &amp;lt;code bash&amp;gt;cd kdebase/runtime&amp;lt;/code&amp;gt; in the recipe below.&lt;br /&gt;
&lt;br /&gt;
=== The Recipe ===&lt;br /&gt;
&amp;lt;!--'cs' and 'cb' are NOT typos!--&amp;gt;&lt;br /&gt;
 cs KDE # [[Getting_Started/Increased_Productivity_in_KDE4_with_Scripts/.bashrc|cs is not a typo]]&lt;br /&gt;
 svn checkout svn://anonsvn.kde.org/home/kde/trunk/KDE/kdebase&lt;br /&gt;
 cd kdebase&lt;br /&gt;
 cmakekde&lt;br /&gt;
&lt;br /&gt;
=== Troubleshooting ===&lt;br /&gt;
If you have troubles compiling kdebase:&lt;br /&gt;
* Make sure you have the &amp;lt;tt&amp;gt;libxss headers&amp;lt;/tt&amp;gt; installed. (Usually you got undefined references on xscreensaver objects if you do not have those headers)&lt;br /&gt;
* &amp;lt;tt&amp;gt;which meinproc&amp;lt;/tt&amp;gt; has to deliver {{path|/home/kde-devel/kde/bin/meinproc}}&lt;br /&gt;
* if cmakekde can not find the path of kdepimlibs, edit the file {{path|$KDE_BUILD/KDE/kdebase/CMakeCache.txt}} and manually set &amp;lt;tt&amp;gt;KDEPIMLIBS_INCLUDE_DIR:PATH=$KDE_BUILD/kdepimlibs&amp;lt;/tt&amp;gt;&lt;br /&gt;
* if you get an error saying &amp;quot;Please set the following variables: X11_XTest_LIB (ADVANCED)&amp;quot;, install the devel package of &amp;lt;tt&amp;gt;Xtst&amp;lt;/tt&amp;gt;. On some systems, this is packaged separately from &amp;lt;tt&amp;gt;xext&amp;lt;/tt&amp;gt; and called &amp;lt;tt&amp;gt;x11proto-xext-dev&amp;lt;/tt&amp;gt; or &amp;lt;tt&amp;gt;libxtst-dev&amp;lt;/tt&amp;gt;. You may also need to remove the CMakeCache.txt file in the build dir after installing the package.&lt;br /&gt;
* the same for &amp;quot;X11_Xinerama_LIB (ADVANCED)&amp;quot; where you will need the devel package for &amp;lt;tt&amp;gt;xinerama&amp;lt;/tt&amp;gt;.&lt;br /&gt;
* if you get an error complaining about a missing variable X11_Xrandr_LIB, you need the devel package for libxrandr (libxrandr-devel on ubuntu-systems)&lt;br /&gt;
* if you get the error &amp;quot;Please set the following variables: FONTCONFIG_INCLUDE_DIR, FONTCONFIG_LIBRARIES (ADVANCED)&amp;quot;, then you need to install  the libfontconfig headers&lt;br /&gt;
* if you get the error &amp;quot;CMake Error: This project requires some variables to be set, and cmake can not find them. Please set the following variables: KMETADATA_LIBRARIES&amp;quot;, you need to install soprano from kdesupport and to rebuild kdelibs&lt;br /&gt;
* if you get the error &amp;quot;‘XserverRegion’ does not name a type&amp;quot; make sure you have libxcomposite headers installed (&amp;lt;tt&amp;gt;libxcomposite-dev&amp;lt;/tt&amp;gt; in ubuntu)&lt;br /&gt;
* if you get the error &amp;quot;CMake Error: This project requires some variables to be set, and cmake can not find them. Please set the following variables: QT_QTOPENGL_LIBRARY (ADVANCED) &amp;quot;, try editing CMakeCache.txt and setting QT_QTOPENGL_LIBRARY:FILEPATH=/home/kde-devel/qt-copy/lib/libQtOpenGL.so&lt;br /&gt;
&lt;br /&gt;
* if you get messages as &amp;quot;KDE4_INSTALL_HANDBOOK() is deprecated. Remove it please. Now all is done in KDE4_CREATE_HANDBOOK.&amp;quot; then, either find the files containing the offending line and comment it out manually, or run the following script in ~/kde/src/KDE/kdebase: [http://www.plamadeala.com/files/macros_corrector.sh macros_corrector.sh]. It will just REMOVE the line that has &amp;quot;kde4_create_handbook&amp;quot; in it from all the found files.&lt;br /&gt;
&lt;br /&gt;
== Running KDE 4 programs ==&lt;br /&gt;
&lt;br /&gt;
You can now run KDE 4 programs (e.g. kwrite) by typing:&lt;br /&gt;
 ssh -X kde-devel@localhost&lt;br /&gt;
 kwrite &lt;br /&gt;
&lt;br /&gt;
=== Troubleshooting ===&lt;br /&gt;
&lt;br /&gt;
* If you get &lt;br /&gt;
 KUniqueApplication: Cannot find the D-Bus session server&lt;br /&gt;
check if you can access the display, e.g. type&lt;br /&gt;
 xclock&lt;br /&gt;
and see if a clock appears on the screen.&lt;br /&gt;
&lt;br /&gt;
* If you get something like&lt;br /&gt;
 Error: standard icon theme &amp;quot;oxygen&amp;quot; not found!&lt;br /&gt;
 &lt;br /&gt;
 ASSERT: &amp;quot;!isEmpty()&amp;quot; in file /home/kde-devel/qt-copy/include/QtCore/../../src/corelib/tools/qlist.h, line 245&lt;br /&gt;
 Aborted (core dumped)&lt;br /&gt;
You need to install kdebase - see above. It is enough to install the &amp;quot;runtime&amp;quot; directory from kdebase.&lt;br /&gt;
&lt;br /&gt;
== Generating local API documentation ==&lt;br /&gt;
Although the API documentation for KDE is available online at [http://api.kde.org api.kde.org], it is sometimes useful to have it on your own disk, for example when you want to use [[Getting_Started/Set_up_KDE_4_for_development#KDevelop|KDevelop]] for browsing the documentation or when you are not able to be online all the time.&lt;br /&gt;
&lt;br /&gt;
Be aware that generating the API documentation can take several hours and takes almost half a gigabyte of diskspace.&lt;br /&gt;
The generation is handled by a script in {{path|kdelibs/doc/api}}, you need &amp;lt;tt&amp;gt;doxygen&amp;lt;/tt&amp;gt; to be able to run it. &lt;br /&gt;
&lt;br /&gt;
To build the API documentation for kdelibs, type the following:&lt;br /&gt;
&amp;lt;!--'cs' and 'cb' are NOT typos!--&amp;gt;&lt;br /&gt;
 cs KDE/kdelibs # [[Getting_Started/Increased_Productivity_in_KDE4_with_Scripts/.bashrc|cs is not a typo]]&lt;br /&gt;
 $KDE_SRC/KDE/kdelibs/doc/api/doxygen.sh \&lt;br /&gt;
 --doxdatadir=$KDE_SRC/KDE/kdelibs/doc/common .&lt;br /&gt;
&lt;br /&gt;
Repeat for other modules as desired.&amp;lt;br&amp;gt;&lt;br /&gt;
 cd &amp;lt;module home&amp;gt;&lt;br /&gt;
 $KDE_SRC/KDE/kdelibs/doc/api/doxygen.sh \&lt;br /&gt;
 --doxdatadir=$KDE_SRC/KDE/kdelibs/doc/common .&lt;br /&gt;
&lt;br /&gt;
Another, even easier method involves downloading this [[Doxyfile]] to your local system. Then simply change directory to where you want to create the documentation and run&lt;br /&gt;
&amp;lt;code bash&amp;gt;&lt;br /&gt;
% doxygen /path/to/Doxyfile&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
Then review the file {{path|doxygen.log}} to see the doxygen errors and warnings. You'll find the actual documentation in the {{path|apidocs}} subdirectory.&lt;br /&gt;
&lt;br /&gt;
== Staying up to date ==&lt;br /&gt;
&lt;br /&gt;
In order to keep the kde4 installation up to date, each of the modules installed should be updated periodically. As Monday is the day for big changes in kdelibs, Tuesday may be the best day to do this. For each module checked out, run &amp;lt;tt&amp;gt;svn up&amp;lt;/tt&amp;gt; and &amp;lt;tt&amp;gt;make&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
For example:&lt;br /&gt;
&amp;lt;code bash&amp;gt;&lt;br /&gt;
cs kdesupport # cs is not a typo&lt;br /&gt;
svn up&lt;br /&gt;
cb # cb is not a typo&lt;br /&gt;
make -j2 VERBOSE=1 &amp;amp;&amp;amp; make install&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== General troubleshooting ==&lt;br /&gt;
&lt;br /&gt;
What can happen over time, after some &amp;lt;tt&amp;gt;svn up&amp;lt;/tt&amp;gt; commands, is that some of the tools used in the KDE build chain change their output format. For example, &amp;lt;tt&amp;gt;kcfg&amp;lt;/tt&amp;gt; files are read by &amp;lt;tt&amp;gt;kconfig_compiler&amp;lt;/tt&amp;gt; to produce configuration dialogs. CMake cannot detect those changes, and the compilation might fail. A workaround is to always force a re-generation of all such files:&lt;br /&gt;
 find $KDE_SRC/KDE/kdebase -name &amp;quot;*.kcfg&amp;quot; | xargs touch&lt;br /&gt;
The same applies to &amp;lt;tt&amp;gt;ui&amp;lt;/tt&amp;gt; files as produced by Qt designer.&lt;br /&gt;
&lt;br /&gt;
== Success! ==&lt;br /&gt;
&lt;br /&gt;
You are now ready to start building other svn modules in the same fashion as you built kdebase, running and testing KDE4 or writing your own patches and applications.&lt;br /&gt;
&lt;br /&gt;
See the [[Getting Started/Set up KDE 4 for development|Set up KDE 4 for development]] tutorial for how to start KDE 4 applications and how to use KDevelop to work on them.&lt;br /&gt;
&lt;br /&gt;
[[Category:Build KDE]]&lt;br /&gt;
[[Category:KDE4]]&lt;/div&gt;</summary>
		<author><name>Logixoul</name></author>	</entry>

	<entry>
		<id>http://techbase.kde.org/Getting_Started/Build/KDE4</id>
		<title>Getting Started/Build/KDE4</title>
		<link rel="alternate" type="text/html" href="http://techbase.kde.org/Getting_Started/Build/KDE4"/>
				<updated>2007-09-09T18:29:47Z</updated>
		
		<summary type="html">&lt;p&gt;Logixoul: /* TroubleShooting */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Template:I18n/Language Navigation Bar|Getting_Started/Build/KDE4}}&lt;br /&gt;
&lt;br /&gt;
{{TutorialBrowser|&lt;br /&gt;
&lt;br /&gt;
series=Getting Started|&lt;br /&gt;
&lt;br /&gt;
name=Building KDE4 From Source|&lt;br /&gt;
&lt;br /&gt;
pre=[[../../Sources/Anonymous_SVN|Anonymous SVN Quickstart Guide]]|&lt;br /&gt;
&lt;br /&gt;
next=[[../../Set_up_KDE_4_for_development|Set up KDE 4 for development]]|&lt;br /&gt;
&lt;br /&gt;
reading=[http://kdesvn-build.kde.org/ kdesvn-build: The KDE From Subversion Build Tool]&amp;lt;br&amp;gt;[[../../Increased_Productivity_in_KDE4_with_Scripts|Increased Productivity in KDE4 with Scripts]]&amp;lt;br&amp;gt;[[Development/Tutorials/CMake |Introduction to CMake]]&amp;lt;br&amp;gt;[[../KDE4/FreeBSD|FreeBSD notes]]&amp;lt;br&amp;gt;[[../KDE4/Mac OS X|Instructions for Mac OS X]]&amp;lt;br&amp;gt;[[../KDE4/Windows|Instructions for MS Windows]]|&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== Abstract ==&lt;br /&gt;
&lt;br /&gt;
This tutorial shows one way to get KDE from trunk running on Linux/BSD systems. There are also tutorials for [[/FreeBSD|FreeBSD]], [http://www.kdelibs.com/ Windows], [[/Mac OS X|Mac OS X]] and [http://solaris.kde.org/ Solaris]. Throughout the tutorial the bash shell is used.&lt;br /&gt;
&lt;br /&gt;
{{warning|Expect a higher risk of build failure '''on Mondays''' when most kdelibs changes are committed. [http://developer.kde.org/~dirk/dashboard/ Dashboard] reports unexpected breakages. You are encouraged to fix failing modules.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== Required Software ==&lt;br /&gt;
&lt;br /&gt;
The following must be installed first before you can successfully complete this tutorial:&lt;br /&gt;
* gcc and g++ from the gcc project, preferably version 4.1 or higher&lt;br /&gt;
* svn, the subversion revision control client&lt;br /&gt;
* pkg-config&lt;br /&gt;
* development libraries and headers for X11, OpenGL (mesa-common-dev and libglu1-mesa-dev), libjpeg, libpng, libungif, [http://clucene.sourceforge.net/index.php/Downloads libclucene], [http://download.librdf.org/source/ librdf], libxml2 and libxslt&lt;br /&gt;
* the &amp;lt;tt&amp;gt;makeobj&amp;lt;/tt&amp;gt; script, which is part of kdesdk. You can install it as part of kdesdk (kdesdk-scripts on Debian) or similar package, or just download it itself from [http://websvn.kde.org/*checkout*/trunk/KDE/kdesdk/scripts/makeobj WebSVN]&lt;br /&gt;
* the [http://freedesktop.org/wiki/Software/shared-mime-info shared-mime-info package], which is the freedesktop MIME standard KDE is using now&lt;br /&gt;
* [http://boost.org/ boost], needed by kdebase; after compiling and/or installing boost, in order to make cmake aware about its location (FindBoost),  add boost directory (the one containing include subdirectory) to CMAKE_INCLUDE_PATH or set an environment variable called BOOST_ROOT pointing to boost directory.&lt;br /&gt;
&lt;br /&gt;
=== Ark Linux ===&lt;br /&gt;
In Ark Linux, the build dependencies you need are installed with:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code bash&amp;gt;&lt;br /&gt;
apt-get install devel-core libxml-devel libxslt-devel bzip2-devel \&lt;br /&gt;
clucene-devel librdf-devel shared-mime-info xorg-Mesa-libGL-devel \&lt;br /&gt;
subversion boost-devel doxygen giflib-devel dbus-devel openssl-devel \&lt;br /&gt;
alsa-lib-devel kdesdk-scripts qt4-devel&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you prefer a graphical interface, select the packages listed above in the &amp;quot;Install Software&amp;quot; tool in Mission Control.&lt;br /&gt;
&lt;br /&gt;
This includes installation of CMake, DBus and Qt - you can skip steps 5, 6 and 7.&lt;br /&gt;
&lt;br /&gt;
=== Kubuntu and Debian ===&lt;br /&gt;
&lt;br /&gt;
In Kubuntu 7.04 (Feisty) and Debian (Testing/Unstable) the build dependencies you need are installed with:&lt;br /&gt;
&amp;lt;code bash&amp;gt;&lt;br /&gt;
sudo aptitude install build-essential cdbs debhelper cmake \&lt;br /&gt;
libxml2-dev libxslt1-dev libbz2-dev libclucene-dev librdf-dev \&lt;br /&gt;
shared-mime-info libgl1-mesa-dev libglu1-mesa-dev mesa-common-dev \&lt;br /&gt;
libxext-dev libjpeg-dev libpng-dev subversion libsm-dev libxinerama-dev \&lt;br /&gt;
libxrender-dev libfontconfig-dev libboost-dev libxcursor-dev doxygen \&lt;br /&gt;
libungif4-dev libdbus-1-dev libgpgme11-dev libssl-dev libgpgme11-dev \&lt;br /&gt;
libasound2-dev kdesdk-scripts libpth-dev libjasper-dev ssh&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In Kubuntu 7.10 (Gutsy) you have to add:&lt;br /&gt;
&amp;lt;code bash&amp;gt;&lt;br /&gt;
sudo aptitude install dbus-x11&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For a fully functional API documentation framework you also need:&lt;br /&gt;
&amp;lt;code bash&amp;gt;&lt;br /&gt;
sudo aptitude install graphviz&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== openSUSE ===&lt;br /&gt;
&lt;br /&gt;
In openSUSE 10.2 and newer, you can install packages using [http://en.opensuse.org/Zypper Zypper]:&lt;br /&gt;
&amp;lt;code bash&amp;gt;&lt;br /&gt;
sudo zypper install &amp;lt;package-name&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In older releases of SUSE, you can use YaST:&lt;br /&gt;
&amp;lt;code bash&amp;gt;&lt;br /&gt;
su&lt;br /&gt;
yast -i &amp;lt;packagename&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Required Packages'''&lt;br /&gt;
&lt;br /&gt;
The packages you will need to install are:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
xorg-x11-devel&lt;br /&gt;
libxml2-devel &lt;br /&gt;
kdesdk3 &lt;br /&gt;
clucene-core-devel &lt;br /&gt;
boost-devel&lt;br /&gt;
libjpeg-devel &lt;br /&gt;
liblrdf-devel &lt;br /&gt;
libpng-devel &lt;br /&gt;
libxslt-devel &lt;br /&gt;
libredland-devel&lt;br /&gt;
Mesa-devel &lt;br /&gt;
giflib-devel &lt;br /&gt;
subversion &lt;br /&gt;
gcc &lt;br /&gt;
gcc-c++&lt;br /&gt;
gmp-devel (needed to build kdesupport)&lt;br /&gt;
strigi-devel (needed to build kdelibs)&lt;br /&gt;
gpgme-devel (needed to build kdepimlibs)&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Optional Packages'''&lt;br /&gt;
&lt;br /&gt;
You can skip the manual installation of Qt 4.3, CMake 2.4.6 and DBus by installing the adding the openSUSE Build Service KDE4 Repository to your installation sources.&lt;br /&gt;
&lt;br /&gt;
For openSUSE 10.2 and newer do:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
sudo zypper service-add http://software.opensuse.org/download/KDE:/KDE4/openSUSE_10.2 KDE4-102&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For older versions of SUSE Linux do:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
su&lt;br /&gt;
installation_sources -a http://software.opensuse.org/download/KDE:/KDE4/[YOUR SUSE LINUX VERSION]&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now install the following packages (and their dependencies):&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
cmake&lt;br /&gt;
dbus-1-devel&lt;br /&gt;
libqt4-devel&lt;br /&gt;
libqca2-devel (needed for building kdesupport)&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
And for fully functional apidox framework you also need:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
graphviz&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
CMake binary packages for openSUSE are available from [http://software.opensuse.org/download/devel:/tools:/building/ openSUSE build service].&lt;br /&gt;
&lt;br /&gt;
=== Gentoo ===&lt;br /&gt;
&lt;br /&gt;
==== Install by hand ====&lt;br /&gt;
&lt;br /&gt;
You can use stable ebuilds just remember to sync your portage before you begin.&lt;br /&gt;
&lt;br /&gt;
Remember: All commands are executed as root.&lt;br /&gt;
&lt;br /&gt;
Required:&lt;br /&gt;
&lt;br /&gt;
We need to allow the following keyword masked ebuilds.&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;code bash&amp;gt;&lt;br /&gt;
echo 'dev-util/cmake' &amp;gt;&amp;gt; /etc/portage/package.keywords&lt;br /&gt;
echo 'dev-cpp/clucene' &amp;gt;&amp;gt; /etc/portage/package.keywords&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Optional:&lt;br /&gt;
&lt;br /&gt;
If you decide not to use the KDE qt-copy, you need to keyword unmask Qt.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code bash&amp;gt;&lt;br /&gt;
echo 'x11-libs/qt' &amp;gt;&amp;gt; /etc/portage/package.keywords&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
And now need to mask any Clucene versions above 0.9.16a.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code bash&amp;gt;&lt;br /&gt;
echo '&amp;gt;dev-cpp/clucene-0.9.16a' &amp;gt;&amp;gt; /etc/portage/package.mask&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Make sure you have set the berkdb USE flag for redland, otherwise nepomuk won't work.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code bash&amp;gt;&lt;br /&gt;
echo 'dev-libs/redland berkdb' &amp;gt;&amp;gt; /etc/portage/package.use&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
These are the packages you will need to emerge, I included the update option into the emerge command so you will not re-emerge anything that you might already have installed.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code bash&amp;gt;&lt;br /&gt;
emerge -avu 'sys-devel/gcc' \&lt;br /&gt;
  'dev-util/subversion' \&lt;br /&gt;
  'dev-util/pkgconfig'  \&lt;br /&gt;
  'x11-base/xorg-x11' \&lt;br /&gt;
  'virtual/glut' \&lt;br /&gt;
  'media-libs/mesa' \&lt;br /&gt;
  'media-libs/jpeg' \&lt;br /&gt;
  'media-libs/libpng' \&lt;br /&gt;
  'media-libs/giflib' \&lt;br /&gt;
  'dev-cpp/clucene' \&lt;br /&gt;
  'dev-util/cppunit' \&lt;br /&gt;
  'media-libs/liblrdf' \&lt;br /&gt;
  'dev-libs/libxml2' \&lt;br /&gt;
  'dev-libs/libxslt' \&lt;br /&gt;
  'x11-misc/shared-mime-info' \&lt;br /&gt;
  'dev-libs/boost' \&lt;br /&gt;
  'dev-util/cmake' \&lt;br /&gt;
  'dev-libs/redland' \&lt;br /&gt;
  'sys-apps/dbus' \&lt;br /&gt;
  'sys-apps/hal'&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
You will also need to emerge either 'kde-base/kdesdk' or kde-base/kdesdk-scripts'.&lt;br /&gt;
&lt;br /&gt;
Optional:&lt;br /&gt;
&lt;br /&gt;
If you decided to use Gentoo's version of Qt4, you can emerge it using the following command.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code bash&amp;gt;&lt;br /&gt;
emerge -avu 'x11-libs/qt'&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
If you emerged DBUS, CMAKE, QT or HAL you may skip those sections respectively.&lt;br /&gt;
Good luck!&lt;br /&gt;
&lt;br /&gt;
==== Install via portage ====&lt;br /&gt;
&lt;br /&gt;
Also you can install the KDE 4 packages directly via &lt;br /&gt;
&amp;lt;code bash&amp;gt;&lt;br /&gt;
emerge -a &amp;lt;packagename&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To get the things you need, [http://gentoo-wiki.com/TIP_Overlays#Layman install layman] and then pull in the KDE overlay (which contains experimental KDE ebuilds): &lt;br /&gt;
&amp;lt;code bash&amp;gt;&lt;br /&gt;
layman -a kde&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
After this you need to adjust some USE-flags for KDE 4 and tell portage to use the testing KDE 4 ebuilds instead of the stable KDE 3 ones. &lt;br /&gt;
&lt;br /&gt;
That way portage will do the dependency tracking for you. &lt;br /&gt;
&lt;br /&gt;
Detailed instructions on building KDE 4 in Gentoo via portage can be found in the [http://overlays.gentoo.org/proj/kde/wiki KDE overlay wiki]. They are discussed in the thread [http://forums.gentoo.org/viewtopic-t-530111-postdays-0-postorder-asc-start-0.html KDE 4 monolithic ebuilds].&lt;br /&gt;
&lt;br /&gt;
== Create a user account for KDE4 development ==&lt;br /&gt;
&lt;br /&gt;
{{Note|&lt;br /&gt;
Some people like to have a separate user account for KDE 4 (for instance an old bug deleted files by mistake), and the instructions below were written with that approach.&lt;br /&gt;
&lt;br /&gt;
However it is much more efficient to do everything with a single user account, see [[Getting_Started/Increased_Productivity_in_KDE4_with_Scripts|Increased Productivity in KDE4 with Scripts]]&lt;br /&gt;
for more details. &lt;br /&gt;
&lt;br /&gt;
You can still follow the instructions below, but don't put the environment variables in your &amp;lt;tt&amp;gt;.bashrc&amp;lt;/tt&amp;gt;, put them in a separate file that you source to switch to the KDE 4 environment.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
=== Option 1: Command Line ===&lt;br /&gt;
&amp;lt;code bash&amp;gt;&lt;br /&gt;
useradd -m kde-devel&lt;br /&gt;
passwd kde-devel&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Option 2: Using KControl ===&lt;br /&gt;
&lt;br /&gt;
Instead of using the commands above, you can also use the User module in the KDE Control Center if you already have KDE3 installed.&lt;br /&gt;
&lt;br /&gt;
=== Setting up the environment ===&lt;br /&gt;
&lt;br /&gt;
Copy the {{path|~/.bashrc}} from your normal user account to the new kde-devel account. Next, copy and paste the contents of the [[Getting Started/Increased Productivity in KDE4 with Scripts/.bashrc|example .bashrc]] into {{path|~kde-devel/.bashrc}}. Be sure to comment out the line &amp;lt;tt&amp;gt;alias make=makeobj&amp;lt;/tt&amp;gt; if you do not have the &amp;lt;tt&amp;gt;[[Getting Started/Build/KDE4#Required Software|makeobj]]&amp;lt;/tt&amp;gt; command available. You will probably also want to modify the path to make sure it doesn't include your kde3 paths. Also if you want to use KDevelop to develop KDE 4 applications you may pass the ''-GKDevelop3'' flag to the ''cmake'' command (to make CMake generate KDevelop project files, it will help to avoid rebuilding in the future, see [[Getting_Started/Set_up_KDE_4_for_development#Setting_up_the_environment|this]]).  &lt;br /&gt;
To make it run, you have to open a new bash or to execute &lt;br /&gt;
&amp;lt;code bash&amp;gt;&lt;br /&gt;
source ~/.bashrc&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This will provide access to commands such as &amp;lt;tt&amp;gt;cmakekde&amp;lt;/tt&amp;gt; that are used in this tutorial as well as ensure that the proper paths are in place for Qt, KDE and CMake binaries.&lt;br /&gt;
&lt;br /&gt;
For more information, please read the [[Getting Started/Increased Productivity in KDE4 with Scripts]] tutorial.&lt;br /&gt;
&lt;br /&gt;
=== Switching to the New User ===&lt;br /&gt;
Switch to the user kde-devel: (don't forget the dash)&lt;br /&gt;
&amp;lt;code bash&amp;gt;&lt;br /&gt;
ssh -X kde-devel@localhost&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== The development user's shell ==&lt;br /&gt;
&lt;br /&gt;
On some systems a new user is configured by default to use {{path|/bin/sh}}. If this is not the case on your system, you can skip this section. Using {{path|/bin/sh}} can be very inconvenient to work with and you may want to change it to {{path|/bin/bash}} or another shell.&lt;br /&gt;
On Ark Linux, you can skip this step - {{path|/bin/sh}} is {{path|bash}} on Ark Linux.&lt;br /&gt;
&lt;br /&gt;
=== Option 1: As the kde-devel user ===&lt;br /&gt;
&lt;br /&gt;
If you don't have root privileges and your system supports the changing of your own shell with the &amp;lt;tt&amp;gt;chsh&amp;lt;/tt&amp;gt; application, then you could try to change your shell to {{path|/bin/bash}} by using:&lt;br /&gt;
&amp;lt;code bash&amp;gt;&lt;br /&gt;
chsh -s /bin/bash kde-devel&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Option 2: As the root user ===&lt;br /&gt;
&lt;br /&gt;
If your system comes with the &amp;lt;tt&amp;gt;usermod&amp;lt;/tt&amp;gt; application you can run the following command as root: &amp;lt;tt&amp;gt;usermod -s /bin/bash&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Another option is to use the &amp;lt;tt&amp;gt;vipw&amp;lt;/tt&amp;gt; application as root to safely edit your {{path|/etc/passwd}}. Locate 'kde-devel' in the the file. Change '{{path|/bin/sh}}' at the end of the line to read '{{path|/bin/bash}}', save your changes and exit.&lt;br /&gt;
&lt;br /&gt;
The new shell will be started automatically when you log in as the kde-devel user again.&lt;br /&gt;
&lt;br /&gt;
== D-Bus ==&lt;br /&gt;
QtDBus and KDE are known to work with D-Bus versions 0.62, as well as 0.92 and upwards. Versions 0.60 and 0.61 may work too but are not tested. Versions 0.90 and 0.91 are known not to work. We recommend using post-1.0 release versions (at least 0.94), so consider upgrading if you haven't done so.&lt;br /&gt;
&lt;br /&gt;
You may skip this section if you have a recent D-Bus version or if you don't want to upgrade. You probably want to skip building the bindings until/unless you know you will be building HAL (see below).&lt;br /&gt;
&lt;br /&gt;
Before running these steps in the recipe, make sure your X11 headers and libraries are available. The configure script run on line 5 of the following instructions should output:&lt;br /&gt;
 Building X11 code:        yes&lt;br /&gt;
&lt;br /&gt;
=== The Recipe ===&lt;br /&gt;
&lt;br /&gt;
{{tip|Make sure you did set up your environment correctly as described [[Getting_Started/Build/KDE4#Setting_up_the_environment|above]]. This is necessary for the &amp;lt;tt&amp;gt;cs&amp;lt;/tt&amp;gt; and &amp;lt;tt&amp;gt;cb&amp;lt;/tt&amp;gt; functions to work.}}&lt;br /&gt;
&lt;br /&gt;
 cs # [[Getting_Started/Increased_Productivity_in_KDE4_with_Scripts/.bashrc|'cs' is a bash function, click here to learn more]] &lt;br /&gt;
 wget http://dbus.freedesktop.org/releases/dbus/dbus-1.0.2.tar.gz&lt;br /&gt;
 tar -xvzf dbus-1.0.2.tar.gz&lt;br /&gt;
 cd dbus-1.0.2/&lt;br /&gt;
 ./configure --prefix=$DBUSDIR --localstatedir=/var&lt;br /&gt;
 make&lt;br /&gt;
 sudo make install&lt;br /&gt;
 sudo dbus-uuidgen --ensure&lt;br /&gt;
&lt;br /&gt;
 cs # see above&lt;br /&gt;
 wget http://dbus.freedesktop.org/releases/dbus-glib/dbus-glib-0.74.tar.gz&lt;br /&gt;
 tar -xvzf dbus-glib-0.74.tar.gz&lt;br /&gt;
 cd dbus-glib-0.74/&lt;br /&gt;
 ./configure --prefix=$DBUSDIR&lt;br /&gt;
 make&lt;br /&gt;
 sudo make install&lt;br /&gt;
&lt;br /&gt;
=== What's Happening === &lt;br /&gt;
After changing into the source directory (line 1), D-Bus source code is downloaded from freedesktop.org (line 2) and unpacked (line 3). After going into the newly created D-Bus directory (line 4), the build is set up using the supplied {{path|configure}} script (line 5). After building (line 6) and installing (line 7) D-Bus, we use the &amp;lt;tt&amp;gt;dbus-uuidgen&amp;lt;/tt&amp;gt; tool to install a machine identification file that allows the bus to start automatically when the desktop session starts (line 8).&lt;br /&gt;
&lt;br /&gt;
Note that you need write access to {{path|/var}} for the last two steps. If your system does not have the sudo command, you can use the &amp;lt;tt&amp;gt;su&amp;lt;/tt&amp;gt; command instead, e.g. &amp;lt;tt&amp;gt;su -c &amp;quot;make install&amp;quot;&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
The steps for building the glib bindings are similar to the above.&lt;br /&gt;
&lt;br /&gt;
== CMake ==&lt;br /&gt;
Skip this if you have [http://cmake.org/ CMake] &amp;gt;=2.4.5 installed. &lt;br /&gt;
You should be able to directly use the binary packages available on the [http://www.cmake.org/HTML/Download.html CMake site]. There are also distribution specific packages available.&lt;br /&gt;
&lt;br /&gt;
=== The Recipe ===&lt;br /&gt;
&amp;lt;!--'cs' and 'cb' are NOT typos!--&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 cs # [[Getting_Started/Increased_Productivity_in_KDE4_with_Scripts/.bashrc|'cs' is a bash function, click Here to learn more]] &lt;br /&gt;
 wget http://www.cmake.org/files/v2.4/cmake-2.4.6.tar.gz&lt;br /&gt;
 tar -zxf cmake-2.4.6.tar.gz&lt;br /&gt;
 mkdir cmake-build&lt;br /&gt;
 cd cmake-build &lt;br /&gt;
 ../cmake-2.4.6/bootstrap&lt;br /&gt;
 make&lt;br /&gt;
 sudo make install&lt;br /&gt;
&lt;br /&gt;
=== What's Happening ===&lt;br /&gt;
First, we go back to the &amp;lt;tt&amp;gt;kde-devel&amp;lt;/tt&amp;gt; user's source directory (line 1), get the CMake sources (line 2) and unpack them (line 3). We create a directory to build CMake in (line 4) and go into it (line 5). We then run the CMake bootstrap script to set up the CMake build (line 6), then make (line 7) and install it (line 8) using the root user.&lt;br /&gt;
&lt;br /&gt;
If your system does not have the &amp;lt;tt&amp;gt;sudo&amp;lt;/tt&amp;gt; command, you can instead do &amp;lt;tt&amp;gt;su -c &amp;quot;make install&amp;quot;&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Qt ==&lt;br /&gt;
Next we need to get the Qt4 that is in KDE's source repository. KDE is guaranteed to build against any Qt 4.3. Qt 4.2 and earlier are not supported and will not work. You should use the copy in the KDE Subversion servers. (note: some distros, like Debian, tend to supply Qt with patches from KDE svn applied, so you may want to cheat and use precompiled Qt from your distro)&lt;br /&gt;
&lt;br /&gt;
=== The Recipe ===&lt;br /&gt;
 cd&lt;br /&gt;
 svn checkout svn://anonsvn.kde.org/home/kde/trunk/qt-copy&lt;br /&gt;
 cd qt-copy&lt;br /&gt;
 ./apply_patches&lt;br /&gt;
 ./configure -qt-gif -no-exceptions -debug -fast \&lt;br /&gt;
  -prefix $QTDIR -nomake examples -nomake demos&lt;br /&gt;
 make -j2&lt;br /&gt;
&lt;br /&gt;
 # if we don't install, we'll just clear obj files to&lt;br /&gt;
 # save disk space&lt;br /&gt;
 if [ $QTDIR = `pwd` ]; then \&lt;br /&gt;
 find . -name '*.o' -delete ; \&lt;br /&gt;
 else make install; fi;&lt;br /&gt;
&lt;br /&gt;
=== What's Happening ===&lt;br /&gt;
We switch back to the &amp;lt;tt&amp;gt;kde-devel&amp;lt;/tt&amp;gt; user's home directory (line 1) and download the source code using subversion (svn) from KDE's repository (line 2). After changing into the resulting {{path|qt-copy}} directory (line 3), we run a script that manages the patches that come with &amp;lt;tt&amp;gt;qt-copy&amp;lt;/tt&amp;gt; (line 4). &lt;br /&gt;
&lt;br /&gt;
Once the patches have been applied, we then set up the build using the &amp;lt;tt&amp;gt;configure&amp;lt;/tt&amp;gt; script (line 5-6). The various command line options used are explained in the {{path|qt-copy/README.qt-copy}} file. Finally, we build the minimal requirements for KDE (line 7) and install (line 10) Qt. If install dir is the same as the current dir (line 8), then we just free some space (line 9) instead. If you want all the example and demo applications, you can either build them individually or simply do a &amp;lt;tt&amp;gt;make&amp;lt;/tt&amp;gt; from the {{path|qt-copy}} directory. &lt;br /&gt;
&lt;br /&gt;
Note that the installation does not require root as it installs Qt locally into {{path|$QTDIR}}. Anyway, installation is only needed if {{path|$QTDIR}} differs from {{path|$HOME/qt-copy}}, which is not the case if you have exactly followed the instructions.&lt;br /&gt;
&lt;br /&gt;
=== Troubleshooting ===&lt;br /&gt;
If you get &amp;quot;error: X11/Xlib.h: No such file or directory&amp;quot;, install the devel package of &amp;lt;tt&amp;gt;xorg&amp;lt;/tt&amp;gt; (the actual name may vary between operating systems, for example it is &amp;lt;tt&amp;gt;xorg-dev&amp;lt;/tt&amp;gt; on Ubuntu based systems such as Kubuntu). &lt;br /&gt;
&lt;br /&gt;
If you get an error in the configure step about missing defines, check the value of &amp;lt;tt&amp;gt;$QMAKESPEC&amp;lt;/tt&amp;gt;.  Some distributions set this to point directly to the system-installed Qt.  If &amp;lt;tt&amp;gt;unset QMAKESPEC&amp;lt;/tt&amp;gt; solves the problem, you probably want to add it to the &amp;lt;tt&amp;gt;~/.bashrc&amp;lt;/tt&amp;gt; script.&lt;br /&gt;
&lt;br /&gt;
If you get an error &amp;quot;.pch/debug-shared/QtCore&amp;quot;, this is because Qt-4.3 enables precompiled headers if your gcc supports it, but for some reason it doesn't work for you. If you use distcc, configure qt with -no-pch. If you use icecream, update to the latest icecream from svn trunk.&lt;br /&gt;
&lt;br /&gt;
Try running any Qt program, like {{program|assistant}}. '''Note:''' You may need to run &amp;lt;tt&amp;gt;xhost +local:kde-devel&amp;lt;/tt&amp;gt; as your regular kde3 user to run this application.  If it crashes in QSpanData::adjustSpanMethods, then your problem is the oxygen style. Try removing {{path|lib/kde4/plugins/styles/kstyle-oxygen.so}} and {{path|lib/kde4/plugins/styles/oxygen.so}} if they exist in the KDE install prefix.&lt;br /&gt;
&lt;br /&gt;
== HAL ==&lt;br /&gt;
&lt;br /&gt;
{{tip|You can use qdbusviewer to see if you have org.freedesktop.hal. If not, you might need a newer version of hal. If you have org.freedesktop.hal, you probably don't need to, and don't ''want'' to, roll your own HAL.}}&lt;br /&gt;
&lt;br /&gt;
If your system requires you to build a newer version of HAL, there's a decent chance you'll need to build other stuff as well, some of which may not be straight forward. Since this should only be required for older distros, instructions are on [[Getting_Started/Build/HAL| a separate page]].&lt;br /&gt;
&lt;br /&gt;
== kdesupport ==&lt;br /&gt;
&lt;br /&gt;
{{warning|If you have jumped to this section without reading [[Getting_Started/Build/KDE4#Setting_up_the_environment|Setting Up The Environment]], '''the recipes provided will not work'''. &lt;br /&gt;
&lt;br /&gt;
The recipes are not in error; &amp;lt;tt&amp;gt;cs&amp;lt;/tt&amp;gt; and &amp;lt;tt&amp;gt;cb&amp;lt;/tt&amp;gt; are not typos. Your environment '''needs''' to be set up correctly for these instructions to work for you.}}&lt;br /&gt;
&lt;br /&gt;
There are several libraries that KDE applications rely on in the kdesupport module. This includes Strigi and Soprano for file metadata and search, QImageBlitz for image manipulation needed in kdebase, eigen for visual effects in applications such as Kalzium, taglib for music players and qca for some cryptographic needs. &lt;br /&gt;
&lt;br /&gt;
Strigi itself has a few dependencies as well: you will need the libraries and headers for libz, libbz2, openssl (libcrypto or libssl), libclucene (=0.9.16; version 0.9.17 does '''not''' work), and either libxml2 or libexpat.&lt;br /&gt;
&lt;br /&gt;
=== The Recipe ===&lt;br /&gt;
&amp;lt;!--'cs' and 'cb' are NOT typos!--&amp;gt;&lt;br /&gt;
 cs # [[Getting_Started/Increased_Productivity_in_KDE4_with_Scripts/.bashrc|cs is not a typo]]&lt;br /&gt;
 svn checkout svn://anonsvn.kde.org/home/kde/trunk/kdesupport/&lt;br /&gt;
 cd kdesupport&lt;br /&gt;
 cmakekde&lt;br /&gt;
&lt;br /&gt;
=== What's Happening ===&lt;br /&gt;
We change to the base source directory (line 1). We download the sources in kdesupport using subversion (line 2), go into the new {{path|~/kde/src/kdesupport}} directory (line 3), and commence the build (line 4). This will leave us in the kdesupport build directory after the build is completed.&lt;br /&gt;
&lt;br /&gt;
=== Troubleshooting ===&lt;br /&gt;
If you get &lt;br /&gt;
   cmakekde: command not found&lt;br /&gt;
then you have to go manualy into the kdesupport directory in ~ and execute the command cmakekde. if this still doesnt work, then something is wrong with your bashrc.&lt;br /&gt;
&lt;br /&gt;
If you get &lt;br /&gt;
 CMake Error: This project requires some variables to be set,&lt;br /&gt;
 and cmake can not find them.&lt;br /&gt;
 Please set the following variables:&lt;br /&gt;
 LIBXML2_INCLUDE_DIR (ADVANCED)&lt;br /&gt;
you should install the development package for libxml2.&lt;br /&gt;
&lt;br /&gt;
If you get &lt;br /&gt;
 CMake Error: Could NOT find REDLAND&lt;br /&gt;
then you need librdf from the Redland.&lt;br /&gt;
If your distribution does not provide the librdf package, you can download the source there: [http://download.librdf.org/source/ http://download.librdf.org/source/] and build it.&lt;br /&gt;
(Gentoo users: The ebuild for librdf is named dev-libs/redland)&lt;br /&gt;
&lt;br /&gt;
If you get&lt;br /&gt;
 Fetching external item into 'kdesupport/admin'&lt;br /&gt;
 Error validating server certificate for 'https://...'&lt;br /&gt;
see [http://techbase.kde.org/Getting_Started/Sources/Using_Subversion_with_KDE Using Subversion with KDE]&lt;br /&gt;
&lt;br /&gt;
If you get&lt;br /&gt;
 FILE cannot create directory: /usr/lib[64]/qt4/plugins/crypto. Maybe need administrative privileges.&lt;br /&gt;
 - - -&lt;br /&gt;
 make: *** [install] Error 255&lt;br /&gt;
take a second look in the .bashrc file described above, are paths correct?  Alternatively, you may see this error if you decided to use a distribution installed version of qt4 and skipped the Qt install above.  Either install qt-copy as describe above, or &amp;quot;sudo make install&amp;quot;. If you use &amp;quot;sudo make install&amp;quot;, make sure you that you change the ownership back to your user for some of the ~/kde subdirectories that were effected by using sudo (ie. &amp;quot;&amp;lt;tt&amp;gt;sudo chown -R kde-devel:kde-devel ~/kde&amp;lt;/tt&amp;gt;&amp;quot;).&lt;br /&gt;
&lt;br /&gt;
== kdelibs ==&lt;br /&gt;
&lt;br /&gt;
We can now move on to building KDE's base libraries.&lt;br /&gt;
&lt;br /&gt;
=== The Recipe ===&lt;br /&gt;
 cd   &lt;br /&gt;
 cs # [[Getting_Started/Increased_Productivity_in_KDE4_with_Scripts/.bashrc|cs is not a typo]]&lt;br /&gt;
 mkdir KDE &amp;amp;&amp;amp; cd KDE&lt;br /&gt;
 svn checkout svn://anonsvn.kde.org/home/kde/trunk/KDE/kdelibs&lt;br /&gt;
 cd kdelibs&lt;br /&gt;
 cmakekde&lt;br /&gt;
&lt;br /&gt;
=== What's Happening ===&lt;br /&gt;
We change to the base source directory (line 1) then make and go into the KDE directory (line 2). We download the sources for kdelibs using subversion (line 3), go into the new {{path|~/kde/src/KDE/kdelibs}} directory (line 4), and commence the build (line 5). This will leave us in the &amp;lt;tt&amp;gt;kdelibs&amp;lt;/tt&amp;gt; build directory after the build is completed.&lt;br /&gt;
&lt;br /&gt;
{{tip|There might be missing dependencies on your system! They are easily overlooked in the output of &amp;lt;tt&amp;gt;cmakekde&amp;lt;/tt&amp;gt;.&lt;br /&gt;
You might want to do a &amp;lt;tt&amp;gt;cmake $KDE_SRC/KDE/MODULE_NAME&amp;lt;/tt&amp;gt; prior to compiling any kde modules (like kdelibs, kdepimlibs etc.)}}&lt;br /&gt;
&lt;br /&gt;
=== Additional KDE-specific CMake modules ===&lt;br /&gt;
There are additional CMake modules in {{path|kdelibs/cmake/modules/}} that are necessary for building KDE4 applications. These will be installed for you when  kdelibs itself is installed.&lt;br /&gt;
&lt;br /&gt;
=== Troubleshooting ===&lt;br /&gt;
If you have problems compiling kdelibs, first make sure the software in the [[Getting_Started/Build/KDE4#Required_Software|Required Software]] section above is installed and works. Other possible hints include:&lt;br /&gt;
* If the &amp;lt;tt&amp;gt;cmakekde&amp;lt;/tt&amp;gt; command fails stating that CMake requires an out of source build directory, remove {{path|~/kde/src/KDE/kdelibs/CMakeCache.txt}}, and try again.&lt;br /&gt;
&lt;br /&gt;
If &amp;lt;tt&amp;gt;cmakekde&amp;lt;/tt&amp;gt; still gives the same error then try this &lt;br /&gt;
 cd&lt;br /&gt;
 cmake -DCMAKE_INSTALL_PREFIX=$KDEDIR \&lt;br /&gt;
 -DCMAKE_BUILD_TYPE=debugfull \&lt;br /&gt;
 -DKDE4_BUILD_TESTS=ON \&lt;br /&gt;
 ~/kde/src/KDE/kdelibs&lt;br /&gt;
 make&lt;br /&gt;
 make install&lt;br /&gt;
* If you received an error stating &amp;quot;Please create a separate build directory and run 'cmake path_to_kdelibs [options]' there.&amp;quot;, then you need to change to your build directory before running cmakekde. (e.g &amp;lt;tt&amp;gt;cs KDE/kdelibs &amp;amp;&amp;amp; cb &amp;amp;&amp;amp; cmakekde&amp;lt;/tt&amp;gt;) If the message stays, run 'svn status' in the kdelibs directory and remove all files labeled with '?'.&lt;br /&gt;
* If Qt wasn't found or the wrong version of Qt was found, make sure that the qmake from the Qt you need is the first qmake in the path.&lt;br /&gt;
* If the problems persist, try the CMake make-option &amp;lt;tt&amp;gt;--keep-going&amp;lt;/tt&amp;gt;.&lt;br /&gt;
* Here you need the libungif library, otherwise you will get an error message like &amp;quot;&amp;lt;tt&amp;gt;Could NOT find GIF&amp;lt;/tt&amp;gt;&amp;quot;.&lt;br /&gt;
* Qt-4.3 upgrade: if you get a link error in kjsembed talking about QScriptEngine, edit CMakeCache.txt in kdelibs and remove the lines that talk about QT_QTUITOOLS_LIBRARY, then type make again (that static library has a new dependency, and the cmake code that adds it needs to run).&lt;br /&gt;
* if you get &amp;lt;code&amp;gt;CMake Error: KDE Requires Qt to be built with SSL support&lt;br /&gt;
&amp;lt;/code&amp;gt;, install openssl-devel, remove CMakeCache.txt and re-compile QT.&lt;br /&gt;
* if you get &amp;lt;code&amp;gt;kdelibs/kimgio/ico.cpp:188: undefined reference to `QImage::jumpTable()'&amp;lt;/code&amp;gt; it means you compiled QT without QT3 support(no, linking to a true QT3 install won't work)&lt;br /&gt;
&lt;br /&gt;
== kdepimlibs ==&lt;br /&gt;
After &amp;lt;tt&amp;gt;kdelibs&amp;lt;/tt&amp;gt;, but before ''kdebase'', you need to build and install ''kdepimlibs''.&lt;br /&gt;
&lt;br /&gt;
=== The Recipe ===&lt;br /&gt;
&amp;lt;!--'cs' and 'cb' are NOT typos!--&amp;gt;&lt;br /&gt;
 cs KDE # [[Getting_Started/Increased_Productivity_in_KDE4_with_Scripts/.bashrc|cs is not a typo]]&lt;br /&gt;
 svn checkout svn://anonsvn.kde.org/home/kde/trunk/KDE/kdepimlibs&lt;br /&gt;
 cd kdepimlibs&lt;br /&gt;
 cmakekde&lt;br /&gt;
&lt;br /&gt;
=== What's Happening ===&lt;br /&gt;
We go into the KDE source directory (line 1), download the source code for kdepimlibs using subversion (line 2) and then go into the new {{path|~/kde/src/KDE/kdepimlibs}} directory (line 3). We then commence the build (line 4). This will leave us in the &amp;lt;tt&amp;gt;kdepimlibs&amp;lt;/tt&amp;gt; build directory after the build is completed.&lt;br /&gt;
&lt;br /&gt;
=== Troubleshooting ===&lt;br /&gt;
If you have trouble compiling kdepimlibs:&lt;br /&gt;
* the cmakekde command may require a later version of the gpgme library.  This is available from the project's web site: http://www.gnupg.org/(en)/download/index.html - please note that the build of gpgme also requires libgpg-error, also available from the same location.  Both libraries are installed by the &amp;quot;./configure&amp;quot;, &amp;quot;make&amp;quot; and &amp;quot;sudo make install&amp;quot; sequence, with the gpgme library configured with the additional &amp;quot;--with-gpg-error-prefix&amp;quot; parameter.  You may need to overwrite your existing &amp;quot;/usr/bin/gpgme-config&amp;quot; file with the newer version for the kdepimlibs to pick up the new install.&lt;br /&gt;
* if you get the error &amp;quot;cannot find -lpth&amp;quot; from /usr/bin/ld, then make sure you have The GNU Portable Threads (libpth-dev for Debian).&lt;br /&gt;
&lt;br /&gt;
== kdebase ==&lt;br /&gt;
kdebase is divided into three parts:&lt;br /&gt;
* '''apps'''&lt;br /&gt;
:This contains applications like Dolphin or KWrite.&lt;br /&gt;
* '''runtime'''&lt;br /&gt;
:This contains things needed by every application at runtime, like icons. It is a required dependency for each KDE application, so you have to compile and install this.&lt;br /&gt;
* '''workspace'''&lt;br /&gt;
:This contains things specific to the KDE desktop, like Plasma or the window manager. Most stuff here depends on X11. You only need it if you want to build a full KDE desktop.&lt;br /&gt;
&lt;br /&gt;
You can build all of kdebase at once, which is described in the recipe below. If you only want to build kdebase-runtime, which is the only requirement, you can replace &amp;lt;code bash&amp;gt;cd kdebase&amp;lt;/code&amp;gt; with &amp;lt;code bash&amp;gt;cd kdebase/runtime&amp;lt;/code&amp;gt; in the recipe below.&lt;br /&gt;
&lt;br /&gt;
=== The Recipe ===&lt;br /&gt;
&amp;lt;!--'cs' and 'cb' are NOT typos!--&amp;gt;&lt;br /&gt;
 cs KDE # [[Getting_Started/Increased_Productivity_in_KDE4_with_Scripts/.bashrc|cs is not a typo]]&lt;br /&gt;
 svn checkout svn://anonsvn.kde.org/home/kde/trunk/KDE/kdebase&lt;br /&gt;
 cd kdebase&lt;br /&gt;
 cmakekde&lt;br /&gt;
&lt;br /&gt;
=== Troubleshooting ===&lt;br /&gt;
If you have troubles compiling kdebase:&lt;br /&gt;
* Make sure you have the &amp;lt;tt&amp;gt;libxss headers&amp;lt;/tt&amp;gt; installed. (Usually you got undefined references on xscreensaver objects if you do not have those headers)&lt;br /&gt;
* &amp;lt;tt&amp;gt;which meinproc&amp;lt;/tt&amp;gt; has to deliver {{path|/home/kde-devel/kde/bin/meinproc}}&lt;br /&gt;
* if cmakekde can not find the path of kdepimlibs, edit the file {{path|$KDE_BUILD/KDE/kdebase/CMakeCache.txt}} and manually set &amp;lt;tt&amp;gt;KDEPIMLIBS_INCLUDE_DIR:PATH=$KDE_BUILD/kdepimlibs&amp;lt;/tt&amp;gt;&lt;br /&gt;
* if you get an error saying &amp;quot;Please set the following variables: X11_XTest_LIB (ADVANCED)&amp;quot;, install the devel package of &amp;lt;tt&amp;gt;Xtst&amp;lt;/tt&amp;gt;. On some systems, this is packaged separately from &amp;lt;tt&amp;gt;xext&amp;lt;/tt&amp;gt; and called &amp;lt;tt&amp;gt;x11proto-xext-dev&amp;lt;/tt&amp;gt; or &amp;lt;tt&amp;gt;libxtst-dev&amp;lt;/tt&amp;gt;. You may also need to remove the CMakeCache.txt file in the build dir after installing the package.&lt;br /&gt;
* the same for &amp;quot;X11_Xinerama_LIB (ADVANCED)&amp;quot; where you will need the devel package for &amp;lt;tt&amp;gt;xinerama&amp;lt;/tt&amp;gt;.&lt;br /&gt;
* if you get an error complaining about a missing variable X11_Xrandr_LIB, you need the devel package for libxrandr (libxrandr-devel on ubuntu-systems)&lt;br /&gt;
* if you get the error &amp;quot;Please set the following variables: FONTCONFIG_INCLUDE_DIR, FONTCONFIG_LIBRARIES (ADVANCED)&amp;quot;, then you need to install  the libfontconfig headers&lt;br /&gt;
* if you get the error &amp;quot;CMake Error: This project requires some variables to be set, and cmake can not find them. Please set the following variables: KMETADATA_LIBRARIES&amp;quot;, you need to install soprano from kdesupport and to rebuild kdelibs&lt;br /&gt;
* if you get the error &amp;quot;‘XserverRegion’ does not name a type&amp;quot; make sure you have libxcomposite headers installed (&amp;lt;tt&amp;gt;libxcomposite-dev&amp;lt;/tt&amp;gt; in ubuntu)&lt;br /&gt;
* if you get the error &amp;quot;CMake Error: This project requires some variables to be set, and cmake can not find them. Please set the following variables: QT_QTOPENGL_LIBRARY (ADVANCED) &amp;quot;, try editing CMakeCache.txt and setting QT_QTOPENGL_LIBRARY:FILEPATH=/home/kde-devel/qt-copy/lib/libQtOpenGL.so&lt;br /&gt;
&lt;br /&gt;
* if you get messages as &amp;quot;KDE4_INSTALL_HANDBOOK() is deprecated. Remove it please. Now all is done in KDE4_CREATE_HANDBOOK.&amp;quot; then, either find the files containing the offending line and comment it out manually, or run the following script in ~/kde/src/KDE/kdebase: [http://www.plamadeala.com/files/macros_corrector.sh macros_corrector.sh]. It will just REMOVE the line that has &amp;quot;kde4_create_handbook&amp;quot; in it from all the found files.&lt;br /&gt;
&lt;br /&gt;
== Running KDE 4 programs ==&lt;br /&gt;
&lt;br /&gt;
You can now run KDE 4 programs (e.g. kwrite) by typing:&lt;br /&gt;
 ssh -X kde-devel@localhost&lt;br /&gt;
 kwrite &lt;br /&gt;
&lt;br /&gt;
=== Troubleshooting ===&lt;br /&gt;
&lt;br /&gt;
* If you get &lt;br /&gt;
 KUniqueApplication: Cannot find the D-Bus session server&lt;br /&gt;
check if you can access the display, e.g. type&lt;br /&gt;
 xclock&lt;br /&gt;
and see if a clock appears on the screen.&lt;br /&gt;
&lt;br /&gt;
* If you get something like&lt;br /&gt;
 Error: standard icon theme &amp;quot;oxygen&amp;quot; not found!&lt;br /&gt;
 &lt;br /&gt;
 ASSERT: &amp;quot;!isEmpty()&amp;quot; in file /home/kde-devel/qt-copy/include/QtCore/../../src/corelib/tools/qlist.h, line 245&lt;br /&gt;
 Aborted (core dumped)&lt;br /&gt;
You need to install kdebase - see above. It is enough to install the &amp;quot;runtime&amp;quot; directory from kdebase.&lt;br /&gt;
&lt;br /&gt;
== Generating local API documentation ==&lt;br /&gt;
Although the API documentation for KDE is available online at [http://api.kde.org api.kde.org], it is sometimes useful to have it on your own disk, for example when you want to use [[Getting_Started/Set_up_KDE_4_for_development#KDevelop|KDevelop]] for browsing the documentation or when you are not able to be online all the time.&lt;br /&gt;
&lt;br /&gt;
Be aware that generating the API documentation can take several hours and takes almost half a gigabyte of diskspace.&lt;br /&gt;
The generation is handled by a script in {{path|kdelibs/doc/api}}, you need &amp;lt;tt&amp;gt;doxygen&amp;lt;/tt&amp;gt; to be able to run it. &lt;br /&gt;
&lt;br /&gt;
To build the API documentation for kdelibs, type the following:&lt;br /&gt;
&amp;lt;!--'cs' and 'cb' are NOT typos!--&amp;gt;&lt;br /&gt;
 cs KDE/kdelibs # [[Getting_Started/Increased_Productivity_in_KDE4_with_Scripts/.bashrc|cs is not a typo]]&lt;br /&gt;
 $KDE_SRC/KDE/kdelibs/doc/api/doxygen.sh \&lt;br /&gt;
 --doxdatadir=$KDE_SRC/KDE/kdelibs/doc/common .&lt;br /&gt;
&lt;br /&gt;
Repeat for other modules as desired.&amp;lt;br&amp;gt;&lt;br /&gt;
 cd &amp;lt;module home&amp;gt;&lt;br /&gt;
 $KDE_SRC/KDE/kdelibs/doc/api/doxygen.sh \&lt;br /&gt;
 --doxdatadir=$KDE_SRC/KDE/kdelibs/doc/common .&lt;br /&gt;
&lt;br /&gt;
Another, even easier method involves downloading this [[Doxyfile]] to your local system. Then simply change directory to where you want to create the documentation and run&lt;br /&gt;
&amp;lt;code bash&amp;gt;&lt;br /&gt;
% doxygen /path/to/Doxyfile&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
Then review the file {{path|doxygen.log}} to see the doxygen errors and warnings. You'll find the actual documentation in the {{path|apidocs}} subdirectory.&lt;br /&gt;
&lt;br /&gt;
== Staying up to date ==&lt;br /&gt;
&lt;br /&gt;
In order to keep the kde4 installation up to date, each of the modules installed should be updated periodically. As Monday is the day for big changes in kdelibs, Tuesday may be the best day to do this. For each module checked out, run &amp;lt;tt&amp;gt;svn up&amp;lt;/tt&amp;gt; and &amp;lt;tt&amp;gt;make&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
For example:&lt;br /&gt;
&amp;lt;code bash&amp;gt;&lt;br /&gt;
cs kdesupport # cs is not a typo&lt;br /&gt;
svn up&lt;br /&gt;
cb # cb is not a typo&lt;br /&gt;
make -j2 VERBOSE=1 &amp;amp;&amp;amp; make install&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== General troubleshooting ==&lt;br /&gt;
&lt;br /&gt;
What can happen over time, after some &amp;lt;tt&amp;gt;svn up&amp;lt;/tt&amp;gt; commands, is that some of the tools used in the KDE build chain change their output format. For example, &amp;lt;tt&amp;gt;kcfg&amp;lt;/tt&amp;gt; files are read by &amp;lt;tt&amp;gt;kconfig_compiler&amp;lt;/tt&amp;gt; to produce configuration dialogs. CMake cannot detect those changes, and the compilation might fail. A workaround is to always force a re-generation of all such files:&lt;br /&gt;
 find $KDE_SRC/KDE/kdebase -name &amp;quot;*.kcfg&amp;quot; | xargs touch&lt;br /&gt;
The same applies to &amp;lt;tt&amp;gt;ui&amp;lt;/tt&amp;gt; files as produced by Qt designer.&lt;br /&gt;
&lt;br /&gt;
== Success! ==&lt;br /&gt;
&lt;br /&gt;
You are now ready to start building other svn modules in the same fashion as you built kdebase, running and testing KDE4 or writing your own patches and applications.&lt;br /&gt;
&lt;br /&gt;
See the [[Getting Started/Set up KDE 4 for development|Set up KDE 4 for development]] tutorial for how to start KDE 4 applications and how to use KDevelop to work on them.&lt;br /&gt;
&lt;br /&gt;
[[Category:Build KDE]]&lt;br /&gt;
[[Category:KDE4]]&lt;/div&gt;</summary>
		<author><name>Logixoul</name></author>	</entry>

	<entry>
		<id>http://techbase.kde.org/Development/Architecture_(gl)</id>
		<title>Development/Architecture (gl)</title>
		<link rel="alternate" type="text/html" href="http://techbase.kde.org/Development/Architecture_(gl)"/>
				<updated>2007-09-09T18:28:19Z</updated>
		
		<summary type="html">&lt;p&gt;Logixoul: fix double redirect&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Template:I18n/Language Navigation Bar|Development/Architecture}}&lt;br /&gt;
&lt;br /&gt;
As seguintes páxinas conteñen documentación sobre o deseño e os detalles da arquitectura de KDE en detalle. Isto non remplaza outra documentación como [http://api.kde.org a documentación do API], [[../Tutorials_(gl)|tutoriais/PUFs]] e [[../Guidelines_(gl)|standards]], mira o [[Development_(gl)|portal de desenvolvemento]] para máis información.&lt;br /&gt;
&lt;br /&gt;
Para mellor comprensión, poderia axudar que lle botaras unha ollada, na web de Trolltech, á excelente documentación de [http://doc.trolltech.com/3.3/index.html Qt 3.3] ou [http://doc.trolltech.com/4.3/index.html Qt 4.3] (ambalas dúas en inglés) e ás súas [http://www.trolltech.com/developer/ páxinas para desenvolvedores].&lt;br /&gt;
&lt;br /&gt;
Máis información sobre a instalación de KDE está disponíbel na sección dedicada a [[KDE System Administration|administradores de sistemas]].&lt;br /&gt;
&lt;br /&gt;
== Documentos de deseño ==&lt;br /&gt;
; [[../Architecture/KDE4_(gl)|Descrición da arquitectura de KDE 4]]&lt;br /&gt;
: Unha descripción da arquitectura de KDE 4, incluíndo discusións sobre técnicas habituais, librerias de clases e problemas xerais do desenrrolo. Isto é para ''KDE 4.0''.&lt;br /&gt;
&lt;br /&gt;
; [[../Architecture/KDE3|Descripción da arquitectura de KDE 3]] [http://developer.kde.org/documentation/library/kdeqt/kde3arch/ (Orixinal)]&lt;br /&gt;
: Unha descripción da arquitectura de KDE 3, incluíndo discusións sobre técnicas habituais, librerias de clases e problemas xerais do desenrrolo. Isto é para ''KDE 3.0''..&lt;br /&gt;
&lt;br /&gt;
; [http://developer.kde.org/documentation/library/kdeqt/kde2arch/ Descripción da arquitectura de KDE 2]&lt;br /&gt;
: Unha descrición da arquitectura de KDE 2, similar ás de enriba. Isto é para ''KDE 2.2''&lt;br /&gt;
&lt;br /&gt;
; [[../Architecture/DCOP|DCOP]]&lt;br /&gt;
: Documentos de deseño de 1999-2000.&lt;br /&gt;
&lt;br /&gt;
[[Category:Architecture]]&lt;/div&gt;</summary>
		<author><name>Logixoul</name></author>	</entry>

	<entry>
		<id>http://techbase.kde.org/Welcome_to_KDE_TechBase_(gl)</id>
		<title>Welcome to KDE TechBase (gl)</title>
		<link rel="alternate" type="text/html" href="http://techbase.kde.org/Welcome_to_KDE_TechBase_(gl)"/>
				<updated>2007-09-09T18:28:07Z</updated>
		
		<summary type="html">&lt;p&gt;Logixoul: fix double redirect&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Template:I18n/Language Navigation Bar|Welcome to KDE TechBase}}&lt;br /&gt;
{| style=&amp;quot;margin: 1em 2.5% 0 2.5%; padding: 0 5px;&amp;quot; cellpadding=&amp;quot;5&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|colspan=2|[[Image:Discover.png|noframe]]&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;padding-left: 50px;&amp;quot; |[[Image:Action_launch.svg|noframe|left|40px]] ||&lt;br /&gt;
;[[Getting Started_(gl)|Configurando un entorno de desenvolvimento KDE]]&lt;br /&gt;
:Aprende como obter, compilar e executar KDE e as súas aplicacións.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;padding-left: 50px;&amp;quot;|[[Image:Action_configure.svg|noframe|left|40px]] ||&lt;br /&gt;
;[[Development_(gl)|Desenvolvimento con KDE]]&lt;br /&gt;
:[[Development/Tutorials|Tutoriais]] | [http://api.kde.org Documentación da API] | [[Development/FAQs|PUFs]] e máis.&lt;br /&gt;
:''Related'': [[Schedules|Calendario de lanzamentos e plans futuros]]&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;padding-left: 50px;&amp;quot;|[[Image:Devices_system.svg|noframe|left|40px]] ||&lt;br /&gt;
;[[KDE System Administration|Administración do sistema con KDE]]&lt;br /&gt;
:Información para administradores de sistemas sobre o manexo de KDE. &lt;br /&gt;
|-&lt;br /&gt;
|colspan=2|[[Image:Interact.png|noframe]]&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;padding-left: 50px;&amp;quot;|[[Image:Action_favorites.svg|noframe|left|40px]] ||&lt;br /&gt;
;[[Contribute|Súmate ao equipo de KDE e contribue.]]&lt;br /&gt;
:Axuda con parches, mantente en contato e participa cunha das mellores comunidades de software libre.&lt;br /&gt;
:''Related:'' [[Policies|Políticas do proxecto KDE]] | [http://www.kde.org/support/support.php Contribue financieiramente]&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;padding-left: 50px;&amp;quot;|[[Image:Action_contents.svg|noframe|left|40px]] ||&lt;br /&gt;
;[[ISV|Información para VIS]]&lt;br /&gt;
:Información para desenvolvidores de Vendedores Independentes de Software.&lt;br /&gt;
|-&lt;br /&gt;
|colspan=2|[[Image:Develop.png|noframe]]&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;padding-left: 50px;&amp;quot; |[[Image:Action_wizard.svg|noframe|left|40px]] ||&lt;br /&gt;
;[[Projects|Proxectos de KDE]]&lt;br /&gt;
:Ligazóns a wikis de desenvolvimento, listas de tarefas, etc... de varios proxectos de KDE.&lt;br /&gt;
&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Logixoul</name></author>	</entry>

	<entry>
		<id>http://techbase.kde.org/Welcome_to_KDE_TechBase_(sl)</id>
		<title>Welcome to KDE TechBase (sl)</title>
		<link rel="alternate" type="text/html" href="http://techbase.kde.org/Welcome_to_KDE_TechBase_(sl)"/>
				<updated>2007-09-09T18:27:47Z</updated>
		
		<summary type="html">&lt;p&gt;Logixoul: fix double redirect&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{DISPLAYTITLE:Dobrodošli na KDE TechBase}}&lt;br /&gt;
&lt;br /&gt;
{{Template:I18n/Language Navigation Bar|Welcome to KDE TechBase}}&lt;br /&gt;
&lt;br /&gt;
'''Pomnite:''' Prevajanje teh Wiki strani je še v teku. Nekatere strani so trenutno na voljo samo v angleščini. Potrudili se bomo, da jih čimprej in čimveč prevedemo v slovenščino. Že v naprej hvala za razumevanje. Vsaka pomoč je dobrodošla.&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;margin: 1em 2.5% 0 2.5%; padding: 0 5px;&amp;quot; cellpadding=&amp;quot;5&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|colspan=2|[[Image:Discover.png|noframe]]&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;padding-left: 50px;&amp;quot; |[[Image:Action_launch.svg|noframe|left|40px]] ||&lt;br /&gt;
;[[Getting Started (sl)|Postavitev okolja za razvoj KDE-ja]]&lt;br /&gt;
:Naučite se kako dobiti, zgraditi in poganjati KDE in programe zanj.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;padding-left: 50px;&amp;quot;|[[Image:Action_configure.svg|noframe|left|40px]] ||&lt;br /&gt;
;[[Development|Razvoj s KDE]]&lt;br /&gt;
:[[Development/Tutorials|Vodiči]] | [http://api.kde.org Dokumentacija API-ja] | [[Development/FAQs|PZV]] in več.&lt;br /&gt;
:''Sorodno'': [[Schedules|Urniki izdaj in načrtovane značilnosti]]&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;padding-left: 50px;&amp;quot;|[[Image:Devices_system.svg|noframe|left|40px]] ||&lt;br /&gt;
;[[KDE System Administration|Sistemska administracija KDE-ja]]&lt;br /&gt;
:Informacije za sistemske administratorje, ki upravljajo z namestitvami KDE-ja.&lt;br /&gt;
|-&lt;br /&gt;
|colspan=2|[[Image:Interact.png|noframe]]&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;padding-left: 50px;&amp;quot;|[[Image:Action_favorites.svg|noframe|left|40px]] ||&lt;br /&gt;
;[[Contribute|Pridružite se ekipi KDE-ja in prispevajte]]&lt;br /&gt;
:Prispevajte popravke, ostanite v stiku in se pridružite eni izmed najboljših odprtokodnih skupnosti.&lt;br /&gt;
:''Sorodno:'' [[Policies|Pravila projekta KDE]] | [http://www.kde.org/support/support.php Kako prispevati finančno]&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;padding-left: 50px;&amp;quot;|[[Image:Action_contents.svg|noframe|left|40px]] ||&lt;br /&gt;
;[[ISV|Informacije za ISV-je]]&lt;br /&gt;
:Razvijalske informacije za neodvisne prodajalce programske opreme.&lt;br /&gt;
|-&lt;br /&gt;
|colspan=2|[[Image:Develop.png|noframe]]&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;padding-left: 50px;&amp;quot; |[[Image:Action_wizard.svg|noframe|left|40px]] ||&lt;br /&gt;
;[[Projects|Projekti znotraj KDE-ja]]&lt;br /&gt;
:Povezave do razvijalskih Wiki strani, seznamov opravil, itd. za razne projekte znotraj KDE-ja.&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Logixoul</name></author>	</entry>

	<entry>
		<id>http://techbase.kde.org/KDE_System_Administration_(de)</id>
		<title>KDE System Administration (de)</title>
		<link rel="alternate" type="text/html" href="http://techbase.kde.org/KDE_System_Administration_(de)"/>
				<updated>2007-09-09T18:26:16Z</updated>
		
		<summary type="html">&lt;p&gt;Logixoul: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Template:I18n/Language Navigation Bar|KDE System Administration}}&lt;br /&gt;
&lt;br /&gt;
Dieser Abschnitt bietet Systemadministratoren, welche KDE neu aufsetzen oder vorhandene Einsätze verwalten die Informationen, die sie benötigen um dies effektiv zu tun.&lt;br /&gt;
&lt;br /&gt;
== Dateisystem ==&lt;br /&gt;
;[[SysAdmin/Configuration Files|Syntax der Konfigurations Dateien]]&lt;br /&gt;
:''KDEs Konfigurations Dateien sind textbasiert. Sie enthalten Gruppen aus Schlüssel-Wert Paaren. Dieser Abschnitt erläutert deren Syntax und behandelt folgende Bereiche:''&lt;br /&gt;
* Lokalisation,&lt;br /&gt;
* Shell Variablen,&lt;br /&gt;
* komplettes oder teilweises Sperren der Konfigurationsdateien&lt;br /&gt;
* Editier Hilfsprogramme&lt;br /&gt;
* andere fortgeschrittene Eigenschaften.&lt;br /&gt;
&lt;br /&gt;
;[[SysAdmin/KDE Filesystem Hierarchy|KDE Hierarchie]]&lt;br /&gt;
:''Dieser Artikel beschreibt wie KDE das Dateisystem benutzt, wo nach Dateien gesucht wird und wo sie abgespeichert werden. Er erklärt wie man diese Orte wechselt. Er beinhaltet auch eine kurz gefasste Übersicht der von den größten OS Anbietern benutzten Standard-Einstellungen.''&lt;br /&gt;
&lt;br /&gt;
;[[SysAdmin/XDG Filesystem Hierarchy|XDG Hierarchie]]&lt;br /&gt;
:''In Ergänzung zu [[SysAdmin/KDE Filesystem Hierarchy|KDEs Datei Hierarchie]], benutzt KDE auch verschiedene Verzeichnisse, die in der XDG Spezifikation auf  [http://freedesktop.org freedesktop.org] definiert sind. Dieser Artikel dokumentiert die benutzten Pfade und deren Funktionen.''&lt;br /&gt;
&lt;br /&gt;
== Desktop-Sitzungen ==&lt;br /&gt;
&lt;br /&gt;
;[[SysAdmin/Environment Variables|Umgebungsvariablen]]&lt;br /&gt;
:''Eine Vielfalt an Umgebungs Variablen, die in diesem Artikel dokumentiert sind, ist vorhanden, um verschiedene Aspekte sowie das Laufzeitverhalten von KDE zu beeinflussen.''&lt;br /&gt;
&lt;br /&gt;
;[[SysAdmin/Startup|Startvorgang]]&lt;br /&gt;
:''Während des Startvorganges werden die sichtbaren sowie die im hintergrund bleibenden Desktop-Komponenten gestartet. Dieser Artikel beschreibt die Startreihenfolge, liefert einen Überblick über einige der gestarteten Dienste und erklärt wie man Veränderungen macht.''&lt;br /&gt;
&lt;br /&gt;
;[http://docs.kde.org/development/en/kdebase/kdm/ Anmeldungsmanager]&lt;br /&gt;
:''Der KDE Display Manager (KDM) bietet die Dienste, die üblicherweise mit einem Anmeldungsmanager assoziiert werden. Der erste Kontakt, den Ihre Benutzer mit einem KDE System haben, ist üblicherweise der KDM Bildschirm. Dieser Abschnitt behandelt die Grundlagen wie man einen KDM aufsetzt, sowie fortgeschrittene Themen wie Fernanmeldung, automatische Anmeldung, und mehr.''&lt;br /&gt;
&lt;br /&gt;
== Benutzer- und Gruppenprofile ==&lt;br /&gt;
&lt;br /&gt;
;[[SysAdmin/Kiosk/Introduction|Kiosk-Einführung]]&lt;br /&gt;
:''Das Kiosk Rahmenwerk bietet eine Menge an Optionen, welche es erlauben einfach und mächtig die Fähigkeiten einer KDE Umgebung, basierend auf Benutzer- und Gruppenlegitimationen, zu definieren und einzuschränken. Zusätzlich zu dem einführenden Überblick umfasst dieser Artikel das Sperren der Konfigurationsdateien,  Einschränkungen der Handlungsfreiheiten und Ressourcen, die Zuweisung von Benutzer- und Gruppenprofilen, und mehr.''&lt;br /&gt;
&lt;br /&gt;
;[[SysAdmin/Kiosk/Keys|Kiosk-Schlüssel]]&lt;br /&gt;
:''Dieses Dokument detailliert bekannte globale und anwendungsspezifische Schlüssel für Aktionen, Ressourcen und URL Beschränkungen und macht es zu einer handlichen Referenzanleitung um Kiosk-Profile zu erstellen''&lt;br /&gt;
&lt;br /&gt;
;[[SysAdmin/Kiosk/Resources|Weitere Ressourcen]]&lt;br /&gt;
:''KDEs Benutzer- und Gruppenprofile betreffe Links zu Werkzeugen, Mailinglisten, und zusätzlicher Dokumentation.''&lt;br /&gt;
&lt;br /&gt;
== Werkzeuge ==&lt;br /&gt;
&lt;br /&gt;
;[http://extragear.kde.org/apps/kiosktool/ KioskTool]&lt;br /&gt;
:''Eine graphische Anwendung, die einem beim Verwalten von Benutzer- und Gruppenprofilen behilflich ist.''&lt;br /&gt;
&lt;br /&gt;
;[http://docs.kde.org/development/en/kdenetwork/krfb/ Gemeinsame Nutzung des Desktops]&lt;br /&gt;
:''Die Fähigkeit zur gemeinsame Nutzung des Desktops macht auch eine Nutzung auf Distanz möglich. Neben zahlreichen anderen Verwendungsmöglichkeiten, ist diese Fähigkeit eine große Hilfe für das Betreuungspersonal, welches eine telefonische Unterstützung bietet.''&lt;br /&gt;
&lt;br /&gt;
;[[Development/Tutorials/Shell_Scripting_with_KDE_Dialogs_(de)|Benutzung von KDE Dialogen in Shell-Scripten]]&lt;br /&gt;
:''Um verschiedene Dialoge anzuzeigen, können Sie KDialog Shell Scripte benutzen. Diese erlauben Ihnen eine nahtlose Eingliederung Ihrer eigenen GUI Erweiterungen.''&lt;br /&gt;
&lt;br /&gt;
;[[SysAdmin/Controlling_Access_To_Get_New_Stuff|Kontrollierter Zugang zu Get New Stuff Inhalten]]&lt;br /&gt;
:''Dieser Abschnitt bietet Informationen, wie Sie die vom Internet durch die Get New Stuff Option herunterladbaren Inhalte kontrollieren können.''&lt;/div&gt;</summary>
		<author><name>Logixoul</name></author>	</entry>

	<entry>
		<id>http://techbase.kde.org/KDE_System_Administration_(zh_CN)</id>
		<title>KDE System Administration (zh CN)</title>
		<link rel="alternate" type="text/html" href="http://techbase.kde.org/KDE_System_Administration_(zh_CN)"/>
				<updated>2007-09-09T18:25:24Z</updated>
		
		<summary type="html">&lt;p&gt;Logixoul: SysAdmin (zh CN) moved to KDE System Administration (zh CN)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Template:I18n/Language Navigation Bar|KDE System Administration}}&lt;br /&gt;
&lt;br /&gt;
本节为正在启动一个新的KDE开发项目或正在组织管理一个已有项目的系统管理员提供他们需要的有效信息。&lt;br /&gt;
&lt;br /&gt;
== 文件系统 ==&lt;br /&gt;
;[[SysAdmin/Configuration_Files_%28zh_CN%29|配置文件的语法]]&lt;br /&gt;
:''KDE的配置文件是基于文本的，其中包含了多组由关键字（即配置选项或称为键）与其值（即赋值给配置选项的参数值或称为键值）所组成的条目。这节解释了它们的语法，包括：''&lt;br /&gt;
* 本地化，&lt;br /&gt;
* 环境变量，&lt;br /&gt;
* 完整地或部分地提供配置文件，&lt;br /&gt;
* 编辑器工具，&lt;br /&gt;
* 其他高级特性。&lt;br /&gt;
&amp;lt;!--It covers localisation, use of shell-variables, locking down configuration files (in whole or in part), and other advanced features. Read also about some useful editor utilities.''--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;[[SysAdmin/KDE Filesystem Hierarchy|KDE的文件系统层次]]&lt;br /&gt;
:''这篇文章描述了KDE是如何使用用于查找和存储文件的文件系统的，解释了它是如何搜索、处理以及变更路径的。同时这篇文章也提供了一些主要操作系统供应商所使用的默认设置的概况。''&lt;br /&gt;
&lt;br /&gt;
;[[SysAdmin/XDG Filesystem Hierarchy|XDG的文件系统层次]]&lt;br /&gt;
:''为了补充[[SysAdmin/KDE Filesystem Hierarchy|KDE所使用的文件系统层次]]，KDE同样也使用了一些由[http://freedesktop.org freedesktop.org]的XDG规范所定义的目录。这篇文章归档了这些被使用的路径以及它们的用途。''&lt;br /&gt;
&lt;br /&gt;
== 桌面的会话 ==&lt;br /&gt;
&lt;br /&gt;
;[[SysAdmin/Environment Variables|环境变量]]&lt;br /&gt;
:''许多归档于这篇文章的环境变量能够作用于KDE的很多方面，以及KDE应用程序运行时的行为。''&lt;br /&gt;
&lt;br /&gt;
;[[SysAdmin/Startup|桌面启动序列]]&lt;br /&gt;
:''当启动KDE时，可视的桌面组件伴随这运行于后台的许多服务一起启动。这篇文章描述了启动的序列，为一些服务的启动以及如何改变启动序列提供了一个概览。''&lt;br /&gt;
&lt;br /&gt;
;[http://docs.kde.org/development/en/kdebase/kdm/ 登录管理器]&lt;br /&gt;
:''KDE显示管理器（KDM）提供了登录管理器的一般功能。你的用户与KDE系统的第一次接触通常是KDE登录屏幕。本节涵盖了如何设置KDM的基本内容，以及其他高级内容例如远程登录、自动登录等。''&lt;br /&gt;
&lt;br /&gt;
== 个人用户与组的配置文件 ==&lt;br /&gt;
&lt;br /&gt;
;[[SysAdmin/Kiosk/Introduction|Kiosk的介绍]]&lt;br /&gt;
:''Kiosk框架提供了一组特性使得其能够很容易又很有效地定义和限制一个基于用户与组的凭证的KDE环境。除了介绍性的概览，这篇文章涵盖了配置实例、软件行为与可使用资源的约束，以及为用户与组指定配置文件。''&lt;br /&gt;
&lt;br /&gt;
;[[SysAdmin/Kiosk/Keys|Kiosk的键值]]&lt;br /&gt;
:''这份文档详细罗列了那些用以对软件行为、可使用资源与URL进行约束的Kiosk键值。这些键值有影响整个KDE系统的，也有应用程序专用的。由于它们是如此详细，以致于当你建立一份Kiosk配置文件时，完全可以将此文档作为一份便利的参考指南。''&lt;br /&gt;
&lt;br /&gt;
;[[SysAdmin/Kiosk/Resources|额外的资源]]&lt;br /&gt;
:''链接到有关用户与组的KDE配置文件的工具、邮件列表和附加文档。''&lt;br /&gt;
&lt;br /&gt;
== 工具 ==&lt;br /&gt;
&lt;br /&gt;
;[http://extragear.kde.org/apps/kiosktool/ KioskTool]&lt;br /&gt;
:''一个图形化的应用程序，用于帮助管理KDE Kiosk用户与组配置文件。''&lt;br /&gt;
&lt;br /&gt;
;[http://docs.kde.org/development/en/kdenetwork/krfb/ Desktop Sharing]&lt;br /&gt;
:''KDE Desktop Sharing&amp;lt;!-- couldn't &amp;quot;K Desktop Environment Desktop Sharing&amp;quot; be &amp;quot;Remote Sharing&amp;quot; or &amp;quot;K Desktop Sharing&amp;quot;? --&amp;gt;能够使你可以与其他人远程地共享你的桌面。除去对多用户地支持外，该特性在某用户呼叫其他用户以寻找帮助时更显强大。多个用户可以同时对呼叫者施以更直接的帮助。''&lt;br /&gt;
&lt;br /&gt;
;[[Development/Tutorials/Shell_Scripting_with_KDE_Dialogs|在Shell脚本中使用KDE对话框]]&lt;br /&gt;
:''你可以使用KDialog shell脚本来呈现许多KDE对话框。这为你能够将脚本功能无缝地集成到你定制的GUI以增强其功能提供了可能。''&lt;br /&gt;
&lt;br /&gt;
;[[SysAdmin/Controlling_Access_To_Get_New_Stuff|使用新要素来控制接入的内容]]&lt;br /&gt;
:''提供了关于如何通过KDE的新特性来控制从Internet上下载的内容的相关信息。''&lt;/div&gt;</summary>
		<author><name>Logixoul</name></author>	</entry>

	<entry>
		<id>http://techbase.kde.org/SysAdmin_(zh_CN)</id>
		<title>SysAdmin (zh CN)</title>
		<link rel="alternate" type="text/html" href="http://techbase.kde.org/SysAdmin_(zh_CN)"/>
				<updated>2007-09-09T18:25:24Z</updated>
		
		<summary type="html">&lt;p&gt;Logixoul: SysAdmin (zh CN) moved to KDE System Administration (zh CN)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#REDIRECT [[KDE System Administration (zh CN)]]&lt;/div&gt;</summary>
		<author><name>Logixoul</name></author>	</entry>

	<entry>
		<id>http://techbase.kde.org/KDE_System_Administration_(zh_CN)</id>
		<title>KDE System Administration (zh CN)</title>
		<link rel="alternate" type="text/html" href="http://techbase.kde.org/KDE_System_Administration_(zh_CN)"/>
				<updated>2007-09-09T18:25:16Z</updated>
		
		<summary type="html">&lt;p&gt;Logixoul: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Template:I18n/Language Navigation Bar|KDE System Administration}}&lt;br /&gt;
&lt;br /&gt;
本节为正在启动一个新的KDE开发项目或正在组织管理一个已有项目的系统管理员提供他们需要的有效信息。&lt;br /&gt;
&lt;br /&gt;
== 文件系统 ==&lt;br /&gt;
;[[SysAdmin/Configuration_Files_%28zh_CN%29|配置文件的语法]]&lt;br /&gt;
:''KDE的配置文件是基于文本的，其中包含了多组由关键字（即配置选项或称为键）与其值（即赋值给配置选项的参数值或称为键值）所组成的条目。这节解释了它们的语法，包括：''&lt;br /&gt;
* 本地化，&lt;br /&gt;
* 环境变量，&lt;br /&gt;
* 完整地或部分地提供配置文件，&lt;br /&gt;
* 编辑器工具，&lt;br /&gt;
* 其他高级特性。&lt;br /&gt;
&amp;lt;!--It covers localisation, use of shell-variables, locking down configuration files (in whole or in part), and other advanced features. Read also about some useful editor utilities.''--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;[[SysAdmin/KDE Filesystem Hierarchy|KDE的文件系统层次]]&lt;br /&gt;
:''这篇文章描述了KDE是如何使用用于查找和存储文件的文件系统的，解释了它是如何搜索、处理以及变更路径的。同时这篇文章也提供了一些主要操作系统供应商所使用的默认设置的概况。''&lt;br /&gt;
&lt;br /&gt;
;[[SysAdmin/XDG Filesystem Hierarchy|XDG的文件系统层次]]&lt;br /&gt;
:''为了补充[[SysAdmin/KDE Filesystem Hierarchy|KDE所使用的文件系统层次]]，KDE同样也使用了一些由[http://freedesktop.org freedesktop.org]的XDG规范所定义的目录。这篇文章归档了这些被使用的路径以及它们的用途。''&lt;br /&gt;
&lt;br /&gt;
== 桌面的会话 ==&lt;br /&gt;
&lt;br /&gt;
;[[SysAdmin/Environment Variables|环境变量]]&lt;br /&gt;
:''许多归档于这篇文章的环境变量能够作用于KDE的很多方面，以及KDE应用程序运行时的行为。''&lt;br /&gt;
&lt;br /&gt;
;[[SysAdmin/Startup|桌面启动序列]]&lt;br /&gt;
:''当启动KDE时，可视的桌面组件伴随这运行于后台的许多服务一起启动。这篇文章描述了启动的序列，为一些服务的启动以及如何改变启动序列提供了一个概览。''&lt;br /&gt;
&lt;br /&gt;
;[http://docs.kde.org/development/en/kdebase/kdm/ 登录管理器]&lt;br /&gt;
:''KDE显示管理器（KDM）提供了登录管理器的一般功能。你的用户与KDE系统的第一次接触通常是KDE登录屏幕。本节涵盖了如何设置KDM的基本内容，以及其他高级内容例如远程登录、自动登录等。''&lt;br /&gt;
&lt;br /&gt;
== 个人用户与组的配置文件 ==&lt;br /&gt;
&lt;br /&gt;
;[[SysAdmin/Kiosk/Introduction|Kiosk的介绍]]&lt;br /&gt;
:''Kiosk框架提供了一组特性使得其能够很容易又很有效地定义和限制一个基于用户与组的凭证的KDE环境。除了介绍性的概览，这篇文章涵盖了配置实例、软件行为与可使用资源的约束，以及为用户与组指定配置文件。''&lt;br /&gt;
&lt;br /&gt;
;[[SysAdmin/Kiosk/Keys|Kiosk的键值]]&lt;br /&gt;
:''这份文档详细罗列了那些用以对软件行为、可使用资源与URL进行约束的Kiosk键值。这些键值有影响整个KDE系统的，也有应用程序专用的。由于它们是如此详细，以致于当你建立一份Kiosk配置文件时，完全可以将此文档作为一份便利的参考指南。''&lt;br /&gt;
&lt;br /&gt;
;[[SysAdmin/Kiosk/Resources|额外的资源]]&lt;br /&gt;
:''链接到有关用户与组的KDE配置文件的工具、邮件列表和附加文档。''&lt;br /&gt;
&lt;br /&gt;
== 工具 ==&lt;br /&gt;
&lt;br /&gt;
;[http://extragear.kde.org/apps/kiosktool/ KioskTool]&lt;br /&gt;
:''一个图形化的应用程序，用于帮助管理KDE Kiosk用户与组配置文件。''&lt;br /&gt;
&lt;br /&gt;
;[http://docs.kde.org/development/en/kdenetwork/krfb/ Desktop Sharing]&lt;br /&gt;
:''KDE Desktop Sharing&amp;lt;!-- couldn't &amp;quot;K Desktop Environment Desktop Sharing&amp;quot; be &amp;quot;Remote Sharing&amp;quot; or &amp;quot;K Desktop Sharing&amp;quot;? --&amp;gt;能够使你可以与其他人远程地共享你的桌面。除去对多用户地支持外，该特性在某用户呼叫其他用户以寻找帮助时更显强大。多个用户可以同时对呼叫者施以更直接的帮助。''&lt;br /&gt;
&lt;br /&gt;
;[[Development/Tutorials/Shell_Scripting_with_KDE_Dialogs|在Shell脚本中使用KDE对话框]]&lt;br /&gt;
:''你可以使用KDialog shell脚本来呈现许多KDE对话框。这为你能够将脚本功能无缝地集成到你定制的GUI以增强其功能提供了可能。''&lt;br /&gt;
&lt;br /&gt;
;[[SysAdmin/Controlling_Access_To_Get_New_Stuff|使用新要素来控制接入的内容]]&lt;br /&gt;
:''提供了关于如何通过KDE的新特性来控制从Internet上下载的内容的相关信息。''&lt;/div&gt;</summary>
		<author><name>Logixoul</name></author>	</entry>

	<entry>
		<id>http://techbase.kde.org/KDE_System_Administration_(de)</id>
		<title>KDE System Administration (de)</title>
		<link rel="alternate" type="text/html" href="http://techbase.kde.org/KDE_System_Administration_(de)"/>
				<updated>2007-09-09T18:23:39Z</updated>
		
		<summary type="html">&lt;p&gt;Logixoul: SysAdmin (de) moved to KDE System Administration (de)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Template:I18n/Language Navigation Bar|SysAdmin}}&lt;br /&gt;
&lt;br /&gt;
Dieser Abschnitt bietet Systemadministratoren, welche KDE neu aufsetzen oder vorhandene Einsätze verwalten die Informationen, die sie benötigen um dies effektiv zu tun.&lt;br /&gt;
&lt;br /&gt;
== Dateisystem ==&lt;br /&gt;
;[[SysAdmin/Configuration Files|Syntax der Konfigurations Dateien]]&lt;br /&gt;
:''KDEs Konfigurations Dateien sind textbasiert. Sie enthalten Gruppen aus Schlüssel-Wert Paaren. Dieser Abschnitt erläutert deren Syntax und behandelt folgende Bereiche:''&lt;br /&gt;
* Lokalisation,&lt;br /&gt;
* Shell Variablen,&lt;br /&gt;
* komplettes oder teilweises Sperren der Konfigurationsdateien&lt;br /&gt;
* Editier Hilfsprogramme&lt;br /&gt;
* andere fortgeschrittene Eigenschaften.&lt;br /&gt;
&lt;br /&gt;
;[[SysAdmin/KDE Filesystem Hierarchy|KDE Hierarchie]]&lt;br /&gt;
:''Dieser Artikel beschreibt wie KDE das Dateisystem benutzt, wo nach Dateien gesucht wird und wo sie abgespeichert werden. Er erklärt wie man diese Orte wechselt. Er beinhaltet auch eine kurz gefasste Übersicht der von den größten OS Anbietern benutzten Standard-Einstellungen.''&lt;br /&gt;
&lt;br /&gt;
;[[SysAdmin/XDG Filesystem Hierarchy|XDG Hierarchie]]&lt;br /&gt;
:''In Ergänzung zu [[SysAdmin/KDE Filesystem Hierarchy|KDEs Datei Hierarchie]], benutzt KDE auch verschiedene Verzeichnisse, die in der XDG Spezifikation auf  [http://freedesktop.org freedesktop.org] definiert sind. Dieser Artikel dokumentiert die benutzten Pfade und deren Funktionen.''&lt;br /&gt;
&lt;br /&gt;
== Desktop-Sitzungen ==&lt;br /&gt;
&lt;br /&gt;
;[[SysAdmin/Environment Variables|Umgebungsvariablen]]&lt;br /&gt;
:''Eine Vielfalt an Umgebungs Variablen, die in diesem Artikel dokumentiert sind, ist vorhanden, um verschiedene Aspekte sowie das Laufzeitverhalten von KDE zu beeinflussen.''&lt;br /&gt;
&lt;br /&gt;
;[[SysAdmin/Startup|Startvorgang]]&lt;br /&gt;
:''Während des Startvorganges werden die sichtbaren sowie die im hintergrund bleibenden Desktop-Komponenten gestartet. Dieser Artikel beschreibt die Startreihenfolge, liefert einen Überblick über einige der gestarteten Dienste und erklärt wie man Veränderungen macht.''&lt;br /&gt;
&lt;br /&gt;
;[http://docs.kde.org/development/en/kdebase/kdm/ Anmeldungsmanager]&lt;br /&gt;
:''Der KDE Display Manager (KDM) bietet die Dienste, die üblicherweise mit einem Anmeldungsmanager assoziiert werden. Der erste Kontakt, den Ihre Benutzer mit einem KDE System haben, ist üblicherweise der KDM Bildschirm. Dieser Abschnitt behandelt die Grundlagen wie man einen KDM aufsetzt, sowie fortgeschrittene Themen wie Fernanmeldung, automatische Anmeldung, und mehr.''&lt;br /&gt;
&lt;br /&gt;
== Benutzer- und Gruppenprofile ==&lt;br /&gt;
&lt;br /&gt;
;[[SysAdmin/Kiosk/Introduction|Kiosk-Einführung]]&lt;br /&gt;
:''Das Kiosk Rahmenwerk bietet eine Menge an Optionen, welche es erlauben einfach und mächtig die Fähigkeiten einer KDE Umgebung, basierend auf Benutzer- und Gruppenlegitimationen, zu definieren und einzuschränken. Zusätzlich zu dem einführenden Überblick umfasst dieser Artikel das Sperren der Konfigurationsdateien,  Einschränkungen der Handlungsfreiheiten und Ressourcen, die Zuweisung von Benutzer- und Gruppenprofilen, und mehr.''&lt;br /&gt;
&lt;br /&gt;
;[[SysAdmin/Kiosk/Keys|Kiosk-Schlüssel]]&lt;br /&gt;
:''Dieses Dokument detailliert bekannte globale und anwendungsspezifische Schlüssel für Aktionen, Ressourcen und URL Beschränkungen und macht es zu einer handlichen Referenzanleitung um Kiosk-Profile zu erstellen''&lt;br /&gt;
&lt;br /&gt;
;[[SysAdmin/Kiosk/Resources|Weitere Ressourcen]]&lt;br /&gt;
:''KDEs Benutzer- und Gruppenprofile betreffe Links zu Werkzeugen, Mailinglisten, und zusätzlicher Dokumentation.''&lt;br /&gt;
&lt;br /&gt;
== Werkzeuge ==&lt;br /&gt;
&lt;br /&gt;
;[http://extragear.kde.org/apps/kiosktool/ KioskTool]&lt;br /&gt;
:''Eine graphische Anwendung, die einem beim Verwalten von Benutzer- und Gruppenprofilen behilflich ist.''&lt;br /&gt;
&lt;br /&gt;
;[http://docs.kde.org/development/en/kdenetwork/krfb/ Gemeinsame Nutzung des Desktops]&lt;br /&gt;
:''Die Fähigkeit zur gemeinsame Nutzung des Desktops macht auch eine Nutzung auf Distanz möglich. Neben zahlreichen anderen Verwendungsmöglichkeiten, ist diese Fähigkeit eine große Hilfe für das Betreuungspersonal, welches eine telefonische Unterstützung bietet.''&lt;br /&gt;
&lt;br /&gt;
;[[Development/Tutorials/Shell_Scripting_with_KDE_Dialogs_(de)|Benutzung von KDE Dialogen in Shell-Scripten]]&lt;br /&gt;
:''Um verschiedene Dialoge anzuzeigen, können Sie KDialog Shell Scripte benutzen. Diese erlauben Ihnen eine nahtlose Eingliederung Ihrer eigenen GUI Erweiterungen.''&lt;br /&gt;
&lt;br /&gt;
;[[SysAdmin/Controlling_Access_To_Get_New_Stuff|Kontrollierter Zugang zu Get New Stuff Inhalten]]&lt;br /&gt;
:''Dieser Abschnitt bietet Informationen, wie Sie die vom Internet durch die Get New Stuff Option herunterladbaren Inhalte kontrollieren können.''&lt;/div&gt;</summary>
		<author><name>Logixoul</name></author>	</entry>

	<entry>
		<id>http://techbase.kde.org/SysAdmin_(de)</id>
		<title>SysAdmin (de)</title>
		<link rel="alternate" type="text/html" href="http://techbase.kde.org/SysAdmin_(de)"/>
				<updated>2007-09-09T18:23:39Z</updated>
		
		<summary type="html">&lt;p&gt;Logixoul: SysAdmin (de) moved to KDE System Administration (de)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#REDIRECT [[KDE System Administration (de)]]&lt;/div&gt;</summary>
		<author><name>Logixoul</name></author>	</entry>

	<entry>
		<id>http://techbase.kde.org/KDE_System_Administration</id>
		<title>KDE System Administration</title>
		<link rel="alternate" type="text/html" href="http://techbase.kde.org/KDE_System_Administration"/>
				<updated>2007-09-09T18:21:17Z</updated>
		
		<summary type="html">&lt;p&gt;Logixoul: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Template:I18n/Language Navigation Bar|KDE System Administration}}&lt;br /&gt;
&lt;br /&gt;
This section provides system administrators who are rolling out new or managing existing KDE deployments in their organization with the information they need to do so effectively. &lt;br /&gt;
&lt;br /&gt;
== File System ==&lt;br /&gt;
;[[/Configuration Files|Configuration File Syntax]]&lt;br /&gt;
:''KDE configuration files are text-based. They contain groups of key-value pairs. This section explains their syntax. It covers:''&lt;br /&gt;
* localisation,&lt;br /&gt;
* shell-variables,&lt;br /&gt;
* complete or partial lock-down of configuration files,&lt;br /&gt;
* editor utilities,&lt;br /&gt;
* other advanced features.&lt;br /&gt;
&amp;lt;!--It covers localisation, use of shell-variables, locking down configuration files (in whole or in part), and other advanced features. Read also about some useful editor utilities.''--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;[[/KDE Filesystem Hierarchy|KDE Hierarchy]]&lt;br /&gt;
:''This article describes how KDE uses the filesystem, where it looks for files and where it stores them. It explains how to change these locations. There is also a brief overview of the default settings used by major OS vendors.''&lt;br /&gt;
&lt;br /&gt;
;[[/XDG Filesystem Hierarchy|XDG Hierarchy]]&lt;br /&gt;
:''Supplementing the [[/KDE Filesystem Hierarchy|KDE filesystem hierarchy]], KDE also uses various directories, as defined by XDG specifications on [http://freedesktop.org freedesktop.org]. This article documents the paths used and their purposes.''&lt;br /&gt;
&lt;br /&gt;
== Desktop Sessions ==&lt;br /&gt;
&lt;br /&gt;
;[[/Environment Variables|Environment Variables]]&lt;br /&gt;
:''A variety of  environment variables documented in this article are available to influence aspects of KDE and the runtime behavior of KDE applications.''&lt;br /&gt;
&lt;br /&gt;
;[[/Startup|Desktop Startup Sequence]]&lt;br /&gt;
:''During startup KDE starts the visible desktop components as well as several services that run in the background. This article describes the startup sequence, gives an overview of some of the services started and explains how to make changes.''&lt;br /&gt;
&lt;br /&gt;
;[http://docs.kde.org/development/en/kdebase/kdm/ Login Manager]&lt;br /&gt;
:''The KDE Display Manager (KDM) provides the services commonly associated with a login manager. The first contact your users have with a KDE system is usually the KDM login screen. This section covers the basics of how setting up KDM, plus advanced topics such as remote login, automatic login, and more.''&lt;br /&gt;
&lt;br /&gt;
== User &amp;amp; Group Profiles ==&lt;br /&gt;
&lt;br /&gt;
;[[/Kiosk/Introduction|Introduction to Kiosk]]&lt;br /&gt;
:''The  Kiosk framework provides a set of features that makes it possible to easily and powerfully define and restrict the capabilities of a KDE environment based on user and group credentials. In addition to an introductory overview, this article covers configuration setting lock down, action and resource restrictions, assigning profiles to users and groups and more.''&lt;br /&gt;
&lt;br /&gt;
;[[/Kiosk/Keys|Kiosk Keys]]&lt;br /&gt;
:''This document details known global and application specific kiosk keys for action, resource and url restrictions making it a handy reference guide when setting up a Kiosk profile.''&lt;br /&gt;
&lt;br /&gt;
;[[/Kiosk/Resources|Additional Resources]]&lt;br /&gt;
:''Links to tools, mailing lists and additional documentation relevant to user and group profiles in KDE.''&lt;br /&gt;
&lt;br /&gt;
== Tools ==&lt;br /&gt;
&lt;br /&gt;
;[http://extragear.kde.org/apps/kiosktool/ KioskTool]&lt;br /&gt;
:''A graphical application that helps manage KDE Kiosk user and group profiles.''&lt;br /&gt;
&lt;br /&gt;
;[http://docs.kde.org/development/en/kdenetwork/krfb/ Desktop Sharing]&lt;br /&gt;
:''The KDE Desktop Sharing &amp;lt;!-- couldn't &amp;quot;K Desktop Environment Desktop Sharing&amp;quot; be &amp;quot;Remote Sharing&amp;quot; or &amp;quot;K Desktop Sharing&amp;quot;? --&amp;gt;capabilities make it possible to share your desktop remotely with others. Alongside numerous other uses, this feature is a great enabler for support staff who give direct assistance to users calling them.''&lt;br /&gt;
&lt;br /&gt;
;[[Development/Tutorials/Shell_Scripting_with_KDE_Dialogs|Using KDE Dialogs in Shell Scripts]]&lt;br /&gt;
:''You can use KDialog shell scripts to show various KDE dialogs. This gives you seamless integration of your own custom GUI enhancements.''&lt;br /&gt;
&lt;br /&gt;
;[[SysAdmin/Controlling_Access_To_Get_New_Stuff|Controlling Access to Content Provided By Get New Stuff]]&lt;br /&gt;
:''Give information on how to control content downloaded from the Internet by the Get New Stuff feature of KDE.''&lt;/div&gt;</summary>
		<author><name>Logixoul</name></author>	</entry>

	<entry>
		<id>http://techbase.kde.org/Help:Contribute</id>
		<title>Help:Contribute</title>
		<link rel="alternate" type="text/html" href="http://techbase.kde.org/Help:Contribute"/>
				<updated>2007-09-09T18:19:23Z</updated>
		
		<summary type="html">&lt;p&gt;Logixoul: fix double redirect&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;You are welcome to contribute to the KDE TechBase wiki. In order to keep a high quality of the articles there are some guidelines you should follow. This is a brief overview of the editing and contributing process. &lt;br /&gt;
&lt;br /&gt;
== What Content belongs into KDE TechBase ==&lt;br /&gt;
&lt;br /&gt;
The KDE TechBase wiki is meant to contain technical information all around KDE, for instance&lt;br /&gt;
* Developer Information (e.g. [[Development/Tutorials|tutorials]])&lt;br /&gt;
* [[KDE System Administration]]&lt;br /&gt;
* policies and schedules&lt;br /&gt;
* etc.&lt;br /&gt;
&lt;br /&gt;
More details can be found in the article [[Help:Wiki Structure]]. [http://docs.kde.org End-user documentation] or [http://api.kde.org API documentation] should ''not'' be added here. For non-technical use cases use the [http://wiki.kde.org KDE wiki].&lt;br /&gt;
&lt;br /&gt;
=== Where to put new Articles ===&lt;br /&gt;
&lt;br /&gt;
The KDE TechBase wiki uses subpages. Take a quick look at the article about the [[Help:Wiki Structure]]. In short: Do not randomly add toplevel pages.&lt;br /&gt;
&lt;br /&gt;
It is possible to translate KDE TechBase articles into other languages. Read the article about [[Help:Wiki Translation]] for further details.&lt;br /&gt;
&lt;br /&gt;
=== The Procedure ===&lt;br /&gt;
&lt;br /&gt;
You want to add new content. To keep high quality, please create the article in your userpage first (e.g. User:foo/My Acticle). Once it is ready, discuss the article with other developers and proof-read it. Finally, if a location is found, move the page.&lt;br /&gt;
&lt;br /&gt;
After moving the page please '''add yourself to the watch list''' by clicking the ''Watch'' register. You will get a notice by mail whenever the page changes.&lt;br /&gt;
&lt;br /&gt;
== Editing Basics ==&lt;br /&gt;
&lt;br /&gt;
In the KDE TechBase wiki all readers are allowed to edit content and structure.&lt;br /&gt;
 &lt;br /&gt;
=== Review Policy and Conventions ===&lt;br /&gt;
&lt;br /&gt;
Make sure that you submit information which is relevant to the specific purpose of the wiki, or your content might be deleted. You can always use the [[Help:Talk page|''Discussion'' or ''talk'' pages]] to ask questions or check to see if your idea will be accepted. Please make sure your contributions are not violating licenses.&lt;br /&gt;
&lt;br /&gt;
=== Start Editing ===&lt;br /&gt;
&lt;br /&gt;
To start editing a [[Main Page|KDE TechBase]] page, click the '''Edit''' link at the tab on the top. This brings you to the edit page: a page with a text box containing the ''wikitext'' - the editable code from which the server produces the finished page. ''If you just want to experiment, please do so in the [[Sandbox|sandbox]], not here''.&lt;br /&gt;
&lt;br /&gt;
=== Type your Changes ===&lt;br /&gt;
&lt;br /&gt;
You can just type your text. However, also using basic wiki markup to make links and do simple formatting adds to the value of your contribution. Please follow the style used in other wiki articles. If you follow this, your contributions will be more valuable as they won't need to be cleaned up later.&lt;br /&gt;
&lt;br /&gt;
=== Summarize your Changes ===&lt;br /&gt;
&lt;br /&gt;
Write a short edit summary in the small field below the edit-box.&lt;br /&gt;
&lt;br /&gt;
Example: &amp;quot;Fixed a typo&amp;quot;&lt;br /&gt;
&lt;br /&gt;
=== Preview before Saving ===&lt;br /&gt;
&lt;br /&gt;
When you have finished, click '''Show preview''' to see how your changes will look '''before''' you make them permanent.  Repeat the edit/preview process until you are satisfied, then click '''Save page''' and your changes will be immediately applied to the article.&lt;br /&gt;
&lt;br /&gt;
== Wiki Markup Reference ==&lt;br /&gt;
&lt;br /&gt;
The wikipedia provides a quick introduction about the most important mediawiki syntax. Please read the [http://en.wikipedia.org/wiki/Wikipedia:How_to_edit_a_page Page editing help].&lt;/div&gt;</summary>
		<author><name>Logixoul</name></author>	</entry>

	<entry>
		<id>http://techbase.kde.org/KDE_System_Administration_(fr)</id>
		<title>KDE System Administration (fr)</title>
		<link rel="alternate" type="text/html" href="http://techbase.kde.org/KDE_System_Administration_(fr)"/>
				<updated>2007-09-09T18:17:03Z</updated>
		
		<summary type="html">&lt;p&gt;Logixoul: SysAdmin (fr) moved to KDE System Administration (fr)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Template:I18n/Language Navigation Bar|KDE System Administration}}&lt;br /&gt;
Cette section fournit aux administrateurs système l'information nécessaire au bon déroulement du déploiement de KDE au sein de leur organisation.&lt;br /&gt;
&lt;br /&gt;
== Système de Fichier ==&lt;br /&gt;
;[[KDE System Administration/Configuration Files|Syntaxe des fichier de configuration]]&lt;br /&gt;
:''Les fichiers de configuration de KDE sont au format texte brut. Ils contiennent des groupes de paires clé-valeur. Cette section explique leur syntaxe. Cela couvre :''&lt;br /&gt;
* la gestion des langues&lt;br /&gt;
* les variables shell&lt;br /&gt;
* le vérouillage complet ou partiel des fichiers de configuration&lt;br /&gt;
* les utilitaires d'édition&lt;br /&gt;
* d'autres fonctionalités avancées&lt;br /&gt;
&lt;br /&gt;
;[[KDE System Administration/KDE Filesystem Hierarchy|Arborescence de KDE]]&lt;br /&gt;
:''Cet article décrit la façon dont KDE utilise le système de fichier, où il recherche les fichiers et où il les stocke. L'article explique comment changer ces endroits. On trouvera aussi une brève vue d'ensemble des réglages par défaut utilisé par les grands distributeurs de systèmes d'exploitation.''&lt;br /&gt;
&lt;br /&gt;
== Lancement du Bureau ==&lt;br /&gt;
			&lt;br /&gt;
;[[KDE System Administration/Environment Variables|Environment Variables]]&lt;br /&gt;
:''Un ensemble de variables d'environnement décrites dans cet article sont disponibles pour régler certains aspects de KDE et le comportement pendant leur lancement des applications KDE.''&lt;br /&gt;
			&lt;br /&gt;
;[[KDE System Administration/Startup|Séquence de démarrage du bureau KDE]]&lt;br /&gt;
:''Pendant son démarrage KDE lance les composants visibles du bureau ainsi que différents services tournant en tache de fond. Cet article décrit la séquence de démarrage, donne une vue générale des services démarrés et explique comment modifier ceci.''&lt;br /&gt;
&lt;br /&gt;
;[http://docs.kde.org/development/en/kdebase/kdm/ Gestionnaire de Connexion]&lt;br /&gt;
:''Le Gestionnaire Graphique de KDE (KDE Display Manager - KDM) fournit les services classiquement associés à un gestionnaire de connexion. Le premier contact que les utilisateurs auront avec KDE est typiquement l'écran de login de KDE. Cette section couvre les bases pour mettre en place KDM, plus certains sujets avancés comme la connexion à distance, la connexion automatique entre autres choses.''&lt;br /&gt;
&lt;br /&gt;
== Profils de groupes et d'utilisateurs ==&lt;br /&gt;
&lt;br /&gt;
;[[KDE System Administration/Kiosk/Introduction|Introduction à Kiosk]]&lt;br /&gt;
:''L'infrastructure Kiosk fournit un ensemble de fonctionnalités pour définir et restreindre facilement les caractéristiques d'un environnement KDE basé sur les droits d'accès de groupes et d'utilisateurs. En plus d'une introduction générale, cet article couvre l'ensemble des paramètres de configuration vérouillables, les restrictions d'action et de ressource, l'association de profils utilisateurs et de groupes, parmi d'autres choses.''&lt;br /&gt;
&lt;br /&gt;
;[[KDE System Administration/Kiosk/Keys|Liste des clés applicables pour l'utilisation de Kiosk]]&lt;br /&gt;
:''Ce document détaille l'ensemble clés globales et spécifiques prédéfinies applicables à certaines applications pour les restrictions d'actions, de ressources et de liens internet faisant de ce guide une référence pour paramètrer des profils Kiosk.''&lt;br /&gt;
&lt;br /&gt;
;[[KDE System Administration/Kiosk/Resources|Ressources supplémentaires]]&lt;br /&gt;
:''Liens vers des outils, listes de diffusion et documentation supplémentaire à propos les profils d'utilisateurs et de groupes dans KDE.''&lt;br /&gt;
&lt;br /&gt;
== Outils ==&lt;br /&gt;
&lt;br /&gt;
;[http://extragear.kde.org/apps/kiosktool/ KioskTool]&lt;br /&gt;
:''Une application graphique pour gérer les profils d'utilisateurs et de groupes de KDE Kiosk.''&lt;br /&gt;
&lt;br /&gt;
;[http://docs.kde.org/development/en/kdenetwork/krfb/ Le bureau partagé]&lt;br /&gt;
&lt;br /&gt;
:''La fonctionnalité de bureau partagé permet de partager votre hureau à distance avec d'autres utilisateurs. Parmi de nombreuses autres applications, cette fonctionnalité est une grande avancée pour les équipes de support qui donnent une assistance téléphonique aux utilisateurs.''&lt;br /&gt;
&lt;br /&gt;
;[[Development/Tutorials/Shell_Scripting_with_KDE_Dialogs|Utiliser les boites de dialogue KDE dans des scripts shell]]&lt;br /&gt;
:''Il est possible d'utiliser des scripts shell utilisant KDialog pour afficher diverses boites de dialogue KDE. Cela offre une intégration sans précédent de vos propres améliorations de l'interface graphique.''&lt;/div&gt;</summary>
		<author><name>Logixoul</name></author>	</entry>

	<entry>
		<id>http://techbase.kde.org/SysAdmin_(fr)</id>
		<title>SysAdmin (fr)</title>
		<link rel="alternate" type="text/html" href="http://techbase.kde.org/SysAdmin_(fr)"/>
				<updated>2007-09-09T18:17:03Z</updated>
		
		<summary type="html">&lt;p&gt;Logixoul: SysAdmin (fr) moved to KDE System Administration (fr)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#REDIRECT [[KDE System Administration (fr)]]&lt;/div&gt;</summary>
		<author><name>Logixoul</name></author>	</entry>

	<entry>
		<id>http://techbase.kde.org/KDE_System_Administration_(fr)</id>
		<title>KDE System Administration (fr)</title>
		<link rel="alternate" type="text/html" href="http://techbase.kde.org/KDE_System_Administration_(fr)"/>
				<updated>2007-09-09T18:16:52Z</updated>
		
		<summary type="html">&lt;p&gt;Logixoul: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Template:I18n/Language Navigation Bar|KDE System Administration}}&lt;br /&gt;
Cette section fournit aux administrateurs système l'information nécessaire au bon déroulement du déploiement de KDE au sein de leur organisation.&lt;br /&gt;
&lt;br /&gt;
== Système de Fichier ==&lt;br /&gt;
;[[KDE System Administration/Configuration Files|Syntaxe des fichier de configuration]]&lt;br /&gt;
:''Les fichiers de configuration de KDE sont au format texte brut. Ils contiennent des groupes de paires clé-valeur. Cette section explique leur syntaxe. Cela couvre :''&lt;br /&gt;
* la gestion des langues&lt;br /&gt;
* les variables shell&lt;br /&gt;
* le vérouillage complet ou partiel des fichiers de configuration&lt;br /&gt;
* les utilitaires d'édition&lt;br /&gt;
* d'autres fonctionalités avancées&lt;br /&gt;
&lt;br /&gt;
;[[KDE System Administration/KDE Filesystem Hierarchy|Arborescence de KDE]]&lt;br /&gt;
:''Cet article décrit la façon dont KDE utilise le système de fichier, où il recherche les fichiers et où il les stocke. L'article explique comment changer ces endroits. On trouvera aussi une brève vue d'ensemble des réglages par défaut utilisé par les grands distributeurs de systèmes d'exploitation.''&lt;br /&gt;
&lt;br /&gt;
== Lancement du Bureau ==&lt;br /&gt;
			&lt;br /&gt;
;[[KDE System Administration/Environment Variables|Environment Variables]]&lt;br /&gt;
:''Un ensemble de variables d'environnement décrites dans cet article sont disponibles pour régler certains aspects de KDE et le comportement pendant leur lancement des applications KDE.''&lt;br /&gt;
			&lt;br /&gt;
;[[KDE System Administration/Startup|Séquence de démarrage du bureau KDE]]&lt;br /&gt;
:''Pendant son démarrage KDE lance les composants visibles du bureau ainsi que différents services tournant en tache de fond. Cet article décrit la séquence de démarrage, donne une vue générale des services démarrés et explique comment modifier ceci.''&lt;br /&gt;
&lt;br /&gt;
;[http://docs.kde.org/development/en/kdebase/kdm/ Gestionnaire de Connexion]&lt;br /&gt;
:''Le Gestionnaire Graphique de KDE (KDE Display Manager - KDM) fournit les services classiquement associés à un gestionnaire de connexion. Le premier contact que les utilisateurs auront avec KDE est typiquement l'écran de login de KDE. Cette section couvre les bases pour mettre en place KDM, plus certains sujets avancés comme la connexion à distance, la connexion automatique entre autres choses.''&lt;br /&gt;
&lt;br /&gt;
== Profils de groupes et d'utilisateurs ==&lt;br /&gt;
&lt;br /&gt;
;[[KDE System Administration/Kiosk/Introduction|Introduction à Kiosk]]&lt;br /&gt;
:''L'infrastructure Kiosk fournit un ensemble de fonctionnalités pour définir et restreindre facilement les caractéristiques d'un environnement KDE basé sur les droits d'accès de groupes et d'utilisateurs. En plus d'une introduction générale, cet article couvre l'ensemble des paramètres de configuration vérouillables, les restrictions d'action et de ressource, l'association de profils utilisateurs et de groupes, parmi d'autres choses.''&lt;br /&gt;
&lt;br /&gt;
;[[KDE System Administration/Kiosk/Keys|Liste des clés applicables pour l'utilisation de Kiosk]]&lt;br /&gt;
:''Ce document détaille l'ensemble clés globales et spécifiques prédéfinies applicables à certaines applications pour les restrictions d'actions, de ressources et de liens internet faisant de ce guide une référence pour paramètrer des profils Kiosk.''&lt;br /&gt;
&lt;br /&gt;
;[[KDE System Administration/Kiosk/Resources|Ressources supplémentaires]]&lt;br /&gt;
:''Liens vers des outils, listes de diffusion et documentation supplémentaire à propos les profils d'utilisateurs et de groupes dans KDE.''&lt;br /&gt;
&lt;br /&gt;
== Outils ==&lt;br /&gt;
&lt;br /&gt;
;[http://extragear.kde.org/apps/kiosktool/ KioskTool]&lt;br /&gt;
:''Une application graphique pour gérer les profils d'utilisateurs et de groupes de KDE Kiosk.''&lt;br /&gt;
&lt;br /&gt;
;[http://docs.kde.org/development/en/kdenetwork/krfb/ Le bureau partagé]&lt;br /&gt;
&lt;br /&gt;
:''La fonctionnalité de bureau partagé permet de partager votre hureau à distance avec d'autres utilisateurs. Parmi de nombreuses autres applications, cette fonctionnalité est une grande avancée pour les équipes de support qui donnent une assistance téléphonique aux utilisateurs.''&lt;br /&gt;
&lt;br /&gt;
;[[Development/Tutorials/Shell_Scripting_with_KDE_Dialogs|Utiliser les boites de dialogue KDE dans des scripts shell]]&lt;br /&gt;
:''Il est possible d'utiliser des scripts shell utilisant KDialog pour afficher diverses boites de dialogue KDE. Cela offre une intégration sans précédent de vos propres améliorations de l'interface graphique.''&lt;/div&gt;</summary>
		<author><name>Logixoul</name></author>	</entry>

	<entry>
		<id>http://techbase.kde.org/KDE_System_Administration/Kiosk/Resources</id>
		<title>KDE System Administration/Kiosk/Resources</title>
		<link rel="alternate" type="text/html" href="http://techbase.kde.org/KDE_System_Administration/Kiosk/Resources"/>
				<updated>2007-09-09T18:11:15Z</updated>
		
		<summary type="html">&lt;p&gt;Logixoul: SysAdmin/Kiosk/Resources moved to KDE System Administration/Kiosk/Resources&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Articles ==&lt;br /&gt;
* [http://enterprise.kde.org/articles/kiosk-lp.php http://enterprise.kde.org/articles/kiosk-lp.php]&lt;br /&gt;
* [http://developer.kde.org/documentation/tutorials/kiosk/index.html KDE Kiosk Mode]&lt;br /&gt;
* [http://www.linux-mag.com/id/1205 KDE: The Korporate Desktop Environment]&lt;br /&gt;
&lt;br /&gt;
== Files ==&lt;br /&gt;
* [http://websvn.kde.org/trunk/KDE/kdelibs/kdecore/README.kiosk?view=markup README.kiosk] found in the KDE source under {{path|/kdelibs/kdecore}}&lt;br /&gt;
&lt;br /&gt;
== IRC Channels ==&lt;br /&gt;
* Advice and answers to questions can be found  on #kde and #kde-devel on irc.freenode.net &lt;br /&gt;
&lt;br /&gt;
== Mailing Lists ==&lt;br /&gt;
* [https://mail.kde.org/mailman/listinfo/kde-kiosk Kiosk mailing list and archives]&lt;br /&gt;
&lt;br /&gt;
== Web Sites ==&lt;br /&gt;
* [http://extragear.kde.org/apps/kiosktool/ The Kiosk homepage]&lt;br /&gt;
* [http://www.kde-forum.org/board.php?boardid=31 KDE Administration Board]&lt;/div&gt;</summary>
		<author><name>Logixoul</name></author>	</entry>

	<entry>
		<id>http://techbase.kde.org/SysAdmin/Kiosk/Resources</id>
		<title>SysAdmin/Kiosk/Resources</title>
		<link rel="alternate" type="text/html" href="http://techbase.kde.org/SysAdmin/Kiosk/Resources"/>
				<updated>2007-09-09T18:11:15Z</updated>
		
		<summary type="html">&lt;p&gt;Logixoul: SysAdmin/Kiosk/Resources moved to KDE System Administration/Kiosk/Resources&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#REDIRECT [[KDE System Administration/Kiosk/Resources]]&lt;/div&gt;</summary>
		<author><name>Logixoul</name></author>	</entry>

	<entry>
		<id>http://techbase.kde.org/KDE_System_Administration/Kiosk/Keys</id>
		<title>KDE System Administration/Kiosk/Keys</title>
		<link rel="alternate" type="text/html" href="http://techbase.kde.org/KDE_System_Administration/Kiosk/Keys"/>
				<updated>2007-09-09T18:11:03Z</updated>
		
		<summary type="html">&lt;p&gt;Logixoul: SysAdmin/Kiosk/Keys moved to KDE System Administration/Kiosk/Keys&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This article contains a listing of known keys that can be used with Kiosk and what they do. How to actually use these keys and other capabilities of Kiosk such as URL restrictions, creating assigning profiles, etc. is covered in the [[../Introduction|Introduction to Kiosk]] article.&lt;br /&gt;
&lt;br /&gt;
Which configuration file to put these entries in depends on whether you wish to make them global to all applications or specific to one application. To make the restrictions valid for all applications, put them in {{path|kdeglobals}}. To enable a restriction for a specific applications place them in the application-specific configuration, e.g. {{path|konqererorrc}} for Konqueror.&lt;br /&gt;
&lt;br /&gt;
== Application Action Restrictions ==&lt;br /&gt;
&lt;br /&gt;
These keys disable actions that are commonly found in KDE applications. To use these actions, create a section in {{path|kdeglobals}} that looks like this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code ini&amp;gt;&lt;br /&gt;
[KDE Action Restrictions][$i]&lt;br /&gt;
action/&amp;lt;key&amp;gt;=false&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
! Key !! Menu !! Action&lt;br /&gt;
|-&lt;br /&gt;
|action/file_new || File || New&lt;br /&gt;
|-&lt;br /&gt;
|action/file_open || File || Open&lt;br /&gt;
|-&lt;br /&gt;
|action/file_open_recent || File || Open Recent File&lt;br /&gt;
|-&lt;br /&gt;
|action/file_save || File || Save&lt;br /&gt;
|-&lt;br /&gt;
|action/file_save_as || File || Save As&lt;br /&gt;
|-&lt;br /&gt;
|action/file_revert || File || Revert&lt;br /&gt;
|-&lt;br /&gt;
|action/file_close || File || Close&lt;br /&gt;
|-&lt;br /&gt;
|action/file_print || File || Print&lt;br /&gt;
|-&lt;br /&gt;
|action/file_print_preview || File || Print Preview&lt;br /&gt;
|-&lt;br /&gt;
|action/file_mail || File || Email File&lt;br /&gt;
|-&lt;br /&gt;
|action/file_quit || File || Quit&lt;br /&gt;
|-&lt;br /&gt;
|action/edit_undo || Edit || Undo&lt;br /&gt;
|-&lt;br /&gt;
|action/edit_redo || Edit || Redo&lt;br /&gt;
|-&lt;br /&gt;
|action/edit_cut || Edit || Cut&lt;br /&gt;
|-&lt;br /&gt;
|action/edit_copy || Edit || Copy&lt;br /&gt;
|-&lt;br /&gt;
|action/edit_paste || Edit || Paste&lt;br /&gt;
|-&lt;br /&gt;
|action/edit_select_all || Edit || Select All&lt;br /&gt;
|-&lt;br /&gt;
|action/edit_deselect || Edit || Deselect&lt;br /&gt;
|-&lt;br /&gt;
|action/edit_find || Edit || Find&lt;br /&gt;
|-&lt;br /&gt;
|action/edit_find_next || Edit || Find Next&lt;br /&gt;
|-&lt;br /&gt;
|action/edit_find_last || Edit || Find last&lt;br /&gt;
|-&lt;br /&gt;
|action/edit_replace || Edit || Replace&lt;br /&gt;
|-&lt;br /&gt;
|action/view_actual_size || View || 100% Zoom&lt;br /&gt;
|-&lt;br /&gt;
|action/view_fit_to_page || View || Fit To Page (zooming)&lt;br /&gt;
|-&lt;br /&gt;
|action/view_fit_to_width || View || Fit To Width (zooming)&lt;br /&gt;
|-&lt;br /&gt;
|action/view_fit_to_height || View || Fit To Height (zooming)&lt;br /&gt;
|-&lt;br /&gt;
|action/view_zoom_in || View || Zoom In&lt;br /&gt;
|-&lt;br /&gt;
|action/view_zoom_out || View || Zoom Out&lt;br /&gt;
|-&lt;br /&gt;
|action/view_zoom || View || Zoom&lt;br /&gt;
|-&lt;br /&gt;
|action/view_redisplay || View || Refresh&lt;br /&gt;
|-&lt;br /&gt;
|action/go_up || Go || Up&lt;br /&gt;
|-&lt;br /&gt;
|action/go_back || Go || Back&lt;br /&gt;
|-&lt;br /&gt;
|action/go_forward || Go || Forward&lt;br /&gt;
|-&lt;br /&gt;
|action/go_home || Go || Home&lt;br /&gt;
|-&lt;br /&gt;
|action/go_previous || Go || Previous&lt;br /&gt;
|-&lt;br /&gt;
|action/go_next || Go || Next&lt;br /&gt;
|-&lt;br /&gt;
|action/go_goto || Go || Go To...&lt;br /&gt;
|-&lt;br /&gt;
|action/go_goto_page || Go || Go To Page...&lt;br /&gt;
|-&lt;br /&gt;
|action/go_goto_line || Go || Go To Line...&lt;br /&gt;
|-&lt;br /&gt;
|action/go_first || Go || Go To Start&lt;br /&gt;
|-&lt;br /&gt;
|action/go_last || Go || Go To End&lt;br /&gt;
|-&lt;br /&gt;
|action/bookmarks || Bookmarks || Also disables action/bookmark_add and action/bookmark_edit&lt;br /&gt;
|-&lt;br /&gt;
|action/bookmark_add || Bookmarks || Add Bookmark&lt;br /&gt;
|-&lt;br /&gt;
|action/bookmark_edit || Bookmarks || Edit Bookmarks&lt;br /&gt;
|-&lt;br /&gt;
|action/tools_spelling || Tools || Check Spelling&lt;br /&gt;
|-&lt;br /&gt;
|action/options_show_menubar || Settings || Show/hide Menubar&lt;br /&gt;
|-&lt;br /&gt;
|action/options_show_toolbar || Settings || Show/hide Toolbar, will also disable the &amp;quot;Toolbars&amp;quot; submenu if present&lt;br /&gt;
|-&lt;br /&gt;
|action/options_show_statusbar || Settings || Show/hide statusbar&lt;br /&gt;
|-&lt;br /&gt;
|action/options_save_Settings || Settings || Save Settings&lt;br /&gt;
|-&lt;br /&gt;
|action/options_configure || Settings || Configure application&lt;br /&gt;
|-&lt;br /&gt;
|action/options_configure_keybinding || Settings || Configure Shortcuts&lt;br /&gt;
|-&lt;br /&gt;
|action/options_configure_toolbars || Settings || Configure Toolbars&lt;br /&gt;
|-&lt;br /&gt;
|action/options_configure_notifications || Settings || Configure Notifications&lt;br /&gt;
|-&lt;br /&gt;
|action/fullscreen || Settings || Enter full screen mode&lt;br /&gt;
|-&lt;br /&gt;
|action/help || Help || Not yet fully implemented&lt;br /&gt;
|-&lt;br /&gt;
|action/help_contents || Help || Application handbook&lt;br /&gt;
|-&lt;br /&gt;
|action/help_whats_this || Help || Go into &amp;quot;what's this&amp;quot; mode&lt;br /&gt;
|-&lt;br /&gt;
|action/help_report_bug || Help || Report a bug&lt;br /&gt;
|-&lt;br /&gt;
|action/help_about_app || Help || Show about application dialog&lt;br /&gt;
|-&lt;br /&gt;
|action/help_about_kde || Help || Show about KDE dialog&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== KCalc ===&lt;br /&gt;
&lt;br /&gt;
By marking the kcalcrc config file as immutable, the &amp;quot;Configure&amp;quot; button&lt;br /&gt;
will not be shown.&lt;br /&gt;
&lt;br /&gt;
=== File Manager ===&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
! Key !! Action&lt;br /&gt;
|-&lt;br /&gt;
|action/editfiletype || Edit associated applications&lt;br /&gt;
|-&lt;br /&gt;
|action/properties || File properties&lt;br /&gt;
|-&lt;br /&gt;
|action/openwith || Open file with action&lt;br /&gt;
|-&lt;br /&gt;
|action/openintab || Open link in a new tab&lt;br /&gt;
|-&lt;br /&gt;
|action/kdesktop_rmb || RMB menu, see note below&lt;br /&gt;
|-&lt;br /&gt;
|action/iconview_preview || Show preview thumbnails in icons, though it leaves the actual setting untouched. To disable previews (as opposed to simply disabling the user to change the setting) you also need to add the following lines to konqiconviewrc:&lt;br /&gt;
&amp;lt;code ini&amp;gt;&lt;br /&gt;
[Settings]&lt;br /&gt;
PreviewsEnabled[$i]=false&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|action/sharefile || Disables file sharing from the UI, but you may also want to disable filesharing altogether.&lt;br /&gt;
|-&lt;br /&gt;
|action/sendURL || Send Link Address&lt;br /&gt;
|-&lt;br /&gt;
|action/sendPage || Send File&lt;br /&gt;
|-&lt;br /&gt;
|action/devnew || Create New -&amp;gt; Device&lt;br /&gt;
|-&lt;br /&gt;
|action/incIconSize || Increase icon size&lt;br /&gt;
|-&lt;br /&gt;
|action/decIconSize || Decrease icon size&lt;br /&gt;
|-&lt;br /&gt;
|action/go || Entire go menu&lt;br /&gt;
|-&lt;br /&gt;
|action/configdesktop || Configure desktop in RMB menu, see also Control Module Restrictions&lt;br /&gt;
|-&lt;br /&gt;
|action/executeshellcommand || In Konqueror Tools menu, see also &amp;lt;tt&amp;gt;shell_access&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|action/show_dot || Disables the option to toggle showing hidden files, the actual setting remains unaffected.  To disable showing hidden files, add the following lines to konqiconviewrc:&lt;br /&gt;
&amp;lt;code ini&amp;gt;&lt;br /&gt;
[Settings]&lt;br /&gt;
ShowDotFiles[$i]=false&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Konsole ===&lt;br /&gt;
&lt;br /&gt;
These keys can appear in {{path|kdeglobals}}, {{path|konsolepartrc}} or {{path|konsolerc}}.&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
! Key !! Action&lt;br /&gt;
|-&lt;br /&gt;
|action/konsole_rmb || Context menus&lt;br /&gt;
|-&lt;br /&gt;
|action/settings || Disable the entire settings menu&lt;br /&gt;
|-&lt;br /&gt;
|action/show_menubar || Show/hide the menubar&lt;br /&gt;
|-&lt;br /&gt;
|action/show_toolbar || Show/hide the toolbar&lt;br /&gt;
|-&lt;br /&gt;
|action/scrollbar || Show/hide the scrollbar&lt;br /&gt;
|-&lt;br /&gt;
|action/bell || Configure bell actions&lt;br /&gt;
|-&lt;br /&gt;
|action/font || Configure font&lt;br /&gt;
|-&lt;br /&gt;
|action/keyboard || Set keyboard type&lt;br /&gt;
|-&lt;br /&gt;
|action/schema || Select the schema to use&lt;br /&gt;
|-&lt;br /&gt;
|action/size || Set the terminal size&lt;br /&gt;
|-&lt;br /&gt;
|action/history || Configure history&lt;br /&gt;
|-&lt;br /&gt;
|action/save_default || Save settings as defaults&lt;br /&gt;
|-&lt;br /&gt;
|action/save_sessions_profile || Save sessions profile&lt;br /&gt;
|-&lt;br /&gt;
|action/send_signal || Send a signal to the current terminal&lt;br /&gt;
|-&lt;br /&gt;
|action/bookmarks || Bookmarks menu&lt;br /&gt;
|-&lt;br /&gt;
|action/add_bookmark  || Add a bookmark&lt;br /&gt;
|-&lt;br /&gt;
|action/edit_bookmarks || Edit bookmarks&lt;br /&gt;
|-&lt;br /&gt;
|action/clear_terminal || Clear the current terminal&lt;br /&gt;
|-&lt;br /&gt;
|action/reset_clear_terminal || Clear and reset the current terminal&lt;br /&gt;
|-&lt;br /&gt;
|action/find_history || Find in history&lt;br /&gt;
|-&lt;br /&gt;
|action/find_next || Find next item in history&lt;br /&gt;
|-&lt;br /&gt;
|action/find_previous || Find previous item in history&lt;br /&gt;
|-&lt;br /&gt;
|action/save_history || Save history to disk&lt;br /&gt;
|-&lt;br /&gt;
|action/clear_history || Clear history of current terminal&lt;br /&gt;
|-&lt;br /&gt;
|action/clear_all_histories || Clear histories of all terminals&lt;br /&gt;
|-&lt;br /&gt;
|action/detach_session || Detach current tab&lt;br /&gt;
|-&lt;br /&gt;
|action/rename_session || Rename current session&lt;br /&gt;
|-&lt;br /&gt;
|action/zmodem_upload || ZModem uploading&lt;br /&gt;
|-&lt;br /&gt;
|action/monitor_activity || Monitor current terminal for activity&lt;br /&gt;
|-&lt;br /&gt;
|action/monitor_silence ||  Monitor current terminal for silence&lt;br /&gt;
|-&lt;br /&gt;
|action/send_input_to_all_sessions || Replicate input to all sessions&lt;br /&gt;
|-&lt;br /&gt;
|action/close_session || Close current terminal session&lt;br /&gt;
|-&lt;br /&gt;
|action/new_session || Create a new terminal session&lt;br /&gt;
|-&lt;br /&gt;
|action/activate_menu || Activate menubar&lt;br /&gt;
|-&lt;br /&gt;
|action/list_sessions || Session list menu&lt;br /&gt;
|-&lt;br /&gt;
|action/move_session_left || Shift tab to the left&lt;br /&gt;
|-&lt;br /&gt;
|action/move_session_right || Shift tab to the right&lt;br /&gt;
|-&lt;br /&gt;
|action/previous_session || Go to tab to the left&lt;br /&gt;
|-&lt;br /&gt;
|action/next_session || Go to tab to the right&lt;br /&gt;
|-&lt;br /&gt;
|action/switch_to_session_# || Go to tab numbered #, where # is a number between 1 and 12 inclusive.&lt;br /&gt;
|-&lt;br /&gt;
|action/bigger_font || Increase font size&lt;br /&gt;
|-&lt;br /&gt;
|action/smaller_font || Decrease font size&lt;br /&gt;
|-&lt;br /&gt;
|action/toggle_bidi || Turn bidirectional text support on or off&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== KWin ===&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
! Key !! Action&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
| action/kwin_rmb || Context menus on window titlebar and frame&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Panels ===&lt;br /&gt;
&lt;br /&gt;
{{improve|revisit this when plasma is providing the panels}}&lt;br /&gt;
&lt;br /&gt;
=== Using D-Bus To Find More Actions ===&lt;br /&gt;
&lt;br /&gt;
== Authorizing {{path|.desktop}} Files ==&lt;br /&gt;
&lt;br /&gt;
Application {{path|.desktop}} files can have an additional field &amp;lt;tt&amp;gt;X-KDE-AuthorizeAction&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
If this field is present the {{path|.desktop}} file is only considered valid if the action(s) mentioned in this field has been authorized. If multiple actions are listed they should be separated by commas (','). &lt;br /&gt;
&lt;br /&gt;
If the {{path|.desktop}} file of an application lists one or more actions this way and the user has no authorization for even one of these actions then the application will not appear in the KDE menu, will not allow execution via that {{path|.desktop}} file and will not be used by KDE for opening files of associated mimetypes.&lt;br /&gt;
&lt;br /&gt;
== File Dialog ==&lt;br /&gt;
&lt;br /&gt;
These keys disable actions that are found in the KDE file dialog. To use them, create a section in {{path|kdeglobals}} that looks like this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code ini&amp;gt;&lt;br /&gt;
[KDE Action Restrictions][$i]&lt;br /&gt;
action/&amp;lt;key&amp;gt;=false&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
! Key !! Action&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
| action/home || Go to home directory&lt;br /&gt;
|-&lt;br /&gt;
| action/up || Go to parent directory&lt;br /&gt;
|-&lt;br /&gt;
| action/back || Go to previous directory&lt;br /&gt;
|-&lt;br /&gt;
| action/forward || Go to next directory&lt;br /&gt;
|-&lt;br /&gt;
| action/reload	|| Reload directory&lt;br /&gt;
|-&lt;br /&gt;
| action/mkdir	|| Create new directory&lt;br /&gt;
|-&lt;br /&gt;
| action/toggleSpeedbar || Show/hide sidebar&lt;br /&gt;
|-&lt;br /&gt;
| action/sorting menu || Sorting options&lt;br /&gt;
|-&lt;br /&gt;
| action/short view || Select short view&lt;br /&gt;
|-&lt;br /&gt;
| action/detailed view || Select detailed view&lt;br /&gt;
|-&lt;br /&gt;
| action/show hidden || Show/hide hidden files&lt;br /&gt;
|-&lt;br /&gt;
| action/preview || Show/hide preview&lt;br /&gt;
|-&lt;br /&gt;
| action/separate dirs || Show/hide separate directories&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Printing ==&lt;br /&gt;
&lt;br /&gt;
There are several keys that restrict various aspects of the KDE print dialog and printing system. To use them, create a configuration section like this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code ini&amp;gt;&lt;br /&gt;
[KDE Resource Restrictions][$i]&lt;br /&gt;
print/&amp;lt;resource key&amp;gt;=false&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Note how each of the printing keys start with &amp;lt;tt&amp;gt;print/&amp;lt;tt&amp;gt; in the configuration file.&lt;br /&gt;
&lt;br /&gt;
;print/copies&lt;br /&gt;
:Disables the panel that allows users to make more than one copy.&lt;br /&gt;
&lt;br /&gt;
;print/dialog&lt;br /&gt;
:Disables the complete print dialog. Selecting the print option will immediately print the selected document using default settings. Make sure that a system wide default printer has been selected. No application specific settings are honored when this restriction is activated.&lt;br /&gt;
&lt;br /&gt;
;print/options&lt;br /&gt;
:Disables the button to select additional print options.&lt;br /&gt;
&lt;br /&gt;
;print/properties&lt;br /&gt;
:Disables the button to change printer properties or to add a new printer.&lt;br /&gt;
&lt;br /&gt;
;print/selection&lt;br /&gt;
:Disables the options that allows selecting a (pseudo) printer or change any of the printer properties. Make sure that a proper default printer has been selected before disabling this option. Disabling this option also disables &amp;lt;tt&amp;gt;print/system&amp;lt;/tt&amp;gt;, &amp;lt;tt&amp;gt;print/options&amp;lt;/tt&amp;gt; and &amp;lt;tt&amp;gt;print/properties&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
;print/system&lt;br /&gt;
:Disables the option to select the printing system backend, e.g. CUPS. It is recommended to disable this option once the correct printing system has been configured.&lt;br /&gt;
&lt;br /&gt;
== Resource Restrictions ==&lt;br /&gt;
&lt;br /&gt;
KDE applications can take advantage of many types of resources such as configuration data, caches, plugin registries, etc. These are loaded from both system-wide as well as from per-user locations on disk. It is possible to restrict use of the per-user resources directories, preventing users from adding to or altering existing shared resources.&lt;br /&gt;
&lt;br /&gt;
This is accomplished by creating a section like this in a configuration file:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code ini&amp;gt;&lt;br /&gt;
[KDE Resource Restrictions][$i]&lt;br /&gt;
&amp;lt;resource key&amp;gt;=false&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The following resources can be used as keys and controlled in this manner:&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
! Key !! Directory !! Provides&lt;br /&gt;
|-&lt;br /&gt;
|all || n/a || All resources listed in this table&lt;br /&gt;
|-&lt;br /&gt;
|autostart || {{path|share/autostart}} || Apps to start on login&lt;br /&gt;
|-&lt;br /&gt;
|data || {{path|share/apps}} || Application data&lt;br /&gt;
|-&lt;br /&gt;
|data_&amp;amp;lt;appname&amp;amp;gt; || {{path|share/apps}} || Application data for the application named &amp;amp;lt;appname&amp;amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|html || {{path|share/doc/HTML}} || HTML files&lt;br /&gt;
|-&lt;br /&gt;
|icon || {{path|share/icon}} || Icons&lt;br /&gt;
|-&lt;br /&gt;
|config || {{path|share/config}} || Application configurations&lt;br /&gt;
|-&lt;br /&gt;
|pixmap || {{path|share/pixmaps}} || Images&lt;br /&gt;
|-&lt;br /&gt;
|xdgdata-apps || {{path|share/applications}} || Application .desktop files&lt;br /&gt;
|-&lt;br /&gt;
|sound || {{path|share/sounds}} || Sound files&lt;br /&gt;
|-&lt;br /&gt;
|locale || {{path|share/locale}} || Localization data&lt;br /&gt;
|-&lt;br /&gt;
|services || {{path|share/services}} || Protocols, plugins, kparts, control panels, etc. registry&lt;br /&gt;
|-&lt;br /&gt;
|servicetypes || {{path|share/servicetypes}} || Plugin definitions, referenced in services registry entries&lt;br /&gt;
|-&lt;br /&gt;
|mime || {{path|share/mimelnk}} || Mimetype definitions&lt;br /&gt;
|-&lt;br /&gt;
|wallpaper || {{path|share/wallpapers}} || Desktop wallpaper images&lt;br /&gt;
|-&lt;br /&gt;
|templates || {{path|share/templates}} || Document templates&lt;br /&gt;
|-&lt;br /&gt;
|exe || {{path|bin}} || Executable files&lt;br /&gt;
|-&lt;br /&gt;
|lib || {{path|lib}} || Libraries&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Screensavers ==&lt;br /&gt;
In {{path|kdeglobals}} in the &amp;lt;tt&amp;gt;[KDE Action Restrictions]&amp;lt;/tt&amp;gt; group:&lt;br /&gt;
&lt;br /&gt;
;opengl_screensavers&lt;br /&gt;
:defines whether OpenGL screensavers are allowed to be used.&lt;br /&gt;
&lt;br /&gt;
;manipulatescreen_screensavers&lt;br /&gt;
:defines whether screensavers that manipulate an image of the screen (e.g. moving chunks of the screen around) are allowed to be used.&lt;br /&gt;
&lt;br /&gt;
=== Automatic Log-out ===&lt;br /&gt;
In {{path|kscreensaverrc}}:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code ini&amp;gt;&lt;br /&gt;
[ScreenSaver]&lt;br /&gt;
AutoLogout=true&lt;br /&gt;
AutoLogoutTimeout=600&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The timeout is the time in seconds that the user must be idle for before the logout process is automatically started. Be careful with this capability as it can lead to data loss if the user has unsaved files open.&lt;br /&gt;
&lt;br /&gt;
== Session Capability Restrictions ==&lt;br /&gt;
&lt;br /&gt;
These keys apply to various capabilities associated with a desktop session and are not application specific. To use them, create a section in {{path|kdeglobals}} that looks like this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code ini&amp;gt;&lt;br /&gt;
[KDE Action Restrictions][$i]&lt;br /&gt;
&amp;lt;key&amp;gt;=false&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;custom_config&lt;br /&gt;
:Whether the &amp;lt;tt&amp;gt;--config&amp;lt;/tt&amp;gt; command line option should be honored. The &amp;lt;tt&amp;gt;--config&amp;lt;/tt&amp;gt; command line option can be used to circumvent locked-down configuration files.&lt;br /&gt;
&lt;br /&gt;
;editable_desktop_icons&lt;br /&gt;
:define whether icons on the desktop can be moved, renamed, deleted or added. You might want to set the path for the desktop to some read-only directory as well instead of {{path|$HOME/Desktop}}.&lt;br /&gt;
&lt;br /&gt;
;lineedit_text_completion&lt;br /&gt;
:Defines whether input lines should have the potential to remember any previously entered data and make suggestions based on this when typing. When a single account is shared by multiple people you may wish to disable this out of privacy concerns.&lt;br /&gt;
&lt;br /&gt;
;lock_screen&lt;br /&gt;
:whether the user will be able to lock the screen.&lt;br /&gt;
&lt;br /&gt;
;logout&lt;br /&gt;
:whether the user will be able to logout from KDE.&lt;br /&gt;
&lt;br /&gt;
;movable_toolbars&lt;br /&gt;
:define whether toolbars may be moved around by the user. See also &amp;lt;tt&amp;gt;action/options_show_toolbar&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
;run_command&lt;br /&gt;
:whether the &amp;quot;Run Command&amp;quot; (Alt-F2) option is available.&lt;br /&gt;
&lt;br /&gt;
;run_desktop_files&lt;br /&gt;
:defines whether users may execute desktop files that are not part of the default desktop, KDE menu, registered services and autostarting services.&lt;br /&gt;
* The default desktop includes the files under {{path|$KDEDIR/share/kdesktop/Desktop}} but '''not''' the files under {{path|$HOME/Desktop}}.&lt;br /&gt;
* The KDE menu includes all files under {{path|$KDEDIR/share/applnk}} and {{path|$XDGDIR/applications}}&lt;br /&gt;
* Registered services includes all files under {{path|$KDEDIR/share/services}}&lt;br /&gt;
* Autostarting services include all files under {{path|$KDEDIR/share/autostart}} but '''not''' the files under {{path|$KDEHOME/Autostart}}&lt;br /&gt;
&lt;br /&gt;
;shell_access&lt;br /&gt;
:Whether a shell suitable for entering random commands may be started. This also determines whether the &amp;quot;Run Command&amp;quot; option (Alt-F2) can be used to run shell-commands and arbitrary executables. Likewise, executables placed in the user's Autostart folder will no longer be executed. Applications can still be autostarted by placing &amp;lt;tt&amp;gt;.desktop&amp;lt;/tt&amp;gt; files in the {{path|$KDEHOME/Autostart}} or {{path|$KDEDIR/share/autostart}} directory. See also &amp;lt;tt&amp;gt;run_desktop_files&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
:You probably also want to activate the following resource restictions:&lt;br /&gt;
*&amp;quot;appdata_kdesktop&amp;quot; - To restrict the default desktop.&lt;br /&gt;
*&amp;quot;apps&amp;quot; - To restrict the KDE menu.&lt;br /&gt;
*&amp;quot;xdgdata-apps&amp;quot; - To restrict the KDE menu.&lt;br /&gt;
*&amp;quot;services&amp;quot; - To restrict registered services.&lt;br /&gt;
*&amp;quot;autostart&amp;quot; - To restrict autostarting services.&lt;br /&gt;
:Otherwise users can still execute .desktop files by placing them in e.g. {{path|$KDEHOME/share/kdesktop/Desktop}}&lt;br /&gt;
&lt;br /&gt;
;skip_drm&lt;br /&gt;
:defines if the user may omit DRM checking.&lt;br /&gt;
&lt;br /&gt;
;start_new_session&lt;br /&gt;
:defines whether the user may start a second X session. See also the documentation on [http://docs.kde.org/en/HEAD/kdebase/kdm/ kdm configuration].&lt;br /&gt;
&lt;br /&gt;
;switch_user&lt;br /&gt;
:defines whether user switching via kdm is allowed.  See also the documentation on [http://docs.kde.org/en/HEAD/kdebase/kdm/ kdm configuration].&lt;/div&gt;</summary>
		<author><name>Logixoul</name></author>	</entry>

	<entry>
		<id>http://techbase.kde.org/SysAdmin/Kiosk/Keys</id>
		<title>SysAdmin/Kiosk/Keys</title>
		<link rel="alternate" type="text/html" href="http://techbase.kde.org/SysAdmin/Kiosk/Keys"/>
				<updated>2007-09-09T18:11:03Z</updated>
		
		<summary type="html">&lt;p&gt;Logixoul: SysAdmin/Kiosk/Keys moved to KDE System Administration/Kiosk/Keys&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#REDIRECT [[KDE System Administration/Kiosk/Keys]]&lt;/div&gt;</summary>
		<author><name>Logixoul</name></author>	</entry>

	<entry>
		<id>http://techbase.kde.org/KDE_System_Administration/Kiosk/Introduction</id>
		<title>KDE System Administration/Kiosk/Introduction</title>
		<link rel="alternate" type="text/html" href="http://techbase.kde.org/KDE_System_Administration/Kiosk/Introduction"/>
				<updated>2007-09-09T18:10:32Z</updated>
		
		<summary type="html">&lt;p&gt;Logixoul: SysAdmin/Kiosk/Introduction moved to KDE System Administration/Kiosk/Introduction&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction ==&lt;br /&gt;
&lt;br /&gt;
The KDE Kiosk is a framework that has been built into KDE since version 3. It allows administrators to create a controlled environment for their users by customizing and locking almost any aspect of the desktop which includes the benign such as setting and fixing the background wallpaper, the functional such as disabling user log outs and access to the print system and the more security conscientious such as disabling access to a command shell.&lt;br /&gt;
&lt;br /&gt;
This kind of framework is vital to maintain and increase KDE's propagation into areas such as business and enterprise environments and school and university laboratories. Other obvious areas of interest where a restricted desktop environment is required or desired would be the likes of Internet caf&amp;amp;eacute;s, public access terminals and kiosks.&lt;br /&gt;
&lt;br /&gt;
KDE's Kiosk framework is controlled by entries in various configuration files or through a GUI application, the Kiosk Admin Tool. In this article I will discuss the layout of KDE's configuration files and how to edit them to enable Kiosk's features. I will also discuss the various aspects of the desktop environment that can be customized and/or locked using the Kiosk framework. Once the reader understands how the Kiosk framework actually works through KDE's configuration files, we will discuss the Kiosk Admin Tool for those that prefer a GUI interface. This tool also allows administrators to more easily set-up Kiosk profiles and assign them system wide, per-user or per-group.&lt;br /&gt;
&lt;br /&gt;
== KDE's Configuration File Structure and Hierarchy ==&lt;br /&gt;
&lt;br /&gt;
All KDE applications use the same API to create, access and alter their configuration files. As such, all configuration files are stored in predetermined directories and they share the same syntax and structure. They are organised into groupings of key-value pairs. For example, let us examine some of the settings for the KDE desktop background stored in {{path|~/.kde/share/config/kdesktoprc}}:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code ini&amp;gt;&lt;br /&gt;
[Desktop0]&lt;br /&gt;
Wallpaper=/usr/kde/share/wallpapers/KDE34.jpg&lt;br /&gt;
WallpaperMode=Scaled&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;tt&amp;gt;Desktop0&amp;lt;/tt&amp;gt; group as shown contains two key-value pairs to indicate the image to be used as the wallpaper and how it should be displayed. The beginning of a group is indicated by placing its name in square brackets and that group ends when the next one begins or when the end of the configuration file is reached. Both the key and its value may contain spaces but all whitespace immediately before and after the equals sign and at the end of the line are ignored.&lt;br /&gt;
&lt;br /&gt;
KDE configuration files can be stored in a number of possible directories and configuration files with the same name may exist in the different directories. There is a predetermined order in which these locations are checked for configuration files and KDE combines configuration files of the same name on a key-by-key basis; this is known as &amp;quot;cascading configuration&amp;quot;. If the same key is defined in more than one of the configuration files then the key value read from the directory tree with the highest precedence will be used.&lt;br /&gt;
&lt;br /&gt;
Two [[SysAdmin/Environment_Variables|environment variables]] are used to indicate which directories should be searched for configuration files: &amp;lt;tt&amp;gt;$KDEDIRS&amp;lt;/tt&amp;gt; and &amp;lt;tt&amp;gt;$KDEHOME&amp;lt;/tt&amp;gt;. &amp;lt;tt&amp;gt;$KDEDIRS&amp;lt;/tt&amp;gt; is a list of &amp;amp;quot;system level&amp;amp;quot; directory trees for KDE system files including icons, wallpapers, fonts and configuration files. &amp;lt;tt&amp;gt;$KDEHOME&amp;lt;/tt&amp;gt; determines the current users local KDE directory tree. Paths specified in &amp;lt;tt&amp;gt;$KDEDIRS&amp;lt;/tt&amp;gt; should be separated with a colon (:) and the order of precedence for searching is from right to left. &amp;lt;tt&amp;gt;$KDEHOME&amp;lt;/tt&amp;gt; has the highest precedence and is therefore searched last. If &amp;lt;tt&amp;gt;$KDEHOME&amp;lt;/tt&amp;gt; is not set then {{path|$HOME/.kde}} is used. If &amp;lt;tt&amp;gt;$KDEDIRS&amp;lt;/tt&amp;gt; is also not set then KDE3 reverts to KDE2 behaviour and uses the single path specified in &amp;lt;tt&amp;gt;$KDEDIR&amp;lt;/tt&amp;gt;. The location of the configuration files in the KDE directory trees is &amp;lt;tt&amp;gt;/share/config&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
The cascading nature of KDE's configuration files allows system administrators to set system wide defaults while ensuring that the user's custom configuration settings will always override these system defaults. It is also the basis of the Kiosk framework as configuration entries may be marked as &amp;amp;quot;immutable&amp;amp;quot; - entries in a user's configuration file in &amp;lt;tt&amp;gt;$KDEHOME&amp;lt;/tt&amp;gt; that have been marked as immutable in a system level directory will not be read and will therefore have no effect.&lt;br /&gt;
&lt;br /&gt;
Let us continue with the desktop background example and, as the system administrators of an Internet caf&amp;amp;eacute;, we want to ensure that our logo or our sponsor's logo is always the desktop background and that it cannot be changed by our customers. In one of the system level directory trees (&amp;lt;tt&amp;gt;$KDEDIRS&amp;lt;/tt&amp;gt;), we would edit the file {{path|/share/config/kdesktoprc}} so that it contained:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code ini&amp;gt;&lt;br /&gt;
[Background Common]&lt;br /&gt;
CommonDesktop[$i]=true&lt;br /&gt;
&lt;br /&gt;
[Desktop0]&lt;br /&gt;
Wallpaper[$i]=/usr/kde/share/wallpapers/our_logo.jpg&lt;br /&gt;
WallpaperMode[$i]=Scaled&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Appending '&amp;lt;tt&amp;gt;[$i]&amp;lt;/tt&amp;gt;' to the configuration key marks it as immutable. As configuration files from &amp;lt;tt&amp;gt;$KDEDIRS&amp;lt;/tt&amp;gt; are read before &amp;lt;tt&amp;gt;$KDEHOME&amp;lt;/tt&amp;gt;, the background is now &amp;amp;quot;locked down&amp;amp;quot; and and any custom settings made by a user in {{path|$KDEHOME/share/config/kdesktoprc}}, either directly or though a configuration dialog, will not be read by the configuration system.&lt;br /&gt;
&lt;br /&gt;
Configuration options can also be marked immutable by group and by file. To mark a group as immutable, we append '&amp;lt;tt&amp;gt;[$i]&amp;lt;/tt&amp;gt;' to the group name:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code ini&amp;gt;&lt;br /&gt;
[Desktop0][$i]&lt;br /&gt;
Wallpaper=/usr/kde/share/wallpapers/KDE34.jpg&lt;br /&gt;
WallpaperMode=Scaled&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Similarly, we can mark an entire configuration file as immutable by placing '&amp;lt;tt&amp;gt;[$i]&amp;lt;/tt&amp;gt;' on a line of its own at the beginning of the file; KDE will now ignore a configuration file of the same name in the user's KDE configuration directory.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Setting default configuration options for KDE applications is just as easy as fixing the desktop background. We could lock Konqueror's homepage setting to our Internet caf&amp;amp;eacute;'s homepage by setting the following in a file called &amp;lt;tt&amp;gt;konquerorrc&amp;lt;/tt&amp;gt; in one of the system directory trees:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code ini&amp;gt;&lt;br /&gt;
[FMSettings]&lt;br /&gt;
HomeURL[$i]=http://www.myinternetcafe.com/&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Any setting that can be changed or customized in an application is one that can be locked down using the Kiosk framework. Examine the contents of the various configuration files that can be found under {{path|$KDEHOME/share/config/}} to get a feeling for KDE application configuration settings.&lt;br /&gt;
&lt;br /&gt;
You should also bear in mind that most applications will need to be restarted for configuration settings to take effect. For changes to configuration files such as &amp;lt;tt&amp;gt;kdesktoprc&amp;lt;/tt&amp;gt; and &amp;lt;tt&amp;gt;kdeglobals&amp;lt;/tt&amp;gt; (introduced in the next section) you will need to log out and back into KDE for changes to be applied.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The information presented in this section will allow you to set system defaults and lock them if necessary for any KDE application. However, this is only the proverbial tip of the iceberg of the KDE Kiosk system and in the following sections we will cover many more of its capabilities.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== KDE Action Restrictions ==&lt;br /&gt;
&lt;br /&gt;
One of KDE's strongest features is the fact that it is &amp;amp;quot;an integrated desktop environment&amp;amp;quot;. This means that all of its applications share the same 'look-and-feel' so that once you have learned how to use one KDE application, learning the next is even easier. This common functionality - standardised menus and toolbars, integrated help system, etc â is built around the concept of &amp;amp;quot;actions&amp;amp;quot;.&lt;br /&gt;
&lt;br /&gt;
For example, one can open a file by selecting the 'File-&amp;amp;gt;Open...' menu option, by clicking on the 'File Open' toolbar icon or by pressing 'CTRL+O'. Whichever way you choose, each option simply activates the &amp;lt;tt&amp;gt;file_open&amp;lt;/tt&amp;gt; action.&lt;br /&gt;
&lt;br /&gt;
All KDE actions can be restricted through the Kiosk system by placing appropriate entries in the {{path|/share/config/kdeglobals}} file in a system level directory. We could disable the file open action by adding the following entry:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code ini&amp;gt;&lt;br /&gt;
[KDE Action Restrictions][$i]&lt;br /&gt;
action/file_open=false&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This change can be visibly seen in Kate's 'File' menu and toolbar which are shown in Figs. 2 and 3.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;table border=&amp;quot;0&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
   &amp;lt;td align=&amp;quot;center&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;img src=&amp;quot;kiosk-lp/unrestricted.jpg&amp;quot; width=&amp;quot;250&amp;quot; border=&amp;quot;0&amp;quot; height=&amp;quot;286&amp;quot; alt=&amp;quot;Image of an unrestricted menu and toolbar&amp;quot; /&amp;gt;&lt;br /&gt;
   &amp;lt;/td&amp;gt;&lt;br /&gt;
   &amp;lt;td&amp;gt;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;lt;/td&amp;gt;&lt;br /&gt;
   &amp;lt;td align=&amp;quot;center&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;img src=&amp;quot;kiosk-lp/restricted.jpg&amp;quot; width=&amp;quot;250&amp;quot; border=&amp;quot;0&amp;quot; height=&amp;quot;287&amp;quot; alt=&amp;quot;Image of a restricted menu and toolbar&amp;quot; /&amp;gt;&lt;br /&gt;
   &amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
   &amp;lt;td align=&amp;quot;center&amp;quot;&amp;gt;&lt;br /&gt;
      Figure 2. &amp;lt;code&amp;gt;file_open&amp;lt;/code&amp;gt; unrestricted.&lt;br /&gt;
   &amp;lt;/td&amp;gt;&lt;br /&gt;
   &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
   &amp;lt;td align=&amp;quot;center&amp;quot;&amp;gt;&lt;br /&gt;
      Figure 3. &amp;lt;code&amp;gt;file_open&amp;lt;/code&amp;gt; restricted.&lt;br /&gt;
   &amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&lt;br /&gt;
There are currently over 120 actions that can be restricted in KDE 3.4 and these include all standard file options, editing options, Internet and file browsing actions, the use of bookmarks and access to the help system. A full list can be found in the [http://websvn.kde.org/trunk/KDE/kdelibs/kdecore/doc/README.kiosk?view=markup kdecore/doc/README.kiosk] file of the kdelibs package source code for your current KDE version (available from [http://developer.kde.org/source/ http://developer.kde.org/source/]).&lt;br /&gt;
&lt;br /&gt;
Some KDE applications, such as system configuration front ends like KUser, need to be run as the root user. These applications would be unnecessary in an Internet caf&amp;amp;eacute; and they can be disabled with:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code ini&amp;gt;&lt;br /&gt;
[KDE Action Restrictions][$i]&lt;br /&gt;
user/root=false&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The ability to print documents can be blocked via the action &amp;lt;tt&amp;gt;file_print&amp;lt;/tt&amp;gt; and access to the printing system/backend can be blocked by setting the &amp;lt;tt&amp;gt;print/system&amp;lt;/tt&amp;gt; to &amp;lt;tt&amp;gt;false&amp;lt;/tt&amp;gt;. One can also disable access to the printing properties dialogue, the ability to print more than one copy, etc. These are all referenced in the [http://websvn.kde.org/trunk/KDE/kdelibs/kdecore/doc/README.kiosk?view=markup kdecore/doc/README.kiosk] file.&lt;br /&gt;
&lt;br /&gt;
A few other actions that are worthy of individual mention in the context of Internet caf&amp;amp;eacute;s and similar environments are:&lt;br /&gt;
&lt;br /&gt;
;&amp;lt;tt&amp;gt;shell_access&amp;lt;/tt&amp;gt;&lt;br /&gt;
:Defines whether the user can start a shell for entering commands, whether the &amp;amp;quot;Run Command&amp;amp;quot; option (Alt-F2) can be used to run shell-commands and arbitrary executables and whether executables placed in the user's Autostart folder will be executed.&lt;br /&gt;
&lt;br /&gt;
;&amp;lt;tt&amp;gt;logout&amp;lt;/tt&amp;gt;&lt;br /&gt;
:Defines whether a user will be able to end the KDE session.&lt;br /&gt;
&lt;br /&gt;
;&amp;lt;tt&amp;gt;lock_screen&amp;lt;/tt&amp;gt;&lt;br /&gt;
:Defines whether a user will be able to lock the screen.&lt;br /&gt;
&lt;br /&gt;
;&amp;lt;tt&amp;gt;run_command&amp;lt;/tt&amp;gt;&lt;br /&gt;
:Controls access to the &amp;amp;quot;Run Command&amp;amp;quot; option.&lt;br /&gt;
&lt;br /&gt;
;&amp;lt;tt&amp;gt;movable_toolbars&amp;lt;/tt&amp;gt;&lt;br /&gt;
:Whether or not toolbars may be moved around by the user.&lt;br /&gt;
&lt;br /&gt;
Users of public access terminals and Internet caf&amp;amp;eacute;s will undoubtedly want to keep their browsing history to themselves. You should carefully consider settings such as the history sidebar, how cookies are handled and whether or not to use a cache. Once you have made your choices, set these options in &amp;lt;tt&amp;gt;konquerorrc&amp;lt;/tt&amp;gt; and mark them as immutable. Also, if you are a regular user of Konqueror then you know that it has a very useful feature in that it remembers the URLs you enter in the &amp;amp;quot;Location&amp;amp;quot; bar. In a public environment, set the action &amp;lt;tt&amp;gt;lineedit_text_completion&amp;lt;/tt&amp;gt; to false so that text boxes do not remember previously entered information.&lt;br /&gt;
&lt;br /&gt;
One may also wish to set the action &amp;lt;tt&amp;gt;editable_desktop_icons&amp;lt;/tt&amp;gt; to false as it defines whether icons on the desktop can be moved, renamed, deleted or added by users. Be sure to either move the desktop directory and/or to make it read-only (usually {{path|$HOME/Desktop}}).&lt;br /&gt;
&lt;br /&gt;
== KDE URL Restrictions ==&lt;br /&gt;
&lt;br /&gt;
The KDE Kiosk system allows system administrators to control access to specific URLs based on the referrer, the protocol, the host and the path through entries in the {{path|kdeglobals}} file. Although some of these tasks may be more appropriate for a proxy server or a firewall, this functionality becomes incredibly useful when you consider the fact that KDE treats all locations as URLs. For blocking access to websites, one might use the following example:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code ini&amp;gt;&lt;br /&gt;
[KDE URL Restrictions][$i]&lt;br /&gt;
rule_count=2&lt;br /&gt;
rule_1=open,,,,http,*.hotmail.msn.com,,false&lt;br /&gt;
rule_2=open,,,,http!,webmail.college.com,,false&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The first rule blocks all http and https access to any URL that contains &amp;lt;tt&amp;gt;.hotmail.msn.com&amp;lt;/tt&amp;gt; in the host part. Specifying one protocol will also match similar protocols that start with the same name; so specifying http will also include https. Rule 2 above blocks only http and thus forces the user to use https (assuming it is supported). The above rules could be used as a basis, for example, to block all access to third part web-based e-mail clients and force users to use a company or college provided virus-scanned e-mail account over https. If, for example, an Internet caf&amp;amp;eacute; took sponsorship from a search engine then its system administrators could use similar rules to block access to that search engine's competitors.&lt;br /&gt;
&lt;br /&gt;
The format for URL restrictions is:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code ini&amp;gt;&lt;br /&gt;
rule_N=&amp;lt;action&amp;gt;,&amp;lt;referrer protocol&amp;gt;,&amp;lt;referrer host&amp;gt;,&amp;lt;referrer path&amp;gt;,&lt;br /&gt;
    &amp;lt;protocol&amp;gt;,&amp;lt;host&amp;gt;,&amp;lt;path&amp;gt;,&amp;lt;enabled&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Any option that is left blank will match all by default. As we saw in the example above, wild cards may be used for host names. Specifying a path will match all URLs that begin with that path unless an exclamation mark is placed at the end of the path.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
As I mentioned, KDE treats all locations as URLs: for example Internet addresses are URLs with the http or https protocol whereas local files on the hard drive are URLs using the file protocol (for a full list of supported protocols, execute the command '&amp;lt;tt&amp;gt;kcmshell ioslaveinfo&amp;lt;/tt&amp;gt;'). Access to the local filesystem can be restricted using rules such as the following:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code ini&amp;gt;&lt;br /&gt;
[KDE URL Restrictions][$i]&lt;br /&gt;
rule_count=6&lt;br /&gt;
rule_1=open,,,,file,,,false&lt;br /&gt;
rule_2=list,,,,file,,,false&lt;br /&gt;
rule_3=open,,,,file,,$HOME,true&lt;br /&gt;
rule_4=list,,,,file,,$HOME,true&lt;br /&gt;
rule_5=open,,,,file,,$TMP,true&lt;br /&gt;
rule_6=list,,,,file,,$TMP,true&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
These rules will only allow the user to browse and access files stored in their home directory. We also allow access to the temporary directory used by KDE to ensure normal operation. If you are implementing a security policy then these rules should be used in conjunction with other rules such as restricted shell access.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== KDE Control Module Restrictions ==&lt;br /&gt;
&lt;br /&gt;
Almost all aspects of the K Desktop Environment can be configured and customized through the &amp;amp;quot;Control Centre&amp;amp;quot;. Each &amp;amp;quot;group&amp;amp;quot; of settings, such as &amp;amp;quot;Background&amp;amp;quot;, &amp;amp;quot;Colours&amp;amp;quot;, &amp;amp;quot;Fonts&amp;amp;quot;, etc as shown in Fig. 4, correspond to a control centre module and each of these modules can be locked down through the Kiosk framework.&lt;br /&gt;
&lt;br /&gt;
As an example, a better way of preventing users from customizing their desktop backgrounds than that shown in section 1 would be to lock down that control module:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code ini&amp;gt;&lt;br /&gt;
[KDE Control Module Restrictions][$i]&lt;br /&gt;
kde-background.desktop=false&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In fact, the users will not even see an option to configure the background in either the Control Centre or by right-clicking on the desktop. Run the command '&amp;lt;tt&amp;gt;kcmshell --list&amp;lt;/tt&amp;gt;' for a list of available modules and use the format kde-&amp;amp;lt;module-name&amp;amp;gt;.desktop in the configuration file. In most public access/caf&amp;amp;eacute; environments, one will probably want to lock down almost all control centre modules.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;img src=&amp;quot;kiosk-lp/control_centre.jpg&amp;quot; width=&amp;quot;211&amp;quot; border=&amp;quot;0&amp;quot; height=&amp;quot;456&amp;quot; alt=&amp;quot;Image of Control Centre Modules&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Figure 4. The Control Centre application interface.&lt;br /&gt;
&lt;br /&gt;
== KDE Resource Restrictions ==&lt;br /&gt;
&lt;br /&gt;
There are many other resources located under the {{path|/share}} directory that are used by KDE applications such as icons, sounds, wallpapers, etc. Users can override these resources by placing files in the same location under &amp;lt;tt&amp;gt;$KDEHOME&amp;lt;/tt&amp;gt;. The KDE Kiosk system can prevent users from overriding the default resources and the necessary configuration options can be found in the [http://websvn.kde.org/trunk/KDE/kdelibs/kdecore/README.kiosk?view=markup README.kiosk] file that was mentioned in section 2.&lt;br /&gt;
&lt;br /&gt;
== The KDE Kiosk Tool ==&lt;br /&gt;
&lt;br /&gt;
The KDE Kiosk Admin tool, see Fig. 5, is a graphical front end to the KDE Kiosk framework and was originally written by Waldo Bastian, a core KDE developer, for Novell's Linux Desktop. As well as provided an interface to the Kiosk framework, it  also allows KDE administrators to create default profiles for different groups of users (that is &amp;amp;quot;groups&amp;amp;quot; in the Unix file system sense) far easier than could be accomplished through the configuration files.&lt;br /&gt;
&lt;br /&gt;
   [kiosk-lp/kiosktool.jpg&amp;quot; title=&amp;quot;Click for a larger image&lt;br /&gt;
      &amp;lt;img src=&amp;quot;kiosk-lp/kiosktool-small.jpg&amp;quot; border=&amp;quot;0&amp;quot; width=&amp;quot;388&amp;quot; height=&amp;quot;256&amp;quot; alt=&amp;quot;The Kiosk Tool&amp;quot; /&amp;gt;&lt;br /&gt;
   ]&lt;br /&gt;
&lt;br /&gt;
Figure 5. The KDE Kiosk Admin Tool.&lt;br /&gt;
&lt;br /&gt;
The Kiosk Admin tool is not part of the official KDE distribution as it is under active development and keeping it free from KDE's release schedules allow its developers to incorporate feedback faster. It is, however, included with many Linux distributions. More information and downloads can be found on [http://extragear.kde.org/apps/kiosktool/ http://extragear.kde.org/apps/kiosktool/].&lt;br /&gt;
&lt;br /&gt;
As I mentioned, one of Kiosk Tool's strongest assets is the ease at which one can create multiple Kiosk profiles and assign them per Unix group. For example, in an Internet caf&amp;amp;eacute; one might create two groups: customers and admins. It would then be logical to have an increased set of restrictions (such as file system access, shell access, etc) assigned to the customers' account(s) while leaving the administrators' accounts with little or no restrictions.&lt;br /&gt;
&lt;br /&gt;
The Kiosk Admin tool also allows system administrators to maintain all profiles on their local machine and then upload them to another server when profiles are added, deleted or modified.&lt;br /&gt;
&lt;br /&gt;
== Closing Remarks ==&lt;br /&gt;
&lt;br /&gt;
KDE's Kiosk framework is an essential tool for any system administrator who is maintaining or deploying the K Desktop Environment in a multi-desktop/multi-user scenario and/or in an environment where users cannot be trusted. By preventing users from changing default settings and locking down settings that may pose a security risk, a system administrator can significantly reduce the amount of time that will be spent &amp;amp;quot;maintaining and repairing&amp;amp;quot; each desktop as well as ensuring that each user has a common and familiar desktop environment every time they sit down to the computer.&lt;br /&gt;
&lt;br /&gt;
{{CC-BY-SA}} © 2005 Barry O'Donovan&lt;/div&gt;</summary>
		<author><name>Logixoul</name></author>	</entry>

	<entry>
		<id>http://techbase.kde.org/SysAdmin/Kiosk/Introduction</id>
		<title>SysAdmin/Kiosk/Introduction</title>
		<link rel="alternate" type="text/html" href="http://techbase.kde.org/SysAdmin/Kiosk/Introduction"/>
				<updated>2007-09-09T18:10:32Z</updated>
		
		<summary type="html">&lt;p&gt;Logixoul: SysAdmin/Kiosk/Introduction moved to KDE System Administration/Kiosk/Introduction&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#REDIRECT [[KDE System Administration/Kiosk/Introduction]]&lt;/div&gt;</summary>
		<author><name>Logixoul</name></author>	</entry>

	<entry>
		<id>http://techbase.kde.org/KDE_System_Administration/Startup</id>
		<title>KDE System Administration/Startup</title>
		<link rel="alternate" type="text/html" href="http://techbase.kde.org/KDE_System_Administration/Startup"/>
				<updated>2007-09-09T18:10:00Z</updated>
		
		<summary type="html">&lt;p&gt;Logixoul: SysAdmin/Startup moved to KDE System Administration/Startup&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Startkde&amp;amp;nbsp;Script ==&lt;br /&gt;
&lt;br /&gt;
The KDE startup sequence starts with the '''startkde''' script. In most cases this&lt;br /&gt;
script gets called from the display manager (KDM) once the user has been authenticated.&lt;br /&gt;
There are two very important lines in the startkde script:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
   LD_BIND_NOW=true kdeinit +kcminit +knotify&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
and&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
   kwrapper ksmserver $KDEWM&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
The first line starts the kdeinit master process. This process is used to start all other&lt;br /&gt;
KDE processes. The arguments behind kdeinit are the names of additional services to be started.&lt;br /&gt;
The '''+''' indicates that kdeinit needs to wait till the service has finished.&lt;br /&gt;
&lt;br /&gt;
The second line asks kdeinit to start the ksmserver session manager process.&lt;br /&gt;
The session manager determines the lifetime of the session. When this process exits, the user is logged out.&lt;br /&gt;
&lt;br /&gt;
== Background Services ==&lt;br /&gt;
All KDE background services are user specific, unlike system daemons they are not shared between users.&lt;br /&gt;
Apart from being unique per user they are unique per X-server display as well.&lt;br /&gt;
&lt;br /&gt;
=== kdeinit: Kicking Everything Off ===&lt;br /&gt;
kdeinit is used to start all other KDE programs. kdeinit can start normal binary program files as well&lt;br /&gt;
as kdeinit loadable modules (KLMs). KLMs work just like binary program files but can be started&lt;br /&gt;
more efficiently. The drawback is that programs started this way appear as ''kdeinit'' in the output&lt;br /&gt;
of &amp;lt;tt&amp;gt;top&amp;lt;/tt&amp;gt; and &amp;lt;tt&amp;gt;ps&amp;lt;/tt&amp;gt;. Use &amp;lt;tt&amp;gt;top -c&amp;lt;/tt&amp;gt; or &amp;lt;tt&amp;gt;ps aux&amp;lt;/tt&amp;gt; to see the actual program name.&lt;br /&gt;
For example:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
&amp;gt; ps aux&lt;br /&gt;
waba     23184  0.2  2.1 23428 11124 ?       S    21:41   0:00 kdeinit: Running...&lt;br /&gt;
waba     23187  0.1  2.1 23200 11124 ?       S    21:41   0:00 kdeinit: dcopserver --nosid&lt;br /&gt;
waba     23189  0.2  2.4 25136 12496 ?       S    21:41   0:00 kdeinit: klauncher&lt;br /&gt;
waba     23192  0.7  2.8 25596 14772 ?       S    21:41   0:00 kdeinit: kded&lt;br /&gt;
waba     23203  0.8  3.4 31516 17892 ?       S    21:41   0:00 kdeinit: knotify&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;tt&amp;gt;kdeinit: Running...&amp;lt;/tt&amp;gt; indicates the master kdeinit process. The other processes listed&lt;br /&gt;
are programs started as KLMs.&lt;br /&gt;
&lt;br /&gt;
When kdeinit starts for the first time it will launch klauncher and kded, as well as any additional&lt;br /&gt;
programs specified on its command line in the startkde script. Normally that is kcminit and knotify.&lt;br /&gt;
&lt;br /&gt;
=== dbus-daemon: Inter-process Communication ===&lt;br /&gt;
dbus-daemon is a background process (daemon) which provides inter-process communication (IPC) facilities to all KDE&lt;br /&gt;
applications as well as several other system components, such as HAL, network manager, power manager and various non-KDE desktop applications. It is a cross-desktop, portable IPC project which is hosted at freedesktop.org.&lt;br /&gt;
&lt;br /&gt;
D-Bus facilities are accessible from the command shell via the qdcop command line tool and can be explored using the graphical dcop-viewer application. D-Bus is essential for all KDE applications and should autostart when requested.&lt;br /&gt;
&lt;br /&gt;
=== klauncher: Service Activation ===&lt;br /&gt;
klauncher is a deamon which is responsible for service activation within KDE. It operates in close connection with the kdeinit master process to start new processes. KDE applications communicate with klauncher over the D-Bus in order to start new applications or services.&lt;br /&gt;
&lt;br /&gt;
=== kded: Background Services ===&lt;br /&gt;
kded is a generic KDE daemon. It has the ability to load various service modules and run these in the background. Each kded service module is described by a .desktop file installed under {{path|$KDEDIR/share/services/kded/}} The '''Service Manager''' in the Control Center can be used to&lt;br /&gt;
monitor the status of the service modules and to disable certain services.&lt;br /&gt;
&lt;br /&gt;
=== kcminit: Initialization Services ===&lt;br /&gt;
kcminit executes initialization services during startup. Initialization services are specified in the .desktop files of applications or services via the X-KDE-Init line. Initialization services are typically used for initializing hardware based on user specified settings. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;kcminit --list&amp;lt;/tt&amp;gt; can be used to show all initialization services and &amp;lt;tt&amp;gt;kcminit &amp;amp;lt;service&amp;amp;gt;&amp;lt;/tt&amp;gt; can be used to execute a single service explicitly. This can be useful when investigating start-up problems.&lt;br /&gt;
&lt;br /&gt;
=== knotify: Notification Services ===&lt;br /&gt;
The primary task of &amp;lt;tt&amp;gt;knotify&amp;lt;/tt&amp;gt; is to relay notifications to appropriate sub-systems. For instance, sound alerts are sent to the sound system, visual alerts are showed on-screen using passive popups or dialogs, logged messages are written out to disk, etc. The actions are user configurable and support user interaction.&lt;br /&gt;
&lt;br /&gt;
=== ksmserver: Session Management and Autostart ===&lt;br /&gt;
&lt;br /&gt;
{{improve|When the fd.o autostart spec is finalized and implemented in KDE4, update this section}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;ksmserver&amp;lt;/tt&amp;gt; is KDE's session manager. On startup the session manager starts auto-start applications and it restores applications from the previous session.&lt;br /&gt;
&lt;br /&gt;
The applications to auto-start are indicated by .desktop files in the {{path|$KDEDIR/share/autostart}} directory. Auto-start of an application can be made conditional upon the '''X-KDE-autostart-condition''' entry in the .desktop file. The {{path|ktip.desktop}} file for example contains:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
X-KDE-autostart-condition=ktiprc:TipOfDay:RunOnStart:true&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This means that the '''ktiprc''' configuration file is checked for a '''RunOnStart''' entry in the '''[TipOfDay]''' section. If no such entry is found, '''true''' is assumed, which means that ktip is one of the applications that is auto-started by default.&lt;br /&gt;
&lt;br /&gt;
{{improve|This may change in KDE4. Check back closer to release.}}&lt;br /&gt;
&lt;br /&gt;
There is an additional auto-start directory, {{path|$KDEHOME/Autostart}} that is sourced later. Note that this autostart path differs from the {{path|$KDEDIR/share/autostart}} directory used by the session manager. While {{path|$KDEDIR/share/autostart}} must contain .desktop files, $KDEHOME/Autostart may contain all kinds of files. The files will be opened as if they were clicked upon by the user.&lt;br /&gt;
&lt;br /&gt;
The KDE session manager also restores one of the previous sessions. A session contains of a collection of applications as well as application specific information that reflects the state of the applications at the time the session was saved. Sessions are stored in the {{path|ksmserverrc}} configuration file and contains references to application specific state information. The application specific state infomation is saved in {{path|$KDEHOME/share/config/session}}.&lt;br /&gt;
&lt;br /&gt;
For example if ksmserverrc contains:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
restartCommand1=kwin,-session,110a0a0002000106760689100000019360000_1083342151_608625&lt;br /&gt;
restartCommand2=konsole,-session,10378ac070000108334204700000277690000_1083342151_552722&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
Then the application specific state information for &amp;lt;tt&amp;gt;kwin&amp;lt;/tt&amp;gt; and &amp;lt;tt&amp;gt;konsole&amp;lt;/tt&amp;gt; can be found in&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
$KDEHOME/share/config/session/kwin_110a0a0002000106760689100000019360000_1083342151_608625&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
and&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
$KDEHOME/share/config/session/konsole_10378ac070000108334204700000277690000_1083342151_552722&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
respectively.&lt;br /&gt;
&lt;br /&gt;
The state information of kwin contains the location of the application windows of all the other applications in the session.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Desktop Components ==&lt;br /&gt;
The three major components of the desktop are the window manager, command executer and workspace (desktop and panels).&lt;br /&gt;
&lt;br /&gt;
=== kwin: Window Manager ===&lt;br /&gt;
The window manager is always started by the session manager as part of the session restoration.&lt;br /&gt;
The window manager is responsible for managing all the windows across the virtual desktops,&lt;br /&gt;
including initial placement, minimizing, maximizing, raising, lowering of the windows and&lt;br /&gt;
focus switching between windows.&lt;br /&gt;
&lt;br /&gt;
By default, KWin is started as the window manager in a KDE session. This can be overriden by defining the  &amp;lt;tt&amp;gt;KDEWM&amp;lt;/tt&amp;gt; environment variable to be name of an alternate window manager.&lt;br /&gt;
&lt;br /&gt;
=== krunner: Run Dialog, Task List, Screensaver ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;krunner&amp;lt;/tt&amp;gt; is auto-started by the session manager by means of {{path|$KDEDIR/share/autostart/krunner.desktop}}. It is responsible for activating the screensaver, application start feedback, the Run Command (Alt-F2) dialog, and the task list window and is meant to run for the lifetime of the session.&lt;br /&gt;
&lt;br /&gt;
=== Plasma ===&lt;br /&gt;
&lt;br /&gt;
{{improve|when plasma enters the start up sequence document it here.}}&lt;br /&gt;
&lt;br /&gt;
KDesktop is auto-started by the session manager by means of {{path|$KDEDIR/share/autostart/plasma.desktop}}&lt;/div&gt;</summary>
		<author><name>Logixoul</name></author>	</entry>

	<entry>
		<id>http://techbase.kde.org/SysAdmin/Startup</id>
		<title>SysAdmin/Startup</title>
		<link rel="alternate" type="text/html" href="http://techbase.kde.org/SysAdmin/Startup"/>
				<updated>2007-09-09T18:10:00Z</updated>
		
		<summary type="html">&lt;p&gt;Logixoul: SysAdmin/Startup moved to KDE System Administration/Startup&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#REDIRECT [[KDE System Administration/Startup]]&lt;/div&gt;</summary>
		<author><name>Logixoul</name></author>	</entry>

	<entry>
		<id>http://techbase.kde.org/KDE_System_Administration/Environment_Variables</id>
		<title>KDE System Administration/Environment Variables</title>
		<link rel="alternate" type="text/html" href="http://techbase.kde.org/KDE_System_Administration/Environment_Variables"/>
				<updated>2007-09-09T18:09:20Z</updated>
		
		<summary type="html">&lt;p&gt;Logixoul: SysAdmin/Environment Variables moved to KDE System Administration/Environment Variables&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction ==&lt;br /&gt;
There are numerous environment variables that are useful when managing and controlling a KDE environment. Supported environment variables are listed below.&lt;br /&gt;
&lt;br /&gt;
== Automatically Set Variables ==&lt;br /&gt;
&lt;br /&gt;
=== KDE_FULL_SESSION  ===&lt;br /&gt;
Set to true by KDE startup, it is used by e.g. Konqueror to know if it should consider remaining in memory for future re-use when being closed. If not set, konqueror will exit after being closed (e.g. kdesu does that, it's also useful for debugging).&lt;br /&gt;
&lt;br /&gt;
If you plan on using this variable to detect a running KDE session, it is safest to check if the value is not empty (i.e. test -n &amp;quot;$KDE_FULL_SESSION&amp;quot;) instead of seeing if it equals true.  This allows for changing the value of the variable to include KDE version info or other uses.&lt;br /&gt;
&lt;br /&gt;
=== KDE_SESSION_VERSION ===&lt;br /&gt;
Introduced in KDE4, this environment variable is set to the major version number of the KDE desktop being run on startup. This allows one to know which &amp;lt;tt&amp;gt;kde?-config&amp;lt;/tt&amp;gt; to run: &amp;lt;tt&amp;gt;kde${KDE_SESSION_VERSION}-config&amp;lt;/tt&amp;gt;. For KDE3 this will resolve to &amp;lt;tt&amp;gt;kde-config&amp;lt;/tt&amp;gt; and for KDE4 this will result in &amp;lt;tt&amp;gt;kde4-config&amp;lt;/tt&amp;gt;. One can then use this knowledge to query more details as to the minor version, prefixes, etc.&lt;br /&gt;
&lt;br /&gt;
== Display and Window Management ==&lt;br /&gt;
&lt;br /&gt;
=== KDEWM ===&lt;br /&gt;
If the KDEWM environment variable has been set, then it will be used as KDE's window manager within the startkde script instead of kwin.&lt;br /&gt;
 &lt;br /&gt;
=== KDE_DISPLAY ===&lt;br /&gt;
An old(?) way to set DISPLAY for multihead.&lt;br /&gt;
 &lt;br /&gt;
=== KDE_MULTIHEAD ===&lt;br /&gt;
Set this variable to &amp;quot;true&amp;quot; to indicate that KDE is running on a multi-head system.&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
== File System == &lt;br /&gt;
&lt;br /&gt;
=== KDEDIRS ===&lt;br /&gt;
Overrides KDEDIR and allows you to specify multiple directories where KDE searches for its data. Useful if you want or have to install some programs to a different prefix than the rest of your KDE.&lt;br /&gt;
 &lt;br /&gt;
Please note, that at least the startkde script expects the KDE install directory to be listed as first.&lt;br /&gt;
 &lt;br /&gt;
=== KDEHOME ===&lt;br /&gt;
If not set, KDE uses ~/.kde as directory where your personal data is stored.&lt;br /&gt;
 &lt;br /&gt;
=== KDE_HOME_READONLY ===&lt;br /&gt;
Set this variable to indicate that your home directory is mounted as read-only.&lt;br /&gt;
&lt;br /&gt;
=== KDEROOTHOME ===&lt;br /&gt;
If not set, KDE uses ~root/.kde as directory for root's personal data. Was introduced to prevent KDE from accidently overwriting user data with root permission when user run a KDE program after switching with &amp;quot;su&amp;quot; to root.&lt;br /&gt;
&lt;br /&gt;
=== KDESYCOCA ===&lt;br /&gt;
Allows to specify the path and the name of the generated KDE system configuration cache file.&lt;br /&gt;
 &lt;br /&gt;
=== KDETMP ===&lt;br /&gt;
Allows to specify another path than /tmp where KDE stores its temporary files.&lt;br /&gt;
 &lt;br /&gt;
=== KDEVARTMP ===&lt;br /&gt;
Allows to specify another path than /var/tmp where KDE stores its variable files.&lt;br /&gt;
&lt;br /&gt;
== Localization ==&lt;br /&gt;
&lt;br /&gt;
=== KDE_LANG ===&lt;br /&gt;
Overrides the KDE language configuration, e.g. &amp;quot;KDE_LANG=fr kprogram &amp;amp;&amp;quot; starts a program with french translation if the necessary files are installed.&lt;br /&gt;
&lt;br /&gt;
=== KDE_UTF8_FILENAMES ===&lt;br /&gt;
If this environment variable is set, KDE assumes all filenames are in UTF-8 encoding regardless of the current C locale.&lt;br /&gt;
&lt;br /&gt;
== Networking ==&lt;br /&gt;
&lt;br /&gt;
=== KDE_NO_IPV6 ===&lt;br /&gt;
Set this variable to disable IPv6 support / IPv6 DNS lookups.&lt;br /&gt;
&lt;br /&gt;
=== KDE_USE_IDN ===&lt;br /&gt;
The content of this variable defines for which top level domains the usage of IDN is enabled. If not set, &amp;quot;at:ch:cn:de:dk:kr:jp:li:no:se:tw&amp;quot; will be used.&lt;br /&gt;
&lt;br /&gt;
== Performance Related ==&lt;br /&gt;
&lt;br /&gt;
=== KDE_IS_PRELINKED ===&lt;br /&gt;
Set this variable to indicate that you have prelinked your KDE binaries and libraries.&lt;br /&gt;
 &lt;br /&gt;
=== KDE_MALLOC ===&lt;br /&gt;
If set to &amp;quot;1&amp;quot; the fast malloc routine provided in kdecore is used if KDE was compiled with --enable-fast-malloc, otherwise the libc's routine is used.&lt;br /&gt;
&lt;br /&gt;
=== KDE_NOUNLOAD ===&lt;br /&gt;
If this variable is set then KLibLoader is told to never unload dynamically opened libraries.&lt;br /&gt;
 &lt;br /&gt;
=== KDE_DOUNLOAD ===&lt;br /&gt;
If this variable is set then KLibLoader is told to always try to unload dynamically opened libraries. Warning, this will most probably lead to crashes!&lt;br /&gt;
&lt;br /&gt;
== Troubleshooting and Debugging == &lt;br /&gt;
&lt;br /&gt;
=== KDE_DEBUG ===&lt;br /&gt;
Set this variable to disable the KDE crash handler (same as --nocrashhandler command line option).&lt;br /&gt;
&lt;br /&gt;
=== KDE_COLOR_DEBUG ===&lt;br /&gt;
Starting from KDE 4, set this variable to get colourful debug output which will look nicely in Konsole.&lt;br /&gt;
 &lt;br /&gt;
=== KDE_FORK_SLAVES ===&lt;br /&gt;
Set this variable to spawn KIO-slaves directly from the application process itself, by default KIO-slaves are spawned using klauncher/kdeinit. This option is useful if the KIO-slave should run in the same environment as the application, this can be the case with Clearcase.&lt;br /&gt;
&lt;br /&gt;
== freedesktop.org Compliance ==&lt;br /&gt;
&lt;br /&gt;
The following environment variables are defined in the [http://freedesktop.org/wiki/Standards/basedir-spec freedesktop.org base directory specification] and are supported by all XDG compliant environments and applications.&lt;br /&gt;
&lt;br /&gt;
=== XDG_DATA_HOME ===&lt;br /&gt;
Defines the base directory relative to which user specific data files should be stored. If &amp;lt;tt&amp;gt;$XDG_DATA_HOME&amp;lt;/tt&amp;gt; is either not set or empty, a default equal to {{path|$HOME/.local/share is used}}.&lt;br /&gt;
 &lt;br /&gt;
=== XDG_CONFIG_HOME ===&lt;br /&gt;
Defines the base directory relative to which user specific configuration files should be stored. If &amp;lt;tt&amp;gt;$XDG_CONFIG_HOME&amp;lt;/tt&amp;gt; is either not set or empty, a default equal to {{path|$HOME/.config}} is used.&lt;br /&gt;
 &lt;br /&gt;
=== XDG_DATA_DIRS ===&lt;br /&gt;
Defines the preference-ordered set of base directories to search for data files in addition to the &amp;lt;tt&amp;gt;$XDG_DATA_HOME&amp;lt;/tt&amp;gt; base directory. The directories in &amp;lt;tt&amp;gt;$XDG_DATA_DIRS&amp;lt;/tt&amp;gt; should be separated with a colon ':'. If $XDG_DATA_DIRS is either not set or empty, a value equal to {{path|/usr/local/share/:/usr/share/}} is used.&lt;br /&gt;
 &lt;br /&gt;
=== XDG_CONFIG_DIRS ===&lt;br /&gt;
Defines the preference-ordered set of base directories to search for configuration files in addition to the &amp;lt;tt&amp;gt;$XDG_CONFIG_HOME&amp;lt;/tt&amp;gt; base directory. The directories in &amp;lt;tt&amp;gt;$XDG_CONFIG_DIRS&amp;lt;/tt&amp;gt; should be separated with a colon ':'. If $XDG_CONFIG_DIRS is either not set or empty, a value equal to {{path|/etc/xdg}} is used.&lt;/div&gt;</summary>
		<author><name>Logixoul</name></author>	</entry>

	<entry>
		<id>http://techbase.kde.org/SysAdmin/Environment_Variables</id>
		<title>SysAdmin/Environment Variables</title>
		<link rel="alternate" type="text/html" href="http://techbase.kde.org/SysAdmin/Environment_Variables"/>
				<updated>2007-09-09T18:09:20Z</updated>
		
		<summary type="html">&lt;p&gt;Logixoul: SysAdmin/Environment Variables moved to KDE System Administration/Environment Variables&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#REDIRECT [[KDE System Administration/Environment Variables]]&lt;/div&gt;</summary>
		<author><name>Logixoul</name></author>	</entry>

	<entry>
		<id>http://techbase.kde.org/KDE_System_Administration/XDG_Filesystem_Hierarchy</id>
		<title>KDE System Administration/XDG Filesystem Hierarchy</title>
		<link rel="alternate" type="text/html" href="http://techbase.kde.org/KDE_System_Administration/XDG_Filesystem_Hierarchy"/>
				<updated>2007-09-09T18:08:45Z</updated>
		
		<summary type="html">&lt;p&gt;Logixoul: SysAdmin/XDG Filesystem Hierarchy moved to KDE System Administration/XDG Filesystem Hierarchy&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Freedesktop.org and Standard Directories ==&lt;br /&gt;
&lt;br /&gt;
Many of the free and open source software projects that focus on desktop technology collaborate on shared specifications and software within the [http://freedesktop.org freedesktop.org] project.&lt;br /&gt;
&lt;br /&gt;
One of these shared specifications is the [http://standards.freedesktop.org/basedir-spec/latest/ base directory specification] which defines a set of locations in the filesystem that can be used for portable desktop technology implementations.&lt;br /&gt;
&lt;br /&gt;
KDE supports the base directory specification and the various [[../Environment_Variables|environment variables]] it prescribes in addition to the [[../KDE_Filesystem_Hierarchy|KDE filesystem hierarchy]]. A summary of KDE's implementation follows below, while the full specification can be read [[http://standards.freedesktop.org/basedir-spec/latest/ here on freedesktop.org]].&lt;br /&gt;
&lt;br /&gt;
== Application Data ==&lt;br /&gt;
&lt;br /&gt;
Data that applications store which are specific to a given user are to be stored in the &amp;lt;tt&amp;gt;XDG_DATA_HOME&amp;lt;/tt&amp;gt; directory. If the &amp;lt;tt&amp;gt;XDG_DATA_HOME&amp;lt;/tt&amp;gt; environment variable isn't set, it defaults to {{path|$HOME/.local/share}} for local storage and {{path|/usr/local/share;/usr/share}} for system wide files.&lt;br /&gt;
&lt;br /&gt;
Some items that may be stored in &amp;lt;tt&amp;gt;XDG_DATA_HOME&amp;lt;/tt&amp;gt; are files the user has put in the trash, mimetype definitions and associations and application .desktop files.&lt;br /&gt;
&lt;br /&gt;
The search path for system wide directories can be defined setting the &amp;lt;tt&amp;gt;XDG_DATA_DIRS&amp;lt;/tt&amp;gt; environment variable to contain a list of paths.&lt;br /&gt;
&lt;br /&gt;
== Configuration ==&lt;br /&gt;
&lt;br /&gt;
Configuration information should be stored in the &amp;lt;tt&amp;gt;XDG_CONFIG_HOME&amp;lt;/tt&amp;gt; directory. If the &amp;lt;tt&amp;gt;XDG_CONFIG_HOME&amp;lt;/tt&amp;gt; environment variable isn't set, it defaults to {{path|$HOME/.config}} for local storage and {{path|/etc/xdg}} for system wide files.&lt;br /&gt;
&lt;br /&gt;
Some items that may be stored in &amp;lt;tt&amp;gt;XDG_CONFIG_HOME&amp;lt;/tt&amp;gt; are application configuration files and application menu structure.&lt;br /&gt;
&lt;br /&gt;
The search path for system wide directories can be defined setting the &amp;lt;tt&amp;gt;XDG_CONFIG_DIRS&amp;lt;/tt&amp;gt; environment variable to contain a list of paths.&lt;br /&gt;
&lt;br /&gt;
== Cache Files ==&lt;br /&gt;
&lt;br /&gt;
Temporary data caches can be stored in the &amp;lt;tt&amp;gt;XDG_CACHE_HOME&amp;lt;/tt&amp;gt; location, which defaults to {{path|$HOME/.cache}}. There is no system wide cache location as such caches are always user specific.&lt;br /&gt;
&lt;br /&gt;
== Thumbnails == &lt;br /&gt;
&lt;br /&gt;
Thumbnails representing the contents of files for use in icons and other representations of files are to be stored in {{path|$HOME/.thumbnails}}. The structure and content of the thumbnails directory is defined in the [http://jens.triq.net/thumbnail-spec/index.html thumbnail specification].&lt;/div&gt;</summary>
		<author><name>Logixoul</name></author>	</entry>

	<entry>
		<id>http://techbase.kde.org/SysAdmin/XDG_Filesystem_Hierarchy</id>
		<title>SysAdmin/XDG Filesystem Hierarchy</title>
		<link rel="alternate" type="text/html" href="http://techbase.kde.org/SysAdmin/XDG_Filesystem_Hierarchy"/>
				<updated>2007-09-09T18:08:45Z</updated>
		
		<summary type="html">&lt;p&gt;Logixoul: SysAdmin/XDG Filesystem Hierarchy moved to KDE System Administration/XDG Filesystem Hierarchy&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#REDIRECT [[KDE System Administration/XDG Filesystem Hierarchy]]&lt;/div&gt;</summary>
		<author><name>Logixoul</name></author>	</entry>

	<entry>
		<id>http://techbase.kde.org/KDE_System_Administration/KDE_Filesystem_Hierarchy</id>
		<title>KDE System Administration/KDE Filesystem Hierarchy</title>
		<link rel="alternate" type="text/html" href="http://techbase.kde.org/KDE_System_Administration/KDE_Filesystem_Hierarchy"/>
				<updated>2007-09-09T18:07:08Z</updated>
		
		<summary type="html">&lt;p&gt;Logixoul: SysAdmin/KDE Filesystem Hierarchy moved to KDE System Administration/KDE Filesystem Hierarchy&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction ==&lt;br /&gt;
KDE defines a filesystem hierarchy that is used by the KDE environment&lt;br /&gt;
itself as well as all KDE applications. In general, KDE stores all its&lt;br /&gt;
files in a fixed directory tree.&lt;br /&gt;
&lt;br /&gt;
By default, there are two such directory trees: one at the system&lt;br /&gt;
level and one at the user level in the user's home directory. However,&lt;br /&gt;
as a system administrator you can create additional trees.&lt;br /&gt;
&lt;br /&gt;
KDE and KDE applications look up files by scanning the directory trees&lt;br /&gt;
in order of precedence. When a file is&lt;br /&gt;
present in multiple directory trees, the file from the first-listed&lt;br /&gt;
tree takes precedence.&lt;br /&gt;
Normally, the tree located in the user's home directory has the highest&lt;br /&gt;
precedence. This is also the directory tree that changes are&lt;br /&gt;
written to.&lt;br /&gt;
&lt;br /&gt;
For configuration files, the story is slightly&lt;br /&gt;
different. If multiple configuration files with the same name are found in the directory&lt;br /&gt;
trees, their content is combined. The precedence order&lt;br /&gt;
of the directory trees plays a role here: when two files define the same&lt;br /&gt;
configuration key, the file with the highest precedence determines which&lt;br /&gt;
value is used for the key.&lt;br /&gt;
&lt;br /&gt;
== Location of the Directory Trees ==&lt;br /&gt;
&lt;br /&gt;
The location of the KDE Directory Trees is determined by a number of&lt;br /&gt;
environment variables, each of which is covered below.&lt;br /&gt;
&lt;br /&gt;
=== KDEHOME ===&lt;br /&gt;
The &amp;lt;tt&amp;gt;KDEHOME&amp;lt;/tt&amp;gt; environment variable determines the location of the user-level&lt;br /&gt;
directory tree and is used by KDE applications for creating and saving&lt;br /&gt;
files. This directory tree has the highest precedence; files or settings&lt;br /&gt;
found in this directory tree will take precedence over any files or settings&lt;br /&gt;
found in other directory trees.&lt;br /&gt;
&lt;br /&gt;
This directory tree is, as the name suggests, normally located in the user's home directory. If this environment variable is not defined, the default location &amp;lt;tt&amp;gt;$HOME/.kde&amp;lt;/tt&amp;gt; is used.&lt;br /&gt;
&lt;br /&gt;
If the environment variable has a value that starts with a tilde (~), the tilde is replaced with the user's home directory at runtime. In order to use this, care must be taken to add proper quoting, otherwise the shell might do the expansion, resulting in undesired behavior in combination with &amp;lt;tt&amp;gt;su&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== KDEROOTHOME ===&lt;br /&gt;
In order to prevent problems with applications that run as root saving&lt;br /&gt;
files with root access permissions in the user's home directory, the &amp;lt;tt&amp;gt;KDEROOTHOME&amp;lt;/tt&amp;gt;&lt;br /&gt;
environment variable has been introduced in the KDE 3.x series. Applications&lt;br /&gt;
that run with uid 0 (root) will use this variable to determine the location of&lt;br /&gt;
the user level directory and where to save their files. If this variable is&lt;br /&gt;
not defined, the root user's home directory is looked up in the password&lt;br /&gt;
file and .kde is appended. Usually that results in &amp;lt;tt&amp;gt;/root/.kde&amp;lt;/tt&amp;gt; .&lt;br /&gt;
&lt;br /&gt;
=== KDEDIRS ===&lt;br /&gt;
It is possible to specify multiple system-level directory trees. This allows groups of users to each dedicate a directory to their group. Such an additional directory tree can contain additional applications, specialized application resources or a specific set of default configurations suitable for the group. Specifying default configurations this way instead of using a /etc/skel construction has the advantage that changes in the default configuration can be made after the user's account has been created.&lt;br /&gt;
&lt;br /&gt;
The directories in $KDEDIRS should be separated with a colon (:). The directories are listed in order of precedence: the first directory has the highest precedence, the last one has the lowest precedence.&lt;br /&gt;
&lt;br /&gt;
Since a group-level directory tree should normally override any settings present at the system level, one should list the group-level directory tree before the system level directory tree.&lt;br /&gt;
&lt;br /&gt;
In general communication, references to the directory trees are made in&lt;br /&gt;
terms of $KDEHOME to indicate the applicable user-level directory tree,&lt;br /&gt;
and in terms of $KDEDIRS to indicate any of the system-level directory trees.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
A staff member at a university could have the following settings:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
KDEHOME='~/.kde3'&lt;br /&gt;
KDEROOTHOME='/root/.kde3'&lt;br /&gt;
KDEDIRS='/opt/kde_staff:/opt/kde3'&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In this example the user settings are saved under the .kde3 directory&lt;br /&gt;
in the user's home directory. Applications that run as root will save their&lt;br /&gt;
settings to /root/.kde3 . KDE 3 has been installed to /opt/kde3 but there is&lt;br /&gt;
also an additional directory tree located at /opt/kde_staff . Configuration&lt;br /&gt;
files under that directory will take precedence over the ones in the /opt/kde3&lt;br /&gt;
system directories. /opt/kde-staff could contain additional applications that&lt;br /&gt;
should only be available to staff members.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Directory Tree ==&lt;br /&gt;
&lt;br /&gt;
Each directory tree used by KDE has a fixed directory structure. However, directories&lt;br /&gt;
that are not relevant for a certain tree can be left out. For example,&lt;br /&gt;
directories used for temporary files are usually only found under $KDEHOME but&lt;br /&gt;
not in any other directory tree.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The KDE runtime environment combines the subdirectories found under the&lt;br /&gt;
various directory trees and refers to them as a single KDE resource. The&lt;br /&gt;
KDE resource name is listed in the tables below.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
There are three broad categories: files that are&lt;br /&gt;
CPU/architecture-specific, files that are host-specific and files that are not specific with&lt;br /&gt;
regard to host, CPU or architecture.&lt;br /&gt;
&lt;br /&gt;
CPU/architecture-specific directories:&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
! Directory !! KDE&amp;amp;nbsp;resource !! Description&lt;br /&gt;
|-&lt;br /&gt;
| {{path|bin/}} || exe || Used for KDE executables.&lt;br /&gt;
|-&lt;br /&gt;
| {{path|cgi-bin/}} || cgi || CGI scipts that can be used by the KDE Help Center.&lt;br /&gt;
|-&lt;br /&gt;
| {{path|lib/}} || lib || Used for KDE libraries.&lt;br /&gt;
|-&lt;br /&gt;
| {{path|lib/kde3/}} || module || This directory contains components, plugins and other runtime loadable objects for use by KDE 3.x applications.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The following are host-specific directories. They are only available under&lt;br /&gt;
$KDEHOME and are normally symlinked to locations outside the $KDEHOME&lt;br /&gt;
directory tree.&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
! Directory !! KDE&amp;amp;nbsp;resource !! Description&lt;br /&gt;
|-&lt;br /&gt;
| {{path|socket-&amp;amp;lt;HOSTNAME&amp;amp;gt;}} || socket || This directory contains communication sockets. The filesystem used by $KDEHOME may not be suitable for communication sockets. For that reason this directory is symlinked to another location by default.&lt;br /&gt;
|-&lt;br /&gt;
| {{path|tmp-&amp;amp;lt;HOSTNAME&amp;amp;gt;}} || tmp || This directory is used for temporary files. The filesystem used by $KDEHOME may be on a network. For performance reasons, this directory is therefore symlinked by default to another location which is more likely to be on a local filesystem.&lt;br /&gt;
|-&lt;br /&gt;
| {{path|cache-&amp;amp;lt;HOSTNAME&amp;amp;gt;}} || cache || New in KDE 3.2. This directory is used for cached information such as HTTP objects, formatted help pages and the system configuration cache (ksycoca).&lt;br /&gt;
&lt;br /&gt;
Since this is non-essential information, this directory is&lt;br /&gt;
symlinked to a location outside $KDEHOME by default, to make it easier&lt;br /&gt;
to make backups of other information and to reclaim diskspace.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The majority of directories involves data that is not CPU-, architecture- or&lt;br /&gt;
host-specific. All these directories are prefixed with {{path|share/}}:&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
! Directory !! KDE&amp;amp;nbsp;resource !! Description&lt;br /&gt;
|-&lt;br /&gt;
| {{path|share/applnk/}} || apps || Contains .desktop files describing the KDE menu.&lt;br /&gt;
|-&lt;br /&gt;
| {{path|share/apps/}} || data || Contains application-specific data files. Each application has a subdirectory here for storing its files.&lt;br /&gt;
|-&lt;br /&gt;
| {{path|share/config/}} || config || Contains configuration files. Configuration files are normally named after the application they belong to followed by &amp;quot;rc&amp;quot;. There are also files that are specific to a component and as such referenced by all applications that use that component. A special case is &amp;quot;kdeglobals&amp;quot;: this file is read by all KDE applications.&lt;br /&gt;
|-&lt;br /&gt;
| {{path|share/config/session/}} || - || This directory is used by session management and is normally only available under $KDEHOME. At the end of a session KDE applications store their state here. The file names start with the name of the application followed by a number. The session manager &amp;quot;ksmserver&amp;quot; stores references to these numbers when saving a session in &amp;quot;ksmserverrc&amp;quot;.&lt;br /&gt;
|-&lt;br /&gt;
| {{path|share/doc/HTML/}} || html || Documentation of KDE applications is stored here. Documentation is categorized by language and the application it belongs to. &lt;br /&gt;
&lt;br /&gt;
Normally at least two files can be found in a directory: &amp;quot;index.docbook&amp;quot; which contains the documentation in the unformatted docbook format and &amp;quot;index.cache.bz2&amp;quot; which contains the same documentation formatted as bzip2 compressed html. The html version is used by khelpcenter; if the html version is missing, it will regenerate it from the docbook version, but this is a time-consuming process.&lt;br /&gt;
|-&lt;br /&gt;
| {{path|share/icons/}} || icon || Icons are stored under this directory, categorized by theme, dimension and usage category.&lt;br /&gt;
|-&lt;br /&gt;
| {{path|share/mimelnk/}} || mime || Up until KDE4, .desktop files that describe MIME types were stored in this directory.&lt;br /&gt;
|-&lt;br /&gt;
| {{path|share/mime/}} || mime || Starting with KDE4, desktop files that describe MIME types are stored in this directory. This data is shared by other software as well and is part of a freedesktop.org specification.&lt;br /&gt;
|-&lt;br /&gt;
| {{path|share/services/}}&amp;lt;br&amp;gt;{{path|share/kde4/services/}} || services || This directory contains .desktop files that describe services. Services and Applications are very similar; the major difference is that a Service is usually used by other Services or Applications while an Application is in general started by the user. Services do not appear in the KDE menu.&lt;br /&gt;
|-&lt;br /&gt;
| {{path|share/servicetypes/}}&amp;lt;br&amp;gt;{{path|share/kde4/servicetypes/}} || servicetypes || This directory contains .desktop files that describe service types. A service type usually represents a certain programming interface. Applications and Services include the servicetypes that they provide in their .desktop files.&lt;br /&gt;
|-&lt;br /&gt;
| {{path|share/sounds/}} || sound || This directory contains sound files.&lt;br /&gt;
|-&lt;br /&gt;
| {{path|share/templates/}} || templates || This directory contains templates for creating files of various types. A template consists of a .desktop file that describes the file and that includes a reference to a file in the .source subdirectory. The templates in this directory appear in the &amp;quot;Create New&amp;quot; menu available on the desktop and in the file browser. When a user selects a template from the menu, its source file is copied.&lt;br /&gt;
|-&lt;br /&gt;
| {{path|share/wallpapers/}} || wallpaper || This directory contains images that can be used as background pictures.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Outside the Directory Tree ==&lt;br /&gt;
&lt;br /&gt;
As mentioned in the description of the directory tree, there are three host-specific directories that are usually symlinked to other locations. If the directories do not already exist, the following symlinks and directories will be created using the &amp;lt;tt&amp;gt;lnusertemp&amp;lt;/tt&amp;gt; utility. Since both &amp;lt;tt&amp;gt;/tmp&amp;lt;/tt&amp;gt; and &amp;lt;tt&amp;gt;/var/tmp&amp;lt;/tt&amp;gt; are world writable, there is a possibility that one of the mentioned directories already exists but is owned by another user. In that case the &amp;lt;tt&amp;gt;lnusertemp&amp;lt;/tt&amp;gt; utility will create a new directory with an alternative name and link to that instead.&lt;br /&gt;
&lt;br /&gt;
=== Sockets ===&lt;br /&gt;
Symlink: {{path|$KDEHOME/socket-&amp;amp;lt;HOSTNAME&amp;amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
Default destination: {{path|/tmp/ksocket-&amp;amp;lt;USER&amp;amp;gt;/}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;lnusertemp&amp;amp;nbsp;socket&amp;lt;/tt&amp;gt; creates a directory for local communication sockets and point a symlink to it. The combined length of the directory name and the name of any communication socket should not exceed 106 characters. By default this directory is created under &amp;lt;tt&amp;gt;/tmp&amp;lt;/tt&amp;gt;, other locations can be used by setting the KDETMP environment variable.&lt;br /&gt;
&lt;br /&gt;
=== Temporary Files ===&lt;br /&gt;
Symlink: {{path|$KDEHOME/tmp-&amp;amp;lt;HOSTNAME&amp;amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
Default destination: {{path|/tmp/kde-&amp;amp;lt;USER&amp;amp;gt;/}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;lnusertemp&amp;amp;nbsp;tmp&amp;lt;/tt&amp;gt; creates a directory for temporary files and points a symlink to it. For performance reasons it is recommended to have this directory on a local filesystem but this is not strictly necessary.&lt;br /&gt;
&lt;br /&gt;
=== Cache Files ===&lt;br /&gt;
Symlink: {{path|$KDEHOME/cache-&amp;amp;lt;HOSTNAME&amp;amp;gt;}}&lt;br /&gt;
 &lt;br /&gt;
Default destination: {{path|/var/tmp/kdecache-&amp;amp;lt;USER&amp;amp;gt;/}}&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;lnusertemp&amp;amp;nbsp;cache&amp;lt;/tt&amp;gt; creates a directory for cache files and points a symlink to it. For performance reasons it is recommended to have this directory on a local filesystem but this is not strictly necessary.&lt;br /&gt;
&lt;br /&gt;
The system configuration cache (ksycoca and ksycocastamp) is located in here. It is recommended NOT to delete these files during boot since that will slow down the startup of KDE.&lt;br /&gt;
&lt;br /&gt;
By default this directory is created under &amp;lt;tt&amp;gt;/var/tmp&amp;lt;/tt&amp;gt;, other locations&lt;br /&gt;
can be used by setting the KDEVARTMP environment variable.&lt;br /&gt;
&lt;br /&gt;
== Adding Lookup Locations ==&lt;br /&gt;
&lt;br /&gt;
KDE applications look up data files using the resource names listed in the&lt;br /&gt;
[#dir_structure Directory Tree] section.  The KDE runtime&lt;br /&gt;
environment translates these names to actual directories&lt;br /&gt;
by combining the locations of the directory trees with the directories&lt;br /&gt;
listed in the tables.&lt;br /&gt;
&lt;br /&gt;
==== Defining Search Paths ====&lt;br /&gt;
&lt;br /&gt;
A user has the following directory tree settings:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
KDEHOME='~/.kde3'&lt;br /&gt;
KDEDIRS='/opt/kde_staff:/opt/kde3'&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
When an application now looks for a &amp;quot;wallpaper&amp;quot; file, the directory &amp;quot;share/wallpapers/&amp;quot; is added to each of the&lt;br /&gt;
directory trees. All of the&lt;br /&gt;
resulting directories are then searched for the file:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
~/.kde3/share/wallpapers/&lt;br /&gt;
/opt/kde_staff/share/wallpapers/&lt;br /&gt;
/opt/kde3/share/wallpapers/&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
By adding more directory tree to the KDEDIRS environment variable&lt;br /&gt;
it is possible to expand the number of directories that are being searched.&lt;br /&gt;
Sometimes it is desirable to include only a single directory in a search&lt;br /&gt;
but not a whole directory tree. Additional directories can be configured&lt;br /&gt;
in the kdeglobals configuration file in the &amp;quot;Directories&amp;quot; section.&lt;br /&gt;
To do so assign one or more directories to the key &amp;quot;dir_&amp;quot; followed by the&lt;br /&gt;
name of the resource. Multiple directories are separated by commas (,).&lt;br /&gt;
&lt;br /&gt;
==== Adding a Resource Directory ====&lt;br /&gt;
&lt;br /&gt;
To add the directory /data/photos to the wallpaper resource, put the&lt;br /&gt;
following two lines in kdeglobals:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code ini&amp;gt;&lt;br /&gt;
[Directories]&lt;br /&gt;
dir_wallpaper=/data/photos&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
When the application now looks for wallpaper files, it will look in the&lt;br /&gt;
following locations:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
/data/photos&lt;br /&gt;
~/.kde3/share/wallpapers/&lt;br /&gt;
/opt/kde_staff/share/wallpapers/&lt;br /&gt;
/opt/kde3/share/wallpapers/&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;/div&gt;</summary>
		<author><name>Logixoul</name></author>	</entry>

	<entry>
		<id>http://techbase.kde.org/SysAdmin/KDE_Filesystem_Hierarchy</id>
		<title>SysAdmin/KDE Filesystem Hierarchy</title>
		<link rel="alternate" type="text/html" href="http://techbase.kde.org/SysAdmin/KDE_Filesystem_Hierarchy"/>
				<updated>2007-09-09T18:07:08Z</updated>
		
		<summary type="html">&lt;p&gt;Logixoul: SysAdmin/KDE Filesystem Hierarchy moved to KDE System Administration/KDE Filesystem Hierarchy&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#REDIRECT [[KDE System Administration/KDE Filesystem Hierarchy]]&lt;/div&gt;</summary>
		<author><name>Logixoul</name></author>	</entry>

	<entry>
		<id>http://techbase.kde.org/User:Danimo/KIOSK/new</id>
		<title>User:Danimo/KIOSK/new</title>
		<link rel="alternate" type="text/html" href="http://techbase.kde.org/User:Danimo/KIOSK/new"/>
				<updated>2007-09-09T18:02:13Z</updated>
		
		<summary type="html">&lt;p&gt;Logixoul: fix double redirect&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Overview ==&lt;br /&gt;
&lt;br /&gt;
KIOSK Admin Tool is a KDE administration tool that offers system administrators an easy way to predefine desktop configurations for single and/or groups of users, lock down settings or otherwise restrict features of the KDE desktop environment.&lt;br /&gt;
&lt;br /&gt;
The default Desktop delivers many powerful features an possibilities. However, in business environment for example it is neccesary to reduce the number of programs, features and possibilities according to the tasks that need to be done.&lt;br /&gt;
&lt;br /&gt;
KIOSK Admin Tool takes advantage of KDE's KIOSK restrictions framework. It is centered around profiles.A profile is a collection of default settings and restrictions that can be applied to either individual users or groups of users.&lt;br /&gt;
&lt;br /&gt;
KDE's Kiosk framework makes it possible for a system administrator to turn off certain KDE features.&lt;br /&gt;
&lt;br /&gt;
Typical usage of KIOSK Admin Tool is to create a new profile, then to set up the profilewith the desired default settings and restrictions, and finally to activate the profile by assigning the profile to one or more users.&lt;br /&gt;
&lt;br /&gt;
== Profiles ==&lt;br /&gt;
&lt;br /&gt;
A profile is a collection of default settings and restrictions that can be applied to either individual users or groups of users.&lt;br /&gt;
&lt;br /&gt;
The KDE desktop environment as well as all KDE applications use a specific directory structure to lookup configuration settings and various other information. KDE knows about several locations for these directory structures. All the information and configuration settings found in the various locations are combined before they are used. Lock down features control whether settings in the user's home folder ($KDEHOME or ~/.kde) are taken into account or not.&lt;br /&gt;
&lt;br /&gt;
A profile consists of a standard KDE directory structure in a custom location with settings and information chosen by you.&lt;br /&gt;
&lt;br /&gt;
KIOSK Admin Tool lets you chose in which location a profile should be stored. Information about available profiles is stored in the file /etc/kderc.&lt;br /&gt;
&lt;br /&gt;
It is recommended to store all profiles under a single directory. In this case the /etc/kderc file only needs to contain a reference to this single directory and KDE and KIOSK Admin Tool will automatically pick up all profiles stored under this directory. See the Chapter 4chapter for more information.&lt;br /&gt;
&lt;br /&gt;
== Install KIOSK Admin Tool and KDE Basics ==&lt;br /&gt;
&lt;br /&gt;
The KIOSK Admin Tool works since KDE 3. When using KIOSK Admin Tool in combination with older versions of KDE (KDE 3.2 or older) some additional steps need to be taken in order to properly activate the profiles.&lt;br /&gt;
&lt;br /&gt;
The newly introduced, common KDE 3.2 menu format is documented at [http://freedesktop.org/Standards/menu-spec/ freedesktop.org]&lt;br /&gt;
The new menu format defines structure in a single .menu file, is based on categories, is shared between Gnome and KDE and supports applnk style menus as well.&lt;br /&gt;
&lt;br /&gt;
For this tutorial, it is preferred to use KDE 3.2.2 or newer.&lt;br /&gt;
&lt;br /&gt;
The Distribution of SuSE 9.1 contains KIOSK Admin Tool that should be replaced by a newer version.&lt;br /&gt;
&lt;br /&gt;
Downloads from: http://extragear.kde.org/apps/kiosktool &lt;br /&gt;
&lt;br /&gt;
For SuSE you can get a rpm-package. Install command : &lt;br /&gt;
&lt;br /&gt;
 rpm -i kiosktool-version.i568.rpm&lt;br /&gt;
&lt;br /&gt;
The installation procedure in SuSE 9.2 may be done directly by YAST, but you have to select KIOSK Admin Tool manually. Additional informations to next part of documentation (filesystem hierarchie, configuration files) you find in the [[KDE System Administration|TechBase SysAdmin area]].&lt;br /&gt;
&lt;br /&gt;
KDE defines a filesystem hierarchy which is used by the KDE environment itself as well as all KDE applications (and KIOSK Admin Tool).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
/opt kde3/bin/kiosktool&lt;br /&gt;
/opt/kde3/bin/kiosktool-kdedirs&lt;br /&gt;
/opt/kde3/share/apps/kiosktool/...&lt;br /&gt;
/opt/kde3/share/config/kiosktoolrc&lt;br /&gt;
/opt/kde3/share/icons/...&lt;br /&gt;
/opt/kde3/share/locale/... (language packages)&lt;br /&gt;
...&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
check this: kiosktool-kdedirs check&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== KDE Directory Layout (SuSE Linux for example) ===&lt;br /&gt;
&lt;br /&gt;
$HOME/.kde user level, personal KDE directory&lt;br /&gt;
/opt/kde3 system level, SuSE specific,&lt;br /&gt;
sometimes /usr or /usr/kde3&lt;br /&gt;
/etc/opt/kde3 Added by SuSE&lt;br /&gt;
&lt;br /&gt;
=== Environment Variables ===&lt;br /&gt;
&lt;br /&gt;
$KDEHOME ~/.kde normally located in user's home directory&lt;br /&gt;
$KDEROOTHOME /root/.kde&lt;br /&gt;
$KDEDIR /opt/kde3, /usr, /usr/kde3 depends from distribution, used by KDE2&lt;br /&gt;
$KDEDIRS /opt/kde3, /usr, /usr/kde3 new in KDE3 : multiple locations possible&lt;br /&gt;
&lt;br /&gt;
The default values most times don't need to be changed (the default is OK).&lt;br /&gt;
Normally $KDEHOME, the tree located in the user's home directory, has the highest precedence. This is the directory tree where the user sets up his own changes.&lt;br /&gt;
&lt;br /&gt;
Normally $KDEHOME, the tree located in the user's home directory, has the highest precedence. This is the directory tree where the user sets up his own changes.&lt;br /&gt;
A system administrator can create additional directory trees which can be used for profiles.&lt;br /&gt;
Special KDE configuration directories for special user profiles (or group profiles) will be specified within /etc/kderc (SuSE: /etc/kde3rc).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Additional (shared) KDE Sub-Directories ===&lt;br /&gt;
&lt;br /&gt;
share/applications/ .desktop files for the KDE Menu (since KDE3.2)&lt;br /&gt;
share/apps contains applications specific data files; Each application has a sub-directory here for storing additional data files&lt;br /&gt;
share/config configuration files for KDE applications (normally named after the the application they belong to plus rc, i.e. kiosktoolrc). A special case is kdeglobals as a file that is readed by all KDE applications.&lt;br /&gt;
share/config/session/ used by KDE session manager ksmserver (normally only available under $KDEHOME/... At the end of a session KDE applications store their state here. The file names start with the name of the application followed by a number. ksmserver stores references to these numbers when saving a session in share/config/ksmserverrc .&lt;br /&gt;
share/doc/HTML/ contains documentation of KDE and KDE applications (khelpcenter)&lt;br /&gt;
share/icons icons for KDE applications&lt;br /&gt;
share/mimelnk KDE uses .desktop files that describe MIME types to identificate the type of a file&lt;br /&gt;
share/services contains .desktop files that describe services. Services are like applications but are usually launched by other applications instead of the user . Services do not appear in the KDE menu.&lt;br /&gt;
share/servicetypes servicetypes usually represents a certain programming interface&lt;br /&gt;
share/sounds contains sound files&lt;br /&gt;
share/templates contains templates for creating files of various types including a reference to a file in the .source sub-directory&lt;br /&gt;
share/wallpapers contains images that can be used as background picture&lt;br /&gt;
&lt;br /&gt;
=== Additional (OS- and CPU-depended) KDE Sub-Directories ===&lt;br /&gt;
&lt;br /&gt;
bin/ used for KDE executables&lt;br /&gt;
cgi-bin/ CGI scripts that can be used by the KDE Help Center&lt;br /&gt;
lib/ used for KDE libraries&lt;br /&gt;
lib/kde3 contains components, plugins and other runtime loadable objects for use by KDE 3.x applications&lt;br /&gt;
&lt;br /&gt;
=== Additional (Host Specific) KDE Sub-Directories ===&lt;br /&gt;
&lt;br /&gt;
three host-specific directories that are usually symlinked to other locations:&lt;br /&gt;
$KDEHOME/socket-$HOSTNAME --&amp;gt; /tmp/ksocket-$USER/&lt;br /&gt;
$KDEHOME/tmp-$HOSTNAME --&amp;gt; /tmp/kde-$USER/&lt;br /&gt;
$KDEHOME/cache-$HOSTNAME --&amp;gt; /tmp/kdecache-$USER/&lt;br /&gt;
/tmp and /var/tmp as systemwide (maybe world) writable directories&lt;br /&gt;
opt/kde3/bin/./lnusertemp tmp lnusertemp utility will create a new directory with an alternative name and links to that instead. That's why there is a possibility, that one of the mentioned directories already exists but is owned by another user.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== KDE Configuration Files ===&lt;br /&gt;
&lt;br /&gt;
simple text files, UTF-8 encoding for text outside the ASCII range&lt;br /&gt;
Groups indicated by a groupname placed in square brackets at the top of a group followed by key-value-pairs. Key and value are separated by an equal sign. The key can contain spaces and may be followed by options placed in square brackets, sometimes with optional backslash codes for special output formats. All the key-values entries that follow belong to the group.&lt;br /&gt;
&lt;br /&gt;
 [groupname]&lt;br /&gt;
 keyname=value [option]&lt;br /&gt;
&lt;br /&gt;
Entries at the top of the file that are not preceded by a group name belong to the default group.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Configuration Files Cascading ===&lt;br /&gt;
&lt;br /&gt;
There can be multiple configuration files with the same name in the share/config sub-directory of the various KDE directory trees.&lt;br /&gt;
A configuration file can contain only few selected groups with few selected keys.&lt;br /&gt;
&lt;br /&gt;
The final value of a key depends from the the priority of the directory the configuration file is placed and the precedence of the key in it.&lt;br /&gt;
The configuration files under $KDEHOME have always the highest priority. The precedence order of KDE directories is listed in $KDEDIRS, available since KDE 3.x.&lt;br /&gt;
&lt;br /&gt;
If $KDEDIRS is undefined , the single location of $KDEDIR is used instead.&lt;br /&gt;
If a key in a certain group is defined multiple times in a single file, the value of the last entry is used.&lt;br /&gt;
&lt;br /&gt;
Starting with KDE 3, configuration entries can be marked immutable, and once such a value has been read its value cannot be changed any more via KConfig or user entries in $KDEHOME . Entries can be marked immutable on an entry-by-entry, group, or file basis by adding a [$i] at the right places.&lt;br /&gt;
&lt;br /&gt;
Keyword[$i]=value prevents overwriting the default setting and marks this key immutable.&lt;br /&gt;
&lt;br /&gt;
Group[$i] sets all key entries of this group immutable.&lt;br /&gt;
To lock down the entire file, start the file with [$i] in a single line.&lt;br /&gt;
&lt;br /&gt;
[$e] and [$ie] are so called Shell Expansions and can be used to provide more dynamic default values.&lt;br /&gt;
&lt;br /&gt;
Normally the expanded form is written into the users configuration file after first use. To prevent this, it is recommended to lock the configuration entry down by using [$ie].&lt;br /&gt;
&lt;br /&gt;
=== KDE Startup Sequence -- what happens during startup ===&lt;br /&gt;
&lt;br /&gt;
Login Manager: kdm&lt;br /&gt;
Startkde script: startkde starts kdeinit (which application?) and ksmserver (session manager) during the users login.&lt;br /&gt;
Kdeinit is used to start all other KDE programs.&lt;br /&gt;
Inititialised Background Services:&lt;br /&gt;
dcopserver (deamon for Desktop Communication Process/Protocol)&lt;br /&gt;
kded (generic KDE service daemon for background processes)&lt;br /&gt;
kcminit (Initialisation service for hardware)&lt;br /&gt;
klauncher (Program launch without interface, not the ALT-F2 dialog)&lt;br /&gt;
knotify (User notifications)&lt;br /&gt;
ksmserver (Session management, startup desktop components)&lt;br /&gt;
Desktop Components:&lt;br /&gt;
Kwin (Taskmanager)&lt;br /&gt;
KDesktop (Icons)&lt;br /&gt;
Kicker (Panel)&lt;br /&gt;
Klipper (Dienstprogramm für Zwischenablage)&lt;br /&gt;
&lt;br /&gt;
=== DCOP, Desktop interprocess communication ===&lt;br /&gt;
&lt;br /&gt;
can be used for all kinds of KDE desktop automatisation and scripting (also as command line tool)&lt;br /&gt;
based on Inter Client Exchange (ICE) Protocol and uses UNIX sockets instead of remote calls&lt;br /&gt;
can also be used to run KDE applications in GNOME desktop&lt;br /&gt;
&lt;br /&gt;
== KIOSK Admin Tool Settings ==&lt;br /&gt;
...&lt;/div&gt;</summary>
		<author><name>Logixoul</name></author>	</entry>

	<entry>
		<id>http://techbase.kde.org/Getting_Started/Build/KDE4</id>
		<title>Getting Started/Build/KDE4</title>
		<link rel="alternate" type="text/html" href="http://techbase.kde.org/Getting_Started/Build/KDE4"/>
				<updated>2007-09-09T18:00:22Z</updated>
		
		<summary type="html">&lt;p&gt;Logixoul: /* kdebase */ typo&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Template:I18n/Language Navigation Bar|Getting_Started/Build/KDE4}}&lt;br /&gt;
&lt;br /&gt;
{{TutorialBrowser|&lt;br /&gt;
&lt;br /&gt;
series=Getting Started|&lt;br /&gt;
&lt;br /&gt;
name=Building KDE4 From Source|&lt;br /&gt;
&lt;br /&gt;
pre=[[../../Sources/Anonymous_SVN|Anonymous SVN Quickstart Guide]]|&lt;br /&gt;
&lt;br /&gt;
next=[[../../Set_up_KDE_4_for_development|Set up KDE 4 for development]]|&lt;br /&gt;
&lt;br /&gt;
reading=[http://kdesvn-build.kde.org/ kdesvn-build: The KDE From Subversion Build Tool]&amp;lt;br&amp;gt;[[../../Increased_Productivity_in_KDE4_with_Scripts|Increased Productivity in KDE4 with Scripts]]&amp;lt;br&amp;gt;[[Development/Tutorials/CMake |Introduction to CMake]]&amp;lt;br&amp;gt;[[../KDE4/FreeBSD|FreeBSD notes]]&amp;lt;br&amp;gt;[[../KDE4/Mac OS X|Instructions for Mac OS X]]&amp;lt;br&amp;gt;[[../KDE4/Windows|Instructions for MS Windows]]|&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== Abstract ==&lt;br /&gt;
&lt;br /&gt;
This tutorial shows one way to get KDE from trunk running on Linux/BSD systems. There are also tutorials for [[/FreeBSD|FreeBSD]], [http://www.kdelibs.com/ Windows], [[/Mac OS X|Mac OS X]] and [http://solaris.kde.org/ Solaris]. Throughout the tutorial the bash shell is used.&lt;br /&gt;
&lt;br /&gt;
{{warning|Expect a higher risk of build failure '''on Mondays''' when most kdelibs changes are committed. [http://developer.kde.org/~dirk/dashboard/ Dashboard] reports unexpected breakages. You are encouraged to fix failing modules.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== Required Software ==&lt;br /&gt;
&lt;br /&gt;
The following must be installed first before you can successfully complete this tutorial:&lt;br /&gt;
* gcc and g++ from the gcc project, preferably version 4.1 or higher&lt;br /&gt;
* svn, the subversion revision control client&lt;br /&gt;
* pkg-config&lt;br /&gt;
* development libraries and headers for X11, OpenGL (mesa-common-dev and libglu1-mesa-dev), libjpeg, libpng, libungif, [http://clucene.sourceforge.net/index.php/Downloads libclucene], [http://download.librdf.org/source/ librdf], libxml2 and libxslt&lt;br /&gt;
* the &amp;lt;tt&amp;gt;makeobj&amp;lt;/tt&amp;gt; script, which is part of kdesdk. You can install it as part of kdesdk (kdesdk-scripts on Debian) or similar package, or just download it itself from [http://websvn.kde.org/*checkout*/trunk/KDE/kdesdk/scripts/makeobj WebSVN]&lt;br /&gt;
* the [http://freedesktop.org/wiki/Software/shared-mime-info shared-mime-info package], which is the freedesktop MIME standard KDE is using now&lt;br /&gt;
* [http://boost.org/ boost], needed by kdebase; after compiling and/or installing boost, in order to make cmake aware about its location (FindBoost),  add boost directory (the one containing include subdirectory) to CMAKE_INCLUDE_PATH or set an environment variable called BOOST_ROOT pointing to boost directory.&lt;br /&gt;
&lt;br /&gt;
=== Ark Linux ===&lt;br /&gt;
In Ark Linux, the build dependencies you need are installed with:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code bash&amp;gt;&lt;br /&gt;
apt-get install devel-core libxml-devel libxslt-devel bzip2-devel \&lt;br /&gt;
clucene-devel librdf-devel shared-mime-info xorg-Mesa-libGL-devel \&lt;br /&gt;
subversion boost-devel doxygen giflib-devel dbus-devel openssl-devel \&lt;br /&gt;
alsa-lib-devel kdesdk-scripts qt4-devel&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you prefer a graphical interface, select the packages listed above in the &amp;quot;Install Software&amp;quot; tool in Mission Control.&lt;br /&gt;
&lt;br /&gt;
This includes installation of CMake, DBus and Qt - you can skip steps 5, 6 and 7.&lt;br /&gt;
&lt;br /&gt;
=== Kubuntu and Debian ===&lt;br /&gt;
&lt;br /&gt;
In Kubuntu 7.04 (Feisty) and Debian (Testing/Unstable) the build dependencies you need are installed with:&lt;br /&gt;
&amp;lt;code bash&amp;gt;&lt;br /&gt;
sudo aptitude install build-essential cdbs debhelper cmake \&lt;br /&gt;
libxml2-dev libxslt1-dev libbz2-dev libclucene-dev librdf-dev \&lt;br /&gt;
shared-mime-info libgl1-mesa-dev libglu1-mesa-dev mesa-common-dev \&lt;br /&gt;
libxext-dev libjpeg-dev libpng-dev subversion libsm-dev libxinerama-dev \&lt;br /&gt;
libxrender-dev libfontconfig-dev libboost-dev libxcursor-dev doxygen \&lt;br /&gt;
libungif4-dev libdbus-1-dev libgpgme11-dev libssl-dev libgpgme11-dev \&lt;br /&gt;
libasound2-dev kdesdk-scripts libpth-dev libjasper-dev ssh&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In Kubuntu 7.10 (Gutsy) you have to add:&lt;br /&gt;
&amp;lt;code bash&amp;gt;&lt;br /&gt;
sudo aptitude install dbus-x11&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For a fully functional API documentation framework you also need:&lt;br /&gt;
&amp;lt;code bash&amp;gt;&lt;br /&gt;
sudo aptitude install graphviz&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== openSUSE ===&lt;br /&gt;
&lt;br /&gt;
In openSUSE 10.2 and newer, you can install packages using [http://en.opensuse.org/Zypper Zypper]:&lt;br /&gt;
&amp;lt;code bash&amp;gt;&lt;br /&gt;
sudo zypper install &amp;lt;package-name&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In older releases of SUSE, you can use YaST:&lt;br /&gt;
&amp;lt;code bash&amp;gt;&lt;br /&gt;
su&lt;br /&gt;
yast -i &amp;lt;packagename&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Required Packages'''&lt;br /&gt;
&lt;br /&gt;
The packages you will need to install are:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
xorg-x11-devel&lt;br /&gt;
libxml2-devel &lt;br /&gt;
kdesdk3 &lt;br /&gt;
clucene-core-devel &lt;br /&gt;
boost-devel&lt;br /&gt;
libjpeg-devel &lt;br /&gt;
liblrdf-devel &lt;br /&gt;
libpng-devel &lt;br /&gt;
libxslt-devel &lt;br /&gt;
libredland-devel&lt;br /&gt;
Mesa-devel &lt;br /&gt;
giflib-devel &lt;br /&gt;
subversion &lt;br /&gt;
gcc &lt;br /&gt;
gcc-c++&lt;br /&gt;
gmp-devel (needed to build kdesupport)&lt;br /&gt;
strigi-devel (needed to build kdelibs)&lt;br /&gt;
gpgme-devel (needed to build kdepimlibs)&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Optional Packages'''&lt;br /&gt;
&lt;br /&gt;
You can skip the manual installation of Qt 4.3, CMake 2.4.6 and DBus by installing the adding the openSUSE Build Service KDE4 Repository to your installation sources.&lt;br /&gt;
&lt;br /&gt;
For openSUSE 10.2 and newer do:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
sudo zypper service-add http://software.opensuse.org/download/KDE:/KDE4/openSUSE_10.2 KDE4-102&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For older versions of SUSE Linux do:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
su&lt;br /&gt;
installation_sources -a http://software.opensuse.org/download/KDE:/KDE4/[YOUR SUSE LINUX VERSION]&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now install the following packages (and their dependencies):&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
cmake&lt;br /&gt;
dbus-1-devel&lt;br /&gt;
libqt4-devel&lt;br /&gt;
libqca2-devel (needed for building kdesupport)&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
And for fully functional apidox framework you also need:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
graphviz&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
CMake binary packages for openSUSE are available from [http://software.opensuse.org/download/devel:/tools:/building/ openSUSE build service].&lt;br /&gt;
&lt;br /&gt;
=== Gentoo ===&lt;br /&gt;
&lt;br /&gt;
==== Install by hand ====&lt;br /&gt;
&lt;br /&gt;
You can use stable ebuilds just remember to sync your portage before you begin.&lt;br /&gt;
&lt;br /&gt;
Remember: All commands are executed as root.&lt;br /&gt;
&lt;br /&gt;
Required:&lt;br /&gt;
&lt;br /&gt;
We need to allow the following keyword masked ebuilds.&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;code bash&amp;gt;&lt;br /&gt;
echo 'dev-util/cmake' &amp;gt;&amp;gt; /etc/portage/package.keywords&lt;br /&gt;
echo 'dev-cpp/clucene' &amp;gt;&amp;gt; /etc/portage/package.keywords&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Optional:&lt;br /&gt;
&lt;br /&gt;
If you decide not to use the KDE qt-copy, you need to keyword unmask Qt.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code bash&amp;gt;&lt;br /&gt;
echo 'x11-libs/qt' &amp;gt;&amp;gt; /etc/portage/package.keywords&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
And now need to mask any Clucene versions above 0.9.16a.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code bash&amp;gt;&lt;br /&gt;
echo '&amp;gt;dev-cpp/clucene-0.9.16a' &amp;gt;&amp;gt; /etc/portage/package.mask&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Make sure you have set the berkdb USE flag for redland, otherwise nepomuk won't work.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code bash&amp;gt;&lt;br /&gt;
echo 'dev-libs/redland berkdb' &amp;gt;&amp;gt; /etc/portage/package.use&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
These are the packages you will need to emerge, I included the update option into the emerge command so you will not re-emerge anything that you might already have installed.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code bash&amp;gt;&lt;br /&gt;
emerge -avu 'sys-devel/gcc' \&lt;br /&gt;
  'dev-util/subversion' \&lt;br /&gt;
  'dev-util/pkgconfig'  \&lt;br /&gt;
  'x11-base/xorg-x11' \&lt;br /&gt;
  'virtual/glut' \&lt;br /&gt;
  'media-libs/mesa' \&lt;br /&gt;
  'media-libs/jpeg' \&lt;br /&gt;
  'media-libs/libpng' \&lt;br /&gt;
  'media-libs/giflib' \&lt;br /&gt;
  'dev-cpp/clucene' \&lt;br /&gt;
  'dev-util/cppunit' \&lt;br /&gt;
  'media-libs/liblrdf' \&lt;br /&gt;
  'dev-libs/libxml2' \&lt;br /&gt;
  'dev-libs/libxslt' \&lt;br /&gt;
  'x11-misc/shared-mime-info' \&lt;br /&gt;
  'dev-libs/boost' \&lt;br /&gt;
  'dev-util/cmake' \&lt;br /&gt;
  'dev-libs/redland' \&lt;br /&gt;
  'sys-apps/dbus' \&lt;br /&gt;
  'sys-apps/hal'&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
You will also need to emerge either 'kde-base/kdesdk' or kde-base/kdesdk-scripts'.&lt;br /&gt;
&lt;br /&gt;
Optional:&lt;br /&gt;
&lt;br /&gt;
If you decided to use Gentoo's version of Qt4, you can emerge it using the following command.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code bash&amp;gt;&lt;br /&gt;
emerge -avu 'x11-libs/qt'&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
If you emerged DBUS, CMAKE, QT or HAL you may skip those sections respectively.&lt;br /&gt;
Good luck!&lt;br /&gt;
&lt;br /&gt;
==== Install via portage ====&lt;br /&gt;
&lt;br /&gt;
Also you can install the KDE 4 packages directly via &lt;br /&gt;
&amp;lt;code bash&amp;gt;&lt;br /&gt;
emerge -a &amp;lt;packagename&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To get the things you need, [http://gentoo-wiki.com/TIP_Overlays#Layman install layman] and then pull in the KDE overlay (which contains experimental KDE ebuilds): &lt;br /&gt;
&amp;lt;code bash&amp;gt;&lt;br /&gt;
layman -a kde&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
After this you need to adjust some USE-flags for KDE 4 and tell portage to use the testing KDE 4 ebuilds instead of the stable KDE 3 ones. &lt;br /&gt;
&lt;br /&gt;
That way portage will do the dependency tracking for you. &lt;br /&gt;
&lt;br /&gt;
Detailed instructions on building KDE 4 in Gentoo via portage can be found in the [http://overlays.gentoo.org/proj/kde/wiki KDE overlay wiki]. They are discussed in the thread [http://forums.gentoo.org/viewtopic-t-530111-postdays-0-postorder-asc-start-0.html KDE 4 monolithic ebuilds].&lt;br /&gt;
&lt;br /&gt;
== Create a user account for KDE4 development ==&lt;br /&gt;
&lt;br /&gt;
{{Note|&lt;br /&gt;
Some people like to have a separate user account for KDE 4 (for instance an old bug deleted files by mistake), and the instructions below were written with that approach.&lt;br /&gt;
&lt;br /&gt;
However it is much more efficient to do everything with a single user account, see [[Getting_Started/Increased_Productivity_in_KDE4_with_Scripts|Increased Productivity in KDE4 with Scripts]]&lt;br /&gt;
for more details. &lt;br /&gt;
&lt;br /&gt;
You can still follow the instructions below, but don't put the environment variables in your &amp;lt;tt&amp;gt;.bashrc&amp;lt;/tt&amp;gt;, put them in a separate file that you source to switch to the KDE 4 environment.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
=== Option 1: Command Line ===&lt;br /&gt;
&amp;lt;code bash&amp;gt;&lt;br /&gt;
useradd -m kde-devel&lt;br /&gt;
passwd kde-devel&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Option 2: Using KControl ===&lt;br /&gt;
&lt;br /&gt;
Instead of using the commands above, you can also use the User module in the KDE Control Center if you already have KDE3 installed.&lt;br /&gt;
&lt;br /&gt;
=== Setting up the environment ===&lt;br /&gt;
&lt;br /&gt;
Copy the {{path|~/.bashrc}} from your normal user account to the new kde-devel account. Next, copy and paste the contents of the [[Getting Started/Increased Productivity in KDE4 with Scripts/.bashrc|example .bashrc]] into {{path|~kde-devel/.bashrc}}. Be sure to comment out the line &amp;lt;tt&amp;gt;alias make=makeobj&amp;lt;/tt&amp;gt; if you do not have the &amp;lt;tt&amp;gt;[[Getting Started/Build/KDE4#Required Software|makeobj]]&amp;lt;/tt&amp;gt; command available. You will probably also want to modify the path to make sure it doesn't include your kde3 paths. Also if you want to use KDevelop to develop KDE 4 applications you may pass the ''-GKDevelop3'' flag to the ''cmake'' command (to make CMake generate KDevelop project files, it will help to avoid rebuilding in the future, see [[Getting_Started/Set_up_KDE_4_for_development#Setting_up_the_environment|this]]).  &lt;br /&gt;
To make it run, you have to open a new bash or to execute &lt;br /&gt;
&amp;lt;code bash&amp;gt;&lt;br /&gt;
source ~/.bashrc&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This will provide access to commands such as &amp;lt;tt&amp;gt;cmakekde&amp;lt;/tt&amp;gt; that are used in this tutorial as well as ensure that the proper paths are in place for Qt, KDE and CMake binaries.&lt;br /&gt;
&lt;br /&gt;
For more information, please read the [[Getting Started/Increased Productivity in KDE4 with Scripts]] tutorial.&lt;br /&gt;
&lt;br /&gt;
=== Switching to the New User ===&lt;br /&gt;
Switch to the user kde-devel: (don't forget the dash)&lt;br /&gt;
&amp;lt;code bash&amp;gt;&lt;br /&gt;
ssh -X kde-devel@localhost&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== The development user's shell ==&lt;br /&gt;
&lt;br /&gt;
On some systems a new user is configured by default to use {{path|/bin/sh}}. If this is not the case on your system, you can skip this section. Using {{path|/bin/sh}} can be very inconvenient to work with and you may want to change it to {{path|/bin/bash}} or another shell.&lt;br /&gt;
On Ark Linux, you can skip this step - {{path|/bin/sh}} is {{path|bash}} on Ark Linux.&lt;br /&gt;
&lt;br /&gt;
=== Option 1: As the kde-devel user ===&lt;br /&gt;
&lt;br /&gt;
If you don't have root privileges and your system supports the changing of your own shell with the &amp;lt;tt&amp;gt;chsh&amp;lt;/tt&amp;gt; application, then you could try to change your shell to {{path|/bin/bash}} by using:&lt;br /&gt;
&amp;lt;code bash&amp;gt;&lt;br /&gt;
chsh -s /bin/bash kde-devel&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Option 2: As the root user ===&lt;br /&gt;
&lt;br /&gt;
If your system comes with the &amp;lt;tt&amp;gt;usermod&amp;lt;/tt&amp;gt; application you can run the following command as root: &amp;lt;tt&amp;gt;usermod -s /bin/bash&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Another option is to use the &amp;lt;tt&amp;gt;vipw&amp;lt;/tt&amp;gt; application as root to safely edit your {{path|/etc/passwd}}. Locate 'kde-devel' in the the file. Change '{{path|/bin/sh}}' at the end of the line to read '{{path|/bin/bash}}', save your changes and exit.&lt;br /&gt;
&lt;br /&gt;
The new shell will be started automatically when you log in as the kde-devel user again.&lt;br /&gt;
&lt;br /&gt;
== D-Bus ==&lt;br /&gt;
QtDBus and KDE are known to work with D-Bus versions 0.62, as well as 0.92 and upwards. Versions 0.60 and 0.61 may work too but are not tested. Versions 0.90 and 0.91 are known not to work. We recommend using post-1.0 release versions (at least 0.94), so consider upgrading if you haven't done so.&lt;br /&gt;
&lt;br /&gt;
You may skip this section if you have a recent D-Bus version or if you don't want to upgrade. You probably want to skip building the bindings until/unless you know you will be building HAL (see below).&lt;br /&gt;
&lt;br /&gt;
Before running these steps in the recipe, make sure your X11 headers and libraries are available. The configure script run on line 5 of the following instructions should output:&lt;br /&gt;
 Building X11 code:        yes&lt;br /&gt;
&lt;br /&gt;
=== The Recipe ===&lt;br /&gt;
&lt;br /&gt;
{{tip|Make sure you did set up your environment correctly as described [[Getting_Started/Build/KDE4#Setting_up_the_environment|above]]. This is necessary for the &amp;lt;tt&amp;gt;cs&amp;lt;/tt&amp;gt; and &amp;lt;tt&amp;gt;cb&amp;lt;/tt&amp;gt; functions to work.}}&lt;br /&gt;
&lt;br /&gt;
 cs # [[Getting_Started/Increased_Productivity_in_KDE4_with_Scripts/.bashrc|'cs' is a bash function, click here to learn more]] &lt;br /&gt;
 wget http://dbus.freedesktop.org/releases/dbus/dbus-1.0.2.tar.gz&lt;br /&gt;
 tar -xvzf dbus-1.0.2.tar.gz&lt;br /&gt;
 cd dbus-1.0.2/&lt;br /&gt;
 ./configure --prefix=$DBUSDIR --localstatedir=/var&lt;br /&gt;
 make&lt;br /&gt;
 sudo make install&lt;br /&gt;
 sudo dbus-uuidgen --ensure&lt;br /&gt;
&lt;br /&gt;
 cs # see above&lt;br /&gt;
 wget http://dbus.freedesktop.org/releases/dbus-glib/dbus-glib-0.74.tar.gz&lt;br /&gt;
 tar -xvzf dbus-glib-0.74.tar.gz&lt;br /&gt;
 cd dbus-glib-0.74/&lt;br /&gt;
 ./configure --prefix=$DBUSDIR&lt;br /&gt;
 make&lt;br /&gt;
 sudo make install&lt;br /&gt;
&lt;br /&gt;
=== What's Happening === &lt;br /&gt;
After changing into the source directory (line 1), D-Bus source code is downloaded from freedesktop.org (line 2) and unpacked (line 3). After going into the newly created D-Bus directory (line 4), the build is set up using the supplied {{path|configure}} script (line 5). After building (line 6) and installing (line 7) D-Bus, we use the &amp;lt;tt&amp;gt;dbus-uuidgen&amp;lt;/tt&amp;gt; tool to install a machine identification file that allows the bus to start automatically when the desktop session starts (line 8).&lt;br /&gt;
&lt;br /&gt;
Note that you need write access to {{path|/var}} for the last two steps. If your system does not have the sudo command, you can use the &amp;lt;tt&amp;gt;su&amp;lt;/tt&amp;gt; command instead, e.g. &amp;lt;tt&amp;gt;su -c &amp;quot;make install&amp;quot;&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
The steps for building the glib bindings are similar to the above.&lt;br /&gt;
&lt;br /&gt;
== CMake ==&lt;br /&gt;
Skip this if you have [http://cmake.org/ CMake] &amp;gt;=2.4.5 installed. &lt;br /&gt;
You should be able to directly use the binary packages available on the [http://www.cmake.org/HTML/Download.html CMake site]. There are also distribution specific packages available.&lt;br /&gt;
&lt;br /&gt;
=== The Recipe ===&lt;br /&gt;
&amp;lt;!--'cs' and 'cb' are NOT typos!--&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 cs # [[Getting_Started/Increased_Productivity_in_KDE4_with_Scripts/.bashrc|'cs' is a bash function, click Here to learn more]] &lt;br /&gt;
 wget http://www.cmake.org/files/v2.4/cmake-2.4.6.tar.gz&lt;br /&gt;
 tar -zxf cmake-2.4.6.tar.gz&lt;br /&gt;
 mkdir cmake-build&lt;br /&gt;
 cd cmake-build &lt;br /&gt;
 ../cmake-2.4.6/bootstrap&lt;br /&gt;
 make&lt;br /&gt;
 sudo make install&lt;br /&gt;
&lt;br /&gt;
=== What's Happening ===&lt;br /&gt;
First, we go back to the &amp;lt;tt&amp;gt;kde-devel&amp;lt;/tt&amp;gt; user's source directory (line 1), get the CMake sources (line 2) and unpack them (line 3). We create a directory to build CMake in (line 4) and go into it (line 5). We then run the CMake bootstrap script to set up the CMake build (line 6), then make (line 7) and install it (line 8) using the root user.&lt;br /&gt;
&lt;br /&gt;
If your system does not have the &amp;lt;tt&amp;gt;sudo&amp;lt;/tt&amp;gt; command, you can instead do &amp;lt;tt&amp;gt;su -c &amp;quot;make install&amp;quot;&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Qt ==&lt;br /&gt;
Next we need to get the Qt4 that is in KDE's source repository. KDE is guaranteed to build against any Qt 4.3. Qt 4.2 and earlier are not supported and will not work. You should use the copy in the KDE Subversion servers. (note: some distros, like Debian, tend to supply Qt with patches from KDE svn applied, so you may want to cheat and use precompiled Qt from your distro)&lt;br /&gt;
&lt;br /&gt;
=== The Recipe ===&lt;br /&gt;
 cd&lt;br /&gt;
 svn checkout svn://anonsvn.kde.org/home/kde/trunk/qt-copy&lt;br /&gt;
 cd qt-copy&lt;br /&gt;
 ./apply_patches&lt;br /&gt;
 ./configure -qt-gif -no-exceptions -debug -fast \&lt;br /&gt;
  -prefix $QTDIR -nomake examples -nomake demos&lt;br /&gt;
 make -j2&lt;br /&gt;
&lt;br /&gt;
 # if we don't install, we'll just clear obj files to&lt;br /&gt;
 # save disk space&lt;br /&gt;
 if [ $QTDIR = `pwd` ]; then \&lt;br /&gt;
 find . -name '*.o' -delete ; \&lt;br /&gt;
 else make install; fi;&lt;br /&gt;
&lt;br /&gt;
=== What's Happening ===&lt;br /&gt;
We switch back to the &amp;lt;tt&amp;gt;kde-devel&amp;lt;/tt&amp;gt; user's home directory (line 1) and download the source code using subversion (svn) from KDE's repository (line 2). After changing into the resulting {{path|qt-copy}} directory (line 3), we run a script that manages the patches that come with &amp;lt;tt&amp;gt;qt-copy&amp;lt;/tt&amp;gt; (line 4). &lt;br /&gt;
&lt;br /&gt;
Once the patches have been applied, we then set up the build using the &amp;lt;tt&amp;gt;configure&amp;lt;/tt&amp;gt; script (line 5-6). The various command line options used are explained in the {{path|qt-copy/README.qt-copy}} file. Finally, we build the minimal requirements for KDE (line 7) and install (line 10) Qt. If install dir is the same as the current dir (line 8), then we just free some space (line 9) instead. If you want all the example and demo applications, you can either build them individually or simply do a &amp;lt;tt&amp;gt;make&amp;lt;/tt&amp;gt; from the {{path|qt-copy}} directory. &lt;br /&gt;
&lt;br /&gt;
Note that the installation does not require root as it installs Qt locally into {{path|$QTDIR}}. Anyway, installation is only needed if {{path|$QTDIR}} differs from {{path|$HOME/qt-copy}}, which is not the case if you have exactly followed the instructions.&lt;br /&gt;
&lt;br /&gt;
=== Troubleshooting ===&lt;br /&gt;
If you get &amp;quot;error: X11/Xlib.h: No such file or directory&amp;quot;, install the devel package of &amp;lt;tt&amp;gt;xorg&amp;lt;/tt&amp;gt; (the actual name may vary between operating systems, for example it is &amp;lt;tt&amp;gt;xorg-dev&amp;lt;/tt&amp;gt; on Ubuntu based systems such as Kubuntu). &lt;br /&gt;
&lt;br /&gt;
If you get an error in the configure step about missing defines, check the value of &amp;lt;tt&amp;gt;$QMAKESPEC&amp;lt;/tt&amp;gt;.  Some distributions set this to point directly to the system-installed Qt.  If &amp;lt;tt&amp;gt;unset QMAKESPEC&amp;lt;/tt&amp;gt; solves the problem, you probably want to add it to the &amp;lt;tt&amp;gt;~/.bashrc&amp;lt;/tt&amp;gt; script.&lt;br /&gt;
&lt;br /&gt;
If you get an error &amp;quot;.pch/debug-shared/QtCore&amp;quot;, this is because Qt-4.3 enables precompiled headers if your gcc supports it, but for some reason it doesn't work for you. If you use distcc, configure qt with -no-pch. If you use icecream, update to the latest icecream from svn trunk.&lt;br /&gt;
&lt;br /&gt;
Try running any Qt program, like {{program|assistant}}. '''Note:''' You may need to run &amp;lt;tt&amp;gt;xhost +local:kde-devel&amp;lt;/tt&amp;gt; as your regular kde3 user to run this application.  If it crashes in QSpanData::adjustSpanMethods, then your problem is the oxygen style. Try removing {{path|lib/kde4/plugins/styles/kstyle-oxygen.so}} and {{path|lib/kde4/plugins/styles/oxygen.so}} if they exist in the KDE install prefix.&lt;br /&gt;
&lt;br /&gt;
== HAL ==&lt;br /&gt;
&lt;br /&gt;
{{tip|You can use qdbusviewer to see if you have org.freedesktop.hal. If not, you might need a newer version of hal. If you have org.freedesktop.hal, you probably don't need to, and don't ''want'' to, roll your own HAL.}}&lt;br /&gt;
&lt;br /&gt;
If your system requires you to build a newer version of HAL, there's a decent chance you'll need to build other stuff as well, some of which may not be straight forward. Since this should only be required for older distros, instructions are on [[Getting_Started/Build/HAL| a separate page]].&lt;br /&gt;
&lt;br /&gt;
== kdesupport ==&lt;br /&gt;
&lt;br /&gt;
{{warning|If you have jumped to this section without reading [[Getting_Started/Build/KDE4#Setting_up_the_environment|Setting Up The Environment]], '''the recipes provided will not work'''. &lt;br /&gt;
&lt;br /&gt;
The recipes are not in error; &amp;lt;tt&amp;gt;cs&amp;lt;/tt&amp;gt; and &amp;lt;tt&amp;gt;cb&amp;lt;/tt&amp;gt; are not typos. Your environment '''needs''' to be set up correctly for these instructions to work for you.}}&lt;br /&gt;
&lt;br /&gt;
There are several libraries that KDE applications rely on in the kdesupport module. This includes Strigi and Soprano for file metadata and search, QImageBlitz for image manipulation needed in kdebase, eigen for visual effects in applications such as Kalzium, taglib for music players and qca for some cryptographic needs. &lt;br /&gt;
&lt;br /&gt;
Strigi itself has a few dependencies as well: you will need the libraries and headers for libz, libbz2, openssl (libcrypto or libssl), libclucene (=0.9.16; version 0.9.17 does '''not''' work), and either libxml2 or libexpat.&lt;br /&gt;
&lt;br /&gt;
=== The Recipe ===&lt;br /&gt;
&amp;lt;!--'cs' and 'cb' are NOT typos!--&amp;gt;&lt;br /&gt;
 cs # [[Getting_Started/Increased_Productivity_in_KDE4_with_Scripts/.bashrc|cs is not a typo]]&lt;br /&gt;
 svn checkout svn://anonsvn.kde.org/home/kde/trunk/kdesupport/&lt;br /&gt;
 cd kdesupport&lt;br /&gt;
 cmakekde&lt;br /&gt;
&lt;br /&gt;
=== What's Happening ===&lt;br /&gt;
We change to the base source directory (line 1). We download the sources in kdesupport using subversion (line 2), go into the new {{path|~/kde/src/kdesupport}} directory (line 3), and commence the build (line 4). This will leave us in the kdesupport build directory after the build is completed.&lt;br /&gt;
&lt;br /&gt;
=== Troubleshooting ===&lt;br /&gt;
If you get &lt;br /&gt;
   cmakekde: command not found&lt;br /&gt;
then you have to go manualy into the kdesupport directory in ~ and execute the command cmakekde. if this still doesnt work, then something is wrong with your bashrc.&lt;br /&gt;
&lt;br /&gt;
If you get &lt;br /&gt;
 CMake Error: This project requires some variables to be set,&lt;br /&gt;
 and cmake can not find them.&lt;br /&gt;
 Please set the following variables:&lt;br /&gt;
 LIBXML2_INCLUDE_DIR (ADVANCED)&lt;br /&gt;
you should install the development package for libxml2.&lt;br /&gt;
&lt;br /&gt;
If you get &lt;br /&gt;
 CMake Error: Could NOT find REDLAND&lt;br /&gt;
then you need librdf from the Redland.&lt;br /&gt;
If your distribution does not provide the librdf package, you can download the source there: [http://download.librdf.org/source/ http://download.librdf.org/source/] and build it.&lt;br /&gt;
(Gentoo users: The ebuild for librdf is named dev-libs/redland)&lt;br /&gt;
&lt;br /&gt;
If you get&lt;br /&gt;
 Fetching external item into 'kdesupport/admin'&lt;br /&gt;
 Error validating server certificate for 'https://...'&lt;br /&gt;
see [http://techbase.kde.org/Getting_Started/Sources/Using_Subversion_with_KDE Using Subversion with KDE]&lt;br /&gt;
&lt;br /&gt;
If you get&lt;br /&gt;
 FILE cannot create directory: /usr/lib[64]/qt4/plugins/crypto. Maybe need administrative privileges.&lt;br /&gt;
 - - -&lt;br /&gt;
 make: *** [install] Error 255&lt;br /&gt;
take a second look in the .bashrc file described above, are paths correct?  Alternatively, you may see this error if you decided to use a distribution installed version of qt4 and skipped the Qt install above.  Either install qt-copy as describe above, or &amp;quot;sudo make install&amp;quot;. If you use &amp;quot;sudo make install&amp;quot;, make sure you that you change the ownership back to your user for some of the ~/kde subdirectories that were effected by using sudo (ie. &amp;quot;&amp;lt;tt&amp;gt;sudo chown -R kde-devel:kde-devel ~/kde&amp;lt;/tt&amp;gt;&amp;quot;).&lt;br /&gt;
&lt;br /&gt;
== kdelibs ==&lt;br /&gt;
&lt;br /&gt;
We can now move on to building KDE's base libraries.&lt;br /&gt;
&lt;br /&gt;
=== The Recipe ===&lt;br /&gt;
 cd   &lt;br /&gt;
 cs # [[Getting_Started/Increased_Productivity_in_KDE4_with_Scripts/.bashrc|cs is not a typo]]&lt;br /&gt;
 mkdir KDE &amp;amp;&amp;amp; cd KDE&lt;br /&gt;
 svn checkout svn://anonsvn.kde.org/home/kde/trunk/KDE/kdelibs&lt;br /&gt;
 cd kdelibs&lt;br /&gt;
 cmakekde&lt;br /&gt;
&lt;br /&gt;
=== What's Happening ===&lt;br /&gt;
We change to the base source directory (line 1) then make and go into the KDE directory (line 2). We download the sources for kdelibs using subversion (line 3), go into the new {{path|~/kde/src/KDE/kdelibs}} directory (line 4), and commence the build (line 5). This will leave us in the &amp;lt;tt&amp;gt;kdelibs&amp;lt;/tt&amp;gt; build directory after the build is completed.&lt;br /&gt;
&lt;br /&gt;
{{tip|There might be missing dependencies on your system! They are easily overlooked in the output of &amp;lt;tt&amp;gt;cmakekde&amp;lt;/tt&amp;gt;.&lt;br /&gt;
You might want to do a &amp;lt;tt&amp;gt;cmake $KDE_SRC/KDE/MODULE_NAME&amp;lt;/tt&amp;gt; prior to compiling any kde modules (like kdelibs, kdepimlibs etc.)}}&lt;br /&gt;
&lt;br /&gt;
=== Additional KDE-specific CMake modules ===&lt;br /&gt;
There are additional CMake modules in {{path|kdelibs/cmake/modules/}} that are necessary for building KDE4 applications. These will be installed for you when  kdelibs itself is installed.&lt;br /&gt;
&lt;br /&gt;
=== Troubleshooting ===&lt;br /&gt;
If you have problems compiling kdelibs, first make sure the software in the [[Getting_Started/Build/KDE4#Required_Software|Required Software]] section above is installed and works. Other possible hints include:&lt;br /&gt;
* If the &amp;lt;tt&amp;gt;cmakekde&amp;lt;/tt&amp;gt; command fails stating that CMake requires an out of source build directory, remove {{path|~/kde/src/KDE/kdelibs/CMakeCache.txt}}, and try again.&lt;br /&gt;
&lt;br /&gt;
If &amp;lt;tt&amp;gt;cmakekde&amp;lt;/tt&amp;gt; still gives the same error then try this &lt;br /&gt;
 cd&lt;br /&gt;
 cmake -DCMAKE_INSTALL_PREFIX=$KDEDIR \&lt;br /&gt;
 -DCMAKE_BUILD_TYPE=debugfull \&lt;br /&gt;
 -DKDE4_BUILD_TESTS=ON \&lt;br /&gt;
 ~/kde/src/KDE/kdelibs&lt;br /&gt;
 make&lt;br /&gt;
 make install&lt;br /&gt;
* If you received an error stating &amp;quot;Please create a separate build directory and run 'cmake path_to_kdelibs [options]' there.&amp;quot;, then you need to change to your build directory before running cmakekde. (e.g &amp;lt;tt&amp;gt;cs KDE/kdelibs &amp;amp;&amp;amp; cb &amp;amp;&amp;amp; cmakekde&amp;lt;/tt&amp;gt;) If the message stays, run 'svn status' in the kdelibs directory and remove all files labeled with '?'.&lt;br /&gt;
* If Qt wasn't found or the wrong version of Qt was found, make sure that the qmake from the Qt you need is the first qmake in the path.&lt;br /&gt;
* If the problems persist, try the CMake make-option &amp;lt;tt&amp;gt;--keep-going&amp;lt;/tt&amp;gt;.&lt;br /&gt;
* Here you need the libungif library, otherwise you will get an error message like &amp;quot;&amp;lt;tt&amp;gt;Could NOT find GIF&amp;lt;/tt&amp;gt;&amp;quot;.&lt;br /&gt;
* Qt-4.3 upgrade: if you get a link error in kjsembed talking about QScriptEngine, edit CMakeCache.txt in kdelibs and remove the lines that talk about QT_QTUITOOLS_LIBRARY, then type make again (that static library has a new dependency, and the cmake code that adds it needs to run).&lt;br /&gt;
* if you get &amp;lt;code&amp;gt;CMake Error: KDE Requires Qt to be built with SSL support&lt;br /&gt;
&amp;lt;/code&amp;gt;, install openssl-devel, remove CMakeCache.txt and re-compile QT.&lt;br /&gt;
* if you get &amp;lt;code&amp;gt;kdelibs/kimgio/ico.cpp:188: undefined reference to `QImage::jumpTable()'&amp;lt;/code&amp;gt; it means you compiled QT without QT3 support(no, linking to a true QT3 install won't work)&lt;br /&gt;
&lt;br /&gt;
== kdepimlibs ==&lt;br /&gt;
After &amp;lt;tt&amp;gt;kdelibs&amp;lt;/tt&amp;gt;, but before ''kdebase'', you need to build and install ''kdepimlibs''.&lt;br /&gt;
&lt;br /&gt;
=== The Recipe ===&lt;br /&gt;
&amp;lt;!--'cs' and 'cb' are NOT typos!--&amp;gt;&lt;br /&gt;
 cs KDE # [[Getting_Started/Increased_Productivity_in_KDE4_with_Scripts/.bashrc|cs is not a typo]]&lt;br /&gt;
 svn checkout svn://anonsvn.kde.org/home/kde/trunk/KDE/kdepimlibs&lt;br /&gt;
 cd kdepimlibs&lt;br /&gt;
 cmakekde&lt;br /&gt;
&lt;br /&gt;
=== What's Happening ===&lt;br /&gt;
We go into the KDE source directory (line 1), download the source code for kdepimlibs using subversion (line 2) and then go into the new {{path|~/kde/src/KDE/kdepimlibs}} directory (line 3). We then commence the build (line 4). This will leave us in the &amp;lt;tt&amp;gt;kdepimlibs&amp;lt;/tt&amp;gt; build directory after the build is completed.&lt;br /&gt;
&lt;br /&gt;
=== Troubleshooting ===&lt;br /&gt;
If you have trouble compiling kdepimlibs:&lt;br /&gt;
* the cmakekde command may require a later version of the gpgme library.  This is available from the project's web site: http://www.gnupg.org/(en)/download/index.html - please note that the build of gpgme also requires libgpg-error, also available from the same location.  Both libraries are installed by the &amp;quot;./configure&amp;quot;, &amp;quot;make&amp;quot; and &amp;quot;sudo make install&amp;quot; sequence, with the gpgme library configured with the additional &amp;quot;--with-gpg-error-prefix&amp;quot; parameter.  You may need to overwrite your existing &amp;quot;/usr/bin/gpgme-config&amp;quot; file with the newer version for the kdepimlibs to pick up the new install.&lt;br /&gt;
* if you get the error &amp;quot;cannot find -lpth&amp;quot; from /usr/bin/ld, then make sure you have The GNU Portable Threads (libpth-dev for Debian).&lt;br /&gt;
&lt;br /&gt;
== kdebase ==&lt;br /&gt;
kdebase is divided into three parts:&lt;br /&gt;
* '''apps'''&lt;br /&gt;
:This contains applications like Dolphin or KWrite.&lt;br /&gt;
* '''runtime'''&lt;br /&gt;
:This contains things needed by every application at runtime, like icons. It is a required dependency for each KDE application, so you have to compile and install this.&lt;br /&gt;
* '''workspace'''&lt;br /&gt;
:This contains things specific to the KDE desktop, like Plasma or the window manager. Most stuff here depends on X11. You only need it if you want to build a full KDE desktop.&lt;br /&gt;
&lt;br /&gt;
You can build all of kdebase at once, which is described in the recipe below. If you only want to build kdebase-runtime, which is the only requirement, you can replace &amp;lt;code bash&amp;gt;cd kdebase&amp;lt;/code&amp;gt; with &amp;lt;code bash&amp;gt;cd kdebase/runtime&amp;lt;/code&amp;gt; in the recipe below.&lt;br /&gt;
&lt;br /&gt;
=== The Recipe ===&lt;br /&gt;
&amp;lt;!--'cs' and 'cb' are NOT typos!--&amp;gt;&lt;br /&gt;
 cs KDE # [[Getting_Started/Increased_Productivity_in_KDE4_with_Scripts/.bashrc|cs is not a typo]]&lt;br /&gt;
 svn checkout svn://anonsvn.kde.org/home/kde/trunk/KDE/kdebase&lt;br /&gt;
 cd kdebase&lt;br /&gt;
 cmakekde&lt;br /&gt;
&lt;br /&gt;
=== Troubleshooting ===&lt;br /&gt;
If you have troubles compiling kdebase:&lt;br /&gt;
* Make sure you have the &amp;lt;tt&amp;gt;libxss headers&amp;lt;/tt&amp;gt; installed. (Usually you got undefined references on xscreensaver objects if you do not have those headers)&lt;br /&gt;
* &amp;lt;tt&amp;gt;which meinproc&amp;lt;/tt&amp;gt; has to deliver {{path|/home/kde-devel/kde/bin/meinproc}}&lt;br /&gt;
* if cmakekde can not find the path of kdepimlibs, edit the file {{path|$KDE_BUILD/KDE/kdebase/CMakeCache.txt}} and manually set &amp;lt;tt&amp;gt;KDEPIMLIBS_INCLUDE_DIR:PATH=$KDE_BUILD/kdepimlibs&amp;lt;/tt&amp;gt;&lt;br /&gt;
* if you get an error saying &amp;quot;Please set the following variables: X11_XTest_LIB (ADVANCED)&amp;quot;, install the devel package of &amp;lt;tt&amp;gt;Xtst&amp;lt;/tt&amp;gt;. On some systems, this is packaged separately from &amp;lt;tt&amp;gt;xext&amp;lt;/tt&amp;gt; and called &amp;lt;tt&amp;gt;x11proto-xext-dev&amp;lt;/tt&amp;gt; or &amp;lt;tt&amp;gt;libxtst-dev&amp;lt;/tt&amp;gt;. You may also need to remove the CMakeCache.txt file in the build dir after installing the package.&lt;br /&gt;
* the same for &amp;quot;X11_Xinerama_LIB (ADVANCED)&amp;quot; where you will need the devel package for &amp;lt;tt&amp;gt;xinerama&amp;lt;/tt&amp;gt;.&lt;br /&gt;
* if you get an error complaining about a missing variable X11_Xrandr_LIB, you need the devel package for libxrandr (libxrandr-devel on ubuntu-systems)&lt;br /&gt;
* if you get the error &amp;quot;Please set the following variables: FONTCONFIG_INCLUDE_DIR, FONTCONFIG_LIBRARIES (ADVANCED)&amp;quot;, then you need to install  the libfontconfig headers&lt;br /&gt;
* if you get the error &amp;quot;CMake Error: This project requires some variables to be set, and cmake can not find them. Please set the following variables: KMETADATA_LIBRARIES&amp;quot;, you need to install soprano from kdesupport and to rebuild kdelibs&lt;br /&gt;
* if you get the error &amp;quot;‘XserverRegion’ does not name a type&amp;quot; make sure you have libxcomposite headers installed (&amp;lt;tt&amp;gt;libxcomposite-dev&amp;lt;/tt&amp;gt; in ubuntu)&lt;br /&gt;
* if you get the error &amp;quot;CMake Error: This project requires some variables to be set, and cmake can not find them. Please set the following variables: QT_QTOPENGL_LIBRARY (ADVANCED) &amp;quot;, try editing CMakeCache.txt and setting QT_QTOPENGL_LIBRARY:FILEPATH=/home/kde-devel/qt-copy/lib/libQtOpenGL.so&lt;br /&gt;
&lt;br /&gt;
* if you get messages as &amp;quot;KDE4_INSTALL_HANDBOOK() is deprecated. Remove it please. Now all is done in KDE4_CREATE_HANDBOOK.&amp;quot; then, either find the files containing the offending line and comment it out manually, or run the following script in ~/kde/src/KDE/kdebase: [http://www.plamadeala.com/files/macros_corrector.sh macros_corrector.sh]. It will just REMOVE the line that has &amp;quot;kde4_create_handbook&amp;quot; in it from all the found files.&lt;br /&gt;
&lt;br /&gt;
== Running KDE 4 programs ==&lt;br /&gt;
&lt;br /&gt;
You can now run KDE 4 programs (e.g. kwrite) by typing:&lt;br /&gt;
 ssh -X kde-devel@localhost&lt;br /&gt;
 kwrite &lt;br /&gt;
&lt;br /&gt;
=== TroubleShooting ===&lt;br /&gt;
&lt;br /&gt;
* If you get &lt;br /&gt;
 KUniqueApplication: Cannot find the D-Bus session server&lt;br /&gt;
check if you can access the display, e.g. type&lt;br /&gt;
 xclock&lt;br /&gt;
and watch if a clock appears on the screen.&lt;br /&gt;
&lt;br /&gt;
* If you get something like&lt;br /&gt;
 Error: standard icon theme &amp;quot;oxygen&amp;quot; not found!&lt;br /&gt;
 &lt;br /&gt;
 ASSERT: &amp;quot;!isEmpty()&amp;quot; in file /home/kde-devel/qt-copy/include/QtCore/../../src/corelib/tools/qlist.h, line 245&lt;br /&gt;
 Aborted (core dumped)&lt;br /&gt;
You need to install kdebase - see above. It is enough to install the &amp;quot;runtime&amp;quot; directory from kdebase.&lt;br /&gt;
&lt;br /&gt;
== Generating local API documentation ==&lt;br /&gt;
Although the API documentation for KDE is available online at [http://api.kde.org api.kde.org], it is sometimes useful to have it on your own disk, for example when you want to use [[Getting_Started/Set_up_KDE_4_for_development#KDevelop|KDevelop]] for browsing the documentation or when you are not able to be online all the time.&lt;br /&gt;
&lt;br /&gt;
Be aware that generating the API documentation can take several hours and takes almost half a gigabyte of diskspace.&lt;br /&gt;
The generation is handled by a script in {{path|kdelibs/doc/api}}, you need &amp;lt;tt&amp;gt;doxygen&amp;lt;/tt&amp;gt; to be able to run it. &lt;br /&gt;
&lt;br /&gt;
To build the API documentation for kdelibs, type the following:&lt;br /&gt;
&amp;lt;!--'cs' and 'cb' are NOT typos!--&amp;gt;&lt;br /&gt;
 cs KDE/kdelibs # [[Getting_Started/Increased_Productivity_in_KDE4_with_Scripts/.bashrc|cs is not a typo]]&lt;br /&gt;
 $KDE_SRC/KDE/kdelibs/doc/api/doxygen.sh \&lt;br /&gt;
 --doxdatadir=$KDE_SRC/KDE/kdelibs/doc/common .&lt;br /&gt;
&lt;br /&gt;
Repeat for other modules as desired.&amp;lt;br&amp;gt;&lt;br /&gt;
 cd &amp;lt;module home&amp;gt;&lt;br /&gt;
 $KDE_SRC/KDE/kdelibs/doc/api/doxygen.sh \&lt;br /&gt;
 --doxdatadir=$KDE_SRC/KDE/kdelibs/doc/common .&lt;br /&gt;
&lt;br /&gt;
Another, even easier method involves downloading this [[Doxyfile]] to your local system. Then simply change directory to where you want to create the documentation and run&lt;br /&gt;
&amp;lt;code bash&amp;gt;&lt;br /&gt;
% doxygen /path/to/Doxyfile&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
Then review the file {{path|doxygen.log}} to see the doxygen errors and warnings. You'll find the actual documentation in the {{path|apidocs}} subdirectory.&lt;br /&gt;
&lt;br /&gt;
== Staying up to date ==&lt;br /&gt;
&lt;br /&gt;
In order to keep the kde4 installation up to date, each of the modules installed should be updated periodically. As Monday is the day for big changes in kdelibs, Tuesday may be the best day to do this. For each module checked out, run &amp;lt;tt&amp;gt;svn up&amp;lt;/tt&amp;gt; and &amp;lt;tt&amp;gt;make&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
For example:&lt;br /&gt;
&amp;lt;code bash&amp;gt;&lt;br /&gt;
cs kdesupport # cs is not a typo&lt;br /&gt;
svn up&lt;br /&gt;
cb # cb is not a typo&lt;br /&gt;
make -j2 VERBOSE=1 &amp;amp;&amp;amp; make install&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== General troubleshooting ==&lt;br /&gt;
&lt;br /&gt;
What can happen over time, after some &amp;lt;tt&amp;gt;svn up&amp;lt;/tt&amp;gt; commands, is that some of the tools used in the KDE build chain change their output format. For example, &amp;lt;tt&amp;gt;kcfg&amp;lt;/tt&amp;gt; files are read by &amp;lt;tt&amp;gt;kconfig_compiler&amp;lt;/tt&amp;gt; to produce configuration dialogs. CMake cannot detect those changes, and the compilation might fail. A workaround is to always force a re-generation of all such files:&lt;br /&gt;
 find $KDE_SRC/KDE/kdebase -name &amp;quot;*.kcfg&amp;quot; | xargs touch&lt;br /&gt;
The same applies to &amp;lt;tt&amp;gt;ui&amp;lt;/tt&amp;gt; files as produced by Qt designer.&lt;br /&gt;
&lt;br /&gt;
== Success! ==&lt;br /&gt;
&lt;br /&gt;
You are now ready to start building other svn modules in the same fashion as you built kdebase, running and testing KDE4 or writing your own patches and applications.&lt;br /&gt;
&lt;br /&gt;
See the [[Getting Started/Set up KDE 4 for development|Set up KDE 4 for development]] tutorial for how to start KDE 4 applications and how to use KDevelop to work on them.&lt;br /&gt;
&lt;br /&gt;
[[Category:Build KDE]]&lt;br /&gt;
[[Category:KDE4]]&lt;/div&gt;</summary>
		<author><name>Logixoul</name></author>	</entry>

	<entry>
		<id>http://techbase.kde.org/KDE_System_Administration/Configuration_Files</id>
		<title>KDE System Administration/Configuration Files</title>
		<link rel="alternate" type="text/html" href="http://techbase.kde.org/KDE_System_Administration/Configuration_Files"/>
				<updated>2007-09-09T17:59:25Z</updated>
		
		<summary type="html">&lt;p&gt;Logixoul: SysAdmin/Configuration Files moved to KDE System Administration/Configuration Files&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Template:I18n/Language Navigation Bar|SysAdmin/Configuration Files}}&lt;br /&gt;
== File Format ==&lt;br /&gt;
KDE uses a simple text based file format for all its configuration files.&lt;br /&gt;
It consists of key-value pairs that are placed in groups. All KDE&lt;br /&gt;
configuration files use UTF-8 encoding for text outside the ASCII range.&lt;br /&gt;
&lt;br /&gt;
The start of a group is indicated by a group name that is placed in&lt;br /&gt;
square brackets. All the key-value entries that follow belong to the group.&lt;br /&gt;
The group ends when either another group starts or when the end of the file&lt;br /&gt;
is reached.&lt;br /&gt;
&lt;br /&gt;
Entries at the top of the file that are not preceded by a group name belong&lt;br /&gt;
to the default group.&lt;br /&gt;
&lt;br /&gt;
==== Example: A Simple Config File ====&lt;br /&gt;
The following example shows a configuration file that consists of two groups.&lt;br /&gt;
The first group contains the keys &amp;quot;&amp;lt;tt&amp;gt;LargeCursor&amp;lt;/tt&amp;gt;&amp;quot; and&lt;br /&gt;
&amp;quot;&amp;lt;tt&amp;gt;SingleClick&amp;lt;/tt&amp;gt;&amp;quot;, the second group contains the keys&lt;br /&gt;
&amp;quot;&amp;lt;tt&amp;gt;Show hidden files&amp;lt;/tt&amp;gt;&amp;quot; and &amp;quot;&amp;lt;tt&amp;gt;Sort by&amp;lt;/tt&amp;gt;&amp;quot;.&lt;br /&gt;
&amp;lt;code ini&amp;gt;&lt;br /&gt;
[KDE]&lt;br /&gt;
LargeCursor=false&lt;br /&gt;
SingleClick=true&lt;br /&gt;
&lt;br /&gt;
[KFileDialog Settings]&lt;br /&gt;
Show hidden files=false&lt;br /&gt;
Sort by=Name&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Entries in a group consists of a key and value separated by an equal sign.&lt;br /&gt;
The key can contain spaces and may be followed by options placed in&lt;br /&gt;
square brackets.&lt;br /&gt;
&lt;br /&gt;
The part after the equal sign is the value of the entry. Any white space&lt;br /&gt;
surrounding the equal sign is ignored, as is any trailing white space.&lt;br /&gt;
&lt;br /&gt;
If a value is supposed to include a space at the begin or end then this can be achieved&lt;br /&gt;
by using a backslash followed by an 's'.&lt;br /&gt;
&lt;br /&gt;
There are several other backslash codes, here is the complete list:&lt;br /&gt;
&lt;br /&gt;
* &amp;quot;&amp;lt;tt&amp;gt;\s&amp;lt;/tt&amp;gt;&amp;quot; can be used as space&lt;br /&gt;
* &amp;quot;&amp;lt;tt&amp;gt;\t&amp;lt;/tt&amp;gt;&amp;quot; can be used to include a tab&lt;br /&gt;
* &amp;quot;&amp;lt;tt&amp;gt;\r&amp;lt;/tt&amp;gt;&amp;quot; for a carriage return character&lt;br /&gt;
* &amp;quot;&amp;lt;tt&amp;gt;\n&amp;lt;/tt&amp;gt;&amp;quot; for a linefeed character (new line)&lt;br /&gt;
* &amp;quot;&amp;lt;tt&amp;gt;\\&amp;lt;/tt&amp;gt;&amp;quot; to include the backslash itself&lt;br /&gt;
&lt;br /&gt;
==== Example: Whitespace ====&lt;br /&gt;
The following config file fragment is equivalent to the one in the&lt;br /&gt;
previous example. Whitespace surrounding the key and value is ignored.&lt;br /&gt;
&amp;lt;code ini&amp;gt;&lt;br /&gt;
[KDE]&lt;br /&gt;
LargeCursor=          false&lt;br /&gt;
SingleClick = true&lt;br /&gt;
&lt;br /&gt;
[KFileDialog Settings]&lt;br /&gt;
   Show hidden files   = false&lt;br /&gt;
Sort by =Name&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example: Preserving Whitespace ====&lt;br /&gt;
In the following example the value of the &amp;quot;&amp;lt;tt&amp;gt;Caption&amp;lt;/tt&amp;gt;&amp;quot; entry starts&lt;br /&gt;
with two spaces while the &amp;quot;&amp;lt;tt&amp;gt;Description&amp;lt;/tt&amp;gt;&amp;quot; entry contains three lines&lt;br /&gt;
of text. Linefeeds in backslash notation are used to seperate the different lines.&lt;br /&gt;
&amp;lt;code ini&amp;gt;&lt;br /&gt;
[Preview Image]&lt;br /&gt;
Caption=\s My Caption&lt;br /&gt;
Description=This is\na very long\ndescription.&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Empty lines in configuration files are ignored, just as lines that&lt;br /&gt;
start with a hash mark '#'. The hash mark can be used to add comments to&lt;br /&gt;
configuration files but it should be noted that when a KDE application&lt;br /&gt;
updates a configuration file the comments are not&lt;br /&gt;
preserved.&lt;br /&gt;
&lt;br /&gt;
== Configuration ==&lt;br /&gt;
There can be multiple configuration files with the same name in the&lt;br /&gt;
share/config sub-directory of the various&lt;br /&gt;
[[../KDE Filesystem Hierarchy#Location_of_the_Directory_Trees|KDE Directory Trees]].&lt;br /&gt;
In that case the information of all these configuration files is combined&lt;br /&gt;
on a key by key basis. If the same key within a certain group is defined&lt;br /&gt;
in more than one place, the key value read from the directory tree with&lt;br /&gt;
the highest precedence will be used.&lt;br /&gt;
Configuration files under $KDEHOME always have the highest precedence.&lt;br /&gt;
If a key in a certain group is defined multiple times in a single file, the&lt;br /&gt;
value of the last entry is used.&lt;br /&gt;
&lt;br /&gt;
KDE's cascading configuration scheme can be used to provide users with&lt;br /&gt;
system or organisation wide default settings while still allowing the users&lt;br /&gt;
to make individual changes to these settings. KDE will not write entries to&lt;br /&gt;
the users configuration file under $KDEHOME that match any default settings&lt;br /&gt;
provided this way. This way changes made to the default settings will&lt;br /&gt;
immediately be propagated to the user. Note that differs from the traditional&lt;br /&gt;
way of providing default settings for users through the use of {{path|/etc/skel}},&lt;br /&gt;
changes to {{path|/etc/skel}} will only be propagated when creating a new user account.&lt;br /&gt;
&lt;br /&gt;
When it is undesirable that individual users can make changes to default&lt;br /&gt;
settings, the default setting can be locked down.&lt;br /&gt;
&lt;br /&gt;
== Shell Expansion ==&lt;br /&gt;
&lt;br /&gt;
So called ''Shell Expansion'' can be used to provide more dynamic default&lt;br /&gt;
values. With shell expansion the value of a configuration key can be&lt;br /&gt;
constructed from the value of an environment variable or from the output of&lt;br /&gt;
a shell command.&lt;br /&gt;
&lt;br /&gt;
To enable shell expansion for a configuration entry, the key must be followed&lt;br /&gt;
by &amp;lt;tt&amp;gt;[$e]&amp;lt;/tt&amp;gt;. Normally the expanded form is written into the users&lt;br /&gt;
configuration file after first use. To prevent that, it is recommend to lock&lt;br /&gt;
the configuration entry down by using &amp;lt;tt&amp;gt;[$ie]&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
==== Example: Dynamic Entries ====&lt;br /&gt;
In the following example the value for the &amp;quot;&amp;lt;tt&amp;gt;Host&amp;lt;/tt&amp;gt;&amp;quot; entry&lt;br /&gt;
is determined by the output of the ''hostname'' program. This setting is&lt;br /&gt;
also locked down to ensure that the value is always determined dynamically.&lt;br /&gt;
&lt;br /&gt;
The value for the &amp;quot;&amp;lt;tt&amp;gt;Email&amp;lt;/tt&amp;gt;&amp;quot; entry is determined by filling in&lt;br /&gt;
the values of the $USER and $HOST environment variables. When ''joe''&lt;br /&gt;
is logged in on ''joes_host'' this will result in a value equal to&lt;br /&gt;
&amp;quot;&amp;lt;tt&amp;gt;joe@joes_host&amp;lt;/tt&amp;gt;&amp;quot;. The setting is not locked down.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code ini&amp;gt;&lt;br /&gt;
[Mail Settings]&lt;br /&gt;
Host[$ie]=$(hostname)&lt;br /&gt;
Email[$e]=${USER}@${HOST}&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Localization ==&lt;br /&gt;
&lt;br /&gt;
All configuration entries can be indexed with a language code. In this case,&lt;br /&gt;
the language that the user has selected for use on the desktop is used to&lt;br /&gt;
look up the key value. If the default language (American English) has been&lt;br /&gt;
selected or if there is no index that corresponds to the selected language,&lt;br /&gt;
the key entry without index is used.&lt;br /&gt;
&lt;br /&gt;
==== Example: UTF8 In Keys ====&lt;br /&gt;
In the following example the value of the &amp;quot;&amp;lt;tt&amp;gt;Caption&amp;lt;/tt&amp;gt;&amp;quot; entry&lt;br /&gt;
depends on the language. If the user has selected french as language (language&lt;br /&gt;
code &amp;lt;tt&amp;gt;fr&amp;lt;/tt&amp;gt;) the value of the entry will be &amp;quot;&amp;lt;tt&amp;gt;Ma LÃ©gende&amp;lt;/tt&amp;gt;&amp;quot;.&lt;br /&gt;
In all other cases the value &amp;quot;&amp;lt;tt&amp;gt;My Caption&amp;lt;/tt&amp;gt;&amp;quot; will be used.&lt;br /&gt;
&amp;lt;code ini&amp;gt;&lt;br /&gt;
[Preview Image]&lt;br /&gt;
Caption=My Caption&lt;br /&gt;
Caption[fr]=Ma LÃ©gende&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Lock Down ==&lt;br /&gt;
&lt;br /&gt;
To prevent users from overriding default settings, you can lock&lt;br /&gt;
these settings down in the system-wide config files. Settings can be locked down individually, per group,&lt;br /&gt;
or per file. An individual entry can be locked down by adding &amp;lt;tt&amp;gt;[$i]&amp;lt;/tt&amp;gt;&lt;br /&gt;
behind the key. A group of entries can be locked down by placing&lt;br /&gt;
&amp;lt;tt&amp;gt;[$i]&amp;lt;/tt&amp;gt; behind the group name. To lock down the entire file, start&lt;br /&gt;
the file with &amp;lt;tt&amp;gt;[$i]&amp;lt;/tt&amp;gt; on a single line.&lt;br /&gt;
&lt;br /&gt;
==== Example: Using [$i] ====&lt;br /&gt;
In the following example the &amp;quot;&amp;lt;tt&amp;gt;Caption&amp;lt;/tt&amp;gt;&amp;quot; entry has been locked&lt;br /&gt;
down. All entries in the &amp;quot;&amp;lt;tt&amp;gt;Mail Settings&amp;lt;/tt&amp;gt;&amp;quot; group have been&lt;br /&gt;
locked down as well.&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
[Preview Image]&lt;br /&gt;
Caption[$i]=My Caption&lt;br /&gt;
&lt;br /&gt;
[Mail Settings][$i]&lt;br /&gt;
Host[$e]=$(hostname)&lt;br /&gt;
Email=wal&amp;amp;#100;o&amp;amp;#x40;&amp;amp;#00107;&amp;amp;#x64;e&amp;amp;#x2e;or&amp;amp;#x67;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If an entry has been locked down, entries that would otherwise take&lt;br /&gt;
precedence over the default setting will now be ignored.&lt;br /&gt;
&lt;br /&gt;
Any changes that applications make to settings that have been locked&lt;br /&gt;
down will be silently dropped. Applications may respond differently to locked down settings. Some applications&lt;br /&gt;
recognize when a setting has been locked down, and will remove the&lt;br /&gt;
elements from its user interface that would otherwise allow the user&lt;br /&gt;
to make changes to these settings. Other applications will continue&lt;br /&gt;
to offer these options in their user interface even though the option&lt;br /&gt;
does not have any effect any more. It is also possible that it is actually&lt;br /&gt;
still possible to change the setting in the running program. In that case the&lt;br /&gt;
changed setting will be effective for the time the program remains running.&lt;br /&gt;
When the program is restarted it will then return to the locked down default&lt;br /&gt;
settings.&lt;br /&gt;
&lt;br /&gt;
== Editors ==&lt;br /&gt;
If you do not want to use a text editor then&lt;br /&gt;
[http://extragear.kde.org/apps/kconfigeditor/ KConfigEditor]&lt;br /&gt;
offers a convenient way to edit KDE configuration files.&lt;br /&gt;
&lt;br /&gt;
For scripts or modifying files from the command line, the command line app &amp;lt;tt&amp;gt;kwriteconfig&amp;lt;/tt&amp;gt; is very useful. &amp;lt;tt&amp;gt;kwriteconfig&amp;lt;/tt&amp;gt; expects a configuration file name, a group, a key, an optional type and a value, such as:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;kwriteconfig --file kickerrc \&lt;br /&gt;
             --group General \&lt;br /&gt;
             --key AutoHidePanel \&lt;br /&gt;
             --type bool \&lt;br /&gt;
             true&amp;lt;/code&amp;gt;&lt;/div&gt;</summary>
		<author><name>Logixoul</name></author>	</entry>

	<entry>
		<id>http://techbase.kde.org/Talk:KDE_System_Administration/Configuration_Files</id>
		<title>Talk:KDE System Administration/Configuration Files</title>
		<link rel="alternate" type="text/html" href="http://techbase.kde.org/Talk:KDE_System_Administration/Configuration_Files"/>
				<updated>2007-09-09T17:59:25Z</updated>
		
		<summary type="html">&lt;p&gt;Logixoul: Talk:SysAdmin/Configuration Files moved to Talk:KDE System Administration/Configuration Files&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;I believe the example for localization doesn't actually use UTF-8.  The French translation of &amp;quot;My Caption&amp;quot; shows up garbled; 'LÃ©gende'.  I'm not sure what to fix it to however. --[[User:Mpyne|Mpyne]] 02:57, 27 February 2007 (CET)&lt;/div&gt;</summary>
		<author><name>Logixoul</name></author>	</entry>

	<entry>
		<id>http://techbase.kde.org/SysAdmin/Configuration_Files</id>
		<title>SysAdmin/Configuration Files</title>
		<link rel="alternate" type="text/html" href="http://techbase.kde.org/SysAdmin/Configuration_Files"/>
				<updated>2007-09-09T17:59:25Z</updated>
		
		<summary type="html">&lt;p&gt;Logixoul: SysAdmin/Configuration Files moved to KDE System Administration/Configuration Files&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#REDIRECT [[KDE System Administration/Configuration Files]]&lt;/div&gt;</summary>
		<author><name>Logixoul</name></author>	</entry>

	<entry>
		<id>http://techbase.kde.org/Talk:SysAdmin/Configuration_Files</id>
		<title>Talk:SysAdmin/Configuration Files</title>
		<link rel="alternate" type="text/html" href="http://techbase.kde.org/Talk:SysAdmin/Configuration_Files"/>
				<updated>2007-09-09T17:59:25Z</updated>
		
		<summary type="html">&lt;p&gt;Logixoul: Talk:SysAdmin/Configuration Files moved to Talk:KDE System Administration/Configuration Files&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#REDIRECT [[Talk:KDE System Administration/Configuration Files]]&lt;/div&gt;</summary>
		<author><name>Logixoul</name></author>	</entry>

	<entry>
		<id>http://techbase.kde.org/KDE_System_Administration_(fr)</id>
		<title>KDE System Administration (fr)</title>
		<link rel="alternate" type="text/html" href="http://techbase.kde.org/KDE_System_Administration_(fr)"/>
				<updated>2007-09-09T17:58:04Z</updated>
		
		<summary type="html">&lt;p&gt;Logixoul: fix double redirect&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Template:I18n/Language Navigation Bar|SysAdmin}}&lt;br /&gt;
Cette section fournit aux administrateurs système l'information nécessaire au bon déroulement du déploiement de KDE au sein de leur organisation.&lt;br /&gt;
&lt;br /&gt;
== Système de Fichier ==&lt;br /&gt;
;[[KDE System Administration/Configuration Files|Syntaxe des fichier de configuration]]&lt;br /&gt;
:''Les fichiers de configuration de KDE sont au format texte brut. Ils contiennent des groupes de paires clé-valeur. Cette section explique leur syntaxe. Cela couvre :''&lt;br /&gt;
* la gestion des langues&lt;br /&gt;
* les variables shell&lt;br /&gt;
* le vérouillage complet ou partiel des fichiers de configuration&lt;br /&gt;
* les utilitaires d'édition&lt;br /&gt;
* d'autres fonctionalités avancées&lt;br /&gt;
&lt;br /&gt;
;[[KDE System Administration/KDE Filesystem Hierarchy|Arborescence de KDE]]&lt;br /&gt;
:''Cet article décrit la façon dont KDE utilise le système de fichier, où il recherche les fichiers et où il les stocke. L'article explique comment changer ces endroits. On trouvera aussi une brève vue d'ensemble des réglages par défaut utilisé par les grands distributeurs de systèmes d'exploitation.''&lt;br /&gt;
&lt;br /&gt;
== Lancement du Bureau ==&lt;br /&gt;
			&lt;br /&gt;
;[[KDE System Administration/Environment Variables|Environment Variables]]&lt;br /&gt;
:''Un ensemble de variables d'environnement décrites dans cet article sont disponibles pour régler certains aspects de KDE et le comportement pendant leur lancement des applications KDE.''&lt;br /&gt;
			&lt;br /&gt;
;[[KDE System Administration/Startup|Séquence de démarrage du bureau KDE]]&lt;br /&gt;
:''Pendant son démarrage KDE lance les composants visibles du bureau ainsi que différents services tournant en tache de fond. Cet article décrit la séquence de démarrage, donne une vue générale des services démarrés et explique comment modifier ceci.''&lt;br /&gt;
&lt;br /&gt;
;[http://docs.kde.org/development/en/kdebase/kdm/ Gestionnaire de Connexion]&lt;br /&gt;
:''Le Gestionnaire Graphique de KDE (KDE Display Manager - KDM) fournit les services classiquement associés à un gestionnaire de connexion. Le premier contact que les utilisateurs auront avec KDE est typiquement l'écran de login de KDE. Cette section couvre les bases pour mettre en place KDM, plus certains sujets avancés comme la connexion à distance, la connexion automatique entre autres choses.''&lt;br /&gt;
&lt;br /&gt;
== Profils de groupes et d'utilisateurs ==&lt;br /&gt;
&lt;br /&gt;
;[[KDE System Administration/Kiosk/Introduction|Introduction à Kiosk]]&lt;br /&gt;
:''L'infrastructure Kiosk fournit un ensemble de fonctionnalités pour définir et restreindre facilement les caractéristiques d'un environnement KDE basé sur les droits d'accès de groupes et d'utilisateurs. En plus d'une introduction générale, cet article couvre l'ensemble des paramètres de configuration vérouillables, les restrictions d'action et de ressource, l'association de profils utilisateurs et de groupes, parmi d'autres choses.''&lt;br /&gt;
&lt;br /&gt;
;[[KDE System Administration/Kiosk/Keys|Liste des clés applicables pour l'utilisation de Kiosk]]&lt;br /&gt;
:''Ce document détaille l'ensemble clés globales et spécifiques prédéfinies applicables à certaines applications pour les restrictions d'actions, de ressources et de liens internet faisant de ce guide une référence pour paramètrer des profils Kiosk.''&lt;br /&gt;
&lt;br /&gt;
;[[KDE System Administration/Kiosk/Resources|Ressources supplémentaires]]&lt;br /&gt;
:''Liens vers des outils, listes de diffusion et documentation supplémentaire à propos les profils d'utilisateurs et de groupes dans KDE.''&lt;br /&gt;
&lt;br /&gt;
== Outils ==&lt;br /&gt;
&lt;br /&gt;
;[http://extragear.kde.org/apps/kiosktool/ KioskTool]&lt;br /&gt;
:''Une application graphique pour gérer les profils d'utilisateurs et de groupes de KDE Kiosk.''&lt;br /&gt;
&lt;br /&gt;
;[http://docs.kde.org/development/en/kdenetwork/krfb/ Le bureau partagé]&lt;br /&gt;
&lt;br /&gt;
:''La fonctionnalité de bureau partagé permet de partager votre hureau à distance avec d'autres utilisateurs. Parmi de nombreuses autres applications, cette fonctionnalité est une grande avancée pour les équipes de support qui donnent une assistance téléphonique aux utilisateurs.''&lt;br /&gt;
&lt;br /&gt;
;[[Development/Tutorials/Shell_Scripting_with_KDE_Dialogs|Utiliser les boites de dialogue KDE dans des scripts shell]]&lt;br /&gt;
:''Il est possible d'utiliser des scripts shell utilisant KDialog pour afficher diverses boites de dialogue KDE. Cela offre une intégration sans précédent de vos propres améliorations de l'interface graphique.''&lt;/div&gt;</summary>
		<author><name>Logixoul</name></author>	</entry>

	<entry>
		<id>http://techbase.kde.org/Welcome_to_KDE_TechBase</id>
		<title>Welcome to KDE TechBase</title>
		<link rel="alternate" type="text/html" href="http://techbase.kde.org/Welcome_to_KDE_TechBase"/>
				<updated>2007-09-09T17:56:26Z</updated>
		
		<summary type="html">&lt;p&gt;Logixoul: fix double redirect&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Template:I18n/Language Navigation Bar|Welcome to KDE TechBase}}&lt;br /&gt;
{| style=&amp;quot;margin: 1em 2.5% 0 2.5%; padding: 0 5px;&amp;quot; cellpadding=&amp;quot;5&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|colspan=2|[[Image:Discover.png|noframe]]&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;padding-left: 50px;&amp;quot; |[[Image:Action_launch.svg|noframe|left|40px]] ||&lt;br /&gt;
;[[Getting Started|Setting up a KDE development environment]]&lt;br /&gt;
:Learn how to get, build and run KDE and its applications.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;padding-left: 50px;&amp;quot;|[[Image:Action_configure.svg|noframe|left|40px]] ||&lt;br /&gt;
;[[Development|Developing with KDE]]&lt;br /&gt;
:[[Development/Tutorials|Tutorials]] | [http://api.kde.org API Documentation] | [[Development/FAQs|FAQs]] and more.&lt;br /&gt;
:''Related'': [[Schedules|Release Schedules and Feature Plans]]&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;padding-left: 50px;&amp;quot;|[[Image:Devices_system.svg|noframe|left|40px]] ||&lt;br /&gt;
;[[KDE System Administration]]&lt;br /&gt;
:Information for system administrators managing KDE deployments. &lt;br /&gt;
|-&lt;br /&gt;
|colspan=2|[[Image:Interact.png|noframe]]&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;padding-left: 50px;&amp;quot;|[[Image:Action_favorites.svg|noframe|left|40px]] ||&lt;br /&gt;
;[[Contribute|Join the KDE Team and Contribute]]&lt;br /&gt;
:Contribute patches, keep in touch with and join our community.&lt;br /&gt;
:''Related:'' [[Policies|KDE Project Policies]] | [http://www.kde.org/support/support.php Donate Money]&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;padding-left: 50px;&amp;quot;|[[Image:Action_contents.svg|noframe|left|40px]] ||&lt;br /&gt;
;[[ISV|ISV Information]]&lt;br /&gt;
:Developer information for Independent Software Vendors.&lt;br /&gt;
|-&lt;br /&gt;
|colspan=2|[[Image:Develop.png|noframe]]&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;padding-left: 50px;&amp;quot; |[[Image:Action_wizard.svg|noframe|left|40px]] ||&lt;br /&gt;
;[[Projects|KDE projects]]&lt;br /&gt;
:Links to development wikis, task lists, etc. for various KDE Projects.&lt;br /&gt;
&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Logixoul</name></author>	</entry>

	<entry>
		<id>http://techbase.kde.org/Talk:Welcome_to_KDE_TechBase</id>
		<title>Talk:Welcome to KDE TechBase</title>
		<link rel="alternate" type="text/html" href="http://techbase.kde.org/Talk:Welcome_to_KDE_TechBase"/>
				<updated>2007-09-09T17:55:44Z</updated>
		
		<summary type="html">&lt;p&gt;Logixoul: fix double redirect&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Sys Admin Area==&lt;br /&gt;
I've created the start of a basic Sys Admin area, which is essentially taken from the existing [http://www.kde.org/areas/sysadmin/ KDE sysadmin] pages. Everyone seems to agree that the current location is a poor choice. I spent some time today doing up a mind map of the information there and broke out the new [[KDE System Administration|sys admin]] page on this wiki along those lines.&lt;br /&gt;
&lt;br /&gt;
However, before I get too far along the trail, I'd like to confirm with others that this is a desired development. I'm also interested in feedback on the entries I made on the new [[KDE System Administration|sys admin]] page. --[[User:Aseigo|Aseigo]] 00:44, 30 January 2007 (CET)&lt;br /&gt;
&lt;br /&gt;
:I do like it, but granted, I'm only the sysadmin of my own installations :) --[[User:Dhaumann|Dhaumann]] 09:10, 30 January 2007 (CET)&lt;br /&gt;
&lt;br /&gt;
::I indeed like it. We should put all the pages into a SysAdmin category or something similar.&lt;br /&gt;
::Btw, I even think we should tag all articles with KDE3 and/or KDE4. For example all tutorials which right now are implicit for KDE4 should still be tagged as such. Then, they also consequently appear in &amp;quot;Allpages &amp;gt; KDE4&amp;quot;. --[[User:Dhaumann|Dhaumann]] 01:50, 3 February 2007 (CET)&lt;br /&gt;
&lt;br /&gt;
==License==&lt;br /&gt;
I suggest we move to [http://creativecommons.org/licenses/by-sa/2.5/ cc-by-sa] right from the beginning. Please see the [http://people.debian.org/~srivasta/Position_Statement.xhtml Draft Debian Position Statement About The GNU Free Documentation License(GFDL)]. [[User:Logixoul|Logixoul]] 14:10, 8 September 2006 (CEST)&lt;br /&gt;
&lt;br /&gt;
:Or dual license, keep GFDL and use CC. (There was some discussion about this on Wikipedia iirc) [[User:CuCullin|CuCullin]] 19:31, 9 January 2007 (CET)&lt;br /&gt;
&lt;br /&gt;
:Dual license seems sanest to me as well. I'd also suggest just cc-sa. I'm not sure what we would expect/hope to win with attribution requirements? Especially since the authorship will be large... --[[User:Aseigo|Aseigo]] 00:44, 30 January 2007 (CET)&lt;br /&gt;
&lt;br /&gt;
::Maybe we should display the license(s) in the footer, something like &amp;quot;... | Legal | &amp;lt;here comes the license&amp;gt;&amp;quot; --[[User:Dhaumann|Dhaumann]] 01:50, 3 February 2007 (CET)&lt;br /&gt;
&lt;br /&gt;
== Oxygen theme ==&lt;br /&gt;
&lt;br /&gt;
I really like the Oxygen theme on this wiki, but might we reconsider the fixed width bit?  It makes some of the pages (e.g. recent changes) not work as well, wrapping lines and making them difficult to read. --[[User:Axiom|Axiom]] 20:50, 14 January 2007 (CET)&lt;br /&gt;
&lt;br /&gt;
: We have had this discussion over and over again but at the same time we got very positive feedback (e.g. on the kde-www mailing list). Changing the layout is very unlikely. I agree that due to our use of subpages the urls get long and a bit unreadable, but that's hardly a reason to change the layout of all *kde.org pages. --[[User:Dhaumann|Dhaumann]] 23:49, 14 January 2007 (CET)&lt;br /&gt;
&lt;br /&gt;
:: You can configure which skin is used in your preferences. A &amp;quot;Full width Oxygen&amp;quot; skin would be nice. --[[User:Argonel|Argonel]] 04:44, 18 January 2007 (CET)&lt;br /&gt;
&lt;br /&gt;
== Something wrong with the CAPTCHAs ==&lt;br /&gt;
&lt;br /&gt;
Every time I make an edit, it says I am trying to add a url, even when I am not. Perhaps I will get better a simple math, but they are slightly annoying. --[[User:Axiom|Axiom]] 19:51, 21 January 2007 (CET)&lt;br /&gt;
&lt;br /&gt;
:Ping danimo about this issue. I had the same problem even after I registered. He had to nudge my account properly to make it work. --[[User:Aseigo|Aseigo]] 00:44, 30 January 2007 (CET)&lt;/div&gt;</summary>
		<author><name>Logixoul</name></author>	</entry>

	<entry>
		<id>http://techbase.kde.org/Development/Architecture</id>
		<title>Development/Architecture</title>
		<link rel="alternate" type="text/html" href="http://techbase.kde.org/Development/Architecture"/>
				<updated>2007-09-09T17:54:23Z</updated>
		
		<summary type="html">&lt;p&gt;Logixoul: fix double redirect&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Template:I18n/Language Navigation Bar|Development/Architecture}}&lt;br /&gt;
The following pages contain documentation about KDE's design and architecture in detail. They do not replace other documentation like [http://api.kde.org API documentation], [[../Tutorials|tutorials/howtos]] and [[../Guidelines|standards]], see the [[Development|development portal]] for further information.&lt;br /&gt;
&lt;br /&gt;
For a better understanding it might help to be familiar with Trolltech's&amp;amp;trade; excellent [http://doc.trolltech.com/3.3/index.html Qt 3.3] or [http://doc.trolltech.com/4.3/index.html Qt 4.3] documentation and their [http://www.trolltech.com/developer/ Developer Pages].&lt;br /&gt;
&lt;br /&gt;
More information about a KDE installation itself is available in the dedicated section for [[KDE System Administration|system administrators]].&lt;br /&gt;
&lt;br /&gt;
== Design Documents ==&lt;br /&gt;
; [[/KDE4|KDE 4 Architecture Overview]]&lt;br /&gt;
: An overview of the KDE 4 architecture, including discussions of common techniques, library classes, and general development issues.  This is for ''KDE 4.0''.&lt;br /&gt;
&lt;br /&gt;
; [[/KDE3|KDE 3 Architecture Overview]] [http://developer.kde.org/documentation/library/kdeqt/kde3arch/ (Original)]&lt;br /&gt;
: An overview of the KDE 3 architecture, including discussions of common techniques, library classes, and general development issues. This is for ''KDE 3.0''.&lt;br /&gt;
&lt;br /&gt;
; [http://developer.kde.org/documentation/library/kdeqt/kde2arch/ KDE 2 Architecture Overview]&lt;br /&gt;
: An overview of the KDE 2 architecture, similar to the above. This is for ''KDE 2.2''.&lt;br /&gt;
&lt;br /&gt;
; [[/DCOP|DCOP]]&lt;br /&gt;
: Design documents from 1999-2000.&lt;br /&gt;
&lt;br /&gt;
[[Category:Architecture]]&lt;/div&gt;</summary>
		<author><name>Logixoul</name></author>	</entry>

	<entry>
		<id>http://techbase.kde.org/Help:Wiki_Structure</id>
		<title>Help:Wiki Structure</title>
		<link rel="alternate" type="text/html" href="http://techbase.kde.org/Help:Wiki_Structure"/>
				<updated>2007-09-09T17:49:04Z</updated>
		
		<summary type="html">&lt;p&gt;Logixoul: fix double redirect&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page explains the methods used to maintain KDE's developer wiki.&lt;br /&gt;
&lt;br /&gt;
== Top pages ==&lt;br /&gt;
The most important pages on this wiki are the top or root pages (in alphabetical order):&lt;br /&gt;
&lt;br /&gt;
;[[Contribute]]&lt;br /&gt;
;[[Development]]&lt;br /&gt;
:[[Development/Architecture]]&lt;br /&gt;
:[[Development/FAQs]]&lt;br /&gt;
:[[Development/Further Information]]&lt;br /&gt;
:[[Development/Guidelines]]&lt;br /&gt;
:[[Development/Languages]]&lt;br /&gt;
:[[Development/Tools]]&lt;br /&gt;
:[[Development/Tutorials]]&lt;br /&gt;
;[[Getting Started]]&lt;br /&gt;
;[[ISV]]&lt;br /&gt;
;[[Policies]]&lt;br /&gt;
;[[Projects]]&lt;br /&gt;
;[[Schedules]]&lt;br /&gt;
;[[KDE System Administration]]&lt;br /&gt;
&lt;br /&gt;
All other pages/articles belong to one of those pages (or their sub-pages) which means we heavily use sub-pages to maintain the structure and a hierarchy to not loose the overview.&lt;br /&gt;
&lt;br /&gt;
=== Sub-pages ===&lt;br /&gt;
A sub-page is a parent-child relation. In the following example '''Development''' is the ''parent'' of '''Tutorials''', or the other way round: The page '''Tutorials''' is a sub-page (or a child) of '''Development'''&lt;br /&gt;
&lt;br /&gt;
 [[Development/Tutorials]]&lt;br /&gt;
&lt;br /&gt;
Using sub-pages has several advantages&lt;br /&gt;
* they automatically provide us with a '''hierarchy''' which is reflected in the URL itself&lt;br /&gt;
* automatically generated ''backlinks'' provide easy navigation&lt;br /&gt;
&lt;br /&gt;
As an example, look at the page&lt;br /&gt;
 [[Development/Architecture/KDE3/Library Structure]]&lt;br /&gt;
you can see following the links on the very top of the page:&lt;br /&gt;
 &amp;lt; [[Development]] | [[Development/Architecture|Architecture]] | [[Development/Architecture/KDE3|KDE3]]&lt;br /&gt;
&lt;br /&gt;
== Categories ==&lt;br /&gt;
In short, a [http://meta.wikimedia.org/wiki/Help:Category category] is a '''tag''' which appears at the very bottom of an article. As such, categories provide automatic indexes that are useful as tables of contents. Together with links and templates they help to structure a project.&lt;br /&gt;
&lt;br /&gt;
* [[Special:Categories|List of categories]]&lt;br /&gt;
* [[Special:Unusedcategories|List of unused categories]] - Feel free to use them&lt;br /&gt;
&lt;br /&gt;
Be sure to read the category page (e.g. [[:Category:Documentation]]) before tagging a page with it to make sure you're using it correctly.&lt;br /&gt;
&lt;br /&gt;
== Important special pages ==&lt;br /&gt;
There are several special pages which help us to maintain a clean wiki:&lt;br /&gt;
&lt;br /&gt;
; Issues which should be fixed as soon as possible&lt;br /&gt;
:[[Special:Lonelypages]]&lt;br /&gt;
:[[Special:BrokenRedirects]]&lt;br /&gt;
:[[Special:DoubleRedirects]]&lt;br /&gt;
&lt;br /&gt;
; Issues which should be fixed in time&lt;br /&gt;
:[[Special:Wantedpages]]&lt;br /&gt;
:[[Special:Wantedcategories]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Policies]]&lt;/div&gt;</summary>
		<author><name>Logixoul</name></author>	</entry>

	<entry>
		<id>http://techbase.kde.org/KDE_System_Administration</id>
		<title>KDE System Administration</title>
		<link rel="alternate" type="text/html" href="http://techbase.kde.org/KDE_System_Administration"/>
				<updated>2007-09-09T17:47:51Z</updated>
		
		<summary type="html">&lt;p&gt;Logixoul: SysAdmin moved to KDE System Administration: sync name, un-lame-ifying it&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Template:I18n/Language Navigation Bar|SysAdmin}}&lt;br /&gt;
&lt;br /&gt;
This section provides system administrators who are rolling out new or managing existing KDE deployments in their organization with the information they need to do so effectively. &lt;br /&gt;
&lt;br /&gt;
== File System ==&lt;br /&gt;
;[[/Configuration Files|Configuration File Syntax]]&lt;br /&gt;
:''KDE configuration files are text-based. They contain groups of key-value pairs. This section explains their syntax. It covers:''&lt;br /&gt;
* localisation,&lt;br /&gt;
* shell-variables,&lt;br /&gt;
* complete or partial lock-down of configuration files,&lt;br /&gt;
* editor utilities,&lt;br /&gt;
* other advanced features.&lt;br /&gt;
&amp;lt;!--It covers localisation, use of shell-variables, locking down configuration files (in whole or in part), and other advanced features. Read also about some useful editor utilities.''--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;[[/KDE Filesystem Hierarchy|KDE Hierarchy]]&lt;br /&gt;
:''This article describes how KDE uses the filesystem, where it looks for files and where it stores them. It explains how to change these locations. There is also a brief overview of the default settings used by major OS vendors.''&lt;br /&gt;
&lt;br /&gt;
;[[/XDG Filesystem Hierarchy|XDG Hierarchy]]&lt;br /&gt;
:''Supplementing the [[/KDE Filesystem Hierarchy|KDE filesystem hierarchy]], KDE also uses various directories, as defined by XDG specifications on [http://freedesktop.org freedesktop.org]. This article documents the paths used and their purposes.''&lt;br /&gt;
&lt;br /&gt;
== Desktop Sessions ==&lt;br /&gt;
&lt;br /&gt;
;[[/Environment Variables|Environment Variables]]&lt;br /&gt;
:''A variety of  environment variables documented in this article are available to influence aspects of KDE and the runtime behavior of KDE applications.''&lt;br /&gt;
&lt;br /&gt;
;[[/Startup|Desktop Startup Sequence]]&lt;br /&gt;
:''During startup KDE starts the visible desktop components as well as several services that run in the background. This article describes the startup sequence, gives an overview of some of the services started and explains how to make changes.''&lt;br /&gt;
&lt;br /&gt;
;[http://docs.kde.org/development/en/kdebase/kdm/ Login Manager]&lt;br /&gt;
:''The KDE Display Manager (KDM) provides the services commonly associated with a login manager. The first contact your users have with a KDE system is usually the KDM login screen. This section covers the basics of how setting up KDM, plus advanced topics such as remote login, automatic login, and more.''&lt;br /&gt;
&lt;br /&gt;
== User &amp;amp; Group Profiles ==&lt;br /&gt;
&lt;br /&gt;
;[[/Kiosk/Introduction|Introduction to Kiosk]]&lt;br /&gt;
:''The  Kiosk framework provides a set of features that makes it possible to easily and powerfully define and restrict the capabilities of a KDE environment based on user and group credentials. In addition to an introductory overview, this article covers configuration setting lock down, action and resource restrictions, assigning profiles to users and groups and more.''&lt;br /&gt;
&lt;br /&gt;
;[[/Kiosk/Keys|Kiosk Keys]]&lt;br /&gt;
:''This document details known global and application specific kiosk keys for action, resource and url restrictions making it a handy reference guide when setting up a Kiosk profile.''&lt;br /&gt;
&lt;br /&gt;
;[[/Kiosk/Resources|Additional Resources]]&lt;br /&gt;
:''Links to tools, mailing lists and additional documentation relevant to user and group profiles in KDE.''&lt;br /&gt;
&lt;br /&gt;
== Tools ==&lt;br /&gt;
&lt;br /&gt;
;[http://extragear.kde.org/apps/kiosktool/ KioskTool]&lt;br /&gt;
:''A graphical application that helps manage KDE Kiosk user and group profiles.''&lt;br /&gt;
&lt;br /&gt;
;[http://docs.kde.org/development/en/kdenetwork/krfb/ Desktop Sharing]&lt;br /&gt;
:''The KDE Desktop Sharing &amp;lt;!-- couldn't &amp;quot;K Desktop Environment Desktop Sharing&amp;quot; be &amp;quot;Remote Sharing&amp;quot; or &amp;quot;K Desktop Sharing&amp;quot;? --&amp;gt;capabilities make it possible to share your desktop remotely with others. Alongside numerous other uses, this feature is a great enabler for support staff who give direct assistance to users calling them.''&lt;br /&gt;
&lt;br /&gt;
;[[Development/Tutorials/Shell_Scripting_with_KDE_Dialogs|Using KDE Dialogs in Shell Scripts]]&lt;br /&gt;
:''You can use KDialog shell scripts to show various KDE dialogs. This gives you seamless integration of your own custom GUI enhancements.''&lt;br /&gt;
&lt;br /&gt;
;[[SysAdmin/Controlling_Access_To_Get_New_Stuff|Controlling Access to Content Provided By Get New Stuff]]&lt;br /&gt;
:''Give information on how to control content downloaded from the Internet by the Get New Stuff feature of KDE.''&lt;/div&gt;</summary>
		<author><name>Logixoul</name></author>	</entry>

	<entry>
		<id>http://techbase.kde.org/SysAdmin</id>
		<title>SysAdmin</title>
		<link rel="alternate" type="text/html" href="http://techbase.kde.org/SysAdmin"/>
				<updated>2007-09-09T17:47:51Z</updated>
		
		<summary type="html">&lt;p&gt;Logixoul: SysAdmin moved to KDE System Administration: sync name, un-lame-ifying it&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#REDIRECT [[KDE System Administration]]&lt;/div&gt;</summary>
		<author><name>Logixoul</name></author>	</entry>

	<entry>
		<id>http://techbase.kde.org/Welcome_to_KDE_TechBase</id>
		<title>Welcome to KDE TechBase</title>
		<link rel="alternate" type="text/html" href="http://techbase.kde.org/Welcome_to_KDE_TechBase"/>
				<updated>2007-09-09T17:38:32Z</updated>
		
		<summary type="html">&lt;p&gt;Logixoul: self aggrandizing much?&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Template:I18n/Language Navigation Bar|Welcome to KDE TechBase}}&lt;br /&gt;
{| style=&amp;quot;margin: 1em 2.5% 0 2.5%; padding: 0 5px;&amp;quot; cellpadding=&amp;quot;5&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|colspan=2|[[Image:Discover.png|noframe]]&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;padding-left: 50px;&amp;quot; |[[Image:Action_launch.svg|noframe|left|40px]] ||&lt;br /&gt;
;[[Getting Started|Setting up a KDE development environment]]&lt;br /&gt;
:Learn how to get, build and run KDE and its applications.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;padding-left: 50px;&amp;quot;|[[Image:Action_configure.svg|noframe|left|40px]] ||&lt;br /&gt;
;[[Development|Developing with KDE]]&lt;br /&gt;
:[[Development/Tutorials|Tutorials]] | [http://api.kde.org API Documentation] | [[Development/FAQs|FAQs]] and more.&lt;br /&gt;
:''Related'': [[Schedules|Release Schedules and Feature Plans]]&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;padding-left: 50px;&amp;quot;|[[Image:Devices_system.svg|noframe|left|40px]] ||&lt;br /&gt;
;[[SysAdmin|KDE System Administration]]&lt;br /&gt;
:Information for system administrators managing KDE deployments. &lt;br /&gt;
|-&lt;br /&gt;
|colspan=2|[[Image:Interact.png|noframe]]&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;padding-left: 50px;&amp;quot;|[[Image:Action_favorites.svg|noframe|left|40px]] ||&lt;br /&gt;
;[[Contribute|Join the KDE Team and Contribute]]&lt;br /&gt;
:Contribute patches, keep in touch with and join our community.&lt;br /&gt;
:''Related:'' [[Policies|KDE Project Policies]] | [http://www.kde.org/support/support.php Donate Money]&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;padding-left: 50px;&amp;quot;|[[Image:Action_contents.svg|noframe|left|40px]] ||&lt;br /&gt;
;[[ISV|ISV Information]]&lt;br /&gt;
:Developer information for Independent Software Vendors.&lt;br /&gt;
|-&lt;br /&gt;
|colspan=2|[[Image:Develop.png|noframe]]&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;padding-left: 50px;&amp;quot; |[[Image:Action_wizard.svg|noframe|left|40px]] ||&lt;br /&gt;
;[[Projects|KDE projects]]&lt;br /&gt;
:Links to development wikis, task lists, etc. for various KDE Projects.&lt;br /&gt;
&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Logixoul</name></author>	</entry>

	<entry>
		<id>http://techbase.kde.org/Welcome_to_KDE_TechBase</id>
		<title>Welcome to KDE TechBase</title>
		<link rel="alternate" type="text/html" href="http://techbase.kde.org/Welcome_to_KDE_TechBase"/>
				<updated>2007-09-09T17:30:54Z</updated>
		
		<summary type="html">&lt;p&gt;Logixoul: typo&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Template:I18n/Language Navigation Bar|Welcome to KDE TechBase}}&lt;br /&gt;
{| style=&amp;quot;margin: 1em 2.5% 0 2.5%; padding: 0 5px;&amp;quot; cellpadding=&amp;quot;5&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|colspan=2|[[Image:Discover.png|noframe]]&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;padding-left: 50px;&amp;quot; |[[Image:Action_launch.svg|noframe|left|40px]] ||&lt;br /&gt;
;[[Getting Started|Setting up a KDE development environment]]&lt;br /&gt;
:Learn how to get, build and run KDE and its applications.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;padding-left: 50px;&amp;quot;|[[Image:Action_configure.svg|noframe|left|40px]] ||&lt;br /&gt;
;[[Development|Developing with KDE]]&lt;br /&gt;
:[[Development/Tutorials|Tutorials]] | [http://api.kde.org API Documentation] | [[Development/FAQs|FAQs]] and more.&lt;br /&gt;
:''Related'': [[Schedules|Release Schedules and Feature Plans]]&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;padding-left: 50px;&amp;quot;|[[Image:Devices_system.svg|noframe|left|40px]] ||&lt;br /&gt;
;[[SysAdmin|KDE System Administration]]&lt;br /&gt;
:Information for system administrators managing KDE deployments. &lt;br /&gt;
|-&lt;br /&gt;
|colspan=2|[[Image:Interact.png|noframe]]&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;padding-left: 50px;&amp;quot;|[[Image:Action_favorites.svg|noframe|left|40px]] ||&lt;br /&gt;
;[[Contribute|Join the KDE Team and Contribute]]&lt;br /&gt;
:Contribute patches, keep in touch with and join one of the best open source communities around.&lt;br /&gt;
:''Related:'' [[Policies|KDE Project Policies]] | [http://www.kde.org/support/support.php Donate Money]&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;padding-left: 50px;&amp;quot;|[[Image:Action_contents.svg|noframe|left|40px]] ||&lt;br /&gt;
;[[ISV|ISV Information]]&lt;br /&gt;
:Developer information for Independent Software Vendors.&lt;br /&gt;
|-&lt;br /&gt;
|colspan=2|[[Image:Develop.png|noframe]]&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;padding-left: 50px;&amp;quot; |[[Image:Action_wizard.svg|noframe|left|40px]] ||&lt;br /&gt;
;[[Projects|KDE projects]]&lt;br /&gt;
:Links to development wikis, task lists, etc. for various KDE Projects.&lt;br /&gt;
&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Logixoul</name></author>	</entry>

	<entry>
		<id>http://techbase.kde.org/Welcome_to_KDE_TechBase</id>
		<title>Welcome to KDE TechBase</title>
		<link rel="alternate" type="text/html" href="http://techbase.kde.org/Welcome_to_KDE_TechBase"/>
				<updated>2007-09-09T17:30:40Z</updated>
		
		<summary type="html">&lt;p&gt;Logixoul: sync name and make it less pretentious at the same time&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Template:I18n/Language Navigation Bar|Welcome to KDE TechBase}}&lt;br /&gt;
{| style=&amp;quot;margin: 1em 2.5% 0 2.5%; padding: 0 5px;&amp;quot; cellpadding=&amp;quot;5&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|colspan=2|[[Image:Discover.png|noframe]]&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;padding-left: 50px;&amp;quot; |[[Image:Action_launch.svg|noframe|left|40px]] ||&lt;br /&gt;
;[[Getting Started|Setting up a KDE development environment]]&lt;br /&gt;
:Learn how to get, build and run KDE and its applications.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;padding-left: 50px;&amp;quot;|[[Image:Action_configure.svg|noframe|left|40px]] ||&lt;br /&gt;
;[[Development|Developing with KDE]]&lt;br /&gt;
:[[Development/Tutorials|Tutorials]] | [http://api.kde.org API Documentation] | [[Development/FAQs|FAQs]] and more.&lt;br /&gt;
:''Related'': [[Schedules|Release Schedules and Feature Plans]]&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;padding-left: 50px;&amp;quot;|[[Image:Devices_system.svg|noframe|left|40px]] ||&lt;br /&gt;
;[[SysAdmin|KDE System Administration]]&lt;br /&gt;
:Information for system administrators managing KDE deployments. &lt;br /&gt;
|-&lt;br /&gt;
|colspan=2|[[Image:Interact.png|noframe]]&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;padding-left: 50px;&amp;quot;|[[Image:Action_favorites.svg|noframe|left|40px]] ||&lt;br /&gt;
;[[Contribute|Join the KDE Team and Contribute]]&lt;br /&gt;
:Contribute patches, keep in touch with and join one of the best open source communities around.&lt;br /&gt;
:''Related:'' [[Policies|KDE Project Policies]] | [http://www.kde.org/support/support.php WDonate Money]&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;padding-left: 50px;&amp;quot;|[[Image:Action_contents.svg|noframe|left|40px]] ||&lt;br /&gt;
;[[ISV|ISV Information]]&lt;br /&gt;
:Developer information for Independent Software Vendors.&lt;br /&gt;
|-&lt;br /&gt;
|colspan=2|[[Image:Develop.png|noframe]]&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;padding-left: 50px;&amp;quot; |[[Image:Action_wizard.svg|noframe|left|40px]] ||&lt;br /&gt;
;[[Projects|KDE projects]]&lt;br /&gt;
:Links to development wikis, task lists, etc. for various KDE Projects.&lt;br /&gt;
&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Logixoul</name></author>	</entry>

	<entry>
		<id>http://techbase.kde.org/Getting_Started/Sources/Anonymous_SVN</id>
		<title>Getting Started/Sources/Anonymous SVN</title>
		<link rel="alternate" type="text/html" href="http://techbase.kde.org/Getting_Started/Sources/Anonymous_SVN"/>
				<updated>2007-09-09T17:20:50Z</updated>
		
		<summary type="html">&lt;p&gt;Logixoul: trim and clarify&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Template:I18n/Language Navigation Bar|Getting Started/Sources/Anonymous SVN}}&lt;br /&gt;
{{TutorialBrowser|&lt;br /&gt;
&lt;br /&gt;
series=Getting Started|&lt;br /&gt;
&lt;br /&gt;
name=Getting KDE Sources Using Anonymous Subversion (SVN)|&lt;br /&gt;
&lt;br /&gt;
next=[[../../Build/KDE4|Building KDE4]]|&lt;br /&gt;
&lt;br /&gt;
reading=[http://svnbook.red-bean.com/ Version Control with Subversion]|&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== Abstract ==&lt;br /&gt;
&lt;br /&gt;
For those of us that like to stay on the &amp;quot;bleeding edge&amp;quot; there's an easy way to keep a local copy of the KDE sources up-to-date. No more trying to log on to ftp.kde.org to get the latest snapshot. No more wandering aimlessly through mirrors looking for one that's up to date. Just a simple command line operation to get up-to-the-minute source updates: anonymous SVN.&lt;br /&gt;
&lt;br /&gt;
Please note that several Linux distributions now already provide KDE SVN packages, so '''building Qt and KDE from source may well not be necessary for you at all! '''See [[Getting_Started/Distribution_Packages]] for instructions and information.&lt;br /&gt;
&lt;br /&gt;
== Anonymous SVN ==&lt;br /&gt;
&lt;br /&gt;
=== Setup Subversion ===&lt;br /&gt;
&lt;br /&gt;
First, install the subversion (svn) binary if it isn't already on your computer. Your operating system should have a package for it. Alternatively you can download and compile it yourself via the [http://subversion.tigris.org/project_packages.html svn project download page]. Please read the [[Getting_Started/Sources/Using_Subversion_with_KDE|KDE Subversion tutorial]] if you are interested in how to use Subversion.&lt;br /&gt;
&lt;br /&gt;
=== Checkout KDE ===&lt;br /&gt;
&lt;br /&gt;
'''/trunk/''' is where the Qt4-based KDE 4 is being developed. The following is the minimal set of modules you will need to check out to build KDE and KDE software:&lt;br /&gt;
      &lt;br /&gt;
 svn co svn://anonsvn.kde.org/home/kde/trunk/KDE/kdelibs&lt;br /&gt;
 svn co svn://anonsvn.kde.org/home/kde/trunk/KDE/kdebase&lt;br /&gt;
&lt;br /&gt;
{{tip|Only use &amp;quot;'''svn co'''&amp;quot; for the initial checkout, you will update your local sources afterwards by using &amp;quot;'''svn up''' ''modulename''&amp;quot; or &amp;quot;'''svn update''' ''modulename''&amp;quot;.}}&lt;br /&gt;
&lt;br /&gt;
{{tip|If your firewall doesn't allow access to arbitrary ports, substitute '''svn://anonsvn.kde.org/''' with '''svn://websvn.kde.org:443/''' above.}}&lt;br /&gt;
&lt;br /&gt;
'''qt-copy''' is a copy of the latest stable [http://www.trolltech.com Qt] release which works with KDE, put into SVN for convenience. It also contains patches by KDE developers that haven't found their way to Qt yet. They are recommended for those working with KDE from '''trunk'''. You can obtain '''qt-copy''' by doing:&lt;br /&gt;
&lt;br /&gt;
 svn co svn://anonsvn.kde.org/home/kde/trunk/qt-copy&lt;br /&gt;
&lt;br /&gt;
If you wish to have a complete copy of the KDE distribution, you can simply check out the entire source tree with one command:&lt;br /&gt;
&lt;br /&gt;
 svn co svn://anonsvn.kde.org/home/kde/trunk/KDE&lt;br /&gt;
&lt;br /&gt;
{{note|It is smarter to first use [http://websvn.kde.org/trunk/KDE The KDE Source Repository Web Viewer]. Use it to choose which modules to download. This way KDE will be quicker to install and try out.}}&lt;br /&gt;
&lt;br /&gt;
If you want additional software packages you can check out the following modules within '''trunk/''' as well:&lt;br /&gt;
&lt;br /&gt;
 koffice&lt;br /&gt;
 extragear&lt;br /&gt;
 playground&lt;br /&gt;
 kdereview&lt;br /&gt;
&lt;br /&gt;
So, for example, if you want to check out koffice trunk, you can use &lt;br /&gt;
&lt;br /&gt;
 svn co svn://anonsvn.kde.org/home/kde/trunk/koffice&lt;br /&gt;
&lt;br /&gt;
=== Checking out trunk using snapshots ===&lt;br /&gt;
&lt;br /&gt;
If you are checking out modules from '''trunk/''' you may be able to save time by using snapshots.  Using Subversion trunk snapshots is described at [[../Snapshots|the Subversion snapshots tutorial page]].&lt;br /&gt;
&lt;br /&gt;
=== Checking out KDE 3 instead ===&lt;br /&gt;
&lt;br /&gt;
If you want to track KDE 3 rather than the bleeding edge, you may retrieve the KDE 3.5 sources using:&lt;br /&gt;
&lt;br /&gt;
 svn co svn://anonsvn.kde.org/home/kde/branches/arts/1.5/arts&lt;br /&gt;
 svn co svn://anonsvn.kde.org/home/kde/branches/KDE/3.5/&lt;br /&gt;
&lt;br /&gt;
And if you want the matching qt-copy:&lt;br /&gt;
 svn co svn://anonsvn.kde.org/home/kde/branches/qt/3.3/qt-copy&lt;br /&gt;
&lt;br /&gt;
=== Checking out specific releases ===&lt;br /&gt;
&lt;br /&gt;
KDE modules are also tagged at each release so that it is possible to get a specific release of KDE. Most KDE modules have a tag name in the format '''tags/KDE/X.Y.Z''' (where X, Y and Z represent the exact version). The arts module (only needed for KDE 2 and KDE 3) has a different format of tag name, '''tags/arts/X.Y.Z'''. For instance to get kdelibs as it was shipped in KDE 3.5.0, do: &lt;br /&gt;
&lt;br /&gt;
 svn co svn://anonsvn.kde.org/home/kde/tags/KDE/3.5.0/kdelibs/&lt;br /&gt;
&lt;br /&gt;
If you then want to update this checkout to KDE 3.5.5, use this command:&lt;br /&gt;
&lt;br /&gt;
 svn switch svn://anonsvn.kde.org/home/kde/tags/KDE/3.5.5/kdelibs&lt;br /&gt;
&lt;br /&gt;
{{tip|If you used a '''/branch/''' or '''/trunk/''' path, then there is no need to switch, just run '''svn update'''.}}&lt;br /&gt;
&lt;br /&gt;
{{tip|[http://websvn.kde.org/tags/ WebSVN] is a convenient way to check for a tag name.}}&lt;br /&gt;
&lt;br /&gt;
=== Checking out translations ===&lt;br /&gt;
If you are looking for translations and other localizations, check out the appropriate language from the [http://websvn.kde.org/trunk/l10n l10n] module. &lt;br /&gt;
&lt;br /&gt;
{{Warning|The l10n module is ''extremely'' large. Be sure you have lots of time and disk space on hand before checking out the entire l10n module. Most people only check out specific language subdirectories rather than the entire l10n module.}}&lt;br /&gt;
&lt;br /&gt;
You are now ready to start building KDE! Visit [[Getting_Started/Build/KDE4|this page]] for instructions on building trunk or [[Getting_Started/Build/Stable_Version|this page]] for instruction on compiling the last stable release.&lt;br /&gt;
&lt;br /&gt;
== Also of interest ==&lt;br /&gt;
* anonsvn.kde.org is located in Tuebingen, Germany, maintained by [mailto:dirk@kde.org Dirk Mueller] However, a more local mirror could be faster for you than anonsvn.kde.org itself. Current mirrors are, sorted by performance:&lt;br /&gt;
** kde.mneisen.org is located near Nuernberg, Germany, maintained by [mailto:martin.eisenhardt@mneisen.org Martin Eisenhardt]&lt;br /&gt;
** www.englishbreakfastnetwork.org also hosts an anonymous SVN mirror, at the University of Nijmegen, Netherlands. Maintained by [mailto:groot@kde.org Adriaan de Groot]&lt;br /&gt;
** svn://azkaban.caltech.edu is located near Los Angeles, USA and is maintained by [mailto:eugen.plamadeala@gmail.com Eugeniu Plamadeala]. It has the same folder hierarchy as anonsvn.kde.org.&lt;br /&gt;
: Be careful when switching between mirrors. SVN remembers the server in the working copy, so to switch you have to run&lt;br /&gt;
 svn switch --relocate svn://anonsvn.kde.org/ svn://kde.mneisen.org/&lt;br /&gt;
: in all your checkouts.&lt;br /&gt;
If you're interested in setting up a svn mirror, please contact [mailto:mueller@kde.org Dirk Mueller].&lt;br /&gt;
&lt;br /&gt;
[[Category:Build KDE]]&lt;/div&gt;</summary>
		<author><name>Logixoul</name></author>	</entry>

	<entry>
		<id>http://techbase.kde.org/Getting_Started/Sources/Anonymous_SVN</id>
		<title>Getting Started/Sources/Anonymous SVN</title>
		<link rel="alternate" type="text/html" href="http://techbase.kde.org/Getting_Started/Sources/Anonymous_SVN"/>
				<updated>2007-09-09T17:05:12Z</updated>
		
		<summary type="html">&lt;p&gt;Logixoul: kdesvn-build is already mentioned on the Build KDE4 page&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Template:I18n/Language Navigation Bar|Getting Started/Sources/Anonymous SVN}}&lt;br /&gt;
{{TutorialBrowser|&lt;br /&gt;
&lt;br /&gt;
series=Getting Started|&lt;br /&gt;
&lt;br /&gt;
name=Getting KDE Sources Using Anonymous Subversion (SVN)|&lt;br /&gt;
&lt;br /&gt;
next=[[../../Build/KDE4|Building KDE4]]|&lt;br /&gt;
&lt;br /&gt;
reading=[http://svnbook.red-bean.com/ Version Control with Subversion]|&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== Abstract ==&lt;br /&gt;
&lt;br /&gt;
For those of us that like to stay on the &amp;quot;bleeding edge&amp;quot; there's an easy way to keep a local copy of the KDE sources up-to-date. No more trying to log on to ftp.kde.org to get the latest snapshot. No more wandering aimlessly through mirrors looking for one that's up to date. Just a simple command line operation to get up-to-the-minute source updates: anonymous SVN.&lt;br /&gt;
&lt;br /&gt;
Please note that several Linux distributions now already provide KDE SVN packages, so '''building Qt and KDE from source may well not be necessary for you at all! '''See [[Getting_Started/Distribution_Packages]] for instructions and information.&lt;br /&gt;
&lt;br /&gt;
== Anonymous SVN ==&lt;br /&gt;
&lt;br /&gt;
Using anonymous SVN is simple:&lt;br /&gt;
&lt;br /&gt;
=== Setup Subversion ===&lt;br /&gt;
&lt;br /&gt;
First, install the subversion (svn) binary if it isn't already on your computer. Your operating system should have a package for it. Alternatively you can download and compile it yourself via the [http://subversion.tigris.org/project_packages.html svn project download page]. Please read the [[Getting_Started/Sources/Using_Subversion_with_KDE|KDE Subversion tutorial]] if you are interested in how to use Subversion.&lt;br /&gt;
&lt;br /&gt;
=== Checkout KDE ===&lt;br /&gt;
&lt;br /&gt;
'''/home/kde/trunk/''' (often refered to as '''trunk''', for short) is where the Qt4-based KDE 4 is being developed. The following is the minimal set of modules you will need to check out to build KDE and KDE software:&lt;br /&gt;
      &lt;br /&gt;
 svn co svn://anonsvn.kde.org/home/kde/trunk/KDE/kdelibs&lt;br /&gt;
 svn co svn://anonsvn.kde.org/home/kde/trunk/KDE/kdebase&lt;br /&gt;
&lt;br /&gt;
{{tip|Only use &amp;quot;'''svn co'''&amp;quot; or &amp;quot;'''svn checkout'''&amp;quot; for the initial checkout, you will update your local sources afterwards by using &amp;quot;'''svn up''' ''modulename''&amp;quot; or &amp;quot;'''svn update''' ''modulename''&amp;quot;.}}&lt;br /&gt;
&lt;br /&gt;
{{tip|If your firewall doesn't allow access to arbitrary ports, substitute '''svn://anonsvn.kde.org/''' with '''svn://websvn.kde.org:443/''' above.}}&lt;br /&gt;
&lt;br /&gt;
'''qt-copy''' is a copy of the latest stable [http://www.trolltech.com Qt] release which works with KDE, put into SVN for convenience. It also contains additional patches that fix bugs or add enhancements KDE makes use of and is therefore recommended for those working with KDE from '''trunk'''. You can obtain '''qt-copy''' by doing:&lt;br /&gt;
&lt;br /&gt;
 svn co svn://anonsvn.kde.org/home/kde/trunk/qt-copy&lt;br /&gt;
&lt;br /&gt;
If you wish to have a complete copy of the KDE distribution, you can simply check out the entire source tree with one command:&lt;br /&gt;
&lt;br /&gt;
 svn co svn://anonsvn.kde.org/home/kde/trunk/KDE  &lt;br /&gt;
&lt;br /&gt;
'''Be aware this is a lot of source code to download'''.  The server may demote priority for such large svn requests. Depending on server load, checkout of the entire source tree could grind to a virtual halt part-way through the job.&lt;br /&gt;
&lt;br /&gt;
{{note|It is smarter to first use [http://websvn.kde.org/trunk/KDE The KDE Source Repository Web Viewer]. Use it to choose which modules to download. This way KDE will be quicker to install and try out.}}&lt;br /&gt;
&lt;br /&gt;
If you want additional software packages you can check out the following modules within '''trunk/''' as well:&lt;br /&gt;
&lt;br /&gt;
 koffice&lt;br /&gt;
 extragear&lt;br /&gt;
 playground&lt;br /&gt;
 kdereview&lt;br /&gt;
&lt;br /&gt;
So, for example, if you want to check out koffice trunk, you can use &lt;br /&gt;
&lt;br /&gt;
 svn co svn://anonsvn.kde.org/home/kde/trunk/koffice&lt;br /&gt;
&lt;br /&gt;
=== Checking out trunk using snapshots ===&lt;br /&gt;
&lt;br /&gt;
If you are checking out modules from '''trunk/''' you may be able to save time by using snapshots.  Using Subversion trunk snapshots is described at [[../Snapshots|the Subversion snapshots tutorial page]].&lt;br /&gt;
&lt;br /&gt;
=== Checking out KDE 3 instead ===&lt;br /&gt;
&lt;br /&gt;
If you want to track KDE 3 rather than the bleeding edge, you may retrieve the KDE 3.5 sources using:&lt;br /&gt;
&lt;br /&gt;
 svn co svn://anonsvn.kde.org/home/kde/branches/arts/1.5/arts&lt;br /&gt;
 svn co svn://anonsvn.kde.org/home/kde/branches/KDE/3.5/&lt;br /&gt;
&lt;br /&gt;
And if you want the matching qt-copy:&lt;br /&gt;
 svn co svn://anonsvn.kde.org/home/kde/branches/qt/3.3/qt-copy&lt;br /&gt;
&lt;br /&gt;
=== Checking out specific releases ===&lt;br /&gt;
&lt;br /&gt;
KDE modules are also tagged at each release so that it is possible to get a specific release of KDE. Most KDE modules have a tag name in the format '''tags/KDE/X.Y.Z''' (where X, Y and Z represent the exact version). The arts module (only needed for KDE 2 and KDE 3) has a different format of tag name, '''tags/arts/X.Y.Z'''. For instance to get kdelibs as it was shipped in KDE 3.5.0, do: &lt;br /&gt;
&lt;br /&gt;
 svn co svn://anonsvn.kde.org/home/kde/tags/KDE/3.5.0/kdelibs/&lt;br /&gt;
&lt;br /&gt;
If you then want to update this checkout to KDE 3.5.5, use this command:&lt;br /&gt;
&lt;br /&gt;
 svn switch svn://anonsvn.kde.org/home/kde/tags/KDE/3.5.5/kdelibs&lt;br /&gt;
&lt;br /&gt;
{{tip|If you used a '''/branch/''' or '''/trunk/''' path, then there is no need to switch, just run '''svn update'''.}}&lt;br /&gt;
&lt;br /&gt;
{{tip|[http://websvn.kde.org/tags/ WebSVN] is a convenient way to check for a tag name.}}&lt;br /&gt;
&lt;br /&gt;
=== Checking out translations ===&lt;br /&gt;
If you are looking for translations and other localizations, check out the appropriate language from the [http://websvn.kde.org/trunk/l10n l10n] module. &lt;br /&gt;
&lt;br /&gt;
{{Warning|The l10n module is ''extremely'' large. Be sure you have lots of time and disk space on hand before checking out the entire l10n module. Most people only check out specific language subdirectories rather than the entire l10n module.}}&lt;br /&gt;
&lt;br /&gt;
You are now ready to start building KDE! Visit [[Getting_Started/Build/KDE4|this page]] for instructions on building trunk or [[Getting_Started/Build/Stable_Version|this page]] for instruction on compiling the last stable release.&lt;br /&gt;
&lt;br /&gt;
== Also of interest ==&lt;br /&gt;
* anonsvn.kde.org is located in Tuebingen, Germany, maintained by [mailto:dirk@kde.org Dirk Mueller] However, a more local mirror could be faster for you than anonsvn.kde.org itself. Current mirrors are, sorted by performance:&lt;br /&gt;
** kde.mneisen.org is located near Nuernberg, Germany, maintained by [mailto:martin.eisenhardt@mneisen.org Martin Eisenhardt]&lt;br /&gt;
** www.englishbreakfastnetwork.org also hosts an anonymous SVN mirror, at the University of Nijmegen, Netherlands. Maintained by [mailto:groot@kde.org Adriaan de Groot]&lt;br /&gt;
** svn://azkaban.caltech.edu is located near Los Angeles, USA and is maintained by [mailto:eugen.plamadeala@gmail.com Eugeniu Plamadeala]. It has the same folder hierarchy as anonsvn.kde.org.&lt;br /&gt;
: Be careful when switching between mirrors. SVN remembers the server in the working copy, so to switch you have to run&lt;br /&gt;
 svn switch --relocate svn://anonsvn.kde.org/ svn://kde.mneisen.org/&lt;br /&gt;
: in all your checkouts.&lt;br /&gt;
If you're interested in setting up a svn mirror, please contact [mailto:mueller@kde.org Dirk Mueller].&lt;br /&gt;
&lt;br /&gt;
[[Category:Build KDE]]&lt;/div&gt;</summary>
		<author><name>Logixoul</name></author>	</entry>

	<entry>
		<id>http://techbase.kde.org/Getting_Started/Sources/Anonymous_SVN</id>
		<title>Getting Started/Sources/Anonymous SVN</title>
		<link rel="alternate" type="text/html" href="http://techbase.kde.org/Getting_Started/Sources/Anonymous_SVN"/>
				<updated>2007-09-09T17:01:01Z</updated>
		
		<summary type="html">&lt;p&gt;Logixoul: /* Checkout KDE */ trim sentence; rm redundant info that's also on the Build KDE4 page&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Template:I18n/Language Navigation Bar|Getting Started/Sources/Anonymous SVN}}&lt;br /&gt;
{{TutorialBrowser|&lt;br /&gt;
&lt;br /&gt;
series=Getting Started|&lt;br /&gt;
&lt;br /&gt;
name=Getting KDE Sources Using Anonymous Subversion (SVN)|&lt;br /&gt;
&lt;br /&gt;
next=[[../../Build/KDE4|Building KDE4]]|&lt;br /&gt;
&lt;br /&gt;
reading=[http://svnbook.red-bean.com/ Version Control with Subversion]|&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== Abstract ==&lt;br /&gt;
&lt;br /&gt;
For those of us that like to stay on the &amp;quot;bleeding edge&amp;quot; there's an easy way to keep a local copy of the KDE sources up-to-date. No more trying to log on to ftp.kde.org to get the latest snapshot. No more wandering aimlessly through mirrors looking for one that's up to date. Just a simple command line operation to get up-to-the-minute source updates: anonymous SVN.&lt;br /&gt;
&lt;br /&gt;
Please note that several Linux distributions now already provide KDE SVN packages, so '''building Qt and KDE from source may well not be necessary for you at all! '''See [[Getting_Started/Distribution_Packages]] for instructions and information.&lt;br /&gt;
&lt;br /&gt;
== Anonymous SVN ==&lt;br /&gt;
&lt;br /&gt;
Using anonymous SVN is simple:&lt;br /&gt;
&lt;br /&gt;
=== Setup Subversion ===&lt;br /&gt;
&lt;br /&gt;
First, install the subversion (svn) binary if it isn't already on your computer. Your operating system should have a package for it. Alternatively you can download and compile it yourself via the [http://subversion.tigris.org/project_packages.html svn project download page]. Please read the [[Getting_Started/Sources/Using_Subversion_with_KDE|KDE Subversion tutorial]] if you are interested in how to use Subversion.&lt;br /&gt;
&lt;br /&gt;
=== Checkout KDE ===&lt;br /&gt;
&lt;br /&gt;
'''/home/kde/trunk/''' (often refered to as '''trunk''', for short) is where the Qt4-based KDE 4 is being developed. The following is the minimal set of modules you will need to check out to build KDE and KDE software:&lt;br /&gt;
      &lt;br /&gt;
 svn co svn://anonsvn.kde.org/home/kde/trunk/KDE/kdelibs&lt;br /&gt;
 svn co svn://anonsvn.kde.org/home/kde/trunk/KDE/kdebase&lt;br /&gt;
&lt;br /&gt;
{{tip|Only use &amp;quot;'''svn co'''&amp;quot; or &amp;quot;'''svn checkout'''&amp;quot; for the initial checkout, you will update your local sources afterwards by using &amp;quot;'''svn up''' ''modulename''&amp;quot; or &amp;quot;'''svn update''' ''modulename''&amp;quot;.}}&lt;br /&gt;
&lt;br /&gt;
{{tip|If your firewall doesn't allow access to arbitrary ports, substitute '''svn://anonsvn.kde.org/''' with '''svn://websvn.kde.org:443/''' above.}}&lt;br /&gt;
&lt;br /&gt;
'''qt-copy''' is a copy of the latest stable [http://www.trolltech.com Qt] release which works with KDE, put into SVN for convenience. It also contains additional patches that fix bugs or add enhancements KDE makes use of and is therefore recommended for those working with KDE from '''trunk'''. You can obtain '''qt-copy''' by doing:&lt;br /&gt;
&lt;br /&gt;
 svn co svn://anonsvn.kde.org/home/kde/trunk/qt-copy&lt;br /&gt;
&lt;br /&gt;
If you wish to have a complete copy of the KDE distribution, you can simply check out the entire source tree with one command:&lt;br /&gt;
&lt;br /&gt;
 svn co svn://anonsvn.kde.org/home/kde/trunk/KDE  &lt;br /&gt;
&lt;br /&gt;
'''Be aware this is a lot of source code to download'''.  The server may demote priority for such large svn requests. Depending on server load, checkout of the entire source tree could grind to a virtual halt part-way through the job.&lt;br /&gt;
&lt;br /&gt;
{{note|It is smarter to first use [http://websvn.kde.org/trunk/KDE The KDE Source Repository Web Viewer]. Use it to choose which modules to download. This way KDE will be quicker to install and try out.}}&lt;br /&gt;
&lt;br /&gt;
If you want additional software packages you can check out the following modules within '''trunk/''' as well:&lt;br /&gt;
&lt;br /&gt;
 koffice&lt;br /&gt;
 extragear&lt;br /&gt;
 playground&lt;br /&gt;
 kdereview&lt;br /&gt;
&lt;br /&gt;
So, for example, if you want to check out koffice trunk, you can use &lt;br /&gt;
&lt;br /&gt;
 svn co svn://anonsvn.kde.org/home/kde/trunk/koffice&lt;br /&gt;
&lt;br /&gt;
=== Checking out trunk using snapshots ===&lt;br /&gt;
&lt;br /&gt;
If you are checking out modules from '''trunk/''' you may be able to save time by using snapshots.  Using Subversion trunk snapshots is described at [[../Snapshots|the Subversion snapshots tutorial page]].&lt;br /&gt;
&lt;br /&gt;
=== Checking out KDE 3 instead ===&lt;br /&gt;
&lt;br /&gt;
If you want to track KDE 3 rather than the bleeding edge, you may retrieve the KDE 3.5 sources using:&lt;br /&gt;
&lt;br /&gt;
 svn co svn://anonsvn.kde.org/home/kde/branches/arts/1.5/arts&lt;br /&gt;
 svn co svn://anonsvn.kde.org/home/kde/branches/KDE/3.5/&lt;br /&gt;
&lt;br /&gt;
And if you want the matching qt-copy:&lt;br /&gt;
 svn co svn://anonsvn.kde.org/home/kde/branches/qt/3.3/qt-copy&lt;br /&gt;
&lt;br /&gt;
=== Checking out specific releases ===&lt;br /&gt;
&lt;br /&gt;
KDE modules are also tagged at each release so that it is possible to get a specific release of KDE. Most KDE modules have a tag name in the format '''tags/KDE/X.Y.Z''' (where X, Y and Z represent the exact version). The arts module (only needed for KDE 2 and KDE 3) has a different format of tag name, '''tags/arts/X.Y.Z'''. For instance to get kdelibs as it was shipped in KDE 3.5.0, do: &lt;br /&gt;
&lt;br /&gt;
 svn co svn://anonsvn.kde.org/home/kde/tags/KDE/3.5.0/kdelibs/&lt;br /&gt;
&lt;br /&gt;
If you then want to update this checkout to KDE 3.5.5, use this command:&lt;br /&gt;
&lt;br /&gt;
 svn switch svn://anonsvn.kde.org/home/kde/tags/KDE/3.5.5/kdelibs&lt;br /&gt;
&lt;br /&gt;
{{tip|If you used a '''/branch/''' or '''/trunk/''' path, then there is no need to switch, just run '''svn update'''.}}&lt;br /&gt;
&lt;br /&gt;
{{tip|[http://websvn.kde.org/tags/ WebSVN] is a convenient way to check for a tag name.}}&lt;br /&gt;
&lt;br /&gt;
=== Checking out translations ===&lt;br /&gt;
If you are looking for translations and other localizations, check out the appropriate language from the [http://websvn.kde.org/trunk/l10n l10n] module. &lt;br /&gt;
&lt;br /&gt;
{{Warning|The l10n module is ''extremely'' large. Be sure you have lots of time and disk space on hand before checking out the entire l10n module. Most people only check out specific language subdirectories rather than the entire l10n module.}}&lt;br /&gt;
&lt;br /&gt;
You are now ready to start building KDE! Visit [[Getting_Started/Build/KDE4|this page]] for instructions on building trunk or [[Getting_Started/Build/Stable_Version|this page]] for instruction on compiling the last stable release.&lt;br /&gt;
&lt;br /&gt;
== Also of interest ==&lt;br /&gt;
* anonsvn.kde.org is located in Tuebingen, Germany, maintained by [mailto:dirk@kde.org Dirk Mueller] However, a more local mirror could be faster for you than anonsvn.kde.org itself. Current mirrors are, sorted by performance:&lt;br /&gt;
** kde.mneisen.org is located near Nuernberg, Germany, maintained by [mailto:martin.eisenhardt@mneisen.org Martin Eisenhardt]&lt;br /&gt;
** www.englishbreakfastnetwork.org also hosts an anonymous SVN mirror, at the University of Nijmegen, Netherlands. Maintained by [mailto:groot@kde.org Adriaan de Groot]&lt;br /&gt;
** svn://azkaban.caltech.edu is located near Los Angeles, USA and is maintained by [mailto:eugen.plamadeala@gmail.com Eugeniu Plamadeala]. It has the same folder hierarchy as anonsvn.kde.org.&lt;br /&gt;
: Be careful when switching between mirrors. SVN remembers the server in the working copy, so to switch you have to run&lt;br /&gt;
 svn switch --relocate svn://anonsvn.kde.org/ svn://kde.mneisen.org/&lt;br /&gt;
: in all your checkouts. &lt;br /&gt;
* For a script that updates via SVN and compiles KDE automatically, see [http://kdesvn-build.kde.org/ kdesvn-build].&lt;br /&gt;
&lt;br /&gt;
If you're interested in setting up a svn mirror, please contact [mailto:mueller@kde.org Dirk Mueller].&lt;br /&gt;
&lt;br /&gt;
[[Category:Build KDE]]&lt;/div&gt;</summary>
		<author><name>Logixoul</name></author>	</entry>

	<entry>
		<id>http://techbase.kde.org/Talk:Installing_third_party_softwares_in_terminal/Build/KDE4</id>
		<title>Talk:Installing third party softwares in terminal/Build/KDE4</title>
		<link rel="alternate" type="text/html" href="http://techbase.kde.org/Talk:Installing_third_party_softwares_in_terminal/Build/KDE4"/>
				<updated>2007-07-05T16:12:08Z</updated>
		
		<summary type="html">&lt;p&gt;Logixoul: /* Amount of space needed? */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==== This article is full of errors ====&lt;br /&gt;
&lt;br /&gt;
For example it *is* nessecary to install qt-copy, even if you keep it in the source directory (which leads to 394583069845 error messages on the console during the install). And kdelibs won't build unless something unknown is done with strigi - if it is installed into KDEDIR, it isn't just found.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
the heading says pre-requirments are to read &amp;quot;Anonymous SVN Quickstart Guide&amp;quot; first.   but the things it does are mostly done in this guide(but a little differently).  for example the &amp;quot;Anonymous SVN Quickstart Guide&amp;quot; has you just svn a bunch of stuff.... but that all ended up in the wrong place cause in this guide the svn'd stuff needed to go to &amp;quot;kde-devl&amp;quot;-user's dir not the normal user dir..&lt;br /&gt;
&lt;br /&gt;
:This tutorial clearly states: &amp;quot;The rest of this tutorial assumes you are running as the kde-devel user.&amp;quot; -[[User:TMG|TMG]] 14:16, 25 June 2007 (CEST)&lt;br /&gt;
&lt;br /&gt;
==== This article is complicated ====&lt;br /&gt;
when I wrote this article, it was lean and simple. It has been improved somewhere, but on most places worsened. An example is the directory structure (to get to qt-copy: cd &amp;amp;&amp;amp; cd qt-copy; to get to kdelibs: cs &amp;amp;&amp;amp; cd kdelibs; to get to kdepim: cs &amp;amp;&amp;amp; cd KDE &amp;amp;&amp;amp; cd kdepim - no one understands this!!!).&lt;br /&gt;
Another example is cs and cb which is quite unnecessary as my initial article shows. But of course, with the complexity as the article has NOW, it IS necessary.&lt;br /&gt;
&lt;br /&gt;
Why do you spoil a simple article so that even I no longer find my own subdirs ?&lt;br /&gt;
--­­­­[[User:Tstaerk|Tstaerk]] 10:25, 28 May 2007 (CEST)&lt;br /&gt;
&lt;br /&gt;
: Where do you see &amp;quot;cs &amp;amp;&amp;amp; cd KDE &amp;amp;&amp;amp; cd kdepim&amp;quot;? Because I don't see that anywhere. In any case it would just be &amp;quot;cs kdepim&amp;quot;. Perhaps that's the bit need explaining a bit better? --[[User:Aseigo|Aseigo]] 02:48, 29 May 2007 (CEST)&lt;br /&gt;
&lt;br /&gt;
:To whom are you talking to? ;) There are many contributors and as it's a wiki an article probably &amp;quot;degenerates&amp;quot; automatically if noone has an eye on it. The article certainly has valuable information and simply needs a cleanup. In other words: Fix it! :) --[[User:Dhaumann|Dhaumann]] 12:20, 28 May 2007 (CEST)&lt;br /&gt;
&lt;br /&gt;
::IMHO all of this cs/cb/cmakekde and such is only confusing, users just do copy&amp;amp;paste with no really knowledge of what's going on when they type those commands. This way troubleshooting is quite difficult, and they learn nothing about the '''real''' compiling way. The concept of source/build dirs is barely noted. The ''old'' http://developer.kde.org/build/trunk.html has some more commands to type, but it was quite more understandable and clear about the '''real''' steps to do. --[[user:Pino|pino]] 12:54, 28 May 2007 (CEST)&lt;br /&gt;
&lt;br /&gt;
::: Yes, this article could go back to being more verbose. I suppose what is missing is an explanation of ''why'' the shortcuts are used. They are there for a reason. I also don't get the differentiation between real and not real steps; unless we now consider using the shell for what it was designed for as not real. --[[User:Aseigo|Aseigo]] 02:48, 29 May 2007 (CEST)&lt;br /&gt;
&lt;br /&gt;
:::: What's wrong in explicitely telling:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
svn co .../kdelibs&lt;br /&gt;
mkdir build-kdelibs&lt;br /&gt;
cd build-kdelibs&lt;br /&gt;
cmake &amp;lt;options&amp;gt; ../kdelibs&lt;br /&gt;
make install&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
:::: After all, we did that with the &amp;lt;tt&amp;gt;./configure &amp;amp;&amp;amp; make &amp;amp;&amp;amp; make install&amp;lt;/tt&amp;gt; sequence in KDE 3 times, and that worked quite fine. I still fail why we have to make our things more complicated. Moreover, these macros force fixed paths -- [[user:Pino|pino]] 23:43, 29 May 2007 (CEST)&lt;br /&gt;
&lt;br /&gt;
:I am also for removing cb and cs, somebody should just do it. They are indeed confusing and sometimes don't work as expected (that is why cd $KDE_SRC is needed in one place). cmakekde on the other hand could stay IMHO. -[[User:TMG|TMG]] 14:16, 25 June 2007 (CEST)&lt;br /&gt;
&lt;br /&gt;
==== Q: What is cs and cb? ====&lt;br /&gt;
&lt;br /&gt;
A: '''This is not a typo'''. Read the article about setting up your .bashrc.  Both '''cs''' and '''cb''' are bash functions, used to change to the KDE source directory and KDE build directory respectively.&lt;br /&gt;
&lt;br /&gt;
==== Q: Are there build instructions for other OS? ====&lt;br /&gt;
&lt;br /&gt;
A: Actually '''yes''', for [[Getting Started/Build/KDE4/Mac OS X|Mac OS X]]. There also is [http://www.kdelibs.com kdelibs.com] (see also [[User_talk:Jstaniek#KDElibs.com_and_developernew.kde.org_coexistence|here]]) which will be merged into this wiki in the future.&lt;br /&gt;
&lt;br /&gt;
==== Q: Isn't the install prefix, make and make install missing for modules like kdelibs and kdebase? ====&lt;br /&gt;
A: No. The shell function ''cmakekde'' handels this, have a look at the file [[Getting_Started/Increased_Productivity_in_KDE4_with_Scripts/.bashrc|.bashrc]].&lt;br /&gt;
&lt;br /&gt;
==== Q: I changed the first command of the &amp;quot;Set up QT - Recipe&amp;quot; from cd to cs because I think this was a typo. Am I right?? ====&lt;br /&gt;
A: Right --[[User:Dhaumann|Dhaumann]]&lt;br /&gt;
&lt;br /&gt;
:: no, it was perfectly intentional. see the [[/Getting_Started/Increased_Productivity_in_KDE4_with_Scripts/.bashrc bashrc in the productivity with KDE4 scripts tutorial]]. it has QTDIR set to ~/qt-copy. this makes sense, actually, since building Qt is done rather differently from the rest of KDE and one may not get Qt from KDE's svn in any case. so yes, it is supposed to be cd, not cs.&lt;br /&gt;
&lt;br /&gt;
::: *blush* ;) i should read more carefully. --[[User:Dhaumann|Dhaumann]] &lt;br /&gt;
&lt;br /&gt;
==== Notes: ~/install ====&lt;br /&gt;
&lt;br /&gt;
When installing KDE4, I strongly recommend installing all tools (like dbus and cmake) and kde packages into the same place, e.g. ~/install. Qt is the only exception.&lt;br /&gt;
&lt;br /&gt;
The reason for this is because if you install some packages to ~/kde and some to /usr/local and maybe one in /usr then cmake will generate errors like:&lt;br /&gt;
&lt;br /&gt;
-- It is impossible to order the include directories.&lt;br /&gt;
&lt;br /&gt;
This is not a fatal error, so you will still be able to compile, but you will possibly be using the wrong versions of libraries and this will product problems that are very hard to diagnose.&lt;br /&gt;
&lt;br /&gt;
You may not experience any problems when installed like I advise not to, however I have and you might too in some typical situations.&lt;br /&gt;
&lt;br /&gt;
Please see:&lt;br /&gt;
&lt;br /&gt;
http://developer.kde.org/build/trunk.html&lt;br /&gt;
&lt;br /&gt;
==== Install CMake modules local ====&lt;br /&gt;
&lt;br /&gt;
The CMake modules should be installed local into ~/install/cmake/modules or similar.&lt;br /&gt;
When following the current instructions [[ Getting_Started/Build/KDE4#Install_additional_CMake_modules|6.1: Install additional CMake modules]],  it's impossible to do a non-root installation, because &amp;quot;kdelibs/cmake/modules/cmake_install.cmake&amp;quot; wants to install the modules to &amp;quot;/cmake/modules&amp;quot;. (I didn't install CMake local, because my system already provided CMake &amp;gt; 2.4.3).&lt;br /&gt;
&lt;br /&gt;
I've already tried to do this, fiddling around with CMAKE_MODULE_PATH and DATA_INSTALL_DIR but couldn't get it working.&lt;br /&gt;
&lt;br /&gt;
Does anybody know how to do this properly?&lt;br /&gt;
&lt;br /&gt;
--[[User:Eliasp|Eliasp]] 15:44, 4 January 2007 (CET)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Fixes needed ====&lt;br /&gt;
* qt-copy: Should we pass the -debug flag?  Doesn't Qt install debug information separately by default anyways?  Or is that just in the snapshot? --[[User:Mpyne|Mpyne]]&lt;br /&gt;
&lt;br /&gt;
: according to ./configure --help, the default is -release in snapshot. --[[User:Aseigo|Aseigo]] 04:33, 14 March 2007 (CET)&lt;br /&gt;
&lt;br /&gt;
* In the part of the tutorial that describes how to create a new users, shoudn't to have an edit /etc/sudoers to add permitions for kde-devel call sudo? --[[User:SilveiraNeto|SilveiraNeto]] 03:01, 14 March 2007 (CET)&lt;br /&gt;
&lt;br /&gt;
: no. why would you want them to have sudo access?&lt;br /&gt;
&lt;br /&gt;
==== libungif/giflib ====&lt;br /&gt;
Since the patents expired, why not use giflib?&lt;br /&gt;
&lt;br /&gt;
==== Old gcc and -pch flag ====&lt;br /&gt;
In Qt part I had problems with error like this: [http://www.qtforum.org/thread.php?threadid=19998 QtForum thread]. I had GCC 3.3.X installed. Using -pch flag (as in recipe) get me errors. Someone friendly gave me tip on #kde-devel not to use this flag, although I didn't test it. Instead I've just updated gcc and g++ from debian repositories. Newer version works fine as &amp;quot;Precompiled headers are supported in GCC (3.4 and newer)&amp;quot; [http://en.wikipedia.org/wiki/Precompiled_header Wikipedia pch].&lt;br /&gt;
&lt;br /&gt;
==== Build status ====&lt;br /&gt;
&lt;br /&gt;
You might want to include the [http://developer.kde.org/~dirk/dashboard/ dashboard link] to show which modules currently build and which don't. --[[User:141.35.8.106|141.35.8.106]] 13:28, 20 March 2007 (CET)&lt;br /&gt;
&lt;br /&gt;
== Extra optional software ==&lt;br /&gt;
&lt;br /&gt;
- openldap&lt;br /&gt;
- cyrus&lt;br /&gt;
&lt;br /&gt;
If there was a line at the top like:&lt;br /&gt;
&lt;br /&gt;
sudo apt-get install libaaa-dev libbbb-dev ...-dev ...&lt;br /&gt;
&lt;br /&gt;
This would be very useful and save hours. Is this something we should do?&lt;br /&gt;
&lt;br /&gt;
== su - kde4 didn't set the variables ==&lt;br /&gt;
&lt;br /&gt;
after running 'su - kde4' and 'export' i saw that no variables in .bashrc were set, instead the old one (of the system) where set. I tried 'su kde4' and it worked fine. Why is that?&lt;br /&gt;
&lt;br /&gt;
I'm running gentoo 2006.1 amd64&lt;br /&gt;
&lt;br /&gt;
== Qt Flags ==&lt;br /&gt;
&lt;br /&gt;
Are &amp;quot;-pch&amp;quot; and &amp;quot;-qdbus&amp;quot; really needed? The configure script shows that they're enabled by default. --[[User:McEnroe|McEnroe]] 16:49, 19 April 2007 (CEST)&lt;br /&gt;
:Fixed. Also got rid of openssl for the same reason [[User:Logixoul|Logixoul]] 18:03, 5 July 2007 (CEST)&lt;br /&gt;
&lt;br /&gt;
== Amount of space needed? ==&lt;br /&gt;
&lt;br /&gt;
It would be nice to know how much space (roughly, in GB) you need for a setup to build and run the basic things and packages. --[[User:Liquidat|Liquidat]] 03:08, 7 June 2007 (CEST)&lt;br /&gt;
: 4.5 GB --[[User:Logixoul|Logixoul]] 18:12, 5 July 2007 (CEST)&lt;br /&gt;
&lt;br /&gt;
== Install error? ==&lt;br /&gt;
&lt;br /&gt;
With the kdesupport package I have an install error:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
CMake Error: Error in cmake code at&lt;br /&gt;
/media/local/kde-devel/kde/build/kdesupport/qca/plugins/qca-logger/cmake_install                                                                            .cmake:35:&lt;br /&gt;
FILE cannot create directory: /usr/lib/qt4/plugins/crypto. Maybe need administrative privileges.&lt;br /&gt;
Current CMake stack: /media/local/kde-devel/kde/build/kdesupport/cmake_install.c                                                                            make;/media/local/kde-devel/kde/build/kdesupport/qca/cmake_install.cmake;/media/                                                                            local/kde-devel/kde/build/kdesupport/qca/plugins/cmake_install.cmake;/media/loca                                                                            l/kde-devel/kde/build/kdesupport/qca/plugins/qca-logger/cmake_install.cmake&lt;br /&gt;
make: *** [install] Error 255&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Why is it trying to install that system wide?&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:Have you installed local copy of qt4 as described in this tutorial? I had the same error while trying to skip installation of local qt4 copy and use system-wide installed one. The error is gone with local copy of qt4.&lt;br /&gt;
&lt;br /&gt;
::I checked back, and the problem is that the script tries to install &amp;quot;libqca-logger.so&amp;quot; to $QTDIR - any idea how to change that?&lt;br /&gt;
&lt;br /&gt;
:::Did you set $QTDIR to the correct value? Make sure you use the .bashrc so that all environment variables are correct. -[[User:TMG|TMG]] 14:25, 25 June 2007 (CEST)&lt;br /&gt;
::::The entire point is that $QTDIR has to be set to /usr/lib/qt4/ - because I use the system wide installed copy of Qt 4.3!&lt;br /&gt;
::::So the problem is not that $QTDIR is set wrong but that the script tries to install something to $QTDIR. --[[User:141.35.185.149|141.35.185.149]] 23:38, 3 July 2007 (CEST)&lt;br /&gt;
:::::Well, then you probably need to install with sudo to get the file installed. I guess it needs to be in the Qt directory because otherwise, Qt doesn't find the files. -[[User:TMG|TMG]] 17:31, 4 July 2007 (CEST)&lt;/div&gt;</summary>
		<author><name>Logixoul</name></author>	</entry>

	<entry>
		<id>http://techbase.kde.org/Talk:Installing_third_party_softwares_in_terminal/Build/KDE4</id>
		<title>Talk:Installing third party softwares in terminal/Build/KDE4</title>
		<link rel="alternate" type="text/html" href="http://techbase.kde.org/Talk:Installing_third_party_softwares_in_terminal/Build/KDE4"/>
				<updated>2007-07-05T16:03:01Z</updated>
		
		<summary type="html">&lt;p&gt;Logixoul: /* Qt Flags */ fixed&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==== This article is full of errors ====&lt;br /&gt;
&lt;br /&gt;
For example it *is* nessecary to install qt-copy, even if you keep it in the source directory (which leads to 394583069845 error messages on the console during the install). And kdelibs won't build unless something unknown is done with strigi - if it is installed into KDEDIR, it isn't just found.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
the heading says pre-requirments are to read &amp;quot;Anonymous SVN Quickstart Guide&amp;quot; first.   but the things it does are mostly done in this guide(but a little differently).  for example the &amp;quot;Anonymous SVN Quickstart Guide&amp;quot; has you just svn a bunch of stuff.... but that all ended up in the wrong place cause in this guide the svn'd stuff needed to go to &amp;quot;kde-devl&amp;quot;-user's dir not the normal user dir..&lt;br /&gt;
&lt;br /&gt;
:This tutorial clearly states: &amp;quot;The rest of this tutorial assumes you are running as the kde-devel user.&amp;quot; -[[User:TMG|TMG]] 14:16, 25 June 2007 (CEST)&lt;br /&gt;
&lt;br /&gt;
==== This article is complicated ====&lt;br /&gt;
when I wrote this article, it was lean and simple. It has been improved somewhere, but on most places worsened. An example is the directory structure (to get to qt-copy: cd &amp;amp;&amp;amp; cd qt-copy; to get to kdelibs: cs &amp;amp;&amp;amp; cd kdelibs; to get to kdepim: cs &amp;amp;&amp;amp; cd KDE &amp;amp;&amp;amp; cd kdepim - no one understands this!!!).&lt;br /&gt;
Another example is cs and cb which is quite unnecessary as my initial article shows. But of course, with the complexity as the article has NOW, it IS necessary.&lt;br /&gt;
&lt;br /&gt;
Why do you spoil a simple article so that even I no longer find my own subdirs ?&lt;br /&gt;
--­­­­[[User:Tstaerk|Tstaerk]] 10:25, 28 May 2007 (CEST)&lt;br /&gt;
&lt;br /&gt;
: Where do you see &amp;quot;cs &amp;amp;&amp;amp; cd KDE &amp;amp;&amp;amp; cd kdepim&amp;quot;? Because I don't see that anywhere. In any case it would just be &amp;quot;cs kdepim&amp;quot;. Perhaps that's the bit need explaining a bit better? --[[User:Aseigo|Aseigo]] 02:48, 29 May 2007 (CEST)&lt;br /&gt;
&lt;br /&gt;
:To whom are you talking to? ;) There are many contributors and as it's a wiki an article probably &amp;quot;degenerates&amp;quot; automatically if noone has an eye on it. The article certainly has valuable information and simply needs a cleanup. In other words: Fix it! :) --[[User:Dhaumann|Dhaumann]] 12:20, 28 May 2007 (CEST)&lt;br /&gt;
&lt;br /&gt;
::IMHO all of this cs/cb/cmakekde and such is only confusing, users just do copy&amp;amp;paste with no really knowledge of what's going on when they type those commands. This way troubleshooting is quite difficult, and they learn nothing about the '''real''' compiling way. The concept of source/build dirs is barely noted. The ''old'' http://developer.kde.org/build/trunk.html has some more commands to type, but it was quite more understandable and clear about the '''real''' steps to do. --[[user:Pino|pino]] 12:54, 28 May 2007 (CEST)&lt;br /&gt;
&lt;br /&gt;
::: Yes, this article could go back to being more verbose. I suppose what is missing is an explanation of ''why'' the shortcuts are used. They are there for a reason. I also don't get the differentiation between real and not real steps; unless we now consider using the shell for what it was designed for as not real. --[[User:Aseigo|Aseigo]] 02:48, 29 May 2007 (CEST)&lt;br /&gt;
&lt;br /&gt;
:::: What's wrong in explicitely telling:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
svn co .../kdelibs&lt;br /&gt;
mkdir build-kdelibs&lt;br /&gt;
cd build-kdelibs&lt;br /&gt;
cmake &amp;lt;options&amp;gt; ../kdelibs&lt;br /&gt;
make install&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
:::: After all, we did that with the &amp;lt;tt&amp;gt;./configure &amp;amp;&amp;amp; make &amp;amp;&amp;amp; make install&amp;lt;/tt&amp;gt; sequence in KDE 3 times, and that worked quite fine. I still fail why we have to make our things more complicated. Moreover, these macros force fixed paths -- [[user:Pino|pino]] 23:43, 29 May 2007 (CEST)&lt;br /&gt;
&lt;br /&gt;
:I am also for removing cb and cs, somebody should just do it. They are indeed confusing and sometimes don't work as expected (that is why cd $KDE_SRC is needed in one place). cmakekde on the other hand could stay IMHO. -[[User:TMG|TMG]] 14:16, 25 June 2007 (CEST)&lt;br /&gt;
&lt;br /&gt;
==== Q: What is cs and cb? ====&lt;br /&gt;
&lt;br /&gt;
A: '''This is not a typo'''. Read the article about setting up your .bashrc.  Both '''cs''' and '''cb''' are bash functions, used to change to the KDE source directory and KDE build directory respectively.&lt;br /&gt;
&lt;br /&gt;
==== Q: Are there build instructions for other OS? ====&lt;br /&gt;
&lt;br /&gt;
A: Actually '''yes''', for [[Getting Started/Build/KDE4/Mac OS X|Mac OS X]]. There also is [http://www.kdelibs.com kdelibs.com] (see also [[User_talk:Jstaniek#KDElibs.com_and_developernew.kde.org_coexistence|here]]) which will be merged into this wiki in the future.&lt;br /&gt;
&lt;br /&gt;
==== Q: Isn't the install prefix, make and make install missing for modules like kdelibs and kdebase? ====&lt;br /&gt;
A: No. The shell function ''cmakekde'' handels this, have a look at the file [[Getting_Started/Increased_Productivity_in_KDE4_with_Scripts/.bashrc|.bashrc]].&lt;br /&gt;
&lt;br /&gt;
==== Q: I changed the first command of the &amp;quot;Set up QT - Recipe&amp;quot; from cd to cs because I think this was a typo. Am I right?? ====&lt;br /&gt;
A: Right --[[User:Dhaumann|Dhaumann]]&lt;br /&gt;
&lt;br /&gt;
:: no, it was perfectly intentional. see the [[/Getting_Started/Increased_Productivity_in_KDE4_with_Scripts/.bashrc bashrc in the productivity with KDE4 scripts tutorial]]. it has QTDIR set to ~/qt-copy. this makes sense, actually, since building Qt is done rather differently from the rest of KDE and one may not get Qt from KDE's svn in any case. so yes, it is supposed to be cd, not cs.&lt;br /&gt;
&lt;br /&gt;
::: *blush* ;) i should read more carefully. --[[User:Dhaumann|Dhaumann]] &lt;br /&gt;
&lt;br /&gt;
==== Notes: ~/install ====&lt;br /&gt;
&lt;br /&gt;
When installing KDE4, I strongly recommend installing all tools (like dbus and cmake) and kde packages into the same place, e.g. ~/install. Qt is the only exception.&lt;br /&gt;
&lt;br /&gt;
The reason for this is because if you install some packages to ~/kde and some to /usr/local and maybe one in /usr then cmake will generate errors like:&lt;br /&gt;
&lt;br /&gt;
-- It is impossible to order the include directories.&lt;br /&gt;
&lt;br /&gt;
This is not a fatal error, so you will still be able to compile, but you will possibly be using the wrong versions of libraries and this will product problems that are very hard to diagnose.&lt;br /&gt;
&lt;br /&gt;
You may not experience any problems when installed like I advise not to, however I have and you might too in some typical situations.&lt;br /&gt;
&lt;br /&gt;
Please see:&lt;br /&gt;
&lt;br /&gt;
http://developer.kde.org/build/trunk.html&lt;br /&gt;
&lt;br /&gt;
==== Install CMake modules local ====&lt;br /&gt;
&lt;br /&gt;
The CMake modules should be installed local into ~/install/cmake/modules or similar.&lt;br /&gt;
When following the current instructions [[ Getting_Started/Build/KDE4#Install_additional_CMake_modules|6.1: Install additional CMake modules]],  it's impossible to do a non-root installation, because &amp;quot;kdelibs/cmake/modules/cmake_install.cmake&amp;quot; wants to install the modules to &amp;quot;/cmake/modules&amp;quot;. (I didn't install CMake local, because my system already provided CMake &amp;gt; 2.4.3).&lt;br /&gt;
&lt;br /&gt;
I've already tried to do this, fiddling around with CMAKE_MODULE_PATH and DATA_INSTALL_DIR but couldn't get it working.&lt;br /&gt;
&lt;br /&gt;
Does anybody know how to do this properly?&lt;br /&gt;
&lt;br /&gt;
--[[User:Eliasp|Eliasp]] 15:44, 4 January 2007 (CET)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Fixes needed ====&lt;br /&gt;
* qt-copy: Should we pass the -debug flag?  Doesn't Qt install debug information separately by default anyways?  Or is that just in the snapshot? --[[User:Mpyne|Mpyne]]&lt;br /&gt;
&lt;br /&gt;
: according to ./configure --help, the default is -release in snapshot. --[[User:Aseigo|Aseigo]] 04:33, 14 March 2007 (CET)&lt;br /&gt;
&lt;br /&gt;
* In the part of the tutorial that describes how to create a new users, shoudn't to have an edit /etc/sudoers to add permitions for kde-devel call sudo? --[[User:SilveiraNeto|SilveiraNeto]] 03:01, 14 March 2007 (CET)&lt;br /&gt;
&lt;br /&gt;
: no. why would you want them to have sudo access?&lt;br /&gt;
&lt;br /&gt;
==== libungif/giflib ====&lt;br /&gt;
Since the patents expired, why not use giflib?&lt;br /&gt;
&lt;br /&gt;
==== Old gcc and -pch flag ====&lt;br /&gt;
In Qt part I had problems with error like this: [http://www.qtforum.org/thread.php?threadid=19998 QtForum thread]. I had GCC 3.3.X installed. Using -pch flag (as in recipe) get me errors. Someone friendly gave me tip on #kde-devel not to use this flag, although I didn't test it. Instead I've just updated gcc and g++ from debian repositories. Newer version works fine as &amp;quot;Precompiled headers are supported in GCC (3.4 and newer)&amp;quot; [http://en.wikipedia.org/wiki/Precompiled_header Wikipedia pch].&lt;br /&gt;
&lt;br /&gt;
==== Build status ====&lt;br /&gt;
&lt;br /&gt;
You might want to include the [http://developer.kde.org/~dirk/dashboard/ dashboard link] to show which modules currently build and which don't. --[[User:141.35.8.106|141.35.8.106]] 13:28, 20 March 2007 (CET)&lt;br /&gt;
&lt;br /&gt;
== Extra optional software ==&lt;br /&gt;
&lt;br /&gt;
- openldap&lt;br /&gt;
- cyrus&lt;br /&gt;
&lt;br /&gt;
If there was a line at the top like:&lt;br /&gt;
&lt;br /&gt;
sudo apt-get install libaaa-dev libbbb-dev ...-dev ...&lt;br /&gt;
&lt;br /&gt;
This would be very useful and save hours. Is this something we should do?&lt;br /&gt;
&lt;br /&gt;
== su - kde4 didn't set the variables ==&lt;br /&gt;
&lt;br /&gt;
after running 'su - kde4' and 'export' i saw that no variables in .bashrc were set, instead the old one (of the system) where set. I tried 'su kde4' and it worked fine. Why is that?&lt;br /&gt;
&lt;br /&gt;
I'm running gentoo 2006.1 amd64&lt;br /&gt;
&lt;br /&gt;
== Qt Flags ==&lt;br /&gt;
&lt;br /&gt;
Are &amp;quot;-pch&amp;quot; and &amp;quot;-qdbus&amp;quot; really needed? The configure script shows that they're enabled by default. --[[User:McEnroe|McEnroe]] 16:49, 19 April 2007 (CEST)&lt;br /&gt;
:Fixed. Also got rid of openssl for the same reason [[User:Logixoul|Logixoul]] 18:03, 5 July 2007 (CEST)&lt;br /&gt;
&lt;br /&gt;
== Amount of space needed? ==&lt;br /&gt;
&lt;br /&gt;
It would be nice to know how much space (roughly, in GB) you need for a setup to build and run the basic things and packages. --[[User:Liquidat|Liquidat]] 03:08, 7 June 2007 (CEST)&lt;br /&gt;
&lt;br /&gt;
== Install error? ==&lt;br /&gt;
&lt;br /&gt;
With the kdesupport package I have an install error:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
CMake Error: Error in cmake code at&lt;br /&gt;
/media/local/kde-devel/kde/build/kdesupport/qca/plugins/qca-logger/cmake_install                                                                            .cmake:35:&lt;br /&gt;
FILE cannot create directory: /usr/lib/qt4/plugins/crypto. Maybe need administrative privileges.&lt;br /&gt;
Current CMake stack: /media/local/kde-devel/kde/build/kdesupport/cmake_install.c                                                                            make;/media/local/kde-devel/kde/build/kdesupport/qca/cmake_install.cmake;/media/                                                                            local/kde-devel/kde/build/kdesupport/qca/plugins/cmake_install.cmake;/media/loca                                                                            l/kde-devel/kde/build/kdesupport/qca/plugins/qca-logger/cmake_install.cmake&lt;br /&gt;
make: *** [install] Error 255&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Why is it trying to install that system wide?&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:Have you installed local copy of qt4 as described in this tutorial? I had the same error while trying to skip installation of local qt4 copy and use system-wide installed one. The error is gone with local copy of qt4.&lt;br /&gt;
&lt;br /&gt;
::I checked back, and the problem is that the script tries to install &amp;quot;libqca-logger.so&amp;quot; to $QTDIR - any idea how to change that?&lt;br /&gt;
&lt;br /&gt;
:::Did you set $QTDIR to the correct value? Make sure you use the .bashrc so that all environment variables are correct. -[[User:TMG|TMG]] 14:25, 25 June 2007 (CEST)&lt;br /&gt;
::::The entire point is that $QTDIR has to be set to /usr/lib/qt4/ - because I use the system wide installed copy of Qt 4.3!&lt;br /&gt;
::::So the problem is not that $QTDIR is set wrong but that the script tries to install something to $QTDIR. --[[User:141.35.185.149|141.35.185.149]] 23:38, 3 July 2007 (CEST)&lt;br /&gt;
:::::Well, then you probably need to install with sudo to get the file installed. I guess it needs to be in the Qt directory because otherwise, Qt doesn't find the files. -[[User:TMG|TMG]] 17:31, 4 July 2007 (CEST)&lt;/div&gt;</summary>
		<author><name>Logixoul</name></author>	</entry>

	<entry>
		<id>http://techbase.kde.org/Getting_Started/Build/KDE4</id>
		<title>Getting Started/Build/KDE4</title>
		<link rel="alternate" type="text/html" href="http://techbase.kde.org/Getting_Started/Build/KDE4"/>
				<updated>2007-07-05T16:00:40Z</updated>
		
		<summary type="html">&lt;p&gt;Logixoul: /* The Recipe */ qdbus and pch are default as mentioned on talk; same for openssl&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Template:I18n/Language Navigation Bar|Getting_Started/Build/KDE4}}&lt;br /&gt;
&lt;br /&gt;
{{TutorialBrowser|&lt;br /&gt;
&lt;br /&gt;
series=Getting Started|&lt;br /&gt;
&lt;br /&gt;
name=Building KDE4 From Source|&lt;br /&gt;
&lt;br /&gt;
pre=[[../../Sources/Anonymous_SVN|Anonymous SVN Quickstart Guide]]|&lt;br /&gt;
&lt;br /&gt;
next=[[../../Set_up_KDE_4_for_development|Set up KDE 4 for development]]|&lt;br /&gt;
&lt;br /&gt;
reading=[http://kdesvn-build.kde.org/ kdesvn-build: The KDE From Subversion Build Tool]&amp;lt;br&amp;gt;[[../../Increased_Productivity_in_KDE4_with_Scripts|Increased Productivity in KDE4 with Scripts]]&amp;lt;br&amp;gt;[[Development/Tutorials/CMake |Introduction to CMake]]&amp;lt;br&amp;gt;[[../KDE4/FreeBSD|FreeBSD notes]]&amp;lt;br&amp;gt;[[../KDE4/Mac OS X|Instructions for Mac OS X]]|&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== Abstract ==&lt;br /&gt;
&lt;br /&gt;
This tutorial shows one way to get KDE from trunk running on Linux/BSD systems. There are also tutorials for [[/FreeBSD|FreeBSD]], [http://www.kdelibs.com/ Windows], [[/Mac OS X|Mac OS X]] and [http://solaris.kde.org/ Solaris]. Throughout the tutorial the bash shell is used.&lt;br /&gt;
&lt;br /&gt;
{{warning|Expect a higher risk of build failure '''on Mondays''' when most kdelibs changes are committed. [http://developer.kde.org/~dirk/dashboard/ Dashboard] reports unexpected breakages. You are encouraged to fix failing modules.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== Required Software ==&lt;br /&gt;
&lt;br /&gt;
The following must be installed first before you can successfully complete this tutorial:&lt;br /&gt;
* gcc and g++ from the gcc project, preferably version 4.1 or higher&lt;br /&gt;
* svn, the subversion revision control client&lt;br /&gt;
* pkg-config&lt;br /&gt;
* development libraries and headers for X11, OpenGL (mesa-common-dev and libglu1-mesa-dev), libjpeg, libpng, libungif, [http://clucene.sourceforge.net/index.php/Downloads libclucene], [http://download.librdf.org/source/ librdf], libxml2 and libxslt&lt;br /&gt;
* the &amp;lt;tt&amp;gt;makeobj&amp;lt;/tt&amp;gt; script, which is part of kdesdk. You can install it as part of kdesdk (kdesdk-scripts on Debian) or similar package, or just download it itself from [http://websvn.kde.org/*checkout*/trunk/KDE/kdesdk/scripts/makeobj WebSVN]&lt;br /&gt;
* the [http://freedesktop.org/wiki/Software/shared-mime-info shared-mime-info package], which is the freedesktop MIME standard KDE is using now&lt;br /&gt;
* [http://boost.org/ boost], needed by kdebase; after compiling and/or installing boost, in order to make cmake aware about its location (FindBoost),  add boost directory (the one containing include subdirectory) to CMAKE_INCLUDE_PATH or set an environment variable called BOOST_ROOT pointing to boost directory.&lt;br /&gt;
&lt;br /&gt;
=== Kubuntu ===&lt;br /&gt;
&lt;br /&gt;
In Kubuntu 7.04 (Feisty) the build dependencies you need are installed with:&lt;br /&gt;
&amp;lt;code bash&amp;gt;&lt;br /&gt;
sudo aptitude install build-essential cdbs debhelper cmake \&lt;br /&gt;
libxml2-dev libxslt1-dev libbz2-dev libclucene-dev librdf-dev \&lt;br /&gt;
shared-mime-info libgl1-mesa-dev libglu1-mesa-dev mesa-common-dev \&lt;br /&gt;
libxext-dev libjpeg-dev libpng-dev subversion libsm-dev libxinerama-dev \&lt;br /&gt;
libxrender-dev libfontconfig-dev libboost-dev libxcursor-dev doxygen \&lt;br /&gt;
libungif4-dev libdbus-1-dev libgpgme11-dev libssl-dev&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You can skip the manual installation of CMake 2.4.6 and DBus with: &lt;br /&gt;
&amp;lt;code bash&amp;gt;&lt;br /&gt;
sudo aptitude install libdbus-1-dev cmake&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For a fully functional API documentation framework you also need:&lt;br /&gt;
&amp;lt;code bash&amp;gt;&lt;br /&gt;
sudo aptitude install graphviz&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== openSUSE ===&lt;br /&gt;
&lt;br /&gt;
In openSUSE 10.2 and newer, you can install packages using [http://en.opensuse.org/Zypper Zypper]:&lt;br /&gt;
&amp;lt;code bash&amp;gt;&lt;br /&gt;
sudo zypper install &amp;lt;package-name&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In older releases of SUSE, you can use YaST:&lt;br /&gt;
&amp;lt;code bash&amp;gt;&lt;br /&gt;
su&lt;br /&gt;
yast -i &amp;lt;packagename&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Required Packages'''&lt;br /&gt;
&lt;br /&gt;
The packages you will need to install are:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
xorg-x11-devel&lt;br /&gt;
libxml2-devel &lt;br /&gt;
kdesdk3 &lt;br /&gt;
clucene-core-devel &lt;br /&gt;
boost-devel&lt;br /&gt;
libjpeg-devel &lt;br /&gt;
liblrdf-devel &lt;br /&gt;
libpng-devel &lt;br /&gt;
libxslt-devel &lt;br /&gt;
libredland-devel&lt;br /&gt;
Mesa-devel &lt;br /&gt;
giflib-devel &lt;br /&gt;
subversion &lt;br /&gt;
gcc &lt;br /&gt;
gcc-c++&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Optional Packages'''&lt;br /&gt;
&lt;br /&gt;
You can skip the manual installation of Qt 4.3, CMake 2.4.6 and DBus by installing the adding the openSUSE Build Service KDE4 Repository to your installation sources.&lt;br /&gt;
&lt;br /&gt;
For openSUSE 10.2 and newer do:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
sudo zypper service-add http://software.opensuse.org/download/KDE:/KDE4/openSUSE_10.2 KDE4-102&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For older versions of SUSE Linux do:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
su&lt;br /&gt;
installation_sources -a http://software.opensuse.org/download/KDE:/KDE4/[YOUR SUSE LINUX VERSION]&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now install the following packages (and their dependencies):&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
cmake&lt;br /&gt;
dbus-1-devel&lt;br /&gt;
libqt4-devel&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
And for fully functional apidox frame work you also need:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
graphviz&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
CMake binary packages for openSUSE are available from [http://software.opensuse.org/download/devel:/tools:/building/ openSUSE build service].&lt;br /&gt;
&lt;br /&gt;
=== Gentoo ===&lt;br /&gt;
&lt;br /&gt;
==== Install by hand ====&lt;br /&gt;
&lt;br /&gt;
You can use most stable ebuilds just remember to sync your portage before you begin.&lt;br /&gt;
&lt;br /&gt;
We need to be unmasked and/or kept at a lower version to continue.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code bash&amp;gt;&lt;br /&gt;
# echo 'x11-libs/qt' &amp;gt;&amp;gt; /etc/portage/package.keywords&lt;br /&gt;
# echo 'dev-util/cmake' &amp;gt;&amp;gt; /etc/portage/package.keywords&lt;br /&gt;
# echo 'dev-cpp/clucene' &amp;gt;&amp;gt; /etc/portage/package.keywords&lt;br /&gt;
# echo '&amp;gt;dev-cpp/clucene-0.9.16a' &amp;gt;&amp;gt; /etc/portage/package.mask&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
These are the packages you will need to install, some may already be installed so you may skip those by adding the update flag to emerge.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code bash&amp;gt;&lt;br /&gt;
$ emerge -avu ebuild/name&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 sys-devel/gcc&lt;br /&gt;
 dev-util/subversion&lt;br /&gt;
 dev-util/pkgconfig&lt;br /&gt;
 x11-base/xorg-x11&lt;br /&gt;
 media-libs/glut&lt;br /&gt;
 media-libs/mesa&lt;br /&gt;
 media-libs/jpeg&lt;br /&gt;
 media-libs/libpng&lt;br /&gt;
 media-libs/giflib&lt;br /&gt;
 dev-cpp/clucene&lt;br /&gt;
 dev-util/cppunit&lt;br /&gt;
 media-libs/liblrdf&lt;br /&gt;
 dev-libs/libxml2&lt;br /&gt;
 dev-libs/libxslt&lt;br /&gt;
 x11-misc/shared-mime-info&lt;br /&gt;
 kde-base/kdesdk-scripts&lt;br /&gt;
 dev-libs/boost&lt;br /&gt;
 x11-libs/qt&lt;br /&gt;
 dev-util/cmake&lt;br /&gt;
 sys-apps/dbus&lt;br /&gt;
 dev-libs/redland&lt;br /&gt;
&lt;br /&gt;
Provided you have emerged these ebuilds, you can skip compiling them by hand and proceed to [[Getting_Started/Build/KDE4#kdesupport|kdesupport section]].&lt;br /&gt;
&lt;br /&gt;
Good luck!&lt;br /&gt;
&lt;br /&gt;
==== Install via portage ====&lt;br /&gt;
&lt;br /&gt;
Also you can install the KDE 4 packages directly via &lt;br /&gt;
&amp;lt;code bash&amp;gt;&lt;br /&gt;
emerge -a &amp;lt;packagename&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To get the things you need, [http://gentoo-wiki.com/TIP_Overlays#Layman install layman] and then pull in the KDE overlay (which contains experimental KDE ebuilds): &lt;br /&gt;
&amp;lt;code bash&amp;gt;&lt;br /&gt;
layman -a kde&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
After this you need to adjust some USE-flags for KDE 4 and tell portage to use the testing KDE 4 ebuilds instead of the stable KDE 3 ones. &lt;br /&gt;
&lt;br /&gt;
That way portage will do the dependency tracking for you. &lt;br /&gt;
&lt;br /&gt;
Detailed instructions on building KDE 4 in Gentoo via portage can be found in the [http://overlays.gentoo.org/proj/kde/wiki KDE overlay wiki]. They are discussed in the thread [http://forums.gentoo.org/viewtopic-t-530111-postdays-0-postorder-asc-start-0.html KDE 4 monolithic ebuilds].&lt;br /&gt;
&lt;br /&gt;
== Create a user account for KDE4 development ==&lt;br /&gt;
&lt;br /&gt;
{{Note|&lt;br /&gt;
Some people like to have a separate user account for KDE 4 (for instance an old bug deleted files by mistake), and the instructions below were written with that approach.&lt;br /&gt;
&lt;br /&gt;
However it is much more efficient to do everything with a single user account, see [[Getting_Started/Increased_Productivity_in_KDE4_with_Scripts|Increased Productivity in KDE4 with Scripts]]&lt;br /&gt;
for more details. &lt;br /&gt;
&lt;br /&gt;
You can still follow the instructions below, but don't put the environment variables in your &amp;lt;tt&amp;gt;.bashrc&amp;lt;/tt&amp;gt;, put them in a separate file that you source to switch to the KDE 4 environment.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
=== Option 1: Command Line ===&lt;br /&gt;
&amp;lt;code bash&amp;gt;&lt;br /&gt;
useradd -m kde-devel&lt;br /&gt;
passwd kde-devel&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Option 2: Using KControl ===&lt;br /&gt;
&lt;br /&gt;
Instead of using the commands above, you can also use the User module in the KDE Control Center if you already have KDE3 installed.&lt;br /&gt;
&lt;br /&gt;
=== Setting up the environment ===&lt;br /&gt;
&lt;br /&gt;
Copy the {{path|~/.bashrc}} from your normal user account to the new kde-devel account. Next, copy and paste the contents of the [[Getting Started/Increased Productivity in KDE4 with Scripts/.bashrc|example .bashrc]] into {{path|~kde-devel/.bashrc}}. Be sure to comment out the line &amp;lt;tt&amp;gt;alias make=makeobj&amp;lt;/tt&amp;gt; if you do not have the &amp;lt;tt&amp;gt;[[Getting Started/Build/KDE4#Required Software|makeobj]]&amp;lt;/tt&amp;gt; command available. You will probably also want to modify the path to make sure it doesn't include your kde3 paths. To make it run, you have to open a new bash or to execute &lt;br /&gt;
&amp;lt;code bash&amp;gt;&lt;br /&gt;
source ~/.bashrc&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This will provide access to commands such as &amp;lt;tt&amp;gt;cmakekde&amp;lt;/tt&amp;gt; that are used in this tutorial as well as ensure that the proper paths are in place for Qt, KDE and CMake binaries.&lt;br /&gt;
&lt;br /&gt;
For more information, please read the [[Getting Started/Increased Productivity in KDE4 with Scripts]] tutorial.&lt;br /&gt;
&lt;br /&gt;
=== Switching to the New User ===&lt;br /&gt;
Switch to the user kde-devel: (don't forget the dash)&lt;br /&gt;
&amp;lt;code bash&amp;gt;&lt;br /&gt;
su - kde-devel&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== The development user's shell ==&lt;br /&gt;
&lt;br /&gt;
On some systems a new user is configured by default to use {{path|/bin/sh}}. If this is not the case on your system, you can skip this section. Using {{path|/bin/sh}} can be very inconvenient to work with and you may want to change it to {{path|/bin/bash}} or another shell.&lt;br /&gt;
&lt;br /&gt;
=== Option 1: As the kde-devel user ===&lt;br /&gt;
&lt;br /&gt;
If you don't have root privileges and your system supports the changing of your own shell with the &amp;lt;tt&amp;gt;chsh&amp;lt;/tt&amp;gt; application, then you could try to change your shell to {{path|/bin/bash}} by using:&lt;br /&gt;
&amp;lt;code bash&amp;gt;&lt;br /&gt;
chsh -s /bin/bash kde-devel&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Option 2: As the root user ===&lt;br /&gt;
&lt;br /&gt;
If your system comes with the &amp;lt;tt&amp;gt;usermod&amp;lt;/tt&amp;gt; application you can run the following command as root: &amp;lt;tt&amp;gt;usermod -s /bin/bash&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Another option is to use the &amp;lt;tt&amp;gt;vipw&amp;lt;/tt&amp;gt; application as root to safely edit your {{path|/etc/passwd}}. Locate 'kde-devel' in the the file. Change '{{path|/bin/sh}}' at the end of the line to read '{{path|/bin/bash}}', save your changes and exit.&lt;br /&gt;
&lt;br /&gt;
The new shell will be started automatically when you log in as the kde-devel user again.&lt;br /&gt;
&lt;br /&gt;
== D-Bus ==&lt;br /&gt;
QtDBus and KDE are known to work with D-Bus versions 0.62, as well as 0.92 and upwards. Versions 0.60 and 0.61 may work too but are not tested. Versions 0.90 and 0.91 are known not to work. We recommend using post-1.0 release versions (at least 0.94), so consider upgrading if you haven't done so.&lt;br /&gt;
&lt;br /&gt;
You may skip this section if you have a recent D-Bus version or if you don't want to upgrade.&lt;br /&gt;
&lt;br /&gt;
Before running these steps in the recipe, make sure your X11 headers and libraries are available. The configure script run on line 5 of the following instructions should output:&lt;br /&gt;
 Building X11 code:        yes&lt;br /&gt;
&lt;br /&gt;
=== The Recipe ===&lt;br /&gt;
&lt;br /&gt;
{{tip|Make sure you did set up your environment correctly as described [[Getting_Started/Build/KDE4#Setting_up_the_environment|above]]. This is necessary for the &amp;lt;tt&amp;gt;cs&amp;lt;/tt&amp;gt; and &amp;lt;tt&amp;gt;cb&amp;lt;/tt&amp;gt; functions to work.}}&lt;br /&gt;
&lt;br /&gt;
 cs # [[Getting_Started/Increased_Productivity_in_KDE4_with_Scripts/.bashrc|'cs' is a bash function, click here to learn more]] &lt;br /&gt;
 wget http://dbus.freedesktop.org/releases/dbus/dbus-1.0.2.tar.gz&lt;br /&gt;
 tar -xvzf dbus-1.0.2.tar.gz&lt;br /&gt;
 cd dbus-1.0.2/&lt;br /&gt;
 ./configure --prefix=$DBUSDIR --localstatedir=/var&lt;br /&gt;
 make&lt;br /&gt;
 sudo make install&lt;br /&gt;
 sudo dbus-uuidgen --ensure&lt;br /&gt;
&lt;br /&gt;
=== What's Happening === &lt;br /&gt;
After changing into the source directory (line 1), D-Bus source code is downloaded from freedesktop.org (line 2) and unpacked (line 3). After going into the newly created D-Bus directory (line 4), the build is set up using the supplied {{path|configure}} script (line 5). After building (line 6) and installing (line 7) D-Bus, we use the &amp;lt;tt&amp;gt;dbus-uuidgen&amp;lt;/tt&amp;gt; tool to install a machine identification file that allows the bus to start automatically when the desktop session starts (line 8).&lt;br /&gt;
&lt;br /&gt;
Note that you need write access to {{path|/var}} for the last two steps. If your system does not have the sudo command, you can use the &amp;lt;tt&amp;gt;su&amp;lt;/tt&amp;gt; command instead, e.g. &amp;lt;tt&amp;gt;su -c &amp;quot;make install&amp;quot;&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== CMake ==&lt;br /&gt;
Skip this if you have [http://cmake.org/ CMake] &amp;gt;=2.4.5 installed. &lt;br /&gt;
You should be able to directly use the binary packages available on the [http://www.cmake.org/HTML/Download.html CMake site]. There are also distribution specific packages available.&lt;br /&gt;
&lt;br /&gt;
=== The Recipe ===&lt;br /&gt;
&amp;lt;!--'cs' and 'cb' are NOT typos!--&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 cs # [[Getting_Started/Increased_Productivity_in_KDE4_with_Scripts/.bashrc|'cs' is a bash function, click Here to learn more]] &lt;br /&gt;
 wget http://www.cmake.org/files/v2.4/cmake-2.4.6.tar.gz&lt;br /&gt;
 tar -zxf cmake-2.4.6.tar.gz&lt;br /&gt;
 mkdir cmake-build&lt;br /&gt;
 cd cmake-build &lt;br /&gt;
 ../cmake-2.4.6/bootstrap&lt;br /&gt;
 make&lt;br /&gt;
 sudo make install&lt;br /&gt;
&lt;br /&gt;
=== What's Happening ===&lt;br /&gt;
First, we go back to the &amp;lt;tt&amp;gt;kde-devel&amp;lt;/tt&amp;gt; user's source directory (line 1), get the CMake sources (line 2) and unpack them (line 3). We create a directory to build CMake in (line 4) and go into it (line 5). We then run the CMake bootstrap script to set up the CMake build (line 6), then make (line 7) and install it (line 8) using the root user.&lt;br /&gt;
&lt;br /&gt;
If your system does not have the &amp;lt;tt&amp;gt;sudo&amp;lt;/tt&amp;gt; command, you can instead do &amp;lt;tt&amp;gt;su -c &amp;quot;make install&amp;quot;&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Qt ==&lt;br /&gt;
Next we need to get the Qt4 that is in KDE's source repository. KDE is guaranteed to build against any Qt 4.3. Qt 4.2 and earlier are not supported and will not work. You should use the copy in the KDE Subversion servers.&lt;br /&gt;
&lt;br /&gt;
=== The Recipe ===&lt;br /&gt;
 cd&lt;br /&gt;
 svn checkout svn://anonsvn.kde.org/home/kde/trunk/qt-copy&lt;br /&gt;
 cd qt-copy&lt;br /&gt;
 ./apply_patches&lt;br /&gt;
 ./configure -qt-gif -no-exceptions -debug -fast \&lt;br /&gt;
  -prefix $QTDIR -nomake examples -nomake demos&lt;br /&gt;
 make -j2&lt;br /&gt;
&lt;br /&gt;
 # if we don't install, we'll just clear obj files to&lt;br /&gt;
 # save disk space&lt;br /&gt;
 if [ $QTDIR = `pwd` ]; then \&lt;br /&gt;
 find . -name '*.o' -exec rm {} \; ; \&lt;br /&gt;
 else make install; fi;&lt;br /&gt;
&lt;br /&gt;
=== What's Happening ===&lt;br /&gt;
We switch back to the &amp;lt;tt&amp;gt;kde-devel&amp;lt;/tt&amp;gt; user's home directory (line 1) and download the source code using subversion (svn) from KDE's repository (line 2). After changing into the resulting {{path|qt-copy}} directory (line 3), we run a script that manages the patches that come with &amp;lt;tt&amp;gt;qt-copy&amp;lt;/tt&amp;gt; (line 4). &lt;br /&gt;
&lt;br /&gt;
Once the patches have been applied, we then set up the build using the &amp;lt;tt&amp;gt;configure&amp;lt;/tt&amp;gt; script (line 5-7). The various command line options used are explained in the {{path|qt-copy/README.qt-copy}} file. Finally, we build the minimal requirements for KDE (line 8) and install (line 9-10) Qt. If you want all the example and demo applications, you can either build them individually or simply do a &amp;lt;tt&amp;gt;make&amp;lt;/tt&amp;gt; from the {{path|qt-copy}} directory. &lt;br /&gt;
&lt;br /&gt;
Note that the installation does not require root as it installs Qt locally into {{path|$QTDIR}}. Anyway, installation is only needed if {{path|$QTDIR}} differs from {{path|$HOME/qt-copy}}, which is not the case if you have exactly followed the instructions.&lt;br /&gt;
&lt;br /&gt;
=== Troubleshooting ===&lt;br /&gt;
If you get &amp;quot;error: X11/Xlib.h: No such file or directory&amp;quot;, install the devel package of &amp;lt;tt&amp;gt;xorg&amp;lt;/tt&amp;gt; (the actual name may vary between operating systems, for example it is &amp;lt;tt&amp;gt;xorg-dev&amp;lt;/tt&amp;gt; on Ubuntu based systems such as Kubuntu). &lt;br /&gt;
&lt;br /&gt;
If you get an error in the configure step about missing defines, check the value of &amp;lt;tt&amp;gt;$QMAKESPEC&amp;lt;/tt&amp;gt;.  Some distributions set this to point directly to the system-installed Qt.  If &amp;lt;tt&amp;gt;unset QMAKESPEC&amp;lt;/tt&amp;gt; solves the problem, you probably want to add it to the &amp;lt;tt&amp;gt;~/.bashrc&amp;lt;/tt&amp;gt; script.&lt;br /&gt;
&lt;br /&gt;
If you get an error &amp;quot;.pch/debug-shared/QtCore&amp;quot;, this is because Qt-4.3 enables precompiled headers if your gcc supports it, but for some reason it doesn't work for you. If you use distcc, configure qt with -no-pch. If you use icecream, update to the latest icecream from svn trunk.&lt;br /&gt;
&lt;br /&gt;
Try running any Qt program, like {{program|assistant}}. '''Note:''' You may need to run &amp;lt;tt&amp;gt;xhost +local:kde-devel&amp;lt;/tt&amp;gt; as your regular kde3 user to run this application.  If it crashes in QSpanData::adjustSpanMethods, then your problem is the oxygen style. Try removing {{path|lib/kde4/plugins/styles/kstyle-oxygen.so}} and {{path|lib/kde4/plugins/styles/oxygen.so}} if they exist in the KDE install prefix.&lt;br /&gt;
&lt;br /&gt;
== kdesupport ==&lt;br /&gt;
&lt;br /&gt;
{{warning|If you have jumped to this section without reading [[Getting_Started/Build/KDE4#Setting_up_the_environment|Setting Up The Environment]], '''the recipes provided will not work'''. &lt;br /&gt;
&lt;br /&gt;
The recipes are not in error; &amp;lt;tt&amp;gt;cs&amp;lt;/tt&amp;gt; and &amp;lt;tt&amp;gt;cb&amp;lt;/tt&amp;gt; are not typos. Your environment '''needs''' to be set up correctly for these instructions to work for you.}}&lt;br /&gt;
&lt;br /&gt;
There are several libraries that KDE applications rely on in the kdesupport module. This includes Strigi and Soprano for file metadata and search, eigen for visual effects in applications such as Kalzium, taglib for music players and qca for some cryptographic needs. &lt;br /&gt;
&lt;br /&gt;
Strigi itself has a few dependencies as well: you will need the libraries and headers for libz, libbz2, openssl (libcrypto or libssl), libclucene (=0.9.16; version 0.9.17 does '''not''' work), and either libxml2 or libexpat.&lt;br /&gt;
&lt;br /&gt;
=== The Recipe ===&lt;br /&gt;
&amp;lt;!--'cs' and 'cb' are NOT typos!--&amp;gt;&lt;br /&gt;
 cs # [[Getting_Started/Increased_Productivity_in_KDE4_with_Scripts/.bashrc|cs is not a typo]]&lt;br /&gt;
 svn checkout svn://anonsvn.kde.org/home/kde/trunk/kdesupport/&lt;br /&gt;
 cd kdesupport&lt;br /&gt;
 cmakekde&lt;br /&gt;
&lt;br /&gt;
=== What's Happening ===&lt;br /&gt;
We change to the base source directory (line 1). We download the sources in kdesupport using subversion (line 2), go into the new {{path|~/src/kdesupport}} directory (line 3), and commence the build (line 4). This will leave us in the kdesupport build directory after the build is completed.&lt;br /&gt;
&lt;br /&gt;
=== Troubleshooting ===&lt;br /&gt;
If you get &lt;br /&gt;
 CMake Error: This project requires some variables to be set,&lt;br /&gt;
 and cmake can not find them.&lt;br /&gt;
 Please set the following variables:&lt;br /&gt;
 LIBXML2_INCLUDE_DIR (ADVANCED)&lt;br /&gt;
you should install the development package for libxml2.&lt;br /&gt;
&lt;br /&gt;
If you get &lt;br /&gt;
 CMake Error: Could NOT find REDLAND&lt;br /&gt;
then you need librdf from the Redland.&lt;br /&gt;
If your distribution does not provide the librdf package, you can download the source there: [http://download.librdf.org/source/ http://download.librdf.org/source/] and build it.&lt;br /&gt;
(Gentoo users: The ebuild for librdf is named dev-libs/redland)&lt;br /&gt;
&lt;br /&gt;
If you get&lt;br /&gt;
 Fetching external item into 'kdesupport/admin'&lt;br /&gt;
 Error validating server certificate for 'https://...'&lt;br /&gt;
see [http://techbase.kde.org/Getting_Started/Sources/Using_Subversion_with_KDE Using Subversion with KDE]&lt;br /&gt;
&lt;br /&gt;
If you get&lt;br /&gt;
 FILE cannot create directory: /usr/lib[64]/qt4/plugins/crypto. Maybe need administrative privileges.&lt;br /&gt;
 - - -&lt;br /&gt;
 make: *** [install] Error 255&lt;br /&gt;
take a second look in the .bashrc file described above, are paths correct?&lt;br /&gt;
&lt;br /&gt;
== kdelibs ==&lt;br /&gt;
&lt;br /&gt;
We can now move on to building KDE's base libraries.&lt;br /&gt;
&lt;br /&gt;
=== The Recipe ===&lt;br /&gt;
 cs # bash function&lt;br /&gt;
 mkdir KDE &amp;amp;&amp;amp; cd KDE&lt;br /&gt;
 svn checkout svn://anonsvn.kde.org/home/kde/trunk/KDE/kdelibs&lt;br /&gt;
 cd kdelibs&lt;br /&gt;
 cmakekde&lt;br /&gt;
&lt;br /&gt;
=== What's Happening ===&lt;br /&gt;
We change to the base source directory (line 1) then make and go into the KDE directory (line 2). We download the sources for kdelibs using subversion (line 3), go into the new {{path|~/src/KDE/kdelibs}} directory (line 4), and commence the build (line 5). This will leave us in the &amp;lt;tt&amp;gt;kdelibs&amp;lt;/tt&amp;gt; build directory after the build is completed.&lt;br /&gt;
&lt;br /&gt;
{{tip|There might be missing dependencies on your system! They are easily overlooked in the output of &amp;lt;tt&amp;gt;cmakekde&amp;lt;/tt&amp;gt;.&lt;br /&gt;
You might want to do a &amp;lt;tt&amp;gt;cmake $KDE_SRC/KDE/MODULE_NAME&amp;lt;/tt&amp;gt; prior to compiling any kde modules (like kdelibs, kdepimlibs etc.)}}&lt;br /&gt;
&lt;br /&gt;
=== Additional KDE-specific CMake modules ===&lt;br /&gt;
There are additional CMake modules in {{path|kdelibs/cmake/modules/}} that are necessary for building KDE4 applications. These will be installed for you when  kdelibs itself is installed.&lt;br /&gt;
&lt;br /&gt;
=== Troubleshooting ===&lt;br /&gt;
If you have problems compiling kdelibs, first make sure the software in the [[Getting_Started/Build/KDE4#Required_Software|Required Software]] section above is installed and works. Other possible hints include:&lt;br /&gt;
* If the &amp;lt;tt&amp;gt;cmakekde&amp;lt;/tt&amp;gt; command fails stating that CMake requires an out of source build directory, remove {{path|~/src/KDE/kdelibs/CMakeCache.txt}}, and try again.&lt;br /&gt;
&lt;br /&gt;
If &amp;lt;tt&amp;gt;cmakekde&amp;lt;/tt&amp;gt; still gives the same error then try this &lt;br /&gt;
 cd&lt;br /&gt;
 cmake -DCMAKE_INSTALL_PREFIX=$KDEDIR \&lt;br /&gt;
 -DCMAKE_BUILD_TYPE=debugfull \&lt;br /&gt;
 -DKDE4_BUILD_TESTS=ON \&lt;br /&gt;
 ~/src/KDE/kdelibs&lt;br /&gt;
 make&lt;br /&gt;
 make install&lt;br /&gt;
* If you received an error stating &amp;quot;Please create a separate build directory and run 'cmake path_to_kdelibs [options]' there.&amp;quot;, then you need to change to your build directory before running cmakekde. (e.g &amp;lt;tt&amp;gt;cs KDE/kdelibs &amp;amp;&amp;amp; cb &amp;amp;&amp;amp; cmakekde&amp;lt;/tt&amp;gt;) If the message stays, run 'svn status' in the kdelibs directory and remove all files labeled with '?'.&lt;br /&gt;
* If Qt wasn't found or the wrong version of Qt was found, make sure that the qmake from the Qt you need is the first qmake in the path.&lt;br /&gt;
* If the problems persist, try the CMake make-option &amp;lt;tt&amp;gt;--keep-going&amp;lt;/tt&amp;gt;.&lt;br /&gt;
* Here you need the libungif library, otherwise you will get an error message like &amp;quot;&amp;lt;tt&amp;gt;Could NOT find GIF&amp;lt;/tt&amp;gt;&amp;quot;.&lt;br /&gt;
* Qt-4.3 upgrade: if you get a link error in kjsembed talking about QScriptEngine, edit CMakeCache.txt in kdelibs and remove the lines that talk about QT_QTUITOOLS_LIBRARY, then type make again (that static library has a new dependency, and the cmake code that adds it needs to run).&lt;br /&gt;
* if you get &amp;lt;code&amp;gt;CMake Error: KDE Requires Qt to be built with SSL support&lt;br /&gt;
&amp;lt;/code&amp;gt;, install openssl-devel, and re-compile QT.&lt;br /&gt;
* if you get &amp;lt;code&amp;gt;kdelibs/kimgio/ico.cpp:188: undefined reference to `QImage::jumpTable()'&amp;lt;/code&amp;gt; it means you compiled QT without QT3 support(no, linking to a true QT3 install won't work)&lt;br /&gt;
&lt;br /&gt;
== kdepimlibs ==&lt;br /&gt;
After &amp;lt;tt&amp;gt;kdelibs&amp;lt;/tt&amp;gt;, but before ''kdebase'', you need to build and install ''kdepimlibs''.&lt;br /&gt;
&lt;br /&gt;
=== The Recipe ===&lt;br /&gt;
&amp;lt;!--'cs' and 'cb' are NOT typos!--&amp;gt;&lt;br /&gt;
 cs KDE # [[Getting_Started/Increased_Productivity_in_KDE4_with_Scripts/.bashrc|cs is not a typo]]&lt;br /&gt;
 svn checkout svn://anonsvn.kde.org/home/kde/trunk/KDE/kdepimlibs&lt;br /&gt;
 cd kdepimlibs&lt;br /&gt;
 cmakekde&lt;br /&gt;
&lt;br /&gt;
=== What's Happening ===&lt;br /&gt;
We go into the KDE source directory (line 1), download the source code for kdepimlibs using subversion (line 2) and then go into the new {{path|~/src/KDE/kdepimlibs}} directory (line 3). We then commence the build (line 4). This will leave us in the &amp;lt;tt&amp;gt;kdepimlibs&amp;lt;/tt&amp;gt; build directory after the build is completed.&lt;br /&gt;
&lt;br /&gt;
=== Troubleshooting ===&lt;br /&gt;
If you have trouble compiling kdepimlibs:&lt;br /&gt;
* the cmakekde command may require a later version of the gpgme library.  This is available from the project's web site: http://www.gnupg.org/(en)/download/index.html - please note that the build of gpgme also requires libgpg-error, also available from the same location.  Both libraries are installed by the &amp;quot;./configure&amp;quot;, &amp;quot;make&amp;quot; and &amp;quot;sudo make install&amp;quot; sequence, with the gpgme library configured with the additional &amp;quot;--with-gpg-error-prefix&amp;quot; parameter.  You may need to overwrite your existing &amp;quot;/usr/bin/gpgme-config&amp;quot; file with the newer version for the kdepimlibs to pick up the new install.&lt;br /&gt;
&lt;br /&gt;
== kdebase ==&lt;br /&gt;
You may need kdebase for some kioslaves.&lt;br /&gt;
&amp;lt;!--'cs' and 'cb' are NOT typos!--&amp;gt;&lt;br /&gt;
 cs KDE # [[Getting_Started/Increased_Productivity_in_KDE4_with_Scripts/.bashrc|cs is not a typo]]&lt;br /&gt;
 svn checkout svn://anonsvn.kde.org/home/kde/trunk/KDE/kdebase&lt;br /&gt;
 cd kdebase&lt;br /&gt;
 cmakekde&lt;br /&gt;
&lt;br /&gt;
=== Troubleshooting ===&lt;br /&gt;
If you have troubles compiling kdebase:&lt;br /&gt;
* Make sure you have the &amp;lt;tt&amp;gt;libxss headers&amp;lt;/tt&amp;gt; installed. (Usually you got undefined references on xscreensaver objects if you do not have those headers)&lt;br /&gt;
* &amp;lt;tt&amp;gt;which meinproc&amp;lt;/tt&amp;gt; has to deliver {{path|/home/kde-devel/kde/bin/meinproc}}&lt;br /&gt;
* if cmakekde can not find the path of kdepimlibs, edit the file {{path|$KDE_BUILD/KDE/kdebase/CMakeCache.txt}} and manually set &amp;lt;tt&amp;gt;KDEPIMLIBS_INCLUDE_DIR:PATH=$KDE_BUILD/kdepimlibs&amp;lt;/tt&amp;gt;&lt;br /&gt;
* if you get an error saying &amp;quot;Please set the following variables: X11_XTest_LIB (ADVANCED)&amp;quot;, install the devel package of &amp;lt;tt&amp;gt;Xtst&amp;lt;/tt&amp;gt;. On some systems, this is packaged separately from &amp;lt;tt&amp;gt;xext&amp;lt;/tt&amp;gt; and called &amp;lt;tt&amp;gt;x11proto-xext-dev&amp;lt;/tt&amp;gt; or &amp;lt;tt&amp;gt;libxtst-dev&amp;lt;/tt&amp;gt;. You may also need to remove the CMakeCache.txt file in the build dir after installing the package.&lt;br /&gt;
* the same for &amp;quot;X11_Xinerama_LIB (ADVANCED)&amp;quot; where you will need the devel package for &amp;lt;tt&amp;gt;xinerama&amp;lt;/tt&amp;gt;.&lt;br /&gt;
* if you get an error complaining about a missing variable X11_Xrandr_LIB, you need the devel package for libxrandr (libxrandr-devel on ubuntu-systems)&lt;br /&gt;
* if you get the error &amp;quot;Please set the following variables: FONTCONFIG_INCLUDE_DIR, FONTCONFIG_LIBRARIES (ADVANCED)&amp;quot;, then you need to install  the libfontconfig headers&lt;br /&gt;
* if you get the error &amp;quot;CMake Error: This project requires some variables to be set, and cmake can not find them. Please set the following variables: KMETADATA_LIBRARIES&amp;quot;, you need to install soprano from kdesupport and to rebuild kdelibs&lt;br /&gt;
* if you get the error &amp;quot;‘XserverRegion’ does not name a type&amp;quot; make sure you have libxcomposite headers installed (&amp;lt;tt&amp;gt;libxcomposite-dev&amp;lt;/tt&amp;gt; in ubuntu)&lt;br /&gt;
&lt;br /&gt;
== Generating local API documentation ==&lt;br /&gt;
Although the API documentation for KDE is available online at [http://api.kde.org api.kde.org], it is sometimes useful to have it on your own disk, for example when you want to use [[Getting_Started/Set_up_KDE_4_for_development#KDevelop|KDevelop]] for browsing the documentation or when you are not able to be online all the time.&lt;br /&gt;
&lt;br /&gt;
Be aware that generating the API documentation can take several hours and takes almost half a gigabyte of diskspace.&lt;br /&gt;
The generation is handled by a script in {{path|kdelibs/doc/api}}, you need &amp;lt;tt&amp;gt;doxygen&amp;lt;/tt&amp;gt; to be able to run it. &lt;br /&gt;
&lt;br /&gt;
To build the API documentation for kdelibs, type the following:&lt;br /&gt;
&amp;lt;!--'cs' and 'cb' are NOT typos!--&amp;gt;&lt;br /&gt;
 cs KDE/kdelibs # [[Getting_Started/Increased_Productivity_in_KDE4_with_Scripts/.bashrc|cs is not a typo]]&lt;br /&gt;
 $KDE_SRC/KDE/kdelibs/doc/api/doxygen.sh \&lt;br /&gt;
 --doxdatadir=$KDE_SRC/KDE/kdelibs/doc/common .&lt;br /&gt;
&lt;br /&gt;
Repeat for other modules as desired.&amp;lt;br&amp;gt;&lt;br /&gt;
 cd &amp;lt;module home&amp;gt;&lt;br /&gt;
 $KDE_SRC/KDE/kdelibs/doc/api/doxygen.sh \&lt;br /&gt;
 --doxdatadir=$KDE_SRC/KDE/kdelibs/doc/common .&lt;br /&gt;
&lt;br /&gt;
== Staying up to date ==&lt;br /&gt;
&lt;br /&gt;
In order to keep the kde4 installation up to date, each of the modules installed should be updated periodically. As Monday is the day for big changes in kdelibs, Tuesday may be the best day to do this. For each module checked out, run &amp;lt;tt&amp;gt;svn up&amp;lt;/tt&amp;gt; and &amp;lt;tt&amp;gt;make&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
For example:&lt;br /&gt;
&amp;lt;code bash&amp;gt;&lt;br /&gt;
cs kdesupport # cs is not a typo&lt;br /&gt;
svn up&lt;br /&gt;
cb # cb is not a typo&lt;br /&gt;
make -j2 VERBOSE=1 &amp;amp;&amp;amp; make install&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== General troubleshooting ==&lt;br /&gt;
&lt;br /&gt;
What can happen over time, after some &amp;lt;tt&amp;gt;svn up&amp;lt;/tt&amp;gt; commands, is that some of the tools used in the KDE build chain change their output format. For example, &amp;lt;tt&amp;gt;kcfg&amp;lt;/tt&amp;gt; files are read by &amp;lt;tt&amp;gt;kconfig_compiler&amp;lt;/tt&amp;gt; to produce configuration dialogs. CMake cannot detect those changes, and the compilation might fail. A workaround is to always force a re-generation of all such files:&lt;br /&gt;
 find $KDE_SRC/KDE/kdebase -name &amp;quot;*.kcfg&amp;quot; | xargs touch&lt;br /&gt;
The same applies to &amp;lt;tt&amp;gt;ui&amp;lt;/tt&amp;gt; files as produced by Qt designer.&lt;br /&gt;
&lt;br /&gt;
== Success! ==&lt;br /&gt;
&lt;br /&gt;
You are now ready to start building other svn modules in the same fashion as you built kdebase, running and testing KDE4 or writing your own patches and applications.&lt;br /&gt;
&lt;br /&gt;
See the [[Getting Started/Set up KDE 4 for development|Set up KDE 4 for development]] tutorial for how to start KDE 4 applications and how to use KDevelop to work on them.&lt;br /&gt;
&lt;br /&gt;
[[Category:Build KDE]]&lt;br /&gt;
[[Category:KDE4]]&lt;/div&gt;</summary>
		<author><name>Logixoul</name></author>	</entry>

	<entry>
		<id>http://techbase.kde.org/Getting_Started/Build/KDE4</id>
		<title>Getting Started/Build/KDE4</title>
		<link rel="alternate" type="text/html" href="http://techbase.kde.org/Getting_Started/Build/KDE4"/>
				<updated>2007-07-04T04:04:03Z</updated>
		
		<summary type="html">&lt;p&gt;Logixoul: /* kdelibs */ blah blah blah&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Template:I18n/Language Navigation Bar|Getting_Started/Build/KDE4}}&lt;br /&gt;
&lt;br /&gt;
{{TutorialBrowser|&lt;br /&gt;
&lt;br /&gt;
series=Getting Started|&lt;br /&gt;
&lt;br /&gt;
name=Building KDE4 From Source|&lt;br /&gt;
&lt;br /&gt;
pre=[[../../Sources/Anonymous_SVN|Anonymous SVN Quickstart Guide]]|&lt;br /&gt;
&lt;br /&gt;
next=[[../../Set_up_KDE_4_for_development|Set up KDE 4 for development]]|&lt;br /&gt;
&lt;br /&gt;
reading=[http://kdesvn-build.kde.org/ kdesvn-build: The KDE From Subversion Build Tool]&amp;lt;br&amp;gt;[[../../Increased_Productivity_in_KDE4_with_Scripts|Increased Productivity in KDE4 with Scripts]]&amp;lt;br&amp;gt;[[Development/Tutorials/CMake |Introduction to CMake]]&amp;lt;br&amp;gt;[[../KDE4/FreeBSD|FreeBSD notes]]&amp;lt;br&amp;gt;[[../KDE4/Mac OS X|Instructions for Mac OS X]]|&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== Abstract ==&lt;br /&gt;
&lt;br /&gt;
This tutorial shows one way to get KDE from trunk running on Linux/BSD systems. There are also tutorials for [[/FreeBSD|FreeBSD]], [http://www.kdelibs.com/ Windows], [[/Mac OS X|Mac OS X]] and [http://solaris.kde.org/ Solaris]. Throughout the tutorial the bash shell is used.&lt;br /&gt;
&lt;br /&gt;
{{warning|Expect a higher risk of build failure '''on Mondays''' when most kdelibs changes are committed. [http://developer.kde.org/~dirk/dashboard/ Dashboard] reports unexpected breakages. You are encouraged to fix failing modules.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== Required Software ==&lt;br /&gt;
&lt;br /&gt;
The following must be installed first before you can successfully complete this tutorial:&lt;br /&gt;
* gcc and g++ from the gcc project, preferably version 4.1 or higher&lt;br /&gt;
* svn, the subversion revision control client&lt;br /&gt;
* pkg-config&lt;br /&gt;
* development libraries and headers for X11, OpenGL (mesa-common-dev and libglu1-mesa-dev), libjpeg, libpng, libungif, [http://clucene.sourceforge.net/index.php/Downloads libclucene], [http://download.librdf.org/source/ librdf], libxml2 and libxslt&lt;br /&gt;
* the &amp;lt;tt&amp;gt;makeobj&amp;lt;/tt&amp;gt; script, which is part of kdesdk. You can install it as part of kdesdk (kdesdk-scripts on Debian) or similar package, or just download it itself from [http://websvn.kde.org/*checkout*/trunk/KDE/kdesdk/scripts/makeobj WebSVN]&lt;br /&gt;
* the [http://freedesktop.org/wiki/Software/shared-mime-info shared-mime-info package], which is the freedesktop MIME standard KDE is using now&lt;br /&gt;
* [http://boost.org/ boost], needed by kdebase; after compiling and/or installing boost, in order to make cmake aware about its location (FindBoost),  add boost directory (the one containing include subdirectory) to CMAKE_INCLUDE_PATH or set an environment variable called BOOST_ROOT pointing to boost directory.&lt;br /&gt;
&lt;br /&gt;
=== Kubuntu ===&lt;br /&gt;
&lt;br /&gt;
In Kubuntu 7.04 (Feisty) the build dependencies you need are installed with:&lt;br /&gt;
&amp;lt;code bash&amp;gt;&lt;br /&gt;
sudo aptitude install build-essential cdbs debhelper cmake \&lt;br /&gt;
libxml2-dev libxslt1-dev libbz2-dev libclucene-dev librdf-dev \&lt;br /&gt;
shared-mime-info libgl1-mesa-dev libglu1-mesa-dev mesa-common-dev \&lt;br /&gt;
libxext-dev libjpeg-dev libpng-dev subversion libsm-dev libxinerama-dev \&lt;br /&gt;
libxrender-dev libfontconfig-dev libboost-dev libxcursor-dev doxygen \&lt;br /&gt;
libungif4-dev libdbus-1-dev libgpgme11-dev libssl-dev&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You can skip the manual installation of CMake 2.4.6 and DBus with: &lt;br /&gt;
&amp;lt;code bash&amp;gt;&lt;br /&gt;
sudo aptitude install libdbus-1-dev cmake&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For a fully functional API documentation framework you also need:&lt;br /&gt;
&amp;lt;code bash&amp;gt;&lt;br /&gt;
sudo aptitude install graphviz&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== openSUSE ===&lt;br /&gt;
&lt;br /&gt;
In openSUSE 10.2 and newer, you can install packages using [http://en.opensuse.org/Zypper Zypper]:&lt;br /&gt;
&amp;lt;code bash&amp;gt;&lt;br /&gt;
sudo zypper install &amp;lt;package-name&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In older releases of SUSE, you can use YaST:&lt;br /&gt;
&amp;lt;code bash&amp;gt;&lt;br /&gt;
su&lt;br /&gt;
yast -i &amp;lt;packagename&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Required Packages'''&lt;br /&gt;
&lt;br /&gt;
The packages you will need to install are:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
xorg-x11-devel&lt;br /&gt;
libxml2-devel &lt;br /&gt;
kdesdk3 &lt;br /&gt;
clucene-core-devel &lt;br /&gt;
boost-devel&lt;br /&gt;
libjpeg-devel &lt;br /&gt;
liblrdf-devel &lt;br /&gt;
libpng-devel &lt;br /&gt;
libxslt-devel &lt;br /&gt;
libredland-devel&lt;br /&gt;
Mesa-devel &lt;br /&gt;
giflib-devel &lt;br /&gt;
subversion &lt;br /&gt;
gcc &lt;br /&gt;
gcc-c++&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Optional Packages'''&lt;br /&gt;
&lt;br /&gt;
You can skip the manual installation of Qt 4.3, CMake 2.4.6 and DBus by installing the adding the openSUSE Build Service KDE4 Repository to your installation sources.&lt;br /&gt;
&lt;br /&gt;
For openSUSE 10.2 and newer do:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
sudo zypper service-add http://software.opensuse.org/download/KDE:/KDE4/openSUSE_10.2 KDE4-102&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For older versions of SUSE Linux do:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
su&lt;br /&gt;
installation_sources -a http://software.opensuse.org/download/KDE:/KDE4/[YOUR SUSE LINUX VERSION]&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now install the following packages (and their dependencies):&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
cmake&lt;br /&gt;
dbus-1-devel&lt;br /&gt;
libqt4-devel&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
And for fully functional apidox frame work you also need:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
graphviz&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
CMake binary packages for openSUSE are available from [http://software.opensuse.org/download/devel:/tools:/building/ openSUSE build service].&lt;br /&gt;
&lt;br /&gt;
=== Gentoo ===&lt;br /&gt;
&lt;br /&gt;
You can use most stable ebuilds just remember to sync your portage before you begin.&lt;br /&gt;
&lt;br /&gt;
We need to be unmasked and/or kept at a lower version to continue.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code bash&amp;gt;&lt;br /&gt;
# echo 'x11-libs/qt' &amp;gt;&amp;gt; /etc/portage/package.keywords&lt;br /&gt;
# echo 'dev-util/cmake' &amp;gt;&amp;gt; /etc/portage/package.keywords&lt;br /&gt;
# echo 'dev-cpp/clucene' &amp;gt;&amp;gt; /etc/portage/package.keywords&lt;br /&gt;
# echo '&amp;gt;dev-cpp/clucene-0.9.16a' &amp;gt;&amp;gt; /etc/portage/package.mask&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
These are the packages you will need to install, some may already be installed so you may skip those by adding the update flag to emerge.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code bash&amp;gt;&lt;br /&gt;
$ emerge -avu ebuild/name&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 sys-devel/gcc&lt;br /&gt;
 dev-util/subversion&lt;br /&gt;
 dev-util/pkgconfig&lt;br /&gt;
 x11-base/xorg-x11&lt;br /&gt;
 media-libs/glut&lt;br /&gt;
 media-libs/mesa&lt;br /&gt;
 media-libs/jpeg&lt;br /&gt;
 media-libs/libpng&lt;br /&gt;
 media-libs/giflib&lt;br /&gt;
 dev-cpp/clucene&lt;br /&gt;
 dev-util/cppunit&lt;br /&gt;
 media-libs/liblrdf&lt;br /&gt;
 dev-libs/libxml2&lt;br /&gt;
 dev-libs/libxslt&lt;br /&gt;
 x11-misc/shared-mime-info&lt;br /&gt;
 kde-base/kdesdk-scripts&lt;br /&gt;
 dev-libs/boost&lt;br /&gt;
 x11-libs/qt&lt;br /&gt;
 dev-util/cmake&lt;br /&gt;
 sys-apps/dbus&lt;br /&gt;
 dev-libs/redland&lt;br /&gt;
&lt;br /&gt;
Provided you have emerged these ebuilds, you can skip compiling them by hand and proceed to [[Getting_Started/Build/KDE4#kdesupport|kdesupport section]].&lt;br /&gt;
&lt;br /&gt;
Good luck!&lt;br /&gt;
&lt;br /&gt;
== Create a user account for KDE4 development ==&lt;br /&gt;
&lt;br /&gt;
{{Note|&lt;br /&gt;
Some people like to have a separate user account for KDE 4 (for instance an old bug deleted files by mistake), and the instructions below were written with that approach.&lt;br /&gt;
&lt;br /&gt;
However it is much more efficient to do everything with a single user account, see [[Getting_Started/Increased_Productivity_in_KDE4_with_Scripts|Increased Productivity in KDE4 with Scripts]]&lt;br /&gt;
for more details. &lt;br /&gt;
&lt;br /&gt;
You can still follow the instructions below, but don't put the environment variables in your &amp;lt;tt&amp;gt;.bashrc&amp;lt;/tt&amp;gt;, put them in a separate file that you source to switch to the KDE 4 environment.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
=== Option 1: Command Line ===&lt;br /&gt;
&amp;lt;code bash&amp;gt;&lt;br /&gt;
useradd -m kde-devel&lt;br /&gt;
passwd kde-devel&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Option 2: Using KControl ===&lt;br /&gt;
&lt;br /&gt;
Instead of using the commands above, you can also use the User module in the KDE Control Center if you already have KDE3 installed.&lt;br /&gt;
&lt;br /&gt;
=== Setting up the environment ===&lt;br /&gt;
&lt;br /&gt;
Copy the {{path|~/.bashrc}} from your normal user account to the new kde-devel account. Next, copy and paste the contents of the [[Getting Started/Increased Productivity in KDE4 with Scripts/.bashrc|example .bashrc]] into {{path|~kde-devel/.bashrc}}. Be sure to comment out the line &amp;lt;tt&amp;gt;alias make=makeobj&amp;lt;/tt&amp;gt; if you do not have the &amp;lt;tt&amp;gt;[[Getting Started/Build/KDE4#Required Software|makeobj]]&amp;lt;/tt&amp;gt; command available. You will probably also want to modify the path to make sure it doesn't include your kde3 paths. To make it run, you have to open a new bash or to execute &lt;br /&gt;
&amp;lt;code bash&amp;gt;&lt;br /&gt;
source ~/.bashrc&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This will provide access to commands such as &amp;lt;tt&amp;gt;cmakekde&amp;lt;/tt&amp;gt; that are used in this tutorial as well as ensure that the proper paths are in place for Qt, KDE and CMake binaries.&lt;br /&gt;
&lt;br /&gt;
For more information, please read the [[Getting Started/Increased Productivity in KDE4 with Scripts]] tutorial.&lt;br /&gt;
&lt;br /&gt;
=== Switching to the New User ===&lt;br /&gt;
Switch to the user kde-devel: (don't forget the dash)&lt;br /&gt;
&amp;lt;code bash&amp;gt;&lt;br /&gt;
su - kde-devel&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== The development user's shell ==&lt;br /&gt;
&lt;br /&gt;
On some systems a new user is configured by default to use {{path|/bin/sh}}. If this is not the case on your system, you can skip this section. Using {{path|/bin/sh}} can be very inconvenient to work with and you may want to change it to {{path|/bin/bash}} or another shell.&lt;br /&gt;
&lt;br /&gt;
=== Option 1: As the kde-devel user ===&lt;br /&gt;
&lt;br /&gt;
If you don't have root privileges and your system supports the changing of your own shell with the &amp;lt;tt&amp;gt;chsh&amp;lt;/tt&amp;gt; application, then you could try to change your shell to {{path|/bin/bash}} by using:&lt;br /&gt;
&amp;lt;code bash&amp;gt;&lt;br /&gt;
chsh -s /bin/bash kde-devel&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Option 2: As the root user ===&lt;br /&gt;
&lt;br /&gt;
If your system comes with the &amp;lt;tt&amp;gt;usermod&amp;lt;/tt&amp;gt; application you can run the following command as root: &amp;lt;tt&amp;gt;usermod -s /bin/bash&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Another option is to use the &amp;lt;tt&amp;gt;vipw&amp;lt;/tt&amp;gt; application as root to safely edit your {{path|/etc/passwd}}. Locate 'kde-devel' in the the file. Change '{{path|/bin/sh}}' at the end of the line to read '{{path|/bin/bash}}', save your changes and exit.&lt;br /&gt;
&lt;br /&gt;
The new shell will be started automatically when you log in as the kde-devel user again.&lt;br /&gt;
&lt;br /&gt;
== D-Bus ==&lt;br /&gt;
QtDBus and KDE are known to work with D-Bus versions 0.62, as well as 0.92 and upwards. Versions 0.60 and 0.61 may work too but are not tested. Versions 0.90 and 0.91 are known not to work. We recommend using post-1.0 release versions (at least 0.94), so consider upgrading if you haven't done so.&lt;br /&gt;
&lt;br /&gt;
You may skip this section if you have a recent D-Bus version or if you don't want to upgrade.&lt;br /&gt;
&lt;br /&gt;
Before running these steps in the recipe, make sure your X11 headers and libraries are available. The configure script run on line 5 of the following instructions should output:&lt;br /&gt;
 Building X11 code:        yes&lt;br /&gt;
&lt;br /&gt;
=== The Recipe ===&lt;br /&gt;
&lt;br /&gt;
{{tip|Make sure you did set up your environment correctly as described [[Getting_Started/Build/KDE4#Setting_up_the_environment|above]]. This is necessary for the &amp;lt;tt&amp;gt;cs&amp;lt;/tt&amp;gt; and &amp;lt;tt&amp;gt;cb&amp;lt;/tt&amp;gt; functions to work.}}&lt;br /&gt;
&lt;br /&gt;
 cs # [[Getting_Started/Increased_Productivity_in_KDE4_with_Scripts/.bashrc|'cs' is a bash function, click here to learn more]] &lt;br /&gt;
 wget http://dbus.freedesktop.org/releases/dbus/dbus-1.0.2.tar.gz&lt;br /&gt;
 tar -xvzf dbus-1.0.2.tar.gz&lt;br /&gt;
 cd dbus-1.0.2/&lt;br /&gt;
 ./configure --prefix=$DBUSDIR --localstatedir=/var&lt;br /&gt;
 make&lt;br /&gt;
 sudo make install&lt;br /&gt;
 sudo dbus-uuidgen --ensure&lt;br /&gt;
&lt;br /&gt;
=== What's Happening === &lt;br /&gt;
After changing into the source directory (line 1), D-Bus source code is downloaded from freedesktop.org (line 2) and unpacked (line 3). After going into the newly created D-Bus directory (line 4), the build is set up using the supplied {{path|configure}} script (line 5). After building (line 6) and installing (line 7) D-Bus, we use the &amp;lt;tt&amp;gt;dbus-uuidgen&amp;lt;/tt&amp;gt; tool to install a machine identification file that allows the bus to start automatically when the desktop session starts (line 8).&lt;br /&gt;
&lt;br /&gt;
Note that you need write access to {{path|/var}} for the last two steps. If your system does not have the sudo command, you can use the &amp;lt;tt&amp;gt;su&amp;lt;/tt&amp;gt; command instead, e.g. &amp;lt;tt&amp;gt;su -c &amp;quot;make install&amp;quot;&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== CMake ==&lt;br /&gt;
Skip this if you have [http://cmake.org/ CMake] &amp;gt;=2.4.5 installed. &lt;br /&gt;
You should be able to directly use the binary packages available on the [http://www.cmake.org/HTML/Download.html CMake site]. There are also distribution specific packages available.&lt;br /&gt;
&lt;br /&gt;
=== The Recipe ===&lt;br /&gt;
&amp;lt;!--'cs' and 'cb' are NOT typos!--&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 cs # [[Getting_Started/Increased_Productivity_in_KDE4_with_Scripts/.bashrc|'cs' is a bash function, click Here to learn more]] &lt;br /&gt;
 wget http://www.cmake.org/files/v2.4/cmake-2.4.6.tar.gz&lt;br /&gt;
 tar -zxf cmake-2.4.6.tar.gz&lt;br /&gt;
 mkdir cmake-build&lt;br /&gt;
 cd cmake-build &lt;br /&gt;
 ../cmake-2.4.6/bootstrap&lt;br /&gt;
 make&lt;br /&gt;
 sudo make install&lt;br /&gt;
&lt;br /&gt;
=== What's Happening ===&lt;br /&gt;
First, we go back to the &amp;lt;tt&amp;gt;kde-devel&amp;lt;/tt&amp;gt; user's source directory (line 1), get the CMake sources (line 2) and unpack them (line 3). We create a directory to build CMake in (line 4) and go into it (line 5). We then run the CMake bootstrap script to set up the CMake build (line 6), then make (line 7) and install it (line 8) using the root user.&lt;br /&gt;
&lt;br /&gt;
If your system does not have the &amp;lt;tt&amp;gt;sudo&amp;lt;/tt&amp;gt; command, you can instead do &amp;lt;tt&amp;gt;su -c &amp;quot;make install&amp;quot;&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Qt ==&lt;br /&gt;
Next we need to get the Qt4 that is in KDE's source repository. KDE is guaranteed to build against any Qt 4.3. Qt 4.2 and earlier are not supported and will not work. You should use the copy in the KDE Subversion servers.&lt;br /&gt;
&lt;br /&gt;
=== The Recipe ===&lt;br /&gt;
 cd&lt;br /&gt;
 svn checkout svn://anonsvn.kde.org/home/kde/trunk/qt-copy&lt;br /&gt;
 cd qt-copy&lt;br /&gt;
 ./apply_patches&lt;br /&gt;
 ./configure -qt-gif -no-exceptions -debug -fast \&lt;br /&gt;
  -prefix $QTDIR -qdbus -pch -openssl -nomake examples \&lt;br /&gt;
  -nomake demos&lt;br /&gt;
 make -j2&lt;br /&gt;
&lt;br /&gt;
 # do copy files if the target doesnt match current dir,&lt;br /&gt;
 # clear obj files to save disk space otherwise&lt;br /&gt;
 if [ $QTDIR = `pwd` ]; then \&lt;br /&gt;
 find . -name '*.o' -exec rm {} \; ; \&lt;br /&gt;
 else make install; fi;&lt;br /&gt;
&lt;br /&gt;
=== What's Happening ===&lt;br /&gt;
We switch back to the &amp;lt;tt&amp;gt;kde-devel&amp;lt;/tt&amp;gt; user's home directory (line 1) and download the source code using subversion (svn) from KDE's repository (line 2). After changing into the resulting {{path|qt-copy}} directory (line 3), we run a script that manages the patches that come with &amp;lt;tt&amp;gt;qt-copy&amp;lt;/tt&amp;gt; (line 4). &lt;br /&gt;
&lt;br /&gt;
Once the patches have been applied, we then set up the build using the &amp;lt;tt&amp;gt;configure&amp;lt;/tt&amp;gt; script (line 5-7). The various command line options used are explained in the {{path|qt-copy/README.qt-copy}} file. Finally, we build the minimal requirements for KDE (line 8) and install (line 9-10) Qt. If you want all the example and demo applications, you can either build them individually or simply do a &amp;lt;tt&amp;gt;make&amp;lt;/tt&amp;gt; from the {{path|qt-copy}} directory. &lt;br /&gt;
&lt;br /&gt;
Note that the installation does not require root as it installs Qt locally into {{path|$QTDIR}}. Anyway, installation is only needed if {{path|$QTDIR}} differs from {{path|$HOME/qt-copy}}, which is not the case if you have exactly followed the instructions.&lt;br /&gt;
&lt;br /&gt;
=== Troubleshooting ===&lt;br /&gt;
If you get &amp;quot;error: X11/Xlib.h: No such file or directory&amp;quot;, install the devel package of &amp;lt;tt&amp;gt;xorg&amp;lt;/tt&amp;gt; (the actual name may vary between operating systems, for example it is &amp;lt;tt&amp;gt;xorg-dev&amp;lt;/tt&amp;gt; on Ubuntu based systems such as Kubuntu). &lt;br /&gt;
&lt;br /&gt;
If you get an error in the configure step about missing defines, check the value of &amp;lt;tt&amp;gt;$QMAKESPEC&amp;lt;/tt&amp;gt;.  Some distributions set this to point directly to the system-installed Qt.  If &amp;lt;tt&amp;gt;unset QMAKESPEC&amp;lt;/tt&amp;gt; solves the problem, you probably want to add it to the &amp;lt;tt&amp;gt;~/.bashrc&amp;lt;/tt&amp;gt; script.&lt;br /&gt;
&lt;br /&gt;
If you get an error &amp;quot;.pch/debug-shared/QtCore&amp;quot;, this is because Qt-4.3 enables precompiled headers if your gcc supports it, but for some reason it doesn't work for you. If you use distcc, configure qt with -no-pch. If you use icecream, update to the latest icecream from svn trunk.&lt;br /&gt;
&lt;br /&gt;
Try running any Qt program, like {{program|assistant}}. '''Note:''' You may need to run &amp;lt;tt&amp;gt;xhost +local:kde-devel&amp;lt;/tt&amp;gt; as your regular kde3 user to run this application.  If it crashes in QSpanData::adjustSpanMethods, then your problem is the oxygen style. Try removing {{path|lib/kde4/plugins/styles/kstyle-oxygen.so}} and {{path|lib/kde4/plugins/styles/oxygen.so}} if they exist in the KDE install prefix.&lt;br /&gt;
&lt;br /&gt;
== kdesupport ==&lt;br /&gt;
&lt;br /&gt;
{{warning|If you have jumped to this section without reading [[Getting_Started/Build/KDE4#Setting_up_the_environment|Setting Up The Environment]], '''the recipes provided will not work'''. &lt;br /&gt;
&lt;br /&gt;
The recipes are not in error; &amp;lt;tt&amp;gt;cs&amp;lt;/tt&amp;gt; and &amp;lt;tt&amp;gt;cb&amp;lt;/tt&amp;gt; are not typos. Your environment '''needs''' to be set up correctly for these instructions to work for you.}}&lt;br /&gt;
&lt;br /&gt;
There are several libraries that KDE applications rely on in the kdesupport module. This includes Strigi and Soprano for file metadata and search, eigen for visual effects in applications such as Kalzium, taglib for music players and qca for some cryptographic needs. &lt;br /&gt;
&lt;br /&gt;
Strigi itself has a few dependencies as well: you will need the libraries and headers for libz, libbz2, openssl (libcrypto or libssl), libclucene (=0.9.16; version 0.9.17 does '''not''' work), and either libxml2 or libexpat.&lt;br /&gt;
&lt;br /&gt;
=== The Recipe ===&lt;br /&gt;
&amp;lt;!--'cs' and 'cb' are NOT typos!--&amp;gt;&lt;br /&gt;
 cs # [[Getting_Started/Increased_Productivity_in_KDE4_with_Scripts/.bashrc|cs is not a typo]]&lt;br /&gt;
 svn checkout svn://anonsvn.kde.org/home/kde/trunk/kdesupport/&lt;br /&gt;
 cd kdesupport&lt;br /&gt;
 cmakekde&lt;br /&gt;
&lt;br /&gt;
=== What's Happening ===&lt;br /&gt;
We change to the base source directory (line 1). We download the sources in kdesupport using subversion (line 2), go into the new {{path|~/src/kdesupport}} directory (line 3), and commence the build (line 4). This will leave us in the kdesupport build directory after the build is completed.&lt;br /&gt;
&lt;br /&gt;
=== Troubleshooting ===&lt;br /&gt;
If you get &lt;br /&gt;
 CMake Error: This project requires some variables to be set,&lt;br /&gt;
 and cmake can not find them.&lt;br /&gt;
 Please set the following variables:&lt;br /&gt;
 LIBXML2_INCLUDE_DIR (ADVANCED)&lt;br /&gt;
you should install the development package for libxml2.&lt;br /&gt;
&lt;br /&gt;
If you get &lt;br /&gt;
 CMake Error: Could NOT find REDLAND&lt;br /&gt;
then you need librdf from the Redland.&lt;br /&gt;
If your distribution does not provide the librdf package, you can download the source there: [http://download.librdf.org/source/ http://download.librdf.org/source/] and build it.&lt;br /&gt;
(Gentoo users: The ebuild for librdf is named dev-libs/redland)&lt;br /&gt;
&lt;br /&gt;
If you get&lt;br /&gt;
 Fetching external item into 'kdesupport/admin'&lt;br /&gt;
 Error validating server certificate for 'https://...'&lt;br /&gt;
see [http://techbase.kde.org/Getting_Started/Sources/Using_Subversion_with_KDE Using Subversion with KDE]&lt;br /&gt;
&lt;br /&gt;
If you get&lt;br /&gt;
 FILE cannot create directory: /usr/lib[64]/qt4/plugins/crypto. Maybe need administrative privileges.&lt;br /&gt;
 - - -&lt;br /&gt;
 make: *** [install] Error 255&lt;br /&gt;
take a second look in the .bashrc file described above, are paths correct?&lt;br /&gt;
&lt;br /&gt;
== kdelibs ==&lt;br /&gt;
&lt;br /&gt;
We can now move on to building KDE's base libraries.&lt;br /&gt;
&lt;br /&gt;
=== The Recipe ===&lt;br /&gt;
 cs # bash function&lt;br /&gt;
 mkdir KDE &amp;amp;&amp;amp; cd KDE&lt;br /&gt;
 svn checkout svn://anonsvn.kde.org/home/kde/trunk/KDE/kdelibs&lt;br /&gt;
 cd kdelibs&lt;br /&gt;
 cmakekde&lt;br /&gt;
&lt;br /&gt;
=== What's Happening ===&lt;br /&gt;
We change to the base source directory (line 1) then make and go into the KDE directory (line 2). We download the sources for kdelibs using subversion (line 3), go into the new {{path|~/src/KDE/kdelibs}} directory (line 4), and commence the build (line 5). This will leave us in the &amp;lt;tt&amp;gt;kdelibs&amp;lt;/tt&amp;gt; build directory after the build is completed.&lt;br /&gt;
&lt;br /&gt;
{{tip|There might be missing dependencies on your system! They are easily overlooked in the output of &amp;lt;tt&amp;gt;cmakekde&amp;lt;/tt&amp;gt;.&lt;br /&gt;
You might want to do a &amp;lt;tt&amp;gt;cmake $KDE_SRC/KDE/MODULE_NAME&amp;lt;/tt&amp;gt; prior to compiling any kde modules (like kdelibs, kdepimlibs etc.)}}&lt;br /&gt;
&lt;br /&gt;
=== Additional KDE-specific CMake modules ===&lt;br /&gt;
There are additional CMake modules in {{path|kdelibs/cmake/modules/}} that are necessary for building KDE4 applications. These will be installed for you when  kdelibs itself is installed.&lt;br /&gt;
&lt;br /&gt;
=== Troubleshooting ===&lt;br /&gt;
If you have problems compiling kdelibs, first make sure the software in the [[Getting_Started/Build/KDE4#Required_Software|Required Software]] section above is installed and works. Other possible hints include:&lt;br /&gt;
* If the &amp;lt;tt&amp;gt;cmakekde&amp;lt;/tt&amp;gt; command fails stating that CMake requires an out of source build directory, remove {{path|~/src/KDE/kdelibs/CMakeCache.txt}}, and try again.&lt;br /&gt;
&lt;br /&gt;
If &amp;lt;tt&amp;gt;cmakekde&amp;lt;/tt&amp;gt; still gives the same error then try this &lt;br /&gt;
 cd&lt;br /&gt;
 cmake -DCMAKE_INSTALL_PREFIX=$KDEDIR \&lt;br /&gt;
 -DCMAKE_BUILD_TYPE=debugfull \&lt;br /&gt;
 -DKDE4_BUILD_TESTS=ON \&lt;br /&gt;
 ~/src/KDE/kdelibs&lt;br /&gt;
 make&lt;br /&gt;
 make install&lt;br /&gt;
* If you received an error stating &amp;quot;Please create a separate build directory and run 'cmake path_to_kdelibs [options]' there.&amp;quot;, then you need to change to your build directory before running cmakekde. (e.g &amp;lt;tt&amp;gt;cs KDE/kdelibs &amp;amp;&amp;amp; cb &amp;amp;&amp;amp; cmakekde&amp;lt;/tt&amp;gt;) If the message stays, run 'svn status' in the kdelibs directory and remove all files labeled with '?'.&lt;br /&gt;
* If Qt wasn't found or the wrong version of Qt was found, make sure that the qmake from the Qt you need is the first qmake in the path.&lt;br /&gt;
* If the problems persist, try the CMake make-option &amp;lt;tt&amp;gt;--keep-going&amp;lt;/tt&amp;gt;.&lt;br /&gt;
* Here you need the libungif library, otherwise you will get an error message like &amp;quot;&amp;lt;tt&amp;gt;Could NOT find GIF&amp;lt;/tt&amp;gt;&amp;quot;.&lt;br /&gt;
* Qt-4.3 upgrade: if you get a link error in kjsembed talking about QScriptEngine, edit CMakeCache.txt in kdelibs and remove the lines that talk about QT_QTUITOOLS_LIBRARY, then type make again (that static library has a new dependency, and the cmake code that adds it needs to run).&lt;br /&gt;
* if you get &amp;lt;code&amp;gt;CMake Error: KDE Requires Qt to be built with SSL support&lt;br /&gt;
&amp;lt;/code&amp;gt;, install openssl-devel, and re-compile QT.&lt;br /&gt;
* if you get &amp;lt;code&amp;gt;kdelibs/kimgio/ico.cpp:188: undefined reference to `QImage::jumpTable()'&amp;lt;/code&amp;gt; it means you compiled QT without QT3 support(no, linking to a true QT3 install won't work)&lt;br /&gt;
&lt;br /&gt;
== kdepimlibs ==&lt;br /&gt;
After &amp;lt;tt&amp;gt;kdelibs&amp;lt;/tt&amp;gt;, but before ''kdebase'', you need to build and install ''kdepimlibs''.&lt;br /&gt;
&lt;br /&gt;
=== The Recipe ===&lt;br /&gt;
&amp;lt;!--'cs' and 'cb' are NOT typos!--&amp;gt;&lt;br /&gt;
 cs KDE # [[Getting_Started/Increased_Productivity_in_KDE4_with_Scripts/.bashrc|cs is not a typo]]&lt;br /&gt;
 svn checkout svn://anonsvn.kde.org/home/kde/trunk/KDE/kdepimlibs&lt;br /&gt;
 cd kdepimlibs&lt;br /&gt;
 cmakekde&lt;br /&gt;
&lt;br /&gt;
=== What's Happening ===&lt;br /&gt;
We go into the KDE source directory (line 1), download the source code for kdepimlibs using subversion (line 2) and then go into the new {{path|~/src/KDE/kdepimlibs}} directory (line 3). We then commence the build (line 4). This will leave us in the &amp;lt;tt&amp;gt;kdepimlibs&amp;lt;/tt&amp;gt; build directory after the build is completed.&lt;br /&gt;
&lt;br /&gt;
=== Troubleshooting ===&lt;br /&gt;
If you have trouble compiling kdepimlibs:&lt;br /&gt;
* the cmakekde command may require a later version of the gpgme library.  This is available from the project's web site: http://www.gnupg.org/(en)/download/index.html - please note that the build of gpgme also requires libgpg-error, also available from the same location.  Both libraries are installed by the &amp;quot;./configure&amp;quot;, &amp;quot;make&amp;quot; and &amp;quot;sudo make install&amp;quot; sequence, with the gpgme library configured with the additional &amp;quot;--with-gpg-error-prefix&amp;quot; parameter.  You may need to overwrite your existing &amp;quot;/usr/bin/gpgme-config&amp;quot; file with the newer version for the kdepimlibs to pick up the new install.&lt;br /&gt;
&lt;br /&gt;
== kdebase ==&lt;br /&gt;
You may need kdebase for some kioslaves.&lt;br /&gt;
&amp;lt;!--'cs' and 'cb' are NOT typos!--&amp;gt;&lt;br /&gt;
 cs KDE # [[Getting_Started/Increased_Productivity_in_KDE4_with_Scripts/.bashrc|cs is not a typo]]&lt;br /&gt;
 svn checkout svn://anonsvn.kde.org/home/kde/trunk/KDE/kdebase&lt;br /&gt;
 cd kdebase&lt;br /&gt;
 cmakekde&lt;br /&gt;
&lt;br /&gt;
=== Troubleshooting ===&lt;br /&gt;
If you have troubles compiling kdebase:&lt;br /&gt;
* Make sure you have the &amp;lt;tt&amp;gt;libxss headers&amp;lt;/tt&amp;gt; installed. (Usually you got undefined references on xscreensaver objects if you do not have those headers)&lt;br /&gt;
* &amp;lt;tt&amp;gt;which meinproc&amp;lt;/tt&amp;gt; has to deliver {{path|/home/kde-devel/kde/bin/meinproc}}&lt;br /&gt;
* if cmakekde can not find the path of kdepimlibs, edit the file {{path|$KDE_BUILD/KDE/kdebase/CMakeCache.txt}} and manually set &amp;lt;tt&amp;gt;KDEPIMLIBS_INCLUDE_DIR:PATH=$KDE_BUILD/kdepimlibs&amp;lt;/tt&amp;gt;&lt;br /&gt;
* if you get an error saying &amp;quot;Please set the following variables: X11_XTest_LIB (ADVANCED)&amp;quot;, install the devel package of &amp;lt;tt&amp;gt;Xtst&amp;lt;/tt&amp;gt;. On some systems, this is packaged separately from &amp;lt;tt&amp;gt;xext&amp;lt;/tt&amp;gt; and called &amp;lt;tt&amp;gt;x11proto-xext-dev&amp;lt;/tt&amp;gt; or &amp;lt;tt&amp;gt;libxtst-dev&amp;lt;/tt&amp;gt;. You may also need to remove the CMakeCache.txt file in the build dir after installing the package.&lt;br /&gt;
* the same for &amp;quot;X11_Xinerama_LIB (ADVANCED)&amp;quot; where you will need the devel package for &amp;lt;tt&amp;gt;xinerama&amp;lt;/tt&amp;gt;.&lt;br /&gt;
* if you get an error complaining about a missing variable X11_Xrandr_LIB, you need the devel package for libxrandr (libxrandr-devel on ubuntu-systems)&lt;br /&gt;
* if you get the error &amp;quot;Please set the following variables: FONTCONFIG_INCLUDE_DIR, FONTCONFIG_LIBRARIES (ADVANCED)&amp;quot;, then you need to install  the libfontconfig headers&lt;br /&gt;
* if you get the error &amp;quot;CMake Error: This project requires some variables to be set, and cmake can not find them. Please set the following variables: KMETADATA_LIBRARIES&amp;quot;, you need to install soprano from kdesupport and to rebuild kdelibs&lt;br /&gt;
* if you get the error &amp;quot;‘XserverRegion’ does not name a type&amp;quot; make sure you have libxcomposite headers installed (&amp;lt;tt&amp;gt;libxcomposite-dev&amp;lt;/tt&amp;gt; in ubuntu)&lt;br /&gt;
&lt;br /&gt;
== Generating local API documentation ==&lt;br /&gt;
Although the API documentation for KDE is available online at [http://api.kde.org api.kde.org], it is sometimes useful to have it on your own disk, for example when you want to use [[Getting_Started/Set_up_KDE_4_for_development#KDevelop|KDevelop]] for browsing the documentation or when you are not able to be online all the time.&lt;br /&gt;
&lt;br /&gt;
Be aware that generating the API documentation can take several hours and takes almost half a gigabyte of diskspace.&lt;br /&gt;
The generation is handled by a script in {{path|kdelibs/doc/api}}, you need &amp;lt;tt&amp;gt;doxygen&amp;lt;/tt&amp;gt; to be able to run it. &lt;br /&gt;
&lt;br /&gt;
To build the API documentation for kdelibs, type the following:&lt;br /&gt;
&amp;lt;!--'cs' and 'cb' are NOT typos!--&amp;gt;&lt;br /&gt;
 cs KDE/kdelibs # [[Getting_Started/Increased_Productivity_in_KDE4_with_Scripts/.bashrc|cs is not a typo]]&lt;br /&gt;
 $KDE_SRC/KDE/kdelibs/doc/api/doxygen.sh \&lt;br /&gt;
 --doxdatadir=$KDE_SRC/KDE/kdelibs/doc/common .&lt;br /&gt;
&lt;br /&gt;
Repeat for other modules as desired.&amp;lt;br&amp;gt;&lt;br /&gt;
 cd &amp;lt;module home&amp;gt;&lt;br /&gt;
 $KDE_SRC/KDE/kdelibs/doc/api/doxygen.sh \&lt;br /&gt;
 --doxdatadir=$KDE_SRC/KDE/kdelibs/doc/common .&lt;br /&gt;
&lt;br /&gt;
== Staying up to date ==&lt;br /&gt;
&lt;br /&gt;
In order to keep the kde4 installation up to date, each of the modules installed should be updated periodically. As Monday is the day for big changes in kdelibs, Tuesday may be the best day to do this. For each module checked out, run &amp;lt;tt&amp;gt;svn up&amp;lt;/tt&amp;gt; and &amp;lt;tt&amp;gt;make&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
For example:&lt;br /&gt;
&amp;lt;code bash&amp;gt;&lt;br /&gt;
cs kdesupport # cs is not a typo&lt;br /&gt;
svn up&lt;br /&gt;
cb # cb is not a typo&lt;br /&gt;
make -j2 VERBOSE=1 &amp;amp;&amp;amp; make install&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== General troubleshooting ==&lt;br /&gt;
&lt;br /&gt;
What can happen over time, after some &amp;lt;tt&amp;gt;svn up&amp;lt;/tt&amp;gt; commands, is that some of the tools used in the KDE build chain change their output format. For example, &amp;lt;tt&amp;gt;kcfg&amp;lt;/tt&amp;gt; files are read by &amp;lt;tt&amp;gt;kconfig_compiler&amp;lt;/tt&amp;gt; to produce configuration dialogs. CMake cannot detect those changes, and the compilation might fail. A workaround is to always force a re-generation of all such files:&lt;br /&gt;
 find $KDE_SRC/KDE/kdebase -name &amp;quot;*.kcfg&amp;quot; | xargs touch&lt;br /&gt;
The same applies to &amp;lt;tt&amp;gt;ui&amp;lt;/tt&amp;gt; files as produced by Qt designer.&lt;br /&gt;
&lt;br /&gt;
== Success! ==&lt;br /&gt;
&lt;br /&gt;
You are now ready to start building other svn modules in the same fashion as you built kdebase, running and testing KDE4 or writing your own patches and applications.&lt;br /&gt;
&lt;br /&gt;
See the [[Getting Started/Set up KDE 4 for development|Set up KDE 4 for development]] tutorial for how to start KDE 4 applications and how to use KDevelop to work on them.&lt;br /&gt;
&lt;br /&gt;
[[Category:Build KDE]]&lt;br /&gt;
[[Category:KDE4]]&lt;/div&gt;</summary>
		<author><name>Logixoul</name></author>	</entry>

	<entry>
		<id>http://techbase.kde.org/Getting_Started/Build/KDE4</id>
		<title>Getting Started/Build/KDE4</title>
		<link rel="alternate" type="text/html" href="http://techbase.kde.org/Getting_Started/Build/KDE4"/>
				<updated>2007-07-04T03:57:33Z</updated>
		
		<summary type="html">&lt;p&gt;Logixoul: /* Switching to the New User */ don't repeat ourselves&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Template:I18n/Language Navigation Bar|Getting_Started/Build/KDE4}}&lt;br /&gt;
&lt;br /&gt;
{{TutorialBrowser|&lt;br /&gt;
&lt;br /&gt;
series=Getting Started|&lt;br /&gt;
&lt;br /&gt;
name=Building KDE4 From Source|&lt;br /&gt;
&lt;br /&gt;
pre=[[../../Sources/Anonymous_SVN|Anonymous SVN Quickstart Guide]]|&lt;br /&gt;
&lt;br /&gt;
next=[[../../Set_up_KDE_4_for_development|Set up KDE 4 for development]]|&lt;br /&gt;
&lt;br /&gt;
reading=[http://kdesvn-build.kde.org/ kdesvn-build: The KDE From Subversion Build Tool]&amp;lt;br&amp;gt;[[../../Increased_Productivity_in_KDE4_with_Scripts|Increased Productivity in KDE4 with Scripts]]&amp;lt;br&amp;gt;[[Development/Tutorials/CMake |Introduction to CMake]]&amp;lt;br&amp;gt;[[../KDE4/FreeBSD|FreeBSD notes]]&amp;lt;br&amp;gt;[[../KDE4/Mac OS X|Instructions for Mac OS X]]|&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== Abstract ==&lt;br /&gt;
&lt;br /&gt;
This tutorial shows one way to get KDE from trunk running on Linux/BSD systems. There are also tutorials for [[/FreeBSD|FreeBSD]], [http://www.kdelibs.com/ Windows], [[/Mac OS X|Mac OS X]] and [http://solaris.kde.org/ Solaris]. Throughout the tutorial the bash shell is used.&lt;br /&gt;
&lt;br /&gt;
{{warning|Expect a higher risk of build failure '''on Mondays''' when most kdelibs changes are committed. [http://developer.kde.org/~dirk/dashboard/ Dashboard] reports unexpected breakages. You are encouraged to fix failing modules.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== Required Software ==&lt;br /&gt;
&lt;br /&gt;
The following must be installed first before you can successfully complete this tutorial:&lt;br /&gt;
* gcc and g++ from the gcc project, preferably version 4.1 or higher&lt;br /&gt;
* svn, the subversion revision control client&lt;br /&gt;
* pkg-config&lt;br /&gt;
* development libraries and headers for X11, OpenGL (mesa-common-dev and libglu1-mesa-dev), libjpeg, libpng, libungif, [http://clucene.sourceforge.net/index.php/Downloads libclucene], [http://download.librdf.org/source/ librdf], libxml2 and libxslt&lt;br /&gt;
* the &amp;lt;tt&amp;gt;makeobj&amp;lt;/tt&amp;gt; script, which is part of kdesdk. You can install it as part of kdesdk (kdesdk-scripts on Debian) or similar package, or just download it itself from [http://websvn.kde.org/*checkout*/trunk/KDE/kdesdk/scripts/makeobj WebSVN]&lt;br /&gt;
* the [http://freedesktop.org/wiki/Software/shared-mime-info shared-mime-info package], which is the freedesktop MIME standard KDE is using now&lt;br /&gt;
* [http://boost.org/ boost], needed by kdebase; after compiling and/or installing boost, in order to make cmake aware about its location (FindBoost),  add boost directory (the one containing include subdirectory) to CMAKE_INCLUDE_PATH or set an environment variable called BOOST_ROOT pointing to boost directory.&lt;br /&gt;
&lt;br /&gt;
=== Kubuntu ===&lt;br /&gt;
&lt;br /&gt;
In Kubuntu 7.04 (Feisty) the build dependencies you need are installed with:&lt;br /&gt;
&amp;lt;code bash&amp;gt;&lt;br /&gt;
sudo aptitude install build-essential cdbs debhelper cmake \&lt;br /&gt;
libxml2-dev libxslt1-dev libbz2-dev libclucene-dev librdf-dev \&lt;br /&gt;
shared-mime-info libgl1-mesa-dev libglu1-mesa-dev mesa-common-dev \&lt;br /&gt;
libxext-dev libjpeg-dev libpng-dev subversion libsm-dev libxinerama-dev \&lt;br /&gt;
libxrender-dev libfontconfig-dev libboost-dev libxcursor-dev doxygen \&lt;br /&gt;
libungif4-dev libdbus-1-dev libgpgme11-dev libssl-dev&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You can skip the manual installation of CMake 2.4.6 and DBus with: &lt;br /&gt;
&amp;lt;code bash&amp;gt;&lt;br /&gt;
sudo aptitude install libdbus-1-dev cmake&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For a fully functional API documentation framework you also need:&lt;br /&gt;
&amp;lt;code bash&amp;gt;&lt;br /&gt;
sudo aptitude install graphviz&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== openSUSE ===&lt;br /&gt;
&lt;br /&gt;
In openSUSE 10.2 and newer, you can install packages using [http://en.opensuse.org/Zypper Zypper]:&lt;br /&gt;
&amp;lt;code bash&amp;gt;&lt;br /&gt;
sudo zypper install &amp;lt;package-name&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In older releases of SUSE, you can use YaST:&lt;br /&gt;
&amp;lt;code bash&amp;gt;&lt;br /&gt;
su&lt;br /&gt;
yast -i &amp;lt;packagename&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Required Packages'''&lt;br /&gt;
&lt;br /&gt;
The packages you will need to install are:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
xorg-x11-devel&lt;br /&gt;
libxml2-devel &lt;br /&gt;
kdesdk3 &lt;br /&gt;
clucene-core-devel &lt;br /&gt;
boost-devel&lt;br /&gt;
libjpeg-devel &lt;br /&gt;
liblrdf-devel &lt;br /&gt;
libpng-devel &lt;br /&gt;
libxslt-devel &lt;br /&gt;
libredland-devel&lt;br /&gt;
Mesa-devel &lt;br /&gt;
giflib-devel &lt;br /&gt;
subversion &lt;br /&gt;
gcc &lt;br /&gt;
gcc-c++&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Optional Packages'''&lt;br /&gt;
&lt;br /&gt;
You can skip the manual installation of Qt 4.3, CMake 2.4.6 and DBus by installing the adding the openSUSE Build Service KDE4 Repository to your installation sources.&lt;br /&gt;
&lt;br /&gt;
For openSUSE 10.2 and newer do:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
sudo zypper service-add http://software.opensuse.org/download/KDE:/KDE4/openSUSE_10.2 KDE4-102&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For older versions of SUSE Linux do:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
su&lt;br /&gt;
installation_sources -a http://software.opensuse.org/download/KDE:/KDE4/[YOUR SUSE LINUX VERSION]&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now install the following packages (and their dependencies):&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
cmake&lt;br /&gt;
dbus-1-devel&lt;br /&gt;
libqt4-devel&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
And for fully functional apidox frame work you also need:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
graphviz&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
CMake binary packages for openSUSE are available from [http://software.opensuse.org/download/devel:/tools:/building/ openSUSE build service].&lt;br /&gt;
&lt;br /&gt;
=== Gentoo ===&lt;br /&gt;
&lt;br /&gt;
You can use most stable ebuilds just remember to sync your portage before you begin.&lt;br /&gt;
&lt;br /&gt;
We need to be unmasked and/or kept at a lower version to continue.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code bash&amp;gt;&lt;br /&gt;
# echo 'x11-libs/qt' &amp;gt;&amp;gt; /etc/portage/package.keywords&lt;br /&gt;
# echo 'dev-util/cmake' &amp;gt;&amp;gt; /etc/portage/package.keywords&lt;br /&gt;
# echo 'dev-cpp/clucene' &amp;gt;&amp;gt; /etc/portage/package.keywords&lt;br /&gt;
# echo '&amp;gt;dev-cpp/clucene-0.9.16a' &amp;gt;&amp;gt; /etc/portage/package.mask&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
These are the packages you will need to install, some may already be installed so you may skip those by adding the update flag to emerge.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code bash&amp;gt;&lt;br /&gt;
$ emerge -avu ebuild/name&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 sys-devel/gcc&lt;br /&gt;
 dev-util/subversion&lt;br /&gt;
 dev-util/pkgconfig&lt;br /&gt;
 x11-base/xorg-x11&lt;br /&gt;
 media-libs/glut&lt;br /&gt;
 media-libs/mesa&lt;br /&gt;
 media-libs/jpeg&lt;br /&gt;
 media-libs/libpng&lt;br /&gt;
 media-libs/giflib&lt;br /&gt;
 dev-cpp/clucene&lt;br /&gt;
 dev-util/cppunit&lt;br /&gt;
 media-libs/liblrdf&lt;br /&gt;
 dev-libs/libxml2&lt;br /&gt;
 dev-libs/libxslt&lt;br /&gt;
 x11-misc/shared-mime-info&lt;br /&gt;
 kde-base/kdesdk-scripts&lt;br /&gt;
 dev-libs/boost&lt;br /&gt;
 x11-libs/qt&lt;br /&gt;
 dev-util/cmake&lt;br /&gt;
 sys-apps/dbus&lt;br /&gt;
 dev-libs/redland&lt;br /&gt;
&lt;br /&gt;
Provided you have emerged these ebuilds, you can skip compiling them by hand and proceed to [[Getting_Started/Build/KDE4#kdesupport|kdesupport section]].&lt;br /&gt;
&lt;br /&gt;
Good luck!&lt;br /&gt;
&lt;br /&gt;
== Create a user account for KDE4 development ==&lt;br /&gt;
&lt;br /&gt;
{{Note|&lt;br /&gt;
Some people like to have a separate user account for KDE 4 (for instance an old bug deleted files by mistake), and the instructions below were written with that approach.&lt;br /&gt;
&lt;br /&gt;
However it is much more efficient to do everything with a single user account, see [[Getting_Started/Increased_Productivity_in_KDE4_with_Scripts|Increased Productivity in KDE4 with Scripts]]&lt;br /&gt;
for more details. &lt;br /&gt;
&lt;br /&gt;
You can still follow the instructions below, but don't put the environment variables in your &amp;lt;tt&amp;gt;.bashrc&amp;lt;/tt&amp;gt;, put them in a separate file that you source to switch to the KDE 4 environment.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
=== Option 1: Command Line ===&lt;br /&gt;
&amp;lt;code bash&amp;gt;&lt;br /&gt;
useradd -m kde-devel&lt;br /&gt;
passwd kde-devel&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Option 2: Using KControl ===&lt;br /&gt;
&lt;br /&gt;
Instead of using the commands above, you can also use the User module in the KDE Control Center if you already have KDE3 installed.&lt;br /&gt;
&lt;br /&gt;
=== Setting up the environment ===&lt;br /&gt;
&lt;br /&gt;
Copy the {{path|~/.bashrc}} from your normal user account to the new kde-devel account. Next, copy and paste the contents of the [[Getting Started/Increased Productivity in KDE4 with Scripts/.bashrc|example .bashrc]] into {{path|~kde-devel/.bashrc}}. Be sure to comment out the line &amp;lt;tt&amp;gt;alias make=makeobj&amp;lt;/tt&amp;gt; if you do not have the &amp;lt;tt&amp;gt;[[Getting Started/Build/KDE4#Required Software|makeobj]]&amp;lt;/tt&amp;gt; command available. You will probably also want to modify the path to make sure it doesn't include your kde3 paths. To make it run, you have to open a new bash or to execute &lt;br /&gt;
&amp;lt;code bash&amp;gt;&lt;br /&gt;
source ~/.bashrc&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This will provide access to commands such as &amp;lt;tt&amp;gt;cmakekde&amp;lt;/tt&amp;gt; that are used in this tutorial as well as ensure that the proper paths are in place for Qt, KDE and CMake binaries.&lt;br /&gt;
&lt;br /&gt;
For more information, please read the [[Getting Started/Increased Productivity in KDE4 with Scripts]] tutorial.&lt;br /&gt;
&lt;br /&gt;
=== Switching to the New User ===&lt;br /&gt;
Switch to the user kde-devel: (don't forget the dash)&lt;br /&gt;
&amp;lt;code bash&amp;gt;&lt;br /&gt;
su - kde-devel&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== The development user's shell ==&lt;br /&gt;
&lt;br /&gt;
On some systems a new user is configured by default to use {{path|/bin/sh}}. If this is not the case on your system, you can skip this section. Using {{path|/bin/sh}} can be very inconvenient to work with and you may want to change it to {{path|/bin/bash}} or another shell.&lt;br /&gt;
&lt;br /&gt;
=== Option 1: As the kde-devel user ===&lt;br /&gt;
&lt;br /&gt;
If you don't have root privileges and your system supports the changing of your own shell with the &amp;lt;tt&amp;gt;chsh&amp;lt;/tt&amp;gt; application, then you could try to change your shell to {{path|/bin/bash}} by using:&lt;br /&gt;
&amp;lt;code bash&amp;gt;&lt;br /&gt;
chsh -s /bin/bash kde-devel&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Option 2: As the root user ===&lt;br /&gt;
&lt;br /&gt;
If your system comes with the &amp;lt;tt&amp;gt;usermod&amp;lt;/tt&amp;gt; application you can run the following command as root: &amp;lt;tt&amp;gt;usermod -s /bin/bash&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Another option is to use the &amp;lt;tt&amp;gt;vipw&amp;lt;/tt&amp;gt; application as root to safely edit your {{path|/etc/passwd}}. Locate 'kde-devel' in the the file. Change '{{path|/bin/sh}}' at the end of the line to read '{{path|/bin/bash}}', save your changes and exit.&lt;br /&gt;
&lt;br /&gt;
The new shell will be started automatically when you log in as the kde-devel user again.&lt;br /&gt;
&lt;br /&gt;
== D-Bus ==&lt;br /&gt;
QtDBus and KDE are known to work with D-Bus versions 0.62, as well as 0.92 and upwards. Versions 0.60 and 0.61 may work too but are not tested. Versions 0.90 and 0.91 are known not to work. We recommend using post-1.0 release versions (at least 0.94), so consider upgrading if you haven't done so.&lt;br /&gt;
&lt;br /&gt;
You may skip this section if you have a recent D-Bus version or if you don't want to upgrade.&lt;br /&gt;
&lt;br /&gt;
Before running these steps in the recipe, make sure your X11 headers and libraries are available. The configure script run on line 5 of the following instructions should output:&lt;br /&gt;
 Building X11 code:        yes&lt;br /&gt;
&lt;br /&gt;
=== The Recipe ===&lt;br /&gt;
&lt;br /&gt;
{{tip|Make sure you did set up your environment correctly as described [[Getting_Started/Build/KDE4#Setting_up_the_environment|above]]. This is necessary for the &amp;lt;tt&amp;gt;cs&amp;lt;/tt&amp;gt; and &amp;lt;tt&amp;gt;cb&amp;lt;/tt&amp;gt; functions to work.}}&lt;br /&gt;
&lt;br /&gt;
 cs # [[Getting_Started/Increased_Productivity_in_KDE4_with_Scripts/.bashrc|'cs' is a bash function, click here to learn more]] &lt;br /&gt;
 wget http://dbus.freedesktop.org/releases/dbus/dbus-1.0.2.tar.gz&lt;br /&gt;
 tar -xvzf dbus-1.0.2.tar.gz&lt;br /&gt;
 cd dbus-1.0.2/&lt;br /&gt;
 ./configure --prefix=$DBUSDIR --localstatedir=/var&lt;br /&gt;
 make&lt;br /&gt;
 sudo make install&lt;br /&gt;
 sudo dbus-uuidgen --ensure&lt;br /&gt;
&lt;br /&gt;
=== What's Happening === &lt;br /&gt;
After changing into the source directory (line 1), D-Bus source code is downloaded from freedesktop.org (line 2) and unpacked (line 3). After going into the newly created D-Bus directory (line 4), the build is set up using the supplied {{path|configure}} script (line 5). After building (line 6) and installing (line 7) D-Bus, we use the &amp;lt;tt&amp;gt;dbus-uuidgen&amp;lt;/tt&amp;gt; tool to install a machine identification file that allows the bus to start automatically when the desktop session starts (line 8).&lt;br /&gt;
&lt;br /&gt;
Note that you need write access to {{path|/var}} for the last two steps. If your system does not have the sudo command, you can use the &amp;lt;tt&amp;gt;su&amp;lt;/tt&amp;gt; command instead, e.g. &amp;lt;tt&amp;gt;su -c &amp;quot;make install&amp;quot;&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== CMake ==&lt;br /&gt;
Skip this if you have [http://cmake.org/ CMake] &amp;gt;=2.4.5 installed. &lt;br /&gt;
You should be able to directly use the binary packages available on the [http://www.cmake.org/HTML/Download.html CMake site]. There are also distribution specific packages available.&lt;br /&gt;
&lt;br /&gt;
=== The Recipe ===&lt;br /&gt;
&amp;lt;!--'cs' and 'cb' are NOT typos!--&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 cs # [[Getting_Started/Increased_Productivity_in_KDE4_with_Scripts/.bashrc|'cs' is a bash function, click Here to learn more]] &lt;br /&gt;
 wget http://www.cmake.org/files/v2.4/cmake-2.4.6.tar.gz&lt;br /&gt;
 tar -zxf cmake-2.4.6.tar.gz&lt;br /&gt;
 mkdir cmake-build&lt;br /&gt;
 cd cmake-build &lt;br /&gt;
 ../cmake-2.4.6/bootstrap&lt;br /&gt;
 make&lt;br /&gt;
 sudo make install&lt;br /&gt;
&lt;br /&gt;
=== What's Happening ===&lt;br /&gt;
First, we go back to the &amp;lt;tt&amp;gt;kde-devel&amp;lt;/tt&amp;gt; user's source directory (line 1), get the CMake sources (line 2) and unpack them (line 3). We create a directory to build CMake in (line 4) and go into it (line 5). We then run the CMake bootstrap script to set up the CMake build (line 6), then make (line 7) and install it (line 8) using the root user.&lt;br /&gt;
&lt;br /&gt;
If your system does not have the &amp;lt;tt&amp;gt;sudo&amp;lt;/tt&amp;gt; command, you can instead do &amp;lt;tt&amp;gt;su -c &amp;quot;make install&amp;quot;&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Qt ==&lt;br /&gt;
Next we need to get the Qt4 that is in KDE's source repository. KDE is guaranteed to build against any Qt 4.3. Qt 4.2 and earlier are not supported and will not work. You should use the copy in the KDE Subversion servers.&lt;br /&gt;
&lt;br /&gt;
=== The Recipe ===&lt;br /&gt;
 cd&lt;br /&gt;
 svn checkout svn://anonsvn.kde.org/home/kde/trunk/qt-copy&lt;br /&gt;
 cd qt-copy&lt;br /&gt;
 ./apply_patches&lt;br /&gt;
 ./configure -qt-gif -no-exceptions -debug -fast \&lt;br /&gt;
  -prefix $QTDIR -qdbus -pch -openssl -nomake examples \&lt;br /&gt;
  -nomake demos&lt;br /&gt;
 make -j2&lt;br /&gt;
&lt;br /&gt;
 # do copy files if the target doesnt match current dir,&lt;br /&gt;
 # clear obj files to save disk space otherwise&lt;br /&gt;
 if [ $QTDIR = `pwd` ]; then \&lt;br /&gt;
 find . -name '*.o' -exec rm {} \; ; \&lt;br /&gt;
 else make install; fi;&lt;br /&gt;
&lt;br /&gt;
=== What's Happening ===&lt;br /&gt;
We switch back to the &amp;lt;tt&amp;gt;kde-devel&amp;lt;/tt&amp;gt; user's home directory (line 1) and download the source code using subversion (svn) from KDE's repository (line 2). After changing into the resulting {{path|qt-copy}} directory (line 3), we run a script that manages the patches that come with &amp;lt;tt&amp;gt;qt-copy&amp;lt;/tt&amp;gt; (line 4). &lt;br /&gt;
&lt;br /&gt;
Once the patches have been applied, we then set up the build using the &amp;lt;tt&amp;gt;configure&amp;lt;/tt&amp;gt; script (line 5-7). The various command line options used are explained in the {{path|qt-copy/README.qt-copy}} file. Finally, we build the minimal requirements for KDE (line 8) and install (line 9-10) Qt. If you want all the example and demo applications, you can either build them individually or simply do a &amp;lt;tt&amp;gt;make&amp;lt;/tt&amp;gt; from the {{path|qt-copy}} directory. &lt;br /&gt;
&lt;br /&gt;
Note that the installation does not require root as it installs Qt locally into {{path|$QTDIR}}. Anyway, installation is only needed if {{path|$QTDIR}} differs from {{path|$HOME/qt-copy}}, which is not the case if you have exactly followed the instructions.&lt;br /&gt;
&lt;br /&gt;
=== Troubleshooting ===&lt;br /&gt;
If you get &amp;quot;error: X11/Xlib.h: No such file or directory&amp;quot;, install the devel package of &amp;lt;tt&amp;gt;xorg&amp;lt;/tt&amp;gt; (the actual name may vary between operating systems, for example it is &amp;lt;tt&amp;gt;xorg-dev&amp;lt;/tt&amp;gt; on Ubuntu based systems such as Kubuntu). &lt;br /&gt;
&lt;br /&gt;
If you get an error in the configure step about missing defines, check the value of &amp;lt;tt&amp;gt;$QMAKESPEC&amp;lt;/tt&amp;gt;.  Some distributions set this to point directly to the system-installed Qt.  If &amp;lt;tt&amp;gt;unset QMAKESPEC&amp;lt;/tt&amp;gt; solves the problem, you probably want to add it to the &amp;lt;tt&amp;gt;~/.bashrc&amp;lt;/tt&amp;gt; script.&lt;br /&gt;
&lt;br /&gt;
If you get an error &amp;quot;.pch/debug-shared/QtCore&amp;quot;, this is because Qt-4.3 enables precompiled headers if your gcc supports it, but for some reason it doesn't work for you. If you use distcc, configure qt with -no-pch. If you use icecream, update to the latest icecream from svn trunk.&lt;br /&gt;
&lt;br /&gt;
Try running any Qt program, like {{program|assistant}}. '''Note:''' You may need to run &amp;lt;tt&amp;gt;xhost +local:kde-devel&amp;lt;/tt&amp;gt; as your regular kde3 user to run this application.  If it crashes in QSpanData::adjustSpanMethods, then your problem is the oxygen style. Try removing {{path|lib/kde4/plugins/styles/kstyle-oxygen.so}} and {{path|lib/kde4/plugins/styles/oxygen.so}} if they exist in the KDE install prefix.&lt;br /&gt;
&lt;br /&gt;
== kdesupport ==&lt;br /&gt;
&lt;br /&gt;
{{warning|If you have jumped to this section without reading [[Getting_Started/Build/KDE4#Setting_up_the_environment|Setting Up The Environment]], '''the recipes provided will not work'''. &lt;br /&gt;
&lt;br /&gt;
The recipes are not in error; &amp;lt;tt&amp;gt;cs&amp;lt;/tt&amp;gt; and &amp;lt;tt&amp;gt;cb&amp;lt;/tt&amp;gt; are not typos. Your environment '''needs''' to be set up correctly for these instructions to work for you.}}&lt;br /&gt;
&lt;br /&gt;
There are several libraries that KDE applications rely on in the kdesupport module. This includes Strigi and Soprano for file metadata and search, eigen for visual effects in applications such as Kalzium, taglib for music players and qca for some cryptographic needs. &lt;br /&gt;
&lt;br /&gt;
Strigi itself has a few dependencies as well: you will need the libraries and headers for libz, libbz2, openssl (libcrypto or libssl), libclucene (=0.9.16; version 0.9.17 does '''not''' work), and either libxml2 or libexpat.&lt;br /&gt;
&lt;br /&gt;
=== The Recipe ===&lt;br /&gt;
&amp;lt;!--'cs' and 'cb' are NOT typos!--&amp;gt;&lt;br /&gt;
 cs # [[Getting_Started/Increased_Productivity_in_KDE4_with_Scripts/.bashrc|cs is not a typo]]&lt;br /&gt;
 svn checkout svn://anonsvn.kde.org/home/kde/trunk/kdesupport/&lt;br /&gt;
 cd kdesupport&lt;br /&gt;
 cmakekde&lt;br /&gt;
&lt;br /&gt;
=== What's Happening ===&lt;br /&gt;
We change to the base source directory (line 1). We download the sources in kdesupport using subversion (line 2), go into the new {{path|~/src/kdesupport}} directory (line 3), and commence the build (line 4). This will leave us in the kdesupport build directory after the build is completed.&lt;br /&gt;
&lt;br /&gt;
=== Troubleshooting ===&lt;br /&gt;
If you get &lt;br /&gt;
 CMake Error: This project requires some variables to be set,&lt;br /&gt;
 and cmake can not find them.&lt;br /&gt;
 Please set the following variables:&lt;br /&gt;
 LIBXML2_INCLUDE_DIR (ADVANCED)&lt;br /&gt;
you should install the development package for libxml2.&lt;br /&gt;
&lt;br /&gt;
If you get &lt;br /&gt;
 CMake Error: Could NOT find REDLAND&lt;br /&gt;
then you need librdf from the Redland.&lt;br /&gt;
If your distribution does not provide the librdf package, you can download the source there: [http://download.librdf.org/source/ http://download.librdf.org/source/] and build it.&lt;br /&gt;
(Gentoo users: The ebuild for librdf is named dev-libs/redland)&lt;br /&gt;
&lt;br /&gt;
If you get&lt;br /&gt;
 Fetching external item into 'kdesupport/admin'&lt;br /&gt;
 Error validating server certificate for 'https://...'&lt;br /&gt;
see [http://techbase.kde.org/Getting_Started/Sources/Using_Subversion_with_KDE Using Subversion with KDE]&lt;br /&gt;
&lt;br /&gt;
If you get&lt;br /&gt;
 FILE cannot create directory: /usr/lib[64]/qt4/plugins/crypto. Maybe need administrative privileges.&lt;br /&gt;
 - - -&lt;br /&gt;
 make: *** [install] Error 255&lt;br /&gt;
take a second look in the .bashrc file described above, are paths correct?&lt;br /&gt;
&lt;br /&gt;
== kdelibs ==&lt;br /&gt;
&lt;br /&gt;
With Qt4, Strigi, and Soprano built, we can now move on to building KDE's base libraries. If you use the aforementioned [[Getting Started/Increased Productivity in KDE4 with Scripts/.bashrc|.bashrc]] this is where those new functions come in handy. &lt;br /&gt;
&lt;br /&gt;
=== The Recipe ===&lt;br /&gt;
&amp;lt;!--'cs' and 'cb' are NOT typos!--&amp;gt;&lt;br /&gt;
 cs # bash function&lt;br /&gt;
 mkdir KDE &amp;amp;&amp;amp; cd KDE&lt;br /&gt;
 svn checkout svn://anonsvn.kde.org/home/kde/trunk/KDE/kdelibs&lt;br /&gt;
 cd kdelibs&lt;br /&gt;
 cmakekde&lt;br /&gt;
&lt;br /&gt;
=== What's Happening ===&lt;br /&gt;
We change to the base source directory (line 1) then make and go into the KDE directory (line 2). We download the sources for kdelibs using subversion (line 3), go into the new {{path|~/src/KDE/kdelibs}} directory (line 4), and commence the build (line 5). This will leave us in the &amp;lt;tt&amp;gt;kdelibs&amp;lt;/tt&amp;gt; build directory after the build is completed.&lt;br /&gt;
&lt;br /&gt;
{{tip|There might be missing dependencies on your system! They are easily overlooked in the output of &amp;lt;tt&amp;gt;cmakekde&amp;lt;/tt&amp;gt;.&lt;br /&gt;
You might want to do a &amp;lt;tt&amp;gt;cmake $KDE_SRC/KDE/MODULE_NAME&amp;lt;/tt&amp;gt; prior to compiling any kde modules (like kdelibs, kdepimlibs etc.)}}&lt;br /&gt;
&lt;br /&gt;
=== Additional KDE-specific CMake modules ===&lt;br /&gt;
There are additional CMake modules in {{path|kdelibs/cmake/modules/}} that are necessary for building KDE4 applications. These will be installed for you when  kdelibs itself is installed.&lt;br /&gt;
&lt;br /&gt;
=== Troubleshooting ===&lt;br /&gt;
If you have problems compiling kdelibs, first make sure the software in the [[Getting_Started/Build/KDE4#Required_Software|Required Software]] section above is installed and works. Other possible hints include:&lt;br /&gt;
* If the &amp;lt;tt&amp;gt;cmakekde&amp;lt;/tt&amp;gt; command fails stating that CMake requires an out of source build directory, remove {{path|~/src/KDE/kdelibs/CMakeCache.txt}}, and try again.&lt;br /&gt;
&lt;br /&gt;
If &amp;lt;tt&amp;gt;cmakekde&amp;lt;/tt&amp;gt; still gives the same error then try this &lt;br /&gt;
 cd&lt;br /&gt;
 cmake -DCMAKE_INSTALL_PREFIX=$KDEDIR \&lt;br /&gt;
 -DCMAKE_BUILD_TYPE=debugfull \&lt;br /&gt;
 -DKDE4_BUILD_TESTS=ON \&lt;br /&gt;
 ~/src/KDE/kdelibs&lt;br /&gt;
 make&lt;br /&gt;
 make install&lt;br /&gt;
* If you received an error stating &amp;quot;Please create a separate build directory and run 'cmake path_to_kdelibs [options]' there.&amp;quot;, then you need to change to your build directory before running cmakekde. (e.g &amp;lt;tt&amp;gt;cs KDE/kdelibs &amp;amp;&amp;amp; cb &amp;amp;&amp;amp; cmakekde&amp;lt;/tt&amp;gt;) If the message stays, run 'svn status' in the kdelibs directory and remove all files labeled with '?'.&lt;br /&gt;
* If Qt wasn't found or the wrong version of Qt was found, make sure that the qmake from the Qt you need is the first qmake in the path.&lt;br /&gt;
* If the problems persist, try the CMake make-option &amp;lt;tt&amp;gt;--keep-going&amp;lt;/tt&amp;gt;.&lt;br /&gt;
* Here you need the libungif library, otherwise you will get an error message like &amp;quot;&amp;lt;tt&amp;gt;Could NOT find GIF&amp;lt;/tt&amp;gt;&amp;quot;.&lt;br /&gt;
* Qt-4.3 upgrade: if you get a link error in kjsembed talking about QScriptEngine, edit CMakeCache.txt in kdelibs and remove the lines that talk about QT_QTUITOOLS_LIBRARY, then type make again (that static library has a new dependency, and the cmake code that adds it needs to run).&lt;br /&gt;
* if you get &amp;lt;code&amp;gt;CMake Error: KDE Requires Qt to be built with SSL support&lt;br /&gt;
&amp;lt;/code&amp;gt;, install openssl-devel, and re-compile QT.&lt;br /&gt;
* if you get &amp;lt;code&amp;gt;kdelibs/kimgio/ico.cpp:188: undefined reference to `QImage::jumpTable()'&amp;lt;/code&amp;gt; it means you compiled QT without QT3 support(no, linking to a true QT3 install won't work)&lt;br /&gt;
&lt;br /&gt;
== kdepimlibs ==&lt;br /&gt;
After &amp;lt;tt&amp;gt;kdelibs&amp;lt;/tt&amp;gt;, but before ''kdebase'', you need to build and install ''kdepimlibs''.&lt;br /&gt;
&lt;br /&gt;
=== The Recipe ===&lt;br /&gt;
&amp;lt;!--'cs' and 'cb' are NOT typos!--&amp;gt;&lt;br /&gt;
 cs KDE # [[Getting_Started/Increased_Productivity_in_KDE4_with_Scripts/.bashrc|cs is not a typo]]&lt;br /&gt;
 svn checkout svn://anonsvn.kde.org/home/kde/trunk/KDE/kdepimlibs&lt;br /&gt;
 cd kdepimlibs&lt;br /&gt;
 cmakekde&lt;br /&gt;
&lt;br /&gt;
=== What's Happening ===&lt;br /&gt;
We go into the KDE source directory (line 1), download the source code for kdepimlibs using subversion (line 2) and then go into the new {{path|~/src/KDE/kdepimlibs}} directory (line 3). We then commence the build (line 4). This will leave us in the &amp;lt;tt&amp;gt;kdepimlibs&amp;lt;/tt&amp;gt; build directory after the build is completed.&lt;br /&gt;
&lt;br /&gt;
=== Troubleshooting ===&lt;br /&gt;
If you have trouble compiling kdepimlibs:&lt;br /&gt;
* the cmakekde command may require a later version of the gpgme library.  This is available from the project's web site: http://www.gnupg.org/(en)/download/index.html - please note that the build of gpgme also requires libgpg-error, also available from the same location.  Both libraries are installed by the &amp;quot;./configure&amp;quot;, &amp;quot;make&amp;quot; and &amp;quot;sudo make install&amp;quot; sequence, with the gpgme library configured with the additional &amp;quot;--with-gpg-error-prefix&amp;quot; parameter.  You may need to overwrite your existing &amp;quot;/usr/bin/gpgme-config&amp;quot; file with the newer version for the kdepimlibs to pick up the new install.&lt;br /&gt;
&lt;br /&gt;
== kdebase ==&lt;br /&gt;
You may need kdebase for some kioslaves.&lt;br /&gt;
&amp;lt;!--'cs' and 'cb' are NOT typos!--&amp;gt;&lt;br /&gt;
 cs KDE # [[Getting_Started/Increased_Productivity_in_KDE4_with_Scripts/.bashrc|cs is not a typo]]&lt;br /&gt;
 svn checkout svn://anonsvn.kde.org/home/kde/trunk/KDE/kdebase&lt;br /&gt;
 cd kdebase&lt;br /&gt;
 cmakekde&lt;br /&gt;
&lt;br /&gt;
=== Troubleshooting ===&lt;br /&gt;
If you have troubles compiling kdebase:&lt;br /&gt;
* Make sure you have the &amp;lt;tt&amp;gt;libxss headers&amp;lt;/tt&amp;gt; installed. (Usually you got undefined references on xscreensaver objects if you do not have those headers)&lt;br /&gt;
* &amp;lt;tt&amp;gt;which meinproc&amp;lt;/tt&amp;gt; has to deliver {{path|/home/kde-devel/kde/bin/meinproc}}&lt;br /&gt;
* if cmakekde can not find the path of kdepimlibs, edit the file {{path|$KDE_BUILD/KDE/kdebase/CMakeCache.txt}} and manually set &amp;lt;tt&amp;gt;KDEPIMLIBS_INCLUDE_DIR:PATH=$KDE_BUILD/kdepimlibs&amp;lt;/tt&amp;gt;&lt;br /&gt;
* if you get an error saying &amp;quot;Please set the following variables: X11_XTest_LIB (ADVANCED)&amp;quot;, install the devel package of &amp;lt;tt&amp;gt;Xtst&amp;lt;/tt&amp;gt;. On some systems, this is packaged separately from &amp;lt;tt&amp;gt;xext&amp;lt;/tt&amp;gt; and called &amp;lt;tt&amp;gt;x11proto-xext-dev&amp;lt;/tt&amp;gt; or &amp;lt;tt&amp;gt;libxtst-dev&amp;lt;/tt&amp;gt;. You may also need to remove the CMakeCache.txt file in the build dir after installing the package.&lt;br /&gt;
* the same for &amp;quot;X11_Xinerama_LIB (ADVANCED)&amp;quot; where you will need the devel package for &amp;lt;tt&amp;gt;xinerama&amp;lt;/tt&amp;gt;.&lt;br /&gt;
* if you get an error complaining about a missing variable X11_Xrandr_LIB, you need the devel package for libxrandr (libxrandr-devel on ubuntu-systems)&lt;br /&gt;
* if you get the error &amp;quot;Please set the following variables: FONTCONFIG_INCLUDE_DIR, FONTCONFIG_LIBRARIES (ADVANCED)&amp;quot;, then you need to install  the libfontconfig headers&lt;br /&gt;
* if you get the error &amp;quot;CMake Error: This project requires some variables to be set, and cmake can not find them. Please set the following variables: KMETADATA_LIBRARIES&amp;quot;, you need to install soprano from kdesupport and to rebuild kdelibs&lt;br /&gt;
* if you get the error &amp;quot;‘XserverRegion’ does not name a type&amp;quot; make sure you have libxcomposite headers installed (&amp;lt;tt&amp;gt;libxcomposite-dev&amp;lt;/tt&amp;gt; in ubuntu)&lt;br /&gt;
&lt;br /&gt;
== Generating local API documentation ==&lt;br /&gt;
Although the API documentation for KDE is available online at [http://api.kde.org api.kde.org], it is sometimes useful to have it on your own disk, for example when you want to use [[Getting_Started/Set_up_KDE_4_for_development#KDevelop|KDevelop]] for browsing the documentation or when you are not able to be online all the time.&lt;br /&gt;
&lt;br /&gt;
Be aware that generating the API documentation can take several hours and takes almost half a gigabyte of diskspace.&lt;br /&gt;
The generation is handled by a script in {{path|kdelibs/doc/api}}, you need &amp;lt;tt&amp;gt;doxygen&amp;lt;/tt&amp;gt; to be able to run it. &lt;br /&gt;
&lt;br /&gt;
To build the API documentation for kdelibs, type the following:&lt;br /&gt;
&amp;lt;!--'cs' and 'cb' are NOT typos!--&amp;gt;&lt;br /&gt;
 cs KDE/kdelibs # [[Getting_Started/Increased_Productivity_in_KDE4_with_Scripts/.bashrc|cs is not a typo]]&lt;br /&gt;
 $KDE_SRC/KDE/kdelibs/doc/api/doxygen.sh \&lt;br /&gt;
 --doxdatadir=$KDE_SRC/KDE/kdelibs/doc/common .&lt;br /&gt;
&lt;br /&gt;
Repeat for other modules as desired.&amp;lt;br&amp;gt;&lt;br /&gt;
 cd &amp;lt;module home&amp;gt;&lt;br /&gt;
 $KDE_SRC/KDE/kdelibs/doc/api/doxygen.sh \&lt;br /&gt;
 --doxdatadir=$KDE_SRC/KDE/kdelibs/doc/common .&lt;br /&gt;
&lt;br /&gt;
== Staying up to date ==&lt;br /&gt;
&lt;br /&gt;
In order to keep the kde4 installation up to date, each of the modules installed should be updated periodically. As Monday is the day for big changes in kdelibs, Tuesday may be the best day to do this. For each module checked out, run &amp;lt;tt&amp;gt;svn up&amp;lt;/tt&amp;gt; and &amp;lt;tt&amp;gt;make&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
For example:&lt;br /&gt;
&amp;lt;code bash&amp;gt;&lt;br /&gt;
cs kdesupport # cs is not a typo&lt;br /&gt;
svn up&lt;br /&gt;
cb # cb is not a typo&lt;br /&gt;
make -j2 VERBOSE=1 &amp;amp;&amp;amp; make install&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== General troubleshooting ==&lt;br /&gt;
&lt;br /&gt;
What can happen over time, after some &amp;lt;tt&amp;gt;svn up&amp;lt;/tt&amp;gt; commands, is that some of the tools used in the KDE build chain change their output format. For example, &amp;lt;tt&amp;gt;kcfg&amp;lt;/tt&amp;gt; files are read by &amp;lt;tt&amp;gt;kconfig_compiler&amp;lt;/tt&amp;gt; to produce configuration dialogs. CMake cannot detect those changes, and the compilation might fail. A workaround is to always force a re-generation of all such files:&lt;br /&gt;
 find $KDE_SRC/KDE/kdebase -name &amp;quot;*.kcfg&amp;quot; | xargs touch&lt;br /&gt;
The same applies to &amp;lt;tt&amp;gt;ui&amp;lt;/tt&amp;gt; files as produced by Qt designer.&lt;br /&gt;
&lt;br /&gt;
== Success! ==&lt;br /&gt;
&lt;br /&gt;
You are now ready to start building other svn modules in the same fashion as you built kdebase, running and testing KDE4 or writing your own patches and applications.&lt;br /&gt;
&lt;br /&gt;
See the [[Getting Started/Set up KDE 4 for development|Set up KDE 4 for development]] tutorial for how to start KDE 4 applications and how to use KDevelop to work on them.&lt;br /&gt;
&lt;br /&gt;
[[Category:Build KDE]]&lt;br /&gt;
[[Category:KDE4]]&lt;/div&gt;</summary>
		<author><name>Logixoul</name></author>	</entry>

	<entry>
		<id>http://techbase.kde.org/Getting_Started/Build/KDE4</id>
		<title>Getting Started/Build/KDE4</title>
		<link rel="alternate" type="text/html" href="http://techbase.kde.org/Getting_Started/Build/KDE4"/>
				<updated>2007-07-04T03:52:48Z</updated>
		
		<summary type="html">&lt;p&gt;Logixoul: /* Kubuntu */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Template:I18n/Language Navigation Bar|Getting_Started/Build/KDE4}}&lt;br /&gt;
&lt;br /&gt;
{{TutorialBrowser|&lt;br /&gt;
&lt;br /&gt;
series=Getting Started|&lt;br /&gt;
&lt;br /&gt;
name=Building KDE4 From Source|&lt;br /&gt;
&lt;br /&gt;
pre=[[../../Sources/Anonymous_SVN|Anonymous SVN Quickstart Guide]]|&lt;br /&gt;
&lt;br /&gt;
next=[[../../Set_up_KDE_4_for_development|Set up KDE 4 for development]]|&lt;br /&gt;
&lt;br /&gt;
reading=[http://kdesvn-build.kde.org/ kdesvn-build: The KDE From Subversion Build Tool]&amp;lt;br&amp;gt;[[../../Increased_Productivity_in_KDE4_with_Scripts|Increased Productivity in KDE4 with Scripts]]&amp;lt;br&amp;gt;[[Development/Tutorials/CMake |Introduction to CMake]]&amp;lt;br&amp;gt;[[../KDE4/FreeBSD|FreeBSD notes]]&amp;lt;br&amp;gt;[[../KDE4/Mac OS X|Instructions for Mac OS X]]|&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== Abstract ==&lt;br /&gt;
&lt;br /&gt;
This tutorial shows one way to get KDE from trunk running on Linux/BSD systems. There are also tutorials for [[/FreeBSD|FreeBSD]], [http://www.kdelibs.com/ Windows], [[/Mac OS X|Mac OS X]] and [http://solaris.kde.org/ Solaris]. Throughout the tutorial the bash shell is used.&lt;br /&gt;
&lt;br /&gt;
{{warning|Expect a higher risk of build failure '''on Mondays''' when most kdelibs changes are committed. [http://developer.kde.org/~dirk/dashboard/ Dashboard] reports unexpected breakages. You are encouraged to fix failing modules.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== Required Software ==&lt;br /&gt;
&lt;br /&gt;
The following must be installed first before you can successfully complete this tutorial:&lt;br /&gt;
* gcc and g++ from the gcc project, preferably version 4.1 or higher&lt;br /&gt;
* svn, the subversion revision control client&lt;br /&gt;
* pkg-config&lt;br /&gt;
* development libraries and headers for X11, OpenGL (mesa-common-dev and libglu1-mesa-dev), libjpeg, libpng, libungif, [http://clucene.sourceforge.net/index.php/Downloads libclucene], [http://download.librdf.org/source/ librdf], libxml2 and libxslt&lt;br /&gt;
* the &amp;lt;tt&amp;gt;makeobj&amp;lt;/tt&amp;gt; script, which is part of kdesdk. You can install it as part of kdesdk (kdesdk-scripts on Debian) or similar package, or just download it itself from [http://websvn.kde.org/*checkout*/trunk/KDE/kdesdk/scripts/makeobj WebSVN]&lt;br /&gt;
* the [http://freedesktop.org/wiki/Software/shared-mime-info shared-mime-info package], which is the freedesktop MIME standard KDE is using now&lt;br /&gt;
* [http://boost.org/ boost], needed by kdebase; after compiling and/or installing boost, in order to make cmake aware about its location (FindBoost),  add boost directory (the one containing include subdirectory) to CMAKE_INCLUDE_PATH or set an environment variable called BOOST_ROOT pointing to boost directory.&lt;br /&gt;
&lt;br /&gt;
=== Kubuntu ===&lt;br /&gt;
&lt;br /&gt;
In Kubuntu 7.04 (Feisty) the build dependencies you need are installed with:&lt;br /&gt;
&amp;lt;code bash&amp;gt;&lt;br /&gt;
sudo aptitude install build-essential cdbs debhelper cmake \&lt;br /&gt;
libxml2-dev libxslt1-dev libbz2-dev libclucene-dev librdf-dev \&lt;br /&gt;
shared-mime-info libgl1-mesa-dev libglu1-mesa-dev mesa-common-dev \&lt;br /&gt;
libxext-dev libjpeg-dev libpng-dev subversion libsm-dev libxinerama-dev \&lt;br /&gt;
libxrender-dev libfontconfig-dev libboost-dev libxcursor-dev doxygen \&lt;br /&gt;
libungif4-dev libdbus-1-dev libgpgme11-dev libssl-dev&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You can skip the manual installation of CMake 2.4.6 and DBus with: &lt;br /&gt;
&amp;lt;code bash&amp;gt;&lt;br /&gt;
sudo aptitude install libdbus-1-dev cmake&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For a fully functional API documentation framework you also need:&lt;br /&gt;
&amp;lt;code bash&amp;gt;&lt;br /&gt;
sudo aptitude install graphviz&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== openSUSE ===&lt;br /&gt;
&lt;br /&gt;
In openSUSE 10.2 and newer, you can install packages using [http://en.opensuse.org/Zypper Zypper]:&lt;br /&gt;
&amp;lt;code bash&amp;gt;&lt;br /&gt;
sudo zypper install &amp;lt;package-name&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In older releases of SUSE, you can use YaST:&lt;br /&gt;
&amp;lt;code bash&amp;gt;&lt;br /&gt;
su&lt;br /&gt;
yast -i &amp;lt;packagename&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Required Packages'''&lt;br /&gt;
&lt;br /&gt;
The packages you will need to install are:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
xorg-x11-devel&lt;br /&gt;
libxml2-devel &lt;br /&gt;
kdesdk3 &lt;br /&gt;
clucene-core-devel &lt;br /&gt;
boost-devel&lt;br /&gt;
libjpeg-devel &lt;br /&gt;
liblrdf-devel &lt;br /&gt;
libpng-devel &lt;br /&gt;
libxslt-devel &lt;br /&gt;
libredland-devel&lt;br /&gt;
Mesa-devel &lt;br /&gt;
giflib-devel &lt;br /&gt;
subversion &lt;br /&gt;
gcc &lt;br /&gt;
gcc-c++&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Optional Packages'''&lt;br /&gt;
&lt;br /&gt;
You can skip the manual installation of Qt 4.3, CMake 2.4.6 and DBus by installing the adding the openSUSE Build Service KDE4 Repository to your installation sources.&lt;br /&gt;
&lt;br /&gt;
For openSUSE 10.2 and newer do:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
sudo zypper service-add http://software.opensuse.org/download/KDE:/KDE4/openSUSE_10.2 KDE4-102&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For older versions of SUSE Linux do:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
su&lt;br /&gt;
installation_sources -a http://software.opensuse.org/download/KDE:/KDE4/[YOUR SUSE LINUX VERSION]&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now install the following packages (and their dependencies):&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
cmake&lt;br /&gt;
dbus-1-devel&lt;br /&gt;
libqt4-devel&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
And for fully functional apidox frame work you also need:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
graphviz&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
CMake binary packages for openSUSE are available from [http://software.opensuse.org/download/devel:/tools:/building/ openSUSE build service].&lt;br /&gt;
&lt;br /&gt;
=== Gentoo ===&lt;br /&gt;
&lt;br /&gt;
You can use most stable ebuilds just remember to sync your portage before you begin.&lt;br /&gt;
&lt;br /&gt;
We need to be unmasked and/or kept at a lower version to continue.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code bash&amp;gt;&lt;br /&gt;
# echo 'x11-libs/qt' &amp;gt;&amp;gt; /etc/portage/package.keywords&lt;br /&gt;
# echo 'dev-util/cmake' &amp;gt;&amp;gt; /etc/portage/package.keywords&lt;br /&gt;
# echo 'dev-cpp/clucene' &amp;gt;&amp;gt; /etc/portage/package.keywords&lt;br /&gt;
# echo '&amp;gt;dev-cpp/clucene-0.9.16a' &amp;gt;&amp;gt; /etc/portage/package.mask&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
These are the packages you will need to install, some may already be installed so you may skip those by adding the update flag to emerge.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code bash&amp;gt;&lt;br /&gt;
$ emerge -avu ebuild/name&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 sys-devel/gcc&lt;br /&gt;
 dev-util/subversion&lt;br /&gt;
 dev-util/pkgconfig&lt;br /&gt;
 x11-base/xorg-x11&lt;br /&gt;
 media-libs/glut&lt;br /&gt;
 media-libs/mesa&lt;br /&gt;
 media-libs/jpeg&lt;br /&gt;
 media-libs/libpng&lt;br /&gt;
 media-libs/giflib&lt;br /&gt;
 dev-cpp/clucene&lt;br /&gt;
 dev-util/cppunit&lt;br /&gt;
 media-libs/liblrdf&lt;br /&gt;
 dev-libs/libxml2&lt;br /&gt;
 dev-libs/libxslt&lt;br /&gt;
 x11-misc/shared-mime-info&lt;br /&gt;
 kde-base/kdesdk-scripts&lt;br /&gt;
 dev-libs/boost&lt;br /&gt;
 x11-libs/qt&lt;br /&gt;
 dev-util/cmake&lt;br /&gt;
 sys-apps/dbus&lt;br /&gt;
 dev-libs/redland&lt;br /&gt;
&lt;br /&gt;
Provided you have emerged these ebuilds, you can skip compiling them by hand and proceed to [[Getting_Started/Build/KDE4#kdesupport|kdesupport section]].&lt;br /&gt;
&lt;br /&gt;
Good luck!&lt;br /&gt;
&lt;br /&gt;
== Create a user account for KDE4 development ==&lt;br /&gt;
&lt;br /&gt;
{{Note|&lt;br /&gt;
Some people like to have a separate user account for KDE 4 (for instance an old bug deleted files by mistake), and the instructions below were written with that approach.&lt;br /&gt;
&lt;br /&gt;
However it is much more efficient to do everything with a single user account, see [[Getting_Started/Increased_Productivity_in_KDE4_with_Scripts|Increased Productivity in KDE4 with Scripts]]&lt;br /&gt;
for more details. &lt;br /&gt;
&lt;br /&gt;
You can still follow the instructions below, but don't put the environment variables in your &amp;lt;tt&amp;gt;.bashrc&amp;lt;/tt&amp;gt;, put them in a separate file that you source to switch to the KDE 4 environment.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
=== Option 1: Command Line ===&lt;br /&gt;
&amp;lt;code bash&amp;gt;&lt;br /&gt;
useradd -m kde-devel&lt;br /&gt;
passwd kde-devel&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Option 2: Using KControl ===&lt;br /&gt;
&lt;br /&gt;
Instead of using the commands above, you can also use the User module in the KDE Control Center if you already have KDE3 installed.&lt;br /&gt;
&lt;br /&gt;
=== Setting up the environment ===&lt;br /&gt;
&lt;br /&gt;
Copy the {{path|~/.bashrc}} from your normal user account to the new kde-devel account. Next, copy and paste the contents of the [[Getting Started/Increased Productivity in KDE4 with Scripts/.bashrc|example .bashrc]] into {{path|~kde-devel/.bashrc}}. Be sure to comment out the line &amp;lt;tt&amp;gt;alias make=makeobj&amp;lt;/tt&amp;gt; if you do not have the &amp;lt;tt&amp;gt;[[Getting Started/Build/KDE4#Required Software|makeobj]]&amp;lt;/tt&amp;gt; command available. You will probably also want to modify the path to make sure it doesn't include your kde3 paths. To make it run, you have to open a new bash or to execute &lt;br /&gt;
&amp;lt;code bash&amp;gt;&lt;br /&gt;
source ~/.bashrc&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This will provide access to commands such as &amp;lt;tt&amp;gt;cmakekde&amp;lt;/tt&amp;gt; that are used in this tutorial as well as ensure that the proper paths are in place for Qt, KDE and CMake binaries.&lt;br /&gt;
&lt;br /&gt;
For more information, please read the [[Getting Started/Increased Productivity in KDE4 with Scripts]] tutorial.&lt;br /&gt;
&lt;br /&gt;
=== Switching to the New User ===&lt;br /&gt;
Switch to the user kde-devel: (don't forget the dash)&lt;br /&gt;
&amp;lt;code bash&amp;gt;&lt;br /&gt;
su - kde-devel&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The rest of this tutorial assumes you are running as the &amp;lt;tt&amp;gt;kde-devel&amp;lt;/tt&amp;gt; user.&lt;br /&gt;
&lt;br /&gt;
== The development user's shell ==&lt;br /&gt;
&lt;br /&gt;
On some systems a new user is configured by default to use {{path|/bin/sh}}. If this is not the case on your system, you can skip this section. Using {{path|/bin/sh}} can be very inconvenient to work with and you may want to change it to {{path|/bin/bash}} or another shell.&lt;br /&gt;
&lt;br /&gt;
=== Option 1: As the kde-devel user ===&lt;br /&gt;
&lt;br /&gt;
If you don't have root privileges and your system supports the changing of your own shell with the &amp;lt;tt&amp;gt;chsh&amp;lt;/tt&amp;gt; application, then you could try to change your shell to {{path|/bin/bash}} by using:&lt;br /&gt;
&amp;lt;code bash&amp;gt;&lt;br /&gt;
chsh -s /bin/bash kde-devel&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Option 2: As the root user ===&lt;br /&gt;
&lt;br /&gt;
If your system comes with the &amp;lt;tt&amp;gt;usermod&amp;lt;/tt&amp;gt; application you can run the following command as root: &amp;lt;tt&amp;gt;usermod -s /bin/bash&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Another option is to use the &amp;lt;tt&amp;gt;vipw&amp;lt;/tt&amp;gt; application as root to safely edit your {{path|/etc/passwd}}. Locate 'kde-devel' in the the file. Change '{{path|/bin/sh}}' at the end of the line to read '{{path|/bin/bash}}', save your changes and exit.&lt;br /&gt;
&lt;br /&gt;
The new shell will be started automatically when you log in as the kde-devel user again.&lt;br /&gt;
&lt;br /&gt;
== D-Bus ==&lt;br /&gt;
QtDBus and KDE are known to work with D-Bus versions 0.62, as well as 0.92 and upwards. Versions 0.60 and 0.61 may work too but are not tested. Versions 0.90 and 0.91 are known not to work. We recommend using post-1.0 release versions (at least 0.94), so consider upgrading if you haven't done so.&lt;br /&gt;
&lt;br /&gt;
You may skip this section if you have a recent D-Bus version or if you don't want to upgrade.&lt;br /&gt;
&lt;br /&gt;
Before running these steps in the recipe, make sure your X11 headers and libraries are available. The configure script run on line 5 of the following instructions should output:&lt;br /&gt;
 Building X11 code:        yes&lt;br /&gt;
&lt;br /&gt;
=== The Recipe ===&lt;br /&gt;
&lt;br /&gt;
{{tip|Make sure you did set up your environment correctly as described [[Getting_Started/Build/KDE4#Setting_up_the_environment|above]]. This is necessary for the &amp;lt;tt&amp;gt;cs&amp;lt;/tt&amp;gt; and &amp;lt;tt&amp;gt;cb&amp;lt;/tt&amp;gt; functions to work.}}&lt;br /&gt;
&lt;br /&gt;
 cs # [[Getting_Started/Increased_Productivity_in_KDE4_with_Scripts/.bashrc|'cs' is a bash function, click here to learn more]] &lt;br /&gt;
 wget http://dbus.freedesktop.org/releases/dbus/dbus-1.0.2.tar.gz&lt;br /&gt;
 tar -xvzf dbus-1.0.2.tar.gz&lt;br /&gt;
 cd dbus-1.0.2/&lt;br /&gt;
 ./configure --prefix=$DBUSDIR --localstatedir=/var&lt;br /&gt;
 make&lt;br /&gt;
 sudo make install&lt;br /&gt;
 sudo dbus-uuidgen --ensure&lt;br /&gt;
&lt;br /&gt;
=== What's Happening === &lt;br /&gt;
After changing into the source directory (line 1), D-Bus source code is downloaded from freedesktop.org (line 2) and unpacked (line 3). After going into the newly created D-Bus directory (line 4), the build is set up using the supplied {{path|configure}} script (line 5). After building (line 6) and installing (line 7) D-Bus, we use the &amp;lt;tt&amp;gt;dbus-uuidgen&amp;lt;/tt&amp;gt; tool to install a machine identification file that allows the bus to start automatically when the desktop session starts (line 8).&lt;br /&gt;
&lt;br /&gt;
Note that you need write access to {{path|/var}} for the last two steps. If your system does not have the sudo command, you can use the &amp;lt;tt&amp;gt;su&amp;lt;/tt&amp;gt; command instead, e.g. &amp;lt;tt&amp;gt;su -c &amp;quot;make install&amp;quot;&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== CMake ==&lt;br /&gt;
Skip this if you have [http://cmake.org/ CMake] &amp;gt;=2.4.5 installed. &lt;br /&gt;
You should be able to directly use the binary packages available on the [http://www.cmake.org/HTML/Download.html CMake site]. There are also distribution specific packages available.&lt;br /&gt;
&lt;br /&gt;
=== The Recipe ===&lt;br /&gt;
&amp;lt;!--'cs' and 'cb' are NOT typos!--&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 cs # [[Getting_Started/Increased_Productivity_in_KDE4_with_Scripts/.bashrc|'cs' is a bash function, click Here to learn more]] &lt;br /&gt;
 wget http://www.cmake.org/files/v2.4/cmake-2.4.6.tar.gz&lt;br /&gt;
 tar -zxf cmake-2.4.6.tar.gz&lt;br /&gt;
 mkdir cmake-build&lt;br /&gt;
 cd cmake-build &lt;br /&gt;
 ../cmake-2.4.6/bootstrap&lt;br /&gt;
 make&lt;br /&gt;
 sudo make install&lt;br /&gt;
&lt;br /&gt;
=== What's Happening ===&lt;br /&gt;
First, we go back to the &amp;lt;tt&amp;gt;kde-devel&amp;lt;/tt&amp;gt; user's source directory (line 1), get the CMake sources (line 2) and unpack them (line 3). We create a directory to build CMake in (line 4) and go into it (line 5). We then run the CMake bootstrap script to set up the CMake build (line 6), then make (line 7) and install it (line 8) using the root user.&lt;br /&gt;
&lt;br /&gt;
If your system does not have the &amp;lt;tt&amp;gt;sudo&amp;lt;/tt&amp;gt; command, you can instead do &amp;lt;tt&amp;gt;su -c &amp;quot;make install&amp;quot;&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Qt ==&lt;br /&gt;
Next we need to get the Qt4 that is in KDE's source repository. KDE is guaranteed to build against any Qt 4.3. Qt 4.2 and earlier are not supported and will not work. You should use the copy in the KDE Subversion servers.&lt;br /&gt;
&lt;br /&gt;
=== The Recipe ===&lt;br /&gt;
 cd&lt;br /&gt;
 svn checkout svn://anonsvn.kde.org/home/kde/trunk/qt-copy&lt;br /&gt;
 cd qt-copy&lt;br /&gt;
 ./apply_patches&lt;br /&gt;
 ./configure -qt-gif -no-exceptions -debug -fast \&lt;br /&gt;
  -prefix $QTDIR -qdbus -pch -openssl -nomake examples \&lt;br /&gt;
  -nomake demos&lt;br /&gt;
 make -j2&lt;br /&gt;
&lt;br /&gt;
 # do copy files if the target doesnt match current dir,&lt;br /&gt;
 # clear obj files to save disk space otherwise&lt;br /&gt;
 if [ $QTDIR = `pwd` ]; then \&lt;br /&gt;
 find . -name '*.o' -exec rm {} \; ; \&lt;br /&gt;
 else make install; fi;&lt;br /&gt;
&lt;br /&gt;
=== What's Happening ===&lt;br /&gt;
We switch back to the &amp;lt;tt&amp;gt;kde-devel&amp;lt;/tt&amp;gt; user's home directory (line 1) and download the source code using subversion (svn) from KDE's repository (line 2). After changing into the resulting {{path|qt-copy}} directory (line 3), we run a script that manages the patches that come with &amp;lt;tt&amp;gt;qt-copy&amp;lt;/tt&amp;gt; (line 4). &lt;br /&gt;
&lt;br /&gt;
Once the patches have been applied, we then set up the build using the &amp;lt;tt&amp;gt;configure&amp;lt;/tt&amp;gt; script (line 5-7). The various command line options used are explained in the {{path|qt-copy/README.qt-copy}} file. Finally, we build the minimal requirements for KDE (line 8) and install (line 9-10) Qt. If you want all the example and demo applications, you can either build them individually or simply do a &amp;lt;tt&amp;gt;make&amp;lt;/tt&amp;gt; from the {{path|qt-copy}} directory. &lt;br /&gt;
&lt;br /&gt;
Note that the installation does not require root as it installs Qt locally into {{path|$QTDIR}}. Anyway, installation is only needed if {{path|$QTDIR}} differs from {{path|$HOME/qt-copy}}, which is not the case if you have exactly followed the instructions.&lt;br /&gt;
&lt;br /&gt;
=== Troubleshooting ===&lt;br /&gt;
If you get &amp;quot;error: X11/Xlib.h: No such file or directory&amp;quot;, install the devel package of &amp;lt;tt&amp;gt;xorg&amp;lt;/tt&amp;gt; (the actual name may vary between operating systems, for example it is &amp;lt;tt&amp;gt;xorg-dev&amp;lt;/tt&amp;gt; on Ubuntu based systems such as Kubuntu). &lt;br /&gt;
&lt;br /&gt;
If you get an error in the configure step about missing defines, check the value of &amp;lt;tt&amp;gt;$QMAKESPEC&amp;lt;/tt&amp;gt;.  Some distributions set this to point directly to the system-installed Qt.  If &amp;lt;tt&amp;gt;unset QMAKESPEC&amp;lt;/tt&amp;gt; solves the problem, you probably want to add it to the &amp;lt;tt&amp;gt;~/.bashrc&amp;lt;/tt&amp;gt; script.&lt;br /&gt;
&lt;br /&gt;
If you get an error &amp;quot;.pch/debug-shared/QtCore&amp;quot;, this is because Qt-4.3 enables precompiled headers if your gcc supports it, but for some reason it doesn't work for you. If you use distcc, configure qt with -no-pch. If you use icecream, update to the latest icecream from svn trunk.&lt;br /&gt;
&lt;br /&gt;
Try running any Qt program, like {{program|assistant}}. '''Note:''' You may need to run &amp;lt;tt&amp;gt;xhost +local:kde-devel&amp;lt;/tt&amp;gt; as your regular kde3 user to run this application.  If it crashes in QSpanData::adjustSpanMethods, then your problem is the oxygen style. Try removing {{path|lib/kde4/plugins/styles/kstyle-oxygen.so}} and {{path|lib/kde4/plugins/styles/oxygen.so}} if they exist in the KDE install prefix.&lt;br /&gt;
&lt;br /&gt;
== kdesupport ==&lt;br /&gt;
&lt;br /&gt;
{{warning|If you have jumped to this section without reading [[Getting_Started/Build/KDE4#Setting_up_the_environment|Setting Up The Environment]], '''the recipes provided will not work'''. &lt;br /&gt;
&lt;br /&gt;
The recipes are not in error; &amp;lt;tt&amp;gt;cs&amp;lt;/tt&amp;gt; and &amp;lt;tt&amp;gt;cb&amp;lt;/tt&amp;gt; are not typos. Your environment '''needs''' to be set up correctly for these instructions to work for you.}}&lt;br /&gt;
&lt;br /&gt;
There are several libraries that KDE applications rely on in the kdesupport module. This includes Strigi and Soprano for file metadata and search, eigen for visual effects in applications such as Kalzium, taglib for music players and qca for some cryptographic needs. &lt;br /&gt;
&lt;br /&gt;
Strigi itself has a few dependencies as well: you will need the libraries and headers for libz, libbz2, openssl (libcrypto or libssl), libclucene (=0.9.16; version 0.9.17 does '''not''' work), and either libxml2 or libexpat.&lt;br /&gt;
&lt;br /&gt;
=== The Recipe ===&lt;br /&gt;
&amp;lt;!--'cs' and 'cb' are NOT typos!--&amp;gt;&lt;br /&gt;
 cs # [[Getting_Started/Increased_Productivity_in_KDE4_with_Scripts/.bashrc|cs is not a typo]]&lt;br /&gt;
 svn checkout svn://anonsvn.kde.org/home/kde/trunk/kdesupport/&lt;br /&gt;
 cd kdesupport&lt;br /&gt;
 cmakekde&lt;br /&gt;
&lt;br /&gt;
=== What's Happening ===&lt;br /&gt;
We change to the base source directory (line 1). We download the sources in kdesupport using subversion (line 2), go into the new {{path|~/src/kdesupport}} directory (line 3), and commence the build (line 4). This will leave us in the kdesupport build directory after the build is completed.&lt;br /&gt;
&lt;br /&gt;
=== Troubleshooting ===&lt;br /&gt;
If you get &lt;br /&gt;
 CMake Error: This project requires some variables to be set,&lt;br /&gt;
 and cmake can not find them.&lt;br /&gt;
 Please set the following variables:&lt;br /&gt;
 LIBXML2_INCLUDE_DIR (ADVANCED)&lt;br /&gt;
you should install the development package for libxml2.&lt;br /&gt;
&lt;br /&gt;
If you get &lt;br /&gt;
 CMake Error: Could NOT find REDLAND&lt;br /&gt;
then you need librdf from the Redland.&lt;br /&gt;
If your distribution does not provide the librdf package, you can download the source there: [http://download.librdf.org/source/ http://download.librdf.org/source/] and build it.&lt;br /&gt;
(Gentoo users: The ebuild for librdf is named dev-libs/redland)&lt;br /&gt;
&lt;br /&gt;
If you get&lt;br /&gt;
 Fetching external item into 'kdesupport/admin'&lt;br /&gt;
 Error validating server certificate for 'https://...'&lt;br /&gt;
see [http://techbase.kde.org/Getting_Started/Sources/Using_Subversion_with_KDE Using Subversion with KDE]&lt;br /&gt;
&lt;br /&gt;
If you get&lt;br /&gt;
 FILE cannot create directory: /usr/lib[64]/qt4/plugins/crypto. Maybe need administrative privileges.&lt;br /&gt;
 - - -&lt;br /&gt;
 make: *** [install] Error 255&lt;br /&gt;
take a second look in the .bashrc file described above, are paths correct?&lt;br /&gt;
&lt;br /&gt;
== kdelibs ==&lt;br /&gt;
&lt;br /&gt;
With Qt4, Strigi, and Soprano built, we can now move on to building KDE's base libraries. If you use the aforementioned [[Getting Started/Increased Productivity in KDE4 with Scripts/.bashrc|.bashrc]] this is where those new functions come in handy. &lt;br /&gt;
&lt;br /&gt;
=== The Recipe ===&lt;br /&gt;
&amp;lt;!--'cs' and 'cb' are NOT typos!--&amp;gt;&lt;br /&gt;
 cs # bash function&lt;br /&gt;
 mkdir KDE &amp;amp;&amp;amp; cd KDE&lt;br /&gt;
 svn checkout svn://anonsvn.kde.org/home/kde/trunk/KDE/kdelibs&lt;br /&gt;
 cd kdelibs&lt;br /&gt;
 cmakekde&lt;br /&gt;
&lt;br /&gt;
=== What's Happening ===&lt;br /&gt;
We change to the base source directory (line 1) then make and go into the KDE directory (line 2). We download the sources for kdelibs using subversion (line 3), go into the new {{path|~/src/KDE/kdelibs}} directory (line 4), and commence the build (line 5). This will leave us in the &amp;lt;tt&amp;gt;kdelibs&amp;lt;/tt&amp;gt; build directory after the build is completed.&lt;br /&gt;
&lt;br /&gt;
{{tip|There might be missing dependencies on your system! They are easily overlooked in the output of &amp;lt;tt&amp;gt;cmakekde&amp;lt;/tt&amp;gt;.&lt;br /&gt;
You might want to do a &amp;lt;tt&amp;gt;cmake $KDE_SRC/KDE/MODULE_NAME&amp;lt;/tt&amp;gt; prior to compiling any kde modules (like kdelibs, kdepimlibs etc.)}}&lt;br /&gt;
&lt;br /&gt;
=== Additional KDE-specific CMake modules ===&lt;br /&gt;
There are additional CMake modules in {{path|kdelibs/cmake/modules/}} that are necessary for building KDE4 applications. These will be installed for you when  kdelibs itself is installed.&lt;br /&gt;
&lt;br /&gt;
=== Troubleshooting ===&lt;br /&gt;
If you have problems compiling kdelibs, first make sure the software in the [[Getting_Started/Build/KDE4#Required_Software|Required Software]] section above is installed and works. Other possible hints include:&lt;br /&gt;
* If the &amp;lt;tt&amp;gt;cmakekde&amp;lt;/tt&amp;gt; command fails stating that CMake requires an out of source build directory, remove {{path|~/src/KDE/kdelibs/CMakeCache.txt}}, and try again.&lt;br /&gt;
&lt;br /&gt;
If &amp;lt;tt&amp;gt;cmakekde&amp;lt;/tt&amp;gt; still gives the same error then try this &lt;br /&gt;
 cd&lt;br /&gt;
 cmake -DCMAKE_INSTALL_PREFIX=$KDEDIR \&lt;br /&gt;
 -DCMAKE_BUILD_TYPE=debugfull \&lt;br /&gt;
 -DKDE4_BUILD_TESTS=ON \&lt;br /&gt;
 ~/src/KDE/kdelibs&lt;br /&gt;
 make&lt;br /&gt;
 make install&lt;br /&gt;
* If you received an error stating &amp;quot;Please create a separate build directory and run 'cmake path_to_kdelibs [options]' there.&amp;quot;, then you need to change to your build directory before running cmakekde. (e.g &amp;lt;tt&amp;gt;cs KDE/kdelibs &amp;amp;&amp;amp; cb &amp;amp;&amp;amp; cmakekde&amp;lt;/tt&amp;gt;) If the message stays, run 'svn status' in the kdelibs directory and remove all files labeled with '?'.&lt;br /&gt;
* If Qt wasn't found or the wrong version of Qt was found, make sure that the qmake from the Qt you need is the first qmake in the path.&lt;br /&gt;
* If the problems persist, try the CMake make-option &amp;lt;tt&amp;gt;--keep-going&amp;lt;/tt&amp;gt;.&lt;br /&gt;
* Here you need the libungif library, otherwise you will get an error message like &amp;quot;&amp;lt;tt&amp;gt;Could NOT find GIF&amp;lt;/tt&amp;gt;&amp;quot;.&lt;br /&gt;
* Qt-4.3 upgrade: if you get a link error in kjsembed talking about QScriptEngine, edit CMakeCache.txt in kdelibs and remove the lines that talk about QT_QTUITOOLS_LIBRARY, then type make again (that static library has a new dependency, and the cmake code that adds it needs to run).&lt;br /&gt;
* if you get &amp;lt;code&amp;gt;CMake Error: KDE Requires Qt to be built with SSL support&lt;br /&gt;
&amp;lt;/code&amp;gt;, install openssl-devel, and re-compile QT.&lt;br /&gt;
* if you get &amp;lt;code&amp;gt;kdelibs/kimgio/ico.cpp:188: undefined reference to `QImage::jumpTable()'&amp;lt;/code&amp;gt; it means you compiled QT without QT3 support(no, linking to a true QT3 install won't work)&lt;br /&gt;
&lt;br /&gt;
== kdepimlibs ==&lt;br /&gt;
After &amp;lt;tt&amp;gt;kdelibs&amp;lt;/tt&amp;gt;, but before ''kdebase'', you need to build and install ''kdepimlibs''.&lt;br /&gt;
&lt;br /&gt;
=== The Recipe ===&lt;br /&gt;
&amp;lt;!--'cs' and 'cb' are NOT typos!--&amp;gt;&lt;br /&gt;
 cs KDE # [[Getting_Started/Increased_Productivity_in_KDE4_with_Scripts/.bashrc|cs is not a typo]]&lt;br /&gt;
 svn checkout svn://anonsvn.kde.org/home/kde/trunk/KDE/kdepimlibs&lt;br /&gt;
 cd kdepimlibs&lt;br /&gt;
 cmakekde&lt;br /&gt;
&lt;br /&gt;
=== What's Happening ===&lt;br /&gt;
We go into the KDE source directory (line 1), download the source code for kdepimlibs using subversion (line 2) and then go into the new {{path|~/src/KDE/kdepimlibs}} directory (line 3). We then commence the build (line 4). This will leave us in the &amp;lt;tt&amp;gt;kdepimlibs&amp;lt;/tt&amp;gt; build directory after the build is completed.&lt;br /&gt;
&lt;br /&gt;
=== Troubleshooting ===&lt;br /&gt;
If you have trouble compiling kdepimlibs:&lt;br /&gt;
* the cmakekde command may require a later version of the gpgme library.  This is available from the project's web site: http://www.gnupg.org/(en)/download/index.html - please note that the build of gpgme also requires libgpg-error, also available from the same location.  Both libraries are installed by the &amp;quot;./configure&amp;quot;, &amp;quot;make&amp;quot; and &amp;quot;sudo make install&amp;quot; sequence, with the gpgme library configured with the additional &amp;quot;--with-gpg-error-prefix&amp;quot; parameter.  You may need to overwrite your existing &amp;quot;/usr/bin/gpgme-config&amp;quot; file with the newer version for the kdepimlibs to pick up the new install.&lt;br /&gt;
&lt;br /&gt;
== kdebase ==&lt;br /&gt;
You may need kdebase for some kioslaves.&lt;br /&gt;
&amp;lt;!--'cs' and 'cb' are NOT typos!--&amp;gt;&lt;br /&gt;
 cs KDE # [[Getting_Started/Increased_Productivity_in_KDE4_with_Scripts/.bashrc|cs is not a typo]]&lt;br /&gt;
 svn checkout svn://anonsvn.kde.org/home/kde/trunk/KDE/kdebase&lt;br /&gt;
 cd kdebase&lt;br /&gt;
 cmakekde&lt;br /&gt;
&lt;br /&gt;
=== Troubleshooting ===&lt;br /&gt;
If you have troubles compiling kdebase:&lt;br /&gt;
* Make sure you have the &amp;lt;tt&amp;gt;libxss headers&amp;lt;/tt&amp;gt; installed. (Usually you got undefined references on xscreensaver objects if you do not have those headers)&lt;br /&gt;
* &amp;lt;tt&amp;gt;which meinproc&amp;lt;/tt&amp;gt; has to deliver {{path|/home/kde-devel/kde/bin/meinproc}}&lt;br /&gt;
* if cmakekde can not find the path of kdepimlibs, edit the file {{path|$KDE_BUILD/KDE/kdebase/CMakeCache.txt}} and manually set &amp;lt;tt&amp;gt;KDEPIMLIBS_INCLUDE_DIR:PATH=$KDE_BUILD/kdepimlibs&amp;lt;/tt&amp;gt;&lt;br /&gt;
* if you get an error saying &amp;quot;Please set the following variables: X11_XTest_LIB (ADVANCED)&amp;quot;, install the devel package of &amp;lt;tt&amp;gt;Xtst&amp;lt;/tt&amp;gt;. On some systems, this is packaged separately from &amp;lt;tt&amp;gt;xext&amp;lt;/tt&amp;gt; and called &amp;lt;tt&amp;gt;x11proto-xext-dev&amp;lt;/tt&amp;gt; or &amp;lt;tt&amp;gt;libxtst-dev&amp;lt;/tt&amp;gt;. You may also need to remove the CMakeCache.txt file in the build dir after installing the package.&lt;br /&gt;
* the same for &amp;quot;X11_Xinerama_LIB (ADVANCED)&amp;quot; where you will need the devel package for &amp;lt;tt&amp;gt;xinerama&amp;lt;/tt&amp;gt;.&lt;br /&gt;
* if you get an error complaining about a missing variable X11_Xrandr_LIB, you need the devel package for libxrandr (libxrandr-devel on ubuntu-systems)&lt;br /&gt;
* if you get the error &amp;quot;Please set the following variables: FONTCONFIG_INCLUDE_DIR, FONTCONFIG_LIBRARIES (ADVANCED)&amp;quot;, then you need to install  the libfontconfig headers&lt;br /&gt;
* if you get the error &amp;quot;CMake Error: This project requires some variables to be set, and cmake can not find them. Please set the following variables: KMETADATA_LIBRARIES&amp;quot;, you need to install soprano from kdesupport and to rebuild kdelibs&lt;br /&gt;
* if you get the error &amp;quot;‘XserverRegion’ does not name a type&amp;quot; make sure you have libxcomposite headers installed (&amp;lt;tt&amp;gt;libxcomposite-dev&amp;lt;/tt&amp;gt; in ubuntu)&lt;br /&gt;
&lt;br /&gt;
== Generating local API documentation ==&lt;br /&gt;
Although the API documentation for KDE is available online at [http://api.kde.org api.kde.org], it is sometimes useful to have it on your own disk, for example when you want to use [[Getting_Started/Set_up_KDE_4_for_development#KDevelop|KDevelop]] for browsing the documentation or when you are not able to be online all the time.&lt;br /&gt;
&lt;br /&gt;
Be aware that generating the API documentation can take several hours and takes almost half a gigabyte of diskspace.&lt;br /&gt;
The generation is handled by a script in {{path|kdelibs/doc/api}}, you need &amp;lt;tt&amp;gt;doxygen&amp;lt;/tt&amp;gt; to be able to run it. &lt;br /&gt;
&lt;br /&gt;
To build the API documentation for kdelibs, type the following:&lt;br /&gt;
&amp;lt;!--'cs' and 'cb' are NOT typos!--&amp;gt;&lt;br /&gt;
 cs KDE/kdelibs # [[Getting_Started/Increased_Productivity_in_KDE4_with_Scripts/.bashrc|cs is not a typo]]&lt;br /&gt;
 $KDE_SRC/KDE/kdelibs/doc/api/doxygen.sh \&lt;br /&gt;
 --doxdatadir=$KDE_SRC/KDE/kdelibs/doc/common .&lt;br /&gt;
&lt;br /&gt;
Repeat for other modules as desired.&amp;lt;br&amp;gt;&lt;br /&gt;
 cd &amp;lt;module home&amp;gt;&lt;br /&gt;
 $KDE_SRC/KDE/kdelibs/doc/api/doxygen.sh \&lt;br /&gt;
 --doxdatadir=$KDE_SRC/KDE/kdelibs/doc/common .&lt;br /&gt;
&lt;br /&gt;
== Staying up to date ==&lt;br /&gt;
&lt;br /&gt;
In order to keep the kde4 installation up to date, each of the modules installed should be updated periodically. As Monday is the day for big changes in kdelibs, Tuesday may be the best day to do this. For each module checked out, run &amp;lt;tt&amp;gt;svn up&amp;lt;/tt&amp;gt; and &amp;lt;tt&amp;gt;make&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
For example:&lt;br /&gt;
&amp;lt;code bash&amp;gt;&lt;br /&gt;
cs kdesupport # cs is not a typo&lt;br /&gt;
svn up&lt;br /&gt;
cb # cb is not a typo&lt;br /&gt;
make -j2 VERBOSE=1 &amp;amp;&amp;amp; make install&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== General troubleshooting ==&lt;br /&gt;
&lt;br /&gt;
What can happen over time, after some &amp;lt;tt&amp;gt;svn up&amp;lt;/tt&amp;gt; commands, is that some of the tools used in the KDE build chain change their output format. For example, &amp;lt;tt&amp;gt;kcfg&amp;lt;/tt&amp;gt; files are read by &amp;lt;tt&amp;gt;kconfig_compiler&amp;lt;/tt&amp;gt; to produce configuration dialogs. CMake cannot detect those changes, and the compilation might fail. A workaround is to always force a re-generation of all such files:&lt;br /&gt;
 find $KDE_SRC/KDE/kdebase -name &amp;quot;*.kcfg&amp;quot; | xargs touch&lt;br /&gt;
The same applies to &amp;lt;tt&amp;gt;ui&amp;lt;/tt&amp;gt; files as produced by Qt designer.&lt;br /&gt;
&lt;br /&gt;
== Success! ==&lt;br /&gt;
&lt;br /&gt;
You are now ready to start building other svn modules in the same fashion as you built kdebase, running and testing KDE4 or writing your own patches and applications.&lt;br /&gt;
&lt;br /&gt;
See the [[Getting Started/Set up KDE 4 for development|Set up KDE 4 for development]] tutorial for how to start KDE 4 applications and how to use KDevelop to work on them.&lt;br /&gt;
&lt;br /&gt;
[[Category:Build KDE]]&lt;br /&gt;
[[Category:KDE4]]&lt;/div&gt;</summary>
		<author><name>Logixoul</name></author>	</entry>

	<entry>
		<id>http://techbase.kde.org/Getting_Started/Build/KDE4</id>
		<title>Getting Started/Build/KDE4</title>
		<link rel="alternate" type="text/html" href="http://techbase.kde.org/Getting_Started/Build/KDE4"/>
				<updated>2007-07-04T03:47:17Z</updated>
		
		<summary type="html">&lt;p&gt;Logixoul: /* TroubleShooting */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Template:I18n/Language Navigation Bar|Getting_Started/Build/KDE4}}&lt;br /&gt;
&lt;br /&gt;
{{TutorialBrowser|&lt;br /&gt;
&lt;br /&gt;
series=Getting Started|&lt;br /&gt;
&lt;br /&gt;
name=Building KDE4 From Source|&lt;br /&gt;
&lt;br /&gt;
pre=[[../../Sources/Anonymous_SVN|Anonymous SVN Quickstart Guide]]|&lt;br /&gt;
&lt;br /&gt;
next=[[../../Set_up_KDE_4_for_development|Set up KDE 4 for development]]|&lt;br /&gt;
&lt;br /&gt;
reading=[http://kdesvn-build.kde.org/ kdesvn-build: The KDE From Subversion Build Tool]&amp;lt;br&amp;gt;[[../../Increased_Productivity_in_KDE4_with_Scripts|Increased Productivity in KDE4 with Scripts]]&amp;lt;br&amp;gt;[[Development/Tutorials/CMake |Introduction to CMake]]&amp;lt;br&amp;gt;[[../KDE4/FreeBSD|FreeBSD notes]]&amp;lt;br&amp;gt;[[../KDE4/Mac OS X|Instructions for Mac OS X]]|&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== Abstract ==&lt;br /&gt;
&lt;br /&gt;
This tutorial shows one way to get KDE from trunk running on Linux/BSD systems. There are also tutorials for [[/FreeBSD|FreeBSD]], [http://www.kdelibs.com/ Windows], [[/Mac OS X|Mac OS X]] and [http://solaris.kde.org/ Solaris]. Throughout the tutorial the bash shell is used.&lt;br /&gt;
&lt;br /&gt;
{{warning|Expect a higher risk of build failure '''on Mondays''' when most kdelibs changes are committed. [http://developer.kde.org/~dirk/dashboard/ Dashboard] reports unexpected breakages. You are encouraged to fix failing modules.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== Required Software ==&lt;br /&gt;
&lt;br /&gt;
The following must be installed first before you can successfully complete this tutorial:&lt;br /&gt;
* gcc and g++ from the gcc project, preferably version 4.1 or higher&lt;br /&gt;
* svn, the subversion revision control client&lt;br /&gt;
* pkg-config&lt;br /&gt;
* development libraries and headers for X11, OpenGL (mesa-common-dev and libglu1-mesa-dev), libjpeg, libpng, libungif, [http://clucene.sourceforge.net/index.php/Downloads libclucene], [http://download.librdf.org/source/ librdf], libxml2 and libxslt&lt;br /&gt;
* the &amp;lt;tt&amp;gt;makeobj&amp;lt;/tt&amp;gt; script, which is part of kdesdk. You can install it as part of kdesdk (kdesdk-scripts on Debian) or similar package, or just download it itself from [http://websvn.kde.org/*checkout*/trunk/KDE/kdesdk/scripts/makeobj WebSVN]&lt;br /&gt;
* the [http://freedesktop.org/wiki/Software/shared-mime-info shared-mime-info package], which is the freedesktop MIME standard KDE is using now&lt;br /&gt;
* [http://boost.org/ boost], needed by kdebase; after compiling and/or installing boost, in order to make cmake aware about its location (FindBoost),  add boost directory (the one containing include subdirectory) to CMAKE_INCLUDE_PATH or set an environment variable called BOOST_ROOT pointing to boost directory.&lt;br /&gt;
&lt;br /&gt;
=== Kubuntu ===&lt;br /&gt;
&lt;br /&gt;
In Kubuntu 7.04 (Feisty) the build dependencies you need are installed with:&lt;br /&gt;
&amp;lt;code bash&amp;gt;&lt;br /&gt;
sudo aptitude install build-essential cdbs debhelper cmake \&lt;br /&gt;
libxml2-dev libxslt1-dev libbz2-dev libclucene-dev librdf-dev \&lt;br /&gt;
shared-mime-info libgl1-mesa-dev libglu1-mesa-dev mesa-common-dev \&lt;br /&gt;
libxext-dev libjpeg-dev libpng-dev subversion libsm-dev libxinerama-dev \&lt;br /&gt;
libxrender-dev libfontconfig-dev libboost-dev libxcursor-dev doxygen \&lt;br /&gt;
libungif4-dev libdbus-1-dev libgpgme11-dev libssl-dev&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You can skip the manual installation of CMake 2.4.6 and DBus with: &lt;br /&gt;
&amp;lt;code bash&amp;gt;&lt;br /&gt;
sudo aptitude install libdbus-1-dev cmake&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
And for fully functional [[apidox]] frame work you also need:&lt;br /&gt;
&amp;lt;code bash&amp;gt;&lt;br /&gt;
sudo aptitude install graphviz&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== openSUSE ===&lt;br /&gt;
&lt;br /&gt;
In openSUSE 10.2 and newer, you can install packages using [http://en.opensuse.org/Zypper Zypper]:&lt;br /&gt;
&amp;lt;code bash&amp;gt;&lt;br /&gt;
sudo zypper install &amp;lt;package-name&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In older releases of SUSE, you can use YaST:&lt;br /&gt;
&amp;lt;code bash&amp;gt;&lt;br /&gt;
su&lt;br /&gt;
yast -i &amp;lt;packagename&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Required Packages'''&lt;br /&gt;
&lt;br /&gt;
The packages you will need to install are:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
xorg-x11-devel&lt;br /&gt;
libxml2-devel &lt;br /&gt;
kdesdk3 &lt;br /&gt;
clucene-core-devel &lt;br /&gt;
boost-devel&lt;br /&gt;
libjpeg-devel &lt;br /&gt;
liblrdf-devel &lt;br /&gt;
libpng-devel &lt;br /&gt;
libxslt-devel &lt;br /&gt;
libredland-devel&lt;br /&gt;
Mesa-devel &lt;br /&gt;
giflib-devel &lt;br /&gt;
subversion &lt;br /&gt;
gcc &lt;br /&gt;
gcc-c++&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Optional Packages'''&lt;br /&gt;
&lt;br /&gt;
You can skip the manual installation of Qt 4.3, CMake 2.4.6 and DBus by installing the adding the openSUSE Build Service KDE4 Repository to your installation sources.&lt;br /&gt;
&lt;br /&gt;
For openSUSE 10.2 and newer do:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
sudo zypper service-add http://software.opensuse.org/download/KDE:/KDE4/openSUSE_10.2 KDE4-102&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For older versions of SUSE Linux do:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
su&lt;br /&gt;
installation_sources -a http://software.opensuse.org/download/KDE:/KDE4/[YOUR SUSE LINUX VERSION]&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now install the following packages (and their dependencies):&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
cmake&lt;br /&gt;
dbus-1-devel&lt;br /&gt;
libqt4-devel&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
And for fully functional apidox frame work you also need:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
graphviz&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
CMake binary packages for openSUSE are available from [http://software.opensuse.org/download/devel:/tools:/building/ openSUSE build service].&lt;br /&gt;
&lt;br /&gt;
=== Gentoo ===&lt;br /&gt;
&lt;br /&gt;
You can use most stable ebuilds just remember to sync your portage before you begin.&lt;br /&gt;
&lt;br /&gt;
We need to be unmasked and/or kept at a lower version to continue.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code bash&amp;gt;&lt;br /&gt;
# echo 'x11-libs/qt' &amp;gt;&amp;gt; /etc/portage/package.keywords&lt;br /&gt;
# echo 'dev-util/cmake' &amp;gt;&amp;gt; /etc/portage/package.keywords&lt;br /&gt;
# echo 'dev-cpp/clucene' &amp;gt;&amp;gt; /etc/portage/package.keywords&lt;br /&gt;
# echo '&amp;gt;dev-cpp/clucene-0.9.16a' &amp;gt;&amp;gt; /etc/portage/package.mask&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
These are the packages you will need to install, some may already be installed so you may skip those by adding the update flag to emerge.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code bash&amp;gt;&lt;br /&gt;
$ emerge -avu ebuild/name&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 sys-devel/gcc&lt;br /&gt;
 dev-util/subversion&lt;br /&gt;
 dev-util/pkgconfig&lt;br /&gt;
 x11-base/xorg-x11&lt;br /&gt;
 media-libs/glut&lt;br /&gt;
 media-libs/mesa&lt;br /&gt;
 media-libs/jpeg&lt;br /&gt;
 media-libs/libpng&lt;br /&gt;
 media-libs/giflib&lt;br /&gt;
 dev-cpp/clucene&lt;br /&gt;
 dev-util/cppunit&lt;br /&gt;
 media-libs/liblrdf&lt;br /&gt;
 dev-libs/libxml2&lt;br /&gt;
 dev-libs/libxslt&lt;br /&gt;
 x11-misc/shared-mime-info&lt;br /&gt;
 kde-base/kdesdk-scripts&lt;br /&gt;
 dev-libs/boost&lt;br /&gt;
 x11-libs/qt&lt;br /&gt;
 dev-util/cmake&lt;br /&gt;
 sys-apps/dbus&lt;br /&gt;
 dev-libs/redland&lt;br /&gt;
&lt;br /&gt;
Provided you have emerged these ebuilds, you can skip compiling them by hand and proceed to [[Getting_Started/Build/KDE4#kdesupport|kdesupport section]].&lt;br /&gt;
&lt;br /&gt;
Good luck!&lt;br /&gt;
&lt;br /&gt;
== Create a user account for KDE4 development ==&lt;br /&gt;
&lt;br /&gt;
{{Note|&lt;br /&gt;
Some people like to have a separate user account for KDE 4 (for instance an old bug deleted files by mistake), and the instructions below were written with that approach.&lt;br /&gt;
&lt;br /&gt;
However it is much more efficient to do everything with a single user account, see [[Getting_Started/Increased_Productivity_in_KDE4_with_Scripts|Increased Productivity in KDE4 with Scripts]]&lt;br /&gt;
for more details. &lt;br /&gt;
&lt;br /&gt;
You can still follow the instructions below, but don't put the environment variables in your &amp;lt;tt&amp;gt;.bashrc&amp;lt;/tt&amp;gt;, put them in a separate file that you source to switch to the KDE 4 environment.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
=== Option 1: Command Line ===&lt;br /&gt;
&amp;lt;code bash&amp;gt;&lt;br /&gt;
useradd -m kde-devel&lt;br /&gt;
passwd kde-devel&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Option 2: Using KControl ===&lt;br /&gt;
&lt;br /&gt;
Instead of using the commands above, you can also use the User module in the KDE Control Center if you already have KDE3 installed.&lt;br /&gt;
&lt;br /&gt;
=== Setting up the environment ===&lt;br /&gt;
&lt;br /&gt;
Copy the {{path|~/.bashrc}} from your normal user account to the new kde-devel account. Next, copy and paste the contents of the [[Getting Started/Increased Productivity in KDE4 with Scripts/.bashrc|example .bashrc]] into {{path|~kde-devel/.bashrc}}. Be sure to comment out the line &amp;lt;tt&amp;gt;alias make=makeobj&amp;lt;/tt&amp;gt; if you do not have the &amp;lt;tt&amp;gt;[[Getting Started/Build/KDE4#Required Software|makeobj]]&amp;lt;/tt&amp;gt; command available. You will probably also want to modify the path to make sure it doesn't include your kde3 paths. To make it run, you have to open a new bash or to execute &lt;br /&gt;
&amp;lt;code bash&amp;gt;&lt;br /&gt;
source ~/.bashrc&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This will provide access to commands such as &amp;lt;tt&amp;gt;cmakekde&amp;lt;/tt&amp;gt; that are used in this tutorial as well as ensure that the proper paths are in place for Qt, KDE and CMake binaries.&lt;br /&gt;
&lt;br /&gt;
For more information, please read the [[Getting Started/Increased Productivity in KDE4 with Scripts]] tutorial.&lt;br /&gt;
&lt;br /&gt;
=== Switching to the New User ===&lt;br /&gt;
Switch to the user kde-devel: (don't forget the dash)&lt;br /&gt;
&amp;lt;code bash&amp;gt;&lt;br /&gt;
su - kde-devel&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The rest of this tutorial assumes you are running as the &amp;lt;tt&amp;gt;kde-devel&amp;lt;/tt&amp;gt; user.&lt;br /&gt;
&lt;br /&gt;
== The development user's shell ==&lt;br /&gt;
&lt;br /&gt;
On some systems a new user is configured by default to use {{path|/bin/sh}}. If this is not the case on your system, you can skip this section. Using {{path|/bin/sh}} can be very inconvenient to work with and you may want to change it to {{path|/bin/bash}} or another shell.&lt;br /&gt;
&lt;br /&gt;
=== Option 1: As the kde-devel user ===&lt;br /&gt;
&lt;br /&gt;
If you don't have root privileges and your system supports the changing of your own shell with the &amp;lt;tt&amp;gt;chsh&amp;lt;/tt&amp;gt; application, then you could try to change your shell to {{path|/bin/bash}} by using:&lt;br /&gt;
&amp;lt;code bash&amp;gt;&lt;br /&gt;
chsh -s /bin/bash kde-devel&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Option 2: As the root user ===&lt;br /&gt;
&lt;br /&gt;
If your system comes with the &amp;lt;tt&amp;gt;usermod&amp;lt;/tt&amp;gt; application you can run the following command as root: &amp;lt;tt&amp;gt;usermod -s /bin/bash&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Another option is to use the &amp;lt;tt&amp;gt;vipw&amp;lt;/tt&amp;gt; application as root to safely edit your {{path|/etc/passwd}}. Locate 'kde-devel' in the the file. Change '{{path|/bin/sh}}' at the end of the line to read '{{path|/bin/bash}}', save your changes and exit.&lt;br /&gt;
&lt;br /&gt;
The new shell will be started automatically when you log in as the kde-devel user again.&lt;br /&gt;
&lt;br /&gt;
== D-Bus ==&lt;br /&gt;
QtDBus and KDE are known to work with D-Bus versions 0.62, as well as 0.92 and upwards. Versions 0.60 and 0.61 may work too but are not tested. Versions 0.90 and 0.91 are known not to work. We recommend using post-1.0 release versions (at least 0.94), so consider upgrading if you haven't done so.&lt;br /&gt;
&lt;br /&gt;
You may skip this section if you have a recent D-Bus version or if you don't want to upgrade.&lt;br /&gt;
&lt;br /&gt;
Before running these steps in the recipe, make sure your X11 headers and libraries are available. The configure script run on line 5 of the following instructions should output:&lt;br /&gt;
 Building X11 code:        yes&lt;br /&gt;
&lt;br /&gt;
=== The Recipe ===&lt;br /&gt;
&lt;br /&gt;
{{tip|Make sure you did set up your environment correctly as described [[Getting_Started/Build/KDE4#Setting_up_the_environment|above]]. This is necessary for the &amp;lt;tt&amp;gt;cs&amp;lt;/tt&amp;gt; and &amp;lt;tt&amp;gt;cb&amp;lt;/tt&amp;gt; functions to work.}}&lt;br /&gt;
&lt;br /&gt;
 cs # [[Getting_Started/Increased_Productivity_in_KDE4_with_Scripts/.bashrc|'cs' is a bash function, click here to learn more]] &lt;br /&gt;
 wget http://dbus.freedesktop.org/releases/dbus/dbus-1.0.2.tar.gz&lt;br /&gt;
 tar -xvzf dbus-1.0.2.tar.gz&lt;br /&gt;
 cd dbus-1.0.2/&lt;br /&gt;
 ./configure --prefix=$DBUSDIR --localstatedir=/var&lt;br /&gt;
 make&lt;br /&gt;
 sudo make install&lt;br /&gt;
 sudo dbus-uuidgen --ensure&lt;br /&gt;
&lt;br /&gt;
=== What's Happening === &lt;br /&gt;
After changing into the source directory (line 1), D-Bus source code is downloaded from freedesktop.org (line 2) and unpacked (line 3). After going into the newly created D-Bus directory (line 4), the build is set up using the supplied {{path|configure}} script (line 5). After building (line 6) and installing (line 7) D-Bus, we use the &amp;lt;tt&amp;gt;dbus-uuidgen&amp;lt;/tt&amp;gt; tool to install a machine identification file that allows the bus to start automatically when the desktop session starts (line 8).&lt;br /&gt;
&lt;br /&gt;
Note that you need write access to {{path|/var}} for the last two steps. If your system does not have the sudo command, you can use the &amp;lt;tt&amp;gt;su&amp;lt;/tt&amp;gt; command instead, e.g. &amp;lt;tt&amp;gt;su -c &amp;quot;make install&amp;quot;&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== CMake ==&lt;br /&gt;
Skip this if you have [http://cmake.org/ CMake] &amp;gt;=2.4.5 installed. &lt;br /&gt;
You should be able to directly use the binary packages available on the [http://www.cmake.org/HTML/Download.html CMake site]. There are also distribution specific packages available.&lt;br /&gt;
&lt;br /&gt;
=== The Recipe ===&lt;br /&gt;
&amp;lt;!--'cs' and 'cb' are NOT typos!--&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 cs # [[Getting_Started/Increased_Productivity_in_KDE4_with_Scripts/.bashrc|'cs' is a bash function, click Here to learn more]] &lt;br /&gt;
 wget http://www.cmake.org/files/v2.4/cmake-2.4.6.tar.gz&lt;br /&gt;
 tar -zxf cmake-2.4.6.tar.gz&lt;br /&gt;
 mkdir cmake-build&lt;br /&gt;
 cd cmake-build &lt;br /&gt;
 ../cmake-2.4.6/bootstrap&lt;br /&gt;
 make&lt;br /&gt;
 sudo make install&lt;br /&gt;
&lt;br /&gt;
=== What's Happening ===&lt;br /&gt;
First, we go back to the &amp;lt;tt&amp;gt;kde-devel&amp;lt;/tt&amp;gt; user's source directory (line 1), get the CMake sources (line 2) and unpack them (line 3). We create a directory to build CMake in (line 4) and go into it (line 5). We then run the CMake bootstrap script to set up the CMake build (line 6), then make (line 7) and install it (line 8) using the root user.&lt;br /&gt;
&lt;br /&gt;
If your system does not have the &amp;lt;tt&amp;gt;sudo&amp;lt;/tt&amp;gt; command, you can instead do &amp;lt;tt&amp;gt;su -c &amp;quot;make install&amp;quot;&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Qt ==&lt;br /&gt;
Next we need to get the Qt4 that is in KDE's source repository. KDE is guaranteed to build against any Qt 4.3. Qt 4.2 and earlier are not supported and will not work. You should use the copy in the KDE Subversion servers.&lt;br /&gt;
&lt;br /&gt;
=== The Recipe ===&lt;br /&gt;
 cd&lt;br /&gt;
 svn checkout svn://anonsvn.kde.org/home/kde/trunk/qt-copy&lt;br /&gt;
 cd qt-copy&lt;br /&gt;
 ./apply_patches&lt;br /&gt;
 ./configure -qt-gif -no-exceptions -debug -fast \&lt;br /&gt;
  -prefix $QTDIR -qdbus -pch -openssl -nomake examples \&lt;br /&gt;
  -nomake demos&lt;br /&gt;
 make -j2&lt;br /&gt;
&lt;br /&gt;
 # do copy files if the target doesnt match current dir,&lt;br /&gt;
 # clear obj files to save disk space otherwise&lt;br /&gt;
 if [ $QTDIR = `pwd` ]; then \&lt;br /&gt;
 find . -name '*.o' -exec rm {} \; ; \&lt;br /&gt;
 else make install; fi;&lt;br /&gt;
&lt;br /&gt;
=== What's Happening ===&lt;br /&gt;
We switch back to the &amp;lt;tt&amp;gt;kde-devel&amp;lt;/tt&amp;gt; user's home directory (line 1) and download the source code using subversion (svn) from KDE's repository (line 2). After changing into the resulting {{path|qt-copy}} directory (line 3), we run a script that manages the patches that come with &amp;lt;tt&amp;gt;qt-copy&amp;lt;/tt&amp;gt; (line 4). &lt;br /&gt;
&lt;br /&gt;
Once the patches have been applied, we then set up the build using the &amp;lt;tt&amp;gt;configure&amp;lt;/tt&amp;gt; script (line 5-7). The various command line options used are explained in the {{path|qt-copy/README.qt-copy}} file. Finally, we build the minimal requirements for KDE (line 8) and install (line 9-10) Qt. If you want all the example and demo applications, you can either build them individually or simply do a &amp;lt;tt&amp;gt;make&amp;lt;/tt&amp;gt; from the {{path|qt-copy}} directory. &lt;br /&gt;
&lt;br /&gt;
Note that the installation does not require root as it installs Qt locally into {{path|$QTDIR}}. Anyway, installation is only needed if {{path|$QTDIR}} differs from {{path|$HOME/qt-copy}}, which is not the case if you have exactly followed the instructions.&lt;br /&gt;
&lt;br /&gt;
=== Troubleshooting ===&lt;br /&gt;
If you get &amp;quot;error: X11/Xlib.h: No such file or directory&amp;quot;, install the devel package of &amp;lt;tt&amp;gt;xorg&amp;lt;/tt&amp;gt; (the actual name may vary between operating systems, for example it is &amp;lt;tt&amp;gt;xorg-dev&amp;lt;/tt&amp;gt; on Ubuntu based systems such as Kubuntu). &lt;br /&gt;
&lt;br /&gt;
If you get an error in the configure step about missing defines, check the value of &amp;lt;tt&amp;gt;$QMAKESPEC&amp;lt;/tt&amp;gt;.  Some distributions set this to point directly to the system-installed Qt.  If &amp;lt;tt&amp;gt;unset QMAKESPEC&amp;lt;/tt&amp;gt; solves the problem, you probably want to add it to the &amp;lt;tt&amp;gt;~/.bashrc&amp;lt;/tt&amp;gt; script.&lt;br /&gt;
&lt;br /&gt;
If you get an error &amp;quot;.pch/debug-shared/QtCore&amp;quot;, this is because Qt-4.3 enables precompiled headers if your gcc supports it, but for some reason it doesn't work for you. If you use distcc, configure qt with -no-pch. If you use icecream, update to the latest icecream from svn trunk.&lt;br /&gt;
&lt;br /&gt;
Try running any Qt program, like {{program|assistant}}. '''Note:''' You may need to run &amp;lt;tt&amp;gt;xhost +local:kde-devel&amp;lt;/tt&amp;gt; as your regular kde3 user to run this application.  If it crashes in QSpanData::adjustSpanMethods, then your problem is the oxygen style. Try removing {{path|lib/kde4/plugins/styles/kstyle-oxygen.so}} and {{path|lib/kde4/plugins/styles/oxygen.so}} if they exist in the KDE install prefix.&lt;br /&gt;
&lt;br /&gt;
== kdesupport ==&lt;br /&gt;
&lt;br /&gt;
{{warning|If you have jumped to this section without reading [[Getting_Started/Build/KDE4#Setting_up_the_environment|Setting Up The Environment]], '''the recipes provided will not work'''. &lt;br /&gt;
&lt;br /&gt;
The recipes are not in error; &amp;lt;tt&amp;gt;cs&amp;lt;/tt&amp;gt; and &amp;lt;tt&amp;gt;cb&amp;lt;/tt&amp;gt; are not typos. Your environment '''needs''' to be set up correctly for these instructions to work for you.}}&lt;br /&gt;
&lt;br /&gt;
There are several libraries that KDE applications rely on in the kdesupport module. This includes Strigi and Soprano for file metadata and search, eigen for visual effects in applications such as Kalzium, taglib for music players and qca for some cryptographic needs. &lt;br /&gt;
&lt;br /&gt;
Strigi itself has a few dependencies as well: you will need the libraries and headers for libz, libbz2, openssl (libcrypto or libssl), libclucene (=0.9.16; version 0.9.17 does '''not''' work), and either libxml2 or libexpat.&lt;br /&gt;
&lt;br /&gt;
=== The Recipe ===&lt;br /&gt;
&amp;lt;!--'cs' and 'cb' are NOT typos!--&amp;gt;&lt;br /&gt;
 cs # [[Getting_Started/Increased_Productivity_in_KDE4_with_Scripts/.bashrc|cs is not a typo]]&lt;br /&gt;
 svn checkout svn://anonsvn.kde.org/home/kde/trunk/kdesupport/&lt;br /&gt;
 cd kdesupport&lt;br /&gt;
 cmakekde&lt;br /&gt;
&lt;br /&gt;
=== What's Happening ===&lt;br /&gt;
We change to the base source directory (line 1). We download the sources in kdesupport using subversion (line 2), go into the new {{path|~/src/kdesupport}} directory (line 3), and commence the build (line 4). This will leave us in the kdesupport build directory after the build is completed.&lt;br /&gt;
&lt;br /&gt;
=== Troubleshooting ===&lt;br /&gt;
If you get &lt;br /&gt;
 CMake Error: This project requires some variables to be set,&lt;br /&gt;
 and cmake can not find them.&lt;br /&gt;
 Please set the following variables:&lt;br /&gt;
 LIBXML2_INCLUDE_DIR (ADVANCED)&lt;br /&gt;
you should install the development package for libxml2.&lt;br /&gt;
&lt;br /&gt;
If you get &lt;br /&gt;
 CMake Error: Could NOT find REDLAND&lt;br /&gt;
then you need librdf from the Redland.&lt;br /&gt;
If your distribution does not provide the librdf package, you can download the source there: [http://download.librdf.org/source/ http://download.librdf.org/source/] and build it.&lt;br /&gt;
(Gentoo users: The ebuild for librdf is named dev-libs/redland)&lt;br /&gt;
&lt;br /&gt;
If you get&lt;br /&gt;
 Fetching external item into 'kdesupport/admin'&lt;br /&gt;
 Error validating server certificate for 'https://...'&lt;br /&gt;
see [http://techbase.kde.org/Getting_Started/Sources/Using_Subversion_with_KDE Using Subversion with KDE]&lt;br /&gt;
&lt;br /&gt;
If you get&lt;br /&gt;
 FILE cannot create directory: /usr/lib[64]/qt4/plugins/crypto. Maybe need administrative privileges.&lt;br /&gt;
 - - -&lt;br /&gt;
 make: *** [install] Error 255&lt;br /&gt;
take a second look in the .bashrc file described above, are paths correct?&lt;br /&gt;
&lt;br /&gt;
== kdelibs ==&lt;br /&gt;
&lt;br /&gt;
With Qt4, Strigi, and Soprano built, we can now move on to building KDE's base libraries. If you use the aforementioned [[Getting Started/Increased Productivity in KDE4 with Scripts/.bashrc|.bashrc]] this is where those new functions come in handy. &lt;br /&gt;
&lt;br /&gt;
=== The Recipe ===&lt;br /&gt;
&amp;lt;!--'cs' and 'cb' are NOT typos!--&amp;gt;&lt;br /&gt;
 cs # bash function&lt;br /&gt;
 mkdir KDE &amp;amp;&amp;amp; cd KDE&lt;br /&gt;
 svn checkout svn://anonsvn.kde.org/home/kde/trunk/KDE/kdelibs&lt;br /&gt;
 cd kdelibs&lt;br /&gt;
 cmakekde&lt;br /&gt;
&lt;br /&gt;
=== What's Happening ===&lt;br /&gt;
We change to the base source directory (line 1) then make and go into the KDE directory (line 2). We download the sources for kdelibs using subversion (line 3), go into the new {{path|~/src/KDE/kdelibs}} directory (line 4), and commence the build (line 5). This will leave us in the &amp;lt;tt&amp;gt;kdelibs&amp;lt;/tt&amp;gt; build directory after the build is completed.&lt;br /&gt;
&lt;br /&gt;
{{tip|There might be missing dependencies on your system! They are easily overlooked in the output of &amp;lt;tt&amp;gt;cmakekde&amp;lt;/tt&amp;gt;.&lt;br /&gt;
You might want to do a &amp;lt;tt&amp;gt;cmake $KDE_SRC/KDE/MODULE_NAME&amp;lt;/tt&amp;gt; prior to compiling any kde modules (like kdelibs, kdepimlibs etc.)}}&lt;br /&gt;
&lt;br /&gt;
=== Additional KDE-specific CMake modules ===&lt;br /&gt;
There are additional CMake modules in {{path|kdelibs/cmake/modules/}} that are necessary for building KDE4 applications. These will be installed for you when  kdelibs itself is installed.&lt;br /&gt;
&lt;br /&gt;
=== Troubleshooting ===&lt;br /&gt;
If you have problems compiling kdelibs, first make sure the software in the [[Getting_Started/Build/KDE4#Required_Software|Required Software]] section above is installed and works. Other possible hints include:&lt;br /&gt;
* If the &amp;lt;tt&amp;gt;cmakekde&amp;lt;/tt&amp;gt; command fails stating that CMake requires an out of source build directory, remove {{path|~/src/KDE/kdelibs/CMakeCache.txt}}, and try again.&lt;br /&gt;
&lt;br /&gt;
If &amp;lt;tt&amp;gt;cmakekde&amp;lt;/tt&amp;gt; still gives the same error then try this &lt;br /&gt;
 cd&lt;br /&gt;
 cmake -DCMAKE_INSTALL_PREFIX=$KDEDIR \&lt;br /&gt;
 -DCMAKE_BUILD_TYPE=debugfull \&lt;br /&gt;
 -DKDE4_BUILD_TESTS=ON \&lt;br /&gt;
 ~/src/KDE/kdelibs&lt;br /&gt;
 make&lt;br /&gt;
 make install&lt;br /&gt;
* If you received an error stating &amp;quot;Please create a separate build directory and run 'cmake path_to_kdelibs [options]' there.&amp;quot;, then you need to change to your build directory before running cmakekde. (e.g &amp;lt;tt&amp;gt;cs KDE/kdelibs &amp;amp;&amp;amp; cb &amp;amp;&amp;amp; cmakekde&amp;lt;/tt&amp;gt;) If the message stays, run 'svn status' in the kdelibs directory and remove all files labeled with '?'.&lt;br /&gt;
* If Qt wasn't found or the wrong version of Qt was found, make sure that the qmake from the Qt you need is the first qmake in the path.&lt;br /&gt;
* If the problems persist, try the CMake make-option &amp;lt;tt&amp;gt;--keep-going&amp;lt;/tt&amp;gt;.&lt;br /&gt;
* Here you need the libungif library, otherwise you will get an error message like &amp;quot;&amp;lt;tt&amp;gt;Could NOT find GIF&amp;lt;/tt&amp;gt;&amp;quot;.&lt;br /&gt;
* Qt-4.3 upgrade: if you get a link error in kjsembed talking about QScriptEngine, edit CMakeCache.txt in kdelibs and remove the lines that talk about QT_QTUITOOLS_LIBRARY, then type make again (that static library has a new dependency, and the cmake code that adds it needs to run).&lt;br /&gt;
* if you get &amp;lt;code&amp;gt;CMake Error: KDE Requires Qt to be built with SSL support&lt;br /&gt;
&amp;lt;/code&amp;gt;, install openssl-devel, and re-compile QT.&lt;br /&gt;
* if you get &amp;lt;code&amp;gt;kdelibs/kimgio/ico.cpp:188: undefined reference to `QImage::jumpTable()'&amp;lt;/code&amp;gt; it means you compiled QT without QT3 support(no, linking to a true QT3 install won't work)&lt;br /&gt;
&lt;br /&gt;
== kdepimlibs ==&lt;br /&gt;
After &amp;lt;tt&amp;gt;kdelibs&amp;lt;/tt&amp;gt;, but before ''kdebase'', you need to build and install ''kdepimlibs''.&lt;br /&gt;
&lt;br /&gt;
=== The Recipe ===&lt;br /&gt;
&amp;lt;!--'cs' and 'cb' are NOT typos!--&amp;gt;&lt;br /&gt;
 cs KDE # [[Getting_Started/Increased_Productivity_in_KDE4_with_Scripts/.bashrc|cs is not a typo]]&lt;br /&gt;
 svn checkout svn://anonsvn.kde.org/home/kde/trunk/KDE/kdepimlibs&lt;br /&gt;
 cd kdepimlibs&lt;br /&gt;
 cmakekde&lt;br /&gt;
&lt;br /&gt;
=== What's Happening ===&lt;br /&gt;
We go into the KDE source directory (line 1), download the source code for kdepimlibs using subversion (line 2) and then go into the new {{path|~/src/KDE/kdepimlibs}} directory (line 3). We then commence the build (line 4). This will leave us in the &amp;lt;tt&amp;gt;kdepimlibs&amp;lt;/tt&amp;gt; build directory after the build is completed.&lt;br /&gt;
&lt;br /&gt;
=== Troubleshooting ===&lt;br /&gt;
If you have trouble compiling kdepimlibs:&lt;br /&gt;
* the cmakekde command may require a later version of the gpgme library.  This is available from the project's web site: http://www.gnupg.org/(en)/download/index.html - please note that the build of gpgme also requires libgpg-error, also available from the same location.  Both libraries are installed by the &amp;quot;./configure&amp;quot;, &amp;quot;make&amp;quot; and &amp;quot;sudo make install&amp;quot; sequence, with the gpgme library configured with the additional &amp;quot;--with-gpg-error-prefix&amp;quot; parameter.  You may need to overwrite your existing &amp;quot;/usr/bin/gpgme-config&amp;quot; file with the newer version for the kdepimlibs to pick up the new install.&lt;br /&gt;
&lt;br /&gt;
== kdebase ==&lt;br /&gt;
You may need kdebase for some kioslaves.&lt;br /&gt;
&amp;lt;!--'cs' and 'cb' are NOT typos!--&amp;gt;&lt;br /&gt;
 cs KDE # [[Getting_Started/Increased_Productivity_in_KDE4_with_Scripts/.bashrc|cs is not a typo]]&lt;br /&gt;
 svn checkout svn://anonsvn.kde.org/home/kde/trunk/KDE/kdebase&lt;br /&gt;
 cd kdebase&lt;br /&gt;
 cmakekde&lt;br /&gt;
&lt;br /&gt;
=== Troubleshooting ===&lt;br /&gt;
If you have troubles compiling kdebase:&lt;br /&gt;
* Make sure you have the &amp;lt;tt&amp;gt;libxss headers&amp;lt;/tt&amp;gt; installed. (Usually you got undefined references on xscreensaver objects if you do not have those headers)&lt;br /&gt;
* &amp;lt;tt&amp;gt;which meinproc&amp;lt;/tt&amp;gt; has to deliver {{path|/home/kde-devel/kde/bin/meinproc}}&lt;br /&gt;
* if cmakekde can not find the path of kdepimlibs, edit the file {{path|$KDE_BUILD/KDE/kdebase/CMakeCache.txt}} and manually set &amp;lt;tt&amp;gt;KDEPIMLIBS_INCLUDE_DIR:PATH=$KDE_BUILD/kdepimlibs&amp;lt;/tt&amp;gt;&lt;br /&gt;
* if you get an error saying &amp;quot;Please set the following variables: X11_XTest_LIB (ADVANCED)&amp;quot;, install the devel package of &amp;lt;tt&amp;gt;Xtst&amp;lt;/tt&amp;gt;. On some systems, this is packaged separately from &amp;lt;tt&amp;gt;xext&amp;lt;/tt&amp;gt; and called &amp;lt;tt&amp;gt;x11proto-xext-dev&amp;lt;/tt&amp;gt; or &amp;lt;tt&amp;gt;libxtst-dev&amp;lt;/tt&amp;gt;. You may also need to remove the CMakeCache.txt file in the build dir after installing the package.&lt;br /&gt;
* the same for &amp;quot;X11_Xinerama_LIB (ADVANCED)&amp;quot; where you will need the devel package for &amp;lt;tt&amp;gt;xinerama&amp;lt;/tt&amp;gt;.&lt;br /&gt;
* if you get an error complaining about a missing variable X11_Xrandr_LIB, you need the devel package for libxrandr (libxrandr-devel on ubuntu-systems)&lt;br /&gt;
* if you get the error &amp;quot;Please set the following variables: FONTCONFIG_INCLUDE_DIR, FONTCONFIG_LIBRARIES (ADVANCED)&amp;quot;, then you need to install  the libfontconfig headers&lt;br /&gt;
* if you get the error &amp;quot;CMake Error: This project requires some variables to be set, and cmake can not find them. Please set the following variables: KMETADATA_LIBRARIES&amp;quot;, you need to install soprano from kdesupport and to rebuild kdelibs&lt;br /&gt;
* if you get the error &amp;quot;‘XserverRegion’ does not name a type&amp;quot; make sure you have libxcomposite headers installed (&amp;lt;tt&amp;gt;libxcomposite-dev&amp;lt;/tt&amp;gt; in ubuntu)&lt;br /&gt;
&lt;br /&gt;
== Generating local API documentation ==&lt;br /&gt;
Although the API documentation for KDE is available online at [http://api.kde.org api.kde.org], it is sometimes useful to have it on your own disk, for example when you want to use [[Getting_Started/Set_up_KDE_4_for_development#KDevelop|KDevelop]] for browsing the documentation or when you are not able to be online all the time.&lt;br /&gt;
&lt;br /&gt;
Be aware that generating the API documentation can take several hours and takes almost half a gigabyte of diskspace.&lt;br /&gt;
The generation is handled by a script in {{path|kdelibs/doc/api}}, you need &amp;lt;tt&amp;gt;doxygen&amp;lt;/tt&amp;gt; to be able to run it. &lt;br /&gt;
&lt;br /&gt;
To build the API documentation for kdelibs, type the following:&lt;br /&gt;
&amp;lt;!--'cs' and 'cb' are NOT typos!--&amp;gt;&lt;br /&gt;
 cs KDE/kdelibs # [[Getting_Started/Increased_Productivity_in_KDE4_with_Scripts/.bashrc|cs is not a typo]]&lt;br /&gt;
 $KDE_SRC/KDE/kdelibs/doc/api/doxygen.sh \&lt;br /&gt;
 --doxdatadir=$KDE_SRC/KDE/kdelibs/doc/common .&lt;br /&gt;
&lt;br /&gt;
Repeat for other modules as desired.&amp;lt;br&amp;gt;&lt;br /&gt;
 cd &amp;lt;module home&amp;gt;&lt;br /&gt;
 $KDE_SRC/KDE/kdelibs/doc/api/doxygen.sh \&lt;br /&gt;
 --doxdatadir=$KDE_SRC/KDE/kdelibs/doc/common .&lt;br /&gt;
&lt;br /&gt;
== Staying up to date ==&lt;br /&gt;
&lt;br /&gt;
In order to keep the kde4 installation up to date, each of the modules installed should be updated periodically. As Monday is the day for big changes in kdelibs, Tuesday may be the best day to do this. For each module checked out, run &amp;lt;tt&amp;gt;svn up&amp;lt;/tt&amp;gt; and &amp;lt;tt&amp;gt;make&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
For example:&lt;br /&gt;
&amp;lt;code bash&amp;gt;&lt;br /&gt;
cs kdesupport # cs is not a typo&lt;br /&gt;
svn up&lt;br /&gt;
cb # cb is not a typo&lt;br /&gt;
make -j2 VERBOSE=1 &amp;amp;&amp;amp; make install&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== General troubleshooting ==&lt;br /&gt;
&lt;br /&gt;
What can happen over time, after some &amp;lt;tt&amp;gt;svn up&amp;lt;/tt&amp;gt; commands, is that some of the tools used in the KDE build chain change their output format. For example, &amp;lt;tt&amp;gt;kcfg&amp;lt;/tt&amp;gt; files are read by &amp;lt;tt&amp;gt;kconfig_compiler&amp;lt;/tt&amp;gt; to produce configuration dialogs. CMake cannot detect those changes, and the compilation might fail. A workaround is to always force a re-generation of all such files:&lt;br /&gt;
 find $KDE_SRC/KDE/kdebase -name &amp;quot;*.kcfg&amp;quot; | xargs touch&lt;br /&gt;
The same applies to &amp;lt;tt&amp;gt;ui&amp;lt;/tt&amp;gt; files as produced by Qt designer.&lt;br /&gt;
&lt;br /&gt;
== Success! ==&lt;br /&gt;
&lt;br /&gt;
You are now ready to start building other svn modules in the same fashion as you built kdebase, running and testing KDE4 or writing your own patches and applications.&lt;br /&gt;
&lt;br /&gt;
See the [[Getting Started/Set up KDE 4 for development|Set up KDE 4 for development]] tutorial for how to start KDE 4 applications and how to use KDevelop to work on them.&lt;br /&gt;
&lt;br /&gt;
[[Category:Build KDE]]&lt;br /&gt;
[[Category:KDE4]]&lt;/div&gt;</summary>
		<author><name>Logixoul</name></author>	</entry>

	<entry>
		<id>http://techbase.kde.org/Getting_Started/Build/KDE4</id>
		<title>Getting Started/Build/KDE4</title>
		<link rel="alternate" type="text/html" href="http://techbase.kde.org/Getting_Started/Build/KDE4"/>
				<updated>2007-07-04T03:43:17Z</updated>
		
		<summary type="html">&lt;p&gt;Logixoul: /* Abstract */ a bit more clear hopefully&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Template:I18n/Language Navigation Bar|Getting_Started/Build/KDE4}}&lt;br /&gt;
&lt;br /&gt;
{{TutorialBrowser|&lt;br /&gt;
&lt;br /&gt;
series=Getting Started|&lt;br /&gt;
&lt;br /&gt;
name=Building KDE4 From Source|&lt;br /&gt;
&lt;br /&gt;
pre=[[../../Sources/Anonymous_SVN|Anonymous SVN Quickstart Guide]]|&lt;br /&gt;
&lt;br /&gt;
next=[[../../Set_up_KDE_4_for_development|Set up KDE 4 for development]]|&lt;br /&gt;
&lt;br /&gt;
reading=[http://kdesvn-build.kde.org/ kdesvn-build: The KDE From Subversion Build Tool]&amp;lt;br&amp;gt;[[../../Increased_Productivity_in_KDE4_with_Scripts|Increased Productivity in KDE4 with Scripts]]&amp;lt;br&amp;gt;[[Development/Tutorials/CMake |Introduction to CMake]]&amp;lt;br&amp;gt;[[../KDE4/FreeBSD|FreeBSD notes]]&amp;lt;br&amp;gt;[[../KDE4/Mac OS X|Instructions for Mac OS X]]|&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== Abstract ==&lt;br /&gt;
&lt;br /&gt;
This tutorial shows one way to get KDE from trunk running on Linux/BSD systems. There are also tutorials for [[/FreeBSD|FreeBSD]], [http://www.kdelibs.com/ Windows], [[/Mac OS X|Mac OS X]] and [http://solaris.kde.org/ Solaris]. Throughout the tutorial the bash shell is used.&lt;br /&gt;
&lt;br /&gt;
{{warning|Expect a higher risk of build failure '''on Mondays''' when most kdelibs changes are committed. [http://developer.kde.org/~dirk/dashboard/ Dashboard] reports unexpected breakages. You are encouraged to fix failing modules.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== Required Software ==&lt;br /&gt;
&lt;br /&gt;
The following must be installed first before you can successfully complete this tutorial:&lt;br /&gt;
* gcc and g++ from the gcc project, preferably version 4.1 or higher&lt;br /&gt;
* svn, the subversion revision control client&lt;br /&gt;
* pkg-config&lt;br /&gt;
* development libraries and headers for X11, OpenGL (mesa-common-dev and libglu1-mesa-dev), libjpeg, libpng, libungif, [http://clucene.sourceforge.net/index.php/Downloads libclucene], [http://download.librdf.org/source/ librdf], libxml2 and libxslt&lt;br /&gt;
* the &amp;lt;tt&amp;gt;makeobj&amp;lt;/tt&amp;gt; script, which is part of kdesdk. You can install it as part of kdesdk (kdesdk-scripts on Debian) or similar package, or just download it itself from [http://websvn.kde.org/*checkout*/trunk/KDE/kdesdk/scripts/makeobj WebSVN]&lt;br /&gt;
* the [http://freedesktop.org/wiki/Software/shared-mime-info shared-mime-info package], which is the freedesktop MIME standard KDE is using now&lt;br /&gt;
* [http://boost.org/ boost], needed by kdebase; after compiling and/or installing boost, in order to make cmake aware about its location (FindBoost),  add boost directory (the one containing include subdirectory) to CMAKE_INCLUDE_PATH or set an environment variable called BOOST_ROOT pointing to boost directory.&lt;br /&gt;
&lt;br /&gt;
=== Kubuntu ===&lt;br /&gt;
&lt;br /&gt;
In Kubuntu 7.04 (Feisty) the build dependencies you need are installed with:&lt;br /&gt;
&amp;lt;code bash&amp;gt;&lt;br /&gt;
sudo aptitude install build-essential cdbs debhelper cmake \&lt;br /&gt;
libxml2-dev libxslt1-dev libbz2-dev libclucene-dev librdf-dev \&lt;br /&gt;
shared-mime-info libgl1-mesa-dev libglu1-mesa-dev mesa-common-dev \&lt;br /&gt;
libxext-dev libjpeg-dev libpng-dev subversion libsm-dev libxinerama-dev \&lt;br /&gt;
libxrender-dev libfontconfig-dev libboost-dev libxcursor-dev doxygen \&lt;br /&gt;
libungif4-dev libdbus-1-dev libgpgme11-dev libssl-dev&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You can skip the manual installation of CMake 2.4.6 and DBus with: &lt;br /&gt;
&amp;lt;code bash&amp;gt;&lt;br /&gt;
sudo aptitude install libdbus-1-dev cmake&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
And for fully functional [[apidox]] frame work you also need:&lt;br /&gt;
&amp;lt;code bash&amp;gt;&lt;br /&gt;
sudo aptitude install graphviz&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== openSUSE ===&lt;br /&gt;
&lt;br /&gt;
In openSUSE 10.2 and newer, you can install packages using [http://en.opensuse.org/Zypper Zypper]:&lt;br /&gt;
&amp;lt;code bash&amp;gt;&lt;br /&gt;
sudo zypper install &amp;lt;package-name&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In older releases of SUSE, you can use YaST:&lt;br /&gt;
&amp;lt;code bash&amp;gt;&lt;br /&gt;
su&lt;br /&gt;
yast -i &amp;lt;packagename&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Required Packages'''&lt;br /&gt;
&lt;br /&gt;
The packages you will need to install are:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
xorg-x11-devel&lt;br /&gt;
libxml2-devel &lt;br /&gt;
kdesdk3 &lt;br /&gt;
clucene-core-devel &lt;br /&gt;
boost-devel&lt;br /&gt;
libjpeg-devel &lt;br /&gt;
liblrdf-devel &lt;br /&gt;
libpng-devel &lt;br /&gt;
libxslt-devel &lt;br /&gt;
libredland-devel&lt;br /&gt;
Mesa-devel &lt;br /&gt;
giflib-devel &lt;br /&gt;
subversion &lt;br /&gt;
gcc &lt;br /&gt;
gcc-c++&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Optional Packages'''&lt;br /&gt;
&lt;br /&gt;
You can skip the manual installation of Qt 4.3, CMake 2.4.6 and DBus by installing the adding the openSUSE Build Service KDE4 Repository to your installation sources.&lt;br /&gt;
&lt;br /&gt;
For openSUSE 10.2 and newer do:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
sudo zypper service-add http://software.opensuse.org/download/KDE:/KDE4/openSUSE_10.2 KDE4-102&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For older versions of SUSE Linux do:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
su&lt;br /&gt;
installation_sources -a http://software.opensuse.org/download/KDE:/KDE4/[YOUR SUSE LINUX VERSION]&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now install the following packages (and their dependencies):&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
cmake&lt;br /&gt;
dbus-1-devel&lt;br /&gt;
libqt4-devel&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
And for fully functional apidox frame work you also need:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
graphviz&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
CMake binary packages for openSUSE are available from [http://software.opensuse.org/download/devel:/tools:/building/ openSUSE build service].&lt;br /&gt;
&lt;br /&gt;
=== Gentoo ===&lt;br /&gt;
&lt;br /&gt;
You can use most stable ebuilds just remember to sync your portage before you begin.&lt;br /&gt;
&lt;br /&gt;
We need to be unmasked and/or kept at a lower version to continue.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code bash&amp;gt;&lt;br /&gt;
# echo 'x11-libs/qt' &amp;gt;&amp;gt; /etc/portage/package.keywords&lt;br /&gt;
# echo 'dev-util/cmake' &amp;gt;&amp;gt; /etc/portage/package.keywords&lt;br /&gt;
# echo 'dev-cpp/clucene' &amp;gt;&amp;gt; /etc/portage/package.keywords&lt;br /&gt;
# echo '&amp;gt;dev-cpp/clucene-0.9.16a' &amp;gt;&amp;gt; /etc/portage/package.mask&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
These are the packages you will need to install, some may already be installed so you may skip those by adding the update flag to emerge.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code bash&amp;gt;&lt;br /&gt;
$ emerge -avu ebuild/name&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 sys-devel/gcc&lt;br /&gt;
 dev-util/subversion&lt;br /&gt;
 dev-util/pkgconfig&lt;br /&gt;
 x11-base/xorg-x11&lt;br /&gt;
 media-libs/glut&lt;br /&gt;
 media-libs/mesa&lt;br /&gt;
 media-libs/jpeg&lt;br /&gt;
 media-libs/libpng&lt;br /&gt;
 media-libs/giflib&lt;br /&gt;
 dev-cpp/clucene&lt;br /&gt;
 dev-util/cppunit&lt;br /&gt;
 media-libs/liblrdf&lt;br /&gt;
 dev-libs/libxml2&lt;br /&gt;
 dev-libs/libxslt&lt;br /&gt;
 x11-misc/shared-mime-info&lt;br /&gt;
 kde-base/kdesdk-scripts&lt;br /&gt;
 dev-libs/boost&lt;br /&gt;
 x11-libs/qt&lt;br /&gt;
 dev-util/cmake&lt;br /&gt;
 sys-apps/dbus&lt;br /&gt;
 dev-libs/redland&lt;br /&gt;
&lt;br /&gt;
Provided you have emerged these ebuilds, you can skip compiling them by hand and proceed to [[Getting_Started/Build/KDE4#kdesupport|kdesupport section]].&lt;br /&gt;
&lt;br /&gt;
Good luck!&lt;br /&gt;
&lt;br /&gt;
== Create a user account for KDE4 development ==&lt;br /&gt;
&lt;br /&gt;
{{Note|&lt;br /&gt;
Some people like to have a separate user account for KDE 4 (for instance an old bug deleted files by mistake), and the instructions below were written with that approach.&lt;br /&gt;
&lt;br /&gt;
However it is much more efficient to do everything with a single user account, see [[Getting_Started/Increased_Productivity_in_KDE4_with_Scripts|Increased Productivity in KDE4 with Scripts]]&lt;br /&gt;
for more details. &lt;br /&gt;
&lt;br /&gt;
You can still follow the instructions below, but don't put the environment variables in your &amp;lt;tt&amp;gt;.bashrc&amp;lt;/tt&amp;gt;, put them in a separate file that you source to switch to the KDE 4 environment.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
=== Option 1: Command Line ===&lt;br /&gt;
&amp;lt;code bash&amp;gt;&lt;br /&gt;
useradd -m kde-devel&lt;br /&gt;
passwd kde-devel&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Option 2: Using KControl ===&lt;br /&gt;
&lt;br /&gt;
Instead of using the commands above, you can also use the User module in the KDE Control Center if you already have KDE3 installed.&lt;br /&gt;
&lt;br /&gt;
=== Setting up the environment ===&lt;br /&gt;
&lt;br /&gt;
Copy the {{path|~/.bashrc}} from your normal user account to the new kde-devel account. Next, copy and paste the contents of the [[Getting Started/Increased Productivity in KDE4 with Scripts/.bashrc|example .bashrc]] into {{path|~kde-devel/.bashrc}}. Be sure to comment out the line &amp;lt;tt&amp;gt;alias make=makeobj&amp;lt;/tt&amp;gt; if you do not have the &amp;lt;tt&amp;gt;[[Getting Started/Build/KDE4#Required Software|makeobj]]&amp;lt;/tt&amp;gt; command available. You will probably also want to modify the path to make sure it doesn't include your kde3 paths. To make it run, you have to open a new bash or to execute &lt;br /&gt;
&amp;lt;code bash&amp;gt;&lt;br /&gt;
source ~/.bashrc&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This will provide access to commands such as &amp;lt;tt&amp;gt;cmakekde&amp;lt;/tt&amp;gt; that are used in this tutorial as well as ensure that the proper paths are in place for Qt, KDE and CMake binaries.&lt;br /&gt;
&lt;br /&gt;
For more information, please read the [[Getting Started/Increased Productivity in KDE4 with Scripts]] tutorial.&lt;br /&gt;
&lt;br /&gt;
=== Switching to the New User ===&lt;br /&gt;
Switch to the user kde-devel: (don't forget the dash)&lt;br /&gt;
&amp;lt;code bash&amp;gt;&lt;br /&gt;
su - kde-devel&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The rest of this tutorial assumes you are running as the &amp;lt;tt&amp;gt;kde-devel&amp;lt;/tt&amp;gt; user.&lt;br /&gt;
&lt;br /&gt;
== The development user's shell ==&lt;br /&gt;
&lt;br /&gt;
On some systems a new user is configured by default to use {{path|/bin/sh}}. If this is not the case on your system, you can skip this section. Using {{path|/bin/sh}} can be very inconvenient to work with and you may want to change it to {{path|/bin/bash}} or another shell.&lt;br /&gt;
&lt;br /&gt;
=== Option 1: As the kde-devel user ===&lt;br /&gt;
&lt;br /&gt;
If you don't have root privileges and your system supports the changing of your own shell with the &amp;lt;tt&amp;gt;chsh&amp;lt;/tt&amp;gt; application, then you could try to change your shell to {{path|/bin/bash}} by using:&lt;br /&gt;
&amp;lt;code bash&amp;gt;&lt;br /&gt;
chsh -s /bin/bash kde-devel&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Option 2: As the root user ===&lt;br /&gt;
&lt;br /&gt;
If your system comes with the &amp;lt;tt&amp;gt;usermod&amp;lt;/tt&amp;gt; application you can run the following command as root: &amp;lt;tt&amp;gt;usermod -s /bin/bash&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Another option is to use the &amp;lt;tt&amp;gt;vipw&amp;lt;/tt&amp;gt; application as root to safely edit your {{path|/etc/passwd}}. Locate 'kde-devel' in the the file. Change '{{path|/bin/sh}}' at the end of the line to read '{{path|/bin/bash}}', save your changes and exit.&lt;br /&gt;
&lt;br /&gt;
The new shell will be started automatically when you log in as the kde-devel user again.&lt;br /&gt;
&lt;br /&gt;
== D-Bus ==&lt;br /&gt;
QtDBus and KDE are known to work with D-Bus versions 0.62, as well as 0.92 and upwards. Versions 0.60 and 0.61 may work too but are not tested. Versions 0.90 and 0.91 are known not to work. We recommend using post-1.0 release versions (at least 0.94), so consider upgrading if you haven't done so.&lt;br /&gt;
&lt;br /&gt;
You may skip this section if you have a recent D-Bus version or if you don't want to upgrade.&lt;br /&gt;
&lt;br /&gt;
Before running these steps in the recipe, make sure your X11 headers and libraries are available. The configure script run on line 5 of the following instructions should output:&lt;br /&gt;
 Building X11 code:        yes&lt;br /&gt;
&lt;br /&gt;
=== The Recipe ===&lt;br /&gt;
&lt;br /&gt;
{{tip|Make sure you did set up your environment correctly as described [[Getting_Started/Build/KDE4#Setting_up_the_environment|above]]. This is necessary for the &amp;lt;tt&amp;gt;cs&amp;lt;/tt&amp;gt; and &amp;lt;tt&amp;gt;cb&amp;lt;/tt&amp;gt; functions to work.}}&lt;br /&gt;
&lt;br /&gt;
 cs # [[Getting_Started/Increased_Productivity_in_KDE4_with_Scripts/.bashrc|'cs' is a bash function, click here to learn more]] &lt;br /&gt;
 wget http://dbus.freedesktop.org/releases/dbus/dbus-1.0.2.tar.gz&lt;br /&gt;
 tar -xvzf dbus-1.0.2.tar.gz&lt;br /&gt;
 cd dbus-1.0.2/&lt;br /&gt;
 ./configure --prefix=$DBUSDIR --localstatedir=/var&lt;br /&gt;
 make&lt;br /&gt;
 sudo make install&lt;br /&gt;
 sudo dbus-uuidgen --ensure&lt;br /&gt;
&lt;br /&gt;
=== What's Happening === &lt;br /&gt;
After changing into the source directory (line 1), D-Bus source code is downloaded from freedesktop.org (line 2) and unpacked (line 3). After going into the newly created D-Bus directory (line 4), the build is set up using the supplied {{path|configure}} script (line 5). After building (line 6) and installing (line 7) D-Bus, we use the &amp;lt;tt&amp;gt;dbus-uuidgen&amp;lt;/tt&amp;gt; tool to install a machine identification file that allows the bus to start automatically when the desktop session starts (line 8).&lt;br /&gt;
&lt;br /&gt;
Note that you need write access to {{path|/var}} for the last two steps. If your system does not have the sudo command, you can use the &amp;lt;tt&amp;gt;su&amp;lt;/tt&amp;gt; command instead, e.g. &amp;lt;tt&amp;gt;su -c &amp;quot;make install&amp;quot;&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== CMake ==&lt;br /&gt;
Skip this if you have [http://cmake.org/ CMake] &amp;gt;=2.4.5 installed. &lt;br /&gt;
You should be able to directly use the binary packages available on the [http://www.cmake.org/HTML/Download.html CMake site]. There are also distribution specific packages available.&lt;br /&gt;
&lt;br /&gt;
=== The Recipe ===&lt;br /&gt;
&amp;lt;!--'cs' and 'cb' are NOT typos!--&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 cs # [[Getting_Started/Increased_Productivity_in_KDE4_with_Scripts/.bashrc|'cs' is a bash function, click Here to learn more]] &lt;br /&gt;
 wget http://www.cmake.org/files/v2.4/cmake-2.4.6.tar.gz&lt;br /&gt;
 tar -zxf cmake-2.4.6.tar.gz&lt;br /&gt;
 mkdir cmake-build&lt;br /&gt;
 cd cmake-build &lt;br /&gt;
 ../cmake-2.4.6/bootstrap&lt;br /&gt;
 make&lt;br /&gt;
 sudo make install&lt;br /&gt;
&lt;br /&gt;
=== What's Happening ===&lt;br /&gt;
First, we go back to the &amp;lt;tt&amp;gt;kde-devel&amp;lt;/tt&amp;gt; user's source directory (line 1), get the CMake sources (line 2) and unpack them (line 3). We create a directory to build CMake in (line 4) and go into it (line 5). We then run the CMake bootstrap script to set up the CMake build (line 6), then make (line 7) and install it (line 8) using the root user.&lt;br /&gt;
&lt;br /&gt;
If your system does not have the &amp;lt;tt&amp;gt;sudo&amp;lt;/tt&amp;gt; command, you can instead do &amp;lt;tt&amp;gt;su -c &amp;quot;make install&amp;quot;&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Qt ==&lt;br /&gt;
Next we need to get the Qt4 that is in KDE's source repository. KDE is guaranteed to build against any Qt 4.3. Qt 4.2 and earlier are not supported and will not work. You should use the copy in the KDE Subversion servers.&lt;br /&gt;
&lt;br /&gt;
=== The Recipe ===&lt;br /&gt;
 cd&lt;br /&gt;
 svn checkout svn://anonsvn.kde.org/home/kde/trunk/qt-copy&lt;br /&gt;
 cd qt-copy&lt;br /&gt;
 ./apply_patches&lt;br /&gt;
 ./configure -qt-gif -no-exceptions -debug -fast \&lt;br /&gt;
  -prefix $QTDIR -qdbus -pch -openssl -nomake examples \&lt;br /&gt;
  -nomake demos&lt;br /&gt;
 make -j2&lt;br /&gt;
&lt;br /&gt;
 # do copy files if the target doesnt match current dir,&lt;br /&gt;
 # clear obj files to save disk space otherwise&lt;br /&gt;
 if [ $QTDIR = `pwd` ]; then \&lt;br /&gt;
 find . -name '*.o' -exec rm {} \; ; \&lt;br /&gt;
 else make install; fi;&lt;br /&gt;
&lt;br /&gt;
=== What's Happening ===&lt;br /&gt;
We switch back to the &amp;lt;tt&amp;gt;kde-devel&amp;lt;/tt&amp;gt; user's home directory (line 1) and download the source code using subversion (svn) from KDE's repository (line 2). After changing into the resulting {{path|qt-copy}} directory (line 3), we run a script that manages the patches that come with &amp;lt;tt&amp;gt;qt-copy&amp;lt;/tt&amp;gt; (line 4). &lt;br /&gt;
&lt;br /&gt;
Once the patches have been applied, we then set up the build using the &amp;lt;tt&amp;gt;configure&amp;lt;/tt&amp;gt; script (line 5-7). The various command line options used are explained in the {{path|qt-copy/README.qt-copy}} file. Finally, we build the minimal requirements for KDE (line 8) and install (line 9-10) Qt. If you want all the example and demo applications, you can either build them individually or simply do a &amp;lt;tt&amp;gt;make&amp;lt;/tt&amp;gt; from the {{path|qt-copy}} directory. &lt;br /&gt;
&lt;br /&gt;
Note that the installation does not require root as it installs Qt locally into {{path|$QTDIR}}. Anyway, installation is only needed if {{path|$QTDIR}} differs from {{path|$HOME/qt-copy}}, which is not the case if you have exactly followed the instructions.&lt;br /&gt;
&lt;br /&gt;
=== Troubleshooting ===&lt;br /&gt;
If you get &amp;quot;error: X11/Xlib.h: No such file or directory&amp;quot;, install the devel package of &amp;lt;tt&amp;gt;xorg&amp;lt;/tt&amp;gt; (the actual name may vary between operating systems, for example it is &amp;lt;tt&amp;gt;xorg-dev&amp;lt;/tt&amp;gt; on Ubuntu based systems such as Kubuntu). &lt;br /&gt;
&lt;br /&gt;
If you get an error in the configure step about missing defines, check the value of &amp;lt;tt&amp;gt;$QMAKESPEC&amp;lt;/tt&amp;gt;.  Some distributions set this to point directly to the system-installed Qt.  If &amp;lt;tt&amp;gt;unset QMAKESPEC&amp;lt;/tt&amp;gt; solves the problem, you probably want to add it to the &amp;lt;tt&amp;gt;~/.bashrc&amp;lt;/tt&amp;gt; script.&lt;br /&gt;
&lt;br /&gt;
If you get an error &amp;quot;.pch/debug-shared/QtCore&amp;quot;, this is because Qt-4.3 enables precompiled headers if your gcc supports it, but for some reason it doesn't work for you. If you use distcc, configure qt with -no-pch. If you use icecream, update to the latest icecream from svn trunk.&lt;br /&gt;
&lt;br /&gt;
Try running any Qt program, like {{program|assistant}}. '''Note:''' You may need to run &amp;lt;tt&amp;gt;xhost +local:kde-devel&amp;lt;/tt&amp;gt; as your regular kde3 user to run this application.  If it crashes in QSpanData::adjustSpanMethods, then your problem is the oxygen style. Try removing {{path|lib/kde4/plugins/styles/kstyle-oxygen.so}} and {{path|lib/kde4/plugins/styles/oxygen.so}} if they exist in the KDE install prefix.&lt;br /&gt;
&lt;br /&gt;
== kdesupport ==&lt;br /&gt;
&lt;br /&gt;
{{warning|If you have jumped to this section without reading [[Getting_Started/Build/KDE4#Setting_up_the_environment|Setting Up The Environment]], '''the recipes provided will not work'''. &lt;br /&gt;
&lt;br /&gt;
The recipes are not in error; &amp;lt;tt&amp;gt;cs&amp;lt;/tt&amp;gt; and &amp;lt;tt&amp;gt;cb&amp;lt;/tt&amp;gt; are not typos. Your environment '''needs''' to be set up correctly for these instructions to work for you.}}&lt;br /&gt;
&lt;br /&gt;
There are several libraries that KDE applications rely on in the kdesupport module. This includes Strigi and Soprano for file metadata and search, eigen for visual effects in applications such as Kalzium, taglib for music players and qca for some cryptographic needs. &lt;br /&gt;
&lt;br /&gt;
Strigi itself has a few dependencies as well: you will need the libraries and headers for libz, libbz2, openssl (libcrypto or libssl), libclucene (=0.9.16; version 0.9.17 does '''not''' work), and either libxml2 or libexpat.&lt;br /&gt;
&lt;br /&gt;
=== The Recipe ===&lt;br /&gt;
&amp;lt;!--'cs' and 'cb' are NOT typos!--&amp;gt;&lt;br /&gt;
 cs # [[Getting_Started/Increased_Productivity_in_KDE4_with_Scripts/.bashrc|cs is not a typo]]&lt;br /&gt;
 svn checkout svn://anonsvn.kde.org/home/kde/trunk/kdesupport/&lt;br /&gt;
 cd kdesupport&lt;br /&gt;
 cmakekde&lt;br /&gt;
&lt;br /&gt;
=== What's Happening ===&lt;br /&gt;
We change to the base source directory (line 1). We download the sources in kdesupport using subversion (line 2), go into the new {{path|~/src/kdesupport}} directory (line 3), and commence the build (line 4). This will leave us in the kdesupport build directory after the build is completed.&lt;br /&gt;
&lt;br /&gt;
=== TroubleShooting ===&lt;br /&gt;
If you get &lt;br /&gt;
 CMake Error: This project requires some variables to be set,&lt;br /&gt;
 and cmake can not find them.&lt;br /&gt;
 Please set the following variables:&lt;br /&gt;
 LIBXML2_INCLUDE_DIR (ADVANCED)&lt;br /&gt;
you should install the development package for libxml2.&lt;br /&gt;
&lt;br /&gt;
If you get &lt;br /&gt;
 CMake Error: Could NOT find REDLAND&lt;br /&gt;
then you need librdf from the Redland.&lt;br /&gt;
If your distribution does not provide the librdf package, you can download the source there: [http://download.librdf.org/source/ http://download.librdf.org/source/] and build it.&lt;br /&gt;
(Gentoo users: The ebuild for librdf is named dev-libs/redland)&lt;br /&gt;
&lt;br /&gt;
If you get&lt;br /&gt;
 Fetching external item into 'kdesupport/admin'&lt;br /&gt;
 Error validating server certificate for 'https://...'&lt;br /&gt;
see [http://techbase.kde.org/Getting_Started/Sources/Using_Subversion_with_KDE Using Subversion with KDE]&lt;br /&gt;
&lt;br /&gt;
If you get&lt;br /&gt;
 FILE cannot create directory: /usr/lib[64]/qt4/plugins/crypto. Maybe need administrative privileges.&lt;br /&gt;
 - - -&lt;br /&gt;
 make: *** [install] Error 255&lt;br /&gt;
take a second look in the .bashrc file described above, are paths correct?&lt;br /&gt;
&lt;br /&gt;
== kdelibs ==&lt;br /&gt;
&lt;br /&gt;
With Qt4, Strigi, and Soprano built, we can now move on to building KDE's base libraries. If you use the aforementioned [[Getting Started/Increased Productivity in KDE4 with Scripts/.bashrc|.bashrc]] this is where those new functions come in handy. &lt;br /&gt;
&lt;br /&gt;
=== The Recipe ===&lt;br /&gt;
&amp;lt;!--'cs' and 'cb' are NOT typos!--&amp;gt;&lt;br /&gt;
 cs # bash function&lt;br /&gt;
 mkdir KDE &amp;amp;&amp;amp; cd KDE&lt;br /&gt;
 svn checkout svn://anonsvn.kde.org/home/kde/trunk/KDE/kdelibs&lt;br /&gt;
 cd kdelibs&lt;br /&gt;
 cmakekde&lt;br /&gt;
&lt;br /&gt;
=== What's Happening ===&lt;br /&gt;
We change to the base source directory (line 1) then make and go into the KDE directory (line 2). We download the sources for kdelibs using subversion (line 3), go into the new {{path|~/src/KDE/kdelibs}} directory (line 4), and commence the build (line 5). This will leave us in the &amp;lt;tt&amp;gt;kdelibs&amp;lt;/tt&amp;gt; build directory after the build is completed.&lt;br /&gt;
&lt;br /&gt;
{{tip|There might be missing dependencies on your system! They are easily overlooked in the output of &amp;lt;tt&amp;gt;cmakekde&amp;lt;/tt&amp;gt;.&lt;br /&gt;
You might want to do a &amp;lt;tt&amp;gt;cmake $KDE_SRC/KDE/MODULE_NAME&amp;lt;/tt&amp;gt; prior to compiling any kde modules (like kdelibs, kdepimlibs etc.)}}&lt;br /&gt;
&lt;br /&gt;
=== Additional KDE-specific CMake modules ===&lt;br /&gt;
There are additional CMake modules in {{path|kdelibs/cmake/modules/}} that are necessary for building KDE4 applications. These will be installed for you when  kdelibs itself is installed.&lt;br /&gt;
&lt;br /&gt;
=== Troubleshooting ===&lt;br /&gt;
If you have problems compiling kdelibs, first make sure the software in the [[Getting_Started/Build/KDE4#Required_Software|Required Software]] section above is installed and works. Other possible hints include:&lt;br /&gt;
* If the &amp;lt;tt&amp;gt;cmakekde&amp;lt;/tt&amp;gt; command fails stating that CMake requires an out of source build directory, remove {{path|~/src/KDE/kdelibs/CMakeCache.txt}}, and try again.&lt;br /&gt;
&lt;br /&gt;
If &amp;lt;tt&amp;gt;cmakekde&amp;lt;/tt&amp;gt; still gives the same error then try this &lt;br /&gt;
 cd&lt;br /&gt;
 cmake -DCMAKE_INSTALL_PREFIX=$KDEDIR \&lt;br /&gt;
 -DCMAKE_BUILD_TYPE=debugfull \&lt;br /&gt;
 -DKDE4_BUILD_TESTS=ON \&lt;br /&gt;
 ~/src/KDE/kdelibs&lt;br /&gt;
 make&lt;br /&gt;
 make install&lt;br /&gt;
* If you received an error stating &amp;quot;Please create a separate build directory and run 'cmake path_to_kdelibs [options]' there.&amp;quot;, then you need to change to your build directory before running cmakekde. (e.g &amp;lt;tt&amp;gt;cs KDE/kdelibs &amp;amp;&amp;amp; cb &amp;amp;&amp;amp; cmakekde&amp;lt;/tt&amp;gt;) If the message stays, run 'svn status' in the kdelibs directory and remove all files labeled with '?'.&lt;br /&gt;
* If Qt wasn't found or the wrong version of Qt was found, make sure that the qmake from the Qt you need is the first qmake in the path.&lt;br /&gt;
* If the problems persist, try the CMake make-option &amp;lt;tt&amp;gt;--keep-going&amp;lt;/tt&amp;gt;.&lt;br /&gt;
* Here you need the libungif library, otherwise you will get an error message like &amp;quot;&amp;lt;tt&amp;gt;Could NOT find GIF&amp;lt;/tt&amp;gt;&amp;quot;.&lt;br /&gt;
* Qt-4.3 upgrade: if you get a link error in kjsembed talking about QScriptEngine, edit CMakeCache.txt in kdelibs and remove the lines that talk about QT_QTUITOOLS_LIBRARY, then type make again (that static library has a new dependency, and the cmake code that adds it needs to run).&lt;br /&gt;
* if you get &amp;lt;code&amp;gt;CMake Error: KDE Requires Qt to be built with SSL support&lt;br /&gt;
&amp;lt;/code&amp;gt;, install openssl-devel, and re-compile QT.&lt;br /&gt;
* if you get &amp;lt;code&amp;gt;kdelibs/kimgio/ico.cpp:188: undefined reference to `QImage::jumpTable()'&amp;lt;/code&amp;gt; it means you compiled QT without QT3 support(no, linking to a true QT3 install won't work)&lt;br /&gt;
&lt;br /&gt;
== kdepimlibs ==&lt;br /&gt;
After &amp;lt;tt&amp;gt;kdelibs&amp;lt;/tt&amp;gt;, but before ''kdebase'', you need to build and install ''kdepimlibs''.&lt;br /&gt;
&lt;br /&gt;
=== The Recipe ===&lt;br /&gt;
&amp;lt;!--'cs' and 'cb' are NOT typos!--&amp;gt;&lt;br /&gt;
 cs KDE # [[Getting_Started/Increased_Productivity_in_KDE4_with_Scripts/.bashrc|cs is not a typo]]&lt;br /&gt;
 svn checkout svn://anonsvn.kde.org/home/kde/trunk/KDE/kdepimlibs&lt;br /&gt;
 cd kdepimlibs&lt;br /&gt;
 cmakekde&lt;br /&gt;
&lt;br /&gt;
=== What's Happening ===&lt;br /&gt;
We go into the KDE source directory (line 1), download the source code for kdepimlibs using subversion (line 2) and then go into the new {{path|~/src/KDE/kdepimlibs}} directory (line 3). We then commence the build (line 4). This will leave us in the &amp;lt;tt&amp;gt;kdepimlibs&amp;lt;/tt&amp;gt; build directory after the build is completed.&lt;br /&gt;
&lt;br /&gt;
=== Troubleshooting ===&lt;br /&gt;
If you have trouble compiling kdepimlibs:&lt;br /&gt;
* the cmakekde command may require a later version of the gpgme library.  This is available from the project's web site: http://www.gnupg.org/(en)/download/index.html - please note that the build of gpgme also requires libgpg-error, also available from the same location.  Both libraries are installed by the &amp;quot;./configure&amp;quot;, &amp;quot;make&amp;quot; and &amp;quot;sudo make install&amp;quot; sequence, with the gpgme library configured with the additional &amp;quot;--with-gpg-error-prefix&amp;quot; parameter.  You may need to overwrite your existing &amp;quot;/usr/bin/gpgme-config&amp;quot; file with the newer version for the kdepimlibs to pick up the new install.&lt;br /&gt;
&lt;br /&gt;
== kdebase ==&lt;br /&gt;
You may need kdebase for some kioslaves.&lt;br /&gt;
&amp;lt;!--'cs' and 'cb' are NOT typos!--&amp;gt;&lt;br /&gt;
 cs KDE # [[Getting_Started/Increased_Productivity_in_KDE4_with_Scripts/.bashrc|cs is not a typo]]&lt;br /&gt;
 svn checkout svn://anonsvn.kde.org/home/kde/trunk/KDE/kdebase&lt;br /&gt;
 cd kdebase&lt;br /&gt;
 cmakekde&lt;br /&gt;
&lt;br /&gt;
=== Troubleshooting ===&lt;br /&gt;
If you have troubles compiling kdebase:&lt;br /&gt;
* Make sure you have the &amp;lt;tt&amp;gt;libxss headers&amp;lt;/tt&amp;gt; installed. (Usually you got undefined references on xscreensaver objects if you do not have those headers)&lt;br /&gt;
* &amp;lt;tt&amp;gt;which meinproc&amp;lt;/tt&amp;gt; has to deliver {{path|/home/kde-devel/kde/bin/meinproc}}&lt;br /&gt;
* if cmakekde can not find the path of kdepimlibs, edit the file {{path|$KDE_BUILD/KDE/kdebase/CMakeCache.txt}} and manually set &amp;lt;tt&amp;gt;KDEPIMLIBS_INCLUDE_DIR:PATH=$KDE_BUILD/kdepimlibs&amp;lt;/tt&amp;gt;&lt;br /&gt;
* if you get an error saying &amp;quot;Please set the following variables: X11_XTest_LIB (ADVANCED)&amp;quot;, install the devel package of &amp;lt;tt&amp;gt;Xtst&amp;lt;/tt&amp;gt;. On some systems, this is packaged separately from &amp;lt;tt&amp;gt;xext&amp;lt;/tt&amp;gt; and called &amp;lt;tt&amp;gt;x11proto-xext-dev&amp;lt;/tt&amp;gt; or &amp;lt;tt&amp;gt;libxtst-dev&amp;lt;/tt&amp;gt;. You may also need to remove the CMakeCache.txt file in the build dir after installing the package.&lt;br /&gt;
* the same for &amp;quot;X11_Xinerama_LIB (ADVANCED)&amp;quot; where you will need the devel package for &amp;lt;tt&amp;gt;xinerama&amp;lt;/tt&amp;gt;.&lt;br /&gt;
* if you get an error complaining about a missing variable X11_Xrandr_LIB, you need the devel package for libxrandr (libxrandr-devel on ubuntu-systems)&lt;br /&gt;
* if you get the error &amp;quot;Please set the following variables: FONTCONFIG_INCLUDE_DIR, FONTCONFIG_LIBRARIES (ADVANCED)&amp;quot;, then you need to install  the libfontconfig headers&lt;br /&gt;
* if you get the error &amp;quot;CMake Error: This project requires some variables to be set, and cmake can not find them. Please set the following variables: KMETADATA_LIBRARIES&amp;quot;, you need to install soprano from kdesupport and to rebuild kdelibs&lt;br /&gt;
* if you get the error &amp;quot;‘XserverRegion’ does not name a type&amp;quot; make sure you have libxcomposite headers installed (&amp;lt;tt&amp;gt;libxcomposite-dev&amp;lt;/tt&amp;gt; in ubuntu)&lt;br /&gt;
&lt;br /&gt;
== Generating local API documentation ==&lt;br /&gt;
Although the API documentation for KDE is available online at [http://api.kde.org api.kde.org], it is sometimes useful to have it on your own disk, for example when you want to use [[Getting_Started/Set_up_KDE_4_for_development#KDevelop|KDevelop]] for browsing the documentation or when you are not able to be online all the time.&lt;br /&gt;
&lt;br /&gt;
Be aware that generating the API documentation can take several hours and takes almost half a gigabyte of diskspace.&lt;br /&gt;
The generation is handled by a script in {{path|kdelibs/doc/api}}, you need &amp;lt;tt&amp;gt;doxygen&amp;lt;/tt&amp;gt; to be able to run it. &lt;br /&gt;
&lt;br /&gt;
To build the API documentation for kdelibs, type the following:&lt;br /&gt;
&amp;lt;!--'cs' and 'cb' are NOT typos!--&amp;gt;&lt;br /&gt;
 cs KDE/kdelibs # [[Getting_Started/Increased_Productivity_in_KDE4_with_Scripts/.bashrc|cs is not a typo]]&lt;br /&gt;
 $KDE_SRC/KDE/kdelibs/doc/api/doxygen.sh \&lt;br /&gt;
 --doxdatadir=$KDE_SRC/KDE/kdelibs/doc/common .&lt;br /&gt;
&lt;br /&gt;
Repeat for other modules as desired.&amp;lt;br&amp;gt;&lt;br /&gt;
 cd &amp;lt;module home&amp;gt;&lt;br /&gt;
 $KDE_SRC/KDE/kdelibs/doc/api/doxygen.sh \&lt;br /&gt;
 --doxdatadir=$KDE_SRC/KDE/kdelibs/doc/common .&lt;br /&gt;
&lt;br /&gt;
== Staying up to date ==&lt;br /&gt;
&lt;br /&gt;
In order to keep the kde4 installation up to date, each of the modules installed should be updated periodically. As Monday is the day for big changes in kdelibs, Tuesday may be the best day to do this. For each module checked out, run &amp;lt;tt&amp;gt;svn up&amp;lt;/tt&amp;gt; and &amp;lt;tt&amp;gt;make&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
For example:&lt;br /&gt;
&amp;lt;code bash&amp;gt;&lt;br /&gt;
cs kdesupport # cs is not a typo&lt;br /&gt;
svn up&lt;br /&gt;
cb # cb is not a typo&lt;br /&gt;
make -j2 VERBOSE=1 &amp;amp;&amp;amp; make install&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== General troubleshooting ==&lt;br /&gt;
&lt;br /&gt;
What can happen over time, after some &amp;lt;tt&amp;gt;svn up&amp;lt;/tt&amp;gt; commands, is that some of the tools used in the KDE build chain change their output format. For example, &amp;lt;tt&amp;gt;kcfg&amp;lt;/tt&amp;gt; files are read by &amp;lt;tt&amp;gt;kconfig_compiler&amp;lt;/tt&amp;gt; to produce configuration dialogs. CMake cannot detect those changes, and the compilation might fail. A workaround is to always force a re-generation of all such files:&lt;br /&gt;
 find $KDE_SRC/KDE/kdebase -name &amp;quot;*.kcfg&amp;quot; | xargs touch&lt;br /&gt;
The same applies to &amp;lt;tt&amp;gt;ui&amp;lt;/tt&amp;gt; files as produced by Qt designer.&lt;br /&gt;
&lt;br /&gt;
== Success! ==&lt;br /&gt;
&lt;br /&gt;
You are now ready to start building other svn modules in the same fashion as you built kdebase, running and testing KDE4 or writing your own patches and applications.&lt;br /&gt;
&lt;br /&gt;
See the [[Getting Started/Set up KDE 4 for development|Set up KDE 4 for development]] tutorial for how to start KDE 4 applications and how to use KDevelop to work on them.&lt;br /&gt;
&lt;br /&gt;
[[Category:Build KDE]]&lt;br /&gt;
[[Category:KDE4]]&lt;/div&gt;</summary>
		<author><name>Logixoul</name></author>	</entry>

	<entry>
		<id>http://techbase.kde.org/Getting_Started/Build/KDE4</id>
		<title>Getting Started/Build/KDE4</title>
		<link rel="alternate" type="text/html" href="http://techbase.kde.org/Getting_Started/Build/KDE4"/>
				<updated>2007-07-04T03:33:34Z</updated>
		
		<summary type="html">&lt;p&gt;Logixoul: /* Required Software */ don't repeat ourselves&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Template:I18n/Language Navigation Bar|Getting_Started/Build/KDE4}}&lt;br /&gt;
&lt;br /&gt;
{{TutorialBrowser|&lt;br /&gt;
&lt;br /&gt;
series=Getting Started|&lt;br /&gt;
&lt;br /&gt;
name=Building KDE4 From Source|&lt;br /&gt;
&lt;br /&gt;
pre=[[../../Sources/Anonymous_SVN|Anonymous SVN Quickstart Guide]]|&lt;br /&gt;
&lt;br /&gt;
next=[[../../Set_up_KDE_4_for_development|Set up KDE 4 for development]]|&lt;br /&gt;
&lt;br /&gt;
reading=[http://kdesvn-build.kde.org/ kdesvn-build: The KDE From Subversion Build Tool]&amp;lt;br&amp;gt;[[../../Increased_Productivity_in_KDE4_with_Scripts|Increased Productivity in KDE4 with Scripts]]&amp;lt;br&amp;gt;[[Development/Tutorials/CMake |Introduction to CMake]]&amp;lt;br&amp;gt;[[../KDE4/FreeBSD|FreeBSD notes]]&amp;lt;br&amp;gt;[[../KDE4/Mac OS X|Instructions for Mac OS X]]|&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== Abstract ==&lt;br /&gt;
&lt;br /&gt;
This tutorial shows one way to get KDE from trunk running on Linux/BSD systems. There are also tutorials for [[/FreeBSD|FreeBSD]], [http://www.kdelibs.com/ Windows], [[/Mac OS X|Mac OS X]] and [http://solaris.kde.org/ Solaris]. Throughout the tutorial the bash shell is used.&lt;br /&gt;
&lt;br /&gt;
{{warning|Expect a higher risk of build failure '''on Mondays''' when critical changes are implemented. [http://developer.kde.org/~dirk/dashboard/ Dashboard] reports unexpected breakages. You are encouraged to fix failing modules.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== Required Software ==&lt;br /&gt;
&lt;br /&gt;
The following must be installed first before you can successfully complete this tutorial:&lt;br /&gt;
* gcc and g++ from the gcc project, preferably version 4.1 or higher&lt;br /&gt;
* svn, the subversion revision control client&lt;br /&gt;
* pkg-config&lt;br /&gt;
* development libraries and headers for X11, OpenGL (mesa-common-dev and libglu1-mesa-dev), libjpeg, libpng, libungif, [http://clucene.sourceforge.net/index.php/Downloads libclucene], [http://download.librdf.org/source/ librdf], libxml2 and libxslt&lt;br /&gt;
* the &amp;lt;tt&amp;gt;makeobj&amp;lt;/tt&amp;gt; script, which is part of kdesdk. You can install it as part of kdesdk (kdesdk-scripts on Debian) or similar package, or just download it itself from [http://websvn.kde.org/*checkout*/trunk/KDE/kdesdk/scripts/makeobj WebSVN]&lt;br /&gt;
* the [http://freedesktop.org/wiki/Software/shared-mime-info shared-mime-info package], which is the freedesktop MIME standard KDE is using now&lt;br /&gt;
* [http://boost.org/ boost], needed by kdebase; after compiling and/or installing boost, in order to make cmake aware about its location (FindBoost),  add boost directory (the one containing include subdirectory) to CMAKE_INCLUDE_PATH or set an environment variable called BOOST_ROOT pointing to boost directory.&lt;br /&gt;
&lt;br /&gt;
=== Kubuntu ===&lt;br /&gt;
&lt;br /&gt;
In Kubuntu 7.04 (Feisty) the build dependencies you need are installed with:&lt;br /&gt;
&amp;lt;code bash&amp;gt;&lt;br /&gt;
sudo aptitude install build-essential cdbs debhelper cmake \&lt;br /&gt;
libxml2-dev libxslt1-dev libbz2-dev libclucene-dev librdf-dev \&lt;br /&gt;
shared-mime-info libgl1-mesa-dev libglu1-mesa-dev mesa-common-dev \&lt;br /&gt;
libxext-dev libjpeg-dev libpng-dev subversion libsm-dev libxinerama-dev \&lt;br /&gt;
libxrender-dev libfontconfig-dev libboost-dev libxcursor-dev doxygen \&lt;br /&gt;
libungif4-dev libdbus-1-dev libgpgme11-dev libssl-dev&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You can skip the manual installation of CMake 2.4.6 and DBus with: &lt;br /&gt;
&amp;lt;code bash&amp;gt;&lt;br /&gt;
sudo aptitude install libdbus-1-dev cmake&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
And for fully functional [[apidox]] frame work you also need:&lt;br /&gt;
&amp;lt;code bash&amp;gt;&lt;br /&gt;
sudo aptitude install graphviz&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== openSUSE ===&lt;br /&gt;
&lt;br /&gt;
In openSUSE 10.2 and newer, you can install packages using [http://en.opensuse.org/Zypper Zypper]:&lt;br /&gt;
&amp;lt;code bash&amp;gt;&lt;br /&gt;
sudo zypper install &amp;lt;package-name&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In older releases of SUSE, you can use YaST:&lt;br /&gt;
&amp;lt;code bash&amp;gt;&lt;br /&gt;
su&lt;br /&gt;
yast -i &amp;lt;packagename&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Required Packages'''&lt;br /&gt;
&lt;br /&gt;
The packages you will need to install are:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
xorg-x11-devel&lt;br /&gt;
libxml2-devel &lt;br /&gt;
kdesdk3 &lt;br /&gt;
clucene-core-devel &lt;br /&gt;
boost-devel&lt;br /&gt;
libjpeg-devel &lt;br /&gt;
liblrdf-devel &lt;br /&gt;
libpng-devel &lt;br /&gt;
libxslt-devel &lt;br /&gt;
libredland-devel&lt;br /&gt;
Mesa-devel &lt;br /&gt;
giflib-devel &lt;br /&gt;
subversion &lt;br /&gt;
gcc &lt;br /&gt;
gcc-c++&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Optional Packages'''&lt;br /&gt;
&lt;br /&gt;
You can skip the manual installation of Qt 4.3, CMake 2.4.6 and DBus by installing the adding the openSUSE Build Service KDE4 Repository to your installation sources.&lt;br /&gt;
&lt;br /&gt;
For openSUSE 10.2 and newer do:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
sudo zypper service-add http://software.opensuse.org/download/KDE:/KDE4/openSUSE_10.2 KDE4-102&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For older versions of SUSE Linux do:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
su&lt;br /&gt;
installation_sources -a http://software.opensuse.org/download/KDE:/KDE4/[YOUR SUSE LINUX VERSION]&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now install the following packages (and their dependencies):&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
cmake&lt;br /&gt;
dbus-1-devel&lt;br /&gt;
libqt4-devel&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
And for fully functional apidox frame work you also need:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
graphviz&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
CMake binary packages for openSUSE are available from [http://software.opensuse.org/download/devel:/tools:/building/ openSUSE build service].&lt;br /&gt;
&lt;br /&gt;
=== Gentoo ===&lt;br /&gt;
&lt;br /&gt;
You can use most stable ebuilds just remember to sync your portage before you begin.&lt;br /&gt;
&lt;br /&gt;
We need to be unmasked and/or kept at a lower version to continue.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code bash&amp;gt;&lt;br /&gt;
# echo 'x11-libs/qt' &amp;gt;&amp;gt; /etc/portage/package.keywords&lt;br /&gt;
# echo 'dev-util/cmake' &amp;gt;&amp;gt; /etc/portage/package.keywords&lt;br /&gt;
# echo 'dev-cpp/clucene' &amp;gt;&amp;gt; /etc/portage/package.keywords&lt;br /&gt;
# echo '&amp;gt;dev-cpp/clucene-0.9.16a' &amp;gt;&amp;gt; /etc/portage/package.mask&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
These are the packages you will need to install, some may already be installed so you may skip those by adding the update flag to emerge.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code bash&amp;gt;&lt;br /&gt;
$ emerge -avu ebuild/name&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 sys-devel/gcc&lt;br /&gt;
 dev-util/subversion&lt;br /&gt;
 dev-util/pkgconfig&lt;br /&gt;
 x11-base/xorg-x11&lt;br /&gt;
 media-libs/glut&lt;br /&gt;
 media-libs/mesa&lt;br /&gt;
 media-libs/jpeg&lt;br /&gt;
 media-libs/libpng&lt;br /&gt;
 media-libs/giflib&lt;br /&gt;
 dev-cpp/clucene&lt;br /&gt;
 dev-util/cppunit&lt;br /&gt;
 media-libs/liblrdf&lt;br /&gt;
 dev-libs/libxml2&lt;br /&gt;
 dev-libs/libxslt&lt;br /&gt;
 x11-misc/shared-mime-info&lt;br /&gt;
 kde-base/kdesdk-scripts&lt;br /&gt;
 dev-libs/boost&lt;br /&gt;
 x11-libs/qt&lt;br /&gt;
 dev-util/cmake&lt;br /&gt;
 sys-apps/dbus&lt;br /&gt;
 dev-libs/redland&lt;br /&gt;
&lt;br /&gt;
Provided you have emerged these ebuilds, you can skip compiling them by hand and proceed to [[Getting_Started/Build/KDE4#kdesupport|kdesupport section]].&lt;br /&gt;
&lt;br /&gt;
Good luck!&lt;br /&gt;
&lt;br /&gt;
== Create a user account for KDE4 development ==&lt;br /&gt;
&lt;br /&gt;
{{Note|&lt;br /&gt;
Some people like to have a separate user account for KDE 4 (for instance an old bug deleted files by mistake), and the instructions below were written with that approach.&lt;br /&gt;
&lt;br /&gt;
However it is much more efficient to do everything with a single user account, see [[Getting_Started/Increased_Productivity_in_KDE4_with_Scripts|Increased Productivity in KDE4 with Scripts]]&lt;br /&gt;
for more details. &lt;br /&gt;
&lt;br /&gt;
You can still follow the instructions below, but don't put the environment variables in your &amp;lt;tt&amp;gt;.bashrc&amp;lt;/tt&amp;gt;, put them in a separate file that you source to switch to the KDE 4 environment.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
=== Option 1: Command Line ===&lt;br /&gt;
&amp;lt;code bash&amp;gt;&lt;br /&gt;
useradd -m kde-devel&lt;br /&gt;
passwd kde-devel&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Option 2: Using KControl ===&lt;br /&gt;
&lt;br /&gt;
Instead of using the commands above, you can also use the User module in the KDE Control Center if you already have KDE3 installed.&lt;br /&gt;
&lt;br /&gt;
=== Setting up the environment ===&lt;br /&gt;
&lt;br /&gt;
Copy the {{path|~/.bashrc}} from your normal user account to the new kde-devel account. Next, copy and paste the contents of the [[Getting Started/Increased Productivity in KDE4 with Scripts/.bashrc|example .bashrc]] into {{path|~kde-devel/.bashrc}}. Be sure to comment out the line &amp;lt;tt&amp;gt;alias make=makeobj&amp;lt;/tt&amp;gt; if you do not have the &amp;lt;tt&amp;gt;[[Getting Started/Build/KDE4#Required Software|makeobj]]&amp;lt;/tt&amp;gt; command available. You will probably also want to modify the path to make sure it doesn't include your kde3 paths. To make it run, you have to open a new bash or to execute &lt;br /&gt;
&amp;lt;code bash&amp;gt;&lt;br /&gt;
source ~/.bashrc&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This will provide access to commands such as &amp;lt;tt&amp;gt;cmakekde&amp;lt;/tt&amp;gt; that are used in this tutorial as well as ensure that the proper paths are in place for Qt, KDE and CMake binaries.&lt;br /&gt;
&lt;br /&gt;
For more information, please read the [[Getting Started/Increased Productivity in KDE4 with Scripts]] tutorial.&lt;br /&gt;
&lt;br /&gt;
=== Switching to the New User ===&lt;br /&gt;
Switch to the user kde-devel: (don't forget the dash)&lt;br /&gt;
&amp;lt;code bash&amp;gt;&lt;br /&gt;
su - kde-devel&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The rest of this tutorial assumes you are running as the &amp;lt;tt&amp;gt;kde-devel&amp;lt;/tt&amp;gt; user.&lt;br /&gt;
&lt;br /&gt;
== The development user's shell ==&lt;br /&gt;
&lt;br /&gt;
On some systems a new user is configured by default to use {{path|/bin/sh}}. If this is not the case on your system, you can skip this section. Using {{path|/bin/sh}} can be very inconvenient to work with and you may want to change it to {{path|/bin/bash}} or another shell.&lt;br /&gt;
&lt;br /&gt;
=== Option 1: As the kde-devel user ===&lt;br /&gt;
&lt;br /&gt;
If you don't have root privileges and your system supports the changing of your own shell with the &amp;lt;tt&amp;gt;chsh&amp;lt;/tt&amp;gt; application, then you could try to change your shell to {{path|/bin/bash}} by using:&lt;br /&gt;
&amp;lt;code bash&amp;gt;&lt;br /&gt;
chsh -s /bin/bash kde-devel&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Option 2: As the root user ===&lt;br /&gt;
&lt;br /&gt;
If your system comes with the &amp;lt;tt&amp;gt;usermod&amp;lt;/tt&amp;gt; application you can run the following command as root: &amp;lt;tt&amp;gt;usermod -s /bin/bash&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Another option is to use the &amp;lt;tt&amp;gt;vipw&amp;lt;/tt&amp;gt; application as root to safely edit your {{path|/etc/passwd}}. Locate 'kde-devel' in the the file. Change '{{path|/bin/sh}}' at the end of the line to read '{{path|/bin/bash}}', save your changes and exit.&lt;br /&gt;
&lt;br /&gt;
The new shell will be started automatically when you log in as the kde-devel user again.&lt;br /&gt;
&lt;br /&gt;
== D-Bus ==&lt;br /&gt;
QtDBus and KDE are known to work with D-Bus versions 0.62, as well as 0.92 and upwards. Versions 0.60 and 0.61 may work too but are not tested. Versions 0.90 and 0.91 are known not to work. We recommend using post-1.0 release versions (at least 0.94), so consider upgrading if you haven't done so.&lt;br /&gt;
&lt;br /&gt;
You may skip this section if you have a recent D-Bus version or if you don't want to upgrade.&lt;br /&gt;
&lt;br /&gt;
Before running these steps in the recipe, make sure your X11 headers and libraries are available. The configure script run on line 5 of the following instructions should output:&lt;br /&gt;
 Building X11 code:        yes&lt;br /&gt;
&lt;br /&gt;
=== The Recipe ===&lt;br /&gt;
&lt;br /&gt;
{{tip|Make sure you did set up your environment correctly as described [[Getting_Started/Build/KDE4#Setting_up_the_environment|above]]. This is necessary for the &amp;lt;tt&amp;gt;cs&amp;lt;/tt&amp;gt; and &amp;lt;tt&amp;gt;cb&amp;lt;/tt&amp;gt; functions to work.}}&lt;br /&gt;
&lt;br /&gt;
 cs # [[Getting_Started/Increased_Productivity_in_KDE4_with_Scripts/.bashrc|'cs' is a bash function, click here to learn more]] &lt;br /&gt;
 wget http://dbus.freedesktop.org/releases/dbus/dbus-1.0.2.tar.gz&lt;br /&gt;
 tar -xvzf dbus-1.0.2.tar.gz&lt;br /&gt;
 cd dbus-1.0.2/&lt;br /&gt;
 ./configure --prefix=$DBUSDIR --localstatedir=/var&lt;br /&gt;
 make&lt;br /&gt;
 sudo make install&lt;br /&gt;
 sudo dbus-uuidgen --ensure&lt;br /&gt;
&lt;br /&gt;
=== What's Happening === &lt;br /&gt;
After changing into the source directory (line 1), D-Bus source code is downloaded from freedesktop.org (line 2) and unpacked (line 3). After going into the newly created D-Bus directory (line 4), the build is set up using the supplied {{path|configure}} script (line 5). After building (line 6) and installing (line 7) D-Bus, we use the &amp;lt;tt&amp;gt;dbus-uuidgen&amp;lt;/tt&amp;gt; tool to install a machine identification file that allows the bus to start automatically when the desktop session starts (line 8).&lt;br /&gt;
&lt;br /&gt;
Note that you need write access to {{path|/var}} for the last two steps. If your system does not have the sudo command, you can use the &amp;lt;tt&amp;gt;su&amp;lt;/tt&amp;gt; command instead, e.g. &amp;lt;tt&amp;gt;su -c &amp;quot;make install&amp;quot;&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== CMake ==&lt;br /&gt;
Skip this if you have [http://cmake.org/ CMake] &amp;gt;=2.4.5 installed. &lt;br /&gt;
You should be able to directly use the binary packages available on the [http://www.cmake.org/HTML/Download.html CMake site]. There are also distribution specific packages available.&lt;br /&gt;
&lt;br /&gt;
=== The Recipe ===&lt;br /&gt;
&amp;lt;!--'cs' and 'cb' are NOT typos!--&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 cs # [[Getting_Started/Increased_Productivity_in_KDE4_with_Scripts/.bashrc|'cs' is a bash function, click Here to learn more]] &lt;br /&gt;
 wget http://www.cmake.org/files/v2.4/cmake-2.4.6.tar.gz&lt;br /&gt;
 tar -zxf cmake-2.4.6.tar.gz&lt;br /&gt;
 mkdir cmake-build&lt;br /&gt;
 cd cmake-build &lt;br /&gt;
 ../cmake-2.4.6/bootstrap&lt;br /&gt;
 make&lt;br /&gt;
 sudo make install&lt;br /&gt;
&lt;br /&gt;
=== What's Happening ===&lt;br /&gt;
First, we go back to the &amp;lt;tt&amp;gt;kde-devel&amp;lt;/tt&amp;gt; user's source directory (line 1), get the CMake sources (line 2) and unpack them (line 3). We create a directory to build CMake in (line 4) and go into it (line 5). We then run the CMake bootstrap script to set up the CMake build (line 6), then make (line 7) and install it (line 8) using the root user.&lt;br /&gt;
&lt;br /&gt;
If your system does not have the &amp;lt;tt&amp;gt;sudo&amp;lt;/tt&amp;gt; command, you can instead do &amp;lt;tt&amp;gt;su -c &amp;quot;make install&amp;quot;&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Qt ==&lt;br /&gt;
Next we need to get the Qt4 that is in KDE's source repository. KDE is guaranteed to build against any Qt 4.3. Qt 4.2 and earlier are not supported and will not work. You should use the copy in the KDE Subversion servers.&lt;br /&gt;
&lt;br /&gt;
=== The Recipe ===&lt;br /&gt;
 cd&lt;br /&gt;
 svn checkout svn://anonsvn.kde.org/home/kde/trunk/qt-copy&lt;br /&gt;
 cd qt-copy&lt;br /&gt;
 ./apply_patches&lt;br /&gt;
 ./configure -qt-gif -no-exceptions -debug -fast \&lt;br /&gt;
  -prefix $QTDIR -qdbus -pch -openssl -nomake examples \&lt;br /&gt;
  -nomake demos&lt;br /&gt;
 make -j2&lt;br /&gt;
&lt;br /&gt;
 # do copy files if the target doesnt match current dir,&lt;br /&gt;
 # clear obj files to save disk space otherwise&lt;br /&gt;
 if [ $QTDIR = `pwd` ]; then \&lt;br /&gt;
 find . -name '*.o' -exec rm {} \; ; \&lt;br /&gt;
 else make install; fi;&lt;br /&gt;
&lt;br /&gt;
=== What's Happening ===&lt;br /&gt;
We switch back to the &amp;lt;tt&amp;gt;kde-devel&amp;lt;/tt&amp;gt; user's home directory (line 1) and download the source code using subversion (svn) from KDE's repository (line 2). After changing into the resulting {{path|qt-copy}} directory (line 3), we run a script that manages the patches that come with &amp;lt;tt&amp;gt;qt-copy&amp;lt;/tt&amp;gt; (line 4). &lt;br /&gt;
&lt;br /&gt;
Once the patches have been applied, we then set up the build using the &amp;lt;tt&amp;gt;configure&amp;lt;/tt&amp;gt; script (line 5-7). The various command line options used are explained in the {{path|qt-copy/README.qt-copy}} file. Finally, we build the minimal requirements for KDE (line 8) and install (line 9-10) Qt. If you want all the example and demo applications, you can either build them individually or simply do a &amp;lt;tt&amp;gt;make&amp;lt;/tt&amp;gt; from the {{path|qt-copy}} directory. &lt;br /&gt;
&lt;br /&gt;
Note that the installation does not require root as it installs Qt locally into {{path|$QTDIR}}. Anyway, installation is only needed if {{path|$QTDIR}} differs from {{path|$HOME/qt-copy}}, which is not the case if you have exactly followed the instructions.&lt;br /&gt;
&lt;br /&gt;
=== Troubleshooting ===&lt;br /&gt;
If you get &amp;quot;error: X11/Xlib.h: No such file or directory&amp;quot;, install the devel package of &amp;lt;tt&amp;gt;xorg&amp;lt;/tt&amp;gt; (the actual name may vary between operating systems, for example it is &amp;lt;tt&amp;gt;xorg-dev&amp;lt;/tt&amp;gt; on Ubuntu based systems such as Kubuntu). &lt;br /&gt;
&lt;br /&gt;
If you get an error in the configure step about missing defines, check the value of &amp;lt;tt&amp;gt;$QMAKESPEC&amp;lt;/tt&amp;gt;.  Some distributions set this to point directly to the system-installed Qt.  If &amp;lt;tt&amp;gt;unset QMAKESPEC&amp;lt;/tt&amp;gt; solves the problem, you probably want to add it to the &amp;lt;tt&amp;gt;~/.bashrc&amp;lt;/tt&amp;gt; script.&lt;br /&gt;
&lt;br /&gt;
If you get an error &amp;quot;.pch/debug-shared/QtCore&amp;quot;, this is because Qt-4.3 enables precompiled headers if your gcc supports it, but for some reason it doesn't work for you. If you use distcc, configure qt with -no-pch. If you use icecream, update to the latest icecream from svn trunk.&lt;br /&gt;
&lt;br /&gt;
Try running any Qt program, like {{program|assistant}}. '''Note:''' You may need to run &amp;lt;tt&amp;gt;xhost +local:kde-devel&amp;lt;/tt&amp;gt; as your regular kde3 user to run this application.  If it crashes in QSpanData::adjustSpanMethods, then your problem is the oxygen style. Try removing {{path|lib/kde4/plugins/styles/kstyle-oxygen.so}} and {{path|lib/kde4/plugins/styles/oxygen.so}} if they exist in the KDE install prefix.&lt;br /&gt;
&lt;br /&gt;
== kdesupport ==&lt;br /&gt;
&lt;br /&gt;
{{warning|If you have jumped to this section without reading [[Getting_Started/Build/KDE4#Setting_up_the_environment|Setting Up The Environment]], '''the recipes provided will not work'''. &lt;br /&gt;
&lt;br /&gt;
The recipes are not in error; &amp;lt;tt&amp;gt;cs&amp;lt;/tt&amp;gt; and &amp;lt;tt&amp;gt;cb&amp;lt;/tt&amp;gt; are not typos. Your environment '''needs''' to be set up correctly for these instructions to work for you.}}&lt;br /&gt;
&lt;br /&gt;
There are several libraries that KDE applications rely on in the kdesupport module. This includes Strigi and Soprano for file metadata and search, eigen for visual effects in applications such as Kalzium, taglib for music players and qca for some cryptographic needs. &lt;br /&gt;
&lt;br /&gt;
Strigi itself has a few dependencies as well: you will need the libraries and headers for libz, libbz2, openssl (libcrypto or libssl), libclucene (=0.9.16; version 0.9.17 does '''not''' work), and either libxml2 or libexpat.&lt;br /&gt;
&lt;br /&gt;
=== The Recipe ===&lt;br /&gt;
&amp;lt;!--'cs' and 'cb' are NOT typos!--&amp;gt;&lt;br /&gt;
 cs # [[Getting_Started/Increased_Productivity_in_KDE4_with_Scripts/.bashrc|cs is not a typo]]&lt;br /&gt;
 svn checkout svn://anonsvn.kde.org/home/kde/trunk/kdesupport/&lt;br /&gt;
 cd kdesupport&lt;br /&gt;
 cmakekde&lt;br /&gt;
&lt;br /&gt;
=== What's Happening ===&lt;br /&gt;
We change to the base source directory (line 1). We download the sources in kdesupport using subversion (line 2), go into the new {{path|~/src/kdesupport}} directory (line 3), and commence the build (line 4). This will leave us in the kdesupport build directory after the build is completed.&lt;br /&gt;
&lt;br /&gt;
=== TroubleShooting ===&lt;br /&gt;
If you get &lt;br /&gt;
 CMake Error: This project requires some variables to be set,&lt;br /&gt;
 and cmake can not find them.&lt;br /&gt;
 Please set the following variables:&lt;br /&gt;
 LIBXML2_INCLUDE_DIR (ADVANCED)&lt;br /&gt;
you should install the development package for libxml2.&lt;br /&gt;
&lt;br /&gt;
If you get &lt;br /&gt;
 CMake Error: Could NOT find REDLAND&lt;br /&gt;
then you need librdf from the Redland.&lt;br /&gt;
If your distribution does not provide the librdf package, you can download the source there: [http://download.librdf.org/source/ http://download.librdf.org/source/] and build it.&lt;br /&gt;
(Gentoo users: The ebuild for librdf is named dev-libs/redland)&lt;br /&gt;
&lt;br /&gt;
If you get&lt;br /&gt;
 Fetching external item into 'kdesupport/admin'&lt;br /&gt;
 Error validating server certificate for 'https://...'&lt;br /&gt;
see [http://techbase.kde.org/Getting_Started/Sources/Using_Subversion_with_KDE Using Subversion with KDE]&lt;br /&gt;
&lt;br /&gt;
If you get&lt;br /&gt;
 FILE cannot create directory: /usr/lib[64]/qt4/plugins/crypto. Maybe need administrative privileges.&lt;br /&gt;
 - - -&lt;br /&gt;
 make: *** [install] Error 255&lt;br /&gt;
take a second look in the .bashrc file described above, are paths correct?&lt;br /&gt;
&lt;br /&gt;
== kdelibs ==&lt;br /&gt;
&lt;br /&gt;
With Qt4, Strigi, and Soprano built, we can now move on to building KDE's base libraries. If you use the aforementioned [[Getting Started/Increased Productivity in KDE4 with Scripts/.bashrc|.bashrc]] this is where those new functions come in handy. &lt;br /&gt;
&lt;br /&gt;
=== The Recipe ===&lt;br /&gt;
&amp;lt;!--'cs' and 'cb' are NOT typos!--&amp;gt;&lt;br /&gt;
 cs # bash function&lt;br /&gt;
 mkdir KDE &amp;amp;&amp;amp; cd KDE&lt;br /&gt;
 svn checkout svn://anonsvn.kde.org/home/kde/trunk/KDE/kdelibs&lt;br /&gt;
 cd kdelibs&lt;br /&gt;
 cmakekde&lt;br /&gt;
&lt;br /&gt;
=== What's Happening ===&lt;br /&gt;
We change to the base source directory (line 1) then make and go into the KDE directory (line 2). We download the sources for kdelibs using subversion (line 3), go into the new {{path|~/src/KDE/kdelibs}} directory (line 4), and commence the build (line 5). This will leave us in the &amp;lt;tt&amp;gt;kdelibs&amp;lt;/tt&amp;gt; build directory after the build is completed.&lt;br /&gt;
&lt;br /&gt;
{{tip|There might be missing dependencies on your system! They are easily overlooked in the output of &amp;lt;tt&amp;gt;cmakekde&amp;lt;/tt&amp;gt;.&lt;br /&gt;
You might want to do a &amp;lt;tt&amp;gt;cmake $KDE_SRC/KDE/MODULE_NAME&amp;lt;/tt&amp;gt; prior to compiling any kde modules (like kdelibs, kdepimlibs etc.)}}&lt;br /&gt;
&lt;br /&gt;
=== Additional KDE-specific CMake modules ===&lt;br /&gt;
There are additional CMake modules in {{path|kdelibs/cmake/modules/}} that are necessary for building KDE4 applications. These will be installed for you when  kdelibs itself is installed.&lt;br /&gt;
&lt;br /&gt;
=== Troubleshooting ===&lt;br /&gt;
If you have problems compiling kdelibs, first make sure the software in the [[Getting_Started/Build/KDE4#Required_Software|Required Software]] section above is installed and works. Other possible hints include:&lt;br /&gt;
* If the &amp;lt;tt&amp;gt;cmakekde&amp;lt;/tt&amp;gt; command fails stating that CMake requires an out of source build directory, remove {{path|~/src/KDE/kdelibs/CMakeCache.txt}}, and try again.&lt;br /&gt;
&lt;br /&gt;
If &amp;lt;tt&amp;gt;cmakekde&amp;lt;/tt&amp;gt; still gives the same error then try this &lt;br /&gt;
 cd&lt;br /&gt;
 cmake -DCMAKE_INSTALL_PREFIX=$KDEDIR \&lt;br /&gt;
 -DCMAKE_BUILD_TYPE=debugfull \&lt;br /&gt;
 -DKDE4_BUILD_TESTS=ON \&lt;br /&gt;
 ~/src/KDE/kdelibs&lt;br /&gt;
 make&lt;br /&gt;
 make install&lt;br /&gt;
* If you received an error stating &amp;quot;Please create a separate build directory and run 'cmake path_to_kdelibs [options]' there.&amp;quot;, then you need to change to your build directory before running cmakekde. (e.g &amp;lt;tt&amp;gt;cs KDE/kdelibs &amp;amp;&amp;amp; cb &amp;amp;&amp;amp; cmakekde&amp;lt;/tt&amp;gt;) If the message stays, run 'svn status' in the kdelibs directory and remove all files labeled with '?'.&lt;br /&gt;
* If Qt wasn't found or the wrong version of Qt was found, make sure that the qmake from the Qt you need is the first qmake in the path.&lt;br /&gt;
* If the problems persist, try the CMake make-option &amp;lt;tt&amp;gt;--keep-going&amp;lt;/tt&amp;gt;.&lt;br /&gt;
* Here you need the libungif library, otherwise you will get an error message like &amp;quot;&amp;lt;tt&amp;gt;Could NOT find GIF&amp;lt;/tt&amp;gt;&amp;quot;.&lt;br /&gt;
* Qt-4.3 upgrade: if you get a link error in kjsembed talking about QScriptEngine, edit CMakeCache.txt in kdelibs and remove the lines that talk about QT_QTUITOOLS_LIBRARY, then type make again (that static library has a new dependency, and the cmake code that adds it needs to run).&lt;br /&gt;
* if you get &amp;lt;code&amp;gt;CMake Error: KDE Requires Qt to be built with SSL support&lt;br /&gt;
&amp;lt;/code&amp;gt;, install openssl-devel, and re-compile QT.&lt;br /&gt;
* if you get &amp;lt;code&amp;gt;kdelibs/kimgio/ico.cpp:188: undefined reference to `QImage::jumpTable()'&amp;lt;/code&amp;gt; it means you compiled QT without QT3 support(no, linking to a true QT3 install won't work)&lt;br /&gt;
&lt;br /&gt;
== kdepimlibs ==&lt;br /&gt;
After &amp;lt;tt&amp;gt;kdelibs&amp;lt;/tt&amp;gt;, but before ''kdebase'', you need to build and install ''kdepimlibs''.&lt;br /&gt;
&lt;br /&gt;
=== The Recipe ===&lt;br /&gt;
&amp;lt;!--'cs' and 'cb' are NOT typos!--&amp;gt;&lt;br /&gt;
 cs KDE # [[Getting_Started/Increased_Productivity_in_KDE4_with_Scripts/.bashrc|cs is not a typo]]&lt;br /&gt;
 svn checkout svn://anonsvn.kde.org/home/kde/trunk/KDE/kdepimlibs&lt;br /&gt;
 cd kdepimlibs&lt;br /&gt;
 cmakekde&lt;br /&gt;
&lt;br /&gt;
=== What's Happening ===&lt;br /&gt;
We go into the KDE source directory (line 1), download the source code for kdepimlibs using subversion (line 2) and then go into the new {{path|~/src/KDE/kdepimlibs}} directory (line 3). We then commence the build (line 4). This will leave us in the &amp;lt;tt&amp;gt;kdepimlibs&amp;lt;/tt&amp;gt; build directory after the build is completed.&lt;br /&gt;
&lt;br /&gt;
=== Troubleshooting ===&lt;br /&gt;
If you have trouble compiling kdepimlibs:&lt;br /&gt;
* the cmakekde command may require a later version of the gpgme library.  This is available from the project's web site: http://www.gnupg.org/(en)/download/index.html - please note that the build of gpgme also requires libgpg-error, also available from the same location.  Both libraries are installed by the &amp;quot;./configure&amp;quot;, &amp;quot;make&amp;quot; and &amp;quot;sudo make install&amp;quot; sequence, with the gpgme library configured with the additional &amp;quot;--with-gpg-error-prefix&amp;quot; parameter.  You may need to overwrite your existing &amp;quot;/usr/bin/gpgme-config&amp;quot; file with the newer version for the kdepimlibs to pick up the new install.&lt;br /&gt;
&lt;br /&gt;
== kdebase ==&lt;br /&gt;
You may need kdebase for some kioslaves.&lt;br /&gt;
&amp;lt;!--'cs' and 'cb' are NOT typos!--&amp;gt;&lt;br /&gt;
 cs KDE # [[Getting_Started/Increased_Productivity_in_KDE4_with_Scripts/.bashrc|cs is not a typo]]&lt;br /&gt;
 svn checkout svn://anonsvn.kde.org/home/kde/trunk/KDE/kdebase&lt;br /&gt;
 cd kdebase&lt;br /&gt;
 cmakekde&lt;br /&gt;
&lt;br /&gt;
=== Troubleshooting ===&lt;br /&gt;
If you have troubles compiling kdebase:&lt;br /&gt;
* Make sure you have the &amp;lt;tt&amp;gt;libxss headers&amp;lt;/tt&amp;gt; installed. (Usually you got undefined references on xscreensaver objects if you do not have those headers)&lt;br /&gt;
* &amp;lt;tt&amp;gt;which meinproc&amp;lt;/tt&amp;gt; has to deliver {{path|/home/kde-devel/kde/bin/meinproc}}&lt;br /&gt;
* if cmakekde can not find the path of kdepimlibs, edit the file {{path|$KDE_BUILD/KDE/kdebase/CMakeCache.txt}} and manually set &amp;lt;tt&amp;gt;KDEPIMLIBS_INCLUDE_DIR:PATH=$KDE_BUILD/kdepimlibs&amp;lt;/tt&amp;gt;&lt;br /&gt;
* if you get an error saying &amp;quot;Please set the following variables: X11_XTest_LIB (ADVANCED)&amp;quot;, install the devel package of &amp;lt;tt&amp;gt;Xtst&amp;lt;/tt&amp;gt;. On some systems, this is packaged separately from &amp;lt;tt&amp;gt;xext&amp;lt;/tt&amp;gt; and called &amp;lt;tt&amp;gt;x11proto-xext-dev&amp;lt;/tt&amp;gt; or &amp;lt;tt&amp;gt;libxtst-dev&amp;lt;/tt&amp;gt;. You may also need to remove the CMakeCache.txt file in the build dir after installing the package.&lt;br /&gt;
* the same for &amp;quot;X11_Xinerama_LIB (ADVANCED)&amp;quot; where you will need the devel package for &amp;lt;tt&amp;gt;xinerama&amp;lt;/tt&amp;gt;.&lt;br /&gt;
* if you get an error complaining about a missing variable X11_Xrandr_LIB, you need the devel package for libxrandr (libxrandr-devel on ubuntu-systems)&lt;br /&gt;
* if you get the error &amp;quot;Please set the following variables: FONTCONFIG_INCLUDE_DIR, FONTCONFIG_LIBRARIES (ADVANCED)&amp;quot;, then you need to install  the libfontconfig headers&lt;br /&gt;
* if you get the error &amp;quot;CMake Error: This project requires some variables to be set, and cmake can not find them. Please set the following variables: KMETADATA_LIBRARIES&amp;quot;, you need to install soprano from kdesupport and to rebuild kdelibs&lt;br /&gt;
* if you get the error &amp;quot;‘XserverRegion’ does not name a type&amp;quot; make sure you have libxcomposite headers installed (&amp;lt;tt&amp;gt;libxcomposite-dev&amp;lt;/tt&amp;gt; in ubuntu)&lt;br /&gt;
&lt;br /&gt;
== Generating local API documentation ==&lt;br /&gt;
Although the API documentation for KDE is available online at [http://api.kde.org api.kde.org], it is sometimes useful to have it on your own disk, for example when you want to use [[Getting_Started/Set_up_KDE_4_for_development#KDevelop|KDevelop]] for browsing the documentation or when you are not able to be online all the time.&lt;br /&gt;
&lt;br /&gt;
Be aware that generating the API documentation can take several hours and takes almost half a gigabyte of diskspace.&lt;br /&gt;
The generation is handled by a script in {{path|kdelibs/doc/api}}, you need &amp;lt;tt&amp;gt;doxygen&amp;lt;/tt&amp;gt; to be able to run it. &lt;br /&gt;
&lt;br /&gt;
To build the API documentation for kdelibs, type the following:&lt;br /&gt;
&amp;lt;!--'cs' and 'cb' are NOT typos!--&amp;gt;&lt;br /&gt;
 cs KDE/kdelibs # [[Getting_Started/Increased_Productivity_in_KDE4_with_Scripts/.bashrc|cs is not a typo]]&lt;br /&gt;
 $KDE_SRC/KDE/kdelibs/doc/api/doxygen.sh \&lt;br /&gt;
 --doxdatadir=$KDE_SRC/KDE/kdelibs/doc/common .&lt;br /&gt;
&lt;br /&gt;
Repeat for other modules as desired.&amp;lt;br&amp;gt;&lt;br /&gt;
 cd &amp;lt;module home&amp;gt;&lt;br /&gt;
 $KDE_SRC/KDE/kdelibs/doc/api/doxygen.sh \&lt;br /&gt;
 --doxdatadir=$KDE_SRC/KDE/kdelibs/doc/common .&lt;br /&gt;
&lt;br /&gt;
== Staying up to date ==&lt;br /&gt;
&lt;br /&gt;
In order to keep the kde4 installation up to date, each of the modules installed should be updated periodically. As Monday is the day for big changes in kdelibs, Tuesday may be the best day to do this. For each module checked out, run &amp;lt;tt&amp;gt;svn up&amp;lt;/tt&amp;gt; and &amp;lt;tt&amp;gt;make&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
For example:&lt;br /&gt;
&amp;lt;code bash&amp;gt;&lt;br /&gt;
cs kdesupport # cs is not a typo&lt;br /&gt;
svn up&lt;br /&gt;
cb # cb is not a typo&lt;br /&gt;
make -j2 VERBOSE=1 &amp;amp;&amp;amp; make install&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== General troubleshooting ==&lt;br /&gt;
&lt;br /&gt;
What can happen over time, after some &amp;lt;tt&amp;gt;svn up&amp;lt;/tt&amp;gt; commands, is that some of the tools used in the KDE build chain change their output format. For example, &amp;lt;tt&amp;gt;kcfg&amp;lt;/tt&amp;gt; files are read by &amp;lt;tt&amp;gt;kconfig_compiler&amp;lt;/tt&amp;gt; to produce configuration dialogs. CMake cannot detect those changes, and the compilation might fail. A workaround is to always force a re-generation of all such files:&lt;br /&gt;
 find $KDE_SRC/KDE/kdebase -name &amp;quot;*.kcfg&amp;quot; | xargs touch&lt;br /&gt;
The same applies to &amp;lt;tt&amp;gt;ui&amp;lt;/tt&amp;gt; files as produced by Qt designer.&lt;br /&gt;
&lt;br /&gt;
== Success! ==&lt;br /&gt;
&lt;br /&gt;
You are now ready to start building other svn modules in the same fashion as you built kdebase, running and testing KDE4 or writing your own patches and applications.&lt;br /&gt;
&lt;br /&gt;
See the [[Getting Started/Set up KDE 4 for development|Set up KDE 4 for development]] tutorial for how to start KDE 4 applications and how to use KDevelop to work on them.&lt;br /&gt;
&lt;br /&gt;
[[Category:Build KDE]]&lt;br /&gt;
[[Category:KDE4]]&lt;/div&gt;</summary>
		<author><name>Logixoul</name></author>	</entry>

	<entry>
		<id>http://techbase.kde.org/Getting_Started/Build/KDE4</id>
		<title>Getting Started/Build/KDE4</title>
		<link rel="alternate" type="text/html" href="http://techbase.kde.org/Getting_Started/Build/KDE4"/>
				<updated>2007-07-04T03:08:17Z</updated>
		
		<summary type="html">&lt;p&gt;Logixoul: /* Abstract */ brevity&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Template:I18n/Language Navigation Bar|Getting_Started/Build/KDE4}}&lt;br /&gt;
&lt;br /&gt;
{{TutorialBrowser|&lt;br /&gt;
&lt;br /&gt;
series=Getting Started|&lt;br /&gt;
&lt;br /&gt;
name=Building KDE4 From Source|&lt;br /&gt;
&lt;br /&gt;
pre=[[../../Sources/Anonymous_SVN|Anonymous SVN Quickstart Guide]]|&lt;br /&gt;
&lt;br /&gt;
next=[[../../Set_up_KDE_4_for_development|Set up KDE 4 for development]]|&lt;br /&gt;
&lt;br /&gt;
reading=[http://kdesvn-build.kde.org/ kdesvn-build: The KDE From Subversion Build Tool]&amp;lt;br&amp;gt;[[../../Increased_Productivity_in_KDE4_with_Scripts|Increased Productivity in KDE4 with Scripts]]&amp;lt;br&amp;gt;[[Development/Tutorials/CMake |Introduction to CMake]]&amp;lt;br&amp;gt;[[../KDE4/FreeBSD|FreeBSD notes]]&amp;lt;br&amp;gt;[[../KDE4/Mac OS X|Instructions for Mac OS X]]|&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== Abstract ==&lt;br /&gt;
&lt;br /&gt;
This tutorial shows one way to get KDE from trunk running on Linux/BSD systems. There are also tutorials for [[/FreeBSD|FreeBSD]], [http://www.kdelibs.com/ Windows], [[/Mac OS X|Mac OS X]] and [http://solaris.kde.org/ Solaris]. Throughout the tutorial the bash shell is used.&lt;br /&gt;
&lt;br /&gt;
{{warning|Expect a higher risk of build failure '''on Mondays''' when critical changes are implemented. [http://developer.kde.org/~dirk/dashboard/ Dashboard] reports unexpected breakages. You are encouraged to fix failing modules.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== Required Software ==&lt;br /&gt;
&lt;br /&gt;
The following must be installed first before you can successfully complete this tutorial:&lt;br /&gt;
* gcc and g++ from the gcc project, preferably version 4.1 or higher&lt;br /&gt;
* svn, the subversion revision control client&lt;br /&gt;
* pkg-config&lt;br /&gt;
* development libraries and headers for X11, OpenGL (mesa-common-dev and libglu1-mesa-dev), libjpeg, libpng, libungif, [http://clucene.sourceforge.net/index.php/Downloads libclucene], [http://download.librdf.org/source/ librdf], libxml2 and libxslt&lt;br /&gt;
* the &amp;lt;tt&amp;gt;makeobj&amp;lt;/tt&amp;gt; script, which is part of kdesdk. You can install it as part of kdesdk (kdesdk-scripts on Debian) or similar package, or just download it itself from [http://websvn.kde.org/*checkout*/trunk/KDE/kdesdk/scripts/makeobj WebSVN]&lt;br /&gt;
* the [http://freedesktop.org/wiki/Software/shared-mime-info shared-mime-info package], which is the freedesktop MIME standard KDE is using now&lt;br /&gt;
* [http://boost.org/ boost], needed by kdebase; after compiling and/or installing boost, in order to make cmake aware about its location (FindBoost),  add boost directory (the one containing include subdirectory) to CMAKE_INCLUDE_PATH or set an environment variable called BOOST_ROOT pointing to boost directory.&lt;br /&gt;
&lt;br /&gt;
You may also want to have the following installed:&lt;br /&gt;
* bash&lt;br /&gt;
&lt;br /&gt;
=== Kubuntu ===&lt;br /&gt;
&lt;br /&gt;
In Kubuntu 7.04 (Feisty) the build dependencies you need are installed with:&lt;br /&gt;
&amp;lt;code bash&amp;gt;&lt;br /&gt;
sudo aptitude install build-essential cdbs debhelper cmake \&lt;br /&gt;
libxml2-dev libxslt1-dev libbz2-dev libclucene-dev librdf-dev \&lt;br /&gt;
shared-mime-info libgl1-mesa-dev libglu1-mesa-dev mesa-common-dev \&lt;br /&gt;
libxext-dev libjpeg-dev libpng-dev subversion libsm-dev libxinerama-dev \&lt;br /&gt;
libxrender-dev libfontconfig-dev libboost-dev libxcursor-dev doxygen \&lt;br /&gt;
libungif4-dev libdbus-1-dev libgpgme11-dev libssl-dev&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You can skip the manual installation of CMake 2.4.6 and DBus with: &lt;br /&gt;
&amp;lt;code bash&amp;gt;&lt;br /&gt;
sudo aptitude install libdbus-1-dev cmake&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
And for fully functional [[apidox]] frame work you also need:&lt;br /&gt;
&amp;lt;code bash&amp;gt;&lt;br /&gt;
sudo aptitude install graphviz&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== openSUSE ===&lt;br /&gt;
&lt;br /&gt;
In openSUSE 10.2 and newer, you can install packages using [http://en.opensuse.org/Zypper Zypper]:&lt;br /&gt;
&amp;lt;code bash&amp;gt;&lt;br /&gt;
sudo zypper install &amp;lt;package-name&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In older releases of SUSE, you can use YaST:&lt;br /&gt;
&amp;lt;code bash&amp;gt;&lt;br /&gt;
su&lt;br /&gt;
yast -i &amp;lt;packagename&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Required Packages'''&lt;br /&gt;
&lt;br /&gt;
The packages you will need to install are:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
xorg-x11-devel&lt;br /&gt;
libxml2-devel &lt;br /&gt;
kdesdk3 &lt;br /&gt;
clucene-core-devel &lt;br /&gt;
boost-devel&lt;br /&gt;
libjpeg-devel &lt;br /&gt;
liblrdf-devel &lt;br /&gt;
libpng-devel &lt;br /&gt;
libxslt-devel &lt;br /&gt;
libredland-devel&lt;br /&gt;
Mesa-devel &lt;br /&gt;
giflib-devel &lt;br /&gt;
subversion &lt;br /&gt;
gcc &lt;br /&gt;
gcc-c++&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Optional Packages'''&lt;br /&gt;
&lt;br /&gt;
You can skip the manual installation of Qt 4.3, CMake 2.4.6 and DBus by installing the adding the openSUSE Build Service KDE4 Repository to your installation sources.&lt;br /&gt;
&lt;br /&gt;
For openSUSE 10.2 and newer do:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
sudo zypper service-add http://software.opensuse.org/download/KDE:/KDE4/openSUSE_10.2 KDE4-102&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For older versions of SUSE Linux do:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
su&lt;br /&gt;
installation_sources -a http://software.opensuse.org/download/KDE:/KDE4/[YOUR SUSE LINUX VERSION]&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now install the following packages (and their dependencies):&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
cmake&lt;br /&gt;
dbus-1-devel&lt;br /&gt;
libqt4-devel&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
And for fully functional apidox frame work you also need:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
graphviz&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
CMake binary packages for openSUSE are available from [http://software.opensuse.org/download/devel:/tools:/building/ openSUSE build service].&lt;br /&gt;
&lt;br /&gt;
=== Gentoo ===&lt;br /&gt;
&lt;br /&gt;
You can use most stable ebuilds just remember to sync your portage before you begin.&lt;br /&gt;
&lt;br /&gt;
We need to be unmasked and/or kept at a lower version to continue.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code bash&amp;gt;&lt;br /&gt;
# echo 'x11-libs/qt' &amp;gt;&amp;gt; /etc/portage/package.keywords&lt;br /&gt;
# echo 'dev-util/cmake' &amp;gt;&amp;gt; /etc/portage/package.keywords&lt;br /&gt;
# echo 'dev-cpp/clucene' &amp;gt;&amp;gt; /etc/portage/package.keywords&lt;br /&gt;
# echo '&amp;gt;dev-cpp/clucene-0.9.16a' &amp;gt;&amp;gt; /etc/portage/package.mask&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
These are the packages you will need to install, some may already be installed so you may skip those by adding the update flag to emerge.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code bash&amp;gt;&lt;br /&gt;
$ emerge -avu ebuild/name&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 sys-devel/gcc&lt;br /&gt;
 dev-util/subversion&lt;br /&gt;
 dev-util/pkgconfig&lt;br /&gt;
 x11-base/xorg-x11&lt;br /&gt;
 media-libs/glut&lt;br /&gt;
 media-libs/mesa&lt;br /&gt;
 media-libs/jpeg&lt;br /&gt;
 media-libs/libpng&lt;br /&gt;
 media-libs/giflib&lt;br /&gt;
 dev-cpp/clucene&lt;br /&gt;
 dev-util/cppunit&lt;br /&gt;
 media-libs/liblrdf&lt;br /&gt;
 dev-libs/libxml2&lt;br /&gt;
 dev-libs/libxslt&lt;br /&gt;
 x11-misc/shared-mime-info&lt;br /&gt;
 kde-base/kdesdk-scripts&lt;br /&gt;
 dev-libs/boost&lt;br /&gt;
 x11-libs/qt&lt;br /&gt;
 dev-util/cmake&lt;br /&gt;
 sys-apps/dbus&lt;br /&gt;
 dev-libs/redland&lt;br /&gt;
&lt;br /&gt;
Provided you have emerged these ebuilds, you can skip compiling them by hand and proceed to [[Getting_Started/Build/KDE4#kdesupport|kdesupport section]].&lt;br /&gt;
&lt;br /&gt;
Good luck!&lt;br /&gt;
&lt;br /&gt;
== Create a user account for KDE4 development ==&lt;br /&gt;
&lt;br /&gt;
{{Note|&lt;br /&gt;
Some people like to have a separate user account for KDE 4 (for instance an old bug deleted files by mistake), and the instructions below were written with that approach.&lt;br /&gt;
&lt;br /&gt;
However it is much more efficient to do everything with a single user account, see [[Getting_Started/Increased_Productivity_in_KDE4_with_Scripts|Increased Productivity in KDE4 with Scripts]]&lt;br /&gt;
for more details. &lt;br /&gt;
&lt;br /&gt;
You can still follow the instructions below, but don't put the environment variables in your &amp;lt;tt&amp;gt;.bashrc&amp;lt;/tt&amp;gt;, put them in a separate file that you source to switch to the KDE 4 environment.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
=== Option 1: Command Line ===&lt;br /&gt;
&amp;lt;code bash&amp;gt;&lt;br /&gt;
useradd -m kde-devel&lt;br /&gt;
passwd kde-devel&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Option 2: Using KControl ===&lt;br /&gt;
&lt;br /&gt;
Instead of using the commands above, you can also use the User module in the KDE Control Center if you already have KDE3 installed.&lt;br /&gt;
&lt;br /&gt;
=== Setting up the environment ===&lt;br /&gt;
&lt;br /&gt;
Copy the {{path|~/.bashrc}} from your normal user account to the new kde-devel account. Next, copy and paste the contents of the [[Getting Started/Increased Productivity in KDE4 with Scripts/.bashrc|example .bashrc]] into {{path|~kde-devel/.bashrc}}. Be sure to comment out the line &amp;lt;tt&amp;gt;alias make=makeobj&amp;lt;/tt&amp;gt; if you do not have the &amp;lt;tt&amp;gt;[[Getting Started/Build/KDE4#Required Software|makeobj]]&amp;lt;/tt&amp;gt; command available. You will probably also want to modify the path to make sure it doesn't include your kde3 paths. To make it run, you have to open a new bash or to execute &lt;br /&gt;
&amp;lt;code bash&amp;gt;&lt;br /&gt;
source ~/.bashrc&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This will provide access to commands such as &amp;lt;tt&amp;gt;cmakekde&amp;lt;/tt&amp;gt; that are used in this tutorial as well as ensure that the proper paths are in place for Qt, KDE and CMake binaries.&lt;br /&gt;
&lt;br /&gt;
For more information, please read the [[Getting Started/Increased Productivity in KDE4 with Scripts]] tutorial.&lt;br /&gt;
&lt;br /&gt;
=== Switching to the New User ===&lt;br /&gt;
Switch to the user kde-devel: (don't forget the dash)&lt;br /&gt;
&amp;lt;code bash&amp;gt;&lt;br /&gt;
su - kde-devel&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The rest of this tutorial assumes you are running as the &amp;lt;tt&amp;gt;kde-devel&amp;lt;/tt&amp;gt; user.&lt;br /&gt;
&lt;br /&gt;
== The development user's shell ==&lt;br /&gt;
&lt;br /&gt;
On some systems a new user is configured by default to use {{path|/bin/sh}}. If this is not the case on your system, you can skip this section. Using {{path|/bin/sh}} can be very inconvenient to work with and you may want to change it to {{path|/bin/bash}} or another shell.&lt;br /&gt;
&lt;br /&gt;
=== Option 1: As the kde-devel user ===&lt;br /&gt;
&lt;br /&gt;
If you don't have root privileges and your system supports the changing of your own shell with the &amp;lt;tt&amp;gt;chsh&amp;lt;/tt&amp;gt; application, then you could try to change your shell to {{path|/bin/bash}} by using:&lt;br /&gt;
&amp;lt;code bash&amp;gt;&lt;br /&gt;
chsh -s /bin/bash kde-devel&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Option 2: As the root user ===&lt;br /&gt;
&lt;br /&gt;
If your system comes with the &amp;lt;tt&amp;gt;usermod&amp;lt;/tt&amp;gt; application you can run the following command as root: &amp;lt;tt&amp;gt;usermod -s /bin/bash&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Another option is to use the &amp;lt;tt&amp;gt;vipw&amp;lt;/tt&amp;gt; application as root to safely edit your {{path|/etc/passwd}}. Locate 'kde-devel' in the the file. Change '{{path|/bin/sh}}' at the end of the line to read '{{path|/bin/bash}}', save your changes and exit.&lt;br /&gt;
&lt;br /&gt;
The new shell will be started automatically when you log in as the kde-devel user again.&lt;br /&gt;
&lt;br /&gt;
== D-Bus ==&lt;br /&gt;
QtDBus and KDE are known to work with D-Bus versions 0.62, as well as 0.92 and upwards. Versions 0.60 and 0.61 may work too but are not tested. Versions 0.90 and 0.91 are known not to work. We recommend using post-1.0 release versions (at least 0.94), so consider upgrading if you haven't done so.&lt;br /&gt;
&lt;br /&gt;
You may skip this section if you have a recent D-Bus version or if you don't want to upgrade.&lt;br /&gt;
&lt;br /&gt;
Before running these steps in the recipe, make sure your X11 headers and libraries are available. The configure script run on line 5 of the following instructions should output:&lt;br /&gt;
 Building X11 code:        yes&lt;br /&gt;
&lt;br /&gt;
=== The Recipe ===&lt;br /&gt;
&lt;br /&gt;
{{tip|Make sure you did set up your environment correctly as described [[Getting_Started/Build/KDE4#Setting_up_the_environment|above]]. This is necessary for the &amp;lt;tt&amp;gt;cs&amp;lt;/tt&amp;gt; and &amp;lt;tt&amp;gt;cb&amp;lt;/tt&amp;gt; functions to work.}}&lt;br /&gt;
&lt;br /&gt;
 cs # [[Getting_Started/Increased_Productivity_in_KDE4_with_Scripts/.bashrc|'cs' is a bash function, click here to learn more]] &lt;br /&gt;
 wget http://dbus.freedesktop.org/releases/dbus/dbus-1.0.2.tar.gz&lt;br /&gt;
 tar -xvzf dbus-1.0.2.tar.gz&lt;br /&gt;
 cd dbus-1.0.2/&lt;br /&gt;
 ./configure --prefix=$DBUSDIR --localstatedir=/var&lt;br /&gt;
 make&lt;br /&gt;
 sudo make install&lt;br /&gt;
 sudo dbus-uuidgen --ensure&lt;br /&gt;
&lt;br /&gt;
=== What's Happening === &lt;br /&gt;
After changing into the source directory (line 1), D-Bus source code is downloaded from freedesktop.org (line 2) and unpacked (line 3). After going into the newly created D-Bus directory (line 4), the build is set up using the supplied {{path|configure}} script (line 5). After building (line 6) and installing (line 7) D-Bus, we use the &amp;lt;tt&amp;gt;dbus-uuidgen&amp;lt;/tt&amp;gt; tool to install a machine identification file that allows the bus to start automatically when the desktop session starts (line 8).&lt;br /&gt;
&lt;br /&gt;
Note that you need write access to {{path|/var}} for the last two steps. If your system does not have the sudo command, you can use the &amp;lt;tt&amp;gt;su&amp;lt;/tt&amp;gt; command instead, e.g. &amp;lt;tt&amp;gt;su -c &amp;quot;make install&amp;quot;&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== CMake ==&lt;br /&gt;
Skip this if you have [http://cmake.org/ CMake] &amp;gt;=2.4.5 installed. &lt;br /&gt;
You should be able to directly use the binary packages available on the [http://www.cmake.org/HTML/Download.html CMake site]. There are also distribution specific packages available.&lt;br /&gt;
&lt;br /&gt;
=== The Recipe ===&lt;br /&gt;
&amp;lt;!--'cs' and 'cb' are NOT typos!--&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 cs # [[Getting_Started/Increased_Productivity_in_KDE4_with_Scripts/.bashrc|'cs' is a bash function, click Here to learn more]] &lt;br /&gt;
 wget http://www.cmake.org/files/v2.4/cmake-2.4.6.tar.gz&lt;br /&gt;
 tar -zxf cmake-2.4.6.tar.gz&lt;br /&gt;
 mkdir cmake-build&lt;br /&gt;
 cd cmake-build &lt;br /&gt;
 ../cmake-2.4.6/bootstrap&lt;br /&gt;
 make&lt;br /&gt;
 sudo make install&lt;br /&gt;
&lt;br /&gt;
=== What's Happening ===&lt;br /&gt;
First, we go back to the &amp;lt;tt&amp;gt;kde-devel&amp;lt;/tt&amp;gt; user's source directory (line 1), get the CMake sources (line 2) and unpack them (line 3). We create a directory to build CMake in (line 4) and go into it (line 5). We then run the CMake bootstrap script to set up the CMake build (line 6), then make (line 7) and install it (line 8) using the root user.&lt;br /&gt;
&lt;br /&gt;
If your system does not have the &amp;lt;tt&amp;gt;sudo&amp;lt;/tt&amp;gt; command, you can instead do &amp;lt;tt&amp;gt;su -c &amp;quot;make install&amp;quot;&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Qt ==&lt;br /&gt;
Next we need to get the Qt4 that is in KDE's source repository. KDE is guaranteed to build against any Qt 4.3. Qt 4.2 and earlier are not supported and will not work. You should use the copy in the KDE Subversion servers.&lt;br /&gt;
&lt;br /&gt;
=== The Recipe ===&lt;br /&gt;
 cd&lt;br /&gt;
 svn checkout svn://anonsvn.kde.org/home/kde/trunk/qt-copy&lt;br /&gt;
 cd qt-copy&lt;br /&gt;
 ./apply_patches&lt;br /&gt;
 ./configure -qt-gif -no-exceptions -debug -fast \&lt;br /&gt;
  -prefix $QTDIR -qdbus -pch -openssl -nomake examples \&lt;br /&gt;
  -nomake demos&lt;br /&gt;
 make -j2&lt;br /&gt;
&lt;br /&gt;
 # do copy files if the target doesnt match current dir,&lt;br /&gt;
 # clear obj files to save disk space otherwise&lt;br /&gt;
 if [ $QTDIR = `pwd` ]; then \&lt;br /&gt;
 find . -name '*.o' -exec rm {} \; ; \&lt;br /&gt;
 else make install; fi;&lt;br /&gt;
&lt;br /&gt;
=== What's Happening ===&lt;br /&gt;
We switch back to the &amp;lt;tt&amp;gt;kde-devel&amp;lt;/tt&amp;gt; user's home directory (line 1) and download the source code using subversion (svn) from KDE's repository (line 2). After changing into the resulting {{path|qt-copy}} directory (line 3), we run a script that manages the patches that come with &amp;lt;tt&amp;gt;qt-copy&amp;lt;/tt&amp;gt; (line 4). &lt;br /&gt;
&lt;br /&gt;
Once the patches have been applied, we then set up the build using the &amp;lt;tt&amp;gt;configure&amp;lt;/tt&amp;gt; script (line 5-7). The various command line options used are explained in the {{path|qt-copy/README.qt-copy}} file. Finally, we build the minimal requirements for KDE (line 8) and install (line 9-10) Qt. If you want all the example and demo applications, you can either build them individually or simply do a &amp;lt;tt&amp;gt;make&amp;lt;/tt&amp;gt; from the {{path|qt-copy}} directory. &lt;br /&gt;
&lt;br /&gt;
Note that the installation does not require root as it installs Qt locally into {{path|$QTDIR}}. Anyway, installation is only needed if {{path|$QTDIR}} differs from {{path|$HOME/qt-copy}}, which is not the case if you have exactly followed the instructions.&lt;br /&gt;
&lt;br /&gt;
=== Troubleshooting ===&lt;br /&gt;
If you get &amp;quot;error: X11/Xlib.h: No such file or directory&amp;quot;, install the devel package of &amp;lt;tt&amp;gt;xorg&amp;lt;/tt&amp;gt; (the actual name may vary between operating systems, for example it is &amp;lt;tt&amp;gt;xorg-dev&amp;lt;/tt&amp;gt; on Ubuntu based systems such as Kubuntu). &lt;br /&gt;
&lt;br /&gt;
If you get an error in the configure step about missing defines, check the value of &amp;lt;tt&amp;gt;$QMAKESPEC&amp;lt;/tt&amp;gt;.  Some distributions set this to point directly to the system-installed Qt.  If &amp;lt;tt&amp;gt;unset QMAKESPEC&amp;lt;/tt&amp;gt; solves the problem, you probably want to add it to the &amp;lt;tt&amp;gt;~/.bashrc&amp;lt;/tt&amp;gt; script.&lt;br /&gt;
&lt;br /&gt;
If you get an error &amp;quot;.pch/debug-shared/QtCore&amp;quot;, this is because Qt-4.3 enables precompiled headers if your gcc supports it, but for some reason it doesn't work for you. If you use distcc, configure qt with -no-pch. If you use icecream, update to the latest icecream from svn trunk.&lt;br /&gt;
&lt;br /&gt;
Try running any Qt program, like {{program|assistant}}. '''Note:''' You may need to run &amp;lt;tt&amp;gt;xhost +local:kde-devel&amp;lt;/tt&amp;gt; as your regular kde3 user to run this application.  If it crashes in QSpanData::adjustSpanMethods, then your problem is the oxygen style. Try removing {{path|lib/kde4/plugins/styles/kstyle-oxygen.so}} and {{path|lib/kde4/plugins/styles/oxygen.so}} if they exist in the KDE install prefix.&lt;br /&gt;
&lt;br /&gt;
== kdesupport ==&lt;br /&gt;
&lt;br /&gt;
{{warning|If you have jumped to this section without reading [[Getting_Started/Build/KDE4#Setting_up_the_environment|Setting Up The Environment]], '''the recipes provided will not work'''. &lt;br /&gt;
&lt;br /&gt;
The recipes are not in error; &amp;lt;tt&amp;gt;cs&amp;lt;/tt&amp;gt; and &amp;lt;tt&amp;gt;cb&amp;lt;/tt&amp;gt; are not typos. Your environment '''needs''' to be set up correctly for these instructions to work for you.}}&lt;br /&gt;
&lt;br /&gt;
There are several libraries that KDE applications rely on in the kdesupport module. This includes Strigi and Soprano for file metadata and search, eigen for visual effects in applications such as Kalzium, taglib for music players and qca for some cryptographic needs. &lt;br /&gt;
&lt;br /&gt;
Strigi itself has a few dependencies as well: you will need the libraries and headers for libz, libbz2, openssl (libcrypto or libssl), libclucene (=0.9.16; version 0.9.17 does '''not''' work), and either libxml2 or libexpat.&lt;br /&gt;
&lt;br /&gt;
=== The Recipe ===&lt;br /&gt;
&amp;lt;!--'cs' and 'cb' are NOT typos!--&amp;gt;&lt;br /&gt;
 cs # [[Getting_Started/Increased_Productivity_in_KDE4_with_Scripts/.bashrc|cs is not a typo]]&lt;br /&gt;
 svn checkout svn://anonsvn.kde.org/home/kde/trunk/kdesupport/&lt;br /&gt;
 cd kdesupport&lt;br /&gt;
 cmakekde&lt;br /&gt;
&lt;br /&gt;
=== What's Happening ===&lt;br /&gt;
We change to the base source directory (line 1). We download the sources in kdesupport using subversion (line 2), go into the new {{path|~/src/kdesupport}} directory (line 3), and commence the build (line 4). This will leave us in the kdesupport build directory after the build is completed.&lt;br /&gt;
&lt;br /&gt;
=== TroubleShooting ===&lt;br /&gt;
If you get &lt;br /&gt;
 CMake Error: This project requires some variables to be set,&lt;br /&gt;
 and cmake can not find them.&lt;br /&gt;
 Please set the following variables:&lt;br /&gt;
 LIBXML2_INCLUDE_DIR (ADVANCED)&lt;br /&gt;
you should install the development package for libxml2.&lt;br /&gt;
&lt;br /&gt;
If you get &lt;br /&gt;
 CMake Error: Could NOT find REDLAND&lt;br /&gt;
then you need librdf from the Redland.&lt;br /&gt;
If your distribution does not provide the librdf package, you can download the source there: [http://download.librdf.org/source/ http://download.librdf.org/source/] and build it.&lt;br /&gt;
(Gentoo users: The ebuild for librdf is named dev-libs/redland)&lt;br /&gt;
&lt;br /&gt;
If you get&lt;br /&gt;
 Fetching external item into 'kdesupport/admin'&lt;br /&gt;
 Error validating server certificate for 'https://...'&lt;br /&gt;
see [http://techbase.kde.org/Getting_Started/Sources/Using_Subversion_with_KDE Using Subversion with KDE]&lt;br /&gt;
&lt;br /&gt;
If you get&lt;br /&gt;
 FILE cannot create directory: /usr/lib[64]/qt4/plugins/crypto. Maybe need administrative privileges.&lt;br /&gt;
 - - -&lt;br /&gt;
 make: *** [install] Error 255&lt;br /&gt;
take a second look in the .bashrc file described above, are paths correct?&lt;br /&gt;
&lt;br /&gt;
== kdelibs ==&lt;br /&gt;
&lt;br /&gt;
With Qt4, Strigi, and Soprano built, we can now move on to building KDE's base libraries. If you use the aforementioned [[Getting Started/Increased Productivity in KDE4 with Scripts/.bashrc|.bashrc]] this is where those new functions come in handy. &lt;br /&gt;
&lt;br /&gt;
=== The Recipe ===&lt;br /&gt;
&amp;lt;!--'cs' and 'cb' are NOT typos!--&amp;gt;&lt;br /&gt;
 cs # bash function&lt;br /&gt;
 mkdir KDE &amp;amp;&amp;amp; cd KDE&lt;br /&gt;
 svn checkout svn://anonsvn.kde.org/home/kde/trunk/KDE/kdelibs&lt;br /&gt;
 cd kdelibs&lt;br /&gt;
 cmakekde&lt;br /&gt;
&lt;br /&gt;
=== What's Happening ===&lt;br /&gt;
We change to the base source directory (line 1) then make and go into the KDE directory (line 2). We download the sources for kdelibs using subversion (line 3), go into the new {{path|~/src/KDE/kdelibs}} directory (line 4), and commence the build (line 5). This will leave us in the &amp;lt;tt&amp;gt;kdelibs&amp;lt;/tt&amp;gt; build directory after the build is completed.&lt;br /&gt;
&lt;br /&gt;
{{tip|There might be missing dependencies on your system! They are easily overlooked in the output of &amp;lt;tt&amp;gt;cmakekde&amp;lt;/tt&amp;gt;.&lt;br /&gt;
You might want to do a &amp;lt;tt&amp;gt;cmake $KDE_SRC/KDE/MODULE_NAME&amp;lt;/tt&amp;gt; prior to compiling any kde modules (like kdelibs, kdepimlibs etc.)}}&lt;br /&gt;
&lt;br /&gt;
=== Additional KDE-specific CMake modules ===&lt;br /&gt;
There are additional CMake modules in {{path|kdelibs/cmake/modules/}} that are necessary for building KDE4 applications. These will be installed for you when  kdelibs itself is installed.&lt;br /&gt;
&lt;br /&gt;
=== Troubleshooting ===&lt;br /&gt;
If you have problems compiling kdelibs, first make sure the software in the [[Getting_Started/Build/KDE4#Required_Software|Required Software]] section above is installed and works. Other possible hints include:&lt;br /&gt;
* If the &amp;lt;tt&amp;gt;cmakekde&amp;lt;/tt&amp;gt; command fails stating that CMake requires an out of source build directory, remove {{path|~/src/KDE/kdelibs/CMakeCache.txt}}, and try again.&lt;br /&gt;
&lt;br /&gt;
If &amp;lt;tt&amp;gt;cmakekde&amp;lt;/tt&amp;gt; still gives the same error then try this &lt;br /&gt;
 cd&lt;br /&gt;
 cmake -DCMAKE_INSTALL_PREFIX=$KDEDIR \&lt;br /&gt;
 -DCMAKE_BUILD_TYPE=debugfull \&lt;br /&gt;
 -DKDE4_BUILD_TESTS=ON \&lt;br /&gt;
 ~/src/KDE/kdelibs&lt;br /&gt;
 make&lt;br /&gt;
 make install&lt;br /&gt;
* If you received an error stating &amp;quot;Please create a separate build directory and run 'cmake path_to_kdelibs [options]' there.&amp;quot;, then you need to change to your build directory before running cmakekde. (e.g &amp;lt;tt&amp;gt;cs KDE/kdelibs &amp;amp;&amp;amp; cb &amp;amp;&amp;amp; cmakekde&amp;lt;/tt&amp;gt;) If the message stays, run 'svn status' in the kdelibs directory and remove all files labeled with '?'.&lt;br /&gt;
* If Qt wasn't found or the wrong version of Qt was found, make sure that the qmake from the Qt you need is the first qmake in the path.&lt;br /&gt;
* If the problems persist, try the CMake make-option &amp;lt;tt&amp;gt;--keep-going&amp;lt;/tt&amp;gt;.&lt;br /&gt;
* Here you need the libungif library, otherwise you will get an error message like &amp;quot;&amp;lt;tt&amp;gt;Could NOT find GIF&amp;lt;/tt&amp;gt;&amp;quot;.&lt;br /&gt;
* Qt-4.3 upgrade: if you get a link error in kjsembed talking about QScriptEngine, edit CMakeCache.txt in kdelibs and remove the lines that talk about QT_QTUITOOLS_LIBRARY, then type make again (that static library has a new dependency, and the cmake code that adds it needs to run).&lt;br /&gt;
* if you get &amp;lt;code&amp;gt;CMake Error: KDE Requires Qt to be built with SSL support&lt;br /&gt;
&amp;lt;/code&amp;gt;, install openssl-devel, and re-compile QT.&lt;br /&gt;
* if you get &amp;lt;code&amp;gt;kdelibs/kimgio/ico.cpp:188: undefined reference to `QImage::jumpTable()'&amp;lt;/code&amp;gt; it means you compiled QT without QT3 support(no, linking to a true QT3 install won't work)&lt;br /&gt;
&lt;br /&gt;
== kdepimlibs ==&lt;br /&gt;
After &amp;lt;tt&amp;gt;kdelibs&amp;lt;/tt&amp;gt;, but before ''kdebase'', you need to build and install ''kdepimlibs''.&lt;br /&gt;
&lt;br /&gt;
=== The Recipe ===&lt;br /&gt;
&amp;lt;!--'cs' and 'cb' are NOT typos!--&amp;gt;&lt;br /&gt;
 cs KDE # [[Getting_Started/Increased_Productivity_in_KDE4_with_Scripts/.bashrc|cs is not a typo]]&lt;br /&gt;
 svn checkout svn://anonsvn.kde.org/home/kde/trunk/KDE/kdepimlibs&lt;br /&gt;
 cd kdepimlibs&lt;br /&gt;
 cmakekde&lt;br /&gt;
&lt;br /&gt;
=== What's Happening ===&lt;br /&gt;
We go into the KDE source directory (line 1), download the source code for kdepimlibs using subversion (line 2) and then go into the new {{path|~/src/KDE/kdepimlibs}} directory (line 3). We then commence the build (line 4). This will leave us in the &amp;lt;tt&amp;gt;kdepimlibs&amp;lt;/tt&amp;gt; build directory after the build is completed.&lt;br /&gt;
&lt;br /&gt;
=== Troubleshooting ===&lt;br /&gt;
If you have trouble compiling kdepimlibs:&lt;br /&gt;
* the cmakekde command may require a later version of the gpgme library.  This is available from the project's web site: http://www.gnupg.org/(en)/download/index.html - please note that the build of gpgme also requires libgpg-error, also available from the same location.  Both libraries are installed by the &amp;quot;./configure&amp;quot;, &amp;quot;make&amp;quot; and &amp;quot;sudo make install&amp;quot; sequence, with the gpgme library configured with the additional &amp;quot;--with-gpg-error-prefix&amp;quot; parameter.  You may need to overwrite your existing &amp;quot;/usr/bin/gpgme-config&amp;quot; file with the newer version for the kdepimlibs to pick up the new install.&lt;br /&gt;
&lt;br /&gt;
== kdebase ==&lt;br /&gt;
You may need kdebase for some kioslaves.&lt;br /&gt;
&amp;lt;!--'cs' and 'cb' are NOT typos!--&amp;gt;&lt;br /&gt;
 cs KDE # [[Getting_Started/Increased_Productivity_in_KDE4_with_Scripts/.bashrc|cs is not a typo]]&lt;br /&gt;
 svn checkout svn://anonsvn.kde.org/home/kde/trunk/KDE/kdebase&lt;br /&gt;
 cd kdebase&lt;br /&gt;
 cmakekde&lt;br /&gt;
&lt;br /&gt;
=== Troubleshooting ===&lt;br /&gt;
If you have troubles compiling kdebase:&lt;br /&gt;
* Make sure you have the &amp;lt;tt&amp;gt;libxss headers&amp;lt;/tt&amp;gt; installed. (Usually you got undefined references on xscreensaver objects if you do not have those headers)&lt;br /&gt;
* &amp;lt;tt&amp;gt;which meinproc&amp;lt;/tt&amp;gt; has to deliver {{path|/home/kde-devel/kde/bin/meinproc}}&lt;br /&gt;
* if cmakekde can not find the path of kdepimlibs, edit the file {{path|$KDE_BUILD/KDE/kdebase/CMakeCache.txt}} and manually set &amp;lt;tt&amp;gt;KDEPIMLIBS_INCLUDE_DIR:PATH=$KDE_BUILD/kdepimlibs&amp;lt;/tt&amp;gt;&lt;br /&gt;
* if you get an error saying &amp;quot;Please set the following variables: X11_XTest_LIB (ADVANCED)&amp;quot;, install the devel package of &amp;lt;tt&amp;gt;Xtst&amp;lt;/tt&amp;gt;. On some systems, this is packaged separately from &amp;lt;tt&amp;gt;xext&amp;lt;/tt&amp;gt; and called &amp;lt;tt&amp;gt;x11proto-xext-dev&amp;lt;/tt&amp;gt; or &amp;lt;tt&amp;gt;libxtst-dev&amp;lt;/tt&amp;gt;. You may also need to remove the CMakeCache.txt file in the build dir after installing the package.&lt;br /&gt;
* the same for &amp;quot;X11_Xinerama_LIB (ADVANCED)&amp;quot; where you will need the devel package for &amp;lt;tt&amp;gt;xinerama&amp;lt;/tt&amp;gt;.&lt;br /&gt;
* if you get an error complaining about a missing variable X11_Xrandr_LIB, you need the devel package for libxrandr (libxrandr-devel on ubuntu-systems)&lt;br /&gt;
* if you get the error &amp;quot;Please set the following variables: FONTCONFIG_INCLUDE_DIR, FONTCONFIG_LIBRARIES (ADVANCED)&amp;quot;, then you need to install  the libfontconfig headers&lt;br /&gt;
* if you get the error &amp;quot;CMake Error: This project requires some variables to be set, and cmake can not find them. Please set the following variables: KMETADATA_LIBRARIES&amp;quot;, you need to install soprano from kdesupport and to rebuild kdelibs&lt;br /&gt;
* if you get the error &amp;quot;‘XserverRegion’ does not name a type&amp;quot; make sure you have libxcomposite headers installed (&amp;lt;tt&amp;gt;libxcomposite-dev&amp;lt;/tt&amp;gt; in ubuntu)&lt;br /&gt;
&lt;br /&gt;
== Generating local API documentation ==&lt;br /&gt;
Although the API documentation for KDE is available online at [http://api.kde.org api.kde.org], it is sometimes useful to have it on your own disk, for example when you want to use [[Getting_Started/Set_up_KDE_4_for_development#KDevelop|KDevelop]] for browsing the documentation or when you are not able to be online all the time.&lt;br /&gt;
&lt;br /&gt;
Be aware that generating the API documentation can take several hours and takes almost half a gigabyte of diskspace.&lt;br /&gt;
The generation is handled by a script in {{path|kdelibs/doc/api}}, you need &amp;lt;tt&amp;gt;doxygen&amp;lt;/tt&amp;gt; to be able to run it. &lt;br /&gt;
&lt;br /&gt;
To build the API documentation for kdelibs, type the following:&lt;br /&gt;
&amp;lt;!--'cs' and 'cb' are NOT typos!--&amp;gt;&lt;br /&gt;
 cs KDE/kdelibs # [[Getting_Started/Increased_Productivity_in_KDE4_with_Scripts/.bashrc|cs is not a typo]]&lt;br /&gt;
 $KDE_SRC/KDE/kdelibs/doc/api/doxygen.sh \&lt;br /&gt;
 --doxdatadir=$KDE_SRC/KDE/kdelibs/doc/common .&lt;br /&gt;
&lt;br /&gt;
Repeat for other modules as desired.&amp;lt;br&amp;gt;&lt;br /&gt;
 cd &amp;lt;module home&amp;gt;&lt;br /&gt;
 $KDE_SRC/KDE/kdelibs/doc/api/doxygen.sh \&lt;br /&gt;
 --doxdatadir=$KDE_SRC/KDE/kdelibs/doc/common .&lt;br /&gt;
&lt;br /&gt;
== Staying up to date ==&lt;br /&gt;
&lt;br /&gt;
In order to keep the kde4 installation up to date, each of the modules installed should be updated periodically. As Monday is the day for big changes in kdelibs, Tuesday may be the best day to do this. For each module checked out, run &amp;lt;tt&amp;gt;svn up&amp;lt;/tt&amp;gt; and &amp;lt;tt&amp;gt;make&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
For example:&lt;br /&gt;
&amp;lt;code bash&amp;gt;&lt;br /&gt;
cs kdesupport # cs is not a typo&lt;br /&gt;
svn up&lt;br /&gt;
cb # cb is not a typo&lt;br /&gt;
make -j2 VERBOSE=1 &amp;amp;&amp;amp; make install&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== General troubleshooting ==&lt;br /&gt;
&lt;br /&gt;
What can happen over time, after some &amp;lt;tt&amp;gt;svn up&amp;lt;/tt&amp;gt; commands, is that some of the tools used in the KDE build chain change their output format. For example, &amp;lt;tt&amp;gt;kcfg&amp;lt;/tt&amp;gt; files are read by &amp;lt;tt&amp;gt;kconfig_compiler&amp;lt;/tt&amp;gt; to produce configuration dialogs. CMake cannot detect those changes, and the compilation might fail. A workaround is to always force a re-generation of all such files:&lt;br /&gt;
 find $KDE_SRC/KDE/kdebase -name &amp;quot;*.kcfg&amp;quot; | xargs touch&lt;br /&gt;
The same applies to &amp;lt;tt&amp;gt;ui&amp;lt;/tt&amp;gt; files as produced by Qt designer.&lt;br /&gt;
&lt;br /&gt;
== Success! ==&lt;br /&gt;
&lt;br /&gt;
You are now ready to start building other svn modules in the same fashion as you built kdebase, running and testing KDE4 or writing your own patches and applications.&lt;br /&gt;
&lt;br /&gt;
See the [[Getting Started/Set up KDE 4 for development|Set up KDE 4 for development]] tutorial for how to start KDE 4 applications and how to use KDevelop to work on them.&lt;br /&gt;
&lt;br /&gt;
[[Category:Build KDE]]&lt;br /&gt;
[[Category:KDE4]]&lt;/div&gt;</summary>
		<author><name>Logixoul</name></author>	</entry>

	<entry>
		<id>http://techbase.kde.org/Getting_Started/Build/KDE4</id>
		<title>Getting Started/Build/KDE4</title>
		<link rel="alternate" type="text/html" href="http://techbase.kde.org/Getting_Started/Build/KDE4"/>
				<updated>2007-07-04T02:58:27Z</updated>
		
		<summary type="html">&lt;p&gt;Logixoul: /* D-Bus */ duh&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Template:I18n/Language Navigation Bar|Getting_Started/Build/KDE4}}&lt;br /&gt;
&lt;br /&gt;
{{TutorialBrowser|&lt;br /&gt;
&lt;br /&gt;
series=Getting Started|&lt;br /&gt;
&lt;br /&gt;
name=Building KDE4 From Source|&lt;br /&gt;
&lt;br /&gt;
pre=[[../../Sources/Anonymous_SVN|Anonymous SVN Quickstart Guide]]|&lt;br /&gt;
&lt;br /&gt;
next=[[../../Set_up_KDE_4_for_development|Set up KDE 4 for development]]|&lt;br /&gt;
&lt;br /&gt;
reading=[http://kdesvn-build.kde.org/ kdesvn-build: The KDE From Subversion Build Tool]&amp;lt;br&amp;gt;[[../../Increased_Productivity_in_KDE4_with_Scripts|Increased Productivity in KDE4 with Scripts]]&amp;lt;br&amp;gt;[[Development/Tutorials/CMake |Introduction to CMake]]&amp;lt;br&amp;gt;[[../KDE4/FreeBSD|FreeBSD notes]]&amp;lt;br&amp;gt;[[../KDE4/Mac OS X|Instructions for Mac OS X]]|&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== Abstract ==&lt;br /&gt;
&lt;br /&gt;
This tutorial shows one way to get KDE from trunk running on Linux/BSD systems. Throughout the tutorial the bash shell is used. If you are interested in building KDE on other systems such as Solaris, MacOS or Microsoft Windows, please visit the [[../|Build]] page and see the links at the bottom for the respective operating systems.&lt;br /&gt;
&lt;br /&gt;
{{warning|Expect a higher risk of build failure '''on Mondays''' when critical changes are implemented. [http://developer.kde.org/~dirk/dashboard/ Dashboard] reports unexpected breakages. You are encouraged to fix failing modules.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== Required Software ==&lt;br /&gt;
&lt;br /&gt;
The following must be installed first before you can successfully complete this tutorial:&lt;br /&gt;
* gcc and g++ from the gcc project, preferably version 4.1 or higher&lt;br /&gt;
* svn, the subversion revision control client&lt;br /&gt;
* pkg-config&lt;br /&gt;
* development libraries and headers for X11, OpenGL (mesa-common-dev and libglu1-mesa-dev), libjpeg, libpng, libungif, [http://clucene.sourceforge.net/index.php/Downloads libclucene], [http://download.librdf.org/source/ librdf], libxml2 and libxslt&lt;br /&gt;
* the &amp;lt;tt&amp;gt;makeobj&amp;lt;/tt&amp;gt; script, which is part of kdesdk. You can install it as part of kdesdk (kdesdk-scripts on Debian) or similar package, or just download it itself from [http://websvn.kde.org/*checkout*/trunk/KDE/kdesdk/scripts/makeobj WebSVN]&lt;br /&gt;
* the [http://freedesktop.org/wiki/Software/shared-mime-info shared-mime-info package], which is the freedesktop MIME standard KDE is using now&lt;br /&gt;
* [http://boost.org/ boost], needed by kdebase; after compiling and/or installing boost, in order to make cmake aware about its location (FindBoost),  add boost directory (the one containing include subdirectory) to CMAKE_INCLUDE_PATH or set an environment variable called BOOST_ROOT pointing to boost directory.&lt;br /&gt;
&lt;br /&gt;
You may also want to have the following installed:&lt;br /&gt;
* bash&lt;br /&gt;
&lt;br /&gt;
=== Kubuntu ===&lt;br /&gt;
&lt;br /&gt;
In Kubuntu 7.04 (Feisty) the build dependencies you need are installed with:&lt;br /&gt;
&amp;lt;code bash&amp;gt;&lt;br /&gt;
sudo aptitude install build-essential cdbs debhelper cmake \&lt;br /&gt;
libxml2-dev libxslt1-dev libbz2-dev libclucene-dev librdf-dev \&lt;br /&gt;
shared-mime-info libgl1-mesa-dev libglu1-mesa-dev mesa-common-dev \&lt;br /&gt;
libxext-dev libjpeg-dev libpng-dev subversion libsm-dev libxinerama-dev \&lt;br /&gt;
libxrender-dev libfontconfig-dev libboost-dev libxcursor-dev doxygen \&lt;br /&gt;
libungif4-dev libdbus-1-dev libgpgme11-dev libssl-dev&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You can skip the manual installation of CMake 2.4.6 and DBus with: &lt;br /&gt;
&amp;lt;code bash&amp;gt;&lt;br /&gt;
sudo aptitude install libdbus-1-dev cmake&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
And for fully functional [[apidox]] frame work you also need:&lt;br /&gt;
&amp;lt;code bash&amp;gt;&lt;br /&gt;
sudo aptitude install graphviz&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== openSUSE ===&lt;br /&gt;
&lt;br /&gt;
In openSUSE 10.2 and newer, you can install packages using [http://en.opensuse.org/Zypper Zypper]:&lt;br /&gt;
&amp;lt;code bash&amp;gt;&lt;br /&gt;
sudo zypper install &amp;lt;package-name&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In older releases of SUSE, you can use YaST:&lt;br /&gt;
&amp;lt;code bash&amp;gt;&lt;br /&gt;
su&lt;br /&gt;
yast -i &amp;lt;packagename&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Required Packages'''&lt;br /&gt;
&lt;br /&gt;
The packages you will need to install are:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
xorg-x11-devel&lt;br /&gt;
libxml2-devel &lt;br /&gt;
kdesdk3 &lt;br /&gt;
clucene-core-devel &lt;br /&gt;
boost-devel&lt;br /&gt;
libjpeg-devel &lt;br /&gt;
liblrdf-devel &lt;br /&gt;
libpng-devel &lt;br /&gt;
libxslt-devel &lt;br /&gt;
libredland-devel&lt;br /&gt;
Mesa-devel &lt;br /&gt;
giflib-devel &lt;br /&gt;
subversion &lt;br /&gt;
gcc &lt;br /&gt;
gcc-c++&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Optional Packages'''&lt;br /&gt;
&lt;br /&gt;
You can skip the manual installation of Qt 4.3, CMake 2.4.6 and DBus by installing the adding the openSUSE Build Service KDE4 Repository to your installation sources.&lt;br /&gt;
&lt;br /&gt;
For openSUSE 10.2 and newer do:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
sudo zypper service-add http://software.opensuse.org/download/KDE:/KDE4/openSUSE_10.2 KDE4-102&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For older versions of SUSE Linux do:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
su&lt;br /&gt;
installation_sources -a http://software.opensuse.org/download/KDE:/KDE4/[YOUR SUSE LINUX VERSION]&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now install the following packages (and their dependencies):&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
cmake&lt;br /&gt;
dbus-1-devel&lt;br /&gt;
libqt4-devel&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
And for fully functional apidox frame work you also need:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
graphviz&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
CMake binary packages for openSUSE are available from [http://software.opensuse.org/download/devel:/tools:/building/ openSUSE build service].&lt;br /&gt;
&lt;br /&gt;
=== Gentoo ===&lt;br /&gt;
&lt;br /&gt;
You can use most stable ebuilds just remember to sync your portage before you begin.&lt;br /&gt;
&lt;br /&gt;
We need to be unmasked and/or kept at a lower version to continue.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code bash&amp;gt;&lt;br /&gt;
# echo 'x11-libs/qt' &amp;gt;&amp;gt; /etc/portage/package.keywords&lt;br /&gt;
# echo 'dev-util/cmake' &amp;gt;&amp;gt; /etc/portage/package.keywords&lt;br /&gt;
# echo 'dev-cpp/clucene' &amp;gt;&amp;gt; /etc/portage/package.keywords&lt;br /&gt;
# echo '&amp;gt;dev-cpp/clucene-0.9.16a' &amp;gt;&amp;gt; /etc/portage/package.mask&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
These are the packages you will need to install, some may already be installed so you may skip those by adding the update flag to emerge.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code bash&amp;gt;&lt;br /&gt;
$ emerge -avu ebuild/name&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 sys-devel/gcc&lt;br /&gt;
 dev-util/subversion&lt;br /&gt;
 dev-util/pkgconfig&lt;br /&gt;
 x11-base/xorg-x11&lt;br /&gt;
 media-libs/glut&lt;br /&gt;
 media-libs/mesa&lt;br /&gt;
 media-libs/jpeg&lt;br /&gt;
 media-libs/libpng&lt;br /&gt;
 media-libs/giflib&lt;br /&gt;
 dev-cpp/clucene&lt;br /&gt;
 dev-util/cppunit&lt;br /&gt;
 media-libs/liblrdf&lt;br /&gt;
 dev-libs/libxml2&lt;br /&gt;
 dev-libs/libxslt&lt;br /&gt;
 x11-misc/shared-mime-info&lt;br /&gt;
 kde-base/kdesdk-scripts&lt;br /&gt;
 dev-libs/boost&lt;br /&gt;
 x11-libs/qt&lt;br /&gt;
 dev-util/cmake&lt;br /&gt;
 sys-apps/dbus&lt;br /&gt;
 dev-libs/redland&lt;br /&gt;
&lt;br /&gt;
Provided you have emerged these ebuilds, you can skip compiling them by hand and proceed to [[Getting_Started/Build/KDE4#kdesupport|kdesupport section]].&lt;br /&gt;
&lt;br /&gt;
Good luck!&lt;br /&gt;
&lt;br /&gt;
== Create a user account for KDE4 development ==&lt;br /&gt;
&lt;br /&gt;
{{Note|&lt;br /&gt;
Some people like to have a separate user account for KDE 4 (for instance an old bug deleted files by mistake), and the instructions below were written with that approach.&lt;br /&gt;
&lt;br /&gt;
However it is much more efficient to do everything with a single user account, see [[Getting_Started/Increased_Productivity_in_KDE4_with_Scripts|Increased Productivity in KDE4 with Scripts]]&lt;br /&gt;
for more details. &lt;br /&gt;
&lt;br /&gt;
You can still follow the instructions below, but don't put the environment variables in your &amp;lt;tt&amp;gt;.bashrc&amp;lt;/tt&amp;gt;, put them in a separate file that you source to switch to the KDE 4 environment.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
=== Option 1: Command Line ===&lt;br /&gt;
&amp;lt;code bash&amp;gt;&lt;br /&gt;
useradd -m kde-devel&lt;br /&gt;
passwd kde-devel&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Option 2: Using KControl ===&lt;br /&gt;
&lt;br /&gt;
Instead of using the commands above, you can also use the User module in the KDE Control Center if you already have KDE3 installed.&lt;br /&gt;
&lt;br /&gt;
=== Setting up the environment ===&lt;br /&gt;
&lt;br /&gt;
Copy the {{path|~/.bashrc}} from your normal user account to the new kde-devel account. Next, copy and paste the contents of the [[Getting Started/Increased Productivity in KDE4 with Scripts/.bashrc|example .bashrc]] into {{path|~kde-devel/.bashrc}}. Be sure to comment out the line &amp;lt;tt&amp;gt;alias make=makeobj&amp;lt;/tt&amp;gt; if you do not have the &amp;lt;tt&amp;gt;[[Getting Started/Build/KDE4#Required Software|makeobj]]&amp;lt;/tt&amp;gt; command available. You will probably also want to modify the path to make sure it doesn't include your kde3 paths. To make it run, you have to open a new bash or to execute &lt;br /&gt;
&amp;lt;code bash&amp;gt;&lt;br /&gt;
source ~/.bashrc&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This will provide access to commands such as &amp;lt;tt&amp;gt;cmakekde&amp;lt;/tt&amp;gt; that are used in this tutorial as well as ensure that the proper paths are in place for Qt, KDE and CMake binaries.&lt;br /&gt;
&lt;br /&gt;
For more information, please read the [[Getting Started/Increased Productivity in KDE4 with Scripts]] tutorial.&lt;br /&gt;
&lt;br /&gt;
=== Switching to the New User ===&lt;br /&gt;
Switch to the user kde-devel: (don't forget the dash)&lt;br /&gt;
&amp;lt;code bash&amp;gt;&lt;br /&gt;
su - kde-devel&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The rest of this tutorial assumes you are running as the &amp;lt;tt&amp;gt;kde-devel&amp;lt;/tt&amp;gt; user.&lt;br /&gt;
&lt;br /&gt;
== The development user's shell ==&lt;br /&gt;
&lt;br /&gt;
On some systems a new user is configured by default to use {{path|/bin/sh}}. If this is not the case on your system, you can skip this section. Using {{path|/bin/sh}} can be very inconvenient to work with and you may want to change it to {{path|/bin/bash}} or another shell.&lt;br /&gt;
&lt;br /&gt;
=== Option 1: As the kde-devel user ===&lt;br /&gt;
&lt;br /&gt;
If you don't have root privileges and your system supports the changing of your own shell with the &amp;lt;tt&amp;gt;chsh&amp;lt;/tt&amp;gt; application, then you could try to change your shell to {{path|/bin/bash}} by using:&lt;br /&gt;
&amp;lt;code bash&amp;gt;&lt;br /&gt;
chsh -s /bin/bash kde-devel&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Option 2: As the root user ===&lt;br /&gt;
&lt;br /&gt;
If your system comes with the &amp;lt;tt&amp;gt;usermod&amp;lt;/tt&amp;gt; application you can run the following command as root: &amp;lt;tt&amp;gt;usermod -s /bin/bash&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Another option is to use the &amp;lt;tt&amp;gt;vipw&amp;lt;/tt&amp;gt; application as root to safely edit your {{path|/etc/passwd}}. Locate 'kde-devel' in the the file. Change '{{path|/bin/sh}}' at the end of the line to read '{{path|/bin/bash}}', save your changes and exit.&lt;br /&gt;
&lt;br /&gt;
The new shell will be started automatically when you log in as the kde-devel user again.&lt;br /&gt;
&lt;br /&gt;
== D-Bus ==&lt;br /&gt;
QtDBus and KDE are known to work with D-Bus versions 0.62, as well as 0.92 and upwards. Versions 0.60 and 0.61 may work too but are not tested. Versions 0.90 and 0.91 are known not to work. We recommend using post-1.0 release versions (at least 0.94), so consider upgrading if you haven't done so.&lt;br /&gt;
&lt;br /&gt;
You may skip this section if you have a recent D-Bus version or if you don't want to upgrade.&lt;br /&gt;
&lt;br /&gt;
Before running these steps in the recipe, make sure your X11 headers and libraries are available. The configure script run on line 5 of the following instructions should output:&lt;br /&gt;
 Building X11 code:        yes&lt;br /&gt;
&lt;br /&gt;
=== The Recipe ===&lt;br /&gt;
&lt;br /&gt;
{{tip|Make sure you did set up your environment correctly as described [[Getting_Started/Build/KDE4#Setting_up_the_environment|above]]. This is necessary for the &amp;lt;tt&amp;gt;cs&amp;lt;/tt&amp;gt; and &amp;lt;tt&amp;gt;cb&amp;lt;/tt&amp;gt; functions to work.}}&lt;br /&gt;
&lt;br /&gt;
 cs # [[Getting_Started/Increased_Productivity_in_KDE4_with_Scripts/.bashrc|'cs' is a bash function, click here to learn more]] &lt;br /&gt;
 wget http://dbus.freedesktop.org/releases/dbus/dbus-1.0.2.tar.gz&lt;br /&gt;
 tar -xvzf dbus-1.0.2.tar.gz&lt;br /&gt;
 cd dbus-1.0.2/&lt;br /&gt;
 ./configure --prefix=$DBUSDIR --localstatedir=/var&lt;br /&gt;
 make&lt;br /&gt;
 sudo make install&lt;br /&gt;
 sudo dbus-uuidgen --ensure&lt;br /&gt;
&lt;br /&gt;
=== What's Happening === &lt;br /&gt;
After changing into the source directory (line 1), D-Bus source code is downloaded from freedesktop.org (line 2) and unpacked (line 3). After going into the newly created D-Bus directory (line 4), the build is set up using the supplied {{path|configure}} script (line 5). After building (line 6) and installing (line 7) D-Bus, we use the &amp;lt;tt&amp;gt;dbus-uuidgen&amp;lt;/tt&amp;gt; tool to install a machine identification file that allows the bus to start automatically when the desktop session starts (line 8).&lt;br /&gt;
&lt;br /&gt;
Note that you need write access to {{path|/var}} for the last two steps. If your system does not have the sudo command, you can use the &amp;lt;tt&amp;gt;su&amp;lt;/tt&amp;gt; command instead, e.g. &amp;lt;tt&amp;gt;su -c &amp;quot;make install&amp;quot;&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== CMake ==&lt;br /&gt;
Skip this if you have [http://cmake.org/ CMake] &amp;gt;=2.4.5 installed. &lt;br /&gt;
You should be able to directly use the binary packages available on the [http://www.cmake.org/HTML/Download.html CMake site]. There are also distribution specific packages available.&lt;br /&gt;
&lt;br /&gt;
=== The Recipe ===&lt;br /&gt;
&amp;lt;!--'cs' and 'cb' are NOT typos!--&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 cs # [[Getting_Started/Increased_Productivity_in_KDE4_with_Scripts/.bashrc|'cs' is a bash function, click Here to learn more]] &lt;br /&gt;
 wget http://www.cmake.org/files/v2.4/cmake-2.4.6.tar.gz&lt;br /&gt;
 tar -zxf cmake-2.4.6.tar.gz&lt;br /&gt;
 mkdir cmake-build&lt;br /&gt;
 cd cmake-build &lt;br /&gt;
 ../cmake-2.4.6/bootstrap&lt;br /&gt;
 make&lt;br /&gt;
 sudo make install&lt;br /&gt;
&lt;br /&gt;
=== What's Happening ===&lt;br /&gt;
First, we go back to the &amp;lt;tt&amp;gt;kde-devel&amp;lt;/tt&amp;gt; user's source directory (line 1), get the CMake sources (line 2) and unpack them (line 3). We create a directory to build CMake in (line 4) and go into it (line 5). We then run the CMake bootstrap script to set up the CMake build (line 6), then make (line 7) and install it (line 8) using the root user.&lt;br /&gt;
&lt;br /&gt;
If your system does not have the &amp;lt;tt&amp;gt;sudo&amp;lt;/tt&amp;gt; command, you can instead do &amp;lt;tt&amp;gt;su -c &amp;quot;make install&amp;quot;&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Qt ==&lt;br /&gt;
Next we need to get the Qt4 that is in KDE's source repository. KDE is guaranteed to build against any Qt 4.3. Qt 4.2 and earlier are not supported and will not work. You should use the copy in the KDE Subversion servers.&lt;br /&gt;
&lt;br /&gt;
=== The Recipe ===&lt;br /&gt;
 cd&lt;br /&gt;
 svn checkout svn://anonsvn.kde.org/home/kde/trunk/qt-copy&lt;br /&gt;
 cd qt-copy&lt;br /&gt;
 ./apply_patches&lt;br /&gt;
 ./configure -qt-gif -no-exceptions -debug -fast \&lt;br /&gt;
  -prefix $QTDIR -qdbus -pch -openssl -nomake examples \&lt;br /&gt;
  -nomake demos&lt;br /&gt;
 make -j2&lt;br /&gt;
&lt;br /&gt;
 # do copy files if the target doesnt match current dir,&lt;br /&gt;
 # clear obj files to save disk space otherwise&lt;br /&gt;
 if [ $QTDIR = `pwd` ]; then \&lt;br /&gt;
 find . -name '*.o' -exec rm {} \; ; \&lt;br /&gt;
 else make install; fi;&lt;br /&gt;
&lt;br /&gt;
=== What's Happening ===&lt;br /&gt;
We switch back to the &amp;lt;tt&amp;gt;kde-devel&amp;lt;/tt&amp;gt; user's home directory (line 1) and download the source code using subversion (svn) from KDE's repository (line 2). After changing into the resulting {{path|qt-copy}} directory (line 3), we run a script that manages the patches that come with &amp;lt;tt&amp;gt;qt-copy&amp;lt;/tt&amp;gt; (line 4). &lt;br /&gt;
&lt;br /&gt;
Once the patches have been applied, we then set up the build using the &amp;lt;tt&amp;gt;configure&amp;lt;/tt&amp;gt; script (line 5-7). The various command line options used are explained in the {{path|qt-copy/README.qt-copy}} file. Finally, we build the minimal requirements for KDE (line 8) and install (line 9-10) Qt. If you want all the example and demo applications, you can either build them individually or simply do a &amp;lt;tt&amp;gt;make&amp;lt;/tt&amp;gt; from the {{path|qt-copy}} directory. &lt;br /&gt;
&lt;br /&gt;
Note that the installation does not require root as it installs Qt locally into {{path|$QTDIR}}. Anyway, installation is only needed if {{path|$QTDIR}} differs from {{path|$HOME/qt-copy}}, which is not the case if you have exactly followed the instructions.&lt;br /&gt;
&lt;br /&gt;
=== Troubleshooting ===&lt;br /&gt;
If you get &amp;quot;error: X11/Xlib.h: No such file or directory&amp;quot;, install the devel package of &amp;lt;tt&amp;gt;xorg&amp;lt;/tt&amp;gt; (the actual name may vary between operating systems, for example it is &amp;lt;tt&amp;gt;xorg-dev&amp;lt;/tt&amp;gt; on Ubuntu based systems such as Kubuntu). &lt;br /&gt;
&lt;br /&gt;
If you get an error in the configure step about missing defines, check the value of &amp;lt;tt&amp;gt;$QMAKESPEC&amp;lt;/tt&amp;gt;.  Some distributions set this to point directly to the system-installed Qt.  If &amp;lt;tt&amp;gt;unset QMAKESPEC&amp;lt;/tt&amp;gt; solves the problem, you probably want to add it to the &amp;lt;tt&amp;gt;~/.bashrc&amp;lt;/tt&amp;gt; script.&lt;br /&gt;
&lt;br /&gt;
If you get an error &amp;quot;.pch/debug-shared/QtCore&amp;quot;, this is because Qt-4.3 enables precompiled headers if your gcc supports it, but for some reason it doesn't work for you. If you use distcc, configure qt with -no-pch. If you use icecream, update to the latest icecream from svn trunk.&lt;br /&gt;
&lt;br /&gt;
Try running any Qt program, like {{program|assistant}}. '''Note:''' You may need to run &amp;lt;tt&amp;gt;xhost +local:kde-devel&amp;lt;/tt&amp;gt; as your regular kde3 user to run this application.  If it crashes in QSpanData::adjustSpanMethods, then your problem is the oxygen style. Try removing {{path|lib/kde4/plugins/styles/kstyle-oxygen.so}} and {{path|lib/kde4/plugins/styles/oxygen.so}} if they exist in the KDE install prefix.&lt;br /&gt;
&lt;br /&gt;
== kdesupport ==&lt;br /&gt;
&lt;br /&gt;
{{warning|If you have jumped to this section without reading [[Getting_Started/Build/KDE4#Setting_up_the_environment|Setting Up The Environment]], '''the recipes provided will not work'''. &lt;br /&gt;
&lt;br /&gt;
The recipes are not in error; &amp;lt;tt&amp;gt;cs&amp;lt;/tt&amp;gt; and &amp;lt;tt&amp;gt;cb&amp;lt;/tt&amp;gt; are not typos. Your environment '''needs''' to be set up correctly for these instructions to work for you.}}&lt;br /&gt;
&lt;br /&gt;
There are several libraries that KDE applications rely on in the kdesupport module. This includes Strigi and Soprano for file metadata and search, eigen for visual effects in applications such as Kalzium, taglib for music players and qca for some cryptographic needs. &lt;br /&gt;
&lt;br /&gt;
Strigi itself has a few dependencies as well: you will need the libraries and headers for libz, libbz2, openssl (libcrypto or libssl), libclucene (=0.9.16; version 0.9.17 does '''not''' work), and either libxml2 or libexpat.&lt;br /&gt;
&lt;br /&gt;
=== The Recipe ===&lt;br /&gt;
&amp;lt;!--'cs' and 'cb' are NOT typos!--&amp;gt;&lt;br /&gt;
 cs # [[Getting_Started/Increased_Productivity_in_KDE4_with_Scripts/.bashrc|cs is not a typo]]&lt;br /&gt;
 svn checkout svn://anonsvn.kde.org/home/kde/trunk/kdesupport/&lt;br /&gt;
 cd kdesupport&lt;br /&gt;
 cmakekde&lt;br /&gt;
&lt;br /&gt;
=== What's Happening ===&lt;br /&gt;
We change to the base source directory (line 1). We download the sources in kdesupport using subversion (line 2), go into the new {{path|~/src/kdesupport}} directory (line 3), and commence the build (line 4). This will leave us in the kdesupport build directory after the build is completed.&lt;br /&gt;
&lt;br /&gt;
=== TroubleShooting ===&lt;br /&gt;
If you get &lt;br /&gt;
 CMake Error: This project requires some variables to be set,&lt;br /&gt;
 and cmake can not find them.&lt;br /&gt;
 Please set the following variables:&lt;br /&gt;
 LIBXML2_INCLUDE_DIR (ADVANCED)&lt;br /&gt;
you should install the development package for libxml2.&lt;br /&gt;
&lt;br /&gt;
If you get &lt;br /&gt;
 CMake Error: Could NOT find REDLAND&lt;br /&gt;
then you need librdf from the Redland.&lt;br /&gt;
If your distribution does not provide the librdf package, you can download the source there: [http://download.librdf.org/source/ http://download.librdf.org/source/] and build it.&lt;br /&gt;
(Gentoo users: The ebuild for librdf is named dev-libs/redland)&lt;br /&gt;
&lt;br /&gt;
If you get&lt;br /&gt;
 Fetching external item into 'kdesupport/admin'&lt;br /&gt;
 Error validating server certificate for 'https://...'&lt;br /&gt;
see [http://techbase.kde.org/Getting_Started/Sources/Using_Subversion_with_KDE Using Subversion with KDE]&lt;br /&gt;
&lt;br /&gt;
If you get&lt;br /&gt;
 FILE cannot create directory: /usr/lib[64]/qt4/plugins/crypto. Maybe need administrative privileges.&lt;br /&gt;
 - - -&lt;br /&gt;
 make: *** [install] Error 255&lt;br /&gt;
take a second look in the .bashrc file described above, are paths correct?&lt;br /&gt;
&lt;br /&gt;
== kdelibs ==&lt;br /&gt;
&lt;br /&gt;
With Qt4, Strigi, and Soprano built, we can now move on to building KDE's base libraries. If you use the aforementioned [[Getting Started/Increased Productivity in KDE4 with Scripts/.bashrc|.bashrc]] this is where those new functions come in handy. &lt;br /&gt;
&lt;br /&gt;
=== The Recipe ===&lt;br /&gt;
&amp;lt;!--'cs' and 'cb' are NOT typos!--&amp;gt;&lt;br /&gt;
 cs # bash function&lt;br /&gt;
 mkdir KDE &amp;amp;&amp;amp; cd KDE&lt;br /&gt;
 svn checkout svn://anonsvn.kde.org/home/kde/trunk/KDE/kdelibs&lt;br /&gt;
 cd kdelibs&lt;br /&gt;
 cmakekde&lt;br /&gt;
&lt;br /&gt;
=== What's Happening ===&lt;br /&gt;
We change to the base source directory (line 1) then make and go into the KDE directory (line 2). We download the sources for kdelibs using subversion (line 3), go into the new {{path|~/src/KDE/kdelibs}} directory (line 4), and commence the build (line 5). This will leave us in the &amp;lt;tt&amp;gt;kdelibs&amp;lt;/tt&amp;gt; build directory after the build is completed.&lt;br /&gt;
&lt;br /&gt;
{{tip|There might be missing dependencies on your system! They are easily overlooked in the output of &amp;lt;tt&amp;gt;cmakekde&amp;lt;/tt&amp;gt;.&lt;br /&gt;
You might want to do a &amp;lt;tt&amp;gt;cmake $KDE_SRC/KDE/MODULE_NAME&amp;lt;/tt&amp;gt; prior to compiling any kde modules (like kdelibs, kdepimlibs etc.)}}&lt;br /&gt;
&lt;br /&gt;
=== Additional KDE-specific CMake modules ===&lt;br /&gt;
There are additional CMake modules in {{path|kdelibs/cmake/modules/}} that are necessary for building KDE4 applications. These will be installed for you when  kdelibs itself is installed.&lt;br /&gt;
&lt;br /&gt;
=== Troubleshooting ===&lt;br /&gt;
If you have problems compiling kdelibs, first make sure the software in the [[Getting_Started/Build/KDE4#Required_Software|Required Software]] section above is installed and works. Other possible hints include:&lt;br /&gt;
* If the &amp;lt;tt&amp;gt;cmakekde&amp;lt;/tt&amp;gt; command fails stating that CMake requires an out of source build directory, remove {{path|~/src/KDE/kdelibs/CMakeCache.txt}}, and try again.&lt;br /&gt;
&lt;br /&gt;
If &amp;lt;tt&amp;gt;cmakekde&amp;lt;/tt&amp;gt; still gives the same error then try this &lt;br /&gt;
 cd&lt;br /&gt;
 cmake -DCMAKE_INSTALL_PREFIX=$KDEDIR \&lt;br /&gt;
 -DCMAKE_BUILD_TYPE=debugfull \&lt;br /&gt;
 -DKDE4_BUILD_TESTS=ON \&lt;br /&gt;
 ~/src/KDE/kdelibs&lt;br /&gt;
 make&lt;br /&gt;
 make install&lt;br /&gt;
* If you received an error stating &amp;quot;Please create a separate build directory and run 'cmake path_to_kdelibs [options]' there.&amp;quot;, then you need to change to your build directory before running cmakekde. (e.g &amp;lt;tt&amp;gt;cs KDE/kdelibs &amp;amp;&amp;amp; cb &amp;amp;&amp;amp; cmakekde&amp;lt;/tt&amp;gt;) If the message stays, run 'svn status' in the kdelibs directory and remove all files labeled with '?'.&lt;br /&gt;
* If Qt wasn't found or the wrong version of Qt was found, make sure that the qmake from the Qt you need is the first qmake in the path.&lt;br /&gt;
* If the problems persist, try the CMake make-option &amp;lt;tt&amp;gt;--keep-going&amp;lt;/tt&amp;gt;.&lt;br /&gt;
* Here you need the libungif library, otherwise you will get an error message like &amp;quot;&amp;lt;tt&amp;gt;Could NOT find GIF&amp;lt;/tt&amp;gt;&amp;quot;.&lt;br /&gt;
* Qt-4.3 upgrade: if you get a link error in kjsembed talking about QScriptEngine, edit CMakeCache.txt in kdelibs and remove the lines that talk about QT_QTUITOOLS_LIBRARY, then type make again (that static library has a new dependency, and the cmake code that adds it needs to run).&lt;br /&gt;
* if you get &amp;lt;code&amp;gt;CMake Error: KDE Requires Qt to be built with SSL support&lt;br /&gt;
&amp;lt;/code&amp;gt;, install openssl-devel, and re-compile QT.&lt;br /&gt;
* if you get &amp;lt;code&amp;gt;kdelibs/kimgio/ico.cpp:188: undefined reference to `QImage::jumpTable()'&amp;lt;/code&amp;gt; it means you compiled QT without QT3 support(no, linking to a true QT3 install won't work)&lt;br /&gt;
&lt;br /&gt;
== kdepimlibs ==&lt;br /&gt;
After &amp;lt;tt&amp;gt;kdelibs&amp;lt;/tt&amp;gt;, but before ''kdebase'', you need to build and install ''kdepimlibs''.&lt;br /&gt;
&lt;br /&gt;
=== The Recipe ===&lt;br /&gt;
&amp;lt;!--'cs' and 'cb' are NOT typos!--&amp;gt;&lt;br /&gt;
 cs KDE # [[Getting_Started/Increased_Productivity_in_KDE4_with_Scripts/.bashrc|cs is not a typo]]&lt;br /&gt;
 svn checkout svn://anonsvn.kde.org/home/kde/trunk/KDE/kdepimlibs&lt;br /&gt;
 cd kdepimlibs&lt;br /&gt;
 cmakekde&lt;br /&gt;
&lt;br /&gt;
=== What's Happening ===&lt;br /&gt;
We go into the KDE source directory (line 1), download the source code for kdepimlibs using subversion (line 2) and then go into the new {{path|~/src/KDE/kdepimlibs}} directory (line 3). We then commence the build (line 4). This will leave us in the &amp;lt;tt&amp;gt;kdepimlibs&amp;lt;/tt&amp;gt; build directory after the build is completed.&lt;br /&gt;
&lt;br /&gt;
=== Troubleshooting ===&lt;br /&gt;
If you have trouble compiling kdepimlibs:&lt;br /&gt;
* the cmakekde command may require a later version of the gpgme library.  This is available from the project's web site: http://www.gnupg.org/(en)/download/index.html - please note that the build of gpgme also requires libgpg-error, also available from the same location.  Both libraries are installed by the &amp;quot;./configure&amp;quot;, &amp;quot;make&amp;quot; and &amp;quot;sudo make install&amp;quot; sequence, with the gpgme library configured with the additional &amp;quot;--with-gpg-error-prefix&amp;quot; parameter.  You may need to overwrite your existing &amp;quot;/usr/bin/gpgme-config&amp;quot; file with the newer version for the kdepimlibs to pick up the new install.&lt;br /&gt;
&lt;br /&gt;
== kdebase ==&lt;br /&gt;
You may need kdebase for some kioslaves.&lt;br /&gt;
&amp;lt;!--'cs' and 'cb' are NOT typos!--&amp;gt;&lt;br /&gt;
 cs KDE # [[Getting_Started/Increased_Productivity_in_KDE4_with_Scripts/.bashrc|cs is not a typo]]&lt;br /&gt;
 svn checkout svn://anonsvn.kde.org/home/kde/trunk/KDE/kdebase&lt;br /&gt;
 cd kdebase&lt;br /&gt;
 cmakekde&lt;br /&gt;
&lt;br /&gt;
=== Troubleshooting ===&lt;br /&gt;
If you have troubles compiling kdebase:&lt;br /&gt;
* Make sure you have the &amp;lt;tt&amp;gt;libxss headers&amp;lt;/tt&amp;gt; installed. (Usually you got undefined references on xscreensaver objects if you do not have those headers)&lt;br /&gt;
* &amp;lt;tt&amp;gt;which meinproc&amp;lt;/tt&amp;gt; has to deliver {{path|/home/kde-devel/kde/bin/meinproc}}&lt;br /&gt;
* if cmakekde can not find the path of kdepimlibs, edit the file {{path|$KDE_BUILD/KDE/kdebase/CMakeCache.txt}} and manually set &amp;lt;tt&amp;gt;KDEPIMLIBS_INCLUDE_DIR:PATH=$KDE_BUILD/kdepimlibs&amp;lt;/tt&amp;gt;&lt;br /&gt;
* if you get an error saying &amp;quot;Please set the following variables: X11_XTest_LIB (ADVANCED)&amp;quot;, install the devel package of &amp;lt;tt&amp;gt;Xtst&amp;lt;/tt&amp;gt;. On some systems, this is packaged separately from &amp;lt;tt&amp;gt;xext&amp;lt;/tt&amp;gt; and called &amp;lt;tt&amp;gt;x11proto-xext-dev&amp;lt;/tt&amp;gt; or &amp;lt;tt&amp;gt;libxtst-dev&amp;lt;/tt&amp;gt;. You may also need to remove the CMakeCache.txt file in the build dir after installing the package.&lt;br /&gt;
* the same for &amp;quot;X11_Xinerama_LIB (ADVANCED)&amp;quot; where you will need the devel package for &amp;lt;tt&amp;gt;xinerama&amp;lt;/tt&amp;gt;.&lt;br /&gt;
* if you get an error complaining about a missing variable X11_Xrandr_LIB, you need the devel package for libxrandr (libxrandr-devel on ubuntu-systems)&lt;br /&gt;
* if you get the error &amp;quot;Please set the following variables: FONTCONFIG_INCLUDE_DIR, FONTCONFIG_LIBRARIES (ADVANCED)&amp;quot;, then you need to install  the libfontconfig headers&lt;br /&gt;
* if you get the error &amp;quot;CMake Error: This project requires some variables to be set, and cmake can not find them. Please set the following variables: KMETADATA_LIBRARIES&amp;quot;, you need to install soprano from kdesupport and to rebuild kdelibs&lt;br /&gt;
* if you get the error &amp;quot;‘XserverRegion’ does not name a type&amp;quot; make sure you have libxcomposite headers installed (&amp;lt;tt&amp;gt;libxcomposite-dev&amp;lt;/tt&amp;gt; in ubuntu)&lt;br /&gt;
&lt;br /&gt;
== Generating local API documentation ==&lt;br /&gt;
Although the API documentation for KDE is available online at [http://api.kde.org api.kde.org], it is sometimes useful to have it on your own disk, for example when you want to use [[Getting_Started/Set_up_KDE_4_for_development#KDevelop|KDevelop]] for browsing the documentation or when you are not able to be online all the time.&lt;br /&gt;
&lt;br /&gt;
Be aware that generating the API documentation can take several hours and takes almost half a gigabyte of diskspace.&lt;br /&gt;
The generation is handled by a script in {{path|kdelibs/doc/api}}, you need &amp;lt;tt&amp;gt;doxygen&amp;lt;/tt&amp;gt; to be able to run it. &lt;br /&gt;
&lt;br /&gt;
To build the API documentation for kdelibs, type the following:&lt;br /&gt;
&amp;lt;!--'cs' and 'cb' are NOT typos!--&amp;gt;&lt;br /&gt;
 cs KDE/kdelibs # [[Getting_Started/Increased_Productivity_in_KDE4_with_Scripts/.bashrc|cs is not a typo]]&lt;br /&gt;
 $KDE_SRC/KDE/kdelibs/doc/api/doxygen.sh \&lt;br /&gt;
 --doxdatadir=$KDE_SRC/KDE/kdelibs/doc/common .&lt;br /&gt;
&lt;br /&gt;
Repeat for other modules as desired.&amp;lt;br&amp;gt;&lt;br /&gt;
 cd &amp;lt;module home&amp;gt;&lt;br /&gt;
 $KDE_SRC/KDE/kdelibs/doc/api/doxygen.sh \&lt;br /&gt;
 --doxdatadir=$KDE_SRC/KDE/kdelibs/doc/common .&lt;br /&gt;
&lt;br /&gt;
== Staying up to date ==&lt;br /&gt;
&lt;br /&gt;
In order to keep the kde4 installation up to date, each of the modules installed should be updated periodically. As Monday is the day for big changes in kdelibs, Tuesday may be the best day to do this. For each module checked out, run &amp;lt;tt&amp;gt;svn up&amp;lt;/tt&amp;gt; and &amp;lt;tt&amp;gt;make&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
For example:&lt;br /&gt;
&amp;lt;code bash&amp;gt;&lt;br /&gt;
cs kdesupport # cs is not a typo&lt;br /&gt;
svn up&lt;br /&gt;
cb # cb is not a typo&lt;br /&gt;
make -j2 VERBOSE=1 &amp;amp;&amp;amp; make install&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== General troubleshooting ==&lt;br /&gt;
&lt;br /&gt;
What can happen over time, after some &amp;lt;tt&amp;gt;svn up&amp;lt;/tt&amp;gt; commands, is that some of the tools used in the KDE build chain change their output format. For example, &amp;lt;tt&amp;gt;kcfg&amp;lt;/tt&amp;gt; files are read by &amp;lt;tt&amp;gt;kconfig_compiler&amp;lt;/tt&amp;gt; to produce configuration dialogs. CMake cannot detect those changes, and the compilation might fail. A workaround is to always force a re-generation of all such files:&lt;br /&gt;
 find $KDE_SRC/KDE/kdebase -name &amp;quot;*.kcfg&amp;quot; | xargs touch&lt;br /&gt;
The same applies to &amp;lt;tt&amp;gt;ui&amp;lt;/tt&amp;gt; files as produced by Qt designer.&lt;br /&gt;
&lt;br /&gt;
== Success! ==&lt;br /&gt;
&lt;br /&gt;
You are now ready to start building other svn modules in the same fashion as you built kdebase, running and testing KDE4 or writing your own patches and applications.&lt;br /&gt;
&lt;br /&gt;
See the [[Getting Started/Set up KDE 4 for development|Set up KDE 4 for development]] tutorial for how to start KDE 4 applications and how to use KDevelop to work on them.&lt;br /&gt;
&lt;br /&gt;
[[Category:Build KDE]]&lt;br /&gt;
[[Category:KDE4]]&lt;/div&gt;</summary>
		<author><name>Logixoul</name></author>	</entry>

	<entry>
		<id>http://techbase.kde.org/Getting_Started/Build/KDE4</id>
		<title>Getting Started/Build/KDE4</title>
		<link rel="alternate" type="text/html" href="http://techbase.kde.org/Getting_Started/Build/KDE4"/>
				<updated>2007-07-04T02:11:03Z</updated>
		
		<summary type="html">&lt;p&gt;Logixoul: /* Kubuntu */ remove not-working-anymore qt method (hope I'm not mistaken)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Template:I18n/Language Navigation Bar|Getting_Started/Build/KDE4}}&lt;br /&gt;
&lt;br /&gt;
{{TutorialBrowser|&lt;br /&gt;
&lt;br /&gt;
series=Getting Started|&lt;br /&gt;
&lt;br /&gt;
name=Building KDE4 From Source|&lt;br /&gt;
&lt;br /&gt;
pre=[[../../Sources/Anonymous_SVN|Anonymous SVN Quickstart Guide]]|&lt;br /&gt;
&lt;br /&gt;
next=[[../../Set_up_KDE_4_for_development|Set up KDE 4 for development]]|&lt;br /&gt;
&lt;br /&gt;
reading=[http://kdesvn-build.kde.org/ kdesvn-build: The KDE From Subversion Build Tool]&amp;lt;br&amp;gt;[[../../Increased_Productivity_in_KDE4_with_Scripts|Increased Productivity in KDE4 with Scripts]]&amp;lt;br&amp;gt;[[Development/Tutorials/CMake |Introduction to CMake]]&amp;lt;br&amp;gt;[[../KDE4/FreeBSD|FreeBSD notes]]&amp;lt;br&amp;gt;[[../KDE4/Mac OS X|Instructions for Mac OS X]]|&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== Abstract ==&lt;br /&gt;
&lt;br /&gt;
This tutorial shows one way to get KDE from trunk running on Linux/BSD systems. Throughout the tutorial the bash shell is used. If you are interested in building KDE on other systems such as Solaris, MacOS or Microsoft Windows, please visit the [[../|Build]] page and see the links at the bottom for the respective operating systems.&lt;br /&gt;
&lt;br /&gt;
{{warning|Expect a higher risk of build failure '''on Mondays''' when critical changes are implemented. [http://developer.kde.org/~dirk/dashboard/ Dashboard] reports unexpected breakages. You are encouraged to fix failing modules.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== Required Software ==&lt;br /&gt;
&lt;br /&gt;
The following must be installed first before you can successfully complete this tutorial:&lt;br /&gt;
* gcc and g++ from the gcc project, preferably version 4.1 or higher&lt;br /&gt;
* svn, the subversion revision control client&lt;br /&gt;
* pkg-config&lt;br /&gt;
* development libraries and headers for X11, OpenGL (mesa-common-dev and libglu1-mesa-dev), libjpeg, libpng, libungif, [http://clucene.sourceforge.net/index.php/Downloads libclucene], [http://download.librdf.org/source/ librdf], libxml2 and libxslt&lt;br /&gt;
* the &amp;lt;tt&amp;gt;makeobj&amp;lt;/tt&amp;gt; script, which is part of kdesdk. You can install it as part of kdesdk (kdesdk-scripts on Debian) or similar package, or just download it itself from [http://websvn.kde.org/*checkout*/trunk/KDE/kdesdk/scripts/makeobj WebSVN]&lt;br /&gt;
* the [http://freedesktop.org/wiki/Software/shared-mime-info shared-mime-info package], which is the freedesktop MIME standard KDE is using now&lt;br /&gt;
* [http://boost.org/ boost], needed by kdebase; after compiling and/or installing boost, in order to make cmake aware about its location (FindBoost),  add boost directory (the one containing include subdirectory) to CMAKE_INCLUDE_PATH or set an environment variable called BOOST_ROOT pointing to boost directory.&lt;br /&gt;
&lt;br /&gt;
You may also want to have the following installed:&lt;br /&gt;
* bash&lt;br /&gt;
&lt;br /&gt;
=== Kubuntu ===&lt;br /&gt;
&lt;br /&gt;
In Kubuntu 7.04 (Feisty) the build dependencies you need are installed with:&lt;br /&gt;
&amp;lt;code bash&amp;gt;&lt;br /&gt;
sudo aptitude install build-essential cdbs debhelper cmake \&lt;br /&gt;
libxml2-dev libxslt1-dev libbz2-dev libclucene-dev librdf-dev \&lt;br /&gt;
shared-mime-info libgl1-mesa-dev libglu1-mesa-dev mesa-common-dev \&lt;br /&gt;
libxext-dev libjpeg-dev libpng-dev subversion libsm-dev libxinerama-dev \&lt;br /&gt;
libxrender-dev libfontconfig-dev libboost-dev libxcursor-dev doxygen \&lt;br /&gt;
libungif4-dev libdbus-1-dev libgpgme11-dev libssl-dev&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You can skip the manual installation of CMake 2.4.6 and DBus with: &lt;br /&gt;
&amp;lt;code bash&amp;gt;&lt;br /&gt;
sudo aptitude install libdbus-1-dev cmake&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
And for fully functional [[apidox]] frame work you also need:&lt;br /&gt;
&amp;lt;code bash&amp;gt;&lt;br /&gt;
sudo aptitude install graphviz&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== openSUSE ===&lt;br /&gt;
&lt;br /&gt;
In openSUSE 10.2 and newer, you can install packages using [http://en.opensuse.org/Zypper Zypper]:&lt;br /&gt;
&amp;lt;code bash&amp;gt;&lt;br /&gt;
sudo zypper install &amp;lt;package-name&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In older releases of SUSE, you can use YaST:&lt;br /&gt;
&amp;lt;code bash&amp;gt;&lt;br /&gt;
su&lt;br /&gt;
yast -i &amp;lt;packagename&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Required Packages'''&lt;br /&gt;
&lt;br /&gt;
The packages you will need to install are:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
xorg-x11-devel&lt;br /&gt;
libxml2-devel &lt;br /&gt;
kdesdk3 &lt;br /&gt;
clucene-core-devel &lt;br /&gt;
boost-devel&lt;br /&gt;
libjpeg-devel &lt;br /&gt;
liblrdf-devel &lt;br /&gt;
libpng-devel &lt;br /&gt;
libxslt-devel &lt;br /&gt;
libredland-devel&lt;br /&gt;
Mesa-devel &lt;br /&gt;
giflib-devel &lt;br /&gt;
subversion &lt;br /&gt;
gcc &lt;br /&gt;
gcc-c++&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Optional Packages'''&lt;br /&gt;
&lt;br /&gt;
You can skip the manual installation of Qt 4.3, CMake 2.4.6 and DBus by installing the adding the openSUSE Build Service KDE4 Repository to your installation sources.&lt;br /&gt;
&lt;br /&gt;
For openSUSE 10.2 and newer do:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
sudo zypper service-add http://software.opensuse.org/download/KDE:/KDE4/openSUSE_10.2 KDE4-102&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For older versions of SUSE Linux do:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
su&lt;br /&gt;
installation_sources -a http://software.opensuse.org/download/KDE:/KDE4/[YOUR SUSE LINUX VERSION]&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now install the following packages (and their dependencies):&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
cmake&lt;br /&gt;
dbus-1-devel&lt;br /&gt;
libqt4-devel&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
And for fully functional apidox frame work you also need:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
graphviz&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
CMake binary packages for openSUSE are available from [http://software.opensuse.org/download/devel:/tools:/building/ openSUSE build service].&lt;br /&gt;
&lt;br /&gt;
=== Gentoo ===&lt;br /&gt;
&lt;br /&gt;
You can use most stable ebuilds just remember to sync your portage before you begin.&lt;br /&gt;
&lt;br /&gt;
We need to be unmasked and/or kept at a lower version to continue.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code bash&amp;gt;&lt;br /&gt;
# echo 'x11-libs/qt' &amp;gt;&amp;gt; /etc/portage/package.keywords&lt;br /&gt;
# echo 'dev-util/cmake' &amp;gt;&amp;gt; /etc/portage/package.keywords&lt;br /&gt;
# echo 'dev-cpp/clucene' &amp;gt;&amp;gt; /etc/portage/package.keywords&lt;br /&gt;
# echo '&amp;gt;dev-cpp/clucene-0.9.16a' &amp;gt;&amp;gt; /etc/portage/package.mask&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
These are the packages you will need to install, some may already be installed so you may skip those by adding the update flag to emerge.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code bash&amp;gt;&lt;br /&gt;
$ emerge -avu ebuild/name&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 sys-devel/gcc&lt;br /&gt;
 dev-util/subversion&lt;br /&gt;
 dev-util/pkgconfig&lt;br /&gt;
 x11-base/xorg-x11&lt;br /&gt;
 media-libs/glut&lt;br /&gt;
 media-libs/mesa&lt;br /&gt;
 media-libs/jpeg&lt;br /&gt;
 media-libs/libpng&lt;br /&gt;
 media-libs/giflib&lt;br /&gt;
 dev-cpp/clucene&lt;br /&gt;
 dev-util/cppunit&lt;br /&gt;
 media-libs/liblrdf&lt;br /&gt;
 dev-libs/libxml2&lt;br /&gt;
 dev-libs/libxslt&lt;br /&gt;
 x11-misc/shared-mime-info&lt;br /&gt;
 kde-base/kdesdk-scripts&lt;br /&gt;
 dev-libs/boost&lt;br /&gt;
 x11-libs/qt&lt;br /&gt;
 dev-util/cmake&lt;br /&gt;
 sys-apps/dbus&lt;br /&gt;
 dev-libs/redland&lt;br /&gt;
&lt;br /&gt;
Provided you have emerged these ebuilds, you can skip compiling them by hand and proceed to [[Getting_St