Difference between revisions of "Getting Started/Build/KDE4/on virtual machines"

Jump to: navigation, search
(make short and clear sentences)
(shared desktop ontologies)
Line 137: Line 137:
 
  cd shared-desktop-ontologies-0.5/
 
  cd shared-desktop-ontologies-0.5/
 
  cmake . && make && make install
 
  cmake . && make && make install
 +
 +
== phonon ==
 +
Phonon is needed for kdebase-runtime
 +
git clone git://anongit.kde.org/phonon
 +
git clone git://anongit.kde.org/phonon-directshow
 +
git clone git://anongit.kde.org/phonon-gstreamer
 +
git clone git://anongit.kde.org/phonon-mmf
 +
git clone git://anongit.kde.org/phonon-quicktime
 +
git clone git://anongit.kde.org/phonon-waveout
 +
git clone git://anongit.kde.org/phonon-xine
  
 
== kdelibs ==
 
== kdelibs ==

Revision as of 19:41, 2 April 2011


Tutorial Factbox
Time to replay 2 hours
Example Distro SUSE Linux 11.3
Type HowTo
Happy readers 2
Unhappy readers 0

This describes the potential of using a virtual machine to contain development, for testing system level KDE tools like KDM without mucking up the rest of your system. Also, virtual machine snapshots can be shared with casual developers so they can have an up to date, rich environment for their minor fixes.

In the included example, we set up KDE trunk on a Suse 11.4 Linux Virtual Machine.

Basically nothing special except using root account directly.. And it is in a virtual machine, Note that the build requirements are moving targets so examples are all but useless.

We use KVM because it is faster than other free alternatives, and can use multiple processors.

Contents

Virtual Machine Setup

Create a KVM virtual machine. KDE 4 fits into 10 GB minimum, I recommend 40GB, one partition. As much ram as you can spare, You will need at least 1GB ram for the virtual machine, 4 doesnt hurt if you have it, install SUSE Linux 11.4.

You will need to set your SUSE CD as your virtual machine's cdrom.

setup for SSH

To be able to log in to your VM using ssh, stop and disable the firewall:

rcSuSEfirewall2 stop
chkconfig SuSEfirewall2_setup off
chkconfig SuSEfirewall2_init off
/etc/init.d/sshd start
chkconfig sshd on

Inside the VM, install some needed packages:

yast -i libopenssl-devel subversion gcc-c++ boost-devel libbz2-devel libxml2-devel pcre-devel \
libxslt-devel giflib-devel libjpeg-devel libgpgme-devel xorg-x11-devel glib2-devel libpng-devel \
make dbus-1-devel taglib-devel \
libmysqlclient-devel libmysqld-devel cmake libical-devel git cyrus-sasl-devel libredland-devel \
libqt4-devel docbook-xsl-stylesheets libQtWebKit-devel phonon-devel doxygen
Now it is time to do a snapshot or clone from your VM.

You will be able to return to this machine state whenever you want. (you may want to do this again after you have downloaded all the stuff but before you muck with stuff)

a few more steps

Open a console as root

su -

on an x64 distribution

If and only if you have a /lib64 path, you are on an x64 distribution. Make sure you have the needed environment variables and alias set by having a file /root/.bashrc.

cd
cat >.bashrc<<EOF 
export KDEDIR=/usr/local         
alias cmakekde="cmake . -DCMAKE_INSTALL_PREFIX=\$KDEDIR -DLIB_SUFFIX=64 -DCMAKE_BUILD_TYPE=debugfull && make -j8 && make install"
alias cmakekdelibs="cmake ../kdelibs -DCMAKE_INSTALL_PREFIX=\$KDEDIR -DLIB_SUFFIX=64 -DCMAKE_BUILD_TYPE=debugfull && make -j8 && make install"
alias makeqt="./configure -dbus -openssl -plugin-sql-mysql -libdir /usr/lib64 -prefix /usr && make -j8 && make install"
export QTDIR=/usr
EOF
cat >.gitconfig<<EOF
[url "git://anongit.kde.org/"]
    insteadOf = kde:
[url "ssh://git@git.kde.org/"]
    pushInsteadOf = kde:
EOF

Now activate this file

. /root/.bashrc

on another distribution (incl 32bit)

Make sure you have the needed environment variables and alias set by having a file /root/.bashrc.

