1 TITLE: How to get the most from KDE
3 AUTHOR: Sergey Ostrovsky <sostrovsky@snip.net>
6 Simply, how to get from a plain vanilla LFS system to a fully working KDE2 environment.
9 How to get most from KDE - or rather how I did it
10 -------------------------------------------------
16 I would call it now 'How to get most from KDE - how I did it'.
17 Gerard Beekmans - author, maintainer, fire keeper, etc. of LFS
18 said that would be a good idea to write some notes about X - stuff.
19 What you are reading now is probably not what he meant.
20 No wonder - I'm usually busy writing programs, not novels.
21 The rule that I used to choose which packages are needed is simple -
22 For each package ( starting from X ) I checked if there are additional
23 tools this one can make use of.
24 This rule is just an instance of "freedom of choice".
25 So if you think different, I just hope that you can still find something
26 useful in this writing.
27 Order of packages installation is important. In general, every package depends
28 on package(s) previously installed.
37 2. Packages to download
40 ftp://ftp.uu.net/graphics/png/src
43 ftp://ftp.uu.net/graphics/png/src
46 ftp://ftp.uu.net/graphics/jpeg/
49 http://www.abaforum.es/martim/lcms.htm
57 ftp://ftp.xfree86.org/pub/XFree86/4.0.1/source/
60 ftp://avahi.inria.fr/pub/xpm
63 ftp://ftp.onshore.com/pub/libtiff/
66 http://www.trolltech.com
68 kdesupport-1.94.tar.bz2
72 kdegraphics-1.94.tar.bz2
73 kdemultimedia-1.94.tar.bz2
74 kdenetwork-1.94.tar.bz2
83 For each package I assume you have it unpacked somewhere
84 and this somewhere is your current directory.
85 Also, it is worth nothing that -mcpu=i586 and -march=i586
86 should be changed according to your preferences.
87 If you see -O2 optimization level - it's mine.
88 If you see -O3 that means the package's developer approved
89 this, and it isn't gonna hurt.
90 Neither does it hurt to run ldconfig after installing a package.
91 As Mr.Almesberger said, "You can't run lilo too often ...".
95 Zlib is the library used for compression.
96 In particular, it used by X. Actually, X by default installs the
97 version of zlib, which is a) just static; and b) old.
100 In Makefile.in find target rule
102 In the two lines following former you'll see
103 $(OBJS). In these two lines insert $(OBJA) after each occurence
104 of $(OBJS), so it'll look like
108 Subdirectory ./contrib has bunch of directories,
109 each for particular processor architecture, i.e.asm586, and so on.
110 There are Assembler source files for time-critical functions.
113 cp -v contrib/< dir for your processor architecture >/match.S ./
118 CFLAGS="-O3 -DASMV -mcpu=i586 -march=i586" \
127 cp -va zlib.3 /usr/share/man/man3
131 Portable network graphics support. Used by KDE
134 Copy the right makefile to the package's toplevel directory :
136 cp -va scripts/makefile.linux Makefile
139 In this Makefile correct :
149 -mcpu=i586 -march=i586
157 cp -va libpng.3 libpngpf.3 /usr/share/man/man3
159 cp -va png.5 /usr/share/man/man5
163 Jpeg graphics format support. Used by KDE.
167 CFLAGS="-O3 -mcpu=i586 -march=i586" \
175 mandir=/usr/share/man/man1 make -e install
183 CFLAGS="-O2 -mcpu=i586 -march=i586" \
192 Find in /usr/include/lcms/lcms.h
193 defines of PACKAGE and VERSION an embrace it with
196 #define PACKAGE <blah> --> #define PACKAGE <blah>
200 #define VERSION <blah> --> #define VERSION <blah>
203 This done in order to remove conflicts with libmng ( follows ).
208 In configure.in find the piece of script :
210 AC_CHECK_HEADER(lcms.h,
211 AC_CHECK_LIB(lcms, cmsCreateRGBProfile, [
213 AC_DEFINE(MNG_INCLUDE_LCMS)], [
214 test $_restore -eq 1 && CPPFLAGS=$_cppflags LDFLAGS=$_ldflags
215 AC_MSG_WARN(lcms library not found)]),
216 test $_restore -eq 1 && CPPFLAGS=$_cppflags LDFLAGS=$_ldflags
217 AC_MSG_WARN(lcms header not found))])
221 AC_CHECK_LIB(lcms, cmsCreateRGBProfile, [
223 AC_DEFINE(MNG_FULL_CMS)], [
224 test $_restore -eq 1 && CPPFLAGS=$_cppflags LDFLAGS=$_ldflags
225 AC_MSG_WARN(lcms library not found)])])
227 Yes, this is a hack. I avoid checking if lcms.h exists and is a valid
228 C/C++ header. The thing is, cpp ( which AC_CHECK_HEADER uses for this
229 test ) returns non-zero on this header, and I don't care why.
230 Have plenty of fixin' crap at full-time job.
236 CFLAGS="-O2 -mcpu=i586 -march=i586" \
255 #LIBDIRS=$(SP_LIBDIRS) $(JADE_LIBDIRS)
256 LIBDIRS=$(SP_LIBDIRS)
257 #PROGDIRS=$(SP_PROGDIRS) $(JADE_PROGDIRS)
258 PROGDIRS=$(SP_PROGDIRS)
262 LIBDIRS=$(SP_LIBDIRS) $(JADE_LIBDIRS)
263 #LIBDIRS=$(SP_LIBDIRS)
264 PROGDIRS=$(SP_PROGDIRS) $(JADE_PROGDIRS)
265 #PROGDIRS=$(SP_PROGDIRS)
267 Although full doctools package is included, only part of it
268 gets compiled and installed - just to support X11-supplied docs.
269 The full package is a good thing itself. KDE stuff makes use of it.
271 DO NOT run autoconf or automake ! This Makefile heavily patched, while Makefile.in
275 Run ( from top - level package directory, as I said at the beginning )
282 In the script /usr/local/bin/sgmlfmt change the first line
284 #!/usr/local/bin/perl
290 or whatever place your perl lives.
292 5.7 XFree86-4.01 ( finally ... )
293 --------------------------------
294 This section has to do with X installation only.
295 After successful ( I wish you so ) installation you should configure X.
296 README ( or something like ) which comes with X explains this very well.
297 NOTE : I have plain vanilla Matrox Millenium 4M card 1996 vintage.
298 Configuration files that you'll deal with have quite a few definitions
299 for new fancy cards. If you are lucky owner of these, you are on your own.
302 cp config/cf/xf86site.def config/cf/host.def
304 in the file config/cf/host.def uncomment and define following symbols :
306 /* Here touch only -mcpu=i586 -march=i586 ! S.O. */
308 #define DefaultGcc2i386Opt -O2 -fno-strict-aliasing -fno-strength-reduce \
309 -pipe -mcpu=i586 -march=i586
311 /* This is not in the file ! Type it yourself.
312 And please, do it. This is not about -Wall which,
313 as you know, makes no impact to the mode the compiler
314 works in. If not set here, the default options will be used,
315 which is probably not what you want. S.O.
318 #define DefaultCCOptions -Wall
320 /* No questions, I hope. S.O. */
322 #define TermcapLibrary -lncurses
324 /* You'll see the list of drivers bundled into distribution.
325 Pick just your(s). Otherwise might have a headache with
326 compiling stuff which is actually useless for you. S.O.
329 #define XF86CardDrivers <your driver(s)>
331 #define InstallXinitConfig YES
332 #define InstallXdmConfig YES
333 #define InstallFSConfig YES
335 #define HasSgmlFmt YES
337 /* This is not in the file ! Type yourself. S.O. */
338 #define BuildAllDocs YES
340 #define BuildSpecsDocs YES
341 #define SpecsDocDirs Xext Xv xterm
344 /* This is not in the file ! Type yourself. S.O. */
348 in the file config/cf/site.def
350 Find definition of InstallXserverSetUID and replace with :
352 #ifdef InstallXserverSetUID
353 #undef InstallXserverSetUID
355 #define InstallXserverSetUID YES
357 Insert definition of ManDirectoryRoot :
359 #ifdef ManDirectoryRoot
360 #undef ManDirectoryRoot
362 #define ManDirectoryRoot /usr/share/man
364 Find definition of ProjectRoot and replace ( if needed ) with :
367 #define ProjectRoot /usr/X11R6
371 in the file config/cf/Imake.rules
372 find definition of InstallHtmlManPageAliases macro and replace
375 #ifndef InstallHtmlManPageAliases
376 #if BuildHtmlManPages
377 #define InstallHtmlManPageAliases(file,aliases,suffix) @@\
378 install.man:: file.suffix.html @@\
379 @(SUF=`expr file.suffix.html \: '.*\.\(.\).*\.'`; \ @@\
380 for i in aliases; do (set -x; \ @@\
381 RemoveFile($(DESTDIR)$(DOCHTMLDIR)/$$i.$$SUF.html); \ @@\
382 (cd $(DESTDIR)$(DOCHTMLDIR); \ @@\
383 $(LN) file.$$SUF.html $$i.$$SUF.html)); \ @@\
386 #define InstallHtmlManPageAliases(file,aliases,suffix) /**/
390 Yes, this is broken links' fix I posted earlier.
401 Insert in /etc/ld.so.conf
408 HINTS. ( it's better later than never ... )
409 Now your X is present in the system. It is installed in traditional
410 place, so configuration scripts from any decent X-aware package
411 will find it immediately. Some application that you already have
412 are X-capable ( if configured and compiled with X ). Vim, for instance.
413 Thus, if you wish to recompile X-aware package, it is right time to do this.
414 In addition, KDE installation scripts check if your system has already
415 some traditional X-apps. If so, they will be insert to the system menu.
417 Configuration scripts from some packages find and use X automatically,
418 others should be explicitely told to do so ( often using --with-x option ).
420 IF YOU EVER WILL REINSTALL X11-4.01 ( re - "make install" ) in-place,
421 first remove /usr/include/GL softlink. or your install
422 will be aborted prematurely.
441 Make the following changes in ./configure :
457 DIR_HTML=/usr/share/doc/tiff
461 DIR_MAN=/usr/share/man
463 GCOPTS="-O2 -mcpu=i586 -march=i586"
465 In DSO section find *-linux*) case
466 and correct the appropriate _if_ operator
468 if [ -r /lib/libc.so.6 || -r /lib/libc.so.5 ]; then
470 if [ \( -r /lib/libc.so.6 \) -o \( -r /lib/libc.so.5 \) ]; then
482 mv libtiff.so.3.5. libtiff.so.3.5.5
484 ln -s libtiff.so.3.5.5 libtiff.so
491 tar -xzpvf qt-2.2.0.tar.gz
496 Read INSTALL file and do exactly as it says about shell variables.
497 Additionally insert /opt/qt/lib line to your /etc/ld.so.conf. Won't hurt.
511 -L/usr/X11R6/lib /* Yes, I know what you want to say. It
512 ( -L<...> ) doesn't hurt. Don't want - don't put */
518 If you will want to have Qt Designer KDE-extentions installed, rebuild Qt after
519 installing KDE suite one more time ( 5.10.3 ), just add
520 the option -kde to that ./configure command line.
530 ln -s libshadow.so.0.0.0 libshadow.so
532 There was a discussion about "rightness" of doing so.
533 I am not going to start it over again here. Don't want - don't do.
534 Then when compiling kdebase ( below ) omit --with-shadow.
537 There is nothing special about building KDE. It would be boring to write
538 how to install each of 12 packages. Instead, I'll insert the script I used
543 date > ~/_kde-1.94.buildtime
544 echo -e "\n" >> ~/_kde-1.94.buildtime
548 #=================================================================
549 tar -xypvf /mnt/Helena/ZipArchives/4/KDE/kdesupport-1.94.tar.bz2
551 ./configure --prefix=/opt/kde --with-audiofile --with-aps i586-chechaco-linux \
552 2>&1 | tee ~/_kdesupport-1.94_config_.log
554 2>&1 | tee ~/_kdesupport-1.94_make_.log
556 2>&1 | tee ~/_kdesupport-1.94_make_install_.log
559 rm -r kdesupport-1.94
560 #=================================================================
561 tar -xypvf /mnt/Helena/ZipArchives/4/KDE/kdelibs-1.94.tar.bz2
563 ./configure --prefix=/opt/kde i586-chechaco-linux \
564 2>&1 | tee ~/_kdelibs-1.94_config_.log
566 2>&1 | tee ~/_kdelibs-1.94_make_.log
568 2>&1 | tee ~/_kdelibs-1.94_make_install_.log
572 #=================================================================
573 tar -xypvf /mnt/Helena/ZipArchives/4/KDE/kdebase-1.94.tar.bz2
575 ./configure --prefix=/opt/kde --with-shadow i586-chechaco-linux \
576 2>&1 | tee ~/_kdebase-1.94_config_.log
578 2>&1 | tee ~/_kdebase-1.94_make_.log
580 2>&1 | tee ~/_kdebase-1.94_make_install_.log
584 #=================================================================
585 tar -xypvf /mnt/Helena/ZipArchives/4/KDE/kdeutils-1.94.tar.bz2
587 ./configure --prefix=/opt/kde i586-chechaco-linux \
588 2>&1 | tee ~/_kdeutils-1.94_config_.log
590 2>&1 | tee ~/_kdeutils-1.94_make_.log
592 2>&1 | tee ~/_kdeutils-1.94_make_install_.log
596 #=================================================================
597 tar -xypvf /mnt/Helena/ZipArchives/4/KDE/kdegraphics-1.94.tar.bz2
599 ./configure --prefix=/opt/kde i586-chechaco-linux \
600 2>&1 | tee ~/_kdegraphics-1.94_config_.log
602 2>&1 | tee ~/_kdegraphics-1.94_make_.log
604 2>&1 | tee ~/_kdegraphics-1.94_make_install_.log
607 rm -r kdegraphics-1.94
608 #=================================================================
609 tar -xypvf /mnt/Helena/ZipArchives/4/KDE/kdemultimedia-1.94.tar.bz2
610 cd kdemultimedia-1.94
611 ./configure --prefix=/opt/kde i586-chechaco-linux \
612 2>&1 | tee ~/_kdemultimedia-1.94_config_.log
614 2>&1 | tee ~/_kdemultimedia-1.94_make_.log
616 2>&1 | tee ~/_kdemultimedia-1.94_make_install_.log
619 rm -r kdemultimedia-1.94
620 #=================================================================
621 tar -xypvf /mnt/Helena/ZipArchives/4/KDE/kdenetwork-1.94.tar.bz2
623 ./configure --prefix=/opt/kde i586-chechaco-linux \
624 2>&1 | tee ~/_kdenetwork-1.94_config_.log
626 2>&1 | tee ~/_kdenetwork-1.94_make_.log
628 2>&1 | tee ~/_kdenetwork-1.94_make_install_.log
631 rm -r kdenetwork-1.94
632 #=================================================================
633 tar -xypvf /mnt/Helena/ZipArchives/4/KDE/kdeadmin-1.94.tar.bz2
635 ./configure --prefix=/opt/kde i586-chechaco-linux \
636 2>&1 | tee ~/_kdeadmin-1.94_config_.log
638 2>&1 | tee ~/_kdeadmin-1.94_make_.log
640 2>&1 | tee ~/_kdeadmin-1.94_make_install_.log
644 #=================================================================
645 tar -xypvf /mnt/Helena/ZipArchives/4/KDE/kdepim-1.94.tar.bz2
647 ./configure --prefix=/opt/kde i586-chechaco-linux \
648 2>&1 | tee ~/_kdepim-1.94_config_.log
650 2>&1 | tee ~/_kdepim-1.94_make_.log
652 2>&1 | tee ~/_kdepim-1.94_make_install_.log
656 #=================================================================
657 tar -xypvf /mnt/Helena/ZipArchives/4/KDE/koffice-1.94.tar.bz2
659 ./configure --prefix=/opt/kde i586-chechaco-linux \
660 2>&1 | tee ~/_koffice-1.94_config_.log
662 2>&1 | tee ~/_koffice-1.94_make_.log
664 2>&1 | tee ~/_koffice-1.94_make_install_.log
668 #=================================================================
669 tar -xypvf /mnt/Helena/ZipArchives/4/KDE/kdegames-1.94.tar.bz2
671 ./configure --prefix=/opt/kde i586-chechaco-linux \
672 2>&1 | tee ~/_kdegames-1.94_config_.log
674 2>&1 | tee ~/_kdegames-1.94_make_.log
676 2>&1 | tee ~/_kdegames-1.94_make_install_.log
680 #=================================================================
681 tar -xypvf /mnt/Helena/ZipArchives/4/KDE/kdetoys-1.94.tar.bz2
683 ./configure --prefix=/opt/kde i586-chechaco-linux \
684 2>&1 | tee ~/_kdetoys-1.94_config_.log
686 2>&1 | tee ~/_kdetoys-1.94_make_.log
688 2>&1 | tee ~/_kdetoys-1.94_make_install_.log
692 #=================================================================
694 date >> ~/_kde-1.94.buildtime
695 #=================================================================