GENERAL OUTLINE =============== TITLE: GNOME-1.4 2nd. ed. LFS VERSION: Tested with 3.3 (gcc3.1 hasn't been tested) AUTHOR: Scot Mc Pherson ORIGINAL AUTHORS: roryo and mca SYNOPSIS: Gnome-1.4 HINT: INTRODUCTION ***************** This hint is an evolution of the original hint produced by roryo and mca. The principle goal of this updated hint is to update the packages. The secondary reason for updating this hint is to arrange the gnome packages in a way that I thought made a little more sense. Most of the packages that were installed --prefix=/usr/X11R6, i have moved to --prefix=/usr. If you ever wanted to upgrade you X11 installation, then its often best to wipe out that entire directory before installing the new version. I also didn't want to put them in the $GNOME_ROOT because if you wanted to wipe out that directory for any reason then you would be wiping out many base libraries, such as graphics libraries and such, that are now updated less frequently since they do a very good job. By installing these items in --prefix=/usr, which is the directory that is generally designated for the most common of user software and libraries, packages that needed to told where to find these dependencies will no longer need the extra direction. First things first ******************* The way roryo and mca had the gnome hint set up depended on them keeping current with the development of GNOME. That is a dandy idea, but its hard to know what's current and whether the instructions presented with work with the current available packages. I have taken a different approach, and that is to specify in this hint which revision of a package you should be using. It helps to not have to hunt for the right package and compare the hint with what's available. You are more than free to try a new package if it crops uo and I haven't written it in here yet, but I will do my best to keep this fairly current. As of the time of this writing I have built and tested this hint for about 2 months time, so you can bet its 2 months behind current stable GNOME-1.4. After I have submitted this hint to lfs-hints and blfs, I will update it with the new packages, but my principle goal was to create a hint that was up2date and worked 100% of the time and built a very stable and reliable GNOME desktop. Having the very latest stable sources was an important yet secondary priority. Within the next 2 weeks or so I will compile a wget list so you can download the the appropriate packages for the hint in its current state. Changelog ********************** 09/09/2002- fixed more typos ... specifcally all: $MOZ_PREFIX/include/mozilla-1.0.0 to $MOZ_PREFIX/include 09/08/2002- fixed typo in mozilla 09/06/2002- sgml2xml -- changed to ln -s symlinks -- reverted back to sumlinking includes, instead of fixing sources. fixing the sources worked but often things the user wanted to add would have to be hacked as well. ln -s is easier on the user. GMC/Nautilus -- added GMC and/or Nautilus support. eel & librsvg -- Nautilus depends eel and eel depends on librsvg galeon -- added galeon support. 06/26/2002- Optimizations -- Globally added optimizing to the package builds pre-build -- Changed the pre-build instructions. GNOME_ROOT -- properly implemented $GNOME_ROOT. You set GNOME_ROOT in ~/.bash_profile Package Releases -- Updated all instruction to include all current stable released software. List to follow: 06/19/2002- gtkhtml -- added forgotten symlink 06/18/2002- ImageMagick -- Changed ImageMagick --prefix=/opt/GNOME, because the themes were being installed in the wrong place, and had to be symlinked. gdk-pixbufs -- Removed extra && from gdk-pixbufs docbook -- specified wrong docbook source package, fixed. Gave more specific installation instructions. Pre-build instructions ********************** The build instructions (and a few of the patches) in this hint rely on the following procedures. This is not optional. Adjust the optimization and architecture variables as you feel comfortable with and based on your architecture (i.e. i486,i586...etc). The optimizations selected here are known to universally be safe and work well. Add the following to your ~/.bash_profile and logout and back in. (I just prefer that to $ source ~/.bash_profile) (this assumes you are using /bin/{bash,sh}) export GNOME_ROOT=/opt/GNOME export PATH=$PATH:$GNOME_ROOT/bin export PKG_CONFIG_PATH=/usr/lib/pkgconfig:/opt/lib/pkgconfig export PKG_CONFIG_PATH=$PKG_CONFIG_PATH:$GNOME_ROOT/lib/pkgconfig export C_OPTS=' -Os -fomit-frame-pointer -s -mcpu=i686 -march=i686 ' alias gcfg='./configure --prefix=$GNOME_ROOT ' If you wish, you can add --disable-nls to the above alias. This will prevent the international messages (.po files) from being installed, and save quite a bit of space. Some package configure scripts will fail with an error about not finding intl/libgettext.h. If so, apply the intl.diff included in the patch tarball. After you have relogged in, or sourced your .bash_profile, then: echo $GNOME_ROOT/lib >> /etc/ld.so.conf ********* wget.list still need to be built. ********* Assuming you used the wget list, you should have a GNOME-patches.tar.bz2. If not, grab it from: http://www.linuxfromscratch.org/~scot/GNOME-patches.tar.bz2 Unpack (tar yxvf) this file in /usr/src/ and it will create a patches directory. The patches are usually quite version specific. The *.wtf files are brief explanations of what and why the patch was needed. To apply: unpack -.tar.gz patch -Np1 -i ../patches/-.patch Miscellaneous Notes =================== * New packages If you feel the urge to use a new package, please feel free. Just understand that it may not compile, or it may cause compile time problems for other packages that depend on it. Obviously it is possible to figure out how to use the new package, otherwise this hint and linux in general wouldn't be possible. It just takes some logic and patience. WARNING: GTK+-2 and GNOME-2 are not compitible with GNOME-1.4. Please do not attempt to install these unless you really know what you are doing. * FHS Compliance This hint is entirely (?) FHS (www.pathname.com/fhs/) compliant. You are by no means bound to these instructions, but we cannot guarantee the same results if you do stray. GNOME is quite large and scattered. Choosing /usr as the $GNOME_PREFIX above will be a very messy decision. * Compiler Optimizations If you don't know what these are, you'll be better off ignoring this. The large majority of these packages will honor the $CFLAGS variable. Those that don't (off the top of my head) are libpng, openssl, libdb, and python. There were some others, but they had to be patched for other reasons so that 'feature' was added. If you have problems with any packages at runtime, please recompile it without *any* optimizations before telling us about it. The optimization I use by default is -Os which means compile for -O2 except when it increases the size of the binary. * Symlinks These symlinks are here to provide other applications easy access to the package's libraries and headers. This saves us (and you) much time and effort in hacking Makefiles and such in an attempt to find them. If you don't follow the symlinking instructions, you are on your own with the detection of these packages by others. * Objective C Several GNOME packages/applications can make use of the objective C compiler, if available. Some packages will fail if you don't install the proper packages to make use of it, others will fail because you don't have it. It is not required in any way. To install the objc compiler, follow the directions for GCC in the shared section of the LFS book (chapter 6, as of 3.3). Make the following change: Instead of: --enable-languages=c,c++ Use: --enable-languages=c,c++,objc Install gcc per the instructions and continue your quest. * TODO - Known bugs/issues * Add dependency notes. GnuCash is a good example. If you wish to skip it, you can skip at least three other packages too. * Rid of the MISSING's. Software installation ===================== Prerequisites not covered here ****************************** In addition to a base LFS system, you will need the following: X11: http://www.xfree86.org/ zlib: ftp://ftp.uu.net/graphics/png/src See the X11 hint for their installation. Pre-GNOME packages ****************** Unzip-542 Unix Unzip, used to extract some zip files. cd unix && cp Makefile ../ && cd .. && make linux && cp unzip funzip unzipsfx /usr/bin ***NOTE: You must install db-3, but don't have to install db-4 if you do not wish to. If you want to install db-4, you must install db-3 first, then upgrade to db-4. The sed script after db-3 isn't necessary if you install db-4. It is provided for both versions, just so you don't forget. Remember, you MUST install db-3 no matter what. Berzerkeley DB: (3.3.11 specific) UCB's database library version-3. (Necessary whether you build db-4 or not) cd build_unix/ ../dist/configure --prefix=/usr --enable-compat185 \ --enable-static --enable-shared make docdir=/usr/doc/Berkeley-DB all install cd /usr/lib/ && ln -sf libdb-3.3.a libdb.a sed 's/^DB185/DB/' /usr/include/db_185.h > /usr/include/db_185.h.new mv /usr/include/db_185.h.new /usr/include/db_185.h Berzerkeley DB: (4.0.14 specific) UCB's database library version-4. (optional, but db-3 is not optional whether you decide to install db-4 or not. cd build_unix/ ../dist/configure --prefix=/usr --enable-compat185 \ --enable-static --enable-shared make docdir=/usr/doc/Berkeley-DB all install cd /usr/lib/ && ln -sf libdb-4.0.a libdb.a sed 's/^DB185/DB/' /usr/include/db_185.h > /usr/include/db_185.h.new mv /usr/include/db_185.h.new /usr/include/db_185.h readline-4.2a: GNU readline. Command line history and editing. CFLAGS=$C_OPTS \ ./configure --prefix=/usr && make all install && ldconfig bc-1.06: GNU calculator. CFLAGS=$C_OPTS \ ./configure --prefix=/usr --with-readline sed 's|\(^_PR.*readline.*$\)|/* \1 */|' bc/scan.l > new-scan.l && mv new-scan.l bc/scan.l && make all install && ldconfig openssl-0.9.6d: Open source SSL library. *** See FHS note! *** See symlink note! export OPENSSL_ROOT=/usr/local/openssl && ./config --prefix=$OPENSSL_ROOT --openssldir=$OPENSSL_ROOT shared threads && make && make install && cd /usr/lib && for file in lib{crypto,ssl}.{a,so.0.9.6} do ln -s $OPENSSL_ROOT/lib/$file done && ln -s libcrypto.so.0.9.6 libcrypto.so.0 && ln -s libssl.so.0.9.6 libssl.so.0 && ln -s libcrypto.so.0 libcrypto.so && ln -s libssl.so.0 libssl.so && cd /usr/include && ln -s $OPENSSL_ROOT/include/openssl && cd $OPENSSL_ROOT/include && for i in openssl/*; do ln -s $i; done && unset OPENSSL_ROOT && ldconfig Python-2.1.2: (optional) The Python interpreted programming language. OPT=$C_OPTS \ ./configure --prefix=/usr --with-threads && make all install && ldconfig *** FHS note - if installed anywhere else a symlink must be made from the python binary to /usr/bin/python eg ln -s /usr/bin/python PostGreSQL-7.2.1: (optional) The most advanced open source SQL server. You should probably read the documentation, but this is how I like it. *** See FHS note! *** See symlink note! export PGSQL_ROOT=/usr/local/postgresql && CFLAGS=$C_OPTS \ ./configure --prefix=$PGSQL_ROOT --with-ssl --disable-static && make all install && cd /usr/lib && for file in lib{pq,pgeasy}.so.2.1; do ln -s $PGSQL_ROOT/lib/$file done && ln -s libpq.so.2.1 libpq.so.2 && ln -s libpgeasy.so.2.1 libpgeasy.so.2 && ln -s libpq.so.2 libpq.so && ln -s libpgeasy.so.2 libpgeasy.so && cd /usr/include && ln -s $PGSQL_ROOT/include/* ./ && unset PGSQL_ROOT && ldconfig MySQL-3.23.51: (optional) A fast open source SQL server. You should probably read the documentation, but this is how I like it. *** See FHS note! *** See symlink note! export MYSQL_ROOT=/usr/local/mysql && CFLAGS='-fomit-frame-pointer -s' \ CXXFLAGS='-fomit-frame-pointer -s' \ ./configure --prefix=$MYSQL_ROOT --disable-static --enable-thread-safe-client \ --without-debug --without-bench --without-readline --with-berkeley-db=./bdb && make all install && cd /usr/lib && ln -s $MYSQL_ROOT/lib/mysql/libmysqlclient.so.10.0.0 && ln -s libmysqlclient.so.10.0.0 libmysqlclient.so.10 && ln -s libmysqlclient.so.10 libmysqlclient.so && cd /usr/include && ln -s $MYSQL_ROOT/include/mysql && unset MYSQL_ROOT && ldconfig jpeg-6b: Library for accessing jpeg images. CFLAGS=$C_OPTS \ ./configure --prefix=/usr --enable-shared --enable-static && make && make install && ldconfig libpng-1.2.1: Library for accessing png images. cp scripts/makefile.linux Makefile && sed s/-g// Makefile > ~tmp && sed s/'-O3'/'-O3 -fomit-frame-pointer -s'/ ~tmp > Makefile && make ZLIBINC=/usr ZLIBLIB=/usr prefix=/usr all install && ldconfig libungif-4.1.0b1: Library for accessing gif images. CFLAGS=$C_OPTS \ ./configure --prefix=/usr && make all install && ldconfig tiff-v3.5.7: Library for accessing tiff images. ./configure --prefix=/usr --with-GCOPTS=' -Os ' \ --with-OPTIMIZER=' -fomit-frame-pointer -s ' --noninteractive && make all install && ldconfig lcms-1.08: Color correction/management library. cd src && sed /CFLAGS/s/'-g -O4'/'-Os -s'/ Makefile > ~tmp && mv ~tmp Makefile && make all install && ldconfig libmng-1.0.3: Library for accessing mng (animated) images. mng is the Open Source alternative to animated gifs CFLAGS=$C_OPTS \ ./configure --prefix=/usr --with-zlib=/usr \ --with-jpeg=/usr --with-lcms=/usr && make all install && ldconfig libiconv-1.8: An iconv() implementation that properly supports UTF-*. CFLAGS=$C_OPTS \ ./configure --prefix=/usr --enable-static --enable-shared && make && make install && ldconfig glib-1.2.10: An extension library to glibc. CFLAGS=$C_OPTS \ ./configure --prefix=/usr --enable-threads --enable-debug=no && make all install && ldconfig GTK+-1.2.10: The Gimp Toolkit.. an X11 widget library. CFLAGS=$C_OPTS \ ./configure --prefix=/usr --enable-debug=no --with-x && make all install && ldconfig ORBit-0.5.17: A CORBA implementation. CFLAGS=$C_OPTS \ ./configure --prefix=/usr && make all install && mkdir -p $GNOME_ROOT/lib && cd $GNOME_ROOT/lib && for i in /usr/lib/libIDL*; do ln -s $i; done && ldconfig libxml-1.8.17: The gnome-xml library (Used for much more than gnome). CFLAGS=$C_OPTS \ ./configure --prefix=/usr --with-zlib=/usr --with-buffers && make all install && cd $GNOME_ROOT/lib && ln -s /usr/lib/xmlConf.sh && ln -s /usr/lib/libxml.a && ln -s /usr/lib/libxml.la && ln -s /usr/lib/libxml.so.1.8.17 && ln -s libxml.so.1.8.17 libxml.so.1 && ln -s libxml.so.1 libxml.so && ldconfig libxml2-2.4.19: The xml library. CFLAGS=$C_OPTS \ ./configure --prefix=/usr --with-zlib=/usr \ --with-readline=/usr --with-buffers \ --with-threads --with-python && make all install && cd /usr/include/libxml2 && for i in libxml/*; do ln -sf $i; done && cd $GNOME_ROOT/lib && ln -s /usr/lib/xml2Conf.sh && ln -s /usr/lib/libxml2.so.2.4.19 && ln -s /usr/lib/libxml2.a && ln -s /usr/lib/linxml2.la && ln -s libxml2.so.2.4.19 libxml2.so.2 && ln -s libxml2.so.2 libxml2.so && ldconfig GhostScript-6.53: The GhostScript package. Used for post-script and network printing. From inside the ghostscript-6.53 directory do: tar zxvf mv jpeg-6b jpeg tar jxvf mv zlib-1.1.4 zlib Then: patch -Np1 -i ../patches/ghostscript-6.53.patch && sed /CFLAGS_STANDARD/s/-O2/'-Os -fomit-frame-pointer -s'/ \ src/unix-gcc.mak > Makefile && make && make install && ldconfig GhostScript Fonts: GhostScript Fonts. This will create the fonts directory, there are other GhostScript fonts available if you feel so inclined. cd /usr/X11R6/share/ghostscript tar zxvf tar zxvf ImageMagick-5.4.6-3: Provides many useful image manipulation functions, plus a few handy executables. NOTE: if you have the TrueType fonts installed in a different path you will have to changes the --with--ttf-fontpath. CFLAGS=' -O3 -s -funroll-loops -finline-functions ' \ CXXFLAGS=' -Os -s -funroll-loops -finline-functions ' \ ./configure --prefix=$GNOME_ROOT --enable-shared --enable-static \ --with-ttf-fontpath=/usr/X11R6/lib/X11/fonts/ttf \ --with-gs-font-dir=/usr/X11R6/share/ghostscripts/fonts \ --with-x && make && make install && ldconfig imlib-1.9.14: Library providing access to all of the above image formats. CFLAGS=$C_OPTS \ ./configure --prefix=/usr --with-x && make && make install && ldconfig audiofile-0.2.2: Library providing access to several different audio formats. CFLAGS=$C_OPTS \ ./configure --prefix=/usr && make && make install && ldconfig esound-0.2.24: The enlightened sound daemon. CFLAGS=$C_OPTS \ ./configure --with-audiofile --prefix=/usr && make && make install && ldconfig gtk-engines-0.12: GTK+ themes and theme libraries. CFLAGS=$C_OPTS \ gcfg --enable-static --enable-shared && make && make install && ldconfig expat-1.95.3: CFLAGS=$C_OPTS \ ./configure --prefix=/usr/local && make && make install && ldconfig GNOME core packages ******************* MISSING: mc/nautilus popt-1.6.4: Red hat's getopt()-ish replacement. CFLAGS=$C_OPTS \ ./configure --prefix=/usr && make && make install && ldconfig libunicode-0.4: Gnome's Unicode interface. CFLAGS=$C_OPTS \ gcfg && make && make install && ldconfig gnome-libs-1.4.1.7: The core GNOME libraries. CFLAGS=$C_OPTS \ gcfg --with-x && make && make install && ldconfig gdk-pixbuf-0.18.0: The gtk+ pixbuf library. CFLAGS=$C_OPTS \ gcfg --with-x && make && make install && cd $GNOME_ROOT/include && ln -s gdk-pixbuf-1.0/* ./ && ln -s gdk-pixbuf-1.0/* $GNOME_ROOT/include/gnome-1.0/ && ldconfig oaf-0.6.10: Object Activation Framework for GNOME. CFLAGS=$C_OPTS \ gcfg --enable-static --enable-shared \ --enable-oaf-debug=no && make && make install && ldconfig libghttp-1.0.9: Library for speaking the http protocol. CFLAGS=$C_OPTS \ gcfg && make && make install && ldconfig ************************** NOTE********************** ************************** intl-tools-0.22: Replacement for xml-i18-tools which is supposed to be deprecated. I am still testing results. I am not installing xml-i18-tools on my system, but you may wish to continue doing so. Just be warned I am still uncertain of the final results either way. gcfg && make && make install && ln -sf $GNOME_ROOT/bin/intltool-extract $GNOME_ROOT/bin/xml-i18n-extract && ldconfig xml-i18-tools-0.9: gcfg && make && make install && ldconfig ***************************** END NOTE********************* ***************************** libxslt-1.0.18: CFLAGS=$C_OPTS \ gcfg --with-python && make && make install && ldconfig docbook-4.1.2: (docbkx412.zip) mkdir docbook && cd docbook && cp ../docbkx412.zip ./ && unzip docbkx412.zip && mkdir -p /usr/share/sgml/docbook/xml-dtd-4.1.2 && cp -a * /usr/share/sgml/docbook/xml-dtd-4.1.2 openjade-1.3.1: CFLAGS=$C_OPTS \ CXXFLAGS=$C_OPTS \ ./configure --prefix=/usr && make && make install && ln -s nsgmls /usr/bin/sgml2xml && ldconfig sp-1.3.4: sed s%"opt/local"%"usr"% Makefile > Makefile~ && sed -e /CXX/s/'-O2'/'-Os -fomit-frame-pointer -s '/ \ -e /CFLAGS/s/'-O'/'-Os -fomit-frame-pointer -s '/ \ Makefile~ > Makefile && make && make install && ldconfig scrollkeeper-0.3: Scrollkeeper Open Documentation Cataloging System. sed 's|=lib/scrollkeeper|=scrollkeeper|g' configure > configure~ && cp configure~ configure && CFLAGS=$C_OPTS \ gcfg && make && make install && ldconfig gnome-print-0.36: GNOME print library. CFLAGS=$C_OPTS \ gcfg --with-zlib=/usr && make && make install && ldconfig bonobo-1.0.20: GNOME component and compound document system. CFLAGS=$C_OPTS \ gcfg && make && make install && ldconfig guile-1.4: GNU scheme implementation. patch -Np1 -i ../patches/guile-1.4.patch && CFLAGS=$C_OPTS \ gcfg --with-threads && make && make install && ldconfig slib-2d1: Scheme library extension. make prefix=$GNOME_ROOT && make prefix=$GNOME_ROOT install && GUILE_LOAD_PATH=$GNOME_ROOT/share/guile/slib \ guile -c "(use-modules (ice-9 slib)) (require 'new-catalog)" && ldconfig GConf-1.0.9: A configuration database system. patch -Np1 -i ../patches/GConf-1.0.9-2.patch && CFLAGS=$C_OPTS \ CXXFLAGS=$C_OPTS \ gcfg --enable-debug=no && make && make install && ldconfig gnome-mime-data-1.0.1: CFLAGS=$C_OPTS \ gcfg && make && make install && ldconfig pkg-config-0.12.0 CFLAGS=$C_OPTS \ ./configure --prefix=/usr && make && make install && ldconfig gnome-vfs-1.0.5: GNOME virtual file system. CFLAGS=$C_OPTS \ gcfg --enable-gconf --with-openssl=/usr/local/openssl --with-libiconv && make && make install && ldconfig control-center-1.4.0.5: GNOME configuration tool. CFLAGS=$C_OPTS \ gcfg && make && make install && ln -s ../gnome-panel.h $GNOME_ROOT/include/gnome-1.0/ && ln -s ../applet-widget.h $GNOME_ROOT/include/gnome-1.0/ && ln -s libcappet1/capplet-widget.h $GNOME_ROOT/include/ && ldconfig libglade-0.17: Library for loading glade interface files at runtime. CFLAGS=$C_OPTS \ gcfg --enable-bonobo --enable-gnomedb && make && make install && ldconfig bug-buddy-2.0.8: Gnome front-end to bugzilla for submitting bug reports. CFLAGS=$C_OPTS \ gcfg && make && make install && ldconfig pygtk-0.6.9: GTK+ python bindings. CFLAGS=$C_OPTS \ ./configure --prefix=/usr --enable-shared --enable-static && make && make install && ldconfig gal-0.19.3: GNOME Application library. CFLAGS=$C_OPTS \ gcfg && make && make install && ldconfig w3c-libwww-5.3.2: w3c's www-ish libraries. patch -Np1 -i ../patches/w3c-libwww-5.3.2.patch && CFLAGS=$C_OPTS \ gcfg --with-zlib --with-md5 --with-ssl=/usr/local/openssl && make && make install && ldconfig glibwww-0.2: Glib extension for access to w3c-libwww CFLAGS=$C_OPTS \ gcfg && make && make install && ldconfig gtkhtml-1.0.4: An html parsing library. patch -Np1 -i ../patches/gtkhtml-1.0.4-2.patch && CFLAGS=$C_OPTS \ gcfg --with-bonobo --with-gconf && make && make install && ln -s ../gtkhtml $GNOME_ROOT/include/gnome-1.0 && ldconfig libgtop-1.0.13: Library for accessing /proc. (If build fails because of ISDN_MAX_CHANNELS, add #define ISDN_MAX_CHANNELS 64 to the .c file that failed and recompile. This is a kernel issue. 2.4.6 has fixed it.) CFLAGS=$C_OPTS \ gcfg --with-libgtop-guile --with-libgtop-inodedb --with-x && make && make install && ldconfig gmp-4.0.1: GNU's precision math library. CFLAGS=$C_OPTS \ ./configure --prefix=/usr && make && make install && ldconfig gdbm-1.8.0: GNU's dbm replacement library. CFLAGS=$C_OPTS \ gcfg && make BINOWN=root BINGRP=root && make install && ldconfig librep-0.15.2: Lisp implementation. patch -Np1 -i ../patches/librep-0.15.2-2.patch && CFLAGS=$C_OPTS \ gcfg --with-readline --enable-shared --enable-static --with-gprof && make && make install && ldconfig rep-gtk-0.15: Lisp bindings for GTK+. CFLAGS=$C_OPTS \ gcfg --with-gnome --with-libglade --with-gdk-pixbuf \ --with-gnome-canvas-pixbuf && make && make install && ldconfig gob-1.0.12: GTK+ Object Builder. CFLAGS=$C_OPTS \ gcfg && make && make install && ldconfig libgda-0.2.96: Library to interface SQL servers. sed 's/libmysqlclient.a/libmysqlclient.so/g' configure > conf.new && sed 's/\(ORB.*\)which\(.*\)/\1type -p\2/' conf.new > configure && CFLAGS=$C_OPTS \ gcfg --with-mysql=/usr/local/mysql --with-postgres=/usr/local/postgresql && make && make install && ldconfig sawfish-1.0.1: The Sawfish window manager. CFLAGS=$C_OPTS \ gcfg --with-gdk-pixbuf --with-x --with-audiofile --enable-capplet \ --enable-themer --with-esd --disable-linguas && make && make install && ldconfig gnome-core-1.4.1: Core GNOME applications. The patch is optional and only effects what splash screen you get when you start gnome. patch -Np1 -i ../patches/gnome-core.1.4.1-2.patch CFLAGS=$C_OPTS \ gcfg --with-window-manager=sawfish && make && make install && ln -s ../gnome-panel.h $GNOME_ROOT/include/gnome-1.0/ && ldconfig gnome-common-1.2.1: Autoconf/make files for GNOME. CFLAGS=$C_OPTS \ gcfg make && make install && ldconfig librsvg-1.0.3: CFLAGS=$C_OPTS \ ./configure --prefix=$GNOME_ROOT make && make install && ldconfig eel-1.0.2: CFLAGS=$C_OPTS \ ./configure --prefix=$GNOME_ROOT make && make install && ldconfig gnome-objc-1.0.40: (optional) *** See the OBJC note Objective C bindings for GNOME. CFLAGS=$C_OPTS \ gcfg && make && make install && ldconfig gnome-admin-1.0.3: Administration utilities. CFLAGS=$C_OPTS \ gcfg --with-messages=/var/log/sys.log make && make install && ldconfig gnome-applets-1.4.0.5: Many different GNOME applets. CFLAGS=$C_OPTS \ gcfg && make && make install && ldconfig gnome-audio-1.4.0: Sounds. make install gnome-python-1.4.2: (optional) Python binding for GNOME CFLAGS=$C_OPTS \ gcfg --with-gtkhtml && make && make install && ldconfig gnome-games-1.4.0.4: Games! CFLAGS=$C_OPTS \ CXXFLAGS=$C_OPTS \ gcfg && make && make install && ldconfig gnome-media-1.2.3: Multimedia applications. CFLAGS=$C_OPTS \ gcfg && make && make install && ldconfig gnome-network-1.0.2: Network applications/utilities. If you don't have objc (see note), apply the patch. CFLAGS=$C_OPTS \ gcfg && make && make install && ldconfig gnome-pim-1.4.0: Personal information manager for GNOME. CFLAGS=-Os \ CXXFLAGS=-Os \ gcfg && make && make install && ldconfig gnome-utils-1.4.1.2: Several miscellaneous utilities. CFLAGS=-Os \ CXXFLAGS=-Os \ gcfg --with-messages=/var/log/sys.log && make && make install && ldconfig ***********NOTE********************************************** You should pick either gmc or nautilus as a desktop manager. gmc is old and depreicated, but smaller and faster than nautilus. nautilus on the otherhand is big an fat, but new and very pretty and functional. On slower machines you should definately not choose nautilus. In fact you might decide you don't want either on real slow machines. mc-4.5.55: mc includes gmc which is the older gnome desktop manager if you have samba you should include --with-samba in the configure. If you have e2undel installed (you should) then you should also have --with-ext2undel enabled. CFLAGS=$COPTS \ ./configure --prefix=$GNOME_ROOT --with-ncurses --with-gnome \ --with-gpm-mouse --with-subshell --with-vfs --with-x \ --disable-static && make && make install && ldconfig nautilus-1.0.6 CFLAGS=$C_OPTS \ ./configure --prefix=$GNOME_ROOT --disable-mozilla-component \ --with-libiconv && make && make install && ldconfig ************************************************************** xscreensaver-4.02: Screensavers! CFLAGS=$C_OPTS \ gcfg --with-gl --with-gle --with-gtk --with-gnome --with-hackdir=xdemos && make && make install && ldconfig gnome-user-docs-1.4.1.1: GNOME Documentation. gcfg && make && make install && ldconfig users-guide-1.2: More GNOME documentation. gcfg make && make install && ldconfig GNOME applications ****************** MISSING: Evolution, galeon-1.2.5: First install mozilla-1.0 (not mozilla-1.1) by following the mozilla hint by tushar. Use the make install method with one addendum if he hasn't added this to his hint yet. Copy the headers that seem to be missed by $ make install. You can do this by issuing the following command substituting $MOZ_SRC and $MOZ_PREFIX with the source and --prefix direcoties accordingly. This command is entirely safe as it will not effect anything previously installed and will only copy what has not been already copied. cp -Lur $MOZ_SRC/dist/include/* $MOZ_PREFIX/include/ Now you want to set your global environment to inlcude the location of mozilla. Do this by ( substiture $MOZ_PREFIX ): echo "export MOZILLA_FIVE_HOME=$MOZ_PREFIX/lib/mozilla-1.0.0" then logout and relogin (don't just export it in a terminal window After you have done the above then follow the rest for galeon (If you have decided to install nautilus then include --enable-nautilus-view=yes) : CFLAGS=$C_OPTS \ CXXFLAGS=$C_OPTS \ ./configure --prefix=$GNOME_ROOT \ --with-mozilla-home=$MOZ_PREFIX \ --with-mozilla-libs=$MOZ_PREFIX/lib/mozilla-1.0.0 \ --with-mozilla-inlcudes=$MOZ_PREFIX/include \ --with-nspr-includes=$MOZ_PREFIX/include/nspr && make && make install && ldconfig dia-0.88: Diagram creation application. gcfg \ --enable-gnome \ --enable-bonobo \ --enable-debug=no \ --with-python make all install g-wrap: Glib scheme bindings. gcfg make all install libole2-0.2.3: MS OLE library. gcfg make all install gb-0.0.20: GNOME-basic. (Yes, kinda like visual-basic). Apply the patch gcfg --without-runtime-debug make all install gnumeric-1.0.5: GNU Spreadsheet application. Apply the patch gcfg \ --with-bonobo \ --with-guile \ --with-gb \ --with-python make all install Guppi-0.40.3: Library for creating/drawing graphs and charts. gcfg --enable-gnumeric make all install glade-0.6.2: A quick GUI IDE. gcfg \ --with-gnome \ --with-bonobo \ --disable-gnome-db make all install gnucash-1.6.6: GNU money management program.. quite similar to quickbooks and such. Apply the patch gcfg (add --enable-sql if you have postgres) make all install NOTE: I haven't built this one yet....I can't verify it will work, but it used work with abi-0.7.14, but that's very very old. I will update this soon. abiword-0.99.1: GNU Word processor. Apply the patch cd abiword/abi/src/ make \ prefix=$GNOME_ROOT \ ABI_OPT_GNOME=1 \ ABI_OPT_BONOBO=1 \ OPTIMIZER="$CFLAGS \ -L/usr/X11R6/lib -I/usr/X11R6/include \ -L$GNOME_ROOT/lib -I$GNOME_ROOT/include \ -L/usr/local/lib -I/usr/local/include" make install \ prefix=$GNOME_ROOT \ ABI_OPT_GNOME=1 \ ABI_OPT_BONOBO=1 \ OPTIMIZER="$CFLAGS \ -L/usr/X11R6/lib -I/usr/X11R6/include \ -L$GNOME_ROOT/lib -I$GNOME_ROOT/include \ -L/usr/local/lib -I/usr/local/include" xmms-1.2.7 eXtensible MultiMedia System CFLAGS=-Os \ ./configure --prefix=/opt/xmms make LDFLAGS=-libiconv && make install Other apps ********** There are many more gnome applications out there, but most are a fairly simple build and aren't (yet) covered in this hint. A few you may wish to check out are: * GTM - Gnome Transfer Manager (a nice little download manager) * PAN - Pimp Ass Newsreader * Encompass - gtkhtml based browser * xChat - the best GUI irc client, 'nuff said * gnotepad - gvim owns, but nice for mutilple docs at once * Balsa - nice stable GUI mail app, based on Pine * Pharmacy - Gnome CVS front end * Gimp - the root of it all, graphics app, total ownage * EOG - Eye of Gnome.. an image viewer * GQView - a better gtk+ based image viewer Frequently Asked Questions ========================== Q: How do I properly start gnome? A: You do one of the following: echo gnome-session > ~/.xinitrc or, if you wish to enable those annoying little sounds, echo gnome-session --enable-sound > ~/.xinitrc Q: I'm trying to build packageXXX from CVS sources, or just regenerate its configure script from configure.in, but autoconf bitches about not having some other gnome package installed. WTF? A: Autoconf is dumb and can/will only use one search directory for the .m4 files these packages install. You should probably do the following: mv $GNOME_PREFIX/share/aclocal/* /usr/share/aclocal/ && rm -r $GNOME_PREFIX/share/aclocal && cd $GNOME_PREFIX/share && ln -s /usr/share/aclocal Q: Am I stupid? A: Obviously, yes. ============ End of hint.