5 LFS VERSION: Latest 3.0-preX (gcc 3.0 will NOT work)
6 AUTHOR: roryo and mca <gnomeATlinuxfromscratchDOTorg>
16 The developers of the assorted gnome applications are churning new releases
17 out at a rate for about 10 per week, it is therefore recommended that you get
18 the latest version of this hint and the new patches. These are available via
19 anonymous CVS at roryo.dynup.net.
21 cvs -d:pserver:anonymous@roryo.dynup.net:/home/cvsroot login
23 Press <return> at the password prompt.
25 cvs -d:pserver:anonymous@roryo.dynup.net:/home/cvsroot co gnome-hint
27 This hint has proven quite stable for us, but your mileage will vary. Consider
28 this hint somewhat pre-alpha for now. By using this hint, you agree to
29 provide us with any and all information concerning build failures, runtime
30 failures, and/or any other "feedback" you feel we need. We want to know. You
31 can either email us at the address above or find us on irc.linuxfromscratch.org,
34 We have created a wget list for all of the packages covered in this hint. It
35 is available at http://www2.linuxfromscratch.org/gnome/wget.list and is quite
36 current (well, usually). Save this list wherever you want, cd into the
37 directory you'd like to save these packages, and run the following:
39 wget -ci /path/to/wget.list
43 The URLs are listed in the order they appear in this hint, so you should be
44 able to start compiling as soon as the first file finishes.
47 Pre-build instructions
48 **********************
50 The build instructions (and a few of the patches) in this hint rely on the
51 following procedures. This is not optional.
53 $GNOME_ROOT, the prefix in which gnome will be installed, is completely up
56 (this assumes you are using bash/sh)
58 export GNOME_ROOT=/opt/GNOME
59 export PATH=$PATH:$GNOME_ROOT/bin
60 echo $GNOME_ROOT/lib >> /etc/ld.so.conf
62 export GNOME_OPTS="--prefix=$GNOME_ROOT --with-gnu-ld --disable-static"
63 alias gcfg='./configure $GNOME_OPTS'
65 If you wish, you can add --disable-nls to the above $GNOME_OPTS. This will
66 prevent the international messages (.po files) from being installed, and will
67 save quite a bit of space. Some packages' configure script will fail with an
68 error about not finding intl/libgettext.h. If so, apply the intl.diff
69 included in the patch tarball.
71 Assuming you used the wget list, you should have a patches-GNOME.tar.bz2.
73 http://www2.linuxfromscratch.org/gnome/patches-GNOME.tar.bz2
75 Unpack (tar yxvf) this file and it will create a patches/ directory. In
76 this directory, the patches are named <package>-<version>.diff. They are
77 probably quite version specific. The *.wtf files are brief explanations
78 of what and why the patch was needed.
81 unpack <package>-<version>.tar.gz
82 patch -p0 -i /path/to/<package>-<version>.diff
84 These patches are created from outside the source tree, so you may have to
85 play with -p options depending on where you are.
94 If a new version of any package in this hint is available, please use
95 it. We will attempt to keep this hint as current as possible, but we
96 may fail. If a new package is available and is causing problems, we
97 will make a note of it. Also, if you don't mind, drop us an email
98 about the new package, and whether or not our build instructions were
101 WARNING: They are leaking a few pre-2.0-alpha packages, most notably
102 control-center. We are not using these yet as they rely on
103 unstable glib/gtk+ versions. Anything requiring pkg-config
104 should be ignored for now.
108 This hint is entirely (?) FHS (www.pathname.com/fhs/) compliant.
109 You are by no means bound to these instructions, but we cannot
110 guarantee the same results if you do stray.
112 GNOME is quite large and scattered. Choosing /usr as the
113 $GNOME_PREFIX above will be a very messy decision.
115 * Compiler Optimizations
117 If you don't know what these are, you'll be better off ignoring this.
118 The large majority of these packages will honor the $CFLAGS variable.
119 Those that don't (off the top of my head) are libpng, openssl, libdb,
120 and python. There were some others, but they had to be patched for
121 other reasons so that 'feature' was added. If you have problems with
122 any packages at runtime, please recompile it without *any*
123 optimizations before telling us about it.
127 These symlinks are here to provide other applications easy access to
128 the package's libraries and headers. This saves us (and you) much
129 time and effort in hacking Makefiles and such in an attempt to find
130 them. If you don't follow the symlinking instructions, you are on
131 your own with the detection of these packages by others.
135 Several GNOME packages/applications can make use of the objective C
136 compiler, if available. Some packages will fail if you don't install
137 the proper packages to make use of it, others will fail because you
138 don't have it. It is not required in any way.
140 To install the objc compiler, follow the directions for GCC in the
141 shared section of the LFS book (chapter 6, as of 3.0). Make the
143 Instead of: --enable-languages=c,c++
144 Use: --enable-languages=c,c++,objc
146 Install gcc per the instructions and continue your quest.
148 * TODO - Known bugs/issues
150 * Add dependency notes. GnuCash is a good example. If you wish to
151 skip it, you can skip at least three other packages too.
153 * The default session is ugly. We (or someone) need to replace it
154 with something better.
156 * We need to create a list of what you miss out on by not having an
159 * Rid of the MISSING's.
161 * Esound is a piece of crap and needs rewritten/replaced.
165 Software installation
166 =====================
169 Prerequisites not covered here
170 ******************************
172 In addition to a base LFS system, you will need the following:
174 X11: http://www.xfree86.org/
175 zlib: ftp://ftp.uu.net/graphics/png/src
177 See the X11 hint for their installation.
183 Berzerkeley DB: (3.3.11 specific)
184 UCB's database library.
191 make docdir=/usr/doc/Berkeley-DB all install
192 cd /usr/lib/ && ln -s libdb-3.3.a libdb.a
193 sed 's/^DB185/DB/' /usr/include/db_185.h > /usr/include/db_185.h.new
194 mv /usr/include/db_185.h.new /usr/include/db_185.h
197 GNU readline. Command line history and editing.
209 sed 's|\(^_PR.*readline.*$\)|/* \1 */|' bc/scan.l > new-scan.l &&
210 mv new-scan.l bc/scan.l
214 Open source SSL library.
217 *** See symlink note!
219 export OPENSSL_ROOT=/opt/OpenSSL
221 --prefix=$OPENSSL_ROOT \
222 --openssldir=$OPENSSL_ROOT \
226 for file in lib{crypto,ssl}.{a,so.0.9.6}
228 ln -s $OPENSSL_ROOT/lib/$file
230 ln -s libcrypto.so.0.9.6 libcrypto.so.0
231 ln -s libssl.so.0.9.6 libssl.so.0
232 ln -s libcrypto.so.0 libcrypto.so
233 ln -s libssl.so.0 libssl.so
235 ln -s $OPENSSL_ROOT/include/openssl
239 The Python interpreted programming language.
246 *** FHS note - if installed anywhere else a symlink must be made from
247 the python binary to /usr/bin/python eg
248 ln -s <path-to-python> /usr/bin/python
250 PostGreSQL: (optional)
251 The most advanced open source SQL server.
252 You should probably read the documentation, but this is how I like it.
255 *** See symlink note!
257 export PGSQL_ROOT=/opt/PostGreSQL
259 --prefix=$PGSQL_ROOT \
264 for file in lib{pq,pgeasy}.so.2.1; do
265 ln -s $PGSQL_ROOT/lib/$file
267 ln -s libpq.so.2.1 libpq.so.2
268 ln -s libpgeasy.so.2.1 libpgeasy.so.2
269 ln -s libpq.so.2 libpq.so
270 ln -s libpgeasy.so.2 libpgeasy.so
272 ln -s $PGSQL_ROOT/include/postgresql
276 A fast open source SQL server.
277 You should probably read the documentation, but this is how I like it.
280 *** See symlink note!
282 export MYSQL_ROOT=/opt/MySQL
284 --prefix=$MYSQL_ROOT \
286 --enable-thread-safe-client \
291 --with-berkeley-db=./bdb
294 ln -s $MYSQL_ROOT/lib/libmysqlclient.so.10.0.0 &&
295 ln -s libmysqlclient.so.10.0.0 libmysqlclient.so.10 &&
296 ln -s libmysqlclient.so.10 libmysqlclient.so
298 ln -s $MYSQL_ROOT/include/mysql
302 Library for accessing jpeg images.
309 Library for accessing png images.
310 cp scripts/makefile.linux Makefile
311 make ZLIBINC=/usr ZLIBLIB=/usr prefix=/usr all install
314 Library for accessing gif images.
320 Library for accessing tiff images.
321 ./configure --prefix=/usr --noninteractive
323 (optionally) make install.man
326 Color correction/management library.
332 Library for accessing mng (animated) images.
333 mng is the Open Source alternative to animated gifs
342 An iconv() implementation that properly supports UTF-*.
350 An extension library to glibc.
352 --prefix=/usr/X11R6 \
357 NOTE: If you don't like the above prefix, feel free to change it. glib
358 has nothing to do with X, and probably doesn't belong where we put
359 it. Everything that depends upon it will have no trouble locating
360 it as long as it's prefix/bin is in your $PATH, and the prefix/lib
361 is in your /etc/ld.so.conf.
364 The Gimp Toolkit.. an X11 widget library.
366 --prefix=/usr/X11R6 \
371 A CORBA implementation.
377 The gnome-xml library.
379 --prefix=/usr/X11R6 \
387 --prefix=/usr/X11R6 \
389 --with-readline=/usr \
394 The GhostScript package. Used for post-script and network printing.
398 tar zxvf <path-to-jpeg6bsrc.tar.gz>
400 ln -s src/unix-gcc.mak Makefile
404 If you are using glibc 2.2.2 or higher, this build will fail. Edit
405 src/time_.h, insert #include <time.h> on line 35.
409 cd /usr/X11R6/share/ghostscript
410 tar zxvf <path-to-gnu-gs-fonts.std-6.0.tar.gz>
412 This will create the fonts directory, there are other GhostScript fonts available if
413 you feel so inclined.
416 Provides many useful image manipulation functions, plus a few handy
419 's/-lxml2/-lxml2 -liconv/g' \
420 configure > configure~
422 's|<lcms.h>|<lcms/lcms.h>|g' \
423 configure~ > configure
425 --prefix=/usr/X11R6 \
429 --with-ttf-fontpath=/usr/X11R6/lib/X11/fonts/TrueType
432 NOTE: if you have the TrueType fonts installed in a different
433 path you will have to changes the --with--ttf-fontpath.
436 Library providing access to all of the above image formats.
438 --prefix=/usr/X11R6 \
443 Library providing access to several different audio formats.
445 --prefix=/usr/X11R6 \
450 The enlightened sound daemon.
453 --prefix=/usr/X11R6 \
458 GTK+ themes and theme libraries.
459 ./configure --prefix=/usr/X11R6
468 Red hat's getopt()-ish replacement.
473 Gnome's Unicode interface.
478 The core GNOME libraries.
484 The gtk+ pixbuf library.
489 Object Activation Framework for GNOME.
491 gcfg --enable-oaf-debug=no
495 Library for speaking the http protocol.
500 Scrollkeeper Open Documentation Cataloging System.
501 sed 's|=lib/scrollkeeper|=scrollkeeper|g' configure > configure~
502 cp configure~ configure
508 gcfg --with-zlib=/usr
512 GNOME component and compound document system.
517 GNU scheme implementation.
523 Scheme library extension.
524 make prefix=$GNOME_ROOT
525 make prefix=$GNOME_ROOT install
526 GUILE_LOAD_PATH=$GNOME_ROOT/share/guile/slib \
527 guile -c "(use-modules (ice-9 slib)) (require 'new-catalog)"
530 A configuration database system.
532 gcfg --enable-debug=no
534 mv $GNOME_ROOT/etc/gconf/1/path.example $GNOME_ROOT/etc/gconf/1/path
537 GNOME virtual file system.
543 GNOME configuration tool.
548 Library for loading glade interface files at runtime.
549 gcfg --enable-bonobo --disable-bonobotest
553 Gnome front-end to bugzilla for submitting bug reports.
558 GTK+ python bindings.
559 ./configure --prefix=/usr
563 GNOME Application library.
568 w3c's www-ish libraries.
577 Glib extension for access to w3c-libwww
582 An html parsing library.
590 Library for accessing /proc.
592 (If build fails because of ISDN_MAX_CHANNELS, add #define
593 ISDN_MAX_CHANNELS 64 to the .c file that failed and recompile.
594 This is a kernel issue. 2.4.6 has fixed it.)
600 GNU's precision math library.
605 GNU's dbm replacement library.
607 make BINOWN=root BINGRP=root all install
616 Lisp bindings for GTK+.
620 --with-gnome-canvas-pixbuf
629 XSLT support for libxml.
634 Library to interface SQL servers.
635 sed 's/libmysqlclient.a/libmysqlclient.so/g' configure > conf.new
636 sed 's/\(ORB.*\)which\(.*\)/\1type -p\2/' conf.new > configure
638 --with-mysql=/opt/MySQL \
639 --with-postgres=/opt/PostGreSQL
643 The Sawfish window manager.
648 cp Sawfish.desktop $GNOME_ROOT/share/gnome/wm-properties/
651 Core GNOME applications.
654 --with-window-manager=sawfish \
655 --enable-gtkhtml-help
659 Autoconf/make files for GNOME.
663 gnome-objc: (optional)
665 *** See the OBJC note
667 Objective C bindings for GNOME.
672 Administration utilities.
673 gcfg --with-messages=/var/log/sys.log
677 Many different GNOME applets.
685 gnome-python: (optional)
686 Python binding for GNOME
696 Multimedia applications.
701 Network applications/utilities.
702 If you don't have objc (see note), apply the patch.
707 Personal information manager for GNOME.
712 Several miscellaneous utilities.
714 gcfg --with-messages=/var/log/sys.log
722 --enable-subdir=xdemos
731 More GNOME documentation.
738 MISSING: Evolution, Galeon
741 Diagram creation application.
750 Glib scheme bindings.
760 GNOME-basic. (Yes, kinda like visual-basic).
762 gcfg --without-runtime-debug
766 GNU Spreadsheet application.
776 Library for creating/drawing graphs and charts.
777 gcfg --enable-gnumeric
789 GNU money management program.. quite similar to quickbooks and such.
791 gcfg (add --enable-sql if you have postgres)
803 -L/usr/X11R6/lib -I/usr/X11R6/include \
804 -L$GNOME_ROOT/lib -I$GNOME_ROOT/include \
805 -L/usr/local/lib -I/usr/local/include"
811 -L/usr/X11R6/lib -I/usr/X11R6/include \
812 -L$GNOME_ROOT/lib -I$GNOME_ROOT/include \
813 -L/usr/local/lib -I/usr/local/include"
819 There are many more gnome applications out there, but most are a fairly
820 simple build and aren't (yet) covered in this hint. A few you may wish to
823 * GTM - Gnome Transfer Manager (a nice little download manager)
824 * PAN - Pimp Ass Newsreader
825 * Encompass - gtkhtml based browser
826 * xChat - the best GUI irc client, 'nuff said
827 * gnotepad - gvim owns, but nice for mutilple docs at once
828 * Balsa - nice stable GUI mail app, based on Pine
829 * xmms - if you dont know what it is, when we give up ;)
830 * Pharmacy - Gnome CVS front end
831 * Gimp - the root of it all, graphics app, total ownage
832 * EOG - Eye of Gnome.. an image viewer
833 * GQView - a better gtk+ based image viewer
837 Frequently Asked Questions
838 ==========================
840 Q: How do I properly start gnome?
841 A: You do one of the following:
842 echo gnome-session > ~/.xinitrc
843 or, if you wish to enable those annoying little sounds,
844 echo gnome-session --enable-sound > ~/.xinitrc
846 Q: I'm trying to build packageXXX from CVS sources, or just regenerate
847 its configure script from configure.in, but autoconf bitches about not
848 having some other gnome package installed. WTF?
849 A: Autoconf is dumb and can/will only use one search directory for the
850 .m4 files these packages install. You should probably do the
853 mv $GNOME_PREFIX/share/aclocal/* /usr/share/aclocal/ &&
854 rm -r $GNOME_PREFIX/share/aclocal && cd $GNOME_PREFIX/share &&
855 ln -s /usr/share/aclocal