first off, http://techbase.kde.org/Getting_Started/Build/KDE4

the actual kde4 and qt environment will be within the user ‘kde-devel’, not on the root filesystem.

  • first potential issue, is it prefers g++ 4.2, slack has 4.1.2
  • the `makeobj` script was already installed. the install version had added a verbose flag.
  • downloaded, compiled and installed (as root) shared mime info (with no special options/flags)
    wget http://freedesktop.org/~hadess/shared-mime-info-0.22.tar.bz2
  • boost, I downloaded (http://internap.dl.sourceforge.net/sourceforge/boost/boost_1_34_1.tar.bz2), extracted it to ‘/usr/local/boost_1_34_1’ and created a sym link to it as ‘/usr/local/include/boost’
  • cmake appears to already be installed cmake version 2.4-patch 6
  • downloading the source to redland (http://download.librdf.org/source/redland-1.0.6.tar.gz) for ‘librdf ‘, but i’ve also found a slack pack at (http://www.slacky.eu/repository/slackware-12.0/libraries/redland/1.0.6/redland-1.0.6-i486-1as.tgz).
    i’ll try source first, which appears to have done fine, built in /home/vbatts/src/redland-1.0.6, installed as root
  • clucene, checked it out from their svn. http://clucene.sourceforge.net/index.php/Downloads
    compiled it, and installed it to it’s default ‘/usr/local/’
  • /var/log/packages/dbus-1.0.2-i486-3 is already installed
  • /var/log/packages/dbus-glib-0.73-i486-1 is already installed
  • /var/log/packages/cmake-2.4.6-i486-2 is already installed
  • environment variables are almost identical the the sample bashrc provided on the KDE site. I did make a number of symlinks though, because login as ‘kde-devel’ didn’t seem to pick up ~/.bashrc, so I ‘ln -s’ as ~/.bash_profile and ~/.shrc
  • Qt

    cd # Note: qt-copy lives in $HOME/qt-copy. See $QTDIR in .bashrc
    svn checkout svn://anonsvn.kde.org/home/kde/trunk/qt-copy
    cd qt-copy
    ./apply_patches
    ./configure -qt-gif -no-exceptions -debug -fast
    -prefix $QTDIR -nomake examples -nomake demos
    make -j2
  • so qt-copy is crashing out in Xlib.h for a _X_SENTINEL function, having not been initialized. on slackware this will be slightly interesting finding what package is going to solve this unmatched dependency. following is a section of Xlib.h that is crashing and following that is the compiled time error.

    3570 extern char *XSetOMValues(
    3571 XOM /* om */,
    3572 ...
    3573 ) _X_SENTINEL(0);
    3574
    3575 extern char *XGetOMValues(
    3576 XOM /* om */,
    3577 ...
    3578 ) _X_SENTINEL(0);
    3579
    3580 extern Display *XDisplayOfOM(
    3581 XOM /* om */
    3582 );
    3583
    3584 extern char *XLocaleOfOM(
    3585 XOM /* om */
    3586 );
    3587
    3588 extern XOC XCreateOC(
    3589 XOM /* om */,
    3590 ...
    3591 ) _X_SENTINEL(0);
    3592
    3593 extern void XDestroyOC(
    3594 XOC /* oc */
    3595 );
    3596
    3597 extern XOM XOMOfOC(
    3598 XOC /* oc */
    3599 );
    3600
    3601 extern char *XSetOCValues(
    3602 XOC /* oc */,
    3603 ...
    3604 ) _X_SENTINEL(0);
    3605
    3606 extern char *XGetOCValues(
    3607 XOC /* oc */,
    3608 ...
    3609 ) _X_SENTINEL(0);

    the error

    45172 /usr/include/X11/Xlib.h:3573: error: expected initializer before '_X_SENTINEL'
    45173 /usr/include/X11/Xlib.h:3578: error: expected initializer before '_X_SENTINEL'
    45174 /usr/include/X11/Xlib.h:3591: error: expected initializer before '_X_SENTINEL'
    45175 /usr/include/X11/Xlib.h:3604: error: expected initializer before '_X_SENTINEL'
    45176 /usr/include/X11/Xlib.h:3609: error: expected initializer before '_X_SENTINEL'
    45177 /usr/include/X11/Xlib.h:3841: error: expected initializer before '_X_SENTINEL'
    45178 /usr/include/X11/Xlib.h:3845: error: expected initializer before '_X_SENTINEL'
    45179 /usr/include/X11/Xlib.h:3857: error: expected initializer before '_X_SENTINEL'
    45180 /usr/include/X11/Xlib.h:3885: error: expected initializer before '_X_SENTINEL'
    45181 /usr/include/X11/Xlib.h:3889: error: expected initializer before '_X_SENTINEL'
    45182 /usr/include/X11/Xlib.h:3929: error: expected initializer before '_X_SENTINEL'
    45183 g++ -c -include .pch/debug-shared/QtGui -pipe -g -fno-exceptions -pthread -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include -g -fvisibility=hidden -fvisibility-inlines-h
    45183 idden -Wall -W -D_REENTRANT -fPIC -DQT_SHARED -DQT_BUILD_GUI_LIB -DQT_NO_CAST_TO_ASCII -DQT_ASCII_CAST_WARNINGS -DQT_44_API_QSQLQUERY_FINISH -DQT3_SUPPORT -DQT_MOC_COMPAT
    45183 -DQT_RASTER_IMAGEENGINE -DQT_HAVE_MMX -DQT_HAVE_3DNOW -DQT_HAVE_SSE -DQT_HAVE_MMXEXT -DQT_HAVE_SSE2 -DQT_NO_STYLE_MAC -DQT_NO_STYLE_WINDOWSVISTA -DQT_NO_STYLE_WINDOWSXP -D
    45183 Q_INTERNAL_QAPP_SRC -DQT_CORE_LIB -D_LARGEFILE64_SOURCE -D_LARGEFILE_SOURCE -I../../mkspecs/linux-g++ -I. -I../../include/QtCore -I../../include/QtCore -I../../include -I.
    45183 ./../include/QtGui -I/usr/include/freetype2 -I/usr/include/freetype2 -I../3rdparty/harfbuzz/src -Idialogs -I.moc/debug-shared -I/usr/include -I.uic/debug-shared -o .obj/de
    45183 bug-shared/qslider.o widgets/qslider.cpp
    45184 make[1]: *** [.obj/debug-shared/qsizegrip.o] Error 1
    45185 make[1]: *** Waiting for unfinished jobs....
    45186 make[1]: Leaving directory `/home/kde-devel/svn/qt-copy/src/gui'
    45187 make: *** [sub-gui-make_default-ordered] Error 2

    so after a little bit of googling i found and incerted a definition for this _X_SENTINEL function in the /usr/include/X11/Xlib.h header. I’ve attached the diff i created if you want to reference it or re-use it.

    success on QT, it is installed. moving on

  • on to the ‘kde-support’ stuff, Strigi is requiring of a libz, libbz2, openssl (libcrypto, and libssl)
    /var/log/packages/openssl-0.9.8e-i486-3 is already installed
    /var/log/packages/openssl-solibs-0.9.8e-i486-3 is already installed
    and i’m not finding much info on this libz/libz2 library
    the `cmakekde` call inside the kdesupport dir, has just errored out 11% precent of the way through it.

    update, i’ve found a download at http://freeware.sgi.com/source/libz/zlib-1.1.4.tar.gz, i’m going to install it.
    and the libbz2 appears to be a part of the bzip2 package, and this appears to be installed

    vbatts@slacker:~/src/zlib-1.1.4$ find /usr/lib/ -name libbz2*
    /usr/lib/libbz2.a
    /usr/lib/libbz2.so
    vbatts@slacker:~/src/zlib-1.1.4$ ls /var/log/packages/bz*
    /var/log/packages/bzip2-1.0.4-i486-1

    success on kdesupport compiling and installing

  • ( while this is going on, i’m removing all of the kde3 packages installed as standard, and i had downloaded the tgz’s for easy re-install .
    primarily because the kde3 install is in /usr/bin and it’s advisable to not have it in the $PATH of the kde4 install and user. )
    ( also, also, to save time i’m checking out the kdepimlibs from trunk while kdelibs is compiling
    kindof multi-tasking on this AMD 900mhz machine, current machine stats
    kde-devel@slacker:~$ uptime
    14:37:56 up 18 days, 1:06, 4 users, load average: 4.82, 3.93, 2.66
    )

  • Moving on to the kdelibs
    and it has just errored out 50% of the way through
    after digging through the diferent outputs, it appears to be referring to an enchant package that wasn’t installed. so i looked for its source package and found it on a debian site, so i download it and its patch. ( http://ftp.debian.org/debian/pool/main/e/enchant/enchant_1.3.0.orig.tar.gz )
    i’ve configure’d it (it and kde are referring to a missing hspell lib, which is for Hebrew spell checking? not going there) , compiling it, and have intalled it as root
    also its was referring to missing JasPer (http://www.ece.uvic.ca/~mdadams/jasper/software/jasper-1.900.1.zip)
    i’ve configure’d it, compiling it, and installed it as root
    also its was reffering to a missing OpenEXR package, so i found its source at http://www.openexr.com/ i’ve downloaded http://download.savannah.nongnu.org/releases/openexr/openexr-1.6.0.tar.gz, we’ll give it a try instead. and this refers to a ilmbase (http://download.savannah.nongnu.org/releases/openexr/ilmbase-1.0.0.tar.gz).
    so i’ve compiled and installed the ilmbase, as root.
    since its’ installed needed lib’s, i had to run ldconfig so that the ./configure of OpenEXR found the needed lib’s
    and success on that building, now back to kdelibs
  • kdelibs is failing again, something about a soprano class that is not being properly referenced. after going back to the kdesupport src dir, the soprano module says it is not being compiled, so now to figure why that is.
    kdesupport has a couple of lib’s that its is complaining are not there, Exiv2 (http://www.exiv2.org/exiv2-0.15.tar.gz), CppUnit (http://www.slacky.eu/repository/slackware-12.0/development/cppunit/1.12.0/cppunit-1.12.0-i486-1as.tgz) and the Java SDK (http://slackware.osuosl.org/slackware-12.0/extra/jdk-6/jdk-6u2-i586-2.tgz). this is just odd, after i had downloaded the cppunit slack pack, and was waiting on the jdk-6u2 slack pack. i attempted to `cmakekde` in the kdesupport dir, and it appears something has removed /usr/bin/makeobj from the system. so i’ve re-established it with the version provided on the kde4 build site. after installing these dependencies, kdesupport and all of it’s modules build and install.
    so back to kdelibs, and its just not building, so i’ve tried `svn up` to see if there are later commits to fix my issues, and now `cmakekde` has made it from 50% to 94% and has died on a khtml process, so i cd’d back to the kdelibs src directory, and into khtml. called `make -j2`, and it built 100%. so i backed into the kdelibs src dir again, and instead of calling the cmakekde function, i’ve just called `make -j2`, and it build 100%, so i’ve called `make install`.
    i guess this is success on kdelibs, it feels kindof bootlegged though. after this i’ve run ldconfig as root again, to rebuild the lib index
  • on to kdepimlibs, cd’d into the src dir, `cmakekde` and roughly 20minutes later 100% built and installed
  • on to kdebase, in its configuration setup, its complaining about networkManager and Capseo not being installed, i’ve heard bad things about networkManager and slackware, so i’m not going to bother going down that road with this install. and Capseo is for handling capturing video, while that sounds nice. its not needed for this install.
    since this could take a while, and its past midnight right now, i’ve called the build as `time cmakekde &>/dev/null &`, so i can just let it run and read about it later.
    it did not build by itself, so i cd’d into the runtime and `cmakekde` it alone, and it built and installed.
    next i cd’d into the workspace directory of kdebase, and it imediately gave a cmake error. so i `svn up`’d, which downloaded a lot. so i resumed, and it is building now, but had complained about a few missing lib’s, libxklavier, libcaptury, NetworkManager, libnm-util, and RAW1394. of this i will just include the libxklavier from http://internap.dl.sourceforge.net/sourceforge/gswitchit/libxklavier-3.3.tar.gz, and now i’ve download NetworkManager from http://ftp.gnome.org/pub/GNOME/sources/NetworkManager/0.6/NetworkManager-0.6.5.tar.bz2) and you’ll need the flag ‘–without-gnome’ unless you have the whole core of gnome installed, and it requires dhcdbd, and i haven’t found a good source bundle for this yet, so i’m gonna hold on this for now.
    while i’m at it i’ve download a source bundle of libcaptury at ubuntu (http://archive.ubuntu.com/ubuntu/pool/universe/libc/libcaptury/libcaptury_0.3.0+svn20070725.orig.tar.gz)., and capseo.

    ok, so runtime is compiling fine, but the workspace is constantly hanging up. currently the fatal error is on

    /usr/bin/c++ -fPIC -Wnon-virtual-dtor -Wno-long-long -ansi -Wundef -Wcast-align -Wchar-subscripts -Wall -W -Wpointer-arith -Wformat-security -fno-exceptions -fno-check-new -fno-common -fvisibility=hidden -g3 -fno-inline -Wl,--fatal-warnings -Wl,--no-undefined -lc -shared -Wl,-soname,libkwineffects.so.1 -o ../../lib/libkwineffects.so.1.0.0 "CMakeFiles/kwineffects.dir/kwineffects_automoc.o" "CMakeFiles/kwineffects.dir/kwinglobals.o" "CMakeFiles/kwineffects.dir/kwineffects.o" "CMakeFiles/kwineffects.dir/kwinglutils.o" "CMakeFiles/kwineffects.dir/kwinglutils_funcs.o" "CMakeFiles/kwineffects.dir/kwinshadereffect.o" -L/usr/local/lib -L/home/kde-devel/svn/qt-copy/lib -L/home/kde-devel/kde/lib -lQtCore -lpthread -lQtNetwork -lQtDBus -lQtXml -lz -lbz2 -lresolv -lkdecore -lQtGui -lSM -lICE -lX11 -lXext -lXft -lXau -lXdmcp -lXpm -lXrender -lXrandr -lXcomposite -lXdamage -lXfixes
    CMakeFiles/kwineffects.dir/kwinglobals.o: In function `KWin::Extensions::init()':
    /home/kde-devel/kde/src/KDE/kdebase/workspace/kwin/lib/kwinglobals.cpp:117: undefined reference to `XSyncQueryExtension(_XDisplay*, int*, int*)'
    /home/kde-devel/kde/src/KDE/kdebase/workspace/kwin/lib/kwinglobals.cpp:120: undefined reference to `XSyncInitialize(_XDisplay*, int*, int*)'
    collect2: ld returned 1 exit status
    make[2]: *** [lib/libkwineffects.so.1.0.0] Error 1
    make[2]: Leaving directory `/home/kde-devel/kde/build/KDE/kdebase/workspace'
    make[1]: *** [kwin/lib/CMakeFiles/kwineffects.dir/all] Error 2

    i’m not sure where this class needs to get defined before being referenced here, so appearantly something isn’t compiled that should be, which could mean more package chasing.
    Okay so i’m back at it, and i’m frustrated. I’m about get ugly, and non-standard, but i really want to see a running desktop, before KDE4 is released.

  • koffice is referring to a QCA2 package, (http://delta.affinix.com/download/qca/2.0/qca-2.0.0.tar.bz2).