cd
cat >.bashrc<<EOF
export KDEDIR=/usr/local         
alias cmakekde="cmake . -DCMAKE_INSTALL_PREFIX=\$KDEDIR -DCMAKE_BUILD_TYPE=debugfull && make -j8 && make install"
alias cmakekdelibs="cmake ../kdelibs -DCMAKE_INSTALL_PREFIX=\$KDEDIR -DCMAKE_BUILD_TYPE=debugfull && make -j8 && make install"
alias makeqt="./configure -dbus -openssl -plugin-sql-mysql -prefix /usr && make -j8 && make install"
export QTDIR=/usr
EOF
cat >.gitconfig<<EOF
[url "git://anongit.kde.org/"]
    insteadOf = kde:
[url "ssh://git@git.kde.org/"]
    pushInsteadOf = kde:
EOF

Now activate this file

. /root/.bashrc

Aquire and Build KDE as root

If something fails you may need to make clean.

kdesupport

cd
svn co svn://anonsvn.kde.org/home/kde/trunk/kdesupport
cd kdesupport
cmakekde

soprano

cd 
git clone git://anongit.kde.org/soprano
cd soprano
cmakekde

automoc

automoc is needed for akonadi.

cd
git clone git://anongit.kde.org/automoc
cd automoc
cmakekde

akonadi

Akonadi keeps personal information management data in a mysql database. It is needed for KDEPIMLIBS.

cd
git clone git://anongit.kde.org/akonadi
cd akonadi
cmakekde

libattica

cd
git clone kde:attica
cd attica
cmakekde

strigi

libstream

cd
git clone git://anongit.kde.org/libstreams
cd libstreams
cmakekde

libstreamanalyzer

cd
git clone git://anongit.kde.org/libstreamanalyzer
cd libstreamanalyzer
cmakekde

dbusmenuqt

cd
git clone git://gitorious.org/dbusmenu/dbusmenu-qt.git
cd dbusmenu-qt
cmakekde

shared desktop ontologies

shared desktop ontologies is needed by kdepimlibs

cd
wget http://downloads.sourceforge.net/project/oscaf/shared-desktop-ontologies/0.5/shared-desktop-ontologies-0.5.tar.bz2?r=http%3A%2F%2Fsourceforge.net%2Fapps%2Ftrac%2Foscaf%2F&ts=1283713100&use_mirror=freefr
bunzip2 shared-desktop-ontologies-0.5.tar.bz2
tar xvf shared-desktop-ontologies-0.5.tar
cd shared-desktop-ontologies-0.5/
cmake . && make && make install

phonon

Phonon is needed for kdebase-runtime git clone git://anongit.kde.org/phonon git clone git://anongit.kde.org/phonon-directshow git clone git://anongit.kde.org/phonon-gstreamer git clone git://anongit.kde.org/phonon-mmf git clone git://anongit.kde.org/phonon-quicktime git clone git://anongit.kde.org/phonon-waveout git clone git://anongit.kde.org/phonon-xine

kdelibs

KDELIBS requires an out-of-source build, that is why it is more complicated to build:

git clone kde:kdelibs
mkdir kdelibs-build
cd kdelibs-build
cmakekdelibs

Verify it has been correctly installed - the following must be possible:

kde4-config --prefix
/usr/local

kdepimlibs

cd
git clone kde:kdepimlibs
cd kdepimlibs
cmakekde

kdebase

cd 
git clone kde:konsole
git clone kde:kde-baseapps
git clone kde:kde-workspace
git clone kde:kde-runtime
cd konsole
cmakekde
cd
cd kde-baseapps
cmakekde
cd
cd kde-workspace
cmakekde
cd
cd kde-runtime
cmakekde

Config

First allow root login. You will need it as you do not have another login:

sed -i "s/AllowRootLogin.*/AllowRootLogin=true/g" /usr/local/share/config/kdm/kdmrc

Now stop your running display manager:

/etc/init.d/xdm stop

And start your self-compiled display manager:

kdm

To enable automated startup of your kdm, you need to change some SUSE-specific paths in /etc/init.d/xdm:

KDM_BIN=/usr/local/bin/kdm
KDM4_BIN=/usr/local/bin/kdm


KDE® and the K Desktop Environment® logo are registered trademarks of KDE e.V.Legal