Getting Started/Build/KDE4: Difference between revisions

From KDE TechBase
(Redirected page to Getting Started/Build)
 
(795 intermediate revisions by 98 users not shown)
Line 1: Line 1:
This article shows how to download, build, install and start KDE 4 from subversion. It consolidates howtos from various sites, e.g.
#REDIRECT [[Getting_Started/Build|Building KDE]]
[http://developer.kde.org/build/trunk.html the old KDE developer pages].
This topic shows one way that works. It does not intend to explain the obvious background behind it.
 
You may be interested in: http://kdesvn-build.kde.org/
 
To reduce complexity, we use the bash-shell (standard) throughout the tutorial.
 
== Become the user kde-devel ==
useradd kde-devel
mkdir /home/kde-devel
passwd kde-devel
chown kde-devel:kde-devel /home/kde-devel 2>/dev/null || \
chown kde-devel:users /home/kde-devel
 
Switch to the user kde-devel: (the dash also changes to the new home directory)
su - kde-devel
 
== Set Environment Variables ==
You have to add some environment variables - add these lines to your shell's configuration file, e.g. {{path|~/.bashrc}}.
export YACC='byacc -d'
export QTDIR=$HOME/qt-unstable
export KDEDIR=$HOME/kde
export KDEDIRS=$KDEDIR
export DBUSDIR=$KDEDIR
export PKG_CONFIG_PATH=$DBUSDIR/lib/pkgconfig:$PKG_CONFIG_PATH
export PATH=$QTDIR/bin:$KDEDIR/bin:$PATH
export LD_LIBRARY_PATH=$QTDIR/lib:$KDEDIR/lib:$LD_LIBRARY_PATH
## Uncomment if dbus doesn't work
#alias dbusstart="eval `PATH=$DBUSDIR/bin \
#$DBUSDIR/bin/dbus-launch --auto-syntax`"
function cmakekde { cmake -DCMAKE_INSTALL_PREFIX=$HOME/kde \
-DCMAKE_BUILD_TYPE=debugfull $@ && make VERBOSE=1 && make install; }
 
== Check out the software ==
svn co svn://anonsvn.kde.org/home/kde/trunk/qt-copy
svn co svn://anonsvn.kde.org/home/kde/trunk/KDE/kdelibs
wget http://www.cmake.org/files/v2.4/cmake-2.4.3.tar.gz
wget http://dbus.freedesktop.org/releases/dbus/dbus-0.94.tar.gz
 
== Build D-Bus ==
tar xvfz dbus-0.94.tar.gz
cd dbus-0.94/
./configure --disable-qt --disable-qt3 --prefix=$DBUSDIR \
--localstatedir=/var && make && make install
dbus-uuidgen --ensure
 
== Build Qt ==
cd ~/qt-copy && ./apply_patches && \
./configure -qt-gif -no-exceptions -debug -fast \
-prefix $QTDIR -qdbus && make && make install
 
== Build and Install CMake ==
 
The default prefix is <code>/usr/local</code>, make sure {{path|/usr/local/bin}} is in your <code>$PATH</code>.
 
cd
tar zxf cmake-2.4.3.tar.gz
mkdir cmake-build
cd cmake-build
../cmake-2.4.3/bootstrap
make
sudo make install
 
== Build kdelibs ==
cd ~/
mkdir kdelibs-build
cd kdelibs-build
cmakekde ../kdelibs
 
=== Troubleshooting ===
If you have problems compiling this, first make sure the following commands can be executed: aclocal, autoconf, autoheader, gcc, g++, pkg-config.
 
; Note: If you get "Could NOT find GIF", install the devel package of <code>libungif</code> (the actual name may vary on distribution).
 
If the problems persist, try the make-option <code>--keep-going</code>
 
== Build kdepimlibs ==
Before ''kdebase'' you need to install ''kdepimlibs''
 
cd
svn co svn://anonsvn.kde.org/home/kde/trunk/KDE/kdepimlibs
mkdir kdepimlibs-build
cd kdepimlibs-build
cmakekde ../kdepimlibs
 
 
 
== Build kdebase ==
You may need kdebase for some kioslaves.
cd
svn co svn://anonsvn.kde.org/home/kde/trunk/KDE/kdebase
mkdir kdebase-build
cd kdebase-build
cmakekde ../kdebase
 
=== Troubleshooting ===
If you have troubles compiling this:
* Make sure you have the <code>libxss headers</code> installed. (Usually you got undefined references on xscreensaver objects if you haven't those headers)
* <code>which meinproc</code> has to deliver {{path|/home/kde-devel/kde/bin/meinproc}}
* if cmakekde cannot find the path of kdepimlibs, edit the file /home/kde-devel/kdebase-build/CMakeCache.txt and manually set KDEPIMLIBS_INCLUDE_DIR:PATH=/home/kde-devel/kdepimlibs-build
 
== Start KDE 4 Programs ==
To start the desktop environment itself, do:
X :1 & export DISPLAY=:1
startkde
Maybe you are logged in as your normal user (not kde-devel), want to stay in your current environment (KDE 3.5, gnome, whatever) and start a KDE 4 program. To start only kwrite from KDE 4, do:
ssh -X kde-devel@localhost
kwrite
 
== Using Xephyr for developing inside KDE 3 ==
Instead of using a full-blown new virtual X for developing software you can use Xephyr to embed your KDE 4 session into your working KDE 3 environment.
 
Sure you can do this with xnest too, but it cannot handle extensions like Xrender so some people prefer Xephyr over it.
 
If you want to get a minimal KDE session up and running, just launch Xephyr (available in Kubuntu as xserver-xephyr):
 
# Xephyr :1&
 
You can now launch KDE:
 
export DISPLAY=:1
/path/to/kde4/bin/startkde-modified &
 
startkde-modified is a copy of the startkde-script which includes the following lines on the top:
 
export KDEDIRS=`kde4-config --prefix`
export LD_LIBRARY_PATH=$KDEDIR/lib
export PATH=$KDEDIR/bin/:$PATH
export KDEHOME=~/.kde4
 
You can also use Xephyr with KDM via the Xdmcp protocol and simply a new KDE 4 session to KDM.
On Kubuntu, you can enable it by changing
 
[Xdmcp]
# Whether KDM should listen to incoming XDMCP requests.
# Default is true
Enable=false
 
in /etc/kde3/kdm/kdmrc to
[Xdmcp]
# Whether KDM should listen to incoming XDMCP requests.
# Default is true
Enable=true
 
and adjust your /etc/kde3/kdm/Xaccess to allow your local machine access. Additionally you should make sure to set up a port blocking policy on all external interfaces for the Xdmcp port if you are doing this on a laptop or a PC in an untrusted environment.
If you are done, simply launch Xephyr:
Xephyr -query localhost :1 -host-cursor -screen 1024x768&
 
where -host-cursor tries to reuse the host's cursor and -screen sets the screen dimensions.
 
== Additional notes: ==
http://wiki.kde.org/tiki-index.php?page=KDECMakeIntro
 
[[Category:Build KDE]]
[[Category:KDE4]]

Latest revision as of 16:34, 20 March 2011