Getting Started/Build/KDE4: Difference between revisions

From KDE TechBase
No edit summary
(reformat code.)
Line 1: Line 1:
==Build instructions==
This article shows how to download, build, install and start KDE 4 from subversion. It consolidates howtos from various sites, e.g.
This article shows how to download, build, install and start KDE 4 from subversion. It consolidates howtos from various sites, e.g.
http://developer.kde.org/build/compile_cvs.html.  
http://developer.kde.org/build/compile_cvs.html.
This topic shows one way that works. It does not intend to explain the obvious background behind it.
This topic shows one way that works. It does not intend to explain the obvious background behind it.


To reduce complexity, we use the bash-shell (standard) throughout the tutorial.
To reduce complexity, we use the bash-shell (standard) throughout the tutorial.


==Become the user kde-devel==
== Become the user kde-devel ==
  useradd kde-devel
  useradd kde-devel
  mkdir /home/kde-devel
  mkdir /home/kde-devel
  chown kde-devel:kde-devel /home/kde-devel 2>/dev/null || chown kde-devel:users /home/kde-devel
  chown kde-devel:kde-devel /home/kde-devel 2>/dev/null || chown kde-devel:users /home/kde-devel


Change to the user kde-devel:
Switch to the user kde-devel:
  su - kde-devel
  su - kde-devel


==Setting the environment==
== Set Environment Variables ==
You have to add some environment variables - add these lines to ~/.bashrc.
You have to add some environment variables - add these lines to <code>~/.bashrc</code>.
  export YACC='byacc -d'
  export YACC='byacc -d'
  export QTDIR=$HOME/qt-unstable
  export QTDIR=$HOME/qt-unstable
Line 21: Line 20:
  export KDEDIRS=$KDEDIR
  export KDEDIRS=$KDEDIR
  export DBUSDIR=$KDEDIR
  export DBUSDIR=$KDEDIR
  export PKG_CONFIG_PATH=$DBUSDIR/lib/pkgconfig:\
  export PKG_CONFIG_PATH=$DBUSDIR/lib/pkgconfig:$PKG_CONFIG_PATH
$PKG_CONFIG_PATH
  export PATH=$QTDIR/bin:$KDEDIR/bin:$PATH
  export PATH=$QTDIR/bin:$KDEDIR/bin:$PATH
  export LD_LIBRARY_PATH=$QTDIR/lib:$KDEDIR/lib:$LD_LIBRARY_PATH
  export LD_LIBRARY_PATH=$QTDIR/lib:$KDEDIR/lib:$LD_LIBRARY_PATH
Line 30: Line 28:
  -DCMAKE_BUILD_TYPE=debugfull $@ && make VERBOSE=1 && make install; }
  -DCMAKE_BUILD_TYPE=debugfull $@ && make VERBOSE=1 && make install; }


==Check out the software==
== Check out the software ==
  svn co svn://anonsvn.kde.org/home/kde/trunk/qt-copy
  svn co svn://anonsvn.kde.org/home/kde/trunk/qt-copy
  svn co svn://anonsvn.kde.org/home/kde/trunk/KDE/kdelibs
  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://www.cmake.org/files/v2.4/cmake-2.4.3.tar.gz
  wget http://dbus.freedesktop.org/releases/dbus-0.91.tar.gz
  wget http://dbus.freedesktop.org/releases/dbus-0.92.tar.gz


==Build DBus==
== Build D-Bus ==
  tar xvfz dbus-0.91.tar.gz
  tar xvfz dbus-0.91.tar.gz
  cd dbus-0.91/
  cd dbus-0.91/
Line 42: Line 40:
  --localstatedir=/var && make && make install
  --localstatedir=/var && make && make install


__Make sure the dbus session is running__
'''Make sure the dbus session is running'''. Otherwise some parts of the build will fail, e.g. <code>kxml_compiler</code> based file processing in kdepim:
Otherwise some parts of the build will fail, e.g. kxml_compiler based file processing in kdepim.
  dbusstart
  dbusstart


==Build Qt==
== Build Qt ==
  cd ~/qt-copy && \
  cd ~/qt-copy && \
  ./configure -qt-gif -no-exceptions -debug -fast \
  ./configure -qt-gif -no-exceptions -debug -fast \
  -prefix $QTDIR -qdbus && make && make install
  -prefix $QTDIR -qdbus && make && make install


==Build and install CMake==
== Build and Install CMake ==


The default prefix is /usr/local, make sure /usr/local/bin is in your PATH.
The default prefix is <code>/usr/local</code>, make sure <code>/usr/local/bin</code> is in your <code>$PATH</code>.


  tar zxf cmake-2.4.3.tar.gz
  tar zxf cmake-2.4.3.tar.gz
