Beyond Linux From Scratch

Version 1.0

BLFS Development Team

This book follows on from the LinuxFromScratch book. It introduces and guides the reader through additions to the system including networking, X support, sound support and printer and scanner support.

Copyright (c) 2001-2003, BLFS Development Team

All rights reserved.

Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:

  • Redistributions in any form must retain the above copyright notice, this list of conditions and the following disclaimer.

  • Neither the name of "Linux From Scratch" nor the names of its contributors may be used to endorse or promote products derived from this material without specific prior written permission.

  • Any material derived from Linux From Scratch must contain a reference to the "Linux From Scratch" project.

THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.



Dedication

This book is dedicated to the LFS community

Table of Contents
Preface
Foreword
Who would want to read this book
Organization
Part I - Introduction
Part II - Post LFS Configuration and Extra Software
Part III - General Libraries and Utilities
Part IV - Connecting to a Network
Part V - Basic Networking
Part VI - Server Networking
Part VII - Content Serving
Part VIII - X + Window Managers
Part IX - KDE
Part X - Gnome
Part XI - X Software
Part XII - Multimedia
Part XIII - Printing, Scanning and Typesetting
Appendices
I. Introduction
1. Welcome to BLFS
Conventions used in this book
Book version
Acknowledgments
Credits
Changelog
Which sections of the book do I want?
Mailing lists and archives
News server
Contact information
Asking for help and the FAQ
2. Important Information
Getting and unpacking the software
The /usr versus /usr/local debate
Using BLFS bootscripts
Going Beyond BLFS
II. Post LFS Configuration and Extra Software
3. After LFS Configuration Issues
/etc/issue (Customizing your logon)
The Bash Shell Startup Files
/etc/inputrc
Random number generation
/etc/vimrc, ~/.vimrc
Creating a custom bootdisk
/etc/skel
4. Security
Configuring shadow
iptables-1.2.7a
Setting up a network firewall
tripwire-2.3.1-2
Linux_PAM-0.77
5. Filesystems
Ext3
reiserfs-3.6.5
xfsprogs-2.0.3
6. Editors
vim-6.1
emacs-21.3
nano-1.2.0
joe-2.9.7
7. Shells
tcsh-6.12
zsh-4.0.6
III. General Libraries and Utilities
8. General Libraries
openssl-0.9.7a
pcre-4.1
popt-1.7
slang-1.4.9
fam-2.6.9
libxml-1.8.17
libxml2-2.5.6
libxslt-1.0.29
readline-4.3
gmp-4.1.2
gdbm-1.8.3
GLib-1.2.10
GLib-2.2.1
expat-1.95.6
libesmtp-0.8.12
aspell-0.50.3
guile-1.4.1
slib-2d5
G-Wrap-1.3.4
STLport-4.5.3
9. Graphics Libraries
lcms-1.09
libjpeg-6b
libpng-1.2.5
libtiff-3.5.7
libungif-4.1.0b1
libmng-1.0.5
imlib-1.9.14
aalib-1.4rc4
10. General Utilities
bc-1.06
rep-gtk-0.17
11. System Utilities
gpm-1.20.1
fcron-2.9.3
hdparm-5.3
which-2.14 and alternatives
unzip-5.50
zip-2.3
pciutils-2.1.10
pkgconfig-0.15.0
cpio-2.5
12. Programming
Python-2.2.2
perl modules
librep-0.16.2
j2sdk-1.4.1
ruby-1.6.8
gcc-3.2.1
gcc-2.95.3
IV. Connecting to a Network
13. Dial-up networking
ppp-2.4.1
wvdial-1.53
14. DHCP Clients
Configuring the LFS bootscripts to support DHCP clients
dhcp-3.0pl2
dhcpcd-1.3.22-pl4
15. Other
V. Basic Networking
16. Networking Libraries
curl-7.10.4
wvstreams-3.70
gnet-1.1.8
17. Text Web Browsers
links-0.98
lynx-2.8.4
w3m-0.3.2.1
18. Basic Networking Programs
ncftp-3.1.5
OpenSSH-3.6.1p1 client
cvs-1.11.5
wget-1.8.2
tcpwrappers-7.6
portmap-5
inetutils-1.4.2
19. Basic Networking Utilities
traceroute-1.4a12
nmap-3.20
whois-4.6.3
20. Basic Networking Programs
procmail-3.22
fetchmail-6.2.2
mutt-1.4.1i
pine-4.53
slrn-0.9.7.4
Other mail and news progs
21. DJB's Utilities
daemontools-0.76
daemontools-man-0.76
ucspi-tcp-0.88
VI. Server Networking
22. Mail Server Software
postfix-2.0.7
qmail-1.03
sendmail-8.12.9
exim-4.14
qpopper-4.0.5
23. Other Server Software
BIND 9.2.2
Running a CVS server
dhcp-3.0pl2
leafnode-1.9.33
OpenSSH-3.6.1p1
openldap-2.1.17
Samba-2.2.8a
xinetd-2.3.10
VII. Content Serving
24. Databases
db-4.1.25
db-3.3.11
MySQL-3.23.55
PostgreSQL-7.3.2
25. Web serving
Apache-1.3.27
VIII. X + Window Managers
26. Installing X
XFree86-4.3.0
Setting up XFree86 Components
27. X Libraries
lesstif-0.93.36
freetype-2.1.3
qt-3.1.2
GTK+-1.2.10
Pango-1.2.1
ATK-1.2.0
GTK+-2.2.1
startup-notification-0.5
28. Window Managers
sawfish-1.3
fluxbox-0.1.14
xfce-3.8.18
metacity-2.4.34
IX. KDE
29. KDE Core Packages
aRts-1.1
kdelibs-3.1
kdebase-3.1
Configuring the core KDE packages
30. KDE Additional Packages
kdemultimedia-3.1
kdenetwork-3.1
kdegraphics-3.1
kdepim-3.1
kdeadmin-3.1
kdegames-3.1
kdeutils-3.1
kdeedu-3.1
kdeartwork-3.1
kdetoys-3.1
kdeaddons-3.1
31. Other KDE Packages
kdoc
X. Gnome
32. Gnome Libraries
pre-installation configuration
gtk-doc-1.0
linc-1.0.1
libIDL-0.8.0
ORBit2-2.6.1
intltool-0.25
bonobo-activation-2.2.1.1
libbonobo-2.2.1
GConf-2.2.0
gnome-mime-data-2.2.0
gnome-vfs-2.2.3
libgnome-2.2.0.1
libart_lgpl-2.3.11
libglade-2.0.1
libgnomecanvas-2.2.0.2
libbonoboui-2.2.0.1
gnome-icon-themes-1.0.1
libgnomeui-2.2.0.1
libwnck-2.2.1
gtk-engines-2.2.0
gtk-thinice-engine-2.0.2
gnome-themes-2.2.1
scrollkeeper-0.3.11
vte-0.10.26
libgtop-2.0.1
gail-1.2.0
at-spi-1.1.8
libgail-gnome-1.0.2
librsvg-2.2.4
eel-2.2.2
libgtkhtml-2.2.1
libgnomeprint-2.2.1.2
libgnomeprintui-2.2.1.2
33. Gnome core
gnome-desktop-2.2.1
gnome-panel-2.2.1
gnome-session-2.2.1
control-center-2.2.1
34. Additional Gnome Packages
gnome-terminal-2.2.1
gnome-system-monitor-2.0.4
gnome-applets-2.2.1
gnome-utils-2.2.1
gnome-games-2.2.0
nautilus-2.2.2
yelp-2.2.0
bug-buddy-2.2.103
gedit-2.2.1
eog-2.2.1
gstreamer-0.6.0
gst-plugins-0.6.0
gnome-media-2.2.1.1
nautilus-media-0.2.1
gnome2-user-docs-2.0.6
35. Other Gnome Packages
gconf-editor-0.4.0
gdm-2.4.1.3
36. Configuring Gnome
Configuring the core GNOME packages
37. Gnome 1.4 Libraries
pre-installation configuration
ORBit-0.5.17
oaf-0.6.10
gnome-libs-1.4.2
gdk-pixbuf-0.22.0
GConf-1.0.9
gnome-vfs-1.0.5
gnome-print-0.37
libglade-0.17
libcapplet-1.5.11
gal-0.22
gtkhtml-1.1.7
libghttp-1.0.9
bonobo-1.0.22
guppi-0.40.3
bonobo-conf-0.16
soup-0.7.4
XI. X Software
38. Individual Office Programs
AbiWord-1.0.4
gnumeric-1.0.12
gnucash-1.8.2
gimp-1.2.3
evolution-1.2.1
39. Office Suites
koffice-1.2.1
openoffice-1.0.2
40. Graphical Web Browsers
mozilla-1.3
galeon-1.3.3
konqueror-3.1
41. Other X-based Internet Programs
pan-0.13.4
Balsa-2.0.10
XII. Multimedia
42. Multimedia Libraries and Drivers
alsa-0.9.2
alsa-driver-0.9.2
alsa-lib-0.9.2
alsa-utils-0.9.2
alsa-tools-0.9.1
alsa-oss-0.9.1
aRts-1.1
audiofile-0.2.3
esound-0.2.29
SDL-1.2.5
libao-0.8.3
libogg-1.0
libvorbis-1.0
nas-1.6
43. Audio utilities
mpg123-0.59r
vorbistools-1.0
xmms-1.2.7
lame-3.93.1
CDParanoia-III-9.8
44. Video utilities
xvid-0.9.1
ffmpeg-0.4.6
avifile-0.7.34
MPlayer-0.90
xine-lib-1-beta9
xine-ui-0.9.19
transcode-0.6.2
45. CD-Writing utilities
Configuring your kernel for CD-Writing
cdrtools-2.0
cdrdao-1.1.7
XIII. Printing, Scanning and Typesetting
46. Printing
cups-1.1.18
Ghostscript-8.00
Ghostscript-7.05.5
LPRng-3.8.20
47. Scanning
sane-1.0.9
xsane-0.90
48. Standard Generalized Markup Language (SGML)
sgml-common-0.6.3
sgml-dtd-3.1
sgml-dtd-4.2
OpenSP-1.5
OpenJade-1.3.2
docbook-dsssl-1.78
49. Extensible Markup Language (XML)
xml-dtd-4.2
docbook-xsl-1.60.1
50. Postscript
a2ps-4.13b
enscript-1.6.1
gsview-4.3
psutils-p17
xpdf-2.02
51. Typesetting
tex-2.0.2
XIV. Appendices
A. List of rc?.d symlinks used in LFS/BLFS
rc0.d
rc1.d
rc2.d
rc3.d
rc4.d
rc5.d
rc6.d
B. Installing in non-default locations
List of Tables
4-1. Essential config-options for a firewalling-enabled Kernel
A-1. rc0.d symlinks
A-2. rc1.d symlinks
A-3. rc2.d symlinks
A-4. rc3.d symlinks
A-5. rc4.d symlinks
A-6. rc5.d symlinks
A-7. rc6.d symlinks

Preface

Foreword

Having helped out with LinuxFromScratch for a short time, I noticed that we were getting many queries as to how to do things beyond the base LFS system. At the time, the only assistance specifically offered relating to LFS were the LFS hints (http://hints.linuxfromscratch.org). Most of the LFS hints are extremely good and well written but I (and others) could still see a need for more comprehensive help to go Beyond LFS - hence BLFS.

BLFS aims to be more than the LFS-hints converted to XML although much of our work is based around the hints and indeed some authors write both hints and the relevant BLFS sections. We hope that we can provide you with enough information to not only manage to build your system up to what you want, whether it be a web server or a multimedia desktop system, but also that you will learn a lot about system configuration as you go.

Thanks as ever go to everyone in the LFS/BLFS community especially those who have contributed instructions, written text, answered questions and generally shouted when things were wrong!

Finally, we encourage you to become involved in the community; ask questions on the mailing list or news gateway and join in the fun on #lfs at irc.linuxfromscratch.org. You can find more details about all of these in the Introduction section of the book.

Enjoy using BLFS.

Mark Hymers <markh@linuxfromscratch.org> BLFS Editor (July 2001 - March 2003)


Who would want to read this book

This book is mainly aimed at those who have built a system based on the LFS book. It will also be useful for those who are using other distributions, but for one reason or another want to manually build software and are in need of some assistance. BLFS can be used to create a range of diverse systems and so the target audience is probably nearly as wide as that of the LFS book. If you found LFS useful, you should also like this!


Organization

This book is divided into the following parts.


Part I - Introduction

This part contains information which is essential to the rest of the book.


Part II - Post LFS Configuration and Extra Software

Here we introduce basic configuration and security issues. We also discuss a range of editors, filesystems and shells which aren't covered in the main LFS book.


Part III - General Libraries and Utilities

In this section we cover libraries which are often needed by the rest of the book as well as system utilities. Information on Programming (including recompiling gcc to support its full range of languages) concludes this part.


Part IV - Connecting to a Network

Here we cover how to connect to a network when you aren't using the simple static IP setup given in the main LFS book.


Part V - Basic Networking

Networking libraries and command line networking tools make up the bulk of this part.


Part VI - Server Networking

Here we deal with setting up mail and other servers (such as SSH, CVS, etc.).


Part VII - Content Serving

In this part we deal with databases and web server software .


Part VIII - X + Window Managers

This part explains how to set up a basic XFree86 installation along with some generic X libraries and Window managers.


Part IX - KDE

For those who want to use the K Desktop Environment or some parts of it, this part covers it.


Part X - Gnome

Gnome is the main alternative to KDE in the Desktop Environment arena and we cover both gnome-1.4 and gnome-2.2 here.


Part XI - X Software

Office programs and graphical web browsers are important to most people. They, along with some generic X software can be found in this part of the book.


Part XII - Multimedia

Here we cover setting multimedia libraries and drivers along with some audio, video and CD-writing programs.


Part XIII - Printing, Scanning and Typesetting

The PST part of the book covers things from ghostscript, cups and DocBook to installing TeX.


Appendices

The Appendices cover information which doesn't belong in the main book; they are mainly there as a reference.

I. Introduction


Chapter 1. Welcome to BLFS

The Beyond LinuxFromScratch book is designed to carry on from where the LFS book leaves off. Unlike the LFS book, it isn't designed to be followed straight through. Reading the Which sections of the book? part of this chapter should help guide you through the book.

Please read most of this part of the book carefully as it explains quite a few of the conventions we use throughout the book.


Conventions used in this book

To make things easy to follow, there are a number of conventions used throughout the book. Following are some examples:

./configure --prefix=/usr

This form of text is designed to be typed exactly as seen unless otherwise noted in the surrounding text. It is also used in the explanation sections to identify which of the commands is being referred to.

install-info: unknown option `--dir-file=/mnt/lfs/usr/info/dir'

This form of text (fixed width text) is showing screen output, probably as the result of commands issued and is also used to show filenames such as /etc/lilo.conf

Emphasis

This form of text is used for several purposes in the book but mainly to emphasize important points or to give examples as to what to type.

http://www.linuxfromscratch.org/

This form of text is used for hyperlinks, both within the book and to external pages such as HowTo's, download locations, websites, etc.

cat > $LFS/etc/group << "EOF"
	root:x:0:
	bin:x:1:
	......
EOF

This type of section is used mainly when creating configuration files. The first command (in bold) tells the system to create the file $LFS/etc/group from whatever is typed on the following lines until the sequence EOF is encountered. Therefore, this whole section is generally typed as seen.


Book version

This is BLFS-BOOK version 1.0 dated April 25th, 2003. If this version is older than a month a newer version is probably already available for download. Check one of the mirror sites below for updated versions.

Below is a list of our current HTTP and FTP mirror sites as of September 29th 2002. This list might not be accurate anymore. The latest info can be found on our website at http://beyond.linuxfromscratch.org.


Acknowledgments

We would like to thank the following people and organizations for their contributions toward the BLFS and LFS projects:

  • All those people listed on the Credits page for submitting patches, instructions and corrections to the book. The former editor would especially like to thank Bruce, Larry and Billy for their enormous inputs to the project.

  • Mark Stone <mstone@linux.com> for donating the linuxfromscratch.org servers.

  • Gerard Beekmans <gerard@linuxfromscratch.org> for starting and writing the vast majority of the LFS project.

  • Jesse Tie-Ten-Quee <highos@linuxfromscratch.org> for answering many questions on irc, having a great deal of patience and for not killing the editor for the joke in the original BLFS announcement!

  • DREAMWVR.COM for their ongoing sponsorship by donating various resources to the LFS and related sub projects.

  • Robert Briggs for donating the linuxfromscratch.org and linuxfromscratch.com domain names.

  • Frank Skettino <bkenoah@oswd.org> at OSWD for coming up the initial design of the LFS and BLFS websites.

  • Garrett LeSage <garrett@linux.com> for creating the LFS banner

  • Jeff Bauman (former co-editor of the book) for his assistance with getting BLFS off the ground.

  • Countless other people on the various LFS and BLFS mailing lists who are making this book happen by giving their suggestions, testing the book and submitting bug reports.


Credits

Many people have contributed both directly and indirectly to BLFS. This page lists all of those we can think of. We may well have missed people out and if you feel this is the case, drop us line. Many thanks to all of the LFS community for their assistance with this project. If you are in the list and wish to have your email address included, again please drop us a line to larry@linuxfromscratch.org and we'll be happy to add it. We don't include email addresses by default so if you want it included, please state so when you contact us.


Editors


Text Authors

  • Chapter 01. Based on the LFS introductory text by Gerard Beekmans, modified by Mark Hymers for BLFS.

  • Chapter 02: The /usr versus /usr/local debate: Andrew McMurry.

  • Chapter 02: Going beyond BLFS: Tushar Teredesai.

  • Chapter 03: /etc/inputrc: Chris Lynn.

  • Chapter 03: Customizing your logon & vimrc: Mark Hymers.

  • Chapter 03: Random number script Larry Lawrence.

  • Chapter 03: Creating a custom bootdisk Mike Bedwell.

  • Chapter 03: The Bash Shell Startup Files James Robertson.

  • Chapter 04: Firewalling: Henning Rohde with thanks to Jeff Bauman.

  • Chapter 11: Which Mark Hymers with many thanks to Seth Klein and Jesse Tie-Ten-Quee.

  • Chapter 26: XFree86 Bruce Dubbs.

  • Chapter 28: Intro to Window Managers Bruce Dubbs.

  • Chapter 29: KDE: Bruce Dubbs.

  • Chapter 32: GNOME: Larry Lawrence.


Installation Instruction Authors

  • aalib, Alsa, ffmpeg, MPlayer, opendivx, sane, transcode, xvid and xsane: Alex Kloss

  • AbiWord, at-spi, ATK, audiofile, avifile, bc, bonobo-activation, bug-buddy, cdrdao, cdrtools, cpio, curl, dhcp, enlightenment, eog, esound, fcron, fluxbox, FNLIB, gail, galeon, gconf-editor, gdbm, gedit, gimp, GLib2, gmp, gnet, gnome-applets, gnome-desktop, gnome-games, gnome-icon-theme, gnome-libs, gnome-media, gnome-mime-data, gnome-panel, gnome-session, gnome-system-monitor, gnome-terminal, gnome-themes, gnome-utils, gnome-vfs, gnome2-user-docs, gnumeric, GTK+2, gtk-doc, gtk-engines, gtk-thinice-engine, eel, imlib, intltool, lame, libao, libart_lgpl, libbonobo, libbonoboui, libgail-gnome, libglade2, libgnome, libgnomecanvas, libgnomeprint, libgnomeprintui, libgnomeui, libgtkhtml, libgtop, libIDL, libogg, librep, librsvg, libvorbis, libwnck, libxml2, libxslt, linc, LPRng, Linux_PAM, metacity, MPlayer, mutt, nautilus, nautilus-media, oaf, OpenJade, OpenSP, OpenSSH, ORBit, ORBit2, pan, Pango, pccts, pcre, pkgconfig, postfix, procmail, Python, QT, rep-gtk, ruby, sawfish, scrollkeeper, sgml-common, sgml-dtd, shadow, startup-notification, unzip, vorbis-tools, vte, wget, XFce, xine, xml-dtd, yelp and zip: Larry Lawrence

  • CDParanoia, mpg123, SDL and XMMS: Jeroen Coumans

  • alsa, cvs, dhcpcd, gpm, hdparm, libjpeg, libmng, libpng, libtiff, libungif, links, lynx, openssl, tcsh, which, zsch, zlib: Mark Hymers

  • daemontools, traceroute and ucspi-tcp: Jeff Bauman

  • db and lcms: Jeremy Jones and Mark Hymers

  • aspell, balsa, bind, bonobo, bonobo-conf, cvs server, db-3.3.11, db-3.1.17, emacs, evolution, exim, expat, gal, gnome-print, GnuCash, gtkhtml, guppi, guile, guppi, g-wrap, leafnode, lesstif, libcapplet, libesmtp, libfam, libghttp, libglade, pine, portmap, PostgreSQL, pspell, qmail, qpopper, readline, reiserfs, Samba, sendmail, slib, slrn, soup, tex, tcp-wrappers, and xinetd: Billy O'Connor

  • ESP Ghostscript: Matt Rogers

  • fetchmail and wvdial: Paul Campbell

  • tripwire : Manfred Glombowski

  • alsa-oss, inetutils, gdk, GLib, GTK+, libxml and vim: James Iwanek

  • iptables: Henning Rohde

  • joe, nano, nmap, slang, w3m and whois: Timothy Bauscher

  • MySQL: Jesse Tie-Ten-Quee

  • gcc, gcc2, j2sdk, mozilla, nas, openoffice and STLport: Tushar Teredesai


General Acknowledgments

  • Gerard Beekmans for generally putting up with us and for running the whole LFS project.

  • Bruce Dubbs for writing the kde.txt hint from which we gathered much useful information.

  • Lee Harris for writing the gpm.txt hint on which our gpm instructions are based.

  • Marc Heerdink for writing the gpm2.txt hint on which our gpm instruction are based.

  • Jeremy Jones (otherwise known as mca) for hacking Makefiles and general assistance.

  • J_Man for submitting a gpm-1.19.3.diff file on which our gpm instructions are based.

  • Scot Mc Pherson for writing the gnome-1.4.txt hint from which was gathered useful information and for warning us that Gnome2 was a toy.

  • Tushar Teredesai for writing the Compiling Java 2 SDK from Scratch hint on which j2sdk is based and for writing the docbook hint used throughout the typesetting chapter.

  • Oliver Brakmann for developing the dhcpcd patch for FHS compliance.

  • DJ Lucas for contributing to dhcpcd patch and many contributions while dhcp section was being developed.

  • Billy O'Connor for building gnome2 so many times (I thought my four was a lot) and being very helpful with his comments on that section.

  • Ted Riley for writing the Linux-PAM + CrackLib + Shadow hint on which reinstalling shadow to use PAM is based.

  • Fernando Arbeiza for doing great quality assurance on Shadow utilizing PAM. The machine access he saved may have been yours.


Changelog

Please note that the changelog only lists which editor was responsible for putting the changes into CVS; please read the Credits page in Chapter 1 for details on who wrote what.

1.0 - April 25th, 2003

  • April 25th, 2003 [larry]: Clarified ncftp license with maintainer. Although he was not concerned about our usage of ncftp in BLFS and the development license issues would be between the user and ncftp, I took the opportunity to explain this in to book anyway.

  • April 25th, 2003 [larry]: multimedia: fixed GUI interface redundancy in MPlayer.

  • April 23rd, 2003 [larry]: general: found a description for c_hash.

  • April 23rd, 2003 [larry]: postlfs: corrected errors in tripwire installation instructions.

  • April 23rd, 2003 [larry]: content: adding introduction to apache page.

0.99.2 - April 22nd, 2003

  • April 21st, 2003 [larry]: pst: changed url to point to correct location for the version in the book. This will be undone after release.

  • April 21st, 2003 [larry]: added a lot of tags.

  • April 17th, 2003 [larry]: multimedia: updated to MPlayer 0.90.

  • April 17th, 2003 [larry]: pst: Fixed installation instructions for psutils as reported by Gustav Schauwecker.

0.99.1 - April 16th, 2003

  • April 16th, 2003 [larry]: xsoft: updated to balsa-2.0.10 to sync with gnome-2.2.

  • April 16th, 2003 [larry]: x: updated dependencies to include xfree for consistency - reported by conathan.

  • April 16th, 2003 [larry]: xsoft: updated to gnucash-1.8.2 to eliminate sed.

  • April 16th, 2003 [larry]: general: updated to g-wrap-1.3.4 to clear up gtkhtml error in gnucash.

  • April 16th, 2003 [tushar]: db: added patch for perl in case perl is recompiled after installing db-4.1.

  • April 15th, 2003 [tushar]: moved db-3.1 as a sub-section of evolution since no other package needs it.

  • April 15th, 2003 [larry]: updated to samba-2.2.8a, security update.

  • April 15th, 2003 [larry]: updated to db-4.1.25.

  • April 15th, 2003 [larry]: updated to qpopper4.0.5 as current file pointers did not work.

  • April 14th,2003 [larry]: Tree pruning. All unfinished work was commented out.

  • April 12th 2003 [larry]: modified instructions for wvstreams and wvdial as submitted by Alexander E. Patrakov.

  • April 10th, 2003 [larry]: updated to slang-1.4.9 as current file pointers did not work.

  • April 10th, 2003 [larry]: added a bug patch to reiserfsprogs and added symlinks to the install, all reported by Kelledin.

  • April 7th, 2003 [tushar]: Added Beyond BLFS section.

  • April 7th, 2003 [larry]: another spellcheck run.

  • April 6th, 2003 [larry]: basicnet: updated to mutt-1.4.1i.

  • April 5th, 2003 [larry]: server: updated to samba-2.2.8.

  • April 5th, 2003 [larry]: server: Update to sendmail-8.12.9.

  • April 5th, 2003 [tushar]: openldap: Updated to 2.1.17.

  • April 5th, 2003 [tushar]: nmap: Updated to 3.20.

  • April 5th, 2003 [tushar]: libpng: Added patch to link against libz.

  • April 5th, 2003 [tushar]: unzip: Added patches and modified instructions to link against system zlib.

  • April 4th, 2003 [bdubbs]: KDE: moved aRts section from multimedia section to KDE section.

  • April 4th, 2003 [larry]: basicnet: updated to curl-7.10.4.

  • April 4th, 2003 [tushar]: fcron: added docbook-dsssl dependency link.

  • April 4th, 2003 [larry]: general: updated to libxml2-2.5.6 and libxslt-1.0.29.

  • April 3rd, 2003 [tushar]: programming: Added Fortran-77 compatibility symlink.

  • April 3rd, 2003 [larry]: postlfs: Added tripwire-2.3.1-2 and moved nessus to old while I determine its fate.

  • April 3rd, 2003 [tushar]: programming: merged gnat with gcc instructions, made changes to the gcc instructions.

  • April 2nd, 2003 [larry]: postlfs: sync xfs patch to LFS kernel version.

  • April 2nd, 2003 [larry]: postlfs: Shells chapter edited, qa'ed by larry.

  • April 2nd, 2003 [larry]: postlfs: Editors chapter complete except for vim-exp.xml, packages qa'ed by larry.

  • April 2nd, 2003 [larry]: postlfs: updated to emacs-21.3 and nano-1.2.0.

  • April 2nd, 2003 [markh]: server: Updated to OpenSSH-3.6.1p1.

  • April 2nd, 2003 [tushar]: genlib: simplified STL port sed command.

  • April 1st, 2003 [tushar]: genlib: updated to popt-1.7.

  • April 1st, 2003 [larry]: X: updated to sawfish-1.3.

  • April 1st, 2003 [larry]: prog: updated to librep-0.16.2.

  • April 1st, 2003 [tushar]: prog: added motif fix for j2sdk. Happy 1st April:) BTW, the fix is real:)

  • March 31st, 2003 [tushar]: prog: removed gcc2libs, added complete gcc suite.

  • March 30th, 2003 [tushar]: j2sdk: updated jdk to 1.4.1_02.

  • March 30th, 2003 [tushar]: editors: added instructions for recompiling vim post X.

  • March 28th, 2003 [larry]: pst: updated to xpdf-2.02.

  • March 28th, 2003 [larry]: X: moved enlightenment and fnlib to old.

  • March 27th, 2003 [larry]: Server: updated to postfix-2.0.7.

  • March 27th, 2003 [larry]: General: updated to lcms-1.09.

  • March 24th, 2003 [larry]: PST: Added Cyrillic fonts to a2ps as suggested by Alexander Patrakov.

  • March 23rd, 2003 [larry]: Multimedia: Updated to MPlayer-0.90rc5 and xine-lib-1-beta9.

  • March 23rd, 2003 [larry]: Gnome: Updated to gnome-desktop-2.2.1, gnome-panel-2.2.1, gnome-session-2.2.1, control-center-2.2.1 , gnome-terminal-2.2.1, gnome-applets-2.2.1, gnome-utils-2.2.1, nautilus-2.2.2, bug-buddy-2.1.103, gedit-2.2.1, eog-2.2.1 and gnome-user-docs-2.0.6.

  • March 22nd, 2003 [larry]: Gnome: Updated to libbonoboui-2.2.0.1, gnome-icon-theme-1.0.1, libwnck-2.2.1, gnome-themes-2.2.1, vte-0.10.26, librsvg-2.2.4, eel-2.2.2, libgtkhtml-2.2.1, libgnomeprint-2.2.1.2 and libgnomeprintui-2.2.1.2.

  • March 21st, 2003 [larry]: General: added aspell configuration as recommended by Grant Murray.

  • March 20th, 2003 [larry]: Gnome: updated to ORBit2-2.6.1, bonobo-activation-2.2.1.1, libbonobo-2.2.1, gnome-vfs-2.2.3 and libgnomecanvas-2.2.0.2.

  • March 20th, 2003 [tushar]: OpenOffice: Added note about a non working openoffice-1.0.2 install

  • March 19th, 2003 [tushar]: Sever: Updated to bind-9.2.2 (James Iwanek's patch).

  • March 19th, 2003 [tushar]: Multimedia: Updated to alsa-0.9.2 (James Iwanek's patch).

  • March 19th, 2003 [tushar]: Mozilla: Added patch for Alpha (submitted by Kelledin) and removed elf-dynstr-gc option. Removed openoffice related instructions.

  • March 18th, 2003 [larry]: General: Updated to pcre-4.1.

  • March 18th, 2003 [larry]: Server: Updated to Postfix-2.0.6.

  • March 17th, 2003 [tushar]: BasicNet: Applied James' patch to inetutils.

  • March 17th, 2003 [larry]: Xsoft: Updated to galeon-1.3.3.

  • March 16th, 2003 [larry]: Basicnet: Updated to whois_4.6.3.

  • March 16th, 2003 [larry]: PST: Updated to docbook-dsssl-1.78.

  • March 15th, 2003 [larry]: Multimedia: Updated to xine-ui-0.9.19.

  • March 15th, 2003 [tushar]: X Software: Temporarily removed spellchecker from mozilla 1.3.

  • March 13th, 2003 [tushar]: X Software: Updated to mozilla 1.3.

  • March 11th, 2003 [tushar]: Multimedia: Applied James' patch to update to alsa-0.9.1.

  • March 10th, 2003 [larry]: Connect: applied patch from James for dhcpcd. Postlfs: applied patch from Manfred to emacs. General: applied patch from Manfred to slang. Multimedia: updated to alsa-0.9.0rc8c.

  • March 9th, 2003 [larry]: Multimedia: Updated to alsa-0.9.0rc8b.

  • March 9th, 2003 [larry]: Multimedia: Updated to xine-lib-1-beta8.

  • March 7th, 2003 [bdubbs]: X: Added fc-cache instructions to TrueType and added section on building kernel modules.

  • March 7th, 2003 [larry]: PST: updated to TeX-2.0.2.

  • March 6th, 2003 [tushar]: OpenOffice: Removed unneeded patch (debug-keep-setup). Added sed command to remove version number from installation directory.

  • March 5th, 2003 [larry]: PST: modified a2ps instructions to eliminate files going into root directory.

  • March 5th, 2003 [larry]: Multimedia: applied James' patch to mv startup script instructions to utils.

  • March 5th, 2003 [larry]: General: updated to libmng-1.0.5.

  • March 4th, 2003 [larry]: Server: updated to postfix-2.0.5 and sendmail-8.12.8.

  • March 4th, 2003 [larry]: Basicnet: updated to fetchmail-6.2.2.

  • March 4th, 2003 [larry]: Multimedia: updated to alsa-0.9.0rc8a.

  • March 4th, 2003 [bdubbs]: X: updated keyboard layout explanation and example in XFree86.

  • March 3rd, 2003 [larry]: X: updated to qt-3.1.2.

  • March 3rd, 2003 [larry]: Multimedia: updated to alsa-0.9.0rc8.

  • March 3rd, 2003 [larry]: Xsoft: updated to gnumeric-1.0.12.

  • March 2nd, 2003 [bdubbs]: XFree86: updated to version 4.3. Removed freetype 1. Updated XFree86 configuration.

  • March 2nd, 2003 [larry]: Xsoft: updated to AbiWord-1.0.4.

  • March 3rd, 2003 [tushar]: db: Added note for openoffice.

  • March 3rd, 2003 [tushar]: j2sdk: Added explanations for patches.

  • March 2nd, 2003 [larry]: DJB's: corrections to daemontools install instructions, submitted by Sefan Krah.

  • March 1st, 2003 [larry]: basicnet: corrections to inetutils install instructions, submitted by James Iwanek.

  • March 1st, 2003 [larry]: multimedia: applied James' patch to roll alsa to 0.9.0rc7

  • March 1st, 2003 [larry]: pst: xsl-stylesheets install was incomplete, fixed.

  • February 28th, 2003 [tushar]: j2sdk: Added reference to blackdown jdk for users who cannot download j2sdk source due to license restrictions.

  • February 28th, 2003 [tushar]: Remove && from the end of unset VAR to accommodate bash versions < 2.05b. Minor fixes to some packages.

  • February 26th, 2003 [larry]: PST: added xpdf-patch1.

  • February 26th, 2003 [larry]: xsoft: Updated to pan-0.13.4.

  • February 26th, 2003 [larry]: Basicnet: Added gnet-1.1.8, newly required by pan.

  • February 25th, 2003 [larry]: General: Updated to libxml2-2.5.4 and libxslt-1.0.27.

  • February 25th, 2003 [larry]: PST: modified install instructions of xpdf to move /usr/X11R6/etc to /etc.

  • February 25th, 2003 [markh]: General: Removed alias option from which and put the actual package first in the list.

  • February 25th, 2003 [larry]: Multimedia: Updated to xine-lib-1-beta6 and ffmpeg-0.4.6.

  • February 24th, 2003 [larry]: Basicnet: Added inetutils-1.4.2 contributed by James Iwanek and removed telnet.

  • February 23rd, 2003 [larry]: Server: Updated to postfix-2.0.4.

  • February 23rd, 2003 [larry]: Multimedia: Updated to xine-lib-1-beta5.tar.gz.

  • February 22nd, 2003 [larry]: General: Updated to openssl-0.9.7a and pcre-4.0. New sed command for openssl contributed by Jochen Held.

  • February 22nd, 2003 [larry]: PST: Updated to LPRng-3.8.20.

  • February 21st, 2003 [larry]: Multimedia: updated to xvidcore-0.9.1.

  • February 20th, 2003 [larry]: basicnet: updated to curl-7.10.3.

  • February 20th, 2003 [larry]: multimedia: updated to xine-lib-1-beta4 and xine-ui-0.9.18.

  • February 20th, 2003 [larry]: pst: edited for consistency.

  • February 20th, 2003 [larry]: pst: added espgs-7.05.5 submitted by Matt Rogers.

  • February 19th, 2003 [larry]: entity files: added my last batch of SBU times.

  • February 18th, 2003 [larry]: xsoft: Added patch to downloads to mozilla for galeon and rewrote instructions.

  • February 18th, 2003 [tushar]: openoffice: Removed optimization flags. Added warning.

  • February 17th, 2003 [larry]: entity files: adding SBU time for packages for editors use if desired.

  • February 17th, 2003 [larry]: multimedia: updated to MPlayer-0.90rc4.

  • February 17th, 2003 [tushar]: openoffice: Added localized helpcontent instructions.

  • February 16th, 2003 [tushar]: openoffice: Updated to 1.0.2

  • February 16th, 2003 [larry]: gnome: updated to gnome-media-2.2.1.1 and nautilus-media-0.2.1.

  • February 15th, 2003 [larry]: gnome: Updated to control-center-2.2.0.1, librsvg-2.2.3, eel-2.2.0.2, nautilus-2.2.0.2, libgtkhtml-2.2.0, yelp-2.2.0, bug-buddy-2.2.102, libgnomeprint-2.2.1.1, libgnomeprintui-2.2.1.1, gtk-thinice-engine-2.0.2, gedit-2.2.0.1, gstreamer-0.6.0 and gst-plugins-0.6.0.

  • February 15th, 2003 [larry]: pst: updated to docbook-xsl-1.60.1

  • February 14th, 2003 [tushar]: mozilla: Updated patch mozilla-1.2.1-gtk-mozembed.patch and fixed typo.

  • February 13th, 2003 [larry]: Appendices: Moved portmap to S22 and xinetd to S23 so that libfam will work properly.

  • February 12th, 2003 [larry]: General: Updated to libxml2-2.5.3 and libxslt-1.0.26.

  • February 12th, 2003 [tushar]: Updated STLport instructions.

  • February 12th, 2003 [larry]: postlfs: Updated PAM and shadow instructions to correct the none working behavior under LFS cvs reported by Jim Gifford.

  • February 10th, 2003 [billyoc]: pst: Updated teTeX to version 2.0.

  • February 10th, 2003 [billyoc]: xsoft: Updated balsa to version 2.0.7.

  • February 10th, 2003 [tushar]: Added nas-1.6, a prereq for OpenOffice.

  • February 10th, 2003 [tushar]: Added STLport, a prereq for OpenOffice.

  • February 10th, 2003 [tushar]: KDE: Added explanation for the environment variable DO_NOT_COMPILE.

  • February 9th, 2003 [billyoc]: server: Updated leafnode to version 1.9.33.

  • February 9th, 2003 [billyoc]: content: Updated postgres to version 7.3.2.

  • February 9th, 2003 [larry]: Gnome: Added gnome-desktop-2.2.0.1, gnome-panel-2.2.0.1, gnome-session-2.2.0.2, vte-0.10.17, gnome-terminal-2.2.0, libgtop-2.0.1, gnome-system-monitor-2.0.4, gail-1.2.0, at-spi-1.1.8, libgail-gnome-1.0.2, gnome-applets-2.2.0, gnome-utils-2.2.0.3 and gnome-games-2.2.0

  • February 8th, 2003 [larry]: Gnome: Added gtk-doc-1.0, linc-1.0.1, ORBit-2.5.1, bonobo-activiation-2.2.0, libbonobo-2.2.0, gnome-mime-data-2.2.0, GConf-2.2.0, gconf-editor-0.4.0, gnome-vfs-2.2.0, libgnome-2.2.0.1, libgnomecanvas-2.2.0.1, libbonoboui-2.2.0, gnome-icon-theme-1.0.0, libgnomeui-2.2.0.1, libwnck-2.2.0, gtk-engines-2.2.0 and gnome-themes-2.2

  • February 6th, 2003 [larry]: X: Added metacity-2.4.34.

  • February 6th, 2003 [larry]: X: Added startup-notification-0.5.

  • February 6th, 2003 [tushar]: Fixed errors in mozilla instructions and typos in j2sdk.

  • February 6th, 2003 [larry]: General: Updated to pkgconfig-0.15.0.

  • February 6th, 2003 [tushar]: Chapter 40: Updated to mozilla-1.2.1 and made gtk2 the default toolkit for building mozilla

  • February 5th, 2003 [larry]: General: Updated to libxml2-2.5.2 and libxslt-1.0.25.

  • February 5th, 2003 [larry]: General: Updated to atk-1.2.0, pango-1.2.1 and gtk+-2.2.1.

  • February 5th, 2003 [larry]: General: Updated to glib-2.2.1.

  • February 3rd, 2003 [larry]: Modified hfile-root to point to downloads.linuxfromscratch.org/blfs-patches. This gives us a temporary solution to patches. Changed ffile-root to hfile-root in jdk, gcc2lib and expat.

  • February 3rd, 2003 [larry]: General: Updated to expat-1.95.6.

  • February 1st, 2003 [larry]: General: Removed pccts as it is now built with cdrdao.

  • February 1st, 2003 [larry]: Multimedia: Updated to cdrtools-2.0.

  • January 31st, 2003 [bdubbs]: Add Openldap.

  • January 31st, 2003 [bdubbs]: Fix various types.

  • January 30th, 2003 [bdubbs]: removed zlib.

  • January 30th, 2003 [bdubbs]: fixed various typo's thanks to Matt.

  • January 30th, 2003 [larry]: general: Updated gcc to install-no-fixedincludes to be consistent with LFS. Thanks to Greg for doing the research.

  • January 30th, 2003 [tushar]: j2sdk: Updated to j2sdk-1.4.1 and merged two instructions.

  • January 29th, 2003 [bdubbs]: rc scripts: fixed typo's thanks to Matt.

  • January 29th, 2003 [bdubbs]: libmng: deleted explicit zlib dependency since zlib is now in LFS Book.

  • January 28th, 2003 [highos]: Content: Updated to MySQL-3.23.55.

  • January 27th, 2003 [bdubbs]: freetype2: removed instructions to use the system zlib until the linking problem is fixed in the next release.

  • January 26th, 2003 [larry]: Updated to postfix-2.0.3.

  • January 26th, 2003 [bdubbs]: Inserted instructions for kdevelop and kdocs (thanks to Matt Rogers)

  • January 25th, 2003 [billyoc]: basicnet: Updated fetchmail to version 6.2.1.

  • January 25th, 2003 [billyoc]: server: Updated xinetd to version 2.3.10.

  • January 25th, 2003 [billyoc]: basicnet: Updated Pine to version 4.53.

  • January 23rd, 2003 [larry]: general: added new configuration targets as suggested by Dagmar.

  • January 23rd, 2003 [larry]: server: updated to dhcp-3.0pl2.

  • January 21st, 2003 [larry]: gnome: updated to libgnomecanvas-2.0.5, libwnck-0.18, libgtkhtml-2.0.3, gnome-terminal-2.0.2, eog-1.0.4 and gnome-system-monitor-2.0.3. This brings BLFS Gnome to the 2.0.3 level.

  • January 21st, 2003 [billyoc]: general: Updated gpm instructions to add -lm to LDFLAGS. Maintainers notified..

  • January 20th, 2003 [billyoc]: basicnet: Updated cvs to version 1.11.5.

  • January 20th, 2003 [larry]: postlfs: corrected configure switch from --enable-both-confs to --enable-read-both-confs.

  • January 19th, 2003 [larry]: general: updated to libxml2-2.5.1.

  • January 19th, 2003 [larry]: gnome: update to intltool-0.25.

  • January 17th, 2003 [larry]: server: put full paths in openssh script. Could not get reload to work without it.

  • January 17th, 2003 [billyoc]: gnome: Updated gal to version 0.22.

  • January 15th, 2003 [larry]: server: Updated to postfix-2.0.2.

  • January 11th, 2003 [billyoc]: postlfs: Updated iptables to version 1.2.7a.

  • January 11th, 2003 [billyoc]: basicnet: Updated pine to version 4.52.

  • January 11th, 2003 [billyoc]: general: Added aspell section, to eventually replace outdated pspell.

  • January 9th, 2003 [tushar]: mozilla, openoffice, jdk: My first update:) Updated URL location for the hints.

  • January 8th, 2003 [billyoc]: general: Updated openssl to version 0.9.7.

  • January 8th, 2003 [billyoc]: general: Updated gpm to version 1.20.1.

  • January 8th, 2003 [billyoc]: server: Updated exim to version 4.12.

  • January 8th, 2003 [billyoc]: basicnet: Updated cvs to version 1.11.4.

  • January 8th, 2003 [billyoc]: basicnet: Updated w3m to version 0.3.2.1.

  • January 8th, 2003 [billyoc]: server: Updated sendmail to version 8.12.7.

  • January 8th, 2003 [billyoc]: server: Updated leafnode to version 1.9.32..

  • January 8th, 2003 [markh]: Introduction: Add Tushar to Co-editors list.

  • January 5th, 2003 [billyoc]: general: Updated slang to version 1.4.7.

  • January 5th, 2003 [bdubbs]: freetype2: Updated version to freetype-2.1.3 and fixed sed script.

  • January 5th, 2003 [larry]: Gnome: Updated to control-center-2.0.3.2, gnome-games-2.0.6 and libgnomeui-2.0.6.

  • January 5th, 2003 [larry]: Server: Updated to postfix-2.0.0.2.

  • January 5th, 2003 [larry]: Gnome: Updated to libart_lgpl-2.3.11.

  • January 5th, 2003 [larry]: Gnome: Updated to gtk-doc-0.10.

  • January 4th, 2003 [larry]: PST: Added LPRng-3.8.19.

  • January 3rd, 2003 [larry]: General: Updated to gmp-4.1.2 and gdbm-1.8.3.

  • January 3rd, 2003 [larry]: PST: Clean-up SGML chapter.

  • January 2nd, 2003 [larry]: PST: Added sane-1.0.9 and xsane-0.90 submitted by Alex Kloss.

  • January 2nd, 2003 [larry]: Postlfs: Applied patch to profile supplied by James Robertson.

  • January 2nd, 2003 [larry]: PST: Added sgml-dtd versions 3.1 and 4.2.

  • January 2nd, 2003 [bdubbs]: opendivx: Minor update.

  • January 1st, 2003 [larry]: Gnome: Updated to gdk-pixbuf-0.22.0.

  • January 1st, 2003 [larry]: Multimedia: Updated to lame-3.93.1.

  • January 1st, 2003 [larry]: Xsoft: Updated to pan-0.13.3.

  • January 1st, 2003 [markh]: PST: Added a brief note on configuring a2ps.

  • January 1st, 2003 [bdubbs]: CUPS: Updated entire section.

  • January 1st, 2003 [markh]: Gnome/Content: Move db-3.x to Content. At the same time, change install for db-3.1 to /tmp/db-3.1; also adjust Evolution to use the same.

  • January 1st, 2003 [bdubbs]: CUPS: Added boilerplate but text still needs to be updated.

  • December 31st, 2002 [markh]: PostLFS: Added James Robertson's /etc/skel page.

  • December 31st, 2002 [markh]: PST: Added Alex's patch for Ghostscript, a2ps, enscript, gsview, psutils and xpdf.

  • December 27th, 2002 [larry]: Multimedia: Added transcode-0.6.2.

  • December 26th, 2002 [larry]: Multimedia: updated to MPlayer-0.90rc2.

  • December 26th, 2002 [larry]: Server: Updated to postfix-2.0.0.1.

  • December 26th, 2002 [larry]: X: Updated to fluxbox-0.1.14.

  • December 26th, 2002 [larry]: General: Updated to ruby-1.6.8.

  • December 24th, 2002 [larry]: PST: Added scrollkeeper configuration to DocBook.

  • December 21st, 2002 [billyoc]: Content: Updated to PostgreSQL 7.3.1.

  • December 21st, 2002 [larry]: Multimedia: Updated to xine-lib-1-beta0, xine-ui-0.9.16 and avifile-0.7.22.

  • December 21st, 2002 [larry]: Basicnet: Updated to curl-7.10.2.

  • December 21st, 2002 [larry]: Multimedia: Added ffmpeg-211202-cvs.

  • December 21st, 2002 [larry]: Multimedia: Added opendivx-091202-cvs.

  • December 21st, 2002 [larry]: Multimedia: Added xvid-0.9.0.

  • December 20th, 2002 [larry]: General: Added aalib-1.4rc1.

  • December 19th, 2002 [larry]: X: Upgraded to qt-3.1.1.

  • December 19th, 2002 [larry]: General: Upgraded to gcc-3.2.1.

  • December 19th, 2002 [larry]: General: Rollbacked to gnat-3.14p.

  • December 19th, 2002 [larry]: General: Upgraded to gnat-3.15p.

  • December 18th, 2002 [larry]: Xsoft: Upgraded to gnumeric-1.0.11.

  • December 18th, 2002 [larry]: PST: Added docbook-dsssl-1.77.

  • December 17th, 2002 [larry]: PST: Clean up builds in SGML and XML.

  • December 16th, 2002 [billyoc]: Multimedia: Updated SDL to version 1.2.5.

  • December 16th, 2002 [billyoc]: Basicnet: Updated whois to version 4.6.1.

  • December 16th, 2002 [billyoc]: General: Updated hdparm to version 5.3.

  • December 16th, 2002 [billyoc]: Basicnet: Updated fetchmail to version 6.2.0.

  • December 16th, 2002 [billyoc]: General: Updated openssl to 0.9.6h.

  • December 16th, 2002 [billyoc]: Xsoft: Added evolution-1.2.1.

  • December 16th, 2002 [billyoc]: Gnome: Added bonobo-conf-0.16.

  • December 16th, 2002 [billyoc]: Gnome: Added soup-0.7.4.

  • December 16th, 2002 [billyoc]: Gnome: Added db-3.1.17.

  • December 15th, 2002 [larry]: PST: Added OpenJade-1.3.2.

  • December 15th, 2002 [larry]: PostLFS: eliminated --prefix=/usr, once used with shadow, login is linked to a library that will not be there if /usr mount fails.

  • December 15th, 2002 [larry]: PST: Added OpenSP-1.5.

  • December 14th, 2002 [larry]: PostLFS: Correct errors in shadows PAM section pointed out by Fernando Arbeiza.

  • December 13th, 2002 [billyoc]: Gnome: Added gnucash-1.6.8.

  • December 13th, 2002 [billyoc]: Gnome: Added gnome-print-0.37.

  • December 13th, 2002 [billyoc]: Gnome: Added libglade-0.17.

  • December 13th, 2002 [billyoc]: Gnome: Added db-3.3.11.

  • December 13th, 2002 [billyoc]: Gnome: Added gal-0.21.

  • December 13th, 2002 [billyoc]: Gnome: Added libcapplet-1.5.11.

  • December 13th, 2002 [billyoc]: Gnome: Added gtkhtml-1.0.4.

  • December 13th, 2002 [billyoc]: Gnome: Added libghttp-1.0.9.

  • December 13th, 2002 [billyoc]: Gnome: Added bonobo-1.0.22.

  • December 13th, 2002 [billyoc]: Gnome: Added guppi-0.40.3.

  • December 13th, 2002 [billyoc]: Gnome: Added guile-1.4.1.

  • December 13th, 2002 [billyoc]: Gnome: Added slib-2d5.

  • December 13th, 2002 [billyoc]: Gnome: Added gwrap-1.2.1.

  • December 13th, 2002 [billyoc]: Server: Updated Samba to version 2.2.7a.

  • December 13th, 2002 [billyoc]: Basicnet: Updated pine to version 4.51.

  • December 13th, 2002 [billyoc]: General: Added guile-1.4.1.

  • December 13th, 2002 [billyoc]: General: Added slib2d5.

  • December 13th, 2002 [billyoc]: General: Added g-wrap-1.2.1.

  • December 13th, 2002 [larry]: PST: Added docbook-xsl-1.58.1.

  • December 13th, 2002 [larry]: PST: DocBook is now xml-docbook-4.2

  • December 13th, 2002 [larry]: PST: Reorganized section to implement docbook hint.

  • December 12th, 2002 [larry]: PST: Added sgml-common-0.6.3.

  • December 12th, 2002 [larry]: General: updated to libxml2-2.4.30.

  • December 11th, 2002 [larry]: General: updated to libxml2-2.4.29.

  • December 11th, 2002 [markh]: Added 'The Bash Shell Startup Files' by James Robertson.

  • December 9th, 2002 [larry]: Update to MPlayer-0.90rc1.

  • December 9th, 2002 [markh]: Introduction: Wrote the organization page.

  • December 9th, 2002 [markh]: Introduction: Apply Seth's mailing list patch (seen on lfs-dev).

  • December 9th, 2002 [markh]: Introduction: Add new German mirror to mirror list.

  • December 6th, 2002 [larry]: Postlfs: Add sections to shadow to utilize PAM.

  • December 5th, 2002 [larry]: Postlfs: Updated to Linux-PAM-0.77.

  • December 4th, 2002 [billyoc]: Server: Updated to leafnode-1.9.30.

  • December 3rd, 2002 [larry]: General: Updated to libxml2-2.4.28.

  • December 2nd, 2002 [larry]: General: Updated to gmp-4.1.1.

  • December 2nd, 2002 [billyoc]: xsoft: Added Balsa 2 section.

  • December 2nd, 2002 [larry]: X: Added a link in the QT installation so that configure scripts looking for libqt find the libqt-mt that we install.

  • December 1st, 2002 [larry]: Gnome: Fixed script on gdm. Failed when bring down gdm when it was not running.

  • November 29th, 2002 [billyoc]: x: Update dri cvs update command with cvs repository on command line.

  • November 29th, 2002 [billyoc]: content: Update to PostgreSQL-7.3.

  • November 29th, 2002 [billyoc]: basicnet: Update to fetchmail-6.1.3.

  • November 27th, 2002 [larry]: Server: Update BIND with new J-ROOT server IP address.

  • November 24th, 2002 [larry]: Server: Update to postfix-1.1.12.

  • November 24th, 2002 [larry]: Gnome: Update to gdm-2.4.0.12.

  • November 24th, 2002 [larry]: Gnome: Roll back to bonobo-activation-1.0.3.

  • November 24th, 2002 [larry]: Gnome: Update to gedit-2.0.6

  • November 23rd, 2002 [larry]: Gnome: Update to eel-2.0.8,nautilus-2.0.8, yelp-1.0.7, and gnome-media-2.0.3.

  • November 23rd, 2002 [larry]: Gnome: Updated to gnome-utils-2.0.6, gnome-applets-2.0.4 and gnome-games-2.0.5.

  • November 23rd, 2002 [larry]: Gnome: Updated to gnome-vfs-2.0.4.1.

  • November 23rd, 2002 [larry]: Gnome: Updated to gnome-session-2.0.9 and control-center-2.0.2.91.

  • November 23rd, 2002 [larry]: Gnome: Updated to gnome-desktop-2.0.10 and gnome-panel-2.0.11.

  • November 23rd, 2002 [larry]: Gnome: Updated to bonobo-activation-1.0.4 and libgnome-2.0.6.

  • November 22nd, 2002 [larry]: Gnome: Updated to ORBit2-2.4.4.

  • November 22nd, 2002 [larry]: X: Updated to GTK+-2.0.9.

  • November 20th, 2002 [larry]: X: Added warning to QT. Multimedia: Removed ftp site for vorbis-tools, libao, ogg and vorbis reported by Bill.

  • November 19th, 2002 [highos]: Content: Updated to apache-1.3.27 and mysql-3.23.53.

  • November 19th, 2002 [billyoc]: Content: Add C++ and java support to db-4.0.14.

  • November 19th, 2002 [billyoc]: General: Update libesmtp to version 1.0.

  • November 19th, 2002 [highos]: Basicnet: Updated to whois-4.5.31.

  • November 19th, 2002 [highos]: Postlfs: Updated to reiserfsprogs-3.6.4.

  • November 19th, 2002 [highos]: Content: Updated to apache-1.3.27 and mysql-3.23.53.

  • November 18th, 2002 [larry]: General: Updated to libxml2-2.4.27 and libxslt-1.0.23.

  • November 18th, 2002 [billyoc]: X: Update to lesstif, add Java and Gnome compatibility.

  • November 14th, 2002 [larry]: X: Update to qt-3.1.0.

  • November 13th, 2002 [larry]: X: Update to xfce-3.8.18.

  • November 11th, 2002 [larry]: Multimedia: Update to MPlayer-0.90pre10.

  • November 10th, 2002 [larry]: X: Update to sawfish-1.2-gtk2

  • November 10th, 2002 [larry]: General: Update to rep-gtk-0.17

  • November 10th, 2002 [larry]: X: Update to gtk+-2.0.8.

  • November 9th, 2002 [larry]: Xsoft: Update to pan-0.13.2.

  • November 6th, 2002 [larry]: X: Backup to gtk+-2.0.6.

  • November 6th, 2002 [larry]: General: Updated to fcron-2.9.3.

  • November 6th, 2002 [billyoc]: General: Added pspell-.12.2.

  • November 6th, 2002 [billyoc]: General: Added libesmtp-0.8.12.

  • November 5th, 2002 [larry]: X: Updated to GTK+-2.0.7.

  • November 5th, 2002 [larry]: General: Updated to GLib-2.0.7.

  • November 2nd, 2002 [larry]: Basicnet: Updated to fetchmail-6.1.2.

  • November 2nd, 2002 [larry]: Gnome: Updated to intltool-0.23

  • November 2nd, 2002 [larry]: X: Updated to fluxbox-0.1.12.

  • October 27th, 2002 [larry]: Prog: Added page for perl modules used in BLFS

  • October 26th, 2002 [larry]: Basicnet: Update to links-0.98.

  • October 25th, 2002 [larry]: Multimedia: Update to MPlayer-0.90pre9.

  • October 25th, 2002 [larry]: General: Update to pkgconfig-0.14.0.

  • October 25th, 2002 [larry]: Gnome: Update to libbonobo-2.0.1 and libbonoboui-2.0.3.2.

  • October 25th, 2002 [larry]: Basicnet: Update to fetchmail-6.1.1.

  • October 25th, 2002 [larry]: Basicnet: Update to curl-7.10.1.

  • October 24th, 2002 [larry]: Xsoft: Edited Galeon for Mozilla changes.

  • October 24th, 2002 [larry]: Xsoft: Changed prefix on Mozilla to /usr now that make install behaves itself.

  • October 24th, 2002 [larry]: X: Updated to qt-3.0.6.

  • October 24th, 2002 [billyoc]: Content: Updated to Postgres-7.2.3.

  • October 22nd, 2002 [larry]: Expanded Gnome Chapter introduction.

  • October 21st, 2002 [larry]: Basicnet: Updated to ncftp-3.1.5.

  • October 20th, 2002 [larry]: Xsoft: moved prefix on gimp, AbiWord and Pan to /usr.

  • October 19th, 2002 [larry]: Gnome: Updated to linc-0.7.0.

  • October 19th, 2002 [larry]: Gnome: Updated to gdk-pixbuf-0.21.0.

  • October 19th, 2002 [larry]: General: Updated to libxml2-2.2.26 and libxslt-1.0.22.

  • October 18th, 2002 [larry]: Xsoft: Added gimp-1.2.3.

  • October 18th, 2002 [billyoc]: Server: Updated to Samba-2.2.6.

  • October 18th, 2002 [markh]: General - Slang: Updated to 1.4.6.

  • October 16th, 2002 [larry]: X: Updated to pango-1.0.5.

  • October 16th, 2002 [larry]: Multimedia: Added AviFile-0.7.15.

  • October 16th, 2002 [larry]: Server: Updated to OpenSSH-3.5p1.

  • October 16th, 2002 [larry]: Xsoft: Updated to pan-0.13.1.

  • October 16th, 2002 [markh]: Basicnet - tcpwrappers: Add patch from Bill to install man-pages.

  • October 16th, 2002 [bruce]: XFree86: Removed note about hdparm.

  • October 14th, 2002 [larry]: General: Updated to Python-2.2.2.

  • October 14th, 2002 [larry]: General: Updated to gdbm-1.8.2.

  • October 14th, 2002 [larry]: Connect: Went to full path on ifup-eth0 and ifdown-eth0, the previous instructions left you in /etc/sysconfig. Eliminated audiofile in Sawfish dependencies, implied in esound. Moved freetype2 from required to can utilize in MPlayer.

  • October 13th, 2002 [markh]: Moved patches directory to blfs-patches/cvs (lowercase) because apache has a nasty thing about directories called CVS (uppercase). Updated patch root entity. Have symlinked CVS --> cvs for now so that people don't get 404s when looking for patches.

  • October 11th, 2002 [larry]: Multimedia: Added MPlayer-0.90pre8.

  • October 11th, 2002 [billyoc]: Server: added security patch to sendmail.

  • October 10th, 2002 [billyoc]: Basicnet: modified install instructions for SSL and documentation.

  • October 9th, 2002 [larry]: Multimedia: added xine-ui-0.9.13.

  • October 9th, 2002 [larry]: General: updated to libpng-1.2.5 and fixed typo in shadow.

  • October 9th, 2002 [larry]: Typo cleanup in bootdisk, inputrc and unpacking.

  • October 8th, 2002 [larry]: General: clarified gdbm installation instructions. Xsoft: changed AbiWord to default to non-gnome.

  • October 7th, 2002 [larry]: Gnome: updated to gdk-pixbuf-0.20.0.

  • October 7th, 2002 [larry]: Multimedia: updated to cdrdao-1.1.7.

  • October 7th, 2002 [larry]: Multimedia: added xine-lib-0.9.13.

  • October 7th, 2002 [larry]: General: updated to fcron-2.9.2.

  • October 6th, 2002 [bdubbs]: KDE: updates to configure instructions and install directory.

  • October 6th, 2002 [larry]: Appendices: Added named and fcron to the runlevels.

  • October 5th, 2002 [larry]: Appendices: Added xinetd to the runlevels and had to bump portmap and samba up one notch.

  • October 4th, 2002 [markh]: Connect: Slight re-write of DHCP instructions to clarify them.

  • October 4th, 2002 [markh]: Xsoft: Add dependency of "which" to mozilla (from Tushar).

  • October 2nd, 2002 [larry]: General: Added readline-4.3 and expat-1.95.5.

  • October 2nd, 2002 [bdubbs]: XFree86: removed incorrect libc statements host.def

  • October 1st, 2002 [markh]: BasicNet: Add cvs-1.11.2-zlib patch submitted to blfs-dev by Michael Horbats to make cvs use a shared zlib.

  • October 1st, 2002 [markh]: Change to using ffile-root and hfile-root entities instead of the old file-root one.

  • October 1st, 2002 [larry]: Gnome: Added Gnome 1.4 to page headings and TOC so Gnome2 builders can skip without reading the page.

  • September 30th, 2002 [larry]: Gnome: updated to linc-0.5.4.

  • September 30th, 2002 [larry]: Gnome: Fixed some dependencies and a url.

  • September 29th, 2002 [larry]: Gnome: Change order of GConf-1.0.9, seems to have a hidden dependency on gdk.

  • September 29th, 2002 [markh]: Introduction: Rewrite "Which sections of the book do I want?" page to update it to the new format.

  • September 29th, 2002 [markh]: Introduction: Update mirrors list and tidy XML slightly.

  • September 29th, 2002 [larry]: pst: added dependency to DocBook.

  • September 28th, 2002 [bdubbs]: KOffice: updated to version 1.2.

  • September 28th, 2002 [larry]: Server: Billy expanded instructions to include xinetd for samba and qmail. General: added extra installation for gdbm (Apache) and edited libfam.

  • September 28th, 2002 [larry]: Basicnet: updated to fetchmail-6.1.0.

  • September 27th, 2002 [larry]: General: updated to libxml2-2.4.25 and libxlst-1.0.21.

  • September 26th, 2002 [larry]: Multimedia: Removed cdrdao page due to project being frozen on Sourceforge with sources withdrawn.

  • September 25th, 2002 [larry]: Edits, mainly trying to standardize exp sections and desc sections.

  • September 25th, 2002 [larry]: Xsoft: Mozilla patch uploaded to ftp. Galeon corrected per Tushars observation and incorporated a patch .

  • September 25th, 2002 [larry]: Server: Updates submitted for samba, bind, leafnode, and xinetd.

  • September 24th, 2002 [larry]: Xsoft: Added AbiWord-1.0.3. Minor edits and more bz2.

  • September 23rd, 2002 [larry]: Xsoft: updated mozilla per patch submitted by Tushar, cleaned out .mozconfig, and updated galeon to match directory structure.

  • September 22nd, 2002 [larry]: Gnome: Added gdm-2.4.0.11.

  • September 22nd, 2002 [larry]: Modified download links to bz2 for gnome ftp site and applied cpio patch.

  • September 22nd, 2002 [larry]: Postlfs: Added Linux-PAM-0.76 and added sed to the explanations in QT.

  • September 21st, 2002 [markh]: Xsoft: Committed Tushar's mozilla instructions.

  • September 21st, 2002 [larry]: Converted leading spaces to   in qt instructions. Change libld to libdl in bootdisk and changed /mnt/lib to /mnt/loop1/lib.

  • September 21st, 2002 [larry]: Basicnet: Added references in "Other Mail and News" page.

  • September 21st, 2002 [larry]: Xsoft: Added Gnumeric-1.0.9.

  • September 20th, 2002 [larry]: Xsoft: Added pan-0.13.0.

  • September 20th, 2002 [larry]: Gnome: Updated to linc-0.5.3.

  • September 20th, 2002 [larry]: General: Updated to pkgconfig-0.13.0.

  • September 20th, 2002 [larry]: Gnome: Added at-spi-1.0.2, libgail-gnome-1.0.1 and gconf-editor-0.3.1.

  • September 20th, 2002 [bdubbs]: Multimedia: Added qt as prerequisite to aRts.

  • September 19th, 2002 [larry]: Gnome: Added gnome2-user-docs-2.0.1.

  • September 18th, 2002 [larry]: xsoft: Added galeon-1.2.6 and Konqueror reference.

  • September 17th, 2002 [larry]: Gnome: Added oaf-0.6.10, GConf-1.0.9 and gnome-vfs-1.0.5 for Gnome 1.4.

  • September 16th, 2002 [larry]: pst: applied patch to Tex submitted by Billy.

  • September 15th, 2002 [larry]: Gnome: Updated to libgnomeprint-1.116.1, gnome-applets-2.0.3, nautilus-2.0.7 and eel-2.0.7. Added patch to gmp. Added gnome-media-2.0.2.5.

  • September 14th, 2002 [markh]: Postlfs: Added ext3 instructions from Tushar.

  • September 14th, 2002 [larry]: Gnome: Updated to gdk-pixbuf-0.19.0.

  • September 14th, 2002 [bdubbs]: KDE: Remove objprelink. Update to KDE 3.0.3.

  • September 14th, 2002 [bdubbs]: XFree86: Update to use freetype2.

  • September 14th, 2002 [bdubbs]: XFree86: Add freetype2.

  • September 13th, 2002 [larry]: Gnome: Added gedit-2.0.4. Added conditional install instructions to mutt to account for no MTA.

  • September 13th, 2002 [larry]: Xsoft: Added openoffice-1.0.1 submitted by Tushar.

  • September 12th, 2002 [markh]: Basic Networking: Fix ncftp entity file - the download says 3.1.4 but the version hadn't been updated from 3.1.2.

  • September 12th, 2002 [larry]: Gnome: Another correction on /etc/gnome - gnome-games. Moved the prefix on libglade to /opt/gnome2 to get the module path correct in pkgconfig, this may break rep-gtk.

  • September 11th, 2002 [larry]: Basicnet: modified portmap per submission.

  • September 11th, 2002 [larry]: Gnome: Two more corrections on /etc/gnome - bonobo-activation and gnome-mime-data. Typo in gail.

  • September 10th, 2002 [larry]: Gnome: Fixed formatting of install instructions for console browsers. Fixed configuration to add /usr/lib/pkgconfig to PKG_CONFIG_PATH. Fixed >> instead of > in second line of .initrc.

  • September 9th, 2002 [larry]: Gnome: Added gnome-system-monitor-2.0.2 and yelp-1.0.6.

  • September 8th, 2002 [larry]: Basicnet: Added tcp-wrappers-7.6 submitted by Billy.

  • September 8th, 2002 [larry]: Gnome: Added eog-1.0.3 and nautilus-2.0.6.

  • September 8th, 2002 [larry]: Basicnet: Added portmap-5 submitted by Billy.

  • September 8th, 2002 [larry]: library-config.xml: changed userinput to filename in the appropriate places per conventions page.

  • September 8th, 2002 [larry]: Gnome: Another clean-up run through gnome concentrating on links and adding exp files.

  • September 7th, 2002 [larry]: General: Updated libfam to utilize patches for gcc-3.2. Submissions by Billy.

  • September 6th, 2002 [bdubbs]: XFree86: Updated to 4.2.1.

  • September 6th, 2002 [larry]: Gnome: Updated to gnome-vfs-2.0.4, libgnome-2.0.4, libgnomecanvas-2.0.4, libgnomeui-2.0.5, gnome-desktop-2.0.8, gnome-panel-2.0.9, gnome-session-2.0.7 and gnome-utils-2.0.5.

  • September 5th, 2002 [larry]: Gnome: Added core configuration page and moved library installation instructions to its own page. Cleaned up typos in gnome. Corrected /var/spool to /var/lib to match where scrollkeeper installs to and returned to /etc/gnome.

  • September 4th, 2002 [larry]: Gnome: Added gnome-games-2.0.4 and bug-buddy-2.2.0.

  • September 4th, 2002 [larry]: Gnome: Added gnome-terminal-2.0.1, gnome-utils-2.0.4 and gnome-applets-2.0.2, cleaned credits, cleaned gnome lib descriptions.

  • September 3rd, 2002 [larry]: Gnome: Added control-center-2.0.1, libgtop-2.0.0, librsvg-2.0.1, gail-0.17, eel-2.0.6 and libgtkhtml-2.0.2.

  • September 2nd, 2002 [larry]: Postlfs: Added Boot disk writeup by Mike Bedwell.

  • September 2nd, 2002 [highos]: Filesystems: Updated to reiserfsprogs-3.6.3.

  • September 2nd, 2002 [highos]: Server: Updated to leafnode-1.9.25.

  • September 2nd, 2002 [larry]: Gnome: Added gtk-engines-1.9.0, gnome-panel-2.0.7, gnome-session-2.0.6 and gnome-desktop-2.0.7.

  • September 1st, 2002 [larry]: Gnome: Added libgnome-2.0.3, libgnomecanvas-2.0.3, libbonoboui-2.0.3, libgnomeui-2.0.4, libwnck-0.17, libgnomeprint-1.116.0, libgnomeprintui-1.116.0 and updated to libglade-2.0.1.

  • September 1st, 2002 [larry]: X: Sawfish will compile with gdk-pixbuf installed IF it is installed in /opt/gnome, not /usr.

  • September 1st, 2002 [larry]: Gnome: Added gnome-mime-data-2.0.1 and gnome-vfs-2.0.3.

  • August 31st, 2002 [larry]: Gnome: Added libIDL-0.8.0, ORBit2-2.4.1, bonobo-activation-1.0.3, GConf-1.2.1, libart_lgpl-2.3.10, libbonobo-2.0.0 and libzvt-2.0.1.

  • August 31st, 2002 [larry]: Multimedia: Updated to esound-0.2.29.

  • August 31st, 2002 [larry]: Gnome: Added gnome-common-1.2.4 and reworked sawfish to dance around its conflict with gdk-pixbuf.

  • August 30th, 2002 [larry]: General: Fixed path errors in gcc and gnat instructions. Updated links.

  • August 29th, 2002 [larry]: X: Added lesstif-0.93.36, sendmail and slrn updates submitted by Billy.

  • August 29th, 2002 [larry]: Postlfs: Updated to zsh-4.0.6, modified wget per highos suggestion.

  • August 27th, 2002 [larry]: Gnome: Added gtk-doc-0.9 and linc-0.5.2.

  • August 27th, 2002 [larry]: Server: added qpopper-4.0.4. Applied submitted patch for sendmail.

  • August 27th, 2002 [larry]: Cleaned up reference to gnome in package dependencies, removed chain dependencies (usually zlib, if package looks for libpng).

  • August 27th, 2002 [highos]: Content: Updated to MySQL-3.23.52. A description fix and path change for FHS compliance.

  • August 27th, 2002 [highos]: General: Upgraded to openssl-0.9.6g.

  • August 26th, 2002 [larry]: Gnome: Added ORBit-0.5.17 and gnome-libs-1.4.2.

  • August 26th, 2002 [markh]: Multimedia. Rewrite of ALSA instructions and update then to 0.9.0rc3 (0.5.x support removed).

  • August 26th, 2002 [larry]: Server: Added exim-4.10, changes to sendmail and qmail submitted by Billy.

  • August 26th, 2002 [larry]: General: Update to fcron-2.9.1, libxml2-2.4.24 and libxslt-1.0.20.

  • August 26th, 2002 [markh]: General: Update to libpng-1.2.4 and libmng-1.0.4.

  • August 25th, 2002 [larry]: Server: Added cvs server.

  • August 25th, 2002 [larry]: Multimedia: Added lame-3.92.

  • August 25th, 2002 [markh]: Moved glib and glib2 to general, libglade to gnome and zlib to appendix b.

  • August 24th, 2002 [larry]: gnome: added Scrollkeeper-0.3.11.

  • August 24th, 2002 [larry]: pst: Added DocBook-4.1.2.

  • August 24th, 2002 [larry]: Content: Added PostgreSQL.

  • August 24th, 2002 [larry]: pst: Added tex-1.0.

  • August 23rd, 2002 [larry]: Server: Added sendmail.

  • August 23rd, 2002 [larry]: gnome: Added intltool-0.22.

  • August 23rd, 2002 [larry]: Server: Added leafnode and xinetd.

  • August 23rd, 2002 [bdubbs]: Updated X11 discussion of PPC optimization and fixed two Xll (X el el) references to X11 (X one one).

  • August 21st, 2002 [larry]: Server: Added bind-9.

  • August 20th, 2002 [larry]: X: Added FNLIB-0.5 and enlightenment-0.16.5.

  • August 19th, 2002 [larry]: Server: Added Samba-2.2.5 and modified slrn.

  • August 19th, 2002 [larry]: X: Added sawfish-1.1a-gtk2.

  • August 18th, 2002 [larry]: General: Added gmp-4.1, gdbm-1.8.0, librep-0.16.1, esound-0.2.26, libglade-2.0.0 and rep-gtk-0.16.

  • August 17th, 2002 [larry]: Added patch paragraph to dhcpcd and cdrdao. Fixed typos in j2sdk. Added explanations of commands to dhcpcd.

  • August 17th, 2002 [markh]: Moved patches to the blfs-patches/CVS directory on ftp.linuxfromscratch.org and update file-root entity and text to follow this.

  • August 16th, 2002 [larry]: Connect: updated dhcpcd to use patch that puts files in their proper place.

  • August 16th, 2002 [larry]: General: j2sdk expected cpio in /bin instead of /usr/bin.

  • August 16th, 2002 [larry]: Server: added qmail.

  • August 16th, 2002 [larry]: General: Added gnat-3.14, gcc-3.2 recompile and cpio-2.5.

  • August 15th, 2002 [highos]: Content: Added MySQL-3.23.51.

  • August 13th, 2002 [larry]: X: updated to qt-3.0.5.

  • August 12th, 2002 [larry]: General: Added libfam-2.6.9. Server: added touch dhcpd.leases.

  • August 11th, 2002 [larry]: X: Added XFce-3.8.16.

  • August 10th, 2002 [larry]: Basic Networking: Modified pine-4.44 for patches.

  • August 9th, 2002 [larry]: Basic Networking: Added pine-4.44 and slrn-0.9.7.4.

  • August 9th, 2002 [larry]: Basic Networking: Added w3m-0.3.1.

  • August 9th, 2002 [larry]: General: Added j2sdk-1.4.0.

  • August 8th, 2002 [markh]: Post-LFS: Added initial XFS instructions.

  • August 8th, 2002 [markh]: Post-LFS: Added missing --prefix=/usr to emacs instructions.

  • August 8th, 2002 [larry]: General: Added slang.

  • August 8th, 2002 [larry]: X: Added fluxbox-0.1.10

  • August 7th, 2002 [larry]: General: Added Ruby-1.6.7.

  • August 7th, 2002 [larry]: Post-LFS: Added joe-2.9.7 from Timothy.

  • August 7th, 2002 [markh]: Post-LFS: Added emacs-21.2 from Billy O'Connor.

  • August 6th, 2002 [larry]: X: Updated to GLib-2.0.6, GTK+-2.0.6, atk-1.0.3 and pango-1.0.4.

  • August 6th, 2002 [larry]: Basic networking: added nmap-3.00 submitted by Timothy.

  • August 6th, 2002 [larry]: Basic networking: added whois-4.5.28 submitted by Timothy.

  • August 6th, 2002 [larry]: Basic networking: added telnet-0.17. Client ONLY. Subject to replacement by inettools or netkit-combo when completed by assignee.

  • August 6th, 2002 [markh]: Post-LFS: Initial addition of reiserfsprogs.

  • August 6th, 2002 [markh]: General: Update which to 2.14.

  • August 6th, 2002 [markh]: Basic networking: Finally get around to fixing up the traceroute instructions.

  • August 6th, 2002 [markh]: Post-LFS: Update iptables to 1.2.6a.

  • August 6th, 2002 [markh]: General: Add popt-1.6.4.

  • August 6th, 2002 [markh]: Post-LFS: Update to tcsh-6.12.

  • August 6th, 2002 [markh]: General: Add pciutils.

  • August 6th, 2002 [markh]: Post-LFS: Added Timothy's nano instructions.

  • August 5th, 2002 [larry]: Basic Networking: added mutt-1.4i. X: added exp files to GTK+ and GTK+2 for --sysconfdir=/etc

  • August 4th, 2002 [larry]: General: Added Python-2.2.1.

  • August 4th, 2002 [larry]: Basic Networking: Update ent and intro files to new format. Update to fetchmail 5.9.13. Server Networking: Update ent and intro files to new format.

  • August 3rd, 2002 [larry]: General: added bc-1.06.

  • August 3rd, 2002 [larry]: Graphics Libraries: update ent and intro files to new format. System Utilities: update ent and intro files to new format. Text Web: update ent and intro files to new format.

  • August 2nd, 2002 [larry]: Basic Net: added wget-1.8.2, procmail-3.22. Removed chmod 755 from OpenSSH. Modified Imlib for consistency. Imlib, GTK+, GTK2+ and Pango modified to install configuration files in /etc rather than /usr/etc. General Libraries: update ent and intro files to new format.

  • July 31st, 2002 [larry]: General Libraries: upgraded openssl to 0.9.6e.

  • July 30th, 2002 [larry]: Multimedia: modified intro for xmms for links.

  • July 22nd, 2002 [bdubbs]: Deleted duplicate define in xfree86 hosts.def file.

  • July 22nd, 2002 [larry]: Multimedia: modified install instruction for cdrtools to accommodate $CFLAGS with spaces.

  • July 21st, 2002 [bdubbs]: Updated description of lame package in KDE configuration description.

  • July 21st, 2002 [larry]: System Utilities: Added Zip 2.3.

  • July 20th, 2002 [larry]: Update libxml2 to 2.4.23 and libxslt to 1.0.19, minor modifications in ent files of vorbis ogg.

  • July 19th, 2002 [markh]: Update libogg, libvorbis and vorbistools to 1.0, libao to 0.8.3, sync descriptions and update them to the new -intro.xml template.

  • July 16th, 2002 [larry]: Convert pcre, unzip and curl to new intro template.

  • July 14th, 2002 [markh]: Post-LFS: Add zsh-4.0.4.

  • July 14th, 2002 [markh]: Post-LFS: Add tcsh-6.11.

  • July 14th, 2002 [bdubbs]: Update location of zlib.

  • July 13th, 2002 [larry]: Removed libiconv from GLib2. Added links to lcms, jpeg, and dhcp.

  • July 13th, 2002 [bdubbs]: Insert download and build sizes for XFree86 DRI.

  • July 13th, 2002 [markh]: Post-LFS: Finally fix the inputrc comments bug.

  • July 13th, 2002 [markh]: Basic Networking - Add &'s to traceroute commands.

  • July 13th, 2002 [markh]: Update location of cvs package.

  • July 13th, 2002 [bdubbs]: Update location of zlib.

  • July 7th, 2002 [markh]: REORGANIZATION DONE. Note that all Changelog entries below this one will now refer to the wrong answer.

  • July 4th, 2002 [bdubbs]: Various typo and grammar changes.

  • July 4th, 2002 [bdubbs]: KDE section - updated koffice patch instruction and added a backslash to kdelibs build commands. Successfully rebuilt kde 3.0.2 with current instructions.

  • July 3rd, 2002 [bdubbs]: KDE section - updated koffice and changed to kde 3.0.2.

  • July 2nd, 2002 [bdubbs]: KDE section - updated kdeutils, kdeedu, kdeartwork, kdetoys, and kdeaddons.

  • July 2nd, 2002 [bdubbs]: Updated link location in libungif and added a note to remove a possible compilation error.

  • July 1st, 2002 [bdubbs]: KDE section - updated kdegraphics, kdeadmin, and kdegames sections. Updated imlib to correct an error in configure with gcc 3.1. Changed download locations to links in libtiff and libungif

  • June 30th, 2002 [bdubbs]: KDE section - updated kedmultimedia, kdenetwork and kdepim sections.

  • June 29th, 2002 [larry]: Chapter 5 - updated to alsa-0.9.0rc2 and moved gnome intro.

  • June 28th, 2002 [bdubbs]: QT section - Added note to allow not building examples and tutorials.

  • June 28th, 2002 [larry]: Chapter 4 - Added GTK+-1.2.10, GLib-1.2.10, gdk-0.11.0, libxml-1.8.17.

  • June 27th, 2002 [larry]: Chapter 12 - Started adding GNOME-1.4.1.

  • June 26th, 2002 [larry]: Chapter 4 - Added GTK+-2.0.5, Chapter 9 - Updated to OpenSSH-3.4p1.

  • June 24th, 2002 [larry]: Chapter 9 - Updated to OpenSSH-3.3p1, with modifications to set up privileged/unprivileged operations which is now the default. Chapter 4 - Added GLib-2.0.4, Pango-1.0.3 and ATK-1.0.2

  • June 22nd, 2002 [larry]: Chapter 20 - Added kernel configuration and additional reading links to introduction.

  • June 21st, 2002 [larry]: Chapter 04 - Added pkgconfig-0.12.0.

  • June 15th, 2002 [larry]: Chapter 08 - Modified config sed command for a change in main.cf after version 1.1.9 on myhostname.

  • June 14th, 2002 [larry]: Chapter 07 - Update to curl-7.9.8.

  • June 7th, 2002 [markh]: Chapter 02 - Update daemontools and daemontools-man packages; patch from Sal Gonzalez.

  • June 7th, 2002 [markh]: Chapter 05 - Update db link location.

  • June 7th, 2002 [markh]: Chapter 13 - Update objprelink download location and slightly modify build command to match new file.

  • June 7th, 2002 [markh]: Chapter 07 - Update to links-0.97.

  • June 7th, 2002 [markh]: Chapter 05 - Update to hdparm-5.2.

  • June 7th, 2002 [markh]: Chapter 04 - Finally applied the fix for libmng to make it use lcms properly.

  • May 31st, 2002 [larry]: Update to postfix-1.1.11, modified fcron script.

  • May 31st, 2002 [markh]: Chapter 06 - Update to wvstreams-3.70 and wvdial-1.53.

  • May 31st, 2002 [bdubbs]: Add comment about /lib/libmisc.la to kdebase instructions.

  • May 30th, 2002 [larry]: Update to libxml2-1.4.22 and libxslt-1.0.18.

  • May 29th, 2002 [markh]: Chapter 04 - Update openssl instructions to install man pages in /usr/share/man. We get around the passwd man page problem by renaming the source file to openssl-passwd. Thanks to Jesse for suggesting this.

  • May 28th, 2002 [bdubbs]: Change structure of kde xml and begin KDE Intro.

  • May 28th, 2002 [bdubbs]: Remove extra line feed in qt configure instructions for man.conf.

  • May 24th, 2002 [bdubbs]: Updated to openssl to version 0.9.6d and updated configure instruction.

  • May 23rd, 2002 [larry]: Updated to libpng 1.2.3 and OpenSSH 3.2.3p1.

  • May20th, 2002 [larry]: Added pccts 133MR33 to chapter 04 and cdrdao 1.1.5 to chapter 20.

  • May19th, 2002 [larry]: Updated to OpenSSH 3.2.2p1.

  • May 19th, 2002 [bdubbs]: Updated cvs version to 1.11.2.

  • May 18th, 2002 [larry]: Updated to postfix 1.1.9.

  • May 17th, 2002 [bdubbs]: Chapter 11 - Inserted text about Window Mangers. Chapter 13 - Added stubs for KDE. Updated links for QT and objprelink.

  • May 17th, 2002 [bdubbs]: Chapter 10 - Updated XFree86 sections. Corrected kernel make commands and changed url references to links.

  • May 16th, 2002 [bdubbs]: Chapter 10 - Added XFree86. Updated data for objprelink.

  • May 16th, 2002 [larry]: Chapter 05 - Added unzip-5.50.

  • May 15th, 2002 [markh]: Chapter 02 - Fix up formatting in traceroute section.

  • May 15th, 2002 [markh]: Chapter 06 and 09. Update to dhcp-3.0pl1.

  • May 15th, 2002 [markh]: Chapter 04 - Update to libpng-1.2.2 and fix imlib so it works with this libpng version.

  • May 15th, 2002 [markh]: Chapter 08 - Update to postfix-1.1.8. Chapter 13 - Update to qt-3.0.4.

  • May 15th, 2002 [markh]: Chapter 04 - Add libxml2 and libxslt (from Larry).

  • May 15th, 2002 [markh]: Chapter 17 - SDL (to 1.2.4) and XMMS (to 1.2.7) update from Jeroen.

  • May 15th, 2002 [markh]: Chapter 13 - Add objprelink and update QT instructions to match.

  • May 15th, 2002 [markh]: Chapter 06 - Firewalling. Changed references to /etc/init.d --> /etc/rc.d/init.d.

  • May 15th, 2002 [markh]: Chapter 06 - DHCP. Fixed extraneous line in dhclient.conf creation command.

  • May 15th, 2002 [markh]: Chapter 05 - Alsa. Fixed typo in chmod command. Added note about manually creating /etc/asound.conf so that alsactl doesn't baulk on first startup.

  • April 29th, 2002 [markh]: Chapter 06 - Add DHCP_STOP variable to DHCP scripts.

  • April 28th, 2002 [markh]: Chapter 04 - Add imlib.

  • April 28th, 2002 [markh]: Chapter 02, 04, 08 - Minor fixes to daemontools, libpng, libmng and postfix instructions.

  • April 28th, 2002 [markh]: Chapter 05 - Fix to alsa install instructions (added a missing 's' and \).

  • April 20th, 2002 [markh]: Chapter 20 - Add cdrtools-1.10.

  • April 20th, 2002 [markh]: Chapter 09 - Add DHCP server instructions.

  • April 20th, 2002 [markh]: Chapter 06 - We now have DHCP client configuration instructions.

  • April 20th, 2002 [markh]: Chapter 08 and Appendix A - Update to postfix-1.1.7 and keep runlevels list in sync with LFS-1.9 (from Larry).

  • April 7th, 2002 [markh]: Chapter 07 - Added curl. Chapter 18 - Added vorbistools.

  • April 7th, 2002 [markh]: Chapter 17 - Added libao, libogg, libvorbis.

  • April 7th, 2002 [markh]: Chapter 08 - Postfix update from Larry and fix script to use spaces instead of tabs.

  • April 7th, 2002 [markh]: Chapter 05 - Applied fcron updates (two of them) from Larry. Moves to fcron-2.9.0 with a few fixes.

  • April 7th, 2002 [markh]: Daemontools - moved to using telinit -Q instead of kill -HUP 1 following user comments on blfs-dev.

  • April 7th, 2002 [markh]: Chapter 17 - Add audiofile-0.2.3.

  • March 28th, 2002 [markh]: Chapter 08 - Add postfix-1.1.5 instructions.

  • March 28th, 2002 [markh]: Chapter 13 - Update to QT-3.0.3.

  • March 27th, 2002 [markh]: Chapter 07 and 09 - Added dhcp package instructions.

  • March 26th, 2002 [markh]: Chapter 04 - Add pcre-3.9 instructions.

  • March 26th, 2002 [markh]: Chapter 13 - Added initial set of qt instructions.

  • March 26th, 2002 [markh]: Chapter 05 - Fcron update to 2.1.0 and a few miscellaneous fixes from Larry.

  • March 25th, 2002 [markh]: Chapter 05 - Fix the mistake whereby we tried to add lines to /etc/sysconfig instead of /etc/syslog.conf.

  • March 25th, 2002 [markh]: Appendix A and other sections - Add the initial tables of rc?.d symlinks. At the same time, make sure scripts are set to 755 (to be executable) and sort out the numbering of the scripts (some were still using three digits from the old-style links).

  • March 25th, 2002 [markh]: Chapter 05 - Added the "which" page.

  • March 20th, 2002 [markh]: Moved all homeless packages to a new temporary place in Chapter 02 until homes are found for them. This leaves appendix A empty for the symlink list.

  • March 20th, 2002 [markh]: Chapter 03 - Added random script instructions.

  • March 15th, 2002 [markh]: Chapter 05 - Small update to fcron instructions. Chapter 09 - Small update to OpenSSH instructions.

  • March 11th, 2002 [markh]: Chapter 09 - Add OpenSSH-3.1p1 install instructions. Chapter 07 - Add reference about installing OpenSSH client.

  • March 11th, 2002 [markh]: Chapter 05 - Update fcron instructions (syslog related changes).

  • March 11th, 2002 [markh]: Chapter 02 - Add comment about using bootscripts with LFS-3.2 and later. Chapter 05 - Change gpm and alsa scripts to work with LFS-3.2 and later.

  • March 11th, 2002 [markh]: Chapter 04 - Update to zlib-1.1.4.

  • March 2nd, 2002 [markh]: Chapter 1 - Credits - Modify credits list so that each author is only listed once with a complete list of what they did (it makes the list smaller).

  • March 2nd, 2002 [markh]: Chapter 5 - Add fcron-2.0.0 instructions from Larry Lawrence.

  • February 24th, 2002 [markh]: Chapter 5 - Update to gpm-1.20.0.

  • February 21st, 2002 [markh]: Argh.. I've been writing the wrong date all day! Changed all Feb 20th entries to Feb 21st and corrected the book's date.

  • February 21st, 2002 [markh]: Chapter 7 - Update to ncftp-3.1.2.

  • February 21st, 2002 [markh]: Chapter 5 - Update to db-4.0.14.

  • February 21st, 2002 [markh]: Chapter 4 - Update to lcms-1.08, libpng-1.2.1 and libtiff-3.5.7.

  • February 21st, 2002 [markh]: Add chapters 18-20 as placeholders for multimedia section and move SDL into ch1 and cdparanoia, mpg123 and XMMS into ch18.

  • February 21st, 2002 [markh]: Chapter 5 - Move cvs and db to here from appendix a.

  • February 19th, 2002 [markh]: Chapter 6 - Update to hdparm-4.6 and move it here from appendix a.

  • February 19th, 2002 [markh]: Chapter 6 - Update to wvdial-1.50 and add wvstreams-3.64 which is required by the new version of wvdial.

  • February 19th, 2002 [markh]: Chapter 6 - Add ppp.

  • February 19th, 2002 [markh]: Chapter 6 - Move wvdial to here from appendix A.

  • February 15th, 2002 [markh]: Chapter 6 - DHCP - Added initial DHCP section.

  • February 14th, 2002 [markh]: Chapter 6 - Firewalling update from Henning.

  • January 3rd, 2002 [markh]: Changed alsa instructions to include --with-kernel= for robustness.

  • January 1st, 2002 [markh]: Started large rearrangement of book. Many modifications made. Fixed up quite a few things. Happy New Year to you all!

  • December 31st, 2001 [markh]: Gpm - Fixed symlink creation so it actually works.

  • December 22nd, 2001 [markh]: Zlib - Added instructions to copy manual page as it isn't installed by default.

  • December 20th, 2001 [markh]: Chapter 3 - Added the vimrc page.

  • December 20th, 2001 [markh]: Appendix A - Added alsa instructions by Alex Kloss.

  • December 20th, 2001 [markh]: Chapter 2 - More text added.

  • December 1st, 2001 [markh]: Chapter 3 - Added some corrections to the inputrc page regarding the role of /etc/inputrc and ~/.inputrc.

  • November 30th, 2001 [markh]: Appendix A - Added fetchmail instructions by Paul Campbell.

  • November 26th, 2001 [markh]: General - Added <&dbhtml> tags all over the place to divide generated HTML into directories.

  • November 26th, 2001 [markh]: Chapter 3 - Added /etc/inputrc details by Chris Lynn and /etc/issue details by me.

  • November 5th, 2001 [markh]: Appendix A - Added gpm recommendation to links instructions.

  • October 25th, 2001 [markh]: Chapter 6 - Firewalling section added to book.

  • October 25th, 2001 [markh]: Appendix A - wvdial-1.41 added.

  • October 20th, 2001 [markh]: Appendix A - hdparm-4.2 added.

  • October 20th, 2001 [markh]: Appendix B removed. Credits moved to a page in Chapter 1.

  • October 20th, 2001 [markh]: Appendix A - All current sets of installation instructions changed to install items in /usr instead of /usr/local.

  • October 20th, 2001 [markh]: Chapter 2 - Added the /usr versus /usr/local debate section.

  • October 14th, 2001 [markh]: Chapter 1 - Added lots of text.

  • September 20th, 2001 [markh]: Appendix A - Small formatting fix to db instructions so they copy and paste properly.

  • September 20th, 2001 [markh]: Appendix A - Updated to libmng-1.0.3 and libpng-1.2.0.

  • September 20th, 2001 [markh]: Appendix A - Fixed lcms instructions so that they actually work...

  • September 14th, 2001 [markh]: Appendix A - Links installation instructions added.

  • September 14th, 2001 [markh]: Appendix A - Lynx installation instructions added.

  • September 14th, 2001 [markh]: Appendix A - Finished off openssl instructions.

  • September 6th, 2001 [markh]: Appendix A - Added daemontools

  • September 4th, 2001 [markh]: General - lots and lots of things - setting up xml structure, adding instructions etc.


Which sections of the book do I want?

Unlike the LinuxFromScratch book, BLFS isn't designed to be followed in a linear manner. This is because LFS provides instructions on how to create a base system which is capable of turning into anything from a web server to a multimedia desktop system. BLFS is where we try to guide you through going from the base system to your intended destination and so choice is very much involved.

Everyone who reads the book will want to read certain sections. The Introduction part - which you are currently reading - contains generic information. Especially take note of the information in Important Information (Chapter 2), as this contains comments about how to unpack software and various other aspects which apply throughout the book.

The part on Post LFS Configuration and Extra Software is where most people will want to turn next. This deals with not just configuration but also Security (Chapter 4), Filesystems (Chapter 5), Editors (Chapter 6) and Shells (Chapter 7). Indeed, you may wish to reference certain parts of this chapter (especially the sections on Editors and Filesystems) while building your LFS system.

Following these basic items, most people will want to at least browse through the General Libraries and Utilities part of the book. This part contains information on many items which are prerequisites for other sections of the book as well as some items (such as Programming (Chapter 12) which are useful in their own right. Note that you don't have to install all of these libraries and packages found in this part to start with, each BLFS install procedure tells you which packages it depends upon so you can choose the program you want to install and see what it needs.

Likewise, most people will probably want to look at the Connecting to a Network and Basic Networking parts. The first of these deals with connecting to the Internet or your local LAN using a variety of methods such as DHCP (Chapter 14) and Dial-Up Connections (Chapter 13). The second of these parts deals with items such as Networking Libraries (Chapter 16) and various basic networking programs and utilities.

Once you have dealt with these basics, you may wish to configure more advanced network services. These are dealt with in the Server Networking and Content Serving parts of the book. Those wanting to build servers should find enough information to give them a good starting point here. Note that Content Serving also contains information on various database packages.

The next parts of the book principally deal with desktop systems. We start with a part talking about X and Window Managers. This part also deals with some generic X-based libraries (Chapter 27). After this, KDE and gnome are given their own parts which are followed by one on X Software.

We then move on to deal with Multimedia packages. Note that many people may want to use the alsa-0.9.2 instructions from this chapter quite near the start of their BLFS journey; they are placed here simply because it is the most logical place for them.

The final part of the main BLFS book deals with Printing, Scanning and Typesetting. This is useful for most people with desktop systems and even those who are creating mainly server systems will find it useful.

Finally, the Part XIV in Beyond Linux From Scratch contain various pieces of useful information which you may need to use as a reference.

We hope you enjoy using BLFS and find it useful.


Mailing lists and archives

The linuxfromscratch.org server is hosting the following publicly accessible mailing lists:

  • blfs-support

  • blfs-dev

  • blfs-book

  • lfs-chat

  • lfs-support

  • lfs-dev

  • lfs-announce

  • lfs-book

  • lfs-security

  • alfs-discuss


blfs-support

The blfs-support list is for the BLFS Book and beyond.

It includes requests for help following the BLFS Book, requests for help with packages not (yet) in either the LFS Book or the BLFS Book, and other requests and discussion concerning software that might be installed on an LFS system.

It does not include topics such as the price of beer, what hardware to buy, or GNU versus BSD or Microsoft versus Linux flame wars. These belong on lfs-chat, and since blfs-support is high traffic, please follow this rule strictly.


blfs-dev

The blfs-dev list is for discussion of BLFS Book development.


blfs-book

The blfs-book list is used for coordinating the BLFS Book's maintenance. Traffic on it is mostly Bugzilla and CVS commit messages. It is important that all development discussion of interest to the Book's users take place on blfs-dev, not here.


lfs-chat

The lfs-chat list is the place for community chatter. It's a place where anything goes, nothing is off-topic. You can discuss the price of beer or what hardware to buy. Even GNU versus BSD and Microsoft versus Linux flame wars are okay in lfs-chat.


lfs-support

The lfs-support list is the place to get help following the instructions in the LFS Book itself.

If you're finished with the LFS Book, use blfs-support instead.


lfs-dev

The lfs-dev list is for discussion of LFS Book development.


lfs-announce

The lfs-announce list is a moderated list for those who want notification of new stable releases without the higher traffic of lfs-dev.


lfs-book

The lfs-book list is used for coordinating the LFS Book's maintenance. Traffic on it is mostly Bugzilla and CVS commit messages. It is important that all development discussion of interest to the Book's users take place on lfs-dev, not here.


lfs-security

The lfs-security list discusses security issues. Vulnerability alerts, configuration questions, security related packages, and other things to do with secure systems are appropriate on this list.


alfs-discuss

The alfs-discuss list is for discussion of ALFS development.


Mail archives

All these lists are archived and can be viewed online at http://archive.linuxfromscratch.org/mail-archives or downloaded from ftp://ftp.linuxfromscratch.org/mail-archives.


How to subscribe?

Any of the above-mentioned mailing lists can be subscribed to by sending an email to listar@linuxfromscratch.org and writing subscribe listname as the subject header of the message.

Multiple lists at the same time can be subscribed to by using one email. This is done by leaving the subject blank and putting all the commands in the body of the email. The email will look like:

To: listar@linuxfromscratch.org
Subject:

subscribe lfs-dev
subscribe blfs-support
subscribe alfs-discuss

After the email is sent, the Listar program will reply with an email requesting a confirmation of the subscription request. After this confirmation email is sent back, Listar will send an email again with the message that the user has been subscribed to the list(s) along with an introduction message for that particular list.


How to unsubscribe?

To unsubscribe from a list, send an email to mailto:listar@linuxfromscratch.org and write unsubscribe listname as the subject header of the message.

Multiple lists can be unsubscribed at the same time using one email. This is done by leaving the subject header blank and putting all the commands in the body of the email. The email will look like:

To: listar@linuxfromscratch.org
Subject:

unsubscribe lfs-dev
unsubscribe blfs-support
unsubscribe alfs-discuss

After the email is sent, the Listar program will reply with an email requesting a confirmation of the unsubscription request. After this confirmation email is sent back, Listar will send an email again with the message that the user has been unsubscribed from the list(s).


Other list modes

The modes that can be set by a user require sending an email to listar@linuxfromscratch.org. The modes themselves are set by writing the appropriate commands in the subject header of the message.

As the name implies, the Set command tells what to write to set a mode. The Unset command tells what to write to unset a mode.

The listname in the example subject headers should be replaced with the listname to which the mode is going to be applied to. If more than one mode is to be set (to the same list or multiple lists) with one email, this can be done by leaving the subject header blank and writing all the commands in the body of the message instead.


Digests


Set command: set listname digest
Unset command: unset listname digest

All lists have the digest mode available which can be set after a user has subscribed to a list. Being in digest mode will cause you to stop receiving individual messages as they are posted to the list and instead receive one email a day containing all the messages posted to the list during that day.

There is a second digest mode called digest2. When a user is set to this mode he will receive the daily digests but will also continue to receive the individual messages to the lists as they are posted. To set this mode, substitute digest for digest2 in the command.


Vacation


Set command: set listname vacation
Unset command: unset listname vacation

If a user is going to be away for a while or wishes to stop receiving messages from the lists but doesn't want to unsubscribe, he can change to vacation mode. This has the same effect as unsubscribing, but without having to go through the unsubscribe process and then later through the subscribe process again.


News server

All the mailing lists hosted at linuxfromscratch.org are also accessible via the NNTP server. All messages posted to a mailing list will be copied to its correspondent newsgroup, and vice versa.

The news server can be reached at news:news.linuxfromscratch.org.


Contact information

Please direct your emails to one of the BLFS mailing lists. See Mailing lists and archives for more information on the available mailing lists.

The current BLFS maintainer is Larry Lawrence. If you need to reach Larry, send an email to larry@linuxfromscratch.org.


Asking for help and the FAQ

If you encounter a problem while using this book, and your problem is not listed in the FAQ (http://www.linuxfromscratch.org/faq), you will find that most of the people on Internet Relay Chat (IRC) and on the mailing lists are willing to help you. An overview of the LFS mailing lists can be found in Mailing lists and archives. To assist us in diagnosing and solving your problem, include as much relevant information as possible in your request for help.


Things to check prior to asking

Before asking for help, you should review the following items:

  • Is the hardware support compiled into the kernel or available as a module to the kernel. If it is a module, is it configured properly in modules.conf and has it been loaded. You should use lsmod to see if it's loaded. Check the sys.log or run modprobe <driver> to review any error message. If it loads properly, you may need to add the modprobe to your boot scripts.

  • Are your permissions properly set, especially for devices. LFS uses groups to make these settings easier, but it also adds the step of adding users to groups to allow access. A simple moduser -G audio <user> may be all that's necessary for that user to have access to the sound system. Any question that starts out with "It works as root, but not as ..." should review permissions throughly prior to asking.

  • BLFS liberally uses /opt/<package>. The main objection to this centers around the need to expand your environment variables for each package placed there (e.g. PATH=$PATH:/opt/kde/bin). In some cases, the package will walk you through the changes, but some will not. Appendix B is available to help you check.


Things to mention

Apart from a brief explanation of the problem you're having, the essential things to include in your request are:

  • the version of the book you are using (being 1.0),

  • the package or section giving you problems,

  • the exact error message or symptom you are receiving,

  • whether you have deviated from the book or LFS at all.

(Note that saying that you've deviated from the book doesn't mean that we won't help you. It'll just help us to see other possible causes of your problem.)

Expect guidance instead of specific instructions. If you are instructed to read something, please do so, it generally implies that the answer was way too obvious and that the question would not have been asked if a little research was done prior to asking. The volunteers in the mailing list prefer not to be used as an alternative to doing reasonable research on your end. In addition, the quality of your experience with BLFS is also greatly enhanced by this research, and the quality of volunteers is enhanced because they don't feel that their time has been abused, so they are far more likely to participate.

An excellent article on asking for help on the Internet in general has been written by Eric S. Raymond. It is available online at http://www.tuxedo.org/~esr/faqs/smart-questions.html. Read and follow the hints in that document and you are much more likely to get a response to start with and also to get the help you actually need.


Chapter 2. Important Information

Getting and unpacking the software

Those people who have built a LFS system will be aware of the general principles of downloading and unpacking software. We will however repeat some of that information here for those new to building their own software.

One difference from the LFS book is that we do not mirror the packages on the BLFS website. Instead, each set of installation instructions contains a URL from which you can download the package. We do however keep a selection of patches available via http/ftp. These are referenced as needed in the installation instructions.

While you can keep the source tarballs anywhere you like, we assume that you have unpacked them and unzipped any required patches into /usr/src.

We can not emphasize strongly enough that you should start from a clean source tree each time. This means that if you have had an error, it's usually best to delete the source tree and re-unpack it before trying again. This obviously doesn't apply if you're an advanced user used to hacking Makefiles and C code, but if in doubt, start from a clean tree.


Unpacking the software

If a file is tar'ed and gzip'ed, it is unpacked by running one of the following two commands, depending on the filename:

tar -xvzf filename.tar.gz
tar -xvzf filename.tgz
tar -xvzf filename.tar.Z

If a file is tar'ed and bzip2'ed, it can usually be unpacked by running:

tar -jxvf filename.tar.bz2

This applies as long as you patched tar to include the j option during your LFS install. If you didn't, you can use a slightly different method:

bzcat filename.tar.bz2 | tar -xv

Finally, you need to be able to unpack patches which are generally not tar'ed. The best way to do this is to copy the patch file to /usr/src and then to run one of the following commands depending on whether the file is .gz or .bz2:

gunzip patchname.gz
bunzip2 patchname.bz2

The /usr versus /usr/local debate

Should I install XXX in /usr or /usr/local?

This is a question without an obvious answer for an LFS based system.

In traditional unix systems, /usr usually contains files that come with the system distribution, and the /usr/local tree is free for the local administrator to add things to. The only really hard and fast rule is that unix distributions should not touch /usr/local, except perhaps for creating the basic directories within it.

With Linux distributions, like Red Hat, Debian etc. a possible rule is that /usr is managed by the distribution's package system and /usr/local is not. This way the package manager's database knows about every file within /usr.

LFS users build their own system and so deciding where the system ends and local files begin is not straightforward. So the choice should be made in order to make things easier to administer. There are several reasons for dividing files between /usr and /usr/local.

  • On a network of several machines all running LFS, or mixed LFS and other Linux distributions, /usr/local could be used to hold packages that are common between all the computers in the network. It can be NFS mounted or mirrored from a single server. Here local indicates local to the site.

  • On a network of several computers all running an identical LFS system /usr/local could hold packages that are different between the machines. In this case local refers to the individual computers.

  • Even on a single computer /usr/local can be useful if you have several distributions installed simultaneously, and want a place to put packages that will be the same on all of them.

  • Or you might regularly rebuild your LFS, but want a place to put files that you don't want to rebuild each time. This way you can wipe the LFS filesystem and start from a clean partition every time without losing everything.

Some people ask why not use your own directory tree, e.g. /usr/site rather than /usr/local?

There is nothing stopping you, many sites do make their own trees, however it makes installing new software more difficult. Automatic installers often look for dependencies in /usr and /usr/local, and if the file it is looking for is in /usr/site instead, the installer will probably fail unless you specifically tell it where to look.

What is the BLFS position on this?

All of the BLFS instructions install programs in /usr unless specifically stated otherwise. There are examples where some files are placed in the /usr/local hierarchy but these are documented and are generally for a good reason. These exceptions should be well documented in the book. If you think you have found one which isn't please tell us!


Using BLFS bootscripts

The scripts included for packages such as gpm-1.20.1 and alsa-0.9.2 are based around the template supplied with the lfs-bootscripts package from version 3.2 and later of the LFS book. Note that this is lfs-bootscripts-1.6 and later (the old numbering changed as of LFS-3.2). The scripts won't work with versions of LFS before 3.2 because of a change in their organization with the new scripts. However, it should be trivial to adapt the scripts if needed for older LFS versions.


Going Beyond BLFS

The packages that are installed in this book are only the tip of the iceberg. We hope that the experience you gained with the LFS book and the BLFS book will give you the background needed to compile, install and configure packages that are not included in this book.

If you are in search of a package that is not in the book, the following are different ways you can search for the concerned package.

Some general hints on handling new packages:

  • Many of the newer packages follow the ./configure && make && make install dance routine. Help on the options accepted by configure can be obtained via the command ./configure --help.

  • Most of the packages contain documentation on compiling and installing the package. Some of the documents are excellent, some not so excellent. Check out the homepage of the package for any additional and updated hints for compiling and configuring the package.

  • If you are having a problem compiling the package, try searching the lfs archives at http://search.linuxfromscratch.org/ for the error or if that fails try searching google. If everything else fails, try the blfs support mailing-list/news-server.

Tip: If you have found a package that is only available in .deb or .rpm format, there are two small scripts rpm2targz and deb2targz that are available at http://www.linuxfromscratch.org/~tushar/downloads/ to convert the archives into a simple tar.gz format.

II. Post LFS Configuration and Extra Software


Chapter 3. After LFS Configuration Issues

The intention of LFS is to provide a basic system which you can build upon. There are several things which many people wonder about to do with tidying up their system once they have done the base install. We hope to cover these issues in this chapter.

Most people coming from a Windows background to Linux find the concept of text-only configuration files slightly strange. In Linux, just about all configuration is done via text files. The majority of these files can be found in the /etc hierarchy. There are often graphical configuration programs available for different subsystems but these are mostly simply pretty frontends to the process of editing the file. The advantage of text-only configuration is that you can edit parameters using your favorite text editor, whether that be vim, emacs or anything else.


/etc/issue (Customizing your logon)

When you first boot up your new LFS system, the logon screen will be nice and plain (as it should be in a bare-bones system). Many people however, will want their system to display some information in the logon message. This can be accomplished using the file /etc/issue.

The /etc/issue file is a plain text file which will also accept certain Escape sequences (see below) in order to insert information about the system. There is also the file issue.net which can be used when logging on remotely. SSH however, will only use it if you set the option in the configuration file and will also not interpret the escape sequences as shown below.

One of the most common things which people want to do is to clear the screen at each logon. The easiest way of doing that is to put a "clear" escape into /etc/issue. A simple way of doing this is to do clear > /etc/issue. This will insert the relevant escape code into the start of the /etc/issue file. Note that if you do this, when you edit the file, you should leave the ^[c character on the first line alone.

The following escapes are recognized by agetty (the program which usually parses /etc/issue). This information is from man agetty where you can find extra information about the logon process.

The issue file can contain certain escape codes to display various information. All escape codes consist of a backslash (\) immediately followed by one of the letters explained below (so \d in /etc/issue would insert the current date).

b   Insert the baudrate of the current line.
d   Insert the current date.
s   Insert the system name, the name of the operating system.
l   Insert the name of the current tty line.
m   Insert the architecture identifier of the machine, e.g. i486
n   Insert the nodename of the machine, also known as the hostname.
o   Insert the domainname of the machine.
r   Insert the release number of the kernel, e.g. 2.4.16.
t   Insert the current time.
u   Insert the number of current users logged in.
U   Insert the string "1 user" or "<n> users" where <n> is the
    number of current users logged in.
v   Insert the version of the OS, e.g. the build-date etc.


The Bash Shell Startup Files

The shell program /bin/bash (hereafter referred to as just "the shell") uses a collection of startup files to help create an environment to run in. Each file has a specific use and may affect login and interactive environments differently.

An interactive login shell is started after a successful login by /bin/login by reading the /etc/passwd file. An interactive non-login shell is started at the command line (e.g. [prompt]$/bin/bash). A non-interactive shell is usually present when a shell script is running. It is non-interactive because it is processing a script and not waiting for user input between commands.

For more information see info bash -- Nodes: Bash Startup Files and Interactive Shells

The following files are needed to make sure that the correct environment is read for each of the ways the shell can be invoked: /etc/profile, /etc/bashrc, ~/.bash_profile, and ~/.bashrc. The file ~/.bash_logout is not used for an invocation of the shell. It is read by the shell when a user logouts of the system. The files /etc/profile and ~/.bash_profile are read when the shell is invoked as a interactive login shell. The file ~/.bashrc is read when the shell is invoked as an interactive non-login shell.

Here is a base /etc/profile. Comments in the file should explain everything you need. For more information on the escape sequences you can use for your prompt (e.g. the PS1 environment variable) see info bash -- Node: Printing a Prompt.

# Begin /etc/profile
# Written for Beyond Linux From Scratch
# by James Robertson <jameswrobertson@earthlink.net>

# System wide environment variables and startup programs.

# System wide aliases and functions should go in /etc/bashrc.  Personal
# environment variables and startup programs should go into
# ~/.bash_profile.  Personal aliases and functions should go into
# ~/.bashrc.

# Function to help us manage paths
pathman () {
	if ! echo $PATH | /bin/egrep -q "(^|:)$1($|:)" ; then
		if [ "$2" = "last" ] ; then
			PATH=$PATH:$1
		else
			PATH=$1:$PATH
		fi
	fi
}

# Add to the standard path.
if [ $(id -u) = 0 ] ; then
	if [ -d "/usr/local/sbin" ] ; then
		pathman /usr/local/sbin last
	fi
fi

if [ $(id -u) != 0 ] ; then
	if [ -d "/usr/local/bin" ] ; then
		pathman /usr/local/bin last
	fi
fi

if [ -d "/usr/X11R6/bin" ] ; then
	pathman /usr/X11R6/bin last
fi

# Setup some environment variables.
HISTSIZE=1000
PS1="[\u@\h \w]\\$ "

# Setup the INPUTRC environment variable.
if [ -z "$INPUTRC" -a ! -f "$HOME/.inputrc" ] ; then
	INPUTRC=/etc/inputrc
fi

# Setup for /bin/ls to support color, the alias is in /etc/bashrc.
if [ -f "/etc/dircolors" ] ; then
	eval $(dircolors -b /etc/dircolors)

	if [ -f "$HOME/.dircolors" ] ; then
		eval $(dircolors -b $HOME/.dircolors)
	fi
fi

export PATH HISTSIZE PS1 LS_COLORS INPUTRC

# End /etc/profile

Here is a base /etc/bashrc. Comments in the file should explain everything you need.

# Begin /etc/bashrc 
# Written for Beyond Linux From Scratch 
# by James Robertson <jameswrobertson@earthlink.net>

# System wide aliases and functions.

# System wide environment variables and startup programs should go into
# /etc/profile.  Personal environment variables and startup programs
# should go into ~/.bash_profile.  Personal aliases and functions should
# go into ~/.bashrc

# By default we want the umask to get set.
# Even for non-interactive and non-login shells.
if [ "$(id -gn)" = "$(id -un)" -a $(id -u) -gt 99 ] ; then
	umask 002
else
	umask 022
fi

# Provides a colored /bin/ls command.  Used in conjunction with code in
# /etc/profile.
alias ls='ls --color=auto'

# End /etc/bashrc

Here is a base ~/.bash_profile. Comments in the file should explain everything you need.

# Begin ~/.bash_profile
# Written for Beyond Linux From Scratch
# by James Robertson <jameswrobertson@earthlink.net>

# Personal environment variables and startup programs.

# Personal aliases and functions should go in ~/.bashrc.  System wide
# environment variables and startup programs are in /etc/profile.
# System wide aliases and functions are in /etc/bashrc.

if [ -f "$HOME/.bashrc" ] ; then
	source $HOME/.bashrc
fi

if [ -d "$HOME/bin" ] ; then
	pathman $HOME/bin last
fi

export PATH 

# End ~/.bash_profile

Here is a base ~/.bashrc. Comments in the file should explain everything you need.

# Begin ~/.bashrc
# Written for Beyond Linux From Scratch
# by James Robertson <jameswrobertson@earthlink.net>

# Personal aliases and functions.

# Personal environment variables and startup programs should go in
# ~/.bash_profile.  System wide environment variables and startup
# programs are in /etc/profile.  System wide aliases and functions are
# in /etc/bashrc. 

if [ -f "/etc/bashrc" ] ; then
	source /etc/bashrc
fi

# End ~/.bashrc

Here is a base ~/.bash_logout. Comments in the file should explain everything you need. You will notice that the base ~/.bash_logout does not include a clear command. This is because the clear is handled in the /etc/issue file.

# Begin ~/.bash_logout
# Written for Beyond Linux From Scratch
# by James Robertson <jameswrobertson@earthlink.net>

# Personal items to perform on logout.

# End ~/.bash_logout

If you want to use the /etc/dircolors or ~/.dircolors files called from /etc/profile, then run the following: /bin/dircolors -p > /etc/dircolors or /bin/dircolors -p > ~/.dircolors respectively. The file in the /etc directory should be used for global settings and if one exists in your home directory then it will overwrite the global settings. It might be a good idea to create a base .dircolors file and place it in the /etc/skel directory for new users.

Ian Macdonald has written an excellent collection of tips and tricks to enhance your shell environment. You can read it online at http://www.caliban.org/bash/index.shtml


/etc/inputrc

Inputrc deals with the mapping of the keyboard for certain situations. This file is the start-up file used by readline - the input related library used by Bash and most other shells.

For more information see info bash -- Node: Readline Init file as well as info readline. There is a lot that can be done with this one rc file.

The following is a base /etc/inputrc along with comments to explain what the various options do.

Please note that comments can not be on the same line as commands in inputrc.

# Begin /etc/inputrc

# Make sure we don't output everything on the 1 line
set horizontal-scroll-mode Off

# Enable 8bit input
set meta-flag On 
set input-meta On

# Turns off 8th bit stripping
set convert-meta Off

# Keep the 8th bit for display
set output-meta On

# none, visible or audible
set bell-style none

# All of the following map the escape sequence of the 
# value contained inside the 1st argument to the 
# readline specific functions

"\eOd": backward-word
"\eOc": forward-word

# for linux console
"\e[1~": beginning-of-line
"\e[4~": end-of-line
"\e[5~": beginning-of-history
"\e[6~": end-of-history
"\e[3~": delete-char
"\e[2~": quoted-insert

# for xterm
"\eOH": beginning-of-line
"\eOF": end-of-line

# End /etc/inputrc

Global values are set in /etc/inputrc. Personal user values as are set in ~/.inputrc. The ~/.inputrc file will override the global settings file. The previous page sets up Bash to use /etc/inputrc by default. If you want your system to use both, it might be a good idea to place a default .inputrc into the /etc/skel directory for use with new users.


Random number generation

The Linux kernel supplies a random number generator which is accessed through /dev/random and /dev/urandom. Programs that utilize the random and urandom devices, such as OpenSSH, will benefit from these instructions.

When a Linux system starts up without much operator interaction, the entropy pool, data used to compute a random number, may be in a fairly predictable state. This creates the real possibility that the number generated at startup may always be the same. In order to counteract this effect, you should carry the entropy pool information across your shut-downs and start-ups. The following init.d script and links will perform this function for you automatically.

cat > /etc/rc.d/init.d/random << "EOF"

#!/bin/sh
# Begin $rc_base/init.d/random

# Based on sysklogd script from LFS-3.1 and earlier.
# Rewritten by Gerard Beekmans  - gerard@linuxfromscratch.org
# Random script elements by Larry Lawrence

source /etc/sysconfig/rc
source $rc_functions

case "$1" in
        start)
                echo "Initializing kernel random number generator..."
                if [ -f /var/tmp/random-seed ]; then
	                cat /var/tmp/random-seed >/dev/urandom
		fi
		dd if=/dev/urandom of=/var/tmp/random-seed count=1 &>/dev/null
		evaluate_retval
		;;
		
	stop)
		echo "Saving random seed..."
		dd if=/dev/urandom of=/var/tmp/random-seed count=1 &>/dev/null
		evaluate_retval
		;;

        *)
                echo "Usage: $0 {start|stop}"
                exit 1
                ;;
esac

# End $rc_base/init.d/random
EOF
chmod 755 /etc/rc.d/init.d/random

Create the symbolic links to this file in the relevant rc.d directories with the following commands:
cd /etc/rc.d/init.d &&
ln -sf ../init.d/random ../rc0.d/K45random &&
ln -sf ../init.d/random ../rc2.d/S25random &&
ln -sf ../init.d/random ../rc3.d/S25random &&
ln -sf ../init.d/random ../rc4.d/S25random &&
ln -sf ../init.d/random ../rc5.d/S25random &&
ln -sf ../init.d/random ../rc6.d/K45random


/etc/vimrc, ~/.vimrc

The LFS book installs vim as its editor. At this point we should state that there are a lot of different editors out there including emacs, nano, joe and many more. Anyone who has been around the Internet (especially usenet) for a short time will certainly have observed at least one flame war, usually involving vim and emacs users!

The LFS book gives a basic vimrc file. Here, we attempt to enhance this file. At startup, vim reads /etc/vimrc and ~/.vimrc (i.e., the global vimrc and the user-specific one.). Note that this is only true if you compiled vim using LFS-3.1 onwards. Prior to this, the global vimrc was /usr/share/vim/vimrc.

Here is an example of a slightly expanded vimrc:

" Begin .vimrc

set nocompatible
set bs=2
set columns=80
set background=dark
set tabstop=8
set wrapmargin=8
set nobk
syntax on
set ruler
set noexpandtab

" End .vimrc

A FAQ on the lfs lists regards the comment tags in vimrc. Note that they are " instead of the more usual # or //. This is correct, the syntax for vimrc is slightly unusual.

We'll run through a quick explanation of what each of the options in this example file means here:

  • set nocompatible : This option stops vim from behaving in a strongly vi-compatible way. It should be at the start of any vimrc file as it can affect lots of other options which you may want to override.

  • set bs=2 : This influences the behavior of the backspace option. It is fairly complex so see :help 'bs' for more details.

  • set columns=80 : This simply sets the number of columns used on the screen.

  • set background=dark : This tells vim to use colors which look good on a dark background.

  • set tabstop=8 : The number of spaces which a tabstop takes.

  • set wrapmargin=8 : This is the number of characters from the right window border where wrapping starts.

  • set nobk : This stops vim from creating a backup before overwriting a file.

  • syntax on : Enables vim's syntax highlighting.

  • set ruler : This makes vim show the current row and column at the bottom right of the screen.

  • set noexpandtab : This makes vim insert tabs as tab characters instead of as a set of spaces.

More information on the many vim options can be found by reading the help inside vim itself. Do this by typing :help in vim to get the general help, or by typing :help usr_toc.txt to view the User Manual Table of Contents.


Creating a custom bootdisk

How to create a decent bootdisk

The intent here is to create a "rescue bootdisk" that will load enough 'linux' to enable you to do rescue operations. With what is presented here you will be able to do file manipulation, mounting and unmounting, and other tasks. This however is not the limit. The minimal disk is described here, and you can add anything you can fit on the floppy.

Boot disk/Rescue Disk

First we will create a loopback file to build our rescue disk image on, next we'll make a file system on the image file, then we'll use 'mount' to mount the file as a regular disk, allowing us to read and write files from the loopback file. The following commands will build us a 4 MB image.

dd if=/dev/zero of=/tmp/rfloppy bs=1k count=4096 &&
mke2fs -m 0 -N 2000 /tmp/rfloppy &&
mount -o loop /tmp/rfloppy /mnt/loop1 &&
rmdir /mnt/loop1/lost+found/

Now that we have a file mounted and usable, let's prepare it to be filled with useful material. Since this is only a rescue floppy we'll only need to set up the minimum directories.

mkdir /mnt/loop1/{dev,proc,etc,sbin,bin,lib,mnt,usr,var}

Next, we will set up the device files. I use devfs on my system, so the following command works well, as I only have the devices I use anyway. If you used MAKEDEV to create your devices, you'll want to trim the /mnt/loop1/dev directory to reclaim the inode space wasted by all of the devices in the dev directory you don't use.

cp -dpR /dev/* /mnt/loop1/dev

Now to tend to the /etc directory. To start, all we will do is use the passwd and group file that worked for our static chroot environment when we built LFS. We'll also copy the startup scripts over and a few other files that serve well as starting points.

cp -ax /etc/rc* /mnt/loop1/etc
cp -ax /etc/fstab /mnt/loop1/etc
echo "root:x:0:0:root:/root:/bin/bash" > /mnt/loop1/etc/passwd
cat > /mnt/loop1/etc/group << "EOF"
root:x:0:
bin:x:1:
sys:x:2:
kmem:x:3:
tty:x:4:
tape:x:5:
daemon:x:6:
floppy:x:7:
disk:x:8:
lp:x:9:
dialout:x:10:
audio:x:11:
EOF

To prevent automatic mounting of hard drive partitions, make sure to add the noauto option in their fstab entry. Also, add the following entries to the /mnt/loop1/etc/fstab to assist with mounting our floppy and the ram image

/dev/ram0       /               ext2    defaults
/dev/fd0        /               ext2    defaults

Next, we will install busybox onto the image. Busybox incorporates many of the unix functions into a single small executable file.

make &&
make PREFIX=/mnt/loop1 install &&
cp -ax /var/utmp /mnt/loop1/var &&
mkdir /mnt/loop1/var/log

Also, keeping in mind your space limitations, copy any other binaries and libraries you need to the image. Use the ldd command to see which libraries you will need to copy over for any executables.

Now, since I use devfs to create devices on the fly and free up precious inodes on the floppy, we'll also install devfsd to facilitate the devices that busybox expects to find.

mv GNUmakefile Makefile &&
make &&
make PREFIX=/mnt/loop1 install &&
cp /lib/libc.so.6 /lib/ld-linux.so.2 /lib/libdl.so.2 /tmp &/&
strip --strip-deb /tmp/ld-linux.so.2 /tmp/libc.so.6 /tmp/libdl.so.2 &&
mv /tmp/ld-linux.so.2 /tmp/libc.so.6 /tmp/libdl.so.2 /mnt/loop1/lib/

We will also need to set up an rc script to handle the devfsd startup. Put this in /mnt/loop1/etc/init.d/rcS.

#!/bin/sh
mount -t devfs devfs /dev
/sbin/devfsd /dev

Next create your compressed root filesystem. We use -9 with gzip to make the smallest possible compressed image.

umount /mnt/loop1 && dd if=/tmp/rfloppy bs=1k | gzip -v9 > rootfs.gz
ls -l rootfs.gz to make sure it will fit on the diskette.

Make a custom kernel that is optimized for size. Include only those features you will need to rescue your system. no sense in building in support for things like xfree86 dri, etc, as most rescues are performed from the command prompt.

dd if=rescueimg of=/dev/floppy/0 bs=1k
        429+1 records in
        429+1 records out
rdev /dev/floppy/0 /dev/floppy/0
rdev -R /dev/floppy/0 0

In this example the rescueimage(KERNEL) was 429+1 blocks in size. We will remember this for the next command. We now write the root file system right after the kernel on the floppy by doing 16384+429+1= 16814.

rdev -r /dev/floppy/0 16814
dd if=rootfs.gz of=/dev/floppy/0 bs=1k seek=430

In this command we use seek to find the end of the kernel (429+1) and write the root file system to the floppy.


/etc/skel

The /etc/skel directory is quite simple to setup and use. It provides a way to make sure that all new users on your LFS system begin with the same settings. The /etc/skel directory is used by the /usr/sbin/useradd program.

For more information see man useradd.

To get started create a /etc/skel directory. Creating the directory as root is the best way to go. Next copy any files into /etc/skel that you want every new user to have placed in their home drive. Examples include .bash_profile, .bashrc, .bash_logout, dircolors, .inputrc and .vimrc.

When creating a new user with /usr/sbin/useradd use the -m parameter. For example:

useradd -m -s/bin/bash jwrober

The /usr/sbin/useradd program uses a collection of default values. It will read them from the /etc/default/useradd file if it exists. If the file does not exist, then it uses some internal defaults. They can be found by running /usr/sbin/useradd -D.

To change these values to something new, create a base /etc/default/useradd file with the same values as the output of /usr/sbin/useradd -D. Here is a sample.

# Begin /etc/default/useradd

GROUP=100
HOME=/home
INACTIVE=-1
EXPIRE=
SHELL=
SKEL=/etc/skel

# End /etc/default/useradd

The only thing missing from the file is a default shell. Add that by running:

/usr/sbin/useradd -D -s/bin/bash

This will set the SHELL= line to SHELL=/bin/bash. This makes it even easier to add new users to your LFS system. The /usr/sbin/useradd has many parameters that can be set in the /etc/default/useradd file. See the man page for more details.


Chapter 4. Security

Configuring shadow

Shadow's Configuration File

/etc/login.defs

Enabling MD5 Passwords

To enable MD5 Passwords, modify the line in the login.defs file that reads:
#MD5_CRYPT_ENAB no
to read:
MD5_CRYPT_ENAB yes

Passwords created after this change will be encrypted using MD5 instead of using DES encryption.


Re-installation of shadow to utilize PAM

shadow requires:
Linux_PAM-0.77

Download the patch for shadow from http://downloads.linuxfromscratch.org/blfs-patches.

Reinstall shadow by running the following commands:

patch -Np1 -i ../shadow-4.0.3.patch &&
autoconf &&
LDFLAGS="-lpam -lpam_misc" ./configure --prefix=/usr --enable-shared --with-libpam &&
make &&
make install &&
rm /bin/vipw &&
rm /bin/sg &&
mv /lib/{libmisc.*a,libshadow.*a} /usr/lib &&
mv /lib/{libmisc.so,libshadow.so} /usr/lib &&
ln -sf ../../lib/libshadow.so.0 /usr/lib/libshadow.so &&
ln -sf ../../lib/libmisc.so.0 /usr/lib/libmisc.so &&
cp debian/securetty /etc/securetty


Command explanations

cp debian/securetty /etc/securetty : This command sets the tty's that allow logins through PAM.


Configuring PAM to work with shadow

Config files

/etc/pam.d/login, /etc/pam.d/passwd, /etc/pam.d/su, /etc/pam.d/shadow, /etc/pam.d/useradd


Configuration Information

Add the following PAM configuration files to /etc/pam.d (or add them to /etc/pam.conf with the additional field for the program).

cat > /etc/pam.d/login << "EOF"
# Begin /etc/pam.d/login

auth        requisite      pam_securetty.so
auth        requisite      pam_nologin.so
auth        required       pam_env.so
auth        required       pam_unix.so
account     required       pam_access.so
account     required       pam_unix.so
session     required       pam_motd.so
session     required       pam_limits.so
session     optional       pam_mail.so     dir=/var/mail standard
session     optional       pam_lastlog.so
session     required       pam_unix.so

# End /etc/pam.d/login
EOF
cat > /etc/pam.d/passwd << "EOF"
# Begin /etc/pam.d/passwd

password    required       pam_unix.so     md5 shadow 

# End /etc/pam.d/passwd
EOF
cat > /etc/pam.d/shadow << "EOF"
# Begin /etc/pam.d/shadow

auth        sufficient      pam_rootok.so
auth        required        pam_unix.so
account     required        pam_unix.so
session     required        pam_unix.so
password    required        pam_permit.so

# End /etc/pam.d/shadow
EOF
cat > /etc/pam.d/su << "EOF"
# Begin /etc/pam.d/su

auth        sufficient      pam_rootok.so
auth        required        pam_unix.so
account     required        pam_unix.so
session     required        pam_unix.so

# End /etc/pam.d/su
EOF
cat > /etc/pam.d/useradd << "EOF"
# Begin /etc/pam.d/useradd

auth        sufficient      pam_rootok.so
auth        required        pam_unix.so
account     required        pam_unix.so
session     required        pam_unix.so
password    required        pam_permit.so

# End /etc/pam.d/useradd
EOF
cat > /etc/pam.d/chage << "EOF"
# Begin /etc/pam.d/chage

auth        sufficient      pam_rootok.so
auth        required        pam_unix.so
account     required        pam_unix.so
session     required        pam_unix.so
password    required        pam_permit.so

# End /etc/pam.d/chage
EOF

Currently, /etc/pam.d/other is configured to allow anyone with an account on the machine to use programs that do not specifically have a configuration file of their own. After testing PAM for proper configuration, it can be changed to the following:

cat > /etc/pam.d/other << "EOF"
# Begin /etc/pam.d/other

auth        required        pam_deny.so
auth        required        pam_warn.so
account     required        pam_deny.so
session     required        pam_deny.so
password    required        pam_deny.so
password    required        pam_warn.so

# End /etc/pam.d/other
EOF

Finally, edit /etc/login.defs by adding '#' to the beginning of the following lines:

DIALUPS_CHECK_ENAB
LASTLOG_ENAB
MAIL_CHECK_ENAB
PORTTIME_CHECKS_ENAB
CONSOLE
MOTD_FILE
NOLOGINS_FILE
PASS_MIN_LEN
SU_WHEEL_ONLY
MD5_CRYPT_ENAB
CONSOLE_GROUPS
ENVIRON_FILE

This stops login from performing these functions, as they will now be performed by PAM modules.


iptables-1.2.7a

The next part of this chapter deals with firewalling. The principle firewalling tool for Linux, as of the 2.4 kernel series, is iptables. It replaces ipchains from the 2.2 series and ipfwadm from the 2.0 series. You will need to install iptables if you intend on using any form of firewalling.


Introduction to iptables

Download location (HTTP):       http://www.iptables.org/files/iptables-1.2.7a.tar.bz2
Download location (FTP):        ftp://ftp.netfilter.org/pub/iptables/iptables-1.2.7a.tar.bz2
Version used:			1.2.7a
Package size:			115 KB
Estimated Disk space required:	2.4 MB

To use firewalling, as well as installing iptables, you will need to configure the relevant options into your kernel. This is discussed in the next part of this chapter - getting a firewalling-enabled Kernel.

If you intend to use IPv6 you might consider extending the kernel by running make patch-o-matic in the top-level directory of the sources of iptables. If you are going to do this, on a freshly untarred kernel, you need to run yes "" | make config && make dep first because otherwise the patch-o-matic command is likely to fail while setting up some dependencies.

If you are going to patch the kernel, you need to do it before you compile iptables, because during the compilation, the kernel source tree is checked (if it is available at /usr/src/linux to see which features are available. Support will only be compiled into iptables for the features recognized at compile-time. Applying a kernel patch may result in errors, often because the hooks for the patches have changed or because the runme script doesn't recognize that a patch has already been incorporated.

Note that for most people, patching the kernel is unnecessary. With the later 2.4.x kernels, most functionality is already available and those who need to patch it are generally those who need a specific feature; if you don't know why you need to patch the kernel, you're unlikely to need to!


Installation of iptables

Install iptables by running the following commands:

make PREFIX=/usr &&
make PREFIX=/usr install


Command explanations

PREFIX=/usr : Compiles and installs iptables into the /usr hierarchy instead of /usr/local.


Contents

The iptables-package contains iptables, ip6tables and some libraries.


Description

iptables

iptables is used to set up, maintain, and inspect the tables of IP packet filter rules in the Linux kernel.


iptables-save, ~-restore

These are used to save and to restore your elaborated set of chains and rules. Until iptables-1.2.5 they were declared experimental.


ip6tables

This is the same as iptables but for use with IPv6. As of v1.2.5, it is not as complete as the standard IPv4 version, especially with regard to some of the modules.


libip*.so

These are various modules (implemented as dynamic libraries) which extend the core functionality of iptables.


Setting up a network firewall

Before you read this part of the chapter, note that we assume that you have already installed iptables as described in the previous section.


Introduction to Firewalling

The general purpose of a firewall is to protect a network against malicious access by using a single machine as a firewall. This does imply that the firewall is to be considered a single point of failure, but it can make the administrators life a lot easier.

In a perfect world where you knew that every daemon or service on every machine was perfectly configured and was immune to, e.g., buffer-overflows and any other imaginable problem regarding its security, and where you trusted every user accessing your services to aim no harm, you wouldn't need to do firewalling! In the real world however, daemons may be misconfigured, exploits against essential services are freely available, you may wish to choose which services are accessible by certain machines, you may wish to limit which machines or applications are allowed to have internet access, or you may simply not trust some of your apps or users. In these situations you might benefit by using a firewall.

Don't assume however, that having a firewall makes careful configuration redundant, nor that it makes any negligent misconfiguration harmless, nor that it prevents anyone from exploiting a service you intentionally offer but haven't recently updated or patched after an exploit went public. Despite having a firewall, you need to keep applications and daemons on your system well-configured and up-to-date; a firewall is not a cure-all!


Meaning of the word firewall.

The word firewall can have several different meanings.


Personal Firewall

This is a setup or program, for Windows commercially sold by companies such as Symantec, of which they claim or pretend that it secures a home or desktop-pc with internet access. This topic is highly relevant for users who do not know the ways their computers might be accessed via the internet and how to disable these, especially if they are always online and if they are connected via broadband links.


Masquerading Router

This is a box placed between the internet and an intranet. To minimize the risk of compromising the firewall itself it should generally have only one role, that of protecting the intranet. Although not completely riskless, the tasks of doing the routing and eventually IP masquerading[1] are commonly considered harmless.


BusyBox

This is often an old box you may have retired and nearly forgotten, performing masquerading or routing functions, but offering a bunch of services, e.g., web-cache, mail, etc. This may be very commonly used for home networks, but can definitely not to be considered as secure anymore because the combining of server and router on one machine raises the complexity of the setup.


Firewall with a demilitarized zone [not further described here]

This box performs masquerading or routing, but grants public access to some branch of your network which, because of public IP's and a physically separated structure, is neither considered to be part of the inter- nor intranet. These servers are those which must be easily accessible from both the inter- and intranet. The firewall protects them all.


Packetfilter / partly accessible net [partly described here, see BusyBox]

Doing routing or masquerading, but permitting only selected services to be accessible, sometimes only by selected internal users or boxes; mostly used in highly secure business contexts, sometimes by distrusting employers. This was the common configuration of a firewall at the time of the Linux 2.2 kernel. It's still possible to configure a firewall this way, but it makes the rules quite complex and lengthy.


Disclaimer

NEITHER THE AUTHOR NOR ANY OF THE LINUXFROMSCRATCH TEAM ARE RESPONSIBLE FOR ANY DAMAGES INCURRED DUE TO ACTIONS TAKEN BASED ON THIS DOCUMENT.

This document is meant as an introduction to how to setup a firewall - it is not a complete guide to securing systems. Firewalling is a complex issue that requires careful configuration. The scripts quoted here are simply intended to give examples as to how firewalling works, they are not intended to fit into any imaginable configuration and may not prevent any imaginable attack.

The purpose of this text is simply to give you a hint on how to get started with firewalling.

Customization of these scripts for your specific situation will be necessary for an optimal configuration, but you should make a serious study of the iptables documentation and firewalling in general before hacking away. Have a look at the list of Links for further reading at the end of this section for more details. Here you will find a list of URLs that contain quite comprehensive information about building your own firewall.


Getting a firewalling-enabled Kernel

If you want your Linux-Box to do firewalling you must first ensure that your kernel has been compiled with the relevant options turned on [2].

How to configure your kernel, with enabling the options to be either compiled into the kernel or as modules, depends on your personal preferences and experience. Note, that for the quoted scripts it is assumed that the modules need to be loaded at first.

Table 4-1. Essential config-options for a firewalling-enabled Kernel

Networking options:Network packet filtering =CONFIG_NETFILTER
 Unix domain sockets =CONFIG_UNIX
 IP: TCP/IP networking =CONFIG_INET
 IP: advanced router =CONFIG_IP_ADVANCED_ROUTER
 IP: verbose route monitoring =CONFIG_IP_ROUTE_VERBOSE
 IP: TCP Explicit Congestion Notification support =CONFIG_INET_ECN
 IP: TCP syncookie support =CONFIG_SYN_COOKIES
  IP: Netfilter Configuration:every option=CONFIG_IP_NF_*
 WITHOUT:

ipchains (2.2-style) support ipfw-adm (2.0-style) support

w\CONFIG_IP_NF_COMPAT_*
 Fast switchingMake sure to disable it because it would setup a bypass around your firewalling-rules.w\CONFIG_NET_FASTROUTE

Now you can start to build your Firewall

Personal Firewall

A Personal Firewall is supposed to let you access the all services offered on the internet, but keep your box secure and your data private.

Below is a slightly modified version of Rusty Russell's recommendation from the Linux 2.4 Packet Filtering HOWTO:

cat > /etc/rc.d/init.d/firewall << "EOF"
#!/bin/sh

# Begin $rc_base/init.d/firewall

# Insert connection-tracking modules (not needed if built into the kernel).
modprobe ip_tables
modprobe iptable_filter
modprobe ip_conntrack
modprobe ip_conntrack_ftp
modprobe ipt_state
modprobe ipt_LOG

# allow local-only connections
iptables -A INPUT  -i lo -j ACCEPT
# free output on any interface to any ip for any service (equal to -P ACCEPT)
iptables -A OUTPUT -j ACCEPT

# permit answers on already established connections
# and permit new connections related to established ones (eg active-ftp)
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

# Log everything else:  What's Windows' latest exploitable vulnerability?
iptables -A INPUT -j LOG --log-prefix "FIREWALL:INPUT "

# set a sane policy:    everything not accepted > /dev/null
iptables -P INPUT    DROP
iptables -P FORWARD  DROP
iptables -P OUTPUT   DROP

# be verbose on dynamic ip-addresses     (not needed in case of static IP)
echo 2 > /proc/sys/net/ipv4/ip_dynaddr

# disable ExplicitCongestionNotification - too many routers are still ignorant
echo 0 > /proc/sys/net/ipv4/tcp_ecn

# End $rc_base/init.d/firewall
EOF

His script is quite simple, it drops all traffic coming in into your computer that wasn't initiated from your box, but as long as you are simply surfing the internet you are unlikely to exceed its limits.

If you frequently encounter certain delays at accessing ftp-servers, please have a look at BusyBox - example no. 4.

Even if you have daemons / services running on your box, these should be inaccessible everywhere but from your box itself. If you want to allow access to services on your machine, such as ssh or pinging, take a look at BusyBox.


Masquerading Router

A true Firewall has two interfaces, one connected to an intranet, in this example, eth0, and one connected to the internet, here, ppp0. To provide the maximum security against the box itself being broken into, make sure that there are no servers running on it, especially not X11 et al. And, as a general principle, the box itself should not access any untrusted service[3].

cat > /etc/rc.d/init.d/firewall << "EOF"
#!/bin/sh

# Begin $rc_base/init.d/firewall

echo
echo "You're using the example-config for a setup of a firewall"
echo "from the firewalling-hint written for LinuxFromScratch."
echo "This example is far from being complete, it is only meant"
echo "to be a reference."
echo "Firewall security is a complex issue, that exceeds the scope"
echo "of the quoted configuration rules."
echo "You can find some quite comprehensive information"
echo "about firewalling in Chapter 4 of the BLFS book."
echo "http://beyond.linuxfromscratch.org/"
echo

# Insert iptables modules (not needed if built into the kernel).

modprobe ip_tables
modprobe iptable_filter
modprobe ip_conntrack
modprobe ip_conntrack_ftp
modprobe ipt_state
modprobe iptable_nat
modprobe ip_nat_ftp
modprobe ipt_MASQUERADE
modprobe ipt_LOG
modprobe ipt_REJECT

# allow local-only connections
iptables -A INPUT  -i lo -j ACCEPT
iptables -A OUTPUT -o lo -j ACCEPT

# allow forwarding
iptables -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A FORWARD -m state --state NEW -i ! ppp+	 -j ACCEPT

# do masquerading    (not needed if intranet is not using private ip-addresses)
iptables -t nat -A POSTROUTING -o ppp+ -j MASQUERADE

# Log everything for debugging (last of all rules, but before DROP/REJECT)
iptables -A INPUT   -j LOG --log-prefix "FIREWALL:INPUT  "
iptables -A FORWARD -j LOG --log-prefix "FIREWALL:FORWARD"
iptables -A OUTPUT  -j LOG --log-prefix "FIREWALL:OUTPUT "

# set a sane policy
iptables -P INPUT   DROP
iptables -P FORWARD DROP
iptables -P OUTPUT  DROP

# be verbose on dynamic ip-addresses (not needed in case of static IP)
echo 2 > /proc/sys/net/ipv4/ip_dynaddr

# disable ExplicitCongestionNotification
echo 0 > /proc/sys/net/ipv4/tcp_ecn

# activate TCPsyncookies
echo 1 > /proc/sys/net/ipv4/tcp_syncookies

# activate Route-Verification = IP-Spoofing_protection
for f in /proc/sys/net/ipv4/conf/*/rp_filter; do
	echo 1 > $f
done

# activate IP-Forwarding 
echo 1 > /proc/sys/net/ipv4/ip_forward
EOF

With this script your intranet should be sufficiently secure against external attacks: no one should be able to setup a new connection to any internal service and, if it's masqueraded, it s even invisible; furthermore, your firewall should be nearly immune because there are no services running that a cracker could attack.

Note: if the interface you're connecting to the Internet doesn't connect via ppp, you will need to change ppp+ to the name of the interface which you are using. If you are using the same interface type to connect to both your intranet and the internet, you need to use the actual name of the interface such as eth0, on both interfaces.

If you need stronger security (e.g., against DOS, connection highjacking, spoofing, etc.) have a look at the list of Links for further reading at the end of this section.


BusyBox

This scenario isn't too different from (Masquerading Router), but in this case you want to offer some services to your intranet. Examples of this can be when you want to admin your box from another host on your intranet or use it as a proxy or a name server. Note: Outlining a true concept howto protect a server that offers services on the internet goes far beyond the scope of this document, see Disclaimer.

Be cautious. Every service you offer and have enabled makes your setup more complex and your box less secure: You induce the risks of misconfigured services or running a service with an exploitable bug, both risks that a firewall principally should be immune of. See the introduction to Masquerading Router for some more details.

If the services you'd like to offer do not need to access the internet themselves, like internal-only samba- or name-servers, it's quite simple and should still be acceptable from a security standpoint. Just add the following lines before the logging-rules into the script.
iptables -A INPUT	-i ! ppp+				-j ACCEPT
iptables -A OUTPUT	-o ! ppp+				-j ACCEPT

If your daemons have to access the web themselves, like squid would need to, you could open OUTPUT generally and restrict INPUT.
iptables -A INPUT	-m state --state ESTABLISHED,RELATED	-j ACCEPT
iptables -A OUTPUT						-j ACCEPT

However, it is generally not advisable to leave OUTPUT unrestricted: you lose any control on trojans who'd like to "call home", and a bit of redundancy in case you've (mis-)configured a service so that it does broadcast its existence to the world.

If you prefer to have this protection, you may restrict INPUT and OUTPUT on all ports except those that it's absolutely necessary to have open. Which ports you have to open depends on your needs: mostly you will find them by looking for failed accesses in your log-files.

Have a look at the following examples:

  1. Squid is caching the web:

    iptables -A OUTPUT	-p tcp --dport 80			-j ACCEPT
    iptables -A INPUT	-p tcp --sport 80	-m state --state ESTABLISHED \
       -j ACCEPT

  2. Your caching name server (e.g., dnscache) does its lookups via udp:

    iptables -A OUTPUT	-p udp --dport 53			-j ACCEPT
    iptables -A INPUT	-p udp --sport 53	-m state --state ESTABLISHED \
       -j ACCEPT

  3. Alternatively, if you want to be able to ping your box to ensure it's still alive:

    iptables -A INPUT	-p icmp	-m icmp --icmp-type echo-request	\
       -j ACCEPT
    iptables -A OUTPUT	-p icmp	-m icmp --icmp-type echo-reply	-j ACCEPT

  4. If you are frequently accessing ftp-servers or enjoy chatting you might notice certain delays because some implementations of these daemons have the feature of querying an identd on your box for your username for logging. Although there's really no harm in this, having an identd running is not recommended because some implementations are known to be vulnerable.

    To avoid these delays you could reject the requests with a 'tcp-reset':

    iptables -A INPUT	-p tcp --dport 113			-j REJECT \
       --reject-with tcp-reset
    iptables -A OUTPUT	-p tcp --sport 113	-m state --state RELATED \
       -j ACCEPT

  5. To log and drop invalid packets, mostly harmless packets that came in after netfilter's timeout, sometimes scans:

    iptables -I INPUT 1	-p tcp	-m state --state INVALID	-j LOG \ 
       --log-prefix "FIREWALL:INVALID"
    iptables -I INPUT 2	-p tcp	-m state --state INVALID	-j DROP

  6. Anything coming from the outside should not have a private address, this is a common attack called IP-spoofing:

    iptables -t nat -A PREROUTING	-i ppp+	-s 10.0.0.0/8		-j DROP
    iptables -t nat -A PREROUTING	-i ppp+	-s 172.16.0.0/12	-j DROP
    iptables -t nat -A PREROUTING	-i ppp+	-s 192.168.0.0/16	-j DROP

  7. To simplify debugging and be fair to anyone who'd like to access a service you have disabled, purposely or by mistake, you should REJECT those packets that are dropped.

    Obviously this must be done directly after logging as the very last lines before the packets are dropped by policy:

    iptables -A INPUT						-j REJECT
    iptables -A OUTPUT		-p icmp --icmp-type 3		-j ACCEPT

These are only examples to show you some of the capabilities of the new firewalling-code in Linux-Kernel 2.4. Have a look at the man page of iptables. There you will find more of them. The port-numbers you'll need for this can be found in /etc/services, in case you didn't find them via "try'n'error" in your logfile.

If you add any of your offered or accessed services such as the above, maybe even in FORWARD and for intranet-communication, and delete the general clauses, you get an old fashioned packet filter.


Editor's Note

Finally, I'd like to remind you of one fact we must not forget: The effort spent attacking a system corresponds to the value the cracker expects to gain from it. If you are responsible for such valuable assets that you expect great effort to be made by potential crackers, you hopefully won't be in the need of this hint!

Be cautious!

    Henning Rohde

PS: And always do remember: SecureIT is not a matter of a status-quo but one of never stopping to take care!

PPS: If any of these scripts fail, please tell me. I will try to trace any faults.


Extra Information


firewall.status

If you'd like to have a look at the chains your firewall consists of and the order in which the rules take effect:

cat > /etc/rc.d/init.d/firewall.status << "EOF"
#!/bin/sh

# Begin $rc_base/init.d/firewall.status

echo "iptables.mangling:"
iptables -t mangle  -v -L -n --line-numbers

echo
echo "iptables.nat:"
iptables -t nat	    -v -L -n --line-numbers

echo
echo "iptables.filter:"
iptables	    -v -L -n --line-numbers
EOF


firewall.stop

If you need to turn firewalling off, this script will do it:

cat > /etc/rc.d/init.d/firewall.stop << "EOF"
#!/bin/sh

# Being $rc_base/init.d/firewall.stop

# deactivate IP-Forwarding 
echo 0 > /proc/sys/net/ipv4/ip_forward

iptables -Z
iptables -F
iptables -t nat         -F PREROUTING
iptables -t nat         -F OUTPUT
iptables -t nat         -F POSTROUTING
iptables -t mangle      -F PREROUTING
iptables -t mangle      -F OUTPUT
iptables -X
iptables -P INPUT       ACCEPT
iptables -P FORWARD     ACCEPT
iptables -P OUTPUT      ACCEPT
EOF


tripwire-2.3.1-2

Introduction to tripwire

Download location (HTTP):       http://telia.dl.sourceforge.net/sourceforge/tripwire/tripwire-2.3.1-2.tar.gz
Download location (FTP):        
Version used:                   2.3.1-2
Package size:                   1.5 MB
Estimated Disk space required:  63 MB

The tripwire package contains the tripwire programs used by tripwire to verify the integrity of the files on a given system.

tripwire depends on:
gcc-2.95.3

Installation of tripwire

Download the patch for tripwire config from http://downloads.linuxfromscratch.org/blfs-patches.

Install tripwire by running the following commands:

export PATH_HOLD=$PATH &&
export PATH=/opt/gcc2/bin:$PATH &&
ln -s make /usr/bin/gmake &&
cd src &&
gmake release &&
cd .. &&
cp install/install.{sh,cfg} . &&
patch -Np0 -i ../tripwire-cfg.patch &&
./install.sh &&
cp /etc/tripwire/tw.cfg /usr/sbin &&
cp policy/*.txt /usr/share/doc/tripwire

Reverse the modifications made above:
rm /usr/bin/gmake &&
export PATH=$PATH_HOLD


Command explanations

ln -s make /usr/bin/gmake : The reason we create the gmake symlink is that tripwire will only install if the symlink is present. It may be safely removed after installation.

gmake release : This command creates the tripwire binaries.

cp install.{sh,cfg} . : These are copied to the main tripwire directory so that the script can be used to install the package.

cp policy/*.txt /usr/share/doc/tripwire : This command installs the documentation.


Configuring tripwire

Config files

/etc/tripwire


Configuration Information

Tripwire uses a policy file to determine which files integrity are checked. The default policy file (twpol.txt found in /etc/tripwire/) is for a default installation of Redhat 7.0 and is woefully outdated.

Policy files are also a custom thing and should be tailored to each individual distro and/or installation. Some custom policy files can be found below:

http://home.iprimus.com.au/glombowski/blfs/twpol-all.txt
Checks integrity of all files
http://home.iprimus.com.au/glombowski/blfs/twpol-lfs.txt
Custom policy file for Base LFS 3.0 system
http://home.iprimus.com.au/glombowski/blfs/twpol-suse7.2.txt
Custom policy file for SuSE 7.2 system

Download the custom policy file you'd like to try, copy it into /etc/tripwire/, and use it instead of twpol.txt. It is, however, recommended that you make your own policy file. Get ideas from the examples above and read /usr/share/doc/tripwire/policyguide.txt. twpol.txt is a good policy file for beginners as it will note any changes to the filesystem and can even be used as an annoying way of keeping track of changes for uninstallation of software.

After your policy file has been transferred to /etc/tripwire/ you may begin the configuration steps:

twadmin -m P /etc/tripwire/twpol.txt &&
tripwire -m i

During configuration tripwire will create 2 keys: a site key and a local key which will be stored in /etc/tripwire/.


Usage Information

To use tripwire after this and run a report using the following command:
tripwire -m c > /etc/tripwire/report.txt

View the output to check the integrity of your files. An automatic integrity report can be produced by using fcron.

Please note that after you run an integrity check, you must check the report or email and then modify the tripwire database of the files on your system so that tripwire will not continually notify you that files you intentionally changed are a security violation. To do this you must first ls /var/lib/tripwire/report/ and note the name of the newest file which starts with linux- and ends in .twr. This encrypted file was created during the last report creation and is needed to update the tripwire database of your system. Then, type in the following command making the appropriate substitutions for '?':
tripwire -m u -r /var/lib/tripwire/report/linux-???????-??????.twr

You will be placed into vim with a copy of the report in front of you. If all the changes were good, then just type :x and after entering your local key, the database will be updated. If there are files which you still want to be warned about, please remove the x before the filename in the report and type :x.


Changing the Policy File

If you are unhappy with your policy file and would like to modify it or use a new one, modify the policy file and then execute the following commands:
twadmin -m P /etc/tripwire/twpol.txt &&
tripwire -m i


Contents

The tripwire package contains siggen, tripwire, twadmin and twprint.


Linux_PAM-0.77

Introduction to Linux_PAM

Download location (HTTP):       http://www.kernel.org/pub/linux/libs/pam/pre/library/Linux-PAM-0.77.tar.bz2
Download location (FTP):        
Version used:                   0.77
Package size:                   332 KB
Estimated Disk space required:  4.1 MB

The Linux_PAM package contains Pluggable Authentication Modules. This is useful to enable the local system administrator to choose how applications authenticate users.

Linux_PAM will utilize:
cracklib

Installation of Linux_PAM

Install Linux_PAM by running the following commands:

./configure --enable-static-libpam --with-mailspool=/var/mail \
--enable-read-both-confs --sysconfdir=/etc &&
make &&
make install &&
mv /lib/libpam.a /lib/libpam_misc.a /lib/libpamc.a /usr/lib &&
ln -sf ../../lib/libpam.so.0.77 /usr/lib/libpam.so &&
ln -sf ../../lib/libpam_misc.so.0.77 /usr/lib/libpam_misc.so &&
ln -sf ../../lib/libpamc.so.0.77 /usr/lib/libpamc.so


Command explanations

--enable-static-libpam : This switch builds static PAM libraries as well as the dynamic libraries.

--with-mailspool=/var/mail : This switch makes the mailspool directory FHS compliant.

--enable-read-both-confs : This switch lets the local administrator choose which configuration file setup to use.

mv /lib/libpam.a /lib/libpam_misc.a /lib/libpamc.a /usr/lib : This command moves the static libraries to /usr/lib to comply with FHS.


Configuring Linux_PAM

Config files

/etc/pam.d or /etc/pam.conf


Configuration Information

Configuration information is placed in /etc/pam.d or /etc/pam.conf depending on the application that is using PAM. Below are example files of each type:

# Begin /etc/pam.d/other

auth            required        pam_unix.so     nullok
account         required        pam_unix.so
session         required        pam_unix.so
password        required        pam_unix.so     nullok

# End /etc/pam.d/other

# Begin /etc/pam.conf

other           auth            required        pam_unix.so     nullok
other           account         required        pam_unix.so
other           session         required        pam_unix.so
other           password        required        pam_unix.so     nullok

# End /etc/pam.conf

The pam man page provides a good starting point for descriptions of fields and allowable entries. The Linux-PAM guide for system administrators and two PAM hints located at http://hints.linuxfromscratch.org are also available for further reading.


Contents

The Linux_PAM package contains unix-chkpwd and libpam libraries.


Description

unix-chkpwd

No description available.


libpam libraries

libpam libraries provide the interfaces between applications and the PAM modules.


Chapter 5. Filesystems

Journaling filesystems reduce the time needed to recover a filesystem that was not unmounted properly. While this can be extremely important in reducing downtime for servers, it has also become popular for desktop environments. This chapter contains a variety of journaling filesystems.


Ext3

Ext3 is a journaling filesystem that is an extension to the ext2 filesystem. It is backward compatible with ext2 and the conversion from ext2 to ext3 is trivial.

You don't need to install anything to use ext3, all the required packages are available with a bare LFS system.

When building the kernel, ensure that you have compiled in ext3 support. If you want your root partition to be ext3, then compile the ext3 support in the kernel, else you may compile it as a module. Recompile the kernel if needed.

Edit your /etc/fstab. For each partition that you want to convert into ext3, edit the entry so that it looks similar to the following line.

/dev/hdXX /mnt_point ext3 defaults 1 0

In the above line, replace /dev/hdXX by the partition (e.g. /dev/hda2), /mnt_point by the mount point (e.g. /home). The 0 in the last field ensures that the partition will not be checked for consistency during bootup by the checkfs script. You may replace the ext3 fs type in the above by auto if you want to ensure that the partition is mounted if you accidentally skip enabling the ext3 support in the kernel.

For each partition that you have converted to ext3 in /etc/fstab, enable the journal for the partition by running the following command.

tune2fs -j /dev/hdXX

Remount the concerned partitions, or simply reboot if you have recompiled the kernel to enable ext3 support.

More information is available at http://www.zip.com.au/~akpm/linux/ext3/ext3-usage.html


reiserfs-3.6.5

Introduction to reiserfsutils

Download location (HTTP):       http://ftp.namesys.com/pub/reiserfsprogs/reiserfsprogs-3.6.5.tar.gz
Download location (FTP):        ftp://ftp.namesys.com/pub/reiserfsprogs/reiserfsprogs-3.6.5.tar.gz
Version used:                   3.6.5
Package size:                   356 KB
Estimated Disk space required:  3.6 MB
Estimated build time:           0.43 SBU

Additional Download:
flush_buffers bug patch

The reiserfsutils package contains various utilities for use with the reiser filesystem.


Installation of reiserfs

Install reiserfs by running the following commands:

patch -Np1 -i ../reiserfsprogs-3.6.5-flush_buffers-bug.patch &&
./configure --prefix=/usr --sbindir=/sbin &&
make &&
make install &&
ln -sf reiserfsck /sbin/fsck.reiserfs &&
ln -sf mkreiserfs /sbin/mkfs.reiserfs


Command explanations

--prefix=/usr : This ensures that the manual pages are installed in the correct location while still installing the programs in /sbin as they should be.

--sbindir=/sbin : This ensures that the reiserfs utilities are installed in /sbin as they should be.


Contents

reiserfsprogs contains debugreiserfs, mkreiserfs, reiserfsck, resize_reiserfs and unpack.


Description

debugreiserfs

debugreiserfs can sometimes help to solve problems with reiserfs filesystems. If it is called without options it prints the super block of any reiserfs filesystem found on the device.


mkreiserfs

mkreiserfs creates a reiserfs file system.


reiserfsck

reiserfsck checks a reiserfs file system.


reiserfstune

reiserfstune is used for tuning the ReiserFS journal. WARNING: Don't use this utility without first reading the man page thoroughly.


resize_reiserfs

resize_reiserfs is used to resize an unmounted reiserfs file system.


unpack

The unpack utility can be used to dump reiserfs filesystem information to files for debugging, much like debugreiserfs.


xfsprogs-2.0.3

XFS kernel patch

Download location (HTTP):       
Download location (FTP):        ftp://oss.sgi.com/projects/xfs/download/patches/2.4.20/xfs-2.4.20-all-i386.bz2
Version used:                   2.4.20
Package size:                   840 KB
Estimated Disk space required:  Varies with options

The XFS kernel patch must be applied to use XFS filesystems


Patching Linux-2.4.20 for XFS

Build an XFS-enabled Linux 2.4.20 kernel with the following commands:

cd /usr/src/linux &&
make mrproper &&
bzcat ../xfs-2.4.20-all-i386.bz2 | patch -Np1 &&
make menuconfig &&
make dep &&
make bzImage &&
make modules &&
make modules_install &&
cp arch/i386/boot/bzImage /boot/vmlinuz-xfs &&
cp System.map /boot/System.map-xfs


Introduction to XFS

Download location (HTTP):       
Download location (FTP):        ftp://oss.sgi.com/projects/xfs/download/Release-1.1/cmd_tars/xfsprogs-2.0.3.src.tar.gz
Version used:                   2.0.3
Package size:                   740 KB
Estimated Disk space required:  31 MB

The xfsprogs package contains administration and debugging tools for the XFS filesystem.


Installation of xfsprogs

Install xfsprogs by running the following commands:

./configure &&
make &&
make install


Contents

xfsprogs contains xfs_growfs, xfs_admin, xfs_freeze, xfs_mkfile, xfs_check, xfs_bmap, xfs_rtcp, xfs_repair, xfs_db, xfs_logprint, xfs_ncheck, mkfs.xfs and fsck.xfs.


Description

xfsgrowfs

xfsgrowfs expands an XFS filesystem.


xfs_admin

xfs_admin changes the parameters of an XFS filesystem.


xfs_freeze

xfs_freeze suspends access to an XFS filesystem.


xfs_mkfile

xfs_mkfile creates an XFS file, padded with zeroes by default.


xfs_check

xfs_check checks XFS filesystem consistency.


xfs_bmap

xfs_bmap prints block mapping for an XFS file.


xfs_rtcp

xfs_rtcp copies a file to the real-time partition on an XFS filesystem.


xfs_repair

xfs_repair repairs corrupt or damaged XFS filesystems.


xfs_db

xfs_db is used to debug an XFS filesystem.


xfs_logprint

xfs_logprint prints the log of an XFS filesystem.


xfs_ncheck

xfs_ncheck generates pathnames from inode numbers for and XFS filesystem.


mkfs.xfs

mkfs.xfs constructs an XFS filesystem.


fsck.xfs

fsck.xfs simply exits with a zero status, since XFS partitions are checked at mount time.


Chapter 6. Editors

From a developer's point of view, this is the only program that really matters. We spend so much time using it that it is critical that we are comfortable with the one we use. This chapter is referenced in the LFS book for those wishing to use other editors on their LFS system. We also have the opportunity to show how some LFS installed programs benefit from being recompiled after GUI libraries have been installed.


vim-6.1

Introduction to Vim

Download location (HTTP):       
Download location (FTP):        ftp://ftp.nluug.nl/pub/editors/vim/unix/vim-6.1.tar.bz2
Version used:                   6.1
Package size:                   2.8 MB
Estimated Disk space required:  27 MB
Estimated build time:           1.93 SBU

The vim package, which is an abbreviation for VI IMproved, contains a vi clone with extra features as compared to the original vi.

vim depends on:
xfree86-4.3.0
vim will utilize:
GLib-1.2.10, GTK+-1.2.10 and lesstif-0.93.36

The default LFS instructions install LFS as a part of the base system, but owing to the lack of X libraries during the base install, vim needs to be recompiled once X in installed to enable the GUI mode. There is no need for special instructions since X support is automatically detected.

Download the patch to make the location of configuration files FHS compliant from http://downloads.linuxfromscratch.org/blfs-patches.


Installation of vim

Install vim by running the following commands:

patch -Np1 -i ../vim-6.1-fhs-compliant-vimrc.patch &&
./configure --prefix=/usr \
   --with-features=huge &&
make &&
make install


Command explanations

patch -Np1 -i ../vim-6.1-fhs-compliant-vimrc... : Changes the location of vimrc and gvimrc from /usr/share to the more appropriate /etc.

--with-features=huge : Enables all the additional features available in vim.


Contents

The vim package contains eview, evim, ex, gview, gvim, gvimdiff, rgview, rgvim, rview, rvim, view, vim, vimdiff, vimtutor and xxd. Except for vimtutor and xxd, all the other commands are symlinks to vim and start vim with different options. vimtutor is a tool to learn the various vim commands and xxd is a command used to create hex dumps.


emacs-21.3

Introduction to emacs

Download location (HTTP):       http://ftp.gnu.org/pub/gnu/emacs/emacs-21.3.tar.gz
Download location (FTP):        ftp://ftp.gnu.org/pub/gnu/emacs/emacs-21.3.tar.gz
Version used:                   21.3
Package size:                   20 MB
Estimated Disk space required:  92.5 MB
Estimated build time:           8.40 SBU

The emacs package contains emacs, the extensible, customizable, self-documenting real-time display editor.

emacs will utilize:
xfree86-4.3.0, libjpeg-6b, libpng-1.2.5, libtiff-3.5.7 and libungif-4.1.0b1

Installation of emacs

Install emacs by running the following commands:

./configure --prefix=/usr \
   --libexecdir=/usr/sbin &&
make bootstrap &&
make install


Contents

The emacs package contains emacs, b2m, ctags, ebrowse, emacsclient, etags, grep-changelog, rcs-checkin, cvt-mail, digest-doc, emacsserver, fakemail, hexl, movemail, profile, rcs2log, sorted-doc, vcdiff and yow.


Description

emacs

The editor proper.


b2m

b2m is a program to convert mail files from RMAIL format to Unix `mbox' format.


ctags

ctags creates cross-reference tagfile database files for source code.


ebrowse

ebrowse permits browsing of C++ class hierarchies from with emacs.


emacsclient

emacsclient attaches an emacs session to an already running emacsserver instance.


etags

etags is another program to generate source code cross-reference tagfiles.


grep-changelog

grep-changelog prints entries in ChangeLogs matching various criteria.


rcs-checkin

rcs-checkin is a shell script used to check files into RCS.


cvt-mail

cvt-mail converts old style goslings emacs mail directories into gnu-rmail format.


digest-doc

digest-doc is a filter to create nroff output for man pages.


emacsserver

emacserver allows other applications/shells to access an already running emacs instance and share buffers with it.


fakemail

fakemail is a sendmail-like interface to /bin/mail.


hexl

hexl converts files for editing with emacs hexl-mode binary file editing mode.


movemail

movemail provide access to POP3 mailboxes.


profile

profile generates periodic events for profiling of Emacs Lisp code.


rcs2log

rcs2log generates change log prefixes from RCS files.


sorted-doc

sorted-doc is a filter to generate texinfo files.


vcdiff

vcdiff compares SCCS files.


yow

yow prints a quotation from Zippy the Pinhead.


nano-1.2.0

Introduction to nano

Download location (HTTP):       http://ftp.gnu.org/gnu/nano/nano-1.2.0.tar.gz
Download location (FTP):        ftp://ftp.gnu.org/gnu/nano/nano-1.2.0.tar.gz
Version used:                   1.2.0
Package size:                   880 KB
Estimated Disk space required:  3.8 MB
Estimated build time:           0.13 SBU

The nano package contains nano, a small, simple text editor which aims to replace Pico, the default editor in the Pine package.


Installation of nano

Install nano by running the following commands:

./configure --prefix=/usr --enable-color \
--enable-multibuffer --enable-nanorc &&
make &&
make install


Contents

The nano package contains nano.


Description

nano

nano is a small, simple text editor which aims to replace Pico, the default editor in the Pine package.


joe-2.9.7

Introduction to joe

Download location (HTTP):       http://unc.dl.sourceforge.net/sourceforge/joe-editor/joe-2.9.7.tgz
Download location (FTP):        
Version used:                   2.9.7
Package size:                   272 KB
Estimated Disk space required:  2.2 MB

Joe is a small text editor capable of emulating WordStar, Pico, and Emacs.


Installation of joe

Install joe by running the following commands:

./configure --sysconfdir=/etc --prefix=/usr &&
make &&
make install


Configuration files

Joe can make use of several configuration files. Information about these files may be found in the joe man page. These files are /etc/jmacsrc, /etc/joerc, /etc/jpicorc, /etc/jstarrc, and /etc/rjoerc. Joe can also make use of ~/.joerc, which may be copied from /etc/joerc and customized for each user's taste.


Contents

The joe package contains jmacs, joe, jpico, jstar, rjoe and termidx.


Description

jmacs

jmacs is a symbolic link to joe used to launch Emacs emulation mode.


joe

joe is a small text editor capable of emulating WordStar, Pico, and Emacs.


jpico

jpico is a symbolic link to joe used to launch Pico emulation mode.


jstar

jstar is a symbolic link to joe used to launch WordStar emulation mode.


rjoe

rjoe is a symbolic link to joe that restricts joe to editing only files which are specified on the command line.


termidx

termidx is a program used by joe to generate the termcap index file.


Chapter 7. Shells

We are all familiar with the Bourne Again SHell, but there are two other user interfaces that are considered useful modern shells -- the Berkeley UNIX C shell and the Korn shell. This chapter installs packages compatible with these additional shell types.


tcsh-6.12

Introduction to tcsh

Download location (HTTP):       
Download location (FTP):        ftp://ftp.funet.fi/pub/unix/shells/tcsh/tcsh-6.12.00.tar.gz
Version used:                   6.12
Package size:                   804 KB
Estimated Disk space required:  5.9 MB
Estimated build time:           0.77 SBU

The tcsh package contains "an enhanced but completely compatible version of the Berkeley UNIX C shell (csh)". This is useful as an alternative shell for those who prefer C syntax to that of the bash shell, and also because some programs require the C shell in order to install.


Installation of tcsh

Install tcsh by running the following commands:

./configure --prefix=/usr &&
make &&
make install &&
cp tcsh.man /usr/share/man/man1/tcsh.1 &&
ln -s /usr/bin/tcsh /bin/csh


Command explanations

cp tcsh.man /usr/share/man/man1/tcsh.1 : tcsh doesn't install its man page correctly, so we do it manually.

ln -s /usr/bin/tcsh /bin/csh : The FHS states that if there is a C shell installed, there should be a symlink from /bin/csh to it. This creates that symlink.


Configuring tcsh

Config files

There are numerous configuration files for the C shell. Examples of these are /etc/csh.cshrc, /etc/csh.login, ~/.tcshrc, ~/.cshrc, ~/.history, ~/.login, ~/.cshdirs, /etc/csh.logout, ~/.logout and ~/.logout. More information on these files can be found in the tcsh(1) man page.


Contents

The tcsh package contains tcsh.


Description

tcsh

tcsh is an enhanced but completely compatible version of the Berkeley UNIX C shell, csh. It is usable as both an interactive shell and a script processor.


zsh-4.0.6

Introduction to zsh

Download location (HTTP):       http://www.zsh.org/pub/zsh-4.0.6.tar.bz2
Download location (FTP):        ftp://ftp.zsh.org/zsh/zsh-4.0.6.tar.bz2
Version used:                   4.0.6
Package size:                   1.6 MB
Estimated Disk space required:  14 MB
Estimated build time:           2.31 SBU

The zsh package contains the zsh shell. zsh is a command interpreter (shell) usable as an interactive login shell and as a shell script command processor. Of the standard shells, zsh most closely resembles ksh but includes many enhancements.


Installation of zsh

Install zsh by running the following commands:

./configure --prefix=/usr &&
make &&
make install


Configuring zsh

Config files

There are a whole host of configuration files for zsh including /etc/zshenv, /etc/zprofile, /etc/zshrc, /etc/zlogin and /etc/zlogout. You can find more information on these in the zsh(1) and related man pages.


Contents

The zsh package contains zsh.


Description

zsh

zsh is a shell which has command line editing, built-in spelling correction, programmable command completion, shell functions (with autoloading), a history mechanism, and a host of other features.

III. General Libraries and Utilities


Chapter 8. General Libraries

Libraries contain code which is often required by more than one program. This has the advantage that each program doesn't need to duplicate code (and risk introducing bugs), it just has to call functions from the libraries installed on the system. The most obvious example of a set of libraries is glibc which is installed during the LFS book. This contains all of the C library functions which programs use.

There are two types of library, static and shared. Shared libraries (usually libXXX.so) are loaded into memory from the shared copy at runtime (hence the name). Static libraries (libXXX.a) are actually linked into the program executable file itself, thus making the program file larger. Quite often, you will find both static and shared copies of the same library on your system.

Generally, you only need to install libraries when you are installing software which requires functionality which they supply. In the BLFS book, each package is listed with a list of (known) dependencies. Thus, you can figure out which libraries you need to have before installing that program. If you are installing something without using BLFS instructions, usually the README or INSTALL file will contain details of the programs requirements.

There are certain libraries which nearly everyone will need at some point. In this chapter we list these and some others and explain why you may want to install them.


openssl-0.9.7a

Introduction to openssl

Download location (HTTP):       http://www.openssl.org/source/openssl-0.9.7a.tar.gz
Download location (FTP):        ftp://ftp.openssl.org/source/openssl-0.9.7a.tar.gz
Version used:                   0.9.7a
Package size:                   2.7 MB
Estimated Disk space required:  25.4 MB

The openssl package contains c_rehash, openssl, libcrypto and libssl. These are useful for providing cryptography functions to other packages, notably OpenSSH and web browsers (for accessing secure https sites).


Installation of openssl

Install openssl by running the following commands:

Note: GCC issues a warning on every compilation because the Configure command uses -m486 instead of -march=i486. To fix this behavior, use linux-ppro, linux-pentium or linux-k6 (depending on your architecture), instead of linux-elf.

sed 's/^passwd/openssl-passwd/' doc/apps/passwd.pod \
> doc/apps/openssl-passwd.pod &&
rm doc/apps/passwd.pod &&
./Configure linux-elf  --openssldir=/etc/ssl --prefix=/usr shared &&
make MANDIR=/usr/share/man &&
make MANDIR=/usr/share/man install &&
rmdir /etc/ssl/lib


Command explanations

rm doc/apps/passwd.pod : We do this because otherwise openssl installs its passwd man page over the existing system one which isn't what we want.

make MANDIR=/usr/share/man
make MANDIR=/usr/share/man install
These commands install openssl with the man pages in /usr/share/man instead of the default which is /etc/ssl/man.

rmdir /etc/ssl/lib : This is simply a tidy-up command. For some reason, the openssl install routine creates the /etc/ssl/lib directory even though the libraries have been installed in /usr/lib. We remove it to keep things nice and tidy!


Configuring Openssl

Config files

/etc/ssl/openssl.cnf


Configuration Information

Most people who just want to use openssl for providing functions to other programs such as OpenSSH and web browsers won't need to worry about configuring openssl. Configuring openssl is an advanced topic and so those who do would normally be expected to either know how to do it or to be able to find out how to do it.


Contents

The openssl package contains c_rehash, openssl, libcrypto libraries and libssl libraries.


Description

c_rehash

c_rehash is a perl script that scans all files in a directory and adds symbolic links to their hash values.


openssl

The openssl program is a command line tool for using the various cryptography functions of OpenSSL's crypto library from the shell. It can be used for various functions which are documented in man 1 openssl.


libcrypto

The OpenSSL crypto library implements a wide range of cryptographic algorithms used in various Internet standards. The services provided by this library are used by the OpenSSL implementations of SSL, TLS and S/MIME, and they have also been used to implement SSH, OpenPGP, and other cryptographic standards.


libssl

The OpenSSL ssl library implements the Secure Sockets Layer (SSL v2/v3) and Transport Layer Security (TLS v1) protocols. It provides a rich API, documentation on which can be found by running man 3 ssl.


pcre-4.1

Introduction to pcre

Download location (HTTP):       
Download location (FTP):        ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/pcre-4.1.tar.bz2
Version used:                   4.1
Package size:                   332 KB
Estimated Disk space required:  2.8 MB
Estimated build time:           0.19 SBU

The pcre package contains perl compatible regular expression libraries. These are useful for implementing regular expression pattern matching using the same syntax and semantics as Perl 5.


Installation of pcre

Install pcre by running the following commands:

./configure --prefix=/usr &&
make &&
make install


Contents

The pcre package contains the libpcre libraries, pcregrep, pcretest and pcre-config.


Description

pcregrep

pcregrep is a grep that understands perl compatible regular expressions.


pcretest

pcretest can test your perl compatible regular expression.


pcre-config

pcre-config is used during the compile process of programs linking to this library.


popt-1.7

Introduction to popt

Download location (HTTP):       
Download location (FTP):        ftp://ftp.rpm.org/pub/rpm/dist/rpm-4.1.x/popt-1.7.tar.gz
Version used:                   1.7
Package size:                   200 KB
Estimated Disk space required:  4 MB
Estimated build time:           0.10 SBU

The popt package contains the popt libraries which are used by some programs to parse command line options.


Installation of popt

Install popt by running the following commands:

./configure --prefix=/usr &&
make &&
make install


Configuring popt

Configuration Information

As with most libraries, there is no configuration to do, save that the library directory i.e. /usr/lib or /usr/local/lib should appear in /etc/ld.so.conf so that ldd can find the shared libraries. After checking that this is the case, /sbin/ldconfig should be run while logged in as root.


Contents

The popt package contains the libpopt libraries.


Description

popt library

The popt library is used to parse command line options.


slang-1.4.9

Introduction to slang

Download location (HTTP):       http://ftp.jedsoft.org/pub/davis/slang/v1.4/slang-1.4.9.tar.bz2
Download location (FTP):        ftp://ftp.jedsoft.org/pub/davis/slang/v1.4/slang-1.4.9.tar.bz2
Version used:                   1.4.9
Package size:                   624 KB
Estimated Disk space required:  4.7 MB

The slang package contains the slang library, which is used to create robust, multi-platform software.


Installation of slang

Install slang by running the following commands:

./configure --prefix=/usr &&
make &&
make install &&
make elf &&
make install-elf &&
make install-links &&
chmod 755 /usr/lib/libslang.so.1.4.9


Configuring slang

Configuration Information

As with most libraries, there is no configuration to do, save that the library directory i.e. /usr/lib or /usr/local/lib should appear in /etc/ld.so.conf so that ldd can find the shared libraries. After checking that this is the case, /sbin/ldconfig should be run while logged in as root.


Contents

The slang package contains the libslang libraries.


fam-2.6.9

Introduction to fam

Download location (HTTP):       http://oss.sgi.com/projects/fam/download/fam-2.6.9.tar.gz
Download location (FTP):        ftp://oss.sgi.com/projects/fam/download/fam-2.6.9.tar.gz
Version used:                   2.6.9
Package size:                   300 KB
Estimated Disk space required:  350 KB

The fam package contains a File Alteration Monitor.

fam depends on:
portmap-5

Installation of fam

Download the fam patches from http://downloads.linuxfromscratch.org/blfs-patches.

Install fam by running the following commands:

Note: You will get warnings about make install being unable to merge entries in /etc/rpc. These can be ignored, along with any IMON or inetd.conf warnings, as we will be configuring these files after installation.

patch -Np1 -i ../fam-dnotify.patch &&
patch -Np1 -i ../fam-gcc3.patch &&
./configure --prefix=/usr --sysconfdir=/etc &&
make &&
make install


Command explanations

patch -Np1 -i ../fam-dnotify.patch : This patch causes fam to use the Linux kernel dnotify mechanism to inform the calling process of file modifications, rather than polling the file system for.

patch -Np1 -i ../fam-gcc3.patch : This patch is necessary to get fam to compile with gcc-3.2.


Configuring fam

Config files

/etc/rpc, /etc/fam.conf, /etc/inetd.conf, /etc/xinetd.d/fam or /etc/xinetd.conf


Configuration Information

Configuring the file alteration monitor.

If you use inetd, add the fam entry to /etc/inetd.conf with the following command:

echo "sgi_fam/1-2 stream  rpc/tcp wait root /usr/bin/fam fam" >> /etc/inetd.conf

If you use xinetd, add an entry to /etc/xinetd.conf with the following command (be sure the "nogroup" group exists):

cat >> /etc/xinetd.conf << "EOF"
    # description: FAM - file alteration monitor
    service sgi_fam
    {
        type            = RPC UNLISTED
        socket_type     = stream
        user            = root
        group           = nogroup
        server          = /usr/bin/fam
        wait            = yes
        protocol        = tcp
        rpc_version     = 2
        rpc_number      = 391002
    }
EOF


Contents

The fam package contains fam and libfam libraries.


Description

fam

fam is the file alteration monitor.


libxml-1.8.17

Introduction to libxml

Download location (HTTP):       http://ftp.gnome.org/pub/GNOME/sources/libxml/1.8/libxml-1.8.17.tar.bz2
Download location (FTP):        ftp://ftp.xmlsoft.org/libxml-1.8.17.tar.gz
Version used:                   1.8.17
Package size:                   973 KB
Estimated Disk space required:  11 MB

The libxml package contains the libxml libraries. These are useful for parsing XML files.


Installation of libxml

Install libxml by running the following commands:

./configure --prefix=/usr &&
make &&
make install


Configuring libxml

Configuration Information

As with most libraries, there is no configuration to do, save that the library directory i.e. /usr/lib or /usr/local/lib should appear in /etc/ld.so.conf so that ldd can find the shared libraries. After checking that this is the case, /sbin/ldconfig should be run while logged in as root.


Contents

The libxml package contains libxml libraries, xmllint and xmlcatalog.


Description

libxml libraries

libxml provides the functions for programs to parse files that use the XML format.


libxml2-2.5.6

Introduction to libxml2

Download location (HTTP):       http://ftp.gnome.org/pub/GNOME/sources/libxml2/2.5/libxml2-2.5.6.tar.bz2
Download location (FTP):        ftp://ftp.xmlsoft.org/libxml2-2.5.6.tar.gz
Version used:                   2.5.6
Package size:                   3 MB
Estimated Disk space required:  33 MB
Estimated build time:           2.35 SBU

The libxml2 package contains the libxml2 libraries. These are useful for parsing XML files.

libxml2 will utilize:
Python-2.2.2

Installation of libxml2

Install libxml2 by running the following commands:

./configure --prefix=/usr &&
make &&
make install


Contents

The libxml2 package contains libxml2 libraries, xmllint and xmlcatalog.


Description

libxml2 libraries

libxml2 provides the functions for programs to parse files that use the XML format.


xmllint

xmllint parses XML files and outputs reports (based upon options) to detect errors in XML coding.


xmlcatalog

xmlcatalog allows users to monitor and manipulate XML and SGML catalogs.


libxslt-1.0.29

Introduction to libxslt

Download location (HTTP):       http://ftp.gnome.org/pub/GNOME/sources/libxslt/1.0/libxslt-1.0.29.tar.bz2
Download location (FTP):        ftp://ftp.xmlsoft.org/libxslt-1.0.29.tar.gz
Version used:                   1.0.29
Package size:                   2.2 M
Estimated Disk space required:  22 MB
Estimated build time:           0.69 SBU

The libxslt package contains libxslt libraries. These are useful for extending libxml2 libraries to support XSLT files.

libxslt depends on:
libxml2-2.5.6

Installation of libxslt

Install libxslt by running the following commands:

./configure --prefix=/usr &&
make &&
make install


Contents

The libxslt package contains libxslt libraries, libexslt libraries and xsltproc.


Description

libxslt libraries

libxslt provides extensions to the libxml2 library to parse files that use the XSLT format.


xsltproc

xsltproc is used to apply XSLT stylesheets to XML documents.


readline-4.3

Introduction to readline

Download location (HTTP):       http://ftp.gnu.org/gnu/readline/readline-4.3.tar.gz
Download location (FTP):        ftp://ftp.gnu.org/gnu/readline/readline-4.3.tar.gz
Version used:                   4.3
Package size:                   939 KB
Estimated Disk space required:  4.9 MB

The Readline library provides a set of functions for use by applications that allow users to edit command lines as they are typed in. Both Emacs and vi editing modes are available.


Installation of readline

Install readline by running the following commands:

./configure --prefix=/usr &&
make &&
make install


Configuring readline

Configuration Information

As with most libraries, there is no configuration to do, save that the library directory i.e. /usr/lib or /usr/local/lib should appear in /etc/ld.so.conf so that ldd can find the shared libraries. After checking that this is the case, /sbin/ldconfig should be run while logged in as root.


Contents

The readline package contains the libreadline libraries and libhistory libraries.


gmp-4.1.2

Introduction to gmp

Download location (HTTP):       http://www.ibiblio.org/pub/gnu/gmp/gmp-4.1.2.tar.bz2
Download location (FTP):        ftp://ftp.gnu.org/gnu/gmp/gmp-4.1.2.tar.bz2
Version used:                   4.1.2
Package size:                   1.6 MB
Estimated Disk space required:  19.2 MB

The gmp package contains a MP library. This has useful functions for arbitrary precision arithmetic.

gmp will utilize: 
readline-4.3.

Installation of gmp

Install gmp by running the following commands:

./configure --prefix=/usr --mandir=/usr/share/man --infodir=/usr/share/info &&
make &&
make install


Contents

The gmp package contains libgmp libraries.


Description

gmp libraries

gmp libraries contains the functions to operate on signed integers, rational numbers, and floating point numbers.


gdbm-1.8.3

Introduction to gdbm

Download location (HTTP):       http://www.ibiblio.org/pub/gnu/gdbm/gdbm-1.8.3.tar.gz
Download location (FTP):        ftp://ftp.gnu.org/gnu/gdbm/gdbm-1.8.3.tar.gz
Version used:                   1.8.3
Package size:                   228 KB
Estimated Disk space required:  1.7 MB

The gdbm package contains a dbm library. This is useful for database routines that use extendible hashing.


Installation of gdbm

Install gdbm by running the following commands:

./configure --prefix=/usr --infodir=/usr/share/info --mandir=/usr/share/man &&
make &&
make BINOWN=root BINGRP=root install

In addition, you may need to install the compatibility headers for gdbm. Apache 1.3, for example, will need these headers. Install the compatibility headers by running the following command:

make BINOWN=root BINGRP=root install-compat


Command explanations

--infoprefix=/usr/share/info --mandir=/usr/share/man : These switches set the documentation directory to /usr/share instead of /usr.

BINOWN=root BINGRP=root : This command changes the file ownership to root instead of the bin user.


Contents

The gdbm package contains libgdbm libraries.


Description

gdbm libraries

gdbm libraries contain functions that perform database routines using extendible hashing.


GLib-1.2.10

Introduction to GLib

Download location (HTTP):       
Download location (FTP):        ftp://ftp.gtk.org/pub/gtk/v1.2/glib-1.2.10.tar.gz
Version used:                   1.2.10
Package size:                   412 KB
Estimated Disk space required:  7 MB
Estimated build time:           0.52 SBU

The glib package contains a low-level core library. This is useful for providing data structure handling for C, portability wrappers and interfaces for such runtime functionality as an event loop, threads, dynamic loading, and an object system.


Installation of GLib

Install glib by running the following commands:

./configure --prefix=/usr &&
make &&
make install


Contents

The glib package contains libglib-1.2 libraries.


Description

GLib libraries

GLib libraries contain a low-level core library for the Gimp Tool Kit.


GLib-2.2.1

Introduction to GLib

Download location (HTTP):       
Download location (FTP):        ftp://ftp.gtk.org/pub/gtk/v2.2/glib-2.2.1.tar.bz2
Version used:                   2.2.1
Package size:                   1.5 MB
Estimated Disk space required:  18.7 MB
Estimated build time:           0.87 SBU

The glib package contains a low-level core library. This is useful for providing data structure handling for C, portability wrappers and interfaces for such runtime functionality as an event loop, threads, dynamic loading, and an object system.

glib depends on:
pkgconfig-0.15.0
glib will utilize:
gtk-doc-1.0 and xml-dtd-4.2

Installation of GLib

Install glib by running the following commands:

./configure --prefix=/usr &&
make &&
make install


Command explanations

--enable-gtk-doc : This switch will rebuild the API documentation during the make command.


Contents

The glib package contains libglib-2.0 libraries.


Description

GLib libraries

GLib libraries contains a low-level core library for the Gimp Tool Kit.


expat-1.95.6

Introduction to expat

Download location (HTTP):       http://umn.dl.sourceforge.net/sourceforge/expat/expat-1.95.6.tar.gz
Version used:                   1.95.6
Package size:                   292 KB
Estimated Disk space required:  3.2 MB
Estimated build time:           0.25 SBU

The expat package contains a stream oriented C library for parsing XML.

Download the patch for expat from http://downloads.linuxfromscratch.org/blfs-patches.


Installation of expat

The expat.h declares XML_Status after its first use. This is corrected by the following patch:
patch -Np1 -i ../expat-1.95.6.patch

Install expat by running the following commands:

./configure --prefix=/usr &&
make &&
make install


Contents

The expat package contains the libexpat libraries and xmlwf.


Description

xmlwf

xmlwf is a non-validating utility to check whether or not XML documents are well formed.


libesmtp-0.8.12

Introduction to libesmtp-0.8.12

Download location (HTTP):       http://www.stafford.uklinux.net/libesmtp/libesmtp-1.0.tar.bz2
Download location (FTP):        
Version used:                   0.8.12
Package size:                   249 KB
Estimated Disk space required:  6.6 MB
Estimated build time:           0.25 SBU

The libesmtp package contains the libesmtp libraries which are used by some programs to manage email submission to a mail transport layer.


Installation of libesmtp

Install libesmtp by running the following commands:

./configure --prefix=/usr &&
make &&
make install


Contents

The libesmtp package contains the libesmtp library.


Description

libesmtp library

The libesmtp library is used to manage submission of electronic mail to a Mail Transport Agent.


aspell-0.50.3

Introduction to aspell-0.50.3

Download location (HTTP):       
Download location (FTP):        ftp://ftp.gnu.org/gnu/aspell/aspell-0.50.3.tar.gz
Version used:                   0.50.3
Package size:                   917 KB
Estimated Disk space required:  9.4 MB

The aspell package contains the aspell library, used to interface to spell checking libraries.


Installation of aspell

Install aspell by running the following commands:

./configure --prefix=/usr &&
make &&
make install


Configuring aspell

Configuration Information

After Aspell is installed at least one dictionary needs to be installed. You can find them at http://aspell.net/.

Install your dictionary or dictionaries by running the following commands:

./configure &&
make &&
make install


Contents

The aspell package contains the libaspell libraries.


Description

aspell library

The aspell library is a spell checking library interface.


guile-1.4.1

Introduction to Guile

Download location (HTTP):       http://ftp.gnu.org/pub/gnu/guile/guile-1.4.1.tar.gz
Download location (FTP):        ftp://ftp.gnu.org/pub/gnu/guile/guile-1.4.1.tar.gz
Version used:                   1.4.1
Package size:                   1.4 MB
Estimated Disk space required:  12 MB

The Guile package contains the Project GNU's extension language library. Guile also contains a stand alone Scheme interpreter.

Guile will utilize:
readline-4.3

Installation of Guile

Install Guile by running the following commands:

./configure --prefix=/usr &&
make &&
make install


Configuring Guile

Configuration Information

As with most libraries, there is no configuration to do, save that the library directory i.e. /usr/lib or /usr/local/lib should appear in /etc/ld.so.conf so that ldd can find the shared libraries. After checking that this is the case, /sbin/ldconfig should be run while logged in as root.


Contents

In addition to the libguile libraries, the Guile package contains guile, guile-config and guile-snarf.


Description

guile

guile is a stand-alone scheme interpreter for Guile.


guile-config

guile-config is a Guile script which provides the information necessary to link your programs against the Guile library, in much the same way pkgconfig-0.15.0 does.


guile-snarf

guile-snarf a script to parse declarations in your C code for Scheme-visible C functions, Scheme objects to be used by C code, etc.


slib-2d5

Introduction to slib2d5

Download location (HTTP):       http://www.swiss.ai.mit.edu/ftpdir/scm/slib2d5.tar.gz
Download location (FTP):        
Version used:                   2d5
Package size:                   620 KB
Estimated Disk space required:  2.9 MB

The slib package is a scheme library used with Guile.

slib depends on:
guile-1.4.1

Installation of slib

Installation of slib is merely a copy command:

cp -R slib /usr/share/guile


Contents

The slib package contains a Scheme library.


G-Wrap-1.3.4

Introduction to G-Wrap

Download location (HTTP):       http://www.gnucash.org/pub/g-wrap/source/g-wrap-1.3.4.tar.gz
Download location (FTP):        
Version used:                   1.3.4
Package size:                   400 KB
Estimated Disk space required:  4.6 MB

The G-Wrap package contains tools for exporting C libraries into Scheme interpreters.

G-Wrap depends on:
guile-1.4.1 and slib-2d5

Installation of G-Wrap

Install G-Wrap by running the following commands:

./configure --prefix=/usr &&
make &&
make install


Command explanations

--prefix=/usr : Change the g-wrap default installation directory of /usr/local.


Configuring G-Wrap

As with most libraries, there is no configuration to do, save that the library directory i.e. /usr/lib or /usr/local/lib should appear in /etc/ld.so.conf so that ldd can find the shared libraries. After checking that this is the case, /sbin/ldconfig should be run while logged in as root.


Contents

In addition to the Scheme libraries, the G-Wrap package contains g-wrap-config.


Description

g-wrap-config

g-wrap-config is a tool to generate CFLAGS for linking C code to the Scheme runtime libraries.


STLport-4.5.3

Introduction to STLport-4.5.3

Download location (HTTP):      http://www.stlport.org/archive/STLport-4.5.3.tar.gz
Download location (FTP):       
Version used:                  4.5.3
Package size:                  728 KB
Estimated Disk space required: 56 MB

STLport is a multi-platform ANSI C++ Standard Library implementation featuring advanced techniques and optimizations for maximum efficiency, exception safety and thread safety, important extensions such as hash tables, and singly-linked list.

Download the STLport patches from http://downloads.linuxfromscratch.org/blfs-patches.


Installation of STLport

Install STLport by running the following commands.

patch -Np1 -i ../STLport-4.5.3-gcc3.patch &&
patch -Np1 -i ../STLport-4.5.3-g++-inc.patch &&
GCC_VERSION=`gcc -v 2>&1 | grep "gcc version " | sed -e "s:gcc version ::"` &&
cp stlport/config/stl_gcc.h stlport/config/stl_gcc.h.orig &&
sed -e "s:@GCC_VERSION@:$GCC_VERSION:" \
stlport/config/stl_gcc.h.orig > stlport/config/stl_gcc.h &&
cd src &&
ln -sf gcc-linux.mak Makefile &&
make &&
make INSTALLDIR=/usr install


Command explanations

GCC_VERSION=... : STLport needs the location of the C++ headers, which are installed in /usr/include/c++/$GCC_VERSION if installed as per the instructions in LFS.

sed -e ... : Replace the location where STLport looks for C++ headers.

cd src : Change to the source directory.

ln -sf gcc-linux.mak Makefile : Use the appropriate makefile for our environment.


Configuring STLport

Configuration Information

As with most libraries, there is no configuration to do, save that the library directory i.e. /usr/lib or /usr/local/lib should appear in /etc/ld.so.conf so that ldd can find the shared libraries. After checking that this is the case, /sbin/ldconfig should be run while logged in as root.

You will need to reinstall STLport whenever you upgrade gcc since the STLport include files have a hard coded reference to the location where gcc includes are installed.


Contents

The STLport package contains STLport headers /usr/include/stlport and STLport dynamic and static libraries.


Chapter 9. Graphics Libraries

Depending on what your system will be used for, you may or may not require the graphics libraries. Most desktop machines will want them for use with graphical applications. Most servers on the other hand, will not require them.


lcms-1.09

Introduction to lcms

Download location (HTTP):       http://www.littlecms.com/lcms-1.09.tar.gz
Download location (FTP):        
Version used:                   1.09
Package size:                   196 KB
Estimated Disk space required:  4.9 MB
Estimated build time:           0.29 SBU

The lcms library is used by other programs to provide color management facilities.


Installation of lcms

Install lcms by running the following commands:

make &&
make install


Configuring lcms

Configuration Information

As with most libraries, there is no configuration to do, save that the library directory i.e. /usr/lib or /usr/local/lib should appear in /etc/ld.so.conf so that ldd can find the shared libraries. After checking that this is the case, /sbin/ldconfig should be run while logged in as root.


Contents

The lcms package contains the liblcms libraries.


Description

lcms library

The lcms library is used by other programs to provide color management facilities.


libjpeg-6b

Introduction to libjpeg

Download location (HTTP):       
Download location (FTP):        ftp://ftp.uu.net/graphics/jpeg/jpegsrc.v6b.tar.gz
Version used:                   6b
Package size:                   599 KB
Estimated Disk space required:  3.7 MB
Estimated build time:           0.51 SBU

The libjpeg package contains the jpeg libraries. These allow compression of image files based on the Joint Photographic Experts Group standard. It is a "lossy" compression algorithm.


Installation of libjpeg

Install libjpeg by running the following commands:

./configure --enable-static --enable-shared --prefix=/usr &&
make &&
make install


Command explanations

./configure --enable-static --enable-shared --prefix=/usr : This command tells libjpeg to build both shared and static libraries and to install them with a base of /usr.


Configuring libjpeg

Configuration Information

As with most libraries, there is no configuration to do, save that the library directory i.e. /usr/lib or /usr/local/lib should appear in /etc/ld.so.conf so that ldd can find the shared libraries. After checking that this is the case, /sbin/ldconfig should be run while logged in as root.


Contents

The libjpeg package contains cjpeg, djpeg, jpegtran, rdjpgcom, wrjpgcom and libjpeg libraries.


Description

cjpeg

cjpeg compresses image files to produce a JPEG/JFIF file on the standard output. Currently supported input file formats are: PPM (PBMPLUS color format), PGM (PBMPLUS gray-scale format), BMP, and Targa.


djpeg

djpeg decompresses image files from JPEG/JFIF format to either PPM (PBMPLUS color format), PGM (PBMPLUS gray-scale format), BMP, or Targa format.


jpegtran

jpegtran is used for lossless transformation of JPEG files.


rdjpgcom

rdjpgcom displays text comments from within a JPEG file.


wrjpgcom

wrjpgcom inserts text comments into a JPEG file.


jpeg libraries

These libraries are used by many programs for reading and writing jpeg format files.


libpng-1.2.5

Introduction to libpng

Download location (HTTP):       http://www.libpng.org/pub/png/src/libpng-1.2.5.tar.bz2
Download location (FTP):	ftp://swrinde.nde.swri.edu/pub/png/src/libpng-1.2.5.tar.gz
Version used:                   1.2.5
Package size:                   376 KB
Estimated Disk space required:  4.1 MB

The libpng package contains the libpng libraries. These are used by other programs for reading and writing png files.

Download the patch to force linking of libpng to libz from http://downloads.linuxfromscratch.org/blfs-patches.


Installation of libpng

Install libpng by running the following commands:

patch -Np0 -i ../libpng-1.2.5-lz.patch &&
make prefix=/usr \
   ZLIBINC=/usr/include ZLIBLIB=/usr/lib -f scripts/makefile.linux &&
make prefix=/usr install -f scripts/makefile.linux


Command explanations

ZLIBINC=/usr/include ZLIBLIB=/usr/lib : This forces libpng to look for the zlib includes and libraries where we have them installed.

-f scripts/makefile.linux : This points make at the Linux version of the makefile as libpng doesn't use a autoconf routine instead coming with various makefiles for different platforms.


Configuring libpng

Configuration Information

As with most libraries, there is no configuration to do, save that the library directory i.e. /usr/lib or /usr/local/lib should appear in /etc/ld.so.conf so that ldd can find the shared libraries. After checking that this is the case, /sbin/ldconfig should be run while logged in as root.


Contents

The libpng package contains libpng libraries and libpng-config.


Description

png libraries

The PNG library is a collection of routines used to create and manipulate PNG format graphics files. The PNG format was designed as a replacement for GIF and, to a lesser extent, TIFF, with many improvements and extensions and lack of patent problems.


libpng-config

libpng-config provides configuration info for libpng.


libtiff-3.5.7

Introduction to libtiff

Download location (HTTP):       
Download location (FTP):        ftp://ftp.remotesensing.org/pub/libtiff/tiff-v3.5.7.tar.gz
Version used:                   3.5.7
Package size:                   928 KB
Estimated Disk space required:  5.9 MB
Estimated build time:           0.26 SBU

The libtiff package contains the tiff libraries and associated utilities. The libraries are used by many programs for reading and writing tiff files and the utilities are useful for general work with tiff files.


Installation of libtiff

Install libtiff by running the following commands:

./configure --prefix=/usr --noninteractive \
   --with-DIR_MAN=/usr/share/man &&
make &&
make install


Command explanations

--noninteractive : This switch is used to avoid the configuration routine asking for confirmation of the directories to install to (which we pass using switches to configure anyways).

--with-DIR_MAN=/usr/share/man : This is used because despite the fact we pass --prefix=/usr, the configure routine tries to install the man pages in /usr/local/man instead of the correct place.


Configuring libtiff

Configuration Information

As with most libraries, there is no configuration to do, save that the library directory i.e. /usr/lib or /usr/local/lib should appear in /etc/ld.so.conf so that ldd can find the shared libraries. After checking that this is the case, /sbin/ldconfig should be run while logged in as root.


Contents

The libtiff package contains fax2ps, fax2tiff, gif2tiff, pal2rgb, ppm2tiff, ras2tiff, rgb2ycbcr, thumbnail, tiff2bw, tiff2ps, tiff2rgba, tiffcmp, tiffcp, tiffdither, tiffdump, tiffinfo, tiffmedian, tiffsplit and tiff libraries.


Description

fax2ps

fac2ps converts a TIFF facsimile to compressed postscript file.


fax2tiff

fax2tiff creates a TIFF Class F fax file from raw fax data.


gif2tiff

gif2tiff creates a TIFF file from a GIF87 format image file.


pal2rgb

pal2rgb converts a palette color TIFF image to a full color image.


ppm2tiff

ppm2tiff creates a TIFF file from a PPM image file.


ras2tiff

ras2tiff creates a TIFF file from a Sun rasterfile.


rgb2ycbcr

rgb2ycbcr converts non-YCbCr TIFF images to a YCbCr TIFF image.


thumbnail

thumbnail creates a TIFF file with thumbnail images.


tiff2bw

tiff2bw converts a color TIFF image to grayscale.


tiff2ps

tiff2ps converts a TIFF image to a postscript file.


tiff2rgba

No description available.


tiffcmp

tiffcmp compares two TIFF files.


tiffcp

tiffcp copies (and possibly converts) a TIFF file.


tiffdither

tiffdither converts a grayscale image to bilevel using dithering.


tiffdump

tiffdump prints verbatim information about TIFF files.


tiffinfo

tiffinfo prints information about TIFF files.


tiffmedian

tiffmedian applies the median cut algorithm to data in a TIFF file.


tiffsplit

tiffsplit splits a multi-image TIFF into single-image TIFF files.


tiff libraries

The tiff libraries are used by many programs to read and write tiff files.


libungif-4.1.0b1

Introduction to libungif

Download location (HTTP):       http://www.linuxpackages.net/packages/Slackware-8/robert/libungif-4.1.0b1/source/libungif-4.1.0b1.tar.gz
Download location (FTP):        
Version used:                   4.1.0b1
Package size:                   343 KB
Estimated Disk space required:  3.1 MB
Estimated build time:           0.24 SBU

The libungif package contains libraries for reading all gifs and writing uncompressed ones as well as programs for converting and working with gif files. The libraries are useful for any graphics program wishing to deal with gif files while the programs are useful for conversion purposes as well as cleaning up images.

The reason libungif only writes uncompressed gifs is due to a legal issue with LZW compression (which Unisys claims a patent on). Reading gifs is not a problem as the uncompression routines do not seem to be limited in this way. Note that this has in the past been disputed. The best way to avoid this whole mess is to simply use libungif for looking at gif images on the web, while in any pages which you design, use the open source png format instead (which uses, not surprisingly, the libpng library) which has no patent issues at all.


Installation of libungif

Install libungif by running the following commands:

./configure --prefix=/usr &&
make &&
make install

Note: If you get an error during the make portion compiling lib/qprintf.c, edit the file and comment out or remove line 14: #include <config.h>


Contents

The libungif package contains gif2epsn, gif2ps, gif2rgb, gifasm, gifbg, gifburst, gifclip, gifclrmp, gifcolor, gifcomb, gifcompose, giffiltr, giffix, gifflip, gifhisto, gifinfo, gifinter, gifinto, gifovly, gifpos, gifrotat, gifrsize, gifspnge, giftext, gifwedge, icon2gif, raw2gif, rgb2gif, text2gif and libungif libraries.


Description

gif2epsn

Dumps images saved as GIF files on Epson type printers.


gif2ps

Print GIF file on laser printers supporting PostScript.


gif2rgb

Convert images saved as GIF to 24-bit RGB image(s).


gifasm

assemble multiple GIFs into one, or burst a multiple-image GIF.


gifbg

Generate a single-color test pattern GIF.


gifburst

Burst a GIF image into subrectangles.


gifclip

Clip or crop a GIF image.


gifclrmp

Modify GIF image colormaps.


gifcolor

Generate color test patterns.


gifcomb

Combine 2 GIF images of exactly the same size into one.


gifcompose

Use (un)giflib tools to compose images.


giffiltr

Template code for filtering a GIF sequentially.


giffix

Clumsily attempts to fix truncated GIF images.


gifflip

Flip GIF image along X or Y axis or rotate by 90 degrees.


gifhisto

Generate color-frequency histogram from a GIF.


gifinfo

Gives information on a GIF file.


gifinter

Convert between interlaced and non interlaced images.


gifinto

End-of-pipe fitting for GIF-processing pipelines.


gifovly

Generate one composite GIF from a multiple-image GIF.


gifpos

Change a GIF's screen size or recondition it.


gifrotat

Rotate a GIF through any desired angle.


gifrsize

Resize a GIF by deletion or duplication of bits.


gifspnge

Template code for filtering a GIF with in-core operations.


giftext

Print (text only) general information about a GIF.


gifwedge

Create a test GIF image resembling a color monitor test pattern.


icon2gif

Converter/deconverter to/from an editable text format.


raw2gif

Convert raw 8-bit image data into GIF files.


rgb2gif

Convert 24 bit images to a GIF image using color quantization.


text2gif

Generate GIF images out of regular text in 8x8 font.


libmng-1.0.5

Introduction to libmng

Download location (HTTP):       http://www.mirror.ac.uk/sites/download.sourceforge.net/pub/sourceforge/libmng/libmng-1.0.5.tar.gz
Download location (FTP):        ftp://unc.dl.sf.net/pub/sourceforge/libmng/libmng-1.0.5.tar.gz
Version used:                   1.0.5
Package size:                   616 KB
Estimated Disk space required:  5.8 MB
Estimated build time:           0.93 SBU

The libmng libraries are used by programs wanting to read and write mng files which are the animation equivalents to png files.

libmng depends on: 
libjpeg-6b and lcms-1.09

Installation of libmng

Install libmng by running the following commands:

./configure --prefix=/usr --with-zlib \
   --with-jpeg --with-lcms &&
make &&
make install &&
cp doc/man/*.3 /usr/share/man/man3 &&
cp doc/man/*.5 /usr/share/man/man5


Command explanations

./configure --prefix=/usr --with-zlib \
--with-jpeg --with-lcms 
This command sets the install directory and also tells the configuration routine to look and find zlib, libjpeg and lcms.

cp doc/man/*.X /usr/share/man/manX : The install procedure doesn't properly install the man pages so we do it manually.


Contents

The libmng package contains libmng libraries.


Description

mng libraries

libmng provides functions for programs wishing to read and write mng files which are animation files without the patent problems associated with certain other formats.


imlib-1.9.14

Introduction to imlib

Download location (HTTP):       http://ftp.gnome.org/pub/GNOME/sources/imlib/1.9/imlib-1.9.14.tar.bz2
Download location (FTP):        ftp://ftp.gnome.org/pub/GNOME/sources/imlib/1.9/imlib-1.9.14.tar.bz2
Version used:                   1.9.14
Package size:                   736 KB
Estimated Disk space required:  8.6 MB

The imlib package contains image libraries. These are useful for loading, rendering and dithering a wide variety of image data formats.

imlib depends on: 
xfree86-4.3.0, libjpeg-6b, libtiff-3.5.7,
libungif-4.1.0b1, libpng-1.2.5 and GTK+-1.2.10

Installation of imlib

Install imlib by running the following commands:

CPPFLAGS=-w ./configure --prefix=/usr --sysconfdir=/etc/imlib &&
make &&
make install


Command explanations

CPPFLAGS=-w : This disables gcc-3.2.1 warnings that confuse configure.

--sysconfdir=/etc/imlib : This installs and combines the configurations files into /etc instead of /usr/etc.


Configuring imlib

Configuration Information

As with most libraries, there is no configuration to do, save that the library directory i.e. /usr/lib or /usr/local/lib should appear in /etc/ld.so.conf so that ldd can find the shared libraries. After checking that this is the case, /sbin/ldconfig should be run while logged in as root.


Contents

The imlib package contains libimlib libraries.


Description

imlib libraries

imlib provides the functions for programs to display and edit a wide variety of image data formats.


aalib-1.4rc4

Introduction to aalib

Download location (HTTP):       http://telia.dl.sourceforge.net/sourceforge/aa-project/aalib-1.4rc4.tar.gz
Download location (FTP):        ftp://ftp.sourceforge.net/pub/sourceforge/aa-project/aalib-1.4rc4.tar.gz
Version used:                   1.4rc4
Package size:                   10 KB
Estimated Disk space required:  1.2 MB
Estimated build time:           0.31 SBU

aalib is a library to render any graphic into ascii art.

aalib will utilize:
xfree86-4.3.0

Installation of aalib

Install aalib by running the following commands:

./configure --prefix=/usr && 
make &&
make install


Configuring aalib

Configuration Information

As with most libraries, there is no configuration to do, save that the library directory i.e. /usr/lib or /usr/local/lib should appear in /etc/ld.so.conf so that ldd can find the shared libraries. After checking that this is the case, /sbin/ldconfig should be run while logged in as root.


Contents

The aalib package contains the libaa libraries, aalib-config, aainfo, aatest and aasavefont.


Description

Ascii Art libraries

The Ascii Art library is a collection of routines to render any graphical input in portable format to Ascii Art. It can be used through many programs and has a very well documented api, so you can easily put it into your own programs.


aalib-config

aalib-config provides configuration info for aalib.


aainfo

aainfo provides information for your current settings related to aalib.


aatest

aatest shows the abilities of aalib in a little test.


aafire

aafire is another little toy of aalib, rendering an animated fire in Ascii Art.


aasavefont

Currently no information available.


Chapter 10. General Utilities

bc-1.06

Introduction to bc

Download location (HTTP):       http://ftp.gnu.org/gnu/bc/bc-1.06.tar.gz
Download location (FTP):        ftp://ftp.gnu.org/gnu/bc/bc-1.06.tar.gz
Version used:                   1.06
Package size:                   280 KB
Estimated Disk space required:  1.6 MB
Estimated build time:           0.07 SBU

The bc package contains bc. This is an arbitrary precision numeric processing language.

bc depends on:
readline-4.3

Installation of bc

Download the patches for bc from http://downloads.linuxfromscratch.org/blfs-patches.

Install bc by running the following commands:

patch -Np1 -i ../bc-1.06-flex-invocation.patch &&
patch -Np1 -i ../bc-1.06-info.patch &&
patch -Np1 -i ../bc-1.06-readline.patch &&
./configure --prefix=/usr --with-readline &&
make &&
make install


Contents

The bc package contains bc and dc.


Description

bc

bc is a calculator.


dc

dc is a reverse-polish calculator.


rep-gtk-0.17

Introduction to rep-gtk

Download location (HTTP):       http://telia.dl.sourceforge.net/sourceforge/rep-gtk/rep-gtk-0.17.tar.gz
Download location (FTP):        
Version used:                   0.17
Package size:                   144 KB
Estimated Disk space required:  2.7 MB

The rep-gtk package contains a Lisp and GTK binding. This is useful for extending GTK-2 and GDK libraries with Lisp. The rep-gtk-0.15 package contains the bindings to GTK and uses the same instructions. They can both can be installed, if needed.

rep-gtk depends on:
GTK+-2.2.1, libglade-2.0.1 and librep-0.16.2

Installation of rep-gtk

Install rep-gtk by running the following commands:

./configure --prefix=/usr &&
make &&
make install


Contents

The rep-gtk package contains Lisp bindings.


Description

Lisp bindings

Lisp bindings are libraries stored in /usr/lib/rep/i686-pc-linux-gnu/gui/ that assist communications between Lisp and the GTK libraries.


Chapter 11. System Utilities

gpm-1.20.1

Gpm (the general purpose mouse daemon) is a mouse server for applications running in the console. It not only provides cut and paste support generally, but its library component is used by various software such as links to provide mouse support to the application generally. It is useful on desktops, especially if following (Beyond)LinuxFromScratch instructions - it's often much easier (and less error prone) to cut and paste between two console windows than to type everything by hand!


Introduction to gpm

Download location (HTTP):       
Download location (FTP):        ftp://arcana.linux.it/pub/gpm/gpm-1.20.1.tar.bz2
Version used:                   1.20.1
Package size:                   556 KB
Estimated Disk space required:  3.2 MB

The gpm package contains a mouse server for the console and xterm. This is useful for cutting and pasting text in console mode, and also because many console-based programs need it to compile mouse support into themselves.


Installation of gpm

Install gpm by running the following commands:

Note: The LDFLAGS environment variable must be set before configuring gpm.

LDFLAGS="-lm" ./configure --prefix=/usr &&
make &&
make install


Command explanations

export LDFLAGS="-lm": The math library must be linked with gpm, as ceil() is used in some cursor scrolling logic. LDFLAGS is only needed if you optimize gpm for size.


Configuring gpm

gpm init.d script

The gpm init.d script can be created using the following commands: (This assumes that you have followed the LFS default of having your $rc_base set to /etc/rc.d)

cat > /etc/rc.d/init.d/gpm << "EOF"
#!/bin/sh
# Begin $rc_base/init.d/gpm

# Based on sysklogd script from LFS-3.1 and earlier.
# Rewritten by Gerard Beekmans  - gerard@linuxfromscratch.org
# GPM specific parts by Mark Hymers - markh@linuxfromscratch.org

source /etc/sysconfig/rc
source $rc_functions

if [ -f /etc/sysconfig/mouse ]
	then
        source /etc/sysconfig/mouse
fi

if [ -z "$MDEVICE" ] || [ -z "$PROTOCOL" ]
	then
	echo "Please create an /etc/sysconfig/mouse file containing"
	echo "MDEVICE and PROTOCOL values"
	exit 1;
fi

case "$1" in
        start)
                echo "Starting gpm..."
                loadproc gpm -m $MDEVICE -t $PROTOCOL
                ;;

        stop)
                echo "Stopping gpm..."
                killproc gpm
                ;;

        restart)
                $0 stop
                sleep 1
                $0 start
                ;;

        status)
                statusproc gpm
                ;;

        *)
                echo "Usage: $0 {start|stop|restart|status}"
                exit 1
                ;;
esac

# End $rc_base/init.d/gpm
EOF
chmod 755 /etc/rc.d/init.d/gpm

You then need to create symbolic links to this file in the relevant rc.d directories. For example:
cd /etc/rc.d/init.d &&
ln -sf ../init.d/gpm ../rc0.d/K10gpm &&
ln -sf ../init.d/gpm ../rc1.d/K10gpm &&
ln -sf ../init.d/gpm ../rc2.d/K10gpm &&
ln -sf ../init.d/gpm ../rc3.d/S70gpm &&
ln -sf ../init.d/gpm ../rc4.d/S70gpm &&
ln -sf ../init.d/gpm ../rc5.d/S70gpm &&
ln -sf ../init.d/gpm ../rc6.d/K10gpm


Config files

/etc/sysconfig/mouse This file contains the name of your mouse device and the protocol which it uses. To create this file, run the following:

cat > /etc/sysconfig/mouse << "EOF" 
# start /etc/sysconfig/mouse
MDEVICE=yourdevice
PROTOCOL=yourprotocol
# end /etc/sysconfig/mouse
EOF


Configuration Information

Examples of values to set MDEVICE and PROTOCOL to are

MDEVICE=/dev/psaux
PROTOCOL=imps2

A list of which protocol values are known can be found by running gpm -t -help. Your MDEVICE setting depends on which type of mouse you have. For example, /dev/ttyS0 for a serial mouse (on Windows this is COM1), /dev/input/mice is often used for USB mice and /dev/psaux for PS2 mice. It is normally thought not a good idea to link /dev/mouse to the relevant device, but instead to reference it directly.


Contents

The gpm package contains gpm, gpm-root, disable-paste and mev.


Description

gpm

gpm is a cut and paste utility and mouse server for virtual consoles.


gpm-root

gpm-root is a default handler for gpm. It is used to draw menus on the root window.


disable-paste

No description available.


mev

mev is a program to report mouse events.


fcron-2.9.3

Introduction to fcron

Download location (HTTP):       http://fcron.free.fr/fcron-2.9.3.src.tar.gz
Download location (FTP):        ftp://ftp.seul.org/pub/fcron/fcron-2.9.3.src.tar.gz
Version used:                   2.9.3
Package size:                   372 KB
Estimated Disk space required:  2.7 MB

The fcron package contains the fcron daemon. "It is a periodical command scheduler which aims at replacing Vixie Cron."

fcron recommends:
local mail system (sendmail-8.12.9 or postfix-2.0.7, for example)
fcron utilizes:
Linux_PAM-0.77, openjade-1.3.2 and docbook-dsssl-1.78

Installation of fcron

Fcron uses the cron facility of syslog to log all messages. Since LFS does not set up this facility in /etc/syslog.conf, it needs to be done prior to installing fcron. This command will append the necessary line to the current /etc/syslog.conf.

cat >> /etc/syslog.conf << "EOF"
# Begin fcron addition to /etc/syslog.conf

cron.* -/var/log/cron.log

# End fcron addition
EOF

The configuration file has been modified, so reloading the sysklogd daemon will activate the changes.

/etc/rc.d/init.d/sysklogd reload

Install fcron by running the following commands:

./configure &&
make &&
make install


Install fcron without MTA

Fcron does not require a mail transfer agent (MTA) to run, but will use one if it is installed to email you the results of the fcron script. If you wish to install without a MTA, run the following commands:

./configure --without-sendmail &&
make &&
make install


Command explanations

--with-dsssl-dir=/usr/share/sgml/docbook/dsssl-stylesheets-1.78 : Can be added IF you have installed openjade and dsssl-stylesheets.


Configuring fcron

make install script

After the files are installed, the make install script enters into a configuration routine. The first test will be for a group named fcron. If it does not exist, you will be given the command line that the script proposes to run and a prompt for a 'y' or 'n'. This is repeated to create a user named fcron and to install a script in the init.d directory with the appropriate symbolic links in runlevels 2, 3, 4, and 5. The final configuration step is to stop any current fcron processes and start the new fcron. A yes here will stop current fcron processes and will start the new fcron. The following commands will overwrite the fcron script with one based upon the BLFS template:

cat > /etc/rc.d/init.d/fcron << "EOF"
#!/bin/sh
# Begin $rc_base/init.d/fcron

# Based on sysklogd script from LFS-3.1 and earlier.
# Rewritten by Gerard Beekmans  - gerard@linuxfromscratch.org

source /etc/sysconfig/rc
source $rc_functions

case "$1" in
        start)
                echo "Starting fcron..."
                loadproc fcron
                ;;

        stop)
                echo "Stopping fcron..."
                killproc fcron
                ;;

        restart)
                $0 stop
                sleep 1
                $0 start
                ;;

        status)
                statusproc fcron
                ;;

        *)
                echo "Usage: $0 {start|stop|restart|status}"
                exit 1
                ;;
esac

# End $rc_base/init.d/fcron
EOF
chmod 755 /etc/rc.d/init.d/fcron &&
mv /etc/rc.d/rc0.d/K60fcron /etc/rc.d/rc0.d/K08fcron &&
mv /etc/rc.d/rc6.d/K60fcron /etc/rc.d/rc6.d/K08fcron


Config files

/etc/fcron.conf, /etc/fcron.allow, /etc/fcron.deny

There are no required changes in any of these files. Configuration information can be found in the man page for fcron.conf.

fcron scripts are written using fcrontab. Refer to the man page for fcrontab for proper parameters for your situation.


Contents

The fcron package contains fcron, fcrontab, fcronsighup and fcrondyn.


Description

fcron

fcron is the scheduling daemon.


fcrontab

fcrontab is the program used to install, edit, list and remove the tables used by fcron.


fcronsighup

fcronsighup instructs fcron to reread the fcron tables.


fcrondyn

fcrondyn is a user tool intended to interact with a running fcron daemon.


hdparm-5.3

Introduction to hdparm

Download location (HTTP):       http://ftp.ibiblio.org/pub/Linux/system/hardware/hdparm-5.3.tar.gz
Download location (FTP):        ftp://ftp.ibiblio.org/pub/Linux/system/hardware/hdparm-5.3.tar.gz
Version used:                   5.3
Package size:                   36 KB
Estimated Disk space required:  257 KB

The hdparm package contains the hdparm utility. This is useful for controlling ATA/IDE controllers and hard drives both to increase performance and sometimes to increase stability.

WARNING! As well as being useful, incorrect usage of hdparm can destroy your information and in rare cases, drives. Use with caution and make sure you know what you are doing. If in doubt, we recommend you leave the default kernel parameters alone.


Installation of hdparm

Install hdparm by running the following commands:

make && 
make install

Note that by default, hdparm is installed in /sbin as some systems may require it on bootup before /usr is mounted. If you wish to install hdparm under the /usr hierarchy, then replace the above commands with the following:

make && 
make binprefix=/usr install


Contents

The hdparm package contains hdparm.


Description

hdparm

hdparm provides a command line interface to various hard disk ioctls supported by the stock Linux ATA/IDE device driver subsystem.


which-2.14 and alternatives

The presence / absence of the which program in the main LFS book is probably one of the most contentious issues we have on the mailing lists. It has resulted in at least one flame war in the recent past. To hopefully put an end to this once and for all, we here present two of the options for equipping your system with "which".

The first option is to install the actual GNU program which.


Introduction to which

Download location (HTTP):       http://ftp.gnu.org/gnu/which/which-2.14.tar.gz
Download location (FTP):        ftp://ftp.gnu.org/gnu/which/which-2.14.tar.gz
Version used:                   2.14
Package size:                   110 KB
Estimated Disk space required:  719 KB

Installation of which

Install which by running the following commands:

./configure --prefix=/usr &&
make &&
make install


Contents

The which package contains which.


Description

which

which shows the full path of (shell) commands.


The 'which' script

The second option (for those who don't want to install the program) is to create a simple script:

cat > /usr/bin/which << "EOF"
#!/bin/bash
type -p "$@"
EOF
chmod 755 /usr/bin/which
chown root:root /usr/bin/which

This should generally work OK and is probably the easiest solution for boxes which don't need a good user environment to work in.


unzip-5.50

Introduction to unzip

Download location (HTTP):       http://www.mirror.ac.uk/sites/ftp.info-zip.org/pub/infozip/src/unzip550.tar.gz
Download location (FTP):        ftp://ftp.info-zip.org/pub/infozip/src/unzip550.tar.gz
Version used:                   5.50
Package size:                   1.1 MB
Estimated Disk space required:  5.8 MB
Estimated build time:           0.42 SBU

The unzip package contains ZIP extraction utilities. These are useful for extracting files from ZIP archives. ZIP archives are created with PKZIP or Info-ZIP utilities primarily in a ms-dos environment.

Download the two patches from http://downloads.linuxfromscratch.org/blfs-patches. The patches begin with unzip-5.50.


Installation of unzip

Install unzip by running the following commands:

patch -Np1 -i ../unzip-5.50-fix-Makefile.patch &&
patch -Np1 -i ../unzip-5.50-fix-libz.patch &&
cp unix/Makefile . &&
make prefix=/usr linux &&
make prefix=/usr linux_shlibz &&
make prefix=/usr install &&
cp -a libunzip.so* /usr/lib


Command explanations

make prefix=/usr linux : This command overrides the prefix variable that is set to /usr/local in the Makefile and builds the executables for a linux system. The alternatives to 'linux' can be seen with a 'make list' command.

make prefix=/usr linux_shlibz : Build shared libunzip and link unzip against it and zlib.


Contents

The unzip package contains unzip, funzip, unzipfsx, zipgrep and zipinfo.


Description

unzip

unzip lists, tests or extracts files from a ZIP archive.


funzip

funzip allows the output of unzip commands to be redirected.


unzipfsx

unzipfsx is the self-extracting stub that can be prepended to a ZIP archive. Files in this format allow the recipient to decompress the archive without installing unzip.


zipgrep

zipgrep is a grep for ZIP archives.


zipinfo

zipinfo produces technical information about the files in a ZIP archive, including file access permissions, encryption status, type of compression, etc.


zip-2.3

Introduction to zip

Download location (HTTP):       http://www.mirror.ac.uk/sites/ftp.info-zip.org/pub/infozip/src/zip23.tar.gz
Download location (FTP):        ftp://ftp.info-zip.org/pub/infozip/src/zip23.tar.gz
Version used:                   2.3
Package size:                   839 KB
Estimated Disk space required:  3.6 MB
Estimated build time:           0.25 SBU

The zip package contains ZIP utilities. These are useful for compressing files into ZIP archives.


Installation of zip

Install zip by running the following commands:

cp unix/Makefile . &&
make prefix=/usr generic_gcc &&
make prefix=/usr install


Command explanations

make prefix=/usr generic_gcc : This command overrides the prefix variable that is set to /usr/local in the Makefile and builds the executables for a linux system. The alternatives to 'generic_gcc' can be seen with a 'make list' command.


Contents

The zip package contains zip, zipcloak, zipnote and zipsplit.


Description

zip

zip compresses files into a ZIP archive.


zipcloak

zipcloak is disabled in this version of zip. It will display a message about how to support encryption by recompiling with zcrypt27.zip.


zipnote

zipnote reads or writes comments stored in a zip file .


zipsplit

zipsplit is a utility to split zip files into smaller files.


pciutils-2.1.10

Introduction to pciutils

Download location (HTTP):       http://www.kernel.org/pub/software/utils/pciutils/pciutils-2.1.10.tar.bz2
Download location (FTP):        ftp://ftp.kernel.org/pub/software/utils/pciutils/pciutils-2.1.10.tar.bz2
Version used:                   2.1.10
Package size:                   98 KB
Estimated Disk space required:  638 KB

The pciutils package contains lspci and setpci. These programs are useful for PCI bus configuration.


Installation of pciutils

Install pciutils by running the following commands:

make PREFIX=/usr &&
make PREFIX=/usr install


Contents

The pciutils package contains lspci and setpci.


Description

lspci

lspci is a utility for displaying information about all PCI buses in the system and all devices connected to them.


setpci

setpci is a utility for querying and configuring PCI devices.


pkgconfig-0.15.0

Introduction to pkgconfig

Download location (HTTP):       http://www.freedesktop.org/software/pkgconfig/releases/pkgconfig-0.15.0.tar.gz
Download location (FTP):        
Version used:                   0.15.0
Package size:                   604 KB
Estimated Disk space required:  5.2 MB
Estimated build time:           0.40 SBU

The pkgconfig package contains pkg-config. This is useful for passing the include path and/or library path to the compiler during the make script.


Installation of pkgconfig

Install pkgconfig by running the following commands:

./configure --prefix=/usr &&
make &&
make install


Configuring pkgconfig

Add to your system or personal profile:
export PKG_CONFIG_PATH=/usr/X11R6/lib/pkgconfig

The default settings for PKG_CONFIG_PATH are /lib/pkgconfig, /usr/lib/pkgconfig and /usr/local/lib/pkgconfig. These settings are hard-coded and do not have to be exported with the additional paths.


Contents

The pkgconfig package contains pkg-config.


Description

pkg-config

pkg-config is a function that returns meta information for the specified library.


cpio-2.5

Introduction to cpio

Download location (HTTP):       http://ftp.gnu.org/pub/gnu/cpio/cpio-2.5.tar.gz
Download location (FTP):        ftp://ftp.gnu.org/pub/gnu/cpio/cpio-2.5.tar.gz
Version used:                   2.5
Package size:                   188 KB
Estimated Disk space required:  1 MB
Estimated build time:           0.06 SBU

The cpio package contains cpio. This is useful for archiving.


Installation of cpio

Install cpio by running the following commands:

./configure --prefix=/usr --libexec=/usr/sbin \
--bindir=/bin &&
make &&
make install


Command explanations

--libexec=/usr/bin : This command installs rmt to /usr/sbin instead of /usr/libexec.

--bindir=/bin : This command installs cpio to /bin instead of /usr/bin as per FHS guidelines.


Contents

The cpio package contains cpio, mt and rmt.


Description

cpio

cpio copies files to and from archives.


mt

mt controls magnetic tape drive operations.


rmt

rmt controls remote magnetic tape drive operations.


Chapter 12. Programming

Python-2.2.2

Introduction to Python

Download location (HTTP):       http://www.python.org/ftp/python/2.2.2/Python-2.2.2.tgz
Download location (FTP):        ftp://ftp.python.org/pub/python/2.2.2/Python-2.2.2.tgz
Version used:                   2.2.2
Package size:                   6.5 MB
Estimated Disk space required:  59.7 MB
Estimated build time:           2.45 SBU

The Python package contains the python development environment. This is useful for object-oriented programming, writing scripts, prototyping large programs or developing them entirely.

Python will utilize:
expat-1.95.6

Installation of Python

Install Python by running the following commands:

./configure --prefix=/usr &&
make &&
make install 


Contents

The Python package contains python and pydoc.


Description

python

python is an interpreted, interactive, object-oriented programming language.


pydoc

pydoc is the Python documentation tool.


perl modules

Introduction to perl modules

The perl module packages add useful objects to the Perl language. Modules utilized by packages throughout BLFS are listed here along with their dependencies.

PDL-2.3.4
	Astro-FITS-Header-2.2
Gtk-Perl-0.7008
	XML-Writer-0.4
	XML-Parser-2.31
Parse-RecDescent-1.80

Installation of perl modules

Install perl modules by running the following commands:

perl Makefile.PL &&
make &&
make install

Below are installation instructions for modules that happen to be broken at the present time.

Gtk-Perl-0.7008:
perl Makefile.PL --without-guessing &&
make
cp Gtk/Makefile Gtk/Makefile.bak &&
sed '/^OBJECT/s/xs/./g' Gtk/Makefile.bak > Gtk/Makefile &&
cp Gtk/Makefile Gtk/Makefile.bak &&
sed '/^OBJECT/s/build/./g' Gtk/Makefile.bak > Gtk/Makefile &&
make &&
make install


librep-0.16.2

Introduction to librep

Download location (HTTP):       http://telia.dl.sourceforge.net/sourceforge/librep/librep-0.16.2.tar.gz
Download location (FTP):        
Version used:                   0.16.2
Package size:                   896 KB
Estimated Disk space required:  6.8 MB
Estimated build time:           1.46 SBU

The librep package contains a Lisp system. This is useful for scripting or for applications that may use the Lisp interpreter as an extension language.

librep depends on:
gmp-4.1.2 and gdbm-1.8.3
librep will utilize:
readline-4.3

Installation of librep

Install librep by running the following commands:

./configure --prefix=/usr --libexec=/usr/lib --mandir=/usr/share/man \
--infodir=/usr/share/info &&
make &&
make install 


Command explanations

--libexec=/usr/lib : This command installs files to /usr/lib/rep instead of /user/libexec/rep.


Contents

The librep package contains rep and librep libraries.


Description

rep

rep is the Lisp interpreter.


librep libraries

librep libraries contain the functions necessary for the Lisp interpreter.


j2sdk-1.4.1

Introduction to j2sdk

Download location (HTTP):       http://freshmeat.net/projects/sunjdk
Download location (FTP):        
Version used (binary):          1.4.1_02
Version used (source):          1.4.1
Package size (binary):          59 MB
Package size (source):          77 MB
Estimated Disk space required:  1810 MB

The j2sdk package contains Sun's java development environment. This is useful for developing java programs and provides the runtime environment necessary to run java programs. It also includes a plug-in for browsers so that they can be java aware.

The JDK comes in two flavors, a precompiled binary and a source package. The precompiled binary is linked against gcc2 libraries. Due to the incompatibilities between gcc2 and gcc3, the precompiled java plugin causes problems when gcc3 compiled packages (for example mozilla) try to load the java plugin. The source package requires registration at the Sun developer site and accepting the Sun Community Source License. The source code cannot be downloaded from some countries, so for users from those countries, the binary may be the only option.

Even if you plan on compiling the jdk source, you will need to download the binary version to bootstrap the jdk build. Follow the above link to download both source and binary packages. When downloading the source also download the mozilla headers package available at the same location.

Download the patches for j2sdk source from http://downloads.linuxfromscratch.org/blfs-patches.

If you have difficulties in building the jdk, check out the javafromscratch hint at http://www.linuxfromscratch.org/~tushar/ for some workarounds.

For users who cannot download the j2sdk source owing to license restrictions, blackdown has a gcc3 based precompiled version. Check out http://www.blackdown.org/ for more information.

j2sdk depends on:
xfree86-4.3.0, zip-2.3, unzip-5.50, 
cpio-2.5, tcsh-6.12 and gcc-2.95.3

Installation of j2sdk

Both versions will be installed in parallel. You may choose to keep either or both.

Install the binary version of the jdk by running the following commands:

VERSION=1.4.1_02 &&
MV=`echo $VERSION | cut -d "_" -f 1,1` &&
V=`echo ${VERSION} | sed -e "s/\./_/g"` &&
T=`grep -a tail j2sdk-${V}-linux-i?86.bin | cut -f 2 -d " "` &&
tail $T j2sdk-${V}-linux-i?86.bin > install.sfx.$$ &&
chmod +x install.sfx.$$ &&
./install.sfx.$$ &&
cd j2sdk${VERSION} &&
install -d /opt/j2sdk/j2sdk-precompiled-${MV} &&
mv * /opt/j2sdk/j2sdk-precompiled-${MV}

The binary version is now installed.

If you don't want to compile the source, skip ahead to the configuration section.

Add the recently compiled JDK to the path.

export JAVA_HOME=/opt/j2sdk/j2sdk-precompiled-${MV} &&
export PATH=$PATH:${JAVA_HOME}/bin

Unzip and patch the source:

VERSION=1.4.1 &&
V=`echo $VERSION | sed -e "s/\./_/g"` &&
unzip j2sdk-${V}-src-scsl.zip &&
unzip j2sdk-${V}-mozilla_headers-unix.zip &&
patch -Np1 -i j2sdk-${VERSION}-fix-intl-files.patch &&
patch -Np1 -i j2sdk-${VERSION}-link-missing-libs.patch &&
patch -Np1 -i j2sdk-${VERSION}-remove-fixed-paths.patch &&
patch -Np1 -i j2sdk-${VERSION}-syntax-fixes.patch &&
patch -Np1 -i j2sdk-${VERSION}-use-included-motif.patch

Set some vars which affect the build:

export ALT_BOOTDIR="$JAVA_HOME" &&
unset JAVA_HOME &&
unset CLASSPATH
unset CFLAGS
unset CXXFLAGS
unset LDFLAGS
export ALT_DEVTOOLS_PATH="/usr/bin" &&
export BUILD_NUMBER="blfs-`date +%s`" &&
export DEV_ONLY=true &&
export ALT_MOZILLA_PATH=$PWD &&
export INSANE=true &&
export MAKE_VERBOSE=true &&
export ALT_CACERTS_FILE=${ALT_BOOTDIR}/jre/lib/security/cacerts

The included motif doesn't build properly with the current glibc/xfree86. A solution is to build the motif library before compiling the j2sdk. Note that the motif build fails during the first run owing to some syntax error. The brute force and easiest solution is to rerun the make command:)

cd motif/lib/Xm &&
make || make &&
cd ../../..

Make and Install j2sdk with the following commands. There will be a lot of messages about missing files that look like errors. As long as the build doesn't stop, the messages are harmless, so ignore them.

cd control/make &&
make &&
cd ../.. &&
cd control/build/linux-i?86 &&
cp -a j2sdk-image /opt/j2sdk/j2sdk-1.4.1


Command explanations

T=`grep... : Determines the part where the tarfile begins in the self extracting archive.

patch -Np1 -i j2sdk-${VERSION}-fix-intl-files.patch : Patch to fix duplicate messages in the intl files.

patch -Np1 -i j2sdk-${VERSION}-link-missing-libs.patch : Patch to add missing libs to fix unresolved symbols.

patch -Np1 -i j2sdk-${VERSION}-remove-fixed-paths.patch : The build wants the binaries in specific locations, this patch modifies this to use the current PATH environment to find binaries.

patch -Np1 -i j2sdk-${VERSION}-syntax-fixes.patch : Patch to fix syntax for gcc3.

patch -Np1 -i j2sdk-${VERSION}-use-included-motif.patch : Patch to rename the internal motif library to avoid conflicts with an incompatible system installed version.

export ALT_BOOTDIR="$JAVA_HOME" : This var sets location of the bootstrap JDK.

export ALT_MOZILLA_PATH=$PWD : This sets the variable that points to where you unzipped the mozilla headers.

export ALT_DEVTOOLS_PATH="/usr/bin" : This changes the location where the build finds the needed executables.

export BUILD_NUMBER="blfs-`date +%s`" : This will help you identify this compiled version of the runtime environment and virtual machine by appending this information to the version in the output to "java -version".

export DEV_ONLY=true : This command eliminates compiling the documentation and eliminates a dependency for rpm.

unset JAVA_HOME : This clears the JAVA_HOME variable and prevents misdirection during compile.

unset CLASSPATH : This clears the CLASSPATH variable and prevents misdirection during compile.

unset CFLAGS... : These flags cause miscompilation of the build. Never set these.

export INSANE=true : Unless you specify that you are insane the build will not proceed. The certified platform for the build is Redhat 6.1. The above variable ensures that all the errors related to compiling on a non-certified platform will be converted to warnings.

export MAKE_VERBOSE=true : Allows the current compilation command to be displayed on the console.

export ALT_CACERTS_FILE... : Specifies the certificate file to use.


Configuring j2sdk

Configuration Information

We have two Java 2 SDK's installed in /opt/j2sdk. Decide on which one you would like to use as the default. For example if you decide to use the source compiled j2sdk, do the following:

ln -nsf j2sdk-1.4.1 /opt/j2sdk/j2sdk

Add the following lines to your shell startup file (e.g. /etc/profile).

export JAVA_HOME=/opt/j2sdk/j2sdk
export PATH=$PATH:$JAVA_HOME/bin

Add $JAVA_HOME/man to your MANPATH variable or to /etc/man.conf

The java plugin is in the directory $JAVA_HOME/jre/plugin/i?86/ns610/. Make a symbolic link to the file in that directory from your plugins directory.


Contents

The j2sdk package contains appletviewer, extcheck, idlj, jar, jarsigner, java, javac, javadoc, javah, javap, jdb, keytool, native2ascii, orbd, policytool, rmic, rmid, rmiregistry, rmiregistry, serialver, servertool and tnameserv.


Description

appletviewer

appletviewer runs Java applets outside of the context of a browser.


extcheck

extcheck checks a specified jar file for title and version conflicts with any extensions installed in the JDK software.


idlj

idlj generates Java bindings from a given IDL file.


jar

jar combines multiple files into a single JAR archive file.


jarsigner

jarsigner signs JAR (Java ARchive) files and verifies the signatures and integrity of a signed JAR.


java

java launches a Java application by starting a Java runtime environment, loading a specified class and invoking that class's main method.


javac

javac reads class and interface definitions, written in the Java programming language, and compiles them into bytecode class files.


javadoc

javadoc parses the declarations and documentation comments in a set of Java source files and produces a corresponding set of HTML pages describing the classes, interfaces, constructors, methods, and fields.


javah

javah generates C header and source files that are needed to implement native methods.


javap

javap disassembles a Java class file.


jdb

jdb is a simple command-line debugger for Java classes.


keytool

keytool is a key and certificate management utility.


native2ascii

native2ascii converts files that contain non-supported character encoding into files containing Latin-1 or Unicode-encoded characters.


orbd

orbd is used to enable clients to transparently locate and invoke persistent objects on servers in the CORBA environment.


policytool

policytool creates and manages a policy file graphically.


rmic

rmic generates stub and skeleton class files for remote objects from the names of compiled Java classes that contain remote object implementations.


rmid

rmid starts the activation system daemon.


rmiregistry

rmiregistry creates and starts a remote object registry on the specified port on the current host.


serialver

serialver returns the serialVersionUID for one or more classes in a form suitable for copying into an evolving class.


servertool

servertool provides an ease-of-use interface for application programmers to register, unregister, startup and shutdown a server.


tnameserv

tnameserv starts the Java IDL name server.


ruby-1.6.8

Introduction to ruby

Download location (HTTP):       
Download location (FTP):        ftp://ftp.ruby-lang.org/pub/ruby/ruby-1.6.8.tar.gz
Version used:                   1.6.8
Package size:                   1 MB
Estimated Disk space required:  9.2 MB
Estimated build time:           0.92 SBU

The ruby package contains the ruby development environment. This is useful for object-oriented scripting.


Installation of ruby

Install ruby by running the following commands:

./configure --prefix=/usr &&
make &&
make install


Contents

The ruby package contains ruby and irb.


Description

ruby

ruby is an interpreted scripting language for quick and easy object-oriented programming.


irb

irb is the interactive interface for ruby.


gcc-3.2.1

Introduction to gnat (binary version)

Download location (HTTP):       
Download location (FTP):        ftp://cs.nyu.edu/pub/gnat/3.14p/gnat-3.14p-i686-pc-linux-gnu-bin.tar.gz
Version used:                   3.14p
Package size:                   10.5 MB
Estimated Disk space required:  40 MB

The gnat package contains a precompiled Ada compiler. This package is used to satisfy the circular dependency when you recompile gcc to include ada.

You may skip installation of gnat if you do not want to recompile gcc with ada support.

gnat depends on:
tcsh-6.12

Installation of gnat

Install gnat by running the following commands:

./doconfig

The above script will ask you how and where you would like to install gnat. To avoid conflicts with the system gcc, the package will be installed in a separate directory, that can later be removed from the system.

In response to the questions asked by the doconfig script, enter 3 in response to the first question and /opt/gnat in response to the second question.

To finish the install, run

./doinstall

The gnat compiler can be invoked by executing the gcc binary installed by the above script. To avoid conflicts with the system gcc, we will rename the gcc command.

cd /opt/gnat/bin &&
mv gcc gnatgcc &&
cd real &&
mv gcc gnatgcc


Introduction to gcc

Download location (HTTP):       http://mirrors.rcn.net/pub/sourceware/gcc/releases/gcc-3.2.1/gcc-3.2.1.tar.bz2
Download location (FTP):        ftp://mirrors.rcn.net/pub/sourceware/gcc/releases/gcc-3.2.1/gcc-3.2.1.tar.bz2
Version used:                   3.2.1
Package size:                   20.1 MB
Estimated Disk space required:  591 MB

The gcc package contains GNU compilers. This is useful for compiling programs written in Ada, C, C++, Fortran, Java and Objective C.


Installation of gcc

Install gcc by running the following commands:

PATH_HOLD=$PATH &&
export PATH=$PATH:/opt/gnat/bin &&
cd gcc/ada &&
touch treeprs.ads [es]info.h nmake.ad[bs] &&
cd ../.. &&
mkdir ../gcc-build &&
cd ../gcc-build &&
../gcc-3.2.1/configure --prefix=/usr --enable-shared \
--enable-languages=c,c++,objc,f77,ada,java --enable-threads=posix \
--enable-__cxa_atexit --enable-clocale=gnu &&
make bootstrap &&
make -C gcc gnatlib_and_tools &&
make install-no-fixedincludes &&
ln -sf g77 /usr/bin/f77 &&
export PATH=$PATH_HOLD

You may remove the gnat installation:

rm -rf /opt/gnat


Command explanations

PATH_HOLD=$PATH : This command stores your current path before it's modified so that it can be restored after installation.

export PATH=$PATH:/opt/gnat/bin : This command allows the build to find gnat's Ada compiler to build Ada.

touch treeprs.ads [es]info.h nmake.ad[bs] : This command creates necessary files for the Ada build. This step may be skipped if you don't want to compile the ada frontend.

--enable-languages=c,c++,objc,f77,ada,java : This command builds all available languages in the gcc package. You may modify this command to remove unwanted languages.

--enable-shared --enable-threads=posix --enable-__cxa_atexit : These commands are required to build the C++ libraries to published standards.

--enable-clocale=gnu : This command is a failsafe for incomplete locale data.

make gnatlib_and tools : This command completes the Ada build process. Skip this step if you have not enabled ADA as one of the languages.


Contents

The gcc package contains c++, c++filt, cpp, g++, g77, gcc, gccbug, gcov, glob, gnat, gnatbind, gnatbl, gnatchop, gnatfind, gnatkr, gnatlink, gnatls, gnatmake, gnatprep, gnatpsta, gnatpsys, gnatxref and gcc libraries.


Description

The programs and libraries whose descriptions are missing here have been described in the LFS gcc-3.2.1 page.


g77

g77 is the Fortran compiler invoked by gcc.


add2line

add2line converts the ASCII form of the 2-line orbital elements in a file to binary form and appends them to the orbdata files.


gcov

gcov is a test coverage program.


gdb

gdb is the GNAT debugger.


gnatbind

gnatbind is used to bind compiled objects.


gnatbl

gnatbl is the Ada linker.


gnatchop

gnatchop is useful for renaming files to meet the standard Ada default file naming conventions.


gnatelim

gnatelim is used to detect and eliminate unused subprograms in an Ada partition.


gnatfind

gnatfind is the GNAT definition/use finder.


gnatgcc

gnatgcc is the compiler.


gnathtml.pl

gnathtml.pl converts Ada source files to html for viewing in Web browsers.


gnatkr

gnatkr is used to determine the crunched name for a given file, when crunched to a specified maximum length.


gnatlink

gnatlink is used to link programs and build an executable file.


gnatls

gnatls is the compiled unit browser.


gnatemake

gnatmake is an automatic make facility.


gnatmem

gnatmem is the GNAT utility that monitors dynamic allocation and deallocation activity in a program.


gnatprep

gnatprep is the GNAT external preprocessor.


gnatpsta

gnatpsta determines the values of all the relevant parameters in Standard and outputs to stdout.


gnatpsys

gnatpsys determines the values of all the relevant parameters in System and outputs to stdout.


gnatstub

gnatstub is a generator of body stubs.


gnatxref

gnatxref is the GNAT cross-referencer.


gvd

gvd is the GNU Visual Debugger.


gcc-2.95.3

Introduction to gcc-2.95.3

Download location (FTP):       ftp://ftp.gnu.org/gnu/gcc/gcc-2.95.3.tar.gz
Version used:                  2.95.3
Package size:                  7 MB
Estimated Disk space required: 104 MB

There are two reasons for installing gcc-2.95.3. The first is that the kernel developers have certified gcc-2.95.3 as the preferred compiler for compiling the kernel. The other (and more compelling reason) is that some commercial closed-source packages (such as Netscape Navigator, Yahoo Pager) and precompiled packages (such as Mozilla) are linked against gcc-2.95.3 libs.

Download the gcc patches from http://downloads.linuxfromscratch.org/blfs-patches.


Installation of gcc

Apply the two patches, one to fix compilation and the other to stop the fixincludes script from executing.

patch -Np1 -i ../gcc-2.95.3-1.patch &&
patch -Np1 -i ../gcc-2.95.3-no-fixinc.patch

The gcc development team recommends building in a separate directory.

mkdir ../gcc-build &&
cd ../gcc-build

Configure gcc to build the C and C++ compilers and enable the related C++ options.

../gcc-2.95.3/configure \
--prefix=/opt/gcc2 \
--enable-shared --enable-languages=c,c++ \
--enable-threads=posix

Compile and install gcc and remove unneeded directories (adjust the machine triplet to match your architecture).

make bootstrap &&
make install &&
ln -sf gcc /opt/gcc2/bin/cc &&
rm -rf /opt/gcc2/{i686-pc-linux-gnu,info,man}

Make note of the library that is installed.

L=`find /opt/gcc2/lib -name "*libstdc++*.so" -type f` &&
IL=`basename $L`

Move the C++ libraries to the standard lib directory to avoid having to add /opt/gcc2/lib to /etc/ld.so.conf.

for i in /opt/gcc2/lib/*.so*; do mv -f $i /usr/lib;
ln -sf /usr/lib/`basename $i` /opt/gcc2/lib; done

Create symlinks required by commercial and precompiled packages.

ln -sf $IL /usr/lib/libstdc++-libc6.1-1.so.2 &&
ln -sf $IL /usr/lib/libstdc++-libc6.2-2.so.3 &&
ln -sf $IL /usr/lib/libstdc++-libc6.3-2.so.3


Configuring gcc

Configuration Information

As with most libraries, there is no configuration to do, save that the library directory i.e. /usr/lib or /usr/local/lib should appear in /etc/ld.so.conf so that ldd can find the shared libraries. After checking that this is the case, /sbin/ldconfig should be run while logged in as root.

The instructions given above make compatibility symlinks that pre-compiled packages in BLFS require. You may create additional compatibility links based on your requirements.

If you only need the gcc-2.95.3 libraries, you may delete /opt/gcc2.

Whenever you need to use gcc-2.95.3 instead of you system installed compiler, add /opt/gcc2/bin to the front of your PATH before compiling the concerned package.


Contents

The gcc-2.95.3 package contains the gcc-2.95.3 C and C++ compilers and gcc-2.95.3 libstdc++.so that is required by some commercial and pre-compiled packages.

IV. Connecting to a Network

The LFS book covers setting up networking with a static IP. There are however, other methods which are used to connect to networks and importantly the internet. We cover the most popular methods in this chapter.

Table of Contents
13. Dial-up networking
14. DHCP Clients
15. Other

Chapter 13. Dial-up networking

ppp-2.4.1

Introduction to ppp

Download location (HTTP):       
Download location (FTP):        ftp://cs.anu.edu.au/pub/software/ppp/ppp-2.4.1.tar.gz
Version used:                   2.4.1
Package size:                   524 KB
Estimated Disk space required:  4.1 MB

The ppp package contains the pppd daemon and the chat program. This is used for connecting to other machines; often for connecting to the Internet via a dial-up connection to an ISP.

ppp needs nothing to compile but you must have PPP support
either compiled in or as a kernel module to use it.

Installation of ppp

Install ppp by running the following commands:

./configure &&
make &&
make install


Configuring ppp

Config files

/etc/ppp/*


Configuration Information

The ppp daemon itself requires very little configuration. The main trick is script the connection. This can be done either using the chat program which comes with this package or by using wvdial-1.53.


Contents

The ppp package contains the chat, pppd, pppdump and pppstats programs.


Description

chat

The chat program defines a conversational exchange between the computer and the modem. Its primary purpose is to establish the connection between the Point-to-Point Protocol Daemon (pppd) and the remote's pppd process.


pppd

pppd is the Point to Point Protocol daemon.


pppdump

pppdump is used to convert PPP record files to a readable format.


pppstats

pppstats is used to print PPP statistics.


wvdial-1.53

Introduction to wvdial

Download location (HTTP):       http://open.nit.ca/download/wvdial-1.53.tar.gz
Download location (FTP):        
Version used:                   1.53
Package size:                   66 KB
Estimated Disk space required:  2.5 MB

The wvdial package contains a no nonsense, quick and easy to use alternative to chat and pppd scripts. If you simply want to dial a modem without the fuss and hassle of chat issues, then you'll want this.

wvdial depends on:
wvstreams-3.70 and ppp-2.4.1

Installation of wvdial

Install wvdial by running the following commands:

make PREFIX=/usr &&
make PREFIX=/usr install &&


Configuring wvdial

Config files

/etc/wvdial.conf, /etc/ppp/*


Configuration Information

wvdialconf /etc/wvdial.conf
wvdialconf will test that you have a working modem, try and determine its exact setup and then ask you some questions regarding your ISP's phone number etc. You will then need to enter that information into the /etc/wvdial.conf file.

You then start wvdial with:
wvdial.

For more information examine the wvdialconf, wvdial.conf and wvdial man pages.


Contents

The wvdial package contains the wvdial and wvdialconf programs.


Description

wvdial

Starts a ppp connection.


wvdialconf

Automates the configuration of wvdial.


Chapter 14. DHCP Clients

DHCP stands for Dynamic Host Configuration Protocol. It is a protocol which is used by many sites to automatically provide information such as IP addresses, subnet masks and routing information to computers. If your network uses DHCP, you will need a DHCP client in order to connect to it. DHCP is also used by some cable modems.

We currently provide installation instructions for two DHCP clients, dhclient (from the dhcp package) and dhcpcd. We begin with a page which shows how to alter the LFS bootscripts for generic DHCP support. We then present the two sets of installation instructions which also discuss how to create an appropriate configuration file to work with the DHCP client of your choice.


Configuring the LFS bootscripts to support DHCP clients

Config files

/etc/sysconfig/network, /etc/sysconfig/network-devices/ifup-eth0, /etc/sysconfig/network-devices/ifdown-eth0, /etc/sysconfig/network-devices/ifconfig.eth0


Configuration Information

Note that on this and the following pages, we use eth0 as the example interface. If you want to configure a different (or more than one) interface, simply replace eth0 with the interface you wish to use.

These instructions will convert the configuration files from LFS (a static configuration) to a configuration using the DHCP protocol. Note that static and DHCP-based interfaces can co-exist on a LFS system. To do this, you should only make the alterations to those interfaces which need to support DHCP. All of the instructions on this page are applicable no matter which DHCP client you intend to use.

If the interface you intend to use as your default gateway is going to use DHCP, the first step is to remove the GATEWAY and GATEWAY_IF variables from /etc/sysconfig/network. This will only need to be done once.

cd /etc/sysconfig &&
cp network network.bak &&
sed "s/GATEWAY/# GATEWAY/" network.bak > network

You then need to create scripts which will override the default network scripts and provide DHCP support. These two scripts are generic and so for use with both DHCP clients. First, the ifup-eth0 script:

cat > /etc/sysconfig/network-devices/ifup-eth0 << "EOF" 
#!/bin/sh

source /etc/sysconfig/rc || exit
source $rc_functions || exit
source $network_devices/ifconfig.eth0 || exit

echo "Bringing up the eth0 interface..."
modprobe eth0
loadproc $DHCP_PROG $DHCP_START
EOF

Then the ifdown-eth0 script:

cat > /etc/sysconfig/network-devices/ifdown-eth0 << "EOF" 
#!/bin/sh

source /etc/sysconfig/rc || exit
source $rc_functions || exit
source $network_devices/ifconfig.eth0 || exit

echo "Bringing down the eth0 interface..."
$DHCP_PROG $DHCP_STOP
evaluate_retval
EOF

Finally, we need to make these scripts executable:

chmod 755 /etc/sysconfig/network-devices/ifup-eth0 &&
chmod 755 /etc/sysconfig/network-devices/ifdown-eth0


dhcp-3.0pl2

The dhcp package comes with both a client (called dhclient) and a server program for using DHCP. If you want to install this package, the instructions can be found at dhcp-3.0pl2. Note that if you only want to use the client, you do not need to run the server and so do not need the startup script and links provided for the server daemon. You only need to run the DHCP server if you're providing this service to a network, and it's likely that you'll know if that's the case; if it isn't, don't run the server! Once you have installed the package, return here for information on how to configure the client (dhclient).

To configure dhclient, you need to create two files, /etc/sysconfig/network-devices/ifconfig.eth0 and /etc/dhclient.conf.

First, create the ifconfig.eth0 file with the following commands (note that this will overwrite any existing file):

cd /etc/sysconfig/network-devices &&
cat > /etc/sysconfig/network-devices/ifconfig.eth0 << "EOF"
ONBOOT=yes
DHCP_PROG=/sbin/dhclient
DHCP_START=<appropriate start parameters>
DHCP_STOP=-r
EOF

For more information on the appropriate DHCP_START and DHCP_STOP values, examine the man page for dhclient.

Next, you should then create the /etc/dhclient.conf using the following command:

cat > /etc/dhclient.conf << "EOF"
# dhclient.conf

interface "eth0"{
prepend domain-name-servers 127.0.0.1;
request subnet-mask, broadcast-address, time-offset, routers,
        domain-name, domain-name-servers, host-name;
require subnet-mask, domain-name-servers;
}
# end dhclient.conf
EOF


dhcpcd-1.3.22-pl4

Introduction to dhcpcd

Download location (HTTP):       
Download location (FTP):        ftp://ftp.phystech.com/pub/dhcpcd-1.3.22-pl4.tar.gz
Version used:                   1.3.22-pl4
Package size:                   145 KB
Estimated Disk space required:  750 KB

The dhcpcd package contains the dhcpcd client. This is useful for connecting your computer to a network which uses DHCP to assign network addresses.


Installation of dhcpcd

Before installing dhcpcd, you need to download dhcpcd-1.3.22-pl4.patch from http://downloads.linuxfromscratch.org/blfs-patches and place it to your source directory.

Install dhcpcd by running the following commands:

patch -Np1 -i ../dhcpcd-1.3.22-pl4.patch &&
./configure --prefix="" --sysconfdir=/var/lib \
--mandir=/usr/share/man &&
make &&
make install


Command explanations

patch -Np1 -i ../dhcpcd-1.3.22-pl4.patch : Dhcpcd unpatched puts all configuration and temporary files in /etc/dhcpc. This becomes very annoying when dhcpcd tells you it's running and it's not. You look in /var/run for the pid file, but it's not there, the pid file that needs deleting is in /etc/dhcpc. This patch brings this program into FHS compliance, but more importantly, puts files where you expect them to be.

--prefix="" : There may be a good reason for abandoning the normal BLFS convention of using --prefix=/usr here. If you are installing DHCP, it is likely that it is required during the boot process and /usr may be network mounted in which case, dhcpcd wouldn't be available due to being on the network! Therefore, depending on your situation, you may want it to be installed in /sbin or /usr/sbin. This command installs to /sbin.

--sysconfdir=/var/lib : This command install configuration files in the /var/lib directory.

--mandir=/usr/share/man : This command install the man pages to the /usr/share/man directory.


Configuring dhcpcd

Config files

/var/lib/dhcpc/*


Configuration Information

To configure dhcpcd, create the ifconfig.eth0 file with the following commands (note that this will overwrite any existing file):

cd /etc/sysconfig/network-devices &&
cat > ifconfig.eth0 << "EOF"
ONBOOT=yes
DHCP_PROG=/sbin/dhcpcd
DHCP_START=<appropriate start parameters>
DHCP_STOP=-k
EOF

For more information on the appropriate DHCP_START and DHCP_STOP values, examine the man page for dhcpcd.


Contents

The dhcpcd package contains dhcpcd.


Description

dhcpcd

dhcpcd is an implementation of the DHCP client specified in RFC2131 and RFC1541 (depending on which options are specified).


Chapter 15. Other

Other methods to connect to large networks are through ISDN and PPPOE interfaces. Pages written for these interfaces are always welcome and will be included in future books, if available.


Chapter 16. Networking Libraries

curl-7.10.4

Introduction to curl

Download location (HTTP):       http://curl.haxx.se/download/curl-7.10.4.tar.bz2
Download location (FTP):        ftp://ftp.sunet.se/pub/www/utilities/curl/curl-7.10.4.tar.bz2
Version used:                   7.10.4
Package size:                   860 KB
Estimated Disk space required:  7.2 MB
Estimated build time:           0.65 SBU

The curl package contains curl and its support library. This is useful for transferring files with URL syntax. For example, curl http://curl.haxx.se/download/curl-7.10.4.tar.gz > curl-7.10.4.tar.gz would download this program's tarball to the current directory. This ability to both download and redirect files can be incorporated into other programs to support functions like streaming media.

curl will utilize:
openssl-0.9.7a and openldap-2.1.17

Installation of curl

Install curl by running the following commands:

./configure --prefix=/usr &&
make &&
make install 


Contents

The curl package contains curl, curl-config and the libcurl libraries.


Description

curl

curl is a client that can get documents from or send documents to any of the following protocols: HTTP, HTTPS (needs openssl), FTP, GOPHER, DICT, TELNET, LDAP (needs openldap) or FILE.


curl-config

curl-config prints information about the last compile, like libraries linked to and prefix setting.


curl library

libcurl provides the functionality of curl to other programs.


wvstreams-3.70

Introduction to wvstreams

Download location (HTTP):       http://open.nit.ca/download/wvstreams-3.70.tar.gz
Download location (FTP):        
Version used:                   3.70
Package size:                   178 KB
Estimated Disk space required:  9.6 MB

The wvstreams package contains the libwvutils, libwvstreams and libwvcrypto libraries. These are needed to compile wvdial.

wvstreams depends on:
openssl-0.9.7a to build the wvcrypto library

Installation of wvstreams

Download the wvstreams patches from http://downloads.linuxfromscratch.org/blfs-patches. The wvcrypto patch is only necessary for openssl-0.9.7 or greater.

Install wvstreams by running the following commands:

patch -Np1 -i ../wvstreams-3.70-wvcrypto.patch &&
patch -Np1 -i ../wvstreams-3.70-wvresolver.patch &&
make PREFIX=/usr LDFLAGS="-lcrypt" &&
make PREFIX=/usr install


Configuring wvstreams

Configuration Information

As with most libraries, there is no configuration to do, save that the library directory i.e. /usr/lib or /usr/local/lib should appear in /etc/ld.so.conf so that ldd can find the shared libraries. After checking that this is the case, /sbin/ldconfig should be run while logged in as root.


Contents

The wvstreams package contains the libwvcrypto libraries, libwvstreams libraries and libwvutils libraries.


Description

wvcrypto

No description is currently available.


wvstreams

No description is currently available.


wvutils

No description is currently available.


gnet-1.1.8

Introduction to gnet

Download location (HTTP):       http://gnetlibrary.org/src/gnet-1.1.8.tar.gz
Download location (FTP):        
Version used:                   1.1.8
Package size:                   348 KB
Estimated Disk space required:  3.1 MB
Estimated build time:           0.42 SBU

The gnet package contains a simple network library. This is useful for supporting TCP sockets, UDP and IP multicast, asynchronous DNS lookup, and more.

gnet depends on:
GLib-2.2.1

Installation of gnet

Install gnet by running the following commands:

./configure --prefix=/usr --enable-glib2 &&
make &&
make install


Command explanations

--enable-glib2 : This switch ensures that gnet will link against GLib2. Configure defaults to GLib, if it is installed, instead of GLib2.


Contents

The gnet package contains libgnet libraries.


Chapter 17. Text Web Browsers

People who are new to Unix-based systems tend to ask the question "Why on earth would I want a text-mode browser? I'm going to compile X and use Konqueror/Mozilla/Whatever!". Those who have been around systems for a while know that when (not if) you manage to mess up your graphical browser install and you need to look up some information on the web, a console based browser will save you. Also, there are quite a few people who prefer to use one of these browsers as their principle method of browsing; either to avoid the clutter and bandwidth which accompanies images or because they may use a text-to-speech synthesizer which can read the page to them (of use for instance to partially sighted or blind users). We currently have installation instructions for three console web browsers:


links-0.98

Introduction to links

Download location (HTTP):       http://artax.karlin.mff.cuni.cz/~mikulas/links/download/links-0.98.tar.gz
Download location (FTP):        
Version used:                   0.98
Package size:                   540 KB
Estimated Disk space required:  4.7 MB

Links is a text-based, frame friendly, WWW browser.

Links will utilize:
openssl-0.9.7a and gpm-1.20.1

Installation of links

Install links by running the following commands:

./configure --prefix=/usr &&
make &&
make install


Configuring links

Config files

~/.links/*


Configuration Information

Links stores its configuration in per-user files in the ~/.links directory. These files are created automatically when links is run.


Contents

The links package contains links.


Description

links

links is a lynx-like alternative character mode WWW browser.


lynx-2.8.4

Introduction to lynx

Download location (HTTP):       http://lynx.isc.org/release/lynx2.8.4.tar.bz2
Download location (FTP):        
Version used:                   2.8.4
Package size:                   1.9 MB
Estimated Disk space required:  16 MB

Lynx is a text based web browser.

lynx depends on:
openssl-0.9.7a

Installation of lynx

Install lynx by running the following commands.

./configure --prefix=/usr --libdir=/etc --with-ssl --with-zlib &&
make &&
make install &&
make DOCDIR=/usr/share/doc/lynx-2.8.4/lynx_doc \
   HELPDIR=/usr/share/doc/lynx-2.8.4/lynx_help install-doc &&
make DOCDIR=/usr/share/doc/lynx-2.8.4/lynx_doc \
   HELPDIR=/usr/share/doc/lynx-2.8.4/lynx_help install-help &&
sed s/"t\/etc"/"t\/usr\/share\/doc\/lynx\-2\.8\.4"/ \
   /etc/lynx.cfg > /etc/lynx.bak &&
mv /etc/lynx.bak /etc/lynx.cfg


Command explanations

--libdir=/etc : For some reason, the configure and make routine for lynx uses libdir as the prefix for the configuration file. We set this to /etc so that the system wide configuration file is /etc/lynx.cfg.

--with-ssl : This enables support for linking SSL into lynx.

--with-zlib : This enables support for linking zlib into lynx.

DOCDIR=... HELPDIR=... : We set these variables to avoid getting the help and documentation files installed under /etc.

sed... mv /etc/lynx.bak /etc/lynx.cfg : This sed command changes the /etc/lynx.cfg file so it looks for the help files in the correct place.


Configuring lynx

Config files

/etc/lynx.cfg


Configuration Information

Various settings such as proxies can be set in the system-wide lynx.cfg file found in /etc.


Contents

The lynx package contains lynx.


Description

lynx

lynx is a general purpose, text-based, distributed information browser for the World Wide Web.


w3m-0.3.2.1

Introduction to w3m

Download location (HTTP):       http://unc.dl.sourceforge.net/sourceforge/w3m/w3m-0.3.2.1.tar.gz
Download location (FTP):        
Version used:                   0.3.2.1
Package size:                   1.1 MB
Estimated Disk space required:  3 MB

w3m is a text based web browser and pager.


Installation of w3m

We configure w3m to use the "monster" model, which includes color, menu, mouse, cookie, and SSL support. Other models include:

baby   - bare minimum
little - color and menu support
mouse  - color, menu, and mouse support
cookie - color, menu, mouse, and cookie support

Install w3m by running the following commands:

./configure -yes -lang=en -model=monster -prefix=/usr &&
make &&
make install


Configuration

w3m expects the GPM library to be located at /usr/lib/libgpm.so.1. To make w3m happy, we will create a symbolic link to the GPM library. You only need to do this if you compiled w3m with mouse support. To create this symbolic link, run the following command:

ln -sf /usr/lib/libgpm.so.?.* /usr/lib/libgpm.so.1


Possible problems with GPM

Depending on what version of GPM you are using, and whether or not any patches were applied to GPM, you might receive the following warning when starting w3m:

*** debug ***: [/usr/src/gpm-1.20.0/src/liblow.c(202)]:

Currently, the only known solution to this problem is to disable mouse support via the -no-mouse parameter. The origin of this problem is currently unknown.


Command explanations

./configure -yes : Set all parameters to their default values.

-lang=en : Set the default language to English.

-model=monster : This sets the build model to monster. Alternative build models are discussed above.


Contents

The w3m package contains w3m and w3mman.


Description

w3m

w3m is a text based web browser and pager.


w3mman

w3mman is an interface to the on-line reference manuals in w3m.


Chapter 18. Basic Networking Programs

ncftp-3.1.5

Introduction to ncftp

Download location (HTTP):        
Download location (FTP):        ftp://ftp.ncftp.com/ncftp/ncftp-3.1.5-src.tar.bz2
Version used:                   3.1.5
Package size:                   392 KB
Estimated Disk space required:  4.8 MB

The ncftp package contains a powerful and flexible interface to the Internet standard File Transfer Protocol. It is intended to replace or supplement the stock ftp program.


Installation of ncftp

There are two ways to build ncftp. The first (and optimal) way, builds most of the functionality as a shared library and then builds and installs the program linked against this library. The second method simply links all of the functionality into the binary statically. This doesn't make the dynamic library available for linking by other applications. You need to choose which method best suits you. Note that the second method does not create an entirely statically linked binary; only the libncftp parts are statically linked in, in this case. Be aware that building and using the shared library is covered by the Clarified Artistic License; however, developing applications that utilize the shared library is subject to a different license.

To install ncftp using the first (and optimal) method, run the following commands:

./configure --prefix=/usr &&
cd libncftp &&
make shared &&
make soinstall &&
cd .. &&
make &&
make install

To install ncftp using the second method (with the libncftp functionality linked in statically) run the following commands:

./configure --prefix=/usr &&
make &&
make install


Command explanations

cd libncftp && 
make shared && 
make soinstall
These commands make and install the dynamic library libncftp which is then used to link against when compiling the main program.


Configuring ncftp

Config files

~/.ncftp/*; especially ~/.ncftp/prefs_v3


Configuration Information

Most ncftp configuration is done while in the program and the configuration files are dealt with automatically. One exception to this is ~/.ncftp/prefs_v3. There are various options to alter in there, including:

yes-i-know-about-NcFTPd=yes : This disables the splash screen advertising the NcFTPd server.

There are other options in the prefs_v3 file. Most of these are self-explanatory.


Contents

The ncftp package contains ncftp, ncftpbatch, ncftpbookmarks, ncftpget, ncftpls, ncftpput and ncftpspooler.


Description

ncftp

A browser program for File Transfer Protocol.


ncftpbatch

Individual batch FTP job processor.


ncftpbookmarks

NcFTP Bookmark Editor (NCurses-based).


ncftpget

Internet file transfer program for scripts.


ncftpls

Internet file transfer program for scripts.


ncftpput

Internet file transfer program for scripts.


ncftpspooler

Global batch FTP job processor daemon.


OpenSSH-3.6.1p1 client

The ssh client is a secure replacement for telnet. If you want to install it, the instructions can be found in Chapter 23 - openssh-3.6.1p1. Note that if you only want to use the client, you do not need to run the server and so do not need the startup script and links. In accordance with good practice, only run the server if you actually need it (and if you don't know whether you need it or not, it's likely that you don't!).


cvs-1.11.5

Introduction to cvs

Download location (HTTP):       http://ftp.cvshome.org/cvs-1.11.5/cvs-1.11.5.tar.gz
Download location (FTP):        ftp://ftp.cvshome.org/pub/cvs-1.11.5/cvs-1.11.5.tar.gz
Version used:                   1.11.5
Package size:                   2.6 MB
Estimated Disk space required:  14 MB

CVS is the concurrent versioning system. This is useful for projects on which multiple people are working or where archives of previous versions of files need to be kept.

The cvs-1.11.5-zlib.patch patch is used to compile CVS dynamically against zlib instead of using the version included with the CVS source. This has the advantage that if (or when) there is a security vulnerability found in zlib, you don't need to wait for a new version of CVS to appear as once you have upgraded zlib, the problem will be fixed. You can download the cvs patch at http://downloads.linuxfromscratch.org/blfs-patches.


Installation of cvs

If you are going to use the patch mentioned above, first apply it:
patch -Np1 -i ../cvs-1.11.5-zlib.patch

Install cvs by running the following commands:

./configure --prefix=/usr &&
make &&
make install


Configuring cvs

Config files

~/.cvsrc, ~/.cvswrappers


Configuration Information

~/.cvsrc is the main cvs configuration file. This file is used by users to specify defaults for different cvs commands, for example to make all cvs diff commands run with -u, a user would add diff -u to their .cvsrc file.

~/.cvswrappers specifies wrappers to be used in addition to those specified in the CVSROOT/cvswrappers file in the repository.


Contents

The cvs package contains cvs, cvsbug and rcs2log.


Description

cvs

This is the main program file for the concurrent versioning system.


cvsbug

This is used to send problem reports about CVS to a central support site.


rcs2log

RCS to ChangeLog generator.


wget-1.8.2

Introduction to wget

Download location (HTTP):       http://ftp.gnu.org/gnu/wget/wget-1.8.2.tar.gz
Download location (FTP):        ftp://ftp.gnu.org/gnu/wget/wget-1.8.2.tar.gz
Version used:                   1.8.2
Package size:                   1.1 MB
Estimated Disk space required:  5.4 MB

The wget package contains wget. This is utility useful for non-interactive downloading of files from the Web.

wget will utilize:
openssl-0.9.7a

Installation of wget

Install wget by running the following commands:

./configure --prefix=/usr --sysconfdir=/etc &&
make &&
make install


Command explanations

--prefix=/usr " : This compiles and installs wget into the /usr hierarchy instead of /usr/local.

--sysconfigdir=/etc : This relocates the configuration file from /usr/etc to /etc.


Configuring wget

Config files

/etc/wgetrc, ~/.wgetrc

There are no required changes in these files.


Contents

The wget package contains wget.


Description

wget

wget retrieves files from the Web using the HTTP, HTTPS and FTP protocols. It is designed to be non-interactive, for background or unattended operations.


tcpwrappers-7.6

Introduction to tcpwrappers

Download location (HTTP):       http://files.ichilton.co.uk/nfs/tcp_wrappers_7.6.tar.gz
Download location (FTP):       
Version used:                   7.6
Package size:                   100 KB
Estimated Disk space required:  720 KB
Estimated build time:           0.16 SBU

Required patch:
Download location (HTTP):        http://files.ichilton.co.uk/nfs/tcp_wrappers_7.6.diff.gz

The tcpwrappers package provides daemon wrapper programs that report the name of the client requesting network services and the requested service.


Installation of tcpwrappers

Install tcpwrappers with the following commands:

patch -Np1 -i ../tcp_wrappers_7.6.diff &&
make REAL_DAEMON_DIR=/usr/sbin linux &&
cp libwrap.a /usr/lib &&
cp tcpd.h /usr/include &&
cp safe_finger /usr/sbin &&
cp tcpd /usr/sbin &&
cp tcpdchk /usr/sbin &&
cp tcpdmatch /usr/sbin &&
cp try-from /usr/sbin &&
cp -av *.3 /usr/share/man/man3 &&
cp -av *.5 /usr/share/man/man5 &&
cp -av *.8 /usr/share/man/man8


Command explanations

patch -Np1 -i ../tcp_wrappers_7.6.diff : This patch alters the original path and logging facility of the original tcpwrappers program.


Configuring tcpwrappers

Config files

/etc/hosts.allow, /etc/hosts.deny

File protections: the wrapper, all files used by the wrapper, and all directories in the path leading to those files, should be accessible but not writable for unprivileged users (mode 755 or mode 555). Do not install the wrapper set-uid.

Then perform the following edits on the /etc/inetd.conf configuration file :
finger stream tcp nowait nobody /usr/sbin/in.fingerd in.fingerd
becomes:
finger stream tcp nowait nobody /usr/sbin/tcpd in.fingerd

Note: The finger server is used as an example here.

Similar changes must be made if xinetd is used, with the emphasis being on calling /usr/sbin/tcpd instead of calling the service daemon directly, and passing the name of the service daemon to tcpd.


Contents

The tcpwrappers package contains safe_finger tcpd tcpdchk tcpdmatch try-from tcpd, tcpdchk, tcpdmatch, try-from and safe_finger.


Description

tcpd

tcpd is the main access control daemon for all internet services, which inetd or xinetd will run instead of running the requested service daemon.


tcpdchk

tcpdchk is a tool to examine a tcpd wrapper configuration and report problems with it.


tcpdmatch

tcpdmatch is used to predict how the tcp wrapper would handle a specific request for a service.


try-from

try-from can be called via a remote shell command to find out if the host name and address are properly recognized.


safe_finger

safe_finger is a wrapper for the finger utility, to provide automatic reverse name lookups.


portmap-5

Introduction to portmap

Download location (HTTP):       http://files.ichilton.co.uk/nfs/portmap_5.orig.tar.gz
Download location (FTP):        
Version used:                   5
Package size:                   20 KB
Estimated Disk space required:  250 KB
Estimated build time:           0.03 SBU

Required patch:
Download location (HTTP):        http://files.ichilton.co.uk/nfs/portmap_5-1.diff.gz

The portmap package is a more secure replacement for the original SUN portmap package. Portmap is used to forward rpc requests to rpc daemons such as NFS and NIS.

portmap depends on:
tcpwrappers-7.6


Installation of portmap

Install portmap with the following commands:

patch -Np1 -i ../portmap_5-1.diff &&
mkdir /usr/share/doc/portmap &&
make &&
make install


Command explanations

patch -Np1 -i ../portmap_5-1.diff : This patch provides added security for the portmap package, including only allowing portmap table changes from the local host.

mkdir /usr/share/doc/portmap : This directory must be created before installation.


Configuring portmap

Config files

/etc/rc.d/init.d/portmap


Create the portmap boot script

cat > /etc/rc.d/init.d/portmap << "EOF"
#!/bin/sh
# Begin /etc/rc.d/init.d/portmap

source /etc/rc.d/init.d/functions

case "$1" in
        start)
                echo "Starting RPC Portmap"
                loadproc /sbin/portmap
                ;;

        stop)
                echo "Stopping Portmap"
                killproc /sbin/portmap
                ;;

        restart)
                $0 stop
                /bin/sleep 1
                $0 start
                ;;

        *)
                echo "Usage: $0 {start|stop|restart}"
                exit 1
        ;;

esac

# End /etc/rc.d/init.d/portmap
EOF
chmod 754 /etc/rc.d/init.d/portmap &&
cd /etc/rc.d/init.d &&
ln -sf ../init.d/portmap ../rc0.d/K49portmap &&
ln -sf ../init.d/portmap ../rc1.d/K49portmap &&
ln -sf ../init.d/portmap ../rc2.d/K49portmap &&
ln -sf ../init.d/portmap ../rc3.d/S22portmap &&
ln -sf ../init.d/portmap ../rc4.d/S22portmap &&
ln -sf ../init.d/portmap ../rc5.d/S22portmap &&
ln -sf ../init.d/portmap ../rc6.d/K49portmap


Contents

The portmap package contains portmap, pmap_dump and pmap_set.


Description

portmap

portmap is the rpc port mapper.


pmap_dump

pmap_dump saves the port mapping table to an ascii file.


pmap_set

pmap_set restores the port mapping table from an ascii file.


inetutils-1.4.2

Introduction to inetutils

Download location (HTTP):       
Download location (FTP):        ftp://ftp.gnu.org/gnu/inetutils/inetutils-1.4.2.tar.gz
Version used:                   1.4.2
Package size:                   1018 KB
Estimated Disk space required:  2.3 MB

The inetutils package contains network client's and server's.

inetutils will utilize:
Linux_PAM-0.77

Installation of inetutils

Install inetutils by running the following commands:

./configure --prefix=/usr --disable-syslogd \
	--libexecdir=/usr/sbin --infodir=/usr/share/info \
	--mandir=/usr/share/man --with-wrap &&
make &&
make install 


Command explanations

--disable-dependancy-tracking : This option speeds up one time builds.

--disable-syslogd : This option prevents inetutils installing the System Log Daemon, which is installed in the LFS Book.

--with-wrap : This option makes inetutils compile against tcp-wrappers. Omit this option if you didn't install tcp-wrappers.

--with-pam : This option makes inetutils compile against for Linux-PAM. Add this option if you want to utilize PAM.


Contents

The inetutils package contains network clients and servers.


Description

ftp

ARPANET file transfer program.


logger

make entries in the system log.


ping

send ICMP ECHO_REQUEST packets to network hosts.


rcp

remote file copy.


rlogin

remote login.


rsh

remote shell.


syslogd

log systems messages.


talk

talk to another user.


telnet

user interface to the TELNET protocol.


tftp

trivial file transfer program.


whois

client for whois directory service.


ftpd

DARPA Internet File Transfer Protocol server.


inetd

internet super-server.


rexecd

remote execution server.


rlogind

remote login server.


rshd

remote shell server.


talkd

remote user communication server.


telnetd

DARPA TELNET protocol server.


tftpd

Internet Trivial File Transfer Protocol server.


uucpd

No description available.


Chapter 19. Basic Networking Utilities

traceroute-1.4a12

Introduction to traceroute

Download location (HTTP):       
Download location (FTP):        ftp://ftp.ee.lbl.gov/traceroute.tar.gz
Version used:                   1.4a12
Package size:                   35 KB
Estimated Disk space required:  75 KB

The traceroute package contains the traceroute program, which is used to display the network route that packets take to reach a specified host. This is a standard network troubleshooting tool. If you find yourself unable to connect to another system, traceroute can help pinpoint the problem.


Installation of traceroute

Install traceroute by running the following commands:

cp Makefile.in Makefile.in.bak &&
sed 's/-o bin/-o root/' Makefile.in.bak > Makefile.in &&
./configure --prefix=/usr &&
make &&
make install &&
make install-man


Command explanations

sed 's/-o bin/-o root/'...
Adjusts the Makefile so that the program is installed with user root instead of user bin (which doesn't exist on a default LFS system).

make install : Installs traceroute setuid root in the /usr/sbin directory. This makes it possible for all users to execute traceroute. For absolute security, turn off the setuid bit in traceroute's file permissions with the command:
chmod 0755 /usr/sbin/traceroute

The risk is that if a security problem such as a buffer overflow were ever found in the traceroute code, a regular user on your system could gain root access if the program is setuid root. Removing the setuid permission of course also makes it impossible for users other than root to utilize traceroute, so decide what's right for your individual situation.

Now, to be completely FHS compliant, as is our aim, if you do leave the traceroute binary setuid root, then you should move traceroute to /usr/bin with the following command:
mv /usr/sbin/traceroute /usr/bin

This ensures that the binary is in the path for non-root users.


Contents

The traceroute package contains traceroute.


Description

traceroute

Traceroute does basically what it says: it traces the route your packets take from the host you are working on to another host on a network, showing all the intermediate steps (routers) along the way.


nmap-3.20

Introduction to nmap

Download location (HTTP):       http://download.insecure.org/nmap/dist/nmap-3.20.tgz
Download location (FTP):        
Version used:                   3.20
Package size:                   901 KB
Estimated Disk space required:  8 MB

Nmap is a utility for network exploration and security auditing. It supports ping scanning, port scanning and TCP/IP fingerprinting.


Installation of nmap

Install nmap by running the following commands:

./configure --prefix=/usr &&
make &&
make install


Contents

The nmap package contains nmap.


Description

nmap

Nmap is a utility for network exploration and security auditing. It supports ping scanning, port scanning and TCP/IP fingerprinting.


whois-4.6.3

Introduction to whois

Download location (HTTP):       http://www.linux.it/~md/software/whois_4.6.3.tar.gz
Download location (FTP):        ftp://ftp.debian.org/debian/pool/main/w/whois/whois_4.6.3.tar.gz
Version used:                   4.6.3
Package size:                   34 KB
Estimated Disk space required:  60 KB

whois is a client-side application which queries the whois directory service for information pertaining to a particular domain name.


Installation of whois

Install whois by running the following commands:

make &&
make prefix=/usr install


Contents

The whois package contains whois.


Description

whois

whois is a client-side application which queries the whois directory service for information pertaining to a particular domain name.


Chapter 20. Basic Networking Programs

procmail-3.22

Introduction to procmail

Download location (HTTP):       http://www.procmail.org/procmail-3.22.tar.gz
Download location (FTP):        ftp://ftp.procmail.net/pub/procmail/procmail-3.22.tar.gz
Version used:                   3.22
Package size:                   338 KB
Estimated Disk space required:  1.5 MB

The procmail package contains an autonomous mail processor. This is useful for filtering and sorting incoming mail.


Installation of procmail

Install procmail by running the following commands:

make BASENAME=/usr install &&
make install-suid


Command explanations

BASENAME=/usr : The equivalent of ./configure --prefix=/usr on other package installations.

make install-suid : Modifies permissions of the installed files.


Configuring procmail

Config files

/etc/procmailrc, ~/.procmailrc


Configuration Information

Recipes have to be written and placed in your ~/.procmailrc for execution. The procmailex man page is the starting place to learn how to write recipes.


Contents

The procmail package contains procmail, formail, lockfile and mailstat.


Description

procmail

procmail is an autonomous mail processor. It performs all the functions of a MDA (Mail Delivery Agent).


formail

formail is a filter that can be used to format mail into mailbox format.


lockfile

lockfile is a utility that can lock a file for single use interactively or in a script.


mailstat

mailstat prints a summary report of mail that has been filtered by procmail since the last time mailstat was ran.


fetchmail-6.2.2

Introduction to fetchmail

Download location (HTTP):       http://www.catb.org/~esr/fetchmail/fetchmail-6.2.2.tar.gz
Download location (FTP):        
Version used:                   6.2.2
Package size:                   1.2 MB
Estimated Disk space required:  5.7 MB
Estimated build time:           0.22 SBU

The fetchmail package contains the fetchmail program. "It retrieves mail from remote mail servers and forwards it to your local (client) machine's delivery system, so it can then be read by normal mail user agents."

fetchmail depends on:
openssl-0.9.7a and a local MDA (procmail-3.22)

Installation of fetchmail

Install fetchmail by running the following commands:

./configure --prefix=/usr --with-ssl --enable-fallback=procmail &&
make &&
make install


Command explanations

--with-ssl : This enables SSL if found, so that you can handle connections to secure POP3 and IMAP servers.

--enable-fallback=procmail : This tells fetchmail to hand incoming mail to procmail for delivery if your port 25 mail server is not present or not responding.


Configuring fetchmail

Config files

~/.fetchmailrc


Configuration Information

set logfile /var/log/fetchmail.log
set no bouncemail
set postmaster root

poll SERVERNAME :
        user "username" pass "password";
        mda "/usr/bin/procmail -f %F -d %T";

Is an example configuration that should suffice for most people. You can add as many users and servers as you need using the same syntax.

man fetchmail : Look for the section near the bottom named CONFIGURATION EXAMPLES it gives some quick examples too. There are countless other config options once you get used to it.


Contents

The fetchmail package contains fetchmail and fetchmailconf.


Description

fetchmail

When executed as a user this will source that users ~/.fetchmailrc and download the appropriate mail. When run as root ALL users who have a .fetchmailrc will have their mail downloaded and delivered accordingly.


fetchmailconf

This program provides a Tk GUI interface to your ~/.fetchmailrc making it much easier to configure. However you will require, Python, and it must have the Tkinker module available.


mutt-1.4.1i

Introduction to mutt

Download location (HTTP):       
Download location (FTP):        ftp://ftp.mutt.org/mutt/mutt-1.4.1i.tar.gz
Version used:                   1.4.1i
Package size:                   2.5 MB
Estimated Disk space required:  12 MB
Estimated build time:           0.69 SBU

The mutt package contains a Mail User Agent. This is useful for reading, writing, replying, saving, and deleting your email.


Installation of mutt

Mutt requires a group named 'mail'. You can add this group, if it does not exist, with this command:
groupadd mail

If you did not install a MTA, such as postfix-2.0.7 or sendmail-8.12.9, you need to modify the ownership of /var/mail with this command:
chgrp mail /var/mail

Install mutt by running the following commands:

./configure --prefix=/usr --sysconfdir=/etc &&
make &&
make install 


Command explanations

--sysconfdir=/etc : This installs the configuration files into /etc instead of /usr/etc.


Configuring mutt

Config files

/etc/Muttrc, ~/.muttrc, /etc/mime.types, ~/.mime.types


Configuration Information

No changes in these files are necessary to begin using mutt. When you are ready to make changes, the man page for muttrc is a good starting place.


Contents

The mutt package contains mutt, flea, muttbug, mutt_dotlock, pgpwrap and pgpring.


Description

mutt

mutt is a Mail User Agent (MUA) which enables you to read, write and delete your email.


flea

flea is a bug submitter for mutt.


muttbug

muttbug is a script that executes flea.


mutt_dotlock

mutt_dotlock implements the mail spool file lock.


pgpwrap

No description available.


pgpring

No description available.


pine-4.53

Introduction to Pine

Download location (HTTP):       http://mirror.sit.wisc.edu/pub/net/mail/pine/pine4.53.tar.bz2
Download location (FTP):        ftp://ftp.cac.washington.edu/pine/pine4.53.tar.bz2
Version used:                   4.53
Package size:                   2.7 MB
Estimated Disk space required:  48 MB

Required patches:
Download location (FTP):        ftp://ftp.linuxfromscratch.org/blfs-patches/cvs/pine-4.44-fhs.patch.bz2

The Pine package contains the Pine Mail User Agent and several server daemons for various mail protocols, in addition to some nice file and directory editing/browsing programs.


Installation of Pine

Install Pine by running the following commands:

patch -Np1 -i ../pine-4.44-fhs.patch &&
./build slx DEBUG='-Os ' MAILSPOOL='/var/mail' \
    SSLDIR=/usr SSLCERTS=/etc/ssl/certs &&
cp doc/pine.1 /usr/share/man/man1 &&    
cd bin &&
install pine /usr/bin


Command explanations

patch -Np1 -i ../pine-4.44-fhs.patch : This patch will make Pine use /etc for configuration files.

The build procedure for Pine is somewhat unusual, in that options usually passed as ./configure options or housed in $CFLAGS must all be passed on the command line to the ./build script.

./build slx : Pine offers quite a few target platforms, slx specifies Linux using -lcrypt to get the crypt function. See the doc/pine-ports file for more information and other authentication options.

DEBUG='-Os ' : Optimize binaries for size.

MAILSPOOL='/var/mail' : Location of mail spool files, /var/mail.

cd bin &&
install pine /usr/bin
This is all that is required to install Pine, all other executables may be installed in the same manner.


Configuring Pine

Config files

~/.pinerc


Configuration Information

The pine executable needs no global configuration to use. Users set Pine options in ~/.pinerc using an internal configuration menu.


Contents

The pine package contains pine, pico, pilot, imapd, ipop2d, ipop3d, mtest, rpload and rpdump.


Description

pine

pine is the Pine mail user agent.


pico

pico is a stand-alone editor, similar to the Pine internal message composer.


pilot

pilot is a file and directory navigator and browser.


imapd

imapd is the IMAP server daemon.


ipop2d

ipop2d is an IMAP to POP2 conversion server.


ipop3d

ipop3d is an IMAP to POP3 conversion server.


mtest

mtest is a minimal IMAP mail user agent, used for debugging.


rpload

rpload is the Pine remote data utility, used to convert local Pine configuration files or address books into remote configurations or address books.


rpdump

rpdump is used to copy data from remote Pine configuration files or address books into a local file.


slrn-0.9.7.4

Introduction to slrn

Download location (HTTP):       http://telia.dl.sourceforge.net/sourceforge/slrn/slrn-0.9.7.4.tar.bz2
Download location (FTP):        ftp://ftp.fu-berlin.de/pub/unix/news/slrn/slrn-0.9.7.4.tar.gz
Version used:                   0.9.7.4
Package size:                   850 KB
Estimated Disk space required:  2.1 MB

slrn is a slang-based newsreader, capable of reading local news spools as well as groups from an NNTP server. Small local news spools can also be created with the use of the slrnpull program included in the slrn distribution.

slrn depends on:
slang and an MTA, found in Chapter 22.

Installation of slrn

Install slrn by running the following commands:

./configure --prefix=/usr --with-slrnpull &&
make LDFLAGS="-ldl" &&
make install


Command explanations

./configure --prefix=/usr : Specify /usr to install to instead of /usr/local.

./configure --with-slrnpull : Build the slrnpull executable.


Configuring slrn

Config files

$HOME/.jnewsrc, $HOME/.jnewsrc.time, $HOME/.slrnrc


Configuration Information

The first time slrn is run, the $HOME/.jnewsrc file must be created.Create the $HOME/.jnewsrc file with the following command:

 slrn -f $HOME/.jnewsrc --create


Contents

The slrn package contains slrn and slrnpull.


Description

slrn

slrn is the slang-based news reader.


slrnpull

slrnpull is used to pull a small news feed from an NNTP server for offline reading.


Other mail and news progs

pan-0.13.4 is a GTK2 based newsreader program.

KNode is a QT based newsreader program from kdenetwork-3.1.

KMail is a QT based mail client from kdenetwork-3.1.

balsa-2.0.10 is a GTK2 based mail client.

mozilla-1.3 includes both a mail client and newsreader in its installation.


Chapter 21. DJB's Utilities

daemontools-0.76

Introduction to Daemontools

Download location (HTTP):       http://cr.yp.to/daemontools/daemontools-0.76.tar.gz
Download location (FTP):        
Version used:                   0.76
Package size:                   162 KB
Estimated Disk space required:  1.8 MB
Additional downloads:
daemontools errno patch

The daemontools package is a replacement for inetd or xinetd. The main reason for using it here is because it is recommended for use with qmail and djbdns.


Installation of daemontools

Install daemontools by running the following commands:

cd admin/daemontools-0.76 && 
patch -Np1 -i ../../daemontools-0.76.errno.patch &&
package/compile &&
cd package && 
sed 's|command|usr/sbin|' boot.inittab > boot.inittab~ && 
mv boot.inittab~ boot.inittab &&
cd ../command &&
sed -e 's|/command:/usr/local/bin:/usr/local/sbin:||' \
    -e 's|command|usr/sbin|' \
    -e 's|/service|/etc/service|g' svscanboot > svscanboot~ &&
mv svscanboot~ svscanboot &&
chmod 555 svscanboot &&
cp * /usr/sbin &&
cd ../package && 
cat /etc/inittab boot.inittab > /etc/inittab~ && 
mv -f /etc/inittab~ /etc/inittab && 
mkdir /etc/service &&
telinit Q


Command explanations

The first thing to understand in installing any package written by Daniel J. Bernstein, and this includes qmail, djbdns and ucspi-tcp in addition to daemontools, is that he is willing to completely disregard standards if his idea of the correct thing to do differs from an particular standard. Professor Bernstein is a standards body unto himself when it comes to his own software.

It is therefore necessary to make quite a few changes to the installation commands for his packages to get them to install in a manner that is compliant with the Filesystem Hierarchy Standard (FHS). Most of the following commands are due to this difficulty.

cd admin/daemontools-0.76 : First off, the package is unpacked in an admin directory. You will find the actual packages two directory levels below this.

package/compile : This command actually compiles the source and prepares the binaries.

Since we are installing the binaries in /usr/sbin rather than creating a non-standard /command directory, several paths have to be changed:

sed 's|command|usr/sbin|' boot.inittab > boot.inittab~
mv boot.inittab~ boot.inittab

In boot.inittab, /command/svscanboot is changed to /usr/sbin/svscanboot.

sed -e 's|/command:/usr/local/bin:/usr/local/sbin:||' \
    -e 's|command|usr/sbin|' \
    -e 's|/service|/etc/service|g' svscanboot > svscanboot~ &&

Here various paths are adjusted in the svscanboot script. In our setup svscan will check the /etc/service directory instead of the /service directory for daemons to run.

cp * /usr/sbin : We must manually copy the binaries to the /usr/sbin directory.

cat /etc/inittab boot.inittab > /etc/inittab~
mv -f /etc/inittab~ /etc/inittab
These commands append a line to /etc/inittab so that init will launch the svscanboot script.

mkdir /etc/service : This command creates the daemontools control directory, which - even if empty - needs to exist for daemontools to run properly.

telinit Q : This command tells the init process to re-read its configuration file (inittab) and act upon any changes that have been made. The svscanboot script is started.


Contents

The daemontools package contains svscanboot, svscan, supervise, svc, svok, svstat, fghack, pgrphack, readproctitle, multilog, tai64n, tai64nlocal, setuidgid, envuidgid, envdir, softlimit and setlock. More detailed descriptions of these commands may be found at http://cr.yp.to/daemontools.html.


Description

svscanboot

svscanboot is simply a script that calls svscan and pipes its output to readproctitle.


svscan

svscan checks the service directory for daemons to run and starts a supervise process for each run script that it finds.


supervise

supervise runs the run script passed to it by svscan and monitors the process the script starts so that if it dies, supervise restarts it.


svc

svc sends signals to processes being run under supervise.


svok

svok checks to see that supervise is running in the directory passed to it.


svstat

svstat prints the status of processes monitored by supervise.


fghack

fghack prevents processes from putting themselves into the background.


pgrphack

pgrphack runs a process in a separate process group.


readproctitle

readproctitle displays log entries in the output of ps.


multilog

multilog is a logging program. It takes output from a daemon and appends it to any number of logs.


tai64n

tai64n is a timestamp generating program.


tai64nlocal

tai64nlocal converts output of tai64n into a human readable format.


setuidgid

setuidgid runs a specified program under a given account's uid and gid.


envuidgid

envuidgid performs the same function as setuidgid, but sets environment variables $UID and $GID equal to the uid and gid of the account specified.


envdir

envdir runs a given program with environment variables specified by files in a directory.


softlimit

softlimit allows resource limits to be set for a given program.


setlock

setlock locks a file and runs a program.


daemontools-man-0.76

Introduction to Daemontools-man

Download location (HTTP):       http://smarden.org/pape/djb/manpages/daemontools-0.76-man.tar.gz
Download location (FTP):        
Version used:                   0.76
Package size:                   8 KB
Estimated Disk space required:  76 KB

The Daemontools package does not come with man pages, so install this package if you want online help with the daemontools programs.


Installation of daemontools

Install daemontools by running the following commands:

cd daemontools-man && 
gzip -9 *.8 &&
package/compile &&
cp *.8.gz /usr/share/man/man8/


Command explanations

gzip -9 *.8 : You can compress the man pages to save space, but it isn't needed for the man pages to work.


Contents

The daemontools-man package contains man pages for the daemontools commands envdir, envuidgid, fghack, multilog, pgrphack, readproctitle, setlock, setuidgid, softlimit, supervise, svc, svok, svscan, svscanboot, svstat, tai64n and tai64nlocal.


ucspi-tcp-0.88

Introduction to ucspi-tcp

Download location (HTTP):       http://cr.yp.to/ucspi-tcp/ucspi-tcp-0.88.tar.gz
Download location (FTP):        
Version used:                   0.88
Package size:                   56 KB
Estimated Disk space required:  2 MB
Additional downloads:
ucspi-tcp errno patch

The ucspi-tcp package consists of a suite of tools that allow the easy creation of client-server tcp daemons. Tcpserver is a more secure alternative to inetd. It has built in functionality for rule based access control, and will gracefully defer connections when the configurable maximum load is reached, unlike inetd. Tcpserver is also recommended for use with Qmail, and was written by the same author.


Installation of ucspi-tcp

Install ucspi-tcp by running the following commands:

patch -Np1 -i ../ucspi-tcp-0.88.errno.patch &&
sed 's|/usr/local|/usr|' conf-home > conf-home~ &&
mv conf-home~ conf-home &&
sed 's/bin/sbin/' hier.c > hier.c~ &&
mv hier.c~ hier.c &&
make &&
make setup check


Command explanations

sed 's|/usr/local|/usr|' conf-home > conf-home~
mv conf-home~ conf-home
sed 's/bin/sbin/' hier.c > hier.c~
mv hier.c~ hier.c
These commands change the installation directory to /usr/sbin from the default of /usr/local/bin. Since these tools are used in conjunction with daemons, they don't make much sense in general user directories. However, some of the example programs and the tcpclient program might be of use to non-root users. If you wish to make these available, then we would suggest installing as above, and then executing the following commands:
cd /usr/sbin
mv tcpclient *@ mconnect delcr addcr tcpcat /usr/bin
This will place the client related programs into /usr/bin for general use.


Contents

The ucspi-tcp package contains tcpserver, tcprules, tcprulescheck, argv0, fixcrio, recordio, rblsmtpd, tcpclient, who@, date@, finger@, http@, tcpcat, mconnect, addcr and delcr

You can also find detailed descriptions of each of these programs at http://cr.yp.to/ucspi-tcp/tcpserver.html, but here is a brief summary:


Description

tcpserver

tcpserver listens for incoming tcp connections on a given port, and runs a program of your choosing in response to a connection.


tcprules

tcprules compiles rules that govern access control for tcpserver into a fast access database format.


tcprulescheck

tcprulescheck makes it possible to see how tcpserver will react to connections from a given address without actually having to connect via that address. This is useful for checking to see if the access control rules you are using are doing what you expected.


argv0

argv0 runs a given program with a specified 0th argument.


fixcrio

fixcrio inserts carriage returns at the end of lines when they are missing.


recordio

recordio records all input and output of a program given as an argument.


rblsmtpd

rblsmtpd is a spam blocking program that works in conjunction with your smtp daemon and tcpserver.


tcpclient

tcpclient creates a connection to a tcp port for a given program.


who@

who@ is a demonstration program using tcpclient that has the functionality of the rwho program. It requires a server running sysstat on port 11.


date@

date@ is a demonstration program using tcpclient that will return the system time of a remote host which is running a daytime service on port 13.


finger@

finger@ is a demonstration program using tcpclient that mimics the functionality of the finger program. It requires a server running fingerd on port 79.


http@

http@ downloads web pages from web servers.


tcpcat

tcpcat connects to a tcp port and prints all that is returned from the port.


mconnect

mconnect connects to a tcp port, delivers any input specified to the port, and prints any output from the port.


addcr

addcr adds carriage returns to files. This and delcr are useful for converting between Windows to UNIX file formats.


delcr

delcr removes carriage returns from files.

VI. Server Networking


Chapter 22. Mail Server Software

MTAs are the programs which transport mail from one machine to the other. The traditional MTA is sendmail however there are several other choices.

As well as SMTP servers there is a POP server (qpopper). An IMAP server (Courier-IMAP) is available for inclusion in the next version.


postfix-2.0.7

Introduction to postfix

Download location (HTTP):       
Download location (FTP):        ftp://ftp.porcupine.org/mirrors/postfix-release/official/postfix-2.0.7.tar.gz
Version used:                   2.0.7
Package size:                   1.3 MB
Estimated Disk space required:  71.9 MB
Estimated build time:           0.92

The postfix package contains a Mail Transport Agent (MTA). This is useful for sending email to other users of your host machine. It can also be configured to be a central mail server for your domain, a mail relay agent or simply a mail delivery agent to your local Internet Service Provider (ISP).

postfix depends on: 
db-4.1.25

Installation of postfix

Before you compile the program, you need to create users and groups that will be expected to be in place when the install script executes. Add the users and groups with the following commands:

groupadd postfix &&
groupadd postdrop &&
groupadd -g 65534 nogroup &&
useradd -c postfix -d /dev/null -g postfix -s /bin/false postfix &&
useradd -c nobody -d /home -g nogroup -s /bin/bash -u 65534 nobody &&
chown postfix:postfix /var/mail

Install postfix by running the following commands:

make &&
make install

The install script will enter an interactive stage with questions in the form of '*_directory:[default]input'. Defaults can be accepted in all but three cases. The following shows the three cases and the modified response.

daemon_directory:[/usr/libexec/postfix]/usr/sbin
manpage_directory:[/usr/local/man]/usr/share/man
sample_directory:[/etc/postfix]/usr/share/doc/postfix

The final installation step is to install the program's documentation with this command:

cp -rf html/* /usr/share/doc/postfix


Configuring postfix

Config files

/etc/aliases, /etc/postfix/main.cf and /etc/postfix/master.cf


Configuration Information

cat > /etc/aliases << "EOF"
# Begin /etc/aliases

MAILER-DAEMON:    postmaster
postmaster:       root

root:             LOGIN
# End /etc/aliases
EOF

The /etc/aliases file that was just created, the main.cf and the master.cf must be personalized for your system. The aliases file needs your non-root login identity so mail addressed to root can be forwarded to you at the user level. The main.cf file needs your fully qualified hostname. All of these edits can be done with sed commands entered into the console with appropriate substitutions of your non-root login name for [user] and your fully qualified hostname for [localhost.localdomain]. You will find the main.cf file is self documenting, so load it into your editor to make the changes you need for your situation.

cp /etc/aliases /etc/aliases.bak
cp /etc/postfix/main.cf /etc/postfix/main.cf.bak
cp /etc/postfix/master.cf /etc/postfix/master.cf.bak
sed "s/LOGIN/[user]/" /etc/aliases.bak > /etc/aliases
sed "s/#myhostname = host.domain.tld/myhostname = \ 
	[localhost.localdomain]/" \
	/etc/postfix/main.cf.bak > /etc/postfix/main.cf
/usr/bin/newaliases
/usr/sbin/postfix start


postfix init.d script

To automate the running of postfix, use following command to create the init.d script:

cat > /etc/rc.d/init.d/postfix << "EOF"
#!/bin/sh
# Begin $rc_base/init.d/postfix

# Based on sysklogd script from LFS-3.1 and earlier.
# Rewritten by Gerard Beekmans  - gerard@linuxfromscratch.org

source /etc/sysconfig/rc
source $rc_functions

case "$1" in

        start)
        echo "Starting Postfix..."
        loadproc postfix start
        ;;

        stop)
        echo "Stopping Postfix..."
        loadproc postfix stop
        ;;
		
        reload)
        echo "Reloading Postfix..."
        loadproc postfix reload
        ;;

        restart)
        $0 stop
        sleep 1
        $0 start
        ;;

        *)
        echo "Usage: $0 {start|stop|reload|restart}"
        exit 1
        ;;
esac

# End $rc_base/init.d/postfix
EOF
chmod 755 /etc/rc.d/init.d/postfix

Create the symbolic links to this file in the relevant rc.d directory with the following commands:
cd /etc/rc.d/init.d &&
ln -sf ../init.d/postfix ../rc0.d/K25postfix &&
ln -sf ../init.d/postfix ../rc1.d/K25postfix &&
ln -sf ../init.d/postfix ../rc2.d/K25postfix &&
ln -sf ../init.d/postfix ../rc3.d/S35postfix &&
ln -sf ../init.d/postfix ../rc4.d/S35postfix &&
ln -sf ../init.d/postfix ../rc5.d/S35postfix &&
ln -sf ../init.d/postfix ../rc6.d/K25postfix


Contents

The postfix package contains bounce, cleanup, error, flush, lmtp, local, mailq, master, newaliases, nqmgr, pickup, pipe, postalias, postcat, postconf, postdrop, postfix, postkick, postlock, postlog, postmap, postqueue, postsuper, qmgr, qmqpd, sendmail, showq, smtp, smtpd, spawn, trivial-rewrite, and virtual.


Description

postfix

postfix is the program that starts and stops the mail delivery system.


master

master is the resident process that runs bounce, cleanup, error, flush, lmtp, local, nqmgr, pickup, pipe, qmgr, qmqpd, showq, smtp, smtpd, spawn, trivial-rewrite and virtual on demand. These programs are not designed to work as user commands.


postqueue

postqueue implements the Postfix user interface for queue management. It implements all the operations that are traditionally available via the sendmail command.


sendmail

sendmail implements the Postfix to Sendmail compatibility interface. mailq and newaliases are symlinks to sendmail.


showq

showq will emulate the mailq command when the Postfix mail system is not running.


postsuper

postsuper does maintenance jobs on the Postfix queue.


postalias

postalias creates, queries or updates Postfix alias databases.


postcat

postcat prints the contents of a Postfix queue file in human-readable form.


postconf

postconf prints or changes the value of configuration parameters.


postdrop

postdrop creates a file in the maildrop directory and copies its standard input to the file.


postkick

postkick makes the mail system private IPC accessible for use in shell scripts.


postlock

postlock locks a file for exclusive access and executes a command on that file.


postlog

postlog implements a logging interface for use in shell scripts.


postmap

postmap creates, queries or updates Postfix lookup tables.


qmail-1.03

Introduction to qmail

Download location (HTTP):       http://www.qmail.org/qmail-1.03.tar.gz
Download location (FTP):        
Version used:                   1.03
Package size:                   225 KB
Estimated Disk space required:  4.6 MB

Additional downloads:
qmail errno patch

The qmail package contains Dan Bernstein's Mail Transport Agent (MTA). qmail provides local and remote mail delivery/relaying.


Installation of qmail

qmail needs certain user and group account to be added before installation of the software. Add the users and groups with the following commands:

mkdir /var/qmail &&
groupadd nofiles &&
useradd -g nofiles -d /var/qmail/alias alias &&
useradd -g nofiles -d /var/qmail qmaild &&
useradd -g nofiles -d /var/qmail qmaill &&
useradd -g nofiles -d /var/qmail qmailp &&
groupadd qmail &&
useradd -g qmail -d /var/qmail qmailq &&
useradd -g qmail -d /var/qmail qmailr &&
useradd -g qmail -d /var/qmail qmails

Install qmail by running the following commands:

patch -Np1 -i ../qmail-1.03.errno.patch &&
make setup check &&
./config-fast `hostname` &&
cd /var/qmail &&
touch .qmail-postmaster .qmail-mailer-daemon .qmail-root &&
chmod 644 .qmail-* &&
ln -s /var/qmail/bin/sendmail /usr/sbin/sendmail &&
mv /var/qmail/boot/home /var/qmail/rc &&
for mandir in 1 5 7 8; do mv /var/qmail/man/man$mandir/* \
    /usr/man/man$mandir; done &&
rm -rf /var/qmail/man


Configuring qmail

Config files

/etc/inetd.conf and boot scripts


Configuration Information

If inetd is used, the following command will add the qmaild entry to /etc/inetd.conf:

echo "smtp stream tcp nowait qmaild /var/qmail/bin/tcp-env \
tcp-env /var/qmail/bin/qmail-smtpd" >> /etc/inetd.conf

If xinetd is used, the following command will add the qmaild entry to /etc/xinetd.conf:

cat >> /etc/xinetd.conf << "EOF"
service smtp
{
    disable = no
    identifier              = smtp-local
    socket_type             = stream
    protocol                = tcp
    wait                    = no
    user                    = qmaild
    server                  = /var/qmail/bin/tcp-env
    server_args             = /var/qmail/bin/qmail-smtpd
    env                     = RELAYCLIENT=
    only_from               = 127.0.0.1
    log_on_failture         += USERID
}
EOF

To automate the running of qmail, use following command to create the init.d script:

cat > /etc/rc.d/init.d/qmail << "EOF"
#!/bin/sh
# Begin $rc_base/init.d/qmail

# Based on sysklogd script from LFS-3.1 and earlier.
# Rewritten by Gerard Beekmans  - gerard@linuxfromscratch.org

source /etc/sysconfig/rc
source $rc_functions

case "$1" in

        start)
        echo "Starting Qmail..."
	/var/qmail/rc &
        ;;

        stop)
        echo "Stopping Qmail..."
        killall qmail-send
        ;;
		
        restart)
        $0 stop
        sleep 1
        $0 start
        ;;

        *)
        echo "Usage: $0 {start|stop|restart}"
        exit 1
        ;;
esac

# End $rc_base/init.d/qmail
EOF
chmod 755 /etc/rc.d/init.d/qmail

Create the symbolic links to this file in the relevant rc.d directory with the following commands:
cd /etc/rc.d/init.d &&
ln -sf ../init.d/qmail ../rc0.d/K25qmail &&
ln -sf ../init.d/qmail ../rc1.d/K25qmail &&
ln -sf ../init.d/qmail ../rc2.d/K25qmail &&
ln -sf ../init.d/qmail ../rc3.d/S35qmail &&
ln -sf ../init.d/qmail ../rc4.d/S35qmail &&
ln -sf ../init.d/qmail ../rc5.d/S35qmail &&
ln -sf ../init.d/qmail ../rc6.d/K25qmail


Configuring mailers to work with qmail

Configuration information for some commonly used MUAs can be found in the /var/qmail/doc/INSTALL.mbox file. Most MUAs can be configured to use qmail Mailbox format buy putting the following in ~/.profile:

MAIL=$HOME/Mailbox; export MAIL


Contents

The qmail package contains bouncesaying, condredirect, except, forward, maildir2mbox, maildirmake, maildirwatch, mailsubj, preline, qbiff, qreceipt, qmail-clean, qmail-inject, qmail-local, qmail-pop3d, qmail-popup, qmail-qstat, qmail-send, qmail-smtpd and qmail-start.


Description

bouncesaying

bouncesaying processes, possibly bouncing, incoming messages.


condredirect

condredirect processes, possibly redirecting incoming messages.


except

except reverses the exit code of a program.


forward

forward forwards new mail to one or more addresses.


maildir2mbox

maildir2mbox moves current email from an maildir-format directory to an mbox-format file.


maildirmake

maildirmake create a maildir format directory for incoming mail.


maildirwatch

maildirwatch watches a users maildir and prints a new mail summary every 30 seconds.


mailsubj

mailsubj sends a mail message with a subject supplied on the command line. The body of the message is read from standard input.


preline

preline prepends lines to a message.


qbiff

qbiff announces new mail as soon as it arrives.


qreceipt

qreceipt responds to delivery notice requests.


qmail-clean

qmail-clean cleans up the queue directory.


qmail-inject

qmail-inject preprocesses and sends a mail message.


qmail-local

qmail-local delivers or forwards mail messages.


qmail-pop3d

qmail-pop3d accesses users' pop3 mail accounts.


qmail-popup

qmail-popup reads pop3 usernames and passwords.


qmail-qstat

qmail-qstat summarizes mail queue statistics.


qmail-send

qmail-send delivers mail from the message queue.


qmail-smtpd

qmail-smtpd receives mail via SMTP.


qmail-start

qmail-start enables mail delivery services, spawning qmail-send, qmail-lspawn, qmail-rspawn, and qmail-clean.


sendmail-8.12.9

Introduction to sendmail

Download location (HTTP):       http://www.sendmail.org/ftp/sendmail.8.12.9.tar.gz
Download location (FTP):        ftp://ftp.sendmail.org/pub/sendmail/sendmail.8.12.9.tar.gz
Version used:                   8.12.9
Package size:                   1.9 MB
Estimated Disk space required:  13 MB

The sendmail package contains a Mail Transport Agent (MTA).

sendmail depends on: 
db-4.1.25, procmail-3.22

Installation of sendmail

Before building sendmail, we need to create users, groups and directories that sendmail uses with the following commands:

groupadd smmsp &&
groupadd mail &&
useradd -g smmsp -G mail smmsp &&
chmod 1777 /tmp &&
chmod 1777 /var/mail &&
mkdir /var/spool/mqueue

Install sendmail with the following commands:

cat > devtools/Site/site.config.m4 << "EOF"
define(`confMANGRP',`root')
define(`confMANOWN',`root')
define(`confSBINGRP',`root')
define(`confUBINGRP',`root')
define(`confUBINOWN',`root')
EOF
cd sendmail &&
sh Build &&
cd ../cf/cf &&
cp generic-linux.mc sendmail.mc &&
mkdir /etc/mail &&
sh Build sendmail.mc &&
sh Build install-cf &&
cd ../../ &&
sh Build install


Configuring sendmail

Config files

/etc/mail/aliases.db, /etc/mail/sendmail.cf, /etc/mail/submit.cf and /etc/mail/local-host-names


Configuring sendmail

echo `hostname` > /etc/mail/local-host-names
cat > /etc/mail/aliases << "EOF"
postmaster: root
MAILER-DAEMON: root
EOF
cd /etc/mail &&
cp -R  /usr/src/sendmail-8.12.9/cf/* . &&
cp -R  /usr/src/sendmail-8.12.9/cf/cf/submit.mc . &&
cp -R  /usr/src/sendmail-8.12.9/cf/cf/sendmail.mc . &&
newaliases -v

To start and stop sendmail on system boot/shutdown create the sendmail boot script with the following commands:

Note: The -qNm option, where N is number of minutes, controls how often Sendmail will process the mail queue.  A default of 5 minutes is used here.  Individual workstation users may want to set this as low as 1 minute, large installations handling more mail will want to set it higher.

cat > /etc/rc.d/init.d/sendmail << "EOF"
#!/bin/sh
# Begin $rc_base/init.d/sendmail

# Based on sysklogd script from LFS-3.1 and earlier.
# Rewritten by Gerard Beekmans  - gerard@linuxfromscratch.org

source /etc/sysconfig/rc
source $rc_functions

case "$1" in

        start)
        echo "Starting sendmail..."
        loadproc /usr/sbin/sendmail -bs -bd -q5m start
        ;;

        stop)
        echo "Stopping Sendmail..."
        killproc sendmail
        ;;
		
	status)
	statusproc sendmail
	;;
	
        restart)
        $0 stop
        sleep 1
        $0 start
        ;;

        *)
        echo "Usage: $0 {start|stop|status|restart}"
        exit 1
        ;;
esac

# End $rc_base/init.d/sendmail
EOF
chmod 755 /etc/rc.d/init.d/sendmail

Create the run level symlinks with the following commands:
cd /etc/rc.d/init.d &&
ln -sf ../init.d/sendmail ../rc0.d/K25sendmail &&
ln -sf ../init.d/sendmail ../rc1.d/K25sendmail &&
ln -sf ../init.d/sendmail ../rc2.d/K25sendmail &&
ln -sf ../init.d/sendmail ../rc3.d/S35sendmail &&
ln -sf ../init.d/sendmail ../rc4.d/S35sendmail &&
ln -sf ../init.d/sendmail ../rc5.d/S35sendmail &&
ln -sf ../init.d/sendmail ../rc6.d/K25sendmail


Contents

The sendmail package contains mail.local, rmail, smrsh, editmap, makemap, mailq, newaliases, sendmail, vacation, praliases and mailstats.


Description

mail.local

mail.local appends its standard input to a user's mail file.


rmail

rmail interprets incoming mail received via uucp.


smrsh

smrsh is a restricted shell for Sendmail.


editmap

editmap queries and edits Sendmail map files.


makemap

makemap creates Sendmail map files.


mailq

mailq prints a summary of waiting mail messages.


newaliases

newaliases rebuilds /etc/mail/aliases.db.


sendmail

sendmail is the Sendmail mail transport agent.


vacation

vacation is an email auto responder.


praliases

praliases displays current Sendmail aliases.


mailstats

mailstats displays Sendmail statistics.


exim-4.14

Introduction to exim

Download location (HTTP):       
Download location (FTP):        ftp://ftp.exim.org/pub/exim/exim4/exim-4.14.tar.bz2
Version used:                   4.14
Package size:                   1.2 MB
Estimated Disk space required:  8.7 MB

The exim package contains a Mail Transport Agent written by the University of Cambridge, released under the GNU Public License.

exim depends on:
db-4.1.25

Installation of exim

Before building exim, we need to create a user and group for exim with the following commands:

groupadd exim
useradd -d /dev/null -g exim -s /bin/false exim

Install exim with the following commands:

sed -e 's/^BIN_DIR.*$/BIN_DIRECTORY=\/usr\/sbin/' src/EDITME | \
  sed -e 's/^CONF.*$/CONFIGURE_FILE=\/etc\/exim.conf/' | \
  sed -e 's/^EXIM_USER.*$/EXIM_USER=exim/' | \
  sed -e 's/^EXIM_MONITOR/#EXIM_MONITOR/' > Local/Makefile &&
make &&
make install &&
ln -s /usr/sbin/exim /usr/sbin/sendmail


Configuring exim

Config files

/etc/exim.conf, /etc/aliases


Configuration of exim

Create the exim configuration files with the following commands:

cat >> /etc/aliases << "EOF"
postmaster: root
MAILER-DAEMON: root
EOF
exim -v -bi &&
/usr/sbin/exim -bd -q1m

Note: To protect an existing /etc/aliases file, we will append these aliases to it if it exists. This file should be checked and duplicate aliases removed, if present.

To start and stop exim on system boot/shutdown create the exim boot script with the following commands:

cat > /etc/rc.d/init.d/exim << "EOF"
#!/bin/sh
# Begin $rc_base/init.d/exim

# Based on sysklogd script from LFS-3.1 and earlier.
# Rewritten by Gerard Beekmans  - gerard@linuxfromscratch.org

source /etc/sysconfig/rc
source $rc_functions

case "$1" in

        start)
        echo "Starting exim..."
        loadproc /usr/sbin/exim -bd -q1m
        ;;

        stop)
        echo "Stopping exim..."
        killproc exim
        ;;
		
	status)
	statusproc exim
	;;
	
        restart)
        $0 stop
        sleep 1
        $0 start
        ;;

        *)
        echo "Usage: $0 {start|stop|status|restart}"
        exit 1
        ;;
esac

# End $rc_base/init.d/exim
EOF
chmod 755 /etc/rc.d/init.d/exim

Create the run level symlinks with the following commands:

cd /etc/rc.d/init.d &&
ln -sf ../init.d/exim ../rc0.d/K25exim &&
ln -sf ../init.d/exim ../rc1.d/K25exim &&
ln -sf ../init.d/exim ../rc2.d/K25exim &&
ln -sf ../init.d/exim ../rc3.d/S35exim &&
ln -sf ../init.d/exim ../rc4.d/S35exim &&
ln -sf ../init.d/exim ../rc5.d/S35exim &&
ln -sf ../init.d/exim ../rc6.d/K25exim


Installation command explanations

groupadd exim
useradd -g exim exim
Create the group and user exim which will run the exim daemon.

sed -e 's/^BIN_DIR.*$/BIN_DIRECTORY=\/usr\/sbin/' src/EDITME | \
  sed -e 's/^CONF.*$/CONFIGURE_FILE=\/etc\/exim.conf/' | \
  sed -e 's/^EXIM_USER.*$/EXIM_USER=exim/' | \
  sed -e 's/^EXIM_MONITOR/#EXIM_MONITOR/' > Local/Makefile
Many of exim's configuration options are compiled in. Here, we specify the minimum set of options, BIN_DIRECTORY, CONFIGURE_FILE and EXIM_USER. We also defer building the exim monitor program, which requires X windows support, by commenting out the EXIM_MONITOR line in the Makefile.

ln -s /usr/sbin/exim /usr/sbin/sendmail : Create a link to sendmail for applications which need it. exim will accept most Sendmail command line options.


Contents

The exim package contains exim, exim_dumpdb, exim_fixdb, exim_tidydb, exinext, exiwhat, exim_dbmbuild, exicyclog, exigrep, eximstats, exiqsumm, exim_lock and exim_checkaccess.


Description

exim

exim is the Mail Transport Agent daemon.


exim_dumpdb

exim_dumpdb writes the contents of exim databases to the standard output .


exim_fixdb

exim_fixdb modifies data in exim databases.


exim_tidydb

exim_tidydb removes old records from exim databases.


exinext

exinext queries remote host retry times.


exiwhat

exiwhat queries running exim processes.


exim_dbmbuild

exim_dbmbuild creates and rebuilds exim databases.


exicyclog

exicyclog cycles exim log files.


exigrep

exigrep searches exim log files.


eximstats

eximstats generates mail statistics from exim log files.


exiqsumm

exiqsumm produces a summary of the messages on the mail queue.


exim_lock

exim_lock locks a mailbox file.


exim_checkaccess

exim_checkaccess states whether a given recipient address from a given host is acceptable or not.


qpopper-4.0.5

Introduction to qpopper

Download location (HTTP):       
Download location (FTP):        ftp://ftp.qualcomm.com/eudora/servers/unix/popper/qpopper4.0.5.tar.gz
Version used:                   4.0.5
Package size:                   2.2 MB
Estimated Disk space required:  9 MB

The qpopper package contains a POP 3 mail server.

qpopper depends on: 
sendmail-8.12.9 or postfix-2.0.7 or qmail-1.03

Installation of qpopper

Install qpopper with the following commands:

./configure --prefix=/usr &&
make &&
make install


Configuring qpopper

Config files

/etc/inetd.conf and /etc/syslogd.conf


Configuring qpopper

If you use inetd, the following command will add the qpopper entry to /etc/inetd.conf:

echo "pop stream tcp nowait root /usr/sbin/popper popper" >> \
/etc/inetd.conf &&
echo "pop 110/tcp" >> /etc/services &&
killall inetd || inetd &&
echo "local0.notice;local0.debug        /var/log/POP.log" >> \
/etc/syslog.conf &&
killall -HUP  syslogd

Issue a killall -HUP inetd to reread the changed inetd.conf file.

If you use xinetd, the following command will add the qpopper entry to /etc/xinetd.conf:

cat >> /etc/xinetd.conf << "EOF"
     service pop
     {
          port        = 110
          socket_type = stream
          protocol    = tcp
          wait        = no
          user        = root
          passenv     = PATH
          server      = /usr/sbin/popper
         server_args = popper
     }
EOF

Issue a killall -HUP xinetd to reread the changed xinetd.conf file.


Contents

The qpopper package contains qpopper.


Description

popper

popper is the POP 3 server daemon.


Chapter 23. Other Server Software

BIND 9.2.2

Introduction to BIND 9.2.2

Download location (HTTP):       
Download location (FTP):        ftp://ftp.isc.org/isc/bind9/9.2.2/bind-9.2.2.tar.gz
Version used:                   9.2.2
Package size:                   4.8 MB
Estimated Disk space required:  38 MB

The Bind package provides a DNS server and client utilities.


Installation of BIND

Install BIND by running the following commands:

./configure --prefix=/usr &&
make &&
make install


Configuring BIND

We will configure BIND to run in a chroot jail as an unprivileged user(named). This configuration is more secure in that a DNS compromise can only affect a few files in the named user's $HOME directory

First we set up some files and directories needed by BIND:

groupadd -g 200 named &&
useradd -m -g named -u 200 -s /bin/false named &&
cd /home/named &&
mkdir -p dev etc/namedb/slave var/run &&
mknod /home/named/dev/null c 1 3 &&
mknod /home/named/dev/random c 1 8 &&
chmod 666 /home/named/dev/{null,random} &&
mkdir /home/named/etc/namedb/pz &&
cp /etc/localtime /home/named/etc


Config files

named.conf, root.hints, 127.0.0 and rndc.conf

Create the named.conf file with the following commands:

cat > /home/named/etc/named.conf << "EOF"
 options {
     directory "/etc/namedb";
    pid-file "/var/run/named.pid";
    statistics-file "/var/run/named.stats";
       
 };
 controls {
     inet 127.0.0.1 allow { localhost; } keys { rndc_key; };
 };
 key "rndc_key" {
     algorithm hmac-md5;
     secret "c3Ryb25nIGVub3VnaCBmb3IgYSBtYW4gYnV0IG1hZGUgZm9yIGEgd29tYW4K";
 };
 zone "." {
     type hint;
     file "root.hints";
 };
 zone "0.0.127.in-addr.arpa" {
     type master;
     file "pz/127.0.0";
 };
EOF

Create a zone file with the following contents:

cat > /home/named/etc/namedb/pz/127.0.0 << "EOF"
$TTL 3D
@      IN      SOA     ns.local.domain. hostmaster.local.domain. (
                        1       ; Serial
                        8H      ; Refresh
                        2H      ; Retry
                        4W      ; Expire
                        1D)     ; Minimum TTL
                NS      ns.local.domain.
1               PTR     localhost.
EOF

Create the root.hints file with the following commands:

Note: Caution must be used to insure no leading spaces in this file.

cat > /home/named/etc/namedb/root.hints << "EOF"
.                       6D  IN      NS      A.ROOT-SERVERS.NET.
.                       6D  IN      NS      B.ROOT-SERVERS.NET.
.                       6D  IN      NS      C.ROOT-SERVERS.NET.
.                       6D  IN      NS      D.ROOT-SERVERS.NET.
.                       6D  IN      NS      E.ROOT-SERVERS.NET.
.                       6D  IN      NS      F.ROOT-SERVERS.NET.
.                       6D  IN      NS      G.ROOT-SERVERS.NET.
.                       6D  IN      NS      H.ROOT-SERVERS.NET.
.                       6D  IN      NS      I.ROOT-SERVERS.NET.
.                       6D  IN      NS      J.ROOT-SERVERS.NET.
.                       6D  IN      NS      K.ROOT-SERVERS.NET.
.                       6D  IN      NS      L.ROOT-SERVERS.NET.
.                       6D  IN      NS      M.ROOT-SERVERS.NET.
A.ROOT-SERVERS.NET.     6D  IN      A       198.41.0.4
B.ROOT-SERVERS.NET.     6D  IN      A       128.9.0.107
C.ROOT-SERVERS.NET.     6D  IN      A       192.33.4.12
D.ROOT-SERVERS.NET.     6D  IN      A       128.8.10.90
E.ROOT-SERVERS.NET.     6D  IN      A       192.203.230.10
F.ROOT-SERVERS.NET.     6D  IN      A       192.5.5.241
G.ROOT-SERVERS.NET.     6D  IN      A       192.112.36.4
H.ROOT-SERVERS.NET.     6D  IN      A       128.63.2.53
I.ROOT-SERVERS.NET.     6D  IN      A       192.36.148.17
J.ROOT-SERVERS.NET.     6D  IN      A       192.58.128.30
K.ROOT-SERVERS.NET.     6D  IN      A       193.0.14.129
L.ROOT-SERVERS.NET.     6D  IN      A       198.32.64.12
M.ROOT-SERVERS.NET.     6D  IN      A       202.12.27.33
EOF

Create the rndc.conf with the following commands:

cat > /etc/rndc.conf << "EOF"
key rndc_key {
algorithm "hmac-md5";
    secret
    "c3Ryb25nIGVub3VnaCBmb3IgYSBtYW4gYnV0IG1hZGUgZm9yIGEgd29tYW4K";
    };
options {
    default-server localhost;
    default-key    rndc_key;
};
EOF

Create or modify resolv.conf to use the new name server with the following commands:

Note: Replace yourdomain.com with your own valid domain name.

cp /etc/resolv.conf /etc/resolv.conf.bak &&
cat > /etc/resolv.conf << "EOF"
search yourdomain.com
nameserver 127.0.0.1
EOF

Set permissions on the chroot jail with the following command:

chown -R named.named /home/named

Create the BIND boot script:

cat > /etc/rc.d/init.d/bind << "EOF"
#!/bin/bash
# Begin $rc_base/init.d/bind
# Based on sysklogd script from LFS-3.1 and earlier.
# Rewritten by Gerard Beekmans  - gerard@linuxfromscratch.org
source /etc/sysconfig/rc
source $rc_functions
case "$1" in
	start)
		echo "Starting named..."
		loadproc /usr/sbin/named -u named -t /home/named -c \
		        /etc/named.conf
		;;
	stop)
		echo "Stopping named..."
		killproc /usr/sbin/named
		;;
	restart)
		$0 stop
		sleep 1
		$0 start
		;;
   reload)
                echo "Reloading named..."
                /usr/sbin/rndc -c /etc/rndc.conf reload
                ;;
			       		
	status)
		statusproc /usr/sbin/named
		;;
	*)
		echo "Usage: $0 {start|stop|restart|status}"
		exit 1
		;;
esac
# End $rc_base/init.d/bind
EOF

Add the run level symlinks:

chmod 754 /etc/rc.d/init.d/bind &&
ln -s  /etc/rc.d/init.d/bind /etc/rc.d/rc0.d/K49bind &&
ln -s  /etc/rc.d/init.d/bind /etc/rc.d/rc1.d/K49bind &&
ln -s  /etc/rc.d/init.d/bind /etc/rc.d/rc2.d/K49bind &&
ln -s  /etc/rc.d/init.d/bind /etc/rc.d/rc3.d/S22bind &&
ln -s  /etc/rc.d/init.d/bind /etc/rc.d/rc4.d/S22bind &&
ln -s  /etc/rc.d/init.d/bind /etc/rc.d/rc5.d/S22bind &&
ln -s  /etc/rc.d/init.d/bind /etc/rc.d/rc6.d/K49bind

Now start BIND with the new boot script:

/etc/rc.d/init.d/bind start


Testing BIND

Test out the new BIND 9 installation. First query the local host address with dig:

dig -x 127.0.0.1

Now try an external name lookup, taking note of the speed difference in repeated lookups due to the caching. Run the dig command twice on the same address:

dig beyond.linuxfromscratch.org &&
dig beyond.linuxfromscratch.org
You can see almost instantaneous results with the named caching lookups. Consult bind-9.2.2/doc/arm/Bv9ARM.html, the BIND Administrator Reference Manual for further configuration options.


Configuration command explanations

groupadd -g 200 named
useradd -m -g named -u 200 -s /bin/false named
cd /home/named
mkdir -p dev etc/namedb/slave var/run
mknod /home/named/dev/null c 1 3
mknod /home/named/dev/random c 1 8
chmod 666 /home/named/dev/{null,random}
mkdir /home/named/etc/namedb/pz
cp /etc/localtime /home/named/etc
Create the unprivileged user and group named, along with device files that named will need access to inside the chroot jail.

cat > /home/named/etc/named.conf << "EOF" : Create the BIND configuration file, from which named will read the location of zone files, root name servers and secure DNS keys.

cat > /home/named/etc/namedb/pz/127.0.0 << "EOF" : Create a single zone file.

cat > /home/named/etc/namedb/root.hints << "EOF" : The root.hints file is a list of root name servers. This file must be updated periodically with the dig utility. Consult the BIND 9 Administrator Reference Manual for details.

cat > /etc/rndc.conf << "EOF" : The rndc.conf file contains information for controlling named operations with the rndc utility.

cat > /etc/resolv.conf << "EOF" : The resolv.conf file will specify the local host(127.0.0.1) as the name server.

cat > /etc/rc.d/init.d/bind << "EOF" : Create the boot script for BIND 9, used to start and stop the name server daemon, named.


Contents

The BIND package contains dig, host, rndc, rndc-confgen, named-checkconf, named-checkzone, lwresd, named, dnssec-signzone, dnssec-signkey, dnssec-keygen, dnssec-makekeyset and nsupdate.


Description

dig

dig interrogates DNS servers.


host

host is a utility for DNS lookups.


rndc

rndc controls the operation of BIND.


rndc-confgen

rndc-confgen generates rndc.conf files.


named-checkconf

named-checkconf checks the syntax of named.conf files.


named-checkzone

named-checkzone checks zone file validity.


lwresd

lwresd is a caching-only name server for local process use.


named

named is the name server daemon.


dnssec-signzone

dnssec-signzone generates signed versions of zone files.


dnssec-signkey

dnssec-signkey signs zone file key sets.


dnssec-keygen

dnssec-keygen is a key generator for secure DNS.


dnssec-makekeyset

dnssec-makekeyset generates a key set from one or more keys created by dnssec-keygen.


nsupdate

nsupdate is used to submit DNS update requests.


Running a CVS server

Running a CVS server

This section will describe how to set up, administer and secure a CVS server.

CVS server depends on: 
cvs-1.11.5 and openssh-3.6.1p1

Setting up a CVS server.

We will discuss setting up a CVS server using OpenSSH as the remote access method. Other access methods, including :pserver: and :server: will not be used for write access to the CVS repository. The :pserver: method sends clear text passwords over the network and the :server: method is not supported in all CVS ports. Instructions for anonymous, read only CVS access using :pserver: can be found at the end of this section.

Configuration of our CVS server consists of four steps:


1. Create a repository.

Create a new CVS repository with the following commands, logged in as root:

mkdir /cvsroot &&
chmod 1777 /cvsroot &&
export CVSROOT=/cvsroot &&
cvs init


2. Import source code into the repository.

Import a source module into the repository with the following commands, issued from a user account on the same machine as the CVS repository:

export CVSROOT=/cvsroot &&
cd sourcedir &&
cvs import -m "repository test" cvstest vendortag releasetag


3. Verify local repository access.

Test access to the CVS repository from the same user account with the following command:

cvs co cvstest


4. Verify remote repository access.

Test access to the CVS repository from a remote machine using a user account that has ssh access to the CVS server with the following commands:

Note: Replace "servername" with the IP address or host name ofthe CVS repository machine. You will be prompted for the user's shellaccount password before CVS checkout can continue.

export CVS_RSH=/usr/bin/ssh &&
cvs -d:ext:servername:/cvsroot co cvstest


Configuring CVS for anonymous read only access.

CVS can be set up to allow anonymous read only access using the :pserver: method by logging on as root and executing the following commands:

(grep anonymous /etc/passwd || useradd anonymous -s /bin/false) &&
echo anonymous: > /cvsroot/CVSROOT/passwd &&
echo anonymous > /cvsroot/CVSROOT/readers

If you use inetd, the following command will add the pserver entry to /etc/inetd.conf:

echo "2401  stream  tcp  nowait  root  /usr/bin/cvs cvs -f \
        --allow-root=/cvsroot pserver" >> /etc/inetd.conf

Issue a killall -HUP inetd to reread the changed inetd.conf file.

If you use xinetd, the following command will add the pserver entry to /etc/xinetd.conf:

cat >> /etc/xinetd.conf << "EOF"
     service cvspserver
     {
          port        = 2401
          socket_type = stream
          protocol    = tcp
          wait        = no
          user        = root
          passenv     = PATH
          server      = /usr/bin/cvs
         server_args = -f --allow-root=/cvsroot pserver
     }
EOF

Issue a killall -HUP xinetd to reread the changed xinetd.conf file.

Testing anonymous access to the new repository requires an account on another machine that can reach the CVS server via network. No account on the CVS repository is needed. To test anonymous access to the CVS repository log in to another machine as an unprivileged user and execute the following command:

cvs -d:pserver:anonymous@servername:/cvsroot co cvstest

Note: Replace "servername" with the IP address or hostname of the CVS server


Command explanations

mkdir /cvsroot : Create the CVS repository directory.

chmod 1777 /cvsroot : Sticky bit permissions for CVSROOT.

export CVSROOT=/cvsroot : Specify new CVSROOT for all cvs commands.

cvs init : Initialize the new CVS repository.

cvs import -m "repository test" cvstest vendortag releasetag : All source code modules must be imported into the CVS repository before use, with the cvs import command. the -m flags specifies an initial descriptive entry for the new module. the "cvstest" parameter is the name used for the module in all subsequent cvs commands. the "vendortag" and "releasetag" parameters are used to further identify each CVS module and are mandatory whether used or not.

(grep anonymous /etc/passwd || useradd anonymous -s /bin/false) : Check for an existing anonymous user and create one if not found.

echo anonymous: > /cvsroot/CVSROOT/passwd : Add the anonymous user to the CVS passwd file, which is unused for anything else in this configuration.

echo anonymous > /cvsroot/CVSROOT/readers : Add the anonymous user to the CVS readers file, a list of users who have read only access to the repository.


dhcp-3.0pl2

Introduction to dhcp

Download location (HTTP):       
Download location (FTP):        ftp://ftp.isc.org/isc/dhcp/dhcp-3.0pl2.tar.gz
Version used:                   3.0pl2
Package size:                   852 KB
Estimated Disk space required:  29.6 MB

The dhcp package contains both the client and server programs for DHCP. dhclient (the client) is useful for connecting your computer to a network which uses DHCP to assign network addresses. dhcpd (the server) is useful for assigning network addresses on your private network.

dhcp needs nothing to compile but you must have Packet Socket
support compiled in the kernel and Socket Filtering either compiled in
or as a kernel module to use it.

Installation of dhcp

Install dhcp by running the following commands:

./configure &&
make &&
make LIBDIR=/usr/lib INCDIR=/usr/include install


Command explanations

LIBDIR=/usr/lib INCDIR=/usr/include : This command installs the library and include files in /usr instead of /usr/local.


Configuring dhcp

Config files

/etc/dhclient.conf


Configuration Information

Information on configuring the dhcp client can be found in Chapter 14.

Note that you only want to start the dhcp server if you want to issue LAN addresses over your network. The dhcp client doesn't need this script to be used. Also note that this script is coded for the 'eth1' INTERFACE, which may need to be modified for your hardware configuration. With that in mind the dhcp init.d script can be created using the following commands.

cat > /etc/rc.d/init.d/dhcp << "EOF"
#!/bin/sh
# Begin $rc_base/init.d/dhcp

# Based on sysklogd script from LFS-3.1 and earlier.
# Rewritten by Gerard Beekmans  - gerard@linuxfromscratch.org

source /etc/sysconfig/rc
source $rc_functions

case "$1" in
        start)
                echo "Starting DHCP Server..."
                loadproc dhcpd -q eth1
                ;;

        stop)
                echo "Stopping DHCP Server..."
                killproc dhcpd
                ;;

        reload)
                echo "Reloading DHCP Server..."
                reloadproc dhcpd
                ;;

        restart)
                $0 stop
                sleep 1
                $0 start
                ;;

        status)
                statusproc dhcpd
                ;;

        *)
                echo "Usage: $0 {start|stop|reload|restart|status}"
                exit 1
                ;;
esac

# End $rc_base/init.d/dhcp
EOF
chmod 755 /etc/rc.d/init.d/dhcp

The lease file must exist on startup. The following command will satisfy that requirement:

touch /var/state/dhcp/dhcpd.leases

The follow commands will create a base configuration file for a dhcp server. There are several options that you may want to add (information that is passed back to the dhcp client) and those are covered in the man pages for dhcp.conf.

cat > /etc/dhcpd.conf << "EOF"
default-lease-time 72000;
max-lease-time 144000;
ddns-update-style ad-hoc;

subnet 192.168.5.0 netmask 255.255.255.0 {
  range 192.168.5.10 192.168.5.240;
  option broadcast-address 195.168.5.255;
  option routers 192.168.5.1;
}
EOF

All addresses should be changed to meet your circumstance.


Contents

The dhcp package contains dhclient, dhcpd and dhcrelay.


Description

dhclient

dhclient is the implementation of the DHCP client.


dhcpd

dhcpd implements Dynamic Host Configuration Protocol (DHCP) and Internet Bootstrap Protocol (BOOTP) requests for network addresses.


dhcrelay

dhcrelay provides a means to accept DHCP and BOOTP requests on a subnet without a DHCP server and relay them to a DHCP server on another subnet.


leafnode-1.9.33

Introduction to leafnode-1.9.33

Download location (HTTP):       http://unc.dl.sourceforge.net/sourceforge/leafnode/leafnode-1.9.33.rel.tar.bz2
Download location (FTP):        ftp://unc.dl.sourceforge.net/pub/sourceforge/leafnode/leafnode-1.9.33.rel.tar.bz2
Version used:                   1.9.33
Package size:                   602 KB
Estimated Disk space required:  4.5 MB

leafnode is an NNTP server designed for small sites to provide a local USENET spool.

leafnode depends on:
pcre-4.1


Installation of leafnode

Install leafnode by running the following commands:

groupadd news
useradd -g news news
./configure --localstatedir=/var --prefix=/usr \
    --sysconfdir=/etc/news --with-lockfile=/var/lock/fetchnews.lck &&
make &&
make install &&
ldconfig &&
make update


Installation command explanations

groupadd news useradd -g news news :

Create the group and user news, if not present. Errors resulting from an already existing user or group news may be ignored.

--prefix=/usr : Change the default installation directory of /usr/local.

--localstatedir=/var : Change the default spool directory of /usr/var.

--sysconfdir=/etc/news : leafnode reads its configuration data from an file called config, this with be created in /etc/news to avoid any potential conflict with other packages.

make update : Create an initial /etc/news/config.example file, which must be renamed to /etc/news/config.


Configuring leafnode

Config files

/etc/leafnode/config, /etc/inetd.conf and /etc/xinetd.conf

leafnode may be configured to use inetd or xinetd as follows:

inetd configuration

Add a leafnode entry to the /etc/inetd.conf file with the following command:
echo "nntp stream tcp nowait news /usr/sbin/tcpd /usr/sbin/leafnode" \
>> /etc/inetd.conf

xinetd configuration

Add a leafnode entry to the /etc/xinetd.conf file with the following command:
cat >> /etc/xinetd.conf << "EOF"
        service nntp
        {
           flags           = NAMEINARGS NOLIBWRAP
           socket_type     = stream
           protocol        = tcp
           wait            = no
           user            = news
           server          = /usr/sbin/tcpd
           server_args     = /usr/sbin/leafnode
           instances       = 7
           per_source      = 3
        }
EOF

The /etc/news/config file must be edited to reflect the name of the upstream NNTP provider. Copy the example configuration file to /etc/news/config and save the original for reference :

cp /etc/news/config.example /etc/news/config

Change the

server = 

entry to reflect your news provider.

The NNTPSERVER environment variable must be set to 127.0.0.1 to prevent news clients from reading news from the upstream feed, add the following to /etc/profile or $HOME/.bash_profile :

export NNTPSERVER=127.0.0.1


Contents

The leafnode package contains leafnode, applyfilter, texpire, checkgroups, fetchnews and newsq.


Description

leafnode

leafnode is the NNTP server daemon.


applyfilter

applyfilter filters newsgroup articles according to regular expressions.


texpire

texpire expires old articles and unread groups.


checkgroups

checkgroups inserts newsgroup titles into the newsgroup database.


fetchnews

fetchnews sends posted articles to and retrieves new articles from an upstream news server.


newsq

newsq shows articles waiting to be sent upstream.


OpenSSH-3.6.1p1

Introduction to OpenSSH

Download location (HTTP):       http://sunsite.ualberta.ca/pub/OpenBSD/OpenSSH/portable/openssh-3.6.1p1.tar.gz
Download location (FTP):        ftp://ftp.openbsd.org/pub/OpenBSD/OpenSSH/portable/openssh-3.6.1p1.tar.gz
Version used:                   3.6.1p1
Package size:                   855 KB
Estimated Disk space required:  8.3 MB

The OpenSSH package contains ssh clients and the sshd daemon. This is useful for encrypting all traffic over a network.

OpenSSH depends on: 
openssl-0.9.7a
OpenSSH will utilize: 
X11-ssh-askpass and Linux_PAM-0.77

Installation of OpenSSH

OpenSSH runs as two processes when connecting to other computers. The first process is a priviledged process and controls the issuance of privileges as necessary. The second process communicates with the network. Additional installation steps are necessary to set up the proper environment which are performed by the following commands:

mkdir /var/empty &&
chown root:sys /var/empty &&
groupadd sshd &&
useradd -g sshd sshd

Install OpenSSH by running the following commands:

./configure --prefix=/usr --sysconfdir=/etc/ssh \
   --libexecdir=/usr/sbin --with-md5-passwords &&
make &&
make install 


Command explanations

--sysconfigdir=/etc/ssh : This prevents the configuration files from going to /usr/etc.

--with-md5-passwords : This is required if you made the changes recommended by the shadowpasswd_plus lfs hint on your ssh server when you installed the Shadow Password Suite or if you access a ssh server that authenticates by user passwords encrypted with md5.

--libexecdir=/usr/sbin : OpenSSH puts programs called by programs in /usr/libexec. sftp-server is a sshd utility and ssh-askpass is a ssh-add utility that is installed as a link to X11-ssh-askpass. Both of these should go in /usr/sbin not /usr/libexec.


Configuring OpenSSH

Config files

/etc/ssh/ssh_config, /etc/ssh/sshd_config

There are no required changes in either of these files. However you may wish to view them to make changes for appropriate security to your system. Configuration information can be found in the man pages for sshd, ssh and ssh-agent


sshd init.d script

Note that you only want to start the sshd server if you want to be able to ssh into your machine. The ssh client doesn't need this script to be used. Having said that, if you want to run the ssh daemon, the sshd init.d script can be created using the following commands:

cat > /etc/rc.d/init.d/sshd << "EOF"
#!/bin/sh
# Begin $rc_base/init.d/sshd

# Based on sysklogd script from LFS-3.1 and earlier.
# Rewritten by Gerard Beekmans  - gerard@linuxfromscratch.org

source /etc/sysconfig/rc
source $rc_functions

case "$1" in
        start)
	        echo "Starting SSH Server..."
	        loadproc /usr/sbin/sshd
	        ;;

	stop)
	        echo "Stopping SSH Server..."
	        killproc /usr/sbin/sshd
	        ;;

	reload)
	        echo "Reloading SSH Server..."
	        reloadproc /usr/sbin/sshd
	        ;;
	     
	restart)
	        $0 stop
	        sleep 1
	        $0 start
	        ;;

	status)
	        statusproc /usr/sbin/sshd
	        ;;

	*)
	        echo "Usage: $0 {start|stop|reload|restart|status}"
	        exit 1
	        ;;
esac

# End $rc_base/init.d/sshd
EOF
chmod 755 /etc/rc.d/init.d/sshd

Create the symbolic links to this file in the relevant rc.d directories with the following commands:
cd /etc/rc.d/init.d &&
ln -sf ../init.d/sshd ../rc0.d/K30sshd &&
ln -sf ../init.d/sshd ../rc1.d/K30sshd &&
ln -sf ../init.d/sshd ../rc2.d/K30sshd &&
ln -sf ../init.d/sshd ../rc3.d/S30sshd &&
ln -sf ../init.d/sshd ../rc4.d/S30sshd &&
ln -sf ../init.d/sshd ../rc5.d/S30sshd &&
ln -sf ../init.d/sshd ../rc6.d/K30sshd


Contents

The OpenSSH package contains ssh, sshd, ssh-agent, ssh-add, sftp, scp, ssh-keygen, sftp-server and ssh-keyscan.


Description

ssh

The basic rlogin/rsh-like client program.


sshd

The daemon that permits you to login.


ssh-agent

An authentication agent that can store private keys.


ssh-add

Tool which adds keys to the ssh-agent.


sftp

FTP-like program that works over SSH1 and SSH2 protocol.


scp

File copy program that acts like rcp.


ssh-keygen

Key generation tool.


sftp-server

SFTP server subsystem.


ssh-keyscan

Utility for gathering public host keys from a number of hosts.


openldap-2.1.17

Introduction to OpenLDAP

Download location (HTTP):       
Download location (FTP):        ftp://ftp.OpenLDAP.org/pub/OpenLDAP/openldap-release/openldap-2.1.17.tgz
Version used:                   2.1.17
Package size:                   2.0 MB
Estimated Disk space required:  102 MB

The OpenLDAP package provides an open source implementation of the Lightweight Directory Access Protocol.

OpenLDAP depends on:
db-4.1.25

Installation of OpenLDAP

Install OpenLDAP by running the following commands:

./configure --prefix=/usr --sysconfdir=/etc --disable-debug \
   --libexecdir=/usr/sbin --enable-ldbm &&
make depend &&
make &&
make test &&
make install &&


Installation command explanations

--prefix=/usr : Sets the prefix for almost all the file paths to /usr.

--sysconfdir=/etc : Sets the configuration file directory to avoid the default of /usr/etc.

--libexecdir=/usr/sbin : Puts the server executables in /usr/sbin instead of /usr/libexec.

--enable-ldbm : Enable the most recent version of the Berkeley DB.

--disable-debug : Disable debugging code.

make test: Validate correct build of the package.


Configuring OpenLDAP

The only configuration needed for ldap is to run ldconfig. The LDAP server can be started by /usr/sbin/slapd as described in the man page slapd(8).

Data can be added to the LDAP database via ldapadd. Other programs that can use the database include ldapsearch, ldapmodify, ldapdelete, and ldappasswd. For more information see the appropriate man page.


Contents

The OpenLDAP package contains slapd, slurpd, libldap libraries and various utilities, tools, and sample clients.


Description

slapd

slapd is the stand-alone LDAP server.


slurpd

slurpd is the stand-alone LDAP replication server.


LDAP libraries

LDAP libraries support the LDAP programs and provide functionality for other programs interacting with LDAP.


Utilites, Tools, and Sample Clients

The package also provides numerous support programs.


Samba-2.2.8a

Introduction to Samba

Download location (HTTP):       http://us1.samba.org/samba/ftp/samba-2.2.8a.tar.bz2
Download location (FTP):        
Version used:                   2.2.8a
Package size:                   4.4 MB
Estimated Disk space required:  43 MB
Estimated build time:           5.40 SBU

The Samba package provides file and print services to SMB/CIFS clients.


Installation of Samba

Install Samba by running the following commands:

Note: Samba is installed from the samba-2.2.8a/source directory.

mkdir -p /etc/samba/private &&
mkdir -p /var/cache/samba &&
./configure \
   --prefix=/usr \
   --sysconfdir=/etc \
   --localstatedir=/var \
   --with-piddir=/var/run \
   --with-fhs \
   --with-smbmount &&
make &&
make install &&
mv /usr/bin/smbmount /usr/bin/mount.smbfs &&
rm -rf /usr/private &&
echo "swat 901/tcp" >> /etc/services &&
echo "swat stream tcp nowait.400 root /usr/sbin/swat swat" >> \
   /etc/inetd.conf


Installation command explanations

mkdir -p /etc/samba/private
mkdir -p /var/cache/samba
Directories needed for proper operation of the smbd and nmbd daemons.

--prefix=/usr : Sets the prefix for almost all the file paths to /usr.

--sysconfdir=/etc : Sets the configuration file directory to avoid the default of /usr/etc.

--localstatedir=/var : Sets the variable data directory to avoid the default of /usr/var.

--with-fhs : Assigns all other file paths in a manner compliant with the Filesystem Hierarchy Standard.

--with-smbmount : Orders the creation of an extra binary for use by the mount command so that mounting remote SMB (windows) shares becomes no more complex than mounting remote NFS shares.

rm -rf /usr/private : Removes a directory erroneously created by source/scripts/installbin.sh during the make install.


Configuring Samba

We will configure one Samba server (SAMBABOX) to act as a primary domain controller, as well as configure one domain client running Windows 2000 Server(WIN2KBOX) and acting as a member server of the domain. Detailed instructions will be given for adding WIN2KBOX to the domain due to the extra steps necessary. Instructions for adding Windows 95/98/XP clients can be found in the newly installed documentation by pointing a web browser to:

file:///usr/share/samba/swat/using_samba/ch03_01.html#ch03-55770.


Config files

/etc/samba/smb.conf, /etc/rc.d/init.d/samba

First we set up some directories needed by Samba:

mkdir /var/lib/samba &&
mkdir /var/lib/samba/netlogon &&
mkdir /var/lib/samba/ntprofile &&
mkdir /var/lib/samba/profiles &&
chmod -R 1777 /var/lib/samba

And the Samba configuration file:

cat > /etc/samba/smb.conf << "EOF"
[global]
    netbios name = SAMBABOX
    workgroup = DOMAIN01
    os level = 64
    preferred master = yes
    domain master = yes
    local master = yes
    security = user
    encrypt passwords = yes
    domain logons = yes
    log file = /var/log/log.%m
    log level = 1
    logon path = \\%N\home\%u
    logon drive = H:
    logon home = \\homeserver\%u
    logon script = logon.cmd
[netlogon]
      path = /var/lib/samba/netlogon
      read only = yes
      write list = ntadmin
[profiles]
      path = /var/lib/samba/ntprofile
      read only = no
      create mask = 0600
      directory mask = 0700
; World writable share for testing
[tmp]
comment = Temporary file space
        path = /tmp
        read only = no
        public = yes
[home]
comment = Users' home directories
        path = /home
        read only = no
        public = no
EOF 

Now add the machine trust account for WIN2KBOX:

/usr/sbin/useradd -g 100 -d /dev/null -c \
    "machine nickname" -s /bin/false win2kbox$ &&
passwd -l win2kbox$ &&
smbpasswd -a -m win2kbox

Create the Samba boot script:

cat > /etc/rc.d/init.d/samba << "EOF"
#!/bin/bash
# Begin $rc_base/init.d/samba
# Based on sysklogd script from LFS-3.1 and earlier.
# Rewritten by Gerard Beekmans  - gerard@linuxfromscratch.org
source /etc/sysconfig/rc
source $rc_functions
case "$1" in
	start)
		echo "Starting nmbd..."
		loadproc /usr/sbin/nmbd -D
		echo "Starting smbd..."
		loadproc /usr/sbin/smbd -D
		;;
	stop)
		echo "Stopping smbd..."
		killproc /usr/sbin/smbd
		echo "Stopping nmbd..."
		killproc /usr/sbin/nmbd
		;;
	reload)
		echo "Reloading smbd..."
		reloadproc /usr/sbin/smbd
		echo "Reloading nmbd..."
		reloadproc /usr/sbin/nmbd
		;;
	restart)
		$0 stop
		sleep 1
		$0 start
		;;
	status)
		statusproc /usr/sbin/nmbd
		statusproc /usr/sbin/smbd
		;;
	*)
		echo "Usage: $0 {start|stop|reload|restart|status}"
		exit 1
		;;
esac
# End $rc_base/init.d/samba
EOF

Add the run level symlinks:

chmod 754 /etc/rc.d/init.d/samba &&
ln -s  /etc/rc.d/init.d/samba /etc/rc.d/rc0.d/K48samba &&
ln -s  /etc/rc.d/init.d/samba /etc/rc.d/rc1.d/K48samba &&
ln -s  /etc/rc.d/init.d/samba /etc/rc.d/rc2.d/K48samba &&
ln -s  /etc/rc.d/init.d/samba /etc/rc.d/rc3.d/S24samba &&
ln -s  /etc/rc.d/init.d/samba /etc/rc.d/rc4.d/S24samba &&
ln -s  /etc/rc.d/init.d/samba /etc/rc.d/rc5.d/S24samba &&
ln -s  /etc/rc.d/init.d/samba /etc/rc.d/rc6.d/K48samba

Now, we'll use our new boot script to start Samba:

/etc/rc.d/init.d/samba start

We have to add the SAMBABOX root account to the Samba user list first in order to join WIN2KBOX to the DOMAIN01 domain:

smbpasswd -a root

After starting Samba and adding root to the Samba user list, the first machine we'll join to DOMAIN01 will be WIN2KBOX, the Windows 2000 Server box we created the machine trust account for. On WIN2KBOX:

1.  Right click on My Computer.
2.  Click on Properties.
3.  Click on the Network Identification notebook tab.
4.  Click on the Properties button.
5.  In the Computer Name: edit field enter WIN2KBOX.
6.  Click on the Domain: radio button and enter DOMAIN01 in the edit
    field and click OK.
7.  When presented with the Domain Username And Password dialog box,
    enter root and root's password on SAMBABOX and click OK.
8.  After the machine trust is negotiated, click the OK button in the
    dialog box welcoming you to the DOMAIN01 domain.
9.  Click OK in the reboot reminder dialog box.
10. Click OK to close the System Properties window.
11. Click Yes to reboot WIN2KBOX.


Add a new user to the DOMAIN01 domain.

Before logging on to WIN2KBOX, we will create a new user with the following commands:

useradd -m win2kuser01 &&
passwd win2kuser01 &&
smbpasswd -a win2kuser01


Logging on to DOMAIN01.

Now we will log on the domain as our newly created user as follows:

1. Press Ctrl-Alt-Del to bring up the Log On to Windows dialog box.
2. Enter the win2kuser01 name and password.
3. Select DOMAIN01 from the Log on to: combination box and click OK.

Add the swat entry to /etc/serviceswith the following command:

echo "swat            901/tcp" >> /etc/services

If inetd is used, the following command will add the swat entry to /etc/inetd.conf:

echo "swat stream tcp nowait.400 root /usr/sbin/swat swat" \
    >> /etc/inetd.conf

If xinetd is used, the following command will add the swat entry to /etc/xinetd.conf:

cat >> /etc/xinetd.conf << "EOF"
service swat
{
    port            = 901
    socket_type     = stream
    wait            = no
    only_from       = 127.0.0.1
    user            = root
    server          = /usr/sbin/swat
    log_on_failure  += USERID
}
EOF

The Samba Web Administration Tool, swat, can be launched with the following command on SAMBABOX:

lynx http://localhost:901 

Note: Be sure inetd is running, and issue a killall -HUP inetd before starting swat.

The lynx browser is used in this demonstration, but is not necessary.


Configuration command explanations

cat > /etc/samba/smb.conf << "EOF" : Create a default Samba configuration file. This configuration will allow Samba to act as a Primary Domain Controller for a Microsoft Windows based network. If this is not desired, a simpler default smb.conf file is bundled with the Samba distribution. See the samba2.2.8a/examples/smb.conf.default file. Primary Domain Controller configuration is slightly more complicated than ordinary member server configuration, so instructions for PDC configuration will be given here.

cat > /etc/rc.d/init.d/samba << "EOF" : Create the Samba boot script, used to start and stop Samba automatically on machine startup and shutdown.

/usr/sbin/useradd -g 100 -d /dev/null -c \
    "Win2k Server" -s /bin/false win2kbox$
This command creates a machine trust account, necessary only for Windows 2000/NT servers to authenticate to our new PDC. Machine trust accounts are not necessary for Win95/98 clients.

echo "swat 901/tcp" >> /etc/services : Register the swat service to run on port 901.

echo "swat stream tcp nowait.400 root /usr/sbin/swat swat" >> /etc/inetd.conf : Instruct inetd where to find and how to run swat.

ln -s /etc/rc.d/init.d/samba /etc/rc.d/rc3.d/S600samba etc. : Create the Samba boot scripts, used to start and stop Samba automatically on machine startup and shutdown.


Contents

The Samba package contains make_smbcodepage, make_unicodemap, mount.smbfs, nmbd, nmblookup, rpcclient, smbcacls, smbclient, smbcontrol, smbd, smbpasswd, smbspool, smbstatus, swat, testparm, testprns, wbinfo and winbindd.


Description

make_smbcodepage

make_smbcodepage converts text descriptions of code pages to binary code page files and vice versa.


make_unicodemap

make_unicodemap converts text unicode map files to binary, for use in mapping characters to 16 bit unicode.


mount.smbfs

mount.smbfs provides /bin/mount with a way to mount remote windows (or samba) fileshares.


nmbd

nmbd is the Samba NetBIOS name server.


nmblookup

nmblookup is used to query NetBIOS names and map them to IP addresses.


rpcclient

rpcclient is used to execute MS-RPC client side functions.


smbcacls

smbcacls is used to manipulate NT access control lists.


smbclient

smbclient is a SMB/CIFS access utility, similar to FTP.


smbcontrol

smbcontrol is used to control running smbd, nmbd and winbindd daemons.


smbd

smbd is the main Samba daemon.


smbpasswd

smbpasswd changes a user's Samba password.


smbspool

smbspool sends a print job to an SMB printer.


smbstatus

smbstatus reports current Samba connections.


swat

swat is the Samba Web Administration Tool.


testparm

testparm checks an smb.conf file for proper syntax.


testprns

testprns tests printer names.


wbinfo

wbinfo queries a running winbindd daemon.


winbindd

winbindd resolves names from NT servers.


xinetd-2.3.10

Introduction to xinetd

Download location (HTTP):       http://www.xinetd.org/xinetd-2.3.10.tar.gz
Download location (FTP):        
Version used:                   2.3.10
Package size:                   300 KB
Estimated Disk space required:  1.2 MB

xinetd is the eXtended InterNET services Daemon, a secure replacement for inetd.


Installation of xinetd

Install xinetd by running the following commands:

./configure --prefix=/usr &&
make &&
make install


Installation command explanations

./configure --prefix=/usr : Change the default installation directory of /usr/local.


Configuring xinetd

Create the xinetd.conf file with the following commands:

cp /etc/xinetd.conf /etc/xinetd.conf.bak
sed -e 's/etc/sbin/g' xinetd/sample.conf > /etc/xinetd.conf


Config files

/etc/xinetd.conf

Create the xinetd boot script:

cat > /etc/rc.d/init.d/xinetd << "EOF"
#!/bin/bash
# Begin $rc_base/init.d/xinetd
# Based on sysklogd script from LFS-3.1 and earlier.
# Rewritten by Gerard Beekmans  - gerard@linuxfromscratch.org
source /etc/sysconfig/rc
source $rc_functions
case "$1" in
	start)
		echo "Starting xinetd..."
		loadproc /usr/sbin/xinetd
		;;
	stop)
		echo "Stopping xinetd..."
		killproc /usr/sbin/xinetd
		;;
	reload)
		echo "Reloading xinetd..."
		killall -HUP xinetd
		;;
	restart)
		$0 stop
		sleep 1
		$0 start
		;;
	status)
		statusproc /usr/sbin/xinetd
		;;
	*)
		echo "Usage: $0 {start|stop|reload|restart|status}"
		exit 1
		;;
esac
# End $rc_base/init.d/xinetd
EOF

Add the run level symlinks:

chmod 754 /etc/rc.d/init.d/xinetd &&
ln -s  /etc/rc.d/init.d/xinetd /etc/rc.d/rc0.d/K49xinetd &&
ln -s  /etc/rc.d/init.d/xinetd /etc/rc.d/rc1.d/K49xinetd &&
ln -s  /etc/rc.d/init.d/xinetd /etc/rc.d/rc2.d/K49xinetd &&
ln -s  /etc/rc.d/init.d/xinetd /etc/rc.d/rc3.d/S23xinetd &&
ln -s  /etc/rc.d/init.d/xinetd /etc/rc.d/rc4.d/S23xinetd &&
ln -s  /etc/rc.d/init.d/xinetd /etc/rc.d/rc5.d/S23xinetd &&
ln -s  /etc/rc.d/init.d/xinetd /etc/rc.d/rc6.d/K49xinetd

Now, we'll use our new boot script to start xinetd:

/etc/rc.d/init.d/xinetd start

Checking the /var/log/daemon.log file should prove quite entertaining. This file may contain entries similar to the following:

Aug 22 21:40:21 dps10 xinetd[2696]: Server /usr/sbin/in.rlogind is not
executable [line=29]
Aug 22 21:40:21 dps10 xinetd[2696]: Error parsing attribute server -
DISABLING SERVICE [line=29]
Aug 22 21:40:21 dps10 xinetd[2696]: Server /usr/sbin/in.rshd is not
executable [line=42]

These errors are due to the fact that we don't have most of the servers that xinetd is trying to control installed yet.


Configuration command explanations

cp /etc/xinetd.conf /etc/xinetd.conf.bak : Save the current xinetd.conf file, if it exists.

sed -e 's/etc/sbin/g' xinetd/sample.config > /etc/xinetd.conf : insure the path to all daemons is /usr/sbin, rather than the default path of /usr/etc.

ln -s /etc/rc.d/init.d/xinetd /etc/rc.d/rc3.d/S23xinetd : Create the xinetd runlevel symlinks to the xinetd boot script, used to start and stop xinetd automatically on machine startup and shutdown.

The format of the /etc/xinetd.conf is documented in the xinetd.conf man page. Further information can be found at http://www.xinetd.org.


Contents

The xinetd package contains xinetd, itox and xconv.pl.


Description

xinetd

xinetd is the internet services daemon.


itox

itox is a utility used for converting inetd.conf files to xinetd.conf format.


xconv.pl

xconv.pl is a perl script used for converting inetd.conf files to xinetd.conf format, similar to itox.

VII. Content Serving

Table of Contents
24. Databases
25. Web serving

Chapter 24. Databases

db-4.1.25

Introduction to db

Download location (HTTP):       http://www.sleepycat.com/update/snapshot/db-4.1.25.tar.gz
Download location (FTP):        
Version used:                   4.1.25
Package size:                   3 MB
Estimated Disk space required:  27 MB

The db package contains db_archive, db_checkpoint, db_deadlock, db_dump, db_load, db_printlog, db_recover, db_stat, db_upgrade, db_verify and the db libraries. These are used by many other programs for db related functions.


Installation of db

Install db by running the following commands:

cd build_unix &&
../dist/configure --prefix=/usr \
    --enable-compat185 \
    --enable-cxx &&
make &&
make docdir=/usr/share/doc/db-4.1.25 install

Note: If you wish to enable Java support in db-4.1.25, add --enable-java to the configure options. Java support is needed if you plan to use system installed db when compiling OpenOffice.


Command explanations

cd build_unix && ../dist/configure --prefix=/usr --enable-compat185 : This replaces the normal ./configure command as db comes with the various build directories for different platforms.

make docdir=/usr/share/doc/db-4.1.25 install : This installs db installing the documentation in the correct place.


Configuring db

Configuration Information

As with most libraries, there is no configuration to do, save that the library directory i.e. /usr/lib or /usr/local/lib should appear in /etc/ld.so.conf so that ldd can find the shared libraries. After checking that this is the case, /sbin/ldconfig should be run while logged in as root.

If you recompile perl after installing db-4.1.25 you will need to apply the perl-5.8.0-db-4.1.patch available at http://downloads.linuxfromscratch.org/blfs-patches.


Contents

The db package contains db_archive, db_checkpoint, db_deadlock, db_dump, db_load, db_printlog, db_recover, db_stat, db_upgrade and db_verify.


Description

db_archive

db_archive prints the pathnames of log files that are no longer in use.


db_checkpoint

db_checkpoint is a daemon process used to monitor and checkpoint database logs.


db_deadlock

db_deadlock is used to abort lock requests when deadlocks are detected.


db_dump

db_dump converts database files to a flat file format readable by db_load.


db_load

db_load is used to create database files from flat files created with db_dump.


db_printlog

db_printlog converts database log files to human readable text.


db_recover

db_recover is used to restore a database to a consistent state after a failure.


db_stat

db_stat displays database environment statistics.


db_upgrade

db_upgrade is used to upgrade database files to a newer version of Berkeley DB.


db_verify

db_verify is used to run consistency checks on database files.


db-3.3.11

Introduction to db-3.3.11

Download location (HTTP):       http://www.sleepycat.com/update/snapshot/db-3.3.11.tar.gz
Download location (FTP):        
Version used:                   3.3.11
Package size:                   2.3 MB
Estimated Disk space required:  19 MB

The db-3.3.11 package contains version 3.3.11 of the Berkeley Database.


Installation of db-3.3.11

Install db-3.3.11 by running the following commands:

cd build_unix &&
../dist/configure --prefix=/opt/db-3.3 --enable-compat185 &&
make &&
make docdir=/opt/db-3.3/doc/Berkeley-DB install &&
cd /opt/db-3.3/lib/ &&
rm -f libdb.so &&
for i in $(ls); do mv $i /usr/lib; ln -sf /usr/lib/$i; done &&
cd /opt/db-3.3/include/ &&
sed 's/^DB185/DB/' db_185.h > db_185.h.new &&
mv db_185.h.new db_185.h &&
ln -nsf /opt/db-3.3/include /usr/include/db3


Command explanations

sed 's/^DB185/DB/' /usr/include/db_185.h > /usr/include/db_185.h.new : Change the DB185 database pointer to DB.


Configuring db-3.3.11

As with most libraries, there is no configuration to do, save that the library directory i.e. /usr/lib or /usr/local/lib should appear in /etc/ld.so.conf so that ldd can find the shared libraries. After checking that this is the case, /sbin/ldconfig should be run while logged in as root.


Contents

The db-3.3.11 package contains db_archive, db_checkpoint, db_deadlock, db_dump, db_load, db_printlog, db_recover, db_stat, db_upgrade and db_verify.


Description

db_archive

db_archive prints the pathnames of log files that are no longer in use.


db_checkpoint

db_checkpoint is a daemon process used to monitor and checkpoint database logs.


db_deadlock

db_deadlock is used to abort lock requests when deadlocks are detected.


db_dump

db_dump converts database files to a flat file format readable by db_load.


db_load

db_load is used to create database files from flat files created with db_dump.


db_printlog

db_printlog converts database log files to human readable text.


db_recover

db_recover is used to restore a database to a consistent state after a failure.


db_stat

db_stat displays database environment statistics.


db_upgrade

db_upgrade is used to upgrade database files to a newer version of Berkeley DB.


db_verify

db_verify is used to run consistency checks on database files.


MySQL-3.23.55

Introduction to MySQL

Download location (HTTP):       http://mysql.he.net/Downloads/MySQL-3.23/mysql-3.23.55.tar.gz
Download location (FTP):        ftp://mirror.mcs.anl.gov/pub/mysql/Downloads/MySQL-3.23/mysql-3.23.55.tar.gz
Version used:                   3.23.55
Package size:                   11 MB
Estimated Disk space required:  70 MB

The MySQL package contains the mysql library, server and client utilities.


Installation of mysql

For security reasons, running the server as an unpriviledged user and group is strongly encouraged:

groupadd mysql &&
useradd -c mysql -d /dev/null -g mysql -s /bin/false mysql

Build and install mysql by running the following commands:

cp configure configure.old &&
sed -e "s%mysql-test/Makefile%%" -e "s% mysql-test%%" configure.old > configure &&
./configure --prefix=/usr \
            --sysconfdir=/etc \
            --libexecdir=/usr/sbin \
            --localstatedir=/var/lib/mysql \
            --enable-thread-safe-client \
            --without-debug \
            --without-bench &&
make &&
make install

Command explanations

sed -e "s%mysql-test/Makefile%%" -e "s% mysql-test%%" configure.old > configure: This sed is used to disable the mysql test suite.


Configuring mysql

Config files

/etc/my.cnf, ~/.my.cnf


Configuration Information

There are several default configurations file available in /usr/share/mysql which you can use.

cp /usr/share/mysql/my-medium.cnf /etc/my.cnf

We can now install a database and change the ownership to the unpriviledged user and group.

mysql_install_db
chown -R mysql:mysql /var/lib/mysql

Further configuration requires that the mysql server be running:

safe_mysqld 2>&1 >/dev/null &

A default installation, does not setup a password for the administrator. So here we will login and set one. We strongly suggest changing 'new-password' to your own.

mysql -uroot mysql
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 2 to server version: 3.23.51-log

Type 'help;' or '\h' for help. Type '\c' to clear the buffer.

mysql> UPDATE user SET password=password('new-password') WHERE user='root';
Query OK, 2 rows affected (0.00 sec)
Rows matched: 2  Changed: 2  Warnings: 0

mysql> FLUSH PRIVILEGES;
Query OK, 0 rows affected (0.00 sec)

mysql> EXIT;
bye

Now that we are done with the configuration of the server, we can shut it down.

kill `pidof -x safe_mysqld mysqld`

mysql init.d script

To automate the running of mysql, use the following command to create the init.d script:

cat > /etc/rc.d/init.d/mysql << "EOF"
#!/bin/bash
# Begin $rc_base/init.d/

# Based on sysklogd script from LFS-3.1 and earlier.
# Rewritten by Gerard Beekmans  - gerard@linuxfromscratch.org

source /etc/sysconfig/rc
source $rc_functions

case "$1" in
        start)
                echo "Starting MySQL daemon..."
                /usr/bin/safe_mysqld 2>&1 >/dev/null &
                evaluate_retval
                ;;

        stop)
                echo "Stopping MySQL daemon..."
                killproc mysqld
                ;;

        restart)
                $0 stop
                sleep 1
                $0 start
                ;;

        status)
                statusproc /usr/sbin/mysqld
                ;;

        *)
                echo "Usage: $0 {start|stop|restart|status}"
                exit 1
                ;;
esac

# End $rc_base/init.d/
EOF
chmod 755 /etc/rc.d/init.d/mysql

Create the symbolic links to this file in the relevant rc.d directory with the following commands:

cd /etc/rc.d/init.d &&
ln -sf ../init.d/mysql ../rc0.d/K26mysql &&
ln -sf ../init.d/mysql ../rc1.d/K26mysql &&
ln -sf ../init.d/mysql ../rc2.d/K26mysql &&
ln -sf ../init.d/mysql ../rc3.d/S34mysql &&
ln -sf ../init.d/mysql ../rc4.d/S34mysql &&
ln -sf ../init.d/mysql ../rc5.d/S34mysql &&
ln -sf ../init.d/mysql ../rc6.d/K26mysql

Contents

The mysql package contains mysql, mysqladmin, mysqlcheck, mysqlshow, mysqldump, mysqlimport, mysqltest, mysqlbinlog, replace, comp_err, perror, resolveip, my_print_defaults, resolve_stack_dump, isamchk, isamlog, pack_isam, myisamchk, myisamlog, myisampack, safe_mysqld, mysql_install_db, msql2mysql, mysql_config, mysql_fix_privilege_tables, mysql_setpermission, mysql_zap, mysqlacess, mysqlbug, mysql_convert_table_format, mysql_find_rows, mysqlhotcopy, mysqldumbslow, mysqld_multi and mysqld


Description

A package listing would be several pages long, we suggest consulting the mysql documentation for full details, instead.

Certain mysql support programs may require the perl DBI modules to be installed to function properly.


PostgreSQL-7.3.2

Introduction to PostgreSQL7.3.2

Download location (HTTP):       http://www.ca.postgresql.org/ftpsite/v7.3.2/postgresql-7.3.2.tar.gz
Download location (FTP):        ftp://ftp8.us.postgresql.org/pub/pgsql/source/v7.3.2/postgresql-7.3.2.tar.gz
Version used:                   7.3.2
Package size:                   11 MB
Estimated Disk space required:  68 MB

The PostgreSQL package contains the PostgreSQL RDBMS, client utilities and language bindings.

Note: The C++ and ODBC bindings have been removed from the main source distribution. They can be found at the PostgreSQL Projects Web Site at: http://gborg.postgresql.org.

PostgreSQL depends on:
readline-4.3

Installation of PostgreSQL

Install PostgreSQL with the following commands:

./configure --prefix=/usr &&
make &&
make install

Initialize a database cluster with the following commands:

mkdir -p /var/pgsql/data &&
useradd -d /var/pgsql/data postgres &&
chown postgres /var/pgsql/data &&
su - postgres -c '/usr/bin/initdb -D /var/pgsql/data'

Start the database server with the following command:

su - postgres -c '/usr/bin/postmaster -D /var/pgsql/data > \
        /var/pgsql/data/logfile 2>&1 &'

Now we can create a database and verify the installation:

su - postgres -c '/usr/bin/createdb test'
echo "create table t1 ( name varchar(20), state_province varchar(20) );" \
                | (su - postgres -c '/usr/bin/psql test ')
		
echo "insert into t1 values ('Billy', 'NewYork');" \
                | (su - postgres -c '/usr/bin/psql test ')
echo "insert into t1 values ('Evanidus', 'Quebec');" \
	        | (su - postgres -c '/usr/bin/psql test ')
echo "insert into t1 values ('Jesse', 'Ontario');" \
                | (su - postgres -c '/usr/bin/psql test ')
		
echo "select * from t1;" | (su - postgres -c '/usr/bin/psql test ')


Command explanations

useradd -d /var/pgsql/data postgres : Add an unprivileged user to run the database server. Running the server as root is dangerous, and moreover simply will not work.

su - postgres -c '/usr/bin/initdb -D /var/pgsql/data' : Initialize the database tablespace. This command may not be executed by root.

su - postgres -c '/usr/bin/postmaster -D /var/pgsql/data > \ /var/pgsql/data/logfile 2>&1 &' : Start the database server. User postgres must execute this command as well.

createdb test, create table t1 , insert into t1 values..., select * from t1 : Create a database, add a table to it, insert some rows into the table and select them to verify that the installation is working properly.


Configuring PostgreSQL

Config files

$PGDATA/pg_ident.con, $PGDATA/pg_hba.conf, $PGDATA/postgresql.conf

The PGDATA environment variable is used to distinguish database clusters from one another by setting it to the value of the directory which contains the cluster desired. The three configuration files exist in every PGDATA/ directory. Details on the format of the files and the options that can be set in each can be found in :

file:///usr/share/doc/postgresql/html/tutorial.html

postgres init.d script

Create the postgres, boot script with the following :

cat > /etc/rc.d/init.d/postgres << "EOF"

#!/bin/bash
# Begin $rc_base/init.d/postgres

# Based on sysklogd script from LFS-3.1 and earlier.
# Rewritten by Gerard Beekmans  - gerard@linuxfromscratch.org

source /etc/sysconfig/rc
source $rc_functions

case "$1" in
        start)
                echo "Starting PostgreSQL daemon..."
		su - postgres -c '/usr/bin/pg_ctl start -W -D /var/pgsql/data \
                               -l /var/pgsql/data/logfile -o "-i" '
                evaluate_retval
                ;;

        stop)
                echo "Stopping PostgreSQL daemon..."
                /usr/bin/pg_ctl stop -m smart -D /var/pgsql/data
		evaluate_retval
                ;;

        restart)
                $0 stop
                sleep 1
                $0 start
                ;;

        status)
                /usr/bin/pg_ctl status -D /var/pgsql/data
                ;;

        *)
                echo "Usage: $0 {start|stop|restart|status}"
                exit 1
                ;;
esac

# End $rc_base/init.d/

EOF
chmod 755 /etc/rc.d/init.d/postgres

Create the symbolic links to this file in the relevant rc.d directory with the following commands:

cd /etc/rc.d/init.d &&
ln -sf ../init.d/postgres ../rc0.d/K26postgres &&
ln -sf ../init.d/postgres ../rc1.d/K26postgres &&
ln -sf ../init.d/postgres ../rc2.d/K26postgres &&
ln -sf ../init.d/postgres ../rc3.d/S34postgres &&
ln -sf ../init.d/postgres ../rc4.d/S34postgres &&
ln -sf ../init.d/postgres ../rc5.d/S34postgres &&
ln -sf ../init.d/postgres ../rc6.d/K26postgres

Contents

The PostgreSQL RDBMS contains createdb, createlang, createuser, dropdb, droplang, dropuser, ecpg, initdb, initlocation, ipcclean, pg_config, pg_ctl, pg_dump, pg_dumpall, pg_passwd, pg_restore, pgaccess, pgtclsh, pgtksh, postgres, postmaster, psql and vacuumdb.


Description

createdb

createdb creates a new PostgreSQL database.


createlang

createlang defines a new PostgreSQL procedural language.


createuser

createuser defines a new PostgreSQL user account.


dropdb

dropdb removes a PostgreSQL database.


droplang

droplang removes a PostgreSQL procedural language.


dropuser

dropuser removes a PostgreSQL user account.


ecpg

ecpg is the embedded SQL preprocessor.


initdb

initdb create a new database cluster.


initlocation

initlocation creates a secondary database storage area.


ipcclean

ipcclean removes share memory and semaphores left over by an aborted database server.


pg_config

pg_config retrieves PostgreSQL version information.


pg_ctl

pg_ctl controls stopping and starting the database server.


pg_dump

pg_dump dumps database data and metadata into scripts which are used to recreate the database.


pg_dumpall

pg_dumpall recursively calls pg_dump for each database in a cluster.


pg_passwd

pg_passwd is a secondary password file utility, for controlling access to databases.


pg_restore

pg_restore creates databases from dump files created by pg_dump.


pgaccess

pgaccess is a graphical client for PostgreSQL, written in Tk/tcl.


pgtclsh

pgtclsh is a tcl shell for PostgreSQL.


pgtksh

pgtksh is a wish style shell for PostgreSQL.


postgres

postgres is a single user database server, generally used for debugging.


postmaster

postmaster is the multi-user database daemon.


psql

psql is a console based database shell.


vacuumdb

vacuumdb compacts databases and generates statistics for the query analyzer.


Chapter 25. Web serving

Apache-1.3.27

Introduction to Apache

Download location (HTTP):       http://www.apache.org/dist/httpd/apache_1.3.27.tar.gz
Download location (FTP):        ftp://ftp.tux.org/pub/net/apache/dist/httpd/apache_1.3.27.tar.gz
Version used:                   1.3.27
Package size:                   2.2 MB
Estimated disk space required:  13 MB

The Apache package contains an open-source HTTP server. It is useful for creating local intranet web sites or running huge web serving operations.


Installation of Apache

For security reasons, running the server as an unpriviledged user and group is strongly encouraged.

groupadd apache &&
useradd -c apache -d /dev/null -g apache -s /bin/false apache

Build and install Apache by running the following commands:

./configure --prefix=/usr \
            --sbindir=/usr/sbin \
            --libexecdir=/usr/lib/apache \
            --sysconfdir=/etc/apache \
            --includedir=/usr/include/apache \
            --datadir=/var/www \
            --localstatedir=/var/www \
            --logfiledir=/var/log/apache \
            --runtimedir=/var/run \
            --enable-module=all \
            --enable-shared=max \
            --disable-module=auth_db \
            --disable-module=auth_dbm \
            --server-uid=apache \
            --server-gid=apache &&
make &&
make install

VIII. X + Window Managers

Table of Contents
26. Installing X
27. X Libraries
28. Window Managers

Chapter 26. Installing X

XFree86-4.3.0

Introduction to XFree86

Download location (HTTP):       
Download location (FTP):        ftp://ftp.xfree86.org/pub/XFree86/4.3.0/source/
Version used:                   4.3.0
Package size:                   137 MB
Estimated Disk space required:  633 MB
Estimated build time:           75m (667 MHz)

XFree86 is a freely redistributable open-source implementation of the X Window System. XFree86 provides a client/server interface between display hardware (the mouse, keyboard, and video displays) and the desktop environment while also providing both the windowing infrastructure and a standardized application interface (API).

XFree86 depends on:
freetype-2.1.3, expat-1.95.6 and libpng-1.2.5

There are several files that need to be fetched from the download location:
X430src-1.tgz 10736 KB 
X430src-2.tgz  7776 KB   
X430src-3.tgz 12077 KB   
X430src-4.tgz 12604 KB   
X430src-5.tgz  4286 KB   
X430src-6.tgz  7886 KB   
X430src-7.tgz  9099 KB

The first three packages are the XFree86 programs, the fourth and fifth are fonts, the sixth is normal documentation, and the seventh is hardcopy documentation. There are also two packages doctools-1.3.1.tgz, which contain programs to regenerate hardcopy documentation, and utils-1.1.0.tgz, which contain gnutar and zlib which are already installed on an LFS system.

To check your downloads for integrity, download the SUMS.md5sum file. Then:
md5sum X430src* > md5sums &&
diff md5sums SUMS.md5sum
The only differences you should see are for README, doctools-1.3.1.tgz, and utils-1.1.0.tgz files if you did not download them.


Installation of XFree86

Kernel Compilation Settings

If you have an Intel P6 (Pentium Pro, Pentium II and later) it is recommended that you compile MTRR (Memory Type Range Registers) support into the kernel. The kernel can map Cyrix and AMD CPUs to the MTRR interface so selecting this option is useful for those processors also. This option is found in the "Processor type and features" menu. It can increase performance of image write operations 2.5 times or more on PCI or AGP video cards.

In the "Character Devices" section, enable AGP Support and select the chipset support on your motherboard. If you do not know the chipset, you may select all the chip types at the expense of extra kernel size. You can usually determine your motherboard's chipset by doing:
cat /proc/pci

In the "Character Devices" section, disable Direct Rendering Manager unless you have a Direct Rendering Infrastructure (DRI) supported video card. A complete list of DRI supported video cards can be found at http://dri.sourceforge.net in the Status section. Currently, supported cards include those from 3dfx (Voodoo, Banshee), 3Dlabs, ATI (Rage Pro, Rage 128, Radeon 7X00, Radeon 2), Intel (i810, i815), and Matrox (G200, G400, G450). Additionally NVidia provides their own closed source binary drivers. If you do enable DRI here, make sure you select the video card(s) you want to support as a module.

If you made any changes to the kernel configuration, recompile with
make dep &&
make bzImage &&
make modules &&
make modules_install

Copy /usr/src/linux/arch/i386/boot/bzImage and /usr/src/linux/System.map to /boot, edit /etc/lilo.conf appropriately and run lilo. If you use grub, edit /boot/grub/grub.conf and add the new kernel to the boot menu.

Note: If you build XFree86 in a chroot environment, make sure the kernel version of the base system and the target system are the same. This is especially important if you enabled DRI support as a module as instructed above.


Creating host.def

Although XFree86 will compile without a host.def file, the following file is recommended for customizing the installation. Start from the xc directory.

cat > config/cf/host.def << "EOF"
/* Begin XFree86 host.def file */

/* System Related Information.  If you read and configure only one
 * section then it should be this one.  The Intel architecture defaults are 
 * set for a i686 and higher.  Axp is for the Alpha architecture and Ppc is  
 * for the Power PC.  Note that there have been reports that the Ppc 
 * optimization line causes segmentation faults during build.  If that 
 * happens, try building without the DefaultGcc2PpcOpt line.  **************/

/* #define DefaultGcc2i386Opt  -O2 -fomit-frame-pointer -march=i686 */
/* #define DefaultGcc2AxpOpt   -O2 -mcpu=ev6 */
/* #define DefaultGcc2PpcOpt   -O2 -mcpu=750 */

/* The following definitions are normally set properly by XFree86's scripts.
 * You can uncomment them if you want to make sure. ************************/
 
/* #define HasMTRRSupport      YES  */ /* Enabled in kernel see kernel docs*/
/* #define HasMMXSupport        NO  */ /* Any i586 or above */
/* #define HasKatmaiSupport     NO  */ /* PIII SSE instuctions */
/* #define Has3DNowSupport      NO  */ /* AMD instructions */


/* This setting reduces compile time a little by omitting rarely used input 
 * devices.  You can find the complete list in config/cf/xfree86.cf ********/
 
#define XInputDrivers                 mouse void

/* VIDEO DRIVERS ***********************************************************/

/* If you are sure you only want the drivers for one or a few video cards,
 * you can delete the drivers you do not want. *****************************/ 


#define XF86CardDrivers  mga glint nv tga s3 s3virge sis rendition \
                         neomagic i740 tdfx savage \
                         cirrus vmware tseng trident chips apm \
                         GlideDriver fbdev i128 nsc \
                         ati i810 AgpGartDrivers DevelDrivers ark \
                         cyrix siliconmotion \
                         vesa vga \
                         dummy XF86OSCardDrivers XF86ExtraCardDrivers


/* FONT SERVER AND LIBRARY SETTINGS ****************************************/

/* These settings are the defaults   ***************************************/

/* #define BuildFontServer          YES  */ /* For GhostScript Print Server*/
/* #define SharedLibFont            YES  */
/* #define CompressAllFonts         YES  */
/* #define GzipFontCompression      YES  */

/* These settings ensure we use our libraries ******************************/
#define HasFreetype2             YES
#define HasExpat                 YES
#define HasLibpng                YES
#define HasZlib                  YES

/* The font path can be redefined in the XF86Config file *******************/

/*
#define DefaultFontPath                $(FONTDIR)/misc/,$(FONTDIR)/75dpi/,\
$(FONTDIR)/100dpi/,$(FONTDIR)/Type1,$(FONTDIR)/local,\
$(FONTDIR)/TrueType,$(FONTDIR)/CID,$(FONTDIR)/Speedo
*/


/* INTERNATIONAL FONTS.  Change to YES if you need any of them.  These  are
 * the defaults. ***********************************************************/

/* #define BuildCyrillicFonts            NO  */
/* #define BuildArabicFonts              NO  */
/* #define BuildISO8859_6Fonts           NO  */
/* #define BuildGreekFonts               NO  */
/* #define BuildISO8859_7Fonts           NO  */
/* #define BuildHebrewFonts              NO  */
/* #define BuildISO8859_8Fonts           NO  */
/* #define BuildKOI8_RFonts              NO  */
/* #define BuildJapaneseFonts            NO  */
/* #define BuildJISX0201Fonts            NO  */
/* #define BuildKoreanFonts              NO  */
/* #define BuildChineseFonts             NO  */

/* DOCUMENTATION SETTINGS **************************************************/

/* These setting are the defaults. *****************************************/

/* #define BuildLinuxDocHtml             NO  */  /* X Docs in Html format */
/* #define BuildLinuxDocPS               NO  */  /* PostScript format */
/* #define BuildAllSpecsDocs             NO  */  /* Various docs */
/* #define BuildHtmlManPages             NO  */

/* GENERAL SETTINGS: You generally want to leave these alone when
 * building X on an LFS system *********************************************/

#define GccWarningOptions         -pipe /* Speed up compiles */
#define TermcapLibrary            -lncurses
#define XprtServer                YES /* Needed by realplayer */
#define XnestServer               YES
#define XAppLoadDir               EtcX11Directory/app-defaults
#define VarLibDir                 /var/lib
#define XFree86Devel               NO
#define FSUseSyslog               YES
#define ThreadedX                 YES
#define HasPam                     NO        
#define SystemManDirectory        /usr/share/man  /* Instead of /usr/man */
#define HasLibCrypt               YES
#define InstallXinitConfig        YES
#define InstallXdmConfig          YES
#define ForceNormalLib            YES
#define BuildSpecsDocs             NO

/* End XFree86 host.def file */
EOF

Edit the file for your hardware and desires.


Build Commands

Install XFree86 by running the following commands:

WORLDOPTS="" make World 2>&1 | tee xfree-compile.log &&
make install &&
make install.man &&
ln -sf /usr/X11R6/bin /usr/bin/X11 &&
ln -sf /usr/X11R6/lib/X11 /usr/lib/X11 &&
ln -sf /usr/X11R6/include/X11 /usr/include/X11


Updating Direct Rendering Infrastructure (DRI)

If you have one of the supported DRI cards and have enabled DRI kernel modules as explained above, you now need to update the kernel modules to ensure they are compatible with the current version of XFree86. To do this, perform the following:

cd programs/Xserver/hw/xfree86/os-support/linux/drm/kernel && 
make -f Makefile.linux  && 
mkdir -p /lib/modules/`uname -r`/kernel/drivers/char/drm/  && 
cp gamma.o radeon.o sis.o r128.o i810.o i830.o mga.o tdfx.o \
    /lib/modules/`uname -r`/kernel/drivers/char/drm/  && 
depmod -a

Warning

If you recompile or upgrade your kernel, you will need to re-copy the driver modules to the kernel module library and rerun depmod.


Command explanations

WORLDOPTS="" make World 2>&1 | tee xfree-compile.log : This command runs multiple makefiles to completely rebuild the system. WORLDOPTS="" disables the default setting to continue after encountering an error. 2>&1 redirects error messages to the same location as normal output. The tee command allows viewing of the output while logging the results to a file.

Note: When rebuilding XFree86, a separate command that may be used if only minor changes are made to the sources is make Everything. This does not automatically remove generated files and only rebuilds those files or programs that are out of date.

ln -sf /usr/X11R6/bin /usr/bin/X11, ln -sf /usr/X11R6/lib/X11 /usr/lib/X11, and ln -sf /usr/X11R6/include/X11 /usr/include/X11 : These commands are present to enable other (broken) packages to build against XFree86. We do this even though the Filesystem Hierarchy Standard says: "In general, software must not be installed or managed via the above symbolic links. They are intended for utilization by users only."

make -f Makefile.linux : This builds the XFree86 compatible kernel modules.

cp gamma.o radeon.o sis.o r128.o i810.o i830.o mga.o tdfx.o /lib/modules/`uname -r`/kernel/drivers/char/drm/ : Put the kernel modules where the kernel can find them.

depmod -a : Update the modules.dep file for module management.


Configuring XFree86

Edit /etc/ld.so.conf and add /usr/X11R6/lib. Run
ldconfig

Add /usr/X11R6/bin to your PATH environment variable in .bash_profile. The statement should look something like PATH=$PATH:/usr/X11R6/bin and be placed before the export PATH statement.

Run
source ~/.bash_profile

Set up your mouse:
cd /dev
ln -s psaux mouse
Adjust the symbolic link as necessary for other types of mice. For instance, a serial mouse on the first serial port would be linked to ttyS1.

Create the XF86Config file with
cd ~
XFree86 -configure
The screen will go black and you may hear some clicking of the monitor. This command will create a file, XF86Config.new in your home directory.

Edit XF86Config.new to suit your system. The details of the file are located in the man page man XF86Config. Some things you may want to do are:

  • Section "Files". Change the order of the font paths searched. You may want to put 100dpi fonts ahead of 75dpi fonts if your system normally comes up closer to 100 dots per inch. You may want to remove some font directories completely.

  • Section "Module". Remove or comment out some of the modules. The "glx" and "dri" sections are not operational until we install DRI below. Leaving modules in does not hurt anything.

  • Section "InputDevice". You may want to change the keyboard autorepeat rate by adding Option "Autorepeat" "250 30".

  • Section "Screen". Add a DefaultDepth statement such as: DefaultDepth 16. In the SubSection for your default depth, add a modes line such as: Modes "1280x1024" "1024x768". The first mode listed will normally be the starting resolution.

Test the system with
XFree86 -xf86config ~/XF86Config.new
You will only get a gray background with an X-shaped mouse cursor, but it confirms the system is working. Exit with Control-Alt-Backspace. If the system does not work, take a look at /var/log/XFree86.0.log to see what went wrong.

Move the configuration file to its final location
mv ~/XF86Config.new /etc/X11/XF86Config-4

Create .xinitrc
cat > ~/.xinitrc << "EOF"
# Begin .xinitrc file
xterm  -g 80x40+0+0   &
xclock -g 100x100-0+0 &
twm
EOF
This provides an initial screen with an xterm and a clock that is managed by a simple window manager, Tab Window Manager. For details of twm, see the man page.

Start X with
startx
to get basic functional X Windows System.


Contents

The XFree86 package contains the X Windows system for Linux (and other operating systems). It includes the X server, fonts, xterm, a simple window manager (twm), various utilities, video output drivers, and various input drivers including the mouse and keyboard.

XFree86 also contains libraries and header files for development of X Windows programs.


Description

Note: The following list of programs is not comprehensive. The full list is in /usr/X11R6/bin. For additional information about these programs, see the respective man page.


XFree86

XFree86 is the X11R6 implementation of the X Windows server.


xf86config

An interactive program for generating an XF86Config file for use with XFree86 X servers.


xf86cfg

A tool to configure XFree86 that can be used to either write the initial configuration file or make customizations to the current configuration.


startx

A script to initialize the X session. It runs xinit.


xinit

This program is used to start the X Window System server.


twm

A Tab Window Manager for the X Window System.


xterm

A terminal emulator for X.


xwininfo

A window information utility for X.


x11perf

An X11 server performance test program.


xlsfonts

A program to list fonts available to the X server.


xvidtune

A video mode tuner for XFree86.


xload

A system load average display for X.


xcalc

A scientific calculator for X.


xclock and oclock

Clock programs for X.


xmodmap

A utility for modifying keymaps and pointer button mappings in X.


Setting up XFree86 Components

Checking Direct Rendering Infrastructure (DRI) Installation

DRI is a framework for allowing software to access graphics hardware in a safe and efficient manner. It is installed in XFree86 by default if you have a supported video card. To check if DRI is installed properly, check the log file /var/log/XFree86.0.log for statements like:

(II) R128(0): Direct rendering enabled

From an xterm, run glxinfo and look for the phrase:

direct rendering: Yes

You can also run the test program glxgears. This program brings up a window with three gears turning. The xterm will display how many frames were drawn every five seconds so this is a reasonable benchmark. The window is scalable, and the frames drawn per second is highly dependent on the size of the window.

For troubleshooting problems, check the DRI Users Guide at http://dri.sourceforge.net/doc/DRIuserguide.html.


Adding TrueType fonts to XFree86

TrueType font support is built into XFree86. The following items need to be completed to make the fonts available.

  • Establish a directory for the fonts and move any TrueType fonts you want into that directory.

  • Create the fonts.scale and fonts.dir files in the TrueType font directory.

  • Ensure the truetype module is loaded in XF86Config.

  • Ensure the FontPath in XF86Config contains the TrueType font directory.


Establish a TrueType font directory

The build of XFree86 as given above automatically creates a TrueType font directory: /usr/X11R6/lib/X11/fonts/TTF. This directory already has some TrueType fonts and is set up correctly. If this directory is satisfactory, copy any other TrueType fonts you want into that directory. If not, create a new directory, preferably in the /usr/X11R6/lib/X11/fonts/ directory and put your TrueType fonts there.


Create fonts.scale and fonts.dir

Now change to the directory where you have your TrueType fonts and run
mkfontscale &&
mkfontdir


Ensure TrueType is loaded in XF86Config

The "Module" section should look like:
Section "Module"
        ...
        Load  "freetype"
        ...
EndSection


Ensure the FontPath in XF86Config points to the TrueType font directory

The "Files" section should look like
Section "Files"
        ...
        FontPath     "/usr/X11R6/lib/X11/fonts/<TruetypeDir>/"
        ...
EndSection


Update the font cache files

Finally, to update all the font cache files specified in /etc/fonts/fonts.conf, run
fc-cache

XFree86 will now be able to use TrueType fonts when it is restarted. You can check to see if the new fonts are available with the xlsfonts or xfontsel program.

Note: You should re-run mkfontscale and mkfontdir any time you add or delete TrueType fonts. You should also rerun fc-cache each time you add or remove any fonts.


Setting up keyboards

In this version of XFree86, it has been reported that non-latin keyboard layouts do not include latin configurations as was previous practice. To set up a keyboard for latin and non-latin input, change the XkbLayout keyboard driver option in the InputDevice section of the XF86Config file. For example:

   Section "InputDevice"
     Identifier          "Keyboard0"
     Driver              "Keyboard"
     Option "XkbModel"   "pc105"
     Option "XkbLayout"  "en_US,ru"
     Option "XkbOptions" "grp:switch,grp:alt_shift_toggle,grp_led:scroll"
   EndSection

In this example, you can use the Alt-Shift combination to switch between keyboard layouts and use the Scroll Lock LED to indicate when the second layout is active.


Setting up xdm

xdm provides a graphical logon capability and is normally set up in /etc/inittab. Most of the information you need to customize xdm is found in its man page. To execute xdm during bootup, change the initdefault level to 5 and add the following lines to /etc/inittab:

# Run xdm as a separate service
x:5:respawn:/usr/X11R6/bin/xdm -nodaemon


Using XFree86 Resources

There are many options that can be set in XFree86 and X clients via resources. Typically resources are set in the ~/.Xresources file.

The layout of the ~/.Xresources file consists if a list of specifications in the form of

object.subobject[.subobject...].attribute: value

Typically, components of a resource specification are linked together by either tight, represented by a dot (.), or loose, represented by an asterisk (*), bindings. A tight binding indicates that the components on either side of the dot must be directly next to each other as defined in a specific implementation. An asterisk is a wildcard character that means that any number of levels in a defined hierarchy can be between the components. For example, XFree86 offers two new cursors: redglass and whiteglass. To use one of these resources, you need to add the following line:

Xcursor.theme: whiteglass

However, you can specify the background for all clients with:

*background: blue

More specific resource variables will override less specific names.

Resource definitions can be found in the man pages for each respective client.

In order to load your resources, the xrdb program must be called with the appropriate parameters. Typically, the first time resources are loaded, you use:

xrdb -load <filename>

To add resources to XFree86's database in memory use:

xrdb -merge <filename>

The xrdb instruction is usually placed in ~/.xinitrc or ~/.xsession. To get more information, see the xrdb man page.


Chapter 27. X Libraries

lesstif-0.93.36

Introduction to lesstif

Download location (HTTP):       http://telia.dl.sourceforge.net/sourceforge/lesstif/lesstif-0.93.36.tar.bz2
Download location (FTP):        
Version used:                   0.93.36
Package size:                   2.4 MB
Estimated Disk space required:  62 MB
Estimated build time:           4.24 SBU

The lesstif package contains an Open Source version of OSF/Motif(R).

lesstif depends on:
xfree86-4.3.0

Installation of lesstif

Install lesstif by running the following commands:

./configure --prefix=/usr \
    --enable-build-20 \
    --enable-build-21 \
    --disable-debug \
    --enable-production \
    --disable-build-tests \
    --with-xdnd &&
make &&
make install


Command explanations

--enable-build-20 : Build the Motif 2.0 compatible version of the lesstif libraries.

--enable-build-21 : Also build the Motif 2.1 compatible versions.

--disable-debug : Do not generate debugging information.

--enable-production : Build the release version of the lesstif libraries.

--disable-build-tests : Do not build the test/ tree(see testing note below).

--with-xdnd : Enable XDND Gnome compatibility support.


Configuring lesstif

Configuration Information

As with most libraries, there is no configuration to do, save that the library directory i.e. /usr/lib or /usr/local/lib should appear in /etc/ld.so.conf so that ldd can find the shared libraries. After checking that this is the case, /sbin/ldconfig should be run while logged in as root.


Testing Lesstif

It is advisable to test the installation of lesstif with the test suite located in lesstif-0.93.36/test. It is not required to install any of the resulting binaries to validate the installation, the following commands, executed in lesstif-0.93.36/test, will suffice:

./configure &&
make


Contents

The lesstif package contains lesstif libraries.


Description

lesstif libraries

Lesstif libraries are an OSF/Motif(R) source code compatible library for X Windows.


freetype-2.1.3

Introduction to freetype2

Download location (HTTP):       http://telia.dl.sourceforge.net/sourceforge/freetype/freetype-2.1.3.tar.bz2
Download location (FTP):        
Version used:                   2.1.3
Package size:                   725 KB
Estimated Disk space required:  14 MB

The freetype2 package contains a library to allow XFree86 to properly render TrueType fonts.


Installation of freetype2

Install freetype2 by running the following commands:

./configure --prefix=/usr &&
make &&
make install


Configuring freetype2

Configuration Information

As with most libraries, there is no configuration to do, save that the library directory i.e. /usr/lib or /usr/local/lib should appear in /etc/ld.so.conf so that ldd can find the shared libraries. After checking that this is the case, /sbin/ldconfig should be run while logged in as root.


Contents

The freetype2 package contains libfreetype libraries.


Description

freetype2 libraries

Freetype2 libraries add TrueType font capabilities to XFree86.


qt-3.1.2

Introduction to qt

Download location (HTTP):       
Download location (FTP):        ftp://ftp.trolltech.com/qt/source/qt-x11-free-3.1.2.tar.bz2
Version used:                   3.1.2
Package size:                   13 MB
Estimated Disk space required:  155 MB
Estimated build time:           86.40 SBU

The qt package contains a C++ GUI library. This is useful for creating graphical applications or executing graphical applications that are dynamically linked to the qt library.

qt depends on:
xfree86-4.3.0, libpng-1.2.5, libmng-1.0.5 and libjpeg-6b

Installation of qt

./configure -prefix /opt/qt-3.1.2 -qt-gif -system-libpng \
   -system-libmng -system-zlib -system-libjpeg -no-g++-exceptions \
   -thread &&
make &&
make install &&
ln -sfn /opt/qt-3.1.2 /opt/qt &&
ln -s /opt/qt/lib/libqt-mt.so /opt/qt/lib/libqt.so &&
cp -r doc/man /opt/qt/doc &&
cp -r examples /opt/qt/doc

Note: The build time for qt is quite long. If you want to save some time and don't want the tutorials and examples, change the first make line above to:

make sub-tools


Command explanations

-prefix /opt/qt-3.1.2 : This command sets up the install destination.

-qt-gif : This command adds support for gif files to the libraries.

-system-libpng -system-libmng -system-zlib -system-libjpeg : This command forces the library to use the shared libraries that are on your system instead of recreating its own set of support libraries for these functions.

-no-g++-exceptions : This command disables the exceptions coding generated by the C++ compiler.

-thread : This command compiles the library to support multi-threading.

ln -sfn /opt/qt-3.1.2 /opt/qt : This command standardizes the location of the qt libraries to the ld.so.conf entry described below.

ln -s /opt/qt/lib/libqt-mt.so /opt/qt/lib/libqt.so : This command allows configure scripts to find a working QT installation.

cp -r doc/man /opt/qt/doc : This command installs the man directory which is missed by make install.

cp -r examples /opt/qt/doc : This command installs the examples directory which is missed by make install.


Configuring qt

Configuration Information

As with most libraries, there is no configuration to do, save that the library directory /opt/qt/lib should appear in /etc/ld.so.conf so that ldd can find the shared libraries. The following command will add it if it is missing:

cat >> /etc/ld.so.conf << "EOF"
# Begin qt addition to /etc/ld.so.conf

/opt/qt/lib

# End qt addition
EOF
ldconfig

You need to add the path for the qt man pages to the man.conf file. This can be done with the following command:

cat >> /etc/man.conf << "EOF"
# Begin qt addition to man.conf

MANPATH /opt/qt/doc/man

# End qt addition to man.conf
EOF


Contents

The qt package contains the libqt-mt libraries and libqui libraries.


Description

qt library

The QT/X11 library contains API's necessary to use KDE programs.


GTK+-1.2.10

Introduction to GTK+

Download location (HTTP):       
Download location (FTP):        ftp://ftp.gtk.org/pub/gtk/v1.2/gtk+-1.2.10.tar.gz
Version used:                   1.2.10
Package size:                   2.7 MB
Estimated Disk space required:  54 MB
Estimated build time:           7.04 SBU

The GTK+ package contains GTK+ Libraries. This is useful for creating graphical user interfaces for applications.

GTK+ depends on:
GLib-1.2.10, libpng-1.2.5, libtiff-3.5.7, libjpeg-6b
and xfree86-4.3.0

Installation of GTK+

Install GTK+ by running the following commands:

./configure --prefix=/usr --sysconfdir=/etc &&
make &&
make install


Command explanations

--sysconfdir=/etc : This installs the configuration files into /etc instead of /usr/etc.

--with-xinput=xfree : This configuration flag is necessary to utilize alternative input devices.


Configuring GTK+

Configuration Information

As with most libraries, there is no configuration to do, save that the library directory i.e. /usr/lib or /usr/local/lib should appear in /etc/ld.so.conf so that ldd can find the shared libraries. After checking that this is the case, /sbin/ldconfig should be run while logged in as root.


Contents

The GTK+ package contains libgtk-1.2 libraries.


Description

GTK+ Libraries

GTK+ Libraries provide the API to implement graphical user interfaces.


Pango-1.2.1

Introduction to Pango

Download location (HTTP):       
Download location (FTP):        ftp://ftp.gtk.org/pub/gtk/v2.2/pango-1.2.1.tar.gz
Version used:                   1.2.1
Package size:                   776 KB
Estimated Disk space required:  10.1 MB
Estimated build time:           0.97 SBU

The Pango package contains the pango library. This is useful for the layout and rendering of text.

Pango depends on:
GLib-2.2.1 and freetype-2.1.3 
Pango will utilize:
qt-3.1.2, xfree86-4.3.0, gtk-doc-1.0 and xml-dtd-4.2

Installation of Pango

In order for pango to find xft2, the PKG_CONFIG_PATH must include /usr/X11R6/lib/pkgconfig. This is a good place to add it if you haven't already. Specific instructions for modifying this variable can be found in the pre-installation instructions for gnome.

Install Pango by running the following commands:

./configure --prefix=/usr --sysconfdir=/etc &&
make &&
make install


Command explanations

--sysconfdir=/etc : This switch installs the configuration files into /etc instead of /usr/etc.

--enable-gtk-doc : This switch will rebuild the API documentation during the make command.


Contents

The pango package contains libpango libraries.


Description

Pango libraries

Pango libraries contains low level layout rendering routines, a high level driver for laying out entire blocks of text, and routines to assist in editing internationalized text.


ATK-1.2.0

Introduction to ATK

Download location (HTTP):       
Download location (FTP):        ftp://ftp.gtk.org/pub/gtk/v2.2/atk-1.2.0.tar.bz2
Version used:                   1.2.0
Package size:                   284 KB
Estimated Disk space required:  3.7 MB
Estimated build time:           0.18 SBU

The atk package contains the ATK libraries. They are useful for allowing accessibility solutions to be available for all GTK2 applications.

ATK depends on:
GLib-2.2.1
ATK will utilize:
gtk-doc-1.0 and sgml-dtd-3.1

Installation of ATK

Install ATK by running the following commands:

./configure --prefix=/usr &&
make &&
make install


Command explanations

--enable-gtk-doc : This switch will rebuild the API documentation during the make command.


Contents

The atk package contains libatk libraries.


Description

ATK Libraries

ATK Libraries contain the API used by assistive technologies in order to interact with the desktop and applications.


GTK+-2.2.1

Introduction to GTK+

Download location (HTTP):       
Download location (FTP):        ftp://ftp.gtk.org/pub/gtk/v2.2/gtk+-2.2.1.tar.bz2
Version used:                   2.2.1
Package size:                   6.3 MB
Estimated Disk space required:  66.1 MB
Estimated build time:           5.49 SBU

The GTK+ package contains GTK+ Libraries. This is useful for creating graphical user interfaces for applications.

GTK+ depends on:
GLib-2.2.1, xfree86-4.3.0, Pango-1.2.1, ATK-1.2.0, 
libpng-1.2.5, libtiff-3.5.7 and libjpeg-6b
GTK+ will utilize:
gtk-doc-1.0

Installation of GTK+

Install GTK+ by running the following commands:

./configure --prefix=/usr --sysconfdir=/etc &&
make &&
make install


Command explanations

--sysconfdir=/etc : This switch installs the configuration files into /etc instead of /usr/etc.

--enable-gtk-doc : This switch will rebuild the API documentation during the make command.


Configuring GTK+

Configuration Information

As with most libraries, there is no configuration to do, save that the library directory i.e. /usr/lib or /usr/local/lib should appear in /etc/ld.so.conf so that ldd can find the shared libraries. After checking that this is the case, /sbin/ldconfig should be run while logged in as root.


Contents

The GTK+ package contains libgtk-x11-2.0 libraries.


Description

GTK+ Libraries

GTK+ Libraries provide the API to implement graphical user interfaces.


startup-notification-0.5

Introduction to startup-notification

Download location (HTTP):       http://www.freedesktop.org/software/startup-notification/releases/startup-notification-0.5.tar.gz
Download location (FTP):        
Version used:                   0.5
Package size:                   212 KB
Estimated Disk space required:  1.6 MB
Estimated build time:           0.20 SBU

The startup-notification package contains startup-notification libraries. These are useful for building a consistent manner to notify the user through the cursor that the application is loading.

startup-notification depends on:
xfree86-4.3.0

Installation of startup-notification

Install startup-notification by running the following commands:

./configure --prefix=/usr &&
make &&
make install


Contents

The startup-notification package contains libstartup-notification libraries.


Description

startup-notification libraries

startup-notification libraries provide the functions to assist applications in communicating with the cursor system to provide feedback to the user that the application is loading.


Chapter 28. Window Managers

Window Mangers and Desktop Environments are the primary user interfaces into the X Windows System. A window manager is a program that controls the appearance of windows and provides the means by which the user can interact with them. A Desktop Environment provides a more complete interface to the operating system, and provides a range of integrated utilities and applications.

There are many Window Mangers available. Some of the more well known ones include fvwm2, Window Maker, AfterStep, Enlightenment, Sawfish, and Blackbox.

The Desktop Environments available for Linux are GNOME, KDE, and XFce.

Choosing a Window Manager or Desktop Environment is highly subjective. The choice depends on the look and feel of the packages, the resources (RAM, disk space) required, and the utilities included. One web site that provides a very good summary of what is available, screenshots, and their respective features is Window Managers for X.

In this chapter, the installation instructions of several Window Managers and one lightweight Desktop Environment are presented. Later in the book, both KDE and Gnome have their own Parts.


sawfish-1.3

Introduction to sawfish

Download location (HTTP):       http://telia.dl.sourceforge.net/sawmill/sawfish-1.3.tar.gz
Download location (FTP):        
Version used:                   1.3
Package size:                   1.5 MB
Estimated Disk space required:  13 MB
Estimated build time:           0.80 SBU

The sawfish package contains a window manager. This is useful for organizing and displaying windows where all window decorations are configurable and all user-interface policy is controlled through the extension language.

sawfish-1.3 depends on:
xfree86-4.3.0, librep-0.16.2, rep-gtk-0.17, esound-0.2.29 and GTK+-2.2.1
sawfish will utilize:
libglade-2.0.1

Installation of sawfish

Install sawfish by running the following commands:

./configure --prefix=/usr --libexec=/usr/sbin --infodir=/usr/share/info \
  --with-gnome-prefix=/opt/gnome-2.2 &&
make &&
make install


Command explanations

--with-audiofile : This command directs sawfish to use libaudiofile for sound manipulation.

--with-esd : This command directs sawfish to use the Enlightened Sound Daemon.

--with-gnome-prefix=/opt/gnome-2.2 : This command directs sawfish to GNOME's directory.


Configuring sawfish

Configuration Information

Be sure to backup your current .xinitrc before proceeding.

cat >> ~/.xinitrc << "EOF"
exec sawfish
EOF


Contents

The sawfish package contains sawfish.


Description

sawfish

sawfish is the extensible window manager using a Lisp-based scripting language.


fluxbox-0.1.14

Introduction to fluxbox

Download location (HTTP):       http://telia.dl.sourceforge.net/sourceforge/fluxbox/fluxbox-0.1.14.tar.bz2
Download location (FTP):        
Version used:                   0.1.14
Package size:                   372 KB
Estimated Disk space required:  6.5 MB
Estimated build time:           2.21 SBU

The fluxbox package contains a windows manager.

fluxbox depends on:
xfree86-4.3.0

Installation of fluxbox

Install fluxbox by running the following commands:

./configure --prefix=/usr --enable-kde --enable-gnome &&
make &&
make install 


Command explanations

--enable-kde : This command activates fluxbox's ability to allow kde tray icons to be placed in the slit.

--enable-gnome : This command activates fluxbox's ability to support gnome.


Configuring fluxbox

Config files

~/.fluxbox/init, ~/.fluxbox/keys, ~/.fluxbox/menu


Configuration Information

Be sure to backup your current .xinitrc before proceeding.

cat >> ~/.xinitrc << "EOF"
exec fluxbox
EOF

mkdir ~/.fluxbox &&
cp /usr/share/fluxbox/init ~/.fluxbox/init &&
cp /usr/share/fluxbox/keys ~/.fluxbox/keys &&
cp /usr/share/fluxbox/menu ~/.fluxbox/menu 

Menu Items are added by editing~/.fluxbox/menu. The syntax is explained on the fluxbox man page.


Contents

The fluxbox package contains fluxbox, bsetbg and bsetroot.


Description

fluxbox

fluxbox is a window manager for X11 based on Blackbox 0.61.0.


bsetbg

bsetbg is a utility that sets the background image. It needs display, Esetroot, wmsetbg, xv, qiv or xsri to be used.


bsetroot

bsetroot is a blackbox utility to change root window appearance.


xfce-3.8.18

Introduction to XFce

Download location (HTTP):       http://telia.dl.sourceforge.net/xfce/xfce-3.8.18.tar.gz
Download location (FTP):        
Version used:                   3.8.18
Package size:                   5.1 MB
Estimated Disk space required:  26.3 MB

The XFce package contains a lightweight desktop environment.

XFce depends on:
xfree86-4.3.0, GTK+-1.2.10 and GLib-1.2.10
XFce will utilize:
gdk-pixbuf-0.22.0, imlib-1.9.14, libpng-1.2.5, 
libjpeg-6b, libungif-4.1.0b1 and libtiff-3.5.7

Installation of XFce

Install XFce by running the following commands:

./configure --prefix=/usr --datadir=/usr/share --sysconfdir=/etc &&
make &&
make install


Command explanations

--datadir=/usr/share : This command puts resource files into /usr/share/xfce instead of /usr/local/share/xfce.


Configuring XFce

Config files

~/.xinitrc


Configuration Information

XFce includes a script named xfce_setup which will set up xfce for the user. Also included is a script named xfce_remove which returns the configuration files to their previous state.


Contents

The XFce package contains CDE2Xfcepal, startxfce, xfbd, xfbdmgr, xfce, xfce_remove, xfce_setup, xfce_upgrade, xfclock, xfdiff, xfglob, xfgnome, xfhelp, xflock, xfmenu, xfmountdev, xfmouse, xfmouse, xfpager, xfplay, xfprint, xfrun, xfsamba, xfskin, xfsound, xfterm, xftrash, xftree, xfumed and xfwm.


Description

CDE2Xfcepal

CDE2Xfcepal converts CDE palettes to XFce palettes.


startxfce

startxfce initializes and starts the X server using ~/.xinitrc.


xfbd

xfbd is the backdrop manager for XFce.


xfbdmgr

xfbdmgr is the list manager for XFce.


xfce

xfce is an easy-to-use and easy-to-configure toolbar for X11.


xfce_remove

xfce_remove is a uninstall script to remove XFce as the desktop environment are restore the previous settings.


xfce_setup

xfce_setup is a configuration script to create ~./xinitrc for XFce.


xfce_upgrade

xfce_upgrade is the configuration script used to update versions of XFce.


xfclock

xfce_clock is a clock and calendar for XFce.


xfdiff

xfdiff is a visual diff for XFce.


xfglob

xfglob is the file finder of XFce.


xfgnome

xfgnome is the GNOME compliancy module for XFwm.


xfhelp

xfhelp is script that launches a HTML browser to display online documentation.


xflock

xflock is a script used to lock the current screen during drag and drop actions.


xfmenu

xfmenu is the menu launcher for XFce.


xfmountdev

xfmountdev mounts a device on the specified mount point and launches xftree, then unmounts the device when xftree finishes.


xfmouse

xfmouse is a mouse configurator for XFce.


xfpager

xfpager is the pager of XFwm.


xfplay

xfplay is a script that executes the play program (not included in package.


xfprint

xfprint is a minimalist printing wrapper to be used as a drag and drop action for the XFce front panel.


xfrun

xfrun is the program launcher for XFce.


xfsamba

xfsamba is samba front end for XFce.


xfskin

xfskin is a script to manage themes for XFce.


xfsound

xfsound is the sound server for XFce.


xfterm

xfterm is a small terminal wrapper to be used as a drag and drop action for the XFce front panel.


xftrash

xftrash is a small script to be used as a drag and drop action for the XFce front panel.


xftree

xftree is the file manager for XFce.


xfumed

xfumed is the user menu editor for XFce.


xfwm

xfwm is a window manager for X11.


metacity-2.4.34

Introduction to metacity

Download location (HTTP):       http://ftp.gnome.org/pub/GNOME/sources/metacity/2.4/metacity-2.4.34.tar.bz2
Download location (FTP):        ftp://ftp.gnome.org/pub/GNOME/sources/metacity/2.4/metacity-2.4.34.tar.bz2
Version used:                   2.4.34
Package size:                   1.2 MB
Estimated Disk space required:  15.8 MB
Estimated build time:           1.33 SBU

The metacity package contains a window manager. This is useful for organizing and displaying windows.

metacity depends on:
xfree86-4.3.0, intltool-0.25 and GTK+-2.2.1
metacity will utilize:
startup-notification-0.5 and GConf-2.2.0

Installation of metacity

Install metacity by running the following commands:

./configure --prefix=/usr --libexec=/usr/sbin --sysconfdir=/etc &&
make &&
make install


Configuring metacity

Configuration Information

Be sure to backup your current .xinitrc before proceeding.

cat >> ~/.xinitrc << "EOF"
xterm &
exec metacity
EOF


Contents

The metacity package contains metacity.


Description

metacity

metacity is a window manager used mainly by Gnome.

IX. KDE

Introduction to KDE

KDE depends on: xfree86-4.3.0 and qt-3.1.2

KDE is a comprehensive desktop environment that builds on XFree86 and QT to provide a window manager and many user tools, including a browser, word processor, spreadsheet, presentation package, games, and numerous other utilities. It provides extensive capabilities for customization.

We divide the KDE instructions into three parts. The first part, the core packages, are needed for the rest of KDE to work. The second part presents additional packages which provide functionality in various areas (multimedia, graphics etc). Finally, we describe installation of other miscellaneous KDE packages.

As the instructions for compiling and installing KDE were developed, the options to configure were examined and the parameters presented are the most likely to compile correctly. In each of the packages, one other option to configure can be added: --enable-final. This option can speed up the build process, but requires a lot of memory. If you have less than 256MB of RAM, this option may cause swapping and significantly slow compilation.

KDE also has many internationalization packages in the form of: kde-i18n-xx-3.1.tar.bz2 where the xx is a two to five letter code for the country covered. We do not cover the installation of these packages here.

All the KDE packages comprise of various components. The default is to install most of the components. If specific components are to be eliminated, the official way is to set the variable DO_NOT_COMPILE. This comes in handy when there are problems compiling a particular component.

DO_NOT_COMPILE="component1 component2" \
./configure --prefix=/opt/kde...

The core KDE packages also honor this variable, but omitting components from the core packages is not advisable since it may result in an incomplete KDE installation.


Chapter 29. KDE Core Packages

aRts-1.1

Download location (FTP):    ftp://ftp.kde.org/pub/kde/stable/3.1/src/arts-1.1.tar.bz2
Version used:               1.1
Package size:               947 KB
Estimated build disk space: 35 MB
Estimated installed space:  5.7 MB
Estimated build time:       11 min (667 MHz)

The Analog Real-time Synthesizer (aRts) provides sound support for KDE. It provides necessary libraries for kdelibs. The following package is required to install aRts:
qt-3.1.2

It will use the following recommended packages, if installed:
alsa-0.9.2, audiofile-0.2.3, and libvorbis-1.0

Before starting the build, ensure you have the QTDIR environment variable set
export QTDIR=/opt/qt

./configure --prefix=/opt/kde-3.1 --disable-debug \
     --disable-dependency-tracking &&
make &&
make install &&
ln -sfn /opt/kde-3.1 /opt/kde

Note: Another configure option is --enable-final. This option can speed up the build process, but requires a lot of memory. If you have less than 256MB of RAM, this option may cause swapping and significantly slow compilation.


aRts Installation Command explanations

--prefix=/opt/kde-3.1 : This option tells the process to install the package in /opt/kde-3.1. We put aRts here because this package is required before installing KDE.

--disable-debug : This option causes the system to be compiled without debugging code.

--disable-dependency-tracking : This option speeds up one time builds.

ln -sfn /opt/kde-3.1 /opt/kde : This command creates a link for access to KDE. If a newer version of KDE is released, the new system can be built by changing the --prefix location and then set up by changing the link as this command does.


Configuring aRts

The library directory /opt/kde/lib should appear in /etc/ld.so.conf so that ldd can find the shared libraries. The following command will add it if it is missing:
cat >> /etc/ld.so.conf << "EOF"
# Begin kde addition to /etc/ld.so.conf

/opt/kde/lib

# End kde addition
EOF
ldconfig


kdelibs-3.1

Download location (FTP):     ftp://ftp.kde.org/pub/kde/stable/3.1/src/kdelibs-3.1.tar.bz2
Estimated build disk space:  115 MB
Estimated installed space:   41 MB
Package size:                7.2 MB
Estimated build time:        62 min (667 MHz)

The following package is required to install kdelibs:
arts-1.1

kdelibs can use many libraries and programs. The following are recommended:
openssl-0.9.7a, pcre-4.1, libxml2-2.5.6,
libxslt-1.0.29, libfam-2.6.9, and libart_lgpl-2.3.11

Other optional programs and libraries that can be used by kdelibs are:
cups-1.1.18, sane-1.0.9, and openldap-2.1.17

Install kdelibs with:
./configure --prefix=/opt/kde-3.1 --disable-debug \
     --disable-dependency-tracking --with-alsa --enable-fast-malloc=full &&
make &&
make install


kdelibs Installation Command explanations

--prefix=/opt/kde-3.1 : This option tells the process to install the package in /opt/kde-3.1.

--disable-debug : This option causes the system to be compiled without debugging code.

--disable-dependency-tracking : This option speeds up one time builds.

--with-alsa : This option tells the build process to search for and use Alsa for sound support.

--enable-fast-malloc=full : This option tells KDE programs to use an internal memory allocation scheme optimized for KDE.


Configuring kdelibs

There is no additional configuration to do for kdelibs.


Contents

kde-libs provides numerous libraries needed by kde programs.


kdebase-3.1

Download location (FTP):     ftp://ftp.kde.org/pub/kde/stable/3.1/src/kdebase-3.1.tar.bz2
Estimated build disk space:  132 MB
Estimated installed space:   45 MB
Package size:                12.0 MB
Estimated build time:        98 min (667 MHz)

kdebase can use many optional libraries and programs. The following are recommended:
openssl-0.9.7a, lesstif-0.93.36, CDParanoia-III-9.8, libvorbis-1.0,
shadow (in the LFS book), and cups-1.1.18

Other programs and libraries that can be used by kdebase are:
lame-3.93.1, and Linux_PAM-0.77

Check to see if /lib/libmisc.la exists. If not, run:
ln -sf /usr/lib/libmisc.la /lib/libmisc.la

Install kdebase with:
./configure --prefix=/opt/kde-3.1 --disable-debug \
     --disable-dependency-tracking --disable-lametest --with-shadow &&
make &&
make install


kdebase Installation Command explanations

--disable-lametest : Do not search for and use lame support. This package provides mp3 encoding. Omit this option if you installed lame.

--with-shadow : Use shadow password support.


Contents

Major programs in Kde-base include:

  • kdesktop - the program that handles desktop icons, popup menus, and the screensaver system.

  • kaddressbook - a simple addressbook

  • kappfinder - utility to add non-KDE applications to K-menu

  • kcontrol - KDE Control Center

  • kdeprint - Print job administration

  • kdm - KDE Display manager (a replacement for xdm

  • kfind - utility to find files

  • khelpcenter - kde help tool

  • khotkeys - handles hot keys for KDE

  • kicker - KDE control panel

  • klipper - a clipboard utility

  • kmenuedit - utility to reaggange or add to the K-menu

  • konqueror - a filesystem and Web browser

  • konsole - a highly configurable X terminal emulator

  • kscreensaver - program to set up screensavers

  • ktip - wizard to provide hints and KDE information


Configuring the core KDE packages

First create an /opt/kde symlink:
ln -sf /opt/kde-3.1 /opt/kde

Then create an .xinitrc file to start KDE:
echo "exec startkde" > ~/.xinitrc
and ensure all libraries can be found with:
ldconfig

At this point you can bring up KDE with:
startx


Chapter 30. KDE Additional Packages

kdemultimedia-3.1

Download location (FTP):     ftp://ftp.kde.org/pub/kde/stable/3.1/src/kdemultimedia-3.1.tar.bz2 
Estimated build disk space:  78 MB
Estimated installed space:   15 MB
Package size:                5.8 MB
Estimated build time:        44 min (667 MHz)

kdemultimedia depends on:
kdebase-3.1

Install kdemultimedia with:
./configure --prefix=/opt/kde-3.1 --disable-debug \
    --disable-dependency-tracking --with-arts-alsa &&
make &&
make install


kdemultimedia Installation Command explanations

--with-arts-alsa : Use the alsa support built into aRts.


Configuring kdemultimedia

There is no explicit configuration for the kde multimedia package, however Kscd needs to find the CD drive. The default is /dev/cdrom which may not exist on your system. The easiest way to do this is to create a symbolic link to this from your CD drive (e.g. /dev/hdc, /dev/scd0, etc):
cd /dev &&
ln -s "CD Drive" /dev/cdrom


Contents

The KDE Multimedia package provides:

  • kaboodle - A multimedia player

  • noatun - Another multimedia player

  • TiMidity - Midi player

  • kmidi - A front end for TiMidity

  • kmix - Sound mixer

  • Kscd - CD player

  • aKtion! - Video player


kdenetwork-3.1

Download location (FTP):     ftp://ftp.kde.org/pub/kde/stable/3.1/src/kdenetwork-3.1.tar.bz2
Estimated build disk space:  71 MB
Estimated installed space:   16 MB
Package size:                4.8 MB
Estimated build time:        28 min (667 MHz)

kdenetwork depends on:
kdebase-3.1

Install kdenetwork with:
./configure --prefix=/opt/kde-3.1 --disable-debug \
    --disable-dependency-tracking &&
make &&
make install


Configuring kdenetwork

There is no explicit configuration for the kde network package, however individual packages need to be set up with user information.


Contents

The KDE Network package provides:

  • KMail - A mail client

  • KNewsTicker - News applet for the KDE Application Launcher Panel

  • KNode - A news reader

  • KPPP - Internet dial-up utility

  • KSirc - A chat client

  • Kit - An AOL messaging client (AIM)

  • Korn - A mail notification utility


kdegraphics-3.1

Download location (FTP):     ftp://ftp.kde.org/pub/kde/stable/3.1/src/kdegraphics-3.1.tar.bz2  
Estimated build disk space:  38 MB
Estimated installed space:   7 MB
Package size:                4.4 MB
Estimated build time:        24 min (667 MHz)

kdegraphics depends on:
kdebase-3.1 and which-2.14 (or the which script)
The kuickshow program requires imlib-1.9.14
The kooka program requires sane-1.0.9

Install kdegraphics with:
./configure --prefix=/opt/kde-3.1 --disable-debug \
    --disable-dependency-tracking &&
make &&
make install


Contents

The KDE Graphics package provides:

  • kcoloredit - color pallette editor

  • kdvi - DVI viewer

  • kfax - FAX viewer

  • kfract - A fractal generator

  • kghostview - PS/PDF viewer

  • kiconedit - An icon editor

  • kooka - Raster image scan program

  • kpaint - A paint program

  • kruler - Screen ruler

  • ksnapshot - Screen capture program

  • kuickshow - Image viewer

  • kview - Another image viewer


kdepim-3.1

Download location (FTP):     ftp://ftp.kde.org/pub/kde/stable/3.1/src/kdepim-3.1.tar.bz2 
Estimated build disk space:  63 MB
Estimated installed space:   7 MB
Package size:                3.1 MB
Estimated build time:        22 min (667 MHz)

kdepim depends on:
kdebase-3.1

The kpilot application depends on pilot-link version 0.9.5 which can be found at http://www.slac.com/pilone/kpilot_home

Install kdepim with:
./configure --prefix=/opt/kde-3.1 --disable-debug \
    --disable-dependency-tracking &&
make &&
make install


Contents

The KDE PIM package provides:

  • kalarm - A system to provide reminder messages.

  • kandy - A program to synchronize mobile phone numbers

  • karm - A personal time tracker

  • knotes - Popup notes utility

  • korganizer - Personal calendar/todo system

  • kpilot - A program to synchrinize a Palm-Pilot

  • libical - A calendar library


kdeadmin-3.1

Download location (FTP):     ftp://ftp.kde.org/pub/kde/stable/3.1/src/kdeadmin-3.1.tar.bz2 
Estimated build disk space:  23 MB
Estimated installed space:   4 MB
Package size:                1.5 MB
Estimated build time:        10 min (667 MHz)

kdeadmin depends on:
kdebase-3.1
The kpackage program can use rpm
kuser can use shadow and Linux_PAM-0.77

Install kdeadmin with:
./configure --prefix=/opt/kde-3.1 --disable-debug \
    --disable-dependency-tracking --with-shadow &&
make &&
make install


kdeadmin Installation Command explanations

--with-shadow : This option allows use of shadow passwords.


Contents

The KDE Admin package provides:

  • kpackage - A package manager

  • kcron - A task scheduler

  • kuser - Graphical user manager

  • kwuftpd - FTPD editor

  • ksysv - Sys V-Init Editor


kdegames-3.1

Download location (FTP):     ftp://ftp.kde.org/pub/kde/stable/3.1/src/kdegames-3.1.tar.bz2 
Estimated build disk space:  70 MB
Estimated installed space:   20 MB
Package size:                8.0 MB
Estimated build time:        24 min (667 MHz)

kdegames depends on:
kdebase-3.1

Install kdegames with:
./configure --prefix=/opt/kde-3.1 --disable-debug \
    --disable-dependency-tracking &&
make &&
make install


Contents

The KDE Games package provides the following games:

  • Arcade: KAsteroids, KBounce, KFoulEggs, KSirtet, KSmileTris, KSnakeRace, KSpaceDuel, KTron

  • Boardgames: KBackgammon, KBattleship, KBlakBox, KMahjongg, KReversi, KWin4, Kenolaba, Shisen-Sho

  • Card Games: KPoker, Lieutnant, Patience

  • Strategy & Tactics: KAtomic, KJumpingCube, KMines, KSokoban, Kolor Lines, Konquest, SameGame


kdeutils-3.1

Download location (FTP):     ftp://ftp.kde.org/pub/kde/stable/3.1/src/kdeutils-3.1.tar.bz2 
Estimated build disk space:  26 MB
Estimated installed space:   6 MB
Package size:                1.4 MB
Estimated build time:        13 min (667 MHz)

kdeutils depends on:
kdebase-3.1

Install kdeutils with:
./configure --prefix=/opt/kde-3.1 --disable-debug \
    --disable-dependency-tracking &&
make &&
make install


Contents

The KDE Utils package provides the following:

  • kcalc - Scientific Calculator

  • charselectapplet - Character Selector Applet

  • arc - Archiving Tool

  • kdepasswd - Change passwords

  • kdf - View disk usage

  • kedit - Text editor

  • kfloppy - Floppy formatter

  • khexeditor - Binary editor

  • kjots - Note taker

  • kljtool - HP Laserjet control panel

  • klpq - View print job queues

  • ktimer - Task scheduler


kdeedu-3.1

Download location (FTP):     ftp://ftp.kde.org/pub/kde/stable/3.1/src/kdeedu-3.1.tar.bz2 
Estimated build disk space:  78 MB
Estimated installed space:   15 MB
Package size:                20 MB
Estimated build time:        13 min (667 MHz)

kdeedu depends on:
kdebase-3.1

Install kdeedu with:
./configure --prefix=/opt/kde-3.1 --disable-debug \
    --disable-dependency-tracking &&
make &&
make install


Contents

The KDE Edu package provides:

  • keduca - Tests and Exams

  • kgeo - Interactive geometry tutorial

  • klettres - Alphabet tutor (French)

  • kstars - Desktop planetarium

  • ktouch - Touch typing tutor

  • kvoctrain - Vocabulary trainer


kdeartwork-3.1

Download location (FTP):     ftp://ftp.kde.org/pub/kde/stable/3.1/src/kdeartwork-3.1.tar.bz2 
Estimated build disk space:  47 MB
Estimated installed space:   21 MB
Package size:                12.0 MB
Estimated build time:        8 min (667 MHz)

kdeartwork depends on:
kdebase-3.1

Install kdeartwork with:
./configure --prefix=/opt/kde-3.1 --disable-debug \
    --disable-dependency-tracking &&
make &&
make install


Contents

The KDE Artwork package provides:

  • KDE themes including wallpapers, sounds, icons, and window decorations

  • kscreensaver - KDE screensavers


kdetoys-3.1

Download location (FTP):     ftp://ftp.kde.org/pub/kde/stable/3.1/src/kdetoys-3.1.tar.bz2 
Estimated build disk space:  12 MB
Estimated installed space:   4 MB
Package size:                1.8 MB
Estimated build time:        4 min (667 MHz)

kdetoys depends on:
kdebase-3.1

Install kdetoys with:
./configure --prefix=/opt/kde-3.1 --disable-debug \
    --disable-dependency-tracking &&
make &&
make install


Contents

The KDE toys package provides:

  • AMOR - Amusing Misuse of Resources

  • kaphorism - Aphorisms

  • kmoon - Moon phase indicator

  • kodo - Measure your desktop mileage

  • kteatime - Time your tea brewing

  • ktux - Small Tux crossing stars


kdeaddons-3.1

Download location (FTP):     ftp://ftp.kde.org/pub/kde/stable/3.1/src/kdeaddons-3.1.tar.bz2 
Estimated build disk space:  23 MB
Estimated installed space:   5 MB
Package size:                1.1 MB
Estimated build time:        15 min (667 MHz)

kdeaddons depends on:
kdemultimedia-3.1 and kdenetwork-3.1

Install kdeaddons with:
./configure --prefix=/opt/kde-3.1 --disable-debug \
    --disable-dependency-tracking &&
make &&
make install


Contents

The KDE Addons package provides:

  • konquorer plugins

  • kicker applets

  • noatun plugins

  • newskicker scripts


Chapter 31. Other KDE Packages

kdoc

Download location (FTP):     http://www.ph.unimelb.edu.au/~ssk/kde/kdoc/kdoc-snapshot.tar.gz
Estimated build disk space:  512 KB
Estimated installed space:   304 KB
Package size:                86 KB

KDOC is a C++ and IDL interface documentation tool, initially written for the specific purpose of generating documentation for the KDE libraries.

Note: KDOC is still under development. This prcedure installs the latest snapshot.

Install kdoc with:
./configure --prefix=/opt/kde-3.1 &&
make &&
make install


Contents

The kdoc package provides:

  • kdoc - C++ Documentation tool

  • makekdedoc - Generates HTML documentation of the KDE libraries

  • qt2kdoc - Generates KDoc reference index for the QT GUI toolkit

X. Gnome

Introduction to Gnome

This chapter attempts to install a complete Gnome-2.2 desktop environment and a limited Gnome 1.4 library environment that is sufficient to run Gnome 1.4 applications included in this book. The order of the pages are meant to follow the build order defined by the Gnome development team as published in the release notes, with two exceptions. If a package is in the release notes build list, but not in this chapter, it has been installed elsewhere in the book.

The installation of Gnome-2.2 is a large undertaking and one we would like to see you complete with the least amount of stress. One of our first goals in this installation is to protect your previously installed software, especially if you are testing Gnome on your machine. Gnome-2.2 packages utilize the --prefix= option for configure, so we will use that and an Environment variable (GNOME_PREFIX) to add flexibility to the install.

If you know that you want Gnome as your desktop, it is recommended that you install with --prefix=/usr. If you are not sure that you are going to keep Gnome on your installation, it is recommended that you install with --prefix=/opt/gnome-2.2. Setting the Environment variable and the additional edits required by the second option are covered on the pre-installation page.

If you choose the second option, removal of Gnome-2.2 is as easy as removing the edits from the pre-installation page and issue the following command:
rm /opt/gnome-2.2 -r 

If your system was completely built per LFS and BLFS instructions, you have a very good chance of using Gnome-2.2 after your first install. If you are a typical LFS user, you have made modifications to the instructions along the way knowing that you have to take those modifications into account on future installations. You should have no problems integrating Gnome-2.2 into your unique setup, but you will have 28 to 33 packages installed before you can run Gnome through any testing (assuming your window manager is preinstalled and tested). We would anticipate that you will be rebuilding gnome at least once to make adjustments for your setup.

If you are building a Gnome 1.4 desktop environment, you would install only those libraries in the Gnome 1.4 chapter and any dependencies listed on those pages whether labeled or not. Gnome packages without pages are simply installed with:
./configure --prefix=/opt/gnome &&
make &&
make install
These instructions are simplistic to facilitate removal of Gnome 1.4 from BLFS systems when it is no longer necessary. These instructions may be refined later to comply with BLFS standards for file locations, specifically /opt/gnome/etc to /etc and /opt/gnome/var to /var. You should consider using the Gnome 1.4 hint located at http://hints.linuxfromscratch.org/hints if you have no interest in Gnome-2.2.

Gnome-2.2 requires:
xfree86-4.3.0, GTK+-2.2.1, libpng-1.2.5, 
libjpeg-6b, libtiff-3.5.7, popt-1.7
Gnome-2.2 will utilize:
libxml2-2.5.6, libxslt-1.0.29, xml-dtd-4.2, 
docbook-xsl-1.60.1 and libfam-2.6.9


Chapter 32. Gnome Libraries

pre-installation configuration

Set an Environment variable to resolve the prefix destination.

If Gnome is your desktop of choice:
export GNOME_PREFIX=/usr
If you want to try-out Gnome:
export GNOME_PREFIX=/opt/gnome-2.2

The try-out group will also need to make all the following configuration changes:

Add to your system or personal profile:

export PATH=$PATH:/opt/gnome-2.2/bin
export PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/opt/gnome-2.2/lib/pkgconfig
export GNOME_LIBCONFIG_PATH=/usr/lib

Add to your /etc/ld.so.conf:

cat >> /etc/ld.so.conf << "EOF"
# Begin gnome addition to /etc/ld.so.conf

/opt/gnome-2.2/lib

# End gnome addition
EOF

Add to your /etc/man.conf:

cat >> /etc/man.conf << "EOF"
# Begin gnome addition to man.conf

MANPATH /opt/gnome-2.2/man

# END gnome addition to man.conf
EOF


gtk-doc-1.0

Introduction to gtk-doc

Download location (HTTP):       http://ftp.gnome.org/pub/GNOME/sources/gtk-doc/1.0/gtk-doc-1.0.tar.bz2
Download location (FTP):        ftp://ftp.gnome.org/pub/GNOME/sources/gtk-doc/1.0/gtk-doc-1.0.tar.bz2
Version used:                   1.0
Package size:                   120 KB
Estimated Disk space required:  956 KB
Additional downloads:
png-support-3.1.dtd

The gtk-doc package contains a code documentor. This is useful for extracting specially-formatted comments from the code to create API documentation. This package is optional, if it is not installed, packages will not build the documentation. This does not mean that you will not have any documentation, if gtk-doc is not available, the install process will copy pre-built documentation to your system.

gtk-doc depends on:
openjade-1.3.2, libxslt-1.0.29, xml-dtd-4.2, 
sgml-dtd-3.1 and sgml-dtd-4.2

Installation of gtk-doc

Install gtk-doc by running the following commands:

./configure --prefix=/usr &&
make install

You should either save png-support-3.1.dtd to /usr/share/sgml/docbook/sgml-dtd-3.1 or move the file to that location. Some configuration steps need to be performed that are listed at sgml-dtd-3.1.


Contents

The gtk-doc package contains gtkdoc-fixxref, gtkdoc-mkdb, gtkdoc-mkhtml, gtkdoc-mkman, gtkdoc-mktmpl, gtkdoc-scan, gtkdoc-scangobj and gtkdoc-scanobj.


Description

This are all perl scripts used by Makefile scripts to generate documentation for the package.


linc-1.0.1

Introduction to linc

Download location (HTTP):       http://ftp.gnome.org/pub/GNOME/sources/linc/1.0/linc-1.0.1.tar.bz2
Download location (FTP):        ftp://ftp.gnome.org/pub/GNOME/sources/linc/1.0/linc-1.0.1.tar.bz2
Version used:                   1.0.1
Package size:                   188 KB
Estimated Disk space required:  1.9 MB
Estimated build time:           0.28 SBU

The linc package contains a library that eases the task of writing networked servers and clients. This is used by ORBit to hand message transmissions and receptions.

linc depends on:
GLib-2.2.1 and openssl-0.9.7a
linc will utilize:
gtk-doc-1.0 and sgml-dtd-3.1

Installation of linc

Install linc by running the following commands:

./configure --prefix=$GNOME_PREFIX --with-openssl --disable-gtk-doc &&
make &&
make install 


Command explanations

--with-openssl : This switch compiles linc with OpenSSL support.

--disable-gtk-doc : This switch will prevent the rebuilding of the API documentation during the make command.


Contents

The linc package contains liblinc libraries.


Description

liblinc libraries

liblinc libraries provide the functions to take care of connection initiation and maintenance, and the details of various transports (IPv4, UNIX domain sockets, IPv6 and IrDA).


libIDL-0.8.0

Introduction to libIDL

Download location (HTTP):       http://ftp.gnome.org/pub/GNOME/sources/libIDL/0.8/libIDL-0.8.0.tar.bz2
Download location (FTP):        ftp://ftp.gnome.org/pub/GNOME/sources/libIDL/0.8/libIDL-0.8.0.tar.bz2
Version used:                   0.8.0
Package size:                   348 KB
Estimated Disk space required:  2.6 MB
Estimated build time:           0.24 SBU

The libIDL package contains libraries for Interface Definition Language files. This is a specification for defining portable interfaces.

libIDL depends on:
GLib-2.2.1

Installation of libIDL

Install libIDL by running the following commands:

./configure --prefix=$GNOME_PREFIX &&
make &&
make install


Contents

The libIDL package contains libIDL libraries.


Description

libIDL libraries

libIDL libraries provide the functions to create and maintain trees of CORBA Interface Definition Language (IDL) files.


ORBit2-2.6.1

Introduction to ORBit2

Download location (HTTP):       http://ftp.gnome.org/pub/GNOME/sources/ORBit2/2.6/ORBit2-2.6.1.tar.bz2
Download location (FTP):        ftp://ftp.gnome.org/pub/GNOME/sources/ORBit2/2.6/ORBit2-2.6.1.tar.bz2
Version used:                   2.6.1
Package size:                   432 KB
Estimated Disk space required:  10.8 MB
Estimated build time:           1.95 SBU

The ORBit2 package contains a high-performance CORBA Object Request Broker. This allows programs to send requests and receive replies from other programs.

ORBit2 depends on:
GLib-2.2.1, linc-1.0.1, libIDL-0.8.0 and popt-1.7

Installation of ORBit2

Install ORBit2 by running the following commands:

ldconfig &&
./configure --prefix=$GNOME_PREFIX &&
make &&
make install


Contents

The ORBit2 package contains libORBit-2 and libORBitCosNaming-2 libraries.


Description

libORBit-2

libORBit-2 is the CORBA API.


libORBitCosNaming

No description available.


intltool-0.25

Introduction to intltool

Download location (HTTP):       http://ftp.gnome.org/pub/GNOME/sources/intltool/0.25/intltool-0.25.tar.bz2
Download location (FTP):        ftp://ftp.gnome.org/pub/GNOME/sources/intltool/0.25/intltool-0.25.tar.bz2
Version used:                   0.25
Package size:                   100 KB
Estimated Disk space required:  952 KB

The intltool package contains an internationalization tool. This is useful for extracting translatable strings from source files, collects the extracted strings with messages from traditional source files (<source directory>/<package>/po) and merging the translations into .xml, .desktop and .oaf files.


Installation of intltool

Install intltool by running the following commands:

./configure --prefix=/usr --mandir=/usr/share/man &&
make &&
make install


Contents

The intltool package contains intltoolize, intltool-update, intltool-extract, intltool-merge, intltool-prepare and intltool-unicodify.


Description

intltoolize

intltoolize prepares a package to use intltool.


intltool-update

intltool-update updates the po template files and merges them with the translations.


intltool-extract

intltool-extract generates header files that can be read by gettext.


intltool-merge

intltool-merge merges translated strings into various file types.


intltool-prepare

intltool-prepare updates pot files and merges them with translation files.


intltool-unicodify

intltool-unicodify is the i18n unicode encoding utility.


bonobo-activation-2.2.1.1

Introduction to bonobo-activation

Download location (HTTP):       http://ftp.gnome.org/pub/GNOME/sources/bonobo-activation/2.2/bonobo-activation-2.2.1.1.tar.bz2
Download location (FTP):        ftp://ftp.gnome.org/pub/GNOME/sources/bonobo-activation/2.2/bonobo-activation-2.2.1.1.tar.bz2
Version used:                   2.2.1.1
Package size:                   447 KB
Estimated Disk space required:  5.2 MB
Estimated build time:           0.60 SBU

The bonobo-activation package contains libbonobo-activation libraries. This is the new Object Activation Framework (OAF) for GNOME.

bonobo-activation depends on:
ORBit2-2.6.1
bonobo-activation will utilize:
gtk-doc-1.0 and sgml-dtd-3.1 

Installation of bonobo-activation

Install bonobo-activation by running the following commands:

./configure --prefix=$GNOME_PREFIX --libexecdir=$GNOME_PREFIX/sbin \
--sysconfdir=/etc/gnome --disable-gtk-doc &&
make &&
make install


Command explanations

--libexecdir=$GNOME_PREFIX/sbin : This switch puts libexec files in $GNOME_PREFIX/sbin instead of $GNOME_PREFIX/libexec.

--sysconfdir=/etc/gnome : This switch puts configuration files in /etc/gnome instead of $GNOME_PREFIX/etc.

--disable-gtk-doc : This switch will prevent the rebuilding of documentation during the make command.


Contents

The bonobo-activation package contains libbonobo-activation libraries.


Description

libbonobo-activation

No description available.


libbonobo-2.2.1

Introduction to libbonobo

Download location (HTTP):       http://ftp.gnome.org/pub/GNOME/sources/libbonobo/2.2/libbonobo-2.2.1.tar.bz2
Download location (FTP):        ftp://ftp.gnome.org/pub/GNOME/sources/libbonobo/2.2/libbonobo-2.2.1.tar.bz2
Version used:                   2.2.1
Package size:                   557 KB
Estimated Disk space required:  8.8 MB
Estimated build time:           1.72 SBU

The libbonobo package contains libbonobo libraries. This is a component and compound document system for GNOME.

libbonobo depends on:
ORBit2-2.6.1 and bonobo-activation-2.2.1.1
libbonobo will utilize:
gtk-doc-1.0 and xml-dtd-4.2

Installation of libbonobo

Install libbonobo by running the following commands:

./configure --prefix=$GNOME_PREFIX --disable-gtk-doc  &&
make &&
make install 


Contents

The libbonobo package contains libbonobo libraries.


Description

libbonobo libraries

libbonobo libraries are a set of language and system independent CORBA interfaces for creating reusable components and compound documents.


GConf-2.2.0

Introduction to GConf

Download location (HTTP):       http://ftp.gnome.org/pub/GNOME/sources/GConf/2.2/GConf-2.2.0.tar.bz2
Download location (FTP):        ftp://ftp.gnome.org/pub/GNOME/sources/GConf/2.2/GConf-2.2.0.tar.bz2
Version used:                   2.2.0
Package size:                   1 MB
Estimated Disk space required:  11.1 MB
Estimated build time:           1.11 SBU

The GConf package contains a configuration database system.

GConf depends on:
ORBit2-2.6.1 and GTK+-2.2.1
GConf will utilize:
gtk-doc-1.0 and sgml-dtd-3.1

Installation of GConf

Install GConf by running the following commands:

./configure --prefix=$GNOME_PREFIX --libexecdir=$GNOME_PREFIX/sbin \
--sysconfdir=/etc/gnome --disable-gtk-doc &&
make &&
make install


Command explanations

--libexecdir=$GNOME_PREFIX/sbin : This switch puts libexec files in $GNOME_PREFIX/sbin instead of $GNOME_PREFIX/libexec.

--sysconfdir=/etc/gnome : This switch puts configuration files in /etc/gnome instead of $GNOME_PREFIX/etc. This installation controls all future installations of schemas, changes in location, including eliminating this command must be consistent.

--disable-gtk-doc : This switch will prevent the rebuilding of documentation during the make command.


Contents

The GConf package contains libgconf libraries.


Description

libgconf libraries

libgconf libraries provide the functions necessary to maintain the configuration database.


gnome-mime-data-2.2.0

Introduction to gnome-mime-data

Download location (HTTP):       http://ftp.gnome.org/pub/GNOME/sources/gnome-mime-data/2.2/gnome-mime-data-2.2.0.tar.bz2
Download location (FTP):        ftp://ftp.gnome.org/pub/GNOME/sources/gnome-mime-data/2.2/gnome-mime-data-2.2.0.tar.bz2
Version used:                   2.2.0
Package size:                   1.1 MB
Estimated Disk space required:  4.4 MB
Estimated build time:           0.02 SBU

The gnome-mime-data package contains the base set of file types and applications for GNOME.


Installation of gnome-mime-data

Install gnome-mime-data by running the following commands:

./configure --prefix=$GNOME_PREFIX --sysconfdir=/etc/gnome &&
make &&
make install


Command explanations

--sysconfdir=/etc/gnome : This switch puts configuration files in /etc/gnome instead of $GNOME_PREFIX/etc.


Contents

The gnome-mime-data package contains $GNOME_PREFIX/share/icons, $GNOME_PREFIX/share/application-registry and $GNOME_PREFIX/share/mime-info.


Description

icons

icons contains all the default document type icons.


application-registry

application-registry contains the application mime database.


mime-info

mime-info contains the mime description database.


gnome-vfs-2.2.3

Introduction to gnome-vfs

Download location (HTTP):       http://ftp.gnome.org/pub/GNOME/sources/gnome-vfs/2.2/gnome-vfs-2.2.3.tar.bz2
Download location (FTP):        ftp://ftp.gnome.org/pub/GNOME/sources/gnome-vfs/2.2/gnome-vfs-2.2.3.tar.bz2
Version used:                   2.2.3
Package size:                   972 KB
Estimated Disk space required:  13.6 MB
Estimated build time:           2.17 SBU

The gnome-vfs package contains virtual file system libraries. This is used as one of the foundations of the Nautilus file manager.

gnome-vfs depends on:
ORBit2-2.6.1, GConf-2.2.0, bonobo-activation-2.2.1.1 and gnome-mime-data-2.2.0
gnome-vfs will utilize:
libfam-2.6.9, openssl-0.9.7a, CDParanoia-III-9.8, gtk-doc-1.0 and xml-dtd-4.2

Installation of gnome-vfs

Install gnome-vfs by running the following commands:

./configure --prefix=$GNOME_PREFIX --sysconfdir=/etc/gnome --disable-gtk-doc &&
make &&
make install


Command explanations

--sysconfdir=/etc/gnome : This switch puts configuration files in /etc/gnome instead of $GNOME_PREFIX/etc.

--disable-gtk-doc : This switch will prevent the rebuilding of documentation during the make command.


Contents

The gnome-vfs package contains libgnomevfs libraries.


Description

libgnomevfs libraries

No description available.


libgnome-2.2.0.1

Introduction to libgnome

Download location (HTTP):       http://ftp.gnome.org/pub/GNOME/sources/libgnome/2.2/libgnome-2.2.0.1.tar.bz2
Download location (FTP):        ftp://ftp.gnome.org/pub/GNOME/sources/libgnome/2.2/libgnome-2.2.0.1.tar.bz2
Version used:                   2.2.0.1
Package size:                   704 KB
Estimated Disk space required:  7.6 MB
Estimated build time:           0.56 SBU

The libgnome package contains the libgnome library.

libgnome depends on:
esound-0.2.29, audiofile-0.2.3, ORBit2-2.6.1, GConf-2.2.0, 
bonobo-activation-2.2.1.1, gtk-doc-1.0 and sgml-dtd-3.1

Installation of libgnome

Install libgnome by running the following commands:

./configure --prefix=$GNOME_PREFIX --libexecdir=$GNOME_PREFIX/sbin \
--sysconfdir=/etc/gnome --disable-gtk-doc &&
make &&
make install


Command explanations

--libexecdir=$GNOME_PREFIX/sbin : This switch puts libexec files in $GNOME_PREFIX/sbin instead of $GNOME_PREFIX/libexec.

--sysconfdir=/etc/gnome : This switch puts configuration files in /etc/gnome instead of $GNOME_PREFIX/etc.

--disable-gtk-doc : This switch prevents the rebuilding of documentation during the make command.


Contents

The libgnome package contains libgnome libraries.


Description

libgnome libraries

libgnome libraries are the non-GUI portion of the GNOME libraries.


libart_lgpl-2.3.11

Introduction to libart_lgpl

Download location (HTTP):       http://ftp.gnome.org/pub/GNOME/sources/libart_lgpl/2.3/libart_lgpl-2.3.11.tar.bz2
Download location (FTP):        ftp://ftp.gnome.org/pub/GNOME/sources/libart_lgpl/2.3/libart_lgpl-2.3.11.tar.bz2
Version used:                   2.3.11
Package size:                   212 KB
Estimated Disk space required:  2.3 MB
Estimated build time:           0.31 SBU

The libart_lgpl package contains the libart libraries. This is useful for high-performance 2D graphics.


Installation of libart_lgpl

Install libart_lgpl by running the following commands:

./configure --prefix=/usr &&
make &&
make install 


Contents

The libart_lgpl package contains libart_lgpl libraries.


Description

libart_lgpl libraries

libart_lgpl is used as the antialiased rendering engine for gnome canvas.


libglade-2.0.1

Introduction to libglade

Download location (HTTP):       http://ftp.gnome.org/pub/GNOME/sources/libglade/2.0/libglade-2.0.1.tar.bz2
Download location (FTP):        ftp://ftp.gnome.org/pub/GNOME/sources/libglade/2.0/libglade-2.0.1.tar.bz2
Version used:                   2.0.1
Package size:                   352 KB
Estimated Disk space required:  2.7 MB

The libglade package contains libglade libraries. This is useful for loading glade interface files in a program at runtime.

libglade depends on:
libxml2-2.5.6 and GTK+-2.2.1
libglade will utilize:
Python-2.2.2 if compiled utilizing expat-1.95.6, gtk-doc-1.0 and sgml-dtd-3.1

Installation of libglade

Install libglade by running the following commands:

./configure --prefix=$GNOME_PREFIX &&
make &&
make install 


Command explanations

--enable-gtk-doc : This switch can be added to rebuild the html documentation.


Contents

The libglade package contains libglade libraries.


Description

libglade libraries

libglade libraries contain the functions necessary to load glade interface files.


libgnomecanvas-2.2.0.2

Introduction to libgnomecanvas

Download location (HTTP):       http://ftp.gnome.org/pub/GNOME/sources/libgnomecanvas/2.2/libgnomecanvas-2.2.0.2.tar.bz2
Download location (FTP):        ftp://ftp.gnome.org/pub/GNOME/sources/libgnomecanvas/2.2/libgnomecanvas-2.2.0.2.tar.bz2
Version used:                   2.2.0.2
Package size:                   391 KB
Estimated Disk space required:  4.6 MB
Estimated build time:           0.68 SBU

The libgnomecanvas package contains libgnomecanvas libraries.

libgnomecanvas depends on:
libglade-2.0.1

Installation of libgnomecanvas

Install libgnomecanvas by running the following commands:

./configure --prefix=$GNOME_PREFIX --disable-gtk-doc &&
make &&
make install


Command explanations

--disable-gtk-doc : This switch will prevent the rebuilding of the API documentation during the make command.


Contents

The libgnomecanvas package contains libgnomecanvas libraries.


Description

libgnomecanvas libraries

No description available.


libbonoboui-2.2.0.1

Introduction to libbonoboui

Download location (HTTP):       http://ftp.gnome.org/pub/GNOME/sources/libbonoboui/2.2/libbonoboui-2.2.0.1.tar.bz2
Download location (FTP):        ftp://ftp.gnome.org/pub/GNOME/sources/libbonoboui/2.2/libbonoboui-2.2.0.1.tar.bz2
Version used:                   2.2.0.1
Package size:                   557 KB
Estimated Disk space required:  9.6 MB
Estimated build time:           3.85 SBU

The libbonoboui package contains libbonoboui libraries.

libbonoboui depends on:
libgnome-2.2.0.1, libbonobo-2.2.1 and libgnomecanvas-2.2.0.2

Installation of libbonoboui

Install libbonoboui by running the following commands:

./configure --prefix=$GNOME_PREFIX --disable-gtk-doc &&
make &&
make install


Contents

The libbonoboui package contains libbonoboui libraries.


Description

libbonoboui libraries

libbonoboui libraries are the GUI portion of the bonobo libraries.


gnome-icon-themes-1.0.1

Introduction to gnome-icon-themes

Download location (HTTP):       http://ftp.gnome.org/pub/GNOME/sources/gnome-icon-theme/1.0/gnome-icon-theme-1.0.1.tar.bz2
Download location (FTP):        ftp://ftp.gnome.org/pub/GNOME/sources/gnome-icon-theme/1.0/gnome-icon-theme-1.0.1.tar.bz2
Version used:                   1.0.1
Package size:                   866 KB
Estimated Disk space required:  3.5 MB
Estimated build time:           0.02 SBU

The gnome-icon-themes package contains an assortment of scalable and non-scalable icons of different sizes and themes.


Installation of gnome-icon-themes

Install gnome-icon-themes by running the following commands:

./configure --prefix=$GNOME_PREFIX &&
make &&
make install


Contents

The gnome-icon-themes package contains icons.


libgnomeui-2.2.0.1

Introduction to libgnomeui

Download location (HTTP):       http://ftp.gnome.org/pub/GNOME/sources/libgnomeui/2.2/libgnomeui-2.2.0.1.tar.bz2
Download location (FTP):        ftp://ftp.gnome.org/pub/GNOME/sources/libgnomeui/2.2/libgnomeui-2.2.0.1.tar.bz2
Version used:                   2.2.0.1
Package size:                   1.1 MB
Estimated Disk space required:  14.2 MB
Estimated build time:           2.48 SBU

The libgnomeui package contains libgnomeui libraries.

libgnomeui depends on:
libgnome-2.2.0.1, libgnomecanvas-2.2.0.2, libbonoboui-2.2.0.1
libgnomeui will utilize:
gtk-doc-1.0 and sgml-dtd-3.1

Installation of libgnomeui

Install libgnomeui by running the following commands:

./configure --prefix=$GNOME_PREFIX --libexecdir=$GNOME_PREFIX/sbin \
--disable-gtk-doc &&
make &&
make install


Command explanations

--libexecdir=$GNOME_PREFIX/sbin : This switch puts libexec files in $GNOME_PREFIX/sbin instead of $GNOME_PREFIX/libexec.

--disable-gtk-doc : This switch prevents rebuilding the documentation during the make command.


Contents

The libgnomeui package contains libgnomeui libraries.


Description

libgnomeui libraries

libgnomeui libraries is the GUI portion of the GNOME libraries.


libwnck-2.2.1

Introduction to libwnck

Download location (HTTP):       http://ftp.gnome.org/pub/GNOME/sources/libwnck/2.2/libwnck-2.2.1.tar.bz2
Download location (FTP):        ftp://ftp.gnome.org/pub/GNOME/sources/libwnck/2.2/libwnck-2.2.1.tar.bz2
Version used:                   2.2.1
Package size:                   234 KB
Estimated Disk space required:  2.9 MB
Estimated build time:           0.77 SBU

The libwnck package contains a Window Navigator Construction Kit.

libwnck depends on:
GTK+-2.2.1 and startup-notification-0.5

Installation of libwnck

Install libwnck by running the following commands:

./configure --prefix=$GNOME_PREFIX &&
make &&
make install


Contents

The libwnck package contains libwnck libraries.


Description

libwnck libraries

libwnck libraries contain functions for writing pagers and task lists.


gtk-engines-2.2.0

Introduction to gtk-engines

Download location (HTTP):       http://ftp.gnome.org/pub/GNOME/sources/gtk-engines/2.2/gtk-engines-2.2.0.tar.bz2
Download location (FTP):        ftp://ftp.gnome.org/pub/GNOME/sources/gtk-engines/2.2/gtk-engines-2.2.0.tar.bz2
Version used:                   2.2.0
Package size:                   400 KB
Estimated Disk space required:  1.9 MB
Estimated build time:           0.21 SBU

The gtk-engines package contains three themes for GTK2.

gtk-engines depends on:
GTK+-2.2.1

Installation of gtk-engines

Install gtk-engines by running the following commands:

./configure --prefix=/usr &&
make &&
make install


Contents

The gtk-engines package contains engines libraries and theme files.


Description

engines libraries

engines libraries are manager systems for specific themes.


theme files

theme files included are Pixmap, Metal and Redmond95.


gtk-thinice-engine-2.0.2

Introduction to gtk-thinice-engine

Download location (HTTP):       http://ftp.gnome.org/pub/GNOME/sources/gtk-thinice-engine/2.0/gtk-thinice-engine-2.0.2.tar.bz2
Download location (FTP):        ftp://ftp.gnome.org/pub/GNOME/sources/gtk-thinice-engine/2.0/gtk-thinice-engine-2.0.2.tar.bz2
Version used:                   2.0.2
Package size:                   136 KB
Estimated Disk space required:  
Estimated build time:           0.01 SBU

The gtk-thinice-engine package contains theme sets.

gtk-thinice-engine depends on:
GTK+-2.2.1

Installation of gtk-thinice-engine

Install gtk-thinice-engine by running the following commands:

./configure --prefix=/usr &&
make &&
make install


Contents

The gtk-thinice-engine package contains themes.


gnome-themes-2.2.1

Introduction to gnome-themes

Download location (HTTP):       http://ftp.gnome.org/pub/GNOME/sources/gnome-themes/2.2/gnome-themes-2.2.1.tar.bz2
Download location (FTP):        ftp://ftp.gnome.org/pub/GNOME/sources/gnome-themes/2.2/gnome-themes-2.2.1.tar.bz2
Version used:                   2.2.1
Package size:                   2.3 MB
Estimated Disk space required:  14.4 MB
Estimated build time:           0.72 SBU

The gnome-themes package contains several more theme sets.

gnome-themes depends on:
gtk-thinice-engine-2.0.2

Installation of gnome-themes

Install gnome-themes by running the following commands:

./configure --prefix=/usr &&
make &&
make install


Contents

The gnome-themes package contains themes.


scrollkeeper-0.3.11

Introduction to scrollkeeper

Download location (HTTP):       http://telia.dl.sourceforge.net/sourceforge/scrollkeeper/scrollkeeper-0.3.11.tar.gz
Download location (FTP):        ftp://ftp.gnome.org/pub/GNOME/sources/scrollkeeper/0.3/scrollkeeper-0.3.11.tar.bz2
Version used:                   0.3.11
Package size:                   432 KB
Estimated Disk space required:  4.5 MB
Estimated build time:           0.20 SBU

The scrollkeeper package contains a cataloging system for documentation. This is useful for managing documentation metadata and providing an API to help browsers find, sort and search the document catalog.

scrollkeeper depends on:
libxml2-2.5.6, libxslt-1.0.29, intltool-0.25 and xml-dtd-4.2

Installation of scrollkeeper

Install scrollkeeper by running the following commands:

./configure --prefix=/usr --sysconfdir=/etc \
--localstatedir=/var --disable-static \
--with-omfdirs=/usr/share/omf:/opt/gnome/share/omf:\
/opt/kde/share/omf:/opt/gnome-2.2/share/omf &&
make &&
make install 


Command explanations

--sysconfdir=/etc : This switch puts the configuration files in /etc/scrollkeeper.

--localstatedir=/var : This switch puts scrollkeepers database directory in /var/lib/scrollkeeper.

--disable-static : This switch prevents the static library from being built.

--omfdirs=/usr/share/omf:/opt/gnome/share/omf:/opt/kde/share/omf:/opt/gnome-2.2/share/omf : This switch sets all the locations for OMF files for scrollkeeper.


Contents

The scrollkeeper package contains libscrollkeeper libraries and utility scripts.


Description

scrollkeeper libraries

scrollkeeper libraries provide the API necessary for help browsers to interact with documentation written to utilize scrollkeeper.


utility scripts

utility scripts for performing installation, building, getting and updating of table of contents files.


vte-0.10.26

Introduction to vte

Download location (HTTP):       http://ftp.gnome.org/pub/GNOME/sources/vte/0.10/vte-0.10.26.tar.bz2
Download location (FTP):        ftp://ftp.gnome.org/pub/GNOME/sources/vte/0.10/vte-0.10.26.tar.bz2
Version used:                   0.10.26
Package size:                   760 KB
Estimated Disk space required:  12.8 MB
Estimated build time:           1.31 SBU

The vte package contains a termcap file implementation for terminal emulators.

vte depends on:
Python-2.2.2 and GTK+-2.2.1

Installation of vte

Install vte by running the following commands:

./configure --prefix=/usr --libexecdir=/usr/sbin --disable-gtk-doc &&
make &&
make install


Command explanations

--libexecdir=/usr/sbin : This switch puts libexec files in /usr/sbin instead of /usr/libexec.

--disable-gtk-doc : This switch prevents the building of documentation as the directories are currently empty and will cause errors in the make command if this switch is missing.


Contents

The vte package contains libvte libraries, vte and gnome-pty-helper


Description

vte libraries

vte libraries provide the functions necessary to implement a "termcap file" for terminal emulators.


vte

vte is a test application for the vte libraries.


gnome-pty-helper

No description available.


libgtop-2.0.1

Introduction to libgtop

Download location (HTTP):       http://ftp.gnome.org/pub/GNOME/sources/libgtop/2.0/libgtop-2.0.1.tar.bz2
Download location (FTP):        ftp://ftp.gnome.org/pub/GNOME/sources/libgtop/2.0/libgtop-2.0.1.tar.bz2
Version used:                   2.0.1
Package size:                   744 KB
Estimated Disk space required:  8.3 MB
Estimated build time:           0.63 SBU

The libgtop package contains the gnome top libraries.

libgtop depends on:
GLib-2.2.1

Installation of libgtop

Install libgtop by running the following commands:

./configure --prefix=$GNOME_PREFIX &&
make &&
make install


Contents

The libgtop package contains libgtop libraries.


Description

libgtop libraries

libgtop libraries contain the functions that allow access to System performance data.


gail-1.2.0

Introduction to gail

Download location (HTTP):       http://ftp.gnome.org/pub/GNOME/sources/gail/1.2/gail-1.2.0.tar.bz2
Download location (FTP):        ftp://ftp.gnome.org/pub/GNOME/sources/gail/1.2/gail-1.2.0.tar.bz2
Version used:                   1.2.0
Package size:                   316 KB
Estimated Disk space required:  5 MB
Estimated build time:           1.74 SBU

The gail package contains the Gnome Accessibility Implementation Libraries.

gail depends on:
GTK+-2.2.1 and libgnomecanvas-2.2.0.2
gail will utilize:
gtk-doc-1.0 and sgml-dtd-3.1

Installation of gail

Install gail by running the following commands:

./configure --prefix=$GNOME_PREFIX --disable-gtk-doc &&
make &&
make install


Contents

The gail package contains libgailutil libraries.


Description

libgailutil libraries

libgailutil libraries provide the functions that solve accessibility problems in a consistent manner across GNOME.


at-spi-1.1.8

Introduction to at-spi

Download location (HTTP):       http://ftp.gnome.org/pub/GNOME/sources/at-spi/1.1/at-spi-1.1.8.tar.bz2
Download location (FTP):        ftp://ftp.gnome.org/pub/GNOME/sources/at-spi/1.1/at-spi-1.1.8.tar.bz2
Version used:                   1.1.8
Package size:                   356 KB
Estimated Disk space required:  3.8 MB
Estimated build time:           1.47 SBU

The at-spi package contains Assistive Technology Service Provider Interface. This is useful for redirecting UI events to accessible applications and adaptive/assistive technologies.

at-spi depends on:
gail-1.2.0 and libbonobo-2.2.1
at-spi will utilize:
gtk-doc-1.0 and sgml-dtd-3.1

Installation of at-spi

Install at-spi by running the following commands:

./configure --prefix=$GNOME_PREFIX --libexecdir=$GNOME_PREFIX/sbin \
--disable-gtk-doc &&
make &&
make install


Command explanations

--libexecdir=$GNOME_PREFIX/sbin : This switch puts libexec files in $GNOME_PREFIX/sbin instead of $GNOME_PREFIX/libexec.

--disable-gtk-doc : This switch prevent the rebuilding of the documentation during the make command.


Contents

The at-spi package contains libcspi libraries, libspi libraries and at-spi-registryd


Description

libcspi libraries

No description available.


libspi libraries

No description available.


at-spi-registryd

at-spi-registryd is the registry daemon that allows communication between the UI and assistance devices.


libgail-gnome-1.0.2

Introduction to libgail-gnome

Download location (HTTP):       http://ftp.gnome.org/pub/GNOME/sources/libgail-gnome/1.0/libgail-gnome-1.0.2.tar.bz2
Download location (FTP):        ftp://ftp.gnome.org/pub/GNOME/sources/libgail-gnome/1.0/libgail-gnome-1.0.2.tar.bz2
Version used:                   1.0.2
Package size:                   140 KB
Estimated Disk space required:  1.4 MB
Estimated build time:           0.30 SBU

The libgail-gnome package contains a binder between gail and GNOME.

libgail-gnome depends on:
libgnomeui-2.2.0.1 and at-spi-1.1.8

Installation of libgail-gnome

Install libgail-gnome by running the following commands:

./configure --prefix=$GNOME_PREFIX &&
make &&
make install 


Contents

The libgail-gnome package contains libgail-gnome libraries.


Description

libgail-gnome libraries

No description available.


librsvg-2.2.4

Introduction to librsvg

Download location (HTTP):       http://ftp.gnome.org/pub/GNOME/sources/librsvg/2.2/librsvg-2.2.4.tar.bz2
Download location (FTP):        ftp://ftp.gnome.org/pub/GNOME/sources/librsvg/2.2/librsvg-2.2.4.tar.bz2
Version used:                   2.2.4
Package size:                   218 KB
Estimated Disk space required:  2.6 MB
Estimated build time:           0.69 SBU

The librsvg package contains librsvg libraries.

librsvg depends on:
GTK+-2.2.1, libxml2-2.5.6 and libart_lgpl-2.3.11
librsvg will utilize:
libgsf

Installation of librsvg

Install librsvg by running the following commands:

./configure --prefix=$GNOME_PREFIX --sysconfdir=/etc/gnome --disable-gtk-doc &&
make &&
make install 


Contents

The librsvg package contains librsvg libraries.


Description

librsvg libraries

librsvg libraries provide the functions to render Scalable Vector Graphics (SVG).


eel-2.2.2

Introduction to eel

Download location (HTTP):       http://ftp.gnome.org/pub/GNOME/sources/eel/2.2/eel-2.2.2.tar.bz2
Download location (FTP):        ftp://ftp.gnome.org/pub/GNOME/sources/eel/2.2/eel-2.2.2.tar.bz2
Version used:                   2.2.2
Package size:                   474 KB
Estimated Disk space required:  8.1 MB
Estimated build time:           1.98 SBU

The eel package contains the Eazel Extensions Library. This is a collection of widgets and extensions to the GNOME platform.

eel depends on:
libgnomeui-2.2.0.1

Installation of eel

Install eel by running the following commands:

./configure --prefix=$GNOME_PREFIX &&
make &&
make install


Contents

The eel package contains libeel libraries.


Description

libeel libraries

libeel libraries is a collection of widgets developed by the Nautilus project.


libgtkhtml-2.2.1

Introduction to libgtkhtml

Download location (HTTP):       http://ftp.gnome.org/pub/GNOME/sources/libgtkhtml/2.2/libgtkhtml-2.2.1.tar.bz2
Download location (FTP):        ftp://ftp.gnome.org/pub/GNOME/sources/libgtkhtml/2.2/libgtkhtml-2.2.1.tar.bz2
Version used:                   2.2.1
Package size:                   325 KB
Estimated Disk space required:  7 MB
Estimated build time:           3.50 SBU

The libgtkhtml package contains libgtkhtml libraries.

libgtkhtml depends on:
gail-1.2.0 and gnome-vfs-2.2.3

Installation of libgtkhtml

Install libgtkhtml by running the following commands:

./configure --prefix=$GNOME_PREFIX &&
make &&
make install


Contents

The libgtkhtml package contains libgtkhtml libraries.


Description

libgtkhtml libraries

libgtkhtml libraries provide the functions necessary to render and/or edit HTML.


libgnomeprint-2.2.1.2

Introduction to libgnomeprint

Download location (HTTP):       http://ftp.gnome.org/pub/GNOME/sources/libgnomeprint/2.2/libgnomeprint-2.2.1.2.tar.bz2
Download location (FTP):        ftp://ftp.gnome.org/pub/GNOME/sources/libgnomeprint/2.2/libgnomeprint-2.2.1.2.tar.bz2
Version used:                   2.2.1.2
Package size:                   542 KB
Estimated Disk space required:  8.8 MB
Estimated build time:           1.33 SBU

The libgnomeprint package contains libgnomeprint libraries.

libgnomeprint depends on:
libbonobo-2.2.1 and libart_lgpl-2.3.11
libgnomeprint will utilize:
gtk-doc-1.0, sgml-dtd-3.1 and cups-1.1.18

Installation of libgnomeprint

Install libgnomeprint by running the following commands:

./configure --prefix=$GNOME_PREFIX --sysconfdir=/etc/gnome &&
make &&
make install


Command explanations

--sysconfdir=/etc/gnome : This switch puts configuration files in /etc/gnome instead of $GNOME_PREFIX/etc.

--enable-gtk-doc : This switch rebuilds the documentation during the make command.


Contents

The libgnomeprint package contains libgnomeprint libraries.


Description

libgnomeprint libraries

libgnomeprint libraries implement the Gnome Printing Architecture.


libgnomeprintui-2.2.1.2

Introduction to libgnomeprintui

Download location (HTTP):       http://ftp.gnome.org/pub/GNOME/sources/libgnomeprintui/2.2/libgnomeprintui-2.2.1.2.tar.bz2
Download location (FTP):        ftp://ftp.gnome.org/pub/GNOME/sources/libgnomeprintui/2.2/libgnomeprintui-2.2.1.2.tar.bz2
Version used:                   2.2.1.2
Package size:                   422 KB
Estimated Disk space required:  4.9 MB
Estimated build time:           0.66 SBU

The libgnomeprintui package contains the libgnomeprintui libraries.

libgnomeprintui depends on:
libgnomeprint-2.2.1.2 and libgnomeui-2.2.0.1

Installation of libgnomeprintui

Install libgnomeprintui by running the following commands:

./configure --prefix=$GNOME_PREFIX &&
make &&
make install 


Command explanations

--enable-gtk-doc : This switch rebuilds the documentation during the make command.


Contents

The libgnomeprintui package contains libgnomeprintui libraries.


Description

libgnomeprintui libraries

libgnomeprintui libraries is the GUI portion of the implementation of the Gnome Printing Architecture.


Chapter 33. Gnome core

This section contains required elements of the GNOME environment to display a functional desktop.


gnome-desktop-2.2.1

Introduction to gnome-desktop

Download location (HTTP):       http://ftp.gnome.org/pub/GNOME/sources/gnome-desktop/2.2/gnome-desktop-2.2.1.tar.bz2
Download location (FTP):        ftp://ftp.gnome.org/pub/GNOME/sources/gnome-desktop/2.2/gnome-desktop-2.2.1.tar.bz2
Version used:                   2.2.1
Package size:                   1 MB
Estimated Disk space required:  6.9 MB
Estimated build time:           0.69 SBU

The gnome-desktop package contains GNOME's .desktop files, the gnome-about program, man pages and GNOME's core graphics files and icons.

gnome-desktop depends on:
libgnomeui-2.2.0.1

Installation of gnome-desktop

Install gnome-desktop by running the following commands:

./configure --prefix=$GNOME_PREFIX --sysconfdir=/etc/gnome &&
make &&
make install


Command explanations

--sysconfdir=/etc/gnome : This switch puts configuration files in /etc/gnome instead of $GNOME_PREFIX/etc.


Contents

The gnome-desktop package contains libgnome-desktopi-2 libraries and gnome-about.


Description

libgnome-desktop libraries

libgnome-desktop libraries contain API's being tested for inclusion in libgnome or libgnomeui.


gnome-about

gnome-about produces the about screen.


gnome-panel-2.2.1

Introduction to gnome-panel

Download location (HTTP):       http://ftp.gnome.org/pub/GNOME/sources/gnome-panel/2.2/gnome-panel-2.2.1.tar.bz2
Download location (FTP):        ftp://ftp.gnome.org/pub/GNOME/sources/gnome-panel/2.2/gnome-panel-2.2.1.tar.bz2
Version used:                   2.2.1
Package size:                   1.8 MB
Estimated Disk space required:  19.8 MB
Estimated build time:           4.06 SBU

The gnome-panel package contains the menu and applet systems.

gnome-panel depends on:
libgnomeui-2.2.0.1 and scrollkeeper-0.3.11
gnome-panel will utilize:
gtk-doc-1.0 and sgml-dtd-3.1

Installation of gnome-panel

Install gnome-panel by running the following commands:

./configure --prefix=$GNOME_PREFIX --libexecdir=$GNOME_PREFIX/sbin \
--localstatedir=/var/lib --sysconfdir=/etc/gnome --disable-gtk-doc &&
make &&
make install


Command explanations

--libexecdir=$GNOME_PREFIX/sbin : This switch puts libexec files in $GNOME_PREFIX/sbin instead of $GNOME_PREFIX/libexec.

--localstatedir=/var/lib : This switch puts scrollkeeper files in /var/lib/scrollkeeper instead of $GNOME_PREFIX/var/scrollkeeper.

--sysconfdir=/etc/gnome : This switch puts configuration files in /etc/gnome instead of $GNOME_PREFIX/etc.

--disable-gtk-doc : This switch prevents the rebuilding of documentation during the make command.


Contents

The gnome-panel package contains libpanel-applet-2 libraries and applets.


Description

libpanel-applet libraries

libpanel-applet libraries allow development of small applications which may be embedded in the panel called applets.


applets

applets included are Workspace Switcher, Window List, Inbox Monitor, Clock and 'Wanda the Fish'.


gnome-session-2.2.1

Introduction to gnome-session

Download location (HTTP):       http://ftp.gnome.org/pub/GNOME/sources/gnome-session/2.2/gnome-session-2.2.1.tar.bz2
Download location (FTP):        ftp://ftp.gnome.org/pub/GNOME/sources/gnome-session/2.2/gnome-session-2.2.1.tar.bz2
Version used:                   2.2.1
Package size:                   709 KB
Estimated Disk space required:  6.6 MB
Estimated build time:           0.88 SBU

The gnome-session package contains the GNOME session manager.

gnome-session depends on:
libgnomeui-2.2.0.1

Installation of gnome-session

Install gnome-session by running the following commands:

export PATH=$PATH:$GNOME_PREFIX/sbin:/sbin &&
./configure --prefix=$GNOME_PREFIX --localstatedir=/var/lib \
--sysconfdir=/etc/gnome  &&
make &&
make install


Command explanations

--localstatedir=/var/lib : This switch puts scrollkeeper files in /var/lib/scrollkeeper instead of $GNOME_PREFIX/var/scrollkeeper.

--sysconfdir=/etc/gnome : This switch puts configuration files in /etc/gnome instead of $GNOME_PREFIX/etc.


Contents

The gnome-session package contains gnome-session, session utilities and manager proxy.


Description

gnome-session

gnome-session starts up the GNOME desktop.


session utilities

session utilities includes a configuration program and other session management related utilities.


manager proxy

manager proxy handles basic session management for applications that do not support XSM.


control-center-2.2.1

Introduction to control-center

Download location (HTTP):       http://ftp.gnome.org/pub/GNOME/sources/control-center/2.2/control-center-2.2.1.tar.bz2
Download location (FTP):        ftp://ftp.gnome.org/pub/GNOME/sources/control-center/2.2/control-center-2.2.1.tar.bz2
Version used:                   2.2.1
Package size:                   1.4 MB
Estimated Disk space required:  18.1 MB
Estimated build time:           2.95 SBU

The control-center package contains the GNOME settings managers.

control-center depends on:
gnome-desktop-2.2.1 and metacity-2.4.34

Installation of control-center

Install control-center by running the following commands:

./configure --prefix=$GNOME_PREFIX --localstatedir=/var/lib \
--sysconfdir=/etc/gnome &&
make &&
make install


Command explanations

--localstatedir=/var/lib : This switch puts scrollkeeper files in /var/lib/scrollkeeper instead of $GNOME_PREFIX/var/scrollkeeper.

--sysconfdir=/etc/gnome : This switch puts configuration files in /etc/gnome instead of $GNOME_PREFIX/etc.


Contents

The control-center package contains gnome-control-center, gnome-settings-daemon, gnome-background-properties, gnome-default-applications-properties, gnome-file-types-properties, gnome-font-properties, gnome-keybinding-properties, gnome-keyboard-properties, gnome-mouse-properties, gnome-network-preferences, gnome-sound-properties, gnome-theme-properties and gnome-ui-properties.


Description

gnome-control-center

No description available.


gnome-settings-daemon

No description available.


Chapter 34. Additional Gnome Packages

These packages are modular and add desktop applications to the GNOME environment. Feel free to install them on an as-needed or as-wanted basis.


gnome-terminal-2.2.1

Introduction to gnome-terminal

Download location (HTTP):       http://ftp.gnome.org/pub/GNOME/sources/gnome-terminal/2.2/gnome-terminal-2.2.1.tar.bz2
Download location (FTP):        ftp://ftp.gnome.org/pub/GNOME/sources/gnome-terminal/2.2/gnome-terminal-2.2.1.tar.bz2
Version used:                   2.2.1
Package size:                   854 KB
Estimated Disk space required:  8.7 MB
Estimated build time:           0.79 SBU

The gnome-terminal package contains the console. This is useful for executing programs from a command prompt.

gnome-terminal depends on:
libgnomeui-2.2.0.1, startup-notification-0.5 and vte-0.10.26

Installation of gnome-terminal

Install gnome-terminal by running the following commands:

./configure --prefix=$GNOME_PREFIX --localstatedir=/var/lib \
--sysconfdir=/etc/gnome &&
make &&
make install 


Command explanations

--localstatedir=/var/lib : This switch puts scrollkeeper files in /var/lib/scrollkeeper instead of $GNOME_PREFIX/var/scrollkeeper.

--sysconfdir=/etc/gnome : This switch puts configuration files in /etc/gnome instead of $GNOME_PREFIX/etc.


Contents

The gnome-terminal package contains gnome-terminal.


Description

gnome-terminal

gnome-terminal provides the command prompt in the GNOME environment.


gnome-system-monitor-2.0.4

Introduction to gnome-system-monitor

Download location (HTTP):       http://ftp.gnome.org/pub/GNOME/sources/gnome-system-monitor/2.0/gnome-system-monitor-2.0.4.tar.bz2
Download location (FTP):        ftp://ftp.gnome.org/pub/GNOME/sources/gnome-system-monitor/2.0/gnome-system-monitor-2.0.4.tar.bz2
Version used:                   2.0.4
Package size:                   512 KB
Estimated Disk space required:  3.2 MB
Estimated build time:           0.30 SBU

The gnome-system-monitor package contains procman, GNOME's replacement to gtop.

gnome-system-monitor depends on:
libgnomeui-2.2.0.1 and startup-notification-0.5

Installation of gnome-system-monitor

Install gnome-system-monitor by running the following commands:

./configure --prefix=$GNOME_PREFIX --localstatedir=/var/lib \
--sysconfdir=/etc/gnome &&
make &&
make install

Note: make install will need path access to $GNOME_PREFIX/bin. If your preinstallation changes were made only to the user account, you will need to adjust your path prior to running make install.


Command explanations

--localstatedir=/var/lib : This switch puts scrollkeeper files in /var/lib/scrollkeeper instead of $GNOME_PREFIX/var/scrollkeeper.

--sysconfdir=/etc/gnome : This switch puts configuration files in /etc/gnome instead of $GNOME_PREFIX/etc.


Contents

The gnome-system-monitor package contains gnome-system-monitor.


Description

gnome-system-monitor

gnome-system-monitor displays the process tree and hardware meters.


gnome-applets-2.2.1

Introduction to gnome-applets

Download location (HTTP):       http://ftp.gnome.org/pub/GNOME/sources/gnome-applets/2.2/gnome-applets-2.2.1.tar.bz2
Download location (FTP):        ftp://ftp.gnome.org/pub/GNOME/sources/gnome-applets/2.2/gnome-applets-2.2.1.tar.bz2
Version used:                   2.2.1
Package size:                   1.9 MB
Estimated Disk space required:  22.6 MB
Estimated build time:           2.76 SBU

The gnome-applets package contains small applications which generally run in the background and display their output to the gnome panel.

gnome-applets depends on:
gail-1.2.0, libgtop-2.0.1 and gnome-panel-2.2.1

Installation of gnome-applets

Install gnome-applets by running the following commands:

./configure --prefix=$GNOME_PREFIX --libexecdir=$GNOME_PREFIX/sbin \
--localstatedir=/var/lib --sysconfdir=/etc/gnome &&
make &&
make install


Command explanations

--libexecdir=$GNOME_PREFIX/sbin : This switch puts libexec files in $GNOME_PREFIX/sbin instead of $GNOME_PREFIX/libexec.

--localstatedir=/var/lib : This switch puts scrollkeeper files in /var/lib/scrollkeeper instead of $GNOME_PREFIX/var/scrollkeeper.

--sysconfdir=/etc/gnome : This switch puts configuration files in /etc/gnome instead of $GNOME_PREFIX/etc.


Contents

The gnome-applets package contains battstat, cdplayer, charpick, drivemount, geyes, gkb, gtik2, gweather, mini-commander, mixer, modemlights and multiload applets.


Description

applets

These are small programs designed to run inside the Panel display.


gnome-utils-2.2.1

Introduction to gnome-utils

Download location (HTTP):       http://ftp.gnome.org/pub/GNOME/sources/gnome-utils/2.2/gnome-utils-2.2.1.tar.bz2
Download location (FTP):        ftp://ftp.gnome.org/pub/GNOME/sources/gnome-utils/2.2/gnome-utils-2.2.1.tar.bz2
Version used:                   2.2.1
Package size:                   1.5 MB
Estimated Disk space required:  15.4 MB
Estimated build time:           1.44 SBU

The gnome-utils package contains a collection of small applications designed to make your life a little easier.

gnome-utils depends on:
libgnomeui-2.2.0.1

Installation of gnome-utils

Install gnome-utils by running the following commands:

./configure --prefix=$GNOME_PREFIX --libexecdir=$GNOME_PREFIX/sbin \
--localstatedir=/var/lib --sysconfdir=/etc/gnome &&
make &&
make install


Command explanations

--libexecdir=$GNOME_PREFIX/sbin : This switch puts libexec files in $GNOME_PREFIX/sbin instead of $GNOME_PREFIX/libexec.

--localstatedir=/var/lib : This switch puts scrollkeeper files in /var/lib/scrollkeeper instead of $GNOME_PREFIX/var/scrollkeeper.

--sysconfdir=/etc/gnome : This switch puts configuration files in /etc/gnome instead of $GNOME_PREFIX/etc.

--with-pam-prefix=/etc/pam.d : This switch puts PAM file in /etc/pam.d instead of /etc/gnome.


Contents

The gnome-utils package contains gnome-system-log, gnome-character-map, gnome-calculator, gnome-search-tool, gnome-dictionary, archive-generator, gfloppy and gdialog.


Description

gnome-system-log

gnome-system-log allows you to monitor and view system log files.


gnome-character-map

gnome-character-map allows you to select characters from a table and insert them into your applications.


gnome-calculator

gnome-calculator is a simple mathematical and scientific calculator that includes arithmetic, trigonometric and logarithmic functions.


gnome-search-tool

gnome-search-tool allows you to search for files on your system using simple and advanced search options.


gnome-dictionary

gnome-dictionary allows you to look up definitions and spelling of words.


archive-generator

archive-generator creates archives from collections of files and folders using gzip compressed archive files.


gfloppy

gfloppy formats floppy disks under Linux.


gdialog

gdialog doesn't work yet.


gnome-games-2.2.0

Introduction to gnome-games

Download location (HTTP):       http://ftp.gnome.org/pub/GNOME/sources/gnome-games/2.2/gnome-games-2.2.0.tar.bz2
Download location (FTP):        ftp://ftp.gnome.org/pub/GNOME/sources/gnome-games/2.2/gnome-games-2.2.0.tar.bz2
Version used:                   2.2.0
Package size:                   9.4 MB
Estimated Disk space required:  32.1 MB
Estimated build time:           3.34 SBU

The gnome-games package contains games.

gnome-games depends on:
libgnomeui-2.2.0.1
gnome-games will utilize:
guile-1.4.1

Installation of gnome-games

Install gnome-games by running the following commands:

./configure --prefix=$GNOME_PREFIX --localstatedir=/var/lib \
--sysconfdir=/etc/gnome &&
make &&
make install


Command explanations

--localstatedir=/var/lib : This switch puts scrollkeeper files in /var/lib/scrollkeeper instead of $GNOME_PREFIX/var/scrollkeeper.

--sysconfdir=/etc/gnome : This switch puts configuration files in /etc/gnome instead of $GNOME_PREFIX/etc.


Contents

The gnome-games package contains aisleriot, freecell, gataxx, glines, gnect, gnibbles, gnobots2, gnome-stones, gnome-xbill, gnometris, gnomine, gnotravex, gnotski, gtali, iagno, mahjongg and same-gnome.


nautilus-2.2.2

Introduction to nautilus

Download location (HTTP):       http://ftp.gnome.org/pub/GNOME/sources/nautilus/2.2/nautilus-2.2.2.tar.bz2
Download location (FTP):        ftp://ftp.gnome.org/pub/GNOME/sources/nautilus/2.2/nautilus-2.2.2.tar.bz2
Version used:                   2.2.2
Package size:                   4.2 MB
Estimated Disk space required:  40.3 MB
Estimated build time:           5.14 SBU

The nautilus package contains the GNOME shell and file manager.

nautilus depends on:
libgnomeui-2.2.0.1
nautilus will utilize:
medusa

Installation of nautilus

Install nautilus by running the following commands:

./configure --prefix=$GNOME_PREFIX --sysconfdir=/etc/gnome \
--libexecdir=$GNOME_PREFIX/sbin && 
make &&
make install


Command explanations

--sysconfdir=/etc/gnome : This switch puts configuration files in /etc/gnome instead of $GNOME_PREFIX/etc.

--libexecdir=$GNOME_PREFIX/sbin : This switch puts libexec files in $GNOME_PREFIX/sbin instead of $GNOME_PREFIX/libexec.


Contents

The nautilus package contains nautilus and libnautilus libraries.


Description

nautilus

nautilus is the GNOME file manager.


nautilus libraries

nautilus libraries supply the functions needed by the file manager.


yelp-2.2.0

Introduction to yelp

Download location (HTTP):       http://ftp.gnome.org/pub/GNOME/sources/yelp/2.2/yelp-2.2.0.tar.bz2
Download location (FTP):        ftp://ftp.gnome.org/pub/GNOME/sources/yelp/2.2/yelp-2.2.0.tar.bz2
Version used:                   2.2.0
Package size:                   484 KB
Estimated Disk space required:  6 MB
Estimated build time:           0.42 SBU

The yelp package contains the help browser. This is useful for viewing help files.

yelp depends on:
libgnomeui-2.2.0.1

Installation of yelp

Install yelp by running the following commands:

./configure --prefix=$GNOME_PREFIX --libexecdir=$GNOME_PREFIX/sbin &&
make &&
make install 


Command explanations

--libexecdir=$GNOME_PREFIX/sbin : This switch puts libexec files in $GNOME_PREFIX/sbin instead of $GNOME_PREFIX/libexec.


Contents

The yelp package contains yelp.


Description

yelp

yelp is the GNOME help browser.


bug-buddy-2.2.103

Introduction to bug-buddy

Download location (HTTP):       http://ftp.gnome.org/pub/GNOME/sources/bug-buddy/2.2/bug-buddy-2.2.103.tar.bz2
Download location (FTP):        ftp://ftp.gnome.org/pub/GNOME/sources/bug-buddy/2.2/bug-buddy-2.2.103.tar.bz2
Version used:                   2.2.103
Package size:                   478 KB
Estimated Disk space required:  4.7 MB
Estimated build time:           0.82 SBU

The bug-buddy package contains a graphical bug reporting tool. This can extract debugging information from a core file or crashed application.

bug-buddy depends on:
libgnomeui-2.2.0.1

Installation of bug-buddy

Install bug-buddy by running the following commands:

./configure --prefix=$GNOME_PREFIX --localstatedir=/var/lib &&
make &&
make install


Command explanations

--localstatedir=/var/lib : This switch puts scrollkeeper files in /var/lib/scrollkeeper instead of $GNOME_PREFIX/var/scrollkeeper.


Contents

The bug-buddy package contains bug-buddy.


Description

bug-buddy

bug-buddy is a graphical bug reporting system.


gedit-2.2.1

Introduction to gedit

Download location (HTTP):       http://ftp.gnome.org/pub/GNOME/sources/gedit/2.2/gedit-2.2.1.tar.bz2
Download location (FTP):        ftp://ftp.gnome.org/pub/GNOME/sources/gedit/2.2/gedit-2.2.1.tar.bz2
Version used:                   2.2.1
Package size:                   1.5 MB
Estimated Disk space required:  16.2 MB
Estimated build time:           2.30 SBU

The gedit package contains a lightweight UTF-8 text editor for the GNOME desktop.

gedit depends on:
libgnomeui-2.2.0.1

Installation of gedit

Install gedit by running the following commands:

./configure --prefix=$GNOME_PREFIX --localstatedir=/var/lib \
--sysconfdir=/etc/gnome &&
make &&
make install


Command explanations

--localstatedir=/var/lib : This switch puts scrollkeeper files in /var/lib/scrollkeeper instead of $GNOME_PREFIX/var/scrollkeeper.

--sysconfdir=/etc/gnome : This switch puts configuration files in /etc/gnome instead of $GNOME_PREFIX/etc.


Contents

The gedit package contains gedit.


Description

gedit

gedit is a lightweight text editor.


eog-2.2.1

Introduction to eog

Download location (HTTP):       http://ftp.gnome.org/pub/GNOME/sources/eog/2.2/eog-2.2.1.tar.bz2
Download location (FTP):        ftp://ftp.gnome.org/pub/GNOME/sources/eog/2.2/eog-2.2.1.tar.bz2
Version used:                   2.2.1
Package size:                   470 KB
Estimated Disk space required:  5.3 MB
Estimated build time:           0.82 SBU

The eog package contains Eyes of Gnome. This is useful for viewing and cataloging image files.

eog depends on:
libgnomeui-2.2.0.1 and libgnomeprint-2.2.1.2

Installation of eog

Install eog by running the following commands:

./configure --prefix=$GNOME_PREFIX --libexecdir=$GNOME_PREFIX/sbin \
--localstatedir=/var/lib --sysconfdir=/etc/gnome &&
make &&
make install 


Command explanations

--libexecdir=$GNOME_PREFIX/sbin : This switch puts libexec files in $GNOME_PREFIX/sbin instead of $GNOME_PREFIX/libexec.

--localstatedir=/var/lib : This switch puts scrollkeeper files in /var/lib/scrollkeeper instead of $GNOME_PREFIX/var/scrollkeeper.

--sysconfdir=/etc/gnome : This switch puts configuration files in /etc/gnome instead of $GNOME_PREFIX/etc.


Contents

The eog package contains eog.


Description

eog

eog is a fast and functional image viewer as well as an image cataloging program.


gstreamer-0.6.0

Introduction to gstreamer

Download location (HTTP):       http://ftp.gnome.org/pub/GNOME/sources/gstreamer/0.6/gstreamer-0.6.0.tar.bz2
Download location (FTP):        ftp://ftp.gnome.org/pub/GNOME/sources/gstreamer/0.6/gstreamer-0.6.0.tar.bz2
Version used:                   0.6.0
Package size:                   1.1 MB
Estimated Disk space required:  65.2 MB
Estimated build time:           3.95 SBU

The gstreamer package contains a framework for streaming media. This is useful for interfacing with binary codecs.

gstreamer depends on:
libgnomeui-2.2.0.1

Installation of gstreamer

Install gstreamer by running the following commands:

./configure --prefix=$GNOME_PREFIX --localstatedir=/var/log  &&
make &&
make install &&
gst-register 


Command explanations

--localstatedir=/var/lib : This switch puts gst-register's cache in /var/lib/cache instead of $GNOME_PREFIX/var/cache.


Contents

The gstreamer package contains libgstreamer libraries and libgst libraries.


gst-plugins-0.6.0

Introduction to gst-plugins

Download location (HTTP):       http://ftp.gnome.org/pub/GNOME/sources/gst-plugins/0.6/gst-plugins-0.6.0.tar.bz2
Download location (FTP):        ftp://ftp.gnome.org/pub/GNOME/sources/gst-plugins/0.6/gst-plugins-0.6.0.tar.bz2
Version used:                   0.6.0
Package size:                   1.8 MB
Estimated Disk space required:  98 MB

The gst-plugins package contains codec interfaces.

gst-plugins depends on:
gstreamer-0.6.0

Installation of gst-plugins

Install gst-plugins by running the following commands:

./configure --prefix=$GNOME_PREFIX &&
make &&
make install &&
gst-register


gnome-media-2.2.1.1

Introduction to gnome-media

Download location (HTTP):       http://ftp.gnome.org/pub/GNOME/sources/gnome-media/2.2/gnome-media-2.2.1.1.tar.bz2
Download location (FTP):        ftp://ftp.gnome.org/pub/GNOME/sources/gnome-media/2.2/gnome-media-2.2.1.1.tar.bz2
Version used:                   2.2.1.1
Package size:                   1.1 MB
Estimated Disk space required:  12.3 MB
Estimated build time:           1.76 SBU

The gnome-media package contains GNOME's media applications.

gnome-media depends on:
libgnomeui-2.2.0.1 and gstreamer-0.6.0

Installation of gnome-media

Install gnome-media by running the following commands:

./configure --prefix=$GNOME_PREFIX --sysconfdir=/etc/gnome \
--localstatedir=/var/lib --libexecdir=$GNOME_PREFIX/sbin &&
make &&
make install 


Command explanations

--sysconfdir=/etc/gnome : This switch puts configuration files in /etc/gnome instead of $GNOME_PREFIX/etc.

--localstatedir=/var/lib : This switch puts scrollkeeper files in /var/lib/scrollkeeper instead of $GNOME_PREFIX/var/scrollkeeper.

--libexecdir=$GNOME_PREFIX/sbin : This command puts libexec files in $GNOME_PREFIX/sbin instead of $GNOME_PREFIX/libexec.


Contents

The gnome-media package contains gnome-sound-recorder, gnome-cd, gnome-volume-control and vumeter.


Description

gnome-sound-recorder

gnome-sound-recorder is Gnome's recorder.


gnome-cd

gnome-cd is Gnome's CD Player.


gnome-volume-control

gnome-volume-control is Gnome's mixer with volume applet.


vumeter

vumeter is a visual volume meter.


nautilus-media-0.2.1

Introduction to nautilus-media

Download location (HTTP):       http://ftp.gnome.org/pub/GNOME/sources/nautilus-media/0.2/nautilus-media-0.2.1.tar.bz2
Download location (FTP):        ftp://ftp.gnome.org/pub/GNOME/sources/nautilus-media/0.2/nautilus-media-0.2.1.tar.bz2
Version used:                   0.2.1
Package size:                   280 KB
Estimated Disk space required:  4.6 MB
Estimated build time:           0.94 SBU

The nautilus-media package contains GNOME's media applications used by nautilus.

nautilus-media depends on:
libgnomeui-2.2.0.1 and gstreamer-0.6.0

Installation of nautilus-media

Install nautilus-media by running the following commands:

./configure --prefix=$GNOME_PREFIX --sysconfdir=/etc/gnome \
--localstatedir=/var/lib --libexecdir=$GNOME_PREFIX/sbin &&
make &&
make install 


Command explanations

--sysconfdir=/etc/gnome : This switch puts configuration files in /etc/gnome instead of $GNOME_PREFIX/etc.

--localstatedir=/var/lib : This switch puts scrollkeeper files in /var/lib/scrollkeeper instead of $GNOME_PREFIX/var/scrollkeeper.

--libexecdir=/opt/gnome2/sbin : This command puts libexec files in $GNOME_PREFIX/sbin instead of $GNOME_PREFIX/libexec.


Contents

The nautilus-media package contains nautilus-audio-view and support libraries.


Description

nautilus-audio-view

nautilus-audio-view displays the directory as audio tracks.


gnome2-user-docs-2.0.6

Introduction to gnome2-user-docs

Download location (HTTP):       http://ftp.gnome.org/pub/GNOME/sources/gnome2-user-docs/2.0/gnome2-user-docs-2.0.6.tar.bz2
Download location (FTP):        ftp://ftp.gnome.org/pub/GNOME/sources/gnome2-user-docs/2.0/gnome2-user-docs-2.0.6.tar.bz2
Version used:                   2.0.6
Package size:                   7.2 MB
Estimated Disk space required:  13.1 MB
Estimated build time:           0.01 SBU

The gnome2-user-docs package contains end user documents for GNOME.

gnome2-user-docs depends on:
scrollkeeper-0.3.11

Installation of gnome2-user-docs

Install gnome2-user-docs by running the following commands:

./configure --prefix=$GNOME_PREFIX --localstatedir=/var/lib &&
make &&
make install


Command explanations

--localstatedir=/var/lib : This switch puts scrollkeeper files in /var/lib/scrollkeeper instead of $GNOME_PREFIX/var/scrollkeeper.


Contents

The gnome2-user-docs package contains OMF files.


Description

OMF files

OMF files contain user documentation. These include introductions and help on the core packages.


Chapter 35. Other Gnome Packages

This section will contains other GNOME packages.


gconf-editor-0.4.0

Introduction to gconf-editor

Download location (HTTP):       http://ftp.gnome.org/pub/GNOME/sources/gconf-editor/0.4/gconf-editor-0.4.0.tar.bz2
Download location (FTP):        ftp://ftp.gnome.org/pub/GNOME/sources/gconf-editor/0.4/gconf-editor-0.4.0.tar.bz2
Version used:                   0.4.0
Package size:                   244 KB
Estimated Disk space required:  2.4 MB
Estimated build time:           0.13 SBU

The gconf-editor package contains a GUI editor for the GConf configuration database.

gconf-editor depends on:
GConf-2.2.0

Installation of gconf-editor

Install gconf-editor by running the following commands:

./configure --prefix=$GNOME_PREFIX &&
make &&
make install


Contents

The gconf-editor package contains gconf-editor.


Description

gconf-editor

gconf-editor allows direct modification of the GConf configuration database.


gdm-2.4.1.3

Introduction to gdm

Download location (HTTP):       http://ftp.gnome.org/pub/GNOME/sources/gdm/2.4/gdm-2.4.1.3.tar.bz2
Download location (FTP):        ftp://ftp.gnome.org/pub/GNOME/sources/gdm/2.4/gdm-2.4.1.3.tar.bz2
Version used:                   2.4.1.3
Package size:                   1.7 MB
Estimated Disk space required:  34.8 MB
Estimated build time:           2.28 SBU

The gdm package contains GNOME's display manager daemon. This is useful for allowing configurable graphical logins.

gdm depends on:
Linux_PAM-0.77, librsvg-2.2.4  and libgnome-2.2.0.1
gdm will utilize:
tcpwrappers-7.6

Installation of gdm

Install gdm by running the following commands:

groupadd gdm &&
useradd -c gdm -d /dev/null -g gdm -s /bin/bash gdm &&
./configure --prefix=$GNOME_PREFIX --sysconfdir=/etc/gnome \
--localstatedir=/var/lib --with-pam-prefix=/etc &&
make &&
make install


Command explanations

--sysconfdir=/etc/gnome : This command puts configuration files in /etc/gnome instead of /opt/gnome2/etc.

--localstatedir=/var/lib : This command puts files in /var/lib instead of /opt/gnome2/var.

--with-pam-prefix=/etc : This command puts pam configuration files in /etc/pam.d instead of /etc/gnome.


Configuring gdm

Config files

/opt/gnome2/gdm.conf, /opt/gnome2/gnomerc


Configuration Information

The gdm PAM config files contain modules not present in a BLFS installation. The following commands will replace those files:

cat > /etc/pam.d/gdm << "EOF"
auth        required    pam_unix.so
auth        required    pam_nologin.so
account     required    pam_unix.so
password    required    pam_unix.so
session     required    pam_unix.so
EOF
cat > /etc/pam.d/gdm-autologin << "EOF"
auth        required    pam_env.so
auth        required    pam_nologin.so
auth        required    pam_permit.so
account     required    pam_unix.so
password    required    pam_unix.so
session     required    pam_unix.so
EOF

gdm can be tested by executing it from a root console.

To automate the running of gdm, use the following command to create the init.d script if your GNOME_PREFIX=/opt/gnome-2.2. The fully qualified paths can be removed for GNOME_PREFIX=/usr:
cat > /etc/rc.d/init.d/gdm << "EOF"
#!/bin/bash
# Begin $rc_base/init.d/gdm

# Based on sysklogd script from LFS-3.1 and earlier.
# Rewritten by Gerard Beekmans  - gerard@linuxfromscratch.org

source /etc/sysconfig/rc
source $rc_functions

case "$1" in
        start)
                echo "Starting gdm..."
                loadproc /opt/gnome-2.2/bin/gdm
                ;;

        stop)
                echo "Stopping gdm..."
		if [ -f /var/run/gdm.pid ]; then
                loadproc /opt/gnome-2.2/sbin/gdm-stop
		fi
                ;;

        reload)
                echo "Reloading gdm..."
                reloadproc /opt/gnome-2.2/sbin/gdm-safe-restart
                ;;

        restart)
                echo "Restarting gdm..."
		loadproc /opt/gnome-2.2/sbin/gdm-restart
                ;;

        *)
                echo "Usage: $0 {start|stop|reload|restart}"
                exit 1
                ;;
esac

# End $rc_base/init.d/gdm
EOF
chmod 755 /etc/rc.d/init.d/gdm

Create the symbolic links to this file in the relevant rc.d directory with the following commands:
cd /etc/rc.d/init.d &&
ln -sf ../init.d/gdm ../rc0.d/K05gdm &&
ln -sf ../init.d/gdm ../rc1.d/K05gdm &&
ln -sf ../init.d/gdm ../rc2.d/K05gdm &&
ln -sf ../init.d/gdm ../rc3.d/K05gdm &&
ln -sf ../init.d/gdm ../rc4.d/K05gdm &&
ln -sf ../init.d/gdm ../rc5.d/S95gdm &&
ln -sf ../init.d/gdm ../rc6.d/K05gdm

To autostart with a graphical login, edit /etc/inittab so that the line reading
id:3:initdefault:
is changed to
id:5:initdefault:


Contents

The gdm package contains gdm, gdm-binary, gdmXnestchooser, gdmchooser, gdmflexiserver, gdmgreeter, gdmlogin, gdmmktemp, gdmphotosetup, gdmsetup, gdmthemetester, gdm-restart, gdm-safe-restart, gdm-stop, gdmaskpass, gdmconfig and gdmopen.


Description

gdm

gdm is a wrapper script to execute gdm-binary, the configurable GNOME-based login prompt.


gdmchooser

gdmchooser is an application for selecting XDMCP enabled hosts on the local network.


gdmsetup

gdmsetup is a graphical interface to edit the gdm.conf.


gdm-restart and gdm-safe-restart

gdm-restart sends the HUP signal and gdm-safe-restart sends the USR1 signal to the daemon so that it restarts. They are used after the config file is edited.


gdmconfig

gdmconfig is an application for managing the configuration of the entire GDM applications suite. It handles look and feel, security, XDMCP, GDMchooser and more.


Chapter 36. Configuring Gnome

Configuring the core GNOME packages

Create an .xinitrc file to start GNOME:
echo "exec gnome-session" >> ~/.xinitrc
and ensure all libraries can be found with:
ldconfig

At this point you can bring up GNOME with startx


Chapter 37. Gnome 1.4 Libraries

This section contains additional GNOME 1.4 libraries, needed by some applications that have not yet been ported to Gnome 2. None of these libraries are needed for a Gnome desktop install.


pre-installation configuration

Add to your system or personal profile:

export PATH=$PATH:/opt/gnome/bin
export PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/opt/gnome/lib/pkgconfig
export GNOME_LIBCONFIG_PATH=/usr/lib

Add to your /etc/ld.so.conf:

cat >> /etc/ld.so.conf << "EOF"
# Begin gnome addition to /etc/ld.so.conf

/opt/gnome/lib

# End gnome addition
EOF

Add to your /etc/man.conf:

cat >> /etc/man.conf << "EOF"
# Begin gnome addition to man.conf

MANPATH /opt/gnome/man

# END gnome addition to man.conf
EOF


ORBit-0.5.17

Introduction to ORBit

Download location (HTTP):       http://ftp.gnome.org/pub/GNOME/sources/ORBit/0.5/ORBit-0.5.17.tar.bz2
Download location (FTP):        ftp://ftp.gnome.org/pub/GNOME/sources/ORBit/0.5/ORBit-0.5.17.tar.bz2
Version used:                   0.5.17
Package size:                   1 MB
Estimated Disk space required:  26 MB

The ORBit package contains a high-performance CORBA Object Request Broker. This allows programs to send requests and receive replies from other programs.

ORBit depends on:
popt-1.7 and GLib-1.2.10

Installation of ORBit

Install ORBit by running the following commands:

./configure --prefix=/opt/gnome &&
make &&
make install


Configuring ORBit

Configuration Information

As with most libraries, there is no configuration to do, save that the library directory i.e. /usr/lib or /usr/local/lib should appear in /etc/ld.so.conf so that ldd can find the shared libraries. After checking that this is the case, /sbin/ldconfig should be run while logged in as root.


Contents

The ORBit package contains libIDL, libIIOP, libORBit, libORBitCosNaming and libORBitutil libraries.


Description

libIDL

libIDL is the Interface Definition Language mappings for CORBA.


libIIOP

libIIOP is for low level CORBA communications.


libORBit

libORBit is the CORBA API.


libORBitCosNaming

No description available.


libORBitutil

libORBitutil contains the convenience routines for ORBit.


oaf-0.6.10

Introduction to oaf

Download location (HTTP):       http://ftp.gnome.org/pub/GNOME/sources/oaf/0.6/oaf-0.6.10.tar.bz2
Download location (FTP):        ftp://ftp.gnome.org/pub/GNOME/sources/oaf/0.6/oaf-0.6.10.tar.bz2
Version used:                   0.6.10
Package size:                   548 KB
Estimated Disk space required:  4.5 MB

The oaf package contains the Object Activation Framework for GNOME.

oaf depends on:
ORBit-0.5.17 and libxml-1.8.17
oaf will utilize:
gtk-doc-1.0

Installation of oaf

Install oaf by running the following commands:

./configure --prefix=/opt/gnome --disable-gtk-doc &&
make &&
make install


Configuring oaf

Configuration Information

As with most libraries, there is no configuration to do, save that the library directory i.e. /usr/lib or /usr/local/lib should appear in /etc/ld.so.conf so that ldd can find the shared libraries. After checking that this is the case, /sbin/ldconfig should be run while logged in as root.


Contents

The oaf package contains liboaf libraries.


Description

oaf libraries

No description available.


gnome-libs-1.4.2

Introduction to gnome-libs

Download location (HTTP):       http://ftp.gnome.org/pub/GNOME/sources/gnome-libs/1.4/gnome-libs-1.4.2.tar.bz2
Download location (FTP):        ftp://ftp.gnome.org/pub/GNOME/sources/gnome-libs/1.4/gnome-libs-1.4.2.tar.bz2
Version used:                   1.4.2
Package size:                   3.7 MB
Estimated Disk space required:  33 MB

The gnome-libs package contains the gnome libraries. This is useful as a foundation for the GNOME desktop and applications.

gnome-libs depends on:
ORBit-0.5.17, GTK+-1.2.10, imlib-1.9.14 and db-3.3.11 or db-4.1.25
gnome-libs will utilize:
audiofile-0.2.3, esound-0.2.29 and gtk-doc-1.0

Installation of gnome-libs

Install gnome-libs by running the following commands:

./configure --prefix=/opt/gnome --disable-gtk-doc &&
make &&
make install


Configuring gnome-libs

Config files

/opt/gnome/etc/mime-magic, /opt/gnome/etc/paper.config, /opt/gnome/etc/sound/events/gnome.soundlist and /opt/gnome/etc/sound/events/gtk-events.soundlist


Configuration Information

As with most libraries, there is no configuration to do, save that the library directory i.e. /usr/lib or /usr/local/lib should appear in /etc/ld.so.conf so that ldd can find the shared libraries. After checking that this is the case, /sbin/ldconfig should be run while logged in as root.


Contents

The gnome-libs package contains libgnome, libgnomeui, libgnomesupport, libart_lgpl, libgtk-xmhtml, libgnorbagtk and libzvt libraries.


Description

libgnome

libgnome is the non-GUI part of the GNOME library.


libgnomeui

libgnomeui is the GUI part of the GNOME library.


libgnomesupport

No description available.


libart_lgpl

libart_lgpl is the LGPL'd component of libart.


libgtk-xmhtml

No description available.


libgnorbaqtk

libgnorbaqtk is the GNOME CORBA QTK framework.


libzvt

libzvt provides the functions necessary to emulate xterm.


gdk-pixbuf-0.22.0

Introduction to gdk-pixbuf

Download location (HTTP):       http://ftp.gnome.org/pub/GNOME/sources/gdk-pixbuf/0.22/gdk-pixbuf-0.22.0.tar.bz2
Download location (FTP):        ftp://ftp.gnome.org/pub/GNOME/sources/gdk-pixbuf/0.22/gdk-pixbuf-0.22.0.tar.bz2
Version used:                   0.22.0
Package size:                   396 KB
Estimated Disk space required:  16 MB

The gdk-pixbuf package is the GTK+ pixbuf library

gdk depends on:
GLib-1.2.10, GTK+-1.2.10, libpng-1.2.5, libjpeg-6b and libtiff-3.5.7
gkd will utilize:
gtk-doc-1.0 and gnome-libs-1.4.2

Installation of gdk-pixbuf

Install gdk-pixbuf by running the following commands:

./configure --prefix=/opt/gnome --disable-gtk-doc &&
make &&
make install


Configuring gdk-pikbuf

Configuration Information

As with most libraries, there is no configuration to do, save that the library directory i.e. /usr/lib or /usr/local/lib should appear in /etc/ld.so.conf so that ldd can find the shared libraries. After checking that this is the case, /sbin/ldconfig should be run while logged in as root.


Contents

The gdk-pixbuf package contains libgdk_pixbuf libraries.


Description

libgdk_pixbuf libraries

libdgk_pixbuf libraries contain the GTK+ pixbuf libraries for the Gimp Tool Kit.


GConf-1.0.9

Introduction to GConf

Download location (HTTP):       http://ftp.gnome.org/pub/GNOME/sources/GConf/1.0/GConf-1.0.9.tar.bz2
Download location (FTP):        ftp://ftp.gnome.org/pub/GNOME/sources/GConf/1.0/GConf-1.0.9.tar.bz2
Version used:                   1.0.9
Package size:                   1.2 MB
Estimated Disk space required:  8.7 MB

The GConf package contains a configuration database system.

GConf depends on:
oaf-0.6.10, GTK+-1.2.10 and gdk-pixbuf-0.22.0
GConf will utilize:
db-3.3.11 and guile-1.4.1

Installation of GConf

Install GConf by running the following commands:

./configure --prefix=/opt/gnome &&
make &&
make install


Configuring GConf

Configuration Information

As with most libraries, there is no configuration to do, save that the library directory i.e. /usr/lib or /usr/local/lib should appear in /etc/ld.so.conf so that ldd can find the shared libraries. After checking that this is the case, /sbin/ldconfig should be run while logged in as root.


Contents

The GConf package contains libgconf libraries.


Description

libgconf libraries

libgconf libraries provide the functions necessary to maintain the configuration database.


gnome-vfs-1.0.5

Introduction to gnome-vfs

Download location (HTTP):       http://ftp.gnome.org/pub/GNOME/sources/gnome-vfs/1.0/gnome-vfs-1.0.5.tar.bz2
Download location (FTP):        ftp://ftp.gnome.org/pub/GNOME/sources/gnome-vfs/1.0/gnome-vfs-1.0.5.tar.bz2
Version used:                   1.0.5
Package size:                   1.1 MB
Estimated Disk space required:  9 MB

The gnome-vfs package contains file system libraries.

gnome-vfs depends on:
GConf-1.0.9 and gnome-libs-1.4.2 
gnome-vfs will utilize:
openssl-0.9.7a, gtk-doc-1.0 and CDParanoia-III-9.8

Installation of gnome-vfs

Install gnome-vfs by running the following commands:

./configure --prefix=/opt/gnome --disable-gtk-doc &&
make &&
make install


Configuring gnome-vfs

Configuration Information

As with most libraries, there is no configuration to do, save that the library directory i.e. /usr/lib or /usr/local/lib should appear in /etc/ld.so.conf so that ldd can find the shared libraries. After checking that this is the case, /sbin/ldconfig should be run while logged in as root.


Contents

The gnome-vfs package contains libgnomevfs libraries.


Description

libgnomevfs libraries

No description available.


gnome-print-0.37

Introduction to gnome-print-0.37

Download location (HTTP):       http://ibiblio.org/pub/Linux/X11/gnome/sources/gnome-print/0.37/gnome-print-0.37.tar.bz2
Download location (FTP):        ftp://ftp.gnome.org/pub/GNOME/sources/gnome-print/0.37/gnome-print-0.37.tar.bz2
Version used:                   0.37
Package size:                   756 KB
Estimated Disk space required:  34 MB

The gnome-print package contains the Gnome Printing Architecture, for Gnome 1.4.


Installation of gnome-print

Install gnome-print by running the following commands:

./configure --prefix=/opt/gnome --with-zlib=/usr &&
make &&
make install


Command explanations

--with-zlib=/usr : Configure gnome-print to usr the system installed zlib.


Configuring gnome-print

As with most libraries, there is no configuration to do, save that the library directory i.e. /usr/lib or /usr/local/lib should appear in /etc/ld.so.conf so that ldd can find the shared libraries. After checking that this is the case, /sbin/ldconfig should be run while logged in as root.


Contents

The gnome-print package contains the Gnome 1.4 printing libraries.


libglade-0.17

Introduction to libglade-0.17

Download location (HTTP):       http://ftp.gnome.org/pub/GNOME/sources/libglade/0.17/libglade-0.17.tar.gz
Download location (FTP):        ftp://ftp.gnome.org/pub/GNOME/sources/libglade/0.17/libglade-0.17.tar.gz
Version used:                   0.17
Package size:                   416 KB
Estimated Disk space required:  7.1 MB

The libglade package contains libraries which allow applications to load glade interface files at runtime.

libglade depends on:
libxml-1.8.17 and GTK+-1.2.10
libglade will utilize:
gnome-libs-1.4.2 and Python-2.2.2 if compiled utilizing expat-1.95.6

Installation of libglade

Install libglade by running the following commands:

./configure  --prefix=/opt/gnome --enable-bonobo \
 --enable-gnomedb --disable-gtk-doc &&
make &&
make install


Command explanations

--enable-bonobo : Enable bonobo support.

--enable-gnomedb : Enable gnomedb support.


Configuring libglade

As with most libraries, there is no configuration to do, save that the library directory i.e. /usr/lib or /usr/local/lib should appear in /etc/ld.so.conf so that ldd can find the shared libraries. After checking that this is the case, /sbin/ldconfig should be run while logged in as root.


Contents

The libglade package contains glade interface file loading libraries.


libcapplet-1.5.11

Introduction to libcapplet-1.5.11

Download location (HTTP):       http://ftp.gnome.org/pub/GNOME/sources/libcapplet/1.5/libcapplet-1.5.11.tar.bz2
Download location (FTP):        ftp://ftp.gnome.org/pub/GNOME/sources/libcapplet/1.5/libcapplet-1.5.11.tar.bz2
Version used:                   1.5.11
Package size:                   312 KB
Estimated Disk space required:  2.4 MB

The libcapplet package contains a control panel applet library.


Installation of libcapplet

Install libcapplet by running the following commands:

./configure --prefix=/opt/gnome &&
make &&
make install 


Command explanations

--prefix=/opt/gnome : Install libcapplet in the gnome 1.4 area.


Configuring libcapplet

As with most libraries, there is no configuration to do, save that the library directory i.e. /usr/lib or /usr/local/lib should appear in /etc/ld.so.conf so that ldd can find the shared libraries. After checking that this is the case, /sbin/ldconfig should be run while logged in as root.


Contents

The libcapplet package contains a control panel applet library.


gal-0.22

Introduction to gal-0.22

Download location (HTTP):       http://ftp.gnome.org/pub/GNOME/sources/gal/0.22/gal-0.22.tar.bz2
Download location (FTP):        ftp://ftp.gnome.org/pub/GNOME/sources/gal/0.22/gal-0.22.tar.bz2
Version used:                   0.22
Package size:                   1 MB
Estimated Disk space required:  100 MB

The gal package contains library functions that came from Gnumeric and Evolution. Currently only Evolution needs to have this installed, if you're not installing Evolution, you should not be installing gal.


Installation of gal

Install gal by running the following commands:

./configure --prefix=/opt/gnome --disable-gtk-doc &&
make &&
make install


Command explanations

--prefix=/opt/gnome : Install gal in the Gnome 1.4 area.


Configuring gal

As with most libraries, there is no configuration to do, save that the library directory i.e. /usr/lib or /usr/local/lib should appear in /etc/ld.so.conf so that ldd can find the shared libraries. After checking that this is the case, /sbin/ldconfig should be run while logged in as root.


Contents

The gal package contains library routines refactored from Evolution and Gnumeric.


gtkhtml-1.1.7

Introduction to gtkhtml-1.1.7

Download location (HTTP):       http://ftp.gnome.org/pub/GNOME/sources/gtkhtml/1.1/gtkhtml-1.1.7.tar.bz2
Download location (FTP):        ftp://ftp.gnome.org/pub/GNOME/sources/gtkhtml/1.1/gtkhtml-1.1.7.tar.bz2
Version used:                   1.1.7
Package size:                   1.1 KB
Estimated Disk space required:  62 MB

The gtkhtml package contains is a lightweight HTML rendering/printing/editing engine.

gtkhtml depends on:
gal-0.22, libglade-0.17 and libcapplet-1.5.11.

Installation of gtkhtml

Install gtkhtml by running the following commands:

./configure --prefix=/opt/gnome --disable-gtk-doc &&
make &&
make install


Command explanations

--prefix=/opt/gnome : Install gtkhtml in the Gnome 1.4 area.


Configuring gtkhtml

As with most libraries, there is no configuration to do, save that the library directory i.e. /usr/lib or /usr/local/lib should appear in /etc/ld.so.conf so that ldd can find the shared libraries. After checking that this is the case, /sbin/ldconfig should be run while logged in as root.


Contents

The gtkhtml package contains the Gnome 1.4 html rendering engine.


libghttp-1.0.9

Introduction to libghttp-1.0.9

Download location (HTTP):       http://ftp.gnome.org/pub/GNOME/sources/libghttp/1.0/libghttp-1.0.9.tar.gz
Download location (FTP):        ftp://ftp.gnome.org/pub/GNOME/sources/libghttp/1.0/libghttp-1.0.9.tar.gz
Version used:                   1.0.9
Package size:                   148 KB
Estimated Disk space required:  1.6 MB

The libghttp package contains a Gnome 1.4 HTTP client library.


Installation of libghttp

Install libghttp by running the following commands:

./configure --prefix=/opt/gnome &&
make &&
make install


Command explanations

--prefix=/opt/gnome : Install libghttp in the Gnome 1.4 area.


Configuring libghttp

As with most libraries, there is no configuration to do, save that the library directory i.e. /usr/lib or /usr/local/lib should appear in /etc/ld.so.conf so that ldd can find the shared libraries. After checking that this is the case, /sbin/ldconfig should be run while logged in as root.


Contents

The libghttp package contains an Gnome 1.4 HTTP client library.


bonobo-1.0.22

Introduction to bonobo-1.0.22

Download location (HTTP):       http://ftp.gnome.org/pub/GNOME/sources/bonobo/1.0/bonobo-1.0.22.tar.bz2
Download location (FTP):        http://ftp.gnome.org/pub/GNOME/sources/bonobo/1.0/bonobo-1.0.22.tar.bz2
Version used:                   1.0.22
Package size:                   1.1 MB
Estimated Disk space required:  20 MB

The bonobo package contains a set of language and system independent CORBA interfaces for creating reusable components, controls and creating compound documents.


Installation of bonobo

Install bonobo by running the following commands:

./configure --prefix=/opt/gnome &&
make &&
make install


Command explanations

--prefix=/opt/gnome: Install bonobo in the Gnome 1.4 area.


Configuring bonobo

As with most libraries, there is no configuration to do, save that the library directory i.e. /usr/lib or /usr/local/lib should appear in /etc/ld.so.conf so that ldd can find the shared libraries. After checking that this is the case, /sbin/ldconfig should be run while logged in as root.


Contents

The bonobo package contains Gnome 1.4 compound document and component libraries.


guppi-0.40.3

Introduction to Guppi-0.40.3

Download location (HTTP):       http://ftp.gnome.org/pub/GNOME/sources/Guppi/0.40/Guppi-0.40.3.tar.bz2
Download location (FTP):        ftp://ftp.gnome.org/pub/GNOME/sources/Guppi/0.40/Guppi-0.40.3.tar.bz2
Version used:                   0.40.3
Package size:                   990 KB
Estimated Disk space required:  15 MB

The Guppi package contains a guile-scriptable plot program with integrated statistics capabilities.


Installation of Guppi

Install Guppi by running the following commands:

./configure --prefix=/opt/gnome &&
make &&
make install


Command explanations

--prefix=/opt/gnome : Install Guppi in the Gnome 1.4 area.


Configuring Guppi

As with most libraries, there is no configuration to do, save that the library directory i.e. /usr/lib or /usr/local/lib should appear in /etc/ld.so.conf so that ldd can find the shared libraries. After checking that this is the case, /sbin/ldconfig should be run while logged in as root.


Contents

The guppi package contains plotting libraries and plugins for Gnome 1.4.


bonobo-conf-0.16

Introduction to bonobo-conf

Download location (HTTP):       http://ftp.gnome.org/pub/GNOME/sources/bonobo-conf/0.16/bonobo-conf-0.16.tar.gz
Download location (FTP):        ftp://ftp.gnome.org/pub/GNOME/sources/bonobo-conf/0.16/bonobo-conf-0.16.tar.gz
Version used:                   0.16
Package size:                   449 KB
Estimated Disk space required:  4.3 MB

The bonobo-conf package contains the Bonobo configuration moniker. The system is built on top of GConf and provides a convenient way to handle configuration data.

bonobo-conf depends on:
gnome-print-0.37

Installation of bonobo-conf

Install bonobo-conf by running the following commands:

./configure --prefix=/opt/gnome &&
make &&
make install


Command explanations

--prefix=/opt/gnome : Install bonobo-conf in the Gnome 1.4 area.


Configuring bonobo-conf

As with most libraries, there is no configuration to do, save that the library directory i.e. /usr/lib or /usr/local/lib should appear in /etc/ld.so.conf so that ldd can find the shared libraries. After checking that this is the case, /sbin/ldconfig should be run while logged in as root.


Contents

The bonobo-conf package contains libraries for handling GConf configuration data.


soup-0.7.4

Introduction to Soup

Download location (HTTP):       http://ftp.gnome.org/pub/GNOME/sources/soup/0.7/soup-0.7.4.tar.bz2
Download location (FTP):        ftp://ftp.gnome.org/pub/GNOME/sources/soup/0.7/soup-0.7.4.tar.bz2
Version used:                   0.7.4
Package size:                   302 KB
Estimated Disk space required:  4.1 MB

The Soup package contains a SOAP (Simple Object Access Protocol) implementation in C.


Installation of Soup

Install Soup by running the following commands:

./configure --prefix=/opt/gnome &&
make &&
make install


Command explanations

--prefix=/opt/gnome : Install Soup in the Gnome 1.4 area.


Configuring Soup

As with most libraries, there is no configuration to do, save that the library directory i.e. /usr/lib or /usr/local/lib should appear in /etc/ld.so.conf so that ldd can find the shared libraries. After checking that this is the case, /sbin/ldconfig should be run while logged in as root.


Contents

The soup package contains SOAP libraries, used to implement XML remote procedure calls.


Chapter 38. Individual Office Programs

AbiWord-1.0.4

Introduction to AbiWord

Download location (HTTP):       http://telia.dl.sourceforge.net/sourceforge/abiword/abiword-1.0.4.tar.gz
Download location (FTP):        
Version used:                   1.0.4
Package size:                   19 MB
Estimated Disk space required:  105.2 MB

The AbiWord package contains a word processing application. This is useful for writing reports, letters and other formatted documents.

AbiWord depends on:
GLib-1.2.10 and GTK+-1.2.10
AbiWord will utilize:
expat-1.95.6, libpng-1.2.5, popt-1.7, 
gnome-libs-1.4.2, gnome-vfs-1.0.5, gdk-pixbuf-0.22.0, 
gal-0.22, bonobo-1.0.22, gnome-print-0.37 and ispell

Installation of AbiWord

Install AbiWord by running the following commands:

cd abi &&
./configure --prefix=/usr &&
make &&
make install


Command explanations

--enable-gnome : This command can be added to the configure command for AbiWord to utilize GNOME libraries listed in the introduction.


Contents

The AbiWord package contains AbiWord.


Description

AbiWord

AbiWord or abiword are wrapper scripts for the AbiWord executable.


gnumeric-1.0.12

Introduction to gnumeric

Download location (HTTP):       http://ftp.gnome.org/pub/GNOME/sources/gnumeric/1.0/gnumeric-1.0.12.tar.bz2
Download location (FTP):        ftp://ftp.gnome.org/pub/GNOME/sources/gnumeric/1.0/gnumeric-1.0.12.tar.bz2
Version used:                   1.0.12
Package size:                   9.6 MB
Estimated Disk space required:  75.9 MB
Estimated build time:           10.35 SBU

The gnumeric package contains a spreadsheet program. This is useful for financial analysis.

gnumeric depends on:
libxml-1.8.17, gnome-libs-1.4.2, libole2-0.2.4, 
gnome-print-0.37 and gal-0.22
gnumeric will utilize:
Python-2.2.2, guile >= 1.5, bonobo-1.0.22, gb >=0.0.17, 
gda > 0.2.92, guppi-0.40.3 and evolution-1.2.1

Installation of gnumeric

Install gnumeric by running the following commands:

./configure --prefix=/opt/gnome &&
make &&
make install


Contents

The gnumeric package contains gnumeric.


Description

gnumeric

gnumeric is GNOME's spreadsheet application.


gnucash-1.8.2

Introduction to GnuCash

Download location (HTTP):       http://www.gnucash.org/gnucash/sources/stable/gnucash-1.8.2.tar.gz
Download location (FTP):        
Version used:                   1.8.2
Package size:                   6.3 MB
Estimated Disk space required:  144 MB

GnuCash is a personal finance manager.

gnucash depends on:
gnome-print-0.37, libglade-0.17, db-3.3.11,
gal-0.22, libcapplet-1.5.11, gtkhtml-1.1.7,
libghttp-1.0.9, bonobo-1.0.22, guppi-0.40.3,
guile-1.4.1, slib-2d5 and gwrap-1.3.4


Installation of GnuCash

Install GnuCash by running the following commands:

./configure --prefix=/opt/gnome &&
    make &&
    make install


Command explanations

--prefix=/opt/gnome : Version 1.8.2 of GnuCash is a gnome 1.4 application.


Configuring GnuCash

Configuration Information

Note: GnuCash must be run as root once before use. Simply executing GnuCash from an X terminal and clicking on the cancel button is sufficient. This must be done prior to setting up accounts as an unprivileged user, due to the fact that GnuCash must create scheme catalogs for itself before it is used.


Contents

The GnuCash package contains gnucash.


Description

GnuCash

gnucash is the GnuCash personal finance manager.


gimp-1.2.3

Introduction to gimp

Download location (HTTP):       
Download location (FTP):        ftp://ftp.gimp.org/pub/gimp/v1.2/v1.2.3/gimp-1.2.3.tar.bz2
Version used:                   1.2.3
Package size:                   10.6 MB
Estimated Disk space required:  226 MB
Additional Downloads:
ftp://ftp.gimp.org/pub/gimp/fonts/freefonts-0.10.tar.gz
ftp://ftp.gimp.org/pub/gimp/v1.2/v1.2.3/gimp-data-extras-1.2.0.tar.bz2

The gimp package contains the GNU Image Manipulation Program. This is useful for photo retouching, image composition and image authoring.

gimp depends on:
GTK+-1.2.10
gimp will utilize:
libtiff-3.5.7, libpng-1.2.5, libjpeg-6b, 
aalib-1.4rc4, mpeg_lib-1.3.1, Python-2.2.2 and 
perl-modules:Gtk-Perl-0.7008, PDL-2.3.4 and Parse-RecDescent-1.80

Installation of gimp

Install gimp by running the following commands:

./configure --prefix=/usr --sysconfdir=/etc &&
make &&
make install


Configuring gimp

Config files

~/.gimp-1.2


Configuration Information

GIMP executes a configuration wizard for each users upon their initial invocation of the program.


Contents

The gimp package contains gimp, escputil, gimp-config and gimp-remote.


Description

gimp

gimp is an image manipulation program. It works with a variety of image formats and provides a large selection of tools.


escputil

escputil is a utility to perform maintenance tasks on an Epson Stylus inkjet printer.


gimp-config

gimp-config is used by other programs that want to link to gimp libraries.


gimp-remote

gimp-remote is a small utility that tells a running gimp to open a local or remote image file.


evolution-1.2.1

Introduction to db-3.1.17

Download location (HTTP):       http://www.sleepycat.com/update/snapshot/db-3.1.17.tar.gz
Download location (FTP):        
Version used:                   3.1.17
Package size:                   2 MB
Estimated Disk space required:  18 MB

The db-3.1.17 package contains version 3.1.17 of the Berkeley database. Evolution needs exactly this version and not any other, the details on "why" are in the README file distibuted with the evolution source code. Evolution links to the library statically, hence this book installs the db-3.1.17 in /opt, which can be removed once Evolution is compiled.


Installation of db-3.1.17

Install db-3.1.17 by running the following commands:

cd build_unix &&
../dist/configure --prefix=/opt/db-3.1.17 --enable-compat185 &&
make &&
make install


Command explanations

--enable-compat185 : Build support for older database files.

--prefix=/opt/db-3.1.17 : This version of the Berkeley Database should not be installed in /usr, as it is only needed for the building of Evolution.


Introduction to Evolution

Download location (HTTP):       http://ftp.gnome.org/pub/GNOME/sources/evolution/1.2/evolution-1.2.1.tar.bz2
Download location (FTP):        ftp://ftp.gnome.org/pub/GNOME/sources/evolution/1.2/evolution-1.2.1.tar.bz2
Version used:                   1.2.1
Package size:                   12 MB
Estimated Disk space required:  387 MB

The Evolution package contains an integrated mail, calendar and address book suite.

evolution depends on:
bonobo-1.0.22, bonobo-conf-0.16,
gal-0.22, libcapplet-1.5.11, gtkhtml-1.1.7 and 
soup-0.7.4

Installation of evolution

Install evolution by running the following commands:

./configure --prefix=/opt/gnome --with-db3=/opt/db-3.1.17 &&
make &&
make install

Optionally, you may remove the installed db-3.1.17

rm -rf /opt/db-3.1.17


Command explanations

--prefix=/opt/gnome : Install Evolution in the Gnome 1.4 area.

--with-db3=/opt/db-3.1.17 : Specify the location where db-3.1.17 is installed.


Contents

The evolution package contains the Evolution email, calendar and address book suite.


Chapter 39. Office Suites

koffice-1.2.1

Download location (FTP):        ftp://ftp.kde.org/pub/kde/stable/koffice-1.2.1/src/koffice-1.2.1.tar.bz2
Version used:                   1.2.1
Package size:                   8.9 MB
Estimated Disk space required:  133 MB
Estimated Install size:         35 MB

KOffice is the integrated office suite for KDE.

KOffice depends on:
kdebase-3.1

KOffice also has many internationalization packages in the form of:
koffice-i18n-xx-1.2.1.tar.bz2
where the xx is a two to five letter code for the country covered. The sizes of these files range from about 289 KB to 408 KB.

Install koffice with:
./configure --prefix=/opt/kde-3.1 --disable-debug &&
make &&
make install


koffice Installation Command explanations

The options are the same as for kde-base and are not repeated here.


Configuring koffice

There is no explicit configuration for the koffice package.


Contents

The KOffice package provides:

  • KWord - Framemaker-like word processing and desktop publishing program

  • KSpread - Spreadsheet program (scriptable)

  • KPresenter - Presentation builder/display program

  • Kivio - Flowchart program

  • Kontour - Vector drawing program

  • Krita - Painting and image editing program

  • Kugar - A tool for creating reports

  • KPlato - Project management application (early stages of development)

  • KChart - Chart drawing application

  • KFormula - Formula editor


openoffice-1.0.2

Introduction to openoffice

Download location (HTTP):       http://sf1.mirror.openoffice.org/stable/1.0.2/OOo_1.0.2_source.tar.bz2
Download location (FTP):        
Version used:                   1.0.2
Package size:                   155 MB
Estimated Disk space required:  2.1 GB
Estimated Build time:           14 Hrs (850 MHz)
Estimated Install size:         203 MB

The openoffice is a office suite, the opensource sibling of StarOffice.

openoffice depends on:
freetype-2.1.3, xfree86-4.3.0, j2sdk-1.4.1,
zip-2.3, unzip-5.50, tcsh-6.12,
db-4.1.25, STLport-4.5.3, which-2.14
and mktemp
openoffice will utilize:
ant

Download the General Polygon Clipper Library from ftp://ftp.cs.man.ac.uk/pub/toby/gpc/gpc231.tar.Z.

Also download the various patches from http://downloads.linuxfromscratch.org/blfs-patches. The patches begin with openoffice-1.0.2. You will need most of the patches except for the patches that activate the use the system installed versions of packages (you need to select those based on your installation).

The source tarball only contains English language help. A localized help content file may be available at http://ftp.services.openoffice.org/pub/OpenOffice.org/contrib/helpcontent/.

If you have difficulties in building openoffice, check out the openoffice hint for detailed information at http://www.linuxfromscratch.org/~tushar/. The hint also discusses installation of auxiliary software.


Installation of openoffice

Note that openoffice has problems with bison-1.875. Downgrade to bison-1.75 or install bison-1.75 with an alternate prefix (e.g. /opt/bison-1.75) and put $bison_prefix/bin as the first entry in the PATH.

Apply the downloaded patches and copy gpc files.

mv ../gpc231/* external/gpc &&
rm -rf ../gpc231 &&
for p in ../openoffice-1.0.2-*.patch
do patch -Np1 -i $p
done

If you want to optimize the build, edit solenv/inc/unxlngi4.mk and add the desired optimization flags to CFLAGSOPT variable. Some users have reported problems with -fomit-frame-pointer. The best option is to not use any custom optimizations. The following command removes an incorrect -mcpu option in the above file.

cd solenv/inc &&
cp unxlngi4.mk unxlngi4.mk.orig &&
sed -e "s:\-mcpu=pentiumpro::" \
unxlngi4.mk.orig > unxlngi4.mk &&
cd ../..

Configure openoffice using the following commands. You may add additional languages based on your preferences. If a particular component is not available in the language of your choice, the default will be English.

cd config_office/ &&
./configure --with-lang=ENUS --with-stlport4-home=/usr &&
cd .. &&
source LinuxIntelEnv.Set.sh

Compile openoffice using the following commands.

./bootstrap &&
dmake

If you have downloaded localized helpcontent zip files, you will need to unzip them to the appropriate directory as mentioned below and then recreate the installation set.

cd solver/641/unxlngi4.pro/pck &&
for i in $(ls ../../../../../helpcontent_*_unix.tgz)
do
tar -xvzf $i
done &&
cd ../../../../instsetoo &&
rm -rf unxlngi4.pro &&
dmake &&
cd ..

Install OpenOffice using the following commands. The following commands install the English language set. To install a localized version, replace the 01 by the international telephone country code for your country. Note that when installing, it needs a X Display, even though there is no visible X window. You can use Xvfb if you are compiling on a console.

cd instsetoo/unxlngi4.pro/01/normal &&
cp install install.orig &&
sed -e "s:^oo_home=.*:oo_home=openoffice:" install.orig > install &&
./install --prefix=/opt &&
for appl in swriter scalc sdraw simpress smath soffice
do ln -sf /opt/openoffice/program/$appl /usr/bin/$appl
done


Command explanations

mv ../gpc231/gpc.* external/gpc : Copy the gpc files to the appropriate location.

--with-lang=ENUS : Compile for US English, you may set more languages or all to compile all available languages.

./bootstrap : Create packages required to bootstrap the build.

dmake : Compile the package.

sed -e "s:^oo_home=...: Remove version specific installation directory

for appl in swriter scalc sdraw simpress smath soffice; do ... : Create links so that the package can be started from the command line without changes to the existing path.


Contents

The openoffice package contains swriter, simpress, scalc, sdraw and smath.


Description

swriter

Word processing application.


simpress

Presentation application.


scalc

Spreadsheet application.


sdraw

Drawing application.


smath

Mathematical formula editor.


Chapter 40. Graphical Web Browsers

mozilla-1.3

Introduction to mozilla

Download location (HTTP):       http://ftp.mozilla.org/pub/mozilla/releases/mozilla1.3/src/mozilla-source-1.3.tar.bz2
Download location (FTP):        ftp://ftp.mozilla.org/pub/mozilla/releases/mozilla1.3/src/mozilla-source-1.3.tar.bz2
Version used:                   1.3
Package size:                   39 MB
Estimated Disk space required:  550 MB
Estimated Build time:           2 Hrs (850 MHz)
Estimated Install size:         65 MB

Mozilla is a browser suite, the opensource sibling of Netscape. It includes the browser, composer, mail client and an IRC client. A calendar component is also being built but it is not yet integrated into the stable mozilla releases.

mozilla depends on:
freetype-2.1.3, xfree86-4.3.0,	zip-2.3,
GLib-2.2.1, GTK+-2.2.1, libIDL-0.8.0,
lcms-1.09, libjpeg-6b, libmng-1.0.5,
libpng-1.2.5 and which-2.14

Download the patch for various fixes to the build from http://downloads.linuxfromscratch.org/blfs-patches. The patches begin with mozilla-1.3

Note that the mozdev spellchecker instructions have been removed since the API for spellchecker was changed and it is currently broken.

If you have difficulties in building mozilla, check out the mozilla hint for detailed information at http://www.linuxfromscratch.org/~tushar/. The instructions that follow install the entire suite. To select specific components, refer to the hint.


Installation of mozilla

Install mozilla by running the following commands:

export MOZILLA_OFFICIAL="1" &&
export BUILD_OFFICIAL="1" &&
export MOZ_INTERNAL_LIBART_LGPL="1" &&

for p in ../mozilla-1.3-*.patch
do patch -Np1 -i $p
done

According to the financial institutions, the following hack makes your browser insecure. You have been warned. Many sites use an MS-IE specific tag (autocomplete=off) to prevent autocomplete from working in some forms. This tag is now supported in mozilla to appease the financial institutions. As per the requirements of the financial institutions, they will not even accept a solution where this a preference option. However our opinion is that it should be in the hands of the user. To enable autocomplete to bypass this restriction, we need to make a slight modification in the code.

Open the file extensions/wallet/src/wallet.cpp in the mozilla source tree and search for the line:
#define WALLET_DONT_CACHE_ALL_PASSWORDS
Then delete or comment out the line. Now, if anyone tells you MS-IE is user friendly, give them this example!

./configure --prefix=/usr \
            --enable-default-mozilla-five-home \
            --enable-toolkit-gtk2 --enable-default-toolkit=gtk2 \
            --with-x --with-system-zlib \
            --with-system-jpeg --with-system-png --with-system-mng \
            --enable-xft --enable-crypto \
            --enable-java-supplement \
            --disable-accessibility \
            --disable-tests --disable-debug \
            --disable-logging --enable-reorder \
            --enable-strip \
            --enable-cpp-rtti --enable-extensions=all \
            --enable-svg &&
make &&
make install &&
install -d /usr/include/mozilla-1.3/nss &&
cp -Lf dist/private/nss/*.h dist/public/nss/*.h \
   /usr/include/mozilla-1.3/nss &&

ln -nsf mozilla-1.3 /usr/include/mozilla &&
ln -nsf mozilla-1.3 /usr/lib/mozilla &&
cd /usr/lib/mozilla-1.3 &&
export LD_LIBRARY_PATH="/usr/lib/mozilla-1.3" &&
export MOZILLA_FIVE_HOME="/usr/lib/mozilla-1.3" &&
./regxpcom &&
./regchrome &&
touch `find /usr/lib/mozilla-1.3 -name *.rdf`


Optional Extra Switches

Each of these switches can be added to the configure line in order to have the described effect on the mozilla compile.

--enable-elf-dynstr-gc : Removes unreferenced strings from ELF shared objects generated during the build. Note that this option breaks build on alpha.

--disable-mailnews : Disable the mail and news clients.

--disable-ldap : Disable LDAP Support, recommended if mail is disabled.

--enable-calendar : Build the calendar client. You will need to download the calendar source via cvs since it is not included with the release source. (Warning, this option is not yet stable).

--enable-xterm-updates : This option is for enabling the xterm title with the current command when compiling.

--enable-plaintext-editor-only : Disable support for HTML editing. Do not use this switch if you are building the mail-news component.


Command explanations

export MOZILLA_OFFICIAL="1" &&
export BUILD_OFFICIAL="1" &&
export MOZ_INTERNAL_LIBART_LGPL="1"
Set some variables that affect what and how it is built. The first two exports specify that we are building a distribution. The last export specifies that we are ok with the LGPL versioned libart.

--prefix=/usr: Previously mozilla did not support the make install option. Hence the package was installed in /opt. The package now supports "make install" and follows the FHS guidelines for installation. Hence the book now recommends installation in a system wide prefix such as /usr.

--enable-toolkit-gtk2
Use gtk2 toolkit

--with-system-zlib --with-system-jpeg \
--with-system-png --with-system-mng"
Use the system versions for these packages.

--enable-xft : Enable the Xft support. You need fontconfig or the latest XFree86 version to enable xft.

--enable-crypto : Enable the Personal Security Manager to enable SSL connections.

--disable-jsd --disable-accessibility \
--disable-tests --disable-debug \
--disable-dtd-debug \
--disable-logging --enable-reorder \
--enable-strip \
--enable-cpp-rtti
Various options that affect what components are built and some optimization options. You can pick and choose from these options. More information on them can be found in the mozilla configure script help. Not all options are used in the instructions given above.

--enable-extensions=... : Enables extensions. If you want, you can disable all extensions other than the browser by changing this switch to --enable-extensions="default,-venkman,-inspector,-irc".

--enable-svg : Enable SVG (Scalable Vector Graphics) support.

install -d /usr/include/mozilla-1.3/nss
cp -Lf dist/private/nss/*.h dist/public/nss/*.h \
   /usr/include/mozilla-1.3/nss
Copy the nss headers that are not copied by make install.

ln -nsf mozilla-1.3 ... : Mozilla installs headers and libraries in version specific directories. This link makes symbolic links so that applications that depend on Mozilla (such as OpenOffice, Galeon, etc.) don't need to know which version of mozilla is installed.

export LD_LIBRARY_PATH="/usr/lib/mozilla-1.3" &&
export MOZILLA_FIVE_HOME="/usr/lib/mozilla-1.3" &&
./regxpcom &&
./regchrome &&
touch `find /usr/lib/mozilla-${VERSION} -name *.rdf`
Create the required component registries to enable multi-user installs.


Contents

The mozilla package contains mozilla.The various components such as composer, mail-news can be accessed from the menu after mozilla starts or via command line switches to the mozilla binary.


galeon-1.3.3

Introduction to galeon

Download location (HTTP):       http://telia.dl.sourceforge.net/sourceforge/galeon/galeon-1.3.3.tar.gz
Download location (FTP):        
Version used:                   1.3.3
Package size:                   3.6 MB
Estimated Disk space required:  28.3 MB
Estimated build time:           5.30 SBU

The galeon package contains a GNOME browser that utilizes the mozilla gecko rendering engine and presents the simplest interface possible for a browser.

galeon depends on:
libgnomeui-2.2.0.1 and mozilla-1.3

Installation of galeon

Compiling must be done with the same compiler version and the same optimization settings that were used on mozilla.

Install galeon by running the following commands:

./configure --prefix=$GNOME_PREFIX --sysconfdir=/etc/gnome \
--localstatedir=/var/lib &&
make &&
make install


Contents

The galeon package contains galeon and galeon-config-tool.


Description

galeon

galeon sets LD_LIBRARY_PATH and MOZILLA_FIVE_HOME before executing galeon-bin.


galeon-config-tool

galeon-config-tool clears settings, installs schemas, removes schemas and fixes permissions in gconf.


konqueror-3.1

Konqueror is the default graphical web browser for the KDE desktop environment. It is packaged and installed with kdebase-3.1.


Chapter 41. Other X-based Internet Programs

pan-0.13.4

Introduction to pan

Download location (HTTP):       http://pan.rebelbase.com/download/releases/0.13.4/SOURCE/pan-0.13.4.tar.bz2
Download location (FTP):        
Version used:                   0.13.4
Package size:                   1.6 MB
Estimated Disk space required:  19.2 MB
Estimated build time:           1.92 SBU

The pan package contains a graphical newsreader. This is useful for reading and writing news, threading articles and replying via email.

pan depends on:
GTK+-2.2.1, gnet-1.1.8, intltool-0.25 and libxml2-2.5.6
pan will utilize:
gtkspell-2.0.4

Installation of pan

Install pan by running the following commands:

./configure --prefix=/usr &&
make &&
make install


Contents

The pan package contains pan.


Description

pan

pan is the graphical newsreader.


Balsa-2.0.10

Introduction to Balsa

Download location (HTTP):       http://balsa.gnome.org/balsa-2.0.10.tar.bz2
Download location (FTP):        
Version used:                   2.0.10
Package size:                   2.5MB
Estimated Disk space required:  65MB

The Balsa package contains a Gnome 2 based mail reader.

Balsa depends on:
libgtkhtml-2.2.1, libgnome-2.2.0.1, openssl-0.9.7a, 
aspell-0.50.3 and libesmtp-0.8.12
Balsa will utilize:
pcre-4.1.

Installation of Balsa

Install Balsa by running the following commands:

./configure --prefix=$GNOME_PREFIX --with-ssl &&
make &&
make install


Command explanations

--with-ssl : Change the Balsa default of no ssl support.


Configuring Balsa

Configuration Information

All configuration of Balsa is done through the Balsa menu system, with mailbox configuration done with the Settings->Preferences menu.


Contents

The Balsa package contains balsa.


Description

balsa

Balsa is the Gnome 2 based mail reader.


Chapter 42. Multimedia Libraries and Drivers

Many multimedia programs require libraries and/or drivers in order to function properly. The packages in this section fall into this category. Generally you only need to install these if you are installing a program which has the library listed as either a requirement, or as an option to enable it to support certain functionality.


alsa-0.9.2

The first question which people tend to ask about ALSA is why they should use it over the sound drivers included in the kernel - there are several reasons. Firstly, the ALSA drivers support more sound cards than those in the kernel. Secondly, the OSS emulation is in some cases faster and better than the original OSS driver itself. And finally, there are some programs which can use ALSA's enhanced features to better drive the soundcard.

ALSA is also likely to be the future of Linux Sound (hence the name Advanced Linux Sound Architecture), and the ALSA drivers will probably be included into the main linux kernel at some point during the 2.5 development series, leading eventually to ALSA being the "standard" sound drivers into the future 2.6 stable kernel.

The following five sections of the book deal with the five separate components of alsa: the drivers, the libraries, the utilities, the tools and the OSS compatibility libraries.


alsa-driver-0.9.2

Introduction to alsa-driver

Download location (HTTP):       http://www.alsa-project.org/alsa/ftp/driver/alsa-driver-0.9.2.tar.bz2
Download location (FTP):        ftp://ftp.alsa-project.org/pub/driver/alsa-driver-0.9.2.tar.bz2
Version used:                   0.9.2
Package size:                   1.6 MB
Estimated Disk space required:  22 MB (for all drivers)

The alsa-driver package contains the alsa sound drivers. These are the next generation of sound drivers for Linux.


Installation of alsa-driver

Before installing the alsa-drivers note that in your kernel configuration you should have Sound Card Support (CONFIG_SOUND) enabled but nothing else in the Sound menu (with the possible exception of TV Card Mixer support. In particular you should not have OSS Sound Modules enabled as this will cause problems when loading the alsa driver modules.

Install alsa-driver using the following commands as a template:

./configure \
   --with-moddir=/lib/modules/<kernel-version>/kernel/drivers/sound/ \
   --with-kernel=/lib/modules/<kernel-version>/build \
   --with-sequencer=yes \
   --with-oss=yes \
   --with-isapnp=no \
   --with-cards=<soundcards-to-compile> &&
make &&
make install

If this is the first time you have installed the alsa drivers, you will need to create the /dev entries using the script provided in the alsa-driver source tree:
./snddevices


Command explanations

<kernel-version> should be replaced with your kernel version, including any EXTRAVERSION such as -ac1 or -ac2. If you are using a normal kernel tarball, it will simply be the standard number (such as 2.4.19).

--with-sequencer=yes : This tells the alsa-driver package to build the sequencer modules for whichever soundcards you are building for. Most people want them so you will usually want to leave it set to yes.

--with-oss=yes : This tells the package to build the OSS/Free emulation modules. Again, most people want this so it's probably best to stick with yes.

--with-isapnp=no : Most sound cards these days are PCI and so ISA Plug and Play support isn't needed. If you are using an ISA soundcard, it's best to say yes here.

--with-cards=... : You can tell the script just to build the drivers for your particular sound card here. For full information on which drivers are available see ./configure --help. If you aren't sure which chipset your soundcard uses, have a look in CARDS-STATUS in the alsa-driver source tree. If you want to build all drivers (for some reason) then simply leave out the --with-cards statement entirely.


Configuring alsa-driver

Config files

/etc/modules.conf


Configuration Information

To configure the alsa drivers, you need to add some lines to /etc/modules.conf:

cat >> /etc/modules.conf << "EOF"
alias char-major-14 soundcore
alias char-major-116 snd

alias snd-card-0 snd-<soundcard-name>

alias sound-slot-0 snd-card-0

alias sound-service-0-0 snd-mixer-oss
alias sound-service-0-1 snd-seq-oss
alias sound-service-0-3 snd-pcm-oss
alias sound-service-0-8 snd-seq-midi
EOF

<soundcard-name> needs to be replaced with the driver relevant to your soundcard. If you have more than one soundcard, you can add additional sections by repeating the above but changing the first 0 to 1 and so on.

After editing /etc/modules.conf you need to run depmod. If the drivers you have compiled are for the version of the kernel you are currently running, simply run
depmod
If you are compiling drivers for a different kernel version to that which you are running, you will need to use a line along the lines of:
depmod -a 2.4.19 -F /boot/System.map-2.4.19


Contents

The alsa-driver package contains the alsa sound card driversand include files


Description

alsa sound card drivers

These are kernel modules which provide audio and MIDI functionality to the operating system.


include files

These are installed in /usr/include/sound and are required to compile certain packages such as alsa-lib.


alsa-lib-0.9.2

Introduction to alsa-lib

Download location (HTTP):       http://www.alsa-project.org/alsa/ftp/lib/alsa-lib-0.9.2.tar.bz2
Download location (FTP):        ftp://ftp.alsa-project.org/pub/lib/alsa-lib-0.9.2.tar.bz2
Version used:                   0.9.2
Package size:                   485 KB
Estimated Disk space required:  19 MB

The alsa-lib package contains the alsa library. This is used by programs (including alsa-utils) which wish to use the alsa sound interface.

alsa-lib depends on: 
the header files from alsa-driver-0.9.2

Installation of alsa-lib

Install alsa-lib by running the following commands:

./configure &&
make &&
make install


Configuring alsa-lib

Configuration Information

As with most libraries, there is no configuration to do, save that the library directory i.e. /usr/lib or /usr/local/lib should appear in /etc/ld.so.conf so that ldd can find the shared libraries. After checking that this is the case, /sbin/ldconfig should be run while logged in as root.


Contents

The alsa-lib package contains aserver and the alsa library.


Description

aserver

No description is currently available.


libasound (alsa library)

libasound provides alsa functions for application programs.


alsa-utils-0.9.2

Introduction to alsa-utils

Download location (HTTP):       http://www.alsa-project.org/alsa/ftp/utils/alsa-utils-0.9.2.tar.bz2
Download location (FTP):        ftp://ftp.alsa-project.org/pub/utils/alsa-utils-0.9.2.tar.bz2
Version used:                   0.9.2
Package size:                   106 KB
Estimated Disk space required:  1.8 MB

The alsa-utils package contains various utilities which are useful for controlling your sound card.

alsa-utils depends on: 
alsa-lib-0.9.2

Installation of alsa-utils

Install alsa-utils by running the following commands:

./configure &&
make &&
make install


Configuring alsa-utils

Config files

/etc/asound.state


Configuration Information

Probably the easiest way to store mixer levels is to set and retrieve them using a bootscript. It is possible to do this with a post-install line in /etc/modules.conf but this is left as an exercise for those readers who wish to do this.

The alsa-drivers package installs a script as /etc/rc.d/init.d/alsasound. While it is possible to use this script, it contains a lot of extraneous detail which isn't needed on an LFS system and so we create our own script /etc/rc.d/init.d/alsa.

To create the alsa script, do the following:

cat > /etc/rc.d/init.d/alsa << "EOF"
#!/bin/sh
# Begin $rc_base/init.d/alsa

# Based on sysklogd script from LFS-3.1 and earlier.
# Rewritten by Gerard Beekmans  - gerard@linuxfromscratch.org
# ALSA specific parts by Mark Hymers - markh@linuxfromscratch.org
# Stores mixer settings in the default location: /etc/asound.state

source /etc/sysconfig/rc
source $rc_functions

case "$1" in
    start)
        echo "Starting alsa...    Restoring volumes..."
        loadproc /usr/sbin/alsactl restore
        #echo "                    Loading MIDI font..."
        #loadproc sfxload /path/to/soundfont
        ;;

    stop)
        echo "Stopping alsa...    Saving volumes......"
        loadproc /usr/sbin/alsactl store
        #echo "            Removing MIDI font.........."
        #loadproc sfxload -i
        ;;

    restart)
        $0 stop
        /usr/bin/sleep 1
        $0 start
        ;;

    *)
        echo "Usage: $0 {start|stop|restart}"
        exit 1
        ;;

esac

# End $rc_base/init.d/alsa
EOF
chmod 755 /etc/rc.d/init.d/alsa

You can then create the appropriate symlinks:
cd /etc/rc.d/init.d &&
ln -sf ../init.d/alsa ../rc0.d/K35alsa &&
ln -sf ../init.d/alsa ../rc1.d/K35alsa &&
ln -sf ../init.d/alsa ../rc2.d/S40alsa &&
ln -sf ../init.d/alsa ../rc3.d/S40alsa &&
ln -sf ../init.d/alsa ../rc4.d/S40alsa &&
ln -sf ../init.d/alsa ../rc5.d/S40alsa &&
ln -sf ../init.d/alsa ../rc6.d/K35alsa

Note that all channels of your soundcard are muted by default. You can use the alsamixer program from alsa-utils (or any other OSS mixer) to change this.

Also, the first time the above script is run, it will complain that there is no state in /etc/asound.state. You can prevent this by running the following commands after installing alsa-utils:
touch /etc/asound.state &&
alsactl store

A final note is that the lines loading sfxload are commented out. They are there as an example of other things you may wish to do in the startup script. sfxload is a separate package of interest to SoundBlaster AWE and Live! users. It is designed for loading "sound-fonts" (which are used for MIDI output). You may wish to delete these lines and add your own or, if you have the relevant soundcard, install sfxload and uncomment them.


Contents

The alsa-utils package contains aconnect, alsactl, alsamixer, amixer, aplay, arecord and aseqnet.


Description

aconnect

aconnect is a utility for connecting and disconnecting two existing ports in the ALSA sequencer system.


alsactl

alsactl is used to control advanced settings for the ALSA soundcard drivers.


alsamixer

alsamixer is an ncurses-based mixer program for use with the ALSA soundcard drivers.


amixer

amixer allows command-line control of the mixers for the ALSA soundcard drivers.


aplay

aplay is a command-line soundfile player for the ALSA soundcard drivers.


arecord

arecord is a command-line soundfile recorder for the ALSA soundcard drivers.


aseqnet

aseqnet is an ALSA sequencer client which sends and receives event packets over a network.


alsa-tools-0.9.1

Introduction to alsa-tools

Download location (HTTP):       http://www.alsa-project.org/alsa/ftp/tools/alsa-tools-0.9.1.tar.bz2
Download location (FTP):        ftp://ftp.alsa-project.org/pub/tools/alsa-tools-0.9.1.tar.bz2
Version used:                   0.9.1
Package size:                   376 KB
Estimated Disk space required:  6.8 MB (to compile all tools)

The alsa-tools package contains advanced tools for certain soundcards.

alsa-tools depends on: 
alsa-lib-0.9.2

Installation of alsa-tools

The alsa-tools package is only needed by those with advanced requirements for their sound card. The tools are not all built together, instead you need to cd into the directory of each tool you wish to compile and run the following commands:

./configure &&
make &&
make install


Contents

The tools available in this package are ac3dec, as10k1, envy24control, sb16_csp and sbiload.


Description

ac3dec

ac3dec is a free AC-3 stream decoder.


as10k1

as10k1 is an assembler for the emu10k1 DSP chip present in the Creative SB Live, PCI 512, and emu APS sound cards. It is used to make audio effects such as a flanger, chorus or reverb.


envy24control

envy24control is a control tool for Envy24 (ice1712) based soundcards


sb16_csp

sb16_csp is an SB16/AWE32 Creative Signal Processor (ASP/CSP) control program.


sbiload

sbiload is an OPL2/3 FM instrument loader for the ALSA sequencer.


alsa-oss-0.9.1

This section is a placeholder for future releases of alsa in which the oss-compatibility libraries will be used.


Introduction to alsa-oss

Download location (HTTP):       http://www.alsa-project.org/alsa/ftp/oss-lib/alsa-oss-0.9.1.tar.bz2
Download location (FTP):        ftp://ftp.alsa-project.org/pub/oss-lib/alsa-oss-0.9.1.tar.bz2
Version used:                   0.9.1
Package size:                   131 KB
Estimated Disk space required:  1.3 MB

The alsa-oss package contains the alsa oss compatibility library. This is used by programs which wish to use the alsa oss sound interface


Installation of alsa-oss

Install alsa-oss by running the following commands:

./configure &&
make &&
make install


Configuring alsa-oss

Configuration Information

As with most libraries, there is no configuration to do, save that the library directory i.e. /usr/lib or /usr/local/lib should appear in /etc/ld.so.conf so that ldd can find the shared libraries. After checking that this is the case, /sbin/ldconfig should be run while logged in as root.


Contents

The alsa-oss package contains aoss and the alsa oss compatibility library.


Description

aoss

No description is currently available.


libaoss (alsa oss compatibility library)

No description is currently available


aRts-1.1

The Analog Real-time Synthesizer (aRts) provides software that can simulate a complete "modular analog synthesizer" on your computer. It creates sounds and music using small modules like oscillators for creating waveforms, various filters, modules for playing data on your speakers, mixers, and faders. You can build a complete setup with the gui of the system, using the modules - generators, effects and output - connected to each other.

aRts provides necessary libraries for KDE, however it can be installed as a standalone package. The installation instructions for aRts can be found in the arts-1.1 portion of the KDE installation instructions.


audiofile-0.2.3

Introduction to audiofile

Download location (HTTP):       
Download location (FTP):        ftp://oss.sgi.com/projects/audiofile/download/audiofile-0.2.3.tar.gz
Version used:                   0.2.3
Package size:                   332 KB
Estimated Disk space required:  17 MB
Estimated build time:           0.47 SBU

The audiofile package contains the audiofile libraries and two sound file support programs. These are useful to support basic sound file formats.


Installation of audiofile

Install audiofile by running the following commands:

./configure --prefix=/usr &&
make &&
make install


Contents

The audiofile package contains libaudiofile libraries, audiofile-config, sfinfo and sfconvert.


Description

audiofile libraries

The audiofile library is used by programs to support AIFF, AIFF-compressed, SUN/NeXT, WAVE and BICS audio formats.


audiofile-config

The audiofile-config script is used during the compile process by programs linking to this library.


sfinfo

The sfinfo program displays the sound file format, audio encoding, sampling rate and duration for audio formats supported by this library.


sfconvert

The sfconvert program converts sound file formats where the original format and destination format are supported by this library.


esound-0.2.29

Introduction to esound

Download location (HTTP):       http://ftp.gnome.org/pub/GNOME/sources/esound/0.2/esound-0.2.29.tar.bz2
Download location (FTP):        ftp://ftp.gnome.org/pub/GNOME/sources/esound/0.2/esound-0.2.29.tar.bz2
Version used:                   0.2.29
Package size:                   348 KB
Estimated Disk space required:  2.3 MB
Estimated build time:           0.17 SBU

The esound package contains Enlightened Sound Daemon. This is useful for mixing together several digitized audio streams for playback by a single device.

esound depends on:
audiofile-0.2.3

Installation of esound

Install esound by running the following commands:

./configure --prefix=/usr --sysconfdir=/etc &&
make &&
make install


Command explanations

--sysconfdir=/etc : This command put esounds configuration files in /etc instead of /use/etc.


Configuring esound

Config files

/etc/esd.conf


Configuration Information

Instructions and information about the configuration file is located in the TIPS file in the esound source directory.


Contents

The esound package contains esd, esdcat, esdctl, esdloop, esdmon, esdrec, esdsample and libesd libraries.


Description

esd

esd is the Enlightened Sound Daemon.


esdcat

esdcat plays a raw audio stream through the daemon.


esdctl

esdctl controls certain aspects of the sound daemon.


esdloop

esdloop is test scaffolding for sample cache, loop, and free.


esdmon

esdmon outputs the mixed stream from the daemon.


esdrec

esdrec outputs from the sound device's current input.


esdsample

esdsample is test scaffolding for sample cache, play back, and free.


esd libraries

esd libraries contain the functions used by esd.


SDL-1.2.5

Introduction to SDL

Download location (HTTP):       http://www.libsdl.org/release/SDL-1.2.5.tar.gz
Download location (FTP):        
Version used:                   1.2.5
Package size:                   1.8 MB
Estimated Disk space required:  14 MB

The Simple DirectMedia Layer (SDL for short) is a cross-platform library designed to make it easy to write multimedia software, such as games and emulators.

SDL will utilize:
oss, alsa-0.9.2, esound-0.2.29, arts-1.1, nas-1.6, nasm, 
xfree86-4.3.0,  aalib-1.4rc4 and DirectFB

Installation of SDL

Install SDL by running the following commands:

./configure --prefix=/usr --disable-debug &&
make &&
make install


Command explanations

--disable-debug : This switch configures SDL to build with aggressive optimizations.

--enable-video-aalib : This optional switch is required to build SDL with AAlib video support.


Configuring SDL

Configuration Information

As with most libraries, there is no configuration to do, save that the library directory i.e. /usr/lib or /usr/local/lib should appear in /etc/ld.so.conf so that ldd can find the shared libraries. After checking that this is the case, /sbin/ldconfig should be run while logged in as root.


Contents

The SDL package contains the Simple DirectMedia Layer.


Description

Simple DirectMedia Layer

The Simple DirectMedia Layer is a generic API that provides low level access to audio, keyboard, mouse, joystick, 3D hardware via OpenGL, and 2D framebuffer across multiple platforms.


libao-0.8.3

Introduction to libao

Download location (HTTP):       http://fatpipe.vorbis.com/files/1.0/unix/libao-0.8.3.tar.gz
Download location (FTP):        
Version used:                   0.8.3
Package size:                   212 KB
Estimated Disk space required:  1.7 MB

The libao package contains a cross-platform audio library. This is useful to output audio on a wide variety of platforms. It currently supports WAV files, OSS (Open Sound System), ESD (Enlighten Sound Daemon) and ALSA (Advanced Linux Sound Architecture).


Installation of libao

Install libao by running the following commands:

./configure --prefix=/usr &&
make &&
make install


Contents

The libao package contains libao libraries.


Description

ao libraries

libao provides functions for programs wishing to output sound over supported platforms.


libogg-1.0

Introduction to libogg

Download location (HTTP):       http://fatpipe.vorbis.com/files/1.0/unix/libogg-1.0.tar.gz
Download location (FTP):        
Version used:                   1.0
Package size:                   224 KB
Estimated Disk space required:  1.6 MB
Estimated build time:           0.03 SBU

The libogg package contains the ogg file structure. This is useful for creating (encoding) or playing (decoding) a single physical bitstream.


Installation of libogg

Install libogg by running the following commands:

./configure --prefix=/usr &&
make &&
make install 


Contents

The libogg package contains libogg libraries.


Description

ogg libraries

libogg provides the functions for programs wishing to read or write ogg formatted bitstreams.


libvorbis-1.0

Introduction to libvorbis

Download location (HTTP):       http://fatpipe.vorbis.com/files/1.0/unix/libvorbis-1.0.tar.gz
Download location (FTP):        
Version used:                   1.0
Package size:                   736 KB
Estimated Disk space required:  24 MB
Estimated build time:           0.57 SBU

The libvorbis package contains a general purpose audio and music encoding format. This is useful for creating (encoding) and playing (decoding) sound in a public domain format.

libvorbis depends on:
libogg-1.0

Installation of libvorbis

Install libvorbis by running the following commands:

./configure --prefix=/usr &&
make &&
make install 

libvorbis is known to cause compiler errors on certain machines. If you get errors, try these commands to install libvorbis:

./configure --prefix=/usr &&
cd lib &&
cp Makefile Makefile.bak &&
sed s/-mno-ieee-fp// Makefile.bak > Makefile &&
cd .. &&
make &&
make install


Contents

The libvorbis package contains libvorbis libraries.


Description

vorbis libraries

libvorbis provides the functions to read and write sound files.


nas-1.6

Introduction to nas

Download location (HTTP):       http://radscan.com/nas/nas-1.6.src.tar.gz
Download location (FTP):        
Version used:                   1.6
Package size:                   2 MB
Estimated Disk space required:  12 MB

The Network Audio System is a network transparent, client/server audio transport system. It can be described as the audio equivalent of an X server.

Download the nas patch from http://downloads.linuxfromscratch.org/blfs-patches.


Installation of nas

Install nas by running the following commands:

xmkmf &&
make Makefiles &&
make includes &&
make depend &&
make &&
make INCROOT=/usr/include USRLIBDIR=/usr/lib \
MANPATH=/usr/share/man BINDIR=/usr/bin \
LIBDIR=/usr/lib/X11 CONFIGDIR=/usr/X11R6/lib/X11/config \
install install.man


Command explanations

xmkmf... : Compile using the standard way for compiling X based apps.

make INCROOT=... : Install with /usr prefix instead of the default /usr/X11R6. Also install man pages.


Configuring nas

Configuration Information

As with most libraries, there is no configuration to do, save that the library directory i.e. /usr/lib or /usr/local/lib should appear in /etc/ld.so.conf so that ldd can find the shared libraries. After checking that this is the case, /sbin/ldconfig should be run while logged in as root.


Contents

The nas package contains nas utils, headers and libraries.


Chapter 43. Audio utilities

This chapter contains programs involved with audio file manipulation; that is to say playing, recording, ripping and the other common things which people want to do. To use much of this software, you will require either the kernel sound drivers installed, or alsa-0.9.2 installed. Note that in the 2.5 kernel development tree, the old drivers are being replaced with ALSA and so when the stable 2.6 series arrives; most people will be using it by default.


mpg123-0.59r

Introduction to mpg123

Download location (HTTP):       http://www.mpg123.de/mpg123/mpg123-0.59r.tar.gz
Download location (FTP):        
Version used:                   0.59r
Package size:                   155 KB
Estimated Disk space required:  1.3 MB

The mpg123 package contains a console-based mp3-player. It claims to be the fastest mp3-decoder for unix.

mpg123 depends on:
oss or alsa-oss-0.9.1

Installation of mpg123

Install mpg123 by running the following commands:

make PREFIX=/usr linux &&
make PREFIX=/usr install

You can optimize the build of mpg123 for your processor. To do this, type

make linux-help

and select the optimization appropriate for your machine. However, this may not always work. There have been problems reported with using optimizations with mpg123; make PREFIX=/usr linux always seems to work.


Command explanations

make linux : This command builds mpg123 for linux.

make linux-help : This command lists all build-options for mpg123.

make install : This command installs mpg123 in /usr/local/bin.


Contents

The mpg123 package contains mpg123.


Description

mpg123

mpg123 is used for playing mp3 files via the console.


vorbistools-1.0

Introduction to vorbis-tools

Download location (HTTP):       http://fatpipe.vorbis.com/files/1.0/unix/vorbis-tools-1.0.tar.gz
Download location (FTP):        
Version used:                   1.0
Package size:                   420 KB
Estimated Disk space required:  3 MB
Estimated build time:           0.12 SBU

The vorbis-tools package contains command line tools for ogg audio files. This is useful for encoding, playing or editing files using the ogg CODEX.

vorbis-tools depends on:
curl-7.10.4, libao-0.8.3, libogg-1.0 and libvorbis-1.0

Installation of vorbis-tools

Install vorbis-tools by running the following commands:

./configure --prefix=/usr &&
make &&
make install 


Contents

The vorbis-tools package contains oggdec, oggenc, ogg123, vcut and vorbiscomment.


Description

oggdec

oggdec is a simple decoder which converts Ogg Vorbis file into PCM audio files (WAV or RAW).


oggenc

oggenc is the encoder that turns raw, WAV or AIFF files into an Ogg Vorbis stream.


ogg123

ogg123 is a command line audio player for Ogg Vorbis streams.


ogginfo

ogginfo prints information stored in the audio file.


vcut

vcut will split a file into two files at a designated cut point.


vorbiscomment

vorbiscomment is an editor that changes information in the audio file metadata tags.


xmms-1.2.7

Introduction to XMMS

Download location (HTTP):       http://www.xmms.org/files/1.2.x/xmms-1.2.7.tar.bz2
Download location (FTP):        ftp://ftp.xmms.org/xmms/1.2.x/xmms-1.2.7.tar.bz2
Version used:                   1.2.7
Package size:                   11 MB
Estimated Disk space required:  17 MB

XMMS is an audio player for the X Window System.

XMMS depends on:
a working soundcard, xfree86-4.3.0, GTK+-1.2.10 and GLib-1.2.10
XMMS will utilize:
esound-0.2.29, gnome-libs-1.4.2, gnome-applets, libmikmod, 
libogg-1.0, libvorbis-1.0 and libxml-1.8.17

Installation of XMMS

Install XMMS by running the following commands:

./configure --prefix=/usr \
--enable-one-plugin-dir &&
make &&
make install


Command explanations

./configure --prefix=/usr \
--enable-one-plugin-dir &&
This command ensures that all plugins are located under /usr/lib/xmms/Plugins.


Configuring xmms

Config files

~/.xmms/config


Configuration Information

When you start XMMS for the first time, you can configure it with CTRL+P Note that you can extend XMMS' functionality with plugins and skins. You can find these at http://xmms.org.


Contents

The xmms package contains xmms, xmms-config, gnomexmss and wmxmms.


Description

xmms

XMMS, which stands for X Multimedia System, is a program comparable in function with WinAMP. It's main function is playing audio files like wav and mp3. It can be extended with plugins to play a number of other audio or video formats. It's look can be customized with WinAMP style skins.


xmms-config

This script is used by other programs which need to link with xmms to retrieve the library and include paths XMMS was compiled with.


gnomexmms

This is an applet for the GNOME desktop environment that will dock into the GNOME panel. From the applet you can start and control xmms.


wmxmms

wmxmms is a dock applet for the Window Maker window manager. From the applet you ca start and control xmms.


lame-3.93.1

Introduction to lame

Download location (HTTP):       http://telia.dl.sourceforge.net/sourceforge/lame/lame-3.93.1.tar.gz
Download location (FTP):        
Version used:                   3.93.1
Package size:                   1 MB
Estimated Disk space required:  7.1 MB
Estimated build time:           0.93 SBU

The lame package contains a MP3 encoder. This is useful for creating compressed audio files.


Installation of lame

Install lame by running the following commands:

./configure --prefix=/usr --mandir=/usr/share/man --with-gtk-prefix=/usr &&
make &&
make install


Command explanations

--with-gtk-prefix=/usr : This switch directs configure to gtk-config.


Contents

The lame package contains lame and libmp3lame libraries.


Description

lame

lame creates mp3 audio files.


libmp3lame libraries

libmp3lame libraries provide the functions necessary to convert WAV files to MP3 files.


CDParanoia-III-9.8

Introduction to CDParanoia

Download location (HTTP):       http://www.xiph.org/paranoia/download/cdparanoia-III-alpha9.8.src.tgz
Download location (FTP):        
Version used:                   III-9.8
Package size:                   114 KB
Estimated Disk space required:  1.3 MB

The CDParanoia package contains cdparanoia. This is useful for extracting wave files from audio cd's. A CDDA capable CDROM drive is needed. Practically all drives supported by Linux can be used.


Installation of CDParanoia

Install CDParanoia by running the following commands:

./configure --prefix=/usr &&
make &&
make install


Configuring CDParanoia

Configuration Information

CDParanoia itself needs little configuration; information can be found from the man page.

As with most libraries, there is no configuration to do, save that the library directory i.e. /usr/lib or /usr/local/lib should appear in /etc/ld.so.conf so that ldd can find the shared libraries. After checking that this is the case, /sbin/ldconfig should be run while logged in as root.


Contents

The CDParanoia package contains cdparanoia and the libcdda libraries.


Description

cdparanoia

This is used for 'ripping' an audio-cd. Ripping is the process of digitally extracting music from an audio-cd.


libcdda library

No description is currently available.


Chapter 44. Video utilities

xvid-0.9.1

Introduction to Xvid

Download location (HTTP):       http://files.xvid.org/downloads/xvidcore-0.9.1.tar.bz2
Download location (FTP):        
Version used:                   0.9.1
Package size:                   464 KB
Estimated Disk space required:  3.9 MB
Estimated build time:           0.55 SBU

Xvid is a mpeg4-compliant video codec.

Xvid will utilize:
nasm

Installation of Xvid

Install Xvid by running the following commands:

cd build/generic &&
./configure --prefix=/usr &&
make  &&
make install &&
cp ../../src/divx4.h /usr/include


Command explanations

cp ../../src/divx4.h /usr/include : This command puts this header files in the header search path in order for xine and mplayer to locate this package.


Contents

The Xvid core package contains the library libxvidcore and the appendant header files. The library itself provides functions to encode and decode most mpeg4 video data.

Following features of mpeg4 are supported:

I, P Frame encoding

I-Frames are image frames, while P-Frames are Pattern Frames. Image Frames contain full images. P-Frames contain patterns of what changes in the image, thusly saving a lot of space.

PMVFast and EPZS with diamond a sqare pattern motion estimation

Fast Motion detection that can refer a square or diamond shaped pattern to different directions.

inter4v mode

Fast interpolation ability.

fullpixel and halfpixel precision

Even halfpixel movements can be encoded. Better precision results in better compression at better quality.

both MPEG4 and H263 quantizations

MPEG4 is the standard DivX was derived from. H263 is a slightly changed subset of that standard made by Microsoft. Quantization means to map the quantity of color values to numbers.

custom quant matrices

The quantization can be done using custom matrices, possibly giving better results if the matrix is made to suit the video data. Every normal user should be fine with the default matrix that comes with Xvid.

Adaptive quantization / Luminance masking

Qantization and Luminance masking are variant, depending on the input material, therefore providing better results on dark or very contrasting images.


ffmpeg-0.4.6

Introduction to ffmpeg

Download location (HTTP):       http://telia.dl.sourceforge.net/sourceforge/ffmpeg/ffmpeg-0.4.6.tar.gz
Download location (FTP):        
Version used:                   0.4.6
Package size:                   664 KB
Estimated Disk space required:  20.6 MB
Estimated build time            3.32 SBU

ffmpeg is a solution to record, convert and stream audio and video. Due to heavy development, not all of this functions will work.

ffmpeg will utilize:
libvorbis-1.0, lame-3.93.1 and Imlib2

Installation of ffmpeg

Install ffmpeg by running the following commands:

Note: The package maintaners recommend compiling without any optimizations.

./configure --prefix=/usr &&
make &&
make install


Configuring ffmpeg

Config files

~/.ffmpeg/ffserver-config

You'll find a sample ffserver configuration file here


Contents

The ffmpeg package contains ffmpeg, ffserver, libavcodec libraries and libavformat libraries.


Description

ffmpeg

ffmpeg is a command line tool to convert video files, network streams, input from a TV card to several video formats.


ffserver

ffserver is a streaming server for everything that ffmpeg could use as input (files, streams, TV card input, webcam, etc.).


libavcodec/libavformat

libavcodec and libavformats are libraries for encoding/decoding video streams and putting them into files or network packets. Since they're well documented, you can easily include them in your software, like some other packages already do.


avifile-0.7.34

Introduction to avifile

Download location (HTTP):       http://avifile.sourceforge.net/avifile-0.7.34-20030319.tgz
Download location (FTP):        
Version used:                   0.7.34
Package size:                   2.7 MB
Estimated Disk space required:  26.6 MB
Additional downloads:
http://avifile.sourceforge.net/binaries-011002.tgz

The avifile package contains an AVI video file player, tools and support libraries. This is useful for viewing and editing AVI files.

avifile depends on:
x86 processor, xfree86-4.3.0, libjpeg-6b and SDL-1.2.5
avifile will utilize:
qt (< 3.1.0), oss, ffmpeg-0.4.6 and xvid-0.9.1

Installation of avifile

Install avifile by running the following commands:

install -d /usr/lib/win32 &&
tar -xzvf ../binaries-011002.tgz -C /usr/lib &&
./configure --prefix=/usr &&
make &&
make install


Contents

The avifile package contains aviplay, avibench, avifile-config, mmxnow-config, avirecompress, avicap, avirec, kv4lsetup, avicat, avitype and avimake.


Description

aviplay

aviplay manages the input formats, the codecs and the output formats to display AVI video files on your screen.


avibench

avibench performs a measurement of the avifile library's performance for a file.


avifile-config

avifile-config is run by configure for programs wishing to link to the avifile library.


mmxnow-config

mmxnow-config is run by configure for programs wishing to link to the mmxnow library.


avirecompress

avirecompress is a widget that takes an input file of one codec type and converts it into a video file of another codec.


avicap

avicap is a widget that displays acquired video fro a Video For Windows (vfw) compatible device, like a webcam or a TV-tuner.


avirec

avirec is a command line video recording tool.


kv4lsetup

kv4lsetup is a small tool which tells video4linux about the current video mode


avicat

avicat takes a set of AVI files and combines them into a single file.


avitype

avitype will read and display AVI file header information.


avimake

avimake takes a set of JPG images and creates a movie.


MPlayer-0.90

Introduction to MPlayer

Download location (HTTP):       http://ftp.lug.udel.edu/MPlayer/releases/MPlayer-0.90.tar.bz2
Download location (FTP):        ftp://ftp.lug.udel.edu/MPlayer/releases/MPlayer-0.90.tar.bz2
Version used:                   0.90
Package size:                   3.3 MB
Estimated Disk space required:  44 MB
Estimated build time:           6.91 SBU
Additional downloads:
Win32 codecs
Fonts for OSD
Default Skin
QuickTime 5 codecs
QuickTime 6 codecs
QuickTime extra codecs
RealPlayer 9 codecs

The MPlayer package contains an audio/video player that is able to play almost every audio and video codec and can be controlled by command line or GUI.

MPlayer depends on:
xfree86-4.3.0 or DirectFB, GTK+-1.2.10 and libvorbis-1.0
MPlayer will utilize:
freetype-2.1.3, libpng-1.2.5, libjpeg-6b, libungif-4.1.0b1, 
aalib-1.4rc4, SDL-1.2.5, ffmpeg-0.4.6, xvid-0.9.1, 
oss, arts-1.1, alsa-0.9.2, LZO, 
libdvdnav, MAD, and CDParanoia-III-9.8

Installation of MPlayer

The extra downloads should be located in your source directory with the bzip2 files decompressed.

Note: The package maintainers recommend building without any optimization

Install MPlayer by running the following commands:

install -d /usr/lib/win32 &&
tar -xvf ../win32codecs.tar -C /usr/lib/win32 &&
tar -xvf ../qt5dlls.tar -C /usr/lib/win32 &&
tar -xvf ../qt6dlls.tar -C /usr/lib/win32 &&
tar -xvf ../qtextras.tar -C /usr/lib/win32 &&
tar -xvf ../rp9codecs.tar -C /usr/lib/win32 &&
./configure --prefix=/usr --confdir=/etc/mplayer --enable-largefiles \
--enable-gui --enable-menu --enable-new-conf --enable-qtx-codecs \
--enable-vorbis --with-reallibdir=/usr/lib/win32/rp9codecs \
--enable-freetype --enable-shared-pp &&
make &&
make install

Each user of MPlayer should complete the install by running the following commands:
mkdir ~/.mplayer &&
cp etc/codecs.conf ~/.mplayer &&
cp etc/example.conf ~/.mplayer/example.conf


Installing the prerendered Fonts

If freetype is in use, the only advantage of prerendered fonts is that they are faster. Install them like this:

install -d /usr/share/mplayer/font &&
tar -xvf ../font-arial-iso-8859-1.tar -C /usr/share/mplayer/font &&
for i in /usr/share/mplayer/font/font-arial-<size>*
do ln -s $i /usr/share/mplayer/font; done

Replace <size> with either 14, 18, 24 or 28.


Installation for DVD playback

If you want DVD playback with MPlayer, you need to make a link from your DVD drive to /dev/dvd:

ln -s /dev/<dvd drive> /dev/dvd

replace <dvd drive> with whatever device is appropriate, for example /dev/hdc. if you don't know which device to choose, type:

dmesg | grep DVD

It should result in an output like:

hdc: Pioneer DVD-ROM ATAPIModel DVD-114 0110,
ATAPI CD/DVD-ROM drive

If you have SCSI-Emulation activated for the drives, you'll need to get the right SCSI-device. Every CD/DVD-ROM drive is mapped in the same order as in IDE to the devices named /dev/scd0, /dev/scd1 and so on.


Command explanations

--enable-freetype : This switch tells MPlayer to utilize freetype fonts instead of the fonts provided by mplayer.

--enable-gui : This switch tells MPlayer to compile the gui code.

--enable-menu --enable-new-conf : These switches enable the new menu support. It's like an OSD, but you can also run a shell with it.

--enable-shared-pp : This enables the building of a shared libpostproc (library for post processing, featuring filters like sharpen).

cp etc/codecs.conf ~/.mplayer : This command copies the standard codecs.conf file to the user. MPlayer expects this file at startup.

cp etc/example.conf ~/.mplayer : This command copies the self documented configuration file to the user. We will create an new config file if you installed the gui or you can copy this file to config and edit it for your situation.


Configuring mplayer

Config files

~/.mplayer/config, ~/.mplayer/codec.conf


Configuration Information

If you wish to utilize a freetype font, you need to link a TTF file to your ~/.mplayer directory. For example:
ln -sf /usr/X11R6/lib/X11/fonts/TTF/luxisri.ttf ~/.mplayer/subfont.ttf
otherwise
ln -sf /usr/share/mplayer/font/iso-8859-1/arial-14 ~/.mplayer/font
where 14 is the font size. You can chose your font size of 14, 18, 24 or 28.

Set up the GUI with the following commands executed from your source directory:

cat > ~/.mplayer/config << "EOF"
gui = yes
skin = default
EOF
mkdir ~/.mplayer/Skin &&
tar -xvf ../default.tar -C ~/.mplayer/Skin

The first line, gui = yes, will make MPlayer start in gui mode automatically. If you want to decide whether to start in gui mode or not, leave that line out and start mplayer with -gui or as gmplayer (e.g. when starting from a Window Manager menu or command prompt).


Contents

The mplayer package contains mplayer, gmplayer and mencoder.


Description

mplayer

mplayer manages the input formats, the codecs and the output formats to play video files, DVDs, (S)VCDs or network streams containing audio and/or video informations on your system.

Examples:

mplayer -fs blfs.avi
mplayer -vo fbdev -fb /dev/fb0 -dvd 1 -aid 128 -sub en -framedrop
mplayer -fs -vcd 1; # works both for VCDs and SVCDs
mplayer http://www.students.uni-marburg.de/~Klossa/hapkidofight_lo.mpg

For further information, have a look at the very good documentation included in the package in the subdirectory DOCS/.


gmplayer

gmplayer is MPlayer with a graphical user interface.


mencoder

mencoder is used to encode any MPlayer-playable movie to DivX4, XviD or any codec in libavcodec with PCM/MP3/VBRMP3 audio.

Example:

rm frameno.avi
mencoder -dvd 1 -aid 128 -ovc frameno -oac mp3lame \
-lameopts vbr=3 -o frameno.avi

# mencoder should output bitrates for average encodings
# now, choose one you like best! In the following lines,
# replace <bitrate> and <name.avi> with statements of your
# personal liking.

mencoder -dvd 1 -aid 128 -oac copy -ovc lavc \
-lavcopts vcodec=mpeg4:vpass=1:vhq:vbitrate=<bitrate> -o <name.avi>
mencoder -dvd 1 -aid 128 -oac copy -ovc lavc \
-lavcopts vcodec=mpeg4:vpass=2:vhq:vbitrate=<bitrate> -o <name.avi>
mencoder -forceidx <name.avi>


xine-lib-1-beta9

Introduction to xine-lib

Download location (HTTP):       http://telia.dl.sourceforge.net/sourceforge/xine/xine-lib-1-beta9.tar.gz
Download location (FTP):        
Version used:                   1-beta9
Package size:                   3.7 MB
Estimated Disk space required:  39.5 MB
Estimated build time:           6.95 SBU

The xine-lib package contains xine libraries. These are useful for interfacing with external plug-ins that allow the flow of information from the source to the screen and speakers.

xine-lib depends on:
xfree86-4.3.0 and esound-0.2.29 or oss or alsa-0.9.2 or arts-1.1
xine-lib will utilize:
aalib-1.4rc4, SDL-1.2.5, DirectFB, DXR3, FLAC, FAME, 
libogg-1.0, libvorbis-1.0, ffmpeg-0.4.6, and xvid-0.9.1

Installation of xine-lib

Install xine-lib by running the following commands:

./configure --prefix=/usr &&
make &&
make install


Contents

The xine-lib package contains xine-config and libxine libraries.


Description

xine-config

xine-config provides information to programs trying to link with the xine libraries.


xine libraries

xine libraries provide the API for processing video files.


xine-ui-0.9.19

Introduction to xine-ui

Download location (HTTP):       http://telia.dl.sourceforge.net/sourceforge/xine/xine-ui-0.9.19.tar.gz
Download location (FTP):        
Version used:                   0.9.19
Package size:                   2.4 MB
Estimated Disk space required:  14.4 MB
Estimated build time:           1.78 SBU

The xine-ui package contains a user interface for xine. This is useful for controlling the operations of your movie.

xine-ui depends on:
xine-lib-1-beta9
xine-ui will utilize:
curl-7.10.4, aalib-1.4rc4 and libpng-1.2.5

Installation of xine-ui

Install xine-ui by running the following commands:

./configure --prefix=/usr &&
make &&
make install


Configuring xine-ui

Config files

~/.xine/config


Configuration Information

The above file is created and maintainable through the xine setup dialog box. The documentation for the configuration settings is located at /usr/share/doc/xine-ui/README.config_en.


Contents

The xine-ui package contains xine, xine-check and xine-remote.


Description

xine

xine plays MPEG streams (audio and video), mpeg elementary streams (mp3), mpeg transport streams, ogg files, avi files, asf files, some quicktime files, VCD's and DVD's (non-encrypted).


xine-check

xine-check tests the xine video player installation for common problems.


xine-remote

xine-remote is a tool to connect to a xine remote control server.


transcode-0.6.2

Introduction to transcode

Download location (HTTP):       http://www.theorie.physik.uni-goettingen.de/~ostreich/transcode/
Version used:                   0.6.2
Package size:                   2.3 MB
Estimated Disk space required:  89.3 MB

transcode is a fast versatile command line based audio/video everything to everything converter.

transcode will utilize:
xfree86-4.3.0, MPlayer-0.90 (libpostproc), ImageMagick, libdv,
SDL-1.2.5, qt-3.1.2, avifile-0.7.34, lame-3.93.1, FAME,
 xvid-0.9.1, LZO, ffmpeg-0.4.6, libdvdnav/read, 
MAD, curl-7.10.4 and libogg-1.0

Installation of transcode

Everything that can be utilized by transcode should be installed first.


Installing transcode

Install transcode by running the following commands:

./configure --prefix=/usr --with-ogg --with-vorbis\
--with-libfame --with-lame --with-avifile \
--with-libpostproc-builddir=/usr/src/MPlayer-0.90 &&
make &&
make install


Command explanations

--prefix=/usr : This switch tells transcode where to install binaries, libraries and other files.

--with-... : This switches are used to tell transcode which additional libraries to use.


Contents

The transcode package contains transcode, tccat, tcdecode, tcdemux, tcextract, tcframe, tcprobe, tcscan, avicodec, avidump, avimerge, avisplit, avisync and a merry lot of input/filter/output modules.


Description

transcode

transcode is the encoder's user interface that handles the plugins and other programs, being the glue between the modules. There are several well documented usage examples on either the homepage or the documentation included in the package.


tccat

tccat concatenates input files using the input plugins of transcode.


tcdecode

tcdecode is used to decode input files to raw video and pcm audio stream.


tcdemux

tcdemux demultiplexes audio/video input that contains multiple streams, e.g. VOB-files.


tcextract

tcextract grabs single streams from a file containing multiple streams.


tcframe

tcframe processes single video frames for different color encodings (RGB >-< YUV or similar).


tcprobe

tcprobe prints information about the input file format.


tcscan

tcscan performs several measurements on the given input data.


avicodec

avicodec indicates or changes FOURCC codec flag in an .avi file.


avidump

avidump dumps audio or video stream of an given avifile to stdout (for avi conversion or extraction of audio streams).


avimerge

avimerge merges avi files of the same format. Do not try to merge avi files of different formats, it will most likely result in errors (and format means same bitrates, too!).


avisplit

avisplit splits avi files into multiple files.


avisync

avisync can shift audio in avi files for better synchronizing of audio and video data signal.


input/filter/output modules

Depending on the external libraries that are used, there are a great number of plugins to convert audio and video input to raw format, process raw video and audio and convert raw audio and video to other formats to be written into a filetype of choice. Read the documentation.


Chapter 45. CD-Writing utilities

This chapter contains information on CD-writing in Linux. You will first have to configure your kernel for cd-writing. We start by discussing how to do this, then discuss installing the actual utilities.

Additional sources of information on CD-writing include:


Configuring your kernel for CD-Writing

In the kernel configuration, check your settings with those listed below for your CD-ROM interface type:

SCSI CD-writer:

SCSI support menu
  SCSI support:           Y or M
  SCSI CD-ROM support:    Y or M
  SCSI generic support:   Y or M
  Vendor-specific extensions:  [1]
Also include the low-level driver for your SCSI card if
applicable.

IDE CD-writer:

ATA/IDE/MFM/RLL support menu
  IDE/ATAPI CDROM support:     N
  SCSI emulation support: Y or M
SCSI support menu
  SCSI support:           Y or M
  SCSI CD-ROM support:    Y or M
  SCSI generic support:   Y or M
  Vendor-specific extensions:  [1]

[1] Read the help to determine if this selection is applicable for your hardware.

If necessary, recompile the kernel with
make dep &&
make bzImage&&
make modules &&
make modules_install

Copy /usr/src/linux/arch/i386/boot/bzImage and /usr/src/linux/System.map to /boot, edit /etc/lilo.conf appropriately and run lilo.

For more information about these settings and the drivers they install, read The Linux 2.4 SCSI subsystem HOWTO.


cdrtools-2.0

Introduction to cdrtools

Download location (HTTP):       
Download location (FTP):        ftp://ftp.berlios.de/pub/cdrecord/cdrtools-2.0.tar.gz
Version used:                   2.0
Package size:                   1.6 MB
Estimated Disk space required:  15.5 MB

The cdrtools package contains cd recording utilities. These are useful for reading, creating or writing (burning) Compact Discs.


Installation of cdrtools

Install cdrtools by running the following commands:

make INS_BASE=/usr DEFINSUSR=root DEFINSGRP=root &&
make INS_BASE=/usr DEFINSUSR=root DEFINSGRP=root install


Command explanations

INS_BASE=/usr : This command moves the install directory from /opt/schily to /usr .

DEFINSUSR=root DEFINSGRP=root : These commands install all programs with root.root ownership instead of the default bin.bin.


Contents

The cdrtools package contains cdrecord, cdda2wav, mkisofs, readcd, scgcheck, isoinfo, isodump, isovfy, devdump, rscsi and support libraries.


Description

cdrecord

cdrecord records audio or data Compact Discs.


cdda2wav

cdda2wav dumps Compact Disc audio into wav sound files.


mkisofs

mkisofs and mkhybrid generates an ISO9660/JOLIET/HFS hybrid filesystem.


readcd

readcd reads or writes Compact Discs.


scgcheck

scgcheck is used to check and verify the Application Binary Interface of libscg.


support utilities

isoinfo, isodump, isovfy and devdump are utility programs for dumping and verifying iso9660 images.


rscsi

rscsi is a remote scsi manager.


support libraries

libdeflt, libfile, libhfs, librscg, libscg, libschily and libunls are the support libraries for this package.


cdrdao-1.1.7

Introduction to cdrdao

Download location (HTTP):       http://telia.dl.sourceforge.net/sourceforge/cdrdao/cdrdao-1.1.7.src.tar.bz2
Download location (FTP):        
Version used:                   1.1.7
Package size:                   1.1 MB
Estimated Disk space required:  15.9 MB

The cdrdao package contains cd recording utilities. These are useful for burning a CD in disk-at-once mode.

cdrdao will utilize:
lame-3.93.1
cdrdao will utilize to build gui interface:
GTK+-1.2.10 and gnome-libs-1.4.2

Installation of cdrdao

Install cdrdao by running the following commands:

./configure --prefix=/usr &&
make &&
make install 


Contents

The cdrdao package contains cdrdao.


Description

cdrdao

cdrdao records audio or data CD-Rs in disk-at-once (DAO) mode based on a textual description of the CD contents.

XIII. Printing, Scanning and Typesetting


Chapter 46. Printing

cups-1.1.18

Introduction to CUPS

Download location (HTTP):       http://www.cups.org/software.html
Download location (FTP):        ftp://ftp.easysw.com/pub/cups/1.1.18/cups-1.1.18-source.tar.bz2
Version used:                   1.1.18
Package size:                   3.3 MB
Estimated Disk space required:  21 MB

The Common UNIX Printing System ("CUPS") is a print spooler and associated utilities. It is based on the "Internet Printing Protocol" and provides printing services to most PostScript and raster printers.

CUPS depends on:
GhostScript-7.05.5 (for non-postscript printers)
CUPS will utilize:
libjpeg-6b, libpng-1.2.5 and libtiff-3.5.7

Installation of CUPS

Install CUPS by running the following commands:

./configure &&
make &&
make install


Installation command explanations

The basic default behavior of the installation is appropriate for LFS systems. CUPS files are placed in /usr/bin, /usr/sbin, /var and /etc/cups.


CUPS Configuration

Configuration of CUPS is dependent on the type of printer and can be complex. Generally, postscript printers are easier. For detailed instructions on configuration and use of CUPS, see http://www.cups.org/documentation.php. The Software Administrators Manual and Software Users Manual are particularly useful.

During the install, cups created the startup file /etc/rc.d/init.d/cups. The file works, but you may want to change it to a more conventional LFS startup file:

cat > /etc/rc.d/init.d/cups << "EOF"

#!/bin/sh
# Begin $rc_base/init.d/cups

# Start or stop the CUPS server based upon the first argument to the script.

source /etc/sysconfig/rc
source $rc_functions

case $1 in
    start)
           echo "Starting CUPS Printserver..."
           loadproc /usr/sbin/cupsd
           ;;
    stop)
           echo "Stopping CUPS Printserver..."
           killproc cupsd
           ;;

    reload)
           echo "Reloading CUPS Printserver..."
           reloadproc /usr/sbin/cupsd
           ;;

    restart)
           $0 stop
           sleep 1
           $0 start
           ;;

    status)
           statusproc cupsd
           ;;

    *)
           echo "Usage: $0 {start|stop|reload|restart|status}"
           exit 1
           ;;
esac

# End $rc_base/init.d/cups startup script.
EOF

The CUPS install also copies the initialization script to the /etc/rc.d/rc{0,2,3,5} directories. You may want to delete those files and add symbolic links to /etc/rc.d/init.d/cups.


Contents

CUPS provides:

/usr/sbin/lpc - line printer control program

/usr/sbin/cupsd - common unix printing system daemon

/usr/sbin/accept - accept jobs sent to a destination

/usr/sbin/reject - reject jobs sent to a destination

/usr/sbin/cupsaddsmb - export printers to samba for windows clients

/usr/sbin/lpadmin - configure cups printers and classes

/usr/sbin/lpinfo - show available devices or drivers

/usr/sbin/lpmove - move a job to a new destination

/usr/sbin/cupstestppd - test conformance of ppd files

/usr/bin/lpq - show printer queue status

/usr/bin/lpr - print files

/usr/bin/lprm - cancel print jobs

/usr/bin/cancel - cancel jobs

/usr/bin/disable - start printers and classes

/usr/bin/enable - start printers and classes

/usr/bin/lp - print files

/usr/bin/lpoptions - display or set printer options and defaults

/usr/bin/lpstat - print cups status information

/usr/bin/lppasswd - add, change, or delete digest passwords

/usr/bin/cups-config - get cups api, compiler, directory, and link information


Ghostscript-8.00

Introduction to Ghostscript

Download location (HTTP):       http://telia.dl.sourceforge.net/sourceforge/ghostscript/ghostscript-8.00.tar.bz2
Download location (FTP):        ftp://ftp.sourceforge.net/pub/sourceforge/ghostscript/ghostscript-8.00.tar.bz2
Version used:                   8.00
Package size:                   5.2 MB
Estimated Disk space required:  31-40 MB (depends on if libgs.so is installed)
Estimated build time:           
Additional Downloads:
gnu ghostscript fonts - standard
gnu ghostscript fonts - other
cyrillic fonts

Ghostscript is a versatile processor for Postscript data with the ability to render Postscript to different targets.


Installation of Ghostscript

Install Ghostscript by running the following commands:

./configure --prefix=/usr --libexecdir=/usr/lib/gs \
    --sysconfdir=/etc/gs --enable-shared --enable-static &&
make &&
make install

To install the shared library libgs.so, run the following commands additionally:

make so &&
make soinstall

Note: The shared library is only used in external programs like gsview-4.3.

To finish the installation, unpack all fonts you've loaded to /usr/share/ghostscript.


Installation command explanations

--libexecdir=/usr/lib/gs : executable libraries of Ghostscript will be installed to /usr/lib/gs.

--sysconfdir=/etc/gs : Configuration data goes to /etc/gs instead of /usr/etc.


Contents

Ghostscript comes with a lot of filters to render Postscript/PDF files back and forth. Please refer to the HTML documentation or try man gs.


Ghostscript-7.05.5

Introduction to Ghostscript

Download location (HTTP):       http://telia.dl.sourceforge.net/sourceforge/espgs/espgs-7.05.5-source.tar.bz2
Download location (FTP):        
Version used:                   7.05.5
Package size:                   5.2 MB
Estimated Disk space required:  33 MB
Estimated build time:           
Additional downloads:
gnu ghostscript fonts - standard
gnu ghostscript fonts - other
cyrillic fonts

Ghostscript is a versatile processor for Postscript data with the ability to render Postscript to different targets.

Ghostscript will utilize:
cups-1.1.18 and gimp-print

Installation of Ghostscript

Install Ghostscript by running the following commands:

./configure --prefix=/usr &&
make &&
make install

To finish the installation, unpack the font packages into /usr/share/ghostscript.


Installation command explanations

--enable-gimp-print : This switch enables the building of the gimp-print driver.

--enable-ijs : This switch enables the IJS driver support.


Contents

The Ghostscript package contains gs, pstoraster and filters.


Description

gs

gs is the ghostscript interpreter. It is responsible for rendering the postscript data.


pstoraster

pstoraster allows CUPS to filter output to non-postscript printers. It is built and installed if cups-1.1.18 is found.


LPRng-3.8.20

Introduction to LPRng

Download location (HTTP):       http://www.lprng.com/DISTRIB/LPRng/LPRng-3.8.20.tgz
Download location (FTP):        ftp://ftp.lprng.com/pub/LPRng/LPRng/LPRng-3.8.20.tgz
Version used:                   3.8.20
Package size:                   9.6 MB
Estimated Disk space required:  46.2 MB
Estimated build time:           0.70 SBU

The LPRng package contains an enhanced, extended and portable implementation of the Berkeley LPR print spooler. This is useful for queueing print jobs.


Installation of LPRng

Install LPRng by running the following commands:

./configure --prefix=/usr --libexecdir=/usr/sbin --sysconfdir=/etc &&
make &&
make install


Command explanations

--libexecdir=/usr/sbin --sysconfdir=/etc : These switches prevent the default use of /usr/libexec and /usr/etc.


Configuring LPRng

Config files

/etc/printcap


Configuration Information

There is no generic printcap for all printers. A sample printcap is loaded into the etc directory which can be some help. Information is also available at http://www.lprng.org and http://www.linuxprinting.org.

The init script installed by LPRng is not consistent with BLFS scripts; therefore, we will create a new one with the following commands:

mv /etc/rc.d/init.d/lpd /etc/rc.d/init.d/lpd.orig &&
cat > /etc/rc.d/init.d/lpd << "EOF"
#!/bin/sh
# Begin $rc_base/init.d/lpd

# Based on sysklogd script from LFS-3.1 and earlier.
# Rewritten by Gerard Beekmans  - gerard@linuxfromscratch.org

source /etc/sysconfig/rc
source $rc_functions

case "$1" in
        start)
                echo "Starting lpd..."
                loadproc /usr/sbin/lpd
                ;;

        stop)
                echo "Stopping lpd..."
                killproc /usr/sbin/lpd
                ;;

        reload)
                echo "Reloading lpd..."
                reloadproc /usr/sbin/lpd
                ;;

        restart)
                $0 stop
                sleep 1
                $0 start
                ;;

        status)
                statusproc /usr/sbin/lpd
                ;;

        *)
                echo "Usage: $0 {start|stop|reload|restart|status}"
                exit 1
                ;;
esac

# End $rc_base/init.d/lpd
EOF
chmod 755 /etc/rc.d/init.d/lpd

Create the symbolic links to the lprng init script in the relevant rc.d directories with the following commands:
cd /etc/rc.d/init.d &&
ln -sf ../init.d/lpd ../rc0.d/K00lprng &&
ln -sf ../init.d/lpd ../rc1.d/K00lprng &&
ln -sf ../init.d/lpd ../rc2.d/S99lprng &&
ln -sf ../init.d/lpd ../rc3.d/S99lprng &&
ln -sf ../init.d/lpd ../rc4.d/S99lprng &&
ln -sf ../init.d/lpd ../rc5.d/S99lprng &&
ln -sf ../init.d/lpd ../rc6.d/K00lprng


Contents

The LPRng package contains lp, lpq, lpr, lprm, lpstat, lpc and lpd.


Description

lp

lp is a symbolic link to lpr.


lpq

lpq is the status monitoring program.


lpr

lpr is the job spooler program.


lprm

lprm is the job removal program.


lpstat

lpstat is the job status program.


lpc

lpc is the control program for the daemon.


lpd

lpd is the daemon.


Chapter 47. Scanning

sane-1.0.9

Introduction to sane

Download location (HTTP):       http://www.mostang.com/sane
Download location (FTP):        ftp://ftp.mostang.com/pub/sane/sane-backends-1.0.9.tar.gz
Download location (FTP):        ftp://ftp.mostang.com/pub/sane/sane-frontends-1.0.9.tar.gz
Version used:                   1.0.9
Package size:                   2.2 MB (Backends), 174 kb (Frontends)
Estimated Disk space required:  31 MB (Backends), 3.1 MB (Frontends)

SANE is short for Scanner Access Now Easy. Alas, scanner access is not really easy, since every vendor has own protocols. The only known protocol that should bring some unity into this chaos is the TWAIN interface, but this is too imprecise to allow a stable scanning framework. Therefore, SANE comes with its own protocol, so the vendor drivers can't be used.

SANE is split into backends and frontends. The backends are drivers for the supported scanners. The frontends are user interfaces to access the backends.

SANE will utilize:
xfree86-4.3.0, GTK+-1.2.10 and gimp-1.2.3

Installation of sane

Preparing your system for scanner access

To access your scanner, you will probably need the related kernel drivers. A SCSI scanner will need SCSI drivers, a parallel port scanner needs parallel port support (you should use enhanced EPP modes, too) and an USB scanner will need the USB scanner module and a SCSI system for emulation. Be sure that you have got the necessary devices to access the drivers.


Installation of sane-backends

Install sane-backends by running the following commands:

./configure --prefix=/usr &&
make &&
make install


Installation of sane-frontends

To install sane-frontends, use the following commands:

./configure --prefix=/usr &&
make &&
make install


Installation command explanations

--prefix=/usr : All software is going to be installed in directories relative to/usr.


Contents


Frontends:

scanimage : Command line interface for scanning.

xscanimage : Graphical user interface for scanning.

gimp-plugin : xscanimage as Gimp-plugin.


xsane-0.90

Introduction to xsane

Download location (HTTP):       http://www.xsane.org
Download location (FTP):        ftp://ftp.mostang.com/pub/sane/xsane/xsane-0.90.tar.gz
Version used:                   0.90
Package size:                   2.5 MB
Estimated Disk space required:  16 MB

xsane is another frontend for sane-1.0.9. It has additional features to improve the image quality compared to xscanimage.

xsane depends on:
sane-1.0.9, xfree86-4.3.0, libpng-1.2.5, 
GTK+-1.2.10 and gimp-1.2.3

Installation of xsane

Install xsane by running the following commands:

./configure --prefix=/usr &&
make &&
make install


Installation command explanations

--prefix=/usr : All software is going to be installed in directories relative to/usr.


Contents

xsane comes with a graphical user interface, and (if gimp 1.2 is available) a gimp plugin with advanced features. Please refer to the documentation for further support.


Chapter 48. Standard Generalized Markup Language (SGML)

sgml-common-0.6.3

Introduction to sgml-common

Download location (HTTP):       
Download location (FTP):        ftp://sources.redhat.com/pub/docbook-tools/new-trials/SOURCES/sgml-common-0.6.3.tgz
Version used:                   0.6.3
Package size:                   75 KB
Estimated Disk space required:  648 KB
Estimated build time:           0.01 SBU

The sgml-common package contains install-catalog. This is useful for creating and maintaining centralized sgml catalogs.


Installation of sgml-common

Install sgml-common by running the following commands:

ln -s /usr/share/automake-1.6 /usr/share/automake &&
./configure --prefix=/usr --sysconfdir=/etc --mandir=/usr/share/man &&
make &&
make install &&
install-catalog --add /etc/sgml/sgml-ent.cat \
/usr/share/sgml/sgml-iso-entities-8879.1986/catalog &&
install-catalog --add /etc/sgml/sgml-docbook.cat \
/etc/sgml/sgml-ent.cat &&
rm /usr/share/automake

Update hint: Remove the above catalog items prior to upgrading with:
install-catalog --remove /etc/sgml/sgml-ent.cat \
/usr/share/sgml/sgml-iso-entities-8879.1986/catalog &&
install-catalog --remove /etc/sgml/sgml-docbook.cat \
/etc/sgml/sgml-ent.cat


Command explanations

ln -s /usr/share/automake-1.6 /usr/share/automake : This command sets up a symlink for the configure file to find the automake tools it needs.

rm /usr/share/automake : This command removes the above symlink.


Configuring sgml-common

Config files

/etc/sgml/sgml.conf


Configuration Information

No change in this file is necessary.


Contents

The sgml-common package contains install-catalog, sgmlwhich, sgml entities files and xml entities files.


Description

install-catalog

install-catalog creates a centralized catalog that maintains references to catalogs scattered throughout the /usr/share/sgml directory tree.


sgmlwhich

sgmlwhich will print to standard output the name of the main configuration file.


sgml entities files

sgml entities files contain the basic character entities defined with SDATA entries.


xml entities files

xml entities files contain the basic character entities defined by a hexadecimal representation of the Unicode character number.


sgml-dtd-3.1

Introduction to sgml-dtd

Download location (HTTP):       http://www.docbook.org/sgml/3.1/docbk31.zip
Download location (FTP):        
Version used:                   3.1
Package size:                   60 KB
Estimated Disk space required:  336 KB

The sgml-dtd package contains document type definitions for verification of sgml data files against the DocBook rule set. These are useful for structuring books and software documentation to a standard allowing you to utilize transformations already written for that standard.

sgml-dtd depends on:
unzip-5.50 and sgml-common-0.6.3

Installation of sgml-dtd

Install sgml-dtd by running the following commands:

cp docbook.cat docbook.cat.orig &&
sed -e '/ISO 8879/d' docbook.cat.orig > docbook.cat &&
cp docbook.cat docbook.cat.orig &&
sed -e '/gml/d' docbook.cat.orig > docbook.cat &&
cp docbook.cat docbook.cat.orig &&
sed -e 's|DTDDECL "-//OASIS//DTD DocBook V3.1//EN"|SGMLDECL|g' \
docbook.cat.orig > docbook.cat &&
install -d /usr/share/sgml/docbook/sgml-dtd-3.1 &&
chown -R root:root . &&
chmod -R 755 . &&
install docbook.cat /usr/share/sgml/docbook/sgml-dtd-3.1/catalog &&
cp -af *.dtd *.mod *.dcl /usr/share/sgml/docbook/sgml-dtd-3.1 &&
install-catalog --add /etc/sgml/sgml-docbook-dtd-3.1.cat \
/usr/share/sgml/docbook/sgml-dtd-3.1/catalog &&
install-catalog --add /etc/sgml/sgml-docbook-dtd-3.1.cat \
/etc/sgml/sgml-docbook.cat


Command explanations

cp docbook.cat docbook.cat.orig
sed -e '/ISO 8879/d' docbook.cat.orig > docbook.cat
cp docbook.cat docbook.cat.orig
sed -e '/gml/d' docbook.cat.orig > docbook.cat
These commands remove the ENT definitions from the catalog file.

cp docbook.cat docbook.cat.orig
sed -e 's|DTDDECL "-//OASIS//DTD Docbook V3.1//EN"|SGMLDECL|g' \
docbook.cat.orig > docbook.cat
This command replaces the DTDDECL catalog entry, which is not supported by Linux SGML tools, with the SGMLDECL catalog entry.


Configuring sgml-dtd

Config files

/etc/sgml/catalog


Configuration Information

The above installation script updates the catalog.

Using sgml-dtd with gnome requires the following:
cat >> /usr/share/sgml/docbook/sgml-dtd-3.1/catalog << "EOF"
  -- Begin Gnome addition to catalog --

PUBLIC "-//GNOME//DTD DocBook PNG Variant V1.1//EN" "png-support-3.1.dtd"

  -- End Gnome addition to catalog --
EOF

Using only the most current 3.x version of sgml-dtd requires the following:
cat >> /usr/share/sgml/docbook/sgml-dtd-3.1/catalog << "EOF"
  -- Begin Single Major Version catalog changes --

PUBLIC "-//Davenport//DTD DocBook V3.0//EN" "docbook.dtd"

  -- End Single Major Version catalog changes --
EOF


Contents

The sgml-dtd package contains DTD files and MOD files.


Description

DTD files

DTD files contain a document type definition which defines the element types and the attribute lists that can be used in the corresponding SGML files.


MOD files

MOD files contain components of the document type definition that are sourced into the DTD files.


sgml-dtd-4.2

Introduction to sgml-dtd

Download location (HTTP):       http://www.docbook.org/sgml/4.2/docbook-4.2.zip
Download location (FTP):        
Version used:                   4.2
Package size:                   68 KB
Estimated Disk space required:  376 KB

The sgml-dtd package contains document type definitions for verification of sgml data files against the DocBook rule set. These are useful for structuring books and software documentation to a standard allowing you to utilize transformations already written for that standard.

sgml-dtd depends on:
unzip-5.50 and sgml-common-0.6.3

Installation of sgml-dtd

Install sgml-dtd by running the following commands:

cp docbook.cat docbook.cat.orig &&
sed -e '/ISO 8879/d' docbook.cat.orig > docbook.cat &&
cp docbook.cat docbook.cat.orig &&
sed -e '/gml/d' docbook.cat.orig > docbook.cat &&
install -d /usr/share/sgml/docbook/sgml-dtd-4.2 &&
chown -R root:root . &&
chmod -R 755 . &&
install docbook.cat /usr/share/sgml/docbook/sgml-dtd-4.2/catalog &&
cp -af *.dtd *.mod *.dcl /usr/share/sgml/docbook/sgml-dtd-4.2 &&
install-catalog --add /etc/sgml/sgml-docbook-dtd-4.2.cat \
/usr/share/sgml/docbook/sgml-dtd-4.2/catalog &&
install-catalog --add /etc/sgml/sgml-docbook-dtd-4.2.cat \
/etc/sgml/sgml-docbook.cat


Command explanations

cp docbook.cat docbook.cat.orig
sed -e '/ISO 8879/d' docbook.cat.orig > docbook.cat
cp docbook.cat docbook.cat.orig
sed -e '/gml/d' docbook.cat.orig > docbook.cat
These commands remove the ENT definitions from the catalog file.


Configuring sgml-dtd

Config files

/etc/sgml/catalog


Configuration Information

The above installation script updates the catalog.

Using only the most current 4.x version of sgml-dtd requires the following:
cat >> /usr/share/sgml/docbook/sgml-dtd-4.2/catalog << "EOF"
  -- Begin Single Major Version catalog changes --

PUBLIC "-//OASIS//DTD DocBook V4.1//EN" "docbook.dtd"
PUBLIC "-//OASIS//DTD DocBook V4.0//EN" "docbook.dtd"

  -- End Single Major Version catalog changes --
EOF


Contents

The sgml-dtd package contains DTD files and MOD files.


Description

DTD files

DTD files contain a document type definition which defines the element types and the attribute lists that can be used in the corresponding SGML files.


MOD files

MOD files contain components of the document type definition that are sourced into the DTD files.


OpenSP-1.5

Introduction to OpenSP

Download location (HTTP):       http://download.sourceforge.net/openjade/OpenSP-1.5.tar.gz
Download location (FTP):        
Version used:                   1.5
Package size:                   1.3 MB
Estimated Disk space required:  16.1 MB
Estimated build time:           7.51 SBU

The OpenSP package contains a C++ Library for using SGML/XMLfiles. This is useful for validating, parsing and manipulating SGML and XML documents.

OpenSP depends on:
sgml-common-0.6.3

Installation of OpenSP

Install OpenSP by running the following commands:

./configure --prefix=/usr --disable-static --enable-http \
--enable-default-catalog=/etc/sgml/catalog \
--enable-default-search-path=/usr/share/sgml --enable-xml-messages &&
make pkgdatadir=/usr/share/sgml/OpenSP-1.5 &&
make pkgdatadir=/usr/share/sgml/OpenSP-1.5 install &&
ln -sf onsgmls /usr/bin/nsgmls &&
ln -sf osgmlnorm /usr/bin/sgmlnorm &&
ln -sf ospam /usr/bin/spam &&
ln -sf ospcat /usr/bin/spcat &&
ln -sf ospent /usr/bin/spent &&
ln -sf osx /usr/bin/sx &&
ln -sf osx /usr/bin/sgml2xml &&
ln -sf libosp.so /usr/lib/libsp.so &&
install-catalog --add /etc/sgml/OpenSP-1.5.cat \
/usr/share/sgml/OpenSP-1.5/catalog &&
install-catalog --add /etc/sgml/sgml-docbook.cat \
/etc/sgml/OpenSP-1.5.cat

Update hint: Remove the above catalog items prior to upgrading with:
install-catalog --remove /etc/sgml/OpenSP-{version}.cat \
/usr/share/sgml/OpenSP-{version}/catalog &&
install-catalog --remove /etc/sgml/sgml-docbook.cat \
/etc/sgml/OpenSP-{version}.cat


Command explanations

--disable-static : This switch prevents the building of the static library.

--enable-http : This switch add support for http.

--enable-default-catalog=/etc/sgml/catalog : This switch sets the path to our centralized catalog.

--enable-default-search-path : This switch sets the default value of SGML_SEARCH_PATH.

--enable-xml-messages : This switch adds support for XML Formatted Messages.

make pkgdatadir=/usr/share/sgml/OpenSP-1.5 : This sets the pkgdatadir variable in the Makefile from /usr/share/OpenSP to /usr/share/sgml/OpenSP-1.5.

ln -sf onsgmls /usr/bin/nsgmls
ln -sf osgmlnorm /usr/bin/sgmlnorm
ln -sf ospam /usr/bin/spam
ln -sf ospcat /usr/bin/spcat
ln -sf ospent /usr/bin/spent
ln -sf osx /usr/bin/sx
ln -sf osx /usr/bin/sgml2xml
ln -sf libosp.so /usr/lib/libsp.so
These commands create the SP equalivants of OpenSP executables and libraries.


Contents

The OpenSP package contains onsgmls, ospam, osx, ospcat and ospent.


Description

onsgmls

onsgmls process SGML files.


ospam

ospam is a markup stream editor.


osx

osx is a SGML normalizer or a converter of SGML to XML.


ospcat

ospcat prints effective system identifiers found in the catalogs.


ospent

ospent provides access to OpenSP's entity manager.


OpenJade-1.3.2

Introduction to OpenJade

Download location (HTTP):       http://telia.dl.sourceforge.net/openjade/openjade-1.3.2.tar.gz
Download location (FTP):        
Version used:                   1.3.2
Package size:                   880 KB
Estimated Disk space required:  14.5 MB
Estimated build time:           4.23 SBU

The OpenJade package contains a DSSSL engine. This is useful for SGML and XML transformations into RTF, Tex, SGML and XML.

OpenJade depends on:
opensp-1.5

Installation of OpenJade

Install OpenJade by running the following commands:

./configure --prefix=/usr --enable-http --disable-static \
--enable-default-catalog=/etc/sgml/catalog \
--enable-default-search-path=/usr/share/sgml \
--datadir=/usr/share/sgml/openjade-1.3.2 &&
make &&
make install &&
ln -sf openjade /usr/bin/jade &&
ln -sf libogrove.so /usr/lib/libgrove.so &&
ln -sf libospgrove.so /usr/lib/libspgrove.so &&
ln -sf libostyle.so /usr/lib/libstyle.so &&
install -m644 dsssl/catalog /usr/share/sgml/openjade-1.3.2/ &&
install -m644 dsssl/*.dtd dsssl/*.dsl dsssl/*.sgm \
/usr/share/sgml/openjade-1.3.2 &&
install-catalog --add /etc/sgml/openjade-1.3.2.cat \
/usr/share/sgml/openjade-1.3.2/catalog &&
install-catalog --add /etc/sgml/sgml-docbook.cat /etc/sgml/openjade-1.3.2.cat


Command explanations

--disable-static : This switch prevents the building of the static library.

--enable-http : This switch add support for http.

--enable-default-catalog=/etc/sgml/catalog : This switch sets the path to our centralized catalog.

--enable-default-search-path : This switch sets the default value of SGML_SEARCH_PATH.

--datadir=/usr/share/sgml/openjade-1.3.2 : This switch puts data files in /usr/share/sgml/openjade-1.3.2 instead of /usr/share.

ln -sf openjade /usr/bin/jade
ln -sf libogrove.so /usr/lib/libgrove.so
ln -sf libospgrove.so /usr/lib/libspgrove.so
ln -sf libostyle.so /usr/lib/libstyle.so
These commands create the Jade equalivants of OpenJade executables and libraries.


Configuring OpenJade

Configuration Information

echo "SYSTEM \"/usr/share/docbook/docbookx.dtd\" \
\"/usr/share/xml/docbook/xml-dtd-4.2/docbookx.dtd\"" >> \
/usr/share/sgml/openjade-1.3.2/catalog
This configuration is only necessary if you intend to use OpenJade to process the BLFS XML files through DSSSL.


Contents

The OpenJade package contains openjade.


Description

openjade

openjade is a DSSSL engine used for transformations.


docbook-dsssl-1.78

Introduction to docbook-dsssl

Download location (HTTP):       http://telia.dl.sourceforge.net/sourceforge/docbook/docbook-dsssl-1.78.tar.gz
Download location (FTP):        
Version used:                   1.78
Package size:                   384 KB
Estimated Disk space required:  4 MB

The docbook-dsssl package contains dsssl stylesheets. These are used by openjade or other tools to transform SGML and XML DocBook files.


Installation of docbook-dsssl

Install docbook-dsssl by running the following commands:

mkdir -p /usr/share/sgml/docbook/dsssl-stylesheets-1.78/dtds/decls &&
mkdir -p /usr/share/sgml/docbook/dsssl-stylesheets-1.78/lib &&
mkdir -p /usr/share/sgml/docbook/dsssl-stylesheets-1.78/common &&
mkdir -p /usr/share/sgml/docbook/dsssl-stylesheets-1.78/html &&
mkdir -p /usr/share/sgml/docbook/dsssl-stylesheets-1.78/print &&
mkdir -p /usr/share/sgml/docbook/dsssl-stylesheets-1.78/test &&
mkdir -p /usr/share/sgml/docbook/dsssl-stylesheets-1.78/images &&
install bin/collateindex.pl /usr/bin &&
cp catalog VERSION /usr/share/sgml/docbook/dsssl-stylesheets-1.78 &&
cp dtds/decls/*.dcl \
/usr/share/sgml/docbook/dsssl-stylesheets-1.78/dtds/decls &&
cp lib/dblib.dsl /usr/share/sgml/docbook/dsssl-stylesheets-1.78/lib &&
cp common/*.dsl /usr/share/sgml/docbook/dsssl-stylesheets-1.78/common &&
cp common/*.ent /usr/share/sgml/docbook/dsssl-stylesheets-1.78/common &&
cp html/*.dsl /usr/share/sgml/docbook/dsssl-stylesheets-1.78/html &&
cp lib/*.dsl /usr/share/sgml/docbook/dsssl-stylesheets-1.78/lib &&
cp print/*.dsl /usr/share/sgml/docbook/dsssl-stylesheets-1.78/print &&
cp images/*.gif /usr/share/sgml/docbook/dsssl-stylesheets-1.78/images &&
install-catalog --add /etc/sgml/dsssl-docbook-stylesheets.cat \
/usr/share/sgml/docbook/dsssl-stylesheets-1.78/catalog &&
install-catalog --add /etc/sgml/sgml-docbook.cat \
/etc/sgml/dsssl-docbook-stylesheets.cat


Command explanations

These commands create a make install script for this package.


Configuring docbook-dsssl

Configuration Information

The following configuration is necessary in order to utilize openjade to convert the BLFS Book from XML to HTML:
ln -sf {your home directory}/BLFS/BOOK/blfs.dsl \
/usr/share/sgml/docbook/dsssl-stylesheets-1.78/html/

If you would like to test xml-dtd, dsssl-stylesheets and openjade against the BLFS book, use the following command. The commands are written for a cvs checkout to your home directory with output going to the present working directory, so make any necessary modifications for your setup.
mkdir introduction postlfs general connect basicnet server \
content x kde gnome xsoft multimedia pst preface appendices other &&
openjade -t sgml \
-d /usr/share/sgml/docbook/dsssl-stylesheets-1.78/html/blfs.dsl \
/usr/share/sgml/docbook/dsssl-stylesheets-1.78/dtds/decls/xml.dcl \
~/BLFS/BOOK/index.xml
If successful you should have a HTML BLFS book in exactly the same format as presented on the web page.


Contents

The docbook-dsssl package contains dsssl-stylesheets and collateindex.pl.


Description

collateindex.pl

collateindex.pl is a pearl script that creates a DocBook index from raw index data.


Chapter 49. Extensible Markup Language (XML)

xml-dtd-4.2

Introduction to DocBook XML

Download location (HTTP):       http://www.docbook.org/xml/4.2/docbook-xml-4.2.zip
Download location (FTP):        
Version used:                   4.2
Package size:                   84 KB
Estimated Disk space required:  468 KB

The xml-dtd-4.2 package contains document type definitions for verification of xml data files against the DocBook rule set. These are useful for structuring books and software documentation to a standard allowing you to utilize transformations already written for that standard.

DocBook depends on:
libxml2-2.5.6 and unzip-5.50

Installation of DocBook

Install DocBook by running the following commands:

install -d /usr/share/xml/docbook/xml-dtd-4.2 &&
cp -af docbook.cat *.dtd ent/ *.mod /usr/share/xml/docbook/xml-dtd-4.2 &&
if [ ! -e /etc/xml/catalog ]; then mkdir -p /etc/xml; xmlcatalog --noout \
--create /etc/xml/catalog; fi &&
if [ ! -e /etc/xml/docbook ]; then xmlcatalog --noout --create \
/etc/xml/docbook; fi &&
xmlcatalog --noout --add "public" \
"-//OASIS//ELEMENTS DocBook XML Information Pool V4.2//EN" \
"file:///usr/share/xml/docbook/xml-dtd-4.2/dbpoolx.mod" \
/etc/xml/docbook &&
xmlcatalog --noout --add "public" \
"-//OASIS//DTD DocBook XML V4.2//EN" \
"http://oasis-open.org/docbook/xml/4.2/docbookx.dtd" \
/etc/xml/docbook &&
xmlcatalog --noout --add "public" \
"-//OASIS//ENTITIES DocBook XML Character Entities V4.2//EN" \
"file:///usr/share/xml/docbook/xml-dtd-4.2/dbcentx.mod" \
/etc/xml/docbook &&
xmlcatalog --noout --add "public" \
"-//OASIS//ENTITIES DocBook XML Notations V4.2//EN" \
"file:///usr/share/xml/docbook/xml-dtd-4.2/dbnotnx.mod" \
/etc/xml/docbook &&
xmlcatalog --noout --add "public" \
"-//OASIS//ENTITIES DocBook XML Additional General Entities V4.2//EN" \
"file:///usr/share/xml/docbook/xml-dtd-4.2/dbgenent.mod" \
/etc/xml/docbook &&
xmlcatalog --noout --add "public" \
"-//OASIS//ELEMENTS DocBook XML Document Hierarchy V4.2//EN" \
"file:///usr/share/xml/docbook/xml-dtd-4.2/dbhierx.mod" \
/etc/xml/docbook &&
xmlcatalog --noout --add "public" \
"-//OASIS//DTD XML Exchange Table Model 19990315//EN" \
"file:///usr/share/xml/docbook/xml-dtd-4.2/soextblx.dtd" \
/etc/xml/docbook &&
xmlcatalog --noout --add "public" \
"-//OASIS//DTD DocBook XML CALS Table Model V4.2//EN" \
"file:///usr/share/xml/docbook/xml-dtd-4.2/calstblx.dtd" \
/etc/xml/docbook &&
xmlcatalog --noout --add "rewriteSystem" \
"http://www.oasis-open.org/docbook/xml/4.2" \
"file:///usr/share/xml/docbook/xml-dtd-4.2" \
/etc/xml/docbook &&
xmlcatalog --noout --add "rewriteURI" \
"http://www.oasis-open.org/docbook/xml/4.2" \
"file:///usr/share/xml/docbook/xml-dtd-4.2" \
/etc/xml/docbook &&
xmlcatalog --noout --add "delegatePublic" \
"-//OASIS//ENTITIES DocBook XML" \
"file:///etc/xml/docbook" /etc/xml/catalog &&
xmlcatalog --noout --add "delegatePublic" \
"-//OASIS//DTD DocBook XML" \
"file:///etc/xml/docbook" /etc/xml/catalog &&
xmlcatalog --noout --add "delegateSystem" \
"http://www.oasis-open.org/docbook/" \
"file:///etc/xml/docbook" /etc/xml/catalog &&
xmlcatalog --noout --add "delegateURI" \
"http://www.oasis-open.org/docbook/" \
"file:///etc/xml/docbook" /etc/xml/catalog


Configuring DocBook

Config files

/etc/xml/catalog, /etc/xml/docbook


Configuration Information

The above installation script creates the files and updates the catalog. We need to make additional entries in order to process the BLFS book:
xmlcatalog --noout --add "delegateSystem" \
"/usr/share/docbook/" \
"file:///etc/xml/docbook" /etc/xml/catalog &&
xmlcatalog --noout --add "delegateURI" \
"/usr/share/docbook/" \
"file:///etc/xml/docbook" /etc/xml/catalog &&
xmlcatalog --noout --add "rewriteSystem" \
"/usr/share/docbook" \
"file:///usr/share/xml/docbook/xml-dtd-4.2" \
/etc/xml/docbook &&
xmlcatalog --noout --add "rewriteURI" \
"/usr/share/docbook" \
"file:///usr/share/xml/docbook/xml-dtd-4.2" \
/etc/xml/docbook

In order to install scrollkeeper, make the following entry:
xmlcatalog --noout --add "public" \
"-//OASIS//DTD DocBook XML V4.1.2//EN" \
"http://oasis-open.org/docbook/xml/4.1.2/docbookx.dtd" \
/etc/xml/docbook &&
xmlcatalog --noout --add "delegateSystem" \
"http://oasis-open.org/docbook/xml/4.1.2/" \
"file:///etc/xml/docbook" /etc/xml/catalog &&
xmlcatalog --noout --add "delegateURI" \
"http://oasis-open.org/docbook/xml/4.1.2/" \
"file:///etc/xml/docbook" /etc/xml/catalog &&
xmlcatalog --noout --add "rewriteSystem" \
"http://oasis-open.org/docbook" \
"file:///usr/share/xml/docbook/xml-dtd-4.2" \
/etc/xml/docbook &&
xmlcatalog --noout --add "rewriteURI" \
"http://oasis-open.org/docbook" \
"file:///usr/share/xml/docbook/xml-dtd-4.2" \
/etc/xml/docbook


Contents

The DocBook package contains DTD files, MOD files and ENT files.


Description

DTD files

DTD files contain a document type definition which defines the element types and the attribute lists that can be used in the corresponding XML files.


MOD files

MOD files contain components of the document type definition that are sourced into the DTD files.


ENT files

ENT files contain lists of named character entities allowed in HTML.


docbook-xsl-1.60.1

Introduction to docbook-xsl

Download location (HTTP):       http://telia.dl.sourceforge.net/sourceforge/docbook/docbook-xsl-1.60.1.tar.gz
Download location (FTP):        
Version used:                   1.60.1
Package size:                   1.2 MB
Estimated Disk space required:  11.1 MB

The docbook-xsl package contains xsl stylesheets. These are useful for performing transformations on XML DocBook files.

docbook-xsl depends on:
libxslt-1.0.29

Installation of docbook-xsl

Install docbook-xsl by running the following commands:

install -d /usr/share/xml/docbook/xsl-stylesheets-1.60.1 &&
cp -af VERSION common extensions fo html htmlhelp images javahelp lib \
manpages params profiling template tools xhtml \
/usr/share/xml/docbook/xsl-stylesheets-1.60.1 &&
install -d /usr/share/doc/xml &&
cp -af doc/* /usr/share/doc/xml &&
if [ ! -f /etc/xml/catalog ]; then mkdir -p /etc/xml; xmlcatalog --noout \
--create /etc/xml/catalog; fi &&
if [ ! -e /etc/xml/docbook ]; then xmlcatalog --noout --create \
/etc/xml/docbook; fi &&
xmlcatalog --noout --add "rewriteSystem" \
"http://docbook.sourceforge.net/release/xsl/1.45" \
"/usr/share/xml/docbook/xsl-stylesheets-1.60.1" /etc/xml/catalog &&
xmlcatalog --noout --add "rewriteURI" \
"http://docbook.sourceforge.net/release/xsl/1.45" \
"/usr/share/xml/docbook/xsl-stylesheets-1.60.1" /etc/xml/catalog &&
xmlcatalog --noout --add "rewriteSystem" \
"http://docbook.sourceforge.net/release/xsl/current" \
"/usr/share/xml/docbook/xsl-stylesheets-1.60.1" /etc/xml/catalog &&
xmlcatalog --noout --add "rewriteURI" \
"http://docbook.sourceforge.net/release/xsl/current" \
"/usr/share/xml/docbook/xsl-stylesheets-1.60.1" /etc/xml/catalog &&
xmlcatalog --noout --add "delegateSystem" \
"http://docbook.sourceforge.net/release/xsl/" \
"file:///etc/xml/docbook" /etc/xml/catalog &&
xmlcatalog --noout --add "delegateURI" \
"http://docbook.sourceforge.net/release/xsl/" \
"file:///etc/xml/docbook" /etc/xml/catalog


Configuring docbook-xsl

Config files

/etc/xml/catalog


Configuration Information

The above installation script creates the files and updates the catalog.

If you would like to test xml-dtd and docbook-xsl against the BLFS book, use the following command. The command is written for a cvs checkout to your home directory with output going to the present working directory, so make any necessary modifications for your setup.
xsltproc --nonet -o index.html \
http://docbook.sourceforge.net/release/xsl/current/html/docbook.xsl \
~/BLFS/BOOK/index.xml
If successful you should have a html file that will display the BLFS Book in a browser on a single page. It will be formatted by the xsl docbook stylesheet, so it will not match the published BLFS book, which is formatted by DSSSL.


Contents

The docbook-xsl package contains xsl stylesheets.


Chapter 50. Postscript

a2ps-4.13b

Introduction to a2ps

Download location (HTTP):       http://ftp.gnu.org/gnu/a2ps/a2ps-4.13b.tar.gz
Download location (FTP):        ftp://ftp.gnu.org/gnu/a2ps/a2ps-4.13b.tar.gz
Version used:                   4.13b
Package size:                   1.8 MB
Estimated Disk space required:  19 MB
Estimated build time:           0.60 SBU
Additional Downloads:
International fonts

a2ps is a utility used mostly in the background to convert almost every input format into postscript output, hence the name "a2ps" which means "all to Postscript".


Installation of a2ps

a2ps is an almost typical autoconf based package, but tries to install to unusual directories.

Install a2ps by running the following commands:

cd contrib &&
cp Makefile.in Makefile.in.orig &&
sed -e "s:emacs::" Makefile.in.orig > Makefile.in &&
cd .. &&
./configure --prefix=/usr \
    --sysconfdir=/etc/a2ps --localstatedir=/var \
    --with-medium=letter &&
make &&
make install


Installation command explanations

cd contrib &&
cp Makefile.in Makefile.in.orig &&
sed -e "s:emacs::" Makefile.in.orig > Makefile.in &&
cd .. &&
These commands eliminate the compiling and installing of the emacs script files. If you have substituted emacs for vi as your primary editor, you would want to skip these instructions.

--sysconfdir=/etc/a2ps : Configuration data goes to /etc/a2ps instead of /usr/etc.

--with-medium=letter : This switch changes the default paper format of A4 to letter. Locations that utilize A4 would eliminate this switch.


Configuring a2ps

Config files

/etc/a2ps/a2ps.cfg, /etc/a2ps/a2ps-site.cfg


Configuration Information

Information about configuring a2ps can be found in the comments contained in the above files, and also by running info a2ps.


Contents

a2ps is a filter program. The package consists of the program a2ps and a lot of filter data to convert nearly everything to Postscript.


enscript-1.6.1

Introduction to enscript

Download location (HTTP):       http://ftp.gnu.org/gnu/enscript/enscript-1.6.1.tar.gz
Download location (FTP):        ftp://ftp.gnu.org/gnu/enscript/enscript-1.6.1.tar.gz
Version used:                   1.6.1
Package size:                   631 kb
Estimated Disk space required:  6.4 MB
Estimated build time:           0.23 SBU

enscript converts ASCII files to Postscript.


Installation of enscript

enscript is an almost typical autoconf based package, but tries to install to unusual directories.

Install enscript by running the following commands:

./configure --prefix=/usr \
    --sysconfdir=/etc/enscript --localstatedir=/var &&
make &&
make install

Note: Add "--with-media=letter" to the configure options if that medium format is common to you.


Installation command explanations

--sysconfdir=/etc/enscript : Configuration data goes to /etc/enscript instead of /usr/etc.

--localstatedir=/var : directory for runtime data is set to /var instead of /usr/var.


Contents

enscript is a filter program. The package consists of the program enscript and some files of filter data to convert ASCII files to Postscript.


gsview-4.3

Introduction to gsview

Download location (HTTP):       http://mirror.cs.wisc.edu/pub/mirrors/ghost/ghostgum/old/gsview-4.3.tar.gz
Download location (FTP):        ftp://mirror.cs.wisc.edu/pub/mirrors/ghost/ghostgum/old/gsview-4.3.tar.gz
Version used:                   4.3
Package size:                   711 kb
Estimated Disk space required:  3.1 MB

gsview is a viewer for Postscript and PDF using X.

gsview depends on:
xfree86-4.3.0, GTK+-1.2.10 and GhostScript-8.00 (with libgs.so installed)

Installation of gsview

gsview is an almost typical autoconf based package, but tries to install to unusual directories.

gsview uses netscape to browse through the online help. The usual LFS user doesn't want to install netscape, but uses mozilla or another browser. So simply edit srcunx/gvxreg.c using the following sed script:

mv srcunx/gvxreg.c srcunx/gvxreg.old &&
cat srcunx/gvxreg.old | sed s/netscape/<browser>/ > srcunx/gvxreg.c

Note: Replace <browser> with the executable name of the browser you intend to use.

Install gsview by running the following commands:

sed 's|GSVIEW_ROOT=/usr/local|GSVIEW_ROOT=/usr|' \
  srcunx/unx.mak >  Makefile &&
make &&
make install


Installation command explanations

sed 's|GSVIEW_ROOT=/usr/local|GSVIEW_ROOT=/usr|'
Change default installation directory to /usr.


Contents

gsview is a viewer for Postscript and PDF files.


psutils-p17

Introduction to psutils

Download location (HTTP):       http://knackered.org/angus/psutils/
Download location (FTP):        ftp://ftp.knackered.org/pub/psutils/psutils-p17.tar.gz
Version used:                   p17
Package size:                   62 kb
Estimated Disk space required:  688 kb

psutils is a set of utilities to manipulate Postscript files.


Installation of psutils

Install psutils by running the following commands:

cat Makefile.unix | sed -e 's/\/usr\/local/\/usr/g' > Makefile &&
make &&
make install


Installation command explanations

cat ... | sed ... : creates a Makefile that uses the directories common to the BLFS installation. If you prefer other directories, edit the Makefile manually before executing the other commands.


Contents

psutils is a set of filter programs for Postscript files:

psbook rearranges pages into signatures

psselect selects pages and page ranges

pstops Performs general page rearrangements and selection

psnup Put multiple pages per physical sheet of paper

psresize Alter document paper size

epsffit Fits and EPSF file to a given bounding box

Additionally, psutils provide a set of scripts:

getafm, showchar, fixdlsrps, fixfmps, fixmacps, fixpsditps, fixpspps, fixscribeps, fixtpps, fixwfwps, fixwpps, fixwwps, extractres, includeres, psmerge.

Please refer to the man pages for further information.


xpdf-2.02

Introduction to xpdf

Download location (HTTP):       
Download location (FTP):        ftp://ftp.foolabs.com/pub/xpdf/xpdf-2.02.tar.gz
Version used:                   2.02
Package size:                   472 KB
Estimated Disk space required:  8.2 MB
Estimated build time:           1.05 SBU

xpdf is a viewer for Adobe's free Portable Document Format (PDF) which is both fast and small and comes with some useful command line utilities.

xpdf depends on:
xfree86-4.3.0 and lesstif-0.93.36
xpdf will utilize:
Installed fonts: GhostScript-8.00, freetype-2.1.3, t1lib and truetype

Installation of xpdf

Install xpdf by running the following commands:

./configure --prefix=/usr --sysconfdir=/etc --mandir=/usr/share/man  \
    --with-freetype2-includes=/usr/include/freetype2 \
    --with-freetype2-library=/usr/lib \
    --with-appdef-dir=/usr/X11R6/lib/X11/app-defaults/ &&
make &&
make install


Installation command explanations

--enable-a4-paper : This switch must be added to set DIN A4 as the standard paper format.


Contents

xpdf displays files in PDF format.

pdftops converts PDF files to Postscript format.

pdftotext parses ASCII text from PDF files.

pdftopbm converts PDF files to PBM (Portable BitMap) format.


Configuring xpdf

In the etc directory you will find a sample xpdfrc that can be either copied to ~/.xpdfrc or taken as example to write your own configuration file.


Example .xpdfrc

# Example .xpdfrc
displayFontT1 Times-Roman		/usr/share/ghostscript/fonts/n021003l.pfb
displayFontT1 Times-Italic		/usr/share/ghostscript/fonts/n021023l.pfb
displayFontT1 Times-Bold		/usr/share/ghostscript/fonts/n021004l.pfb
displayFontT1 Times-BoldItalic		/usr/share/ghostscript/fonts/n021024l.pfb
displayFontT1 Helvetica			/usr/share/ghostscript/fonts/n019003l.pfb
displayFontT1 Helvetica-Oblique		/usr/share/ghostscript/fonts/n019023l.pfb
displayFontT1 Helvetica-Bold		/usr/share/ghostscript/fonts/n019004l.pfb
displayFontT1 Helvetica-BoldOblique	/usr/share/ghostscript/fonts/n019024l.pfb
displayFontT1 Courier			/usr/share/ghostscript/fonts/n022003l.pfb
displayFontT1 Courier-Oblique		/usr/share/ghostscript/fonts/n022023l.pfb
displayFontT1 Courier-Bold		/usr/share/ghostscript/fonts/n022004l.pfb
displayFontT1 Courier-BoldOblique	/usr/share/ghostscript/fonts/n022024l.pfb
displayFontT1 Symbol			/usr/share/ghostscript/fonts/s050000l.pfb
displayFontT1 ZapfDingbats		/usr/share/ghostscript/fonts/d050000l.pfb

fontDir		/usr/X11R6/lib/X11/fonts/truetype

psFile			"|lpr"
psPaperSize		a4
textEOL		unix

t1libControl		low
freetypeControl		low

urlCommand	"links -g %s"


Chapter 51. Typesetting

tex-2.0.2

Introduction to TeX


Required:
Download location (FTP):        ftp://sunsite.informatik.rwth-aachen.de/pub/comp/tex/teTeX/2.0/distrib/tetex-src-2.0.2.tar.gz
Download location (FTP):        ftp://sunsite.informatik.rwth-aachen.de/pub/comp/tex/teTeX/2.0/distrib/tetex-texmf-2.0.2.tar.gz
Optional:
Download location (FTP):        ftp://sunsite.informatik.rwth-aachen.de/pub/comp/tex/teTeX/2.0/distrib/tetex-texmfsrc-2.0.2.tar.gz
Version used:                   2.0.2
Package size:                   52 MB
Estimated Disk space required:  175 MB

TeX is a typesetting package, able to create documents in a variety of formats. The optional texmfsrc tarball contains source code for packages that are contained in the texmf tarball, including the docstrip sources.


Installation of TeX

TeX is installed slightly differently than a typical GNU package, these instructions will assume /usr/src to be the current working directory, containing the three TeX tarballs.

Install TeX by running the following commands:

mkdir -p /usr/share/texmf &&
tar zxvf tetex-src-2.0.2.tar.gz &&
cd tetex-src-2.0.2 &&
gzip -dc ../tetex-texmf-2.0.2.tar.gz \
      | (umask 0; cd /usr/share/texmf; tar xvf -)

If the optional texmf source code tarball was downloaded, untar it now:

gzip -dc ../tetex-texmfsrc-2.0.2.tar.gz \
      | (umask 0; cd /usr/share/texmf; tar xvf -)

./configure --with-x=no --prefix=/usr \
    --without-texinfo   --with-system-ncurses --with-system-zlib \
    --exec-prefix=/usr --bindir=/usr/bin &&
make world &&
texconfig dvips paper letter &&
texconfig font rw

Note: LFS Systems prior to version 4.0 did not install zlib by default. Remove the --with-system-zlib option from the above commands if you do not have zlib installed.


Installation command explanations

gzip -dc ../teTeX-texmf-2.0.2.tar.gz \
        | (umask 0; cd /usr/share/texmf; tar xvf -)
Untar the TeX fonts and macro libraries.

--with-x=no : Avoid any X-Windows dependencies. TeX can be compiled with X-Windows support, notably for xdvi. If this is desired, remove this configure option.

--exec-prefix=/usr --bindir=/usr/bin : Insure that TeX binaries will be installed in /usr/bin.

--without-texinfo : A default LFS installation already has the texinfo package installed, we will avoid overwriting it with the included texinfo package.

--with-system-ncurses : Specify using the already installed ncurses library.

--with-system-zlib : LFS Systems starting with version 4.0 have zlib installed as part of the base operating system, we can avoid building it here.

texconfig dvips paper letter : Set the default paper size for TeX.

texconfig font rw : Specify writable fonts.


Contents

The TeX package contains 125 separate binaries. Please refer to file:///usr/share/texmf/doc/index.html for details, as well as a tour of the expansive TeX documentation.


Appendix A. List of rc?.d symlinks used in LFS/BLFS

This section lists all of the symlinks used by the lfs-bootscripts package (correct as of version 1.9) and all of the scripts in the BLFS book. This is for two reasons: first, so that you can see at a glance which number we have used for each package, and second so that we can see which number we have used for each package! Without this, it would make our lives more difficult (as we'd probably end up with conflicts).

It should go without saying that this is not the only (or some would argue even optimal) setup for the symlinks. In the LFS tradition, you should find what suits you and use that; our recommendations are only a template.


rc0.d

Table A-1. rc0.d symlinks

NumberTitleLinkExplanation
K00cups../init.d/cupsShut down Common Unix printing system: cups-1.1.18
K00lprng../init.d/lprngShut down LPR print spooler: LPRng-3.8.20
K05gdm../init.d/gdmShut down Gnome display manager Daemon: gdm-2.4.1.3
K08fcron../init.d/fcronShut down Cron Daemon: fcron-2.9.3
K10gpm../init.d/gpmShut down General Purpose Mouse Daemon: gpm-1.20.1
K25postfix../init.d/postfixShut down Postfix MTA: postfix-2.0.7
K26mysql../init.d/mysqlShut down MySQL Daemon: MySQL-3.23.55
K26postgres../init.d/postgresShut down PostgreSQL Daemon: Postgres-7.3.2
K30sshd../init.d/sshdShut down Secure Shell Daemon: openssh-3.6.1p1
K35alsa../init.d/alsaSave volume settings: alsa-0.9.2
K40sysklogd../init.d/sysklogdStop system and kernel logging: Part of LFS base.
K45random../init.d/randomSave random seed: random
K48samba../init.d/sambaStop network file system: samba-2.2.8a
K48NFS../init.d/nfsStop network file system:
K49portmap../init.d/portmapStop Forwarding RPC requests: portmap-5
K49xinetd../init.d/xinetdStop internet services daemon: xinetd-2.3.10
K49bind../init.d/bindStop named services daemon (DNS): bind-9.2.2
K50sendsignals../init.d/sendsignalsKill processes: Part of LFS base.
K59firewall../init.d/firewallUnset firewall settings: Firewalling
K60mountfs../init.d/mountfsUnmount all filesystems: Part of LFS base.
K70swap../init.d/swapTurn off swap: Part of LFS base.
K80network../init.d/networkShut down networking: Part of LFS base.
K90localnet../init.d/localnetRemove loopback interface: Part of LFS base.
K99halt../init.d/haltShut down system: Part of LFS base.

rc1.d

Table A-2. rc1.d symlinks

NumberTitleLinkExplanation
K00lprng../init.d/lprngShut down LPR print spooler: LPRng-3.8.20
K05gdm../init.d/gdmShut down Gnome display manager Daemon: gdm-2.4.1.3
K10gpm../init.d/gpmShut down General Purpose Mouse Daemon: gpm-1.20.1
K25postfix../init.d/postfixShut down Postfix MTA: postfix-2.0.7
K26mysql../init.d/mysqlShut down MySQL Daemon: MySQL-3.23.55
K26postgres../init.d/postgresShut down PostgreSQL Daemon: Postgres-7.3.2
K30sshd../init.d/sshdShut down Secure Shell Daemon: openssh-3.6.1p1
K35alsa../init.d/alsaSave volume settings: alsa-0.9.2
K48samba../init.d/sambaStop network file system: samba-2.2.8a
K48NFS../init.d/nfsStop network file system:
K49portmap../init.d/portmapStop Forwarding RPC requests: portmap-5
K49xinetd../init.d/xinetdStop internet services daemon: xinetd-2.3.10
K49bind../init.d/bindStop named services daemon (DNS): bind-9.2.2
K59firewall../init.d/firewallUnset firewall settings: Firewalling
K80sysklogd../init.d/sysklogdShut down networking: Part of LFS base.
K90network../init.d/networkShut down networking: Part of LFS base.

rc2.d

Table A-3. rc2.d symlinks

NumberTitleLinkExplanation
K05gdm../init.d/gdmShut down Gnome display manager Daemon: gdm-2.4.1.3
K10gpm../init.d/gpmShut down General Purpose Mouse Daemon: gpm-1.20.1
K25postfix../init.d/postfixShut down Postfix MTA: postfix-2.0.7
K26mysql../init.d/mysqlShut down MySQL Daemon: MySQL-3.23.55
K26postgres../init.d/postgresShut down PostgreSQL Daemon: Postgres-7.3.2
K30sshd../init.d/sshdShut down Secure Shell Daemon: openssh-3.6.1p1
K48samba../init.d/sambaStop network file system: samba-2.2.8a
K48NFS../init.d/nfsStop network file system:
K49portmap../init.d/portmapStop Forwarding RPC requests: portmap-5
K49xinetd../init.d/xinetdStop internet services daemon: xinetd-2.3.10
K49bind../init.d/bindStop named services daemon (DNS): bind-9.2.2
K59firewall../init.d/firewallUnset firewall settings: Firewalling
K90network../init.d/networkShut down networking: Part of LFS base.
S10sysklogd../init.d/sysklogdStart system and kernel logging: Part of LFS base.
S25random../init.d/randomRestore random seed: random
S40alsa../init.d/alsaStart up sound system: alsa-0.9.2
S40fcron../init.d/fcronStart Cron Daemon: fcron-2.9.3
S99cups../init.d/cupsStart the Common Unix printing system: cups-1.1.18
S99lprng../init.d/lprngStart the LPR print spooler: LPRng-3.8.20

rc3.d

Table A-4. rc3.d symlinks

NumberTitleLinkExplanation
K05gdm../init.d/gdmShut down Gnome display manager Daemon: gdm-2.4.1.3
S10sysklogd../init.d/sysklogdStart system and kernel logging: Part of LFS base.
S20network../init.d/networkStart networking: Part of LFS base.
S21firewall../init.d/firewallLoad firewall settings: Firewalling
S22bind../init.d/bindStart named services daemon (DNS): bind-9.2.2
S22portmap../init.d/portmapForwards RPC requests: portmap-5
S23xinetd../init.d/xinetdLoad internet services daemon: xinetd-2.3.10
S24NFS../init.d/nfsStart network file system:
S24samba../init.d/sambaStart network file system: samba-2.2.8a
S25random../init.d/randomRestore random seed: random
S30sshd../init.d/sshdStart Secure Shell Daemon: openssh-3.6.1p1
S34mysql../init.d/mysqlStart MySQL Daemon: MySQL-3.23.55
S34postgres../init.d/postgresStart PostgreSQL Daemon: Postgres-7.3.2
S35postfix../init.d/postfixStart Postfix MTA: postfix-2.0.7
S40alsa../init.d/alsaStart up sound system: alsa-0.9.2
S40fcron../init.d/fcronStart Cron Daemon: fcron-2.9.3
S70gpm../init.d/gpmStart the General Purpose Mouse Daemon: gpm-1.20.1
S99cups../init.d/cupsStart the Common Unix printing system: cups-1.1.18
S99lprng../init.d/lprngStart the LPR print spooler: LPRng-3.8.20

rc4.d

Table A-5. rc4.d symlinks

NumberTitleLinkExplanation
K05gdm../init.d/gdmShut down Gnome display manager Daemon: gdm-2.4.1.3
S10sysklogd../init.d/sysklogdStart system and kernel logging: Part of LFS base.
S20network../init.d/networkStart networking: Part of LFS base.
S21firewall../init.d/firewallLoad firewall settings: Firewalling
S22bind../init.d/bindStart named services daemon (DNS): bind-9.2.2
S22portmap../init.d/portmapForwards RPC request: portmap-5
S23xinetd../init.d/xinetdLoad internet services daemon: xinetd-2.3.10
S24NFS../init.d/nfsStart network file system:
S24samba../init.d/sambaStart network file system: samba-2.2.8a
S25random../init.d/randomRestore random seed: random
S30sshd../init.d/sshdStart Secure Shell Daemon: openssh-3.6.1p1
S34mysql../init.d/mysqlStart MySQL Daemon: MySQL-3.23.55
S34postgres../init.d/postgresStart PostgreSQL Daemon: Postgres-7.3.2
S35postfix../init.d/postfixStart Postfix MTA: postfix-2.0.7
S40alsa../init.d/alsaStart up sound system: alsa-0.9.2
S40fcron../init.d/fcronStart Cron Daemon: fcron-2.9.3
S70gpm../init.d/gpmStart the General Purpose Mouse Daemon: gpm-1.20.1
S99lprng../init.d/lprngStart the LPR print spooler: LPRng-3.8.20

rc5.d

Table A-6. rc5.d symlinks

NumberTitleLinkExplanation
S10sysklogd../init.d/sysklogdStart system and kernel logging: Part of LFS base.
S20network../init.d/networkStart networking: Part of LFS base.
S21firewall../init.d/firewallLoad firewall settings: Firewalling
S22bind../init.d/bindStart named services daemon (DNS): bind-9.2.2
S22portmap../init.d/portmapForwards RPC requests: portmap-5
S23xinetd../init.d/xinetdLoad internet services daemon: xinetd-2.3.10
S24NFS../init.d/nfsStart network file system:
S24samba../init.d/sambaStart network file system: samba-2.2.8a
S25random../init.d/randomRestore random seed: random
S30sshd../init.d/sshdStart Secure Shell Daemon: openssh-3.6.1p1
S34mysql../init.d/mysqlStart MySQL Daemon: MySQL-3.23.55
S34postgres../init.d/postgresStart PostgreSQL Daemon: Postgres-7.3.2
S35postfix../init.d/postfixStart Postfix MTA: postfix-2.0.7
S40alsa../init.d/alsaStart up sound system: alsa-0.9.2
S40fcron../init.d/fcronStart Cron Daemon: fcron-2.9.3
S70gpm../init.d/gpmStart the General Purpose Mouse Daemon: gpm-1.20.1
S95gdm../init.d/gdmStart the Gnome display manager Daemon: gdm-2.4.1.3
S99cups../init.d/cupsStart the Common Unix printing system: cups-1.1.18
S99lprng../init.d/lprngStart the LPR print spooler: LPRng-3.8.20

rc6.d

Table A-7. rc6.d symlinks

NumberTitleLinkExplanation
K00lprng../init.d/lprngShut down LPR print spooler: LPRng-3.8.20
K05gdm../init.d/gdmShut down Gnome display manager Daemon: gdm-2.4.1.3
K08fcron../init.d/fcronShut down Cron Daemon: fcron-2.9.3
K10gpm../init.d/gpmShut down General Purpose Mouse Daemon: gpm-1.20.1
K25postfix../init.d/postfixShut down Postfix MTA: postfix-2.0.7
K26mysql../init.d/mysqlShut down MySQL Daemon: MySQL-3.23.55
K26postgres../init.d/postgresShut down PostgreSQL Daemon: Postgres-7.3.2
K30sshd../init.d/sshdShut down Secure Shell Daemon: openssh-3.6.1p1
K35alsa../init.d/alsaSave volume settings: alsa-0.9.2
K40sysklogd../init.d/sysklogdStop system and kernel logging: Part of LFS base.
K45random../init.d/randomSave random seed: random
K48samba../init.d/sambaStop network file system: samba-2.2.8a
K48NFS../init.d/sambaStop network file system:
K49portmap../init.d/portmapStop Forwarding RPC requests: portmap-5
K49xinetd../init.d/xinetdStop internet services daemon: xinetd-2.3.10
K49bind../init.d/bindStop named services daemon (DNS): bind-9.2.2
K50sendsignals../init.d/sendsignalsKill processes: Part of LFS base.
K59firewall../init.d/firewallUnset firewall settings: Firewalling
K60mountfs../init.d/mountfsUnmount all filesystems: Part of LFS base.
K70swap../init.d/swapTurn off swap: Part of LFS base.
K80network../init.d/networkShut down networking: Part of LFS base.
K90localnet../init.d/localnetRemove loopback interface: Part of LFS base.
K99reboot../init.d/haltReboot system: Part of LFS base.

Appendix B. Installing in non-default locations

When you want to install a package to a location other than /, or /usr, you are installing outside the default envionment settings on most machines. The following examples should assist you in determining how to correct this situation. The examples cover the complete range of settings that may need updating, but they are not all needed in every situation.

  • Expand the PATH to include $PREFIX/bin.

  • Expand the PATH for root to include $PREFIX/sbin.

  • Add $PREFIX/lib to /etc/ld.so.conf or expand LD_LIBRARY_PATH to include it.

  • Add $PREFIX/man to /etc/man.conf or expand MANPATH.

  • Add $PREFIX/info to INFOPATH.

  • Add $PREFIX/lib/pkgconfig to PKG_CONFIG_PATH.

  • Add $PREFIX/include to CPPFLAGS when compiling packages that depend on the package you installed.

Notes

[1]

rewriting IP-headers of the packets it routes from clients with private IP-addresses onto the internet so that they seem to come from the firewall itself

[2]

If you needed assistance howto configure, compile and install a new kernel, refer back to chapter VIII of the LinuxFromScratch book, Installing a kernel and eventually Making the LFS system bootable ; note, that you'll need to reboot to actually run your new kernel.

[3]

Think of a name server giving answers that make your bind crash, or, even worse, that implement a worm via a buffer-overflow.