--- /dev/null
+
+Building, running and Valgrinding KDE 4.2 svn from source
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+It is recommended to make a new user ("kde4", maybe) to do the
+building, and do all the following as that user. This means it can't
+mess up any existing KDE sessions/settings.
+
+Prelims (note, needed for both building and running KDE4):
+
+# Change these as you like; but "-g -O" is known to be a good
+# speed vs debuginfo-accuracy tradeoff for Valgrind
+
+export CFLAGS="-g -O"
+export CXXFLAGS="-g -O"
+
+export KDEINST=$HOME/InstKdeSvn ## change as you like
+export PATH=$KDEINST/bin:$PATH
+export LD_LIBRARY_PATH=$KDEINST/lib:$KDEINST/lib64:$LD_LIBRARY_PATH
+
+unset XDG_DATA_DIRS # to avoid seeing kde3 files from /usr
+unset XDG_CONFIG_DIRS
+
+export PKG_CONFIG_PATH=$KDEINST/lib/pkgconfig:$KDEINST/lib64/pkgconfig:$PKG_CONFIG_PATH
+# else kdelibs' config detection of strigi screws up
+
+Check these carefully before proceeding.
+
+env | grep FLAGS
+env | grep PATH
+env | grep XDG
+env | grep KDEINST
+
+The final installation will be placed in the directory $KDEINST.
+
+As a general comment, it is particularly important to read the output
+of the cmake runs (below), as these tell you of missing libraries that
+may screw up the build. After a cmake run, you may want to install
+some supporting libs (through yast, etc) before re-running cmake. The
+"rm -f CMakeCache.txt" ensures cmakes starts afresh.
+
+
+Getting the sources
+~~~~~~~~~~~~~~~~~~~
+
+ # note also that this assumes that the KDE 4.2 sources are
+ # acquired from the KDE trunk; that is, this is happening
+ # prior to the 4.2 release.
+
+ # note this takes ages, unless you are fortunate enough to have
+ # a gazigabit-per-second network connection
+ # checking out merely "trunk" is a really bad idea
+ # due to the enormous amount of unnecessary stuff fetched.
+ #
+ svn co svn://anonsvn.kde.org/home/kde/trunk/kdesupport trunk_kdesupport
+ svn co svn://anonsvn.kde.org/home/kde/trunk/KDE trunk_KDE
+
+ # This alone soaks up about 2.5GB of disk space.
+ # You'll also need to snarf a copy of qt-x11-opensource-src-4.4.3.tar.bz2
+ # (md5 = 00e00c6324d342a7b0d8653112b4f08c)
+
+
+Building Qt
+~~~~~~~~~~~
+
+First build qt-4.4.3 with QtDBus support and some other kind of
+support (can't remember what. jpeg?). These are both added by
+default provided the relevant packages are installed. Check the Qt
+configure output to be sure.
+
+ bzip2 -dc qt-x11-opensource-src-4.4.3.tar.bz2 | tar xvf -
+ cd qt-x11-opensource-src-4.4.3
+
+ emacs mkspecs/common/g++.conf
+ # change QMAKE_CFLAGS_RELEASE and QMAKE_CFLAGS_DEBUG both to be -g -O
+
+ # optionally, in src/corelib/tools/qvector.h, for the defns of
+ # QVectorData and QVectorTypedData, change
+ #if defined(QT_ARCH_SPARC) && defined(Q_CC_GNU) && defined(__LP64__) \
+ && defined(QT_BOOTSTRAPPED)
+ # to "if 1 || defined ..."
+ # twice (else get strange memcheck errors with QVector on ppc. Not
+ # sure if this is a qt bug (possibly), a gcc bug (unlikely) or a
+ # valgrind bug (unlikely)). I don't think this is necessary on x86
+ # or x86_64.
+
+ echo yes | ./configure -platform linux-g++-64 -prefix $KDEINST
+ # NB: change that to linux-g++-32 for a 32 bit build
+
+ # check configure output before proceeding, to ensure that
+ # qt will built with support for the following:
+ #
+ # QtDBus module ....... yes (run-time)
+ # GIF support ......... plugin
+ # TIFF support ........ plugin (system)
+ # JPEG support ........ plugin (system)
+ # PNG support ......... yes (system)
+ # MNG support ......... plugin (system)
+ # zlib support ........ system
+ # OpenSSL support ..... yes (run-time)
+ #
+ # If some of these are missing ("... no"), then it means you need
+ # to install the relevant supporting libs and redo the qt configure
+ # (make confclean, then redo configure)
+
+ make -j 2
+ make install
+ # this takes approx 1 hour on a dual processor 2.5GHz PPC970
+
+ # check that this installed correctly
+ # - qmake is in $KDEINST/bin and is linked against stuff in
+ # $KDEINST/lib
+ # - ditto designer and linguist
+ # - check qmake, designer, linguist actually start up/run
+
+
+Building KDE
+~~~~~~~~~~~~
+
+The basic deal is
+
+for each package, use a separate source and build dir cd to the build
+dir (can be anything)
+
+then
+
+ # note that LIB_SUFFIX must be "" for 32 bit builds and "64" for 64 bit builds
+ rm -f CMakeCache.txt && cmake /path/to/source/tree/for/this/package -DCMAKE_INSTALL_PREFIX=$KDEINST -DCMAKE_BUILD_TYPE=debugfull -DLIB_SUFFIX=64 -DQT_QMAKE_EXECUTABLE=$KDEINST/bin/qmake
+
+ # check output, particularly that it has the right Qt
+ make
+ # make -j 2 quite often screws up
+ make install
+
+Packages should be built in the order:
+ kdesupport
+ kdelibs
+ kdepimlibs
+ kdebase-runtime
+ kdebase-workspace
+ kdebase
+
+This gives a working basic KDE. Then build the rest in any order, perhaps:
+
+ kdegraphics
+ kdeadmin
+ kdeutils
+ kdenetwork
+ kdepim
+
+So the actual stuff to do is:
+
+ cd ~
+ mkdir build
+
+ cd build
+ mkdir kdesupport
+ cd kdesupport
+ rm -f CMakeCache.txt && cmake ~/trunk_kdesupport \
+ -DCMAKE_INSTALL_PREFIX=$KDEINST -DCMAKE_BUILD_TYPE=debugfull \
+ -DLIB_SUFFIX=64 -DQT_QMAKE_EXECUTABLE=$KDEINST/bin/qmake
+ make -j 2
+ make install
+
+ cd ~/build
+ mkdir kdelibs
+ cd kdelibs
+ rm -f CMakeCache.txt && cmake ~/trunk_KDE/kdelibs \
+ -DCMAKE_INSTALL_PREFIX=$KDEINST -DCMAKE_BUILD_TYPE=debugfull \
+ -DLIB_SUFFIX=64 -DQT_QMAKE_EXECUTABLE=$KDEINST/bin/qmake
+ make -j 2
+ make install
+
+ cd ~/build
+ mkdir kdepimlibs
+ cd kdepimlibs
+ rm -f CMakeCache.txt && cmake ~/trunk_KDE/kdepimlibs \
+ -DCMAKE_INSTALL_PREFIX=$KDEINST -DCMAKE_BUILD_TYPE=debugfull \
+ -DLIB_SUFFIX=64 -DQT_QMAKE_EXECUTABLE=$KDEINST/bin/qmake
+ make -j 2
+ make install
+
+ cd ~/build
+ mkdir kdebase-runtime
+ cd kdebase-runtime
+ rm -f CMakeCache.txt && cmake ~/trunk_KDE/kdebase/runtime \
+ -DCMAKE_INSTALL_PREFIX=$KDEINST -DCMAKE_BUILD_TYPE=debugfull \
+ -DLIB_SUFFIX=64 -DQT_QMAKE_EXECUTABLE=$KDEINST/bin/qmake
+ make -j 2
+ make install
+
+ cd ~/build
+ mkdir kdebase-workspace
+ cd kdebase-workspace
+ rm -f CMakeCache.txt && cmake ~/trunk_KDE/kdebase/workspace \
+ -DCMAKE_INSTALL_PREFIX=$KDEINST -DCMAKE_BUILD_TYPE=debugfull \
+ -DLIB_SUFFIX=64 -DQT_QMAKE_EXECUTABLE=$KDEINST/bin/qmake
+ make -j 2
+ make install
+
+ cd ~/build
+ mkdir kdebase-apps
+ cd kdebase-apps
+ rm -f CMakeCache.txt && cmake ~/trunk_KDE/kdebase/apps \
+ -DCMAKE_INSTALL_PREFIX=$KDEINST -DCMAKE_BUILD_TYPE=debugfull \
+ -DLIB_SUFFIX=64 -DQT_QMAKE_EXECUTABLE=$KDEINST/bin/qmake
+ make -j 2
+ make install
+
+ cd ~/build
+ mkdir kdegraphics
+ cd kdegraphics
+ rm -f CMakeCache.txt && cmake ~/trunk_KDE/kdegraphics \
+ -DCMAKE_INSTALL_PREFIX=$KDEINST -DCMAKE_BUILD_TYPE=debugfull \
+ -DLIB_SUFFIX=64 -DQT_QMAKE_EXECUTABLE=$KDEINST/bin/qmake
+ make -j 2
+ make install
+
+ cd ~/build
+ mkdir kdeadmin
+ cd kdeadmin
+ rm -f CMakeCache.txt && cmake ~/trunk_KDE/kdeadmin \
+ -DCMAKE_INSTALL_PREFIX=$KDEINST -DCMAKE_BUILD_TYPE=debugfull \
+ -DLIB_SUFFIX=64 -DQT_QMAKE_EXECUTABLE=$KDEINST/bin/qmake
+ make -j 2
+ make install
+
+ cd ~/build
+ mkdir kdeutils
+ cd kdeutils
+ rm -f CMakeCache.txt && cmake ~/trunk_KDE/kdeutils \
+ -DCMAKE_INSTALL_PREFIX=$KDEINST -DCMAKE_BUILD_TYPE=debugfull \
+ -DLIB_SUFFIX=64 -DQT_QMAKE_EXECUTABLE=$KDEINST/bin/qmake
+ make -j 2
+ make install
+
+ cd ~/build
+ mkdir kdenetwork
+ cd kdenetwork
+ rm -f CMakeCache.txt && cmake ~/trunk_KDE/kdenetwork \
+ -DCMAKE_INSTALL_PREFIX=$KDEINST -DCMAKE_BUILD_TYPE=debugfull \
+ -DLIB_SUFFIX=64 -DQT_QMAKE_EXECUTABLE=$KDEINST/bin/qmake
+ make -j 2
+ make install
+
+ cd ~/build
+ mkdir kdepim
+ cd kdepim
+ rm -f CMakeCache.txt && cmake ~/trunk_KDE/kdepim \
+ -DCMAKE_INSTALL_PREFIX=$KDEINST -DCMAKE_BUILD_TYPE=debugfull \
+ -DLIB_SUFFIX=64 -DQT_QMAKE_EXECUTABLE=$KDEINST/bin/qmake
+ make -j 2
+ make install
+
+ cd ~/build
+ mkdir kdeartwork
+ cd kdeartwork
+ rm -f CMakeCache.txt && cmake ~/trunk_KDE/kdeartwork \
+ -DCMAKE_INSTALL_PREFIX=$KDEINST -DCMAKE_BUILD_TYPE=debugfull \
+ -DLIB_SUFFIX=64 -DQT_QMAKE_EXECUTABLE=$KDEINST/bin/qmake
+ make -j 2
+ make install
+
+ cd ~/build
+ mkdir kdemultimedia
+ cd kdemultimedia
+ rm -f CMakeCache.txt && cmake ~/trunk_KDE/kdemultimedia \
+ -DCMAKE_INSTALL_PREFIX=$KDEINST -DCMAKE_BUILD_TYPE=debugfull \
+ -DLIB_SUFFIX=64 -DQT_QMAKE_EXECUTABLE=$KDEINST/bin/qmake
+ make -j 2
+ make install
+
+
+ # still todo: koffice, amarok ?
+
+
+Running KDE
+~~~~~~~~~~~
+
+Make sure dbus is running (pstree -p <myusername> | grep dbus)
+
+If not running:
+
+ eval `dbus-launch --auto-syntax`
+
+probably best to ensure there's only one instance, to avoid confusion
+
+You need PATH, LD_LIBRARY_PATH, XDG_DATA_DIRS and XDG_CONFIG_DIRS set as above
+
+Then run startkde in an xterm on the new X server
+