Line 62: Line 59:
  sudo make install
  sudo make install


==Build KDElibs==
== Build kdelibs ==
  cd ~/
  cd ~/
  mkdir kdelibs_build
  mkdir kdelibs_build
Line 68: Line 65:
  cmakekde ../kdelibs
  cmakekde ../kdelibs


===Troubleshooting===
=== Troubleshooting ===
If you have problems compiling this, first make sure the following commands can be executed: aclocal, autoconf, autoheader, gcc, g++, pkg-config.
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 libungif (the actual name may vary on distribution).
; 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
If the problems persist, try the make-option <code>--keep-going</code>
--keep-going


==Build kdepimlibs==
== Build kdepimlibs ==
Before KDEBase you need to install kdepimlibs
Before ''kdebase'' you need to install ''kdepimlibs''


  cd
  cd
Line 85: Line 81:
  cmakekde ../kdepimlibs
  cmakekde ../kdepimlibs


===Troubleshooting===
=== Troubleshooting ===
To compile against kdelibs (not the snapshot) add
To compile against kdelibs (not the snapshot) add
  set(KDE4_IGNORE_DONTPORT TRUE)
  set(KDE4_IGNORE_DONTPORT TRUE)
to the CMakeLists.txt before 'find_package(KDE4 REQUIRED)'
to the <code>CMakeLists.txt</code> before <code>find_package(KDE4 REQUIRED)</code>


 
== Build kdebase ==
==Build KDEbase==
You may need kdebase for some kioslaves.
You may need KDEbase for some kioslaves.
  cd
  cd
  svn co svn://anonsvn.kde.org/home/kde/trunk/KDE/kdebase
  svn co svn://anonsvn.kde.org/home/kde/trunk/KDE/kdebase
Line 98: Line 93:
  cd kdebase-build
  cd kdebase-build
  cmakekde ../kdebase
  cmakekde ../kdebase
===Troubleshooting===
 
=== Troubleshooting ===
If you have troubles compiling this:
If you have troubles compiling this:
* Make sure you have the libxss headers installed. (Usually you got undefined references on xscreensaver objects if you haven't those headers)
* Make sure you have the <code>libxss headers</code> installed. (Usually you got undefined references on xscreensaver objects if you haven't those headers)
* Make sure you compiled and installed kdelibs4_snapshot including the kdoctools.
* <code>which meinproc</code> has to deliver <code>/home/kde-devel/kde/bin/meinproc</code>
which meinproc
has to deliver  
/home/kde-devel/kde


==Start KDE 4 programs==
== Start KDE 4 Programs ==
To start the desktop environment itself, do:
To start the desktop environment itself, do:
  X :1 & export DISPLAY=:1
  X :1 & export DISPLAY=:1

Revision as of 10:23, 10 September 2006

This article shows how to download, build, install and start KDE 4 from subversion. It consolidates howtos from various sites, e.g. http://developer.kde.org/build/compile_cvs.html. This topic shows one way that works. It does not intend to explain the obvious background behind it.

To reduce complexity, we use the bash-shell (standard) throughout the tutorial.

Become the user kde-devel

useradd kde-devel
mkdir /home/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:

su - kde-devel

Set Environment Variables

You have to add some environment variables - add these lines to ~/.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
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-0.92.tar.gz

Build D-Bus

tar xvfz dbus-0.91.tar.gz
cd dbus-0.91/
./configure --disable-qt --disable-qt3 --prefix=$DBUSDIR \
--localstatedir=/var && make && make install

Make sure the dbus session is running. Otherwise some parts of the build will fail, e.g. kxml_compiler based file processing in kdepim:

dbusstart

Build Qt

cd ~/qt-copy && \
./configure -qt-gif -no-exceptions -debug -fast \
-prefix $QTDIR -qdbus && make && make install

Build and Install CMake

The default prefix is /usr/local, make sure /usr/local/bin is in your $PATH.

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 libungif (the actual name may vary on distribution).

If the problems persist, try the make-option --keep-going

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

Troubleshooting

To compile against kdelibs (not the snapshot) add

set(KDE4_IGNORE_DONTPORT TRUE)

to the CMakeLists.txt before find_package(KDE4 REQUIRED)

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 libxss headers installed. (Usually you got undefined references on xscreensaver objects if you haven't those headers)
  • which meinproc has to deliver /home/kde-devel/kde/bin/meinproc

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
Tip
Note: This page is about KDE 4. It isn't applicable for KDE 3 development.