Getting Started/Build/KDE4: Difference between revisions

    From KDE TechBase
    No edit summary
     
    No edit summary
    Line 1: Line 1:
    !! Build instructions
    ==Build instructions==
    This article provides the only working guide to install KDE 4 from subversion to me. 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.


    Line 8: Line 8:
    {maketoc}
    {maketoc}


    !! Become the user kde-devel
    ==Become the user kde-devel==
    {CODE()}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{CODE}
    chown kde-devel:kde-devel /home/kde-devel 2>/dev/null || chown kde-devel:users /home/kde-devel{CODE}


    Change to the user kde-devel:
    Change to the user kde-devel:
    {CODE()}su - kde-devel{CODE}
    su - kde-devel


    !! Setting the environment
    ==Setting the environment==
    You have to add some environment variables - add these lines to ~/.bashrc.
    You have to add some environment variables - add these lines to ~/.bashrc.
    {CODE()}export YACC='byacc -d'
    export YACC='byacc -d'
    export QTDIR=$HOME/qt-unstable
    export QTDIR=$HOME/qt-unstable
    export KDEDIR=$HOME/kde
    export KDEDIR=$HOME/kde
    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
    alias dbusstart="eval `PATH=$DBUSDIR/bin \
    alias dbusstart="eval `PATH=$DBUSDIR/bin \
    $DBUSDIR/bin/dbus-launch --auto-syntax`"
    $DBUSDIR/bin/dbus-launch --auto-syntax`"
    function cmakekde { cmake -DCMAKE_INSTALL_PREFIX=$HOME/kde \
    function cmakekde { cmake -DCMAKE_INSTALL_PREFIX=$HOME/kde \
    -DCMAKE_BUILD_TYPE=debugfull $@ && make VERBOSE=1 && make install
    -DCMAKE_BUILD_TYPE=debugfull $@ && make VERBOSE=1 && make install}
    } {CODE}


    !! Check out the software
    ==Check out the software==
    {CODE()}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.91.tar.gz
    {CODE}


    !! Build DBus
    ==Build DBus==
    {CODE()}tar xvfz dbus-0.91.tar.gz
    tar xvfz dbus-0.91.tar.gz
    cd dbus-0.91/
    cd dbus-0.91/
    ./configure --disable-qt --disable-qt3 --prefix=$DBUSDIR \
    ./configure --disable-qt --disable-qt3 --prefix=$DBUSDIR \
      --localstatedir=/var && make && make install
      --localstatedir=/var && make && make install
    {CODE}
     
    __Make sure the dbus session is running__
    __Make sure the dbus session is running__
    Otherwise some parts of the build will fail, e.g. kxml_compiler based file processing in kdepim.
    Otherwise some parts of the build will fail, e.g. kxml_compiler based file processing in kdepim.
    {CODE()}dbusstart{CODE}
    dbusstart


    !! Build Qt
    ==Build Qt==
    {CODE()}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{CODE}
      -prefix $QTDIR -qdbus && make && make install{CODE}


    !! 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 /usr/local, make sure /usr/local/bin is in your PATH.


    {CODE()}
    tar zxf cmake-2.4.3.tar.gz
    tar zxf cmake-2.4.3.tar.gz
    mkdir cmake-build
    mkdir cmake-build
    cd cmake-build
    cd cmake-build
    ../cmake-2.4.3/bootstrap
    ../cmake-2.4.3/bootstrap
    make
    make
    sudo make install
    sudo make install
    {CODE}


    !! Build KDElibs
    ==Build KDElibs==
    {CODE()}cd ~/
    cd ~/
    mkdir kdelibs_build
    mkdir kdelibs_build
    cd kdelibs_build
    cd kdelibs_build
    cmakekde ../kdelibs{CODE}
    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.


    Line 80: Line 76:


    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


    {CODE()}
    cd
    cd
    svn co svn://anonsvn.kde.org/home/kde/trunk/KDE/kdepimlibs
    svn co svn://anonsvn.kde.org/home/kde/trunk/KDE/kdepimlibs
    mkdir kdepimlibs-build
    mkdir kdepimlibs-build
    cd kdepimlibs-build
    cd kdepimlibs-build
    cmakekde ../kdepimlibs
    cmakekde ../kdepimlibs
     
    {CODE}
    ===Troubleshooting===
    !!! Troubleshooting
    To compile against kdelibs (not the snapshot) add
    To compile against kdelibs (not the snapshot) add
    {CODE()}set(KDE4_IGNORE_DONTPORT TRUE){CODE} to the CMakeLists.txt before 'find_package(KDE4 REQUIRED)'
    set(KDE4_IGNORE_DONTPORT TRUE)
    to the CMakeLists.txt before 'find_package(KDE4 REQUIRED)'




    !! Build KDEbase
    ==Build KDEbase==
    You may need KDEbase for some kioslaves.
    You may need KDEbase for some kioslaves.
    {CODE()}
    cd
    cd
    svn co svn://anonsvn.kde.org/home/kde/trunk/KDE/kdebase
    svn co svn://anonsvn.kde.org/home/kde/trunk/KDE/kdebase
    mkdir kdebase-build
    mkdir kdebase-build
    cd kdebase-build
    cd kdebase-build
    cmakekde ../kdebase
    cmakekde ../kdebase
    ===Troubleshooting===
    {CODE}
    !!! 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 libxss headers 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 in{CODE()}/home/kde-devel/kde{CODE}
    * Make sure you compiled and installed kdelibs4_snapshot including the kdoctools.  
    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:
    {CODE()}X :1 & export DISPLAY=:1
    X :1 & export DISPLAY=:1
    startkde{CODE}
    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:
    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:
    {CODE()}ssh -X kde-devel@localhost
    ssh -X kde-devel@localhost
    kwrite{CODE}
    kwrite

    Revision as of 09:56, 29 August 2006

    Build instructions

    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.

    {maketoc}

    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{CODE}
    

    Change to the user kde-devel:

    su - kde-devel
    

    Setting the environment

    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.91.tar.gz
    

    Build DBus

    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{CODE}
    

    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)
    • Make sure you compiled and installed kdelibs4_snapshot including the kdoctools.
    which meinproc
    

    has to deliver

    /home/kde-devel/kde
    

    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