Beyond Linux From Scratch Version 6.3 ® BLFS Development
Beyond Linux From Scratch Version 6.3 ® BLFS Development
Published 2008-08-24
Copyright © 2001-2008 BLFS Development Team
Abstract
This book follows on from the Linux From Scratch book. It introduces and guides the reader through additions to the system including
networking, graphical interfaces, sound support, and printer and scanner support.
Revision History
Revision 6.3 2008-08-24 Seventh release
Revision 6.2.0 2007-02-14 Sixth release
Revision 6.1 2005-08-14 Fifth release
Revision 6.0 2005-04-02 Fourth release
Revision 5.1 2004-06-05 Third release
Revision 5.0 2003-11-06 Second release
Revision 1.0 2003-04-25 First release
Copyright © 2001-2008, BLFS Development Team
All rights reserved.
Descriptive text is licensed under a Creative Commons License.
Computer instructions are licensed under the Academic Free License v. 2.1.
Linux® is a registered trademark of Linus Torvalds.
Beyond Linux® From Scratch - Version 6.3
Dedication
This book is dedicated to the LFS community
i
Beyond Linux® From Scratch - Version 6.3
Table of Contents
Preface ..................................................................................................................................................................... xiv
Foreword ............................................................................................................................................................ xv
Who Would Want to Read this Book ............................................................................................................... xv
Organization ...................................................................................................................................................... xvi
Errata ................................................................................................................................................................ xvii
I. Introduction ............................................................................................................................................................. 1
1. Welcome to BLFS ........................................................................................................................................... 2
Acknowledgments .......................................................................................................................................... 2
Credits ............................................................................................................................................................ 2
Which Sections of the Book Do I Want? ..................................................................................................... 5
Conventions Used in this Book ..................................................................................................................... 6
Book Version ................................................................................................................................................. 7
Mirror Sites .................................................................................................................................................... 7
Getting the Source Packages ......................................................................................................................... 7
Change Log .................................................................................................................................................... 8
Mailing Lists ................................................................................................................................................ 31
BLFS Wiki ................................................................................................................................................... 31
Asking for Help and the FAQ ..................................................................................................................... 32
Contact Information ..................................................................................................................................... 33
2. Important Information .................................................................................................................................... 34
Notes on Building Software ........................................................................................................................ 34
The /usr Versus /usr/local Debate ............................................................................................................... 38
Optional Patches .......................................................................................................................................... 39
BLFS Boot Scripts ....................................................................................................................................... 39
Locale Related Issues ................................................................................................................................... 39
Going Beyond BLFS ................................................................................................................................... 43
II. Post LFS Configuration and Extra Software ...................................................................................................... 45
3. After LFS Configuration Issues .................................................................................................................... 46
Creating a Custom Boot Device .................................................................................................................. 46
Configuring for Adding Users ..................................................................................................................... 47
About System Users and Groups ................................................................................................................ 48
About Devices .............................................................................................................................................. 50
The Bash Shell Startup Files ....................................................................................................................... 51
The /etc/vimrc and ~/.vimrc Files ............................................................................................................... 59
Customizing your Logon with /etc/issue ..................................................................................................... 59
The /etc/shells File ....................................................................................................................................... 60
Random Number Generation ....................................................................................................................... 61
Compressing Man and Info Pages ............................................................................................................... 61
Automate Mounting of File Systems ........................................................................................................... 74
Configuring for Network Filesystems ......................................................................................................... 77
4. Security .......................................................................................................................................................... 78
OpenSSL-0.9.8g ........................................................................................................................................... 79
GnuTLS-1.6.3 ............................................................................................................................................... 81
CrackLib-2.8.12 ............................................................................................................................................ 83
Linux-PAM-0.99.10.0 .................................................................................................................................. 86
ii
Beyond Linux® From Scratch - Version 6.3
Shadow-4.0.18.1 ........................................................................................................................................... 89
Iptables-1.3.8 ................................................................................................................................................ 98
Setting Up a Network Firewall .................................................................................................................. 100
GnuPG-1.4.7 ............................................................................................................................................... 109
GnuPG-2.0.8 ............................................................................................................................................... 111
Tripwire-2.4.1.2 .......................................................................................................................................... 114
Heimdal-1.1 ................................................................................................................................................ 117
MIT Kerberos V5-1.6 ................................................................................................................................ 126
Cyrus SASL-2.1.22 .................................................................................................................................... 133
Stunnel-4.21 ................................................................................................................................................ 136
Sudo-1.6.9p15 ............................................................................................................................................. 140
NSS-3.11.7 ................................................................................................................................................. 143
5. File Systems ................................................................................................................................................. 146
ReiserFS-3.6.20 .......................................................................................................................................... 147
XFS-2.9.7 ................................................................................................................................................... 149
6. Editors .......................................................................................................................................................... 151
Vim-7.1 ....................................................................................................................................................... 152
Emacs-22.1 ................................................................................................................................................. 155
Nano-2.0.7 .................................................................................................................................................. 157
JOE-3.5 ....................................................................................................................................................... 159
Ed-0.8 ......................................................................................................................................................... 160
Bluefish-1.0.7 ............................................................................................................................................. 161
Other Editors .............................................................................................................................................. 163
7. Shells ............................................................................................................................................................ 164
Tcsh-6.15.00 ............................................................................................................................................... 165
ZSH-4.3.6 ................................................................................................................................................... 167
Dash-0.5.4 ................................................................................................................................................... 170
ksh-2008-02-02 ........................................................................................................................................... 172
III. General Libraries and Utilities ........................................................................................................................ 174
8. General Libraries ......................................................................................................................................... 175
PCRE-7.6 .................................................................................................................................................... 176
Popt-1.10.4 ................................................................................................................................................. 178
S-Lang-2.1.3 ............................................................................................................................................... 179
Gamin-0.1.9 ................................................................................................................................................ 181
libxml2-2.6.31 ............................................................................................................................................ 183
libxslt-1.1.22 ............................................................................................................................................... 185
libgtkhtml-2.11.1 ........................................................................................................................................ 186
GMP-4.2.2 .................................................................................................................................................. 187
GDBM-1.8.3 ............................................................................................................................................... 189
GLib-1.2.10 ................................................................................................................................................ 190
GLib-2.12.12 .............................................................................................................................................. 191
LibIDL-0.8.8 ............................................................................................................................................... 193
Libcroco-0.6.1 ............................................................................................................................................ 195
libgsf-1.14.7 ................................................................................................................................................ 196
libglade-2.6.1 .............................................................................................................................................. 198
Expat-2.0.1 ................................................................................................................................................. 199
libESMTP-1.0.4 .......................................................................................................................................... 200
iii
Beyond Linux® From Scratch - Version 6.3
iv
Beyond Linux® From Scratch - Version 6.3
v
Beyond Linux® From Scratch - Version 6.3
vi
Beyond Linux® From Scratch - Version 6.3
vii
Beyond Linux® From Scratch - Version 6.3
viii
Beyond Linux® From Scratch - Version 6.3
ix
Beyond Linux® From Scratch - Version 6.3
x
Beyond Linux® From Scratch - Version 6.3
xi
Beyond Linux® From Scratch - Version 6.3
xii
Beyond Linux® From Scratch - Version 6.3
xiii
Beyond Linux® From Scratch - Version 6.3
Preface
Having helped out with Linux From Scratch 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://www.linuxfromscratch.org/hints). 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 <at> linuxfromscratch.org
BLFS Editor (July 2001–March 2003)
I still remember how I found the BLFS project and started using the instructions that were completed at the time.
I could not believe how wonderful it was to get an application up and running very quickly, with explanations as
to why things were done a certain way. Unfortunately, for me, it wasn't long before I was opening applications that
had nothing more than "To be done" on the page. I did what most would do, I waited for someone else to do it. It
wasn't too long before I am looking through Bugzilla for something easy to do. As with any learning experience, the
definition of what was easy kept changing.
We still encourage you to become involved as BLFS is never really finished. Contributing or just using, we hope
you enjoy your BLFS experience.
Larry Lawrence
larry <at> linuxfromscratch.org
BLFS Editor (March 2003–June 2004)
The BLFS project is a natural progression of LFS. Together, these projects provide a unique resource for the Open
Source Community. They take the mystery out of the process of building a complete, functional software system from
the source code contributed by many talented individuals throughout the world. They truly allow users to implement
the slogan "Your distro, your rules."
Our goal is to continue to provide the best resource available that shows you how to integrate many significant Open
Source applications. Since these applications are constantly updated and new applications are developed, this book
will never be complete. Additionally, there is always room for improvement in explaining the nuances of how to
install the different packages. To make these improvements, we need your feedback. I encourage you to participate
on the different mailing lists, news groups, and IRC channels to help meet these goals.
Bruce Dubbs
bdubbs <at> linuxfromscratch.org
BLFS Editor (June 2004–December 2006)
xiv
Beyond Linux® From Scratch - Version 6.3
My introduction to the [B]LFS project was actually by accident. I was trying to build a GNOME environment using
some how-tos and other information I found on the web. A couple of times I ran into some build issues and Googling
pulled up some old BLFS mailing list messages. Out for curiosity, I visited the Linux From Scratch web site and
shortly thereafter was hooked. I've not used any other Linux distribution for personal use since.
I can't promise anyone will feel the sense of satisfaction I felt after building my first few systems using [B]LFS
instructions, but I sincerely hope that your BLFS experience is as rewarding for you as it has been for me.
The BLFS project has grown significantly the last couple of years. There are more package instructions and related
dependencies than ever before. The project requires your input for continued success. If you discover that you enjoy
building BLFS, please consider helping out in any way you can. BLFS requires hundreds of hours of maintenance to
keep it even semi-current. If you feel confident enough in your editing skills, please consider joining the BLFS team.
Simply contributing to the mailing list discussions with sound advice and/or providing patches to the book's XML
will probably result in you receiving an invitation to join the team.
Randy McMurchy
randy <at> linuxfromscratch.org
BLFS Editor (December 2006–Present)
Foreword
BLFS version 6.3 is the complement to the LFS 6.3 book. It has been 18 months since the last release of BLFS and
almost 12 months since LFS-6.3 was released. Though we would like to release BLFS versions as quickly as possible
after an LFS release, this version lagged a bit due to Editor inactivity. However, early on in 2008 several new Editors
were brought on board which helped stimulate a flurry of activity. Many new packages have been introduced in the
6.3 version, as well as many updates, refinements and additions to the existing packages.
The BLFS book now provides build and configuration instructions for almost 500 packages (many more than that
if you want to count each individual package in the autotooled X Window instructions). Some of the new packages
introduced in this version are: Dash, ksh, D-Bus bindings, Wireshark (formerly named Ethereal), rxvt-unicode,
Gutenprint (formerly name Gimp-Print), Pidgin (formerly name Gaim), GnuTLS (and many of its dependencies), Qt
version 4.x, GnuPG version 2.x, and Amarok. Major updates include GNOME-2.18.3 (with several new GNOME
packages), KDE-3.5.9, Firefox-2.x, Thunderbird-2.x, and most (if not all) of the mainline server packages. As always,
the list of packages that have been upgraded or added as well as configuration and build command changes are
annotated in the Change Log.
As always, the main thrust of BLFS development will be to support the changes in the current LFS development
book, but we're releasing this version of BLFS so that builders of the stable LFS book can continue on into BLFS with
known good instructions that should be 100% compatible to provide a semi current and very stable Linux platform.
Enjoy!
Randy McMurchy
August 24th, 2008
xv
Beyond Linux® From Scratch - Version 6.3
the assumption that you are using a base LFS system with every package listed in the LFS book already installed and
configured. 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!
Since Release 5.0, the BLFS book version matches the LFS book version. This book may be incompatible with a
previous or latter release of the LFS book.
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 IX - GNOME
GNOME is the main alternative to KDE in the Desktop Environment arena and we cover GNOME-2.18 here.
xvi
Beyond Linux® From Scratch - Version 6.3
Part X - 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 XI - Multimedia
Here we cover setting multimedia libraries and drivers along with some audio, video and CD-writing programs.
Appendices
The Appendices cover information which doesn't belong in the main book; they are mainly there as a reference.
Errata
The software used to create BLFS applications is constantly being updated and enhanced. Security warnings and
bug fixes may become available after the BLFS book has been released. To check whether the package versions or
instructions in this release of BLFS need any modifications to accommodate security vulnerabilities or other bug fixes,
please visit http://www.linuxfromscratch.org/blfs/errata/6.3/ before proceeding with your build. You should note any
changes shown and apply them to the relevant section of the book as you progress with building the applications
in BLFS.
xvii
Beyond Linux® From Scratch - Version 6.3
Part I. Introduction
Beyond Linux® From Scratch - Version 6.3
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.
• Jeff Bauman (former co-editor of the book) for his assistance with getting BLFS off the ground.
• Gerard Beekmans <gerard <at> linuxfromscratch.org> for starting and writing the vast majority of the LFS
project.
• Robert Briggs for donating the linuxfromscratch.org and linuxfromscratch.com domain names.
• DREAMWVR.COM for their ongoing sponsorship by donating various resources to the LFS and related sub
projects.
• Bruce Dubbs for donating the anduin package server and his substantial contribution to the purchase of the new
quantum server.
• Garrett LeSage <garrett <at> linux.com> for creating the LFS banner.
• Frank Skettino <bkenoah <at> oswd.org> at OSWD for coming up with the initial design of the LFS and BLFS
websites.
• Mark Stone <mstone <at> linux.com> for donating the original linuxfromscratch.org servers.
• Jesse Tie-Ten-Quee <higho <at> linuxfromscratch.org> for answering many questions on IRC, having a great
deal of patience and for not killing the former editor for the joke in the original BLFS announcement!
• Countless other people on the various LFS and BLFS mailing lists who are making this book possible 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 left people out and if you feel this is the case, drop us a 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 [email protected] 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
• Editor: Randy McMurchy <[email protected]>
2
Beyond Linux® From Scratch - Version 6.3
• Co-Editors: Robert Daniels, Richard Downing, Bruce Dubbs, Manuel Canales Esparcia, Ag Hatzimanikas,
David Jensen, DJ Lucas, Ken Moffet, Dan Nicholson, Alexander Patrakov, Chris Staub, Tushar Teredesai,
Thomas Trepl, and Christian Wurst
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 02: Package Management: Tushar Teredesai.
• Chapter 02: Automated Building Procedures: Randy McMurchy.
• Chapter 02: Locale Related Issues: Alexander Patrakov and Randy McMurchy.
• Chapter 03: /etc/inputrc: Chris Lynn.
• Chapter 03: Customizing your logon & vimrc: Mark Hymers.
• Chapter 03: /etc/shells: Igor Zivkovic.
• Chapter 03: Random number script Larry Lawrence.
• Chapter 03: Creating a Custom Boot Device Bruce Dubbs.
• Chapter 03: The Bash Shell Startup Files James Robertson revised by Bruce Dubbs.
• Chapter 03: Compressed docs Olivier Peres.
• Chapter 04: Firewalling: Henning Rohde with thanks to Jeff Bauman. Revised by Bruce Dubbs.
• Chapter 11: Which Mark Hymers with many thanks to Seth Klein and Jesse Tie-Ten-Quee.
• Chapter 25: X Window System Environment: Bruce Dubbs.
• Chapter 27: Intro to Window Managers: Bruce Dubbs.
• Chapters 28, 29, and 30: KDE: Bruce Dubbs.
• Chapters 31 and 32: GNOME: Larry Lawrence.
3
Beyond Linux® From Scratch - Version 6.3
• alsa, cvs, dhcpcd, gpm, hdparm, libjpeg, libmng, libpng, libtiff, giflib, links, lynx, openssl, tcsh, which and zsh:
Mark Hymers
• ALSA Firmware, ALSA OSS, inetutils, GLib, GTK+, libxml and vim: James Iwanek
• db and lcms: Jeremy Jones and Mark Hymers
• aalib, Alsa, ffmpeg, MPlayer, transcode, xvid and xsane: Alex Kloss
• ntp: Eric Konopka
• AbiWord, at-spi, ATK, audiofile, avifile, bc, bug-buddy, cdrdao, cdrtools, cpio, curl, dhcp, eog, esound, fcron,
fluxbox, 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, gnome-user-docs,
gnumeric, GTK+2, gtk-doc, gtk-engines, eel, imlib, intltool, lame, libao, libart_lgpl, libbonobo, libbonoboui,
libgail-gnome, libglade2, libgnome, libgnomecanvas, libgnomeprint, libgnomeprintui, libgnomeui, libgsf,
libgtkhtml, libgtop, libIDL, libogg, librep, librsvg, libvorbis, libwnck, libxml2, libxslt, LPRng, Linux-PAM,
metacity, MIT Kerberos 5, MPlayer, mutt, nautilus, OpenJade, OpenSP, OpenSSH, ORBit2, pan, Pango, 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
• Archive::Zip, cracklib, JDK6, ksh, libdrm, libpcap, Mesa, netfs, OpenOffice-2, PPP (update), Samba-3,
Subversion, Xorg-7 and xterm: DJ Lucas
• ALSA Tools, Apache Ant, cairo, Cyrus-SASL, D-BUS, D-Bus Bindings, DejaGnu, desktop-file-utils, DocBook
DSSSL Stylesheets, DocBook-utils, dvd+rw-tools, Evince, Evolution Data Server, Exim (many additions),
Expect, FOP, FreeTTS, FriBidi, GC, GCC (rewrite), GMime, gnome-audio, gnome-backgrounds, gnome-menus,
gnome-mount, gnome-screensaver, gnome-volume-manager, GNOME Doc Utils, GNOME Keyring Manager,
GnuCash (version 2), GnuPG2, GnuTLS, GOffice, Graphviz, GStreamer Base Plug-ins, GStreamer Good
Plug-ins, GStreamer Ugly Plug-ins, HAL, Heimdal, HTML Tidy, icon-naming-utils, ISO Codes, JadeTeX,
Java Access Bridge, JUnit, K3b, Libassuan, LessTif (rewrite), libexif, libgail-gnome, libgcrypt, libgnomecups,
libgnomekbd, libgpg-error, Libidn, Libksba, libmpeg2, libmusicbrainz, libquicktime, mcs, MIT Kerberos V5
(many updates and enhancements), MPlayer (extensive overhaul), NSS, Orca, Other Programming Tools,
PDL, Perl Modules, pilot-link, PIN-Entry, Poppler, Pth, PyXML, Samba 3 (many additions), SANE (original
instructions by Alex Kloss), Shadow (rewrite), SLIB, Sound Juicer, Stunnel, Subversion Client (many additions),
Sysstat, system-tools-backends, Totem, unixODBC, Wireshark and usbutils: Randy McMurchy
• aspell, balsa, bind, cvs server, emacs, evolution, exim, expat, GnuCash, gtkhtml, guile, g-wrap, leafnode, lesstif,
libesmtp, pine, portmap, PostgreSQL, qpopper, reiserfs, sendmail, slrn, teTeX, tcp-wrappers, and xinetd: Billy
O'Connor
• Gutenprint (originally named Gimp-Print), libusb, FAAC, FAAD2 and TIN: Alexander E. Patrakov
• Screen: Andreas Pedersen
• nfs-utils: Reinhard
• ESP Ghostscript: Matt Rogers
• iptables: Henning Rohde
• fontconfig, gcc, seamonkey, nas, openoffice, ispell, mailx (formerly named Nail), ImageMagick, hd2u, tcl, tk
and bind-utils: Tushar Teredesai
• MySQL: Jesse Tie-Ten-Quee
• PHP: Jeremy Utley
4
Beyond Linux® From Scratch - Version 6.3
• Ekiga, Epiphany, FLAC, File Roller, GNOME Magnifier, GNOME Netstatus, GNOME Speech, GOK,
Imlib2, LZO, MC, NASM, Nautilus CD Burner, Speex, XScreenSaver, Zenity, compface, freeglut, gcalctool,
gucharmap, id3lib, kde-i18n, kdeaccessibility, kdebindings, kdesdk, kdevelop, kdewebdev, libFAME, liba52,
libdv, libdvdcss, libdvdread, libmad, libmikmod and libmpeg3: Igor Zivkovic
General Acknowledgments
• Fernando Arbeiza for doing great quality assurance on Shadow utilizing PAM. The machine access he saved
may have been yours.
• Archaic for trouble shooting the mozilla section by performing multiple builds and for providing a description of
the various mozilla extensions.
• Miguel Bazdresch for many suggestions and contributions to the Other Programming Tools section.
• Gerard Beekmans for generally putting up with us and for running the whole LFS project.
• Oliver Brakmann for developing the dhcpcd patch for FHS compliance.
• Ian Chilton for writing the nfs hint.
• Nathan Coulson for writing the new network bootscripts.
• Nathan Coulson, DJ Lucas and Zack Winkles for reworking the bootscripts used throughout the book.
• Jim Harris for writing the dig-nslookup-host.txt hint on which the bind-utils instructions are based.
• Lee Harris for writing the gpm.txt hint on which our gpm instructions are based.
• Marc Heerdink for creating patches for tcp_wrappers and portmap and for writing the gpm2.txt hint on which
our gpm instruction are based.
• Mark Hymers for initiating the BLFS project and writing many of the initial chapters of the book.
• J_Man for submitting a gpm-1.19.3.diff file on which our gpm instructions are based.
• Jeremy Jones (otherwise known as mca) for hacking Makefiles and general assistance.
• Steffen Knollmann for revising the JadeTeX instructions to work with teTex-3.0.
• Eric Konopka for writing the ntp.txt hint on which the ntp section is based.
• Scot McPherson for writing the gnome-1.4.txt hint from which was gathered useful information and for warning
us that GNOME Version 2.0 may not be ready to put in the book.
• Billy O'Connor for building GNOME 2.0 so many times and being very helpful with his comments on that
section.
• Alexander E. Patrakov for patches and suggestions to improve the book content, assistance with alsa dev.d
helpers, and increasing the l10n awareness.
• Ted Riley for writing the Linux-PAM + CrackLib + Shadow hint on which reinstalling Shadow to use PAM is
based.
• Jeremy Byron and David Ciecierski for assisting with, modifying, and testing various OpenOffice-2.0-pre builds
and patches.
5
Beyond Linux® From Scratch - Version 6.3
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 Chapter 2, Important Information,
as this contains comments about how to unpack software, issues related to using different locales 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, Security), File Systems (Chapter 5, File Systems), Editors
(Chapter 6, Editors) and Shells (Chapter 7, Shells). Indeed, you may wish to reference certain parts of this chapter
(especially the sections on Editors and File Systems) 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 Chapter 12, Programming) 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 as each BLFS installation 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 Basic Networking part. It deals with connecting to the Internet
or your LAN (Chapter 13, Connecting to a Network) using a variety of methods such as DHCP and PPP, and with
items such as Networking Libraries (Chapter 14, Networking Libraries) 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 Servers part of the book. Those wanting to build servers should find a good starting point there. Note that
this section also contains information on various database packages.
The next parts of the book principally deal with desktop systems. This portion of the book starts with a part talking
about X and Window Managers. This part also deals with some generic X-based libraries (Chapter 24, X Libraries).
After this, KDE and GNOME are given their own parts which are followed by one on X Software.
The book then moves on to deal with Multimedia packages. Note that many people may want to use the ALSA-1.0.13
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.
We hope you enjoy using BLFS and find it useful.
6
Beyond Linux® From Scratch - Version 6.3
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 hypertext links external to the book such as HowTos, download locations,
websites, etc.
SeaMonkey-1.1.9
This form of text is used for links internal to the book such as another section describing a different
package.
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.
<REPLACED TEXT>
This form of text is used to encapsulate text that should be modified and is not to be typed as seen,
or copy and pasted. Note that the square brackets are not part of the text, but should be substituted
for as well.
root
This form of text is used to show a specific system user or group reference in the instructions.
Book Version
This is BLFS-BOOK version 6.3 dated August 24th, 2008. This version is intended as the complement to the LFS-6.3
book.
Mirror Sites
The BLFS project has a number of mirrors set up world-wide to make it easier and more convenient for you to access
the website. Please visit the http://www.linuxfromscratch.org/mirrors.html website for the list of current mirrors.
7
Beyond Linux® From Scratch - Version 6.3
To overcome this problem, the BLFS Team, with the assistance of Server Beach, has made an HTTP/FTP site available
at anduin.linuxfromscratch.org. This site has all the sources of the exact versions of the packages used in BLFS. If
you can't find the BLFS package you need, get it there.
We would like to ask a favor, however. Although this is a public resource for you to use, we do not want to abuse it.
We have already had one unthinking individual download over 3 GB of data, including multiple copies of the same
files that are placed at different locations (via symlinks) to make finding the right package easier. This person clearly
did not know what files he needed and downloaded everything. The best place to download files is the site or sites
set up by the source code developer. Please try there first.
Change Log
Please note that the Change Log only lists which editor was responsible for putting the changes into SVN; please
read the Credits page in Chapter 1 for details on who wrote what.
Current release: 6.3 – August 24th, 2008
Changelog Entries:
• [rdaniels] - Added --without-ffmpeg to Akode instructions to prevent compilation errors from building Akode
with FFmpeg support.
• May 14th, 2008
• [randy] - Added a patch to the rxvt-unicode instructions to fix a security vulnerability and changed the
download URL to a more consistent location.
• May 12th, 2008
• [randy] - Released BLFS-6.3-rc1.
• [dj] - Removed JDK source installation instructions because of unavailable security patches.
• May 10th, 2008
• [randy] - Fixed broken download URLs in various package instructions.
• [randy] - Updated various Perl Modules: Business-ISBN-Data-1.17, DateManip-5.54, IO-Zlib-1.09,
Text-CSV-1.05 (was Text-CSV_PP), Text-CSV_XS-0.45, version-0.74 and XML-Simple-2.18.
• [randy] - Updated to ImageMagick-6.3.5-10.
• May 9th, 2008
• [dnicholson] - Fixed libXfont to work with newer versions of FreeType2.
• [randy] - Updated to rsync-3.0.2.
• [dj] - Updated to sudo-1.6.9p15.
• [dj] - Correted incorrect variable in precompiled JDK instructions.
• May 7th, 2008
• [dj] - Completed cleanup for /etc/X11 changes and /usr/X11R6 removal.
• [thomas] - Fix download location of shadow.
• May 6th, 2008
• [dj] - Removed (commented) more XFree86 related text.
• [dj] - Changed jdk symlink to use precompiled version and other text cleanups in jdk page.
• [thomas] - Updated to QT-3.3.8b.
• May 4th, 2008
• [ken] - Updated firefox to 2.0.0.14.
• May 3rd, 2008
• [dj] - Commented out remaining text related to XFree86.
• May 1st, 2008
• [dj] - Corrected location of Xorg config files for FHS compliance.
• [dj] - Corrected commands for lesstif and xvt-unicode relating to the Xorg config files. Thanks to Alexander
Patrakov for finding these.
• April 30th, 2008
• [randy] - Added missing patch commands to the Heimdal instructions.
• April 26th, 2008
10
Beyond Linux® From Scratch - Version 6.3
11
Beyond Linux® From Scratch - Version 6.3
• [ag] - Added a sed to the ed instructions to replace with symbolic links the hard links to red and its man page.
• April 4th, 2008
• [richard] - updated to a2ps-4.14.
• April 3rd, 2008
• [cwurst] - Changed download location of gimp-help. Fixes #2503.
• April 2nd, 2008
• [randy] - Updated to Which-2.19.
• April 1st, 2008
• [ken] - Updated xine-lib to 1.1.11.1.
• [thomas] - Updates on adding users to groups. Avoid destroying group assignments in usermod commands
without -a option
• [richard] - Added gperf-3.0.3 to General Utilities. Required for a2ps-4.14.
• March 31st, 2008
• [rdaniels] - Updated dependencies for all KDE packages.
• [richard] - Commented Dillo-0.8.5 out of the book.
• [ken] - Added patch for xpdf to fix vulnerabilities.
• [ken] - Updated to gnumeric-1.8.2.
• March 28th, 2008
• [ken] - Updated to cups-1.2.12 with a patch for the vulnerabilities.
• [ken] - Updated a patch to fix vulnerabilities in poppler-0.5.4.
• March 27th, 2008
• [ken] - Updated to firefox-2.0.0.13.
• [rdaniels] - Added parameters to xine-lib and xine-ui instructions to place documentation in versioned
directories.
• [richard] - Updated to Bluefish-1.0.7.
• March 26th, 2008
• [bdubbs] - Expanded the discussion on autofs configuration.
• [cwurst] - Added build instructions for UnRar. Fixes #2345.
• [ag] - Added a sed to Tcl/Tk instructions. Fixes #2487.
• [randy] - Updated to Stunnel-4.21.
• [randy] - Added a parameter to the libgnome configure command to account for ESounD may not be installed.
• March 25th, 2008
• [randy] - Added a patch to the ESP Ghostscript instructions to fix a buffer overflow vulnerability. Thanks to
Alexander for finding it.
• [randy] - Modified a documentation installation command in the Python instructions so ownership of installed
files is correct.
• March 24th, 2008
12
Beyond Linux® From Scratch - Version 6.3
• [randy] - Added a note to the Berkeley DB instructions about the JDK-6 and GMime uudecode conflict.
• [dj] - Added a caution to the xfs-progs page and pointed the download location to the anduin server.
• March 23rd, 2008
• [Chris] - Added kernel configuration information to CUPS page. Fixes ticket #2430.
• [dj] - Updated to xfs-progs-2.9.7.
• March 22nd, 2008
• [dj] - Updated to Apache httpd-2.2.8.
• [randy] - Updated to SeaMonkey-1.1.8.
• [dj] - Added enable-tlsext option for SNI to the OpenSSL command explanations section.
• [randy] - Added the libedit package as a dependency of OpenSSH which provides sftp command-line history.
• [randy] - Updated to rsync-3.0.0.
• [randy] - Updated to Heimdal-1.1. Removed the Heimdal-Cracklib patches from both packages as Heimdal
has been converted to use Cracklib differently. Created a patch to change the names of some installed files so
they don't conflict with the E2fsprogs package.
• March 20th, 2008
• [thomas] - Added page in chapter 16 about NFS client tools. Upgrade to nfs-utils-1.1.2 and change the
download location.
• March 18th, 2008
• [alexander] - Removed WvDial, WvStreams and RP-PPPoE, as alternative instructions are available on the
PPP page. Moved the remaining packages from the Connecting to a Network part to a chapter with the same
name in the Basic Networking part.
• March 17th, 2008
• [randy] - Updated to Python-2.5.2.
• [alexander] - Removed xfsprogs-2.9.6, as they are incompatible with the LFS-6.3 kernel.
• [alexander] - Updated MCS to version 0.7.0.
• [alexander] - Added Mowgli-0.6.1.
• March 16th, 2008
• [ken] - Corrected the download locations for goffice.
• [ag] - Added header caching support in mutt. Added qdbm as optional dependency.
• [alexander] - Fixed URL for Audacious third-party plugins.
• [alexander] - Noted that mpeg4ip is a dead project.
• March 15th, 2008
• [randy] - Updated GNOME Games to reflect the GNOME-2.18.3 update. This completes all the current
GNOME packages currently in the book.
• [alexander] - Added PPPoE configuration instructions to the PPP page.
• [randy] - Updated Ekiga to reflect the GNOME-2.18.3 update.
• March 14th, 2008
13
Beyond Linux® From Scratch - Version 6.3
15
Beyond Linux® From Scratch - Version 6.3
16
Beyond Linux® From Scratch - Version 6.3
17
Beyond Linux® From Scratch - Version 6.3
19
Beyond Linux® From Scratch - Version 6.3
20
Beyond Linux® From Scratch - Version 6.3
21
Beyond Linux® From Scratch - Version 6.3
• [randy] - Updated to GIMP-2.2.17 and GIMP-Help-0.12. No changes have been made yet to support
Gutenprint instead of the deprecated Gimp-Print. Those changes will follow after Gutenprint is in the book.
• [randy] - Updated to libgsf-1.14.5.
• [randy] - Updated to XML-SAX-0.16.
• July 19th, 2007
• [randy] - Updated to GStreamer Ugly Plug-ins-0.10.6.
• [randy] - Updated to libmpeg2-0.4.1.
• [randy] - Updated to libdvdread-0.9.7.
• [randy] - Added a note to the libdvdcss instructions about an issue that may occur with the LaTeX installation.
• [randy] - Updated to LAME-3.97.
• [randy] - Updated to libao-0.8.8.
• [randy] - Updated to FLAC-1.1.4.
• [randy] - Updated to GStreamer Good Plug-ins-0.10.6.
• [randy] - Updated to Imlib2-1.4.0.
• [randy] - Updated to libdv-1.0.0.
• July 18th, 2007
• [randy] - Updated to GStreamer Base Plug-ins-0.10.13.
• [randy] - Updated to desktop-file-utils-0.13.
• [randy] - Updated to shared-mime-info-0.21.
• [randy] - Updated to GStreamer-0.10.13.
• [randy] - Added an additional sed to the LPRng instructions to correct some bad syntax.
• [randy] - Updated to pilot-link-0.12.2.
• [randy] - Updated to Nmap-4.20.
• July 17th, 2007
• [randy] - Updated to Poppler-0.5.4.
• [randy] - Updated to Wireshark-0.99.6 (formerly named Ethereal).
• [randy] - Updated to libpcap-0.9.6.
• [randy] - Updated to Samba-3.0.25b.
• [randy] - Updated to Subversion-1.4.4.
• July 16th, 2007
• [randy] - Clarified the Apache HTTPD dependencies and added a note how to build APR-util with Berkeley
DB support.
• [randy] - Updated to JUnit-4.3.1.
• [randy] - Updated to dvd+rw-tools-7.0.
• [randy] - Updated to Xpdf-3.02.
• July 15th, 2007
23
Beyond Linux® From Scratch - Version 6.3
24
Beyond Linux® From Scratch - Version 6.3
• [dnicholson] - Fixed Firefox and Thunderbird to ensure that libX11 and libXrender are found.
• June 13th, 2007
• [dj] - Added ksh-2007-03-28
• June 12th, 2007
• [dnicholson] - Updated to Mutt-1.5.16
• June 7th, 2007
• [dnicholson] - Changed the Qt /usr install with symlinks to the bin, include and lib directories in /usr/share/qt.
• [dnicholson] - Updated to NTP-4.2.4p0.
• [dnicholson] - Fixed a broken GLib URL. Reported by Ken Moffat.
• [dnicholson] - Removed the optional ctypes dependency from libmusicbrainz since it's included in Python-2.5.
Thanks to bambi for the report.
• [dnicholson] - Fixed some errors on the X Window System Components page. Reported by Spinal.
• May 31st, 2007
• [dnicholson] - Changed the xkb output directory for Xorg-Server to match that from XKeyboardConfig.
Reported by DJ Lucas.
• [dnicholson] - Streamlined the commands for each Xorg section.
• [dnicholson] - Commented out the sun video drivers and deprecated modules in the Xorg wget lists and
changed the download commands to support the comments.
• May 30th, 2007
• [dnicholson] - Fixed a broken link on the XFree86 page. Reported by Roland Puntaier.
• [dnicholson] - Added a missing expat dependency on the MesaLib page. Reported by DJ Lucas.
• May 28th, 2007
• [dnicholson] - Changed the XKeyboardConfig intltool dependency to optional and added a required
XML::Parser dependency.
• May 26th, 2007
• [dnicholson] - Removed the /opt globbing from the Bash Shell Startup Files since entries in /opt are handled
separately.
• May 25th, 2007
• [dnicholson] - Updated to libdrm-2.3.0.
• [dnicholson] - Added the XKeyboardConfig package, which replaces xkbdata for Xorg-7.
• [dnicholson] - Updated to MesaLib-6.5.2.
• [dnicholson] - Updated to Xorg-7.2.
• May 24th, 2007
• [dnicholson] - Various changes were applied to the XFree86 page.
• [dnicholson] - Added a version number to the Xorg md5sums file.
• [dnicholson] - Revert a mistaken version update to the xf86-input-elographics driver.
• [dnicholson] - Removed unnecessary commands for the imake and xorg-cf-files packages.
26
Beyond Linux® From Scratch - Version 6.3
27
Beyond Linux® From Scratch - Version 6.3
28
Beyond Linux® From Scratch - Version 6.3
29
Beyond Linux® From Scratch - Version 6.3
• [bdubbs] - Updated to cairo-1.4.2. Fixes a severe hang problem and some systems when running checks.
• [randy] - Updated to Berkeley DB-4.5.20 to match the version used in LFS.
• [randy] - Updated to JDK-1.5.0.11 (source and binary).
• March 19th, 2007
• [randy] - Updated to cpio-2.7.
• March 18th, 2007
• [randy] - Updated to NSS-3.11.5 (includes NSPR-4.6.5).
• [randy] - Added a warning to the GNOME introduction section, and links to this warning in various GNOME
package instructions telling to use the stable version of BLFS to build current GNOME.
• [randy] - Updated to GTK+-2.10.11.
• [randy] - Updated to ATK-1.18.0.
• [randy] - Updated to Pango-1.16.1.
• [randy] - Updated to cairo-1.4.0.
• [randy] - Updated to GLib-2.12.11.
• March 17th, 2007
• [randy] - Updated to libxslt-1.1.20.
• [randy] - Updated to Python-2.5.
• March 16th, 2007
• [randy] - Updated to GCC-4.1.2, which matches the version used in LFS.
• March 15th, 2007
• [randy] - Added the Dash package using a patch provided by Agathoklis Hatzimanikas.
• March 13th, 2007
• [randy] - Added a note to the Linux-PAM instructions to run the test suite after the package has been installed
and minimally configured.
• March 8th, 2007
• [alexander] - Added Recode-3.6.
• March 7th, 2007
• [djensen] - Updated to ImageMagick-6.3.3-0, man page sed by alexander.
• March 4th, 2007
• [dnicholson] - Updated the Docbook SGML & XML DTD packages to version 4.5. Patch from Matthew
Burgess.
• March 3rd, 2007
• [djensen] - Updated to PostgreSQL-8.2.3.
• [alexander] - Removed the link to the (dead) libstk site from Xine Libraries page.
• February 28th, 2007
• [dnicholson] - Made the i18n-fonts commands more explicit on the a2ps page to guard against errors. Thanks
to Nathan Coulson for the report.
30
Beyond Linux® From Scratch - Version 6.3
Mailing Lists
The linuxfromscratch.org server is hosting a number of mailing lists that are used for the development of the BLFS
book. These lists include, among others, the main development and support lists.
For more information regarding which lists are available, how to subscribe to them, archive locations, etc., visit
http://www.linuxfromscratch.org/mail.html.
BLFS Wiki
The BLFS Project has created a Wiki for users to comment on pages and instructions at http://wiki.linuxfromscratch.
org/blfs/wiki. Comments are welcome from all users.
The following are the rules for posting:
31
Beyond Linux® From Scratch - Version 6.3
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 6.3),
• 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,
• if you are installing a BLFS package on a non-LFS system.
(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
32
Beyond Linux® From Scratch - Version 6.3
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.catb.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.
Contact Information
Please direct your emails to one of the BLFS mailing lists. See Mailing lists for more information on the available
mailing lists.
The current BLFS maintainer is Randy McMurchy. If you need to reach Randy, send an email to
[email protected].
33
Beyond Linux® From Scratch - Version 6.3
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. These are referenced as needed in the installation instructions.
While you can keep the source files anywhere you like, we assume that you have unpacked the package and changed
into the directory created by the unpacking process (the 'build' directory). We also assume you have uncompressed
any required patches and they are in the directory immediately above the 'build' directory.
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 during configuration or compilation, 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.
Note
You may omit using the v parameter in the commands shown above and below if you wish to suppress the
verbose listing of all the files in the archive as they are extracted. This can help speed up the extraction as
well as make any errors produced during the extraction more obvious to you.
34
Beyond Linux® From Scratch - Version 6.3
Finally, you sometimes need to be able to unpack patches which are generally not in .tar format. The best way to do
this is to copy the patch file to parent of the 'build' directory and then run one of the following commands depending
on whether the file is a .gz or .bz2 file:
gunzip -v patchname.gz
bunzip2 -v patchname.bz2
35
Beyond Linux® From Scratch - Version 6.3
prompted for different information in a series of questions. One method to automate this type of scenario requires
putting the desired responses in a file and using redirection so that the program uses the data in the file as the answers
to the questions.
Building the CUPS package is a good example of how redirecting a file as input to prompts can help you automate
the build. If you run the test suite, you are asked to respond to a series of questions regarding the type of test to run
and if you have any auxiliary programs the test can use. You can create a file with your responses, one response per
line, and use a command similar to the one shown below to automate running the test suite:
make check < ../cups-1.1.23-testsuite_parms
This effectively makes the test suite use the responses in the file as the input to the questions. Occasionally you may
end up doing a bit of trial and error determining the exact format of your input file for some things, but once figured
out and documented you can use this to automate building the package.
echo -n -e "\n\nPlease type something (or nothing) and press Enter ---> "
read A_STRING
if test "$A_STRING" = ""; then A_STRING="Just the Enter key was pressed"
else A_STRING="You entered '$A_STRING'"
fi
echo -e "\n\n$A_STRING\n\n"
EOF
chmod 755 blfs-yes-test1
Now run the script by issuing ./blfs-yes-test1 from the command line. It will wait for a response, which can be
anything (or nothing) followed by the Enter key. After entering something, the result will be echoed to the screen.
Now use the yes command to automate the entering of a response:
yes | ./blfs-yes-test1
Notice that piping yes by itself to the script results in y being passed to the script. Now try it with a string of text:
yes 'This is some text' | ./blfs-yes-test1
The exact string was used as the response to the script. Finally, try it using an empty (null) string:
yes '' | ./blfs-yes-test1
36
Beyond Linux® From Scratch - Version 6.3
Notice this results in passing just the press of the Enter key to the script. This is useful for times when the default
answer to the prompt is sufficient. This syntax is used in the Net-tools [459] instructions to accept all the defaults
to the many prompts during the configuration step. You may now remove the test script, if desired.
ls -l /usr/bin | more
Of course, you'll be required to view the output one page at a time because the more filter was used. Now try the
same command, but this time redirect the output to a file. The special file /dev/null can be used instead of the
filename shown, but you will have no log file to examine:
Notice that this time the command immediately returned to the shell prompt without having to page through the
output. You may now remove the log file.
The last example will use the yes command in combination with output redirection to bypass having to page through
the output and then provide a y to a prompt. This technique could be used in instances when otherwise you would
have to page through the output of a file (such as a license agreement) and then answer the question of “do you accept
the above?”. For this example, another short Bash script is required:
ls -l /usr/bin | more
read A_STRING
echo -e "\n\n$A_STRING\n\n"
EOF
chmod 755 blfs-yes-test2
This script can be used to simulate a program that requires you to read a license agreement, then respond appropriately
to accept the agreement before the program will install anything. First, run the script without any automation
techniques by issuing ./blfs-yes-test2.
37
Beyond Linux® From Scratch - Version 6.3
Now issue the following command which uses two automation techniques, making it suitable for use in an automated
build script:
yes | ./blfs-yes-test2 > blfs-yes-test2.log 2>&1
If desired, issue tail blfs-yes-test2.log to see the end of the paged output, and confirmation that y was passed through
to the script. Once satisfied that it works as it should, you may remove the script and log file.
Finally, keep in mind that there are many ways to automate and/or script the build commands. There is not a single
“correct” way to do it. Your imagination is the only limit.
Dependencies
For each package described, BLFS lists the known dependencies. These are listed under several headings, whose
meaning is as follows:
• Required means that the target package cannot be correctly built without the dependency having first been
installed.
• Recommended means that BLFS strongly suggests this package is installed first for a clean and trouble-free
build, that won't have issues either during the build process, or at run-time.
• Optional means that this package might be installed for added functionality. Often BLFS will describe the
dependency to explain the added functionality that will result.
38
Beyond Linux® From Scratch - Version 6.3
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 with optional instructions to install into /opt for some specific
packages.
Optional Patches
As you follow the various sections in the book, you will observe that the book occasionally includes patches that are
required for a successful and secure installation of the packages. The general policy of the book is to include patches
that fall in one of the following criteria:
• Fixes a compilation problem.
• Fixes a security problem.
• Fixes a broken functionality.
In short, the book only includes patches that are either required or recommended. There is a Patches subproject which
hosts various patches (including the patches referenced in the books) to enable you to configure your LFS the way
you like it.
Note
It is advisable to peruse each bootscript before installation to ascertain that it satisfies your need. Also verify
that the start and stop symlinks it creates match your preferences.
39
Beyond Linux® From Scratch - Version 6.3
• Critical: The program doesn't perform its main function. The fix would be very intrusive, it's better to search for
a replacement.
• High: Part of the functionality that the program provides is not usable. If that functionality is required, it's better
to search for a replacement.
• Low: The program works in all typical use cases, but lacks some functionality normally provided by its
equivalents.
If there is a known workaround for a specific package, it will appear on that package's page. For the most recent
information about locale related issues for individual packages, check the User Notes in the BLFS Wiki.
40
Beyond Linux® From Scratch - Version 6.3
41
Beyond Linux® From Scratch - Version 6.3
break in UTF-8 locales. The visible manifestation is that the program truncates strings prematurely (i.e., at 80 bytes
instead of 80 characters). Terminal-based programs don't place the cursor correctly on the screen, don't react to the
"Backspace" key by erasing one character, and leave junk characters around when updating the screen, usually turning
the screen into a complete mess.
Fixing this kind of problems is a tedious task from a programmer's point of view, like all other cases of retrofitting
new concepts into the old flawed design. In this case, one has to redesign all data structures in order to accommodate
to the fact that a complete character may span a variable number of "char"s (or switch to wchar_t and convert as
needed). Also, for every call to the "strlen" and similar functions, find out whether a number of bytes, a number
of characters, or the width of the string was really meant. Sometimes it is faster to write a program with the same
functionality from scratch.
Among BLFS packages, this problem applies to xine User Interface-0.99.5 and all the shells.
#!/bin/sh
# Begin checkman.sh
# Usage: find /usr/share/man -type f | xargs checkman.sh
for a in "$@"
do
# echo "Checking $a..."
# Pure-ASCII manual page (possibly except comments) is OK
grep -v '.\\"' "$a" | iconv -f US-ASCII -t US-ASCII >/dev/null 2>&1 \
&& continue
# Non-UTF-8 manual page is OK
iconv -f UTF-8 -t UTF-8 "$a" >/dev/null 2>&1 || continue
# If we got here, we found UTF-8 manual page, bad.
echo "UTF-8 manual page: $a" >&2
done
# End checkman.sh
and then issuing the following command (modify the command below if the checkman.sh script is not in your PATH
environment variable):
42
Beyond Linux® From Scratch - Version 6.3
Note that if you have manual pages installed in any location other than /usr/share/man (e.g.,
/usr/local/share/man), you must modify the above command to include this additional location.
43
Beyond Linux® From Scratch - Version 6.3
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://downloads.linuxfromscratch.org/deb2targz.tar.bz2
and http://downloads.linuxfromscratch.org/rpm2targz.tar.bz2 to convert the archives into a simple tar.
gz format.
44
Beyond Linux® From Scratch - Version 6.3
46
Beyond Linux® From Scratch - Version 6.3
Also, the LFS Community has developed its own LiveCD available at http://www.linuxfromscratch.org/livecd/. This
LiveCD, in addition to having boot and rescue capabilities, is capable of building an entire LFS/BLFS system. A
copy of this CD-ROM is available with the printed version of the Linux From Scratch book. If you download the
ISO image, use cdrecord to copy the image to a CD-ROM.
Useradd
The useradd program uses a collection of default values kept in /etc/default/useradd. This file is created in
a base LFS installation by the Shadow package. If it has been removed or renamed, the useradd program uses some
internal defaults. You can see the default values by running /usr/sbin/useradd -D.
To change these values, simply modify the /etc/default/useradd file as the root user. An alternative to
directly modifying the file is to run useradd as the root user while supplying the desired modifications on the
command line. Information on how to do this can be found in the useradd man page.
/etc/skel
To get started, create an /etc/skel directory and make sure it is writable only by the system administrator, usually
root. Creating the directory as root is the best way to go.
The mode of any files from this part of the book that you put in /etc/skel should be writable only by the owner.
Also, since there is no telling what kind of sensitive information a user may eventually place in their copy of these
files, you should make them unreadable by "group" and "other".
You can also put other files in /etc/skel and different permissions may be needed for them.
Decide which initialization files should be provided in every (or most) new user's home directory. The decisions you
make will affect what you do in the next two sections, The Bash Shell Startup Files and The vimrc Files. Some or all
of those files will be useful for root, any already-existing users, and new users.
The files from those sections that you might want to place in /etc/skel include .inputrc, .bash_profile,
.bashrc, .bash_logout, .dircolors, and .vimrc. If you are unsure which of these should be placed there,
just continue to the following sections, read each section and any references provided, and then make your decision.
47
Beyond Linux® From Scratch - Version 6.3
You will run a slightly modified set of commands for files which are placed in /etc/skel. Each section will remind
you of this. In brief, the book's commands have been written for files not added to /etc/skel and instead just sends
the results to the user's home directory. If the file is going to be in /etc/skel, change the book's command(s) to
send output there instead and then just copy the file from /etc/skel to the appropriate directories, like /etc, ~
or the home directory of any other user already in the system.
When adding a new user with useradd, use the -m parameter, which tells useradd to create the user's home directory
and copy files from /etc/skel (can be overridden) to the new user's home directory. For example (perform as
the root user):
useradd -m <newuser>
Customarily, Unix systems classify users and groups into two categories: system users and regular users. The system
users and groups are given low numbers and regular users and groups have numeric values greater than all the system
values. The cutoff for these numbers is found in two parameters in the /etc/login.defs configuration file. The
default UID_MIN value is 1000 and the default GID_MIN value is 100. If a specific uid or gid value is not specified
when creating a user with useradd or a group with groupadd the values assigned will always be above these cutoff
values.
Additionally, the Linux Standard Base recommends that system uid and gid values should be below 100.
Below is a table of suggested uid/gid values used in BLFS beyond those defined in a base LFS installation. These
can be changed as desired, but provide a suggested set of consistent values.
48
Beyond Linux® From Scratch - Version 6.3
One value that is missing is 65534. This value is customarily assigned to the user nobody and group nogroup and
is unnecessary. The issue is explained in more detail in the first note in the NFS Utilities Installation section.
49
Beyond Linux® From Scratch - Version 6.3
About Devices
Although most devices needed by packages in BLFS and beyond are set up properly by udev using the default rules
installed by LFS in /etc/udev/rules.d, there are cases where the rules must be modified or augmented.
snd-fm801.index=0 snd-ens1371.index=1
If the sound card drivers are built as modules, the order can be established in the /etc/modprobe.conf file with:
SUBSYSTEM=="usb_device", SYSFS{idVendor}=="05d8",
SYSFS{idProduct}=="4002", GROUP:="scanner", MODE:="0640"
If dynamic devices are not desired, then static devices must be created on the system. In the default configuration,
the /etc/rc.d/rcsysinit.d/S10udev boot script mounts a tmpfs partition over the /dev directory. This
problem can be overcome by mounting the root partition temporarily:
50
Beyond Linux® From Scratch - Version 6.3
Warning
If the instructions below are not followed carefully, your system could become unbootable.
At this point, the system will use static devices upon the next reboot. Create any desired additional devices using
mknod.
An interactive login shell is started after a successful login, using /bin/login, by reading the /etc/passwd file.
This shell invocation normally reads /etc/profile and its private equivalent ~/.bash_profile upon startup.
An interactive non-login shell is normally started at the command-line using a shell program (e.g.,
[prompt]$/bin/bash) or by the /bin/su command. An interactive non-login shell is also started with a terminal
program such as xterm or konsole from within a graphical environment. This type of shell invocation normally copies
the parent environment and then reads the user's ~/.bashrc file for additional startup configuration instructions.
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 these shell invocations, only the environment inherited
from the parent shell is used.
The file ~/.bash_logout is not used for an invocation of the shell. It is read and executed when a user exits from
an interactive login shell.
Many distributions use /etc/bashrc for system wide initialization of non-login shells. This file is usually called
from the user's ~/.bashrc file and is not built directly into bash itself. This convention is followed in this section.
For more information see info bash -- Nodes: Bash Startup Files and Interactive Shells.
Note
Most of the instructions below are used to create files located in the /etc directory structure which requires
you to execute the commands as the root user. If you elect to create the files in user's home directories
instead, you should run the commands as an unprivileged user.
51
Beyond Linux® From Scratch - Version 6.3
/etc/profile
Here is a base /etc/profile. This file starts by setting up some helper functions and some basic parameters. It
specifies some bash history parameters and, for security purposes, disables keeping a permanent history file for the
root user. It also sets a default user prompt. It then calls small, single purpose scripts in the /etc/profile.d
directory to provide most of the initialization.
For more information on the escape sequences you can use for your prompt (i.e., the PS1 environment variable) see
info bash -- Node: Printing a Prompt.
cat > /etc/profile << "EOF"
# Begin /etc/profile
# Written for Beyond Linux From Scratch
# by James Robertson <[email protected]>
# modifications by Dagmar d'Surreal <[email protected]>
pathprepend () {
pathremove $1 $2
local PATHVARIABLE=${2:-PATH}
export $PATHVARIABLE="$1${!PATHVARIABLE:+:${!PATHVARIABLE}}"
}
pathappend () {
pathremove $1 $2
local PATHVARIABLE=${2:-PATH}
export $PATHVARIABLE="${!PATHVARIABLE:+${!PATHVARIABLE}:}$1"
}
52
Beyond Linux® From Scratch - Version 6.3
# Setup a red prompt for root and a green one for users.
NORMAL="\[\e[0m\]"
RED="\[\e[1;31m\]"
GREEN="\[\e[1;32m\]"
if [[ $EUID == 0 ]] ; then
PS1="$RED\u [ $NORMAL\w$RED ]# $NORMAL"
else
PS1="$GREEN\u [ $NORMAL\w$GREEN ]\$ $NORMAL"
fi
# Now to clean up
unset pathremove pathprepend pathappend
# End /etc/profile
EOF
53
Beyond Linux® From Scratch - Version 6.3
/etc/profile.d/dircolors.sh
This script uses the ~/.dircolors and /etc/dircolors files to control the colors of file names in a directory
listing. They control colorized output of things like ls --color. The explanation of how to initialize these files is at
the end of this section.
if [ -f "$HOME/.dircolors" ] ; then
eval $(dircolors -b $HOME/.dircolors)
fi
fi
alias ls='ls --color=auto'
EOF
/etc/profile.d/extrapaths.sh
This script adds several useful paths to the PATH and PKG_CONFIG_PATH environment variables. If you want,
you can uncomment the last section to put a dot at the end of your path. This will allow executables in the current
working directory to be executed without specifiying a ./, however you are warned that this is generally considered
a security hazard.
if [ -d ~/bin ]; then
pathprepend ~/bin
fi
#if [ $EUID -gt 99 ]; then
# pathappend .
#fi
EOF
54
Beyond Linux® From Scratch - Version 6.3
/etc/profile.d/readline.sh
This script sets up the default inputrc configuration file. If the user does not have individual settings, it uses the
global file.
/etc/profile.d/umask.sh
Setting the umask value is important for security. Here the default group write permissions are turned off for system
users and when the user name and group name are not the same.
/etc/profile.d/X.sh
If X is installed, the PATH and PKG_CONFIG_PATH variables are also updated.
/etc/profile.d/i18n.sh
This script sets an environment variable necessary for native language support. A full discussion on determining this
variable can be found on the LFS Bash Shell Startup Files page.
55
Beyond Linux® From Scratch - Version 6.3
/etc/bashrc
Here is a base /etc/bashrc. Comments in the file should explain everything you need.
NORMAL="\[\e[0m\]"
RED="\[\e[1;31m\]"
GREEN="\[\e[1;32m\]"
if [[ $EUID == 0 ]] ; then
PS1="$RED\u [ $NORMAL\w$RED ]# $NORMAL"
else
PS1="$GREEN\u [ $NORMAL\w$GREEN ]\$ $NORMAL"
fi
# End /etc/bashrc
EOF
56
Beyond Linux® From Scratch - Version 6.3
~/.bash_profile
Here is a base ~/.bash_profile. If you want each new user to have this file automatically, just change the output
of the command to /etc/skel/.bash_profile and check the permissions after the command is run. You can
then copy /etc/skel/.bash_profile to the home directories of already existing users, including root, and
set the owner and group appropriately.
append () {
# First remove the directory
local IFS=':'
local NEWPATH
for DIR in $PATH; do
if [ "$DIR" != "$1" ]; then
NEWPATH=${NEWPATH:+$NEWPATH:}$DIR
fi
done
if [ -f "$HOME/.bashrc" ] ; then
source $HOME/.bashrc
fi
if [ -d "$HOME/bin" ] ; then
append $HOME/bin
fi
unset append
# End ~/.bash_profile
EOF
57
Beyond Linux® From Scratch - Version 6.3
~/.bashrc
Here is a base ~/.bashrc. The comments and instructions for using /etc/skel for .bash_profile above
also apply here. Only the target file names are different.
cat > ~/.bashrc << "EOF"
# Begin ~/.bashrc
# Written for Beyond Linux From Scratch
# by James Robertson <[email protected]>
if [ -f "/etc/bashrc" ] ; then
source /etc/bashrc
fi
# End ~/.bashrc
EOF
~/.bash_logout
This is an empty ~/.bash_logout that can be used as a template. 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.
cat > ~/.bash_logout << "EOF"
# Begin ~/.bash_logout
# Written for Beyond Linux From Scratch
# by James Robertson <[email protected]>
# End ~/.bash_logout
EOF
/etc/dircolors
If you want to use the dircolors capability, then run the following command. The /etc/skel setup steps shown
above also can be used here to provide a ~/.dircolors file when a new user is set up. As before, just change
the output file name on the following command and assure the permissions, owner, and group are correct on the files
created and/or copied.
dircolors -p > /etc/dircolors
If you wish to customize the colors used for different file types, you can edit the /etc/dircolors file. The
instructions for setting the colors are embedded in the file.
58
Beyond Linux® From Scratch - Version 6.3
Finally, 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.
set columns=80
set wrapmargin=8
set ruler
Note that the comment tags are " instead of the more usual # or //. This is correct, the syntax for vimrc is slightly
unusual.
Below you'll find a quick explanation of what each of the options in this example file means here:
• set columns=80: This simply sets the number of columns used on the screen.
• set wrapmargin=8: This is the number of characters from the right window border where wrapping starts.
• set ruler: This makes vim show the current row and column at the bottom right of the screen.
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.
59
Beyond Linux® From Scratch - Version 6.3
One of the most common things which people want to do is clear the screen at each logon. The easiest way of doing
that is to put a "clear" escape sequence into /etc/issue. A simple way of doing this is to issue the command 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 characters (normally '^[[H^[[2J') on the first line alone.
Note
Terminal escape sequences are special codes recognized by the terminal. The ^[ represents an ASCII ESC
character. The sequence ESC [ H puts the cursor in the upper left hand corner of the screen and ESC 2 J
erases the screen. For more information on terminal escape sequences see http://rtfm.etla.org/xterm/ctlseq.
html
The following sequences 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 character sequences to display various information. All issue sequences consist
of a backslash (\) immediately followed by one of the letters explained below (so \d in /etc/issue would insert
the current date).
For example, this file is consulted by chsh to determine whether an unprivileged user may change the login shell for
her own account. If the command name is not listed, the user will be denied of change.
60
Beyond Linux® From Scratch - Version 6.3
It is a requirement for applications such as GDM which does not populate the face browser if it can't find
/etc/shells, or FTP daemons which traditionally disallow access to users with shells not included in this file.
cat > /etc/shells << "EOF"
# Begin /etc/shells
/bin/sh
/bin/bash
# End /etc/shells
EOF
61
Beyond Linux® From Scratch - Version 6.3
62
Beyond Linux® From Scratch - Version 6.3
--automatic
Compress using either gzip or bzip2, depending on the
size of the file to be compressed. Files larger than 5
kB are bzipped, files larger than 1 kB are gzipped and
files smaller than 1 kB are not compressed.
--decompress, -d
Decompress the man pages.
--fake, -f Fakes it. Print the actual parameters compressdoc will use.
63
Beyond Linux® From Scratch - Version 6.3
of MANDATORY_MANPATH.
What was not taken into consideration was the decompression speed. But
does it make sense to? You gain fast access with uncompressed man
pages, or you gain space at the expense of a slight overhead in time.
Well, my P4-2.5GHz does not even let me notice this... :-)
EOT
) | less
}
# This function checks that the man page is unique amongst bzip2'd,
# gzip'd and uncompressed versions.
# $1 the directory in which the file resides
# $2 the file name for the man page
# Returns 0 (true) if the file is the latest and must be taken care of,
# and 1 (false) if the file is not the latest (and has therefore been
# deleted).
function check_unique ()
{
# NB. When there are hard-links to this file, these are
# _not_ deleted. In fact, if there are hard-links, they
# all have the same date/time, thus making them ready
# for deletion later on.
# Build the list of all man pages with the same name
DIR=$1
BASENAME=`basename "${2}" .bz2`
BASENAME=`basename "${BASENAME}" .gz`
GZ_FILE="$BASENAME".gz
BZ_FILE="$BASENAME".bz2
64
Beyond Linux® From Scratch - Version 6.3
65
Beyond Linux® From Scratch - Version 6.3
--decompress|-d)
COMP_SUF=
COMP_LVL=
COMP_METHOD=$1
shift
;;
-[1-9]|--fast|--best)
COMP_LVL=$1
shift
;;
--force|-F)
FORCE_OPT=-F
shift
;;
--soft|-S)
LN_OPT=-S
shift
;;
--hard|-H)
LN_OPT=-H
shift
;;
--conf=*)
MAN_CONF=`echo $1 | cut -d '=' -f2-`
shift
;;
--conf)
MAN_CONF="$2"
shift 2
;;
--verbose|-v)
let VERBOSE_LVL++
shift
;;
--backup)
BACKUP=yes
shift
;;
--fake|-f)
FAKE=yes
shift
;;
--help|-h)
help
exit 0
;;
/*)
66
Beyond Linux® From Scratch - Version 6.3
MAN_DIR="${MAN_DIR} ${1}"
shift
;;
-*)
help $1
exit 1
;;
*)
echo "\"$1\" is not an absolute path name"
exit 1
;;
esac
done
# Redirections
case $VERBOSE_LVL in
0)
# O, be silent
DEST_FD0=/dev/null
DEST_FD1=/dev/null
VERBOSE_OPT=
;;
1)
# 1, be a bit verbose
DEST_FD0=/dev/stdout
DEST_FD1=/dev/null
VERBOSE_OPT=-v
;;
*)
# 2 and above, be most verbose
DEST_FD0=/dev/stdout
DEST_FD1=/dev/stdout
VERBOSE_OPT="-v -v"
;;
esac
67
Beyond Linux® From Scratch - Version 6.3
if [ -z "$MAN_DIR" ]; then
echo "No directory specified, and no directory found with \`manpath'"
exit 1
fi
# Check that the specified directories actually exist and are readable
for DIR in $MAN_DIR; do
if [ ! -d "$DIR" -o ! -r "$DIR" ]; then
echo "Directory '$DIR' does not exist or is not readable"
exit 1
fi
done
# Fake?
if [ "$FAKE" != "no" ]; then
echo "Actual parameters used:"
echo -n "Compression.......: "
case $COMP_METHOD in
--bzip2|--bz2|-b) echo -n "bzip2";;
--gzip|--gz|-g) echo -n "gzip";;
--automatic) echo -n "compressing";;
--decompress|-d) echo -n "decompressing";;
*) echo -n "unknown";;
esac
echo " ($COMP_METHOD)"
echo "Compression level.: $COMP_LVL"
echo "Compression suffix: $COMP_SUF"
echo -n "Force compression.: "
[ "foo$FORCE_OPT" = "foo-F" ] && echo "yes" || echo "no"
echo "man_db.conf is....: ${MAN_CONF}/man_db.conf"
echo -n "Hard-links........: "
[ "foo$LN_OPT" = "foo-S" ] &&
echo "convert to soft-links" || echo "leave as is"
echo -n "Soft-links........: "
[ "foo$LN_OPT" = "foo-H" ] &&
echo "convert to hard-links" || echo "leave as is"
echo "Backup............: $BACKUP"
echo "Faking (yes!).....: $FAKE"
echo "Directories.......: $MAN_DIR"
echo "Verbosity level...: $VERBOSE_LVL"
exit 0
fi
68
Beyond Linux® From Scratch - Version 6.3
fi
# Fixes the case when hard-links see their compression scheme change
# (from not compressed to compressed, or from bz2 to gz, or from gz
# to bz2)
# Also fixes the case when multiple version of the page are present,
# which are either compressed or not.
if [ ! -L "$FILE" -a ! -e "$FILE" ]; then continue; fi
if [ -d "$FILE" ]; then
# We are going recursive to that directory
echo "-> Entering ${DIR}/${FILE}..." > $DEST_FD0
# I need not pass --conf, as I specify the directory to work on
69
Beyond Linux® From Scratch - Version 6.3
else # !dir
if ! check_unique "$DIR" "$FILE"; then continue; fi
# If we have a symlink
if [ -h "$FILE" ]; then
case "$FILE" in
*.bz2)
EXT=bz2 ;;
*.gz)
EXT=gz ;;
*)
EXT=none ;;
esac
70
Beyond Linux® From Scratch - Version 6.3
if [ -n "$HLINKS" ]; then
# We have hard-links! Remove them now.
for i in $HLINKS; do rm -f "$i"; done
fi
71
Beyond Linux® From Scratch - Version 6.3
;;
esac
else
# There is a problem when we get neither a symlink nor a plain
# file. Obviously, we shall never ever come here... :-(
echo -n "Whaooo... \"${DIR}/${FILE}\" is neither a symlink "
echo "nor a plain file. Please check:"
ls -l "${DIR}/${FILE}"
exit 1
fi
fi
done # for FILE
done # for DIR
EOF
72
Beyond Linux® From Scratch - Version 6.3
Now, as root, you can issue the command compressdoc --bz2 to compress all your system man pages. You can
also run compressdoc --help to get comprehensive help about what the script is able to do.
Don't forget that a few programs, like the X Window System and XEmacs also install their documentation in
non-standard places (such as /usr/X11R6/man, etc.). Be sure to add these locations to the file /etc/man_db.
conf, as MANDATORY_MANPATH </path> lines.
Example:
...
MANDATORY_MANPATH /usr/share/man
MANDATORY_MANPATH /usr/X11R6/man
MANDATORY_MANPATH /usr/local/man
MANDATORY_MANPATH /opt/qt/doc/man
...
Generally, package installation systems do not compress man/info pages, which means you will need to run the script
again if you want to keep the size of your documentation as small as possible. Also, note that running the script
after upgrading a package is safe; when you have several versions of a page (for example, one compressed and one
uncompressed), the most recent one is kept and the others are deleted.
73
Beyond Linux® From Scratch - Version 6.3
Package Information
• Download (HTTP): http://ftp.kernel.org/pub/linux/daemons/autofs/v5/autofs-5.0.3.tar.bz2
• Download (FTP): ftp://ftp.kernel.org/pub/linux/daemons/autofs/v5/autofs-5.0.3.tar.bz2
• Download MD5 sum: 27839fe6fa8105b2b7d31bc922fd7cf6
• Download size: 221 KB
• Estimated disk space required: 9 MB
• Estimated build time: less than 0.1 SBU
Additional Downloads
Recommended Patches: There are frequent patches issued for Autofs. One method you can use to get the current
patches requires first installing the Wget-1.10.2 package. After ensuring the wget command is installed in a directory
identified in the PATH variable, start in the same directory as the main tar file and issue the following commands:
Autofs Dependencies
Optional
Kernel Configuration
Verify that kernel support has been compiled in or built as modules in the following areas:
File systems #
Kernel automounter version 4 support Y or M
Network File Systems #
NFS file system support Y or M (optional)
SMB file system support Y or M (optional)
74
Beyond Linux® From Scratch - Version 6.3
Installation of Autofs
Install Autofs by running the following commands:
for f in `cat ../patch_order-5.0.3`; do
patch -Np1 -i ../$f
done &&
./configure --prefix=/ --mandir=/usr/share/man &&
make
This package does not come with a test suite.
Now, as the root user:
make install &&
ln -sf ../init.d/autofs /etc/rc.d/rcsysinit.d/S52autofs
Command Explanations
for f in `cat ../patch_order-5.0.3`; do patch -Np1 -i ../$f; done: This command applies all the patches downloaded
earlier in the correct order.
ln -sf ../init.d/autofs /etc/rc.d/rcsysinit.d/S52autofs: This command sets the link to properly start autofs upon boot.
Configuring Autofs
Config Files
/etc/sysconfig/autofs.conf, /etc/auto.master, /etc/auto.misc, and /etc/auto.net
Configuration Information
The installation process creates auto.master, auto.misc, auto.smb, and auto.net. Replace the auto.
master file with the following commands:
mv /etc/auto.master /etc/auto.master.bak &&
cat > /etc/auto.master << "EOF"
# Begin /etc/auto.master
# End /etc/auto.master
EOF
This file creates a new media directory, /media/auto that will overlay any existing directory of the same name.
In this example, the file, /etc/auto.misc, has a line:
cd -fstype=iso9660,ro,nosuid,nodev :/dev/cdrom
that will mount a cdrom as /media/auto/cd if that directory is accessed. The --ghost option tells the
automounter to create “ghost” versions (i.e. empty directories) of all the mount points listed in the configuration
file regardless whether any of the file systems are actually mounted or not. This is very convenient and highly
75
Beyond Linux® From Scratch - Version 6.3
recommended, because it will show you the available auto-mountable file systems as existing directories, even when
their file systems aren't currently mounted. Without the --ghost option, you'll have to remember the names of the
directories. As soon as you try to access one of them, the directory will be created and the file system will be mounted.
When the file system gets unmounted again, the directory is destroyed too, unless the --ghost option was given.
Note
An alternative method would be to specify another automount location such as /var/lib/auto/cdrom
and create a symbolic link from /media/cdrom to the automount location.
The auto.misc file must be configured to your working hardware. The loaded configuration file should load your
cdrom if /dev/cdrom is active or it can be edited to match your device setup. Examples for floppies are available
in the file and easily activated. Documentation for this file is available using the man 5 autofs command.
In the second line, if enabled, a user's home directory would be mounted via NFS upon login. The /etc/home.
auto would need to exist and have an entry similar to:
joe example.org:/export/home/joe
where the directory /export/home/joe is exported via NFS from the system example.org. NFS shares are
covered on the next page.
This package could also be used to mount SMB shares, however that feature is not configured in these instructions.
For additional configuration information, see the man pages for auto.master(5). There are also web resources such
as this AUTOFS HOWTO available.
Contents
Installed Program: automount
Installed Libraries: lookup_file.so, lookup_hosts.so, lookup_multi.so, lookup_nisplus.so,
lookup_program.so, lookup_userhome.so, lookup_yp.so, mount_afs.so,
mount_autofs.so, mount_bind.so, mount_changer.so, mount_ext2.so,
mount_generic.so, mount_nfs.so, parse_sun.so
Installed Directories: /lib/autofs and /var/run/autofs
Short Descriptions
automount is the daemon that performs the mounting when a request is made for the device.
76
Beyond Linux® From Scratch - Version 6.3
make install-netfs
77
Beyond Linux® From Scratch - Version 6.3
Chapter 4. Security
Security takes many forms in a computing environment. This chapter gives examples of three different types of
security: access, prevention and detection.
Access for users is usually handled by login or an application designed to handle the login function. In this chapter,
we show how to enhance login by setting policies with PAM modules. Access via networks can also be secured
by policies set by iptables, commonly referred to as a firewall. The Network Security Services (NSS) and Netscape
Portable Runtime (NSPR) libraries can be installed and shared among the many applications requiring them. For
applications that don't offer the best security, you can use the Stunnel package to wrap an application daemon inside
an SSL tunnel.
Prevention of breaches, like a trojan, are assisted by applications like GnuPG, specifically the ability to confirm
signed packages, which recognizes modifications of the tarball after the packager creates it.
Finally, we touch on detection with a package that stores "signatures" of critical files (defined by the administrator)
and then regenerates those "signatures" and compares for files that have been changed.
78
Beyond Linux® From Scratch - Version 6.3
OpenSSL-0.9.8g
Introduction to OpenSSL
The OpenSSL package contains management tools and libraries relating to cryptography. These are useful for
providing cryptography functions to other packages, notably OpenSSH, email applications and web browsers (for
accessing HTTPS sites).
Package Information
• Download (HTTP): http://www.openssl.org/source/openssl-0.9.8g.tar.gz
• Download (FTP): ftp://ftp.openssl.org/source/openssl-0.9.8g.tar.gz
• Download MD5 sum: acf70a16359bf3658bdfb74bda1c4419
• Download size: 3.2 MB
• Estimated disk space required: 40 MB
• Estimated build time: 1.2 SBU (additional 0.5 SBU to run the test suite)
Additional Downloads
• Required patch: http://www.linuxfromscratch.org/patches/blfs/6.3/openssl-0.9.8g-fix_manpages-1.patch
OpenSSL Dependencies
Optional
bc-1.06 (recommended if you run the test suite during the build)
Installation of OpenSSL
Install OpenSSL by running the following commands:
patch -Np1 -i ../openssl-0.9.8g-fix_manpages-1.patch &&
./config --openssldir=/etc/ssl --prefix=/usr shared &&
make MANDIR=/usr/share/man
To test the results, issue: make test.
Now, as the root user:
make MANDIR=/usr/share/man install &&
cp -v -r certs /etc/ssl &&
install -v -d -m755 /usr/share/doc/openssl-0.9.8g &&
cp -v -r doc/{HOWTO,README,*.{txt,html,gif}} \
/usr/share/doc/openssl-0.9.8g
Command Explanations
no-rc5 no-idea: When added to the ./config command, this will eliminate the building of those encryption
methods. Patent licenses may be needed for you to utilize either of those methods in your projects.
enable-tlsext: When added to the ./config command, this switch will enable TLS Extensions. Currently this
is only RFC 3546 and 4507bis for Server Name Indication. This allows the use of multiple SSL certificates with
multiple virtual hosts in Apache, while using only one IP address and one port for all virtual hosts.
79
Beyond Linux® From Scratch - Version 6.3
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
Installed Programs: c_rehash and openssl
Installed Libraries: libcrypto.{so,a}, libssl.{so,a}, and additional encryption libraries in
/usr/lib/engines/ (lib4758cca.so, libaep.so, libatalla.so, libchil.so, libcswift.so,
libgmp.so, libnuron.so, libsureware.so and libubsec.so)
Installed Directories: /etc/ssl, /usr/include/ssl, /usr/lib/engines and /usr/share/doc/openssl-0.9.8g
Short Descriptions
c_rehash is a Perl script that scans all files in a directory and adds symbolic links to their hash values.
openssl 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.{so,a} 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 OpenSSH, OpenPGP, and
other cryptographic standards.
libssl.{so,a} 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.
80
Beyond Linux® From Scratch - Version 6.3
GnuTLS-1.6.3
Introduction to GnuTLS
The GnuTLS package contains a library and userspace tools which provide a secure layer over a reliable transport
layer. Currently the GnuTLS library implements the proposed standards by the IETF's TLS working group. Quoting
from the TLS protocol specification:
“The TLS protocol provides communications privacy over the Internet. The protocol allows client/server applications
to communicate in a way that is designed to prevent eavesdropping, tampering, or message forgery.”
GnuTLS provides support for TLS 1.1, TLS 1.0 and SSL 3.0 protocols, TLS extensions, including server name and
max record size. Additionally, the library supports authentication using the SRP protocol, X.509 certificates and
OpenPGP keys, along with support for the TLS Pre-Shared-Keys (PSK) extension, the Inner Application (TLS/IA)
extension and X.509 and OpenPGP certificate handling.
Package Information
• Download (HTTP): http://www.gnu.org/software/gnutls/releases/gnutls-1.6.3.tar.bz2
• Download (FTP): ftp://ftp.gnutls.org/pub/gnutls/gnutls-1.6.3.tar.bz2
• Download MD5 sum: 73da68a4248d34c4d38491ce2119af0f
• Download size: 4.2 MB
• Estimated disk space required: 49 MB
• Estimated build time: 0.5 SBU
GnuTLS Dependencies
Required
Libgcrypt-1.2.4
Optional
GTK-Doc-1.8, OpenCDK, Tiny ASN.1, libcfg+, LZO-2.02, and Valgrind (used during the test suite)
Installation of GnuTLS
Install GnuTLS by running the following commands:
81
Beyond Linux® From Scratch - Version 6.3
Contents
Installed Programs: certtool, gnutls-cli, gnutls-cli-debug, gnutls-serv, libgnutls-config,
libgnutls-extra-config, psktool, and srptool
Installed Libraries: libgnutls.{so,a}, libgnutls-extra.{so,a}, libgnutls-openssl.{so,a}, and
libgnutlsxx.{so,a}
Installed Directory: /usr/include/gnutls and /usr/share/doc/gnutls-1.6.3
Short Descriptions
certtool is used to generate X.509 certificates, certificate requests, and private keys.
gnutls-cli is a simple client program to set up a TLS connection to some other computer.
gnutls-cli-debug is a simple client program to set up a TLS connection to some other computer and
produces very verbose progress results.
gnutls-serv is a simple server program that listens to incoming TLS connections.
gnutls-config is a utility used to configure and build applications based on the gnutls(3) library. It
can be used to query the C compiler and linker flags which are required to correctly
compile and link the application against the gnutls(3) library.
gnutls-extra-config is a utility used to configure and build applications based on the gnutls-extra(3) library.
It can be used to query the C compiler and linker flags which are required to correctly
compile and link the application against the gnutls-extra(3) library.
psktool is a simple program that generates random keys for use with TLS-PSK.
srptool is a simple program that emulates the programs in the Stanford SRP (Secure Remote
Password) libraries using GNU TLS.
libgnutls.{so,a} contains the core API functions and X.509 certificate API functions.
82
Beyond Linux® From Scratch - Version 6.3
CrackLib-2.8.12
Introduction to CrackLib
The CrackLib package contains a library used to enforce strong passwords by comparing user selected passwords
to words in chosen word lists.
Package Information
• Download (HTTP): http://downloads.sourceforge.net/cracklib/cracklib-2.8.12.tar.gz
• Download (FTP): ftp://ftp.linux.ee/pub/gentoo/distfiles/distfiles/cracklib-2.8.12.tar.gz
• Download MD5 sum: 580346fa1012f9d9769192f49d3801fa
• Download size: 576 KB
• Estimated disk space required: 29 MB
• Estimated build time: 0.3 SBU
Additional Downloads
• Recommended word list for English-speaking countries (size: 4.4 MB; md5sum:
f8be7949b1bbc044e36039598a7819d9): http://downloads.sourceforge.net/cracklib/cracklib-words-20080203.gz
There are additional word lists available for download, e.g., from http://www.cotse.com/tools/wordlists.htm. CrackLib
can utilize as many, or as few word lists you choose to install.
Important
Users tend to base their passwords on regular words of the spoken language, and crackers know that.
CrackLib is intended to filter out such bad passwords at the source using a dictionary created from word
lists. To accomplish this, the word list(s) for use with CrackLib must be an exhaustive list of words and
word-based keystroke combinations likely to be chosen by users of the system as (guessable) passwords.
The default word list recommended above for downloading mostly satisfies this role in English-speaking
countries. In other situations, it may be necessary to download (or even create) additional word lists.
Note that word lists suitable for spell-checking are not usable as CrackLib word lists in countries with
non-Latin based alphabets, because of “word-based keystroke combinations” that make bad passwords.
CrackLib Dependencies
Optional
Python-2.5.2
Installation of CrackLib
Install CrackLib by running the following commands:
./configure --prefix=/usr \
--with-default-dict=/lib/cracklib/pw_dict &&
make
83
Beyond Linux® From Scratch - Version 6.3
Issue the following commands as the root user to install the recommended word list and create the CrackLib
dictionary. Other word lists (text based, one word per line) can also be used by simply installing them into
/usr/share/dict and adding them to the create-cracklib-dict command.
If desired, check the proper operation of the library as an unprivileged user by creating a test data file and running
the tests using the following commands:
make test
Important
If you are installing CrackLib after your LFS system has been completed and you have the Shadow package
installed, you must reinstall Shadow-4.0.18.1 if you wish to provide strong password support on your
system. If you are now going to install the Linux-PAM-0.99.10.0 package, you may disregard this note as
Shadow will be reinstalled after the Linux-PAM installation.
Command Explanations
--with-default-dict=/lib/cracklib/pw_dict: This parameter forces the installation of the CrackLib
dictionary to the /lib hierarchy.
84
Beyond Linux® From Scratch - Version 6.3
mv -v /usr/lib/libcrack.so.2* /lib and ln -v -sf ../../lib/libcrack.so.2.8.0 ...: These two commands move
the libcrack.so.2.8.0 library and associated symlink from /usr/lib to /lib, then recreates the
/usr/lib/libcrack.so symlink pointing to the relocated file.
install -v -m644 -D ...: This command creates the /usr/share/dict directory (if it doesn't already exist) and
installs the compressed word list there.
ln -v -s cracklib-words /usr/share/dict/words: The word list is linked to /usr/share/dict/words as
historically, words is the primary word list in the /usr/share/dict directory. Omit this command if you already
have a /usr/share/dict/words file installed on your system.
echo $(hostname) >>...: The value of hostname is echoed to a file called cracklib-extra-words. This extra
file is intended to be a site specific list which includes easy to guess passwords such as company or department names,
user's names, product names, computer names, domain names, etc.
create-cracklib-dict ...: This command creates the CrackLib dictionary from the word lists. Modify the command
to add any additional word lists you have installed.
Contents
Installed Programs: cracklib-check, cracklib-format, cracklib-packer, cracklib-unpacker and
create-cracklib-dict
Installed Libraries: libcrack.{so,a} and the cracklibmodule.{so,a} Python module
Installed Directories: /lib/cracklib, /usr/share/dict and /usr/share/cracklib
Short Descriptions
create-cracklib-dict is used to create the CrackLib dictionary from the given word list(s).
libcrack.{so,a} provides a fast dictionary lookup method for strong password enforcement.
85
Beyond Linux® From Scratch - Version 6.3
Linux-PAM-0.99.10.0
Introduction to Linux-PAM
The Linux-PAM package contains Pluggable Authentication Modules. This is useful to enable the local system
administrator to choose how applications authenticate users.
Package Information
• Download (HTTP): http://www.kernel.org/pub/linux/libs/pam/pre/library/Linux-PAM-0.99.10.0.tar.bz2
• Download (FTP): ftp://ftp.kernel.org/pub/linux/libs/pam/pre/library/Linux-PAM-0.99.10.0.tar.bz2
• Download MD5 sum: be4dd1d34ac5933408e13e48f3eb710a
• Download size: 911 kB
• Estimated disk space required: 23 MB
• Estimated build time: 0.6 SBU
Additional Downloads
• Optional documentation: http://anduin.linuxfromscratch.org/sources/BLFS/6.3/l/Linux-PAM-0.99.10.0-docs.tar.
bz2
Linux-PAM Dependencies
Optional
libxslt-1.1.22, DocBook XML DTD-4.5, DocBook XSL Stylesheets-1.71.1, w3m, and FOP-0.93
Installation of Linux-PAM
If you downloaded the documentation, unpack the tarball from the same top-level directory you unpacked the source
tarball from. The files will unpack into the correct directories of the source tree.
Install Linux-PAM by running the following commands:
./configure --libdir=/lib \
--sbindir=/lib/security \
--enable-securedir=/lib/security \
--docdir=/usr/share/doc/Linux-PAM-0.99.10.0 \
--enable-read-both-confs \
--with-xauth=/usr/X11R6/bin/xauth &&
make
The test suite will not provide meaningful results until the package has been installed and minimally configured. If,
after installing the package and creating a minimum configuration as shown below in the 'other' example, you wish
to run the tests, issue make check.
86
Beyond Linux® From Scratch - Version 6.3
if [ -L /lib/libpam.so ]; then
for LINK in libpam{,c,_misc}.so; do
ln -v -sf ../../lib/$(readlink /lib/${LINK}) /usr/lib/${LINK} &&
rm -v /lib/${LINK}
done
fi
Command Explanations
--libdir=/lib: This parameter results in the libraries being installed in /lib as they may be required in
single-user mode.
--sbindir=/lib/security: This parameter results in two executables, one of which is not intended to be run
from the command line, being installed in the same directory as the PAM modules. The other executable is later
moved to the /sbin directory.
--enable-securedir=/lib/security: This parameter results in the PAM modules being installed in
/lib/security.
--docdir=...: This parameter results in the documentation being installed in a versioned directory name.
--enable-read-both-confs: This parameter allows the local administrator to choose which configuration
file setup to use.
--with-xauth=/usr/X11R6/bin/xauth: This parameter forces the build of the pam_xauth module, even if
xauth is not yet installed. Omit this switch if you have no plans to build Xorg, or modify the path if you intend to
install Xorg into a non-standard path.
chmod -v 4755 /lib/security/unix_chkpwd: The unix_chkpwd password-helper program must be setuid so that
non-root processes can access the shadow-password file.
mv -v /lib/security/pam_tally /sbin: The pam_tally program is designed to be run by the system administrator,
possibly in single-user mode, so it is moved to the appropriate directory.
mv -v /lib/libpam{,c,_misc}.la /usr/lib: This command moves the Libtool library files to /usr/lib as they are
expected to reside there.
sed -i 's| /lib| /usr/lib|' /usr/lib/libpam_misc.la: This command corrects an installation reference due to the file being
moved in the previous step.
for ...; do ...; done: These commands are used to relocate the .so symbolic links into the /usr/lib directory
by cloning and then removing the existing symlinks. Using readlink ensures the new symlinks point at the correct
library filenames.
87
Beyond Linux® From Scratch - Version 6.3
Configuring Linux-PAM
Config Files
/etc/security/* and /etc/pam.d/* or /etc/pam.conf
Configuration Information
Configuration information is placed in /etc/pam.d/ or /etc/pam.conf depending on system administrator
preference. Below are example files of each type:
# Begin /etc/pam.d/other
# End /etc/pam.d/other
# Begin /etc/pam.conf
# End /etc/pam.conf
The PAM man page (man pam) provides a good starting point for descriptions of fields and allowable entries. The
Linux-PAM System Administrators' Guide is recommended for additional information.
Refer to http://www.kernel.org/pub/linux/libs/pam/modules.html for a list of various modules available.
Important
You should now reinstall the Shadow-4.0.18.1 package.
Contents
Installed Program: pam_tally
Installed Libraries: libpam.{so,a}, libpamc.{so,a}, and libpam_misc.{so,a}
Installed Directories: /etc/pam.d, /etc/security, /lib/security and /usr/include/security
Short Descriptions
pam_tally is used to view or manipulate the faillog file.
libpam.{so,a} provides the interfaces between applications and the PAM modules.
88
Beyond Linux® From Scratch - Version 6.3
Shadow-4.0.18.1
Introduction to Shadow
Shadow was indeed installed in LFS and there is no reason to reinstall it unless you installed CrackLib or Linux-PAM
after your LFS system was completed. If you have installed CrackLib after LFS, then reinstalling Shadow will enable
strong password support. If you have installed Linux-PAM, reinstalling Shadow will allow programs such as login
and su to utilize PAM.
Package Information
• Download (HTTP): http://anduin.linuxfromscratch.org/sources/LFS/lfs-packages/development/shadow-4.0.18.1.
tar.bz2
•
• Download MD5 sum: e7751d46ecf219c07ae0b028ab3335c6
• Download size: 1.5 MB
• Estimated disk space required: 18 MB
• Estimated build time: 0.3 SBU
Additional Downloads
• Required patch: http://www.linuxfromscratch.org/patches/blfs/6.3/shadow-4.0.18.1-useradd_fix-2.patch
Shadow Dependencies
Required
Installation of Shadow
Important
The installation shown below is for a situation where Linux-PAM has been installed (with or without a
CrackLib installation) and Shadow is being reinstalled to support the Linux-PAM installation. If you are
reinstalling Shadow to provide strong password support via the CrackLib library and you have not installed
Linux-PAM, ensure you add the --with-libcrack parameter to the configure script below.
89
Beyond Linux® From Scratch - Version 6.3
./configure --libdir=/lib \
--sysconfdir=/etc \
--enable-shared \
--without-selinux &&
for i in de es fi fr id it pt_BR; do
convert-mans UTF-8 ISO-8859-1 man/${i}/*.?
done &&
for i in cs hu pl; do
convert-mans UTF-8 ISO-8859-2 man/${i}/*.?
done &&
make
Command Explanations
--without-selinux: Support for selinux is enabled by default, but selinux is not built in a base LFS system.
The configure script will fail if this option is not used.
sed -i 's/groups$(EXEEXT) //' src/Makefile: This command is used to suppress the installation of the groups
program as the version from the Coreutils package installed during LFS is preferred.
find man -name Makefile -exec ... {} \;: This command is used to suppress the installation of the groups man pages
so the existing ones installed from the Coreutils package are not replaced.
sed -i -e '...' -e '...' man/Makefile: This command disables the installation of Chinese and Korean manual pages,
since Man-DB cannot format them properly.
90
Beyond Linux® From Scratch - Version 6.3
convert-mans ...: These commands are used to convert some of the man pages so that Man-DB will display them
in the expected encodings.
mv -v /usr/bin/passwd /bin: The passwd program may be needed during times when the /usr filesystem is not
mounted so it is moved into the root partition.
mv -v ...; rm -v ...; ln -v ...: These commands are used to move the libshadow library to the root partition to
support the moving of the passwd program earlier.
Configuring Shadow
Shadow's stock configuration for the useradd utility is not suitable for LFS systems. Use the following commands
as the root user to change the default home directory for new users and prevent the creation of mail spool files:
Note
The rest of this page is devoted to configuring Shadow to work properly with Linux-PAM. If you do not have
Linux-PAM installed, and you reinstalled Shadow to support strong passwords via the CrackLib library,
no further configuration is required.
Config Files
/etc/pam.d/* or alternatively /etc/pam.conf, /etc/login.defs and /etc/security/*
Configuration Information
Configuring your system to use Linux-PAM can be a complex task. The information below will provide a basic setup
so that Shadow's login and password functionality will work effectively with Linux-PAM. Review the information and
links on the Linux-PAM-0.99.10.0 page for further configuration information. For information specific to integrating
Shadow, Linux-PAM and CrackLib, you can visit the following links:
• http://www.kernel.org/pub/linux/libs/pam/Linux-PAM-html/pam-6.html#ss6.3
• http://www.deer-run.com/~hal/sysadmin/pam_cracklib.html
91
Beyond Linux® From Scratch - Version 6.3
Configuring /etc/login.defs
The login program currently performs many functions which Linux-PAM modules should now handle. The following
sed command will comment out the appropriate lines in /etc/login.defs, and stop login from performing these
functions (a backup file named /etc/login.defs.orig is also created to preserve the original file's contents).
Issue the following commands as the root user:
As mentioned previously in the Linux-PAM instructions, Linux-PAM has two supported methods for configuration.
The commands below assume that you've chosen to use a directory based configuration, where each program has its
own configuration file. You can optionally use a single /etc/pam.conf configuration file by using the text from
the files below, and supplying the program name as an additional first field for each line.
As the root user, create the /etc/pam.d directory with the following command:
While still the root user, add the following Linux-PAM configuration files to the /etc/pam.d/ directory (or add
the contents to the /etc/pam.conf file) with the following commands:
92
Beyond Linux® From Scratch - Version 6.3
# End /etc/pam.d/login
EOF
# End /etc/pam.d/login
EOF
93
Beyond Linux® From Scratch - Version 6.3
# End /etc/pam.d/passwd
EOF
Note
In its default configuration, owing to credits, pam_cracklib will allow multiple case passwords as short as
6 characters, even with the minlen value set to 11. You should review the pam_cracklib(8) man page and
determine if these default values are acceptable for the security of your system.
# End /etc/pam.d/passwd
EOF
'su'
# End /etc/pam.d/su
EOF
94
Beyond Linux® From Scratch - Version 6.3
'chage'
# End /etc/pam.d/chage
EOF
Warning
At this point, you should do a simple test to see if Shadow is working as expected. Open another terminal
and log in as a user, then su to root. If you do not see any errors, then all is well and you should
proceed with the rest of the configuration. If you did receive errors, stop now and double check the above
configuration files manually. You can also run the test suite from the Linux-PAM package to assist you
in determining the problem. If you cannot find and fix the error, you should recompile Shadow adding
the --without-libpam switch to the configure command in the above instructions (also move the
/etc/login.defs.orig backup file to /etc/login.defs). If you fail to do this and the errors
remain, you will be unable to log into your system.
95
Beyond Linux® From Scratch - Version 6.3
Other
Currently, /etc/pam.d/other is configured to allow anyone with an account on the machine to use PAM-aware
programs without a configuration file for that program. After testing Linux-PAM for proper configuration, install a
more restrictive other file so that program-specific configuration files are required:
# End /etc/pam.d/other
EOF
If you preserved the source tree from the Linux-PAM package (or you feel like unpacking that tarball, then running
configure and make), now would be a good time to run the test suite from this package. This test suite will use the
configuration you just finished during the tests. All the tests should pass.
Instead of using the /etc/login.access file for controlling access to the system, Linux-PAM uses the
pam_access.so module along with the /etc/security/access.conf file. Rename the /etc/login.
access file using the following command:
if [ -f /etc/login.access ]; then
mv -v /etc/login.access /etc/login.access.NOUSE
fi
Instead of using the /etc/limits file for limiting usage of system resources, Linux-PAM uses the pam_limits.
so module along with the /etc/security/limits.conf file. Rename the /etc/limits file using the
following command:
if [ -f /etc/limits ]; then
mv -v /etc/limits /etc/limits.NOUSE
fi
96
Beyond Linux® From Scratch - Version 6.3
Note
ENV_SUPATH is no longer supported. You must create a valid /root/.bashrc file to provide a
modified path for the super-user.
Contents
A list of the installed files, along with their short descriptions can be found at ../../../../lfs/view/6.3/chapter06/shadow.
html#contents-shadow.
97
Beyond Linux® From Scratch - Version 6.3
Iptables-1.3.8
Introduction to Iptables
The next part of this chapter deals with firewalls. The principal firewall 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 a firewall.
Package Information
• Download (HTTP): http://www.netfilter.org/projects/iptables/files/iptables-1.3.8.tar.bz2
• Download (FTP): ftp://ftp.netfilter.org/pub/iptables/iptables-1.3.8.tar.bz2
• Download MD5 sum: 0a9209f928002e5eee9cdff8fef4d4b3
• Download size: 169 KB
• Estimated disk space required: 4.0 MB
• Estimated build time: 0.1 SBU
Kernel Configuration
A firewall in Linux is accomplished through a portion of the kernel called netfilter. The interface to netfilter is iptables.
To use it, the appropriate kernel configuration parameters are found in Networking # Networking Options # Network
Packet Filtering # Core Netfilter Configuration (and) IP: Netfilter Configuration.
Installation of Iptables
Note
The installation below does not include building some specialized extension libraries which require the raw
headers in the Linux source code. If you wish to build the additional extensions (if you aren't sure, then you
probably don't), you can look at the INSTALL file to see an example of how to change the KERNEL_DIR=
parameter to point at the Linux source code. Note that if you upgrade the kernel version, you may also need
to recompile iptables and that the BLFS team has not tested using the raw kernel headers.
For some non-x86 architectures, the raw kernel headers may be required. In that case, modify the KERNEL_
DIR= parameter to point at the Linux source code.
98
Beyond Linux® From Scratch - Version 6.3
Command Explanations
sed -i 's/name="$node/name="node/' iptables.xslt: This corrects a syntax error in the XSLT stylesheet for use with
iptables-xml.
PREFIX=/usr LIBDIR=/lib BINDIR=/sbin: Compiles and installs iptables modules into /lib, binaries
into /sbin and the remainder into the /usr hierarchy instead of /usr/local. Firewalls are generally activated
during the boot process and /usr may not be mounted at that time.
KERNEL_DIR=/usr: This parameter is used to point at the sanitized kernel headers in /usr and not use the raw
kernel headers in /usr/src/linux.
Configuring Iptables
Introductory instructions for configuring your firewall are presented in the next section: Firewalling
Boot Script
To set up the iptables firewall at boot, install the /etc/rc.d/init.d/iptables init script included in the
blfs-bootscripts-20080816 package.
make install-iptables
Contents
Installed Programs: iptables, iptables-restore, iptables-save, iptables-xml and ip6tables
Installed Libraries: libip6t_*.so and libipt_*.so
Installed Directory: /lib/iptables
Short Descriptions
iptables is used to set up, maintain, and inspect the tables of IP packet filter rules in the Linux kernel.
iptables-restore is used to restore IP Tables from data specified on STDIN. Use I/O redirection provided
by your shell to read from a file.
iptables-save is used to dump the contents of an IP Table in easily parseable format to STDOUT. Use
I/O-redirection provided by your shell to write to a file.
iptables-xml is used to convert the output of iptables-save to an XML format. Using the iptables.
xslt stylesheet converts the XML back to the format of iptables-restore.
ip6tables is used to set up, maintain, and inspect the tables of IPv6 packet filter rules in the Linux
kernel. Several different tables may be defined. Each table contains a number of built-in
chains and may also contain user-defined chains.
libip*.so library modules are various modules (implemented as dynamic libraries) which extend the
core functionality of iptables.
99
Beyond Linux® From Scratch - Version 6.3
In a perfect world, every daemon or service on every machine is perfectly configured and immune to flaws such as
buffer overflows or other problems regarding its security. Furthermore, you trust every user accessing your services.
In this world, you do not need to have a firewall.
In the real world however, daemons may be misconfigured and exploits against essential services are freely available.
You may wish to choose which services are accessible by certain machines or you may wish to limit which machines
or applications are allowed external access. Alternatively, you may simply not trust some of your applications or
users. You are probably connected to the Internet. In this world, a firewall is essential.
Don't assume however, that having a firewall makes careful configuration redundant, or that it makes any negligent
misconfiguration harmless. It doesn't prevent 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 properly configured and up to date. A firewall is not a cure all, but should be an essential
part of your overall security strategy.
Personal Firewall
This is a hardware device or software program commercially sold (or offered via freeware) by companies such as
Symantec which claims that it secures a home or desktop computer connected to the Internet. This type of firewall is
highly relevant for users who do not know how their computers might be accessed via the Internet or how to disable
that access, especially if they are always online and connected via broadband links.
Masquerading Router
This is a system 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 risk free, the tasks
of doing the routing and IP masquerading (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) are commonly considered relatively
secure.
BusyBox
This is often an old computer you may have retired and nearly forgotten, performing masquerading or routing
functions, but offering non-firewall services such as a web-cache or mail. This may be used for home networks, but
is not to be considered as secure as a firewall only machine because the combination of server and router/firewall on
one machine raises the complexity of the setup.
100
Beyond Linux® From Scratch - Version 6.3
Packetfilter
This type of firewall does routing or masquerading, but does not maintain a state table of ongoing communication
streams. It is fast, but quite limited in its ability to block undesired packets without blocking desired packets.
The firewall configuration script installed in the iptables section differs from the standard configuration script. It only
has two of the standard targets: start and status. The other targets are clear and lock. For instance if you issue:
/etc/rc.d/init.d/iptables start
the firewall will be restarted just as it is upon system startup. The status target will present a list of all currently
implemented rules. The clear target turns off all firewall rules and the lock target will block all packets in and out of
the computer with the exception of the loopback interface.
The main startup firewall is located in the file /etc/rc.d/rc.iptables. The sections below provide three
different approaches that can be used for a system.
Note
You should always run your firewall rules from a script. This ensures consistency and a record of what
was done. It also allows retention of comments that are essential for understanding the rules long after they
were written.
Personal Firewall
A Personal Firewall is designed to let you access all the 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.
It is still applicable to the Linux 2.6 kernels.
cat > /etc/rc.d/rc.iptables << "EOF"
101
Beyond Linux® From Scratch - Version 6.3
#!/bin/sh
# Begin $rc_base/rc.iptables
102
Beyond Linux® From Scratch - Version 6.3
# These lines are here in case rules are already in place and the
# script is ever rerun on the fly. We want to remove all rules and
# pre-existing user defined chains before we implement new rules.
iptables -F
iptables -X
iptables -Z
iptables -t nat -F
# End $rc_base/rc.iptables
EOF
chmod 700 /etc/rc.d/rc.iptables
This script is quite simple, it drops all traffic coming into your computer that wasn't initiated from your computer,
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, take a look at BusyBox example number 4
[107].
Even if you have daemons or services running on your system, these will be inaccessible everywhere but from your
computer itself. If you want to allow access to services on your machine, such as ssh or ping, 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 for the firewall itself, make sure that there are no unnecessary
servers running on it such as X11 et al. As a general principle, the firewall itself should not access any untrusted
service (think of a remote server giving answers that makes a daemon on your system crash, or even worse, that
implements a worm via a buffer-overflow).
cat > /etc/rc.d/rc.iptables << "EOF"
#!/bin/sh
# Begin $rc_base/rc.iptables
103
Beyond Linux® From Scratch - Version 6.3
echo
echo "You're using the example configuration for a setup of a firewall"
echo "from Beyond Linux From Scratch."
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 configuration rules below."
echo "You can find additional information"
echo "about firewalls in Chapter 4 of the BLFS book."
echo "http://www.linuxfromscratch.org/blfs"
echo
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
104
Beyond Linux® From Scratch - Version 6.3
# These lines are here in case rules are already in place and the
# script is ever rerun on the fly. We want to remove all rules and
# pre-existing user defined chains before we implement new rules.
iptables -F
iptables -X
iptables -Z
iptables -t nat -F
# Do masquerading
# (not needed if intranet is not using private ip-addresses)
iptables -t nat -A POSTROUTING -o ppp+ -j MASQUERADE
# Enable IP Forwarding
echo 1 > /proc/sys/net/ipv4/ip_forward
EOF
chmod 700 /etc/rc.d/rc.iptables
With this script your intranet should be reasonably secure against external attacks. No one should be able to setup
a new connection to any internal service and, if it's masqueraded, makes your intranet invisible to the Internet.
Furthermore, your firewall should be relatively safe because there are no services running that a cracker could attack.
105
Beyond Linux® From Scratch - Version 6.3
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 (e.g., eth1) which you are using.
BusyBox
This scenario isn't too different from the Masquerading Router, but additionally offers some services to your intranet.
Examples of this can be when you want to administer your firewall from another host on your intranet or use it as
a proxy or a name server.
Note
Outlining a true concept of how to protect a server that offers services on the Internet goes far beyond the
scope of this document. See the references at the end of this section for more information.
Be cautious. Every service you have enabled makes your setup more complex and your firewall less secure. You
are exposed to the risks of misconfigured services or running a service with an exploitable bug. A firewall should
generally not run any extra services. See the introduction to the Masquerading Router for some more details.
If you want to add services such as internal Samba or name servers that do not need to access the Internet themselves,
the additional statements are quite simple and should still be acceptable from a security standpoint. Just add the
following lines into the script before the logging rules.
If daemons, such as squid, have to access the Internet themselves, you could open OUTPUT generally and restrict
INPUT.
However, it is generally not advisable to leave OUTPUT unrestricted. You lose any control over trojans who would
like to "call home", and a bit of redundancy in case you've (mis-)configured a service so that it broadcasts its existence
to the world.
To accomplish this, you should 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:
106
Beyond Linux® From Scratch - Version 6.3
• You want to be able to ping your computer to ensure it's still alive:
There are other addresses that you may also want to drop: 0.0.0.0/8, 127.0.0.0/8, 224.0.0.0/3 (multicast and
experimental), 169.254.0.0/16 (Link Local Networks), and 192.0.2.0/24 (IANA defined test network).
• If your firewall is a DHCP client, you need to allow those packets:
Obviously this must be done directly after logging as the very last lines before the packets are dropped by policy:
These are only examples to show you some of the capabilities of the firewall code in Linux. Have a look at the man
page of iptables. There you will find much more information. The port numbers needed for this can be found in
/etc/services, in case you didn't find them by trial and error in your log file.
Conclusion
Finally, there is one fact you 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 valuable information, you need to spend the time to protect it
properly.
107
Beyond Linux® From Scratch - Version 6.3
Extra Information
Where to Start with Further Reading on Firewalls
108
Beyond Linux® From Scratch - Version 6.3
GnuPG-1.4.7
Introduction to GnuPG
The GnuPG package contains a public/private key encryptor. This is becoming useful for signing files or emails as
proof of identity and preventing tampering with the contents of the file or email. For a more enhanced version of
GnuPG which supports S/MIME, see the GnuPG-2.0.8 package.
Package Information
• Download (HTTP): http://anduin.linuxfromscratch.org/sources/BLFS/6.3/g/gnupg-1.4.7.tar.bz2
• Download (FTP): ftp://ftp.gnupg.org/gcrypt/gnupg/gnupg-1.4.7.tar.bz2
• Download MD5 sum: b06a141cca5cd1a55bbdd25ab833303c
• Download size: 3.2 MB
• Estimated disk space required: 40 MB
• Estimated build time: 0.5 SBU
GnuPG Dependencies
Optional
OpenSSL-0.9.8g, OpenLDAP-2.3.39, libusb-0.1.12, cURL-7.16.3, an MTA, DocBook-utils-0.6.14, and
docbook-to-man
Installation of GnuPG
Install GnuPG by running the following commands:
./configure --prefix=/usr --libexecdir=/usr/lib &&
make
If you have teTeX-3.0 installed and you wish to create documentation in alternate formats, issue the following
command:
make -C doc pdf html
To test the results, issue: make check.
Now, as the root user:
make install &&
chmod -v 4755 /usr/bin/gpg &&
109
Beyond Linux® From Scratch - Version 6.3
Command Explanations
--libexecdir=/usr/lib: This command creates a gnupg directory in /usr/lib instead of
/usr/libexec.
chmod -v 4755 /usr/bin/gpg: gpg is installed setuid root to avoid swapping out sensitive data.
Contents
Installed Programs: gpg, gpg-zip, gpgsplit, and gpgv
Installed Libraries: None
Installed Directories: /usr/lib/gnupg, /usr/share/gnupg and /usr/share/doc/gnupg-1.4.7
Short Descriptions
gpg is the backend (command-line interface) for this OpenPGP implementation.
gpgsplit separates key rings.
gpgv is a verify only version of gpg.
110
Beyond Linux® From Scratch - Version 6.3
GnuPG-2.0.8
Introduction to GnuPG 2
The GnuPG 2 package is GNU's tool for secure communication and data storage. It can be used to encrypt data and
to create digital signatures. It includes an advanced key management facility and is compliant with the proposed
OpenPGP Internet standard as described in RFC2440 and the S/MIME standard as described by several RFCs. GnuPG
2 is the stable version of GnuPG integrating support for OpenPGP and S/MIME. It does not conflict with an installed
GnuPG-1.4.7 OpenPGP-only version.
Package Information
• Download (HTTP): http://anduin.linuxfromscratch.org/sources/BLFS/6.3/g/gnupg-2.0.8.tar.bz2
• Download (FTP): ftp://ftp.gnupg.org/gcrypt/gnupg/gnupg-2.0.8.tar.bz2
• Download MD5 sum: fc4377ca67e1bf687eeaf22e79c0b9d1
• Download size: 3.6 MB
• Estimated disk space required: 65 MB
• Estimated build time: 0.7 SBU
GnuPG Dependencies
Required
Optional
PIN-Entry-0.7.3
Installation of GnuPG 2
Install GnuPG 2 by running the following commands:
If you have teTeX-3.0 installed and you wish to create documentation in alternate formats, issue the following
commands:
111
Beyond Linux® From Scratch - Version 6.3
Command Explanations
--libexecdir=/usr/lib/gnupg2: This switch creates a gnupg directory in /usr/lib instead of
/usr/libexec.
Contents
Installed Programs: addgnupghome, applygnupgdefaults, gpg-agent, gpg-connect-agent, gpg2, gpgconf,
gpgkey2ssh, gpgparsemail, gpgsm, gpgsm-gencert.sh, gpgv2, kbxutil, scdaemon,
symcryptrun, and watchgnupg
Installed Libraries: None
Installed Directories: /usr/lib/gnupg2, /usr/share/gnupg and /usr/share/doc/gnupg2-2.0.8
Short Descriptions
addgnupghome is used to create and populate user's ~/.gnupg directories
applygnupgdefaults is a wrapper script used to run gpgconf with the --apply-defaults parameter on
all user's GnuPG home directories.
gpg-agent is a daemon used to manage secret (private) keys independently from any protocol. It
is used as a backend for gpg and gpgsm as well as for a couple of other utilities.
gpg-connect-agent is a utility used to communicate with a running gpg-agent.
gpg2 is the OpenPGP part of the GNU Privacy Guard (GnuPG). It is a tool used to provide
digital encryption and signing services using the OpenPGP standard.
gpgconf is a utility used to automatically and reasonable safely query and modify configuration
files in the ~/.gnupg home directory. It is designed not to be invoked manually by
the user, but automatically by graphical user interfaces.
112
Beyond Linux® From Scratch - Version 6.3
gpgparsemail is a utility currently only useful for debugging. Run it with --help for usage
information.
gpgsm is a tool similar to gpg used to provide digital encryption and signing services on X.509
certificates and the CMS protocol. It is mainly used as a backend for S/MIME mail
processing.
gpgsm-gencert.sh is a simple tool used to interactivly generate a certificate request which will be printed
to stdout.
gpgv2 is a verify only version of gpg2.
kbxutil is used to list, export and import Keybox data.
scdaemon is a daemon used to manage smartcards. It is usually invoked by gpg-agent and in
general not used directly.
symcryptrun is a simple symmetric encryption tool.
watchgnupg is used to listen to a Unix Domain socket created by any of the GnuPG tools.
113
Beyond Linux® From Scratch - Version 6.3
Tripwire-2.4.1.2
Introduction to Tripwire
The Tripwire package contains programs used to verify the integrity of the files on a given system.
Package Information
• Download (HTTP): http://downloads.sourceforge.net/tripwire/tripwire-2.4.1.2-src.tar.bz2
•
• Download MD5 sum: 1147c278b528ed593023912c4b649a
• Download size: 700 KB
• Estimated disk space required: 28 MB
• Estimated build time: 1.6 SBU
Tripwire Dependencies
Required
OpenSSL-0.9.8g
Optional
An MTA
Installation of Tripwire
Compile Tripwire by running the following commands:
sed -i -e 's@TWDB="${prefix}@TWDB="/var@' install/install.cfg &&
./configure --prefix=/usr --sysconfdir=/etc/tripwire &&
make
Warning
The default configuration is to use a local MTA. If you don't have an MTA installed and have no wish
to install one, modify install/install.cfg to use an SMTP server instead. Otherwise the install
will fail.
Command Explanations
sed -i -e 's@TWDB="${prefix}@TWDB="/var@' install/install.cfg: This command tells the package to install
the program database and reports in /var/lib/tripwire.
make install: This command creates the Tripwire security keys as well as installing the binaries. There are two keys:
a site key and a local key which are stored in /etc/tripwire/.
114
Beyond Linux® From Scratch - Version 6.3
cp -v policy/*.txt /usr/doc/tripwire: This command installs the tripwire sample policy files with the other tripwire
documentation.
Configuring Tripwire
Config Files
/etc/tripwire/*
Configuration Information
Tripwire uses a policy file to determine which files are integrity checked. The default policy file
(/etc/tripwire/twpol.txt) is for a default installation and will need to be updated for your system.
Policy files should be tailored to each individual distribution and/or installation. Some example policy files
can be found in /usr/doc/tripwire/ (Note that /usr/doc/ is a symbolic link on LFS systems to
/usr/share/doc/).
If desired, copy the policy file you'd like to try into /etc/tripwire/ instead of using the default policy file,
twpol.txt. It is, however, recommended that you edit your policy file. Get ideas from the examples above and
read /usr/doc/tripwire/policyguide.txt for additional information. twpol.txt is a good policy file
for learning about Tripwire as it will note any changes to the file system and can even be used as an annoying way
of keeping track of changes for uninstallation of software.
After your policy file has been edited to your satisfaction you may begin the configuration steps (perform as the
root):
twadmin --create-polfile --site-keyfile /etc/tripwire/site.key \
/etc/tripwire/twpol.txt &&
tripwire --init
Depending on your system and the contents of the policy file, the initialization phase above can take a relatively
long time.
Usage Information
Tripwire will identify file changes in the critical system files specified in the policy file. Using Tripwire while
making frequent changes to these directories will flag all these changes. It is most useful after a system has reached
a configuration that the user considers stable.
To use Tripwire after creating a policy file to run a report, use the following command:
tripwire --check > /etc/tripwire/report.txt
View the output to check the integrity of your files. An automatic integrity report can be produced by using a cron
facility to schedule the runs.
Reports are stored in binary and, if desired, encrypted. View reports, as the root user, with:
twprint --print-report -r /var/lib/tripwire/report/<report-name.twr>
After you run an integrity check, you should examine the report (or email) and then modify the Tripwire database
to reflect the changed files on your system. This is so that Tripwire will not continually notify you that files you
intentionally changed are a security violation. To do this you must first ls -l /var/lib/tripwire/report/ and note the
115
Beyond Linux® From Scratch - Version 6.3
name of the newest file which starts with your system name as presented by the command uname -n and ends
in .twr. These files were created during report creation and the most current one is needed to update the Tripwire
database of your system. As the root user, type in the following command making the appropriate report name:
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 :wq
and after entering your local key, the database will be updated. If there are files which you still want to be warned
about, remove the 'x' before the filename in the report and type :wq.
A good summary of tripwire operations can be found at http://www.redhat.
com/docs/manuals/linux/RHL-9-Manual/ref-guide/ch-tripwire.html.
Contents
Installed Programs: siggen, tripwire, twadmin, and twprint
Installed Libraries: None
Installed Directories: /etc/tripwire, /var/lib/tripwire, and /usr/share/doc/tripwire
Short Descriptions
siggen is a signature gathering utility that displays the hash function values for the specified files.
tripwire is the main file integrity checking program.
twadmin administrative and utility tool used to perform certain administrative functions related to Tripwire files
and configuration options.
twprint prints Tripwire database and report files in clear text format.
116
Beyond Linux® From Scratch - Version 6.3
Heimdal-1.1
Introduction to Heimdal
Heimdal is a free implementation of Kerberos 5 that aims to be compatible with MIT Kerberos 5 and is backward
compatible with Kerberos 4. Kerberos is a network authentication protocol. Basically it preserves the integrity of
passwords in any untrusted network (like the Internet). Kerberized applications work hand-in-hand with sites that
support Kerberos to ensure that passwords cannot be stolen or compromised. A Kerberos installation will make
changes to the authentication mechanisms on your network and will overwrite several programs and daemons from the
Shadow, Inetutils and Qpopper packages. See http://anduin.linuxfromscratch.org/files/BLFS/6.3/heimdal-overwrites
for a complete list of all the files and commands to rename each of them.
Package Information
• Download (HTTP): http://www.h5l.org/dist/src/heimdal-1.1.tar.gz
• Download (FTP): ftp://ftp.pdc.kth.se/pub/heimdal/src/heimdal-1.1.tar.gz
• Download MD5 sum: 7892e97b346534cc9afeeee461fe3bab
• Download size: 3.6 MB
• Estimated disk space required: 136 MB
• Estimated build time: 4.0 SBU (additional 1.5 SBU to run the test suite)
Additional Downloads
• Required Patch: http://www.linuxfromscratch.org/patches/blfs/6.3/heimdal-1.1-blfs_docs-1.patch
• Required Patch: http://www.linuxfromscratch.org/patches/blfs/6.3/heimdal-1.1-libss-1.patch
Heimdal Dependencies
Required to Build the Server-Side Tools
Berkeley DB-4.5.20 is recommended (installed in LFS) or GDBM-1.8.3
Recommended
OpenSSL-0.9.8g
Optional
Linux-PAM-0.99.10.0, OpenLDAP-2.3.39, X Window System, and libcap
Note
Some sort of time synchronization facility on your system (like NTP-4.2.4p0) is required since Kerberos
won't authenticate if the time differential between a kerberized client and the KDC server is more than 5
minutes.
Installation of Heimdal
Warning
Ensure you really need a Kerberos installation before you decide to install this package. Failure to install
and configure the package correctly can alter your system so that users cannot log in.
117
Beyond Linux® From Scratch - Version 6.3
./configure --prefix=/usr \
--sysconfdir=/etc/heimdal \
--libexecdir=/usr/sbin \
--localstatedir=/var/lib/heimdal \
--datadir=/var/lib/heimdal \
--with-hdbdir=/var/lib/heimdal \
--with-readline=/usr \
--enable-kcm &&
make
If you have teTeX-3.0 installed and wish to create alternate forms of the documentation, change into the doc directory
and issue any or all of the following commands:
popd
To test the results, issue: make -k check. The ipropd test is known to fail but all others should pass.
118
Beyond Linux® From Scratch - Version 6.3
mv -v /usr/lib/$(readlink /usr/lib/libdb.so) \
/usr/lib/libdb-?.so \
/lib &&
ln -v -sf ../../lib/$(readlink /usr/lib/libdb.so) \
/usr/lib/libdb.so &&
ldconfig
If you built any of the alternate forms of documentation, install it using the following commands as the root user:
install -v -m644 doc/{heimdal,hx509}.{dvi,ps,pdf,html,txt} \
/usr/share/doc/heimdal-1.1
If you wish to use the CrackLib-2.8.12 library to enforce strong passwords in the KDC database, issue the following
commands as the root user:
sed -e 's|/usr/pkg|/usr|' \
-e 's|/usr/lib/cracklib_dict|/lib/cracklib/pw_dict|' \
-e 's|/var/heimdal|/var/lib/heimdal|' \
lib/kadm5/check-cracklib.pl \
> /bin/krb5-check-cracklib.pl &&
Command Explanations
--libexecdir=/usr/sbin: This switch causes the daemon programs to be installed into /usr/sbin.
119
Beyond Linux® From Scratch - Version 6.3
Tip
If you want to preserve all your existing Inetutils package daemons, install the Heimdal daemons into
/usr/sbin/heimdal (or wherever you want). Since these programs will be called from (x)inetd or
rc scripts, it really doesn't matter where they are installed, as long as they are correctly specified in the
/etc/(x)inetd.conf file and rc scripts. If you choose something other than /usr/sbin, you may
want to move some of the user programs (such as kadmin) to /usr/sbin manually so they'll be in the
privileged user's default PATH.
--with-readline=/usr: This parameter must be used so that the configure script properly locates the installed
Readline package.
ln -sfv .../mech.5 /usr/share/man/...: These commands are used to fix some broken symbolic links.
mv ... ...SHADOW, mv ... /bin and ln ... /usr/bin: The login and su programs installed by Heimdal belong in the
/bin directory. The login program is symlinked because Heimdal is expecting to find it in /usr/bin. The old
executables from the Shadow package are preserved before the move so that they can be restored if you experience
problems logging into the system after the Heimdal package is installed and configured.
for LINK in ...; do ...; done, mv ... /lib and ln ... /usr/lib/libdb.so: The login and su programs previously moved
into the /lib directory link against Heimdal libraries as well as libraries provided by the OpenSSL and Berkeley
DB packages. These libraries are also moved to /lib so they are FHS compliant and also in case /usr is located
on a separate partition which may not always be mounted.
Configuring Heimdal
Config Files
/etc/heimdal/*
Configuration Information
Note
All the configuration steps shown below must be accomplished by the root user unless otherwise noted.
Many of the commands below use <replaceable> tags to identify places where you need to substitute information
specific to your network. Ensure you replace everything in these tags (there will be no angle brackets when you are
done) with your site-specific information.
120
Beyond Linux® From Scratch - Version 6.3
[libdefaults]
default_realm = <EXAMPLE.COM>
encrypt = true
[realms]
<EXAMPLE.COM> = {
kdc = <hostname.example.com>
admin_server = <hostname.example.com>
kpasswd_server = <hostname.example.com>
}
[domain_realm]
.<example.com> = <EXAMPLE.COM>
[logging]
kdc = FILE:/var/log/kdc.log
admin_server = FILE:/var/log/kadmin.log
default = FILE:/var/log/krb.log
# End /etc/heimdal/krb5.conf
EOF
chmod -v 644 /etc/heimdal/krb5.conf
You will need to substitute your domain and proper hostname for the occurrences of the <hostname> and
<EXAMPLE.COM> names.
default_realm should be the name of your domain changed to ALL CAPS. This isn't required, but both Heimdal
and MIT Kerberos recommend it.
encrypt = true provides encryption of all traffic between kerberized clients and servers. It's not necessary
and can be left off. If you leave it off, you can encrypt all traffic from the client to the server using a switch on the
client program instead. The [realms] parameters tell the client programs where to look for the KDC authentication
services. The [domain_realm] section maps a domain to a realm.
Store the master password in a key file using the following commands:
kadmin -l
121
Beyond Linux® From Scratch - Version 6.3
The commands below will prompt you for information about the principles. Choose the defaults for now unless you
know what you are doing and need to specify different values. You can go in later and change the defaults, should
you feel the need. You may use the up and down arrow keys to use the history feature of kadmin in a similar manner
as the bash history feature.
At the kadmin> prompt, issue the following statement:
init <EXAMPLE.COM>
The database must now be populated with at least one principle (user). For now, just use your regular login name or
root. You may create as few, or as many principles as you wish using the following statement:
add <loginname>
The KDC server and any machine running kerberized server daemons must have a host key installed:
add --random-key host/<hostname.example.com>
After choosing the defaults when prompted, you will have to export the data to a keytab file:
ext host/<hostname.example.com>
This should have created two files in /etc/heimdal: krb5.keytab (Kerberos 5) and srvtab (Kerberos 4).
Both files should have 600 (root rw only) permissions. Keeping the keytab files from public access is crucial to the
overall security of the Kerberos installation.
Eventually, you'll want to add server daemon principles to the database and extract them to the keytab file. You do
this in the same way you created the host principles. Below is an example:
add --random-key ftp/<hostname.example.com>
(choose the defaults)
ext ftp/<hostname.example.com>
Exit the kadmin program (use quit or exit) and return back to the shell prompt. Start the KDC daemon manually,
just to test out the installation:
/usr/sbin/kdc &
Attempt to get a TGT (ticket granting ticket) with the following command:
kinit <loginname>
You will be prompted for the password you created. After you get your ticket, you should list it with the following
command:
klist
Information about the ticket should be displayed on the screen.
To test the functionality of the keytab file, issue the following command:
ktutil list
This should dump a list of the host principals, along with the encryption methods used to access the principals.
At this point, if everything has been successful so far, you can feel fairly confident in the installation, setup and
configuration of your new Heimdal Kerberos 5 installation.
122
Beyond Linux® From Scratch - Version 6.3
If you wish to use the CrackLib-2.8.12 library to enforce strong passwords in the KDC database, you must do two
things. First, add the following lines to the /etc/heimdal/krb5.conf configuration file:
[password_quality]
policies = builtin:external-check
external_program = /bin/krb5-check-cracklib.pl
Next you must install the Crypt::Cracklib Perl module. Download it from the CPAN site. The URL at the time of
this writing is http://cpan.org/authors/id/D/DA/DANIEL/Crypt-Cracklib-1.2.tar.gz. After unpacking the tarball and
changing into the newly created directory, issue the following command to add the BLFS Cracklib dictionary location
to one of the source files:
sed -i 's|pw_dict|&\n\t\t/lib/cracklib/pw_dict|' Cracklib.pm
Then use the standard perl Makefile.PL; make; make test; make install commands. Note that one test fails due
to an unknown reason.
Install the /etc/rc.d/init.d/heimdal init script included in the blfs-bootscripts-20080816 package:
make install-heimdal
Contents
Installed Programs: afslog, ftp, ftpd, gss, hprop, hpropd, hxtool, iprop-log, ipropd-master, ipropd-slave,
kadmin, kadmind, kauth, kcm, kdc, kdestroy, kdigest, kf, kfd, kgetcred, kimpersonate,
kinit, klist, kpasswd, kpasswdd, krb5-check-cracklib.pl, krb5-config, kstash, ktutil, kx,
kxd, login, mk_cmds-krb5, otp, otpprint, pagsh, pfrom, popper, push, rcp, rsh, rshd,
rxtelnet, rxterm, string2key, su, telnet, telnetd, tenletxr, verify_krb5_conf and xnlock
Installed Libraries: hdb_ldap.{so,a}, libasn1.{so,a}, libeditline.{so,a}, libgssapi.{so,a}, libhdb.{so,a},
libheimntlm.{so,a}, libhx509.{so,a}, libkadm5clnt.{so,a}, libkadm5srv.{so,a},
libkafs.{so,a}, libkdc.{so,a}, libkrb5.{so,a}, libotp.{so,a}, libroken.{so,a},
libsl.{so,a}, libss-krb5.{so,a} and windc.{so,a}
Installed Directories: /etc/heimdal, /usr/include/gssapi, /usr/include/kadm5, /usr/include/krb5,
/usr/include/roken, /usr/include/ss, /usr/share/doc/heimdal-1.1 and /var/lib/heimdal
123
Beyond Linux® From Scratch - Version 6.3
Short Descriptions
afslog obtains AFS tokens for a number of cells.
ftp is a kerberized FTP client.
ftpd is a kerberized FTP daemon.
hprop takes a principal database in a specified format and converts it into a stream of Heimdal
database records.
hpropd is a server that receives a database sent by hprop and writes it as a local database.
iprop-log is used to maintain the iprop log file.
ipropd-master is a daemon which runs on the master KDC server which incrementally propagates
changes to the KDC database to the slave KDC servers.
ipropd-slave is a daemon which runs on the slave KDC servers which incrementally propagates
changes to the KDC database from the master KDC server.
kadmin is a utility used to make modifications to the Kerberos database.
kadmind is a server for administrative access to the Kerberos database.
kauth is a symbolic link to the kinit program.
kcm is a process based credential cache for Kerberos tickets.
kdc is a Kerberos 5 server.
kdestroy removes a principle's current set of tickets.
kf is a program which forwards tickets to a remote host through an authenticated and
encrypted stream.
kfd is a server used to receive forwarded tickets.
kgetcred obtains a ticket for a service.
kinit is used to authenticate to the Kerberos server as a principal and acquire a ticket granting
ticket that can later be used to obtain tickets for other services.
klist reads and displays the current tickets in the credential cache.
kpasswd is a program for changing Kerberos 5 passwords.
kpasswdd is a Kerberos 5 password changing server.
krb5-config gives information on how to link programs against Heimdal libraries.
kstash stores the KDC master password in a file.
ktutil is a program for managing Kerberos keytabs.
kx is a program which securely forwards X connections.
kxd is the daemon for kx.
login is a kerberized login program.
otp manages one-time passwords.
otpprint prints lists of one-time passwords.
pfrom is a script that runs push --from.
popper is a kerberized POP-3 server.
124
Beyond Linux® From Scratch - Version 6.3
125
Beyond Linux® From Scratch - Version 6.3
Package Information
• Download (HTTP): http://web.mit.edu/kerberos/www/dist/krb5/1.6/krb5-1.6-signed.tar
•
• Download MD5 sum: a365e39ff7d39639556c2797a0e1c3f4
• Download size: 12.0 MB
• Estimated disk space required: 124 MB
• Estimated build time: 1.4 SBU
Optional
Linux-PAM-0.99.10.0 (for xdm based logins), OpenLDAP-2.3.39, and DejaGnu-1.4.4 (required to run the test suite)
Note
Some sort of time synchronization facility on your system (like NTP-4.2.4p0) is required since Kerberos
won't authenticate if there is a time difference between a kerberized client and the KDC server.
cd src &&
./configure CPPFLAGS="-I/usr/include/et -I/usr/include/ss" \
--prefix=/usr \
--sysconfdir=/etc/krb5 \
--localstatedir=/var/lib \
--with-system-et \
--with-system-ss \
--enable-dns-for-realm \
--mandir=/usr/share/man &&
make
126
Beyond Linux® From Scratch - Version 6.3
The regression test suite is designed to be run after the installation has been completed.
Now, as the root user:
Warning
login.krb5 does not support Shadow passwords. As a result, when the Kerberos server is unavailable,
the default fall through to /etc/passwd will not work because the passwords have been moved to
/etc/shadow during the LFS build process. Entering the following commands without moving the
passwords back to /etc/passwd could prevent any logins.
After considering (and understanding) the above warning, the following commands can be entered as the root user
to replace the existing login program with the Kerberized version (after preserving the original) and move the support
libraries to a location available when the /usr filesystem is not mounted:
ldconfig
127
Beyond Linux® From Scratch - Version 6.3
To test the installation, you must have DejaGnu-1.4.4 installed and issue: make check. The RPC layer tests will
require a portmap daemon (see portmap-6.0) running and configured to listen on the regular network interface (not
localhost). See the “Testing the Build” section of the krb5-install.html file in the ../doc directory for
complete information on running the regression tests.
Command Explanations
--enable-dns-for-realm: This parameter allows realms to be resolved using the DNS server.
--with-system-et: This parameter causes the build to use the system-installed versions of the error-table support
software.
--with-system-ss: This parameter causes the build to use the system-installed versions of the subsystem
command-line interface software.
--localstatedir=/var/lib: This parameter is used so that the Kerberos variable run-time data is located in
/var/lib instead of /usr/var.
mv -v /usr/bin/ksu /bin: Moves the ksu program to the /bin directory so that it is available when the /usr
filesystem is not mounted.
mv -v ... /lib && ln -v -sf ...: These libraries are moved to /lib so they are available when the /usr filesystem
is not mounted.
Configuration Information
Kerberos Configuration
Tip
You should consider installing some sort of password checking dictionary so that you can configure the
installation to only accept strong passwords. A suitable dictionary to use is shown in the CrackLib-2.8.12
instructions. Note that only one file can be used, but you can concatenate many files into one. The
configuration file shown below assumes you have installed a dictionary to /usr/share/dict/words.
128
Beyond Linux® From Scratch - Version 6.3
Create the Kerberos configuration file with the following commands issued by the root user:
[libdefaults]
default_realm = <LFS.ORG>
encrypt = true
[realms]
<LFS.ORG> = {
kdc = <belgarath.lfs.org>
admin_server = <belgarath.lfs.org>
dict_file = /usr/share/dict/words
}
[domain_realm]
.<lfs.org> = <LFS.ORG>
[logging]
kdc = SYSLOG[:INFO[:AUTH]]
admin_server = SYSLOG[INFO[:AUTH]]
default = SYSLOG[[:SYS]]
# End /etc/krb5/krb5.conf
EOF
You will need to substitute your domain and proper hostname for the occurences of the <belgarath> and <lfs.
org> names.
default_realm should be the name of your domain changed to ALL CAPS. This isn't required, but both Heimdal
and MIT recommend it.
encrypt = true provides encryption of all traffic between kerberized clients and servers. It's not necessary and
can be left off. If you leave it off, you can encrypt all traffic from the client to the server using a switch on the client
program instead.
The [realms] parameters tell the client programs where to look for the KDC authentication services.
The [domain_realm] section maps a domain to a realm.
Create the KDC database:
Now you should populate the database with principles (users). For now, just use your regular login name or root.
kadmin.local
kadmin: add_policy dict-only
kadmin: addprinc -policy dict-only <loginname>
129
Beyond Linux® From Scratch - Version 6.3
The KDC server and any machine running kerberized server daemons must have a host key installed:
After choosing the defaults when prompted, you will have to export the data to a keytab file:
This should have created a file in /etc/krb5 named krb5.keytab (Kerberos 5). This file should have 600
(root rw only) permissions. Keeping the keytab files from public access is crucial to the overall security of the
Kerberos installation.
Eventually, you'll want to add server daemon principles to the database and extract them to the keytab file. You do
this in the same way you created the host principles. Below is an example:
Exit the kadmin program (use quit or exit) and return back to the shell prompt. Start the KDC daemon manually,
just to test out the installation:
/usr/sbin/krb5kdc &
kinit <loginname>
You will be prompted for the password you created. After you get your ticket, you can list it with the following
command:
klist
ktutil
ktutil: rkt /etc/krb5/krb5.keytab
ktutil: l
This should dump a list of the host principal, along with the encryption methods used to access the principal.
At this point, if everything has been successful so far, you can feel fairly confident in the installation and configuration
of the package.
Install the /etc/rc.d/init.d/kerberos init script included in the blfs-bootscripts-20080816 package.
make install-kerberos
130
Beyond Linux® From Scratch - Version 6.3
The kerberized programs will connect to non kerberized daemons, warning you that authentication is not encrypted.
Additional Information
For additional information consult Documentation for krb-1.6 on which the above instructions are based.
Contents
Installed Programs: ftp, ftpd, gss-client, gss-server, k5srvutil, kadmin, kadmin.local, kadmind,
kdb5_ldap_util, kdb5_util, kdestroy, kinit, klist, klogind, kpasswd, kprop, kpropd,
krb5-config, krb5-send-pr, krb524d, krb524init, krb5kdc, kshd, ksu, ktutil, kvno,
login.krb5, rcp, rlogin, rsh, sclient, sim_client, sim_server, sserver, telnet, telnetd,
uuclient, uuserver and v4rcp
Installed Libraries: libdes425.so, libgssapi_krb5.so, libgssrpc.so, libk5crypto.so, libkadm5clnt.so,
libkadm5srv.so, libkdb5.so, libkdb_ldap.so, libkrb4.so, libkrb5.so and
libkrb5support.so
Installed Directories: /etc/krb5, /usr/include/{gssapi,gssrpc,kerberosIV,krb5}, /usr/lib/krb5,
/usr/share/{doc/krb5-1.6,examples,gnats} and /var/lib/krb5kdc
Short Descriptions
ftp is a kerberized FTP client.
ftpd is a kerberized FTP daemon.
k5srvutil is a host keytable manipulation utility.
kadmin is an utility used to make modifications to the Kerberos database.
kadmind is a server for administrative access to a Kerberos database.
kdb5_util is the KDC database utility.
kdestroy removes the current set of tickets.
kinit is used to authenticate to the Kerberos server as a principal and acquire a ticket granting
ticket that can later be used to obtain tickets for other services.
klist reads and displays the current tickets in the credential cache.
klogind is the server that responds to rlogin requests.
kpasswd is a program for changing Kerberos 5 passwords.
kprop takes a principal database in a specified format and converts it into a stream of database
records.
kpropd receives a database sent by kprop and writes it as a local database.
krb5-config gives information on how to link programs against libraries.
krb5kdc is a Kerberos 5 server.
131
Beyond Linux® From Scratch - Version 6.3
132
Beyond Linux® From Scratch - Version 6.3
Cyrus SASL-2.1.22
Introduction to Cyrus SASL
The Cyrus SASL package contains a Simple Authentication and Security Layer, a method for adding authentication
support to connection-based protocols. To use SASL, a protocol includes a command for identifying and
authenticating a user to a server and for optionally negotiating protection of subsequent protocol interactions. If its
use is negotiated, a security layer is inserted between the protocol and the connection.
Package Information
• Download (HTTP): http://ftp.andrew.cmu.edu/pub/cyrus-mail/cyrus-sasl-2.1.22.tar.gz
• Download (FTP): ftp://ftp.andrew.cmu.edu/pub/cyrus-mail/cyrus-sasl-2.1.22.tar.gz
• Download MD5 sum: 45dde9d19193ae9dd388eb68b2027bc9
• Download size: 1.5 MB
• Estimated disk space required: 14 MB
• Estimated build time: 0.2 SBU
Required
OpenSSL-0.9.8g
Optional
This package does not come with a test suite. If you are planning on using the GSSAPI authentication mechanism,
it is recommended to test it after installing the package using the sample server and client programs which were
built in the preceding step. Instructions for performing the tests can be found at http://www.linuxfromscratch.
org/hints/downloads/files/cyrus-sasl.txt.
Now, as the root user:
133
Beyond Linux® From Scratch - Version 6.3
Command Explanations
--with-dbpath=/var/lib/sasl/sasldb2: This parameter forces the sasldb database to be created in
/var/lib/sasl instead of /etc.
--with-saslauthd=/var/run/saslauthd: This parameter forces saslauthd to use the FHS compliant
directory /var/run/saslauthd for variable run-time data.
--with-dblib=gdbm: This parameter forces GDBM to be used instead of Berkeley DB.
--with-ldap: This parameter enables use with OpenLDAP.
--enable-ldapdb: This parameter enables the LDAPDB authentication backend. There is a circular dependency
with this parameter. See http://wiki.linuxfromscratch.org/blfs/wiki/cyrus-sasl for a solution to this problem.
install -v -m644 ...: These commands install documentation which is not installed by the make install command.
install -v -m700 -d /var/lib/sasl /var/run/saslauthd: These directories must exist when starting saslauthd or using
the sasldb plugin. If you're not going to be running the daemon or using the plugins, you may omit the creation of
this directory.
Configuration Information
See file:///usr/share/doc/cyrus-sasl-2.1.22/sysadmin.html for information on what to include in the application
configuration files. See file:///usr/share/doc/cyrus-sasl-2.1.22/LDAP_SASLAUTHD for configuring saslauthd with
OpenLDAP.
Init Script
If you need to run the saslauthd daemon at system startup, install the /etc/rc.d/init.d/cyrus-sasl init
script included in the blfs-bootscripts-20080816 package.
make install-cyrus-sasl
Note
You'll need to modify the init script and replace the <authmech> parameter to the -a switch with your
desired authentication mechanism.
Contents
Installed Programs: saslauthd, sasldblistusers2, and saslpasswd2
Installed Libraries: libjavasasl.so, libsasl2.so, and numerous SASL plugins and Java classes
Installed Directories: /usr/include/sasl, /usr/lib/java/classes/sasl, /usr/lib/sasl2,
/usr/share/doc/cyrus-sasl-2.1.22, and /var/lib/sasl
134
Beyond Linux® From Scratch - Version 6.3
Short Descriptions
saslauthd is the SASL authentication server.
sasldblistusers2 is used to list the users in the SASL password database sasldb2.
saslpasswd2 is used to set and delete a user's SASL password and mechanism specific secrets in the
SASL password database sasldb2.
libsasl2.so is a general purpose authentication library for server and client applications.
135
Beyond Linux® From Scratch - Version 6.3
Stunnel-4.21
Introduction to Stunnel
The Stunnel package contains a program that allows you to encrypt arbitrary TCP connections inside SSL (Secure
Sockets Layer) so you can easily communicate with clients over secure channels. Stunnel can be used to add SSL
functionality to commonly used Inetd daemons like POP-2, POP-3, and IMAP servers, to standalone daemons like
NNTP, SMTP and HTTP, and in tunneling PPP over network sockets without changes to the server package source
code.
Package Information
• Download (HTTP): http://www.stunnel.org/download/stunnel/src/stunnel-4.21.tar.gz
• Download (FTP): ftp://stunnel.mirt.net/stunnel/stunnel-4.21.tar.gz
• Download MD5 sum: 1eaec5228979beca4d548f453304e311
• Download size: 528 KB
• Estimated disk space required: 5 MB
• Estimated build time: 0.1 SBU
Additional Downloads
• Required patch: http://www.linuxfromscratch.org/patches/blfs/6.3/stunnel-4.21-setuid-1.patch
Stunnel Dependencies
Required
OpenSSL-0.9.8g
Optional
TCP Wrapper-7.6
Installation of Stunnel
The stunnel daemon will be run in a chroot jail by an unprivileged user. Create the new user and group using the
following commands as the root user:
136
Beyond Linux® From Scratch - Version 6.3
Note
A signed SSL Certificate and a Private Key is necessary to run the stunnel daemon. If you own, or have
already created a signed SSL Certificate you wish to use, copy it to /etc/stunnel/stunnel.pem
before starting the build (ensure only root has read and write access), otherwise you will be prompted to
create one during the installation process. The .pem file must be formatted as shown below:
-----BEGIN RSA PRIVATE KEY-----
<many encrypted lines of unencrypted key>
-----END RSA PRIVATE KEY-----
-----BEGIN CERTIFICATE-----
<many encrypted lines of certificate>
-----END CERTIFICATE-----
./configure --prefix=/usr \
--sysconfdir=/etc \
--localstatedir=/var/lib \
--disable-libwrap &&
make
This package does not come with a test suite.
Now, as the root user:
make docdir=/usr/share/doc/stunnel-4.21 install
Command Explanations
sed -i 's|nogroup|stunnel|g' configure: This command is used to change the default group for the installed files in
/var/lib/stunnel from nogroup to stunnel.
sed -i '...' tools/Makefile.in: This command ensures that the chroot jail will be located in /var/lib/stunnel
instead of /usr/var/lib/stunnel.
--sysconfdir=/etc: This parameter forces the configuration directory to /etc instead of /usr/etc.
--localstatedir=/var/lib: This parameter sets the installation to use /var/lib/stunnel instead of
creating and using /usr/var/stunnel.
--disable-libwrap: This parameter is required if you don't have tcpwrappers installed. Remove the parameter
if tcpwrappers is installed.
make docdir=... install: This command installs the package, changes the documentation installation directory to
standard naming conventions and, if you did not copy an stunnel.pem file to the /etc/stunnel directory,
prompts you for the necessary information to create one. Ensure you reply to the
Common Name (FQDN of your server) [localhost]:
137
Beyond Linux® From Scratch - Version 6.3
prompt with the name or IP address you will be using to access the service(s).
Configuring Stunnel
Config Files
/etc/stunnel/stunnel.conf
Configuration Information
As the root user, create the directory used for the .pid file that is created when the Stunnel daemon starts:
install -v -m750 -o stunnel -g stunnel -d /var/lib/stunnel/run
Next, create a basic /etc/stunnel/stunnel.conf configuration file using the following commands as the
root user:
cat >/etc/stunnel/stunnel.conf << "EOF" &&
; File: /etc/stunnel/stunnel.conf
pid = /run/stunnel.pid
chroot = /var/lib/stunnel
client = no
setuid = stunnel
setgid = stunnel
EOF
chmod -v 644 /etc/stunnel/stunnel.conf
Finally, you need to add the service(s) you wish to encrypt to the configuration file. The format is as follows:
[<service>]
accept = <hostname:portnumber>
connect = <hostname:portnumber>
If you use Stunnel to encrypt a daemon started from [x]inetd, you may need to disable that daemon in the
/etc/[x]inetd.conf file and enable a corresponding <service>_stunnel service. You may have to add an
appropriate entry in /etc/services as well.
For a full explanation of the commands and syntax used in the configuration file, run man stunnel. To see a BLFS
example of an actual setup of an stunnel encrypted service, read the the section called “Configuring SWAT” in the
Samba instructions.
Boot Script
To automatically start the stunnel daemon when the system is rebooted, install the /etc/rc.d/init.
d/stunnel bootscript from the blfs-bootscripts-20080816 package.
make install-stunnel
Contents
Installed Programs: stunnel and stunnel3
Installed Library: libstunnel.so
Installed Directories: /etc/stunnel, /usr/lib/stunnel, /usr/share/doc/stunnel-4.21 and /var/lib/stunnel
138
Beyond Linux® From Scratch - Version 6.3
Short Descriptions
stunnel is a program designed to work as an SSL encryption wrapper between remote clients and local
({x}inetd-startable) or remote servers.
stunnel3 is a Perl wrapper script to use stunnel 3.x syntax with stunnel >=4.05.
libstunnel.so contains the API functions required by Stunnel.
139
Beyond Linux® From Scratch - Version 6.3
Sudo-1.6.9p15
Introduction to Sudo
The sudo package allows a system administrator to give certain users (or groups of users) the ability to run some (or
all) commands as root or another user while logging the commands and arguments.
Package Information
• Download (HTTP): http://www.sudo.ws/sudo/dist/sudo-1.6.9p15.tar.gz
• Download (FTP): ftp://ftp.twaren.net/Unix/Security/Sudo/sudo-1.6.9p15.tar.gz
• Download MD5 sum: 06cfeed4ececfce6c82e03974c588066
• Download size: 581 KB
• Estimated disk space required: 3.9 MB
• Estimated build time: less than 0.1 SBU
Sudo Dependencies
Optional
Linux-PAM-0.99.10.0, Opie, SecurID, FWTK, an MTA (that provides a sendmail command), krb4, Heimdal-1.1 or
MIT Kerberos V5-1.6, OpenLDAP-2.3.39, and AFS
Installation of Sudo
Install sudo by running the following commands:
make install
Command Explanations
--with-ignore-dot: This switch causes sudo to ignore '.' in the PATH.
--with-all-insults: This switch includes all the sudo insult sets.
--enable-shell-sets-home: This switch sets HOME to the target user in shell mode.
--disable-root-sudo: This switch keeps the root user from running sudo, preventing users from chaining
commands to get a root shell.
--with-logfac=auth: This switch forces use of the auth facility for logging.
140
Beyond Linux® From Scratch - Version 6.3
--without-pam: This switch disables the use of PAM authentication. Omit if you have PAM installed.
--without-sendmail: This switch disables the use of sendmail. Remove if you have a sendmail compatible
MTA.
--enable-noargs-shell: This switch allows sudo to run a shell if invoked with no arguments.
Note
There are many options to sudo's configure command. Check the configure --help output for a complete
list.
Configuring Sudo
Config File
/etc/sudoers
Configuration Information
The sudoers file can be quite complicated. It is composed of two types of entries: aliases (basically variables) and
user specifications (which specify who may run what). The installation installs a default configuration that has no
privileges installed for any user.
One example usage is to allow the system administrator to execute any program without typing a password each time
root privileges are needed. This can be configured as:
Note
The Sudo developers highly recommend using the visudo program to edit the sudoers file. This will
provide basic sanity checking like syntax parsing and file permission to avoid some possible mistakes that
could lead to a vulnerable configuration.
If you've built Sudo with PAM support, issue the following command as the root user to create the PAM
configuration file:
Contents
Installed Programs: sudo, sudoedit, and visudo
Installed Library: sudo_noexec.so
Installed Directories: None
141
Beyond Linux® From Scratch - Version 6.3
Short Descriptions
sudo executes a command as another user as permitted by the /etc/sudoers configuration file.
sudoedit is a hard link to sudo that implies the -e option to invoke an editor as another user.
visudo allows for safer editing of the sudoers file.
sudo_noexec.so enables support for the "noexec" functionality which prevents a dynamically-linked program
being run by sudo from executing another program (think shell escapes).
142
Beyond Linux® From Scratch - Version 6.3
NSS-3.11.7
Introduction to NSS
The Network Security Services (NSS) package is a set of libraries designed to support cross-platform development of
security-enabled client and server applications. Applications built with NSS can support SSL v2 and v3, TLS, PKCS
#5, PKCS #7, PKCS #11, PKCS #12, S/MIME, X.509 v3 certificates, and other security standards. This is useful for
implementing SSL and S/MIME or other Internet security standards into an application.
The NSS package requires the Netscape Portable Runtime (NSPR) libraries as a prerequisite for building. The NSS
package tarball contains the code necessary to build the NSPR libraries. These libraries are built and installed using
the instructions below. Essentially, the NSS package is now a combined NSS/NSPR installation.
Package Information
• Download (HTTP): http://ftp.mozilla.org/pub/mozilla.org/security/nss/releases/NSS_3_11_7_RTM/src/nss-3.11.
7-with-nspr-4.6.7.tar.gz
• Download (FTP): ftp://ftp.mozilla.org/pub/mozilla.org/security/nss/releases/NSS_3_11_7_RTM/src/nss-3.11.7-
with-nspr-4.6.7.tar.gz
• Download MD5 sum: 0b0c6bdf63c442d68453e470b8747a9d
• Download size: 5.0 MB
• Estimated disk space required: 71 MB
• Estimated build time: 0.8 SBU (additional 0.9 SBU to run the test suite)
Additional Downloads
• Required patch: http://www.linuxfromscratch.org/patches/blfs/6.3/nss-3.11.7-with-nspr-4.6.7-fedora_fixes-1.
patch
Installation of NSS
Install NSS by running the following commands:
bash
cd mozilla/security/nss &&
make nss_build_all &&
cd ../.. &&
143
Beyond Linux® From Scratch - Version 6.3
To test the results, you'll need to set the domain name of your system in the DOMSUF environment variable. Most
of the tests will fail if you don't provide the correct domain name. A self-generated log file will be parsed at the end
of the test to display how many tests passed. It should return 800. To run the tests, ensure you change the export
DOMSUF command below to an appropriate value, e.g., mydomain.com and issue the following commands:
bash
cd security/nss/tests &&
sed -i 's/gmake/make/' common/init.sh &&
./all.sh &&
exit
Caution
If you switch to the root user using a method that does not inherit the environment from the unprivileged
user, ensure that root's NSS_LINUXDIR environment variable is set correctly before proceeding with
the installation commands.
cd dist &&
Now as the unprivileged user, exit the bash shell started at the beginning of the installation to restore the environment
to the original state.
exit
144
Beyond Linux® From Scratch - Version 6.3
Command Explanations
bash: Shells are started as many environment variables are created during the installation process. Exiting the shells
serves the purpose of restoring the environment and returning back to the original directory when the installation
is complete.
export WORKINGDIR=$PWD: This variable is set because many of the commands are dependent on knowing the
full path of certain directories. WORKINGDIR establishes a known path so that all others can be determined relative
to this.
export BUILD_OPT=1: This variable is set so that the build is performed with no debugging symbols built into the
binaries and that the default compiler optimizations are used.
export NSS_LINUXDIR=...: This variable is set so that the exact name of the architecture specific directories where
the binaries are stored in the source tree can be determined.
make nss_build_all: This command builds the NSPR and NSS libraries and creates a dist directory which houses
all the programs, libraries and interface headers. None of the programs created by this process are installed onto
the system using the default instructions. If you need any of these programs installed, you can find them in the
mozilla/dist/bin directory of the source tree.
export PATH=...: This command sets the PATH environment variable to include the executables in the source tree
as some of them are required to run the test suite.
sed -i 's/gmake/make/' common/init.sh: This command changes the command used to compile some test programs.
Contents
Installed Programs: nspr-config and nss-config
Installed Libraries: libcrmf.a, libfreebl3.so, libnspr4.so, libnss3.so, libnssckbi.so, libplc4.so, libplds4.so,
libsmime3.so, libsoftokn3.so and libssl3.so
Installed Directories: /usr/include/nspr and /usr/include/nss
Short Descriptions
nspr-config is used to determine the NSPR installation settings of the installed NSPR libraries.
nss-config is used to determine the NSS library settings of the installed NSS libraries.
The libnspr4.so, libplc4.so and libplds4.so libraries make up the Netscape Portable Runtime (NSPR)
libraries. These libraries provide a platform-neutral API for system level and libc like functions. The API is used in
the Mozilla client, many of the Netscape/AOL/iPlanet offerings and other software applications.
The libcrmf.a, libfreebl.so, libnss3.so, libnssckbi.so, libsmime3.so, libsoftokn3.so
and libnssl3.so libraries make up the NSS libraries.
145
Beyond Linux® From Scratch - Version 6.3
146
Beyond Linux® From Scratch - Version 6.3
ReiserFS-3.6.20
Introduction to ReiserFS
The ReiserFS package contains various utilities for use with the Reiser file system.
Package Information
• Download (HTTP): http://anduin.linuxfromscratch.org/sources/BLFS/6.3/r/reiserfsprogs-3.6.20.tar.gz
• Download (FTP): ftp://anduin.linuxfromscratch.org/BLFS/6.3/r/reiserfsprogs-3.6.20.tar.gz
• Download MD5 sum: 3b3392f59c5d302cf858bc4cf194b258
• Download size: 500 KB
• Estimated disk space required: 8 MB
• Estimated build time: 0.2 SBU
Installation of ReiserFS
Install ReiserFS by running the following commands:
./configure --prefix=/usr --sbindir=/sbin &&
make
This package does not come with a test suite.
Now, as the root user:
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
Installed Programs: debugreiserfs, mkreiserfs, reiserfsck, reiserfstune, and resize_reiserfs
Installed Libraries: None
Installed Directories: None
Short Descriptions
debugreiserfs can sometimes help to solve problems with ReiserFS file systems. If it is called without
options, it prints the super block of any ReiserFS file system found on the device.
mkreiserfs creates a ReiserFS file system.
reiserfsck is used to check or repair a ReiserFS file system.
reiserfstune is used for tuning the ReiserFS journal. WARNING: Don't use this utility without first reading
the man page thoroughly.
147
Beyond Linux® From Scratch - Version 6.3
148
Beyond Linux® From Scratch - Version 6.3
XFS-2.9.7
Introduction to XFS
The XFS package contains administration and debugging tools for the XFS file system.
Package Information
• Download (HTTP): http://anduin.linuxfromscratch.org/files/BLFS/6.3/sources/xfsprogs_2.9.7-1.tar.gz
•
• Download MD5 sum: 2bba6d3e4183defacf99e5e8ce805460
• Download size: 976 KB
• Estimated disk space required: 37 MB
• Estimated build time: 0.6 SBU
Caution
The XFS developers regularly remove the current package when a new package is available. Unfortunately,
this has led to severe incompatibilities, including unmountable filesystems, due to kernel version
requirements in new versions of the package. Using a version not in the book is strongly discouraged.
Additional information, is available at the XFS project page.
Installation of XFS
Install XFS by running the following commands:
Command Explanations
make DEBUG=-DNDEBUG: Turns off debugging symbols.
INSTALL_USER=root INSTALL_GROUP=root: This sets the owner and group of the installed files.
LOCAL_CONFIGURE_OPTIONS="...": This passes extra configuration options to the configure script. The
example --enable-readline=yes parameter enables linking the XFS programs with the libreadline.so
library, in order to allow editing interactive commands.
OPTIMIZER="...": Adding this parameter to the end of the make command overrides the default optimization
settings.
149
Beyond Linux® From Scratch - Version 6.3
make install-dev: This command installs static XFS libraries, their headers and the corresponding documentation.
Contents
Installed Programs: fsck.xfs, mkfs.xfs, xfs_admin, xfs_bmap, xfs_check, xfs_copy, xfs_db, xfs_freeze,
xfs_growfs, xfs_info, xfs_io, xfs_logprint, xfs_mdrestore, xfs_metadump, xfs_mkfile,
xfs_ncheck, xfs_quota, xfs_repair, and xfs_rtcp
Installed Libraries: libdisk.a, libhandle.{so,a}, libxcmd.a, libxfs.a, and libxlog.a
Installed Directory: /usr/share/doc/xfsprogs
Short Descriptions
fsck.xfs simply exits with a zero status, since XFS partitions are checked at mount time.
mkfs.xfs constructs an XFS file system.
xfs_admin changes the parameters of an XFS file system.
xfs_bmap prints block mapping for an XFS file.
xfs_check checks XFS file system consistency.
xfs_copy copies the contents of an XFS file system to one or more targets in parallel.
xfs_db is used to debug an XFS file system.
xfs_freeze suspends access to an XFS file system.
xfs_growfs expands an XFS file system.
xfs_info is equivalent to invoking xfs_growfs, but specifying that no change to the file system is to be
made.
xfs_io is a debugging tool like xfs_db, but is aimed at examining the regular file I/O path rather than
the raw XFS volume itself.
xfs_logprint prints the log of an XFS file system.
xfs_mdrestore restores an XFS metadump image to a filesystem image.
xfs_metadump copies XFS filesystem metadata to a file.
xfs_mkfile creates an XFS file, padded with zeroes by default.
xfs_ncheck generates pathnames from inode numbers for an XFS file system.
xfs_quota is a utility for reporting and editing various aspects of filesystem quota.
xfs_repair repairs corrupt or damaged XFS file systems.
xfs_rtcp copies a file to the real-time partition on an XFS file system.
libhandle.so contains XFS-specific functions that provide a way to perform certain filesystem operations
without using a file descriptor to access filesystem objects.
150
Beyond Linux® From Scratch - Version 6.3
Chapter 6. Editors
This chapter is referenced in the LFS book for those wishing to use other editors on their LFS system. You're also
shown how some LFS installed programs benefit from being recompiled after GUI libraries have been installed.
151
Beyond Linux® From Scratch - Version 6.3
Vim-7.1
Introduction to Vim
The Vim package, which is an abbreviation for VI IMproved, contains a vi clone with extra features as compared
to the original vi.
The default LFS instructions install vim as a part of the base system. If you would prefer to link vim against X, you
should recompile vim to enable GUI mode. There is no need for special instructions since X support is automatically
detected.
Package Information
• Download (HTTP): http://ftp.at.vim.org/pub/vim/unix/vim-7.1.tar.bz2
• Download (FTP): ftp://ftp.vim.org/pub/vim/unix/vim-7.1.tar.bz2
• Download MD5 sum: 44c6b4914f38d6f9aa959640b89da329
• Download size: 6.6 MB
• Estimated disk space required: 75 MB
• Estimated build time: 0.8 SBU
Additional Downloads
• Required Patch: http://www.linuxfromscratch.org/patches/blfs/6.3/vim-7.1-mandir-1.patch
• Required Patch: http://www.linuxfromscratch.org/patches/blfs/6.3/vim-7.1-fixes-6.patch
• Translated Vim messages: http://ftp.at.vim.org/pub/vim/extra/vim-7.1-lang.tar.gz
Vim Dependencies
Recommended
X Window System
Optional
Installation of Vim
Note
If you recompile Vim to link against X and your X libraries are not on the root partition, you will no longer
have an editor for use in emergencies. You may choose to install an additional editor, not link Vim against
X, or move the current vim executable to the /bin directory under a different name such as vi.
152
Beyond Linux® From Scratch - Version 6.3
Command Explanations
patch …: These patches are the same as the ones in the LFS build used to update the package with upstream patches
and ensure the man pages are placed in the proper locations.
--with-features=huge: This switch enables all the additional features available in Vim.
--enable-gui=no: This will prevent compilation of the GUI. Vim will still link against X, so that some features
such as the client-server model or the x11-selection (clipboard) are still available.
--without-x: If you prefer not to link Vim against X, use this switch.
--enable-perlinterp, --enable-pythoninterp, --enable-tclinterp,
--enable-rubyinterp: These options include the Perl, Python, Tcl, or Ruby interpreters that allow using other
application code in vim scripts.
Configuring Vim
Config Files
/etc/vimrc and ~/.vimrc
153
Beyond Linux® From Scratch - Version 6.3
Configuration Information
Vim has an integrated spell checker which you can enable it if you issue the following in a vim window:
This setting will enable spell checking for the Russian language for the current session.
By default, Vim only installs spell files for the English language. If a spell file is not available for a language, then
Vim will call the $VIMRUNTIME/plugin/spellfile.vim plugin and will try to obtain the *.spl and optionally
*.sug from the vim ftp server, by using the $VIMRUNTIME/plugin/netrwPlugin.vim plugin.
Alternatively you can manually download the *.spl and *.sug files from: ftp://ftp.vim.org/pub/vim/runtime/spell/ and
save them to ~/.vim/spell or in /usr/share/vim/vim71/spell/.
To find out what's new in Vim-7.1 issue the following command:
:help version-7.1
For additional information on setting up Vim configuration files, see The vimrc Files and http://www.vi-improved.
org/vimrc.php.
Contents
A list of the reinstalled files, along with their short descriptions can be found in the LFS Vim Installation Instructions
Installed Programs: gview, gvim, gvimdiff, rgview, and rgvim
Installed Libraries: None
Installed Directory: /usr/share/vim
Short Descriptions
gview starts gvim in read-only mode.
gvim is the editor that runs under X and includes a GUI.
gvimdiff edits two or three versions of a file with gvim and shows the differences.
rgview is a restricted version of gview.
rgvim is a restricted version of gvim.
154
Beyond Linux® From Scratch - Version 6.3
Emacs-22.1
Introduction to Emacs
The Emacs package contains an extensible, customizable, self-documenting real-time display editor.
Package Information
• Download (HTTP): http://ftp.gnu.org/pub/gnu/emacs/emacs-22.1.tar.gz
• Download (FTP): ftp://ftp.gnu.org/pub/gnu/emacs/emacs-22.1.tar.gz
• Download MD5 sum: 6949df37caec2d7a2e0eee3f1b422726
• Download size: 36.4 MB
• Estimated disk space required: 260 MB
• Estimated build time: 3.3 SBU
Emacs Dependencies
Optional
X Window System, libjpeg-6b, libpng-1.2.29, LibTIFF-3.8.2, and libungif
Installation of Emacs
Install Emacs by running the following commands:
./configure --prefix=/usr \
--libexecdir=/usr/lib \
--localstatedir=/var &&
make bootstrap
This package does not come with a test suite.
Now, as the root user:
make install &&
chown -v -R root:root /usr/share/emacs/22.1
Command Explanations
--libexecdir=/usr/lib: Place library executables in a Filesystem Hierarchy Standard (FHS) location.
--localstatedir=/var: Create game score files in /var/games/emacs instead of
/usr/var/games/emacs.
Contents
Installed Programs: b2m, ctags, ebrowse, emacs, emacsclient, etags, grep-changelog, and rcs-checkin
Installed Libraries: None
Installed Directories: /usr/lib/emacs, /usr/share/emacs and /var/games/emacs
Short Descriptions
b2m is a program to convert mail files from RMAIL format to Unix “mbox” format.
155
Beyond Linux® From Scratch - Version 6.3
156
Beyond Linux® From Scratch - Version 6.3
Nano-2.0.7
Introduction to Nano
The nano package contains a small, simple text editor which aims to replace Pico, the default editor in the Pine
package.
Package Information
• Download (HTTP): http://www.nano-editor.org/dist/v2.0/nano-2.0.7.tar.gz
• Download (FTP): ftp://ftp.gnu.org/gnu/nano/nano-2.0.7.tar.gz
• Download MD5 sum: 16187fed2bdefec6275ece6401ce4cd2
• Download size: 1.4 MB
• Estimated disk space required: 8.3 MB
• Estimated build time: 0.1 SBU
Nano Dependencies
Optional
S-Lang-2.1.3
Installation of Nano
Install nano by running the following commands:
Configuring nano
Config Files
/etc/nano/nanorc and ~/.nanorc
157
Beyond Linux® From Scratch - Version 6.3
Configuration Information
Example configuration (create as a system-wide /etc/nano/nanorc or a personal ~/.nanorc file)
set autoindent
set const
set fill 72
set historylog
set multibuffer
set nohelp
set regexp
set smooth
set suspend
Another example is the nanorc.sample file in the /etc/nano directory. It includes color configurations and
has some documentation included in the comments.
Contents
Installed Programs: nano and rnano
Installed Libraries: None
Installed Directories: /etc/nano, /usr/share/nano and /usr/share/doc/nano-2.0.7
Short Descriptions
nano is a small, simple text editor which aims to replace Pico, the default editor in the Pine package.
rnano is a restricted mode for nano.
158
Beyond Linux® From Scratch - Version 6.3
JOE-3.5
Introduction to JOE
JOE (Joe's own editor) is a small text editor capable of emulating WordStar, Pico, and Emacs.
Package Information
• Download (HTTP): http://downloads.sourceforge.net/joe-editor/joe-3.5.tar.gz
•
• Download MD5 sum: 9bdffecce7ef910feaa06452d48843de
• Download size: 600 KB
• Estimated disk space required: 8.4 MB
• Estimated build time: 0.13 SBU
Installation of JOE
Install JOE by running the following commands:
make install
Configuring JOE
Config Files
/etc/joe/jmacsrc, /etc/joe/joerc, /etc/joe/jpicorc, /etc/joe/jstarrc,
/etc/joe/rjoerc, and ~/.joerc
Contents
Installed Programs: jmacs, joe, jpico, jstar, rjoe, and termidx
Installed Libraries: None
Installed Directory: /etc/joe
Short Descriptions
jmacs is a symbolic link to joe used to launch Emacs emulation mode.
joe is a small text editor capable of emulating WordStar, Pico, and Emacs.
jpico is a symbolic link to joe used to launch Pico emulation mode.
jstar is a symbolic link to joe used to launch WordStar emulation mode.
rjoe is a symbolic link to joe that restricts JOE to editing only files which are specified on the command-line.
termidx is a program used by joe to generate the termcap index file.
159
Beyond Linux® From Scratch - Version 6.3
Ed-0.8
Introduction to Ed
Ed is a line-oriented text editor. It is used to create, display, modify and otherwise manipulate text files, both
interactively and via shell scripts. Ed isn't something which many people use. It's described here because it can be
used by the patch program if you encounter an ed-based patch file. This happens rarely because diff-based patches
are preferred these days.
Package Information
• Download (HTTP): http://ftp.gnu.org/pub/gnu/ed/ed-0.8.tar.bz2
• Download (FTP): ftp://ftp.gnu.org/pub/gnu/ed/ed-0.8.tar.bz2
• Download MD5 sum: b359451fb32097974484b5ba7c19f5fb
• Download size: 66 KB
• Estimated disk space required: 1.3 MB
• Estimated build time: Less than 0.1 SBU
Installation of Ed
Install Ed by running the following commands:
Contents
Installed Programs: ed and red
Installed Libraries: None
Installed Directories: None
Short Descriptions
ed is a line-oriented text editor.
red is a restricted ed—it can only edit files in the current directory and cannot execute shell commands.
160
Beyond Linux® From Scratch - Version 6.3
Bluefish-1.0.7
Introduction to Bluefish
The Bluefish package contains a powerful X Window System editor designed for web designers, but also suitable as
a programmer's editor. Bluefish supports many programming and markup languages, and as such is ideal for editing
XML and HTML files.
Package Information
• Download (HTTP): http://www.bennewitz.com/bluefish/stable/source/bluefish-1.0.7.tar.bz2
• Download (FTP): ftp://ftp.linux.ee/pub/gentoo/distfiles/distfiles/bluefish-1.0.7.tar.bz2
• Download MD5 sum: 2c3b3c9c8f8e32b9473dfd879f216dea
• Download size: 1.4 MB
• Estimated disk space required: 18 MB
• Estimated build time: 0.3 SBU
Bluefish Dependencies
Required
Optional
GNOME Virtual File System-2.18.1 (for remote files), Aspell-0.60.5 (for spellchecking), libgnomeui-2.18.1,
GNOME MIME Data-2.4.3, desktop-file-utils-0.13, and shared-mime-info-0.21
Installation of Bluefish
Install Bluefish by running the following commands:
make install
Configuring Bluefish
Config Files
~/.bluefish/*
Configuration Information
The directory ~/.bluefish is created by the program when it is first run, and the configuration files are maintained
by the program automatically to preserve settings from run to run.
161
Beyond Linux® From Scratch - Version 6.3
Contents
Installed Program: bluefish
Installed Libraries: None
Installed Directory: /usr/share/bluefish
Short Descriptions
bluefish is an X Window System editor for markup and programming.
162
Beyond Linux® From Scratch - Version 6.3
Other Editors
pico is a text editor installed as a part of Pine-4.64.
mcedit is a text editor installed as part of MC-4.6.1.
163
Beyond Linux® From Scratch - Version 6.3
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.
164
Beyond Linux® From Scratch - Version 6.3
Tcsh-6.15.00
Introduction to Tcsh
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 perform installation tasks.
Package Information
• Download (HTTP): http://gd.tuwien.ac.at/utils/shells/tcsh/tcsh-6.15.00.tar.gz
• Download (FTP): ftp://ftp.funet.fi/pub/unix/shells/tcsh/tcsh-6.15.00.tar.gz
• Download MD5 sum: 67a0611620b080bd0eb032b1774382b6
• Download size: 870 KB
• Estimated disk space required: 10 MB
• Estimated build time: 0.2 SBU
Installation of Tcsh
Install Tcsh by running the following commands:
./configure --prefix=/usr --bindir=/bin &&
make &&
sh ./tcsh.man2html
To test the results, issue: make check. Note that test #68 (“nice” test) is known to fail.
Now, as the root user:
make install install.man &&
ln -v -sf tcsh /bin/csh &&
ln -v -sf tcsh.1 /usr/man/man1/csh.1 &&
install -v -m755 -d /usr/share/doc/tcsh-6.15.00/html &&
install -v -m644 tcsh.html/* /usr/share/doc/tcsh-6.15.00/html &&
install -v -m644 FAQ /usr/share/doc/tcsh-6.15.00
Command Explanations
--bindir=/bin: This installs the tcsh program in /bin instead of /usr/bin.
sh ./tcsh.man2html: This creates HTML documentation from the formatted man page.
ln -v -sf 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, /etc/csh.logout, ~/.tcshrc, ~/.cshrc, ~/.history, ~/.cshdirs, ~/.login, and ~/.
logout. More information on these files can be found in the tcsh(1) man page.
165
Beyond Linux® From Scratch - Version 6.3
Configuration Information
Update /etc/shells to include the C shell program names (as the root user):
Contents
Installed Program: tcsh
Installed Libraries: None
Installed Directory: /usr/share/doc/tcsh-6.15.00
Short Descriptions
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.
166
Beyond Linux® From Scratch - Version 6.3
ZSH-4.3.6
Introduction to ZSH
The ZSH package contains 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.
Note
This version of ZSH is a development release. The BLFS staff has determined that it provides a stable
program which works properly with multibyte locales (e.g., UTF-8). To find the current stable release, refer
to the ZSH home page and compile ZSH with the same instructions.
Package Information
• Download (HTTP): http://downloads.sourceforge.net/zsh/zsh-4.3.6.tar.bz2
•
• Download MD5 sum: 16f399af1081ad3c303a794c9c7dc47e
• Download size: 2.5 MB
• Estimated disk space required: 49 MB (includes installing all documentation)
• Estimated build time: 0.8 SBU
Additional Downloads
• Optional Documentation: http://downloads.sourceforge.net/zsh/zsh-4.3.6-doc.tar.bz2
• MD5 sum: cab29228a90f58b1431a66ab24a0a0c2
ZSH Dependencies
Optional
Installation of ZSH
If you downloaded the optional documentation, unpack it with the following command:
./configure --prefix=/usr \
--bindir=/bin \
--sysconfdir=/etc/zsh \
--enable-etcdir=/etc/zsh &&
make
167
Beyond Linux® From Scratch - Version 6.3
If you have teTeX-3.0 installed, you can build additional formats of the documentation by issuing any or all of the
following commands:
If you downloaded the optional documentation, install it by issuing the following commands as the root user:
If you built any additional formats of the documentation, install them by issuing the following command as the root
user:
Command Explanations
--sysconfdir=/etc/zsh and --enable-etcdir=/etc/zsh: These parameters are used so that all the
ZSH configuration files are consolidated into the /etc/zsh directory. Omit these parameters if you wish to retain
historical compatibility by having all the files located in the /etc directory.
--bindir=/bin: This parameter places the zsh binaries into the root filesystem.
--enable-cap: This parameter enables POSIX capabilities.
--enable-pcre: This parameter allows to use the PCRE regular expression library in shell builtins. Note: Linking
ZSH dynamically against PCRE, produces a runtime dependency on libpcre.so. If /usr is a separate mount
point and zsh needs to be available at boot time, either you have to statically link ZSH against PCRE (you can examine
the config.modules file on how to link statically the module), or move the library to /lib as follows:
Configuring ZSH
Config Files
There are a whole host of configuration files for ZSH including /etc/zsh/zshenv, /etc/zsh/zprofile,
/etc/zsh/zshrc, /etc/zsh/zlogin and /etc/zsh/zlogout. You can find more information on these
in the zsh(1) and related manual pages.
168
Beyond Linux® From Scratch - Version 6.3
Configuration Information
Update /etc/shells to include the ZSH shell program names (as the root user):
Contents
Installed Programs: zsh and zsh-4.3.6
Installed Libraries: Numerous plugin helper modules
Installed Directories: /etc/zsh, /usr/lib/zsh, /usr/share/doc/zsh-4.3.6 and /usr/share/zsh
Short Description
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.
169
Beyond Linux® From Scratch - Version 6.3
Dash-0.5.4
Introduction to Dash
Dash is a POSIX compliant shell. It can be installed as /bin/sh or as the default shell for either root or a second
user with a userid of 0. It depends on fewer libraries than the Bash shell and is therefore less likely to be affected
by an upgrade problem or disk failure. Dash is also useful for checking that a script is completely compatible with
POSIX syntax.
Package Information
• Download (HTTP): http://gondor.apana.org.au/~herbert/dash/files/dash-0.5.4.tar.gz
•
• Download MD5 sum: bc457e490a589d2f87f2333616b67931
• Download size: 200 KB
• Estimated disk space required: 1.8 MB
• Estimated build time: 0.1 SBU
Dash Dependencies
Optional
libedit (command line editor library)
Installation of Dash
Install Dash by running the following commands:
make install
If you would like to make dash the default sh, recreate the /bin/sh symlink as the root user:
Command Explanations
--bindir=/bin: This parameter places the dash binary into the root filesystem.
--with-libedit: To compile Dash with libedit support.
Configuring Dash
Config Files
Dash sources /etc/profile and $HOME/.profile
170
Beyond Linux® From Scratch - Version 6.3
Configuration Information
Update /etc/shells to include the Dash shell by issuing the following command as the root user:
Contents
Installed Program: dash
Installed Libraries: None
Installed Directories: None
Short Description
dash is a POSIX compliant shell.
171
Beyond Linux® From Scratch - Version 6.3
ksh-2008-02-02
Introduction to ksh
ksh is the AT&T Korn Shell.
Note
You must agree to the terms of the CPL-1.0 license in order to download the software. The download site
is password protected, and the username and password are listed at the bottom of this license.
Package Information
• Ksh Download (HTTP): http://www.research.att.com/~gsf/download/tgz/ast-ksh.2008-02-02.tgz
•
• Ksh Download MD5 sum: d2a71e320fbaa7a0fd950a27c7e4b099
• Ksh Download size: 1.6 MB
• INIT Download (HTTP): http://www.research.att.com/~gsf/download/tgz/INIT.2008-02-02.tgz
•
• INIT Download MD5 sum: 740c6fc775bf2f7b6bff463bdbad1c31
• INIT Download size: 340 KB
• Estimated disk space required: 32 MB
• Estimated build time: 2 SBU
Installation of ksh
Unlike other BLFS packages, you will need to first create a working directory in which to extract the sources and
perform the build. Install ksh by running the following commands:
mkdir ksh &&
cd ksh &&
tar -xf ../INIT.2008-02-02.tgz &&
tar -xf ../ast-ksh.2008-02-02.tgz &&
bin/package make
The test suite for this package requires other packages from the AT&T ast software library, namely nmake, in which
case, you'd be better to install the ast-base package using the same instructions. The package command will accept
a test argument to test the package.
Now, as the root user:
install -v -m755 arch/linux.i386/bin/ksh /bin &&
install -v -m644 arch/linux.i386/man/man1/sh.1 \
/usr/share/man/man1/ksh.1 &&
install -v -m755 -d /usr/share/doc/ksh-2008-02-02 &&
install -v -m644 lib/package/{ast-ksh,INIT}.html \
/usr/share/doc/ksh-2008-02-02
Command Explanations
bin/package make: This command rebuilds the ast INIT package and builds the ast ksh package.
172
Beyond Linux® From Scratch - Version 6.3
Configuring ksh
Config Files
ksh sources /etc/profile, /etc/suid_profile, and $HOME/.profile.
Configuration Information
Update /etc/shells to include the ksh shell by issuing the following command as the root user:
Contents
Installed Program: ksh
Installed Libraries: None
Installed Directories: None
Short Description
ksh is the AT&T ast Korn shell.
173
Beyond Linux® From Scratch - Version 6.3
175
Beyond Linux® From Scratch - Version 6.3
PCRE-7.6
Introduction to PCRE
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.
Package Information
• Download (HTTP): http://downloads.sourceforge.net/pcre/pcre-7.6.tar.bz2
• Download (FTP): ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/pcre-7.6.tar.bz2
• Download MD5 sum: 2af38e083fb90ef60fa9eda7cc290e86
• Download size: 780 KB
• Estimated disk space required: 11 MB
• Estimated build time: 0.3 SBU
Additional Downloads
• Required Patch: http://www.linuxfromscratch.org/patches/blfs/6.3/pcre-7.6-abi_breakage-1.patch
• Required Patch: http://www.linuxfromscratch.org/patches/blfs/6.3/pcre-7.6-security_fix-1.patch
Installation of PCRE
Install PCRE by running the following commands:
To test the results, issue: make check. Note: The third set of the tests cannot be run if the "fr_FR" locale is missing
from the system.
Now, as the root user:
make install
If you reinstall Grep after installing PCRE, Grep will get linked against PCRE and may cause problems if /usr is a
separate mount point. To avoid this, either pass the option --disable-perl-regexp when executing ./configure
for Grep or move libpcre to /lib as follows.
Command Explanations
--enable-utf8: This switch includes the code for handling UTF-8 character strings in the library.
176
Beyond Linux® From Scratch - Version 6.3
Contents
Installed Programs: pcregrep, pcretest, and pcre-config
Installed Libraries: libpcre.{so,a}, libpcrecpp.{so,a} and libpcreposix.{so,a}
Installed Directory: /usr/share/doc/pcre-7.6
Short Descriptions
pcregrep is a grep that understands Perl compatible regular expressions.
pcretest can test a Perl compatible regular expression.
pcre-config is used during the compile process of programs linking to the PCRE libraries.
177
Beyond Linux® From Scratch - Version 6.3
Popt-1.10.4
Introduction to Popt
The popt package contains the popt libraries which are used by some programs to parse command-line options.
Package Information
• Download (HTTP): http://rpm5.org/files/popt/popt-1.10.4.tar.gz
• Download (FTP): ftp://anduin.linuxfromscratch.org/BLFS/6.3/p/popt-1.10.4.tar.gz
• Download MD5 sum: dd22a6873b43d00f75e1c1b7dcfd1ff7
• Download size: 1.1 MB
• Estimated disk space required: 8.3 MB (includes installing documentation)
• Estimated build time: 0.1 SBU
Installation of Popt
Install popt by running the following commands:
If you have Doxygen-1.5.2 installed and wish to build the API documentation, issue doxygen.
To test the results, issue:
make check
make install
If you built the API documentation, install it using the following commands issued by the root user:
Command Explanations
sed ...: This fix taken backported from the development version of popt fixes a problem identified by the included
testsuite.
Contents
Installed Programs: None
Installed Library: libpopt.{so,a}
Installed Directories: /usr/share/doc/popt-1.10.4
Short Descriptions
libpopt.{so,a} is used to parse command-line options.
178
Beyond Linux® From Scratch - Version 6.3
S-Lang-2.1.3
Introduction to S-Lang
The S-Lang package contains the S-Lang library, which provides facilities such as display/screen management,
keyboard input, and keymaps.
Package Information
• Download (HTTP): http://gd.tuwien.ac.at/editors/davis/slang/v2.1/slang-2.1.3.tar.bz2
• Download (FTP): ftp://space.mit.edu/pub/davis/slang/v2.1/slang-2.1.3.tar.bz2
• Download MD5 sum: 0e4ae3aac75441eaa230bceb7811f088
• Download size: 1.1 MB
• Estimated disk space required: 26 MB
• Estimated build time: 0.5 SBU
S-Lang Dependencies
Optional
libpng-1.2.29, PCRE-7.6, and Oniguruma
Installation of S-Lang
Install S-Lang by running the following commands:
./configure --prefix=/usr --sysconfdir=/etc &&
make
To test the results, issue: make check. Note that this will also create a static version of the library which will then
be installed in the next step.
Now, as the root user:
make \
install_doc_dir=/usr/share/doc/slang-2.1.3 \
SLSH_DOC_DIR=/usr/share/doc/slang-2.1.3/slsh \
install-all &&
chmod -v 755 /usr/lib/libslang.so.2.1.3 \
/usr/lib/slang/v2/modules/*.so
Command Explanations
make install_doc_dir=/usr/share/doc/slang-2.1.3 SLSH_DOC_DIR=/usr/share/doc/slang-2.1.3/slsh install-all:
This command installs the static library as well as the dynamic shared version and related modules. It also changes
the documentation installation directories to a versioned directory.
--with-readline=gnu: Use this parameter to use the Gnu Readline parser instead of the S-Lang internal version.
Configuring S-Lang
Config Files
~/.slshrc and /etc/slsh.rc
179
Beyond Linux® From Scratch - Version 6.3
Configuration Information
As with most libraries, there is no configuration to do, save that the library directory, i.e., /opt/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
Installed Program: slsh
Installed Libraries: libslang.{so,a} and numerous support modules
Installed Directories: /usr/lib/slang, /usr/share/doc/slang-2.1.3 and /usr/share/slsh
Short Descriptions
slsh is a simple program for interpreting S-Lang scripts. It supports dynamic loading of S-Lang modules and
includes a Readline interface for interactive use.
180
Beyond Linux® From Scratch - Version 6.3
Gamin-0.1.9
Introduction to Gamin
The Gamin package contains a File Alteration Monitor which is useful for notifying applications of changes to the
file system. Gamin is compatible with FAM.
Package Information
• Download (HTTP): http://www.gnome.org/~veillard/gamin/sources/gamin-0.1.9.tar.gz
• Download (FTP): ftp://ftp.linux.ee/pub/gentoo/distfiles/distfiles/gamin-0.1.9.tar.gz
• Download MD5 sum: 2d3a6a70df090ed923238e381e6c2982
• Download size: 632 KB
• Estimated disk space required: 6 MB
• Estimated build time: 0.1 SBU (up to 3 minutes, processor independent, to run the test suite)
Gamin Dependencies
Required
GLib-2.12.12
Optional
Python-2.5.2
Installation of Gamin
Install Gamin by running the following commands:
./configure --prefix=/usr --libexecdir=/usr/sbin &&
make
To test the results, issue: make check. Note that some tests may display errors.
Now, as the root user:
make install &&
install -v -m755 -d /usr/share/doc/gamin-0.1.9 &&
install -v -m644 doc/*.{html,fig,gif,txt} /usr/share/doc/gamin-0.1.9
Configuring Gamin
Configuration Information
No configuration is generally required and the default options should work for most users. See http://www.gnome.
org/~veillard/gamin/config.html for details.
Contents
Installed Program: gam_server
Installed Libraries: libfam.{so,a}, libgamin-1.{so,a}, libgamin_shared.a and optionally, Python
_gamin.{so,a} module
Installed Directory: /usr/share/doc/gamin-0.1.9
181
Beyond Linux® From Scratch - Version 6.3
Short Descriptions
gam_server is the file alteration monitor daemon that is started on demand for each user.
libgamin.{so,a} contains functions that support the file allocation monitor.
libfam.{so,a} contains functions that provide compatibility with FAM.
182
Beyond Linux® From Scratch - Version 6.3
libxml2-2.6.31
Introduction to libxml2
The libxml2 package contains XML libraries. These are useful for parsing XML files.
Package Information
• Download (HTTP): http://xmlsoft.org/sources/libxml2-2.6.31.tar.gz
• Download (FTP): ftp://xmlsoft.org/libxml2/libxml2-2.6.31.tar.gz
• Download MD5 sum: 714b0683b1ec4bdc63bc356d729f9b18
• Download size: 4.7 MB
• Estimated disk space required: 85 MB (additional 184 MB to run the test suite)
• Estimated build time: 1.3 SBU (additional 1.0 SBU to run the test suite)
libxml2 Dependencies
Optional
libxslt-1.1.22 (used for the test suite if found, but not required) and Python-2.5.2 (will install a Python library module
if found)
Note
Some packages which utilize libxml2 (such as GNOME Doc Utils) need the Python module installed to
function properly and some packages (such as GNOME Panel) will not build properly if the Python module
is not available.
Installation of libxml2
Install libxml2 by running the following commands:
make install
Command Explanations
--with-history: If this option is used, it enables readline support when running xmlcatalog or xmllint in shell
mode.
183
Beyond Linux® From Scratch - Version 6.3
Caution
When using history support, make check will hang forever if either /etc/inputrc or ~/.inputrc
has the option show-all-if-ambiguous or show-all-if-available turned on.
Contents
Installed Programs: xml2-config, xmlcatalog, and xmllint
Installed Libraries: libxml2.{so,a} and optionally, the libxml2mod.{so,a} Python module
Installed Directories: /usr/include/libxml2, /usr/share/doc/libxml2-2.6.31,
/usr/share/doc/libxml2-python-2.6.31 and /usr/share/gtk-doc/html/libxml2
Short Descriptions
xml2-config determines the compile and linker flags that should be used to compile and link programs
that use libxml2.
xmlcatalog is used to monitor and manipulate XML and SGML catalogs.
xmllint parses XML files and outputs reports (based upon options) to detect errors in XML coding.
libxml2.{so,a} libraries provide the functions for programs to parse files that use the XML format.
184
Beyond Linux® From Scratch - Version 6.3
libxslt-1.1.22
Introduction to libxslt
The libxslt package contains XSLT libraries. These are useful for extending libxml2 libraries to support XSLT files.
Package Information
• Download (HTTP): http://xmlsoft.org/sources/libxslt-1.1.22.tar.gz
• Download (FTP): ftp://xmlsoft.org/libxslt/libxslt-1.1.22.tar.gz
• Download MD5 sum: d6a9a020a76a3db17848d769d6c9c8a9
• Download size: 2.7 MB
• Estimated disk space required: 39 MB
• Estimated build time: 0.4 SBU
libxslt Dependencies
Required
libxml2-2.6.31
Optional
Python-2.5.2 and Libgcrypt-1.2.4
Installation of libxslt
Install libxslt by running the following commands:
./configure --prefix=/usr &&
make
To test the results, issue: make check.
Now, as the root user:
make install
Contents
Installed Programs: xslt-config and xsltproc
Installed Libraries: libexslt.{so,a}, libxslt.{so,a} and optionally, libxsltmod.{so,a} Python modules
Installed Directories: /usr/include/lib{e}xslt, /usr/lib/libxslt-plugins, /usr/share/doc/libxslt-1.1.22, and
/usr/share/doc/libxslt-python-1.1.22
Short Descriptions
xslt-config is used to find out the pre-processor, linking and compiling flags necessary to use the libxslt
libraries in 3rd-party programs.
xsltproc is used to apply XSLT stylesheets to XML documents.
libxslt.{so,a} provides extensions to the libxml2 libraries to parse files that use the XSLT format.
libexslt.{so,a} is used to provide extensions to XSLT functions.
185
Beyond Linux® From Scratch - Version 6.3
libgtkhtml-2.11.1
Introduction to libgtkhtml
The libgtkhtml package contains the libgtkhtml-2 library. This library provides an API for rendering HTML.
Package Information
• Download (HTTP): http://ftp.gnome.org/pub/gnome/sources/libgtkhtml/2.11/libgtkhtml-2.11.1.tar.bz2
• Download (FTP): ftp://ftp.gnome.org/pub/gnome/sources/libgtkhtml/2.11/libgtkhtml-2.11.1.tar.bz2
• Download MD5 sum: a1d1a197dcff8c4571659deef5495e24
• Download size: 597 KB
• Estimated disk space required: 36 MB
• Estimated build time: 0.8 SBU
libgtkhtml Dependencies
Required
GTK+-2.10.13 and libxml2-2.6.31
Optional
GAIL-1.18.0 and GNOME Virtual File System-2.18.1 (only used in the test suite)
Installation of libgtkhtml
Install libgtkhtml by running the following commands:
./configure --prefix=/usr --disable-accessibility &&
make
This package does not come with a test suite. You can run a test program which includes many test cases; if desired,
issue: ( cd tests; ./testgtkhtml )
Now, as the root user:
make install
Command Explanations
--disable-accessibility: This forces the package to build without linking to the libgailutil
accessibility library. Remove this switch if you have GAIL installed.
Contents
Installed Programs: None
Installed Library: libgtkhtml-2.{so,a}
Installed Directory: /usr/include/gtkhtml-2.0
Short Descriptions
libgtkhtml-2.{so,a} provides the functions necessary to render and/or edit HTML.
186
Beyond Linux® From Scratch - Version 6.3
GMP-4.2.2
Introduction to GMP
The GMP package contains math libraries. These have useful functions for arbitrary precision arithmetic.
Package Information
• Download (HTTP): http://ftp.gnu.org/gnu/gmp/gmp-4.2.2.tar.bz2
• Download (FTP): ftp://ftp.gnu.org/gnu/gmp/gmp-4.2.2.tar.bz2
• Download MD5 sum: 7ce52531644e6d12f16911b7e3151f3f
• Download size: 1.7 MB
• Estimated disk space required: 36 MB (additional 11 MB for alternative documentation)
• Estimated build time: 1.0 SBU (additional 0.6 SBU to run the testsuite)
Installation of GMP
Install GMP by running the following commands:
If you wish to create alternate formats of the documentation (Postscript, PDF and chunked HTML versions require
a teTeX-3.0 installation), issue any or all of the following commands:
To test the results, issue: make check. Due to various reports of mis-compilations, the maintainer strongly
recommends running the test suite and reporting any failures. The libraries should not be used in a production
environment if there are problems running make check. An easy way to determine if all the tests passed is to redirect
the output of the tests to a file (make check >check.log 2>&1) and issue the following command:
187
Beyond Linux® From Scratch - Version 6.3
If you created any of the alternate formats of the documentation, install it using the following commands as the root
user:
Command Explanations
--enable-cxx: This parameter enables C++ support by building the libgmpxx libraries.
--enable-mpbsd: This parameter enables building the Berkeley MP compatibility (libmp) libraries.
Contents
Installed Programs: None
Installed Libraries: libgmp.{so,a}, libgmpxx.{so,a} and libmp.{so,a}
Installed Directories: None
Short Descriptions
libgmp.{so,a} contains functions to operate on signed integers, rational numbers, and floating point numbers.
188
Beyond Linux® From Scratch - Version 6.3
GDBM-1.8.3
Introduction to GDBM
The GDBM package contains the GNU Database Manager. This is a disk file format database which stores
key/data-pairs in single files. The actual data of any record being stored is indexed by a unique key, which can be
retrieved in less time than if it was stored in a text file.
Package Information
• Download (HTTP): http://ftp.gnu.org/gnu/gdbm/gdbm-1.8.3.tar.gz
• Download (FTP): ftp://ftp.gnu.org/gnu/gdbm/gdbm-1.8.3.tar.gz
• Download MD5 sum: 1d1b1d5c0245b1c00aff92da751e9aa1
• Download size: 223 KB
• Estimated disk space required: 2.75 MB
• Estimated build time: 0.08 SBU
Installation of GDBM
Install GDBM by running the following commands:
In addition, you may need to install the DBM and NDBM compatibility headers and library since some applications
look for these older dbm routines.
Command Explanations
make BINOWN=root BINGRP=root install: This command overrides the BINOWN and BINGRP variables in the
Makefile changing ownership of the installed files to root instead of the bin user.
Contents
Installed Programs: None
Installed Libraries: libgdbm.{so,a} and libgdbm_compat.{so,a}
Installed Directories: None
Short Descriptions
libgdbm.{so,a} contains functions to manipulate a hashed database.
189
Beyond Linux® From Scratch - Version 6.3
GLib-1.2.10
Introduction to GLib
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.
Package Information
• Download (HTTP): http://gd.tuwien.ac.at/graphics/gimp/gtk/v1.2/glib-1.2.10.tar.gz
• Download (FTP): ftp://ftp.gtk.org/pub/gtk/v1.2/glib-1.2.10.tar.gz
• Download MD5 sum: 6fe30dad87c77b91b632def29dd69ef9
• Download size: 412 KB
• Estimated disk space required: 6.4 MB
• Estimated build time: 0.19 SBU
Additional Downloads
• Required patch: http://www.linuxfromscratch.org/patches/blfs/6.3/glib-1.2.10-gcc34-1.patch
Installation of GLib
Install glib by running the following commands:
Contents
Installed Programs: glib-config
Installed Libraries: libglib.{so,a}, libgmodule.{so,a} and libgthread.{so,a}
Installed Directories: /usr/include/glib-1.2 and /usr/lib/glib
Short Descriptions
glib-config is a tool that is used by configure scripts to determine the compiler and linker flags that should
be used to compile and link programs that use GLib.
libglib.{so,a} libraries contain a low-level core library for the GIMP Toolkit.
190
Beyond Linux® From Scratch - Version 6.3
GLib-2.12.12
Introduction to GLib
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.
Package Information
• Download (HTTP): http://ftp.gnome.org/pub/gnome/sources/glib/2.12/glib-2.12.12.tar.bz2
• Download (FTP): ftp://ftp.gtk.org/pub/glib/2.12/glib-2.12.12.tar.bz2
• Download MD5 sum: 0b3a42098243d054475ff6eb51ed2be1
• Download size: 2.9 MB
• Estimated disk space required: 53 MB
• Estimated build time: 0.6 SBU (additional 1.3 SBU to run the test suite)
GLib Dependencies
Required
pkg-config-0.22
Optional
GTK-Doc-1.8
Installation of GLib
Install GLib by running the following commands:
make install
Command Explanations
--enable-gtk-doc: Use this parameter if GTK-Doc is installed and you wish to rebuild the API documentation.
191
Beyond Linux® From Scratch - Version 6.3
Configuring GLib
Configuration Information
By default, GLib assumes that all filenames are in the UTF-8 charset. See the Wrong Filename Encoding section of
the Locale Related Issues page for more details on this kind of issue. In order to tell GLib and applications that use it
that filenames are in the default locale encoding, set the variable G_FILENAME_ENCODING to the value "@locale":
Contents
Installed Programs: glib-genmarshal, glib-gettextize, glib-mkenums, and gobject-query
Installed Libraries: libglib-2.0.so, libgobject-2.0.so, libgmodule-2.0.so, and libgthread-2.0.so
Installed Directories: /usr/include/glib-2.0, /usr/lib/glib-2.0, /usr/share/glib-2.0,
/usr/share/gtk-doc/html/glib, and /usr/share/gtk-doc/html/gobject
Short Descriptions
glib-genmarshal is a C code marshaller generation utility for GLib closures.
glib-gettextize is a variant of the gettext internationalization utility.
glib-mkenums is a C language enum description generation utility.
gobject-query is a small utility that draws a tree of types.
GLib libraries contain a low-level core library for the GIMP Toolkit.
192
Beyond Linux® From Scratch - Version 6.3
LibIDL-0.8.8
Introduction to LibIDL
The libIDL package contains libraries for Interface Definition Language files. This is a specification for defining
portable interfaces.
Package Information
• Download (HTTP): http://ftp.gnome.org/pub/gnome/sources/libIDL/0.8/libIDL-0.8.8.tar.bz2
• Download (FTP): ftp://ftp.gnome.org/pub/gnome/sources/libIDL/0.8/libIDL-0.8.8.tar.bz2
• Download MD5 sum: 187c17f42533d76da435e90afb7b48cf
• Download size: 328 KB
• Estimated disk space required: 5.5 MB
• Estimated build time: 0.1 SBU
LibIDL Dependencies
Required
GLib-2.12.12
teTeX-3.0
Installation of LibIDL
Install libIDL by running the following commands:
If you have teTeX installed and wish to build the documentation, issue the following commands:
make install
If you built the documentation, issue the following commands as the root user to install it:
193
Beyond Linux® From Scratch - Version 6.3
Contents
Installed Program: libIDL-config-2
Installed Library: libIDL-2.{so,a}
Installed Directories: /usr/include/libIDL-2.0/libIDL and /usr/share/doc/libIDL-0.8.8
Short Descriptions
libIDL-config-2 determines the compile and linker flags that should be used to compile and link programs
that use libIDL-2.
libIDL-2.{so,a} libraries provide the functions to create and maintain trees of CORBA Interface Definition
Language (IDL) files.
194
Beyond Linux® From Scratch - Version 6.3
Libcroco-0.6.1
Introduction to libcroco
The libcroco package contains libcroco libraries. This is useful for providing a CSS API.
Package Information
• Download (HTTP): http://ftp.gnome.org/pub/gnome/sources/libcroco/0.6/libcroco-0.6.1.tar.bz2
• Download (FTP): ftp://ftp.gnome.org/pub/gnome/sources/libcroco/0.6/libcroco-0.6.1.tar.bz2
• Download MD5 sum: b0975bd01eb11964f1b3f254f267a43d
• Download size: 381 KB
• Estimated disk space required: 9.8 MB
• Estimated build time: 0.3 SBU
libcroco Dependencies
Required
GLib-2.12.12 and libxml2-2.6.31
Installation of libcroco
Install libcroco by running the following commands:
Contents
Installed Programs: croco-0.6-config and csslint-0.6
Installed Library: libcroco-0.6.{so,a}
Installed Directories: /usr/include/libcroco-0.6.1 and /usr/share/doc/libcroco-0.6.1
195
Beyond Linux® From Scratch - Version 6.3
libgsf-1.14.7
Introduction to libgsf
The libgsf package contains libgsf-1 libraries. These are useful for providing an extensible input/output
abstraction layer for structured file formats.
Package Information
• Download (HTTP): http://ftp.gnome.org/pub/gnome/sources/libgsf/1.14/libgsf-1.14.7.tar.bz2
• Download (FTP): ftp://ftp.gnome.org/pub/gnome/sources/libgsf/1.14/libgsf-1.14.7.tar.bz2
• Download MD5 sum: 6612f1e57d3974d609bedd2fd8ff6317
• Download size: 580 KB
• Estimated disk space required: 14 MB
• Estimated build time: 0.2 SBU
libgsf Dependencies
Required
Optional
PyGTK-2.10.6, GConf-2.18.0.1 (required to build the gsf-office-thumbnailer program), GNOME Virtual File
System-2.18.1 and libbonobo-2.18.0 (required to build the libgsf-gnome-1.so library which provides
GNOME-2 support), and GTK-Doc-1.8
Note: you should build the libgsf-gnome-1.so library if you plan on building GnuCash-2.2.4 or Gnumeric-1.8.2
with GNOME support.
Installation of libgsf
Install libgsf by running the following commands:
Running make check will build a battery of test programs which are built using the just-created libgsf-1 library.
All the programs should build successfully with no errors displayed.
Now, as the root user:
make install
Command Explanations
--sysconfdir=/etc/gnome/2.18.3: Pass this parameter to the configure script if you have GNOME-2
installed so that the GConf schema files are installed in the correct location.
--enable-gtk-doc: Use this parameter if GTK-Doc is installed and you wish to rebuild the API documentation.
196
Beyond Linux® From Scratch - Version 6.3
Contents
Installed Program: gsf, gsf-office-thumbnailer (optional), and gsf-vba-dump
Installed Libraries: libgsf-1.{so,a} and optionally, libgsf-gnome-1.{so,a}
Installed Directories: /usr/include/libgsf-1 and /usr/share/gtk-doc/html/gsf
197
Beyond Linux® From Scratch - Version 6.3
libglade-2.6.1
Introduction to libglade
The libglade package contains libglade libraries. These are useful for loading Glade interface files in a program
at runtime.
Package Information
• Download (HTTP): http://ftp.gnome.org/pub/gnome/sources/libglade/2.6/libglade-2.6.1.tar.bz2
• Download (FTP): ftp://ftp.gnome.org/pub/gnome/sources/libglade/2.6/libglade-2.6.1.tar.bz2
• Download MD5 sum: 489be887b26b9973f77e2c6111ab7d5a
• Download size: 346 KB
• Estimated disk space required: 5 MB
• Estimated build time: 0.1 SBU
libglade Dependencies
Required
libxml2-2.6.31 and GTK+-2.10.13
Optional
Python-2.5.2 and GTK-Doc-1.8
Installation of libglade
Install libglade by running the following commands:
./configure --prefix=/usr &&
make
To test the results, issue: make check.
Now, as the root user:
make install
Command Explanations
--enable-gtk-doc: Use this parameter if GTK-Doc is installed and you wish to rebuild the API documentation.
Contents
Installed Program: libglade-convert (requires python)
Installed Library: libglade-2.0.{so,a}
Installed Directories: /usr/include/libglade-2.0, /usr/share/xml/libglade, and /usr/share/gtk-doc/html/libglade
Short Descriptions
libglade-convert is used to convert old Glade interface files to Glade-2.0 standards.
libglade-2.0.{so,a} contain the functions necessary to load Glade interface files.
198
Beyond Linux® From Scratch - Version 6.3
Expat-2.0.1
Introduction to Expat
The Expat package contains a stream oriented C library for parsing XML.
Package Information
• Download (HTTP): http://downloads.sourceforge.net/expat/expat-2.0.1.tar.gz
•
• Download MD5 sum: ee8b492592568805593f81f8cdf2a04c
• Download size: 446 KB
• Estimated disk space required: 6 MB
• Estimated build time: 0.1 SBU
Installation of Expat
Install Expat by running the following commands:
To test the results, issue: make check as an unprivileged user. Note this must be done after the package is installed.
Contents
Installed Program: xmlwf
Installed Library: libexpat.{so,a}
Installed Directory: /usr/share/doc/expat-2.0.1
Short Descriptions
xmlwf is a non-validating utility to check whether or not XML documents are well formed.
libexpat.{so,a} contains API functions for parsing XML.
199
Beyond Linux® From Scratch - Version 6.3
libESMTP-1.0.4
Introduction to libESMTP
The libESMTP package contains the libESMTP libraries which are used by some programs to manage email
submission to a mail transport layer.
Package Information
• Download (HTTP): http://www.stafford.uklinux.net/libesmtp/libesmtp-1.0.4.tar.bz2
• Download (FTP): ftp://ftp.linux.ee/pub/gentoo/distfiles/distfiles/libesmtp-1.0.4.tar.bz2
• Download MD5 sum: 8b4e8a794adc46268f0c6a0b3fb79486
• Download size: 351 KB
• Estimated disk space required: 5.8 MB
• Estimated build time: 0.2 SBU
libESMTP Dependencies
Optional
OpenSSL-0.9.8g
Installation of libESMTP
Install libESMTP by running the following commands:
make install
Contents
Installed Program: libesmtp-config
Installed Libraries: libesmtp.{so,a} and libESMTP SASL plugins
Installed Directory: /usr/lib/esmtp-plugins
Short Descriptions
libesmtp-config displays version information and the options used to compile libESMTP.
libesmtp.{so,a} is used to manage submission of electronic mail to a Mail Transport Agent.
libesmtp SASL plugins are used to integrate libesmtp with SASL authentication.
200
Beyond Linux® From Scratch - Version 6.3
Aspell-0.60.5
Introduction to Aspell
The Aspell package contains an interactive spell checking program and the Aspell libraries. Aspell can either be used
as a library or as an independent spell checker.
Package Information
• Download (HTTP): http://ftp.gnu.org/gnu/aspell/aspell-0.60.5.tar.gz
• Download (FTP): ftp://ftp.gnu.org/gnu/aspell/aspell-0.60.5.tar.gz
• Download MD5 sum: 17fd8acac6293336bcef44391b71e337
• Download size: 1.7 MB
• Estimated disk space required: 40 MB (Additional 8 MB for EN dictionary)
• Estimated build time: 0.7 SBU
Additional Downloads
You'll need to download at least one dictionary. The link below will take you to a page containing links to dictionaries
in many languages.
• Aspell dictionaries: ftp://ftp.gnu.org/gnu/aspell/dict
Aspell Dependencies
Required
which-2.19
Installation of Aspell
Install Aspell by running the following commands:
./configure --prefix=/usr &&
make
This package does not come with a test suite.
Now, as the root user:
make install &&
install -v -m755 -d /usr/share/doc/aspell-0.60.5/aspell{,-dev}.html &&
install -v -m644 manual/aspell.html/* \
/usr/share/doc/aspell-0.60.5/aspell.html &&
install -v -m644 manual/aspell-dev.html/* \
/usr/share/doc/aspell-0.60.5/aspell-dev.html
If you do not plan to install Ispell, then copy the wrapper script ispell:
install -v -m 755 scripts/ispell /usr/bin/
If you do not plan to install Spell, then copy the wrapper script spell:
install -v -m 755 scripts/spell /usr/bin/
201
Beyond Linux® From Scratch - Version 6.3
Configuring Aspell
Configuration Information
After Aspell is installed, you must set up at least one dictionary. Install one or more dictionaries by running the
following commands:
./configure &&
make
make install
Contents
Installed Programs: aspell, aspell-import, precat, preunzip, prezip, prezip-bin, pspell-config,
run-with-aspell, word-list-compress and optionally, ispell and spell
Installed Libraries: libaspell.so and libpspell.so
Installed Directories: /usr/include/pspell and /usr/lib/aspell-0.60
Short Descriptions
aspell is a utility that can function as an ispell -a replacement, as an independent spell checker,
as a test utility to test out Aspell features, and as a utility for managing dictionaries.
ispell is a wrapper around aspell to invoke it in ispell compatible mode.
spell is a wrapper around aspell to invoke it in spell compatible mode.
aspell-import imports old personal dictionaries into Aspell.
precat decompresses a prezipped file to stdout.
preunzip decompresses a prezipped file.
prezip is a prefix delta compressor, used to compress sorted word lists or other similar text files.
prezip-bin is called by the various wrapper scripts to perform the actual compressing and
decompressing.
pspell-config displays information about the libpspell installation, mostly for use in build scripts.
run-with-aspell is a script to help use Aspell as an ispell replacement.
word-list-compress compresses or decompresses sorted word lists for use with the Aspell spell checker.
libaspell.so contains spell checking API functions.
libpspell.so is an interface to the libaspell library. All the spell checking functionality is now
in libaspell but this library is included for backward compatibility.
202
Beyond Linux® From Scratch - Version 6.3
SLIB-3a4
Introduction to SLIB
The SLIB package is a portable library for the Scheme programming language. It provides a platform independent
framework for using “packages” of Scheme procedures and syntax. Its catalog can be transparently extended to
accommodate packages specific to a site, implementation, user or directory. SLIB provides compatibility and utility
functions for all standard Scheme implementations including Bigloo, Chez, ELK 3.0, GAMBIT 3.0, Guile, JScheme,
MacScheme, MITScheme, PLT Scheme (DrScheme and MzScheme), Pocket Scheme, RScheme, scheme->C,
Scheme48, SCM, SCM Mac, scsh, Stk, T3.1, umb-scheme, and VSCM.
Package Information
• Download (HTTP): http://swiss.csail.mit.edu/ftpdir/scm/OLD/slib3a4.tar.gz
•
• Download MD5 sum: 87bc0b62370c0bf8a510a2acf6868eb9
• Download size: 877 KB
• Estimated disk space required: 21 MB (includes building and installing docs)
• Estimated build time: 0.1 SBU
Additional Downloads
• Required Patch: http://www.linuxfromscratch.org/patches/blfs/6.3/slib-3a4-guile_fixes-1.patch
SLIB Dependencies
There are no build dependencies as this package is nothing but many text script files which are copied to the system.
If you are installing this package to support a GnuCash installation, you should ensure that Guile-1.8.2 is installed
so the SLIB catalog for Guile can be created.
Installation of SLIB
Install SLIB by issuing the following commands:
If you have teTeX-3.0 installed and wish to build PDF, Postscript, HTML or text documentation, issue any or all
of the following commands:
203
Beyond Linux® From Scratch - Version 6.3
Command Explanations
sed -i 's|usr/lib|usr/share|' {RScheme,guile}.init: This command is used to change the libdir variable embedded
in the two scripts to match the installation variable.
make ... install installinfo: This command installs the package and the info documentation into the indicated
directories.
Configuring SLIB
For many of the Scheme implementations, an SLIB Scheme implementation catalog must be created. If you have
Guile-1.8.2 installed to support a GnuCash installation, you must create a catalog. You can use the make catalogs
command, but there will be many warnings and confusing messages as it tries to create a catalog for many of the
possible Scheme implementations which are probably not installed on the system. To create a single catalog just for
the Guile installation, issue the following command as the root user:
guile -l guile.init \
-c "(use-modules (ice-9 slib)) (require 'new-catalog)"
If there was no output from the previous command, and the file /usr/share/guile/slibcat now exists, the
catalog was properly created.
Contents
Installed Program: slib
Installed Libraries: a Scheme library system
Installed Directory: /usr/share/slib and /usr/share/doc/slib-3a4
Short Descriptions
slib is a shell script used to initialize SLIB in a named Scheme implementation. It can also be used to initialize
an SLIB session using a given executable.
204
Beyond Linux® From Scratch - Version 6.3
G-Wrap-1.3.4
Introduction to G-Wrap
The G-Wrap package contains tools for exporting C libraries into Scheme interpreters.
Package Information
• Download (HTTP): http://www.gnucash.org/pub/g-wrap/source/g-wrap-1.3.4.tar.gz
• Download (FTP): ftp://ftp.linux.ee/pub/gentoo/distfiles/distfiles/g-wrap-1.3.4.tar.gz
• Download MD5 sum: bf29b8b563cc27d9f7fd90a6243653aa
• Download size: 403 KB
• Estimated disk space required: 6.0 MB
• Estimated build time: 0.2 SBU
G-Wrap Dependencies
Required
Optional
Installation of G-Wrap
Install G-Wrap by running the following commands:
If you have teTeX-3.0 installed and wish to create alternate formats of the documentation, issue the following
commands:
cd doc &&
texi2pdf g-wrap.texi &&
texi2html g-wrap.texi &&
makeinfo --plaintext -o g-wrap.txt g-wrap.texi &&
mv texinfo.tex texinfo.tex.SAVE &&
texi2dvi g-wrap.texi &&
dvips -o g-wrap.ps g-wrap.dvi &&
cd ..
make install
205
Beyond Linux® From Scratch - Version 6.3
If you created the alternate formats of the documentation, install it using the following commands as the root user:
Contents
Installed Program: g-wrap-config
Installed Libraries: libgw-glib.{so,a}, libgw-gtk.{so,a}, libgw-standard.{so,a}, libgw-wct.{so,a},
libgwrap-glib.{so,a} and libgwrap-wct.{so,a}
Installed Directories: /usr/include/g-wrap, /usr/share/doc/g-wrap-1.3.4 and /usr/share/guile/site
Short Descriptions
g-wrap-config is a tool to generate CFLAGS for linking C code to the Scheme runtime libraries.
206
Beyond Linux® From Scratch - Version 6.3
LZO-2.02
Introduction to LZO
LZO is a data compression library which is suitable for data decompression and compression in real-time. This means
it favors speed over compression ratio.
Package Information
• Download (HTTP): http://www.oberhumer.com/opensource/lzo/download/lzo-2.02.tar.gz
• Download (FTP): ftp://ftp.uni-koeln.de/util/arc/lzo-2.02.tar.gz
• Download MD5 sum: 6760e5819f4238328709bf93bf10071c
• Download size: 599 KB
• Estimated disk space required: 11.9 MB
• Estimated build time: 0.3 SBU (additional 0.4 SBU to run the tests)
Installation of LZO
Install LZO by running the following commands:
To test the results, issue make check. All the checks should pass. Now issue make test to run the full suite of tests.
Now, as the root user:
Contents
Installed Programs: None
Installed Library: liblzo2.{so,a}
Installed Directory: /usr/include/lzo and /usr/share/doc/lzo-2.02
Short Descriptions
liblzo2.{so,a} is a data compression and decompression library.
207
Beyond Linux® From Scratch - Version 6.3
libusb-0.1.12
Introduction to libusb
The libusb package contains a library used by some applications for USB device access.
Package Information
• Download (HTTP): http://downloads.sourceforge.net/libusb/libusb-0.1.12.tar.gz
•
• Download MD5 sum: caf182cbc7565dac0fd72155919672e6
• Download size: 389 KB
• Estimated disk space required: 8.4 MB (includes installing all documentation)
• Estimated build time: 0.3 SBU (includes building all documentation)
libusb Dependencies
Optional
pkg-config-0.22
Installation of libusb
Install libusb by running the following commands:
If you wish to build the API documentation (see the required dependencies), issue the following command:
make apidox
make install
If you built the HTML user manual (by having the required dependencies installed and removing the
--disable-build-docs parameter from the configure command), install it using the following commands as
the root user:
208
Beyond Linux® From Scratch - Version 6.3
If you built the API documentation, install it using the following commands as the root user:
Command Explanations
--disable-build-docs: This switch avoids building the HTML user manual. Remove it if you have the
required dependencies installed and wish to build the manual.
Configuring Libusb
To access raw USB devices (those not treated as a disk by the mass-storage driver), appropriate support must be
available in the kernel. Check your kernel configuration for Device Drivers # USB support # Support for Host-side
USB. Select any USB hardware device drivers you may need on the same page.
To have raw USB devices set up properly, add the following udev rule.
Add any users that need to access raw USB devices to the usb group.
Contents
Installed Program: libusb-config
Installed Libraries: libusb.{so,a} and libusbpp.{so,a}
Installed Directory: /usr/share/doc/libusb-0.1.12
Short Descriptions
libusb-config is a script that provides the right compiler and linker flags for programs using libusb.
libusb.{so,a} libraries contain C functions for accessing USB hardware.
209
Beyond Linux® From Scratch - Version 6.3
ISO Codes-1.2
Introduction to ISO Codes
The ISO Codes package contains a list of country, language and currency names. This is useful when used as a central
database for accessing this data.
Package Information
•
• Download (FTP): ftp://pkg-isocodes.alioth.debian.org/pub/pkg-isocodes/iso-codes-1.2.tar.bz2
• Download MD5 sum: 9326469ec0e9e97d604821bd3c132fc6
• Download size: 6.1 MB
• Estimated disk space required: 73 MB
• Estimated build time: 0.2 SBU
make install
Contents
Installed Programs: None
Installed Libraries: None
Installed Directories: /usr/share/iso-codes, /usr/share/xml/iso-codes and many directories in the
/usr/share/locale hierarchy
210
Beyond Linux® From Scratch - Version 6.3
GMime-2.2.10
Introduction to GMime
The GMime package contains a set of utilities for parsing and creating messages using the Multipurpose Internet
Mail Extension (MIME) as defined by the applicable RFCs. See the GMime web site for the RFCs resourced. This
is useful as it provides an API which adheres to the MIME specification as closely as possible while also providing
programmers with an extremely easy to use interface to the API functions.
Package Information
• Download (HTTP): http://spruce.sourceforge.net/gmime/sources/v2.2/gmime-2.2.10.tar.gz
•
• Download MD5 sum: 6b5be6a0d4d9380fd0491ad2536c4087
• Download size: 947 KB
• Estimated disk space required: 21 MB
• Estimated build time: 0.4 SBU (includes building the Mono bindings)
GMime Dependencies
Required
GLib-2.12.12
Optional
Installation of GMime
Install GMime by running the following commands:
If you have DocBook-utils-0.6.14 installed and you wish to generate the API tutorials, issue the following commands:
cd docs/tutorial &&
docbook2html --nochunks gmime-tut.sgml &&
docbook2pdf gmime-tut.sgml &&
docbook2ps gmime-tut.sgml &&
docbook2txt gmime-tut.sgml &&
cd ../..
To test the results, issue make check. Note that some tests may fail because the corresponding sub-system is not
installed or configured properly.
This package will overwrite the uudecode and uuencode programs installed by the sharutils package (or any other
package that may install these programs) if they exist in /usr/bin. If you wish to preserve the existing programs,
ensure you rename them before issuing the following commands.
211
Beyond Linux® From Scratch - Version 6.3
Command Explanations
--enable-gtk-doc: Use this parameter if GTK-Doc is installed and you wish to rebuild the API documentation.
Contents
Installed Programs: gmime-config, uudecode and uuencode
Installed Libraries: libgmime-2.0.{so,a} and optionally, Mono bindings
Installed Directories: /usr/include/gmime-2.0, /usr/lib/mono/gac/gmime-sharp, /usr/lib/mono/gmime-sharp,
/usr/share/doc/gmime-2.2.10 and /usr/share/gtk-doc/html/gmime
Short Descriptions
gmime-config is used to gather information about how and where GMime was installed. It is typically
used by other programs seeking to link to the GMime library.
uudecode is used to decode files or data encoded with uuencode.
uuencode is a method of encoding binary data into 7-bit ASCII data.
libgmime-2.0.{so,a} contains API functions used by programs that need to adhere to the MIME standards.
212
Beyond Linux® From Scratch - Version 6.3
Libidn-0.6.14
Introduction to Libidn
Libidn is a package designed for internationalized string handling based on the Stringprep, Punycode, IDNA and
TLD specifications defined by the Internet Engineering Task Force (IETF) Internationalized Domain Names (IDN)
working group, used for internationalized domain names. This is useful for converting data from the system's native
representation into UTF-8, transforming Unicode strings into ASCII strings, allowing applications to use certain
ASCII name labels (beginning with a special prefix) to represent non-ASCII name labels, and converting entire
domain names to and from the ASCII Compatible Encoding (ACE) form.
Package Information
• Download (HTTP): http://anduin.linuxfromscratch.org/sources/BLFS/6.3/l/libidn-0.6.14.tar.gz
• Download (FTP): ftp://alpha.gnu.org/pub/gnu/libidn/libidn-0.6.14.tar.gz
• Download MD5 sum: 040f012a45feb56168853998bb87ad4d
• Download size: 2.3 MB
• Estimated disk space required: 19 MB
• Estimated build time: 0.2 SBU
Libidn Dependencies
Optional
Emacs-22.1, pkg-config-0.22, GTK-Doc-1.8, a Java compiler—one of (looked for in this order) GCC-4.1.2 (for gcj
and you must also have the gjdoc package installed), Jikes or JDK-6 Update 5, and a C# compiler—Mono or DotGNU
Portable.NET
Installation of Libidn
Install Libidn by running the following commands:
213
Beyond Linux® From Scratch - Version 6.3
install -v -m755 -d \
/usr/share/doc/libidn-0.6.14/{api,java,specifications,tld} &&
install -v -m644 doc/components* \
doc/libidn.{pdf,ps,html} \
/usr/share/doc/libidn-0.6.14 &&
install -v -m644 doc/reference/html/* \
/usr/share/doc/libidn-0.6.14/api &&
install -v -m644 doc/specifications/* \
/usr/share/doc/libidn-0.6.14/specifications &&
install -v -m644 doc/tld/* /usr/share/doc/libidn-0.6.14/tld &&
cp -v -R doc/java/* /usr/share/doc/libidn-0.6.14/java
Command Explanations
--enable-gtk-doc: Use this parameter if GTK-Doc is installed and you wish to rebuild the API documentation.
Contents
Installed Program: idn
Installed Libraries: libidn.{so,a} and optionally, Java and C# modules
Installed Directory: /usr/share/doc/libidn-0.6.14
Short Descriptions
idn is a command line interface to the internationalized domain name library.
libidn.{so,a} contains a generic Stringprep implementation that does Unicode 3.2 NFKC normalization,
mapping and prohibition of characters, and bidirectional character handling. Profiles for
Nameprep, iSCSI, SASL and XMPP are included as well as support for Punycode and ASCII
Compatible Encoding (ACE) via IDNA. A mechanism to define Top-Level Domain (TLD)
specific validation tables, and to compare strings against those tables, as well as default tables
for some TLDs are included.
214
Beyond Linux® From Scratch - Version 6.3
libdrm-2.3.0
Introduction to libdrm
libdrm provides core library routines for the X Window System to directly interface with video hardware using the
Linux kernel's Direct Rendering Modules.
Package Information
• Download (HTTP): http://dri.freedesktop.org/libdrm/libdrm-2.3.0.tar.gz
• Download (FTP): ftp://ftp.linux.ee/pub/gentoo/distfiles/distfiles/libdrm-2.3.0.tar.gz
• Download MD5 sum: f2f5d3186bee51be49e1389bed39a7ed
• Download size: 382 KB
• Estimated disk space required: 2.7 MB
• Estimated build time: 0.1 SBU
Installation of libdrm
Install libdrm by running the following commands:
make install
Contents
Installed Programs: None
Installed Library: libdrm.{so,a}
Installed Directory: $XORG_PREFIX/include/drm
Short Descriptions
libdrm.{so,a} contains the Direct Rendering Module library functions.
215
Beyond Linux® From Scratch - Version 6.3
D-Bus Bindings
Introduction to D-Bus Bindings
The D-Bus Bindings are a group of packages that contain programming language and platform interfaces to the D-Bus
API. This is useful for programmers to easily interface D-Bus with their supported platform or language of choice.
Some non-D-Bus packages will require one or more of the Bindings packages in order to build successfully.
The GLib, Python and Qt3 Bindings are included on this page. Other language bindings will be added soon. Until
then, see the D-Bus Bindings page for information.
• D-Bus GLib Bindings-0.74
• D-Bus Python Bindings-0.82.0
• D-Bus Qt3 Bindings-0.62
Command Explanations
--enable-gtk-doc: Use this parameter if GTK-Doc is installed and you wish to rebuild the API documentation.
Contents
Installed Program: dbus-binding-tool
Installed Library: libdbus-glib-1.{so,a}
Installed Directory: /usr/share/gtk-doc/html/dbus-glib
216
Beyond Linux® From Scratch - Version 6.3
Short Descriptions
dbus-binding-tool is a tool used to interface with the D-Bus API.
libdbus-glib-1.{so,a} contains GLib interface functions to the D-Bus API.
Required
Recommended
pkg-config-0.22
Optional
To test the results, issue: make check. Note you must have PyGObject installed.
Now, as the root user:
make install
Contents
Installed Programs: None
Installed Libraries: Python D-Bus modules
Installed Directory: /usr/lib/python2.5/site-packages/dbus and /usr/share/doc/dbus-python
217
Beyond Linux® From Scratch - Version 6.3
Recommended
pkg-config-0.22
make install
Contents
Installed Programs: None
Installed Library: libdbus-qt-1.so
Installed Directories: None
Short Descriptions
libdbus-qt-1.{so,a} contains Qt3 interface functions to the D-Bus API.
218
Beyond Linux® From Scratch - Version 6.3
libpthread-stubs-0.1
Introduction to libpthread-stubs
The libpthread-stubs package provides weak aliases for pthread functions not provided in libc or otherwise available
by default. This is useful for libraries that rely on pthread stubs to use pthreads optionally. On Linux, all necessary
pthread functions are available, so this package is simply a placeholder.
Package Information
• Download (HTTP): http://xcb.freedesktop.org/dist/libpthread-stubs-0.1.tar.bz2
• Download (FTP): ftp://ftp.x.org/pub/individual/lib/libpthread-stubs-0.1.tar.bz2
• Download MD5 sum: 774eabaf33440d534efe108ef9130a7d
• Download size: 190 KB
• Estimated disk space required: 1.6 MB
• Estimated build time: less than 0.1 SBU
Installation of libpthread-stubs
Install libpthread-stubs by running the following commands:
make install
Contents
Installed Programs: None
Installed Libraries: None
Installed Directories: None
219
Beyond Linux® From Scratch - Version 6.3
Pth-2.0.7
Introduction to Pth
The Pth package contains a very portable POSIX/ANSI-C based library for Unix platforms which provides
non-preemptive priority-based scheduling for multiple threads of execution (multithreading) inside event-driven
applications. All threads run in the same address space of the server application, but each thread has its own individual
program-counter, run-time stack, signal mask and errno variable.
Package Information
• Download (HTTP): http://ftp.gnu.org/gnu/pth/pth-2.0.7.tar.gz
• Download (FTP): ftp://ftp.gnu.org/gnu/pth/pth-2.0.7.tar.gz
• Download MD5 sum: 9cb4a25331a4c4db866a31cbe507c793
• Download size: 652 KB
• Estimated disk space required: 5 MB
• Estimated build time: 0.2 SBU
Installation of Pth
Caution
Don't add the --enable-pthread parameter to the configure command below else you will overwrite
the pthread library and interface header installed by the Glibc package in LFS.
Contents
Installed Program: pth-config
Installed Library: libpth.{so,a}
Installed Directory: /usr/share/doc/pth-2.0.7
Short Descriptions
pth-config is a utility used to configure and build applications based on the pth(3) library. It can be used
to query the C compiler and linker flags which are required to correctly compile and link the
application against the pth(3) library.
libpth.{so,a} contains the API functions used by the GNU Portable Threads Library.
220
Beyond Linux® From Scratch - Version 6.3
Libassuan-1.0.4
Introduction to Libassuan
The Libassuan package contains an IPC library used by some of the other GnuPG related packages. Libassuan's
primary use is to allow a client to interact with a non-persistent server. Libassuan is not, however, limited to use with
GnuPG servers and clients. It was designed to be flexible enough to meet the demands of many transaction based
environments with non-persistent servers.
Package Information
• Download (HTTP): http://anduin.linuxfromscratch.org/sources/BLFS/6.3/l/libassuan-1.0.4.tar.bz2
• Download (FTP): ftp://ftp.gnupg.org/gcrypt/libassuan/libassuan-1.0.4.tar.bz2
• Download MD5 sum: ffb95bf2bac23e173f5a83a270f7524a
• Download size: 297 KB
• Estimated disk space required: 4 MB
• Estimated build time: 0.1 SBU
Libassuan Dependencies
Optional
Pth-2.0.7
Other packages (such as GnuPG-2) will require that the Libassuan library is linked to the Pth library. Ensure Pth is
installed before beginning the build if you have any doubts.
Installation of Libassuan
Install Libassuan by running the following commands:
Only info documentation is shipped in the package tarball. If you wish to build alternate formats of the documentation,
you must have teTeX-3.0 installed, then issue the following commands:
221
Beyond Linux® From Scratch - Version 6.3
If you built the additional documentation, install it by issuing the following commands as the root user:
Contents
Installed Program: libassuan-config
Installed Libraries: libassuan.a and libassuan-pth.a
Installed Directory: /usr/share/doc/libassuan-1.0.4
Short Descriptions
libassuan-config is a utility used to configure and build applications based on the libassuan(3) library. It can
be used to query the C compiler and linker flags which are required to correctly compile
and link the application against the libassuan(3) library.
libassuan.a is the IPC library.
libassuan-pth.a is the IPC library linked with the GNU Portable Threads Library.
222
Beyond Linux® From Scratch - Version 6.3
Libgpg-error-1.5
Introduction to Libgpg-error
The Libgpg-error package contains a library that defines common error values for all GnuPG components. Among
these are GPG, GPGSM, GPGME, GPG-Agent, libgcrypt, Libksba, DirMngr, Pinentry, SmartCard Daemon and
more.
Package Information
• Download (HTTP): http://anduin.linuxfromscratch.org/sources/BLFS/6.3/l/libgpg-error-1.5.tar.bz2
• Download (FTP): ftp://ftp.gnupg.org/gcrypt/libgpg-error/libgpg-error-1.5.tar.bz2
• Download MD5 sum: 8599b96c911b1df1be24a6ff4ec3c364
• Download size: 372 KB
• Estimated disk space required: 5 MB
• Estimated build time: 0.1 SBU
Installation of Libgpg-error
Install Libgpg-error by running the following commands:
Contents
Installed Program: libgpg-error and libgpg-error-config
Installed Library: liblibgpg-error.{so,a}
Installed Directory: /usr/share/common-lisp
Short Descriptions
gpg-error is used to determine Libgpg-error error codes.
gpg-error-config is a utility used to configure and build applications based on the Libgpg-error
library. It can be used to query the C compiler and linker flags which are required
to correctly compile and link the application against the Libgpg-error library.
liblibgpg-error.{so,a} contains the Libgpg-error API functions.
223
Beyond Linux® From Scratch - Version 6.3
Libgcrypt-1.2.4
Introduction to Libgcrypt
The Libgcrypt package contains a general purpose crypto library based on the code used in GnuPG. The library
provides a high level interface to cryptographic building blocks using an extendable and flexible API.
Package Information
• Download (HTTP): http://anduin.linuxfromscratch.org/sources/BLFS/6.3/l/libgcrypt-1.2.4.tar.bz2
• Download (FTP): ftp://ftp.gnupg.org/gcrypt/libgcrypt/libgcrypt-1.2.4.tar.bz2
• Download MD5 sum: 3675d3e74c3a44aed629d9b12a30bb51
• Download size: 799 KB
• Estimated disk space required: 19 MB
• Estimated build time: 0.3 SBU
Libgcrypt Dependencies
Required
Libgpg-error-1.5
Installation of Libgcrypt
Install Libgcrypt by running the following commands:
./configure --prefix=/usr &&
make
Only info documentation is shipped in the package tarball. If you wish to build alternate formats of the documentation,
you must have teTeX-3.0 installed, then issue the following commands:
make -C doc pdf ps html &&
makeinfo --html --no-split -o doc/gcrypt_nochunks.html doc/gcrypt.texi &&
makeinfo --plaintext -o doc/gcrypt.txt doc/gcrypt.texi
To test the results, issue: make check.
Now, as the root user:
make install &&
install -v -m644 -D README /usr/share/doc/libgcrypt-1.2.4/README
If you built the additional documentation, install it by issuing the following commands as the root user:
install -v -m755 -d /usr/share/doc/libgcrypt-1.2.4/html &&
install -v -m644 doc/gcrypt.html/* \
/usr/share/doc/libgcrypt-1.2.4/html &&
install -v -m644 doc/gcrypt_*.html \
/usr/share/doc/libgcrypt-1.2.4 &&
install -v -m644 doc/gcrypt.{pdf,ps,dvi,txt,texi} \
/usr/share/doc/libgcrypt-1.2.4
224
Beyond Linux® From Scratch - Version 6.3
Contents
Installed Program: libgcrypt-config
Installed Libraries: libgcrypt.{so,a}
Installed Directory: /usr/share/doc/libgcrypt-1.2.4
Short Descriptions
libgcrypt-config is a utility used to configure and build applications based on the libgcrypt(3) library. It can
be used to query the C compiler and linker flags which are required to correctly compile
and link the application against the libgcrypt(3) library.
libgcrypt.{so,a} contains the cryptographic API functions.
225
Beyond Linux® From Scratch - Version 6.3
Libksba-1.0.2
Introduction to Libksba
The Libksba package contains a library used to make X.509 certificates as well as making the CMS (Cryptographic
Message Syntax) easily accessible by other applications. Both specifications are building blocks of S/MIME and TLS.
The library does not rely on another cryptographic library but provides hooks for easy integration with Libgcrypt.
Package Information
• Download (HTTP): http://anduin.linuxfromscratch.org/sources/BLFS/6.3/l/libksba-1.0.2.tar.bz2
• Download (FTP): ftp://ftp.gnupg.org/gcrypt/libksba/libksba-1.0.2.tar.bz2
• Download MD5 sum: 3cccb3ef697e1e69eeceeea0715ff220
• Download size: 525 KB
• Estimated disk space required: 13 MB
• Estimated build time: 0.2 SBU
Libksba Dependencies
Required
Libgpg-error-1.5
Installation of Libksba
Install Libksba by running the following commands:
Only info documentation is shipped in the package tarball. If you wish to build alternate formats of the documentation,
you must have teTeX-3.0 installed, then issue the following commands:
226
Beyond Linux® From Scratch - Version 6.3
If you built the additional documentation, install it by issuing the following commands as the root user:
Contents
Installed Program: libksba-config
Installed Libraries: libksba.{so,a}
Installed Directory: /usr/share/doc/libksba-1.0.2
Short Descriptions
libksba-config is a utility used to configure and build applications based on the libksba(3) library. It can be
used to query the C compiler and linker flags which are required to correctly compile and link
the application against the libksba(3) library.
libksba.{so,a} contains the cryptographic API functions.
227
Beyond Linux® From Scratch - Version 6.3
Mowgli-0.6.1
Introduction to Mowgli
The Mowgli package contains a development framework for C, similar to GLib-2.12.12. It provides high performance
and highly flexible algorithms for routine tasks such as reference-counting, linked lists and spinlocks, and thus helps
programmers write better engineered code.
Package Information
• Download (HTTP): http://distfiles.atheme.org/libmowgli-0.6.1.tgz
•
• Download MD5 sum: 80f8a27f1b44b0b129215f858ab1ab82
• Download size: 106 KB
• Estimated disk space required: 2.0 MB
• Estimated build time: less than 0.1 SBU
Installation of Mowgli
Install Mowgli by running the following commands:
make install
Contents
Installed Programs: None
Installed Libraries: libmowgli.so
Installed Directories: /usr/include/libmowgli
Short Descriptions
libmowgli.so libraries contain optimized functions for various common C programming tasks.
228
Beyond Linux® From Scratch - Version 6.3
mcs-0.7.0
Introduction to mcs
The mcs package is a library and set of tools which abstract the storage of configuration settings away from userland
applications. There are similar projects like this (such as GConf), but unlike those projects, mcs strictly handles
abstraction. It does not impose any specific data storage requirement, nor is it tied to any desktop environment or
software suite.
Package Information
• Download (HTTP): http://distfiles.atheme.org/libmcs-0.7.0.tgz
•
• Download MD5 sum: 0f0c779609b3481a79937c2e86660a99
• Download size: 103 KB
• Estimated disk space required: 1.3 MB
• Estimated build time: less than 0.1 SBU
mcs Dependencies
Required
Mowgli-0.6.1
Optional
GConf-2.18.0.1 and kdelibs-3.5.9
Installation of mcs
Install mcs by running the following commands:
./configure --prefix=/usr &&
make
This package does not come with a test suite.
Now, as the root user:
make install &&
install -v -m644 -D README /usr/share/doc/mcs-0.7.0/README
Command Explanations
--with-qt-path=/usr/share/qt: If you have kdelibs-3.5.9 installed, you must pass additional parameters
to the configure script to identify the location of Qt and, possibly, KDE libraries and interface headers.
For additional information about the various storage backends (including the default XDG-compliant backend), see
the README file in the source tree.
Configuring mcs
There are various ways to configure mcs to use a specific backend on a site-wide or individual user basis. If the
default file-based storage backend is suitable, no configuration steps are required. See section 2 of the README file
in the source tree for details.
229
Beyond Linux® From Scratch - Version 6.3
Contents
Installed Programs: mcs-getconfval, mcs-info, mcs-query-backends and mcs-setconfval
Installed Libraries: libmcs.so and backend storage modules
Installed Directories: /usr/include/mcs, /usr/lib/mcs and /usr/share/doc/mcs-0.7.0
Short Descriptions
mcs-getconfval queries mcs for a configuration value.
mcs-info displays information about the current installation and configuration of mcs.
mcs-query-backends queries mcs to determine what backends are available.
mcs-setconfval instructs mcs to change a configuration value.
libmcs.so contains the API functions required by the mcs userspace tools.
230
Beyond Linux® From Scratch - Version 6.3
231
Beyond Linux® From Scratch - Version 6.3
libjpeg-6b
Introduction to libjpeg
The libjpeg package contains libraries that allow compression of image files based on the Joint Photographic Experts
Group standard. It is a "lossy" compression algorithm.
Package Information
• Download (HTTP): http://www.ijg.org/files/jpegsrc.v6b.tar.gz
• Download (FTP): ftp://ftp.uu.net/graphics/jpeg/jpegsrc.v6b.tar.gz
• Download MD5 sum: dbd5f3b47ed13132f04c685d608a7547
• Download size: 599 KB
• Estimated disk space required: 4.6 MB
• Estimated build time: 0.2 SBU
Installation of libjpeg
Install libjpeg by running the following commands:
./configure --prefix=/usr --enable-static --enable-shared &&
make
To test the results, issue: make test.
Now, as the root user:
make install
Command Explanations
--enable-static --enable-shared: These switches tell libjpeg to build both shared and static libraries.
Configuring libjpeg
Configuration Information
As with most libraries, there is no configuration to do, save that the library directory, i.e., /opt/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
Installed Programs: cjpeg, djpeg, jpegtran, rdjpgcom, and wrjpgcom
Installed Library: libjpeg.{so,a}
Installed Directories: None
Short Descriptions
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.
232
Beyond Linux® From Scratch - Version 6.3
djpeg decompresses image files from JPEG/JFIF format to either PPM (PBMPLUS color format),
PGM (PBMPLUS gray-scale format), BMP, or Targa format.
jpegtran is used for lossless transformation of JPEG files.
rdjpgcom displays text comments from within a JPEG file.
wrjpgcom inserts text comments into a JPEG file.
libjpeg.{so,a} library is used by many programs for reading and writing JPEG format files.
233
Beyond Linux® From Scratch - Version 6.3
libpng-1.2.29
Introduction to libpng
The libpng package contains libraries used by other programs for reading and writing PNG files.
Package Information
• Download (HTTP): http://downloads.sourceforge.net/libpng/libpng-1.2.29.tar.bz2
•
• Download MD5 sum: f588cb4ee39e3a333604096f937ea157
• Download size: 616 KB
• Estimated disk space required: 11.5 MB
• Estimated build time: 0.3 SBU
Installation of libpng
Install libpng by running the following commands:
./configure --prefix=/usr &&
make
To test the results, issue: make check.
Now, as the root user:
make install &&
install -v -m755 -d /usr/share/doc/libpng-1.2.29 &&
install -v -m644 README libpng-1.2.29.txt \
/usr/share/doc/libpng-1.2.29
Configuring libpng
Configuration Information
As with most libraries, there is no configuration to do, save that the library directory, i.e., /opt/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
Installed Programs: libpng-config and libpng12-config
Installed Libraries: libpng.so and libpng12.{so,a}
Installed Directory: /usr/include/libpng12 and /usr/share/doc/libpng-1.2.29
Short Descriptions
libpng-config is a symlink to libpng12-config.
libpng12-config provides configuration information for libpng.
libpng.so and libpng12.{so,a} are a collection of routines used to create and manipulate PNG
format graphics files. The PNG format was designed as a
234
Beyond Linux® From Scratch - Version 6.3
235
Beyond Linux® From Scratch - Version 6.3
LibTIFF-3.8.2
Introduction to LibTIFF
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.
Package Information
• Download (HTTP): http://libtiff.maptools.org/dl/tiff-3.8.2.tar.gz
• Download (FTP): ftp://ftp.remotesensing.org/libtiff/tiff-3.8.2.tar.gz
• Download MD5 sum: fbb6f446ea4ed18955e2714934e5b698
• Download size: 1.3 MB
• Estimated disk space required: 18.8 MB
• Estimated build time: 0.5 SBU
LibTIFF Dependencies
Optional
libjpeg-6b, X Window System, and freeglut-2.4.0
Note that if you installed the optional MesaGLUT package with the MesaLib-6.5.2 package during an Xorg7
installation, a GLUT library is already installed and you don't need freeglut.
Installation of LibTIFF
Install LibTIFF by running the following commands:
make install
Contents
Installed Programs: bmp2tiff, fax2ps, fax2tiff, gif2tiff, pal2rgb, ppm2tiff, ras2tiff, raw2tiff, rgb2ycbcr,
thumbnail, tiff2bw, tiff2pdf, tiff2ps, tiff2rgba, tiffcmp, tiffcp, tiffdither, tiffdump, tiffgt,
tiffinfo, tiffmedian, tiffset, and tiffsplit
Installed Libraries: libtiff.{so,a} and libtiffxx.{so,a}
Installed Directory: /usr/share/doc/tiff-3.8.2
Short Descriptions
bmp2tiff converts a Microsoft Windows Device Independent Bitmap image file to a TIFF image.
fax2ps converts a TIFF facsimile to compressed PostScript file.
fax2tiff creates a TIFF Class F fax file from raw fax data.
236
Beyond Linux® From Scratch - Version 6.3
237
Beyond Linux® From Scratch - Version 6.3
giflib-4.1.4
Introduction to giflib
The giflib package contains libraries for reading and writing GIFs 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.
Package Information
• Download (HTTP): http://downloads.sourceforge.net/giflib/giflib-4.1.4.tar.bz2
• Download (FTP): ftp://ftp.linux.ee/pub/gentoo/distfiles/distfiles/giflib-4.1.4.tar.gz
• Download (HTTP) MD5 sum: 827d338961482a986f39c7f114531636
• Download (HTTP) size: 483 KB
• Download (FTP) MD5 sum: 950943daa71350a558c3edf41c3f0f9f
• Download (FTP) size: 605 KB
• Estimated disk space required: 6.8 MB
• Estimated build time: 0.2 SBU
giflib Dependencies
Optional
X Window System and Utah Raster Toolkit (or URT-3.1b)
Installation of giflib
Install giflib by running the following commands:
Contents
Installed Programs: gif2epsn, gif2ps, gif2rgb, gif2x11, 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, and
text2gif
Installed Library: libgif.{so,a}
Installed Directory: /usr/share/doc/giflib-4.1.4
238
Beyond Linux® From Scratch - Version 6.3
Short Descriptions
gif2epsn dumps images saved as GIF files on Epson type printers.
gif2ps prints GIF files on laser printers supporting PostScript.
gif2rgb converts images saved as GIF to 24-bit RGB images.
gif2x11 displays images saved as GIF files under X Window System.
gifasm assembles multiple GIFs into one, or burst a multiple-image GIF.
gifbg generates a single-color test pattern GIF.
gifburst bursts a GIF image into subrectangles.
gifclip clips or crops a GIF image.
gifclrmp modifies GIF image colormaps.
gifcolor generates color test patterns.
gifcomb combines two GIF images of exactly the same size into one.
gifcompose uses giflib tools to compose images.
giffiltr is a template for filtering a GIF sequentially.
giffix clumsily attempts to fix truncated GIF images.
gifflip flips a GIF image along the X or Y axis or rotates an image by 90 degrees.
gifhisto generate a color-frequency histogram from a GIF.
gifinfo gives information about a GIF file.
gifinter converts between interlaced and non-interlaced images.
gifinto is an end-of-pipe fitting for GIF-processing pipelines.
gifovly generates one composite GIF from a multiple-image GIF.
gifpos changes a GIF's screen size or reconditions it.
gifrotat rotates a GIF through any desired angle.
gifrsize resizes a GIF by deletion or duplication of bits.
gifspnge is a template for filtering a GIF with in-core operations.
giftext prints (text only) general information about a GIF file.
gifwedge creates a test GIF image resembling a color monitor test pattern.
icon2gif is a converter/deconverter to/from an editable text format.
raw2gif converts raw 8-bit image data into GIF files.
rgb2gif converts 24 bit images to a GIF image using color quantization.
text2gif generates GIF images out of regular text in 8x8 font.
libgif.{so,a} contains API functions required by the giflib programs and any other programs needing library
functionality to read, write and manipulate GIF images.
239
Beyond Linux® From Scratch - Version 6.3
little cms-1.16
Introduction to little cms
The little cms library is used by other programs to provide color management facilities.
Package Information
• Download (HTTP): http://www.littlecms.com/lcms-1.16.tar.gz
• Download (FTP): ftp://ftp.linux.ee/pub/gentoo/distfiles/distfiles/lcms-1.16.tar.gz
• Download MD5 sum: b07b623f3e712373ff713fb32cf23651
• Download size: 911 KB
• Estimated disk space required: 25 MB
• Estimated build time: 0.5 SBU (includes building the Python module)
Additional Downloads
• Required patch: http://www.linuxfromscratch.org/patches/blfs/6.3/lcms-1.16-swig_fixes-1.patch
Contents
Installed Programs: icc2ps, icclink, icctrans, wtpt and optionally, jpegicc, tiffdiff and tifficc
Installed Libraries: liblcms.{so,a} and the optional _lcms.so Python module
Installed Directory: /usr/share/doc/lcms-1.16
Short Descriptions
icc2ps generates PostScript CRD or CSA from ICC profiles.
icclink links two or more profiles into a single device link profile.
icctrans is a color space conversion calculator.
240
Beyond Linux® From Scratch - Version 6.3
241
Beyond Linux® From Scratch - Version 6.3
libmng-1.0.9
Introduction to libmng
The libmng libraries are used by programs wanting to read and write Multiple-image Network Graphics (MNG) files
which are the animation equivalents to PNG files.
Package Information
• Download (HTTP): http://downloads.sourceforge.net/libmng/libmng-1.0.9.tar.gz
•
• Download MD5 sum: ff1205ef70855a75c098ea09690413c6
• Download size: 554 KB
• Estimated disk space required: 7.1 MB
• Estimated build time: 0.1 SBU
libmng Dependencies
Required
libjpeg-6b and little cms-1.16
Installation of libmng
Install libmng by running the following commands:
Command Explanations
cp makefiles/makefile.linux Makefile: There are no autotools shipped with this package. The Linux Makefile is
copied to the root of the source tree, facilitating the installation.
install ...: The documentation files are not installed by the installation procedure, so they are copied manually.
Contents
Installed Programs: None
Installed Library: libmng.{so,a}
Installed Directory: /usr/share/doc/libmng-1.0.9
242
Beyond Linux® From Scratch - Version 6.3
Short Descriptions
libmng.{so,a} provides functions for programs wishing to read and write MNG files which are animation files
without the patent problems associated with certain other formats.
243
Beyond Linux® From Scratch - Version 6.3
FreeType-2.3.7
Introduction to FreeType2
The FreeType2 package contains a library to allow applications to properly render TrueType fonts.
Package Information
• Download (HTTP): http://downloads.sourceforge.net/freetype/freetype-2.3.7.tar.bz2
• Download (FTP): ftp://ftp.linux.ee/pub/gentoo/distfiles/distfiles/freetype-2.3.7.tar.bz2
• Download MD5 sum: 83306194817ebdea554133b4232a34aa
• Download size: 1.3 MB
• Estimated disk space required: 28.2 (includes installing additional documentation)
• Estimated build time: 0.4 SBU
Additional Downloads
Additional Documentation
• Download (HTTP): http://downloads.sourceforge.net/freetype/freetype-doc-2.3.7.tar.bz2
• Download (FTP): ftp://ftp.linux.ee/pub/gentoo/distfiles/distfiles/freetype-doc-2.3.7.tar.bz2
• Download MD5 sum: 2ba135e6a126ed86e9b462167511ced8
• Download size: 97 KB
Installation of FreeType2
If you downloaded the additional documentation, unpack it into the source tree using the following command:
tar xf ../freetype-doc-2.3.7.tar.bz2 \
--strip-components=2 -C docs
Install FreeType2 by running the following commands:
sed -i -r -e 's:.*(#.*BYTE.*) .*:\1:' \
-e 's:.*(#.*SUBPIX.*) .*:\1:' \
include/freetype/config/ftoption.h &&
./configure --prefix=/usr &&
make
This package does not come with a test suite.
Now, as the root user:
make install &&
install -v -m755 -d /usr/share/doc/freetype-2.3.7 &&
cp -v -R docs/* /usr/share/doc/freetype-2.3.7
Command Explanations
sed -i ... 's:.*(#.*BYTE.*) .*:\1:' ... 's:.*(#.*SUBPIX.*) .*:\1:' include/freetype/config/ftoption.h: This command
enables the TrueType native bytecode interpreter and LCD optimized rendering features. These options result in
improved rendering of fonts, but may have patent restrictions. Be sure to read http://www.freetype.org/patents.html
before enabling these options.
244
Beyond Linux® From Scratch - Version 6.3
Contents
Installed Program: freetype-config
Installed Library: libfreetype.{so,a}
Installed Directory: /usr/include/freetype2
Short Descriptions
freetype-config is used to get FreeType compilation and linking information.
libfreetype.{so,a} contains functions for rendering various font types, such as TrueType and Type1.
245
Beyond Linux® From Scratch - Version 6.3
Fontconfig-2.4.2
Introduction to Fontconfig
The Fontconfig package is a library for configuring and customizing font access.
Package Information
• Download (HTTP): http://fontconfig.org/release/fontconfig-2.4.2.tar.gz
• Download (FTP): ftp://ftp.linux.ee/pub/gentoo/distfiles/distfiles/fontconfig-2.4.2.tar.gz
• Download MD5 sum: f035852f521b54677f2b5c9e2f6d54a4
• Download size: 1.2 MB
• Estimated disk space required: 11.3 MB
• Estimated build time: 0.2 SBU
Fontconfig Dependencies
Required
Optional
DocBook-utils-0.6.14
Note
If you have DocBook-utils installed and you remove the --disable-docs parameter from the configure
command below, you must have SGMLSpm-1.03ii and JadeTeX-3.13 installed also, or the Fontconfig build
will fail.
Installation of Fontconfig
Install Fontconfig by running the following commands:
./configure --prefix=/usr \
--sysconfdir=/etc --localstatedir=/var \
--disable-docs --without-add-fonts \
--with-docdir=/usr/share/doc/fontconfig-2.4.2 &&
make
246
Beyond Linux® From Scratch - Version 6.3
Command Explanations
--localstatedir=/var: This switch places the system font cache files in /var/cache/fontconfig.
--disable-docs: This switch avoids building the documentation (the release tarball includes pre-generated
documentation).
--without-add-fonts: This switch disables the automatic search for X Window System fonts which, if found,
may confuse some applications.
Configuring Fontconfig
Config Files
/etc/fonts/*, /etc/fonts/conf.avail/*, and /etc/fonts/conf.d/*
Configuration Information
The main configuration file for Fontconfig is /etc/fonts/fonts.conf. Generally you do not want to edit this
file. It will also read /etc/fonts/local.conf and any files in /etc/fonts/conf.d. To put a new font
directory in the configuration, create (or update) the /etc/fonts/local.conf file with your local information
or add a new file in /etc/fonts/conf.d. The default location of fonts in Fontconfig is:
• /usr/share/fonts
• ~/.fonts
Fontconfig also ships many example configuration files in the /etc/fonts/conf.avail directory. Symlinking
to specific files from /etc/fonts/conf.d will enable them. The default setup is generally good enough for most
users. See /etc/fonts/conf.avail/README for a description of the configuration files.
More information about configuring Fontconfig can be found in the user's manual in file:///usr/share/doc/fontconfig-2.
4.2/fontconfig-user.html.
247
Beyond Linux® From Scratch - Version 6.3
Contents
Installed Programs: fc-cache, fc-cat, fc-list, and fc-match
Installed Library: libfontconfig.{so,a}
Installed Directories: /etc/fonts, /usr/include/fontconfig, /usr/share/doc/fontconfig-2.4.2 and
/var/cache/fontconfig
Short Descriptions
fc-cache is used to create font information caches.
fc-cat is used to read font information caches.
fc-list is used to create font lists.
fc-match is used to match available fonts, or find fonts that match a given pattern.
libfontconfig.{so,a} contains functions used by the Fontconfig programs and also by other programs to
configure or customize font access.
248
Beyond Linux® From Scratch - Version 6.3
libart_lgpl-2.3.19
Introduction to libart_lgpl
The libart_lgpl package contains the libart libraries. These are useful for high-performance 2D graphics.
Package Information
• Download (HTTP): http://ftp.gnome.org/pub/gnome/sources/libart_lgpl/2.3/libart_lgpl-2.3.19.tar.bz2
• Download (FTP): ftp://ftp.gnome.org/pub/gnome/sources/libart_lgpl/2.3/libart_lgpl-2.3.19.tar.bz2
• Download MD5 sum: ac885805d1918026a18b560f4015bc66
• Download size: 302 KB
• Estimated disk space required: 5.4 MB
• Estimated build time: 0.2 SBU
Additional Downloads
• Required patch: http://www.linuxfromscratch.org/patches/blfs/6.3/libart_lgpl-2.3.19-upstream_fix-1.patch
Installation of libart_lgpl
Install libart_lgpl by running the following commands:
make install
Contents
Installed Program: libart2-config
Installed Library: libart_lgpl_2.{so,a}
Installed Directory: /usr/include/libart-2.0
Short Descriptions
libart_lgpl_2.{so,a} is used as the anti-aliased render engine for libgnomecanvas and as a graphics support
library for many other packages.
249
Beyond Linux® From Scratch - Version 6.3
librsvg-2.16.1
Introduction to librsvg
The librsvg package contains librsvg libraries and tools used to manipulate, convert and view Scalable Vector
Graphic (SVG) images.
Package Information
• Download (HTTP): http://ftp.gnome.org/pub/gnome/sources/librsvg/2.16/librsvg-2.16.1.tar.bz2
• Download (FTP): ftp://ftp.gnome.org/pub/gnome/sources/librsvg/2.16/librsvg-2.16.1.tar.bz2
• Download MD5 sum: 37e046571097ff7ce77ae6e07f096324
• Download size: 416 KB
• Estimated disk space required: 12.1 MB
• Estimated build time: 0.4 SBU
librsvg Dependencies
Required
GTK+-2.10.13 and libxml2-2.6.31
Recommended
libcroco-0.6.1 and libgsf-1.14.7
Optional
GNOME Virtual File System-2.18.1, libgnomeprintui-2.18.0, GTK-Doc-1.8, DocBook-utils-0.6.14, and
Python-2.5.2, providing a legacy wrapper interface rsvg for the newer rsvg-convert.
Installation of librsvg
Install librsvg by running the following commands:
./configure --prefix=/usr \
--sysconfdir=/etc \
--disable-mozilla-plugin &&
make
This package does not come with a test suite.
Now, as the root user:
make install
Command Explanations
--disable-mozilla-plugin: This parameter prevents building the browser plugin as Firefox and SeaMonkey
have built-in SVG render capability and don't need it.
--disable-gtk-doc: This parameter prevents the rebuilding of documentation during the make command. It
will also prevent the existing documentation in the source tree from being installed.
250
Beyond Linux® From Scratch - Version 6.3
Contents
Installed Programs: rsvg, rsvg-convert and rsvg-view
Installed Libraries: librsvg-2.{so,a}, GTK+ modules and optionally a Mozilla plugin
Installed Directories: /usr/include/librsvg-2 and /usr/share/gtk-doc/html/rsvg
Short Descriptions
rsvg is a legacy wrapper interface to rsvg-convert.
rsvg-convert is used to covert SVG images into PNG, JPEG and ICO raster images.
rsvg-view is used to view an SVG file in an X window.
librsvg-2.{so,a} libraries provide the functions to render Scalable Vector Graphics.
251
Beyond Linux® From Scratch - Version 6.3
AAlib-1.4rc5
Introduction to AAlib
AAlib is a library to render any graphic into ASCII Art.
Package Information
• Download (HTTP): http://downloads.sourceforge.net/aa-project/aalib-1.4rc5.tar.gz
• Download (FTP): ftp://ftp.ratmir.tver.ru/pub/FreeBsd/ports/distfiles/aalib-1.4rc5.tar.gz
• Download MD5 sum: 9801095c42bba12edebd1902bcf0a990
• Download size: 388 KB
• Estimated disk space required: 6.5 MB
• Estimated build time: 0.15 SBU
AAlib Dependencies
Optional
X Window System, S-Lang-2.1.3, and GPM-1.20.1
Installation of AAlib
Install AAlib by running the following commands:
make install
Contents
Installed Programs: aafire, aainfo, aalib-config, aasavefont, and aatest
Installed Library: libaa.{so,a}
Installed Directories: None
Short Descriptions
aafire is little toy of AAlib, rendering an animated fire in ASCII Art.
aainfo provides information for your current settings related to AAlib.
aalib-config provides configuration info for AAlib.
aatest shows the abilities of AAlib in a little test.
libaa.{so,a} 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.
252
Beyond Linux® From Scratch - Version 6.3
Imlib2-1.4.0
Introduction to Imlib2
Imlib2 is a graphics library for fast file loading, saving, rendering and manipulation.
Package Information
• Download (HTTP): http://downloads.sourceforge.net/enlightenment/imlib2-1.4.0.tar.gz
•
• Download MD5 sum: 69f7ee996c943142332b4c98597b095c
• Download size: 955 KB
• Estimated disk space required: 16 MB
• Estimated build time: 0.4 SBU
Imlib2 Dependencies
Required
FreeType-2.3.7, libpng-1.2.29, and libjpeg-6b
Recommended
X Window System
Optional
LibTIFF-3.8.2, giflib-4.1.4, and libid3tag
Installation of Imlib2
Install Imlib2 by running the following commands:
./configure --prefix=/usr &&
make
This package does not come with a test suite.
Now, as the root user:
make install &&
install -v -m755 -d /usr/share/doc/imlib2-1.4.0 &&
install -v -m644 doc/{*.gif,index.html} \
/usr/share/doc/imlib2-1.4.0
Command Explanations
--without-x: Add this parameter if you do not have an X Window System installed.
Contents
Installed Programs: imlib2_bumpmap, imlib2_colorspace, imlib2-config, imlib2_conv, imlib2_grab,
imlib2_poly, imlib2_show, imlib2_test, and imlib2_view
Installed Libraries: libImlib2.{so,a} and various filters and image loader modules.
Installed Directories: /usr/lib/imlib2, /usr/share/doc/imlib2-1.4.0, and /usr/share/imlib2
253
Beyond Linux® From Scratch - Version 6.3
Short Descriptions
libImlib2.{so,a} provides the functions for programs to deal with various image data formats.
254
Beyond Linux® From Scratch - Version 6.3
libexif-0.6.16
Introduction to libexif
The libexif package contains a library for parsing, editing, and saving EXIF data. Most digital cameras produce EXIF
files, which are JPEG files with extra tags that contain information about the image. All EXIF tags described in EXIF
standard 2.1 are supported.
Package Information
• Download (HTTP): http://downloads.sourceforge.net/libexif/libexif-0.6.16.tar.bz2
•
• Download MD5 sum: deee153b1ded5a944ea05d041d959eca
• Download size: 691 KB
• Estimated disk space required: 10 MB
• Estimated build time: 0.1 SBU
libexif Dependencies
Optional (to Build Documentation)
Doxygen-1.5.2 and Graphviz-2.12
Installation of libexif
Install libexif by running the following commands:
./configure --prefix=/usr \
--with-doc-dir=/usr/share/doc/libexif-0.6.16 &&
make
make install
Documentation was built and installed if you have the dependencies shown above installed. If you don't have the
dependencies installed, there is a compressed tarball in the source tree doc directory that can be unpacked into
/usr/share/doc/libexif-0.6.16.
Contents
Installed Programs: None
Installed Library: libexif.{so,a}
Installed Directory: /usr/include/libexif and /usr/share/doc/libexif-0.6.16
Short Descriptions
libexif.{so,a} contains functions used for parsing, editing, and saving EXIF data.
255
Beyond Linux® From Scratch - Version 6.3
FriBidi-0.10.8
Introduction to FriBidi
The FriBidi package is an implementation of the Unicode Bidirectional Algorithm (bidi). This is useful for supporting
Arabic and Hebrew alphabets in other packages.
Package Information
• Download (HTTP): http://fribidi.org/download/fribidi-0.10.8.tar.gz
•
• Download MD5 sum: fe6a1e370353e330bbe043bb1697d04e
• Download size: 619 KB
• Estimated disk space required: 5 MB
• Estimated build time: 0.2 SBU
Additional Downloads
• Required patch: http://www.linuxfromscratch.org/patches/blfs/6.3/fribidi-0.10.8-test_fixes-1.patch
Installation of FriBidi
Install FriBidi by running the following commands:
make install
Contents
Installed Programs: fribidi and fribidi-config
Installed Library: libfribidi.{so,a}
Installed Directory: /usr/include/fribidi
Short Descriptions
fribidi is a command-line interface to the libfribidi library and can be used to convert a
logical string to visual output.
fribidi-config is used to acquire information about the installed libfribidi library.
libfribidi.{so,a} contains functions used to implement the Unicode Bidirectional Algorithm.
256
Beyond Linux® From Scratch - Version 6.3
Poppler-0.5.4
Introduction to Poppler
The Poppler package contains a PDF rendering library and command line tools used to manipulate PDF files. This
is useful for providing PDF rendering functionality as a shared library.
Package Information
• Download (HTTP): http://poppler.freedesktop.org/poppler-0.5.4.tar.gz
•
• Download MD5 sum: 053fdfd70533ecce1a06353fa945f061
• Download size: 1.0 MB
• Estimated disk space required: 49 MB (additional 15 MB to install the encoding data package)
• Estimated build time: 1.0 SBU (includes building with all dependencies)
Additional Downloads
• Required patch: http://www.linuxfromscratch.org/patches/blfs/6.3/poppler-0.5.4-security_fixes-2.patch
• Poppler Encoding Data: http://poppler.freedesktop.org/poppler-data-0.1.tar.gz
The additional package consists of encoding files for use with Poppler. The encoding files are optional and poppler
will automatically read them if they are present. When installed, they enable Poppler to render CJK and Cyrillic
properly.
Poppler Dependencies
Required
Optional
If you're installing Poppler to support kdegraphics-3.5.9, you will need to have Qt-3.3.8b installed so that the
libpoppler-qt library is built.
Installation of Poppler
Caution
Poppler will overwrite command-line utilities and man pages previously installed by the Xpdf package.
If you prefer to keep the Xpdf versions of these files, pass the --disable-utils parameter to the
configure command below.
257
Beyond Linux® From Scratch - Version 6.3
The configure command below includes three parameters which disable various rendering back-ends. Ensure you
remove any of the parameters for which you have the corresponding dependency installed. Install Poppler by running
the following commands:
If you downloaded the additional encoding data package, install it by issuing the following command after unpacking
the tarball and changing into the newly-created package source directory (as the root user):
Command Explanations
--enable-zlib: This parameter forces the build to link with the system-installed libz library to enable
compressed PDF functionality.
--disable-cairo-output: This parameter disables building the cairo graphics backend. Remove this
parameter if you have cairo installed.
--disable-poppler-glib and --disable-gtk-test: These parameters disable building the GLib
wrapper and GTK+ test program. Remove these parameters if you have GTK+-2 installed. Note that if you plan on
building Evince-0.8.3, you must build the GLib wrapper.
Configuring Poppler
Config Files
/etc/xpdfrc
Contents
Installed Programs: See the Xpdf-3.02 program descriptions
Installed Libraries: libpoppler.{so,a}, libpoppler-glib.{so,a}, libpoppler-qt.{so,a} and
libpoppler-qt4.{so,a}
Installed Directories: /usr/include/poppler, /usr/share/doc/poppler-0.5.4, /usr/share/gtk-doc/html/poppler
and /usr/share/poppler
258
Beyond Linux® From Scratch - Version 6.3
Short Descriptions
libpoppler.{so,a} contains the API functions to render PDF files.
libpoppler-glib.{so,a} is a wrapper library used to interface the PDF rendering functions with GTK+.
libpoppler-qt.{so,a} is a wrapper library used to interface the PDF rendering functions with Qt.
libpoppler-qt4.{so,a} is a wrapper library used to interface the PDF rendering functions with Qt-4.
259
Beyond Linux® From Scratch - Version 6.3
260
Beyond Linux® From Scratch - Version 6.3
Bc-1.06
Introduction to Bc
The bc package contains an arbitrary precision numeric processing language.
Package Information
• Download (HTTP): http://ftp.gnu.org/gnu/bc/bc-1.06.tar.gz
• Download (FTP): ftp://ftp.gnu.org/gnu/bc/bc-1.06.tar.gz
• Download MD5 sum: d44b5dddebd8a7a7309aea6c36fda117
• Download size: 273 KB
• Estimated disk space required: 2.36 MB
• Estimated build time: less than 0.1 SBU (0.2 SBU if running the testsuite)
Installation of Bc
Install bc by running the following commands:
To test bc, run the commands below. There is quite a bit of output, so you may want to redirect it to a file. There are
a very small percentage of tests (10 of 12,144) that will indicate a roundoff error at the last digit.
make install
Command Explanations
sed -i '/PROTO.*readline/d' bc/scan.l: This command fixes the Readline library call.
sed -i '/flex -I8/s/8//' configure: This command fixes the Flex invocation.
sed -i '/stdlib/a #include <string.h>' lib/number.c: This command inserts a missing header.
sed -i 's/program.*save/static &/' bc/load.c: This command fixes a segfault when running bc with bc -l.
--with-readline: This option enables Readline support in interactive mode.
Contents
Installed Programs: bc and dc
Installed Libraries: None
Installed Directories: None
261
Beyond Linux® From Scratch - Version 6.3
Short Descriptions
bc is a calculator.
dc is a reverse-polish calculator.
262
Beyond Linux® From Scratch - Version 6.3
Rep-gtk-0.18
Introduction to Rep-gtk
The rep-gtk package contains a Lisp and GTK binding. This is useful for extending GTK-2 and GDK libraries with
Lisp. Starting at rep-gtk-0.15, the package contains the bindings to GTK and uses the same instructions. Both can
be installed, if needed.
Package Information
• Download (HTTP): http://downloads.sourceforge.net/rep-gtk/rep-gtk-0.18.tar.gz
•
• Download MD5 sum: 220b0d728656472c068e40823f0a3b22
• Download size: 152 KB
• Estimated disk space required: 7.7 MB
• Estimated build time: 0.18 SBU
Additional Downloads
• Required Patch: http://www.linuxfromscratch.org/patches/blfs/6.3/rep-gtk-0.18-gtk2.4-1.patch
Rep-gtk Dependencies
Required
libglade-2.6.1 and librep-0.17
Installation of Rep-gtk
Install rep-gtk by running the following commands:
make install
Contents
Installed Programs: None
Installed Libraries: Lisp bindings
Installed Directory: /usr/lib/rep/i686-pc-linux-gnu/gui/
Short Descriptions
Lisp bindings are libraries stored in /usr/lib/rep/i686-pc-linux-gnu/gui/ that assist
communication between Lisp and the GTK libraries.
263
Beyond Linux® From Scratch - Version 6.3
Compface-1.5.2
Introduction to Compface
Compface provides utilities and a library to convert from/to X-Face format, a 48x48 bitmap format used to carry
thumbnails of email authors in a mail header.
Package Information
• Download (HTTP): http://ftp.xemacs.org/pub/xemacs/aux/compface-1.5.2.tar.gz
•
• Download MD5 sum: 62f4f79c0861ad292ba3cf77b4c48319
• Download size: 47 KB
• Estimated disk space required: 520 KB
• Estimated build time: Less than 0.1 SBU
Installation of Compface
Install Compface by running the following commands:
Contents
Installed Programs: compface, uncompface and xbm2xface.pl
Installed Library: libcompface.{so,a}
Installed Directories: None
Short Descriptions
compface is a filter for generating highly compressed representations of 48x48x1 face image files.
uncompface is an inverse filter which performs an inverse transformation with no loss of data.
xbm2xface.pl is a script to generate xfaces.
libcompface.{so,a} allows the compression and decompression algorithms to be used in other programs
such as MTAs.
264
Beyond Linux® From Scratch - Version 6.3
ImageMagick-6.3.5-10
Introduction to ImageMagick
ImageMagick is a collection of tools and libraries to read, write, and manipulate an image in various image formats.
Image processing operations are available from the command line. Bindings to various programming languages are
also available.
Package Information
• Download (HTTP): http://downloads.sourceforge.net/imagemagick/ImageMagick-6.3.5-10.tar.bz2
• Download (FTP): ftp://ftp.imagemagick.net/pub/ImageMagick/legacy/ImageMagick-6.3.5-10.tar.bz2
• Download MD5 sum: 0e638f94ab70272a645b4d6ae06201d8
• Download size: 7.5 MB
• Estimated disk space required: 211 MB (additional 75 MB if you run the Image::Magick demo)
• Estimated build time: 4.2 SBU (Additional 1.8 SBU to run the test suite)
The ImageMagick source releases are updated frequently and the version shown above may no longer be available
from the download locations. You can download a more recent version and use the existing BLFS instructions to
install it. Chances are that it will work just fine, but this has not been tested by the BLFS team. If the package version
shown above is not available from the locations shown above, you can download it from the BLFS package server at
http://anduin.linuxfromscratch.org/sources/BLFS/6.3/i/ImageMagick-6.3.5-10.tar.bz2.
ImageMagick Dependencies
Recommended
X Window System
The optional dependencies listed below should be installed if you need support for the specific format or the
conversion tool the dependency provides. Many of the dependencies' capabilities and uses are described in the
“MAGICK DELEGATES” section of the README.txt file located in the source tree. Additional information about
the dependencies can be found in the Install-unix.txt file located in the source tree as well as issuing the
./configure --help command. A summary of this information, as well as some additional notes can be viewed on-line
at http://www.imagemagick.org/script/advanced-unix-installation.php.
265
Beyond Linux® From Scratch - Version 6.3
Installation of ImageMagick
Install Imagemagick by running the following commands:
sed -i -e "s/\xc2\xae/\\\[rg\]/g" \
-e "s/B...'e./Be/" utilities/ImageMagick.1.in &&
./configure --prefix=/usr --with-modules &&
make
To test the results, issue: make check. Note that some of the tests may fail due to system and/or build parameter
settings.
Now, as the root user:
make install
Command Explanations
sed -i -e "..." -e "...": One man page is installed with character encoding not displayable using the Man-db package.
This command changes the offending bytes to characters man can properly display.
--with-modules: Enables support for dynamically loadable modules.
--with-gslib=/usr/lib: Enables support to use the Ghostscript shared library.
--with-fpx: Enables support to use the FlashPix library.
--with-windows-font-dir=<Some/Directory>: This option specifies the directory where the Windows
CoreFonts are installed.
The options and parameters listed above are the only ones you should have to pass to the configure script to activate
all the delegate dependencies. All other dependencies will be automatically detected and utilized in the build if they
are installed.
Contents
Installed Programs: animate, compare, composite, conjure, convert, display, identify, import,
Magick-config, Magick++-config, mogrify, montage, stream, and Wand-config
Installed Libraries: libMagick.{so,a}, libMagick++.{so,a}, libWand.{so,a}, the Magick.so Perl module,
and numerous plugin modules
Installed Directories: /usr/include/Magick++, /usr/include/magick, /usr/include/wand,
/usr/lib/ImageMagick-6.3.5,
/usr/lib/perl5/site_perl/5.8.8/i686-linux/auto/Image/Magick,
/usr/share/ImageMagick-6.3.5 and /usr/share/doc/ImageMagick-6.3.5
Short Descriptions
animate animates a sequence of images.
compare compares an image to a reconstructed image.
266
Beyond Linux® From Scratch - Version 6.3
267
Beyond Linux® From Scratch - Version 6.3
Hd2u-1.0.1
Introduction to Hd2u
The hd2u package contains an any to any text format converter.
Package Information
• Download (HTTP): http://www.megaloman.com/~hany/_data/hd2u/hd2u-1.0.1.tgz
•
• Download MD5 sum: dbab0f0c3ee473880ee1fc9740e43515
• Download size: 54 KB
• Estimated disk space required: 364 KB
• Estimated build time: 0.1 SBU
Hd2u Dependencies
Required
popt-1.10.4
Installation of Hd2u
Install hd2u by running the following commands:
make install
Contents
Installed Program: dos2unix
Installed Libraries: None
Installed Directories: None
Short Descriptions
dos2unix converts text between various OS formats (such as converting from DOS format to Unix).
268
Beyond Linux® From Scratch - Version 6.3
GTK-Doc-1.8
Introduction to GTK-Doc
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 any pre-built documentation to your system.
Package Information
• Download (HTTP): http://ftp.gnome.org/pub/gnome/sources/gtk-doc/1.8/gtk-doc-1.8.tar.bz2
• Download (FTP): ftp://ftp.gnome.org/pub/gnome/sources/gtk-doc/1.8/gtk-doc-1.8.tar.bz2
• Download MD5 sum: e61595df21431db28c83fe4c7d4a4fa8
• Download size: 186 KB
• Estimated disk space required: 2 MB
• Estimated build time: less than 0.1 SBU
GTK-Doc Dependencies
Required
libxslt-1.1.22, DocBook XML DTD-4.5, and DocBook XSL Stylesheets-1.71.1
Optional
pkg-config-0.22, ScrollKeeper-0.3.14, OpenJade-1.3.2, DocBook SGML DTD-4.5, and DocBook DSSSL
Stylesheets-1.79
Installation of GTK-Doc
Install GTK-Doc by running the following commands:
./configure --prefix=/usr --localstatedir=/var/lib &&
make
This package does not come with a test suite.
Now, as the root user:
make install
Command Explanations
--localstatedir=/var/lib: This parameter is used so that all ScrollKeeper files are installed in, and the
ScrollKeeper database is properly updated in /var/lib/scrollkeeper instead of some files being installed in
$GNOME_PREFIX/var/scrollkeeper.
Contents
Installed Programs: gtkdocize, gtkdoc-fixxref, gtkdoc-mkdb, gtkdoc-mkhtml, gtkdoc-mkman,
gtkdoc-mktmpl, gtkdoc-scan, gtkdoc-scangobj, and gtkdoc-scanobj
Installed Libraries: None
Installed Directories: The following subdirectories of /usr/share/: doc/gtk-doc-1.8,
gnome/help/gtk-doc-manual, gtk-doc/data and {omf,sgml}/gtk-doc
269
Beyond Linux® From Scratch - Version 6.3
Short Descriptions
gtkdoc* these are all Perl scripts used by package Makefile scripts to generate documentation for the package
being built.
270
Beyond Linux® From Scratch - Version 6.3
ScrollKeeper-0.3.14
Introduction to ScrollKeeper
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.
Package Information
• Download (HTTP): http://ftp.gnome.org/pub/gnome/sources/scrollkeeper/0.3/scrollkeeper-0.3.14.tar.bz2
• Download (FTP): ftp://ftp.gnome.org/pub/gnome/sources/scrollkeeper/0.3/scrollkeeper-0.3.14.tar.bz2
• Download MD5 sum: b175e582a6cec3e50a9de73a5bb7455a
• Download size: 546 KB
• Estimated disk space required: 12 MB
• Estimated build time: 0.1 SBU
ScrollKeeper Dependencies
Required
libxslt-1.1.22, DocBook XML DTD-4.5, and XML::Parser-2.34
Optional
intltool-0.35.5
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/kde-3.5.9/share/omf:\
/opt/gnome-2.18.3/share/omf &&
make
This package does not come with a test suite.
Now, as the root user:
make install
Command Explanations
--sysconfdir=/etc: This switch puts the configuration files in /etc instead of /usr/etc.
--localstatedir=/var: This switch puts ScrollKeeper's database directory in /var/lib/scrollkeeper.
--disable-static: This switch prevents the static library from being built.
271
Beyond Linux® From Scratch - Version 6.3
--with-omfdirs=...: This switch defines the locations of OMF files for ScrollKeeper. Change the locations
if you have KDE and/or GNOME-2 installed in a prefix other than the ones shown. This information is stored in
/etc/scrollkeeper.conf and can be updated manually, if necessary.
Configuring ScrollKeeper
Config Files
/etc/scrollkeeper.conf
Configuration Information
The configuration file sets the OMF_DIR variable to the location of all of the omf directories in the system. This was
set in the configure command so no further action is needed until another OMF directory is created.
Contents
Installed Programs: scrollkeeper-config, scrollkeeper-extract, scrollkeeper-gen-seriesid,
scrollkeeper-get-cl, scrollkeeper-get-content-list,
scrollkeeper-get-extended-content-list, scrollkeeper-get-index-from-docpath,
scrollkeeper-get-toc-from-docpath, scrollkeeper-get-toc-from-id, scrollkeeper-install,
scrollkeeper-preinstall, scrollkeeper-rebuilddb, scrollkeeper-uninstall, and
scrollkeeper-update
Installed Library: libscrollkeeper.so
Installed Directories: /usr/share/doc/scrollkeeper-0.3.14, /usr/share/{omf, {,xml/}scrollkeeper}, and
/var/lib/scrollkeeper
Short Descriptions
ScrollKeeper utility programs The ScrollKeeper utility programs and scripts listed above are for
performing installation, building, getting and updating table of contents
files.
libscrollkeeper.so provides the API necessary for help browsers to interact with
documentation written to utilize ScrollKeeper.
272
Beyond Linux® From Scratch - Version 6.3
Intltool-0.35.5
Introduction to Intltool
The intltool package contains an internationalization tool. This is useful for extracting translatable strings
from source files, collecting the extracted strings with messages from traditional source files (<source
directory>/<package>/po) and merging the translations into .xml, .desktop and .oaf files.
Package Information
• Download (HTTP): http://ftp.gnome.org/pub/gnome/sources/intltool/0.35/intltool-0.35.5.tar.bz2
• Download (FTP): ftp://ftp.gnome.org/pub/gnome/sources/intltool/0.35/intltool-0.35.5.tar.bz2
• Download MD5 sum: f52d5fa7f128db94e884cd21dd45d2e2
• Download size: 132 KB
• Estimated disk space required: 1.5 MB
• Estimated build time: less than 0.1 SBU
Intltool Dependencies
Required
XML::Parser-2.34
Installation of Intltool
Install intltool by running the following commands:
Contents
Installed Programs: intltoolize, intltool-extract, intltool-merge, intltool-prepare, and intltool-update
Installed Libraries: None
Installed Directories: /usr/share/intltool and /usr/share/doc/intltool-0.35.5
Short Descriptions
intltoolize prepares a package to use intltool.
intltool-extract generates header files that can be read by gettext.
intltool-merge merges translated strings into various file types.
intltool-prepare updates pot files and merges them with translation files.
273
Beyond Linux® From Scratch - Version 6.3
intltool-update updates the po template files and merges them with the translations.
274
Beyond Linux® From Scratch - Version 6.3
Screen-4.0.3
Introduction to Screen
Screen is a terminal multiplexor that runs several separate processes, typically interactive shells, on a single physical
character-based terminal. Each virtual terminal emulates a DEC VT100 plus several ANSI X3.64 and ISO 2022
functions and also provides configurable input and output translation, serial port support, configurable logging,
multi-user support, and many character encodings, including UTF-8. Screen sessions can be detached and resumed
later on a different terminal.
Package Information
• Download (HTTP): http://ftp.uni-erlangen.de/pub/utilities/screen/screen-4.0.3.tar.gz
• Download (FTP): ftp://ftp.uni-erlangen.de/pub/utilities/screen/screen-4.0.3.tar.gz
• Download MD5 sum: 8506fd205028a96c741e4037de6e3c42
• Download size: 821 KB
• Estimated disk space required: 5.8 MB
• Estimated build time: 0.2 SBU
Screen Dependencies
Optional
Linux-PAM-0.99.10.0
Installation of Screen
Install Screen by running the following commands:
Command Explanations
--with-socket-dir=/var/run/screen: This option places the per-user sockets in a standard location.
--with-sys-screenrc=/etc/screenrc: This option places the global screenrc file in /etc.
sed -i -e "s%/usr/local/etc/screenrc%/etc/screenrc%" {etc,doc}/*: This command corrects the configuration and
documentation files to the location that is used here for the global screenrc file.
275
Beyond Linux® From Scratch - Version 6.3
Configuring Screen
Config Files
/etc/screenrc and ~/.screenrc
Configuration Information
You may want to look at the example configuration file that was installed and customize it for your needs.
Contents
Installed Program: screen
Installed Libraries: None
Installed Directory: /var/run/screen
Short Descriptions
screen is a terminal multiplexor with VT100/ANSI terminal emulation.
276
Beyond Linux® From Scratch - Version 6.3
HTML Tidy-cvs_20070326
Introduction to HTML Tidy
The HTML Tidy package contains a command line tool and libraries used to read HTML, XHTML and XML files
and write cleaned up markup. It detects and corrects many common coding errors and strives to produce visually
equivalent markup that is both W3C compliant and compatible with most browsers.
Package Information
• Download (HTTP): http://anduin.linuxfromscratch.org/files/BLFS/6.3/sources/tidy-cvs_20070326.tar.bz2
•
• Download MD5 sum: 468bfaa5cf917a8ecbe7834c13a61376
• Download size: 872 KB
• Estimated disk space required: 15 MB
• Estimated build time: 0.2 SBU
HTML Tidy tarballs are no longer generated by the maintainers. To build from source, the HTML Tidy developers
recommend using current CVS. The source tarball shown above was created by the BLFS team by pulling a CVS
version and generating the autotool components. BLFS made no changes to the existing source files.
Configuration Information
The default configuration options can be set in the file defined in $HTML_TIDY. Additional configuration options
can be passed to tidy via command line parameters or the -config <file> parameter.
277
Beyond Linux® From Scratch - Version 6.3
Contents
Installed Programs: tab2space and tidy
Installed Library: libtidy.{so,a}
Installed Directory: /usr/share/doc/tidy-051020
Short Descriptions
tab2space is a utility to expand tabs and ensure consistent line endings.
tidy validates, corrects, and pretty-prints HTML files.
libtidy.{so,a} libraries provide the HTML Tidy API functions to tidy and can also be called by other
programs.
278
Beyond Linux® From Scratch - Version 6.3
desktop-file-utils-0.13
Introduction to desktop-file-utils
The desktop-file-utils package contains command line utilities for working with desktop entries. These utilities are
used by GNOME-2 and other applications to manipulate the MIME-types application databases and help adhere to
the Desktop Entry Specification.
Package Information
• Download (HTTP): http://freedesktop.org/software/desktop-file-utils/releases/desktop-file-utils-0.13.tar.gz
•
• Download MD5 sum: 2ee84d0de753d4052011714c20d6efae
• Download size: 347 KB
• Estimated disk space required: 3 MB
• Estimated build time: less than 0.1 SBU
desktop-file-utils Dependencies
Required
GLib-2.12.12
Optional
Emacs-22.1
Installation of desktop-file-utils
Install desktop-file-utils by running the following commands:
./configure --prefix=/usr &&
make
This package does not come with a test suite.
Now, as the root user:
make install
Configuring desktop-file-utils
Configuration Information
The XDG Base Directory specification defines the standard locations for applications to place data and configuration
files. These files can be used, for instance, to define the menu structure and menu items in a desktop environment.
The default location for configuration files to be installed is /etc/xdg, and the default locations for data files are
/usr/local/share and /usr/share. These locations can be extended with the environment variables XDG_
CONFIG_DIRS and XDG_DATA_DIRS, respectively. The GNOME, KDE and XFCE environments respect respect
these settings. Update the XDG_DATA_DIRS (if necessary) and XDG_CONFIG_DIRS environment variables so that
the additional MIME-types application databases and desktop menu files are properly maintained and discovered by
adding the following to the system-wide or personal profile:
279
Beyond Linux® From Scratch - Version 6.3
For GNOME:
XDG_DATA_DIRS=$GNOME_PREFIX/share:/usr/local/share:/usr/share
XDG_CONFIG_DIRS=/etc/gnome/2.18.3/xdg:/etc/xdg
export XDG_DATA_DIRS XDG_CONFIG_DIRS
For KDE:
XDG_DATA_DIRS=$KDE_PREFIX/share:/usr/local/share:/usr/share
XDG_CONFIG_DIRS=/etc/kde/xdg:/etc/xdg
export XDG_DATA_DIRS XDG_CONFIG_DIRS
For XFCE, the default locations should be appropriate if the instructions in the BLFS book were followed.
When a package installs a .desktop file to a location in one of the base data directories, the
database that maps MIME-types to available applications can be updated. For instance, the cache file at
/usr/share/applications/mimeinfo.cache can be rebuilt by executing the following command as the
root user:
update-desktop-database /usr/share/applications
Contents
Installed Programs: desktop-file-install, desktop-file-validate, and update-desktop-database
Installed Libraries: None
Installed Directories: None
Short Descriptions
desktop-file-install is used to install a new, or modify an existing desktop file entry. It is also used
to rebuild or modify the MIME-types application database.
desktop-file-validate is used to verify the integrity of a desktop file.
update-desktop-database is used to update the MIME-types application database.
280
Beyond Linux® From Scratch - Version 6.3
XScreenSaver-5.03
Introduction to XScreenSaver
The XScreenSaver is a modular screen saver and locker for the X Window System. It is highly customizable and
allows the use of any program that can draw on the root window as a display mode. The purpose of XScreenSaver is
to display pretty pictures on your screen when it is not in use, in keeping with the philosophy that unattended monitors
should always be doing something interesting, just like they do in the movies. However, XScreenSaver can also be
used as a screen locker, to prevent others from using your terminal while you are away.
There may be a more recent release available from the XScreenSaver home page. You can check http://www.jwz.
org/xscreensaver/ and probably use the existing BLFS instructions. Note that versions other than the one shown in
the download URLs have not been tested in a BLFS environment.
Package Information
• Download (HTTP): http://anduin.linuxfromscratch.org/sources/BLFS/6.3/x/xscreensaver-5.03.tar.gz
• Download (FTP): ftp://anduin.linuxfromscratch.org/BLFS/6.3/x/xscreensaver-5.03.tar.gz
• Download MD5 sum: 367b0397132102faf43e71e27bbdc181
• Download size: 5.4 MB
• Estimated disk space required: 129 MB
• Estimated build time: 1.1 SBU
XScreenSaver Dependencies
Required
bc-1.06 and libglade-2.6.1 (alternatively LessTif-0.95.0 but not recommended)
Optional
libjpeg-6b, libgnome-2.18.0, GLE, Netpbm, XDaliClock, Linux-PAM-0.99.10.0, MIT Kerberos V5-1.6 (built with
Kerberos V4 backwards compatibility), and krb4 and Heimdal-1.1 (Kerberos authentication requires having Kerberos
V4 and V5 on the system)
Installation of XScreenSaver
Install XScreenSaver by running the following commands:
make install
Command Explanations
--with-setuid-hacks: This switch allows some demos to be installed setuid root which is needed in order
to ping other hosts.
281
Beyond Linux® From Scratch - Version 6.3
Configuring XScreenSaver
Config Files
/etc/X11/app-defaults/XScreenSaver, ~/.xscreensaver and /etc/pam.d/xscreensaver
or /etc/pam.conf
Contents
Installed Programs: xscreensaver, xscreensaver-command, xscreensaver-demo, xscreensaver-getimage,
xscreensaver-getimage-file, xscreensaver-getimage-video, xscreensaver-gl-helper, and
xscreensaver-text
Installed Libraries: None
Installed Directories: /usr/lib/xscreensaver and /usr/share/xscreensaver
Short Descriptions
xscreensaver is a screen saver and locker daemon.
xscreensaver-command controls a running xscreensaver process by sending it client messages.
xscreensaver-demo is a graphical front-end for setting the parameters used by the background
xscreensaver daemon.
xscreensaver-getimage is a helper program for the xscreensaver modules that manipulate images.
xscreensaver-getimage-file is a helper program for the xscreensaver modules that manipulate images.
xscreensaver-getimage-video is a helper program for the xscreensaver modules that manipulate images.
xscreensaver-gl-helper is a helper program for the xscreensaver OpenGL modules.
xscreensaver-text prints some text to stdout, for use by screen savers.
282
Beyond Linux® From Scratch - Version 6.3
pilot-link-0.12.2
Introduction to pilot-link
The pilot-link package provides a suite of tools containing a series of conduits, libraries, and language bindings for
moving information to and from your Palm device and your desktop or server/workstation system, as well as across
a network.
Package Information
• Download (HTTP): http://downloads.pilot-link.org/pilot-link-0.12.2.tar.bz2
• Download (FTP): ftp://ftp.linux.ee/pub/gentoo/distfiles/distfiles/pilot-link-0.12.2.tar.bz2
• Download MD5 sum: c1f4db8f32a2ee916fedb9a2dac8aa26
• Download size: 964 KB
• Estimated disk space required: 20 MB
• Estimated build time: 0.4 SBU
Additional Downloads
• Required patch: http://www.linuxfromscratch.org/patches/blfs/6.3/pilot-link-0.12.2-bindings_fix-1.patch
pilot-link Dependencies
Optional
libpng-1.2.29, popt-1.10.4, libusb-0.1.12, JDK-6 Update 5, Tcl-8.4.18, Python-2.5.2, BlueZ, and Electric Fence
Kernel Configuration
You may need to configure the “USB_SERIAL_VISOR” device into the kernel before your system can communicate
with your Palm device. Add this device by enabling the following kernel parameter setting and rebuilding the kernel
(and modules, if applicable):
Device Drivers:
USB support:
USB Serial Converter support:
USB Handspring Visor / Palm m50x / Sony Client Driver
For additional information about connecting your USB Palm device, see: http://www.pilot-link.org/README.usb.
Installation of pilot-link
Install pilot-link by running the following commands:
patch -Np1 -i ../pilot-link-0.12.2-bindings_fix-1.patch &&
./configure --prefix=/usr \
--enable-threads \
--enable-conduits \
--with-perl &&
make
To test the results, issue: make check.
283
Beyond Linux® From Scratch - Version 6.3
Command Explanations
--enable-threads: This parameter is required to link the threading library into the build.
--enable-conduits: This parameter is required to build the userspace programs. Omit it if you only need the
pilot-link libraries.
--with-perl: This parameter is required to build the Perl bindings.
--with-java --with-tcl=/usr/lib --with-python: Use any or all of these options to enable the
respective language bindings desired.
Contents
Installed Programs: pilot-650foto, pilot-addresses, pilot-clip, pilot-csd, pilot-debugsh, pilot-dedupe,
pilot-dlpsh, pilot-file, pilot-foto, pilot-getram, pilot-getrom, pilot-getromtoken,
pilot-hinotes, pilot-ietf2datebook, pilot-install-datebook, pilot-install-expenses,
pilot-install-hinote, pilot-install-memo, pilot-install-netsync, pilot-install-todo,
pilot-install-todos, pilot-install-user, pilot-memos, pilot-nredir, pilot-read-expenses,
pilot-read-ical, pilot-read-notepad, pilot-read-palmpix, pilot-read-screenshot,
pilot-read-todos, pilot-read-veo, pilot-reminders, pilot-schlep, pilot-sync-plan,
pilot-treofoto, pilot-undelete, pilot-wav, pilot-xfer and optionally, pitclsh
Installed Libraries: libjpisock.so JDK library, libpitcl.{so,a} Tcl library, _pisock.so Python module and
Pilot.so Perl module
Installed Bindings: /usr/lib/perl5/site_perl/5.8.8/i686-linux/auto/PDA, /usr/share/doc/pilot-link-0.12.2
and/usr/share/pilot-link
Short Descriptions
pilot-link programs and utilities Describing the functionality of each pilot-link program and
utility would take several pages. Instead, after you've installed
the package, review the pilot-link man page (man pilot-link).
If you wish to review before installing the package, unpack the
tarball and issue man doc/man/pilot-link.7.in.
284
Beyond Linux® From Scratch - Version 6.3
unixODBC-2.2.12
Introduction to unixODBC
The unixODBC package is an Open Source ODBC (Open DataBase Connectivity) sub-system and an ODBC SDK for
Linux, Mac OSX, and UNIX. ODBC is an open specification for providing application developers with a predictable
API with which to access data sources. Data sources include SQL Servers and any data source with an ODBC Driver.
unixODBC contains the following components used to assist with the manipulation of ODBC data sources: a driver
manager, an installer library and command line tool, command line tools to help install a driver and work with SQL,
drivers and driver setup libraries and a suite of graphical tools used to administer ODBC, test drivers and browse
data sources.
Package Information
• Download (HTTP): http://www.unixodbc.org/unixODBC-2.2.12.tar.gz
• Download (FTP): ftp://ftp.linux.ee/pub/gentoo/distfiles/distfiles/unixODBC-2.2.12.tar.gz
• Download MD5 sum: 9a116aad4059c31d231b626ffdf1869a
• Download size: 2.7 MB
• Estimated disk space required: 101 MB
• Estimated build time: 3.5 SBU (includes building the GUI tools)
unixODBC Dependencies
Optional
Qt-3.3.8b (required to build the GUI tools), Pth-2.0.7, and Mini SQL
Note
There is a circular dependency with Qt and unixODBC. If you need to build the Qt unixODBC plugin
module, you will have to build and install unixODBC once without the GUI tools to satisfy the Qt build.
Then, after Qt has been installed, you'll need to build and install unixODBC again if you wish to build
the GUI tools.
Installation of unixODBC
Install unixODBC by running the following commands:
./configure --prefix=/usr \
--sysconfdir=/etc/unixodbc \
--enable-fdb \
--disable-gui &&
make
285
Beyond Linux® From Scratch - Version 6.3
Command Explanations
--enable-fdb: This parameter enables support for file-based data access.
--disable-gui: This parameter disables building the GUI tools. Remove it if you have Qt installed and wish
to build the GUI tools.
Configuring unixODBC
Config Files
/etc/unixodbc/*
Configuration Information
The files in /etc/unixodbc are meant to be configured by the system administrator (or the ODBC site
administrator if appropriate privileges are granted to /etc/unixodbc). These files are not meant to be directly
edited. The ODBC installer library is responsible for reading and writing the unixODBC config files.
Unfortunately, there are no man or info pages for the various programs available in the unixODBC
package. Along with the information in the “Short Descriptions” below and the documentation installed in
/usr/share/doc/unixODBC-2.2.12, there are many README files throughout the source tree where the
use and functionality of the programs can be found. Additionally, you can use the parameter -? with the non-GUI
tools for syntax and usage information. Lastly, the unixODBC web site at http://www.unixodbc.org/ has very good
information.
Contents
Installed Programs: DataManager, DataManagerII, ODBCConfig, dltest, isql, iusql, odbc_config, odbcinst
and odbctest
Installed Libraries: libboundparam.so, libesoobS.so, libgtrtst.so, libmimerS.so, libnn.so, libodbc.so,
libodbccr.so, libodbcdrvcfg1S.so, libodbcdrvcfg2S.so, libodbcinst.so, libodbcinstQ.so,
libodbcminiS.so, libodbcmyS.so, libodbcnnS.so, libodbcpsql.so, libodbcpsqlS.so,
libodbctxt.so, libodbctxtS.so, liboplodbcS.so, liboraodbcS.so, libsapdbS.so, libtdsS.so
and libtemplate.so
Installed Directories: /etc/unixodbc and /usr/share/doc/unixODBC-2.2.12
Short Descriptions
DataManager is a graphical program which can be used to browse/explore ODBC data sources.
DataManagerII is an enhanced version of DataManager.
286
Beyond Linux® From Scratch - Version 6.3
ODBCConfig is a graphical program used to make configuration of ODBC data sources extremely easy.
dltest is a utility used to check a share library to see if it can be loaded and if a given symbol exists in it.
isql is a utility which can be used to submit SQL to a data source and to format/output results. It
can be used in batch or interactive mode.
iusql provides the same functionality as the isql program.
odbc_config is used to find out details about the installation of the unixODBC package.
odbcinst is a utility created for install script/RPM writers. It is a command line interface to key
functionality in the libodbcinst library. It does not copy any files (i.e., libraries) but it will
modify the ODBC System Information for the user.
odbctest is a graphical program used to test the ODBC API.
287
Beyond Linux® From Scratch - Version 6.3
Graphviz-2.12
Introduction to Graphviz
The Graphviz package contains graph visualization software. Graph visualization is a way of representing structural
information as diagrams of abstract graphs and networks. Graphviz has several main graph layout programs. It also
has web and interactive graphical interfaces, auxiliary tools, libraries, and language bindings.
The Graphviz layout programs take descriptions of graphs in a simple text language, and creates diagrams in several
useful formats such as images and SVG for web pages, Postscript for inclusion in PDF or other documents, or as
objects displayed in an interactive graph browser. (Graphviz also supports GXL, an XML dialect.) In practice, graphs
are usually generated from external data sources, but they can also be created and edited manually, either as raw text
files or within a graphical editor. (Graphviz was not intended to be a Visio replacement, so it would probably be
frustrating to try to use it that way.)
This package is useful for automatic graph drawing which has many important applications in software engineering,
database and web design, networking, and in visual interfaces for many other domains. Graphviz has many useful
features for concrete diagrams, such as options for colors, fonts, tabular node layouts, line styles, hyperlinks, and
custom shapes.
Package Information
• Download (HTTP): http://www.graphviz.org/pub/graphviz/ARCHIVE/graphviz-2.12.tar.gz
• Download (FTP): ftp://ftp.linux.ee/pub/gentoo/distfiles/distfiles/graphviz-2.12.tar.gz
• Download MD5 sum: e5547bc0ec47943c72f5c3e2b5dff58f
• Download size: 4.6 MB
• Estimated disk space required: 102 MB
• Estimated build time: 1.8 SBU
Additional Downloads
• Required patch: http://www.linuxfromscratch.org/patches/blfs/6.3/graphviz-2.12-gd_fixes-1.patch
Graphviz Dependencies
Optional
pkg-config-0.22, expat-2.0.1, libpng-1.2.29, libjpeg-6b, FreeType-2.3.7, Fontconfig-2.4.2, X Window System,
Pango-1.16.4 (built with cairo support), GTK+-2.10.13, libgnomeui-2.18.1, libglade-2.6.1, Tcl-8.4.18, Tk-8.4.18, GD
Library, and Electric Fence
Installation of Graphviz
If you wish to compile the Java language bindings, you will need to supply the path to the Java headers with the
following command:
export CPPFLAGS="$CPPFLAGS -I$JAVA_HOME/include -I$JAVA_HOME/include/linux"
288
Beyond Linux® From Scratch - Version 6.3
Configuring Graphviz
Config Files
/usr/lib/graphviz/config
Configuration Information
There are no specific configuration requirements for Graphviz. You may consider installing the additional plugins and
tools available from the download page at http://www.graphviz.org/Download_source.php for additional capabilities.
If additional plugins are installed, you can run dot_static -c (as the root user) to update the config file in
/usr/lib/graphviz.
Contents
Installed Programs: acyclic, bcomps, ccomps, circo, dijkstra, dot, dot2gxl, dot_static, dotty, fdp, gc,
gvcolor, gvpack, gvpr, gxl2dot, lefty, lneato, nop, prune, sccmap, tred, twopi and
unflatten
Installed Libraries: libagraph.{so,a}, libcdt.{so,a}, libexpr.{so,a}, libgraph.{so,a}, libpack.{so,a},
libpathplan.{so,a}, additional support libraries and language bindings
Installed Directories: /usr/include/graphviz, /usr/lib/graphviz and /usr/share/graphviz
Short Descriptions
acyclic is a filter that takes a directed graph as input and outputs a copy of the graph with
sufficient edges reversed to make the graph acyclic. The reversed edge inherits all of
the attributes of the original edge.
bcomps decomposes graphs into their biconnected components, printing the components to
standard output.
ccomps decomposes graphs into their connected components, printing the components to
standard output.
circo draws graphs using a circular layout. The tool identifies biconnected components and
draws the nodes of the component on a circle. The block-cutpoint tree is then laid
289
Beyond Linux® From Scratch - Version 6.3
out using a recursive radial algorithm. Edge crossings within a circle are minimized
by placing as many edges on the circle's perimeter as possible. In particular, if the
component is outerplanar, the component will have a planar layout.
dijkstra reads a stream of graphs and for each computes the distance of every node from
sourcenode.
dot draws directed graphs. It works well on DAGs and other graphs that can be drawn as
hierarchies. It reads attributed graph files and writes drawings. By default, the output
format dot is the input file with layout coordinates appended.
dot2gxl converts between graphs represented in GXL and in the DOT language. Unless a
conversion type is specified using a flag, gxl2dot will deduce the type of conversion
from the suffix of the input file, a .dot suffix causing a conversion from DOT to GXL,
and a .gxl suffix causing a conversion from GXL to DOT.
dot_static is a version of dotthat has all the Graphviz libraries compiled statically.
dotty is a graph editor for the X Window System. It may be run as a standalone editor, or as
a front end for applications that use graphs. It can control multiple windows viewing
different graphs.
fdp draws undirected graphs using a “spring” model. It relies on a force-directed approach
in the spirit of Fruchterman and Reingold.
gc is a graph analogue to wc in that it prints to standard output the number of nodes, edges,
connected components or clusters contained in the input files. It also prints a total count
for all graphs if more than one graph is given.
gvcolor is a filter that sets node colors from initial seed values. Colors flow along edges from
tail to head, and are averaged (as HSB vectors) at nodes. The graph must already have
been processed by dot.
gvpack reads in a stream of graphs, combines the graphs into a single layout, and produces a
single graph serving as the union of the input graphs. The input graphs must be in dot
format, and must have all necessary layout information.
gvpr is a graph stream editor inspired by awk. It copies input graphs to its output, possibly
transforming their structure and attributes, creating new graphs, or printing arbitrary
information.
gxl2dot converts between graphs represented in GXL and in the DOT language. Unless a
conversion type is specified using a flag, gxl2dot will deduce the type of conversion
from the suffix of the input file, a .dot suffix causing a conversion from DOT to GXL,
and a .gxl suffix causing a conversion from GXL to DOT.
lefty is a two-view graphics editor for technical pictures.
lneato is a graph editor for the X Window System. It may be run as a standalone editor, or as
a front end for applications that use graphs. It can control multiple windows viewing
different graphs.
nop reads a stream of graphs and prints each in pretty-printed (canonical) format on stdout.
If no files are given, it reads from stdin.
prune reads directed graphs in the same format used by dot and removes subgraphs rooted at
nodes specified on the command line via options. These nodes themselves will not be
290
Beyond Linux® From Scratch - Version 6.3
removed, but can be given attributes so that they can be easily located by a graph stream
editor such as gpr. prune correctly handles cycles, loops and multi-edges.
sccmap decomposes digraphs into strongly connected components and an auxiliary map of
the relationship between components. In this map, each component is collapsed into
a node. The resulting graphs are printed to standard out. The number of nodes, edges
and strongly connected components are printed to standard error. sccmap is a way of
partitioning large graphs into more manageable pieces.
tred computes the transitive reduction of directed graphs, and prints the resulting graphs to
standard output. This removes edges implied by transitivity. Nodes and subgraphs are
not otherwise affected. The “meaning” and validity of the reduced graphs is application
dependent. tred is particularly useful as a preprocessor to dot to reduce clutter in dense
layouts.
twopi draws graphs using a radial layout. Basically, one node is chosen as the center and put at
the origin. The remaining nodes are placed on a sequence of concentric circles centered
about the origin, each a fixed radial distance from the previous circle.
unflatten is a preprocessor to dot that is used to improve the aspect ratio of graphs having many
leaves or disconnected nodes. The usual layout for such a graph is generally very wide
or tall. unflatten inserts invisible edges or adjusts the minlen on edges to improve layout
compaction.
libagraph.{so,a} supports graph programming by maintaining graphs in memory and reading and writing
graph files. Graphs, nodes and edges may be attributed with programmer-defined
records and string name-value pairs. Graphs are composed of nodes, edges, and
nested subgraphs. Internally, libagraph depends extensively on libcdt (formerly
libdict) for set representation.
libcdt.{so,a} manages run-time dictionaries using standard container data types: unordered
set/multiset, ordered set/multiset, list, stack, and queue.
libexpr.{so,a} is a C-like expression library.
libgraph.{so,a} maintains directed and undirected attributed graphs in memory and reads and writes
graph files. Graphs are composed of nodes, edges, and nested subgraphs. A subgraph
may contain any nodes and edges of its parents, and may be passed to any libgraph
function taking a graph pointer, except the three that create new attributes (where a main
graph is required).
libpack.{so,a} supports the use of connected components in the context of laying out graphs using
other Graphviz libraries. One set of functions can be used to take a single graph and
break it apart into connected components. A complementary set of functions takes a
collection of graphs (not necessarily components of a single graph) which have been
laid out separately, and packs them together moderately tightly. The packing is done
using the polyomino algorithm of K. Freivalds et al.
libpathplan.{so,a} contains functions to find the shortest path between two points in a simple polygon.
291
Beyond Linux® From Scratch - Version 6.3
xterm-231
Introduction to xterm
xterm is a terminal emulator for the X Window System.
Package Information
•
• Download (FTP): ftp://invisible-island.net/xterm/xterm-231.tgz
• Download MD5 sum: b767d702e1464e16802b90c2187252c6
• Download size: 830 KB
• Estimated disk space required: 8.0 MB
• Estimated build time: 0.1 SBU
xterm Dependencies
Required
Xorg Libraries
Optional
luit-1.0.2 (required in non-UTF-8 locales if the user wants TrueType fonts, and always required in Chinese, Japanese,
and Korean locales). Configuration instructions below assume that Luit is installed.
Installation of xterm
Install xterm by running the following commands:
sed -i '/v0/,+1s/new:/new:kb=^?:/' termcap &&
echo -e '\tkbs=\\177,' >>terminfo &&
TERMINFO=/usr/lib/terminfo ./configure $XORG_CONFIG \
--enable-luit --enable-wide-chars \
--with-app-defaults=$XORG_PREFIX/share/X11/app-defaults &&
make
This package does not come with a test suite.
Now, as the root user:
make install &&
make install-ti
Command Explanations
sed -i ... termcap, echo ... >>terminfo: these commands modify the terminal description, so that the Backspace key
is expected to send the character with ASCII code 127, for consistency with the Linux console.
TERMINFO=/usr/lib/terminfo: This ensures that the xterm terminfo file is installed to the system terminfo
database when the installation prefix is not /usr.
--with-app-defaults=...: Sets the location for the app-defaults directory.
292
Beyond Linux® From Scratch - Version 6.3
--enable-luit: Enables the luit filter for translation between Unicode (used by xterm internally in
the configuration below) and the locale encoding. If luit is not found in the PATH, the default of
/usr/X11R6/bin/luit will be used.
--enable-wide-chars: Adds support for wide characters.
make install-ti: This command installs corrected terminfo description files for use with xterm.
Configuring xterm
There are two ways to configure xterm. You can add X resource definitions to the user's ~/.Xresources file, or
add them to the system-wide $XORG_PREFIX/share/X11/app-defaults/Xterm file.
In order for xterm to follow the locale settings in the environment, use TrueType fonts, and follow the Linux
convention about the code sent by the Backspace key, add the following definitions as the root user:
Contents
Installed Programs: resize, uxterm, and xterm
Short Descriptions
resize prints a shell command for setting the TERM and TERMCAP environment variables to indicate the current
size of xterm window.
uxterm is a wrapper script that modifies the current locale to use UTF-8 and starts xterm with the proper settings.
xterm is a terminal emulator for the X Window System.
293
Beyond Linux® From Scratch - Version 6.3
rman-3.2
Introduction to rman
rman is a utility to convert manual pages into other formats. It can currently supports HTML, ASCII, LaTeX,
LaTeX2e, RTF, POD, and partial DocBook XML output.
Package Information
• Download (HTTP): http://downloads.sourceforge.net/polyglotman/rman-3.2.tar.gz?download
•
• Download MD5 sum: 6d1d67641c6d042595a96a62340d3cc6
• Download size: 80 KB
• Estimated disk space required: 629 KB
• Estimated build time: 0.1 SBU
Installation of rman
rman is no longer part of the Xorg distribution, however, packages that use it may expect it to be in the same location
as your Xorg programs. Adjust the makefile to account for this:
sed -i -e "s@/opt/local@$XORG_PREFIX@" \
-e "s@/usr/local@$XORG_PREFIX@" Makefile
make
make install
Contents
Installed Programs: rman
Short Description
rman is a manpage converter.
294
Beyond Linux® From Scratch - Version 6.3
Recode-3.6
Introduction to Recode
The Recode package contains a program for converting text between character sets, and a library that exposes this
functionality to other applications. Note that the same functionality (but with different API) is provided by iconv,
which is installed in LFS as a part of Glibc.
Note
The Recode package is no longer maintained upstream. Wishlist bugs such as http://bugs.debian.org/94966
will never be fixed.
Package Information
• Download (HTTP): http://ftp.gnu.org/gnu/recode/recode-3.6.tar.gz
• Download (FTP): ftp://ftp.gnu.org/gnu/recode/recode-3.6.tar.gz
• Download MD5 sum: be3f40ad2e93dae5cd5f628264bf1877
• Download size: 1.7 MB
• Estimated disk space required: 24 MB
• Estimated build time: 0.1 SBU
Additional Downloads
• Required patch: http://www.linuxfromscratch.org/patches/blfs/6.3/recode-3.6-fixes-1.patch
Recode Dependencies
Optional
Python-2.5.2 (for the “bigauto” test) and Dmalloc
Installation of Recode
Install Recode by running the following commands:
To test the results, issue: make check. The testsuite will warn about the “bigauto” test being skipped. The editors did
not attempt to run this test to the end, because it uses obsolete Python constructions.
Now, as the root user:
make install
Command Explanations
--without-included-gettext: This parameter forces the use of gettext implementation provided by
Glibc instead of the very old internal copy. The internal copy produces incorrect output in UTF-8 locales.
295
Beyond Linux® From Scratch - Version 6.3
Contents
Installed Program: recode
Installed Library: librecode.{so,a}
Installed Directories: None
Short Descriptions
recode converts text between character sets.
librecode.{so,a} contains functions for character set conversion.
296
Beyond Linux® From Scratch - Version 6.3
icon-naming-utils-0.8.2
Introduction to icon-naming-utils
The icon-naming-utils package contains a Perl script used for maintaining backwards compatibility with current
desktop icon themes, while migrating to the names specified in the Icon Naming Specification.
Package Information
• Download (HTTP): http://tango.freedesktop.org/releases/icon-naming-utils-0.8.2.tar.gz
• Download (FTP): ftp://ftp.linux.ee/pub/gentoo/distfiles/distfiles/icon-naming-utils-0.8.2.tar.gz
• Download MD5 sum: 76e6afde567bd17b4fe095aa0ec90531
• Download size: 66 KB
• Estimated disk space required: 500 KB
• Estimated build time: less than 0.1 SBU
icon-naming-utils Dependencies
Required
XML::Simple-2.18
Installation of icon-naming-utils
Install icon-naming-utils by running the following commands:
./configure --prefix=/usr \
--libexecdir=/usr/lib/icon-naming-utils &&
make
make install
Command Explanations
--libexecdir=/usr/lib/icon-naming-utils: This parameter is used so that the main program script is
placed in /usr/lib/icon-naming-utils instead of /usr/libexec.
Contents
Installed Programs: icon-name-mapping
Installed Libraries: None
Installed Directories: /usr/share/dtds and /usr/share/icon-naming-utils
Short Descriptions
icon-name-mapping is a Perl script used for maintaining backwards compatibility with current desktop icon
themes, while migrating to the names specified in the Icon Naming Specification.
297
Beyond Linux® From Scratch - Version 6.3
rxvt-unicode-9.02
Introduction to rxvt-unicode
rxvt-unicode is a clone of the terminal emulator rxvt, an X Window System terminal emulator which includes support
for XFT and Unicode.
Package Information
• Download (HTTP): http://dist.schmorp.de/rxvt-unicode/Attic/rxvt-unicode-9.02.tar.bz2
•
• Download MD5 sum: f3c4fea3d544a340fa5a1d601ff5f204
• Download size: 860 KB
• Estimated disk space required: 27 MB
• Estimated build time: 0.2 SBU
Additional Downloads
• Required patch: http://www.linuxfromscratch.org/patches/blfs/6.3/rxvt-unicode-9.02-DISPLAY_fix-1.patch
rxvt-unicode Dependencies
Required
X Window System
Optional
libAfterImage (adds support for transparency and background images)
Installation of rxvt-unicode
Install rxvt-unicode by running the following commands:
patch -Np1 -i ../rxvt-unicode-9.02-DISPLAY_fix-1.patch &&
./configure --prefix=/usr --enable-everything &&
make
This package does not come with a test suite.
Now, as the root user:
make install
Command Explanations
--enable-everything: Add support for all non-multichoice options. Details about the different options can be
found in the file README.configure.
--disable-xft: Remove support for Xft fonts.
--disable-perl: Disable the embedded Perl interpreter.
--disable-afterimage: Remove support for libAfterImage.
298
Beyond Linux® From Scratch - Version 6.3
Configuring rxvt-unicode
The rxvt-unicode terminal emulator uses the resource class URxvt and the resource name urxvt. You can add X
resource definitions to a user's ~/.Xresources file or to the system-wide /etc/X11/app-defaults/URxvt
file. The following example will load the matcher Perl extension (assuming Perl support wasn't disabled), which
enables a middle button click to open an underlined URL in the specified browser, sets a background and foreground
color and loads an Xft font:
The rxvt-unicode application can also run in a daemon mode, which makes it possible to open multiple terminal
windows within the same process. The urxvtc client then connects to the urxvtd daemon and requests a new terminal
window. Use this option with caution. If the daemon crashes, all the running processes in the terminal windows are
terminated.
You can start the urxvtd daemon in the system or personal startup X session script (e.g., ~/.xinitrc) by adding
the following lines near the top of the script:
For more information, examine the urxvt, urxvtd, urxvtc, and urxvtperl man pages.
Contents
Installed Programs: urxvt, urxvtd, and urxvtc
Installed Libraries: Many Perl extensions located under /usr/lib/urxvt/perl
Installed Directory: /usr/lib/urxvt
Short Descriptions
urxvt is a terminal emulator for the X Window System.
urxvtd is the urxvt terminal daemon.
urxvtc controls the urxvtd daemon.
299
Beyond Linux® From Scratch - Version 6.3
PIN-Entry-0.7.3
Introduction to PIN-Entry
The PIN-Entry package contains a collection of simple PIN or pass-phrase entry dialogs which utilize the Assuan
protocol as described by the Äegypten project. PIN-Entry programs are usually invoked by the gpg-agent daemon,
but can be run from the command line as well. There are programs for various text-based and GUI environments,
including interfaces designed for Ncurses (text-based), Gtk+, Gtk+-2, and Qt-3.
Package Information
• Download (HTTP): http://anduin.linuxfromscratch.org/sources/BLFS/6.3/p/pinentry-0.7.3.tar.gz
• Download (FTP): ftp://ftp.gnupg.org/gcrypt/pinentry/pinentry-0.7.3.tar.gz
• Download MD5 sum: 59282278405a8264b39ea28678c78cf4
• Download size: 417 KB
• Estimated disk space required: 9 MB
• Estimated build time: 0.1 SBU
PIN-Entry Dependencies
Optional
Installation of PIN-Entry
Install PIN-Entry by running the following commands:
./configure --prefix=/usr \
--enable-pin-entry-curses \
--enable-fallback-curses \
--disable-pinentry-gtk \
--disable-pinentry-gtk2 \
--disable-pinentry-qt &&
make
Only info documentation is shipped in the package tarball. If you wish to build alternate formats of the documentation,
you must have teTeX-3.0 installed, then issue the following commands:
300
Beyond Linux® From Scratch - Version 6.3
If you built the additional documentation, install it by issuing the following commands as the root user:
Command Explanations
--enable-...: These two parameters are used to fix a problem with the configure script if the optional
dependencies are not installed. If the dependencies are installed, these parameters may be omitted.
--disable-...: These three parameters are used to fix a problem with the configure script if the optional
dependencies are not installed. If the dependencies are installed, these parameters may be omitted.
Contents
Installed Programs: pinentry, pinentry-curses, pinentry-gtk, pinentry-gtk-2, and pinentry-qt
Installed Libraries: None
Installed Directory: /usr/share/doc/pinentry-0.7.3
Short Descriptions
pinentry is a symbolic link to the default PIN-Entry program.
pinentry-curses is an Ncurses text-based PIN-Entry program.
pinentry-gtk is a Gtk GUI PIN-Entry program.
pinentry-gtk-2 is a Gtk-2 GUI PIN-Entry program.
pinentry-qt is a Qt GUI PIN-Entry program.
301
Beyond Linux® From Scratch - Version 6.3
Gperf-3.0.3
Introduction to Gperf
Gperf generates a perfect hash function from a key set.
Package Information
• Download (HTTP): http://ftp.gnu.org/gnu/gperf/gperf-3.0.3.tar.gz
• Download (FTP): ftp://ftp.gnu.org/gnu/gperf/gperf-3.0.3.tar.gz
• Download MD5 sum: cc20e58975a38075440423c8fb85fd00
• Download size: 866 KB
• Estimated disk space required: 4 MB
• Estimated build time: less than 0.1 SBU
Installation of Gperf
Install Gperf by running the following commands:
If desired, create a text version of the documentation by issuing the following command:
To test the results, issue make check. There should be no output from the diff commands.
Now, as the root user:
Command Explanations
install -m644 -v doc/gperf.{dvi,ps,pdf,txt} ...: This command installs documentation. Modify the command (remove
',txt') if you did not build the text version.
Contents
Installed Programs: gperf
Installed Libraries: None
Installed Directories: /usr/share/doc/gperf-3.0.3
Short Descriptions
gperf generates a perfect hash function from a key set.
302
Beyond Linux® From Scratch - Version 6.3
303
Beyond Linux® From Scratch - Version 6.3
GPM-1.20.1
Introduction to GPM
The GPM (General Purpose Mouse daemon) package contains a mouse server for the console and xterm. 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. It is useful on desktops, especially if following (Beyond) Linux From
Scratch instructions; it's often much easier (and less error prone) to cut and paste between two console windows than
to type everything by hand!
Package Information
• Download (HTTP): http://ftp.schottelius.org/pub/linux/gpm/gpm-1.20.1.tar.bz2
• Download (FTP): ftp://ftp.linux.ee/pub/gentoo/distfiles/distfiles/gpm-1.20.1.tar.bz2
• Download MD5 sum: 2c63e827d755527950d9d13fe3d87692
• Download size: 556 KB
• Estimated disk space required: 6.7 MB
• Estimated build time: 0.1 SBU
Additional Downloads
• Recommended Patch: http://www.linuxfromscratch.org/patches/blfs/6.3/gpm-1.20.1-segfault-1.patch
• Recommended Patch: http://www.linuxfromscratch.org/patches/blfs/6.3/gpm-1.20.1-silent-1.patch
Installation of GPM
Install GPM by running the following commands:
Command Explanations
LDFLAGS="-lm": The math library must be linked with gpm, as ceil() is used in some cursor scrolling logic.
Configuring GPM
Boot Script
Install the /etc/rc.d/init.d/gpm init script included in the blfs-bootscripts-20080816 package.
make install-gpm
304
Beyond Linux® From Scratch - Version 6.3
Config Files
/etc/gpm-root.conf and ~/.gpm-root: The default and individual user gpm-root configuration 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 as the root user:
MDEVICE="<yourdevice>"
PROTOCOL="<yourprotocol>"
GPMOPTS="<additional options>"
# End /etc/sysconfig/mouse
EOF
Configuration Information
Examples of values to set MDEVICE, PROTOCOL, and GPMOPTS to are:
MDEVICE="/dev/psaux"
PROTOCOL="imps2"
GPMOPTS=""
A list of which protocol values are known can be found by running gpm -m [device] -t -help. The 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. GPMOPTS is the
'catch all' for any additional options that are needed for your hardware.
Contents
Installed Programs: disable-paste, gpm, gpm-root, hltest, mev, and mouse-test
Installed Libraries: libgpm.{so.a}
Installed Directories: None
Short Descriptions
disable-paste is a security mechanism used to disable the paste buffer.
gpm is a cut and paste utility and mouse server for virtual consoles.
gpm-root is a default handler for gpm. It is used to draw menus on the root window.
hltest is a simple sample application using the high-level library, meant to be read by programmers
trying to use the high-level library.
mev is a program to report mouse events.
mouse-test is a tool for determining the mouse type and device it's attached to.
libgpm.{so.a} contains the API functions to access the GPM daemon.
305
Beyond Linux® From Scratch - Version 6.3
Fcron-3.0.3
Introduction to Fcron
The Fcron package contains a periodical command scheduler which aims at replacing Vixie Cron.
Package Information
• Download (HTTP): http://fcron.free.fr/archives/fcron-3.0.3.src.tar.gz
• Download (FTP): ftp://ftp.seul.org/pub/fcron/fcron-3.0.3.src.tar.gz
• Download MD5 sum: c85e6eecd0564f37658ae250a491fd31
• Download size: 536 KB
• Estimated disk space required: 4.7 MB
• Estimated build time: 0.1 SBU
Fcron Dependencies
Optional
An MTA, text editor (default is vi from the Vim-7.1 package), Linux-PAM-0.99.10.0, DocBook-utils-0.6.14
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 (perform as the root user):
cat >> /etc/syslog.conf << "EOF"
# Begin fcron addition to /etc/syslog.conf
cron.* -/var/log/cron.log
306
Beyond Linux® From Scratch - Version 6.3
make install
Command Explanations
--without-sendmail: By default, Fcron will attempt to use the sendmail command from an MTA package to
email you the results of the fcron script. This switch is used to disable default email notification. Omit the switch
to enable the default. Alternatively, you can use the --with-sendmail=</path/to/MTA command> to use
a different mailer command.
--with-boot-install=no: This prevents installation of the bootscript included with the package.
--with-editor=</path/to/editor>: This switch allows you to set the default text editor.
Configuring Fcron
Config Files
/etc/fcron.conf, /etc/fcron.allow, and /etc/fcron.deny
Configuration Information
There are no required changes in any of the config files. Configuration information can be found in the man page
for fcron.conf.
fcron scripts are written using fcrontab. Refer to the fcrontab man page for proper parameters to address your
situation.
If Linux-PAM is installed, two PAM configuration files are installed in /etc/pam.d. Alternatively if /etc/pam.
d is not used, the installation will append two configuration sections to the exiting /etc/pam.conf file. You
should ensure the files match your preferences. Modify them as required to suit your needs.
Boot Script
Install the /etc/rc.d/init.d/fcron init script from the blfs-bootscripts-20080816 package.
make install-fcron
Contents
Installed Programs: fcron, fcrondyn, fcronsighup, and fcrontab
Installed Libraries: None
Installed Directories: /usr/share/doc/fcron-3.0.3 and /var/spool/fcron
Short Descriptions
fcron is the scheduling daemon.
fcrondyn is a user tool intended to interact with a running fcron daemon.
fcronsighup instructs fcron to reread the Fcron tables.
fcrontab is a program used to install, edit, list and remove the tables used by fcron.
307
Beyond Linux® From Scratch - Version 6.3
Hdparm-7.7
Introduction to Hdparm
The hdparm package contains a utility that 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, it is recommended that you
leave the default kernel parameters alone.
Package Information
• Download (HTTP): http://downloads.sourceforge.net/hdparm/hdparm-7.7.tar.gz
•
• Download MD5 sum: 0d96f03155fe5c119ca338a51ad1eaa7
• Download size: 62 KB
• Estimated disk space required: 524 KB
• Estimated build time: 0.1 SBU
Installation of Hdparm
Build hdparm by running the following command:
make
make install
Note that by default, hdparm is installed in /sbin as some systems may require it during the boot process before
/usr is mounted. If you wish to install hdparm under the /usr hierarchy, then replace the above command with
the following:
Contents
Installed Program: hdparm
Installed Libraries: None
Installed Directories: None
Short Descriptions
hdparm provides a command-line interface to various hard disk ioctls supported by the stock Linux ATA/IDE
device driver subsystem.
308
Beyond Linux® From Scratch - Version 6.3
Introduction to Which
Package Information
• Download (HTTP): http://www.xs4all.nl/~carlo17/which/which-2.19.tar.gz
• Download (FTP): ftp://ftp.gnu.org/gnu/which/which-2.19.tar.gz
• Download MD5 sum: bbd094cec2444cd78befbc0cf09deea4
• Download size: 132 KB
• Estimated disk space required: 1 MB
• Estimated build time: less than 0.1 SBU
Installation of Which
Install which by running the following commands:
./configure --prefix=/usr &&
make
This package does not come with a test suite.
Now, as the root user:
make install
Contents
Installed Program: which
Installed Libraries: None
Installed Directories: None
Short Descriptions
which shows the full path of (shell) commands installed in your PATH.
309
Beyond Linux® From Scratch - Version 6.3
This should work OK and is probably the easiest solution for most cases, but is not the most comprehensive
implementation.
310
Beyond Linux® From Scratch - Version 6.3
UnZip-5.52
Introduction to UnZip
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 DOS environment.
Caution
The UnZip package has some locale related issues. See the discussion below in the section called “UnZip
Locale Issues”. A more general discussion of these problems can be found in the Program Assumes
Encoding section of the Locale Related Issues page.
Package Information
• Download (HTTP): http://downloads.sourceforge.net/infozip/unzip552.tar.gz
• Download (FTP): ftp://tug.ctan.org/tex-archive/tools/zip/info-zip/src/unzip552.tar.gz
• Download MD5 sum: 9d23919999d6eac9217d1f41472034a9
• Download size: 1.1 MB
• Estimated disk space required: 6.7 MB
• Estimated build time: Less than 0.1 SBU
Additional Downloads
• Required patch: http://www.linuxfromscratch.org/patches/blfs/6.3/unzip-5.52-security_fix-1.patch
• Required patch: http://www.linuxfromscratch.org/patches/blfs/6.3/unzip-5.52-security_fix-2.patch
• Optional patch: http://www.linuxfromscratch.org/patches/blfs/6.3/unzip-5.50-alt-iconv-v1.1.patch
The UnZip package assumes that filenames stored in the ZIP archives created on non-Unix systems are encoded in
CP850, and that they should be converted to ISO-8859-1 when writing files onto the filesystem. Such assumptions
are not always valid. In fact, inside the ZIP archive, filenames are encoded in the DOS codepage that is in use in the
relevant country, and the filenames on disk should be in the locale encoding. In MS Windows, the OemToChar() C
function (from User32.DLL) does the correct conversion (which is indeed the conversion from CP850 to a superset
of ISO-8859-1 if MS Windows is set up to use the US English language), but there is no equivalent in Linux.
When using unzip to unpack a ZIP archive containing non-ASCII filenames, the filenames are damaged because
unzip uses improper conversion when any of its encoding assumptions are incorrect. For example, in the
ru_RU.KOI8-R locale, conversion of filenames from CP866 to KOI8-R is required, but conversion from CP850 to
ISO-8859-1 is done, which produces filenames consisting of undecipherable characters instead of words (the closest
equivalent understandable example for English-only users is rot13). There are several ways around this limitation:
1) For unpacking ZIP archives with filenames containing non-ASCII characters, use WinZip while running the Wine
Windows emulator.
311
Beyond Linux® From Scratch - Version 6.3
2) After running unzip, fix the damage made to the filenames using the convmv tool (http://j3e.de/linux/convmv/).
The following is an example for the ru_RU.KOI8-R locale:
Step 1. Undo the conversion done by unzip:
convmv -f iso-8859-1 -t cp850 -r --nosmart --notest \
</path/to/unzipped/files>
Step 2. Do the correct conversion instead:
convmv -f cp866 -t koi8-r -r --nosmart --notest \
</path/to/unzipped/files>
3) Apply the optional unzip-5.50-alt-iconv-v1.1.patch patch to UnZip. It will apply with some offsets.
It allows to specify the assumed filename encoding in the ZIP archive using the -O charset_name option and
the on-disk filename encoding using the -I charset_name option. Defaults: the on-disk filename encoding is
the locale encoding, the encoding inside the ZIP archive is guessed according to the builtin table based on the locale
encoding. For US English users, this still means that unzip converts from CP850 to ISO-8859-1 by default.
Caveat: this method works only with 8-bit locale encodings, not with UTF-8. Attempting to use a patched unzip in
UTF-8 locales may result in a segmentation fault and is probably a security risk.
Installation of UnZip
Note that if you applied the patch described above for locale issues, the first required security patch will have some
offsets. Now install UnZip by running the following commands:
patch -Np1 -i ../unzip-5.52-security_fix-1.patch &&
patch -Np1 -i ../unzip-5.52-security_fix-2.patch &&
make -f unix/Makefile LOCAL_UNZIP=-D_FILE_OFFSET_BITS=64 linux
To test the results, issue: make check.
Now, as the root user:
make prefix=/usr install
Command Explanations
linux: This target in the Makefile makes assumptions that are useful for a Linux system when compiling the
executables. To obtain alternatives to this target, use make list
LOCAL_UNZIP=...: This sets the compilation flags to allow UnZip to handle files up to 4 GB.
Contents
Installed Programs: funzip, unzip, unzipfsx, zipgrep, and zipinfo
Installed Libraries: None
Installed Directories: None
Short Descriptions
funzip allows the output of unzip commands to be redirected.
312
Beyond Linux® From Scratch - Version 6.3
313
Beyond Linux® From Scratch - Version 6.3
Zip-2.32
Introduction to Zip
The Zip package contains Zip utilities. These are useful for compressing files into ZIP archives.
Package Information
• Download (HTTP): http://fresh.t-systems-sfr.com/unix/src/misc/zip232.tar.gz
• Download (FTP): ftp://tug.ctan.org/tex-archive/tools/zip/info-zip/src/zip232.tar.gz
• Download MD5 sum: 8a4da4460386e324debe97f3b7fe4d96
• Download size: 789 KB
• Estimated disk space required: 4.0 MB
• Estimated build time: Less than 0.1 SBU
Installation of Zip
Install Zip by running the following commands:
Command Explanations
make prefix=/usr -f unix/Makefile install: This command overrides the prefix variable that is set to
/usr/local in the unix/Makefile. Alternatives to generic_gcc can be seen with a make -f unix/Makefile
list command.
Contents
Installed Programs: zip, zipcloak, zipnote, and zipsplit
Installed Libraries: None
Installed Directories: None
Short Descriptions
zip compresses files into a ZIP archive.
zipcloak is a utility to encrypt and decrypt a ZIP archive.
zipnote reads or writes comments stored in a ZIP file.
zipsplit is a utility to split ZIP files into smaller files.
314
Beyond Linux® From Scratch - Version 6.3
UnRar-3.7.8
Introduction to UnRar
The UnRar package contains a RAR extraction utility. This is useful for extracting files from RAR archives. RAR
archives are usually created with WinRAR, primarily in a Windows environment.
Package Information
• Download (HTTP): http://www.rarlab.com/rar/unrarsrc-3.7.8.tar.gz
• Download (FTP):
• Download MD5 sum: b783f1932bc0c73902c6399f7c2c6f43
• Download size: 131 KB
• Estimated disk space required: 175 KB
• Estimated build time: Less than 0.1 SBU
Installation of UnRar
Install UnRar by running the following commands:
make -f makefile.unix
Contents
Installed Programs: unrar
Installed Libraries: None
Installed Directories: None
Short Descriptions
unrar uncompresses a RAR archive.
315
Beyond Linux® From Scratch - Version 6.3
PCI Utilities-2.2.3
Introduction to PCI Utilities
The PCI Utilities package is a set of programs for listing PCI devices, inspecting their status and setting their
configuration registers.
Package Information
• Download (HTTP): http://www.kernel.org/pub/software/utils/pciutils/pciutils-2.2.3.tar.bz2
• Download (FTP): ftp://ftp.kernel.org/pub/software/utils/pciutils/pciutils-2.2.3.tar.bz2
• Download MD5 sum: 86cc20eaa0360587497a8105d33e57fc
• Download size: 1.1 MB
• Estimated disk space required: 3.3 MB
• Estimated build time: less than 0.1 SBU
Some packages require the PCI static library. To install the library and headers, issue the following commands as
the root user:
Command Explanations
sed -i 's/null ;/null 2>\&1 ;/' update-pciids.sh: This command suppresses some unneeded screen output from the
update-pciids command if you don't have either Lynx, Wget, or Curl installed by redirecting the stderr output of the
embedded which command to /dev/null.
316
Beyond Linux® From Scratch - Version 6.3
Contents
Installed Programs: lspci, setpci and update-pciids
Installed Library: libpci.a
Installed Directory: /usr/include/pci
Short Descriptions
lspci is a utility for displaying information about all PCI buses in the system and all devices connected
to them.
setpci is a utility for querying and configuring PCI devices.
update-pciids fetches the current version of the PCI ID list. Requires cURL-7.16.3, Wget-1.10.2 or
Lynx-2.8.6rel.5.
libpci.a is the static library that allows applications to access the PCI subsystem.
317
Beyond Linux® From Scratch - Version 6.3
usbutils-0.72
Introduction to usbutils
The usbutils package contains a utility used to display information about USB buses in the system and the devices
connected to them.
Package Information
• Download (HTTP): http://downloads.sourceforge.net/linux-usb/usbutils-0.72.tar.gz
•
• Download MD5 sum: ee345fe605ffcfce843dae4aed81122b
• Download size: 166 KB
• Estimated disk space required: 1.6 MB
• Estimated build time: less than 0.1 SBU
usbutils Dependencies
Required
libusb-0.1.12
Installation of usbutils
Install usbutils by running the following commands:
Command Explanations
sed -i '...' update-usbids.sh: This command is used to modify the download script so that it will replace the existing
file in /usr/share instead of in the current directory.
Configuring usbutils
The usb.ids data file is constantly being updated. To get a current version of this file, run update-usbids as the
root user. This program requires the which-2.19 script or program to find Wget-1.10.2 or Lynx-2.8.6rel.5 which
are used to download the most current file, and replace the existing file in /usr/share.
You may wish to add an entry to root's (or any other user who has write privilege to /usr/share) crontab to
automatically update the usb.ids file periodically.
318
Beyond Linux® From Scratch - Version 6.3
Contents
Installed Programs: lsusb and update-usbids
Installed Libraries: None
Installed Directories: None
Short Descriptions
lsusb is a utility for displaying information about all USB buses in the system and all devices
connected to them.
update-usbids downloads the current version of the USB ID list. Requires Wget-1.10.2 or Lynx-2.8.6rel.5.
319
Beyond Linux® From Scratch - Version 6.3
pkg-config-0.22
Introduction to pkg-config
The pkg-config package contains a tool for passing the include path and/or library paths to build tools during the
configure and make file execution.
Package Information
• Download (HTTP): http://pkgconfig.freedesktop.org/releases/pkg-config-0.22.tar.gz
• Download (FTP): ftp://ftp.linux.ee/pub/gentoo/distfiles/distfiles/pkg-config-0.22.tar.gz
• Download MD5 sum: fd5c547e9d66ba49bc735ccb8c791f2a
• Download size: 1.0 MB
• Estimated disk space required: 12 MB
• Estimated build time: 0.3 SBU
Installation of pkg-config
Install pkg-config by running the following commands:
To test the results, issue: make check. The “check-requires-private” test has been known to fail for undetermined
reasons.
Now, as the root user:
make install
Configuring pkg-config
The default setting for PKG_CONFIG_PATH is /usr/lib/pkgconfig:/usr/share/pkgconfig because
of the prefix used to install pkg-config. You may add to PKG_CONFIG_PATH by exporting additional paths on your
system where .pc files are installed. Note that PKG_CONFIG_PATH is only needed when compiling packages, not
during run-time.
Contents
Installed Program: pkg-config
Installed Libraries: None
Installed Directories: None
Short Descriptions
pkg-config returns meta information for the specified library or package.
320
Beyond Linux® From Scratch - Version 6.3
cpio-2.9
Introduction to cpio
The cpio package contains tools for archiving.
Package Information
• Download (HTTP): http://ftp.gnu.org/pub/gnu/cpio/cpio-2.9.tar.bz2
• Download (FTP): ftp://ftp.gnu.org/pub/gnu/cpio/cpio-2.9.tar.bz2
• Download MD5 sum: e387abfdae3a0b9a8a5f762db653a96d
• Download size: 758 KB
• Estimated disk space required: 10 MB
• Estimated build time: 0.2 SBU
Installation of cpio
Install cpio by running the following commands:
./configure CPIO_MT_PROG=mt \
--prefix=/usr \
--bindir=/bin \
--libexecdir=/tmp \
--with-rmt=/usr/sbin/rmt &&
make
If you have teTeX-3.0 installed and wish to create alternate forms of the documentation, issue the any or all of the
following commands:
make install
If you built any of the alternate forms of documentation, install it by issuing the following commands as the root
user:
Command Explanations
CPIO_MT_PROG=mt: This parameter forces the building and installation of the mt program.
321
Beyond Linux® From Scratch - Version 6.3
--bindir=/bin: This parameter installs cpio to /bin instead of /usr/bin as recommended by the FHS
guidelines.
--libexecdir=/tmp: This parameter is used so that /usr/libexec is not created.
--with-rmt=/usr/sbin/rmt: This parameter inhibits building the rmt program as it is already installed by
the Tar package in LFS.
Contents
Installed Programs: cpio and mt
Installed Libraries: None
Installed Directories: None
Short Descriptions
cpio copies files to and from archives.
mt controls magnetic tape drive operations.
322
Beyond Linux® From Scratch - Version 6.3
MC-4.6.1
Introduction to MC
MC (Midnight Commander) is a text-mode full-screen file manager and visual shell. It provides a clear, user-friendly,
and somewhat protected interface to a Unix system while making many frequent file operations more efficient and
preserving the full power of the command prompt.
Package Information
• Download (HTTP): http://www.ibiblio.org/pub/Linux/utils/file/managers/mc/mc-4.6.1.tar.gz
• Download (FTP): ftp://ftp.uni-koeln.de/util/shell/mc-4.6.1.tar.gz
• Download MD5 sum: 18b20db6e40480a53bac2870c56fc3c4
• Download size: 3.8 MB
• Estimated disk space required: 29 MB
• Estimated build time: 0.4 SBU
Additional Downloads
• Required patch: http://www.linuxfromscratch.org/patches/blfs/6.3/mc-4.6.1-bash32-1.patch
• Recommended Patch: http://www.linuxfromscratch.org/patches/blfs/6.3/mc-4.6.1-debian_fixes-1.patch
MC Dependencies
Required
GLib-1.2.10 (untested with Debian patch) or GLib-2.12.12
Optional
GPM-1.20.1, X Window System, Samba-3.0.30, S-Lang-2.1.3 (required when building with Debian patch), Zip-2.32,
UnZip-5.52, and GNOME Libraries-1.4
Installation of MC
Fix incompatibility of MC-4.6.1 with Bash-3.2:
patch -Np1 -i ../mc-4.6.1-bash32-1.patch
323
Beyond Linux® From Scratch - Version 6.3
MC with Debian patches expects its documentation to be stored in UTF-8 encoding on disk, and automatically
converts it to the locale encoding when displaying on the terminal. This is different from the expectations of the
unpatched MC, so the documentation files have to be converted if (and only if) the Debian patch has been applied:
Command Explanations
CPPFLAGS="-DUTF8": This parameter activates UTF-8 support in the Debian patch and has no effect without
this patch.
--enable-charset: This option adds support to mcedit for editing files in encodings different from the one
implied by the current locale. This feature works in non-UTF-8 locales only, even with the Debian patch.
--with-codepagedir=DIR: This parameter was useful only with SAMBA-2.x. New versions of SAMBA do
not have codepage files.
chmod 1755 /usr/lib/mc/cons.saver: The cons.saver program has to be installed setuid root, because on LFS regular
users have no access to /dev/vcsa* devices. This step is optional if MC is going to be started from X terminal
emulators or ssh sessions only (thus rendering the cons.saver binary completely unneeded).
324
Beyond Linux® From Scratch - Version 6.3
Configuring MC
Config Files
~/.mc/*
Configuration Information
The ~/.mc directory and its contents are created when you start mc for the first time. Then you can edit the main
~/.mc/ini configuration file manually or through the MC shell. Consult the mc(1) man page for details.
Contents
Installed Programs: cons.saver, mc, mcedit, mcmfmt, and mcview
Installed Libraries: None
Installed Directories: /usr/share/mc and /usr/lib/mc
Short Descriptions
cons.saver is used internally by mc for saving and restoring the text behind the panels on Linux text console.
mc is a visual shell.
mcedit is an internal file editor.
mcmfmt is used internally by mcview when viewing mailbox files.
mcview is an internal file viewer.
325
Beyond Linux® From Scratch - Version 6.3
Sysstat-7.0.4
Introduction to Sysstat
The Sysstat package contains utilities to monitor system performance and usage activity. Sysstat contains the sar
utility, common to many commercial Unixes, and tools you can schedule via cron to collect and historize performance
and activity data.
Package Information
• Download (HTTP): http://perso.wanadoo.fr/sebastien.godard/sysstat-7.0.4.tar.bz2
• Download (FTP): ftp://ibiblio.org/pub/linux/system/status/sysstat-7.0.4.tar.bz2
• Download MD5 sum: 46a6af9c5486809c4f1fb4f8fcdf2684
• Download size: 124 KB
• Estimated disk space required: 2 MB
• Estimated build time: less than 0.1 SBU
Sysstat Dependencies
Recommended
Fcron-3.0.3
Installation of Sysstat
Install Sysstat by running the following commands:
make install
Command Explanations
make config: Runs the interactive configuration process. The first question prompts you for an “Installation
directory”. Reply with /usr, as this is equivalent to Autoconf's --prefix=/usr parameter to configure. For
all other prompts, you may press Enter to accept the (very sane) defaults. When prompted for “Number of daily
data files to keep: [7]”, you may wish to keep a larger number of files.
Configuring Sysstat
Cron Information
To begin gathering Sysstat history information, you must add to, or create a privileged user's crontab. The default
history data location is /var/log/sa. The user running Sysstat utilities via cron must have write access to this
location.
326
Beyond Linux® From Scratch - Version 6.3
Below is an example of what to install in the crontab. Adjust the parameters to suit your needs. Use man sa1 and
man sa2 for information about the commands.
make install-sysstat
Contents
Installed Programs: iostat, mpstat, sar, sa1, sa2, sadc and sadf
Installed Libraries: None
Installed Directories: /usr/lib/sa, /usr/share/doc/sysstat-7.0.4 and /var/log/sa
Short Descriptions
iostat reports CPU statistics and input/output statistics for devices and partitions.
mpstat reports individual or combined processor related statistics.
sar collects, reports and saves system activity information.
sa1 collects and stores binary data in the system activity daily data file. It is a front end to sadc designed
to be run from cron.
sa2 writes a summarized daily activity report. It is a front end to sar designed to be run from cron.
sadc is the system activity data collector, used as a backend for sar.
sadf is used for displaying the contents of data files created by the sar command. But unlike sar, sadf can
write its data in many different formats.
327
Beyond Linux® From Scratch - Version 6.3
Apache Ant-1.7.0
Introduction to Apache Ant
The Apache Ant package is a Java-based build tool. In theory, it is kind of like make, but without make's wrinkles.
Ant is different. Instead of a model where it is extended with shell-based commands, Ant is extended using Java
classes. Instead of writing shell commands, the configuration files are XML-based, calling out a target tree where
various tasks get executed. Each task is run by an object that implements a particular task interface.
Package Information
• Download (HTTP): http://anduin.linuxfromscratch.org/sources/BLFS/6.3/a/apache-ant-1.7.0-src.tar.bz2
•
• Download MD5 sum: 22b378e27ab300e4d73bf09d91c7e2a6
• Download size: 6.8 MB
• Estimated disk space required: 109 MB
• Estimated build time: 0.4 SBU
Required
JDK-6 Update 5 and JUnit-4.3.1
The unit regression tests are performed in the build step below.
Now, as the root user:
Command Explanations
sed ...: These commands change the configuration directory to /etc/ant to conform with FHS guidelines.
./build.sh -Ddist.dir=/opt/ant-1.7.0 dist: This command does everything. It builds, tests, then installs the package
into /opt/ant-1.7.0.
328
Beyond Linux® From Scratch - Version 6.3
ln -v -sf /etc/ant /opt/ant-1.7.0/etc: The sed commands change the configuration directory to /etc/ant and this
command creates a symlink from the configuration directory back to the installation directory as the package is
expecting to find some files there.
ln -v -sf ant-1.7.0 /opt/ant: This command is optional, and creates a convenience symlink.
Configuration Information
Some packages will require ant to be in the search path and the $ANT_HOME environment variable defined. Satisfy
these requirements by adding the following lines to /etc/profile or to individual user's ~/.profile or ~/.
bashrc files:
export PATH=$PATH:/opt/ant/bin
export ANT_HOME=/opt/ant
Contents
Installed Programs: ant, antRun, antRun.pl, complete-ant-cmd.pl, runant.pl, and runant.py
Installed Libraries: ant.jar, ant-*.jar, xercesImpl.jar, and xml-apis.jar
Installed Directories: /etc/ant and /opt/ant-1.7.0
Short Descriptions
ant is a Java based build tool used by many packages instead of the conventional make
program.
antRun is a support script used to start ant build scripts in a given directory.
antRun.pl is a Perl script that provides similar functionality offered by the antRun script.
complete-ant-cmd.pl is a Perl script that allows Bash to complete an ant command-line.
runant.pl is a Perl wrapper script used to invoke ant.
runant.py is a Python wrapper script used to invoke ant.
ant-*.jar files are the Apache Ant Java class libraries.
xercesImpl.jar is a Java class library used by Apache Ant to perform XML parsing.
xml-apis.jar contains the DOM Java classes required by the Apache Ant XML formatter.
329
Beyond Linux® From Scratch - Version 6.3
D-BUS-1.0.2
Introduction to D-BUS
D-BUS is a message bus system, a simple way for applications to talk to one another. D-BUS supplies both a system
daemon (for events such as “new hardware device added” or “printer queue changed”) and a per-user-login-session
daemon (for general IPC needs among user applications). Also, the message bus is built on top of a general one-to-one
message passing framework, which can be used by any two applications to communicate directly (without going
through the message bus daemon).
Package Information
• Download (HTTP): http://dbus.freedesktop.org/releases/dbus/dbus-1.0.2.tar.gz
• Download (FTP): ftp://ftp.linux.ee/pub/gentoo/distfiles/distfiles/dbus-1.0.2.tar.gz
• Download MD5 sum: 0552a9b54beb4a044951b7cdbc8fc855
• Download size: 1.3 MB
• Estimated disk space required: 39.5 MB (includes building and installing all docs)
• Estimated build time: 0.3 SBU (additional 0.7 SBU to run the test suite)
D-BUS Dependencies
Required
expat-2.0.1 or both pkg-config-0.22 and libxml2-2.6.31
Optional
X Window System, Doxygen-1.5.2 (to generate the API documentation), and xmlto (to generate HTML
documentation and manuals)
Kernel Configuration
Ensure the following option is enabled in the kernel configuration and recompile the kernel if necessary:
General Setup
System V IPC
Installation of D-BUS
As the root user, create a system user and group to handle the system message bus activity:
groupadd -g 18 messagebus &&
useradd -c "D-BUS Message Daemon User" -d /dev/null \
-u 18 -g messagebus -s /bin/false messagebus
This package's test suite cannot be run without passing additional parameters to configure and exposing additional
functionality in the binaries. These interfaces are not intended to be used in a production build of D-BUS, so it will
have to be built twice in this situation. If you would like to run the unit tests, issue the following commands:
./configure --enable-tests &&
make &&
make check &&
make distclean
330
Beyond Linux® From Scratch - Version 6.3
Install D-BUS by running the following commands (you may wish to review the output from ./configure --help first
and add any desired parameters to the configure command shown below):
./configure --prefix=/usr \
--sysconfdir=/etc \
--localstatedir=/var &&
make
The --enable-doxygen-docs parameter does not work properly. If you have Doxygen installed and you wish
to build the API documentation, issue doxygen.
If you built the HTML documentation, install it by issuing the following commands as the root user:
If you built the API documentation, install it by issuing the following commands as the root user:
Command Explanations
--localstatedir=/var: This parameter causes the daemon PID file, system bus socket and machine uuid file
to be created in the /var directory instead of the /usr/var directory.
Configuring dbus
Config Files
/etc/dbus-1/session.conf, /etc/dbus-1/system.conf and /etc/dbus-1/system.d/*
Configuration Information
The configuration files listed above should probably not be modified. If changes are required, you should
create /etc/dbus-1/session-local.conf and/or /etc/dbus-1/system-local.conf and make
any desired changes to these files.
331
Beyond Linux® From Scratch - Version 6.3
If any packages install a D-Bus .service file outside of the standard /usr/share/dbus-1/services
directory, that directory should be added to the local session configuration. For instance,
/usr/local/share/dbus-1/services can be added by performing the following commands as the root
user:
cat > /etc/dbus-1/session-local.conf << "EOF"
<!DOCTYPE busconfig PUBLIC
"-//freedesktop//DTD D-BUS Bus Configuration 1.0//EN"
"http://www.freedesktop.org/standards/dbus/1.0/busconfig.dtd">
<busconfig>
</busconfig>
EOF
Boot Script
To automatically start dbus-daemon when the system is rebooted, install the /etc/rc.d/init.d/dbus
bootscript from the blfs-bootscripts-20080816 package.
make install-dbus
Note that this boot script only starts the system-wide D-BUS daemon. Each user requiring access to D-BUS services
will also need to run a session daemon as well. There are many methods you can use to start a session daemon
using the dbus-launch command. Review the dbus-launch man page for details about the available parameters and
options. Here are some suggestions and examples:
• Add dbus-launch to the line in the ~/.xinitrc file that starts your graphical desktop environment as shown
in the section called “Configuring the Core GNOME Packages”.
• If you use xdm or some other display manager that calls the ~/.xsession file, you can add dbus-launch to
the line in your ~/.xsession file that starts your graphical desktop environment. The syntax would be similar
to the example in the ~/.xinitrc file.
• If you use gdm or some other display manager that utilizes custom files to initiate sessions, use the example
in the section called “Configuration Information” [836] of the GDM instructions to create a file containing
dbus-launch.
• The examples shown previously use dbus-launch to specify a program to be run. This has the benefit (when also
using the --exit-with-session parameter) of stopping the session daemon when the specified program is
stopped. You can also start the session daemon in your system or personal startup scripts by adding the following
lines:
# Start the D-BUS session daemon
eval `dbus-launch`
export DBUS_SESSION_BUS_ADDRESS
This method will not stop the session daemon when you exit your shell, therefore you should add the following
line to your ~/.bash_logout file:
# Kill the D-BUS session daemon
kill $DBUS_SESSION_BUS_PID
332
Beyond Linux® From Scratch - Version 6.3
• A hint has been written that provides ways to start scripts using the KDM session manager of KDE. The
concepts in this hint could possibly used with other session managers as well. The hint is located at http://www.
linuxfromscratch.org/hints/downloads/files/execute-session-scripts-using-kdm.txt.
Contents
Installed Programs: dbus-cleanup-sockets, dbus-daemon, dbus-launch, dbus-monitor, dbus-send,
dbus-uuidgen
Installed Library: libdbus-1.{so,a}
Installed Directories: /etc/dbus-1, /usr/include/dbus-1.0, /usr/lib/dbus-1.0, /usr/share/dbus-1,
/usr/share/doc/dbus-1.0.2, /usr/share/man/man3dbus, /var/lib/dbus and /var/run/dbus
Short Descriptions
dbus-cleanup-sockets is used to clean up leftover sockets in a directory.
dbus-daemon is the D-BUS message bus daemon.
dbus-launch is used to start dbus-daemon from a shell script. It would normally be called from
a user's login scripts.
dbus-monitor is used to monitor messages going through a D-BUS message bus.
dbus-send is used to send a message to a D-BUS message bus.
dbus-uuidgen is used to generate or read a universally unique ID.
libdbus-1.{so,a} contains the API functions used by the D-BUS message daemon. D-BUS is first
a library that provides one-to-one communication between any two applications;
dbus-daemon is an application that uses this library to implement a message bus
daemon.
333
Beyond Linux® From Scratch - Version 6.3
HAL-0.5.9.1
Introduction to HAL
HAL is a hardware abstraction layer, which is a piece of software that provides a view of the various hardware
attached to a system. In addition to this, HAL keeps detailed metadata for each piece of hardware and provides hooks
such that system and desktop-level software can react to changes in the hardware configuration in order to maintain
system policy.
The most important goal of HAL is to provide plug-and-play facilities for UNIX-like desktops with focus on providing
a rich and extensible description of device characteristics and features. One example of the functionality provided
by HAL is when you plug in a USB storage device. HAL can automatically create a mount point in /media and
mount the device.
Package Information
• Download (HTTP): http://freedesktop.org/~david/dist/hal-0.5.9.1.tar.gz
•
• Download MD5 sum: 6a40f49f964e64358e53652038f3059f
• Download size: 1.5 MB
• Estimated disk space required: 24 MB
• Estimated build time: 0.5 SBU
HAL Dependencies
Required
Recommended
PCI Utilities-2.2.3 (with a current pci.ids file) and usbutils-0.72 (with a current usb.ids file)
Python-2.5.2
334
Beyond Linux® From Scratch - Version 6.3
Optional
GTK-Doc-1.8, libusb-0.1.12, Parted*, libsmbios, PolicyKit, and intltool-0.35.5
* Use the following command after changing into the HAL source directory to modify the package configure script
if you have Parted version 1.8.7 installed.
Installation of HAL
You must create a dedicated user and group before installing the package. Though the default BLFS instructions run
the HAL daemon as the root user, a configuration file is installed which has the dedicated user's name hard-coded in
it. This causes a confusing message to be generated when starting the D-BUS daemon. Issue the following commands
as the root user:
./configure --prefix=/usr \
--sysconfdir=/etc \
--libexecdir=/usr/lib/hal \
--localstatedir=/var &&
make
make install
make install
Command Explanations
--libexecdir=/usr/lib/hal: This parameter forces the installation of libexec files to /usr/lib/hal
instead of /usr/libexec.
335
Beyond Linux® From Scratch - Version 6.3
--localstatedir=/var: This parameter forces the creation of the pid file to /var/run/hald instead of
/usr/var/run/hald.
--enable-docbook-docs --docdir=/usr/share/doc/hal-0.5.9.1: If libxml2-2.6.31 and xmlto
are available, these parameters enable the HAL specification documentation to be built.
Run-Time Dependencies
A few more packages enable more functionality in HAL at run-time. These include Eject, ConsoleKit, dmidecode,
Device-mapper, Cryptsetup-LUKS, and pm-utils.
The hal-device-manager program requires several additional Python modules to be available at runtime.
These are D-Bus Python Bindings-0.82.0, PyGTK-2.10.6 (including the gtk and gtk.libglade modules), and
Gnome-Python-2.18.2 (including the gnome.ui module).
Configuring HAL
Config Files
/etc/dbus-1/system.d/hal.conf, /etc/dbus-1/system.d/halusers.conf and /etc/hal/*
Configuration Information
Allowing users to invoke HAL methods
The default setup for HAL is to allow only certain users to invoke methods such as Mount(). These are the
root user and the user determined to be at the active console using pam_console. If you are not set up to use
Linux-PAM-0.99.10.0 and pam_console, create a group that is allowed to invoke HAL methods with the following
commands:
<!-- Allow users in the halusers group invoke HAL methods -->
<policy group="halusers">
<allow send_interface="org.freedesktop.Hal.Device.SystemPowerManagement"/>
<allow send_interface="org.freedesktop.Hal.Device.LaptopPanel"/>
<allow send_interface="org.freedesktop.Hal.Device.Volume"/>
<allow send_interface="org.freedesktop.Hal.Device.Volume.Crypto"/>
</policy>
</busconfig>
EOF
Now add the users you would like to the halusers group to use HAL.
336
Beyond Linux® From Scratch - Version 6.3
Note that these users still need to have appropriate permissions to access the devices that HAL will invoke its methods
on.
With the above configuration in place, authorized users now have the ability to unmount disk partitions mounted at
non-standard locations such as /pub. If you'd like to restrict this policy to only drives which are considered removable
or hotpluggable, add the following configuration file as the root user:
<deviceinfo version="0.2">
<device>
<match key="@block.storage_device:storage.hotpluggable" bool="false">
<match key="@block.storage_device:storage.removable" bool="false">
<merge key="volume.ignore" type="bool">true</merge>
</match>
</match>
</device>
</deviceinfo>
EOF
337
Beyond Linux® From Scratch - Version 6.3
as mentioned in the report, “for every new device (let's say your friend's USB stick) you have to first not mount it,
then change options and then mount”. Xfce, if compiled with HAL support, hard-codes the mount options without
any means to override them, which is even worse. In KDE and Xfce, if the built-in default mount options are not
suitable, it is needed to mention every possible removable storage device in /etc/fstab with the correct options,
thus mostly defeating the point of installing HAL.
In order to adjust the default mount options, GNOME users should change the /system/storage/default_
options/[fs_type]/mount_options GConf key either using GConf Editor-2.18.0, or from the command
line, as demonstrated in the following example:
338
Beyond Linux® From Scratch - Version 6.3
The list of mount options permitted in the default HAL configuration resides in the
/usr/share/hal/fdi/policy/10osvendor/20-storage-methods.fdi file. GNOME and KDE
users may want to use options not in this list (in the above example, this applies to the usefree option). In this case,
as root user, create a custom policy file that mentions unknown mount options:
<!--
This file is used to set custom options to the HAL policy settings.
The default policy settings are defined in files contained in the
/usr/share/hal/fdi/policy subdirectories. User defined customizations
should be in files contained in the /etc/hal/fdi/policy directory.
-->
<deviceinfo version="0.2">
<device>
</device>
</deviceinfo>
EOF
Boot Script
To automatically start the hald daemon when the system is rebooted, install the /etc/rc.d/init.
d/haldaemon bootscript from the blfs-bootscripts-20080816 package.
339
Beyond Linux® From Scratch - Version 6.3
Important
If the system-wide D-BUS daemon was running during the installation of HAL, ensure you stop and restart
the D-BUS daemon before attempting to start the hald daemon.
make install-haldaemon
Contents
Installed Programs: hal-device, hal-device-manager, hal-disable-polling, hal-find-by-capability,
hal-find-by-property, hal-get-property, hal-is-caller-locked-out, hal-lock,
hal-set-property, hald and lshal
Installed Libraries: libhal.{so,a} and libhal-storage,{so,a}
Installed Directories: /etc/hal, /usr/include/hal, /usr/lib/hal, /usr/share/doc/hal-0.5.9.1, /usr/share/hal,
/var/cache/hald, /var/lib/hal, and /var/run/hald
Short Descriptions
hal-device is used to create, remove or show a HAL device.
hal-device-manager shows a graphical representation of all the devices HAL is aware of. Here is
a screenshot of hal-device-manager communicating with the HAL daemon
and displaying a tree of device objects. The shown properties in the screenshot
are for a device object representing a hard disk.
hal-disable-polling can be used to to disable and enable media detection on drives with removable
storage.
hal-find-by-capability prints the Unique Device Identifiers for HAL device objects of a given
capability.
hal-find-by-property prints the Unique Device Identifiers for HAL device objects where a given
property assumes a given value.
hal-get-property retrieves a property from a device.
hal-set-property attempts to set property for a device. Note that, due to security considerations,
it may not be possible to set a property.
hal-is-caller-locked-out determines if a specific caller is locked out of a specific D-Bus interface on
a specific device.
hald is the HAL daemon program.
lshal shows all devices and their properties. If the --monitor option is given then the
device list and all devices are monitored for changes.
libhal.{so,a} contains the API functions required by the HAL programs.
libhal-storage.{so,a} contains the API functions required by the HAL storage and volume utility
programs.
340
Beyond Linux® From Scratch - Version 6.3
341
Beyond Linux® From Scratch - Version 6.3
DejaGnu-1.4.4
Introduction to DejaGnu
DejaGnu is a framework for running test suites on GNU tools. It is written in expect, which uses Tcl (Tool command
language).
Package Information
• Download (HTTP): http://freshmeat.net/redir/dejagnu/12564/url_tgz/dejagnu-1.4.4.tar.gz
• Download (FTP): ftp://ftp.gnu.org/pub/gnu/dejagnu/dejagnu-1.4.4.tar.gz
• Download MD5 sum: 053f18fd5d00873de365413cab17a666
• Download size: 1.08 MB
• Estimated disk space required: 8.5 MB
• Estimated build time: .04 SBU
DejaGnu Dependencies
Required (Run-time Only)
Expect-5.43.0
Optional
DocBook-utils-0.6.14
Installation of DejaGnu
Install DejaGnu by running the following commands:
Contents
Installed Program: runtest
Installed Libraries: None
Installed Scripts: There are numerous Expect scripts installed in the /usr/share/dejagnu
hierarchy.
Installed Directory: /usr/share/dejagnu
Short Descriptions
runtest is the DejaGnu test driver program. It is used to control what tests to run, and variations on how to run
them.
342
Beyond Linux® From Scratch - Version 6.3
Doxygen-1.5.2
Introduction to Doxygen
The Doxygen package contains a documentation system for C++, C, Java, Objective-C, Corba IDL and to some
extent PHP, C# and D. This is useful for generating HTML documentation and/or an off-line reference manual from
a set of documented source files. There is also support for generating output in RTF, PostScript, hyperlinked PDF,
compressed HTML, and Unix man pages. The documentation is extracted directly from the sources, which makes it
much easier to keep the documentation consistent with the source code.
You can also configure Doxygen to extract the code structure from undocumented source files. This is very useful to
quickly find your way in large source distributions. Used along with Graphviz, you can also visualize the relations
between the various elements by means of include dependency graphs, inheritance diagrams, and collaboration
diagrams, which are all generated automatically.
Package Information
• Download (HTTP): http://ftp.stack.nl/pub/users/dimitri/doxygen-1.5.2.src.tar.gz
• Download (FTP): ftp://ftp.stack.nl/pub/users/dimitri/doxygen-1.5.2.src.tar.gz
• Download MD5 sum: f2782e5bd31a7d10b092500bf0d96ae2
• Download size: 3.5 MB
• Estimated disk space required: 56 MB
• Estimated build time: 1.7 SBU (includes building the GUI frontend)
Doxygen Dependencies
Optional
Qt-3.3.8b, Graphviz-2.12, Python-2.5.2, teTeX-3.0, ESP Ghostscript-8.15.4 or AFPL Ghostscript-8.53
Installation of Doxygen
Install Doxygen by running the following commands:
./configure --prefix /usr \
--docdir /usr/share/doc &&
make
This package does not come with a test suite.
Now, as the root user:
make install
If you wish to generate and install the package documentation (note that man pages have already been installed),
you must have Python, teTeX (for HTML docs) and Ghostscript (for PDF docs) installed, then issue the following
command as the root user:
make install_docs
Command Explanations
--with-doxywizard: Use this parameter if Qt is installed and you wish to build the GUI front-end.
343
Beyond Linux® From Scratch - Version 6.3
Configuring Doxygen
There is no real configuration necessary for the Doxygen package although three additional packages are required if
you wish to use extended capabilities. If you need to use the language translation features, you must have Python-2.5.2
installed. If you require formulas to create PDF documentation, then you must have teTeX-3.0 installed. If you require
formulas to convert PostScript files to bitmaps, then you must have AFPL Ghostscript-8.53 or ESP Ghostscript-8.15.4
installed.
Contents
Installed Programs: doxygen, doxytag, and optionally, doxywizard
Installed Libraries: None
Installed Directory: /usr/share/doc/doxygen
Short Descriptions
doxygen is a command-line based utility used to generate template configuration files and then generate
documentation from these templates. Use doxygen --help for an explanation of the command-line
parameters.
doxytag is used to generate a tag file and/or a search index for a set of HTML files.
doxywizard is a GUI front-end for configuring and running doxygen.
344
Beyond Linux® From Scratch - Version 6.3
Expect-5.43.0
Introduction to Expect
The Expect package contains tools for automating interactive applications such as telnet, ftp, passwd, fsck, rlogin,
tip, etc. Expect is also useful for testing these same applications as well as easing all sorts of tasks that are prohibitively
difficult with anything else.
Package Information
• Download (HTTP): http://expect.nist.gov/old/expect-5.43.0.tar.gz
•
• Download MD5 sum: 230400129630335b3060a42f66fec11d
• Download size: 525 KB
• Estimated disk space required: 4.6 MB
• Estimated build time: 0.07 SBU
Additional Downloads
• Required Patch: http://www.linuxfromscratch.org/patches/blfs/6.3/expect-5.43.0-spawn-2.patch
Expect Dependencies
Required
Tcl-8.4.18
Optional
Tk-8.4.18
Installation of Expect
Install Expect by running the following commands:
Command Explanations
-with-tcl=/usr/lib: This parameter is required in some cases to link in the Tcl library.
345
Beyond Linux® From Scratch - Version 6.3
Configuring Expect
Config Files
$exp_library/expect.rc and ~/.expect.rc
Configuration Information
Reference the expect man page for information about utilizing the expect.rc configuration files. Additionally,
many of the tools contained in the Expect package will use their own configuration files. Reference the respective
man page, or examine the script directly for configuration file information.
Contents
Installed Programs: autoexpect, autopasswd, cryptdir, decryptdir, dislocate, expect, ftp-rfc, kibitz, lpunlock,
mkpasswd, passmass, rftp, rlogin-cwd, timed-read, timed-run, unbuffer, weather,
and optionally (if Expect was linked against Tk), expectk, multixterm, tknewsbiff,
tkpasswd, xkibitz, and xpstat
Installed Library: libexpect5.43.{so,a}
Installed Directory: /usr/lib/expect5.43
Short Descriptions
autoexpect generates an Expect script from watching a session.
autopasswd is a wrapper to make passwd(1) be non-interactive.
cryptdir encrypts all files in a directory.
decryptdir decrypts all files in a directory.
dislocate allows processes to be disconnected and reconnected to a terminal.
expect is a program that “talks” to other interactive programs according to a script.
ftp-rfc retrieves an RFC (or the index) from UUNET.
kibitz allows two (or more) people to interact with one shell (or any arbitrary program).
lpunlock unhangs a printer which claims it is “waiting for lock”.
mkpasswd generates passwords and can apply them automatically to users.
passmass changes a password on multiple machines.
rftp is much like ftp except it uses ~g and ~p instead of mget and mput.
rlogin-cwd is rlogin except it uses the local current directory as the current working directory
on the remote machine.
timed-read reads a complete line from stdin and aborts after a given number of seconds.
timed-run runs a program for a given amount of time.
unbuffer disables the output buffering that occurs when program output is redirected.
346
Beyond Linux® From Scratch - Version 6.3
weather retrieves a weather report (courtesy University of Michigan) for a given city or
geographical area.
expectk is a combination of Expect with Tk and should run any wish or Expect script.
multixterm creates multiple xterms that can be driven together or separately.
tknewsbiff pops up a window when there is unread news in your favorite newsgroups and
removes the window after you've read the news.
tkpasswd is a script to change passwords using expectk.
xkibitz allows users in separate xterms to share one shell (or any program that runs in an
xterm).
xpstat is a script that acts as a front-end for xpilot.
libexpect5.43.{so,a} contains functions that allow Expect to be used as a Tcl extension or to be used
directly from C or C++ (without Tcl).
347
Beyond Linux® From Scratch - Version 6.3
GC-6.8
Introduction to GC
The GC package contains the Boehm-Demers-Weiser conservative garbage collector, which can be used as a garbage
collecting replacement for the C malloc function or C++ new operator. It allows you to allocate memory basically
as you normally would, without explicitly deallocating memory that is no longer useful. The collector automatically
recycles memory when it determines that it can no longer be otherwise accessed. The collector is also used by a
number of programming language implementations that either use C as intermediate code, want to facilitate easier
interoperation with C libraries, or just prefer the simple collector interface. Alternatively, the garbage collector may
be used as a leak detector for C or C++ programs, though that is not its primary goal.
Package Information
• Download (HTTP): http://www.hpl.hp.com/personal/Hans_Boehm/gc/gc_source/gc6.8.tar.gz
• Download (FTP): ftp://ftp.linux.ee/pub/gentoo/distfiles/distfiles/gc6.8.tar.gz
• Download MD5 sum: 418d38bd9c66398386a372ec0435250e
• Download size: 739 KB
• Estimated disk space required: 7.1 MB
• Estimated build time: 0.2 SBU
Installation of GC
Install GC by running the following commands:
Command Explanations
sed -i "s|\$(datadir)/@PACKAGE@|&-6.8|" ...: This command appends “-6.8” to the default documentation
installation path of /usr/share/doc/gc.
--datadir=/usr/share/doc: This parameter changes the installation path of the documentation to
/usr/share/doc/gc instead of /usr/share/gc.
--enable-cplusplus: This parameter forces the building and installation of the C++ library along with the
standard C library.
348
Beyond Linux® From Scratch - Version 6.3
Contents
Installed Programs: None
Installed Libraries: libgc.{so,a} and libgccpp.{so,a}
Installed Directories: /usr/include/gc and /usr/share/doc/gc-6.8
Short Descriptions
libgc.{so,a} contains a C interface to the conservative garbage collector, primarily designed to replace
the C malloc function.
libgccpp.{so,a} contains a C++ interface to the conservative garbage collector.
349
Beyond Linux® From Scratch - Version 6.3
GCC-4.1.2
Introduction to GCC
The GCC package contains GNU compilers. This package is useful for compiling programs written in C, C++, Fortran,
Java, Objective C and Ada. Also included is GNU Treelang. Treelang is a sample language, useful only to help people
understand how to implement a new language front end to GCC. It is not a useful language in itself other than as an
example or basis for building a new language. Therefore only language developers are likely to have an interest in it.
Note
The Fortran compiler included with the GCC-4.x package now aims to be conformant with the Fortran 95
standard, not the Fortran 77 standard as all previous versions of GCC have been. Please note the following
paragraph copied directly from the GCC-4.1.2 gfortran man page.
“Gfortran is not yet a fully conformant Fortran 95 compiler. It can generate code for most constructs
and expressions, but work remains to be done. In particular, there are known deficiencies with ENTRY,
NAMELIST, and sophisticated use of MODULES, POINTERS and DERIVED TYPES. For those whose
Fortran codes conform to either the Fortran 77 standard or the GNU Fortran 77 language, we recommend
to use g77 from GCC 3.4.x”
Instructions to install the 3.4.6 version of the Fortran compiler can be found in GCC-3.3.6 and on the BLFS
Wiki.
Package Information
• Download (HTTP): http://ftp.gnu.org/gnu/gcc/gcc-4.1.2/gcc-4.1.2.tar.bz2
• Download (FTP): ftp://ftp.gnu.org/gnu/gcc/gcc-4.1.2/gcc-4.1.2.tar.bz2
• Download MD5 sum: a4a3eb15c96030906d8494959eeda23c
• Download size: 39.7 MB
• Estimated disk space required: 1.9 GB
• Estimated build time: 77 SBU (build, test and install all compilers)
GCC Dependencies
Recommended
DejaGnu-1.4.4
Note
If you plan to compile Ada, you will need to install GNAT temporarily to satisfy the circular dependency
when you recompile GCC to include Ada. The download location shown below requires that you create
an account on the AdaCore site before you can download the package. Nothing is required other than a
valid email address.
Ensure you download the 2005 version of the GNAT compiler. The 2006 version will not work. The
file name you need is: gnat-gpl-2005-i686-gnu-linux-gnu-libc2.3-bin.tar.gz.
350
Beyond Linux® From Scratch - Version 6.3
Installation of GNAT
Install GNAT by running the following command as the root user:
The GNAT compiler can be invoked by executing the gcc binary installed in /opt/gnat/bin.
cd .. &&
rm -rf gnat-gpl-2005-i686-gnu-linux-gnu-libc2.3-bin
Prepare to compile GCC by placing the GNAT version of gcc at the beginning of the PATH variable by using the
following commands:
PATH_HOLD=$PATH &&
export PATH=/opt/gnat/bin:$PATH_HOLD
Installation of GCC
Install GCC by running the following commands:
Important
The installation process may overwrite your existing GCC gcc and c++ compilers and libraries. It is highly
recommended that you have the Tcl, Expect and DejaGnu packages installed before beginning the build
so you can run the full suite of tests.
Do not continue with the make install command until you are confident the build was successful. You
can compare your test results with those found at http://gcc.gnu.org/ml/gcc-testresults/. There's also an
i686 platform test result produced by an LFS-SVN-20070304 system at http://anduin.linuxfromscratch.
org/files/BLFS/6.3/gcc412_test.txt. You may also want to refer to the information found in the GCC section
of Chapter 6 in the LFS book (../../../../lfs/view/6.3/chapter06/gcc.html).
351
Beyond Linux® From Scratch - Version 6.3
The instructions below perform a “make bootstrap” instead of just a plain “make” intentionally. Even though it is
assumed that the current version of GCC is installed in LFS, because this installation includes the Ada compiler as
an installed language, a bootstrap is required. The GNAT compiler must be used for stage1 of the bootstrap in order
to build Ada. If the process didn't use a “bootstrap” you could end up having a gcc installed on the system that was
produced by a foriegn compiler.
sed -i 's/install_to_$(INSTALL_DEST) //' libiberty/Makefile.in &&
sed -i 's@\./fixinc\.sh@-c true@' gcc/Makefile.in &&
sed -i 's/@have_mktemp_command@/yes/' gcc/gccbug.in &&
mkdir ../gcc-build &&
cd ../gcc-build &&
../gcc-4.1.2/configure \
--prefix=/usr \
--libexecdir=/usr/lib \
--enable-shared \
--enable-threads=posix \
--enable-__cxa_atexit \
--enable-clocale=gnu \
--enable-languages=c,c++,ada,fortran,java,objc,treelang &&
make bootstrap &&
make -k check &&
../gcc-4.1.2/contrib/test_summary
Now, as the root user:
make install &&
ln -v -sf ../usr/bin/cpp /lib &&
ln -v -sf gcc /usr/bin/cc &&
chown -v -R root:root \
/usr/lib/gcc/i686-pc-linux-gnu/4.1.2/include &&
chown -v -R root:root \
/usr/lib/gcc/i686-pc-linux-gnu/4.1.2/ada{lib,include}
The libffi interface header is installed in a location where other packages will not be able to find it. If you included
Java as one of the installed languages, create a symbolic link in /usr/include to remedy this:
ln -v -sf `find /usr/lib/gcc -name ffitarget.h` /usr/include
As the root user, remove the GNAT installation:
rm -rf /opt/gnat
Now, as the unprivileged user, restore your old PATH:
export PATH=$PATH_HOLD &&
unset PATH_HOLD
Command Explanations
The three sed commands are the same ones used during the build of LFS. A fourth one in LFS is ommitted
intentionally, due to the bootstrap build.
352
Beyond Linux® From Scratch - Version 6.3
mkdir ../gcc-build; cd ../gcc-build: The GCC documentation recommends building the package in a dedicated build
directory.
--enable-shared --enable-threads=posix --enable-__cxa_atexit: These parameters are
required to build the C++ libraries to published standards.
--enable-clocale=gnu: This command is a failsafe for incomplete locale data.
--enable-languages=c,c++,ada,fortran,java,objc,treelang: This command identifies which
languages to build. You may modify this command to remove undesired languages.
make -k check: This command runs the test suite without stopping if any errors are encountered.
../gcc-4.1.2/contrib/test_summary: This command will produce a summary of the test suite results. You can append
| grep -A7 Summ to the command to produce an even more condensed version of the summary. You may also wish
to redirect the output to a file for review and comparison later on.
ln -v -sf ../usr/bin/cpp /lib: This command creates a link to the C PreProcessor as some packages expect it to be
installed in the /lib directory.
ln -v -sf gcc /usr/bin/cc: This link is created as some packages refer to the C compiler using an alternate name.
chown -v -R root:root /usr/lib/gcc/i686-pc-linux-gnu/...: If the package is built by a user other than root, the
ownership of the installed include and adalib directories (and their contents) will be incorrect. These commands
change the ownership to the root user and group . Omit the command changing the Ada directories if you did not
include Ada as one of the installed languages.
Contents
Installed Programs: addr2name.awk, fastjar, gcj, gcj-dbtool,gcjh, gfortran, gij, gjnih, gnat, gnatbind, gnatbl,
gnatchop, gnatclean, gnatfind, gnatkr, gnatlink, gnatls, gnatmake, gnatname, gnatprep,
gnatxref, gprmake, grepjar, grmic, grmiregistry, gtreelang, jcf-dump, jv-convert,
jv-scan and architecture specific names for gcj and gcjh
Installed Libraries: libffi.{so,a}, libgcj.{so,a}, libgfortran.{so,a}, libgfortranbegin.a, libgij.{so,a},
libobjc.{so,a} and numerous other run-time libraries and executables in /usr/lib/gcc
Installed Directories: /usr/include/c++/4.1.2/{gcj,gnu,java,javax,org},
/usr/lib/gcc/i686-pc-linux-gnu/4.1.2/ada{include,lib}, /usr/lib/gcj-4.1.2,
/usr/lib/security and /usr/share/java
Some program and library names and descriptions are not listed here, but can be found at ../../../../lfs/view/6.
3/chapter06/gcc.html#contents-gcc as they were initially installed during the building of LFS.
Short Descriptions
addr2name.awk emulates some of the functionality of addr2line.
fastjar is an archive tool for Java archives.
gcj is an ahead-of-time compiler for the Java language.
gcj-dbtool is a tool for creating and manipulating class file mapping databases.
gcjh generates header files from Java class files.
gfortran is the Fortran compiler invoked by gcc.
gij is the GNU interpreter for Java bytecode.
353
Beyond Linux® From Scratch - Version 6.3
gjnij is used to generate JNI header files from class files. Running it is equivalent to running gcjh
-jni.
gnat is the Ada compiler invoked by gcc.
gnatbind is used to bind compiled objects.
gnatbl is the Ada linker.
gnatchop is useful for renaming files to meet the standard Ada default file naming conventions.
gnatclean is used to remove files associated with a GNAT project.
gnatfind is the GNAT definition/use finder.
gnatkr is used to determine the crunched name for a given file, when crunched to a specified maximum
length.
gnatlink is used to link programs and build an executable file.
gnatls is the compiled unit browser.
gnatmake is an automatic make facility.
gnatname will list the files associated with a GNAT project.
gnatprep is the GNAT external preprocessor.
gnatxref is the GNAT cross-referencer.
gprmake is a tool used to create Makefiles that support compilation by multiple languages.
grepjar searches jar files for a pattern.
grmic generates stubs for Remote Method Invocation.
grmiregistry starts a remote object registry on the current host.
gtreelang is largely a cut down version of C, designed to showcase the features of the GCC code
generation back end. Only those features that are directly supported by the GCC code generation
back end are implemented. Features are implemented in a manner which is easiest and clearest
to implement. Not all or even most code generation back end features are implemented.
The intention is to add features incrementally until most features of the GCC back end are
implemented in Treelang.
jcf-dump prints information about Java class files.
jv-convert converts files from one encoding to another.
jv-scan prints information about Java source files.
354
Beyond Linux® From Scratch - Version 6.3
GCC-3.3.6
Introduction to GCC-3.3.6
There are several reasons why you may wish to install GCC-3.3.6. Some packages have not been updated so they
can be successfully compiled by GCC-4.1.2 as version 4.x.x of GCC is much stricter in enforcing coding standards.
Additionally, some pre-compiled packages may require the GCC-3.3.6 libraries at run-time. Another reason you may
need to install GCC-3.3.6 is to use the g77 Fortran 77 compiler provided by pre-4.x.x versions of GCC. GCC-4.x.x
only includes gfortran, a Fortran 95 compatible compiler that is not yet ready to be used in a production environment.
If all you need is a working {f,g}77 Fortran 77 compiler, you may wish to use the one provided by GCC-3.4.x. This
is what the GCC developers recommend. Instructions for building the GCC-3.4.x Fortran compiler can be found on
the BLFS Wiki.
Package Information
• Download (HTTP): http://ftp.gnu.org/gnu/gcc/gcc-3.3.6/gcc-3.3.6.tar.bz2
• Download (FTP): ftp://ftp.gnu.org/gnu/gcc/gcc-3.3.6/gcc-3.3.6.tar.bz2
• Download MD5 sum: 6936616a967da5a0b46f1e7424a06414
• Download size: 24 MB
• Estimated disk space required: 433 MB (includes running the test suite)
• Estimated build time: 5.2 SBU (additional 11.2 SBU to run the test suite)
Additional Downloads
• Required patch: http://www.linuxfromscratch.org/patches/blfs/6.3/gcc-3.3.6-no_fixincludes-1.patch
• Required patch: http://www.linuxfromscratch.org/patches/blfs/6.3/gcc-3.3.6-linkonce-1.patch
GCC-3.3.6 Dependencies
Optional
DejaGnu-1.4.4 (required to run the full test suite)
Installation of GCC-3.3.6
Install GCC-3.3.6 by running the following commands:
patch -Np1 -i ../gcc-3.3.6-no_fixincludes-1.patch &&
patch -Np1 -i ../gcc-3.3.6-linkonce-1.patch &&
mkdir ../gcc-build &&
cd ../gcc-build &&
../gcc-3.3.6/configure --prefix=/opt/gcc-3.3.6 \
--enable-shared --enable-languages=c,c++ --enable-threads=posix &&
make bootstrap
If desired, run the test suite using the following commands. The test_summary commands create log files which can
be compared to known good results located at http://anduin.linuxfromscratch.org/files/BLFS/6.3/gcc336_test.txt.
make -k check &&
../gcc-3.3.6/contrib/test_summary >test_summary.log 2>&1 &&
../gcc-3.3.6/contrib/test_summary | \
grep -A7 Summ >test_summary_short.log 2>&1
355
Beyond Linux® From Scratch - Version 6.3
Command Explanations
mkdir ../gcc-build; cd ../gcc-build: The GCC development team recommends building in a separate directory.
--enable-shared --enable-languages=c,c++ --enable-threads=posix: Configures GCC to
build the C and C++ compilers and enable the related C++ options. In addition to c and c++, you can add f77 for
FORTRAN (called g77). Note that GCC-4 no longer provides a FORTRAN 77 compiler.
mv -v /opt/gcc-3.3.6/lib/libstdc++.so.5* /usr/lib: Moves the C++ library to the standard lib directory to avoid having
to add /opt/gcc-3.3.6/lib to /etc/ld.so.conf.
Configuring GCC-3.3.6
Configuration information
If you only need the GCC-3.3.6 C++ library, you may delete /opt/gcc-3.3.6.
Whenever you need to use GCC-3.3.6 instead of your system installed compiler, add /opt/gcc-3.3.6/bin to
the front of your PATH or (preferably) set the CC environment variable before compiling the concerned package.
If you use g77 programs, you also should move the libg2c.* libraries and symbolic links to /usr/lib. Using export
LD_LIBRARY_PATH=/opt/gcc-3.3.6/lib or updating /etc/ld.so.conf to point to /opt/gcc-3.3.6/lib
is not recommended as it may conflict with your normal libraries.
Contents
Installed Programs: c++, cpp, g++, gcc, gccbug, gcov, and architecture specific names of these programs.
Installed Libraries: libgcc_s.so, libiberty.a, libstdc++.{a,so}, libsupc++.a, and other support libraries and
files.
Installed Directory: /opt/gcc-3.3.6
Short Descriptions
The GCC-3.3.6 package contains the gcc-3.3.6 C and C++ compilers and the GCC-3.3.6 libstdc++.so library
that is required by some commercial and pre-compiled packages.
356
Beyond Linux® From Scratch - Version 6.3
Guile-1.8.2
Introduction to Guile
The Guile package contains the Project GNU's extension language library. Guile also contains a stand alone Scheme
interpreter.
Package Information
• Download (HTTP): http://ftp.gnu.org/pub/gnu/guile/guile-1.8.2.tar.gz
• Download (FTP): ftp://ftp.gnu.org/pub/gnu/guile/guile-1.8.2.tar.gz
• Download MD5 sum: a4b64a992deae0532f8015bcc6c40784
• Download size: 3.7 MB
• Estimated disk space required: 49 MB (additional 40 MB to install all the docs)
• Estimated build time: 1.2 SBU (includes building all documentation)
Guile Dependencies
Required
GMP-4.2.2
Optional
Emacs-22.1
Installation of Guile
Install Guile by running the following commands:
sed -i -e '20,$ d' \
-e 's|slib)|&)\n(load-from-path "slib/guile.init")|' \
ice-9/slib.scm
unset DIRNAME
357
Beyond Linux® From Scratch - Version 6.3
If you built the alternate formats of the documentation, install them using the following commands issued by the
root user:
Command Explanations
sed -i -e '20,$ d' -e '...' ice-9/slib.scm: This command is used to modify the Guile SLIB initialization script. There are
incompatibilities with newer versions of SLIB and this command modifes the script to use the installed SLIB script.
Contents
Installed Programs: guile, guile-config, guile-snarf, and guile-tools
Installed Libraries: libguile.{so,a}, libguile-srfi-srfi-*.{so,a} and /libguilereadline-v-17.{so,a}
Installed Directories: /usr/include/guile, /usr/include/libguile, /usr/share/doc/guile-1.8.2 and /usr/share/guile
Short Descriptions
guile is a stand-alone Scheme interpreter for Guile.
guile-config is a Guile script which provides the information necessary to link your programs against the
Guile library, in much the same way pkg-config-0.22 does.
guile-snarf is a script to parse declarations in your C code for Scheme visible C functions, i Scheme objects
to be used by C code, etc.
358
Beyond Linux® From Scratch - Version 6.3
guile-tools is a wrapper program installed along with guile which knows where a particular module is
installed and calls it passing its args to a program.
359
Beyond Linux® From Scratch - Version 6.3
JDK-6 Update 5
Introduction to JDK
The JDK 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.
Note
Sun has recently decided not to provide JRL sources for the latest update versions of the JDK. Sun is actively
working on a GPL'd version of the JDK, titled OpenJDK. This new JDK will be licensed under the GNU
General Public License, version 2, with the Classpath Exception. A stable OpenJDK was not available at
the time of writing.
Package Information
• Download (jdk-6u5-linux-i586.bin): http://java.sun.com/javase/downloads/index.jsp
• Download MD5 sum: f7528500c17c09546566e05988beda86
• Download size (binary): 67 MB
• Estimated disk space required: 207 MB
• Estimated build time: 0.2 SBU
JDK Dependencies
Optional Runtime Dependencies
ALSA Library-1.0.13, CUPS-1.2.12, and GTK+-2.10.13
Installation of JDK
Tip
The ./jdk-6u5-linux-i586.bin command below unpacks the distribution into a jdk1.6.0_05 directory.
You will be required to view, and then accept (by entering a y keypress), a license agreement before any
files are unpacked. If you are scripting (automating) the build, you'll need to account for this. There is
information about automating build commands in the Automated Building Procedures section of Chapter
2. Towards the end of this section, specific information for automating this type of installation is discussed.
Normally in BLFS, the files are unpacked into a subdirectory and the starting point for the installation procedures is
that location. For this application only, start in the directory where all the downloaded files are located.
Install the JDK with the following commands:
chmod 755 jdk-6u5-linux-i586.bin &&
./jdk-6u5-linux-i586.bin
Note
The installation will end with a message "./jdk-6u5-linux-i586.bin: line 43: 20283 Aborted" as javaprefix is
unset in the environment. This is by design as GTK+ may not be installed during the installation, however,
the installation will still exit with a zero error value if scripting the build.
360
Beyond Linux® From Scratch - Version 6.3
cd jdk1.6.0_05 &&
install -v -m755 -d /opt/jdk-6u5 &&
mv -v * /opt/jdk-6u5 &&
chown -v -R root:root /opt/jdk-6u5 &&
ln -v -sf xawt/libmawt.so \
/opt/jdk-6u5/jre/lib/i386/ &&
cd ..
Recent versions of libX11 break libmawt when used with the Xinerama extension. While still the root user, apply
the following sed to work around this problem:
sed -i 's@XINERAMA@FAKEEXTN@g' \
/opt/jdk-6u5/jre/lib/i386/xawt/libmawt.so
Command Explanations
ln -sf xawt/libmawt.so /opt/jdk-6u5/jre/lib/i386/: This fixes linking issues with other applications that expect to
find the motif libraries with the other JDK libraries.
Configuring JDK
Configuration Information
As the root user, create a symlink to the installation directory:
The information below assumes your system is set up using the instructions found in “The Bash Shell Startup Files”.
You may need to extract the relevant information below and incorporate it into your system's startup files if your
system is set up differently.
361
Beyond Linux® From Scratch - Version 6.3
Add the following jdk.sh shell startup file to the /etc/profile.d directory with the following commands as
the root user:
# Adjust PATH
pathappend ${JAVA_HOME}/bin PATH
# End /etc/profile.d/jdk.sh
EOF
The Java plugin is located in $JAVA_HOME/jre/plugin/i?86/ns7/. Make a symbolic link to the file in that
directory from your browser(s) plugins directory.
Important
The plugin must be a symlink for it to work. If not, the browsers will crash when you attempt to load a
Java application.
Contents
Installed Programs: appletviewer, apt, extcheck, idlj, HtmlConverter, jar, jarsigner, java, javac, javadoc,
javah, javap, java-rmi.cgi, javaws, jconsole, jdb, jhat, jinfo, jmap, jps, jrunscript,
jsadebugd, jstack, jstat, jstatd, keytool, native2ascii, orbd, pack200, policytool, rmic,
rmid, rmiregistry, schemagen, serialver, servertool, tnameserv, unpack200, wsgen,
wsimport, and xjc
Installed Libraries: $JAVA_HOME/lib/*, $JAVA_HOME/jre/lib/*, and libjavaplugin_oji.so
Installed Directory: /opt/jdk-6u5
Short Descriptions
appletviewer runs Java applets outside of the context of a browser.
apt is an annotation processing tool.
362
Beyond Linux® From Scratch - Version 6.3
extcheck checks a specified jar file for title and version conflicts with any extensions installed in the
JDK software.
HtmlConverter adds Java auto download to html and asp pages.
idlj generates Java bindings from a given IDL file.
jar combines multiple files into a single jar archive.
jarsigner signs jar files and verifies the signatures and integrity of a signed jar file.
java launches a Java application by starting a Java runtime environment, loading a specified class
and invoking its main method.
javac reads class and interface definitions, written in the Java programming language, and compiles
them into bytecode class files.
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 generates C header and source files that are needed to implement native methods.
javap disassembles a Java class file.
java-rmi.cgi is the Java RMI client.
javaws launches Java application/applets hosted on a network.
jconsole is a graphical console tool to monitor and manage both local and remote Java applications and
virtual machines.
jdb is a simple command-line debugger for Java classes.
jhat parses a java heap dump file and allows viewing in a webbrowser.
jinfo prints Java configuration information for a given Java process, core file, or a remote debug
server.
jmap prints shared object memory maps or heap memory details of a given process, core file, or a
remote debug server.
jps lists the instrumented JVMs on the target system.
jrunscript is a command line script shell.
jsadebugd attaches to a Java process or core file and acts as a debug server.
jstack prints Java stack traces of Java threads for a given Java process, core file, or a remote debug
server.
jstat displays performance statistics for an instrumented JVM.
jstatd is an RMI server application that monitors for the creation and termination of instrumented
JVMs.
keytool is a key and certificate management utility.
native2ascii converts files that contain non-supported character encoding into files containing Latin-1 or
Unicode-encoded characters.
orbd is used to enable clients to transparently locate and invoke persistent objects on servers in the
CORBA environment.
pack200 is a Java application that transforms a jar file into a compressed pack200 file using the Java
gzip compressor.
363
Beyond Linux® From Scratch - Version 6.3
364
Beyond Linux® From Scratch - Version 6.3
JUnit-4.3.1
Introduction to JUnit
The JUnit package contains a simple, open source framework to write and run repeatable tests. It is an instance of
the xUnit architecture for unit testing frameworks. JUnit features include assertions for testing expected results, test
fixtures for sharing common test data, and test runners for running tests.
Package Information
• Download (HTTP): http://downloads.sourceforge.net/junit/junit4.3.1.zip
•
• Download MD5 sum: 6c22e6733f4ba9d755a437375e3d476e
• Download size: 643 KB
• Estimated disk space required: 5.7 MB
• Estimated build time: less than 0.1 SBU
JUnit Dependencies
Required
UnZip-5.52
Installation of JUnit
Install JUnit by running the following commands as the root user:
install -v -m755 -d /usr/share/{,doc/}junit-4.3.1 &&
chown -R root:root . &&
cp -v -R junit* org /usr/share/junit-4.3.1 &&
cp -v -R *.html *doc /usr/share/doc/junit-4.3.1
Add the junit-4.3.1.jar and /usr/share/junit-4.3.1 directory to your system CLASSPATH
environment variable:
export CLASSPATH=$CLASSPATH:\
/usr/share/junit-4.3.1/junit-4.3.1.jar:/usr/share/junit-4.3.1
To run the JUnit regression self-tests, you'll need to have JDK-6 Update 5 or Jikes installed and the CLASSPATH
environment variable updated. Then, as an unprivileged user, issue:
java org.junit.runner.JUnitCore org.junit.tests.AllTests
Contents
Installed Programs: None
Installed Library: junit-4.3.1.jar
Installed Directories: /usr/share/junit-4.3.1, /usr/share/doc/junit-4.3.1
Short Descriptions
junit-4.3.1.jar contains java classes to support the xUnit framework testing architecture.
365
Beyond Linux® From Scratch - Version 6.3
Librep-0.17
Introduction to Librep
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.
Package Information
• Download (HTTP): http://downloads.sourceforge.net/librep/librep-0.17.tar.gz
•
• Download MD5 sum: ad4ad851ff9f82a5d61024cd96bc2998
• Download size: 1.2 MB
• Estimated disk space required: 13.4 MB
• Estimated build time: 0.47 SBU
Librep Dependencies
Required
GDBM-1.8.3
Optional
GMP-4.2.2 and GCC-4.1.2 (build Java so that libffi is built)
Installation of Librep
Install librep by running the following commands:
make install
Command Explanations
--libexecdir=/usr/lib: This parameter installs files to /usr/lib/rep instead of /usr/libexec/rep.
Contents
Installed Programs: rep, rep-config, rep-remote, rep-xgettext, and repdoc
Installed Libraries: librep.so and numerous modules installed in the /usr/lib/rep hierarchy
Installed Directories: /usr/lib/rep, /usr/share/emacs/site-lisp, and /usr/share/rep
Short Descriptions
rep is the Lisp interpreter.
librep.so contains the functions necessary for the Lisp interpreter.
366
Beyond Linux® From Scratch - Version 6.3
NASM-0.98.39
Introduction to NASM
NASM (Netwide Assembler) is an 80x86 assembler designed for portability and modularity. It includes a disassembler
as well.
Package Information
• Download (HTTP): http://downloads.sourceforge.net/nasm/nasm-0.98.39.tar.bz2
•
• Download MD5 sum: 2032ad44c7359f7a9a166a40a633e772
• Download size: 543 KB
• Estimated disk space required: 17.3 MB (includes building and installing all docs)
• Estimated build time: 0.2 SBU
Additional Downloads
• Required patch to fix a buffer overrun vulnerability: http://www.linuxfromscratch.org/patches/blfs/6.3/nasm-0.
98.39-security_fix-1.patch
NASM Dependencies
Installation of NASM
Install NASM by running the following commands:
To build the base NASM documentation, ensure you have Ghostscript installed and issue:
make doc
To build the RDOFF Postscript documentation, ensure you have teTeX-3.0 installed and issue:
To build the RDOFF PDF documentation, ensure you have Ghostscript installed and issue:
367
Beyond Linux® From Scratch - Version 6.3
If you built the Ghostscript generated documentation, install it using the following commands as the root user:
Lastly, if you built the RDOFF Postscript documentation, install it using the following command as the root user:
Contents
Installed Programs: nasm, ndisasm, ldrdf, rdf2bin, rdf2com, rdf2ihx, rdfdump, rdflib, and rdx
Installed Libraries: None
Installed Directories: /usr/share/doc/nasm
Short Descriptions
nasm is a portable 80x86 assembler.
ndisasm is an 80x86 binary file disassembler.
ldrdf is an RDOFF linker.
rdfdump dumps the contents of an RDOFF file.
rdflib is an RDOFF librarian.
rdx is used to load and execute an RDOFF module.
368
Beyond Linux® From Scratch - Version 6.3
PDL-2.4.2
Introduction to PDL
PDL (Perl Data Language) gives standard Perl the ability to compactly store and quickly manipulate the large
N-dimensional data arrays common to scientific computing. PDL turns Perl into an array-oriented, numerical
language similar to such commercial packages as IDL and MatLab. One can write simple Perl expressions to
manipulate entire numerical arrays all at once.
PDL provides extensive numerical and semi-numerical functionality with support for two- and three-dimensional
visualisation as well as a variety of I/O formats. The goal is to allow PDL to interact with a variety of external
numerical packages, graphics and visualisation systems. Easy interfacing to such systems is one of the core design
features of PDL.
Package Information
• Download (HTTP): http://downloads.sourceforge.net/pdl/PDL-2.4.2.tar.gz
• Download (FTP): ftp://ftp.linux.ee/pub/gentoo/distfiles/distfiles/PDL-2.4.2.tar.gz
• Download MD5 sum: edd056a006eae8b46e8ef804b9774a93
• Download size: 2.1 MB
• Estimated disk space required: 74 MB
• Estimated build time: 2.56 SBU
PDL Dependencies
PDL is a collection of over 90 Perl modules. Some of these modules require additional libraries, packages and/or Perl
modules for full functionality. Listed below are the modules which require additional software or configuration. If
you don't need a particular module's functionality, you don't need to install its dependencies. The dependency tree
for each module is listed downward, meaning you'll need to start at the bottom of a module's tree and work up. The
dependencies are listed in the same order as they are in the DEPENDENCIES file, found in the package source tree.
This package (and many of the dependency packages) requires a Fortran compiler for full functionality of all the
different modules. The gfortran compiler installed with the current BLFS version of GCC (4.1.2) will not work. If
you want to compile the parts of this package that require a Fortran compiler, you'll need to install a GCC-3.x.x version
of Fortran. The GCC developers recommend using Fortran from GCC-3.4.6. You can find specific instructions to
install a GCC-3.4.6 compiler on the BLFS Wiki. Alternatively, if you have a need to install GCC-3.3.6, you can add
the Fortran compiler to the list of compilers installed in those instructions. Don't forget to put the directory containing
the {g,f}77 commands at the beginning of your PATH environment variable before beginning the compilation.
PDL::NiceSlice
The PDL::NiceSlice module is used to enhance PDL's slice syntax. “Slicing” is a term used in the process of creating
a cross-section, or slice, of a PDL object (piddle).
• Filter-1.32
Inline::Pdlpp
The Inline::Pdlpp module allows you to define fast PP code inline in your scripts.
• Inline-0.44
369
Beyond Linux® From Scratch - Version 6.3
• Parse-RecDescent-1.94
Perldl
perldl is a simple shell (written in Perl) which allows interactive use of PDL.
• Term-ReadLine-Gnu-1.15
PDL::Graphics::TriD
The PDL::Graphics::TriD module implements a generic 3D plotting interface for PDL. Points, lines and surfaces
(among other objects) are supported.
• OpenGL (X Window System)
PDL::Graphics::PGPLOT
The PDL::Graphics::PGPLOT module is a convenience interface to the PGPLOT commands, implemented using the
object oriented PGPLOT plotting package in the PDL::Graphics::PGPLOT::Window module.
• PGPLOT-2.19
• ExtUtils-F77-1.15
• a Fortran compiler
• PGPLOT
• X Window System, LessTif-0.95.0, Tk-8.4.18, and a Fortran compiler
PDL::Graphics::PLPLOT
The PDL::Graphics::PLPLOT module is a simple interface to the PLplot plotting library.
• PLplot
• pkg-config-0.22, X Window System, GTK+-1.2.10, FreeType-2.3.7, GD, SVGAlib, GNOME Libraries-1.4,
JDK-6 Update 5, Tk-8.4.18, Python-2.5.2 (with Numeric Python), a Fortran compiler, SWIG, and iTcl
PDL::Graphics::IIS
The PDL::Graphics::IIS module provides an interface to any image display “device” which supports the “IIS
protocol”.
• SAOimage
• X Window System
• X11 IRAF
• X Window System and Tk-8.4.18
PDL::Graphics::Karma
The PDL::Graphics::Karma module is an interface to Karma visualisation applications.
• Karma
• X Window System
Note: You may need to modify the WHERE_KARMA => undef line in the source tree perldl.conf file to point
to your installation of Karma
370
Beyond Linux® From Scratch - Version 6.3
PDL::IO::Pic
The PDL::IO::Pic module implements I/O for a number of popular image formats by exploiting the xxxtopnm and
pnmtoxxx converters from the Netpbm package and the cjpeg and djpeg converters. It also contains the routine
wmpeg to write MPEG movies from piddles representing image stacks.
• Netpbm, libjpeg-6b and mpeg_encode
PDL::Slatec
The PDL::Slatec module serves the dual purpose of providing an interface to parts of the slatec library and showing
how to interface PDL to an external library. The module provides routines to manipulate matrices, calculate FFTs,
fit data using polynomials, and interpolate/integrate data using piecewise cubic Hermite interpolation.
• ExtUtils-F77-1.15
• a Fortran compiler
PDL::GSL
The PDL::GSL module is an interface to the functions provided by the Gnu Scientific Library.
• GSL
PDL::FFTW
The PDL::FFTW module is a means to interface PDL with the FFTW library. It's similar to the standard FFT routine
but it's usually faster and has support for real transforms. It works well for the types of piddles for which the library
was compiled (otherwise it must do conversions).
• FFTW-2.x
PDL::IO::Browser
PDL::IO::NDF
The PDL::IO::NDF module adds the ability to read and write Starlink N-dimensional data files as N-dimensional
piddles.
• Astro-FITS-Header-2.8.1
• Astro-FITS-CFITSIO-1.03
• CFITSIO
• NDF-1.45
• Starlink-Config-1.00
• Starlink IMG
371
Beyond Linux® From Scratch - Version 6.3
• Starlink NDF (requires the following Starlink modules installed in this order, some will already be
installed if you installed Starlink GSD): HTX, SAE, HLP, CNF, SLA, CHR, EMS, PSX, HDS,
PCS, MER, PRM, PAR, ARY, AST)
• a Fortran compiler
• GSD-1.13
• Starlink-Config-1.00
• Starlink GSD (requires the following Starlink modules installed in this order: HTX, SAE, CNF, CHR,
EMS, PRM)
• a Fortran compiler
Installation of PDL
Install PDL (and all the dependency Perl modules) by running the following commands:
make install
Command Explanations
sed -i '...' Demos/BAD*demo.pm.PL: This is necessary to fix a build issue caused by changes in
ExtUtils::MakeMaker-6.30 which was introduction in Perl-5.8.8.
Configuring PDL
Config Files
~/.perldlrc and local.perldlrc in the current directory
Configuration Information
See http://pdl.sourceforge.net/PDLdocs/perldl.html#the startup file ~/.perldlrc for information about configuring
perldl to suit your needs.
Contents
Installed Programs: pdl, pdldoc, perldl, and pptemplate
Installed Modules: 90+ individual Perl modules
Installed Directories: /usr/lib/perl5/site_perl/5.8.8/i686-linux/{,auto/}PDL
Short Descriptions
pdl is a binary program called from PDL scripts which is used to interface perldl.
pdldoc is a shell interface to PDL documentation.
372
Beyond Linux® From Scratch - Version 6.3
373
Beyond Linux® From Scratch - Version 6.3
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. Installation of the modules shown on this page should be accomplished
by installing the listed dependencies (from the bottom and working up to the top) and then the desired module. Most
references to Perl modules are in the form of Module, Module::SubName or Module::Sub::Name, though sometimes
you'll see Module, Module-SubName or Module-Sub-Name. The references on this page that reflect an external URL
are in the latter form, as these are the official package names.
• Download MD5 sums (HTTP): http://anduin.linuxfromscratch.org/sources/BLFS/6.3/perl-modules/
• Download MD5 sums (FTP): ftp://anduin.linuxfromscratch.org/BLFS/6.3/perl-modules/
Note
Some dependencies, such as the Test::Pod-1.26 module, are used by several of the listed dependencies of
the main module and perhaps also the module being installed. Dependencies such as this are only listed
once in the dependency chain for each main module (typically near the bottom-most dependency) to avoid
redundancy and additional clutter in the instructions.
Archive::Zip-1.20
The Archive::Zip module allows a Perl program to create, manipulate, read, and write Zip archive files. The modules
listed below are installed using the standard Perl module build and installation instructions.
• Archive-Zip-1.20
• Compress::Zlib-2.005
• Test::Pod-1.26 (optionally used during the tests)
Compress::Zlib-2.005
The Compress::Zlib module provides a Perl interface to the Zlib compression library. Most of the functionality
provided by Zlib is available in Compress::Zlib. The module can be split into two general areas of functionality,
namely in-memory compression/decompression and read/write access to gzip files. This module and all the
dependencies are installed using the standard build and installation instructions.
Note
The Compress::Raw::Zlib module requires the following sed after untarring the distribution tarball (before
any other build commands) to use the system-installed copy of Zlib.
374
Beyond Linux® From Scratch - Version 6.3
• Compress-Raw-Zlib-2.005
• IO-Compress-Base-2.005
• IO-Compress-Bzip2-2.005 (used during the tests)
• Compress-Raw-Bzip2-2.005
• IO-Compress-Base-2.005
Date::Manip-5.54
Date::Manip is a set of routines designed to make any common date/time manipulation easy to do. Operations such
as comparing two times, calculating a time a given amount of time from another, or parsing international times are
all easily done. From the very beginning, the main focus of Date::Manip has been to be able to do ANY desired
date/time operation easily.
• Date-Manip-5.54 (uses the standard build and installation instructions)
Finance::Quote-1.13
Finance::Quote is used to get stock quotes from various Internet sources, including Yahoo! Finance, Fidelity
Investments, and the Australian Stock Exchange. There are two methods of using this module – a functional interface
that is depreciated, and an object-orientated method that provides greater flexibility and stability. With the exception
of straight currency exchange rates, all information is returned as a two-dimensional hash (or a reference to such a
hash, if called in a scalar context).
After you've installed the package, issue perldoc Finance::Quote for full information. Alternatively, you can issue
perldoc lib/Finance/Quote.pm after unpacking the distribution tarball and changing into the top-level directory. The
module and dependencies are installed using the standard Perl module build and installation instructions.
Note
To run the regression test suite, you'll need a working Internet connection and then create a symbolic link
to the test directory using the following command after unpacking the tarball and changing into the root
directory of the source tree:
ln -s test t
Some tests will fail depending on certain conditions. See the INSTALL file for full details.
• Finance-Quote-1.13
• HTML::TableExtract-2.10
• libwww-perl-5.806
Finance::QuoteHist-1.11
The Finance::QuoteHist bundle is several modules designed to fetch historical stock quotes from the web. The module
and dependencies are installed using the standard Perl module build and installation instructions.
• Finance-QuoteHist-1.11
• HTML::TableExtract-2.10
375
Beyond Linux® From Scratch - Version 6.3
• libwww-perl-5.806
• Date::Manip-5.54
• Text-CSV-1.05
• Text-CSV_XS-0.52 (optional)
HTML::Parser-3.56
The HTML::Parser distribution is a collection of modules that parse and extract information from HTML documents.
The modules listed below are installed using the standard Perl module build and installation instructions.
• HTML-Parser-3.56
• HTML-Tagset-3.10
• Test::Pod-1.26 (optionally used during the tests)
• libwww-perl-5.806 (run-time requirement for the included HTML::HeadParser module)
HTML::TableExtract-2.10
HTML::TableExtract is a module that simplifies the extraction of the content contained in tables within HTML
documents, extracted either as text or encoded element trees. Tables of note may be specified using Headers, Depth,
Count, Attributes, or some combination of the four. The module and dependencies are installed using the standard
Perl module build and installation instructions.
• HTML-TableExtract-2.10
• HTML-Element-Extended-1.17
• HTML-Tree-3.23
• HTML::Parser-3.56
• Test::Pod-1.26 (optionally used during the tests)
• Test::Pod::Coverage-1.08 (optionally used during the tests)
376
Beyond Linux® From Scratch - Version 6.3
Module::Build-0.2808
The Module::Build module is a system for building, testing, and installing Perl modules. It is meant to be an alternative
to ExtUtils::MakeMaker. Developers may alter the behavior of the module through subclassing in a much more
straightforward way than with MakeMaker. It also does not require a make command on your system. Most of the
Module::Build code is pure-Perl and written in a very cross-platform way.
The Module::Build module (as well as any other Perl module that uses the Module::Build build system) uses modified
build instructions. All the dependencies are installed using the standard Perl module build and installation instructions.
• Module-Build-0.2808
• ExtUtils-ParseXS-2.18
• ExtUtils-CBuilder-0.19
• Archive-Tar-1.32
• IO-Zlib-1.09
• Compress::Zlib-2.005
• Text::Diff-0.35
• Pod-Readme-0.09 (optionally used to create a README file when creating a new module distribution)
• Test-Portability-Files-0.05 (optionally used during the tests)
• Test::Pod::Coverage-1.08 (optionally used during the tests)
• Test::Pod-1.26 (optionally used during the tests)
• Module::Signature-0.55 (required to use the Module::Build “distsign” run-time method and optionally used
during the tests)
• YAML-0.65 (optional, provides additional features to Module::Build)
Module::Info-0.31
The Module::Info module is quite useful for tasks other than just support of other modules. It can be used from
the command-line to tell you if a particular module is included in, or has been installed into your Perl installation.
Additionally, Module::Info can tell you what version of a module is installed and what dependencies are required
for it. You can even use Module::Info to gather dependencies of uninstalled modules. The Module::Info module and
dependencies install using the standard Perl module build and installation instructions.
• Module-Info-0.31
• version-0.74 (optionally used during the tests)
• Module::Build-0.2808 (optional)
• Test::Pod-1.26 (optionally used during the tests)
377
Beyond Linux® From Scratch - Version 6.3
Module::Signature-0.55
The Module::Signature module is used to check and create SIGNATURE files for CPAN distributions. After installing
Module::Signature you can verify the content of a distribution tarball (if it includes a SIGNATURE file) by unpacking
the tarball, changing into the newly created directory and issuing the command cpansign -v. It will check each file's
integrity, as well as the signature's validity. Note that some of the dependencies appear to be circular, however,
they are only run-time conflicts and you should be able to fully utilize them as long as everything is installed.
Module::Signature and the dependency modules are installed using the standard Perl module build and installation
instructions.
• Module-Signature-0.55
• Text::Diff-0.35
• PAR-Dist-0.31
• Archive::Zip-1.20
• libwww-perl-5.806
• Module::Signature-0.55
• Digest-SHA-5.45
• Test::Pod::Coverage-1.08 (optionally used during the tests)
• GnuPG-1.4.7
Net::DNS-0.57
Net::DNS is a DNS resolver implemented in Perl. It can be used to perform nearly any type of DNS query from a
Perl script. The Net::DNS module and all its dependencies are installed using the standard Perl module build and
installation instructions.
• Net-DNS-0.57
• Digest-HMAC-1.01
• Digest-SHA1-2.11
• Net-IP-1.24
• IO-Socket-INET6-2.51 (required for IPv6 support)
• Socket6-0.19
• Digest-BubbleBabble-0.01
• Test::Pod-1.26 (optional, only used during the test suite)
Pod::Coverage-0.18
The Pod::Coverage module is a Perl library used to check if the documentation of a module is comprehensive. This
module can use the Module::Build modified build instructions, but is not required. All the dependencies are installed
using the standard Perl module build and installation instructions.
• Pod-Coverage-0.18
• Devel-Symdump-2.07
• Test::Pod::Coverage-1.08 (optionally used during the tests, and is a circular dependency)
• Test::Pod-1.26 (optionally used during the tests)
378
Beyond Linux® From Scratch - Version 6.3
• Module::Build-0.2808 (optional)
SGMLSpm-1.03ii
The SGMLSpm module is a Perl library used for parsing the output from James Clark's SGMLS and NSGMLS
parsers. This module requires modified installation instructions, shown below.
• SGMLSpm-1.03ii
If your system's Perl version is different than 5.8.8, you'll need to modify the sed command below to reflect the
version you have installed.
sed -i -e "s@/usr/local/bin@/usr/bin@" \
-e "s@/usr/local/lib/perl5@/usr/lib/perl5/site_perl/5.8.8@" \
-e "s@/usr/local/lib/www/docs@/usr/share/doc/perl5@" \
Makefile
Now, as the root user:
make install &&
install -v -m755 -d /usr/share/doc/perl5 &&
make install_html &&
rm -v -f /usr/share/doc/perl5/SGMLSpm/sample.pl &&
install -v -m644 DOC/sample.pl /usr/share/doc/perl5/SGMLSpm
Test::Pod-1.26
The Test:Pod module is (most of the time, optionally) used by other modules during the build process to check the
validity of POD (Plain Old Documentation) files. The Test::Pod module is typically included by module authors
to automatically find and check all POD files in a module distribution. This module and all the dependencies are
installed using the standard Perl module build and installation instructions.
• Test-Pod-1.26
• Pod-Simple-3.05
• Pod-Escapes-1.04
• Test::Simple-0.70
Test::Pod::Coverage-1.08
The Test::Pod::Coverage module is used to check files in a distribution for POD coverage. It is normally used by
developers to ensure their projects are adequately covered with POD and it is also used in the test suites of many
module distributions. This module and all the dependencies are installed using the standard Perl module build and
installation instructions.
• Test-Pod-Coverage-1.08
• Test::Simple-0.70 or Test-Builder-Tester-1.01
• Pod::Coverage-0.18
Test::Simple-0.70
The Test::Simple module contains utilities designed to assist developers in creating tests. A version of Test::Simple
was installed during LFS with the Perl-5.8.8 installation, however, some of the sub-modules contained in Test::Simple
have been updated (notably, the Test::More module) and these updated modules are now required by other modules.
379
Beyond Linux® From Scratch - Version 6.3
This updated version of Test::Simple also now includes the Test:Builder:Tester module, required by many of the
modules on this page. Note that installing this updated version of Test::Simple will overwrite some files from the
original Perl installation, but there's really nothing to be alarmed about as these modules are only used by developers
creating tests, or for running the test suites during additional module installations.
• Test-Simple-0.70 (uses the standard build and installation instructions)
• Module::Signature-0.55 (optionally used during the tests)
• Test::Pod::Coverage-1.08 (optionally used during the tests, and is circular)
• Pod::Coverage-0.18 (optionally used during the tests, and is circular)
Text::Diff-0.35
Text::Diff is used to perform diffs on files and record sets. It provides a basic set of services akin to the GNU diff
utility. It is not anywhere near as feature complete as GNU diff, but it is better integrated with Perl and available on
all platforms. Text::Diff is often faster than shelling out to a system's diff executable for small files, and generally
slower on larger files. The modules listed below are installed using the standard Perl module build and installation
instructions.
• Text-Diff-0.35
• Algorithm-Diff-1.1902
Tk-804.027
The Tk module is a Perl interface to the Tk package. The goal of this release is Unicode support via Perl's and core-Tk's
use of UTF-8. Tk-804.027 builds and loads into a threaded Perl but is NOT yet thread safe. The module is installed
using the standard Perl module build and installation instructions.
• Tk-804.027
• Tk-8.4.18 and libjpeg-6b
URI-1.35
The URI module implements the URI class. Objects of this class represent Uniform Resource Identifier references as
specified in RFC 2396 and updated by RFC 2732 and can be used to access and manipulate the various components
that make up these strings. The URI module and all its dependencies are installed using the standard build and
installation instructions.
• URI-1.35
• Business-ISBN-1.84 (optional, only used during the test suite)
• LWP::Simple is required for many of the tests. This is a circular dependency.
• Business-ISBN-Data-1.17
• Test-Prereq-1.033 (you may need to set up your CPAN access parameters by issuing the command perl
-MCPAN -e shell before running the test suite, else the tests may hang)
• Module::Info-0.31
• Module::Build-0.2808 (optional)
• Module-CoreList-2.12
• Test::Pod-1.26 (optionally used during the tests)
• Test::Pod::Coverage-1.08 (optionally used during the tests)
380
Beyond Linux® From Scratch - Version 6.3
XML::Parser-2.34
The XML::Parser module is a Perl extension interface to James Clark's XML parser, expat. The module is installed
using the standard Perl module build and installation instructions.
• XML-Parser-2.34
• expat-2.0.1
• libwww-perl-5.806 (optionally used during the tests)
XML::Simple-2.18
The XML::Simple module is a Perl extension that provides an easy API to read and write XML (especially config
files). The module and all dependencies are installed using the standard Perl module build and installation instructions.
• XML-Simple-2.18
• One of the following four modules must be installed:
• XML-SAX-0.16
• XML-NamespaceSupport-1.09
• XML-SAX-Expat-0.38
• XML-LibXML-1.63
• XML::Parser-2.34
• Tie-IxHash-1.21
YAML-0.65
The YAML modules implement a YAML Loader and Dumper based on the YAML 1.0 specification http://www.
yaml.org/spec/. YAML is a generic data serialization language that is optimized for human readability. It can be used
to express the data structures of most modern programming languages. The module and dependencies are installed
using the standard Perl module build and installation instructions.
Note
The YAML, Test::Base and Spiffy modules will install UTF-8 encoded manual pages. To modify the
manual pages so that non-UTF-8 encoded pages are installed, issue the following commands (before any
other build commands):
381
Beyond Linux® From Scratch - Version 6.3
• YAML-0.65
• Test-Base-0.54 (optionally used during the tests)
• Spiffy-0.30
• Text::Diff-0.35 (optionally used during the tests)
• Test::Simple-0.70 (optionally used during the tests)
make install
Note
When reinstalling a Perl module, sometimes older versions of the module being reinstalled are in other
directories specified in @INC. To delete all other versions of the module being reinstalled (not simply older
ones) set the UNINST variable:
install <Module::Name>
For additional commands and help, issue 'help' from the cpan> prompt.
Alternatively, for scripted or non-interactive installations, use the following syntax as the root user to install one
or more modules:
Review the cpan.1 man page for additional parameters you can pass to cpan on the command line.
382
Beyond Linux® From Scratch - Version 6.3
PHP-5.2.3
Introduction to PHP
PHP is the PHP Hypertext Preprocessor. Primarily used in dynamic web sites, it allows for programming code to be
directly embedded into the HTML markup.
Package Information
• Download (HTTP): http://us2.php.net/distributions/php-5.2.3.tar.bz2
• Download (FTP): ftp://ftp.isu.edu.tw/pub/Unix/Web/PHP/distributions/php-5.2.3.tar.bz2
• Download MD5 sum: eb50b751c8e1ced05bd012d5a0e4dec3
• Download size: 7.4 MB
• Estimated disk space required: 250 MB (includes installing all documentation)
• Estimated build time: 2.5 SBU (additional 2.7 SBU to run the test suite)
Additional Downloads
• Pre-built documentation (optional): http://www.php.net/download-docs.php
PHP Dependencies
Required
Apache-2.2.8
Recommended
libxml2-2.6.31
libjpeg-6b, LibTIFF-3.8.2, libpng-1.2.29, libexif-0.6.16, FreeType-2.3.7, X Window System, ClibPDF, GD, t1lib,
and FDF Toolkit
cURL-7.16.3, HTML Tidy-cvs_20070326, mnoGoSearch, Hyperwave, Roxen WebServer, Caudium, and WDDX
383
Beyond Linux® From Scratch - Version 6.3
OpenSSL-0.9.8g, Cyrus SASL-2.1.22, MIT Kerberos V5-1.6 or Heimdal-1.1, libmcrypt, and mhash
Installation of PHP
You can use PHP for server-side scripting, command-line scripting or client-side GUI applications. This book
provides instructions for setting up PHP for server-side scripting as it is the most common form.
Note
PHP has many more configure options that will enable support for various things. You can use ./configure
--help to see a full list of the available options. Also, use of the PHP web site is highly recommended, as their
online docs are very good. An example of a configure command that utilizes many of the most common
dependencies can be found at http://anduin.linuxfromscratch.org/files/BLFS/6.3/php_configure.txt.
If, for whatever reason, you don't have libxml2-2.6.31 installed, you need to add --disable-libxml
to the configure command in the instructions below. Note that this will prevent the pear command from
being built.
To test the results, issue: make test. Some of the tests are known to fail.
384
Beyond Linux® From Scratch - Version 6.3
Command Explanations
sed -i '...' ext/dba/dba_db4.c: This command is used to fix an issue with the use of Berkeley DB >= 4.3.x.
--with-apxs2: This parameter builds the Apache HTTPD 2.0 module.
--with-config-file-path=/etc: This parameter makes PHP look for the php.ini configuration file in
/etc.
--with-zlib: This parameter adds support for Zlib compression.
--enable-bcmath: Enables bc style precision math functions.
--with-bz2: Adds support for Bzip2 compression functions.
--enable-calendar: This parameter provides support for calendar conversion.
--enable-dba: This parameter enables support for database (dbm-style) abstraction layer functions.
--enable-exif: Enables functions to access metadata from images.
--enable-ftp: This parameter enables FTP functions.
--with-gettext: Enables functions that use Gettext text translation.
--enable-mbstring: This parameter enables multibyte string support.
--with-ncurses: Provides ncurses terminal independent cursor handling.
385
Beyond Linux® From Scratch - Version 6.3
Configuring PHP
Config Files
/etc/php.ini and /etc/pear.conf
Configuration Information
The file used as the default /etc/php.ini configuration file is recommended by the PHP development team. This
file modifies the default behavior of PHP. If no /etc/php.ini is used, all configuration settings fall to the defaults.
You should review the comments in this file and ensure the changes are acceptable in your particular environment.
You may have noticed the following from the output of the make install command:
If desired, add the entry using the following command as the root user:
To enable PHP support in the Apache web server, a new LoadModule (which should be handled automatically by the
make install command) and AddType directives must be added to the httpd.conf file:
Additionally, it can be useful to add an entry for index.php to the DirectoryIndex directive of the httpd.conf
file. Lastly, adding a line to setup the .phps extension to show highlighted PHP source may be desirable:
You'll need to restart the Apache web server after making any modifications to the httpd.conf file.
Contents
Installed Programs: pear, peardev, pecl, php, php-config and phpize
Installed Library: libphp5.so Apache module
Installed Directories: /usr/include/php, /usr/lib/php and /usr/share/doc/php-5.2.3
Short Descriptions
php is a command line interface that enables you to parse and execute PHP code.
pear is the PHP Extension and Application Repository (PEAR) package manager.
386
Beyond Linux® From Scratch - Version 6.3
Python-2.5.2
Introduction to Python
The Python package contains the Python development environment. This is useful for object-oriented programming,
writing scripts, prototyping large programs or developing entire applications.
Package Information
• Download (HTTP): http://www.python.org/ftp/python/2.5.2/Python-2.5.2.tar.bz2
• Download (FTP): ftp://ftp.linux.ee/pub/gentoo/distfiles/distfiles/Python-2.5.2.tar.bz2
• Download MD5 sum: afb5451049eda91fbde10bd5a4b7fadc
• Download size: 9.8 MB
• Estimated disk space required: 180 MB
• Estimated build time: 1.1 SBU (additional 2.7 SBU to run the test suite)
Additional Downloads
Required Patch
• http://www.linuxfromscratch.org/patches/blfs/6.3/Python-2.5.2-gdbm-1.patch
Python Dependencies
Optional
Pth-2.0.7
Installation of Python
Install Python by running the following commands:
patch -Np1 -i ../Python-2.5.2-gdbm-1.patch &&
./configure --prefix=/usr --enable-shared &&
make
To test the results, issue: make test. Note that if you have an existing Python installation which includes the PyXML
module, the tests could produce a segmentation fault.
Now, as the root user:
make install
There is no documentation installed using the instructions above. However, There are LaTeX sources included with
the distribution. See the Doc/README file in the source distribution for instructions to format the LaTeX sources.
Alternatively, you can download preformatted documentation from http://docs.python.org/download.html.
387
Beyond Linux® From Scratch - Version 6.3
In order to use the help ('name_string') feature of the python interpreter with some statements and keywords, you
must download (or create) the optional HTML documentation and install it. If you downloaded the HTML docs, issue
the following commands as the root user:
In order for python to find the installed documentation, you must add the following environment variable to individual
user's or the system's profile:
export PYTHONDOCS=/usr/share/doc/Python-2.5.2/html
Contents
Installed Programs: pydoc, python, python2.5, smtpd.py, and optionally if Tk is installed, idle
Installed Libraries: libpython2.5.so and numerous modules installed in /usr/lib/python2.5/lib-dynload
Installed Directories: /usr/include/python2.5, /usr/lib/python2.5, and /usr/share/doc/python-2.5.2
Short Descriptions
idle is a wrapper script that opens a Python aware GUI editor.
pydoc is the Python documentation tool.
python is an interpreted, interactive, object-oriented programming language.
python2.5 is a version-specific name for the python program.
smtpd.py is an SMTP proxy implemented in Python.
388
Beyond Linux® From Scratch - Version 6.3
Python Modules
Introduction to Python Modules
The Python module packages add useful objects to the Python language. Modules utilized by packages throughout
BLFS are listed here, along with their dependencies. Installation of the modules shown on this page is meant to follow
from top to bottom to handle optional dependencies in each module.
• PyXML-0.8.4
• Pycairo-1.4.0
• PyGObject-2.12.3
• PyGTK-2.10.6
• PyORBit-2.14.3
• Gnome-Python-2.18.2
• Gnome-Python-Desktop-2.18.0
PyXML-0.8.4
The PyXML package contains a validating XML parser, an implementation of the SAX and DOM programming
interfaces, an interface to the Expat parser, and a C helper module that can speed up xmllib.py by a factor of five.
This is useful for validating, parsing and manipulating XML files using Python programs.
Package Information
• Download (HTTP): http://downloads.sourceforge.net/pyxml/PyXML-0.8.4.tar.gz
• Download (FTP): ftp://ftp.linux.ee/pub/gentoo/distfiles/distfiles/PyXML-0.8.4.tar.gz
• Download MD5 sum: 1f7655050cebbb664db976405fdba209
• Download size: 734 KB
• Estimated disk space required: 14.6 MB
• Estimated build time: less than 0.1 SBU
PyXML Dependencies
Required
Python-2.5.2
Installation of PyXML
Install PyXML by running the following commands:
389
Beyond Linux® From Scratch - Version 6.3
To run the regression tests, the package must first be installed. Then, as an unprivileged user, issue the following
commands:
cd test &&
python regrtest.py &&
cd ..
Command Explanations
python setup.py build: This command copies the *.py files to a staging area and compiles the C extensions.
python setup.py install: This command installs the package.
Contents
Installed Programs: xmlproc_parse and xmlproc_val
Installed Libraries: PyXML Python library modules
Installed Directories: /usr/lib/python2.5/site-packages/_xmlplus and /usr/share/doc/PyXML-0.8.4
Short Descriptions
xmlproc_parse is a simple XML file parser using the xmlproc parser.
xmlproc_val is a validating XML file parser using the xmlproc parser.
Pycairo-1.4.0
Pycairo provides Python bindings to Cairo.
Package Information
• Download (HTTP): http://cairographics.org/releases/pycairo-1.4.0.tar.gz
•
• Download MD5 sum: e26e77919b606113f565d70036c1f504
• Download size: 468 KB
• Estimated disk space required: 5.2 MB
• Estimated build time: 0.1 SBU
Pycairo Dependencies
Required
Installation of Pycairo
Install Pycairo by running the following commands:
390
Beyond Linux® From Scratch - Version 6.3
Contents
Installed Programs: None
Installed Libraries: Pycairo Python library module
Installed Directories: /usr/include/pycairo and /usr/lib/python2.5/site-packages/cairo
PyGObject-2.12.3
PyGObject provides Python bindings to the GObject class from GLib.
Package Information
• Download (HTTP): http://ftp.gnome.org/pub/gnome/sources/pygobject/2.12/pygobject-2.12.3.tar.bz2
• Download (FTP): ftp://ftp.gnome.org/pub/gnome/sources/pygobject/2.12/pygobject-2.12.3.tar.bz2
• Download MD5 sum: 009986021225b7ea6e0ba848707785af
• Download size: 331 KB
• Estimated disk space required: 5.2
• Estimated build time: 0.1 SBU
PyGObject Dependencies
Required
Python-2.5.2 and GLib-2.12.12
Installation of PyGObject
Install PyGObject by running the following commands:
./configure --prefix=/usr &&
make
To test the results, issue: make check.
Now, as the root user:
make install
Command Explanations
--disable-docs: This option disables the rebuilding of the html documentation if libxslt-1.1.22 is installed.
391
Beyond Linux® From Scratch - Version 6.3
Contents
Installed Programs: None
Installed Libraries: PyGObject Python library module
Installed Directories: /usr/include/pygtk-2.0, /usr/share/pygobject and
/usr/lib/python2.5/site-packages/gtk-2.0
PyGTK-2.10.6
PyGTK lets you to easily create programs with a graphical user interface using the Python programming language.
Package Information
• Download (HTTP): http://ftp.gnome.org/pub/gnome/sources/pygtk/2.10/pygtk-2.10.6.tar.bz2
• Download (FTP): ftp://ftp.gnome.org/pub/gnome/sources/pygtk/2.10/pygtk-2.10.6.tar.bz2
• Download MD5 sum: f051e25adcbdc1ddcf736fadad3d66f2
• Download size: 1.9 MB
• Estimated disk space required: 5.2 MB
• Estimated build time: 0.7 SBU
PyGTK Dependencies
Required
PyGObject-2.12.3
ATK-1.18.0
Pango-1.16.4
Optional
libxslt-1.1.22
392
Beyond Linux® From Scratch - Version 6.3
Installation of PyGTK
Install PyGTK by running the following commands:
./configure --prefix=/usr &&
make
The tests must be run from an active X display. If this is so, issue: make check.
Now, as the root user:
make install
Command Explanations
--enable-docs: This option enables rebuilding the html documentation if libxslt-1.1.22 is installed.
Contents
Installed Programs: pygtk-codegen-2.0 and pygtk-demo
Installed Libraries: PyGTK Python library modules
Installed Directories: /usr/lib/pygtk, /usr/share/pygtk and /usr/lib/python2.5/site-packages/gtk-2.0
Short Descriptions
pygtk-codegen-2.0 is a wrapper script to run the PyGTK codegen module.
pygtk-demo is a Python wrapper to run the PyGTK demo program.
PyORBit-2.14.3
This is a Python language binding for the ORBit2 CORBA implementation.
Package Information
• Download (HTTP): http://ftp.gnome.org/pub/gnome/sources/pyorbit/2.14/pyorbit-2.14.3.tar.bz2
• Download (FTP): ftp://ftp.gnome.org/pub/gnome/sources/pyorbit/2.14/pyorbit-2.14.3.tar.bz2
• Download MD5 sum: 3c4d42ae1a7303fd85071a842617043f
• Download size: 0.3 MB
• Estimated disk space required: 5.3 MB
• Estimated build time: 0.1 SBU
PyORBit Dependencies
Required
Python-2.5.2 and ORBit2-2.14.7
Installation of PyORBit
Install PyORBit by running the following commands:
./configure --prefix=/usr &&
make
393
Beyond Linux® From Scratch - Version 6.3
Contents
Installed Programs: None
Installed Libraries: PyORBit Python library module
Installed Directories: /usr/include/pyorbit-2
Gnome-Python-2.18.2
Gnome-Python provides Python modules for various GNOME libraries.
Package Information
• Download (HTTP): http://ftp.gnome.org/pub/gnome/sources/gnome-python/2.18/gnome-python-2.18.2.tar.bz2
• Download (FTP): ftp://ftp.gnome.org/pub/gnome/sources/gnome-python/2.18/gnome-python-2.18.2.tar.bz2
• Download MD5 sum: 3df58e4354526d4e0be8524c0bf6ddb8
• Download size: 0.4 MB
• Estimated disk space required: 5.4 MB
• Estimated build time: 0.3 SBU
Gnome-Python Dependencies
Required
PyGTK-2.10.6 and libgnome-2.18.0
Installation of Gnome-Python
Install Gnome-Python by running the following commands:
./configure --prefix=/usr &&
make
This package does not come with a test suite.
394
Beyond Linux® From Scratch - Version 6.3
make install
Contents
Installed Programs: None
Installed Libraries: Gnome-Python library modules
Installed Directories: /usr/include/gnome-python-2.0
Gnome-Python-Desktop-2.18.0
Gnome-Python-Desktop provides additional Python modules for GNOME libraries.
Package Information
• Download (HTTP): http://ftp.gnome.org/pub/gnome/sources/gnome-python-desktop/2.18/gnome-python-desktop-
2.18.0.tar.bz2
• Download (FTP): ftp://ftp.gnome.org/pub/gnome/sources/gnome-python-desktop/2.18/gnome-python-desktop-2.
18.0.tar.bz2
• Download MD5 sum: ce1b1c095a69c2656177570a2939fabb
• Download size: 0.4 MB
• Estimated disk space required: 5.5 MB
• Estimated build time: 0.2 SBU
Gnome-Python-Desktop Dependencies
Required
Gnome-Python-2.18.2
395
Beyond Linux® From Scratch - Version 6.3
Installation of Gnome-Python-Desktop
Install Gnome-Python-Desktop by running the following commands:
make install
Command Explanations
--enable-metacity: This option enables building the metacity module if Metacity-2.18.5 is installed.
Contents
Installed Programs: None
Installed Libraries: Gnome-Python-Desktop library modules
Installed Directories: None
396
Beyond Linux® From Scratch - Version 6.3
Ruby-1.8.6-p111
Introduction to Ruby
The Ruby package contains the Ruby development environment. This is useful for object-oriented scripting.
Package Information
•
• Download (FTP): ftp://ftp.ruby-lang.org/pub/ruby/1.8/ruby-1.8.6-p111.tar.bz2
• Download MD5 sum: e1d38b7d4f1be55726d6927a3395ce3b
• Download size: 3.9 MB
• Estimated disk space required: 115 MB
• Estimated build time: 2.1 SBU
Ruby Dependencies
Optional
OpenSSL-0.9.8g, Tk-8.4.18, and GDBM-1.8.3
Installation of Ruby
Install Ruby by running the following commands:
./configure --prefix=/usr \
--enable-shared \
--enable-pthread \
--enable-install-doc &&
make
To test the results, issue: make test.
Now, as the root user:
make install
Command Explanations
--enable-shared: This parameter builds the libruby shared library.
--enable-pthread: This parameter links the threading library into the Ruby build.
Contents
Installed Programs: ruby, irb, erb, rdoc, ri, and testrb
Installed Libraries: libruby.so, libruby-static.a and numerous modules located in the /usr/lib/ruby
hierarchy.
Installed Directories: /usr/lib/ruby and /usr/share/ri
Short Descriptions
ruby is an interpreted scripting language for quick and easy object-oriented programming.
397
Beyond Linux® From Scratch - Version 6.3
398
Beyond Linux® From Scratch - Version 6.3
Tcl-8.4.18
Introduction to Tcl
The Tcl package contains the Tool Command Language, a robust general-purpose scripting language.
Package Information
• Download (HTTP): http://downloads.sourceforge.net/tcl/tcl8.4.18-src.tar.gz
• Download (FTP): ftp://ftp.linux.ee/pub/gentoo/distfiles/distfiles/tcl8.4.18-src.tar.gz
• Download MD5 sum: 7d8bc95036f797b1a2b62a5a382d2cc1
• Download size: 3.6 MB
• Estimated disk space required: 25 MB
• Estimated build time: 0.3 SBU (additional 0.7 SBU to run the test suite)
Installation of Tcl
This package is also installed in LFS during the bootstrap phase. As it is not installed during Chapter 6 of LFS,
installation instructions are included here in BLFS.
Install Tcl by running the following commands:
cd unix &&
./configure --prefix=/usr \
--enable-threads \
--mandir=/usr/share/man &&
make &&
sed -i \
-e "s@^\(TCL_SRC_DIR='\).*@\1/usr/include'@" \
-e "/TCL_B/s@='\(-L\)\?.*unix@='\1/usr/lib@" \
-e "/SEARCH/s/=.*/=''/" \
tclConfig.sh
Command Explanations
--enable-threads: This switch forces the package to build with thread support.
make install-private-headers: This command is used to install the Tcl library interface headers used by other
packages if they link to the Tcl library.
ln -v -sf tclsh8.4 /usr/bin/tclsh: This command is used to create a compatibility symbolic link to the tclsh8.4 file
as many packages expect a file named tclsh.
399
Beyond Linux® From Scratch - Version 6.3
sed -i -e ... tclConfig.sh: The Tcl package expects that its source tree is preserved so that packages depending on
it for their compilation can utilize it. This sed removes the references to the build directory and replaces them with
saner system-wide locations.
Contents
Installed Programs: tclsh and tclsh8.4
Installed Libraries: libtcl.so and libtclstub8.4.a
Installed Directories: /usr/lib/tcl8.4
Short Descriptions
tclsh is a symlink to the tclsh8.4 program.
tclsh8.4 is a simple shell containing the Tcl interpreter.
libtcl.so contains the API functions required by Tcl.
400
Beyond Linux® From Scratch - Version 6.3
Tk-8.4.18
Introduction to Tk
The Tk package contains a TCL GUI Toolkit.
Package Information
• Download (HTTP): http://downloads.sourceforge.net/tcl/tk8.4.18-src.tar.gz
• Download (FTP): ftp://ftp.linux.ee/pub/gentoo/distfiles/distfiles/tk8.4.18-src.tar.gz
• Download MD5 sum: bf52be013df31198b144d1ca72b094fb
• Download size: 3.3 MB
• Estimated disk space required: 23 MB
• Estimated build time: 0.3 SBU
Tk Dependencies
Required
X Window System and Tcl-8.4.18
Installation of Tk
Install Tk by running the following commands:
cd unix &&
./configure --prefix=/usr \
--enable-threads \
--mandir=/usr/share/man &&
make &&
sed -i \
-e "s@^\(TK_SRC_DIR='\).*@\1/usr/include'@" \
-e "/TK_B/s@='\(-L\)\?.*unix@='\1/usr/lib@" \
-e "/SEARCH/s/=.*/=''/" \
tkConfig.sh
Running the tests is not recommended. Some tests may crash your X Server. To test the results anyway, issue: make
test. Ensure you run it from an X Window display device with the GLX extensions loaded, else the tests will hang.
Now, as the root user:
Command Explanations
--enable-threads: This switch forces the package to build with thread support.
make install-private-headers: This command is used to install the Tk library interface headers used by other
packages if they link to the Tk library.
401
Beyond Linux® From Scratch - Version 6.3
ln -v -sf wish8.4 /usr/bin/wish: This command is used to create a compatibility symbolic link to the wish8.4 file as
many packages expect a file named wish.
sed -i -e ... tkConfig.sh: The Tk package expects that its source tree is preserved so that packages depending on it
for their compilation can utilize it. This sed removes the references to the build directory and replaces them with
saner system-wide locations.
Contents
Installed Programs: wish and wish8.4
Installed Libraries: libtk.so and libtkstub8.4.a
Installed Directories: /usr/lib/tk8.4
Short Descriptions
wish is a symlink to the wish8.4 program.
wish8.4 is a simple shell containing the Tk toolkit that creates a main window and then processes Tcl commands.
libtk.so contains the API functions required by Tk.
402
Beyond Linux® From Scratch - Version 6.3
ABC
ABC is an interactive programming language and environment for personal computing, originally intended as a good
replacement for BASIC. It was designed by first doing a task analysis of the programming task. ABC is easy to learn
(an hour or so for someone who has already programmed), and yet easy to use. Originally intended as a language for
beginners, it has evolved into a powerful tool for beginners and experts alike. Some features of the language include: a
powerful collection of only five data types that easily combines strong typing, yet without declarations, no limitations
(such as max int), apart from sheer exhaustion of memory refinements to support top-down programming, nesting by
indentation and programs typically are one fourth or one fifth the size of the equivalent Pascal or C program.
• Project Home Page: http://homepages.cwi.nl/~steven/abc/
• Download Location: http://homepages.cwi.nl/~steven/abc/implementations.html
ALF
ALF is a language which combines functional and logic programming techniques. The foundation of ALF is Horn
clause logic with equality which consists of predicates and Horn clauses for logic programming, and functions
and equations for functional programming. The ALF system is an efficient implementation of the combination of
resolution, narrowing, rewriting and rejection. Similarly to Prolog, ALF uses a backtracking strategy corresponding
to a depth-first search in the derivation tree.
• Project Home Page: http://www.informatik.uni-kiel.de/~mh/systems/ALF.html
• Download Location: http://www.informatik.uni-kiel.de/~mh/systems/ALF/
ASM
ASM is a Java bytecode manipulation framework. It can be used to dynamically generate stub classes or other proxy
classes, directly in binary form, or to dynamically modify classes at load time, i.e., just before they are loaded into the
Java Virtual Machine. ASM offers similar functionalities as BCEL or SERP, but is much smaller (33KB instead of
403
Beyond Linux® From Scratch - Version 6.3
350KB for BCEL and 150KB for SERP) and faster than these tools (the overhead of a load time class transformation
is of the order of 60% with ASM, 700% or more with BCEL, and 1100% or more with SERP). Indeed ASM was
designed to be used in a dynamic way (though it works statically as well) and was therefore designed and implemented
to be as small and as fast as possible.
• Project Home Page: http://asm.objectweb.org/
• Download Location: http://forge.objectweb.org/projects/asm/
BCPL
BCPL is a simple typeless language that was designed in 1966 by Martin Richards and implemented for the first time
at MIT in the Spring of 1967.
• Project Home Page: http://www.cl.cam.ac.uk/users/mr/BCPL.html
• Download Location: http://www.cl.cam.ac.uk/users/mr/BCPL/
BETA
BETA is developed within the Scandinavian School of object-orientation, where the first object-oriented language,
Simula, was developed. BETA is a modern language in the Simula tradition. The resulting language is smaller than
Simula in spite of being considerably more expressive. BETA is a strongly typed language like Simula, Eiffel and
C++, with most type checking being carried out at compile-time. It is well known that it is not possible to obtain all
type checking at compile time without sacrificing the expressiveness of the language. BETA has optimum balance
between compile-time type checking and run-time type checking.
• Project Home Page: http://www.daimi.au.dk/~beta/
• Download Location: ftp://ftp.daimi.au.dk/pub/beta/
<bigwig>
<bigwig> is a high-level programming language for developing interactive Web services. Programs are compiled into
a conglomerate of lower-level technologies such as C code, HTTP, HTML, JavaScript, and SSL, all running on top of
a runtime system based on an Apache Web server module. It is a descendant of the Mawl project but is a completely
new design and implementation with vastly expanded ambitions. The <bigwig> language is really a collection of tiny
domain-specific languages focusing on different aspects of interactive Web services. These contributing languages
are held together by a C-like skeleton language. Thus, <bigwig> has the look and feel of C-programs but with special
data and control structures.
• Project Home Page: http://www.brics.dk/bigwig/
• Download Location: http://www.brics.dk/bigwig/download/
Bigloo
Bigloo is a Scheme implementation devoted to one goal: enabling Scheme based programming style where C(++)
is usually required. Bigloo attempts to make Scheme practical by offering features usually presented by traditional
programming languages but not offered by Scheme and functional programming. Bigloo compiles Scheme modules
and delivers small and fast stand-alone binary executables. It enables full connections between Scheme and C
programs, between Scheme and Java programs, and between Scheme and C# programs.
• Project Home Page: http://www-sop.inria.fr/mimosa/fp/Bigloo/
• Download Location: ftp://ftp-sop.inria.fr/mimosa/fp/Bigloo/
404
Beyond Linux® From Scratch - Version 6.3
C--
C-- is a portable assembly language that can be generated by a front end and implemented by any of several code
generators. It serves as an interface between high-level compilers and retargetable, optimizing code generators.
Authors of front ends and code generators can cooperate easily.
• Project Home Page: http://www.cminusminus.org/
• Download Location: http://www.cminusminus.org/code.html
Caml
Caml is a general-purpose programming language, designed with program safety and reliability in mind. It is very
expressive, yet easy to learn and use. Caml supports functional, imperative, and object-oriented programming styles.
It has been developed and distributed by INRIA, France's national research institute for computer science, since 1985.
The Objective Caml system is the main implementation of the Caml language. It features a powerful module system
and a full-fledged object-oriented layer. It comes with a native-code compiler that supports numerous architectures,
for high performance; a bytecode compiler, for increased portability; and an interactive loop, for experimentation
and rapid development.
• Project Home Page: http://caml.inria.fr/
• Download Location: http://caml.inria.fr/pub/distrib/
Cayenne
Cayenne is a simple(?) functional language with a powerful type system. The basic types are functions, products, and
sums. Functions and products use dependent types to gain additional power. There are very few building blocks in the
language, but a lot of “syntactic sugar” to make it more readable. There is no separate module language in Cayenne
since the dependent types allow the normal expression language to be used at the module level as well. The design of
Cayenne has been heavily influenced by Haskell and constructive type theory and with some things borrowed from
Java. The drawback of such a powerful type system is that the type checking becomes undecidable.
• Project Home Page: http://www.cs.chalmers.se/~augustss/cayenne/
• Download Location: http://www.cs.chalmers.se/~augustss/cayenne/get.html
Ch
Ch is an embeddable C/C++ interpreter for cross-platform scripting, shell programming, 2D/3D plotting, numerical
computing, and embedded scripting.
• Project Home Page: http://www.softintegration.com/
• Download Location: http://www.softintegration.com/products/chstandard/download/
Clean
Clean is a general purpose, state-of-the-art, pure and lazy functional programming language designed for making
real-world applications. Clean is the only functional language in the world which offers uniqueness typing. This type
system makes it possible in a pure functional language to incorporate destructive updates of arbitrary data structures
(including arrays) and to make direct interfaces to the outside imperative world. The type system makes it possible
to develop efficient applications.
• Project Home Page: http://www.cs.ru.nl/~clean/
• Download Location: http://www.cs.ru.nl/~clean/Download/download.html
405
Beyond Linux® From Scratch - Version 6.3
CORN
CORN is designed for modeling concurrency and advanced computation. It provides lazy evaluation between
concurrently worked threads, with object-oriented and functional style of semantic. This language can be also used
for parallel computation.
• Project Home Page: http://corn.telefonia.pl/
• Download Location: http://corn.telefonia.pl/download/download.html
Cyclone
Cyclone is a programming language based on C that is safe, meaning that it rules out programs that have buffer
overflows, dangling pointers, format string attacks, and so on. High-level, type-safe languages, such as Java, Scheme,
or ML also provide safety, but they don't give the same control over data representations and memory management
that C does (witness the fact that the run-time systems for these languages are usually written in C.) Furthermore,
porting legacy C code to these languages or interfacing with legacy C libraries is a difficult and error-prone process.
The goal of Cyclone is to give programmers the same low-level control and performance of C without sacrificing
safety, and to make it easy to port or interface with legacy C code.
• Project Home Page: http://www.research.att.com/projects/cyclone/
• Download Location: http://www.eecs.harvard.edu/~greg/cyclone/software/
D
D is a general purpose systems and applications programming language. It is a higher level language than C++, but
retains the ability to write high performance code and interface directly with the operating system APIs and with
hardware. D is well suited to writing medium to large scale million line programs with teams of developers. It is easy
to learn, provides many capabilities to aid the programmer, and is well suited to aggressive compiler optimization
technology. D is not a scripting language, nor an interpreted language. It doesn't come with a VM, a religion, or
an overriding philosophy. It's a practical language for practical programmers who need to get the job done quickly,
reliably, and leave behind maintainable, easy to understand code. D is the culmination of decades of experience
implementing compilers for many diverse languages, and attempting to construct large projects using those languages.
It draws inspiration from those other languages (most especially C++) and tempers it with experience and real world
practicality.
• Project Home Page: http://www.digitalmars.com/d/
• Download Location: ftp://ftp.digitalmars.com/
DMDScript
DMDScript is Digital Mars' implementation of the ECMA 262 scripting language. Netscape's implementation
is called JavaScript, Microsoft's implementation is called JScript. DMDScript is much faster than other
implementations, which you can verify with the included benchmark.
• Project Home Page: http://www.digitalmars.com/dscript/index.html
• Download Location: ftp://ftp.digitalmars.com/
DotGNU Portable.NET
DotGNU Portable.NET goal is to build a suite of free software tools to build and execute .NET applications, including
a C# compiler, assembler, disassembler, and runtime engine. While the initial target platform was GNU/Linux, it is
also known to run under Windows, Solaris, NetBSD, FreeBSD, and MacOS X. The runtime engine has been tested on
the x86, PowerPC, ARM, Sparc, PARISC, s390, Alpha, and IA-64 processors. DotGNU Portable.NET is part of the
406
Beyond Linux® From Scratch - Version 6.3
DotGNU project, built in accordance with the requirements of the GNU Project. DotGNU Portable.NET is focused
on compatibility with the ECMA specifications for CLI. There are other projects under the DotGNU meta-project to
build other necessary pieces of infrastructure, and to explore non-CLI approaches to virtual machine implementation.
• Project Home Page: http://www.southern-storm.com.au/portable_net.html
• Download Location: http://www.southern-storm.com.au/portable_net.html#download
Dylan
Dylan is an advanced, object-oriented, dynamic language which supports rapid program development. When needed,
programs can be optimized for more efficient execution by supplying more type information to the compiler. Nearly
all entities in Dylan (including functions, classes, and basic data types such as integers) are first class objects.
Additionally, Dylan supports multiple inheritance, polymorphism, multiple dispatch, keyword arguments, object
introspection, macros, and many other advanced features... --Peter Hinely.
• Project Home Page: http://www.gwydiondylan.org/
• Download Location: http://www.gwydiondylan.org/downloading.phtml
E
E is a secure distributed Java-based pure-object platform and p2p scripting language. It has two parts: ELib and the E
Language. Elib provides the stuff that goes on between objects. As a pure-Java library, ELib provides for inter-process
capability-secure distributed programming. Its cryptographic capability protocol enables mutually suspicious Java
processes to cooperate safely, and its event-loop concurrency and promise pipelining enable high performance
deadlock free distributed pure-object computing. The E Language can be used to express what happens within an
object. It provides a convenient and familiar notation for the ELib computational model, so you can program in one
model rather than two. Under the covers, this notation expands into Kernel-E, a minimalist lambda-language much
like Scheme or Smalltalk. Objects written in the E language are only able to interact with other objects according
to ELib's semantics, enabling object granularity intra-process security, including the ability to safely run untrusted
mobile code (such as caplets).
• Project Home Page: http://www.erights.org/
• Download Location: http://www.erights.org/download/
elastiC
elastiC is a portable high-level object-oriented interpreted language with a C like syntax. Its main characteristics
are: open source, interpreted, has portable bytecode compilation, dynamic typing, automatic real very fast garbage
collection, object oriented with meta-programming support (a la Smalltalk), functional programming support
(Scheme-like closures with lexical scoping, and eval-like functionality), hierarchical namespaces, a rich set of useful
built-in types (dynamic arrays, dictionaries, symbols, ...), extensibile with C (you can add functions, types, classes,
methods, packages, ...), embeddable in C. elastiC has been strongly influenced by C, Smalltalk, Scheme and Python
and tries to merge the best characteristics of all these languages, while still coherently maintaining its unique
personality.
• Project Home Page: http://www.elasticworld.org/
• Download Location: http://www.elasticworld.org/download.html
Erlang/OTP
Erlang/OTP is a development environment based on Erlang. Erlang is a programming language which has many
features more commonly associated with an operating system than with a programming language: concurrent
processes, scheduling, memory management, distribution, networking, etc. The initial open-source Erlang release
407
Beyond Linux® From Scratch - Version 6.3
contains the implementation of Erlang, as well as a large part of Ericsson's middleware for building distributed
high-availability systems. Erlang is characterized by the following features: robustness, soft real-time, hot code
upgrades and incremental code loading.
• Project Home Page: http://www.erlang.org/
• Download Location: http://www.erlang.org/download.html
Euphoria
Euphoria is a simple, flexible, and easy-to-learn programming language. It lets you quickly and easily develop
programs for Windows, DOS, Linux and FreeBSD. Euphoria was first released in 1993. Since then Rapid Deployment
Software has been steadily improving it with the help of a growing number of enthusiastic users. Although Euphoria
provides subscript checking, uninitialized variable checking and numerous other run-time checks, it is extremely fast.
People have used it to develop high-speed DOS games, Windows GUI programs, and Linux X Windows programs.
It is also very useful for CGI (Web-based) programming.
• Project Home Page: http://www.rapideuphoria.com/
• Download Location: http://www.rapideuphoria.com/v20.htm
Felix
Felix is an advanced Algol like procedural programming language with a strong functional subsystem. It features
ML style static typing, first class functions, pattern matching, garbage collection, polymorphism, and has built in
support for high performance microthreading, regular expressions and context free parsing. The system provides a
scripting harness so the language can be used like other scripting languages such as Python and Perl, but underneath
it generates native code to obtain high performance. A key feature of the system is that it uses the C/C++ object
model, and provides an advanced binding sublanguage to support integration with C/C++ at both the source and
object levels, both for embedding C/C++ data types and functions into Felix, and for embedding Felix into exitsing
C++ architectures. The Felix compiler is written in Objective Caml, and generates ISO C++ which should compile
on any platform.
• Project Home Page: http://felix.sourceforge.net/
• Download Location: http://felix.sourceforge.net/current/www/download.html
ferite
ferite is a scripting language and engine all in one manageable chunk. It is designed to be easily extended in terms
of API, and to be used within other applications making them more configurable and useful to the end user. It has a
syntax similar to a number of other languages but remains clean and its own language.
• Project Home Page: http://www.ferite.org/
• Download Location: http://www.ferite.org/download.html
Forth
Forth is a stack-based, extensible language without type-checking. It is probably best known for its "reverse Polish"
(postfix) arithmetic notation, familiar to users of Hewlett-Packard calculators. Forth is a real-time programming
language originally developed to control telescopes. Forth has many unique features and applications: it can compile
itself into a new compiler, reverse-polish coding, edit time error checking and compiling (similar to BASIC),
extremely efficient thread based language, can be used to debug itself, extensible; thus can become what ever you need
it to be. The links below lead to the website of the Forth Interest Group (FIG), a world-wide, non-profit organization
for education in and the promotion of the Forth computer language. Another worthwhile website dedicated to the
Forth community is http://wiki.forthfreak.net/.
408
Beyond Linux® From Scratch - Version 6.3
GNU Smalltalk
GNU Smalltalk is a free implementation of the Smalltalk-80 language which runs on most versions on Unix and, in
general, everywhere you can find a POSIX-compliance library. An uncommon feature of it is that it is well-versed
to scripting tasks and headless processing. See http://www.gnu.org/software/smalltalk/gst-manual/gst_1.html#SEC1
for a more detailed explanation of GNU Smalltalk.
• Project Home Page: http://www.gnu.org/software/smalltalk/
• Download Location: http://ftp.gnu.org/gnu/smalltalk/
Haskell
Haskell is a computer programming language. In particular, it is a polymorphicly typed, lazy, purely functional
language, quite different from most other programming languages. The language is named for Haskell Brooks Curry,
whose work in mathematical logic serves as a foundation for functional languages. Haskell is based on lambda
calculus. There are many implementations of Haskell, among them:
• GHC: http://www.haskell.org/ghc/
• HBC: http://www.cs.chalmers.se/~augustss/hbc/hbc.html
• Helium: http://www.cs.uu.nl/helium/
• Hugs: http://www.haskell.org/hugs/
• nhc98: http://www.haskell.org/nhc98/
Icon
Icon is a high-level, general-purpose programming language with a large repertoire of features for processing data
structures and character strings. It is an imperative, procedural language with a syntax reminiscent of C and Pascal,
but with semantics at a much higher level.
• Project Home Page: http://www.cs.arizona.edu/icon/
• Download Location: ftp://ftp.cs.arizona.edu/icon/
Io
Io is a small, prototype-based programming language. The ideas in Io are mostly inspired by Smalltalk (all values are
objects), Self (prototype-based), NewtonScript (differential inheritance), Act1 (actors and futures for concurrency),
LISP (code is a runtime inspectable/modifiable tree) and Lua (small, embeddable).
• Project Home Page: http://www.iolanguage.com/about/
• Download Location: http://www.iolanguage.com/downloads/
409
Beyond Linux® From Scratch - Version 6.3
J
J is a modern, high-level, general-purpose, high-performance programming language. It is portable and runs on
Windows, Unix, Mac, and PocketPC handhelds, both as a GUI and in a console. True 64-bit J systems are available
for XP64 or Linux64, on AMD64 or Intel EM64T platforms. J systems can be installed and distributed for free.
• Project Home Page: http://www.jsoftware.com/
• Download Location: http://www.jsoftware.com/download/
Jamaica
Jamaica, the JVM Macro Assembler, is an easy-to-learn and easy-to-use assembly language for JVM bytecode
programming. It uses Java syntax to define a JVM class except for the method body that takes bytecode instructions,
including Jamaica's built-in macros. In Jamaica, bytecode instructions use mnemonics and symbolic names for all
variables, parameters, data fields, constants and labels.
• Project Home Page: http://www.judoscript.com/jamaica.html
• Download Location: http://www.judoscript.com/download.html
Joy
Joy is a purely functional programming language. Whereas all other functional programming languages are based
on the application of functions to arguments, Joy is based on the composition of functions. All such functions take a
stack as an argument and produce a stack as a value. Consequently much of Joy looks like ordinary postfix notation.
However, in Joy a function can consume any number of parameters from the stack and leave any number of results on
the stack. The concatenation of appropriate programs denotes the composition of the functions which the programs
denote.
• Project Home Page: http://www.latrobe.edu.au/philosophy/phimvt/joy.html
Judo
Judo is a practical, functional scripting language. It is designed to cover the use cases of not only
algorithmic/object-oriented/multi-threaded programming and Java scripting but also a number of major application
domain tasks, such as scripting for JDBC, WSDL, ActiveX, OS, multiple file/data formats, etc. Despite its rich
functionality, the base language is extremely simple, and domain support syntax is totally intuitive to domain experts,
so that even though you have never programmed in Judo, you would have little trouble figuring out what the code does.
• Project Home Page: http://www.judoscript.com/home.html
• Download Location: http://www.judoscript.com/download.html
JWIG
JWIG is a Java-based high-level programming language for development of interactive Web services. It contains an
advanced session model, a flexible mechanism for dynamic construction of XML documents, in particular XHTML,
and a powerful API for simplifying use of the HTTP protocol and many other aspects of Web service programming. To
support program development, JWIG provides a unique suite of highly specialized program analyses that at compile
time verify for a given program that no runtime errors can occur while building documents or receiving form input,
and that all documents being shown are valid according to the document type definition for XHTML 1.0. The main
goal of the JWIG project is to simplify development of complex Web services, compared to alternatives, such as,
Servlets, JSP, ASP, and PHP. JWIG is a descendant of the <bigwig> research language.
• Project Home Page: http://www.brics.dk/JWIG/
• Download Location: http://www.brics.dk/JWIG/download.html
410
Beyond Linux® From Scratch - Version 6.3
Lava
Lava is a name unfortunately chosen for several unrelated software development languages/projects. So it doesn't
appear as though BLFS has a preference for one over another, the project web sites are listed below, without
descriptions of the capabilities or features for any of them.
• Project Home Page: http://lavape.sourceforge.net/index.htm
• Project Home Page: http://javalab.cs.uni-bonn.de/research/darwin/#The%20Lava%20Language
• Project Home Page: http://www.md.chalmers.se/~koen/Lava/
• Project Home Page: http://members.tripod.com/mathias/IavaHomepage.html
Lua
Lua is a powerful light-weight programming language designed for extending applications. It is also frequently used
as a general-purpose, stand-alone language. It is free software. Lua combines simple procedural syntax with powerful
data description constructs based on associative arrays and extensible semantics. It is dynamically typed, interpreted
from bytecodes, and has automatic memory management with garbage collection, making it ideal for configuration,
scripting, and rapid prototyping. A fundamental concept in the design of Lua is to provide meta-mechanisms for
implementing features, instead of providing a host of features directly in the language. For example, although Lua
is not a pure object-oriented language, it does provide meta-mechanisms for implementing classes and inheritance.
Lua's meta-mechanisms bring an economy of concepts and keep the language small, while allowing the semantics
to be extended in unconventional ways. Extensible semantics is a distinguishing feature of Lua. Lua is a language
engine that you can embed into your application. This means that, besides syntax and semantics, it has an API that
allows the application to exchange data with Lua programs and also to extend Lua with C functions. In this sense,
it can be regarded as a language framework for building domain-specific languages. Lua is implemented as a small
library of C functions, written in ANSI C, and compiles unmodified in all known platforms. The implementation
goals are simplicity, efficiency, portability, and low embedding cost. The result is a fast language engine with small
footprint, making it ideal in embedded systems too.
• Project Home Page: http://www.lua.org/
• Download Location: http://www.lua.org/download.html
Mercury
Mercury is a new logic/functional programming language, which combines the clarity and expressiveness of
declarative programming with advanced static analysis and error detection features. Its highly optimized execution
algorithm delivers efficiency far in excess of existing logic programming systems, and close to conventional
programming systems. Mercury addresses the problems of large-scale program development, allowing modularity,
separate compilation, and numerous optimization/time trade-offs.
• Project Home Page: http://www.cs.mu.oz.au/research/mercury/
• Download Location: http://www.cs.mu.oz.au/research/mercury/download/release.html
Mono
Mono provides the necessary software to develop and run .NET client and server applications on Linux, Solaris,
Mac OS X, Windows, and Unix. Sponsored by Novell, the Mono open source project has an active and enthusiastic
contributing community and is positioned to become the leading choice for development of Linux applications.
• Project Home Page: http://www.mono-project.com/Main_Page
• Download Location: http://go-mono.com/sources/
411
Beyond Linux® From Scratch - Version 6.3
MPD
MPD is a variant of the SR programming language. SR has a Pascal-like syntax and uses guarded commands for
control statements. MPD has a C-like syntax and C-like control statements. However, the main components of
the two languages are the same: resources, globals, operations, procs, procedures, processes, and virtual machines.
Moreover, MPD supports the same variety of concurrent programming mechanisms as SR: co statements, semaphores,
call/send/forward invocations, and receive and input statements.
• Project Home Page: http://www.cs.arizona.edu/mpd/
• Download Location: http://www.cs.arizona.edu/mpd/download/
Nemerle
Nemerle is a high-level statically-typed programming language for the .NET platform. It offers functional,
object-oriented and imperative features. It has a simple C#-like syntax and a powerful meta-programming
system. Features that come from the functional land are variants, pattern matching, type inference and parameter
polymorphism (aka generics). The meta-programming system allows great compiler extensibility, embedding domain
specific languages, partial evaluation and aspect-oriented programming.
• Project Home Page: http://nemerle.org/Main_Page
• Download Location: http://nemerle.org/Download
Octave
GNU Octave is a high-level language, primarily intended for numerical computations. It provides a convenient
command line interface for solving linear and nonlinear problems numerically, and for performing other numerical
experiments using a language that is mostly compatible with Matlab. It may also be used as a batch-oriented
language. Octave has extensive tools for solving common numerical linear algebra problems, finding the roots of
nonlinear equations, integrating ordinary functions, manipulating polynomials, and integrating ordinary differential
and differential-algebraic equations. It is easily extensible and customizable via user-defined functions written in
Octave's own language, or using dynamically loaded modules written in C++, C, Fortran, or other languages.
• Project Home Page: http://www.octave.org/
• Download Location: http://www.octave.org/download.html
412
Beyond Linux® From Scratch - Version 6.3
Pike
Pike is a dynamic programming language with a syntax similar to Java and C. It is simple to learn, does not require
long compilation passes and has powerful built-in data types allowing simple and really fast data manipulation. Pike
is released under the GNU GPL, GNU LGPL and MPL.
• Project Home Page: http://pike.ida.liu.se/
• Download Location: http://pike.ida.liu.se/download/pub/pike
Pyrex
Pyrex is a language specially designed for writing Python extension modules. It's designed to bridge the gap between
the nice, high-level, easy-to-use world of Python and the messy, low-level world of C. Pyrex lets you write code that
mixes Python and C data types any way you want, and compiles it into a C extension for Python.
• Project Home Page: http://www.cosc.canterbury.ac.nz/~greg/python/Pyrex/
Q
Q is a functional programming language based on term rewriting. Thus, a Q program or “script” is simply a collection
of equations which are used to evaluate expressions in a symbolic fashion. The equations establish algebraic identities
and are interpreted as rewriting rules in order to reduce expressions to “normal forms”.
• Project Home Page: http://q-lang.sourceforge.net/
• Download Location: http://downloads.sourceforge.net/q-lang/
R
R is a language and environment for statistical computing and graphics. It is a GNU project similar to the S language
and environment which was developed at Bell Laboratories (formerly AT&T, now Lucent Technologies) by John
Chambers and colleagues. R can be considered as a different implementation of S. There are some important
differences, but much code written for S runs unaltered under R. R provides a wide variety of statistical (linear
and nonlinear modelling, classical statistical tests, time-series analysis, classification, clustering, ...) and graphical
techniques, and is highly extensible. The S language is often the vehicle of choice for research in statistical
methodology, and R provides an Open Source route to participation in that activity.
• Project Home Page: http://www.r-project.org/
• Download Location: http://cran.r-project.org/mirrors.html
Regina Rexx
Regina is a Rexx interpreter that has been ported to most Unix platforms (Linux, FreeBSD, Solaris, AIX, HP-UX, etc.)
and also to OS/2, eCS, DOS, Win9x/Me/NT/2k/XP, Amiga, AROS, QNX4.x, QNX6.x BeOS, MacOS X, EPOC32,
AtheOS, OpenVMS, SkyOS and OpenEdition. Rexx is a programming language that was designed to be easy to use
for inexperienced programmers yet powerful enough for experienced users. It is also a language ideally suited as a
macro language for other applications.
• Project Home Page: http://regina-rexx.sourceforge.net/
• Download Location: http://downloads.sourceforge.net/regina-rexx
Serp
Serp is an open source framework for manipulating Java bytecode. The goal of the Serp bytecode framework is to
tap the full power of bytecode modification while lowering its associated costs. The framework provides a set of
high-level APIs for manipulating all aspects of bytecode, from large-scale structures like class member fields to the
413
Beyond Linux® From Scratch - Version 6.3
individual instructions that comprise the code of methods. While in order to perform any advanced manipulation,
some understanding of the class file format and especially of the JVM instruction set is necessary, the framework
makes it as easy as possible to enter the world of bytecode development.
• Project Home Page: http://serp.sourceforge.net/
• Download Location: http://serp.sourceforge.net/files/
Squeak
Squeak is an open, highly-portable Smalltalk implementation whose virtual machine is written entirely in Smalltalk,
making it easy to debug, analyze, and change. To achieve practical performance, a translator produces an equivalent
C program whose performance is comparable to commercial Smalltalks. Other noteworthy aspects of Squeak include:
real-time sound and music synthesis written entirely in Smalltalk, extensions of BitBlt to handle color of any depth
and anti-aliased image rotation and scaling, network access support that allows simple construction of servers and
other useful facilities, it runs bit-identical on many platforms (Windows, Mac, Unix, and others), a compact object
format that typically requires only a single word of overhead per object and a simple yet efficient incremental garbage
collector for 32-bit direct pointers efficient bulk-mutation of objects.
• Project Home Page: http://www.squeak.org/
• Download Location: http://www.squeak.org/Download/
SR (Synchronizing Resources)
SR is a language for writing concurrent programs. The main language constructs are resources and operations.
Resources encapsulate processes and variables they share; operations provide the primary mechanism for process
interaction. SR provides a novel integration of the mechanisms for invoking and servicing operations. Consequently,
all of local and remote procedure call, rendezvous, message passing, dynamic process creation, multicast, and
semaphores are supported. SR also supports shared global variables and operations.
• Project Home Page: http://www.cs.arizona.edu/sr/index.html
414
Beyond Linux® From Scratch - Version 6.3
Standard ML
Standard ML is a safe, modular, strict, functional, polymorphic programming language with compile-time type
checking and type inference, garbage collection, exception handling, immutable data types and updatable references,
abstract data types, and parametric modules. It has efficient implementations and a formal definition with a proof of
soundness. There are many implementations of Standard ML, among them:
• ML Kit: http://www.it-c.dk/research/mlkit/
• MLton: http://mlton.org/
• Moscow ML: http://www.dina.kvl.dk/~sestoft/mosml.html
• Poly/ML: http://www.polyml.org/
• Standard ML of New Jersey: http://www.smlnj.org/
TinyCOBOL
TinyCOBOL is a COBOL compiler being developed by members of the free software community. The mission is to
produce a COBOL compiler based on the COBOL 85 standards. TinyCOBOL is available for the Intel architecture
(IA32) and compatible processors on the following platforms: BeOS, FreeBSD, Linux and MinGW on Windows.
• Project Home Page: http://tinycobol.org/
• Download Location: http://downloads.sourceforge.net/tiny-cobol/
Yorick
Yorick is an interpreted programming language, designed for postprocessing or steering large scientific simulation
codes. Smaller scientific simulations or calculations, such as the flow past an airfoil or the motion of a drumhead, can
be written as standalone yorick programs. The language features a compact syntax for many common array operations,
415
Beyond Linux® From Scratch - Version 6.3
so it processes large arrays of numbers very efficiently. Unlike most interpreters, which are several hundred times
slower than compiled code for number crunching, Yorick can approach to within a factor of four or five of compiled
speed for many common tasks. Superficially, Yorick code resembles C code, but Yorick variables are never explicitly
declared and have a dynamic scoping similar to many Lisp dialects. The “unofficial” home page for Yorick can be
found at http://www.maumae.net/yorick.
• Project Home Page: ftp://ftp-icf.llnl.gov/pub/Yorick/doc/index.html
• Download Location: ftp://ftp-icf.llnl.gov/pub/Yorick/doc/download.html
ZPL
ZPL is an array programming language designed from first principles for fast execution on both sequential and parallel
computers. It provides a convenient high-level programming medium for supercomputers and large-scale clusters
with efficiency comparable to hand-coded message passing. It is the perfect alternative to using a sequential language
like C or Fortran and a message passing library like MPI.
• Project Home Page: http://www.cs.washington.edu/research/zpl/home/index.html
• Download Location: http://www.cs.washington.edu/research/zpl/download/download.html
Choco
Choco is a Java library for constraint satisfaction problems (CSP), constraint programming (CP) and
explanation-based constraint solving (e-CP). It is built on a event-based propagation mechanism with backtrackable
structures.
• Project Home Page: http://choco.sourceforge.net/
416
Beyond Linux® From Scratch - Version 6.3
gtkmm
gtkmm is the official C++ interface for the popular GUI library GTK+. Highlights include typesafe callbacks, widgets
extensible via inheritance and a comprehensive set of widgets. You can create user interfaces either in code or with
the Glade designer, using libglademm.
• Project Home Page: http://www.gtkmm.org/
• Download Location: http://www.gtkmm.org/download.shtml
Java-GNOME
Java-GNOME is a set of Java bindings for the GNOME and GTK+ libraries that allow GNOME and GTK+
applications to be written in Java. The Java-GNOME API has been carefully designed to be easy to use, maintaining
a good OO paradigm, yet still wrapping the entire functionality of the underlying libraries. Java-GNOME can be used
with the Eclipse development environment and Glade user interface designer to create applications with ease.
• Project Home Page: http://java-gnome.sourceforge.net/cgi-bin/bin/view
• Download Location: http://java-gnome.sourceforge.net/cgi-bin/bin/view/Main/GetJavaGnome#Source_Code
gtk2-perl
gtk2-perl is the collective name for a set of perl bindings for GTK+ 2.x and various related libraries. These modules
make it easy to write GTK and GNOME applications using a natural, perlish, object-oriented syntax.
• Project Home Page: http://gtk2-perl.sourceforge.net/
• Download Location: http://downloads.sourceforge.net/gtk2-perl
417
Beyond Linux® From Scratch - Version 6.3
PyGTK
PyGTK provides a convenient wrapper for the GTK library for use in Python programs, and takes care of many of
the boring details such as managing memory and type casting. When combined with PyORBit and gnome-python,
it can be used to write full featured GNOME applications.
• Project Home Page: http://www.pygtk.org/
• Download Location: http://www.pygtk.org/downloads.html
SWIG
SWIG is a software development tool that connects programs written in C and C++ with a variety of high-level
programming languages. SWIG is used with different types of languages including common scripting languages
such as Perl, Python, Tcl/Tk and Ruby. The list of supported languages also includes non-scripting languages such
as C#, Common Lisp (Allegro CL), Java, Modula-3 and OCAML. Also several interpreted and compiled Scheme
implementations (Chicken, Guile, MzScheme) are supported. SWIG is most commonly used to create high-level
interpreted or compiled programming environments, user interfaces, and as a tool for testing and prototyping C/C++
software. SWIG can also export its parse tree in the form of XML and Lisp s-expressions.
• Project Home Page: http://www.swig.org/
• Download Location: http://downloads.sourceforge.net/swig/
418
Beyond Linux® From Scratch - Version 6.3
Anjuta
Anujuta is a versatile Integrated Development Environment (IDE) for C and C++ on GNU/Linux. It has been written
for GTK/GNOME and features a number of advanced programming facilities. These include project management,
application wizards, an on-board interactive debugger, and a powerful source editor with source browsing and syntax
highlighting.
• Project Home Page: http://www.anjuta.org/
• Download Location: http://www.anjuta.org/downloads
Eclipse
Eclipse is an open source community whose projects are focused on providing an extensible development platform and
application frameworks for building software. Eclipse contains many projects, including an Integrated Development
Environment (IDE) for Java.
• Project Home Page: http://www.eclipse.org/
• Download Location: http://www.eclipse.org/downloads/
Mozart
The Mozart Programming System is an advanced development platform for intelligent, distributed applications.
Mozart is based on the Oz language, which supports declarative programming, object-oriented programming,
constraint programming, and concurrency as part of a coherent whole. For distribution, Mozart provides a true
network transparent implementation with support for network awareness, openness, and fault tolerance. Security
is upcoming. It is an ideal platform for both general-purpose distributed applications as well as for hard problems
requiring sophisticated optimization and inferencing abilities.
• Project Home Page: http://www.mozart-oz.org/
• Download Location: http://www.mozart-oz.org/download/view.cgi
ccache
ccache is a compiler cache. It acts as a caching pre-processor to C/C++ compilers, using the -E compiler switch and
a hash to detect when a compilation can be satisfied from cache. This often results in 5 to 10 times faster speeds in
common compilations.
• Project Home Page: http://ccache.samba.org/
• Download Location: http://samba.org/ftp/ccache/
419
Beyond Linux® From Scratch - Version 6.3
distcc
distcc is a program to distribute builds of C, C++, Objective C or Objective C++ code across several machines on a
network. distcc should always generate the same results as a local build, is simple to install and use, and is usually
much faster than a local compile. distcc does not require all machines to share a filesystem, have synchronized clocks,
or to have the same libraries or header files installed. They can even have different processors or operating systems,
if cross-compilers are installed.
• Project Home Page: http://distcc.samba.org/
• Download Location: http://distcc.samba.org/download.html
Exuberant Ctags
Exuberant Ctags generates an index (or tag) file of language objects found in source files that allows these items to be
quickly and easily located by a text editor or other utility. A tag signifies a language object for which an index entry
is available (or, alternatively, the index entry created for that object). Tag generation is supported for the following
languages: Assembler, AWK, ASP, BETA, Bourne/Korn/Zsh Shell, C, C++, COBOL, Eiffel, Fortran, Java, Lisp,
Lua, Make, Pascal, Perl, PHP, Python, REXX, Ruby, S-Lang, Scheme, Tcl, Vim, and YACC. A list of editors and
tools utilizing tag files may be found at http://ctags.sourceforge.net/tools.html.
• Project Home Page: http://ctags.sourceforge.net/
• Download Location: http://downloads.sourceforge.net/ctags/
OProfile
OProfile is a system-wide profiler for Linux systems, capable of profiling all running code at low overhead. OProfile
is released under the GNU GPL. It consists of a kernel driver and a daemon for collecting sample data, and several
post-profiling tools for turning data into information. OProfile leverages the hardware performance counters of the
420
Beyond Linux® From Scratch - Version 6.3
CPU to enable profiling of a wide variety of interesting statistics, which can also be used for basic time-spent profiling.
All code is profiled: hardware and software interrupt handlers, kernel modules, the kernel, shared libraries, and
applications. OProfile is currently in alpha status; however it has proven stable over a large number of differing
configurations. It is being used on machines ranging from laptops to 16-way NUMA-Q boxes.
• Project Home Page: http://oprofile.sourceforge.net/news/
• Download Location: http://oprofile.sourceforge.net/download/
SCons
SCons is an Open Source software construction tool, i.e, a next-generation build tool. Think of SCons as an improved,
cross-platform substitute for the classic make utility with integrated functionality similar to Autoconf/Automake and
compiler caches such as ccache.
• Project Home Page: http://scons.sourceforge.net/
• Download Location: http://downloads.sourceforge.net/scons/
strace
strace is a system call tracer, i.e., a debugging tool which prints out a trace of all the system calls made by another
process or program.
• Project Home Page: http://www.liacs.nl/~wichert/strace/
• Download Location: http://downloads.sourceforge.net/strace/
Valgrind
Valgrind is a collection of five tools: two memory error detectors, a thread error detector, a cache profiler and a heap
profiler used for debugging and profiling Linux programs. Features include automatic detection of many memory
management and threading bugs as well as detailed profiling to speed up and reduce memory use of your programs.
• Project Home Page: http://valgrind.org/
• Download Location: http://valgrind.org/downloads/source_code.html
421
Beyond Linux® From Scratch - Version 6.3
423
Beyond Linux® From Scratch - Version 6.3
PPP-2.4.4
Introduction to PPP
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 or PPPoE connection to an ISP.
Package Information
• Download (HTTP): http://samba.org/ftp/ppp/ppp-2.4.4.tar.gz
• Download (FTP): ftp://ftp.linux.ee/pub/gentoo/distfiles/distfiles/ppp-2.4.4.tar.gz
• Download MD5 sum: 183800762e266132218b204dfb428d29
• Download size: 673 KB
• Estimated disk space required: 5.6 MB
• Estimated build time: 0.1 SBU
PPP Dependencies
Optional
libpcap-0.9.6 (needed to do PPP filtering), Linux-PAM-0.99.10.0 (to authenticate incoming calls using PAM), and
Linux ATM (to build the pppoatm.so plugin)
Installation of PPP
Note
PPP support (CONFIG_PPP), the asynchronous line discipline (CONFIG_PPP_ASYNC), the driver for
your serial port device and/or the PPP over Ethernet (PPPoE) protocol driver (CONGIG_PPPOE) must
be compiled into the kernel or loaded as kernel modules. Udev doesn't load the ppp_generic and pppoe
modules automatically, they must be mentioned in the /etc/sysconfig/modules file.
Create (as root) the group for users who may run PPP:
groupadd -g 52 pppusers
Install PPP by running the following commands:
./configure --prefix=/usr &&
make
This package does not come with a test suite.
Now, as the root user:
make install &&
make install-etcppp &&
install -d /etc/ppp/peers &&
install -m755 scripts/{pon,poff,plog} /usr/bin &&
install -m644 scripts/pon.1 /usr/share/man/man1
Command Explanations
make install-etcppp: This command puts example configuration files in /etc/ppp.
424
Beyond Linux® From Scratch - Version 6.3
install -d /etc/ppp/peers: This command creates a directory for PPP peer description files.
USE_PAM=y: Add this argument to the make command to compile in support for PAM, usually needed for
authenticating inbound calls against a central database.
HAVE_INET6=y: Add this argument to the make command to compile in support for IPv6.
CBCP=y: Add this argument to the make command to compile in support for Microsoft proprietary Callback Control
Protocol.
Configuring PPP
Config Files
/etc/ppp/*
Configuration Information
The PPP daemon requires some configuration. The main trick is scripting the connection. For dialup and GPRS
connections, this can be done either using the chat program which comes with this package, or by using external
tools such as WvDial or KPPP from kdenetwork-3.5.9. The text below explains how to set up dialup and GPRS
and PPPoE connections using only tools provided with the PPP package. All configuration steps in this section are
executed as root user.
Add the users who may run PPP to the pppusers group:
Warning
Instructions in this section result in your password appearing on the screen in a visible clear-text form.
Make sure that nobody else looks at the screen.
touch /etc/ppp/pap-secrets
chmod 600 /etc/ppp/pap-secrets
cat >>/etc/ppp/pap-secrets <<"EOF"
# username remotename password IP for the peer
jdoe dialup guessit *
EOF
425
Beyond Linux® From Scratch - Version 6.3
If you don't run your own caching DNS server, create a simple ip-up script (to be called by pppd automatically once
the connection is brought up) that populates the /etc/resolv.conf file with nameservers specified by the ISP.
If you use a caching DNS server such as BIND-9.4.1-P1 or Pdnsd, the script above is wrong for you. In such case,
write your own script that tells your caching nameserver to forward queries to upstream DNS servers specified in the
$DNS1 and $DNS2 environment variables.
Dialup connections are established with the help of a modem connected to a computer and the telephone line. The
modem dials a telephone number of the ISP's modem, and they exchange data using the signal frequencies 300-4000
Hz. Typical data transfer rate is 40-50 kilobits per second, and the gateway ping time (latency) is up to 300-400 ms.
In order to configure the dialup connection, it is required to know the telephone number of the ISP's modem pool,
the username and the password.
426
Beyond Linux® From Scratch - Version 6.3
In order to configure a dialup connection, two files have to be created: a chat script that automates the connection
procedure (common for all dialup accounts), and a peer file that provides configuration information about a specific
connection to pppd:
TIMEOUT 5
'' AT
# \T is the phone number, passed from /etc/ppp/peers/dialup
OK-+++\dATH0-OK ATD\T
TIMEOUT 75
CONNECT \d\c
EOF
The first three lines of the /etc/ppp/dialup.chat file abort the script when it receives an indication of an error
from the modem. Then the timeout is set to 5 seconds and the script checks that the modem responds to the dummy
AT command at all. If not, measures are taken to dewedge it (by interrupting the data transfer and going on hook).
Then the telephone number is dialed, and the script waits for the answer for 75 seconds. The serial connection is
considered established when the modem sends the string CONNECT.
427
Beyond Linux® From Scratch - Version 6.3
GPRS and EDGE connections are established with the help of a cellular phone connected to a computer via serial or
USB cable, or using Bluetooth. The phone exchanges data packets with the nearest base station, which can be up to
35 kilometers away. The maximum possible data transfer rate is 170 kilobits per second for GPRS and 474 kilobits
per second for EDGE, but many cellular operators impose lower limits, such as 64 kilobits per second. The gateway
ping time is 900 ms for GPRS, which makes playing many online games impossible and causes connection to ICQ
to be unreliable. In order to configure a GPRS or EDGE connection, it is required to know the access point name
(APN) and, rarely, the username and the password. In most cases, billing is based on the telephone number, and the
username/password pair is not needed, as assumed in the example below.
428
Beyond Linux® From Scratch - Version 6.3
In order to configure a GPRS connection, two files have to be created: a chat script that automates the connection
procedure (common for all GPRS accounts), and a peer file that provides configuration information about a specific
connection to pppd:
TIMEOUT 5
'' AT
OK-+++\dATH0-OK ATZ
# \T is the APN, passed from /etc/ppp/peers/gprs
# This example stores the APN as profile #1 in the phone.
# The "telephone number", *99***<profile_number>#, is always the same.
# If you want to store this as profile #2, change 1 to 2 in the
# following two lines.
OK AT+CGDCONT=1,"IP","\T"
OK "ATD*99***1#"
CONNECT \d\c
EOF
429
Beyond Linux® From Scratch - Version 6.3
PPPoE connections
PPPoE connections are established over Ethernet, typically between a computer and an ADSL router (usually installed
in the same room) that forwards the packets down the telephone line using frequencies 25-2500 kHz, thus not
interfering with voice calls. Although the router can, in theory, forward any Ethernet packet, PPP encapsulation is
used for password-based authentication, so that the ISP can limit the bandwidth and charge money according to the
chosen tariff. The maximum data transfer rate on ADSL is 24 megabits per second, and the gateway ping time is
typically less than 10 ms. In order to configure a PPPoE connection, it is required to know the username, the password,
and, sometimes, the service name and/or the access concentrator name.
In order to configure a PPPoE connection, only the peer file has to be created:
cat >/etc/ppp/peers/adsl <<"EOF"
plugin rp-pppoe.so
# Ethernet interface name
eth0
# Your username at the ISP
user "jdoe"
# What should be in the second column in /etc/ppp/*-secrets
remotename "adsl"
# If needed, specify the service and the access concentrator name
# rp_pppoe_service "internet"
# rp_pppoe_ac "ac1"
430
Beyond Linux® From Scratch - Version 6.3
The above command installs the pppoe service script and the /etc/ppp/peers/pppoe file with some settings
that make sense for most PPPoE connections. The bootscript calls pppd with the the following options:
Here “${1}” is the network interface name, “linkname ${1}” is added for creation of the /var/run/ppp-${1}.
pid file with the pppd process ID (to be used when bringing the connection down), and the “${PPP_OPTS}” variable
contains user-specified options such as “user” and “remotename”.
Now create the config file for use with the pppoe service script:
Note
Instead of specifying additional options in the $PPP_OPTS variable, you can also edit the
/etc/ppp/peers/pppoe file, but then your configuration will be lost when upgrading BLFS
bootscripts.
Contents
Installed Programs: chat, pon, poff, plog, pppd, pppdump, pppoe-discovery and pppstats
Installed Libraries: Several plugin modules installed in /usr/lib/pppd/2.4.4
Installed Directories: /etc/ppp, /usr/include/pppd and /usr/lib/pppd
Short Descriptions
chat 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 pppd
process.
pon is the script that establishes a PPP connection
poff is the script that tears a PPP connection down.
plog is a script that prints the tail of the PPP log.
pppd is the Point to Point Protocol daemon.
pppdump is used to convert PPP record files to a readable format.
pppstats is used to print PPP statistics.
431
Beyond Linux® From Scratch - Version 6.3
dhcpcd-3.0.19
Introduction to dhcpcd
dhcpcd is an implementation of the DHCP client specified in RFC2131. This is useful for connecting your computer
to a network which uses DHCP to assign network addresses.
Package Information
• Download (HTTP): http://download.berlios.de/dhcpcd/dhcpcd-3.0.19.tar.bz2
• Download (FTP): ftp://ftp.osuosl.org/pub/gentoo/distfiles/dhcpcd-3.0.19.tar.bz2
• Download MD5 sum: 90d6df62d663bdea65d5905023377b39
• Download size: 32.5 KB
• Estimated disk space required: 0.3 MB
• Estimated build time: less than 0.1 SBU
Installation of dhcpcd
Install dhcpcd by running the following commands:
make
make install
Configuring dhcpcd
Config Files
/etc/dhcpcd.sh
Configuration Information
To configure dhcpcd, you need to first install the network service script,
/etc/sysconfig/network-devices/services/dhcpcd included in the blfs-bootscripts-20080816
package (as user root):
make install-service-dhcpcd
Whenever dhcpcd configures or shuts down a network interface, it executes the script /etc/dhcpcd.sh. This
script can be customized to perform additional actions for the network interface. See the man page of dhcpcd for
more details. An example file is shipped in the tarball which can be used to send the interface details to syslog.
432
Beyond Linux® From Scratch - Version 6.3
For more information on the appropriate DHCP_START and DHCP_STOP values, examine the man page for dhcpcd.
Note
The default behavior of dhcpcd is to overwrite (after making backup copies) /etc/resolv.conf,
/etc/yp.conf and /etc/ntp.conf with new files containing information from the DHCP server. If
this is undesirable, review the dhcpcd man page for switches to add to the DHCP_START value.
Contents
Installed Program: dhcpcd
Installed Libraries: None
Installed Directory: None
Short Descriptions
dhcpcd is an implementation of the DHCP client specified in RFC2131 (when -r option is not specified) and
RFC1541 (when -r option is specified).
433
Beyond Linux® From Scratch - Version 6.3
make install-service-dhclient
For more information on the appropriate DHCP_START and DHCP_STOP values, examine the man page for dhclient.
Finally, you should create the /etc/dhclient.conf file using the following commands as the root user:
434
Beyond Linux® From Scratch - Version 6.3
Note
You'll need to add a second interface definition to the file if you have more than one interface.
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
435
Beyond Linux® From Scratch - Version 6.3
436
Beyond Linux® From Scratch - Version 6.3
cURL-7.16.3
Introduction to cURL
The cURL package contains curl and its support library. This is useful for transferring files with URL syntax. This
ability to both download and redirect files can be incorporated into other programs to support functions like streaming
media.
Package Information
• Download (HTTP): http://curl.haxx.se/download/curl-7.16.3.tar.bz2
• Download (FTP): ftp://gd.tuwien.ac.at/utils/archivers/curl/curl-7.16.3.tar.bz2
• Download MD5 sum: ed55dfa8946ad53f245fae5db3a9d0ca
• Download size: 1.6 MB
• Estimated disk space required: 33 MB
• Estimated build time: 0.5 SBU (additional 0.9 SBU to run the test suite)
cURL Dependencies
Optional
pkg-config-0.22, OpenSSL-0.9.8g or GnuTLS-1.6.3, OpenLDAP-2.3.39, libidn-0.6.14, MIT Kerberos V5-1.6 or
Heimdal-1.1, krb4, SPNEGO, and c-ares
Installation of cURL
Install cURL by running the following commands:
To test the results, issue: make check. Note that if you have Stunnel and TCP Wrapper installed and you wish to
perform the HTTPS tests, you'll need to have an unrestrictive /etc/hosts.deny file.
Now, as the root user:
Command Explanations
--with-gssapi: This parameter adds Kerberos 5 support to libcurl.
find docs -name "Makefile*" -o -name "*.1" -o -name "*.3" | xargs rm: This command removes man files from
the source tree that have already been installed by the make install command.
437
Beyond Linux® From Scratch - Version 6.3
Contents
Installed Programs: curl and curl-config
Installed Library: libcurl.{so,a}
Installed Directories: /usr/include/curl, /usr/share/curl and /usr/share/doc/curl-7.16.3
Short Descriptions
curl is a client that can get documents from or send documents to any of the following protocols:
HTTP, HTTPS (needs OpenSSL-0.9.8g), FTP, GOPHER, DICT, TELNET, LDAP (needs
OpenLDAP-2.3.39 at run time) or FILE.
curl-config prints information about the last compile, like libraries linked to and prefix setting.
libcurl.{so,a} provides the API functions required by curl and other programs.
438
Beyond Linux® From Scratch - Version 6.3
GNet-2.0.7
Introduction to GNet
The GNet package contains a simple network library. This is useful for supporting TCP sockets, UDP and IP multicast,
asynchronous DNS lookup, and more.
Package Information
• Download (HTTP): http://gnetlibrary.org/src/gnet-2.0.7.tar.gz
•
• Download MD5 sum: 3a7a40411775688fe4c42141ab007048
• Download size: 595 KB
• Estimated disk space required: 7.6 MB
• Estimated build time: 0.2 SBU
GNet Dependencies
Required
GLib-1.2.10 or GLib-2.12.12
Installation of GNet
Install GNet by running the following commands:
make install
Contents
Installed Programs: None
Installed Library: libgnet-2.0.{so,a}
Installed Directories: /usr/include/gnet-2.0, /usr/lib/gnet-2.0 and /usr/share/doc/libgnet2.0-dev or
/usr/share/gtk-doc/html/gnet
Short Descriptions
libgnet-2.0.{so,a} is a simple network library written in C. It is object-oriented and built upon GLib. It is
intended to be easy to use and port.
439
Beyond Linux® From Scratch - Version 6.3
libsoup-2.2.100
Introduction to libsoup
The libsoup package contains an HTTP library implementation in C. This is useful for accessing HTTP servers in
a completely asynchronous mode.
Package Information
• Download (HTTP): http://ftp.gnome.org/pub/gnome/sources/libsoup/2.2/libsoup-2.2.100.tar.bz2
• Download (FTP): ftp://ftp.gnome.org/pub/gnome/sources/libsoup/2.2/libsoup-2.2.100.tar.bz2
• Download MD5 sum: 936e29d705aab0483b9a5b8860f68c13
• Download size: 508 KB
• Estimated disk space required: 12 MB
• Estimated build time: 0.3 SBU
libsoup Dependencies
Required
GLib-2.12.12 and libxml2-2.6.31
Optional
GTK-Doc-1.8, Apache-2.2.8 (required to run the test suite), PHP-5.2.3 compiled with XMLRPC-EPI support (only
used for the XMLRPC regression tests), and GnuTLS-1.6.3
Installation of libsoup
Install libsoup by running the following commands:
./configure --prefix=/usr &&
make
To test the results, issue make check.
Now, as the root user:
make install
Command Explanations
--enable-gtk-doc: Use this parameter if GTK-Doc is installed and you wish to rebuild the API documentation.
Contents
Installed Programs: None
Installed Library: libsoup-2.2.{so,a}
Installed Directories: /usr/include/libsoup-2.2 and /usr/share/gtk-doc/html/libsoup
Short Descriptions
libsoup-2.2.{so,a} provides functions for asynchronous HTTP connections.
440
Beyond Linux® From Scratch - Version 6.3
libpcap-0.9.6
Introduction to libpcap
libpcap provides functions for user-level packet capture, used in low-level network monitoring.
Package Information
• Download (HTTP): http://anduin.linuxfromscratch.org/sources/BLFS/6.3/l/libpcap-0.9.6.tar.gz
• Download (FTP): ftp://ftp.linux.ee/pub/gentoo/distfiles/distfiles/libpcap-0.9.6.tar.gz
• Download MD5 sum: 2e1b5e983654c1d5991450e3e0e525ca
• Download size: 438 KB
• Estimated disk space required: 4 MB
• Estimated build time: less than 0.1 SBU
libpcap Dependencies
Optional
Software distribution for the DAG and Septel range of passive network monitoring cards.
Installation of libpcap
Install libpcap by running the following commands:
Contents
Installed Programs: None
Installed Library: libpcap.a
Installed Directory: /usr/share/doc/libpcap-0.9.6
Short Descriptions
libpcap.a is a library used for user-level packet capture.
441
Beyond Linux® From Scratch - Version 6.3
442
Beyond Linux® From Scratch - Version 6.3
Links-2.1pre33
Introduction to Links
Links is a text and graphics mode WWW browser. It includes support for rendering tables and frames, features
background downloads, can display colors and has many other features.
Package Information
• Download (HTTP): http://links.twibright.com/download/links-2.1pre33.tar.bz2
• Download (FTP): ftp://ftp.linux.ee/pub/gentoo/distfiles/distfiles/links-2.1pre33.tar.bz2
• Download MD5 sum: 8c4bc1ebbf4962d290df8218bfc21413
• Download size: 4.1 MB
• Estimated disk space required: 25 MB
• Estimated build time: 0.3 SBU
Additional Downloads
• Recommended patch: ftp://ftp.linux.ee/pub/gentoo/distfiles/distfiles/links-2.1pre33-utf8.diff.bz2
Links Dependencies
Recommended
GPM-1.20.1 (if mouse support is desired) and OpenSSL-0.9.8g
Optional
Support for graphical mode requires at least one of GPM-1.20.1 (to be used with a framebuffer-based console),
SVGAlib, DirectFB, and X Window System
443
Beyond Linux® From Scratch - Version 6.3
For decoding various image formats Links can utilize libpng-1.2.29, libjpeg-6b, and LibTIFF-3.8.2
Installation of Links
If desired, apply the patch:
bzcat ../links-2.1pre33-utf8.diff.bz2 | patch -p1 &&
cd intl &&
./gen-intl && ./synclang &&
cd ..
Install Links by running the following commands:
./configure --prefix=/usr &&
make
This package does not come with a test suite.
Now, as the root user:
make install &&
install -v -d -m755 /usr/share/doc/links-2.1pre33 &&
install -v -m644 doc/links_cal/* KEYS BRAILLE_HOWTO \
/usr/share/doc/links-2.1pre33
Command Explanations
./gen-intl && ./synclang: These commands regenerate the language table.
--enable-graphics: This switch enables support for graphics mode.
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 for the first time.
For the correct display of non-ASCII characters, Links has to be configured through the menu (accessible by pressing
the ESC key), as follows:
• If running Links in the text mode in a UTF-8 based locale, go to the “Setup > Terminal options” menu item and
check the “UTF-8 I/O” box.
• If running Links in the text mode, go to the “Setup > Character set” menu item and select the character set that
matches your locale or, if you use UTF-8 based locale, the character set that contains all characters that you want
Links to be able to display.
• Optionally, go to the “Setup > Language” menu and select the user interface language.
• Finally, select the “Setup > Save options” menu item.
444
Beyond Linux® From Scratch - Version 6.3
Contents
Installed Program: links
Installed Libraries: None
Installed Directories: /usr/share/doc/links-2.1pre33
Short Descriptions
links is a text and graphics mode WWW browser.
445
Beyond Linux® From Scratch - Version 6.3
Lynx-2.8.6rel.5
Introduction to Lynx
Lynx is a text based web browser.
Package Information
• Download (HTTP): http://lynx.isc.org/current/lynx2.8.6rel.5.tar.bz2
• Download (FTP): ftp://lynx.isc.org/current/lynx2.8.6rel.5.tar.bz2
• Download MD5 sum: bd44c57d28fd3e4c9db1cd492d403600
• Download size: 2.2 MB
• Estimated disk space required: 26 MB
• Estimated build time: 0.5 SBU
Lynx Dependencies
Optional
OpenSSL-0.9.8g or GnuTLS-1.6.3 (experimental), Zip-2.32, UnZip-5.52, an MTA (that provides a sendmail
command), and sharutils (for a uudecode program)
Installation of Lynx
Install Lynx by running the following commands:
./configure --prefix=/usr \
--sysconfdir=/etc/lynx \
--datadir=/usr/share/doc/lynx-2.8.6rel.5 \
--with-zlib \
--with-bzlib \
--with-screen=ncursesw \
--enable-locale-charset &&
make
This package does not come with a test suite.
Now, as the root user:
make install-full &&
chgrp -v -R root /usr/share/doc/lynx-2.8.6rel.5/lynx_doc
Command Explanations
--sysconfdir=/etc/lynx: This parameter is used so that the configuration files are located in /etc/lynx
instead of /usr/etc.
--datadir=/usr/share/doc/lynx-2.8.6rel.5: This parameter is used so that the documentation files
are installed into /usr/share/doc/lynx-2.8.6rel.5 instead of /usr/share/lynx_{doc,help}.
--with-zlib: This enables support for linking libz into Lynx.
--with-bzlib: This enables support for linking libbz2 into Lynx.
446
Beyond Linux® From Scratch - Version 6.3
--with-screen=ncursesw: This switch enables the use of advanced wide-character support present in the
system NCurses library. This is needed for proper display of characters and line wrapping in multibyte locales.
--enable-locale-charset: This switch allows Lynx to deduce the proper character encoding for terminal
output from the current locale. A configuration step is still needed (see below), but unlike the situation without
this switch, the configuration step becomes the same for all users (without the switch one must specify the display
character set explicitly). This is important for environments such as a LiveCD, where the amount of system-specific
configuration steps has to be reduced to the minimum.
--enable-nls: This switch allows Lynx to print translated messages (such as questions about cookies and SSL
certificates).
--with-ssl: This enables support for linking SSL into Lynx.
--with-gnutls: This enables experimental support for linking GnuTLS into Lynx.
make install-full: In addition to the standard installation, this target installs the documentation and help files.
chgrp -v -R root /usr/share/doc/lynx-2.8.6rel.5/lynx_doc: This command corrects the improper group ownership
of installed documentation files.
Configuring Lynx
Config Files
/etc/lynx/lynx.cfg
Configuration Information
The proper way to get the display character set is to examine the current locale. However, Lynx does not do this by
default. Change this setting:
sed -i 's/#\(LOCALE_CHARSET\):FALSE/\1:TRUE/' /etc/lynx/lynx.cfg
The built-in editor in Lynx Breaks Multibyte Characters. This issue manifests itself in multibyte locales, e.g., as the
Backspace key not erasing non-ASCII characters properly, and as incorrect data being sent to the network when one
edits the contents of text areas. The only solution to this problem is to configure Lynx to use an external editor (bound
to the “Ctrl+X e” key combination by default):
sed -i 's/#\(DEFAULT_EDITOR\):/\1:vi/' /etc/lynx/lynx.cfg
Lynx handles the following values of the DEFAULT_EDITOR option specially by adding cursor-positioning
arguments: “emacs”, “jed”, “jmacs”, “joe”, “jove”, “jpico”, “jstar”, “pico”, “rjoe”, “vi” (but not “vim”: in order to
position the cursor in Vim-7.1, set this option to “vi”).
By default, Lynx doesn't save cookies between sessions. Change this setting:
sed -i 's/#\(PERSISTENT_COOKIES\):FALSE/\1:TRUE/' /etc/lynx/lynx.cfg
Many other system-wide settings such as proxies can also be set in the /etc/lynx/lynx.cfg file.
Contents
Installed Program: lynx
Installed Libraries: None
Installed Directories: /etc/lynx and /usr/share/doc/lynx-2.8.6rel.5
447
Beyond Linux® From Scratch - Version 6.3
Short Descriptions
lynx is a general purpose, text-based, distributed information browser for the World Wide Web.
448
Beyond Linux® From Scratch - Version 6.3
W3m-0.5.2
Introduction to W3m
w3m is primarily a pager but it can also be used as a text-mode WWW browser.
Package Information
• Download (HTTP): http://downloads.sourceforge.net/w3m/w3m-0.5.2.tar.gz
•
• Download MD5 sum: ba06992d3207666ed1bf2dcf7c72bf58
• Download size: 1.9 MB
• Estimated disk space required: 20 MB
• Estimated build time: 0.3 SBU
W3m Dependencies
Required
GC-6.8
Optional
pkg-config-0.22, GPM-1.20.1, OpenSSL-0.9.8g, Imlib2-1.4.0, GTK+-2.10.13, Imlib (not recommended: obsolete,
abandoned upstream, buggy, and gives no additional functionality as compared to other image loading libraries),
GDK Pixbuf-0.22, Compface-1.5.2, nkf, a Mail User Agent and an External Browser
Installation of W3m
Install w3m by running the following commands:
./configure --prefix=/usr \
--libexecdir=/usr/lib \
--sysconfdir=/etc &&
make
This package does not come with a test suite.
Now, as the root user:
make install &&
install -v -m644 -D doc/keymap.default /etc/w3m/keymap &&
install -v -m644 doc/menu.default /etc/w3m/menu &&
install -v -m755 -d /usr/share/doc/w3m-0.5.2 &&
install -v -m644 doc/{HISTORY,READ*,keymap.*,menu.*,*.html} \
/usr/share/doc/w3m-0.5.2
Configuring W3m
Config Files
/etc/w3m/* and ~/.w3m/*
449
Beyond Linux® From Scratch - Version 6.3
Contents
Installed Programs: w3m and w3mman
Installed Libraries: None
Installed Directories: /usr/lib/w3m, /usr/share/w3m and usr/share/doc/w3m-0.5.2
Short Descriptions
w3m is a text based web browser and pager.
w3mman is an interface to the on-line reference manuals in w3m.
450
Beyond Linux® From Scratch - Version 6.3
451
Beyond Linux® From Scratch - Version 6.3
CVS-1.11.22
Introduction to CVS
CVS is the Concurrent Versions System. This is a version control system useful for projects using a central repository
to hold files and then track all changes made to those files. These instructions install the client used to manipulate the
repository, creation of a repository is covered at Running a CVS Server.
Package Information
• Download (HTTP): http://ftp.gnu.org/non-gnu/cvs/source/stable/1.11.22/cvs-1.11.22.tar.bz2
• Download (FTP): ftp://ftp.gnu.org/non-gnu/cvs/source/stable/1.11.22/cvs-1.11.22.tar.bz2
• Download MD5 sum: f24043a640509aff1aa28871dd345762
• Download size: 2.9 MB
• Estimated disk space required: 32.3 MB
• Estimated build time: 0.3 SBU (additional ~20 SBU to run the test suite)
Additional Downloads
• Recommended patch: http://www.linuxfromscratch.org/patches/blfs/6.3/cvs-1.11.22-zlib-1.patch
CVS Dependencies
Optional
GDBM-1.8.3, Tcsh-6.15.00, OpenSSH-4.7p1, krb4, MIT Kerberos V5-1.6 or Heimdal-1.1 (for the GSSAPI libraries),
AFPL Ghostscript-8.53 or ESP Ghostscript-8.15.4, and an MTA (that provides a sendmail command)
CVS will invoke a default text editor to create a commit message if the -m "Commit message" parameter was
not used when changes are committed to a respository. CVS looks for the following text editors, in the order shown
below, during configuration to determine the default. This default can always be overridden by the CVSEDITOR or
EDITOR environment variables and can be specified directly by passing the --with-editor=<desired text
editor> parameter to the configure script.
• Vim-7.1
• Emacs-22.1
• nano-2.0.7
• Pine-4.64 (for Pico)
Installation of CVS
By default CVS is statically linked against the Zlib library included in its source tree. This makes it exposed to
possible security vulnerabilities in that library. If you want to modify CVS to use the system shared Zlib library,
apply the following patch:
452
Beyond Linux® From Scratch - Version 6.3
If you have teTeX-3.0 installed and wish to create DVI, Postscript, HTML or text docs from the documentation source
files, issue the following command:
To test the results, issue: make check. This will take quite a while. If you don't have rsh configured for access to the
host you are building on (or you didn't pass the --with-rsh= parameter to the configure script, some tests may
fail. If you passed the --with-rsh=ssh parameter to enable ssh as the default remote shell program, you'll need
to issue the following command so that the tests will complete without any failures:
sed -e 's/rsh};/ssh};/' \
-e 's/g=rw,o=r$/g=r,o=r/' \
-i src/sanity.sh
If you created any additional documentation, install it by issuing the following commands as the root user:
Configuring CVS
Config Files
~/.cvsrc, ~/.cvswrappers, and ~/.cvspass.
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.
~/.cvspass contains passwords used to complete logins to servers.
Contents
Installed Programs: cvs, cvsbug, and rcs2log
Installed Libraries: None
Installed Directories: /usr/share/cvs and /usr/share/doc/cvs-1.11.22
453
Beyond Linux® From Scratch - Version 6.3
Short Descriptions
cvs is the main program file for the concurrent versions system.
cvsbug is used to send problem reports about CVS to a central support site.
rcs2log is a symlink to the contributed RCS to Change Log generator.
454
Beyond Linux® From Scratch - Version 6.3
Inetutils-1.5
Introduction to Inetutils
The Inetutils package contains network clients and servers.
Package Information
• Download (HTTP): http://gd.tuwien.ac.at/gnu/gnusrc/inetutils/inetutils-1.5.tar.gz
• Download (FTP): ftp://ftp.gnu.org/gnu/inetutils/inetutils-1.5.tar.gz
• Download MD5 sum: aeacd11d19bf25c89d4eff38346bdfb9
• Download size: 1.3 MB
• Estimated disk space required: 14 MB
• Estimated build time: 0.4 SBU
Inetutils Dependencies
Optional
Linux-PAM-0.99.10.0, TCP Wrapper-7.6, krb4, and Heimdal-1.1 or MIT Kerberos V5-1.6
Installation of Inetutils
Install Inetutils by running the following commands:
./configure --prefix=/usr \
--libexecdir=/usr/sbin \
--sysconfdir=/etc \
--localstatedir=/var \
--disable-logger \
--disable-syslogd &&
make
This package does not come with a test suite.
Now, as the root user:
make install &&
mv -v /usr/bin/ping{,6} /bin
Command Explanations
--disable-logger: This switch prevents Inetutils installing a logger program, which is installed in the LFS
book.
--disable-syslogd: This switch prevents Inetutils installing a system log daemon, which is installed in the
LFS book.
--disable-whois: This switch will prevent Inetutils installing an outdated whois client. Add this option if you
plan on installing Whois-4.7.26.
--disable-ifconfig: This switch will prevent Inetutils installing an ifconfig command. Use this parameter if
you have Net-Tools installed and wish to keep its version of ifconfig.
455
Beyond Linux® From Scratch - Version 6.3
--with-wrap: This switch makes Inetutils compile against tcp-wrappers. Add this option if you want to utilize
tcp-wrappers.
--with-pam: This switch makes Inetutils link against Linux-PAM libraries. Add this option if you want to utilize
PAM.
--disable-servers: Some of the servers included with Inetutils are insecure in nature and in some cases
better alternatives exist. You can choose this switch to enable only the servers you need, avoiding the installation
of unneeded servers.
Contents
A list of the installed programs not included here, along with their short descriptions can be found at ../../../../lfs/view/6.
3/chapter06/inetutils.html#contents-inetutils.
Installed Programs: ftpd, ifconfig, inetd, ping6, rexecd, rlogind, rshd, talkd, telnetd, tftpd, uucpd and whois
Installed Libraries: None
Installed Directories: None
Short Descriptions
ftpd is a DARPA Internet File Transfer Protocol Server.
inetd is an Internet super-server. Note that the xinetd-2.3.14 package provides a much better server that does
the same thing.
rexecd is a remote execution server.
rlogind is a remote login server.
rshd is a remote shell server.
talkd is a remote user communication server.
telnetd is a DARPA TELNET protocol server.
tftpd is an Internet Trivial File Transfer Protocol server.
uucpd is a server for supporting UUCP connections over networks.
whois is a client for the whois directory service. Note that the Whois-4.7.26 package provides a much better
client.
456
Beyond Linux® From Scratch - Version 6.3
NcFTP-3.2.1
Introduction to NcFTP
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.
Package Information
• Download (HTTP): http://gd.tuwien.ac.at/infosys/clients/ftp/ncftp/ncftp-3.2.1-src.tar.bz2
• Download (FTP): ftp://ftp.ncftp.com/ncftp/ncftp-3.2.1-src.tar.bz2
• Download MD5 sum: d82cdfe0d5448172c03b434607414fb8
• Download size: 409 KB
• Estimated disk space required: 9.8 MB
• Estimated build time: 0.2 SBU
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:
To install NcFTP using the second method (with the libncftp functionality linked in statically) run the following
commands:
make install
457
Beyond Linux® From Scratch - Version 6.3
Command Explanations
make -C ... && make -C ...: 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
/etc/ncftp.* and ~/.ncftp/*; especially /etc/ncftp.prefs_v3 and ~/.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
Contents
Installed Programs: ncftp, ncftpbatch, ncftpbookmarks, ncftpget, ncftpls, ncftpput, and ncftpspooler
Installed Library: libncftp.so
Installed Directories: None
Short Descriptions
ncftp is a browser program for File Transfer Protocol.
ncftpbatch is an individual batch FTP job processor.
ncftpbookmarks is the NcFTP Bookmark Editor (NCurses-based).
ncftpget is an internet file transfer program for scripts used to retrieve files.
ncftpls is an internet file transfer program for scripts used to list files.
ncftpput is an internet file transfer program for scripts used to transfer files.
ncftpspooler is a global batch FTP job processor daemon.
458
Beyond Linux® From Scratch - Version 6.3
Net-tools-1.60
Introduction to Net-tools
The Net-tools package is a collection of programs for controlling the network subsystem of the Linux kernel.
Package Information
• Download (HTTP): http://www.tazenda.demon.co.uk/phil/net-tools/net-tools-1.60.tar.bz2
• Download (FTP): ftp://ftp.ibiblio.org/pub/Linux/distributions/rootlinux/rootlinux/ports/base/net-tools/net-tools-
1.60.tar.bz2
• Download MD5 sum: 888774accab40217dde927e21979c165
• Download size: 194 KB
• Estimated disk space required: 4.3 MB
• Estimated build time: 0.1 SBU
Additional Downloads
• Required Patch: http://www.linuxfromscratch.org/patches/blfs/6.3/net-tools-1.60-gcc34-3.patch
• Required Patch: http://www.linuxfromscratch.org/patches/blfs/6.3/net-tools-1.60-kernel_headers-2.patch
• Required Patch: http://www.linuxfromscratch.org/patches/blfs/6.3/net-tools-1.60-mii_ioctl-1.patch
Installation of Net-tools
Note
The Net-tools package installs a hostname program which will overwrite the existing program installed by
Coreutils during a base LFS installation. If, for whatever reason, you need to reinstall the Coreutils package
after installing Net-tools, you should apply the coreutils-6.9-suppress_hostname-1.patch
patch (after the other patches) if you wish to preserve the Net-tools hostname program.
The instructions below automate the configuration process by piping yes to the make config command. If you wish
to run the interactive configuration process (by changing the instruction to just make config), but you are not sure
how to answer all the questions, then just accept the defaults. This will be just fine in the majority of cases. What
you're asked here is a bunch of questions about which network protocols you've enabled in your kernel. The default
answers will enable the tools from this package to work with the most common protocols: TCP, PPP, and several
others. You still need to actually enable these protocols in the kernel—what you do here is merely tell the package
to include support for those protocols in its programs, but it's up to the kernel to make the protocols available.
Install Net-tools by running the following commands:
patch -Np1 -i ../net-tools-1.60-gcc34-3.patch &&
patch -Np1 -i ../net-tools-1.60-kernel_headers-2.patch &&
patch -Np1 -i ../net-tools-1.60-mii_ioctl-1.patch &&
yes "" | make config &&
sed -i -e 's|HAVE_IP_TOOLS 0|HAVE_IP_TOOLS 1|g' \
-e 's|HAVE_MII 0|HAVE_MII 1|g' config.h &&
sed -i -e 's|# HAVE_IP_TOOLS=0|HAVE_IP_TOOLS=1|g' \
-e 's|# HAVE_MII=0|HAVE_MII=1|g' config.make &&
make
459
Beyond Linux® From Scratch - Version 6.3
make update
Command Explanations
yes "" | make config: Piping yes to make config skips the interactive configuration and accepts the defaults.
sed -i -e ...: These two seds change the configuration files to force building the ipmaddr, iptunnel and mii-tool
programs.
Contents
Installed Programs: arp, dnsdomainname, domainname, hostname, ifconfig, ipmaddr, iptunnel, mii-tool,
nameif, netstat, nisdomainname, plipconfig, rarp, route, slattach, and ypdomainname
Installed Libraries: None
Installed Directories: None
Short Descriptions
arp is used to manipulate the kernel's ARP cache, usually to add or delete an entry, or to dump
the entire cache.
dnsdomainname reports the system's DNS domain name.
domainname reports or sets the system's NIS/YP domain name.
hostname reports or sets the name of the current host system.
ifconfig is the main utility for configuring network interfaces.
ipmaddr adds, deletes and shows an interface's multicast addresses.
iptunnel adds, changes, deletes and shows an interface's tunnels.
mii-tool checks or sets the status of a network interface's Media Independent Interface (MII) unit.
nameif names network interfaces based on MAC addresses.
netstat is used to report network connections, routing tables, and interface statistics.
nisdomainname does the same as domainname.
plipconfig is used to fine tune the PLIP device parameters, to improve its performance.
rarp is used to manipulate the kernel's RARP table.
route is used to manipulate the IP routing table.
slattach attaches a network interface to a serial line. This allows you to use normal terminal lines for
point-to-point links to other computers.
ypdomainname does the same as domainname.
460
Beyond Linux® From Scratch - Version 6.3
461
Beyond Linux® From Scratch - Version 6.3
NTP-4.2.4p0
Introduction to NTP
The NTP package contains a client and server to keep the time synchronized between various computers over a
network. This package is the official reference implementation of the NTP protocol.
Package Information
• Download (HTTP): http://www.eecis.udel.edu/~ntp/ntp_spool/ntp4/ntp-4.2/ntp-4.2.4p0.tar.gz
•
• Download MD5 sum: 6f381e3764eac481bed9cf7e4d508952
• Download size: 3.3 MB
• Estimated disk space required: 27.2 MB
• Estimated build time: 0.4 SBU
NTP Dependencies
Optional
OpenSSL-0.9.8g
Installation of NTP
Install NTP by running the following commands:
Command Explanations
--with-binsubdir=sbin: This parameter places the administrative programs in /usr/sbin.
Configuring NTP
Config Files
/etc/ntp.conf
462
Beyond Linux® From Scratch - Version 6.3
Configuration Information
The following configuration file defines various NTP servers with open access from different continents. It also
creates a drift file where ntpd stores the frequency offset and a pid file to store the ntpd process ID. Since the
documentation included with the package is sparse, visit the NTP website at http://www.ntp.org/ and http://www.
pool.ntp.org/ for more information.
# Asia
server 0.asia.pool.ntp.org
# Australia
server 0.oceania.pool.ntp.org
# Europe
server 0.europe.pool.ntp.org
# North America
server 0.north-america.pool.ntp.org
# South America
server 2.south-america.pool.ntp.org
driftfile /var/cache/ntp.drift
pidfile /var/run/ntpd.pid
EOF
make install-ntp
If you prefer to run ntpd periodically, add the following command to root's crontab:
ntpd -q
Execute the following command if you would like to set the hardware clock to the current system time at shutdown
and reboot:
463
Beyond Linux® From Scratch - Version 6.3
Contents
Installed Programs: ntp-keygen, ntp-wait, ntpd, ntpdate, ntpdc, ntpq, ntptime, ntptrace, sntp and tickadj
Installed Libraries: None
Installed Directory: /usr/share/doc/ntp-4.2.4p0
Short Descriptions
ntp-keygen generates cryptographic data files used by the NTPv4 authentication and identification schemes.
ntp-wait is useful at boot time, to delay the boot sequence until ntpd has set the time.
ntpd is a NTP daemon that runs in the background and keeps the date and time synchronized based on
response from configured NTP servers. It also functions as a NTP server.
ntpdate is a client program that sets the date and time based on the response from an NTP server. This
command is deprecated.
ntpdc is used to query the NTP daemon about its current state and to request changes in that state.
ntpq is an utility program used to monitor ntpd operations and determine performance.
ntptime reads and displays time-related kernel variables.
ntptrace traces a chain of NTP servers back to the primary source.
sntp is a Simple Network Time Protocol (SNTP) client.
tickadj reads, and optionally modifies, several timekeeping-related variables in older kernels that do not
have support for precision timekeeping.
464
Beyond Linux® From Scratch - Version 6.3
OpenSSH-4.7p1 Client
The ssh client is a secure replacement for telnet. If you want to install it, the instructions can be found in Chapter 21
– OpenSSH-4.7p1. 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!).
465
Beyond Linux® From Scratch - Version 6.3
Portmap-6.0
Introduction to Portmap
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.
Package Information
• Download (HTTP): http://neil.brown.name/portmap/portmap-6.0.tgz
•
• Download MD5 sum: ac108ab68bf0f34477f8317791aaf1ff
• Download size: 21 KB
• Estimated disk space required: 268 KB
• Estimated build time: 0.01 SBU
Portmap Dependencies
Required
TCP Wrapper-7.6
Installation of Portmap
Portmap runs as a daemon with a uid of 1. This uid is only configurable at compile time and is used as default. To
set up a user to match this uid, as the root user, issue:
useradd -u 1 -g 1 -d /dev/null -s /bin/false bin
Install portmap with the following commands:
make
If you want the portmap daemon to use a uid/gid other than the defaults, pass DAEMON_UID=x and
DAEMON_GID=y as shown below:
make DAEMON_UID=x DAEMON_GID=y
Now, as the root user:
make install
Note
The above installation places executable portmap in /sbin. You may choose to move the file to
/usr/sbin. If you do, remember to modify the bootscript also.
Configuring Portmap
Boot Script
Install the /etc/rc.d/init.d/portmap init script included in the blfs-bootscripts-20080816 package.
make install-portmap
466
Beyond Linux® From Scratch - Version 6.3
Contents
Installed Programs: pmap_dump, pmap_set, and portmap
Installed Libraries: None
Installed Directories: None
Short Descriptions
pmap_dump saves the port mapping table to an ASCII file.
pmap_set restores the port mapping table from an ASCII file.
portmap is an RPC port mapper.
467
Beyond Linux® From Scratch - Version 6.3
Rsync-3.0.2 Client
rsync is a utility for fast incremental file transfers. If you want to install it, the instructions can be found in Chapter
24 – rsync-3.0.2. 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!).
Samba-3.0.30 Client
The Samba client utilities are used to transfer files to and from, mount SMB shares located on or use printers attached
to Windows and other SMB servers. If you want to install these utilities, the instructions can be found in Chapter 21
– Samba-3.0.30. After performing the basic installation, configure the utilities using the configuration section titled
“Scenario 1: Minimal Standalone Client-Only Installation”.
Note that if you only want to use these client utilities, you do not need to run the server daemons and so do not need
the startup script and links. In accordance with good practice, only run the server daemons if you actually need them.
You'll find an explanation of the services provided by the server daemons in the Samba-3.0.30 instructions.
468
Beyond Linux® From Scratch - Version 6.3
Subversion-1.4.4
Introduction to Subversion
Subversion is a version control system that is designed to be a compelling replacement for CVS in the open source
community. It extends and enhances CVS' feature set, while maintaining a similar interface for those already familiar
with CVS. These instructions install the client and server software used to manipulate a Subversion repository.
Creation of a repository is covered at Running a Subversion Server.
Package Information
• Download (HTTP): http://subversion.tigris.org/downloads/subversion-1.4.4.tar.bz2
•
• Download MD5 sum: d4aa5aeb09acb3307841022d279ab895
• Download size: 4.7 MB
• Estimated disk space required: 109 MB (additional 74 MB to install all bindings and 405 MB to run all test
suites)
• Estimated build time: 1.5 SBU (add 1.7 SBU for bindings and 2.2 SBU to run test suites)
Subversion Dependencies
Required
Apache-2.2.8 (for the APR only) or Apache Portable Runtime or Subversion dependencies (see the INSTALL file
for information on how to utilize this package)
If you require the Berkeley DB back-end hooks in Subversion to build or support BDB based repositories, you must
have Berkeley DB linked into the APR-util library. There is information in the Apache-2.2.8 instructions that shows
the required parameters to pass to the configure script when building any of the APR-util packages.
Optional
Python-2.5.2 (required to run the test suite), Apache-2.2.8 (if you have Apache Portable Runtime installed), neon*,
and serf
* The configure script will warn that the installed neon version is not supported if the version is greater than 0.26.2.
You can circumvent this warning by passing --disable-neon-version-check to the configure command.
Note that this may or may not work, depending on the version of neon you have installed, but neon-0.26.3 is known
to work.
JDK-6 Update 5 or Dante or Jikes, and JUnit-4.3.1 (to test the Java bindings)
469
Beyond Linux® From Scratch - Version 6.3
Installation of Subversion
Install Subversion by running the following commands:
sed -i 's/@SVN_APR_INCLUDES@/& @CPPFLAGS@/' \
subversion/bindings/swig/perl/native/Makefile.PL.in
make install-swig-rb
470
Beyond Linux® From Scratch - Version 6.3
Command Explanations
sed -i '...' .../Makefile.PL.in: This command is used to fix a problem with compiling the Perl bindings. It can be
ommitted if you're not building the bindings.
--with-neon=<prefix>: This option should be used if you wish to use a system-installed version of neon.
--with-apr=<prefix> --with-apr-util=<prefix>: These options should be used if you wish to use
the system-installed version of the APR. Ensure you identify the correct installation prefix.
--with-apxs=/usr/sbin/apxs: This option should be used to identify the system-installed version of the
apxs command installed during the Apache HTTPD installation as apxs might not be in an unprivileged user's PATH
and won't be properly discovered.
--with-installbuilddir=/usr/lib/apr-0: This parameter is used (and only has an effect if you
used the Subversion dependencies package) to force the installation of some APR-related support programs to
/usr/lib/apr-0 instead of /usr/build.
Configuring Subversion
Config Files
~/.subversion/config and /etc/subversion/config
Configuration Information
/etc/subversion/config is the Subversion system-wide configuration file. This file is used to specify defaults
for different svn commands.
~/.subversion/config is the user's personal configuration file. It is used to override the system-wide defaults
set in /etc/subversion/config.
Contents
Installed Programs: svn, svnadmin, svndumpfilter, svnlook, svnserve, svnsync and svnversion
Installed Libraries: libsvn*.{so,a} and optionally, a Java library, the mod_dav_svn.so, and
mod_authz_svn.so Apache HTTP DSO modules and various Perl, Python and Ruby
modules
Installed Directories: /usr/include/subversion-1, /usr/lib/perl5/site_perl/5.8.8/i686-linux/auto/SVN
(optional), /usr/lib/perl5/site_perl/5.8.8/i686-linux/SVN (optional),
/usr/lib/ruby/site_ruby/x.x/i686-linux/svn, /usr/lib/svn-javahl (optional),
/usr/lib/svn-python (optional) and /usr/share/doc/subversion-1.4.4
Short Descriptions
svn is a command-line client program used to access Subversion repositories.
svnadmin is a tool for creating, tweaking or repairing a Subversion repository.
svndumpfilter is a program for filtering Subversion repository dumpfile format streams.
svnlook is a tool for inspecting a Subversion repository.
svnserve is a custom standalone server program, able to run as a daemon process or invoked by SSH.
svnversion is used to report the version number and state of a working Subversion repository copy.
471
Beyond Linux® From Scratch - Version 6.3
neon-config is a script which provides information about an installed copy of the neon library.
libsvn_*.{so,a} are the support libraries used by the Subversion programs.
libneon.{so,a} is used as a high-level interface to common HTTP and WebDAV methods.
mod_authz_svn.so is a plug-in module for the Apache HTTP server, used to authenticate users to a Subversion
repository over the Internet or an intranet.
mod_dav_svn.so is a plug-in module for the Apache HTTP server, used to make a Subversion repository
available to others over the Internet or an intranet.
472
Beyond Linux® From Scratch - Version 6.3
TCP Wrapper-7.6
Introduction to TCP Wrapper
The TCP Wrapper package provides daemon wrapper programs that report the name of the client requesting network
services and the requested service.
Package Information
• Download (HTTP): http://files.ichilton.co.uk/nfs/tcp_wrappers_7.6.tar.gz
• Download (FTP): ftp://ftp.porcupine.org/pub/security/tcp_wrappers_7.6.tar.gz
• Download MD5 sum: e6fa25f71226d090f34de3f6b122fb5a
• Download size: 97 KB
• Estimated disk space required: 1.09 MB
• Estimated build time: less than 0.1 SBU
Additional Downloads
• Required Patch (Fixes some build issues and adds building a shared library): http://www.linuxfromscratch.org/
patches/blfs/6.3/tcp_wrappers-7.6-shared_lib_plus_plus-1.patch
make install
Command Explanations
sed -i -e ... scaffold.c: This command removes an obsolete C declaration which causes the build to fail if using GCC
>= 3.4.x.
473
Beyond Linux® From Scratch - Version 6.3
becomes:
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
Installed Programs: tcpd, tcpdchk, tcpdmatch, try-from, and safe_finger
Installed Library: libwrap.{so,a}
Installed Directories: None
Short Descriptions
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 is a tool to examine a tcpd wrapper configuration and report problems with it.
tcpdmatch is used to predict how the TCP wrapper would handle a specific request for a service.
try-from can be called via a remote shell command to find out if the host name and address are properly
recognized.
safe_finger is a wrapper for the finger utility, to provide automatic reverse name lookups.
libwrap.{so,a} contains the API functions required by the TCP Wrapper programs as well as other programs
to become “TCP Wrapper-aware”.
474
Beyond Linux® From Scratch - Version 6.3
Wget-1.10.2
Introduction to Wget
The Wget package contains a utility useful for non-interactive downloading of files from the Web.
Package Information
• Download (HTTP): http://ftp.gnu.org/gnu/wget/wget-1.10.2.tar.gz
• Download (FTP): ftp://ftp.gnu.org/gnu/wget/wget-1.10.2.tar.gz
• Download MD5 sum: 795fefbb7099f93e2d346b026785c4b8
• Download size: 1.2 MB
• Estimated disk space required: 8.7 MB
• Estimated build time: 0.1 SBU
Wget Dependencies
Optional
OpenSSL-0.9.8g and Dante
Installation of Wget
Install Wget by running the following commands:
make install
Command Explanations
--sysconfdir=/etc: This relocates the configuration file from /usr/etc to /etc.
Configuring Wget
Config Files
/etc/wgetrc and ~/.wgetrc
There are no changes required to these files.
Contents
Installed Program: wget
Installed Libraries: None
Installed Directories: None
475
Beyond Linux® From Scratch - Version 6.3
Short Descriptions
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.
476
Beyond Linux® From Scratch - Version 6.3
Wireless Tools-28
Introduction to Wireless Tools
The Wireless Extension (WE) is a generic API in the Linux kernel allowing a driver to expose configuration and
statistics specific to common Wireless LANs to user space. A single set of tools can support all the variations of
Wireless LANs, regardless of their type as long as the driver supports Wireless Extensions. WE parameters may also
be changed on the fly without restarting the driver (or Linux).
The Wireless Tools (WT) package is a set of tools allowing manipulation of the Wireless Extensions. They use a
textual interface to support the full Wireless Extension.
Package Information
• Download (HTTP): http://www.hpl.hp.com/personal/Jean_Tourrilhes/Linux/wireless_tools.28.tar.gz
•
• Download MD5 sum: 599c94497f9c9073c7b052d3dcb7cd16
• Download size: 249 KB
• Estimated disk space required: 1.7 MB
• Estimated build time: less than 0.1 SBU
Kernel Configuration
To use Wireless Tools, the kernel must have the appropriate drivers and other support available. The appropriate bus
must also be available. For many laptops, the PCMCIA bus (CONFIG_PCCARD) needs to be built. In some cases,
this bus support will also need to be built for embedded wireless cards. The appropriate bridge support also needs to
be built. For many modern laptops, the CardBus host bridge (CONFIG_YENTA) will be needed.
In addition to the bus, the actual driver for the specific wireless card must also be available. There are many wireless
cards and they don't all work with Linux. The first place to look for card support is the kernel. The drivers are located in
Device Drivers # Network Device Support # Wireless LAN (non-hamradio). There are also external drivers available
for some very common cards. For more information, look at the user notes.
After the correct drivers are loaded, the interface will appear in /proc/net/wireless.
make
Contents
Installed Programs: ifrename, iwconfig, iwevent, iwgetid, iwlist, iwpriv, and iwspy
Installed Library: libiw.so
Installed Directories: None
477
Beyond Linux® From Scratch - Version 6.3
Short Descriptions
ifrename renames network interfaces based on various static criteria.
iwconfig configures a wireless network interface.
iwevent displays wireless events generated by drivers and setting changes.
iwgetid reports ESSID, NWID or AP/Cell Address of wireless networks.
iwlist gets detailed wireless information from a wireless interface.
iwpriv configures optional (private) parameters of a wireless network interface.
iwspy gets wireless statistics from specific node.
libiw.so contains functions required by the wireless programs and provides an API for other programs.
478
Beyond Linux® From Scratch - Version 6.3
479
Beyond Linux® From Scratch - Version 6.3
480
Beyond Linux® From Scratch - Version 6.3
Traceroute-1.4a12
Introduction to Traceroute
The Traceroute package contains a 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.
Package Information
• Download (HTTP): http://gd.tuwien.ac.at/platform/sun/packages/solaris/freeware/SOURCES/traceroute-1.4a12.
tar.gz
• Download (FTP): ftp://ftp.ee.lbl.gov/traceroute-1.4a12.tar.gz
• Download MD5 sum: 964d599ef696efccdeebe7721cd4828d
• Download size: 74 KB
• Estimated disk space required: 540 KB
• Estimated build time: 0.01 SBU
Installation of Traceroute
Install Traceroute by running the following commands:
Command Explanations
sed 's/-o bin/-o root/' Makefile.in: Adjusts the Makefile so that the program is installed with user root owning
the files instead of user bin (which doesn't exist on a default LFS system).
make install: Installs traceroute with SUID set to root in the /usr/sbin directory. This makes it possible for
all users to execute traceroute. For absolute security, turn off the SUID bit in traceroute's file permissions with
the command:
The risk is that if a security problem such as a buffer overflow was ever found in the Traceroute code, a regular user
on your system could gain root access if the program is SUID root. Of course, removing the SUID permission
also makes it impossible for users other than root to utilize traceroute, so decide what's right for your individual
situation.
The goal of BLFS is to be completely FHS compliant, so if you do leave the traceroute binary SUID root, then
you should move traceroute to /usr/bin with the following command:
mv -v /usr/sbin/traceroute /usr/bin
481
Beyond Linux® From Scratch - Version 6.3
This ensures that the binary is in the path for non-root users.
Contents
Installed Program: traceroute
Installed Libraries: None
Installed Directories: None
Short Descriptions
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 hops (gateways) along the way.
482
Beyond Linux® From Scratch - Version 6.3
Nmap-4.20
Introduction to Nmap
Nmap is a utility for network exploration and security auditing. It supports ping scanning, port scanning and TCP/IP
fingerprinting.
Package Information
• Download (HTTP): http://anduin.linuxfromscratch.org/sources/BLFS/6.3/n/nmap-4.20.tar.bz2
• Download (FTP): ftp://ftp.linux.ee/pub/gentoo/distfiles/distfiles/nmap-4.20.tar.bz2
• Download MD5 sum: ea50419f99472200c4184a304e3831ea
• Download size: 2.1 MB
• Estimated disk space required: 21 MB
• Estimated build time: 0.3 SBU
Nmap Dependencies
Optional
OpenSSL-0.9.8g, PCRE-7.6, libpcap-0.9.6, GTK+-2.10.13 (for building the graphical front-end), and libdnet
Installation of Nmap
Install Nmap by running the following commands:
make install
Contents
Installed Programs: nmap and optionally, nmapfe and xnmap
Installed Libraries: None
Installed Directory: /usr/share/nmap
Short Descriptions
nmap is a utility for network exploration and security auditing. It supports ping scanning, port scanning and
TCP/IP fingerprinting.
nmapfe is the graphical front end to nmap.
xnmap is a symbolic link to nmapfe.
483
Beyond Linux® From Scratch - Version 6.3
Whois-4.7.26
Introduction to Whois
Whois is a client-side application which queries the whois directory service for information pertaining to a particular
domain name.
Package Information
• Download (HTTP): http://anduin.linuxfromscratch.org/sources/BLFS/6.3/w/whois_4.7.26.tar.gz
•
• Download MD5 sum: f069304ae912ff4fdec59f33de405076
• Download size: 67 KB
• Estimated disk space required: 1 MB
• Estimated build time: less than 0.1 SBU
Installation of Whois
Install Whois by running the following commands:
make
This package does not come with a test suite (that works).
Now, as the root user:
Contents
Installed Program: whois
Installed Libraries: None
Installed Directories: None
Short Descriptions
whois is a client-side application which queries the whois directory service for information pertaining to a
particular domain name.
484
Beyond Linux® From Scratch - Version 6.3
BIND Utilities-9.4.1-P1
Introduction to BIND Utilities
BIND Utilities is not a separate package, it is a collection of the client side programs that are included with
BIND-9.4.1-P1. The BIND package includes the client side programs nslookup, dig and host. If you install BIND
server, these programs will be installed automatically. This section is for those users who don't need the complete
BIND server, but need these client side applications.
Package Information
• Download (HTTP): http://gd.tuwien.ac.at/infosys/servers/isc/bind9/9.4.1-P1/bind-9.4.1-P1.tar.gz
• Download (FTP): ftp://ftp.isc.org/isc/bind9/9.4.1-P1/bind-9.4.1-P1.tar.gz
• Download MD5 sum: 44e0514e6105ddaa235394045d9aeb0c
• Download size: 6.1 MB
• Estimated disk space required: 63 MB
• Estimated build time: 0.6 SBU
Command Explanations
make -C lib/...: These commands build the libraries that are needed for the client programs.
make -C bin/dig: This command builds the client programs.
Contents
Installed Programs: dig, host, and nslookup
Installed Libraries: None
Installed Directories: None
485
Beyond Linux® From Scratch - Version 6.3
Short Descriptions
See the program descriptions in the BIND-9.4.1-P1 section.
486
Beyond Linux® From Scratch - Version 6.3
Wireshark-0.99.6
Introduction to Wireshark
The Wireshark package contains a network protocol analyzer, also known as a “sniffer”. This is useful for analyzing
data captured “off the wire” from a live network connection, or data read from a capture file. Wireshark provides
both a graphical and TTY-mode front-end for examining captured network packets from over 500 protocols, as well
as the capability to read capture files from many other popular network analyzers.
Package Information
• Download (HTTP): http://www.wireshark.org/download/src/all-versions/wireshark-0.99.6.tar.bz2
• Download (FTP): ftp://anduin.linuxfromscratch.org/BLFS/6.3/w/wireshark-0.99.6.tar.bz2
• Download MD5 sum: e57a8c8b364c38df3da97e2ee9f0d0bc
• Download size: 11.8 MB
• Estimated disk space required: 449 MB
• Estimated build time: 6.4 SBU
Additional Downloads
• Additional Documentation: http://www.wireshark.org/docs/
From this page you can download many different docs in a variety of formats.
Wireshark dependencies
Required
GLib-1.2.10 or GLib-2.12.12 (to build the TTY-mode front-end only)
Note that if you don't have Gtk+ installed, you will need to pass --disable-wireshark to the configure
command.
Recommended
libpcap-0.9.6 (required to capture data)
Optional
pkg-config-0.22, GTK+-1.2.10 or GTK+-2.10.13 (to build the GUI front-end), OpenSSL-0.9.8g, Heimdal-1.1 or MIT
Kerberos V5-1.6, Python-2.5.2, PCRE-7.6, GnuTLS-1.6.3, Net-SNMP, adns, and Lua
Kernel Configuration
The kernel must have the Packet protocol enabled for Wireshark to capture live packets from the network. Enable
the Packet protocol by choosing “Y” in the “Networking” – “Packet socket” configuration parameter. Alternatively,
build the af_packet.ko module by choosing “M” in this parameter.
Installation of Wireshark
Install Wireshark by running the following commands:
./configure --prefix=/usr \
--sysconfdir=/etc \
--enable-threads &&
make
487
Beyond Linux® From Scratch - Version 6.3
Command Explanations
--enable-threads: This parameter enables the use of threads in wireshark.
--with-ssl: This parameter is required if you are linking Kerberos libraries into the build so that the OpenSSL
libcrypto library is found.
Configuring Wireshark
Config Files
/etc/wireshark.conf and ~/.wireshark/*
Configuration Information
Though the default configuration parameters are very sane, reference the configuration section of the Wireshark
User's Guide for configuration information. Most of Wireshark's configuration can be accomplished using the menu
options of the wireshark graphical interface.
Note
If you want to look at packets, make sure you don't filter them out with iptables-1.3.8. If you want to exclude
certain classes of packets, it is more efficient to do it with iptables than it is with Wireshark.
488
Beyond Linux® From Scratch - Version 6.3
Contents
Installed Programs: capinfos, dftest, dumpcap, editcap, idl2wrs, mergecap, randpkt, text2pcap, tshark and
wireshark
Installed Libraries: libwireshark.so, libwiretap.so and numerous dissector plugin modules
Installed Directories: /usr/lib/wireshark, /usr/share/doc/wireshark-0.99.6, /usr/share/pixmaps/wireshark and
/usr/share/wireshark
Short Descriptions
capinfos reads a saved capture file and returns any or all of several statistics about that file. It is able
to detect and read any capture supported by the Wireshark package.
dftest is a display-filter-compiler test program.
dumpcap is a network traffic dump tool. It lets you capture packet data from a live network and write
the packets to a file.
editcap edits and/or translates the format of capture files. It knows how to read libpcap capture files,
including those of tcpdump, Wireshark and other tools that write captures in that format.
idl2wrs takes a user specified CORBA IDL file and generates “C” source code that can be used to
create an Wireshark plugin.
mergecap combines multiple saved capture files into a single output file.
randpkt creates random-packet capture files.
text2pcap reads in an ASCII hex dump and writes the data described into a libpcap-style capture file.
tshark is a TTY-mode network protocol analyzer. It lets you capture packet data from a live network
or read packets from a previously saved capture file.
wireshark is a GUI network protocol analyzer. It lets you interactively browse packet data from a live
network or from a previously saved capture file.
libwireshark.so contains functions used by the Wireshark programs to perform filtering and packet capturing.
libwiretap.so is a library being developed as a future replacement for libpcap, the current standard
Unix library for packet capturing. For more information, see the README file in the source
wiretap directory.
489
Beyond Linux® From Scratch - Version 6.3
490
Beyond Linux® From Scratch - Version 6.3
Heirloom mailx-12.2
Introduction to Heirloom mailx
The Heirloom mailx package (formerly known as the Nail package) contains mailx, a command-line Mail
User Agent derived from Berkeley Mail which is intended to provide the functionality of the POSIX mailx
command with additional support for MIME messages, IMAP (including caching), POP3, SMTP, S/MIME, message
threading/sorting, scoring, and filtering. Heirloom mailx is especially useful for writing scripts and batch processing.
Package Information
• Download (HTTP): http://downloads.sourceforge.net/heirloom/mailx-12.2.tar.bz2
•
• Download MD5 sum: c13c24db8fb5f5d10b7ad148647f9909
• Download size: 269 KB
• Estimated disk space required: 3.2 MB
• Estimated build time: less than 0.1 SBU
Command Explanations
make SENDMAIL=/usr/sbin/sendmail: This changes the default MTA path of /usr/lib/sendmail.
make PREFIX=/usr UCBINSTALL=/usr/bin/install install: This changes the default installation path of
/usr/local and the default install command path of /usr/ucb.
491
Beyond Linux® From Scratch - Version 6.3
Contents
Installed Programs: mail, mailx and nail
Installed Libraries: None
Installed Directories: None
Short Descriptions
mailx is a command-line mail user agent compatible with the mailx command found on commercial Unix
versions.
mail is a symbolic link to mailx.
nail is a symbolic link to mailx.
492
Beyond Linux® From Scratch - Version 6.3
Procmail-3.22
Introduction to Procmail
The Procmail package contains an autonomous mail processor. This is useful for filtering and sorting incoming mail.
Package Information
• Download (HTTP): http://www.procmail.org/procmail-3.22.tar.gz
• Download (FTP): ftp://ftp.procmail.net/pub/procmail/procmail-3.22.tar.gz
• Download MD5 sum: 1678ea99b973eb77eda4ecf6acae53f1
• Download size: 226 KB
• Estimated disk space required: 1.7 MB
• Estimated build time: 0.08 SBU
Installation of Procmail
This package does not come with a test suite.
Install Procmail by running the following commands as the root user:
make LOCKINGTEST=/tmp install &&
make install-suid
Command Explanations
make LOCKINGTEST=/tmp install: This prevents make from asking you where to test file-locking patterns.
make install-suid: Modifies permissions of the installed files.
Configuring Procmail
Config Files
/etc/procmailrc and ~/.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. For additional information, see also http://pm-doc.sourceforge.
net/pm-tips.html.
Contents
Installed Programs: formail, lockfile, mailstat and procmail
Installed Libraries: None
Installed Directories: None
Short Descriptions
formail is a filter that can be used to format mail into mailbox format.
lockfile is a utility that can lock a file for single use interactively or in a script.
493
Beyond Linux® From Scratch - Version 6.3
mailstat prints a summary report of mail that has been filtered by procmail since the last time mailstat was ran.
procmail is an autonomous mail processor. It performs all the functions of an MDA (Mail Delivery Agent).
494
Beyond Linux® From Scratch - Version 6.3
Fetchmail-6.3.8
Introduction to Fetchmail
The Fetchmail package contains a mail retrieval program. It retrieves mail from remote mail servers and forwards it
to the local (client) machine's delivery system, so it can then be read by normal mail user agents.
Package Information
• Download (HTTP): http://download2.berlios.de/fetchmail/fetchmail-6.3.8.tar.bz2
• Download (FTP): ftp://ftp.linux.ee/pub/gentoo/distfiles/distfiles/fetchmail-6.3.8.tar.bz2
• Download MD5 sum: 66b97500b0a1e3c0916b3b5314f597f5
• Download size: 1.3 MB
• Estimated disk space required: 8.9 MB
• Estimated build time: 0.1 SBU
Additional Downloads
• Required Patch: http://www.linuxfromscratch.org/patches/blfs/6.3/fetchmail-6.3.8-security_fixes-1.patch
Fetchmail Dependencies
Required
Optional
Installation of Fetchmail
Install Fetchmail by running the following commands:
make install
Command Explanations
--with-ssl: This enables SSL support, 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 the
port 25 mail server is not present or not responding.
495
Beyond Linux® From Scratch - Version 6.3
Configuring Fetchmail
Config Files
~/.fetchmailrc
Configuration Information
cat > ~/.fetchmailrc << "EOF"
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";
EOF
This 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. There are countless other config options once you get used to it.
Contents
Installed Program: fetchmail and fetchmailconf
Installed Libraries: None
Installed Directories: None
Short Descriptions
fetchmail when executed as a user, this will source ~/.fetchmailrc and download the appropriate
mail.
fetchmailconf it will assist you in setting up and editing a ~/.fetchmailrc configuration file, by using a
Tk GUI interface. It requires Python and it must have the Tkinker module available.
496
Beyond Linux® From Scratch - Version 6.3
Mutt-1.5.17
Introduction to Mutt
The Mutt package contains a Mail User Agent. This is useful for reading, writing, replying to, saving, and deleting
your email.
Package Information
• Download (HTTP): http://downloads.sourceforge.net/mutt/mutt-1.5.17.tar.gz
• Download (FTP): ftp://ftp.mutt.org/mutt/devel/mutt-1.5.17.tar.gz
• Download MD5 sum: 49387458be0cb52b85ae0d73af699aae
• Download size: 3.5 MB
• Estimated disk space required: 25.4 MB
• Estimated build time: 0.4 SBU
Mutt Dependencies
Optional
GnuPG-1.4.7 or GnuPG-2.0.8, OpenSSL-0.9.8g or GnuTLS-1.6.3, an MTA (that provides a sendmail command),
Aspell-0.60.5, MIT Kerberos V5-1.6 or Heimdal-1.1, Cyrus SASL-2.1.22, S-Lang-2.1.3, libidn-0.6.14, GDBM-1.8.3
or QDBM, and GDB
Installation of Mutt
Note
This version of Mutt is a development release. The BLFS staff has determined that it provides a stable
program and fixes two issues in the current stable version of Mutt: a segmentation fault that occurs under
certain conditions and a compilation problem when building with GCC-4.1.2. To find the current stable
release, please refer to the Mutt home page.
Caution
If you choose to link Mutt against GnuTLS-1.6.3, you won't have SSL client certificate support. Specifically
the ssl_client_cert configuration variable is recognized as invalid. That means you will lose the
ability to use mutt via SMTP over TLS or in the case when a client certification is required for authentication
on an IMAP server. For these reasons it is recommended to link Mutt against OpenSSL-0.9.8g if you want
SSL/TLS support.
Mutt requires a group named mail. You can add this group, if it does not exist, with this command:
groupadd -g 34 mail
497
Beyond Linux® From Scratch - Version 6.3
If you did not install an MTA, such as Postfix-2.5.1 or Sendmail-8.14.1, you need to modify the ownership of
/var/mail with this command:
If you have the necessary dependencies installed and would like to rebuild the HTML documentation, issue the
following commands:
To generate the PDF manual with JadeTeX-3.13, run the following command:
make install
If you generated the PDF manual, install it and the source TeX file by issuing the following command as the root
user:
Command Explanations
--enable-pop: This switch enables POP3 support.
--enable-imap: This switch enables IMAP support.
--enable-hcache: This switch enables header caching.
--without-qdbm: This switch disables QDBM as the header cache backend.
--without-gdbm: This switch disables GDBM as the header cache backend.
--with-bdb: This switch enables Berkeley DB as the header cache backend.
--enable-smtp: This switch enables SMTP relay support.
--with-ssl: This parameter adds SSL/TLS support from OpenSSL-0.9.8g in POP3/IMAP/SMTP if they are
enabled.
498
Beyond Linux® From Scratch - Version 6.3
--with-sasl: This parameter adds authentication support from Cyrus SASL-2.1.22 in POP3/IMAP/SMTP if they
are enabled. Depending on the server configuration, this may not be needed for POP3 or IMAP. However, it is needed
for SMTP authentication.
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.
In order to utilize GnuPG, use the following command:
Contents
Installed Programs: flea, mutt, mutt_dotlock, muttbug, pgpewrap, pgpring, and smime_keys
Installed Libraries: None
Installed Directories: /usr/share/doc/mutt-1.5.17
Short Descriptions
flea is a bug submitter for Mutt.
mutt is a Mail User Agent (MUA) which enables you to read, write and delete your email.
mutt_dotlock implements the mail spool file lock.
muttbug is a script that executes flea.
pgpewrap prepares a command line for the GnuPG-1.4.7 utilities.
pgpring is a key ring dumper for PGP. It is not needed for GnuPG-1.4.7.
smime_keys manages a keystore for S/MIME certificates.
499
Beyond Linux® From Scratch - Version 6.3
Pine-4.64
Introduction to Pine
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.
Package Information
• Download (HTTP): http://mirror.sit.wisc.edu/pub/net/mail/pine/pine4.64.tar.bz2
• Download (FTP): ftp://ftp.cac.washington.edu/pine/pine4.64.tar.bz2
• Download MD5 sum: 39ca07b3d305b4cd0d6aaf4585123275
• Download size: 3.0 MB
• Estimated disk space required: 64 MB
• Estimated build time: 0.6 SBU
Additional Downloads
• Recommended Patch: http://www.linuxfromscratch.org/patches/blfs/6.3/pine-4.64-utf8-1.patch
Pine Dependencies
Required
OpenSSL-0.9.8g
Optional
OpenLDAP-2.3.39 and MIT Kerberos V5-1.6
Installation of Pine
Install Pine by running the following commands:
patch -Np1 -i ../pine-4.64-utf8-1.patch &&
sed -i "s@/usr/local/lib/pine@/etc/pine@g" \
$(grep -lr /usr/local/lib/pine *) &&
./build DEBUG=-O MAILSPOOL=/var/mail \
SSLDIR=/usr SSLCERTS=/etc/ssl/certs slx
This package does not come with a test suite.
Now, as the root user:
install -v -m644 doc/*.1 /usr/share/man/man1 &&
install -v -p -m644 doc/tech-notes/*.html /usr/share/doc/pine4.64 &&
install -v -m755 \
bin/{pine,imapd,ipop2d,ipop3d,mailutil,mtest,pico,pilot,rpdump,rpload} \
/usr/bin
Command Explanations
patch -Np1 -i ../pine-4.64-utf8-1.patch: This patch enables Pine UTF-8 and charset conversion.
500
Beyond Linux® From Scratch - Version 6.3
sed -i "s@/usr/ ... /lib/pine *): This sed will make Pine use /etc for configuration files. It also alters the
documentation to reflect that.
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=-O: This flag compiles an optimized version of pine and pico that produces no debug files.
MAILSPOOL=/var/mail: Location of mail spool files, /var/mail.
SSLDIR=/usr SSLCERTS=/etc/ssl/certs: Location of OpenSSL files.
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
Installed Programs: imapd, ipop2d, ipop3d, mtest, pico, pilot, pine, rpdump, and rpload
Installed Libraries: None
Installed Directories: /usr/share/doc/pine4.64
Short Descriptions
imapd is the IMAP server daemon.
ipop2d is an IMAP to POP2 conversion server.
ipop3d is an IMAP to POP3 conversion server.
metest is a minimal IMAP mail user agent, used for debugging.
pico is a stand-alone editor, similar to the Pine internal message composer.
pilot is a file and directory navigator and browser.
pine is the Pine mail user agent.
rpdump is used to copy data from remote Pine configuration files or address books into a local file.
rpload is the Pine remote data utility, used to convert local Pine configuration files or address books into remote
configurations or address books.
501
Beyond Linux® From Scratch - Version 6.3
TIN-1.8.3
Introduction to TIN
TIN is a threaded NNTP and spool based console-mode UseNet newsreader. It supports threading, scoring, different
charsets, and many other useful things. It has also support for different languages.
Package Information
• Download (HTTP): http://gd.tuwien.ac.at/infosys/newsreaders/tin/v1.8/tin-1.8.3.tar.bz2
• Download (FTP): ftp://ftp.tin.org/pub/news/clients/tin/v1.8/tin-1.8.3.tar.bz2
• Download MD5 sum: e6ed45205020665c097556822b0d575b
• Download size: 1.4 MB
• Estimated disk space required: 12.4 MB
• Estimated build time: 0.4 SBU
TIN Dependencies
Optional
PCRE-7.6, libidn-0.6.14, an MTA that provides the sendmail command or Heirloom mailx-12.2, GnuPG-1.4.7,
Aspell-0.60.5, INN, UUDeview, Socks, Metamail, and Dmalloc or dbmalloc
Installation of TIN
Install TIN by running the following commands:
Command Explanations
--with-screen=ncursesw: This switch forces the use of wide-character functions from the ncursesw library
(for UTF-8 and Asian languages support).
--enable-nntp-only: Reading news from a local spool is disabled with this switch. Don't use this if you have
installed INN and want to use its spool.
--disable-printing: This switch disables printing since TIN cannot send non-ASCII text to the printer
correctly. Remove this switch if you can tolerate this limitation.
502
Beyond Linux® From Scratch - Version 6.3
--with-editor: This switch sets the default editor used by TIN. The default is vi.
Configuring TIN
Config Files
/etc/tin/tinrc, ~/.tin/tinrc, ~/.newsrc, /etc/tin/tin.defaults, /etc/tin/mime.
types, /etc/tin/keymap and /etc/mailcap
Configuration Information
Set some global defaults for TIN by running the following commands as the root user:
Now, as an unprivileged user, subscribe to some newsgroups, specify the news server, and run tin:
For printing, TIN executes the lpr command. This can be provided by CUPS-1.2.12 or LPRng-3.8.28.
If you do not have the metamail program, TIN will use an internal parser for multipart MIME articles. Alternatively,
you can use Mutt for MIME parsing through the metamutt shell script. This requires both the Mutt-1.5.17 and
Procmail-3.22 programs. To use metamutt, set metamail_prog=metamutt in tin.
Contents
Installed Programs: tin, rtin, tinews.pl, metamutt, opt-case.pl, w2r.pl, and url_handler.sh
Installed Libraries: None
Installed Directory: /etc/tin
Short Descriptions
tin is a UseNet news reader.
rtin is a symbolic link to tin.
tinews.pl posts and signs an article via NNTP.
metamutt is a replacement of metamail using Mutt.
opt-case.pl optimizes case insensitive regexp filters for tin.
w2r.pl converts tin wildmat filters to tin regexp filters.
url_handler.sh calls a web browser for viewing hyperlinks.
503
Beyond Linux® From Scratch - Version 6.3
504
Beyond Linux® From Scratch - Version 6.3
Part V. Servers
Beyond Linux® From Scratch - Version 6.3
506
Beyond Linux® From Scratch - Version 6.3
Apache-2.2.8
Introduction to Apache
The Apache package contains an open-source HTTP server. It is useful for creating local intranet web sites or running
huge web serving operations.
Package Information
• Download (HTTP): http://archive.apache.org/dist/httpd/httpd-2.2.8.tar.bz2
• Download (FTP): ftp://apache.mirrors.pair.com/httpd/httpd-2.2.8.tar.bz2
• Download MD5 sum: 76d2598a4797163d07cd50e5304aa7cd
• Download size: 4.6 MB
• Estimated disk space required: 83 MB
• Estimated build time: 2.1 SBU
Additional Downloads
• Required patch: http://www.linuxfromscratch.org/patches/blfs/6.3/httpd-2.2.8-config-1.patch
Apache Dependencies
Optional
OpenSSL-0.9.8g, OpenLDAP-2.3.39, PCRE-7.6, APR, APR-util, and distcache
Installation of Apache
For security reasons, running the server as an unprivileged user and group is strongly encouraged. Create the following
group and user using the following commands (as root):
groupadd -g 25 apache &&
useradd -c "Apache Server" -d /dev/null -g apache \
-s /bin/false -u 25 apache
Note
The above command directs the Apache user's home directory to /dev/null. This may not work for
some add-ons such as ViewVC, a browser interface for CVS and Subversion version control repositories.
See the User Notes for details for specific applications.
The following patch modifies the layout of destination directories and among them, the build directory at
/usr/lib/apache/build. This will allow the modules added to Apache to be configured without errors. Apply
the patch:
patch -Np1 -i ../httpd-2.2.8-config-1.patch
507
Beyond Linux® From Scratch - Version 6.3
Note
You may wish to review the output from ./configure --help and include whatever parameters are necessary
to the configure command below to build the modules required for your installation. There are as many
as 62 additional parameters you can add to the configure command to build additional modules. Some
of the extra parameters which aren't described or mentioned in the --help information are listed in the
“Command Explanations” section below.
If you are using the bundled version of APR-util and you are going to install Subversion with Berkeley DB
back-end support, ensure you use the parameters shown in the “Command Explanations” section below.
Command Explanations
--enable-mods-shared=all: The modules should be compiled and used as Dynamic Shared Objects (DSOs)
so they can be included and excluded from the server using the run-time configuration directives.
--enable-ssl: Use this parameter to create the mod_ssl module and enable SSL support. This parameter is
mentioned as one of many parameters which can be passed to the configure command to create additional DSO
modules.
--with-pcre: Add this parameter to use the system installed version of the PCRE library.
--with-z: Add this parameter to use the system installed version of the Zlib library.
--with-ldap: This parameter is required if you passed the --enable-authnz-ldap or --enable-ldap
options to configure and enabled the OpenLDAP modules.
--with-dbm=db45 --with-berkeley-db: Use these parameters if you require Berkeley DB support in the
bundled version of APR-util (required for Berkeley DB back-end support in Subversion).
chown root:root ...: This command changes the ownership of some installed files, the result of building the package
as a user other than root.
chown -R apache:apache /srv/www: By default, the installation process installs files (documentation, error
messages, default icons, etc.) with the ownership of the user that extracted the files from the tar file. If you want
to change the ownership to another user, you should do so at this point. The only requirement is that the document
directories need to be accessible by the httpd process with (r-x) permissions and files need to be readable (r--) by
the apache user.
508
Beyond Linux® From Scratch - Version 6.3
Configuring Apache
Config Files
/etc/apache/*
Configuration Information
The main configuration file is named /etc/apache/httpd.conf. Modify it so that the HTTP server runs as
the dedicated user and group:
Boot Script
If you want the Apache server to start automatically when the system is booted, install the /etc/rc.d/init.
d/apache init script included in the blfs-bootscripts-20080816 package.
make install-apache
Contents
Installed Programs: ab, apachectl, apr-config, apu-config, apxs, checkgid, dbmmanage, htdbm, htdigest,
htpasswd, httpd, instdso.sh, logresolve, and rotatelogs
Installed Libraries: libapr-1.{so,a}, libaprutil-1.{so,a}, and /usr/lib/apache/*.so
Installed Directories: /etc/apache, /srv/www, /usr/include/apache, /usr/lib/apache, and /var/log/apache
Short Descriptions
ab is a tool for benchmarking your Apache HTTP server.
apachectl is a front end to the Apache HTTP server which is designed to help the administrator control the
functioning of the Apache httpd daemon.
apxs is a tool for building and installing extension modules for the Apache HTTP server.
dbmanage is used to create and update the DBM format files used to store usernames and passwords for basic
authentication of HTTP users.
htdigest is used to create and update the flat-files used to store usernames, realms and passwords for digest
authentication of HTTP users.
htpasswd is used to create and update the flat-files used to store usernames and passwords for basic
authentication of HTTP users.
509
Beyond Linux® From Scratch - Version 6.3
510
Beyond Linux® From Scratch - Version 6.3
BIND-9.4.1-P1
Introduction to BIND
The BIND package provides a DNS server and client utilities. If you are only interested in the utilities, refer to the
BIND Utilities-9.4.1-P1.
Package Information
• Download (HTTP): http://gd.tuwien.ac.at/infosys/servers/isc/bind9/9.4.1-P1/bind-9.4.1-P1.tar.gz
• Download (FTP): ftp://ftp.isc.org/isc/bind9/9.4.1-P1/bind-9.4.1-P1.tar.gz
• Download MD5 sum: 44e0514e6105ddaa235394045d9aeb0c
• Download size: 6.1 MB
• Estimated disk space required: 98 MB
• Estimated build time: 1.9 SBU (additional 11 minutes, processor independent, to run the complete test suite)
Additional Downloads
• Optional patch (if net-tools is not installed): http://www.linuxfromscratch.org/patches/blfs/6.3/bind-9.4.1-P1-
use_iproute2-1.patch
BIND Dependencies
Optional
OpenSSL-0.9.8g
Optional (to run the test suite)
Net-DNS-0.57 and Net-tools-1.60 (you may omit net-tools by using the optional patch to utilize iproute2)
Optional (to rebuild documentation)
teTeX-3.0 and libxslt-1.1.22
Installation of BIND
If you have chosen not to install net-tools, apply the iproute2 patch with the following command:
patch -Np1 -i ../bind-9.4.1-P1-use_iproute2-1.patch
Install BIND by running the following commands:
./configure --prefix=/usr \
--sysconfdir=/etc \
--localstatedir=/var \
--mandir=/usr/share/man \
--enable-threads \
--with-libtool &&
sed -i "[email protected]@199.7.83.42@" \
lib/dns/rootns.c &&
make
Issue the following commands to run the complete suite of tests. First, as the root user, set up some test interfaces:
bin/tests/system/ifconfig.sh up
511
Beyond Linux® From Scratch - Version 6.3
cd doc &&
install -v -d -m755 /usr/share/doc/bind-9.4.1-P1/{arm,draft,misc,rfc} &&
install -v -m644 arm/*.html \
/usr/share/doc/bind-9.4.1-P1/arm &&
install -v -m644 draft/*.txt \
/usr/share/doc/bind-9.4.1-P1/draft &&
install -v -m644 rfc/* \
/usr/share/doc/bind-9.4.1-P1/rfc &&
install -v -m644 \
misc/{dnssec,ipv6,migrat*,options,rfc-compliance,roadmap,sdb} \
/usr/share/doc/bind-9.4.1-P1/misc
Command Explanations
--sysconfdir=/etc: This parameter forces BIND to look for configuration files in /etc instead of /usr/etc.
--enable-threads: This parameter enables multi-threading capability.
--with-libtool: This parameter forces the building of dynamic libraries and links the installed binaries to these
libraries.
sed -i "[email protected]@199.7.83.42@" lib/dns/rootns.c: Use updated address for L.ROOT-SERVERS.NET.
chmod 755 /usr/lib/{lib{bind9,isc{,cc,cfg},lwres,dns}.so.*.?.?}: Enable the execute bit to prevent a warning when
using ldd to check library dependencies.
cd doc; install ...: These commands install additional package documentation. Omit any or all of these commands
if desired.
Configuring BIND
Config files
named.conf, root.hints, 127.0.0, rndc.conf and resolv.conf
Configuration Information
BIND will be configured 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.
512
Beyond Linux® From Scratch - Version 6.3
};
controls {
inet 127.0.0.1 allow { localhost; } keys { rndc_key; };
};
key "rndc_key" {
algorithm hmac-md5;
secret "<Insert secret from rndc-confgen's output here>";
};
zone "." {
type hint;
file "root.hints";
};
zone "0.0.127.in-addr.arpa" {
type master;
file "pz/127.0.0";
};
513
Beyond Linux® From Scratch - Version 6.3
logging {
category default { default_syslog; default_debug; };
category unmatched { null; };
channel default_syslog {
syslog daemon; // send to syslog's daemon
// facility
severity info; // only send priority info
// and higher
};
channel default_debug {
file "named.run"; // write to named.run in
// the working directory
// Note: stderr is used instead
// of "named.run"
// if the server is started
// with the '-f' option.
severity dynamic; // log at the server's
// current debug level
};
channel default_stderr {
stderr; // writes to stderr
severity info; // only send priority info
// and higher
};
channel null {
null; // toss anything sent to
// this channel
};
};
EOF
514
Beyond Linux® From Scratch - Version 6.3
The rndc.conf file contains information for controlling named operations with the rndc utility.
515
Beyond Linux® From Scratch - Version 6.3
Note
Caution must be used to ensure there are no leading spaces in this file.
The root.hints file is a list of root name servers. This file must be updated periodically with the dig utility.
A current copy of root.hints can be obtained from ftp://rs.internic.net/domain/named.root. Consult the BIND 9
Administrator Reference Manual for details.
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.
516
Beyond Linux® From Scratch - Version 6.3
Boot Script
To start the DNS server at boot, install the /etc/rc.d/init.d/bind init script included in the
blfs-bootscripts-20080816 package.
make install-bind
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 www.linuxfromscratch.org &&
dig www.linuxfromscratch.org
You can see almost instantaneous results with the named caching lookups. Consult the BIND Administrator Reference
Manual located at doc/arm/Bv9ARM.html in the package source tree, for further configuration options.
Contents
Installed Programs: dig, dnssec-keygen, dnssec-signzone, host, isc-config.sh, lwresd, named,
named-checkconf, named-checkzone, nslookup, nsupdate, rndc, and rndc-confgen
Installed Libraries: libbind9.{so,a}, libdns.{so,a}, libisc.{so,a}, libisccc.{so,a}, libisccfg.{so,a}, and
liblwres.{so,a}
Installed Directories: /srv/named, /usr/include/bind9, /usr/include/dns, /usr/include/dst, /usr/include/isc,
/usr/include/isccc, /usr/include/isccfg, /usr/include/lwres, and
/usr/share/doc/bind-9.4.1-P1
Short Descriptions
dig interrogates DNS servers.
dnssec-keygen is a key generator for secure DNS.
dnssec-signzone generates signed versions of zone files.
host is a utility for DNS lookups.
lwresd is a caching-only name server for local process use.
named is the name server daemon.
named-checkconf checks the syntax of named.conf files.
named-checkzone checks zone file validity.
517
Beyond Linux® From Scratch - Version 6.3
518
Beyond Linux® From Scratch - Version 6.3
NFS Utilities-1.1.2
Introduction to NFS Utilities
The NFS Utilities package contains the userspace server and client tools necessary to use the kernel's NFS abilities.
NFS is a protocol that allows sharing file systems over the network.
Package information
• Download (HTTP): http://downloads.sourceforge.net/nfs/nfs-utils-1.1.2.tar.gz
•
• Download MD5 sum: 76ee9274c2b867839427eba91b327f03
• Download size: 778 KB
• Estimated disk space required: 8.2 MB
• Estimated build time: 0.2 SBU
Kernel Configuration
Enable the following options in the kernel configuration and recompile the kernel if necessary:
File systems:
Network File Systems:
NFS File System Support: M or Y
NFS Server Support: M or Y
Select the appropriate sub-options that appear when the above options are selected.
519
Beyond Linux® From Scratch - Version 6.3
Note
The classic uid and gid values are 65534 which is also -2 when interpreted as a signed 16-bit number. These
values impact other files on some filesystems that do not have support for sparse files. The nobody and
nogroup values are relatively arbitrary. The impact on a server is nil if the exports file is configured
correctly. If it is misconfigured, an ls -l or ps listing will show a uid or gid number of 65534 instead of a
name. The client uses nobody only as the user running rpc.statd.
./configure --prefix=/usr \
--sysconfdir=/etc \
--disable-nfsv4 \
--disable-gss &&
make
If your /usr directory is NFS mounted, you should install the executables in /sbin by passing an additional
parameter --sbindir=/sbin to the above ./configure command.
This package does not come with a test suite.
make install
Command Explanations
--disable-nfsv4: Disables support for NFS version 4.
/home <192.168.0.0/255.255.255.0>(rw,subtree_check,anonuid=99,anongid=99)
Boot Script
make install-nfs-server
520
Beyond Linux® From Scratch - Version 6.3
tcpwrappers Configuration
If you have TCP Wrapper-7.6 installed and there is a restrictive /etc/hosts.deny file, ensure you have an entry
in the /etc/hosts.allow file for access from the portmap daemon. See the man page in section 5 for hosts_access
for details on creating appropriate rules.
Client Configuration
/etc/fstab contains the directories that are to be mounted on the client. Alternately the partitions can be mounted
by using the mount command with the proper options. To mount the /home and /usr partitions, add the following
to the /etc/fstab:
Boot Script
make install-nfs-client
To automatically mount nfs filesystems, clients will also need to install the netfs bootscript as described in
Configuring for Network Filesystems.
Contents
Installed Programs: exportfs, mount.nfs, mount.nfs4, nfsstat, rpc.mountd, rpc.nfsd, rpc.statd, rpcdebug,
showmount, sm-notify, start-statd and umount.nfs as well as umount.nfs4
Installed Libraries: None
Installed Directories: /var/lib/nfs
Short Descriptions
exportfs maintains a list of NFS exported file systems.
mount.nfs Used to mount a network share using NFS
mount.nfs4 Used to mount a network share using NFSv4
nfsstat prints NFS statistics.
rpc.mountd implements the NFS mount protocol on an NFS server.
rpc.nfsd implements the user level part of the NFS service on the server.
521
Beyond Linux® From Scratch - Version 6.3
rpc.statd is used by the NFS file locking service. Run on both sides, client as well as server, when you want
file locking enabled.
rpcdebug sets or clears the kernel's NFS client and server debug flags.
showmount displays mount information for an NFS server.
sm-notify is used to send Network Status Monitor reboot messages.
start-statd is a script called by nfsmount when mounting a filesystem with locking enabled, if statd does not
appear to be running. It can be customised with whatever flags are appropriate for the site.
umount.nfs Used to unmount a network share using NFS
umount.nfs4 Used to unmount a network share using NFSv4
522
Beyond Linux® From Scratch - Version 6.3
OpenSSH-4.7p1
Introduction to OpenSSH
The OpenSSH package contains ssh clients and the sshd daemon. This is useful for encrypting authentication and
subsequent traffic over a network.
Package Information
• Download (HTTP): http://sunsite.ualberta.ca/pub/OpenBSD/OpenSSH/portable/openssh-4.7p1.tar.gz
• Download (FTP): ftp://ftp.openbsd.org/pub/OpenBSD/OpenSSH/portable/openssh-4.7p1.tar.gz
• Download MD5 sum: 50a800fd2c6def9e9a53068837e87b91
• Download size: 968 KB
• Estimated disk space required: 16.2 MB
• Estimated build time: 0.5 SBU (additional 1.2 SBU to run the test suite)
OpenSSH Dependencies
Required
OpenSSL-0.9.8g
Optional
Linux-PAM-0.99.10.0, TCP Wrapper-7.6, X Window System, MIT Kerberos V5-1.6 or Heimdal-1.1, Net-tools-1.60,
Sysstat-7.0.4, libedit (provides a command-line history feature to sftp), OpenSC, and libsectok
Installation of OpenSSH
OpenSSH runs as two processes when connecting to other computers. The first process is a privileged 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 issuing the following
commands as the root user:
install -v -m700 -d /var/lib/sshd &&
chown -v root:sys /var/lib/sshd &&
groupadd -g 50 sshd &&
useradd -c 'sshd PrivSep' -d /var/lib/sshd -g sshd \
-s /bin/false -u 50 sshd
OpenSSH is very sensitive to changes in the linked OpenSSL libraries. If you recompile OpenSSL, OpenSSH may
fail to startup. An alternative is to link against the static OpenSSL library. To link against the static library, execute
the following command:
sed -i 's@-lcrypto@/usr/lib/libcrypto.a -ldl@' configure
Install OpenSSH by running the following commands:
sed -i 's@ -ldes@@' configure &&
./configure --prefix=/usr --sysconfdir=/etc/ssh --datadir=/usr/share/sshd \
--libexecdir=/usr/lib/openssh --with-md5-passwords \
--with-privsep-path=/var/lib/sshd \
--with-xauth=/usr/bin/xauth &&
make
523
Beyond Linux® From Scratch - Version 6.3
If you linked tcp_wrappers into the build using the --with-tcp-wrappers parameter, ensure you add 127.0.0.1
to the sshd line in /etc/hosts.allow if you have a restrictive /etc/hosts.deny file, or the test suite will
fail. Additionally, the testsuite requires an installed copy of scp to complete the mulitplexing tests. To run the test
suite, issue the following commnds as the root user:
if test -f /usr/bin/scp
then
mv /usr/bin/scp /usr/bin/scp-bak
fi &&
cp scp /usr/bin/scp &&
make tests 2>&1 | tee check.log
grep "FATAL" check.log
If the above command produces no 'FATAL' errors, then proceed with the installation, again as the root user:
rm /usr/bin/scp &&
if test -f /usr/bin/scp-bak
then
rm /usr/bin/scp-bak
fi &&
make install &&
install -v -m755 -d /usr/share/doc/openssh-4.7p1 &&
install -v -m644 INSTALL LICENCE OVERVIEW README* WARNING.RNG \
/usr/share/doc/openssh-4.7p1
Command Explanations
sed -i 's@ -ldes@@' configure: This command fixes a build crash if you used the --with-kerberos5 parameter
and you built the Heimdal package in accordance with the BLFS instructions. The command is harmless in all other
instances.
--sysconfdir=/etc/ssh: This prevents the configuration files from being installed in /usr/etc.
--datadir=/usr/share/sshd: This switch puts the Ssh.bin file (used for SmartCard authentication) in
/usr/share/sshd.
--with-md5-passwords: This is required with the default configuration of Shadow password suite in LFS.
--libexecdir=/usr/lib/openssh: This parameter changes the installation path of some programs to
/usr/lib/openssh instead of /usr/libexec.
--with-pam: This parameter enables Linux-PAM support in the build.
--with-xauth=/usr/bin/xauth: Set the default location for the xauth binary for X authentication. Change
the location if xauth will be installed to a different path. This can also be controlled from sshd_config with the
XAuthLocation keyword. You can omit this switch if Xorg is already installed.
Configuring OpenSSH
Config Files
~/.ssh/*, /etc/ssh/ssh_config, and /etc/ssh/sshd_config
524
Beyond Linux® From Scratch - Version 6.3
There are no required changes to any of these files. However, you may wish to view the /etc/ssh/ files and make
any changes appropriate for the security of your system. One recommended change is that you disable root login
via ssh. Execute the following command as the root user to disable root login via ssh:
If you added LinuxPAM support, then you will need to add a configuration file for sshd. Issue the following commands
as the root user:
Additional configuration information can be found in the man pages for sshd, ssh and ssh-agent.
Boot Script
To start the SSH server at system boot, install the /etc/rc.d/init.d/sshd init script included in the
blfs-bootscripts-20080816 package.
make install-sshd
Contents
Installed Programs: scp, sftp, sftp-server, slogin, ssh, sshd, ssh-add, ssh-agent, ssh-keygen, ssh-keyscan,
and ssh-keysign
Installed Libraries: None
Installed Directories: /etc/ssh, /var/lib/sshd and /usr/share/doc/openssh-4.7p1
Short Descriptions
scp is a file copy program that acts like rcp except it uses an encrypted protocol.
sftp is an FTP-like program that works over SSH1 and SSH2 protocols.
sftp-server is an SFTP server subsystem. This program is not normally called directly by the user.
slogin is a symlink to ssh.
ssh is an rlogin/rsh-like client program except it uses an encrypted protocol.
sshd is a daemon that listens for ssh login requests.
ssh-add is a tool which adds keys to the ssh-agent.
ssh-agent is an authentication agent that can store private keys.
ssh-keygen is a key generation tool.
ssh-keyscan is a utility for gathering public host keys from a number of hosts.
ssh-keysign is used by ssh to access the local host keys and generate the digital signature required during
hostbased authentication with SSH protocol version 2. This program is not normally called directly
by the user.
525
Beyond Linux® From Scratch - Version 6.3
ProFTPD-1.3.0
Introduction to ProFTPD
The ProFTPD package contains a secure and highly configurable FTP daemon. This is useful for serving large file
archives over a network.
Package Information
•
• Download (FTP): ftp://ftp.proftpd.org/distrib/source/proftpd-1.3.0.tar.bz2
• Download MD5 sum: fae47d01b52e035eb6b7190e74c17722
• Download size: 1.3 MB
• Estimated disk space required: 12.2 MB
• Estimated build time: 0.3 SBU
ProFTPD Dependencies
Optional
Linux-PAM-0.99.10.0
Installation of ProFTPD
For security reasons, you should install ProFTPD using an unprivileged user and group. As the root user:
make install
Command Explanations
install -v -d -m775 -o proftpd -g proftpd /srv/ftp: Create the home directory for ProFTPD.
ln -v -s /bin/false /usr/bin/proftpdshell: Set the default shell as a link to an invalid shell.
echo /usr/bin/proftpdshell >> /etc/shells: Fake a valid shell for compatibility purposes.
526
Beyond Linux® From Scratch - Version 6.3
Note
The above two commands can be omitted if the following directive is placed in the configuration file:
RequireValidShell off
By default, proftpd will require that users logging in have valid shells. The RequireValidShell directive
turns off this requirement. This is only recommended if you are setting up your FTP server exclusively for
anonymous downloads.
Configuring ProFTPD
Config Files
/etc/proftpd.conf
Configuration Information
This is a simple, download-only sample configuration. See the ProFTPD documentation in
/usr/share/doc/proftpd and consult the website at http://www.proftpd.org/ for example configurations.
# Set the user and group that the server normally runs at.
User proftpd
Group proftpd
527
Beyond Linux® From Scratch - Version 6.3
Boot Script
Install the /etc/rc.d/init.d/proftpd init script included in the blfs-bootscripts-20080816 package.
make install-proftpd
Contents
Installed Programs: ftpcount, ftpdctl, ftptop, ftpwho, ftpshut, proftpd
Installed Libraries: None
Installed Directory: /var/run/proftpd
Short Descriptions
proftpd is the FTP daemon.
ftpcount shows the current number of connections.
ftpshut shuts down all proftpd servers at a given time.
ftptop displays running status on connections.
ftpwho shows current process information for each session.
528
Beyond Linux® From Scratch - Version 6.3
Samba-3.0.30
Introduction to Samba
The Samba package provides file and print services to SMB/CIFS clients and Windows networking to Linux clients.
Samba can also be configured as a Windows NT 4.0 Domain Controller replacement (with caveats working with NT
PDC's and BDC's), a file/print server acting as a member of a Windows NT 4.0 or Active Directory domain and a
NetBIOS (rfc1001/1002) nameserver (which amongst other things provides LAN browsing support).
Package Information
• Download (HTTP): http://us1.samba.org/samba/ftp/stable/samba-3.0.30.tar.gz
• Download (FTP): ftp://us5.samba.org/pub/samba-ftp/samba-3.0.30.tar.gz
• Download MD5 sum: d647ec1f34414fa8691f74536dcccfb5
• Download size: 20 MB
• Estimated disk space required: 238 MB
• Estimated build time: 2.3 SBU (additional 1.0 SBU to run the test suite)
Samba Dependencies
Optional
Installation of Samba
Note
If you wish to run the test suite after the binaries are built, you must add the
--enable-socket-wrapper parameter to the configure script below. You may want to run configure
with the --help parameter first. There may be other parameters needed to take advantage of optional
dependencies.
cd source &&
./configure \
--prefix=/usr \
--sysconfdir=/etc \
--localstatedir=/var \
--with-piddir=/var/run \
--with-pammodulesdir=/lib/security \
--with-fhs \
--with-smbmount &&
make
529
Beyond Linux® From Scratch - Version 6.3
You must become the root user to run the test framework. To run the tests, issue: make test. If you have Linux-PAM
installed and built the PAM library modules, you can perform a dlopen test by issuing: make test_pam_modules.
Now, as the root user:
make install &&
mv -v /usr/lib/samba/libsmbclient.so /usr/lib &&
ln -v -sf ../libsmbclient.so /usr/lib/samba &&
ln -v -sf libsmbclient.so /usr/lib/libsmbclient.so.0 &&
Command Explanations
--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 (FHS).
--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.
--with-pam: Use this parameter to link Linux-PAM into the build. This also builds the pam_winbind.so and
pam_smbpass.so PAM modules. You can find instructions on how to configure and use the pam_winbind.
somodule by running man winbindd.
mv -v /usr/lib/samba/libsmbclient.so ...; ln -v -sf ../libsmbclient.so ...: The libsmbclient.so library is needed
by other packages. This command moves it to a location where other packages can find it.
install -v -m755 nsswitch/libnss_win{s,bind}.so /lib: The nss libraries are not installed by default. If you intend to
use winbindd for domain auth, and/or WINS name resolution, you need these libraries.
ln -v -sf libnss_winbind.so /lib/libnss_winbind.so.2 and ln -v -sf libnss_wins.so /lib/libnss_wins.so.2: These
symlinks are required by glibc to use the NSS libraries.
install -v -m644 ../examples/smb.conf.default /etc/samba: This copies a default smb.conf file into
/etc/samba. This sample configuration will not work until you copy it to /etc/samba/smb.conf and make
the appropriate changes for your installation. See the configuration section for minimum values which must be set.
530
Beyond Linux® From Scratch - Version 6.3
Configuring Samba
Config Files
/etc/samba/smb.conf
Configuration Information
Due to the complexity and the many various uses for Samba, complete configuration for all the package's capabilities
is well beyond the scope of the BLFS book. This section provides instructions to configure the /etc/samba/smb.
conf file for two common scenarios. The complete contents of /etc/samba/smb.conf will depend on the
purpose of Samba installation.
Note
You may find it easier to copy the configuration parameters shown below into an empty
/etc/samba/smb.conf file instead of copying and editing the default file as mentioned in the
“Command Explanations” section. How you create/edit the /etc/samba/smb.conf file will be left up
to you. Do ensure the file is only writeable by the root user (mode 644).
531
Beyond Linux® From Scratch - Version 6.3
There is no need to run any Samba servers in this scenario, thus you don't need to install the provided bootscripts.
Choose this variant if you want to share your files and printers to Windows machines in your workgroup in addition
to the capabilities described in Scenario 1.
In this case, the /etc/samba/smb.conf.default file may be a good template to start from. Also add “dos
charset” and “unix charset” parameters to the “[global]” section as described in Scenario 1 in order to prevent filename
corruption.
The following configuration file creates a separate share for each user's home directory and also makes all printers
available to Windows machines:
[global]
workgroup = MYGROUP
dos charset = cp850
unix charset = ISO-8859-1
[homes]
comment = Home Directories
browseable = no
writable = yes
[printers]
comment = All Printers
path = /var/spool/samba
browseable = no
guest ok = no
printable = yes
Other parameters you may wish to customize in the “[global]” section include:
server string =
security =
hosts allow =
load printers =
log file =
max log size =
socket options =
local master =
Reference the comments in the /etc/samba/smb.conf.default file for information regarding these
parameters.
Since the smbd and nmbd daemons are needed in this case, install the samba bootscript. Be sure to run smbpasswd
(with the -a option to add users) to enable and set passwords for all accounts that need Samba access, or use the
SWAT web interface (see below) to do the same. Using the default Samba passdb backend, any user you attempt to
add will also be required to exist in the /etc/passwd file.
532
Beyond Linux® From Scratch - Version 6.3
Advanced Requirements
More complex scenarios involving domain control or membership are possible if the right flags are passed to the
./configure script when the package is built. Such setups are advanced topics and cannot be adequately covered in
BLFS. Many complete books have been written on these topics alone. It should be noted, however, that a Samba BDC
cannot be used as a fallback for a Windows PDC, and conversely, a Windows BDC cannot be used as a fallback for
a Samba PDC. Also in some domain membership scenarios, the winbindd daemon and the corresponding bootscript
are needed.
There is quite a bit of documentation available which covers many of these advanced configurations. Point your web
browser to the links below to view some of the documentation included with the Samba package:
Configuring SWAT
The built in SWAT (Samba Web Administration Tool) utility can be used for basic configuration of the Samba
installation, but because it may be inconvenient, undesirable or perhaps even impossible to gain access to the console,
BLFS recommends setting up access to SWAT using Stunnel. Without Stunnel, the root password is transmitted in
clear text over the wire, and is considered an unacceptable security risk. After considering the security implications
of using SWAT without Stunnel, and you still wish to implement SWAT without it, instructions are provided at this
end of this section.
First install, or ensure you have already installed, the Stunnel-4.21 package.
Next you must add entries to /etc/services and modify the inetd/xinetd configuration.
Add swat and swat_tunnel entries to /etc/services with the following commands issued as the root user:
If inetd is used, the following command will add the swat_tunnel entry to /etc/inetd.conf (as user root):
533
Beyond Linux® From Scratch - Version 6.3
If you use xinetd, the following command will create the Samba file as /etc/xinetd.d/swat_tunnel (you
may need to modify or remove the “only_from” line to include the desired host[s]):
service swat_tunnel
{
port = 905
socket_type = stream
wait = no
only_from = 127.0.0.1
user = root
server = /usr/sbin/swat
log_on_failure += USERID
}
# End /etc/xinetd.d/swat_tunnel
EOF
EOF
Restart the stunnel daemon using the following command as the root user:
/etc/rc.d/init.d/stunnel restart
SWAT can be launched by pointing your web browser to https://<CA_DN_field>:904. Substitute the
hostname listed in the DN field of the CA certificate used with Stunnel for <CA_DN_field>.
Warning
BLFS does not recommend using these procedures because of the security risk involved. However, in
a home network environment and disclosure of the root password is an acceptable risk, the following
instructions are provided for your convenience.
Add a swat entry to /etc/services with the following command issued as the root user:
534
Beyond Linux® From Scratch - Version 6.3
If inetd is used, the following command issued as the root user will add a swat entry to the /etc/inetd.conf
file:
service swat
{
port = 904
socket_type = stream
wait = no
only_from = 127.0.0.1
user = root
server = /usr/sbin/swat
log_on_failure += USERID
}
# End /etc/xinetd.d/swat
EOF
Note
If you linked Linux-PAM into the Samba build, you'll need to create an /etc/pam.d/samba file.
Boot Script
For your convenience, boot scripts have been provided for Samba. There are two included in the
blfs-bootscripts-20080816 package. The first, samba, will start the smbd and nmbd daemons needed to provide
SMB/CIFS services. The second script, winbind, starts the winbindd daemon, used for providing Windows domain
services to Linux clients.
The default Samba installation uses the nobody user for guest access to the server. This can be overridden by setting
the guest account = parameter in the /etc/samba/smb.conf file. If you utilize the guest account =
parameter, ensure this user exists in the /etc/passwd file. To use the default user, issue the following commands
as the root user:
535
Beyond Linux® From Scratch - Version 6.3
Install the samba script with the following command issued as the root user:
make install-samba
make install-winbind
Contents
Installed Programs: eventlogadm, findsmb, mount.cifs, mount.smbfs, net, nmbd, nmblookup, ntlm_auth,
pdbedit, profiles, rpcclient, smbcacls, smbclient, smbcontrol, smbcquotas, smbd,
smbget, smbmnt, smbmount, smbpasswd, smbspool, smbstatus, smbtar, smbtree,
smbumount, swat, tdbbackup, tdbdump, tdbtool, testparm, unmount.cifs, wbinfo and
winbindd
Installed Libraries: libnss_winbind.so, libnss_wins.so, libsmbclient.so, libmsrpc.so, the pam_winbind.so
and pam_smbpass.so PAM libraries, and assorted character set, filesystem and support
modules.
Installed Directories: /etc/samba, /usr/lib/python2.5/site-packages/samba, /usr/lib/samba,
/usr/share/doc/samba-3.0.30, /usr/share/samba, /var/lib/samba and /var/log/samba
Short Descriptions
eventlogadm is used to write records to eventlogs from STDIN, add the specified source and DLL eventlog
registry entries and display the active eventlog names (from smb.conf).
findsmb lists information about machines that respond to SMB name queries on a subnet.
mount.cifs mounts a Linux CIFS filesystem. It is usually invoked indirectly by the mount command when
using the -t cifs option.
mount.smbfs is a symlink to smbmount which provides /bin/mount with a way to mount remote Windows (or
Samba) fileshares.
net is a tool for administration of Samba and remote CIFS servers, similar to the net utility for
DOS/Windows.
nmbd is the Samba NetBIOS name server.
nmblookup is used to query NetBIOS names and map them to IP addresses.
ntlm_auth is a tool to allow external access to Winbind's NTLM authentication function.
pdbedit is a tool used to manage the SAM database.
profiles is a utility that reports and changes SIDs in Windows registry files. It currently only supports
Windows NT.
rpcclient is used to execute MS-RPC client side functions.
smbcacls is used to manipulate Windows NT access control lists.
smbclient is a SMB/CIFS access utility, similar to FTP.
smbcontrol is used to control running smbd, nmbd and winbindd daemons.
smbcquotas is used to manipulate Windows NT quotas on SMB file shares.
smbd is the main Samba daemon which provides SMB/CIFS services to clients.
536
Beyond Linux® From Scratch - Version 6.3
smbget is a simple utility with wget-like semantics, that can download files from SMB servers. You can
specify the files you would like to download on the command-line.
smbmnt is a helper application used by the smbmount program to do the actual mounting of SMB shares. It
can be installed setuid root if you want unprivileged users to be able to mount their SMB shares.
smbmount is usually invoked as mount.smbfs by the mount command when using the -t smbfs option,
mounts a Linux SMB filesystem.
smbpasswd changes a user's Samba password.
smbspool sends a print job to an SMB printer.
smbstatus reports current Samba connections.
smbtar is a shell script used for backing up SMB/CIFS shares directly to Linux tape drives or a file.
smbtree is a text-based SMB network browser.
smbumount is used by unprivileged users to unmount SMB filesystems, provided that it is setuid root.
swat is the Samba Web Administration Tool.
tdbbackup is a tool for backing up or validating the integrity of Samba .tdb files.
tdbdump is a tool used to print the contents of a Samba .tdb file.
tdbtool is a tool which allows simple database manipulation from the command line.
testparm checks an smb.conf file for proper syntax.
umount.cifs is used by normal, non-root users, to unmount their own Common Internet File System (CIFS)
mounts.
wbinfo queries a running winbindd daemon.
winbindd resolves names from Windows NT servers.
537
Beyond Linux® From Scratch - Version 6.3
vsftpd-2.0.5
Introduction to vsftpd
The vsftpd package contains a very secure and very small FTP daemon. This is useful for serving files over a network.
Package Information
•
• Download (FTP): ftp://vsftpd.beasts.org/users/cevans/vsftpd-2.0.5.tar.gz
• Download MD5 sum: 146062e8b2f93af43ff6c2c770feea94
• Download size: 152 KB
• Estimated disk space required: 1.5 MB
• Estimated build time: less than 0.1 SBU
vsftpd Dependencies
Optional
Linux-PAM-0.99.10.0, OpenSSL-0.9.8g, TCP Wrapper-7.6, and libcap
Installation of vsftpd
For security reasons, running vsftpd as an unprivileged user and group is encouraged. Also, a user should be created
to map anonymous users. As the root user, create the needed directories, users, and groups with the following
commands:
install -v -d -m 0755 /var/ftp/empty &&
install -v -d -m 0755 /home/ftp &&
groupadd -g 47 vsftpd &&
useradd -d /dev/null -c "vsftpd User" -g vsftpd -s /bin/false \
-u 47 vsftpd &&
groupadd -g 45 ftp &&
useradd -c anonymous_user -d /home/ftp -g ftp -s /bin/false -u 45 ftp
Build vsftpd as an unprivileged user using the following command:
make
This package does not come with a test suite.
Once again, become the root user and install vsftpd with the following commands:
install -v -m 755 vsftpd /usr/sbin/vsftpd &&
install -v -m 644 vsftpd.8 /usr/share/man/man8 &&
install -v -m 644 vsftpd.conf.5 /usr/share/man/man5 &&
install -v -m 644 vsftpd.conf /etc
Command Explanations
install -v -d ...: This creates the directory that anonymous users will use (/home/ftp) and the directory the daemon
will chroot into (/var/ftp/empty).
538
Beyond Linux® From Scratch - Version 6.3
Note
/home/ftp should not be owned by the user vsftpd, or the user ftp.
echo "#define VSF_BUILD_TCPWRAPPERS" >>builddefs.h: Use this prior to make to add support for
tcpwrappers.
echo "#define VSF_BUILD_SSL" >>builddefs.h: Use this prior to make to add support for SSL.
install -v -m ...: The Makefile uses non-standard installation paths. These commands install the files in /usr
and /etc.
Configuring vsftpd
Config Files
/etc/vsftpd.conf
Configuration Information
vsftpd comes with a basic anonymous-only configuration file that was copied to /etc above. While still as root, this
file should be modified because it is now recommended to run vsftpd in standalone mode as opposed to inetd/xinetd
mode. Also, you should specify the privilege separation user created above. Finally, you should specify the chroot
directory. man vsftpd.conf will give you all the details.
Boot Script
Install the /etc/rc.d/init.d/vsftpd init script included in the blfs-bootscripts-20080816 package.
make install-vsftpd
Contents
Installed Program: vsftpd
Installed Libraries: None
Installed Directories: /var/ftp, /var/ftp/empty, /home/ftp
Short Descriptions
vsftpd is the FTP daemon.
539
Beyond Linux® From Scratch - Version 6.3
xinetd-2.3.14
Introduction to xinetd
xinetd is the eXtended InterNET services daemon, a secure replacement for inetd.
Package Information
• Download (HTTP): http://www.xinetd.org/xinetd-2.3.14.tar.gz
• Download (FTP): ftp://ftp.linux.ee/pub/gentoo/distfiles/distfiles/xinetd-2.3.14.tar.gz
• Download MD5 sum: 567382d7972613090215c6c54f9b82d9
• Download size: 301 KB
• Estimated disk space required: 4.4 MB
• Estimated build time: less than 0.1 SBU
xinetd Dependencies
Optional
Installation of xinetd
Install xinetd by running the following commands:
make install
Configuring xinetd
Config Files
/etc/xinetd.conf and /etc/xinetd.d/*
540
Beyond Linux® From Scratch - Version 6.3
Configuration Information
Ensure the path to all daemons is /usr/sbin, rather than the default path of /usr/etc, and install the xinetd
configuration files by running the following commands as the root user:
defaults
{
instances = 60
log_type = SYSLOG daemon
log_on_success = HOST PID USERID
log_on_failure = HOST USERID
cps = 25 30
}
Note
The following files are listed to demonstrate classic xinetd applications. In many cases, these applications
are not needed. In some cases, the applications are considered security risks. For example, telnet, rlogin,
rexec, and rsh transmit unencrypted usernames and passwords over the network and can be easily replaced
with a more secure alternative: ssh.
service login
{
disable = yes
socket_type = stream
protocol = tcp
wait = no
user = root
server = /usr/sbin/in.rlogind
log_type = SYSLOG local4 info
}
541
Beyond Linux® From Scratch - Version 6.3
# End /etc/xinetd.d/login
EOF
cat > /etc/xinetd.d/shell << "EOF" &&
# Begin /etc/xinetd.d/shell
service shell
{
disable = yes
socket_type = stream
wait = no
user = root
instances = UNLIMITED
flags = IDONLY
log_on_success += USERID
server = /usr/sbin/in.rshd
}
# End /etc/xinetd.d/shell
EOF
cat > /etc/xinetd.d/exec << "EOF" &&
# Begin /etc/xinetd.d/exec
service exec
{
disable = yes
socket_type = stream
wait = no
user = root
server = /usr/sbin/in.rexecd
}
# End /etc/xinetd.d/exec
EOF
cat > /etc/xinetd.d/comsat << "EOF" &&
# Begin /etc/xinetd.d/comsat
service comsat
{
disable = yes
socket_type = dgram
wait = yes
user = nobody
group = tty
server = /usr/sbin/in.comsat
}
542
Beyond Linux® From Scratch - Version 6.3
# End /etc/xinetd.d/comsat
EOF
cat > /etc/xinetd.d/talk << "EOF" &&
# Begin /etc/xinetd.d/talk
service talk
{
disable = yes
socket_type = dgram
wait = yes
user = root
server = /usr/sbin/in.talkd
}
# End /etc/xinetd.d/talk
EOF
cat > /etc/xinetd.d/ntalk << "EOF" &&
# Begin /etc/xinetd.d/ntalk
service ntalk
{
disable = yes
socket_type = dgram
wait = yes
user = root
server = /usr/sbin/in.ntalkd
}
# End /etc/xinetd.d/ntalk
EOF
cat > /etc/xinetd.d/telnet << "EOF" &&
# Begin /etc/xinetd.d/telnet
service telnet
{
disable = yes
socket_type = stream
wait = no
user = root
server = /usr/sbin/in.telnetd
bind = 127.0.0.1
log_on_failure += USERID
}
service telnet
{
disable = yes
543
Beyond Linux® From Scratch - Version 6.3
socket_type = stream
wait = no
user = root
# server = /usr/sbin/in.telnetd
bind = 192.231.139.175
redirect = 128.138.202.20 23
log_on_failure += USERID
}
# End /etc/xinetd.d/telnet
EOF
cat > /etc/xinetd.d/ftp << "EOF" &&
# Begin /etc/xinetd.d/ftp
service ftp
{
disable = yes
socket_type = stream
wait = no
user = root
server = /usr/sbin/in.ftpd
server_args = -l
instances = 4
log_on_success += DURATION USERID
log_on_failure += USERID
access_times = 2:00-8:59 12:00-23:59
nice = 10
}
# End /etc/xinetd.d/ftp
EOF
cat > /etc/xinetd.d/tftp << "EOF" &&
# Begin /etc/xinetd.d/tftp
service tftp
{
disable = yes
socket_type = dgram
wait = yes
user = root
server = /usr/sbin/in.tftpd
server_args = -s /tftpboot
}
# End /etc/xinetd.d/tftp
EOF
cat > /etc/xinetd.d/finger << "EOF" &&
544
Beyond Linux® From Scratch - Version 6.3
# Begin /etc/xinetd.d/finger
service finger
{
disable = yes
socket_type = stream
wait = no
user = nobody
server = /usr/sbin/in.fingerd
}
# End /etc/xinetd.d/finger
EOF
cat > /etc/xinetd.d/systat << "EOF" &&
# Begin /etc/xinetd.d/systat
service systat
{
disable = yes
socket_type = stream
wait = no
user = nobody
server = /usr/bin/ps
server_args = -auwwx
only_from = 128.138.209.0
log_on_success = HOST
}
# End /etc/xinetd.d/systat
EOF
cat > /etc/xinetd.d/netstat << "EOF" &&
# Begin /etc/xinetd.d/netstat
service netstat
{
disable = yes
socket_type = stream
wait = no
user = nobody
server = /usr/ucb/netstat
server_args = -f inet
only_from = 128.138.209.0
log_on_success = HOST
}
# End /etc/xinetd.d/netstat
EOF
545
Beyond Linux® From Scratch - Version 6.3
service echo
{
disable = yes
type = INTERNAL
id = echo-stream
socket_type = stream
protocol = tcp
user = root
wait = no
}
service echo
{
disable = yes
type = INTERNAL
id = echo-dgram
socket_type = dgram
protocol = udp
user = root
wait = yes
}
# End /etc/xinetd.d/echo
EOF
cat > /etc/xinetd.d/chargen << "EOF" &&
# Begin /etc/xinetd.d/chargen
service chargen
{
disable = yes
type = INTERNAL
id = chargen-stream
socket_type = stream
protocol = tcp
user = root
wait = no
}
service chargen
{
disable = yes
type = INTERNAL
id = chargen-dgram
socket_type = dgram
546
Beyond Linux® From Scratch - Version 6.3
protocol = udp
user = root
wait = yes
}
# End /etc/xinetd.d/chargen
EOF
cat > /etc/xinetd.d/daytime << "EOF" &&
# Begin /etc/xinetd.d/daytime
service daytime
{
disable = yes
type = INTERNAL
id = daytime-stream
socket_type = stream
protocol = tcp
user = root
wait = no
}
service daytime
{
disable = yes
type = INTERNAL
id = daytime-dgram
socket_type = dgram
protocol = udp
user = root
wait = yes
}
# End /etc/xinetd.d/daytime
EOF
cat > /etc/xinetd.d/time << "EOF" &&
# Begin /etc/xinetd.d/time
service time
{
disable = yes
type = INTERNAL
id = time-stream
socket_type = stream
protocol = tcp
user = root
wait = no
}
547
Beyond Linux® From Scratch - Version 6.3
service time
{
disable = yes
type = INTERNAL
id = time-dgram
socket_type = dgram
protocol = udp
user = root
wait = yes
}
# End /etc/xinetd.d/time
EOF
cat > /etc/xinetd.d/rstatd << "EOF" &&
# Begin /etc/xinetd.d/rstatd
service rstatd
{
disable = yes
type = RPC
flags = INTERCEPT
rpc_version = 2-4
socket_type = dgram
protocol = udp
server = /usr/sbin/rpc.rstatd
wait = yes
user = root
}
# End /etc/xinetd.d/rstatd
EOF
cat > /etc/xinetd.d/rquotad << "EOF" &&
# Begin /etc/xinetd.d/rquotad
service rquotad
{
disable = yes
type = RPC
rpc_version = 1
socket_type = dgram
protocol = udp
wait = yes
user = root
server = /usr/sbin/rpc.rstatd
}
548
Beyond Linux® From Scratch - Version 6.3
# End /etc/xinetd.d/rquotad
EOF
cat > /etc/xinetd.d/rusersd << "EOF" &&
# Begin /etc/xinetd.d/rusersd
service rusersd
{
disable = yes
type = RPC
rpc_version = 1-2
socket_type = dgram
protocol = udp
wait = yes
user = root
server = /usr/sbin/rpc.rusersd
}
# End /etc/xinetd.d/rusersd
EOF
cat > /etc/xinetd.d/sprayd << "EOF" &&
# Begin /etc/xinetd.d/sprayd
service sprayd
{
disable = yes
type = RPC
rpc_version = 1
socket_type = dgram
protocol = udp
wait = yes
user = root
server = /usr/sbin/rpc.sprayd
}
# End /etc/xinetd.d/sprayd
EOF
cat > /etc/xinetd.d/walld << "EOF" &&
# Begin /etc/xinetd.d/walld
service walld
{
disable = yes
type = RPC
rpc_version = 1
socket_type = dgram
protocol = udp
549
Beyond Linux® From Scratch - Version 6.3
wait = yes
user = nobody
group = tty
server = /usr/sbin/rpc.rwalld
}
# End /etc/xinetd.d/walld
EOF
cat > /etc/xinetd.d/irc << "EOF"
# Begin /etc/xinetd.d/irc
service irc
{
disable = yes
socket_type = stream
wait = no
user = root
flags = SENSOR
type = INTERNAL
bind = 192.168.1.30
deny_time = 60
}
# End /etc/xinetd.d/irc
EOF
The format of the /etc/xinetd.conf is documented in the xinetd.conf.5 man page. Further information
can be found at http://www.xinetd.org.
Boot Script
As the root user, install the /etc/rc.d/init.d/xinetd init script included in the blfs-bootscripts-20080816
package.
make install-xinetd
As the root user, use the 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 because most of the servers xinetd is trying to control are not installed yet.
550
Beyond Linux® From Scratch - Version 6.3
Contents
Installed Programs: itox, xconv.pl, and xinetd
Installed Libraries: None
Installed Directories: /etc/xinetd.d/
Short Descriptions
itox is a utility used for converting inetd.conf files to xinetd.conf format.
xconv.pl is a Perl script used for converting inetd.conf files to xinetd.conf format, similar to itox.
xinetd is the Internet services daemon.
551
Beyond Linux® From Scratch - Version 6.3
552
Beyond Linux® From Scratch - Version 6.3
Exim-4.67
Introduction to Exim
The Exim package contains a Mail Transport Agent written by the University of Cambridge, released under the GNU
Public License.
Package Information
• Download (HTTP): http://www.exim.org/ftp/exim4/exim-4.67.tar.bz2
• Download (FTP): ftp://ftp.exim.org/pub/exim/exim4/exim-4.67.tar.bz2
• Download MD5 sum: 9ee83186d9ac99e5ff297112aa6fddf0
• Download size: 1.6 MB
• Estimated disk space required: 15 MB
• Estimated build time: 0.2 SBU
Additional Downloads
• Additional formats of the documentation (text-based docs are shipped with the sources) can be downloaded by
following the links shown at http://exim.org/docs.html.
Exim Dependencies
Required
Optional
Installation of Exim
Before building Exim, as the root user you should create the group and user exim which will run the exim daemon:
sed -e 's,^BIN_DIR.*$,BIN_DIRECTORY=/usr/sbin,' \
-e 's,^CONF.*$,CONFIGURE_FILE=/etc/exim.conf,' \
-e 's,^EXIM_USER.*$,EXIM_USER=exim,' \
-e 's,^EXIM_MONITOR,#EXIM_MONITOR,' src/EDITME > Local/Makefile &&
make
553
Beyond Linux® From Scratch - Version 6.3
Command Explanations
sed -e ... > Local/Makefile: Most of Exim's configuration options are compiled in using the directives in
Local/Makefile which is created from the src/EDITME file. This command specifies the minimum set of
options. Descriptions for the options are listed below.
BIN_DIRECTORY=/usr/sbin: This installs all of Exim's binaries and scripts in /usr/sbin.
CONFIGURE_FILE=/etc/exim.conf: This installs Exim's main configuration file in /etc.
EXIM_USER=exim: This tells Exim that after the daemon no longer needs root privileges, the process hands off
the daemon to the exim user.
#EXIM_MONITOR: This defers building the Exim monitor program, as it requires X Window System support, by
commenting out the EXIM_MONITOR line in the Makefile. If you wish to build the monitor program, omit this
sed command and issue the following command before building the package (modify Local/eximon.conf, if
necessary): cp exim_monitor/EDITME Local/eximon.conf.
ln -sv exim /usr/sbin/sendmail: Creates a link to sendmail for applications which need it. Exim will accept most
Sendmail command-line options.
554
Beyond Linux® From Scratch - Version 6.3
For information about linking database engine libraries used for Exim name lookups, see the instructions at
http://exim.org/exim-html-4.67/doc/html/spec_html/ch09.html.
If you wish to add Readline support to Exim when invoked in “test expansion” (-be) mode, see the information in
the -be section of http://exim.org/exim-html-4.67/doc/html/spec_html/ch05.html#id2525974.
You may wish to modify the default configuration and send log files to syslog instead of the default
/var/spool/exim/log directory. See the information at http://exim.org/exim-html-4.67/doc/html/spec_
html/ch49.html.
Configuring Exim
Config Files
/etc/exim.conf and /etc/aliases
Configuration Information
A default (nothing but comments) /etc/aliases file is installed during the package installation if this file did not
exist on your system. Create the necessary aliases and start the Exim daemon using the following commands:
cat >> /etc/aliases << "EOF"
postmaster: root
MAILER-DAEMON: root
EOF
exim -v -bi &&
/usr/sbin/exim -bd -q15m
Note
To protect an existing /etc/aliases file, the command above appends these aliases to it. This file
should be checked and duplicate aliases removed, if present.
The /usr/sbin/exim -bd -q15m command starts the Exim daemon with a 15 minute interval in processing the mail
queue. Adjust this parameter to suit your desires.
Boot Script
To automate the running of exim at startup, install the /etc/rc.d/init.d/exim init script included in the
blfs-bootscripts-20080816 package.
make install-exim
The bootscript also starts the Exim daemon and dispatches a queue runner process every 15 minutes. Modify the
-q<time interval> parameter in /etc/rc.d/init.d/exim, if necessary for your installation.
Contents
Installed Programs: exicyclog, exigrep, exim, exim-4.43-2, exim_checkaccess, exim_dbmbuild,
exim_dumpdb, exim_fixdb, exim_lock, exim_tidydb, eximstats, exinext, exipick,
exiqgrep, exiqsumm, exiwhat, and optionally, eximon, and eximon.bin
Installed Libraries: None
Installed Directories: /usr/share/doc/exim-4.67 and /var/spool/exim
555
Beyond Linux® From Scratch - Version 6.3
Short Descriptions
exicyclog cycles Exim log files.
exigrep searches Exim log files.
exim is a symlink to the exim-4.43-2 MTA daemon.
exim-4.43-2 is the Exim mail transport agent daemon.
exim_checkaccess states whether a given recipient address from a given host is acceptable or not.
exim_dbmbuild creates and rebuilds Exim databases.
exim_dumpdb writes the contents of Exim databases to the standard output.
exim_fixdb modifies data in Exim databases.
exim_lock locks a mailbox file.
exim_tidydb removes old records from Exim databases.
eximstats generates mail statistics from Exim log files.
exinext queries remote host retry times.
exipick selects messages based on various criteria.
exiqgrep is a utility for selective queue listing.
exiqsumm produces a summary of the messages in the mail queue.
exiwhat queries running Exim processes.
eximon is a start-up shell script for eximon.bin used to set the required environment variables
before running the program.
eximon.bin is a monitor program which displays current information in an X window, and also contains
a menu interface to Exim's command line administration options.
556
Beyond Linux® From Scratch - Version 6.3
Postfix-2.5.1
Introduction to Postfix
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).
Package Information
• Download (HTTP): http://postfix.energybeam.com/source/official/postfix-2.5.1.tar.gz
• Download (FTP): ftp://ftp.porcupine.org/mirrors/postfix-release/official/postfix-2.5.1.tar.gz
• Download MD5 sum: 95a559c509081fdd07d78eafd4f4c3b4
• Download size: 3 MB
• Estimated disk space required: 97 MB
• Estimated build time: 0.4 SBU
Postfix Dependencies
Optional
PCRE-7.6, MySQL-5.0.41, PostgreSQL-8.2.4, OpenLDAP-2.3.39, OpenSSL-0.9.8g, Cyrus SASL-2.1.22, and cdb
or TinyCDB
Installation of Postfix
Configuring the Build
The Postfix source tree does not contain a configure script, rather the makefile in the top-level directory contains
a makefiles target that regenerates all the other makefiles in the build tree. If you wish to use additional software
such as a database back-end for virtual users, or TLS/SSL authentication, you will need to regenerate the makefiles
using one or more of the appropriate CCARGS and AUXLIBS settings listed below.
Here is an example that combines the TLS and Cyrus-SASL arguments:
make makefiles \
CCARGS='-DUSE_TLS -DUSE_SASL_AUTH -DUSE_CYRUS_SASL \
-DDEF_DAEMON_DIR=\"/usr/lib/postfix\" \
-DDEF_MANPAGE_DIR=\"/usr/share/man\" \
-DDEF_HTML_DIR=\"/usr/share/doc/postfix-2.5.1/html\" \
-DDEF_README_DIR=\"/usr/share/doc/postfix-2.5.1/README\" \
-I/usr/include/openssl -I/usr/include/sasl' \
AUXLIBS='-L/usr/lib -lssl -lcrypto -lsasl2'
CCARGS='-DHAS_PCRE -I/usr/include'
AUXLIBS='-L/usr/lib -lpcre'
557
Beyond Linux® From Scratch - Version 6.3
Cyrus-SASL
Berkely DB
CCARGS='-DHAS_DB -I/usr/include'
AUXLIBS='-L/usr/lib -ldb'
OpenLDAP
CCARGS='-DHAS_LDAP -I/usr/include'
AUXLIBS='-L/usr/lib -lldap -llber'
MySQL
CCARGS='-DHAS_MYSQL -I/usr/include/mysql'
AUXLIBS='-L/usr/lib -lmysqlclient -lz -lm'
PostgreSQL
CCARGS='-DHAS_PGSQL -I/usr/include/postgresql'
AUXLIBS='-L/usr/lib -lpq -lz -lm'
CDB/TinyCDB
CCARGS='-DHAS_CDB'
AUXLIBS='</path/to/CDB>/libcdb.a'
StartTLS Authentication
CCARGS='-DUSE_TLS -I/usr/include/openssl/'
AUXLIBS='-L/usr/lib -lssl -lcrypto'
558
Beyond Linux® From Scratch - Version 6.3
Installing Postfix
Before you compile the program, you need to create users and groups that will be expected to be in place during the
installation. Add the users and groups with the following commands issued by the root user:
groupadd -g 32 postfix &&
groupadd -g 33 postdrop &&
useradd -c "Postfix Daemon User" -d /dev/null -g postfix \
-s /bin/false -u 32 postfix &&
chown -v postfix:postfix /var/mail
Install Postfix by running the following commands:
make makefiles \
CCARGS='-DDEF_DAEMON_DIR=\"/usr/lib/postfix\" \
-DDEF_MANPAGE_DIR=\"/usr/share/man\" \
-DDEF_HTML_DIR=\"/usr/share/doc/postfix-2.5.1/html\" \
-DDEF_README_DIR=\"/usr/share/doc/postfix-2.5.1/README\" \
<additional args>' \
<AUXLIBS='additional args'> &&
make
This package does not come with a test suite.
Now, as the root user:
sh postfix-install -non-interactive
Command Explanations
make makefiles: This command rebuilds the makefiles throughout the source tree to use the options contained in
the CCARGS and AUXLIBS variables.
sh postfix-install -non-interactive: This keeps the install script from asking any questions, thereby accepting default
destination directories in all but the few cases mentioned in the 'make makefiles' command.
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
559
Beyond Linux® From Scratch - Version 6.3
Note
To protect an existing /etc/aliases file, the above command appends these aliases to it if it exists.
This file should be checked and duplicate aliases removed, if present.
The /etc/aliases file that was just created or appended, 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.
If you have an existing configuration, you can run the postfix utility to add any necessary definitions to your existing
files. As the root user:
/usr/sbin/postfix upgrade-configuration
Before starting Postfix, you should check that your configuration and file permissions will work properly. Run the
following commands as the root user to check and start your Postfix server:
Boot Script
To automate the running of Postfix at startup, install the /etc/rc.d/init.d/postfix init script included in
the blfs-bootscripts-20080816 package.
make install-postfix
Contents
Installed Programs: anvil, bounce, cleanup, discard, error, flush, lmtp, local, mailq, master, newaliases,
nqmgr, oqmgr, pickup, pipe, postalias, postcat, postconf, postdrop, postfix, postkick,
postlock, postlog, postmap, postqueue, postsuper, proxymap, qmgr, qmqpd, sendmail,
showq, smtp, smtpd, spawn, tlsmgr, trivial-rewrite, verify, and virtual
Installed Libraries: None
Installed Directories: /etc/postfix, /usr/lib/postfix and /usr/share/doc/postfix-2.5.1
Short Descriptions
anvil Provides connection and rate request limiting.
bounce A daemon that maintains per-message log files with non-delivery status information.
cleanup A daemon that processes inbound mail, inserts it into the incoming mail queue, and informs
the queue manager of its arrival.
560
Beyond Linux® From Scratch - Version 6.3
discard Processes delivery requests from the queue manager that cannot be delivered to the recipient.
error A daemon that processes non-delivery requests from the queue manager.
flush A daemon that maintains a record of deferred mail by destination.
lmtp A daemon that processes message delivery requests from the queue manager.
local A daemon that processes delivery requests from the queue manager to deliver mail to local
recipients.
mailq A symlink to sendmail.
master The resident process that runs Postfix daemons on demand.
newaliases A symlink to sendmail.
nqmgr A daemon that awaits the arrival of incoming mail and arranges for its delivery.
oqmgr The old style queue manager. This will be removed soon.
pickup A daemon that waits for hints that new mail has been dropped into the maildrop directory,
and feeds it into the cleanup daemon.
pipe A daemon that processes requests from the queue manager to deliver messages to external
commands.
postalias Creates or queries one or more Postfix alias databases, or updates an existing one.
postcat Prints the contents of the named files in human readable format.
postconf Displays or changes the value of Postfix configuration parameters.
postdrop Creates a file in the maildrop directory and copies it's standard input to the file.
postfix Controls the operation of the Postfix mail system.
postkick Sends requests to the specified service over a local transport channel.
postlock Locks a mail folder for exclusive use, and executes commands passed to it.
postlog A Postfix-compatible logging interface for use in, for example, shell scripts.
postmap Creates or queries one or more Postfix lookup tables, or updates an existing one.
postqueue The Postfix user interface for queue management.
postsuper The Postfix user interface for superuser queue management.
proxymap Provides read-only table lookup services to other Postfix processes.
qmgr A daemon that awaits the arrival of incoming mail and arranges for its delivery.
qmqpd A daemon that receives one message per connection, and pipes it through the cleanup
daemon, and places it into the incoming queue.
scache Maintains a connection cache used for sharing a connection multiple times.
sendmail The Postfix to Sendmail compatibility interface.
showq A daemon that reports the Postfix mail queue status.
smtp Looks up a list of mail exchanger addresses for the destination host, sorts the list by
preference, and connects to each listed address until it finds a server that responds.
smtpd Accepts network connection requests and performs zero or more SMTP transactions per
connection.
561
Beyond Linux® From Scratch - Version 6.3
spawn Listens on a port as specified in the Postfix master.cf file and spawns an external
command whenever a connection is established.
tlsmgr Maintains the TLS session cache and acts as the PRNG manager.
trivial-rewrite A daemon that rewrites addresses to standard form.
verify Maintains a record of what recipient addresses are known to be deliverable or undeliverable.
virtual Delivers mail to virtual user's mail directories.
562
Beyond Linux® From Scratch - Version 6.3
Qpopper-4.0.9
Introduction to Qpopper
The Qpopper package contains a POP3 mail server.
Package Information
•
• Download (FTP): ftp://ftp.qualcomm.com/eudora/servers/unix/popper/qpopper4.0.9.tar.gz
• Download MD5 sum: de2cd15f95cfd00d0d080fd16287acad
• Download size: 2.7 MB
• Estimated disk space required: 9.1 MB
• Estimated build time: 0.1 SBU
Qpopper Dependencies
Required
An MTA
Optional
OpenSSL-0.9.8g, GDBM-1.8.3, Linux-PAM-0.99.10.0, and MIT Kerberos V5-1.6 or Heimdal-1.1
Installation of Qpopper
Install Qpopper with the following commands:
Command Explanations
--enable-standalone: This option gives the flexibility to run Qpopper in standalone mode.
Configuring Qpopper
Configuration Information
Update the Syslog configuration file and force the syslogd daemon to reread the new file so that Qpopper events
are logged:
563
Beyond Linux® From Scratch - Version 6.3
If you want Qpopper to start automatically when the system is booted, install the /etc/rc.d/init.d/qpopper
init script included in the blfs-bootscripts-20080816 package.
make install-qpopper
This startup procedure uses a configuration file. The details of the configuration file can be found in the documentation
file GUIDE.pdf.
cat > /etc/mail/qpopper.conf << "EOF"
# Qpopper configuration file
# End /etc/shells
EOF
If you use inetd, the following command will add the Qpopper entry to /etc/inetd.conf:
echo "pop3 stream tcp nowait root /usr/sbin/popper popper" >> \
/etc/inetd.conf &&
killall inetd || inetd
Issue a killall -HUP inetd to reread the changed inetd.conf file.
If you use xinetd, the following command will create the Qpopper file as /etc/xinetd.d/pop3:
cat >> /etc/xinetd.d/pop3 << "EOF"
# Begin /etc/xinetd.d/pop3
service pop3
{
port = 110
socket_type = stream
protocol = tcp
wait = no
user = root
server = /usr/sbin/popper
}
# End /etc/xinetd.d/pop3
EOF
Issue a killall -HUP xinetd to reread the changed xinetd.conf file.
564
Beyond Linux® From Scratch - Version 6.3
Contents
Installed Program: popper
Installed Libraries: None
Installed Directories: None
Short Descriptions
popper is the POP3 server daemon.
565
Beyond Linux® From Scratch - Version 6.3
Sendmail-8.14.1
Introduction to Sendmail
The Sendmail package contains a Mail Transport Agent (MTA).
Package Information
• Download (HTTP): http://www.sendmail.org/ftp/sendmail.8.14.1.tar.gz
• Download (FTP): ftp://ftp.sendmail.org/pub/sendmail/sendmail.8.14.1.tar.gz
• Download MD5 sum: 462bc9e00fdbef3a71b046b967c9a157
• Download size: 2.0 MB
• Estimated disk space required: 19 MB
• Estimated build time: 0.3 SBU
Sendmail Dependencies
Required
Procmail-3.22
Optional
OpenSSL-0.9.8g, OpenLDAP-2.3.39, TCP Wrapper-7.6, Cyrus SASL-2.1.22, nph, and AFPL Ghostscript-8.53 or
ESP Ghostscript-8.15.4 (for creating PDF documentation)
Installation of Sendmail
Before building Sendmail, create the required user, group and directory with the following commands issued as the
root user:
Note: See the source tree sendmail/README file for information on linking optional packages into the build. Use
the example below, which adds support for tcpwrappers, SASL, StartTLS (OpenSSL) and OpenLDAP, as a starting
point. Of course, modify it to suit your particular needs.
566
Beyond Linux® From Scratch - Version 6.3
cd ../.. &&
sh Build install &&
567
Beyond Linux® From Scratch - Version 6.3
Note: remove op.pdf from the make and install commands if you don't have Ghostscript installed.
Command Explanations
cat > devtools/Site/site.config.m4 << "EOF": This creates a configuration file changing some of the default settings.
sh Build; sh Build sendmail.cf; sh Build install-cf; sh Build install: Sendmail uses an m4 based build script to
create the various Makefiles. These commands build and install the package.
for manpage in...;do...;done; install ...: The man pages are installed already formatted and man displays them
somewhat garbled. These commands replace the formatted pages with pages man can display properly.
Configuring Sendmail
Config Files
/etc/mail/*
Configuration Information
Create the /etc/mail/local-host-names and /etc/mail/aliases files using the following commands
as the root user:
EOF
newaliases -v
Sendmail's primary configuration file, /etc/mail/sendmail.cf, is complex and not meant to be directly edited.
The recommended method for changing it is to modify /etc/mail/sendmail.mc and various m4 files, then run
the m4 macro processor from within /etc/mail as follows:
A full explanation of the files to modify, and the available parameters can be found in /etc/mail/README.
Boot Script
To automate the running of Sendmail at startup, install the /etc/rc.d/init.d/sendmail init script included
in the blfs-bootscripts-20080816 package.
make install-sendmail
568
Beyond Linux® From Scratch - Version 6.3
Note
The -qNm option to sendmail, where N is number of minutes, controls how often Sendmail will process
the mail queue. A default of 5 minutes is used in the init script. Individual workstation users may want to
set this as low as 1 minute, large installations handling more mail may want to set it higher.
Contents
Installed Programs: editmap, hoststat, mailstats, mailq, makemap, newaliases, praliases, purgestat,
sendmail, smrsh, and vacation
Installed Libraries: None
Installed Directories: /etc/mail, /usr/share/doc/sendmail-8.14.1, /var/spool/mqueue, and
/var/spool/clientmqueue
Short Descriptions
editmap queries and edits Sendmail map files.
hoststat prints Sendmail's persistent host status.
mailstats displays Sendmail statistics.
mailq prints a summary of outbound mail messages waiting for delivery.
makemap creates Sendmail map files.
newaliases rebuilds /etc/mail/aliases.db from the contents of /etc/mail/aliases.
praliases displays current Sendmail aliases.
purgestat causes Sendmail to clear (purge) all its host-status information.
sendmail is the Sendmail mail transport agent.
smrsh is a restricted shell for Sendmail.
vacation is an email auto responder.
569
Beyond Linux® From Scratch - Version 6.3
570
Beyond Linux® From Scratch - Version 6.3
Berkeley DB-4.5.20
Introduction to Berkeley DB
The Berkeley DB package contains programs and utilities used by many other applications for database related
functions. This package is also installed during LFS and may already exist on your system. It is listed here in BLFS
as well because you may need to reinstall it if you need the additional language bindings or the RPC server. If you
do reinstall Berkeley DB, ensure you use the 4.5.20 version used in the LFS book.
Package Information
• Download (HTTP): http://download-east.oracle.com/berkeley-db/db-4.5.20.tar.gz
• Download (FTP): ftp://ftp.linux.ee/pub/gentoo/distfiles/distfiles/db-4.5.20.tar.gz
• Download MD5 sum: b0f1c777708cb8e9d37fb47e7ed3312d
• Download size: 9.2 MB
• Estimated disk space required: 94 MB (additional 100 MB to run parallel standard test suite)
• Estimated build time: 1.7 SBU (builds all bindings, add an additional 145 SBU to run parallel standard test suite)
Additional Downloads
• Required patch: http://www.oracle.com/technology/products/berkeley-db/db/update/4.5.20/patch.4.5.20.1
• Required patch: http://www.oracle.com/technology/products/berkeley-db/db/update/4.5.20/patch.4.5.20.2
Berkeley DB Dependencies
Optional
Testing Berkeley DB
You may want to skip ahead to the section called “Installation of Berkeley DB”. The test suite can take up to 150
SBUs and has a few bugs causing a report of “Regression tests failed”. However, running the test suite is a very
exhaustive test of your hardware, perhaps pushing your machine harder (especially disk I/O) than it will ever see
during production use. Note that you must have Tcl installed to run the test suite.
Build for the Berkeley DB test by running the following commands:
tclsh
571
Beyond Linux® From Scratch - Version 6.3
source ../test/test.tcl
run_parallel 5 run_std
exit
Installation of Berkeley DB
The installation commands below are identical to the commands used in the LFS book. If you installed Berkeley DB
in LFS, and you don't add anything to the configure script, you'll end up with exactly what you already have. The
additional parameters you can use are listed in the Command Explanations section below.
Note
If you plan on installing Berkeley DB with Java support, you should check the system for certain versions
of JDK-6 Update 5 and GMime-2.2.10. Specifically, if JDK-6 Update X and the uudecode program from
the GMime program is on the system, the build will fail (unless you run the modified ./configure command
shown below). You can run two commands (javac -version and uudecode --version) to determine what
versions are installed. You can also download and run a shell script from http://anduin.linuxfromscratch.
org/files/BLFS/6.3/jdk-uudecode-check.sh that will alert you to a non-working condition. If the identified
programs exist on the system, you must modify the ./configure command as shown below.
572
Beyond Linux® From Scratch - Version 6.3
Command Explanations
cd build_unix && ../dist/configure --prefix=/usr...: This replaces the normal ./configure command, as Berkeley
DB comes with various build directories for different platforms.
--enable-compat185: This switch enables building the DB-1.85 compatibility API.
--enable-cxx: This switch enables building C++ API libraries.
--enable-tcl --with-tcl=/usr/lib: Enables Tcl support in DB and creates the libdb_tcl libraries.
--enable-java: Enables Java support in DB and creates the libdb_java libraries.
--enable-rpc: Enables building the Berkeley DB RPC server.
make docdir=/usr/share/doc/db-4.5.20 install: This installs the documentation in the standard location instead of
/usr/docs.
chown -v -R root:root ...:This command changes the ownership of various installed files from the uid:gid of the
builder to root:root.
Contents
Only the program and libraries not installed in LFS are listed here, the others can be found at ../../../../lfs/view/6.
3/chapter06/db.html#contents-db as they were initially installed during the building of LFS.
Installed Program: berkeley_db_svc
Installed Libraries: libdb_java.{so,a}, libdb_tcl.{so,a} and db.jar
Installed Directory: /usr/share/doc/db-4.5.20
Short Descriptions
berkeley_db_svc is the Berkeley DB RPC server.
573
Beyond Linux® From Scratch - Version 6.3
MySQL-5.0.41
Introduction to MySQL
MySQL is a widely used and fast SQL database server. It is a client/server implementation that consists of a server
daemon and many different client programs and libraries.
There may be a more recent release available from the MySQL home page. You can check http://dev.mysql.com/ and
probably use the existing BLFS instructions. Note that versions other than the one shown in the download URLs have
not been tested in a BLFS environment.
Package Information
• Download (HTTP): http://anduin.linuxfromscratch.org/sources/BLFS/6.3/m/mysql-5.0.41.tar.gz
• Download (FTP): ftp://anduin.linuxfromscratch.org/BLFS/6.3/m/mysql-5.0.41.tar.gz
• Download MD5 sum: b45cd6c89e35dfc1cdbe1a1f782aefbf
• Download size: 24 MB
• Estimated disk space required: 405 MB (additional 65 MB to run the test suite)
• Estimated build time: 6.0 SBU (Test suite is an additional 52 minutes, only partially CPU dependent)
MySQL Dependencies
Optional
OpenSSL-0.9.8g and TCP Wrapper-7.6
Installation of MySQL
For security reasons, running the server as an unprivileged user and group is strongly encouraged:
groupadd -g 40 mysql &&
useradd -c "MySQL Server" -d /dev/null -g mysql -s /bin/false \
-u 40 mysql
Build and install MySQL by running the following commands:
C_EXTRA_FLAGS=-fno-strict-aliasing \
./configure --prefix=/usr \
--sysconfdir=/etc \
--libexecdir=/usr/sbin \
--localstatedir=/srv/mysql \
--enable-thread-safe-client \
--enable-assembler \
--enable-local-infile \
--with-unix-socket-path=/var/run/mysql/mysql.sock \
--without-debug \
--without-bench \
--without-readline \
--with-berkeley-db \
--with-extra-charsets=all &&
make testdir=/tmp/mysql
574
Beyond Linux® From Scratch - Version 6.3
To test the results, issue: make test. Note that if you have a restrictive /etc/hosts.deny file, you will need to
add an appropriate entry to the /etc/hosts.allow file for the mysqld daemon, else many of the tests will fail.
Now, as the root user:
Tip
The only documentation shipped in the source tarball are mysql.info and manual.chm (Microsoft
Help format) files. You can download various formats of the MySQL Reference Manual from http://dev.
mysql.com/doc/.
Command Explanations
C_EXTRA_FLAGS=-fno-strict-aliasing: This environment variable adjusts the compiler optimization to
avoid failures in the testsuite and other operations.
--libexecdir=/usr/sbin: This switch installs the mysqld daemon and the mysqlmanager program in an
appropriate location.
--localstatedir=/srv/mysql: This switch forces MySQL to use /srv/mysql for database files and other
variable data.
--enable-thread-safe-client: This switch compiles a thread-safe MySQL client library.
--enable-assembler: This switch allows using assembler versions of some string functions.
--enable-local-infile: This switch enables the “LOAD DATA INFILE” SQL statement.
--with-unix-socket-path=/var/run/mysql: This switch puts the unix-domain socket into the
/var/run/mysql directory instead of the default /tmp.
--without-bench: This switch skips building the benchmark suite.
--without-readline: This switch forces the build to use the system copy of readline instead of the bundled
copy.
--with-berkeley-db: This switch enables using Berkeley DB tables as a back end.
--with-extra-charsets=all: This switch enables international character sets within the suite.
make testdir=...: This installs the test suite in /tmp/mysql. The test suite is not required, nor does it function
properly on an installed version of MySQL, so it is removed in the next step.
ln -v -sf mysql/libmysqlclient{,_r}.so* .: This command makes the MySQL shared libraries available to other
packages at run-time.
--with-openssl: This switch adds OpenSSL support to MySQL.
--with-libwrap: This switch adds tcpwrappers support to MySQL.
575
Beyond Linux® From Scratch - Version 6.3
Configuring MySQL
Config Files
/etc/my.cnf and ~/.my.cnf
Configuration Information
There are several default configuration files available in /usr/share/mysql which you can use. Create
/etc/my.cnf using the following command as the root user:
You can now install a database and change the ownership to the unprivileged user and group (perform as the root
user):
Further configuration requires that the MySQL server is running. Start the server using the following commands as
the root user:
A default installation does not set up a password for the administrator, so use the following command as the root
user to set one. Replace <new-password> with your own.
Configuration of the server is now finished. Shut the server down using the following command as the root user:
mysqladmin -p shutdown
Boot Script
Install the /etc/rc.d/init.d/mysql init script included in the blfs-bootscripts-20080816 package as the root
user to start the MySQL server during system boot-up.
make install-mysql
576
Beyond Linux® From Scratch - Version 6.3
Contents
Installed Programs: comp_err, innochecksum, msql2mysql, my_print_defaults, myisam_ftdump,
myisamchk, myisamlog, myisampack, mysql, mysql_client_test, mysql_config,
mysql_convert_table_format, mysql_create_system_tables, mysql_explain_log,
mysql_find_rows, mysql_fix_extensions, mysql_fix_privilege_tables,
mysql_install_db, mysql_secure_installation, mysql_setpermission, mysql_tableinfo,
mysql_tzinfo_to_sql, mysql_waitpid, mysql_zap, mysqlaccess, mysqladmin,
mysqlbinlog, mysqlbug, mysqlcheck, mysqld, mysqld_multi, mysqld_safe,
mysqldump, mysqldumpslow, mysqlhotcopy, mysqlimport, mysqlmanager,
mysqlshow, mysqltest, mysqltestmanager, mysqltestmanager-pwgen,
mysqltestmanagerc, perror, replace, resolve_stack_dump, and resolveip
Installed Libraries: libdbug.a, libheap.a, libmyisam.a, libmyisammrg.a, libmysqlclient.{so,a},
libmysqlclient_r.{so,a}, libmystrings.a, libmysys.a, and libvio.a
Installed Directories: /srv/mysql, /usr/include/mysql, /usr/lib/mysql, /usr/share/mysql, and /var/run/mysql
Short Descriptions
Descriptions of all the programs and libraries would be several pages long. Instead, consult the mysql.info
documentation or the on-line reference manual at http://dev.mysql.com/doc/refman/5.0/en/index.html.
The Perl DBI modules must be installed for some of the MySQL support programs to function properly.
577
Beyond Linux® From Scratch - Version 6.3
PostgreSQL-8.2.4
Introduction to PostgreSQL
PostgreSQL is an advanced object-relational database management system (ORDBMS), derived from the Berkeley
Postgres database management system.
There may be a more recent release available from the PostgreSQL home page. You can check http://www.postgresql.
org/ and probably use the existing BLFS instructions. Note that versions other than the one shown in the download
URLs have not been tested in a BLFS environment.
Package Information
• Download (HTTP): http://anduin.linuxfromscratch.org/sources/BLFS/6.3/p/postgresql-8.2.4.tar.bz2
• Download (FTP): ftp://anduin.linuxfromscratch.org/BLFS/6.3/p/postgresql-8.2.4.tar.bz2
• Download MD5 sum: af7ec100a33c41bfb8d87b5e0ec2f44a
• Download size: 12.5 MB
• Estimated disk space required: 165 MB (additional 118 MB to run the testsuite)
• Estimated build time: 1.4 SBU
PostgreSQL Dependencies
Optional
Python-2.5.2, Tcl-8.4.18, OpenSSL-0.9.8g, OpenLDAP-2.3.39, Linux-PAM-0.99.10.0, krb4, MIT Kerberos V5-1.6
or Heimdal-1.1, and Bonjour
Installation of PostgreSQL
Install PostgreSQL with the following commands:
sed -i "s|dsssl-stylesheets|& \\\\\n sgml/docbook/&-1.79|" \
configure &&
./configure --prefix=/usr --enable-thread-safety &&
make
To test the results, issue: make check.
Now, as the root user:
make install &&
chown -v root:root /usr/share/doc/postgresql/html/* &&
install -v -m755 -d /usr/share/doc/postgresql/{FAQ/html,TODO.detail} &&
install -v -m644 doc/TODO /usr/share/doc/postgresql &&
install -v -m644 doc/FAQ* /usr/share/doc/postgresql/FAQ &&
install -v -m644 doc/src/FAQ/* /usr/share/doc/postgresql/FAQ/html &&
install -v -m644 doc/TODO.detail/* \
/usr/share/doc/postgresql/TODO.detail
578
Beyond Linux® From Scratch - Version 6.3
Note
If you are upgrading an existing system and are going to install the new files over the old ones, then you
should back up your data, shut down the old server and follow the instructions in the official PostgreSQL
documentation.
Initialize a database cluster with the following commands issued by the root user:
install -v -m700 -d /srv/pgsql/data &&
groupadd -g 41 postgres &&
useradd -c "PostgreSQL Server" -g postgres -d /srv/pgsql/data \
-u 41 postgres &&
chown -v postgres /srv/pgsql/data &&
su - postgres -c '/usr/bin/initdb -D /srv/pgsql/data'
As the root user, start the database server with the following command:
su - postgres -c '/usr/bin/postmaster -D /srv/pgsql/data > \
/srv/pgsql/data/logfile 2>&1 &'
Still as user root, 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
sed -i "s|dsssl-stylesheets|...": This command puts an extra line in the configure script so that the BLFS installed
version of the DSSSL stylesheets are discovered.
--enable-thread-safety: This switch makes the client libraries thread-safe by allowing concurrent threads
in libpq and ECPG programs to safely control their private connection handles.
chown -R root:root /usr/share/doc/postgresql/html/*: This command corrects the improper ownership of
documentation files.
groupadd ...; useradd ...: These commands add an unprivileged user and group to run the database server.
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 and $PGDATA/postgresql.conf
579
Beyond Linux® From Scratch - Version 6.3
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/index.html.
Boot Script
Install the /etc/rc.d/init.d/postgresql init script included in the blfs-bootscripts-20080816 package.
make install-postgresql
Contents
Installed Programs: clusterdb, createdb, createlang, createuser, dropdb, droplang, dropuser, ecpg, initdb,
ipcclean, pg_config, pg_controldata, pg_ctl, pg_dump, pg_dumpall, pg_resetxlog,
pg_restore, pltcl_delmod, pltcl_listmod, pltcl_loadmod, postgres, postmaster, psql,
reindexdb, and vacuumdb
Installed Libraries: libecpg.{so,a}, libecpg_compat.{so,a}, libpgport.a, libpgtypes.{so,a}, libpq.{so,a},
and various charset modules.
Installed Directories: /srv/pgsql, /usr/include/libpq, /usr/include/postgresql, /usr/lib/postgresql,
/usr/share/doc/postgresql, and /usr/share/postgresql
Short Descriptions
clusterdb is a utility for reclustering tables in a PostgreSQL database.
createdb creates a new PostgreSQL database.
createlang defines a new PostgreSQL procedural language.
createuser defines a new PostgreSQL user account.
dropdb removes a PostgreSQL database.
droplang removes a PostgreSQL procedural language.
dropuser removes a PostgreSQL user account.
ecpg is the embedded SQL preprocessor.
initdb creates a new database cluster.
ipcclean removes shared memory and semaphores left over by an aborted database server.
pg_config retrieves PostgreSQL version information.
pg_controldata returns information initialized during initdb, such as the catalog version and server locale.
pg_ctl controls stopping and starting the database server.
pg_dump dumps database data and metadata into scripts which are used to recreate the database.
pg_dumpall recursively calls pg_dump for each database in a cluster.
pg_resetxlog clears the write-ahead log and optionally resets some fields in the pg_control file.
pg_restore creates databases from dump files created by pg_dump.
pltcl_delmod is a support script used to delete a module from a PL/Tcl table. The command requires the
Pgtcl package to be installed also.
580
Beyond Linux® From Scratch - Version 6.3
pltcl_listmod is a support script used to list the modules in a PL/Tcl table. The command requires the Pgtcl
package to be installed also.
pltcl_loadmod is a support script used to load a module into a PL/Tcl table. The command requires the Pgtcl
package to be installed also.
postgres is a single user database server, generally used for debugging.
postmaster is a multi-user database daemon.
psql is a console based database shell.
reindexdb is a utility for rebuilding indexes in a database.
vacuumdb compacts databases and generates statistics for the query analyzer.
581
Beyond Linux® From Scratch - Version 6.3
582
Beyond Linux® From Scratch - Version 6.3
DHCP-3.0.6
Introduction to DHCP
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.
Package Information
• Download (HTTP): http://gd.tuwien.ac.at/infosys/servers/isc/dhcp/dhcp-3.0.6.tar.gz
• Download (FTP): ftp://ftp.isc.org/isc/dhcp/dhcp-3.0.6.tar.gz
• Download MD5 sum: 724bad21ad8b638abadd5fcc07df1a0f
• Download size: 876 KB
• Estimated disk space required: 21 MB
• Estimated build time: 0.1 SBU
Additional Downloads
• Required Patch: http://www.linuxfromscratch.org/patches/blfs/6.3/dhcp-3.0.6-client_dns-1.patch
• Optional Patch: http://www.linuxfromscratch.org/patches/blfs/6.3/dhcp-3.0.6-iproute2-1.patch
DHCP Dependencies
Required
Net-tools-1.60 (you may omit net-tools by using the optional patch to utilize iproute2.
Kernel Configuration
You must have Packet Socket support (Device Drivers # Networking Support # Networking Options # Packet Socket)
compiled into the kernel.
Installation of DHCP
First fix a problem with always regenerating /etc/resolv.conf whether the DNS server has changed or not.
patch -Np1 -i ../dhcp-3.0.6-client_dns-1.patch
If you chose not to install net-tools, apply the iproute2 patch:
patch -Np1 -i ../dhcp-3.0.6-iproute2-1.patch
Install DHCP by running the following commands:
./configure &&
make
This package does not come with a test suite.
Now, as the root user:
make LIBDIR=/usr/lib INCDIR=/usr/include install
583
Beyond Linux® From Scratch - Version 6.3
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 and /etc/dhcpd.conf
Configuration Information
Information on configuring the DHCP client can be found in Chapter 13, Connecting to a Network.
Note that you only need 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.
Install the /etc/rc.d/init.d/dhcp init script included in the blfs-bootscripts-20080816 package.
make install-dhcp
The lease file must exist on startup. The following command will satisfy that requirement:
touch /var/state/dhcp/dhcpd.leases
The following 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;
Contents
Installed Programs: dhcpd, dhcrelay, dhclient, dhclient-script, and omshell
Installed Libraries: bdhcpctl.a, libomapi.a
Installed Directories: /var/state/dhcp, /usr/include/omapip, and /usr/include/isi-dhcp
Short Descriptions
dhclient is the implementation of the DHCP client.
584
Beyond Linux® From Scratch - Version 6.3
dhcpd implements Dynamic Host Configuration Protocol (DHCP) and Internet Bootstrap Protocol (BOOTP)
requests for network addresses.
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.
omshell provides an interactive way to connect to, query, and possibly change, the ISC DHCP Server's state
via OMAPI, the Object Management API.
585
Beyond Linux® From Scratch - Version 6.3
Leafnode-1.11.5
Introduction to Leafnode
Leafnode is an NNTP server designed for small sites to provide a local USENET spool.
Package Information
• Download (HTTP): http://downloads.sourceforge.net/leafnode/leafnode-1.11.5.tar.bz2
• Download (FTP): ftp://ftp.gwdg.de/pub/linux/mirrors/sunsite/system/news/transport/leafnode-1.11.5.tar.bz2
• Download MD5 sum: 88552c5cc91cb27146c8906b2d33289d
• Download size: 428 KB
• Estimated disk space required: 6.2 MB
• Estimated build time: 0.1 SBU
Leafnode Dependencies
Required
Recommended
Installation of Leafnode
As the root user, create the group and user news, if not present:
./configure --prefix=/usr \
--localstatedir=/var --sysconfdir=/etc/leafnode \
--with-lockfile=/var/lock/leafnode/fetchnews.lck &&
make
make install
Command Explanations
--localstatedir=/var: Change the default spool directory of /usr/var.
586
Beyond Linux® From Scratch - Version 6.3
--sysconfdir=/etc/leafnode: Leafnode reads its configuration data from a file called config which will
be created in /etc/leafnode to avoid any potential conflict with other packages.
make update: Run this command if you are upgrading from a very old version of Leafnode.
Configuring Leafnode
Config Files
/etc/leafnode/config, /etc/nntpserver, /etc/sysconfig/createfiles /etc/inetd.
conf or /etc/xinetd.conf or /etc/xinetd.d/nntp
Configuration Information
The /etc/leafnode/config file must be edited to reflect the name of the upstream NNTP provider. Copy the
example configuration file to /etc/leafnode/config and save the original for reference:
cp /etc/leafnode/config.example /etc/leafnode/config
Change the
server =
The /etc/nntpserver file must contain 127.0.0.1 to prevent news clients from reading news from the upstream
feed. Create this file using the following command:
EOF
The /etc/rc.d/init.d/cleanfs script, part of the LFS bootscript package, will remove the /var/lock/leafnode
directory during the system boot sequence. Install the following line in the /etc/sysconfig/createfiles
file to re-create the directory:
Leafnode may be configured to use inetd by adding an entry to the /etc/inetd.conf file with the following
command:
587
Beyond Linux® From Scratch - Version 6.3
If you use xinetd, the following command will create the Leafnode file as /etc/xinetd.d/nntp:
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
}
# End /etc/xinetd.d/nntp
EOF
Contents
Installed Programs: applyfilter, checkgroups, fetchnews, leafnode, leafnode-version, newsq, and texpire
Installed Libraries: None
Installed Directories: /etc/leafnode, /var/lock/leafnode, and /var/spool/news
Short Descriptions
applyfilter filters newsgroup articles according to regular expressions.
checkgroups inserts newsgroup titles into the newsgroup database.
fetchnews sends posted articles to and retrieves new articles from an upstream news server.
leafnode is an NNTP server daemon.
leafnode-version prints the Leafnode version.
newsq shows articles waiting to be sent upstream.
texpire expires old articles and unread groups.
588
Beyond Linux® From Scratch - Version 6.3
OpenLDAP-2.3.39
Introduction to OpenLDAP
The OpenLDAP package provides an open source implementation of the Lightweight Directory Access Protocol.
Package Information
• Download (HTTP): http://gd.tuwien.ac.at/infosys/network/OpenLDAP/openldap-stable/openldap-stable-
20071118.tgz
• Download (FTP): ftp://ftp.openldap.org/pub/OpenLDAP/openldap-stable/openldap-stable-20071118.tgz
• Download MD5 sum: e3fec2953c948f6990ccdc3af7bf7f18
• Download size: 3.6 MB
• Estimated disk space required: 94 MB
• Estimated build time: 1.2 SBU and approximately 30 minutes to run the tests (processor independent)
Note
The OpenLDAP stable releases are packaged without version numbers in the tarball names. You can
see the relationship between the version number and name of the tarball at http://www.openldap.
org/software/download/.
OpenLDAP Dependencies
Required
Recommended
Optional
TCP Wrapper-7.6, unixODBC-2.2.12, GMP-4.2.2, OpenSLP, Pth-2.0.7, and one of MySQL-5.0.41, Oracle, or
PostgreSQL-8.2.4
589
Beyond Linux® From Scratch - Version 6.3
Installation of OpenLDAP
Install OpenLDAP by running the following commands:
./configure --prefix=/usr \
--libexecdir=/usr/sbin \
--sysconfdir=/etc \
--localstatedir=/srv/ldap \
--disable-debug \
--enable-dynamic \
--enable-crypt \
--enable-modules \
--enable-rlookups \
--enable-backends \
--enable-overlays \
--disable-sql &&
make depend &&
make
To test the results, issue: make test. If you've enabled tcp_wrappers, ensure you add 127.0.0.1 to the slapd line in
the /etc/hosts.allow file if you have a restrictive /etc/hosts.deny file.
Now, as the root user:
make install &&
Command Explanations
--libexecdir=/usr/sbin: Installs the slapd and slurpd daemon programs in /usr/sbin instead of
/usr/libexec.
--sysconfdir=/etc: Sets the configuration file directory to avoid the default of /usr/etc.
--localstatedir=/srv/ldap: Sets the directory to use for the LDAP directory database, replication logs and
run-time variable data.
--disable-debug: Disable debugging code.
--enable-dynamic: This forces the OpenLDAP libraries to be dynamically linked to the executable programs.
--enable-crypt: Enables crypt(3) passwords.
--enable-modules: Enables dynamic module support.
--enable-rlookups: This parameter enables reverse lookups of client hostnames.
590
Beyond Linux® From Scratch - Version 6.3
Note
You can run ./configure --help to see if there are other parameters you can pass to the configure command
to enable other options or dependency packages.
Configuring OpenLDAP
Config Files
/etc/openldap/*
Configuration Information
Configuring the slapd and slurpd servers can be complex. Securing the LDAP directory, especially if you are
storing non-public data such as password databases, can also be a challenging task. You'll need to modify the
/etc/openldap/slapd.conf and /etc/openldap/ldap.conf files to set up OpenLDAP for your
particular needs.
Resources to assist you with topics such as choosing a directory configuration, backend and database definitions,
access control settings, running as a user other than root and setting a chroot environment include:
• The slapd man page
• The slapd.conf man page
• The OpenLDAP 2.3 Administrator's Guide (also installed locally in /usr/share/doc/openldap-2.3.
39/guide/admin)
• Documents located at http://www.openldap.org/pub/
Utilizing GDBM
To utilize GDBM as the database backend, the “database” entry in /etc/openldap/slapd.conf must
be changed from “bdb” to “ldbm”. You can use both by creating an additional database section in
/etc/openldap/slapd.conf.
Boot Script
To automate the startup of the LDAP server at system bootup, install the /etc/rc.d/init.d/openldap init
script included in the blfs-bootscripts-20080816 package using the following command:
make install-openldap1
591
Beyond Linux® From Scratch - Version 6.3
Note: The init script you just installed only starts the slapd daemon. If you wish to also start the slurpd daemon at
system startup, install a modified version of the script using this command:
make install-openldap2
Note
The init script starts the daemons without any parameters. You'll need to modify the script to include the
parameters needed for your specific configuration. See the slapd and slurpd man pages for parameter
information.
#
dn:
namingContexts: dc=my-domain,dc=com
# search result
search: 2
result: 0 Success
# numResponses: 2
# numEntries: 1
Contents
Installed Programs: ldapadd, ldapcompare, ldapdelete, ldapmodify, ldapmodrdn, ldappasswd, ldapsearch,
ldapwhoami, slapadd, slapcat, slapd, slapdn, slapindex, slappasswd, slaptest, and slurpd
Installed Libraries: liblber.{so,a}, libldap.{so,a}, and libldap_r.{so,a}
Installed Directories: /etc/openldap, /srv/ldap, and /usr/share/openldap
Short Descriptions
ldapadd opens a connection to an LDAP server, binds and adds entries.
592
Beyond Linux® From Scratch - Version 6.3
ldapcompare opens a connection to an LDAP server, binds and performs a compare using specified
parameters.
ldapdelete opens a connection to an LDAP server, binds and deletes one or more entries.
ldapmodify opens a connection to an LDAP server, binds and modifies entries.
ldapmodrdn opens a connection to an LDAP server, binds and modifies the RDN of entries.
ldappasswd is a tool to set the password of an LDAP user.
ldapsearch opens a connection to an LDAP server, binds and performs a search using specified
parameters.
ldapwhoami opens a connection to an LDAP server, binds and displays whoami information.
slapadd is used to add entries specified in LDAP Directory Interchange Format (LDIF) to an LDAP
database.
slapcat is used to generate an LDAP LDIF output based upon the contents of a slapd database.
slapd is the stand-alone LDAP server.
slapdn checks a list of string-represented DNs based on schema syntax.
slapindex is used to regenerate slapd indices based upon the current contents of a database.
slappasswd is an OpenLDAP password utility.
slaptest checks the sanity of the slapd.conf file.
slurpd is the stand-alone LDAP replication server.
liblber.{so,a} is a set of lightweight Basic Encoding Rules routines. These routines are used by the
LDAP library routines to encode and decode LDAP protocol elements using the (slightly
simplified) Basic Encoding Rules defined by LDAP. They are not normally used directly
by an LDAP application program except in the handling of controls and extended
operations.
libldap.{so,a} supports the LDAP programs and provide functionality for other programs interacting with
LDAP.
libldap_r.{so,a} contains the functions required by the LDAP programs to produce the results from LDAP
requests.
593
Beyond Linux® From Scratch - Version 6.3
rsync-3.0.2
Introduction to rsync
The rsync package contains the rsync utility. This is useful for synchronizing large file archives over a network.
Package Information
• Download (HTTP): http://anduin.linuxfromscratch.org/sources/BLFS/6.3/r/rsync-3.0.2.tar.gz
•
• Download MD5 sum: fd4c5d77d8cb7bb86ab209076fa214d9
• Download size: 765 KB
• Estimated disk space required: 35 MB (includes installing all documentation)
• Estimated build time: 0.2 SBU
rsync Dependencies
Optional
popt-1.10.4, libattr, and libacl
Installation of rsync
For security reasons, running the rsync server as an unprivileged user and group is encouraged. If you intend to run
rsync as a daemon, create the rsyncd user and group with the following commands issued by the root user:
groupadd -g 48 rsyncd &&
useradd -c "rsyncd Daemon" -d /home/rsync -g rsyncd \
-s /bin/false -u 48 rsyncd
Install rsync by running the following commands:
./configure --prefix=/usr &&
make
If you have Doxygen-1.5.2 installed and wish to build HTML API documentation, issue doxygen.
If you have DocBook-utils-0.6.14 installed and wish to build the user documentation, issue any or all of the following
commands:
pushd doc &&
docbook2pdf rsync.sgml &&
docbook2ps rsync.sgml &&
docbook2dvi rsync.sgml &&
docbook2txt rsync.sgml &&
docbook2html --nochunks rsync.sgml &&
popd
To test the results, issue: make check.
Now, as the root user:
make install
594
Beyond Linux® From Scratch - Version 6.3
If you built the documentation, install it using the following commands as the root user:
install -v -m755 -d /usr/share/doc/rsync-3.0.2/api &&
install -v -m644 dox/html/* /usr/share/doc/rsync-3.0.2/api &&
install -v -m644 doc/rsync.* /usr/share/doc/rsync-3.0.2
Configuring rsync
Config Files
/etc/rsyncd.conf
Configuration Information
For client access to remote files, you may need to install the OpenSSH-4.7p1 package to connect to the remote server.
This is a simple download-only configuration to set up running rsync as a server. See the rsyncd.conf(5) man-page
for additional options (i.e., user authentication).
cat > /etc/rsyncd.conf << "EOF"
# This is a basic rsync configuration file
# It exports a single module without user authentication.
[localhost]
path = /home/rsync
comment = Default rsync module
read only = yes
list = yes
uid = rsyncd
gid = rsyncd
EOF
You can find additional configuration information and general documentation about rsync at http://rsync.samba.
org/documentation.html.
Boot Script
Note that you only want to start the rsync server if you want to provide an rsync archive on your local machine. You
don't need this script to run the rsync client.
Install the /etc/rc.d/init.d/rsyncd init script included in the blfs-bootscripts-20080816 package.
make install-rsyncd
Contents
Installed Program: rsync
Installed Libraries: None
Installed Directories: Optionally, /usr/share/doc/rsync-3.0.2
595
Beyond Linux® From Scratch - Version 6.3
Short Descriptions
rsync is a replacement for rcp (and scp) that has many more features. It uses the “rsync algorithm” which provides
a very fast method of syncing remote files. It does this by sending just the differences in the files across the
link, without requiring that both sets of files are present at one end of the link beforehand.
596
Beyond Linux® From Scratch - Version 6.3
Required
1. Create a Repository.
Create a new CVS repository with the following commands:
cd <sourcedir> &&
cvs import -m "<repository test>" <cvstest> <vendortag> <releasetag>
cvs co cvstest
597
Beyond Linux® From Scratch - Version 6.3
Note
Replace <servername> with the IP address or host name of the CVS repository machine. You will be
prompted for the user's shell account password before CVS checkout can continue.
service cvspserver
{
port = 2401
socket_type = stream
protocol = tcp
wait = no
user = root
passenv = PATH
server = /usr/bin/cvs
server_args = -f --allow-root=/srv/cvsroot pserver
}
# End /etc/xinetd.d/cvspserver
EOF
Issue a /etc/rc.d/init.d/xinetd reload 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>:/srv/cvsroot co cvstest
598
Beyond Linux® From Scratch - Version 6.3
Note
Replace <servername> with the IP address or hostname of the CVS server.
Command Explanations
mkdir /srv/cvsroot: Create the CVS repository directory.
chmod 1777 /srv/cvsroot: Set sticky bit permissions for CVSROOT.
export CVSROOT=/srv/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 -u 98): Check for an existing anonymous user
and create one if not found.
echo anonymous: > /srv/cvsroot/CVSROOT/passwd: Add the anonymous user to the CVS passwd file, which
is unused for anything else in this configuration.
echo anonymous > /srv/cvsroot/CVSROOT/readers: Add the anonymous user to the CVS readers file, a list of
users who have read only access to the repository.
Contents
Installed Programs: None
Installed Libraries: None
Installed Directories: /srv/cvsroot
599
Beyond Linux® From Scratch - Version 6.3
Required
If you plan to have multiple repositories, you should have a group dedicated to each repository for ease of
administration. Create the svntest group for the test repository and add the svn user to that group with the
following commands:
Additionally you should set umask 002 while working with a repository so that all new files will be writable by
owner and group. This is made mandatory by creating a wrapper script for svn and svnserve:
600
Beyond Linux® From Scratch - Version 6.3
Note
If you use Apache for working with the repository over HTTP, even for anonymous access, you should
wrap /usr/sbin/httpd in a similar script.
Now that the repository is created, it should be populated with with something useful. You'll need to have a predefined
directory layout set up exactly as you want your repository to look. For example, here is a sample BLFS layout setup
with a root of svntest/. You'll need to setup a directory tree similar to the following:
Once you've created your directory layout as shown above, you are ready to do the initial import:
Now change owner and group information on the repository, and add an unprivileged user to the svn and svntest
groups:
svntest is the group assigned to the svntest repository. As mentioned earlier, this eases administration of multiple
repositories when using OpenSSH for authentication. Going forward, you'll need to add your unprivileged user, and
any additional users that you wish to have write access to the repository, to the svn and svntest groups.
601
Beyond Linux® From Scratch - Version 6.3
In addition, you'll notice that the new repository's db directory is set-groupID. If the reasoning is not immediately
obvious, when using any external authentication method (such as ssh), the sticky bit is set so that all new files will be
owned by the user, but group of svntest. Anyone in the svntest group can create files, but still give the entire
group write access to those files. This avoids locking out other users from the repository.
Now, return to an unprivileged user account, and take a look at the new repository using svnlook:
Note
You may need to log out and back in again to refresh your group memberships. 'su <username>' should
work as well.
Access configuration needs to be done for each repository. Create the svnserve.conf file for the svntest repository
using the following commands:
cp /srv/svn/repositories/svntest/conf/svnserve.conf \
/srv/svn/repositories/svntest/conf/svnserve.conf.default &&
cat > /srv/svn/repositories/svntest/conf/svnserve.conf << "EOF"
[general]
anon-access = read
auth-access = write
EOF
There is not a lot to the configuration file at all. You'll notice that only the general section is required. Take a look at
the svnserve.conf.default file for information on using svnserve's built-in authentication method.
Note
If you do not wish to provide anonymous access to your svn repositories or use svnserve's built-in
authentication, you do not need to run svnserve.
If you use inetd, add a line to /etc/inetd.conf using the following commands:
602
Beyond Linux® From Scratch - Version 6.3
If you use xinetd, the following command will create the Subversion server file as /etc/xinetd.d/svn:
service svn
{
port = 3690
socket_type = stream
protocol = tcp
wait = no
user = svn
server = /usr/bin/svnserve
server_args = -i -r /srv/svn/repositories
}
# End /etc/xinetd.d/svn
EOF
Finally, if you wish to simply start the server at startup, install the svn bootscript included in the
blfs-bootscripts-20080816 package.
make install-svn
603
Beyond Linux® From Scratch - Version 6.3
Introduction to Xorg-7.2
Xorg is a freely redistributable, open-source implementation of the X Window System. This system 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).
Given the number of packages available, deciding which packages you need to install for your particular setup may
seem a bit overwhelming at first. Take a look at this page and this thread to get an idea of what you will need. If
you are unsure, you should install all packages at the cost of extra disk space. To see which packages have changed
between releases of Xorg, see the upstream update and deprecated directories.
Note
Even if you intend to download only the necessary packages, you should download the wget file lists. The
list of files are ordered by dependency, and the package versions listed in the files are known to work well
with each other. Further, the wget file lists contain comments for specific packages that are deprecated or
are not recommended to install. Newer packages are likely intended for the next release of Xorg and have
already proved to be incompatible with current versions of software installed in BLFS. The installed size of
Xorg can be reduced considerably by installing only the packages that you will need and use, however, the
BLFS book cannot account for all dependencies and build options for the individual Xorg packages. The
instructions assume that all packages have been built. A wiki page containing dependency information is
under development. You are encouraged to add to these pages if you discover additional information that
may be helpful to other users who selectively install individual packages.
605
Beyond Linux® From Scratch - Version 6.3
Additionally, because of the large number of repetitive commands, you are encouraged to partially automate the build.
The commands below (or similar) can be entered at the command line to compile each group of packages (proto,
utils, libs, apps, drivers). The wiki links on each group's page contain specific commands to compile the entire group
of packages, based on the content of the wget files.
bash -e #exit on all errors
section=proto
version=7.2
mkdir $section
cd $section
# build packages
for package in $(grep -v '^#' ../${section}-${version}.wget)
do
packagedir=$(echo $package | sed 's/.tar.bz2//')
tar -xf $package
cd $packagedir
./configure $XORG_CONFIG
make
make install
cd ..
rm -rf $packagedir
rm -f $package
done 2>&1 | tee -a ../xorg-${section}-compile.log #log the entire loop
The above shell will exit immediately on error. If it runs to completion, you should manually exit the shell before
continuing on to the next set of instructions.
606
Beyond Linux® From Scratch - Version 6.3
Throughout these instructions, you will use the following configure switches for all of the packages. Create the
XORG_CONFIG variable to use for this parameter substitution:
Note
Make sure that you also add these variables to your personal or system-wide profile as they are used
throughout this book. See The Bash Shell Startup Files for more information.
If you've decided to use an alternate prefix, be sure to add $XORG_PREFIX/bin to your PATH environment
variable and $XORG_PREFIX/lib/pkgconfig to your PKG_CONFIG_PATH variable. For detailed
instructions, see The Bash Shell Startup Files. You should also add $XORG_PREFIX/lib to the /etc/ld.so.
conf file and $XORG_PREFIX/share/man as a MANDATORY_MANPATH in /etc/man_db.conf.
Packages in Xorg store their configuration files in $XORG_PREFIX/lib/X11 by default. This is strictly against
FHS guidelines. To simplify installation, create the proper installation directories in /etc/X11 and create symlinks
in $XORG_PREFIX/lib/X11 to satisfy the installation. Execute the following commands as the root user:
install -v -m755 -d \
/etc/X11/{app-defaults,fs,twm,xdm,xinit,xkb,xsm} &&
for link in \
/etc/X11/{app-defaults,fs,twm,xdm,xinit,xkb,xsm}
do
ln -sv $link $XORG_PREFIX/lib/X11
done
607
Beyond Linux® From Scratch - Version 6.3
Package Information
• Download (HTTP): http://xorg.freedesktop.org/releases/individual/proto/
• Download (FTP): ftp://ftp.x.org/pub/individual/proto/
• Download MD5 sum: http://anduin.linuxfromscratch.org/files/BLFS/6.3/xorg/proto-7.2.md5
• Download size: 1.4 MB
• Estimated disk space required: 4.0 MB
• Estimated build time: 0.2 SBU
Additional Downloads
• Required download list: http://anduin.linuxfromscratch.org/files/BLFS/6.3/xorg/proto-7.2.wget
./configure $XORG_CONFIG
make install
Contents
Installed Programs: None
Installed Libraries: None
Installed Directories: The following subdirectories of $XORG_PREFIX/: include/X11, include/GL, and
lib/pkgconfig
608
Beyond Linux® From Scratch - Version 6.3
Xorg Utilities
Introduction to Xorg Utilities
The Xorg utility packages provide needed utilities, not for the Xorg installation itself, but for other applications that
make use of legacy X11R6 installation methods.
Package Information
• Download (HTTP): http://xorg.freedesktop.org/releases/individual/util/
• Download (FTP): ftp://ftp.x.org/pub/individual/util/
• Download MD5 sum: http://anduin.linuxfromscratch.org/files/BLFS/6.3/xorg/util-7.2.md5
• Download size: 664 KB
• Estimated disk space required: 5.2 MB
• Estimated build time: 0.1 SBU
Additional Downloads
• Required download list: http://anduin.linuxfromscratch.org/files/BLFS/6.3/xorg/util-7.2.wget
Required
make install
609
Beyond Linux® From Scratch - Version 6.3
Contents
Installed Programs: ccmakedep, cleanlinks, gccmakedep, imake, lndir, makedepend, makeg, mergelib,
mkdirhier, mkhtmlindex, revpath, xmkmf
Installed Libraries: None
Installed Directories: The following subdirectories of $XORG_PREFIX/: bin, lib/X11/config, share/aclocal,
and share/man
Short Descriptions
ccmakedep creates dependencies in makefiles using a C compiler.
cleanlinks removes dangling symbolic links and empty directories.
gccmakedep creates dependencies in makefiles using gcc -M.
imake is a C preprocessor interface to the make utility.
lndir creates a shadow directory of symbolic links to another directory tree.
makedepend creates dependencies in makefiles.
makeg makes a debuggable executable.
mergelib merges one library into another.
mkdirhier makes a directory hierarchy.
mkhtmlindex generates index files for HTML man pages.
revpath generates a relative path that can be used to undo a changedirectory.
xmkmf creates a Makefile from an Imakefile.
610
Beyond Linux® From Scratch - Version 6.3
libXau-1.0.3
Introduction to libXau
The libXau package contains a library implementing the X11 Authorization Protocol. This is useful for restricting
client access to the display.
Package Information
• Download (HTTP): http://xorg.freedesktop.org/releases/individual/lib/libXau-1.0.3.tar.bz2
• Download (FTP): ftp://ftp.x.org/pub/individual/lib/libXau-1.0.3.tar.bz2
• Download MD5 sum: 75a9f2b85cd1617b5ca98c9095323853
• Download size: 224 KB
• Estimated disk space required: 2.0 MB
• Estimated build time: less than 0.1 SBU
libXau Dependencies
Required
Xorg Protocol Headers
Installation of libXau
Install libXau by running the following commands:
make install
Contents
Installed Programs: None
Installed Library: libXau.{so,a}
Installed Directories: None
Short Descriptions
libXau.{so,a} is the library of X authority database routines.
611
Beyond Linux® From Scratch - Version 6.3
libXdmcp-1.0.2
Introduction to libXdmcp
The libXdmcp package contains a library implementing the X Display Manager Control Protocol. This is useful for
allowing clients to interact with the X Display Manager.
Package Information
• Download (HTTP): http://xorg.freedesktop.org/releases/individual/lib/libXdmcp-1.0.2.tar.bz2
• Download (FTP): ftp://ftp.x.org/pub/individual/lib/libXdmcp-1.0.2.tar.bz2
• Download MD5 sum: 10facf2bc7cbd5e5c1a698b8a210a582
• Download size: 216 KB
• Estimated disk space required: 2.5 MB
• Estimated build time: 0.1 SBU
libXdmcp Dependencies
Required
Xorg Protocol Headers
Installation of libXdmcp
Install libXdmcp by running the following commands:
make install
Contents
Installed Programs: None
Installed Library: libXdmcp.{so,a}
Installed Directories: None
Short Descriptions
libXdmcp.{so,a} is the X Display Manager Control Protocol library.
612
Beyond Linux® From Scratch - Version 6.3
xcb-proto-1.0
Introduction to xcb-proto
The xcb-proto package provides the XML-XCB protocol descriptions that libxcb uses to generate the majority of
its code and API.
Package Information
• Download (HTTP): http://xcb.freedesktop.org/dist/xcb-proto-1.0.tar.bz2
•
• Download MD5 sum: d31407eaae7e52d100645217767a41aa
• Download size: 69.4 KB
• Estimated disk space required: 788 KB
• Estimated build time: less than 0.1 SBU
xcb-proto Dependencies
Optional (required to run the tests)
libxml2-2.6.31
Installation of xcb-proto
Install xcb-proto by running the following commands:
Contents
Installed Programs: None
Installed Libraries: None
Installed Directory: $XORG_PREFIX/share/xcb
613
Beyond Linux® From Scratch - Version 6.3
libxcb-1.0
Introduction to libxcb
The libxcb package provides an interface to the X Window System protocol, which replaces the current Xlib interface.
Xlib can also use XCB as a transport layer, allowing software to make requests and receive responses with both.
Package Information
• Download (HTTP): http://xcb.freedesktop.org/dist/libxcb-1.0.tar.bz2
•
• Download MD5 sum: 0eb951fd0fa9542dbe4fc3530b81a3b6
• Download size: 410 KB
• Estimated disk space required: 15.0 MB
• Estimated build time: 0.4 SBU
Additional Downloads
• Required patch to workaround X11 locking bugs in other applications: http://www.linuxfromscratch.org/patches/
blfs/6.3/libxcb-1.0-sloppy_lock-1.patch
libxcb Dependencies
Required
Optional
Doxygen-1.5.2 (to generate API documentation) and Check (to run tests)
Installation of libxcb
Install libxcb by running the following commands:
make install
Command Explanations
--docdir='${datadir}'/doc/libxcb-1.0: This parameter ensures the libxcb documentation is installed
to a versioned directory.
--without-doxygen: This switch can be used to disable the API documentation if Doxygen-1.5.2 is installed.
614
Beyond Linux® From Scratch - Version 6.3
Configuring libxcb
Configuration Information
The libxcb developers have decided to be strict in asserting locking bugs in X11 applications. This is different than
the behavior of libX11 when used on its own, and it will cause some applications to crash when they previously did
not. When an application has these types of bugs, it will crash with the following assertion:
The patch applied above to libxcb adds an environment variable, LIBXCB_ALLOW_SLOPPY_LOCK, to be set which
will allow the locking bugs to not crash the application. It is a workaround that is known to be needed in a few cases.
If it is found that these bugs affect an application in use, add the following to your system or personal profile:
export LIBXCB_ALLOW_SLOPPY_LOCK=1
Contents
Installed Programs: None
Installed Libraries: libxcb.{so,a} and libxcb-*.{so,a}
Installed Directories: $XORG_PREFIX/include/xcb and $XORG_PREFIX/share/doc/libxcb-1.0
Short Descriptions
libxcb.{so,a} is an interface to the X Window System protocol.
615
Beyond Linux® From Scratch - Version 6.3
Xorg Libraries
Introduction to Xorg Libraries
The Xorg libraries provide library routines that are used within all X Window applications.
Package Information
• Download (HTTP): http://xorg.freedesktop.org/releases/individual/lib/
• Download (FTP): ftp://ftp.x.org/pub/individual/lib/
• Download MD5 sum: http://anduin.linuxfromscratch.org/files/BLFS/6.3/xorg/lib-7.2.md5
• Download size: 11.4 MB
• Estimated disk space required: 186 MB
• Estimated build time: 6.6 SBU
Additional Downloads
• Required download list: http://anduin.linuxfromscratch.org/files/BLFS/6.3/xorg/lib-7.2.wget
• Required patch: http://www.linuxfromscratch.org/patches/blfs/6.3/libX11-1.1.2-badargs-1.patch
• Required patch: http://www.linuxfromscratch.org/patches/blfs/6.3/libXfont-1.2.8-pcf_parser-1.patch
Required
Optional
libxcb-1.0
616
Beyond Linux® From Scratch - Version 6.3
Command Explanations
--without-xcb: By default, libX11 will use libxcb-1.0 for its transport layer. This parameter is necessary in the
./configure command if libxcb-1.0 is not installed.
patch -Np1 -i ../libX11-1.1.2-badargs-1.patch: This patch fixes an error with argument ordering in one of the
functions in libX11.
patch -Np1 -i ../libXfont-1.2.8-pcf_parser-1.patch: This patch fixes a security vulnerability in the PCF font parser
in libXfont.
sed -i 's/(ft_isdigit/(isdigit/' src/FreeType/fttools.c: In newer versions of Freetype2, the ft_isdigit macro has been
removed. This command replaces it with the compatible isdigit macro.
617
Beyond Linux® From Scratch - Version 6.3
Contents
Installed Programs: cxpm, makestrs, sxpm, xft-config
Installed Libraries: libAppleWM.{so,a}, libdmx.{so,a}, libfontenc.{so,a}, libFS.{so,a},
libICE.{so,a}, liboldX.{so,a}, libSM.{so,a}, libWindowsWM.{so,a},
libX11.{so,a}, libXaw6.{so,a}, libXaw7.{so,a}, libXaw8.{so,a}, libXaw.{so,a},
libXcomposite.{so,a}, libXcursor.{so,a}, libXdamage.{so,a}, libXevie.{so,a},
libXext.{so,a}, libXfixes.{so,a}, libXfontcache.{so,a}, libXfont.{so,a}, libXft.{so,a},
libXinerama.{so,a}, libXi.{so,a}, libxkbfile.{so,a}, libxkbui.{so,a}, libXmu.{so,a},
libXmuu.{so,a}, libXpm.{so,a}, libXprintAppUtil.{so,a}, libXprintUtil.{so,a},
libXp.{so,a}, libXrandr.{so,a}, libXrender.{so,a}, libXRes.{so,a}, libXss.{so,a},
libXTrap.{so,a}, libXt.{so,a}, libXtst.{so,a}, libXvMC.{so,a}, libXvMCW.{so,a},
libXv.{so,a}, libXxf86dga.{so,a}, libXxf86misc.{so,a}, and libXxf86vm.{so,a}
Short Descriptions
cxpm checks the format of an XPM file.
makestrs makes string table C source and header(s).
sxpm shows an XPM file and/or converts XPM 1 or 2 files to XPM 3.
xft-config reports Xft version, compiler, linker, and/or installation directory information.
libAppleWM.{so,a} is the Apple rootless window management extension.
libdmx.{so,a} is the X Window System DMX (Distributed Multihead X) extension library.
libfontenc.{so,a} is the X11 font encoding library.
libFS.{so,a} is the library interface to the X Font Server.
libICE.{so,a} is the X Inter Client Exchange Library.
liboldX.{so,a} is the interface library to X10 routines.
libSM.{so,a} is the X Session Management Library.
libWindowsWM.{so,a} is the WindowsWM Library based on AppleWM.
libX11.{so,a} is the Xlib Library.
libXaw6.{so,a} is the X Athena Widgets Library, version 6.
libXaw7.{so,a} is the X Athena Widgets Library, version 7.
libXaw8.{so,a} is the X Athena Widgets Library, version 8.
libXaw.{so,a} are symbolic links to the current X Athena Widgets Library, version 8.
libXcomposite.{so,a} is the X Composite Library.
libXcursor.{so,a} is the X Cursor management library.
libXdamage.{so,a} is the X Damage Library.
libXevie.{so,a} is the X Event Interception Extension (XEvIE) Library.
libXext.{so,a} is the Misc X Extension Library.
libXfixes.{so,a} a library to provide augmented versions of core protocol requests.
libXfontcache.{so,a} is the X-TrueType font cache extension client library.
libXfont.{so,a} is the X font library.
618
Beyond Linux® From Scratch - Version 6.3
619
Beyond Linux® From Scratch - Version 6.3
Xbitmaps-1.0.1
Introduction to Xbitmaps
Xbitmaps provides static graphics needed by Xorg applications to draw screen elements.
Package Information
• Download (HTTP): http://xorg.freedesktop.org/releases/individual/data/xbitmaps-1.0.1.tar.bz2
• Download (FTP): ftp://ftp.x.org/pub/individual/data/xbitmaps-1.0.1.tar.bz2
• Download MD5 sum: b28a9840cde3c38d7c09716372fea257
• Download size: 54 KB
• Estimated disk space required: 1.7 MB
• Estimated build time: less than 0.1 SBU
Xbitmaps Dependencies
Required
Xorg Utilities
Installation of Xbitmaps
First, configure the Xbitmaps package by running the following command:
./configure $XORG_CONFIG
make install
Contents
Installed Programs: None
Installed Libraries: None
Installed Directory: $XORG_PREFIX/include/X11/bitmaps
620
Beyond Linux® From Scratch - Version 6.3
Xorg Applications
Introduction to Xorg Applications
The Xorg applications provide the expected applications available in previous X Window implementations.
Package Information
• Download (HTTP): http://xorg.freedesktop.org/releases/individual/app/
• Download (FTP): ftp://ftp.x.org/pub/individual/app/
• Download MD5 sum: http://anduin.linuxfromscratch.org/files/BLFS/6.3/xorg/app-7.2.md5
• Download size: 9.0 MB
• Estimated disk space required: 30.7 MB
• Estimated build time: 2.9 SBU
Additional Downloads
• Required download list: http://anduin.linuxfromscratch.org/files/BLFS/6.3/xorg/app-7.2.wget
Required
Recommended
MesaLib-6.5.2
Optional
621
Beyond Linux® From Scratch - Version 6.3
Contents
Installed Programs: appres, atobm, bdftopcf, beforelight, bitmap, bmtoa, dga, editres, fontname.sh,
fontprop.sh, fonttosfnt, fslsfonts, fstobdf, iceauth, ico, listres, mkcfm, mkfontdir,
mkfontscale, oclock, rstart, rstartd, sessreg, setxkbmap, showfont, showrgb, smproxy,
startx, twm, viewres, x11perf, x11perfcomp, xauth, xauth_switch_to_sun-des-1, xbiff,
xcalc, xclipboard, xclock, xcmsdb, xconsole, xcursorgen, xcutsel, xdbedizzy, xditview,
xdm, xdmshell, xdpr, xdpyinfo, xdriinfo, xedit, xev, xeyes, xfd, xfontsel, xfs,
xfsinfo, xgamma, xgc, xhost, xinit, xkbbell, xkbcomp, xkbevd, xkbprint, xkbvleds,
xkbwatch, xkill, xload, xlogo, xlsatoms, xlsclients, xlsfonts, xmag, xman, xmessage,
xmh, xmodmap, xmore, xon, xphelloworld, xplsprinters, xpr, xprehashprinterlist,
xprop, xpsimplehelloworld, xpxthelloworld, xrandr, xrdb, xrefresh, xset, xsetmode,
xsetpointer, xsetroot, xsm, xstdcmap, xtrapchar, xtrapin, xtrapinfo, xtrapout,
xtrapproto, xtrapreset, xtrapstats, xvidtune, xvinfo, xwd, xwininfo, and xwud
Short Descriptions
appres lists the X application resource database.
atobm is a bitmap converter utility for the X Window System.
bdftopcf converts an X font from Bitmap Distribution Format to Portable Compiled
Format.
beforelight is a screensaver.
bitmap is a bitmap editor utility for the X Window System.
bmtoa is a bitmap converter utility for the X Window System.
dga is a test program for the XFree86-DGA extension.
editres is a dynamic resource editor for X Toolkit applications.
fontname.sh is a script used to generate the FONT properties.
fontprop.sh is a script used to generate the various XLFD font properties given an
XLFD-style font name.
fonttosfnt wraps a bitmap font in a sfnt (TrueType) wrapper.
fslsfonts lists fonts served by X font server.
fstobdf generates a BDF font from X font server.
iceauth is the ICE authority file utility.
ico animates an icosahedron or other polyhedron.
listres lists resources in widgets.
mkcfm creates summaries of font metric files in CID font directories.
mkfontdir creates an index of X font files in a directory.
mkfontscale creates an index of scalable font files for X.
oclock is a round X clock.
622
Beyond Linux® From Scratch - Version 6.3
623
Beyond Linux® From Scratch - Version 6.3
624
Beyond Linux® From Scratch - Version 6.3
625
Beyond Linux® From Scratch - Version 6.3
xcursor-themes-1.0.1
Introduction to xcursor-themes
The xcursor-themes package contains the redglass and whiteglass animated cursor themes.
Package Information
• Download (HTTP): http://xorg.freedesktop.org/releases/individual/data/xcursor-themes-1.0.1.tar.bz2
• Download (FTP): ftp://ftp.x.org/pub/individual/lib/xcursor-themes-1.0.1.tar.bz2
• Download MD5 sum: 014bad415e64c49994679cdb71a97e37
• Download size: 2.1 MB
• Estimated disk space required: 19.5 MB
• Estimated build time: 0.1 SBU
xcursor-themes Dependencies
Required
Xorg Applications
Installation of xcursor-themes
Install xcursor-themes by running the following commands:
make install
Contents
Installed Programs: None
Installed Library: None
Installed Directories: $XORG_PREFIX/icons
626
Beyond Linux® From Scratch - Version 6.3
Xorg Fonts
Introduction to Xorg Fonts
The Xorg font packages provide needed fonts to the Xorg applications.
Package Information
• Download (HTTP): http://xorg.freedesktop.org/releases/individual/font/
• Download (FTP): ftp://ftp.x.org/pub/individual/font/
• Download MD5 sum: http://anduin.linuxfromscratch.org/files/BLFS/6.3/xorg/font-7.2.md5
• Download size: 13.0 MB
• Estimated disk space required: 100 MB
• Estimated build time: 2.0 SBU
Additional Downloads
• Required download list: http://anduin.linuxfromscratch.org/files/BLFS/6.3/xorg/font-7.2.wget
Required
Xorg Applications and xcursor-themes-1.0.1
627
Beyond Linux® From Scratch - Version 6.3
Contents
Installed Programs: bdftruncate and ucs2any
Installed Libraries: None
Installed Directories: $XORG_PREFIX/fonts and /usr/share/fonts/X11-{TTF,OTF}
Short Descriptions
bdftruncate generates a truncated BDF font from an ISO 10646-1-encoded BDF font.
ucs2any generates BDF fonts containing subsets of ISO 10646-1 codepoints.
628
Beyond Linux® From Scratch - Version 6.3
XKeyboardConfig-1.2
Introduction to XKeyboardConfig
The XKeyboardConfig package contains the keyboard configuration database for the X Window System.
Package Information
• Download (HTTP): http://xlibs.freedesktop.org/xkbdesc/xkeyboard-config-1.2.tar.bz2
•
• Download MD5 sum: 667c582a54d5715d24110c20e8c4be38
• Download size: 573 KB
• Estimated disk space required: 9.2 MB
• Estimated build time: less than 0.1 SBU
XKeyboardConfig Dependencies
Required
Xorg Applications and XML::Parser-2.34
Optional
intltool-0.35.5
Installation of XKeyboardConfig
Install XKeyboardConfig by running the following commands:
Command Explanations
--with-xkb-rules-symlink=xorg: By default, the XKB rules installed are named "base". This creates
symlinks named "xorg" to those rules, which is the default name used by Xorg.
Contents
Installed Programs: None
Installed Libraries: None
Installed Directory: $XORG_PREFIX/share/X11/xkb, $XORG_PREFIX/share/doc/xkeyboard-config-1.2
629
Beyond Linux® From Scratch - Version 6.3
Luit-1.0.2
Introduction to Luit
Luit provides a filter for displaying and converting UTF-8 characters in text console windows.
Package Information
• Download (HTTP): http://xorg.freedesktop.org/releases/individual/app/luit-1.0.2.tar.bz2
• Download (FTP): ftp://ftp.x.org/pub/individual/app/luit-1.0.2.tar.bz2
• Download MD5 sum: aacda46598ce3af8ca16e2a8132db1b2
• Download size: 97 KB
• Estimated disk space required: 1 MB
• Estimated build time: 0.1 SBU
Luit Dependencies
Required
Xorg Fonts
Installation of Luit
Install luit with the following commands:
./configure $XORG_CONFIG \
--with-localealiasfile=$XORG_PREFIX/share/X11/locale/locale.alias &&
make
make install
Command Explanations
--with-localealiasfile=$XORG_PREFIX/share/X11/locale/locale.alias: The default
location luit expects the locale.alias file is different than the location libX11 installs it to.
Contents
Installed Program: luit
Installed Libraries: None
Installed Directories: None
Short Description
luit provides locale and ISO 2022 support for Unicode terminals.
630
Beyond Linux® From Scratch - Version 6.3
Xorg-Server-1.2.0
Introduction to Xorg-Server
The Xorg Server is the core of the X Window system.
Package Information
• Download (HTTP): http://xorg.freedesktop.org/releases/individual/xserver/xorg-server-1.2.0.tar.bz2
• Download (FTP): ftp://ftp.x.org/pub/individual/xserver/xorg-server-1.2.0.tar.bz2
• Download MD5 sum: ea291c89e68832d570d9d5e007218bd6
• Download size: 5.7 MB
• Estimated disk space required: 425 MB
• Estimated build time: 4.9 SBU
Additional Downloads
• Required patch: http://www.linuxfromscratch.org/patches/blfs/6.3/xorg-server-1.2.0-security-1.patch
Optional
MesaLib-6.5.2
Multiple security vulnerabilities have been identified in the xorg-server package. Apply a patch to fix these
vulnerabilities with the following command:
./configure $XORG_CONFIG \
--with-mesa-source=</absolute/path/to>/Mesa-6.5.2 \
--with-module-dir=$XORG_PREFIX/lib/X11/modules \
--with-dri-driver-path=$XORG_PREFIX/lib/X11/modules/dri \
--with-xkb-output=/var/lib/xkb \
--enable-install-setuid &&
make
This package does not come with a test suite.
631
Beyond Linux® From Scratch - Version 6.3
make install
Command Explanations
--with-mesa-source=...: This switch directs the build system to the location of the Mesa source directory.
This must be an absolute path. If you wish to build without Mesa, omit this switch.
--with-module-dir=...: This parameter sets the destination for the installed modules.
--with-dri-driver-path=...: This is the location of the Mesa DRI drivers.
--enable-install-setuid: The Xorg binary must run as the root user. This switch ensures that the binary is
installed setuid when make is run by an unprivileged user.
--disable-glx: Disable building of the GLX extension. This parameter is required if building without Mesa.
--disable-dri: Disable building of the DRI extension. This parameter is required if building without Mesa.
--disable-xprint: Disable building of the Xprint extension and server. This parameter is required if building
without Mesa.
Contents
Installed Programs: cvt, dmxaddinput, dmxaddscreen, dmxreconfig, dmxresize, dmxrminput,
dmxrmscreen, dmxtodmx, dmxwininfo, getconfig, getconfig.pl, gtf, inb, inl, inw,
ioport, outb, outl, outw, pcitweak, scanpci, vdltodmx, X, Xdmx, xdmx, xdmxconfig,
Xnest, Xorg, xorgcfg, xorgconfig and Xvfb
Installed Libraries: None
Installed Directories: /var/lib/xkb and the following subdirectories of $XORG_PREFIX/: include/xorg,
include/X11/pixmaps, lib/X11/{getconfig,modules} and lib/xserver
Short Descriptions
cvt calculates VESA CVT mode lines.
dmxaddinput adds an input device to an Xdmx server.
dmxaddscreen adds a screen to an Xdmx server.
dmxreconfig refreshes the screen attributes in an Xdmx server.
dmxresize resizes an Xdmx desktop.
dmxrminput removes an input device from an Xdmx server.
dmxrmscreen removes a screen from an Xdmx server.
dmxtodmx is a dmx configuration file parser and printer.
dmxwininfo queries a window's attributes on an Xdmx server.
getconfig a wrapper script around getconfig.pl.
getconfig.pl gets configuration information for the Xorg server.
gtf calculates VESA GTF mode lines.
inb is a symbolic link to ioport.
632
Beyond Linux® From Scratch - Version 6.3
633
Beyond Linux® From Scratch - Version 6.3
Xorg Drivers
Introduction to Xorg Drivers
The Xorg drivers provide the means for the xserver to take advantage of installed hardware.
Package Information
• Download (HTTP): http://xorg.freedesktop.org/releases/individual/driver/
• Download (FTP): ftp://ftp.x.org/pub/individual/driver/
• Download MD5 sum: http://anduin.linuxfromscratch.org/files/BLFS/6.3/xorg/driver-7.2.md5
• Download size: 16.7 MB
• Estimated disk space required: 60.3 MB
• Estimated build time: 6.9 SBU
Additional Downloads
• Required download list: http://anduin.linuxfromscratch.org/files/BLFS/6.3/xorg/driver-7.2.wget
Required
Xorg-Server-1.2.0
Optional
MesaLib-6.5.2
Warning
It is very important not to build display drivers that cannot be used with your hardware. For instance, do
not build Sun drivers for an x86 PC as the Sun drivers will expect to see SPARC symbols exported from
the kernel. Failure to follow this warning will result in a display lockup, which requires a hard reboot, when
configuring Xorg for the first time. For this reason, these drivers have been commented out in the wget file.
634
Beyond Linux® From Scratch - Version 6.3
Install the drivers by running the following commands for each package:
make install
Command Explanations
sed -i ... man/*.man: A few packages install man pages in UTF-8 encoding, and they will not display correctly using
Man-DB. This command converts the offending characters to ones that man can properly display.
--with-xorg-module-dir=...: This switch ensures that the drivers are installed into the correct directory.
Contents
Installed Programs: None
Installed Libraries: libI810XvMC.so, libviaXvMC.so, and libviaXvMCPro.so
Installed Directories: $XORG_PREFIX/lib/X11/modules/{drivers,input}
Short Descriptions
libI810XvMC.so is the X-Video Motion Compensation client library for the Intel i810 video driver.
libviaXvMC.so is the X-Video Motion Compensation client library for the VIA Unichrome video driver.
libviaXvMCPro.so is the X-Video Motion Compensation client library for the VIA Unichrome Pro video
driver.
635
Beyond Linux® From Scratch - Version 6.3
Many package developers have not caught up to the change and their packages are still trying to find X in
/usr/X11R6 and subsequently fail when you try to build the package. Though for most packages it is not difficult to
'hack' the installation script to fix the problem, that is not the long term solution to the problem. Upstream developers
need to modernize their installation scripts and eliminate the problem altogether.
Until then, you can create a symbolic link to satisfy the /usr/X11R6 requirement so that you won't be
inconvenienced with a package build failure due to this known issue. If you wish to create the symlink, issue the
following command as the root user (ensure you modify <$XORG_PREFIX> appropriately):
ln -vsf <$XORG_PREFIX> /usr/X11R6
636
Beyond Linux® From Scratch - Version 6.3
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/Xorg.0.log to see what
went wrong.
As the root user, create the configuration directory and move the configuration file to the new directory:
This provides an initial screen with a small clock that is managed by a simple window manager, Tab Window
Manager. For details of twm, see the man page.
Note
Both the default, and the BLFS configuration for Xorg include xterm. Xorg's modular distribution no longer
includes xterm, and as a result, the startx command will fail if you have not installed xterm-231 when using
the modular X Window System. You can remove the xterm line in the above config file to test the xserver,
or install one of the other terminal emulators and make appropriate changes.
When needed, the X Window System creates the directory /tmp/.ICE-unix if it does not exist. If this directory
is not owned by root, the X Window System delays startup by a few seconds and also appends a warning to the
logfile. This also affects startup of other applications. To improve performance, it is advisable to manually create the
directory before the X Window System uses it. Add the file creation to /etc/sysconfig/createfiles that
is sourced by the /etc/rc.d/init.d/cleanfs startup script.
Start X with:
startx
637
Beyond Linux® From Scratch - Version 6.3
Note
DRI configuration may differ if you are using alternate drivers, such as those from NVIDIA or ATI.
To check if DRI is installed properly, check the log file /var/log/Xorg.0.log for statements like:
(II) R128(0): Direct rendering enabled
If you elected to install the Mesa-Demos package when installing MesaLib-6.5.2, from an xterm, run glxinfo and
look for the phrase:
direct rendering: Yes
If direct rendering is not enabled, you can add verbosity by running LIBGL_DEBUG=verbose glxinfo. This will
show the drivers, device nodes and files used by the DRI system.
Again, if you have added the Mesa-Demos package, 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.
Setting up Fonts
There are two font systems in the X Window System. The first is the core X font protocol, and the second is Xft.
Toolkits that use the core X font protocol include Xt, Xaw, Motif clones and GTK+-1.2. Toolkits that use Xft include
GTK+-2 and Qt and use Fontconfig for control. Both font systems should be configured for proper font coverage
in the X Window System.
638
Beyond Linux® From Scratch - Version 6.3
Section "Module"
...
Load "freetype"
...
EndSection
The character set used is part of the font name, e.g. "-iso8859-1". It is important that applications which support a
non-English interface specify the character set correctly so that the proper glyphs are used. This can be controlled
through the X resources, which will be described later.
In some cases, applications rely upon the fonts named "fixed" or something like "9x18". In these cases, it is important
that the fonts.alias file specifies the correct character set. Users of ISO-8859-X encodings where X != 1 should
modify the /usr/lib/X11/fonts/misc/fonts.alias file by replacing the "iso8859-1" string with the
proper encoding name. This is accomplished by running the following command as the root user, substituting the
proper value for <X>:
639
Beyond Linux® From Scratch - Version 6.3
The X fonts were not installed in a location known to Fontconfig. This prevents Fontconfig from using the poorly
rendered Type 1 fonts or the non-scalable bitmapped fonts. Symlinks were created from the OTF and TTF X
font directories to /usr/share/fonts/X11-{OTF,TTF}. This allows Fontconfig to use the OpenType and
TrueType fonts provided by X (which are scalable and of higher quality).
Fontconfig uses names such as "Monospace 12" to define fonts. Applications generally use generic font names such
as "Monospace", "Sans" and "Serif". Fontconfig resolves these names to a font that has all characters that cover
the orthography of the language indicated by the locale settings. Knowledge of these font names is included in
/etc/fonts/fonts.conf. Fonts that are not listed in this file are still usable by Fontconfig, but they will not
be accessible by the generic family names.
Standard scalable fonts that come with X provide very poor Unicode coverage. You may notice in applications that
use Xft that some characters appear as a box with four binary digits inside. In this case, a font set with the available
glyphs has not been found. Other times, applications that don't use other font families by default and don't accept
substitutions from Fontconfig will display blank lines when the default font doesn't cover the orthography of the user's
language. This happens, e.g., with Fluxbox in the ru_RU.KOI8-R locale.
In order to provide greater Unicode coverage, it is recommended that you install these fonts:
• DejaVu fonts - These fonts are replacements for the Bitstream Vera fonts and provide Latin-based scripts with
accents and Cyrillic glyphs. The DejaVu fonts by are not aliased to the generic family names by default, so /
etc/fonts/fonts.conf will have to be edited for it to be recognized by the generic names such as "Sans".
This will be described below.
• FreeFont - This set of fonts covers nearly every non-CJK character, but is not visually pleasing. Fontconfig will
use it as a last resort to substitute generic font family names.
• Microsoft Core fonts - These fonts provide slightly worse Unicode coverage than FreeFont, but are better hinted.
Be sure to read the license before using them. These fonts are listed in the /etc/fonts/fonts.conf aliases
by default.
• Firefly New Sung font - This font provides Chinese coverage. This font is not listed in the /etc/fonts/
fonts.conf aliases by default.
• Arphic fonts - A similar set of Chinese fonts to the Firefly New Sung font. These fonts are listed in the /etc/
fonts/fonts.conf aliases by default.
• Kochi fonts - These provide Japanese characters, and they are listed in the aliases in /etc/fonts/fonts.
conf by default.
• Baekmuk fonts - These fonts provide Korean coverage, and they are listed in the aliases in /etc/fonts/
fonts.conf by default.
The list above will not provide complete Unicode coverage. For more information, please visit the Unicode Font
Guide.
As an example, consider the installation of the DejaVu fonts. From the unpacked source directory, run the following
commands as the root user:
640
Beyond Linux® From Scratch - Version 6.3
Setting up Keyboards
In this version of X, 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 xorg.conf file. For example:
Section "InputDevice"
Identifier "Keyboard0"
Driver "kbd"
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:
If Linux-PAM is installed on your system, you should create a PAM entry for xdm by duplicating the login entry
using the following command:
cp -v /etc/pam.d/login /etc/pam.d/xdm
Using X Resources
There are many options that can be set in X and X clients via resources. Typically resources are set in the ~/.
Xresources file.
The layout of the ~/.Xresources file consists of a list of specifications in the form of
object.subobject[.subobject...].attribute: value
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, X offers two special
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
641
Beyond Linux® From Scratch - Version 6.3
The xrdb instruction is usually placed in ~/.xinitrc or ~/.xsession. To get more information, see the xrdb
man page.
Mice
Multi-button mice can be used to their full potential by mapping the additional buttons to X button events. Wheel
mice are a common example. The ordinary ones contain two buttons, and a scroll wheel that doubles as a third button.
As far as X is concerned, there are 5 buttons as it counts the 'scroll up' and 'scroll down' functions (internally they are
buttons). Here is an example 'InputDevice' section for a typical PS/2 wheel mouse:
Section "InputDevice"
Identifier "Mouse 0"
Driver "mouse"
Option "Device" "/dev/input/mice"
Option "Protocol" "IMPS/2"
Option "ZAxisMapping" "4 5"
Option "Buttons" "5"
EndSection
Button assignments differ for every mouse type. On more exotic mice, you may find that the rocker wheel buttons are
6 and 7. Simply add those values to the ZAxisMapping option, and set the Buttons option appropriately to enable
side to side scrolling. Additional information on button assignment can be found in the following XFree86 document:
642
Beyond Linux® From Scratch - Version 6.3
Warning
Incorrect monitor settings can destroy your monitor or even set it on fire! For most newer monitors, the
result of overly aggressive settings is a blank screen, but older monitors do not all have built in safeguards.
Other items that may be of interest in this section is the DPMS and associated StandbyTime, SuspendTime, and
OffTime options. These parameters control the energy saving features of your monitor. They may also be controlled
at runtime with the xset command or via a graphical interface such as KDE's Control Center.
A typical monitor section will normally look like:
Section "Monitor"
DisplaySize 400 300 # mm
Identifier "Monitor0"
VendorName "VSC"
ModelName "G810-2"
HorizSync 30.0 - 92.0
VertRefresh 50.0 - 180.0
Option "DPMS"
Option "StandbyTime" "10"
Option "SuspendTime" "20"
Option "OffTime" "30"
EndSection
643
Beyond Linux® From Scratch - Version 6.3
Section "Device"
Identifier "Videocard0"
Driver "radeon"
VendorName "Videocard vendor"
BoardName "ATI Radeon 7500"
EndSection
Display Layouts
Within the X Window System configuration file there may be multiple layout sections like:
Section "ServerLayout"
Identifier "X.org Configured"
Screen 0 "Screen0" 0 0
InputDevice "Mouse0" "CorePointer"
InputDevice "Keyboard0" "CoreKeyboard"
EndSection
The default layout is the first, but if you have special needs, you can create others with different configurations. The
Identifier line in each section is the key. Different layouts can be created using different Screen and InputDevice
sections.
After the configuration file is updated, an alternate configuration can be specified on the startx line. For instance, to
start X with an alternate layout with an Identifier of "layout2", use the following command line:
644
Beyond Linux® From Scratch - Version 6.3
645
Beyond Linux® From Scratch - Version 6.3
Qt-3.3.8b
Introduction to Qt
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. One of the major users of Qt is KDE.
Package Information
• Download (HTTP): http://ftp.silug.org/mirrors/ftp.trolltech.com/qt/source/qt-x11-free-3.3.8b.tar.gz
• Download (FTP): ftp://ftp.trolltech.com/qt/source/qt-x11-free-3.3.8b.tar.gz
• Download MD5 sum: 9f05b4125cfe477cc52c9742c3c09009
• Download size: 16.5 MB
• Estimated disk space required: 261 MB
• Estimated build time: 11 SBU (full), 7.5 SBU (sub-tools)
Qt Dependencies
Required
X Window System
Recommended
libjpeg-6b and libmng-1.0.9
Note: if for whatever reason you do not have the recommended libraries installed on your system, you must remove
the corresponding -system-<library> and -plugin-imgfmt-<library> parameters from the configure
commands shown in the instructions below.
Optional
NAS-1.9, CUPS-1.2.12, MySQL-5.0.41, PostgreSQL-8.2.4, unixODBC-2.2.12, SQLite and Firebird
Installation of Qt
This package (unfortunately) expects the X Window system to be installed in the /usr/X11R6 directory. If you're
using a recent version of Xorg and it is installed in any other location, ensure you have followed the instructions in
the Creating an X11R6 Compatibility Symlink section.
There are several ways to install a complicated package such as Qt. The files are not completely position independent.
Installation procedures execute the program pkg-config to determine the location of package executables, libraries,
headers, and other files. For Qt, pkg-config will look for the file lib/pkgconfig/qt-mt.pc which must be
modified if relocating the package. This file is set up correctly by the build process.
The default installation places the files in /usr/local/qt/. Many commercial distributions place the files in the
system's /usr hierarchy. The package can also be installed in an arbitrary directory.
This section will demonstrate two different methods.
Warning
Building Qt in a chroot environment may fail.
646
Beyond Linux® From Scratch - Version 6.3
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 command to:
make sub-tools
Note
If Qt is being reinstalled, run the following commands from a console or non-Qt based window manager.
It overwrites Qt libraries that should not be in use during the install process.
bash
export PATH=$PWD/bin:$PATH &&
export LD_LIBRARY_PATH=$PWD/lib:$LD_LIBRARY_PATH &&
make &&
exit
647
Beyond Linux® From Scratch - Version 6.3
bash
export QTDIR=$PWD &&
export LD_LIBRARY_PATH=$PWD/lib:$LD_LIBRARY_PATH &&
export PATH=$PWD/bin:$PATH &&
make &&
exit
648
Beyond Linux® From Scratch - Version 6.3
Command Explanations
sed -i '/QMAKE_RPATH/d' mkspecs/linux*/qmake.conf: In Method 1, Qt is being installed into the standard
system directories. The runtime library search path does not need to be set in this case.
bash: This command enters a sub-shell to isolate environment changes.
export QTDIR=$PWD: This command defines where the root of the Qt directory is located.
export LD_LIBRARY_PATH=$PWD/lib:$LD_LIBRARY_PATH: This command allows the not yet installed
Qt libraries to be used by the not yet installed Qt programs.
export PATH=$PWD/bin:$PATH: This command allows the build process to find supporting executables.
-qt-gif: This switch adds support for gif files to the libraries.
-system-zlib -system-libpng -system-libjpeg -system-mng: These switches force the build
instructions to use the shared libraries that are on your system instead of creating a custom set of support libraries
for these functions.
-plugin-imgfmt-png -plugin-imgfmt-jpeg -plugin-imgfmt-mng: These switches enable
run-time linking of the referenced libraries.
If you pass the -plugin-sql-<driver> or -qt-sql-<driver> switch to the configure command, you
must also pass -I</path/to/sql/headers> so make can find the appropriate header files. For instance,
building in MySQL support (as opposed to building the plugin) will need to use -I/usr/include/mysql
-qt-sql-mysql.
Note
To check if mysql is autotetected properly, examine the output of ./configure -I/usr/include/mysql -help.
Other database support will require similar configure parameters.
-no-exceptions: This switch disables the exceptions coding generated by the C++ compiler.
-thread: This switch adds support for multi-threading.
ln -v -sf libqt-mt.so /usr/lib/libqt.so: This command allows configure scripts to find a working Qt installation.
ln -v -snf ../../bin /usr/share/qt/bin: This command and the following two allow the /usr style installation to
mimic the /opt style installation by making all binaries, headers and libraries available from a single directory,
/usr/share/qt.
cp -v -r doc/man examples /usr/share (or /opt/qt/doc): This command installs the man pages and examples which
are missed by make install.
exit: This command returns to the parent shell and eliminates the environment variables set earlier.
Configuring Qt
Configuration Information
The QTDIR environment variable needs to be set when building packages that depend on Qt. Add the following to
the .bash_profile initialization script for each user that builds packages using the Qt libraries. Alternatively,
the variable can be set in the system wide /etc/profile file.
649
Beyond Linux® From Scratch - Version 6.3
For Method 1 (This is optional, only set this if an application is unable to find the installed libraries or headers):
export QTDIR=/usr/share/qt
or for Method 2:
export QTDIR=/opt/qt
If you installed Qt using Method 2, you also need to update the following configuration files so that Qt is correctly
found by other packages and system processes.
Update the /etc/ld.so.conf and /etc/man_db.conf files:
cat >> /etc/ld.so.conf << "EOF" &&
# Begin qt addition to /etc/ld.so.conf
/opt/qt/lib
# End qt addition
EOF
ldconfig &&
cat >> /etc/man_db.conf << "EOF"
# Begin qt addition to man_db.conf
MANDATORY_MANPATH /opt/qt/doc/man
Contents
Installed Programs: assistant, designer, linguist, lrelease, lupdate, moc, qm2ts, qmake, qtconfig, and uic
Installed Libraries: libqt-mt.so, libqt.so libqui.so, libdesignercore.a, libeditor.a, and libqassistantclient.a
Installed Directories: /opt/qt-3.3.8b or /usr/lib/qt, /usr/share/qt, /usr/share/doc/qt, /usr/include/qt, and /etc/qt
Short Descriptions
assistant is a tool for presenting on-line documentation.
designer is a full-fledged GUI builder. It includes powerful features such as preview mode, automatic widget
layout, support for custom widgets, and an advanced property editor.
linguist provides support for translating applications into local languages.
650
Beyond Linux® From Scratch - Version 6.3
lrelease is a simple command line tool. It reads a Qt project file and produces message files used by the
application.
lupdate reads a Qt project file, finds the translatable strings in the specified source, header and Qt Designer
interface files, and produces or updates the translation files listed in the project file.
moc generates Qt meta object support code.
qm2ts is a tool for converting Qt message file formats.
qmake qmake uses information stored in project files to determine what should go in the makefiles it
generates.
qtconfig is used to customize the appearance of Qt applications.
uic is a Qt user interface compiler.
651
Beyond Linux® From Scratch - Version 6.3
Qt-4.3.4
Introduction to Qt4
The Qt4 package contains several C++ libraries with both GUI and non-GUI components. One of the major users
of Qt4 is KDE4.
Package Information
• Download (HTTP): http://ftp.silug.org/mirrors/ftp.trolltech.com/qt/source/qt-x11-opensource-src-4.3.4.tar.gz
• Download (FTP): ftp://ftp.trolltech.com/qt/source/qt-x11-opensource-src-4.3.4.tar.gz
• Download MD5 sum: 9499101ec54eb7b0de195b3c5e3ffa93
• Download size: 42 MB
• Estimated disk space required: 1914 MB (full), 608 (essential)
• Estimated build time: 26 SBU (full), 13.5 SBU (essential)
Qt Dependencies
Required
X Window System
Recommended
Optional
Installation of Qt4
There are several ways to install a complicated package such as Qt4. The files are not completely position independent.
Installation procedures execute the program pkg-config to determine the location of package executables, libraries,
headers, and other files. For Qt4, pkg-config will look for the appropriate lib/pkgconfig/Qt*.pc files which
must be modified if relocating the package. These files are set up correctly by the build process.
The default installation places the files in /usr/local/qt/. Many commercial distributions place the files in the
system's /usr hierarchy. The package can also be installed in an arbitrary directory.
The advantage of this method is that no updates to the /etc/ld.so.conf or /etc/man_db.conf files are
required. The package files are distributed within several subdirectories of the /usr hierarchy. This is the method
that most commercial distributions use.
Note
If Qt4 is being reinstalled and the /usr directory is used as the prefix, run the following commands from
a console or non-Qt4 based window manager. It overwrites Qt4 libraries that should not be in use during
the install process.
652
Beyond Linux® From Scratch - Version 6.3
Note
The build time and space required for the full Qt4 is quite long. The instructions below do not build the
tutorials and examples. Removing the -nomake lines will create a complete build.
The method recommended by the Qt4 developers does not use the /usr directory prefix. It has the advantage of
keeping all the package files consolidated in a dedicated directory hierarchy. By using this method, an update can
be made without overwriting a previous installation and users can easily revert to a previous version by changing
one symbolic link.
The Qt4 developers use a default location of /usr/local/qt/, however the procedure below puts the files in
/opt/qt-4.3.4/ and then creates a symbolic link to /opt/qt/.
make install
If you installed Qt4 in the /opt directory, again as the root user issue:
Command Explanations
-release, -no-separate-debug-info: These switches minimizes the time and space used to build Qt4
by not adding debug information to the libraries.
-nomake examples, -nomake demos: These switches disable building programs that are only of interest
to a Qt4 developer.
There are several optional directories that can be specified in the ./configure line. These include -bindir,
-libdir, -docdir, and -headerdir. For a complete list, run ./configure -help.
-plugin-sql-<driver> or -qt-sql-<driver>: These switches build SQL support into the Qt4 libraries.
Note
To check if mysql is autotetected properly, examine the output of ./configure -qt-sql-mysql -help. Other
database support will require similar configure parameters.
653
Beyond Linux® From Scratch - Version 6.3
Configuring Qt4
Configuration Information
If you installed Qt4 in a location other than /usr, you also need to update the following configuration files so that Qt4
is correctly found by other packages and system processes.
Update the /etc/ld.so.conf and /etc/man_db.conf files:
cat >> /etc/ld.so.conf << "EOF" &&
# Begin qt addition to /etc/ld.so.conf
/opt/qt/lib
# End qt addition
EOF
ldconfig &&
cat >> /etc/man_db.conf << "EOF"
# Begin qt addition to man_db.conf
MANDATORY_MANPATH /opt/qt/doc/man
Contents
Installed Programs: assistant, designer, linguist, lrelease, lupdate, moc, pixeltool, qmake, qt3to4, qtconfig,
qtdemo, rcc, uic, and uic3
Installed Libraries: libQt3Support.so, libQtAssistantClient.so, libQtCore.so, libQtDesigner.so,
libQtDesignerComponents.so, libQtGui.so, libQtNetwork.so, libQtOpenGL.so,
libQtScript.so, libQtSql.so, libQtSvg.so, libQtTest.so, and libQtXml.so
Installed Directories: /opt/qt-4.3.4
Short Descriptions
assistant is a tool for presenting on-line documentation.
designer is a full-fledged GUI builder. It includes powerful features such as preview mode, automatic widget
layout, support for custom widgets, and an advanced property editor.
linguist provides support for translating applications into local languages.
654
Beyond Linux® From Scratch - Version 6.3
lrelease is a simple command line tool. It reads a Qt project file and produces message files used by the
application.
lupdate reads a Qt project file, finds the translatable strings in the specified source, header and Qt Designer
interface files, and produces or updates the translation files listed in the project file.
moc generates Qt meta object support code.
pixeltool is a desktop magnifier and as you move your mouse around the screen it will show the magnified
contents in its window.
qmake qmake uses information stored in project files to determine what should go in the makefiles it
generates.
qt3to4 qt3to4 is a tool to help update Qt3 code to Qt4.
qtconfig is used to customize the appearance of Qt applications.
qtdemo is a portal into various demonstrations of Qt applications.
rcc is a resource compiler used in conjucntion with designer.
uic is a Qt user interface compiler.
uic3 is a tool to generate Qt4 code out of user interface files generated by the Qt3 version of designer.
655
Beyond Linux® From Scratch - Version 6.3
GTK+-1.2.10
Introduction to GTK+
The GTK+ package contains GTK+ Libraries. This is useful for creating graphical user interfaces for applications.
Package Information
• Download (HTTP): http://gd.tuwien.ac.at/graphics/gimp/gtk/v1.2/gtk+-1.2.10.tar.gz
• Download (FTP): ftp://ftp.gtk.org/pub/gtk/v1.2/gtk+-1.2.10.tar.gz
• Download MD5 sum: 4d5cb2fc7fb7830e4af9747a36bfce20
• Download size: 2.8 MB
• Estimated disk space required: 51.1 MB
• Estimated build time: 1.01 SBU
GTK+ Dependencies
Required
GLib-1.2.10, and X Window System
Installation of GTK+
Install GTK+ by running the following commands:
./configure --prefix=/usr --sysconfdir=/etc &&
make
This package does not come with a test suite.
Now, as the root user:
make install &&
install -v -m755 -d /usr/share/doc/gtk+-1.2.10/{html,text} &&
install -v -m644 docs/html/* /usr/share/doc/gtk+-1.2.10/html &&
install -v -m644 docs/text/* /usr/share/doc/gtk+-1.2.10/text
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.
Contents
Installed Program: gtk-config
Installed Libraries: libgdk.{so,a} and libgtk.{so,a}
Installed Directories: /etc/gtk, /usr/include/gtk-1.2, and /usr/share/themes
Short Descriptions
gtk-config is a tool used by configure scripts to determine the compiler and linker flags that should be
used to compile and link programs that use GTK+.
656
Beyond Linux® From Scratch - Version 6.3
libgtk.{so,a} (GIMP Tool Kit) is a library for creating graphical user interfaces similar to the Motif “look
and feel”.
libgdk.{so,a} is designed as a wrapper library that lies on top of Xlib. It performs many common and desired
operations for a programmer instead of the programmer having to explicitly ask for such
functionality from Xlib directly.
657
Beyond Linux® From Scratch - Version 6.3
cairo-1.4.14
Introduction to cairo
cairo is a 2D graphics library with support for multiple output devices. Currently supported output targets include
the X Window System, win32, image buffers, PostScript, PDF and SVG. Experimental backends include OpenGL
(through glitz), Quartz and XCB file output. cairo is designed to produce consistent output on all output media while
taking advantage of display hardware acceleration when available (e.g., through the X Render Extension). The cairo
API provides operations similar to the drawing operators of PostScript and PDF. Operations in cairo include stroking
and filling cubic Bézier splines, transforming and compositing translucent images, and antialiased text rendering. All
drawing operations can be transformed by any affine transformation (scale, rotation, shear, etc.).
Package Information
• Download (HTTP): http://cairographics.org/releases/cairo-1.4.14.tar.gz
•
• Download MD5 sum: e8c442ff821c0719a69508fecba9038f
• Download size: 3.2 MB
• Estimated disk space required: 34 MB (additional 62 MB to run the test suite)
• Estimated build time: 0.5 SBU (additional 2.5 SBU to run the test suite)
cairo Dependencies
Required
X Window System and pkg-config-0.22
Optional
glitz, DirectFB, Open Quartz, libxcb-1.0 (also requires xcb-util), and GTK-Doc-1.8
Installation of cairo
Install cairo by running the following commands:
./configure --prefix=/usr &&
make
To test the results, issue: make check. Note that as many as 16 of the tests are known to fail for unknown reasons.
If you do not have a gs binary in your path, many (up to 87 of the 124) of the tests will fail. Also, to enhance test
coverage, the tests should be run with an available X Window screen (e.g. from a local xterm or equivalent window).
Now, as the root user:
make install
658
Beyond Linux® From Scratch - Version 6.3
Command Explanations
--enable-gtk-doc: Use this parameter if GTK-Doc is installed and you wish to rebuild the API documentation.
Contents
Installed Programs: None
Installed Libraries: libcairo.{so,a}
Installed Directories: /usr/include/cairo and /usr/share/gtk-doc/html/cairo
Short Descriptions
libcairo.{so,a} contains the 2D graphics functions required for rendering to the various output targets.
659
Beyond Linux® From Scratch - Version 6.3
Pango-1.16.4
Introduction to Pango
The Pango package contains the libpango libraries. These are useful for the layout and rendering of text.
Package Information
• Download (HTTP): http://ftp.gnome.org/pub/gnome/sources/pango/1.16/pango-1.16.4.tar.bz2
• Download (FTP): ftp://ftp.gtk.org/pub/pango/1.16/pango-1.16.4.tar.bz2
• Download MD5 sum: 025e2ac5e40cac163aae4653aeef559c
• Download size: 1.3 MB
• Estimated disk space required: 28 MB
• Estimated build time: 0.8 SBU
Pango Dependencies
Required
GLib-2.12.12 and one of cairo-1.4.14 or X Window System or Fontconfig-2.4.2
cairo is not required to build Pango, but it is highly recommended that you install cairo before building Pango. If you
don't build Pango with a cairo backend, then GTK+-2 will not build.
Optional
LibThai
Installation of Pango
Install Pango by running the following commands:
To test the results, issue: make check. Note that the “testboundries” test could fail if you have LibThai installed.
Now, as the root user:
make install
Command Explanations
--sysconfdir=/etc: This switch installs the configuration files into /etc instead of /usr/etc.
--enable-gtk-doc: Use this parameter if GTK-Doc is installed and you wish to rebuild the API documentation.
660
Beyond Linux® From Scratch - Version 6.3
Configuring Pango
Config Files
/etc/pango/pangorc, ~/.pangorc, and the file specified in the environment variable PANGO_RC_FILE
Configuration Information
The Pango module path is specified by the key Pango/ModulesPath in the Pango config database, which is read
from the config files listed above.
Contents
Installed Programs: pango-querymodules and pango-view
Installed Libraries: libpango*-1.0.so and Pango loadable modules.
Installed Directories: /etc/pango, /usr/include/pango-1.0, /usr/lib/pango, and /usr/share/gtk-doc/html/pango
Short Descriptions
pango-querymodules is a module registration utility that collects information about Pango loadable modules.
Pango libraries contain low level layout rendering routines, a high level driver for laying out entire
blocks of text, and routines to assist in editing internationalized text.
661
Beyond Linux® From Scratch - Version 6.3
ATK-1.18.0
Introduction to ATK
The ATK package contains the ATK libraries. They are useful for allowing accessibility solutions to be available
for all GTK2 applications.
Package Information
• Download (HTTP): http://ftp.gnome.org/pub/gnome/sources/atk/1.18/atk-1.18.0.tar.bz2
• Download (FTP): ftp://ftp.gnome.org/pub/gnome/sources/atk/1.18/atk-1.18.0.tar.bz2
• Download MD5 sum: 9fc33ec48fd32933f7f630479dfad667
• Download size: 655 KB
• Estimated disk space required: 10 MB
• Estimated build time: 0.1 SBU
ATK Dependencies
Required
GLib-2.12.12
Optional
GTK-Doc-1.8
Installation of ATK
Install ATK by running the following commands:
./configure --prefix=/usr &&
make
This package does not come with a test suite.
Now, as the root user:
make install
Command Explanations
--enable-gtk-doc: Use this parameter if GTK-Doc is installed and you wish to rebuild the API documentation.
Contents
Installed Programs: None
Installed Library: libatk-1.0.so
Installed Directories: /usr/include/atk-1.0 and /usr/share/gtk-doc/html/atk
Short Descriptions
atklib-1.0.so contains functions that are used by assistive technologies in order to interact with the desktop
and applications.
662
Beyond Linux® From Scratch - Version 6.3
GTK+-2.10.13
Introduction to GTK+
The GTK+ package contains GTK+ libraries. These are useful for creating graphical user interfaces for applications.
Package Information
• Download (HTTP): http://ftp.gnome.org/pub/gnome/sources/gtk+/2.10/gtk+-2.10.13.tar.bz2
• Download (FTP): ftp://ftp.gtk.org/pub/gtk/v2.10/gtk+-2.10.13.tar.bz2
• Download MD5 sum: d0af87715f3b0f05bf38a3312a528012
• Download size: 15.1 MB
• Estimated disk space required: 240 MB (includes building the experimental backends)
• Estimated build time: 3.1 SBU (includes building the experimental backends)
GTK+ Dependencies
Required
cairo-1.4.14, Pango-1.16.4, and ATK-1.18.0
Recommended
LibTIFF-3.8.2 and libjpeg-6b
Though not required, the GTK developers expect libtiff and libjpeg to be installed. Other packages also expect
GTK+-2 to be built with support for these graphics packages as well.
Optional
CUPS-1.2.12, GTK-Doc-1.8, and DocBook-utils-0.6.14
Installation of GTK+
Install GTK+ by running the following commands:
Command Explanations
--sysconfdir=/etc: This switch installs the configuration files into /etc instead of /usr/etc.
663
Beyond Linux® From Scratch - Version 6.3
--enable-gtk-doc: This switch will rebuild the API documentation during the make command. Ensure you
really want to rebuild this documentation (and end up with what is already shipped in the source tree) as it takes a
very long time.
--without-libtiff: Use this switch if you don't have libtiff installed.
--without-libjpeg: Use this switch if you don't have libjpeg installed.
Contents
Installed Programs: gdk-pixbuf-csource, gdk-pixbuf-query-loaders, gtk-demo, gtk-query-immodules-2.0,
and gtk-update-icon-cache
Installed Libraries: libgdk_pixbuf-2.0.so, libgdk-x11-2.0.so, libgtk-x11-2.0.so, libgdk_pixbuf_xlib-2.0.so,
and numerous engine, module, and loader plugins
Installed Directories: /etc/gtk-2.0, /usr/include/gtk-2.0, /usr/lib/gtk-2.0, /usr/share/doc/gtk+-2.10.13,
/usr/share/gtk-2.0, /usr/share/gtk-doc/html/{gdk,gdk-pixbuf,gtk},
/usr/share/themes/Default/gtk*, /usr/share/themes/Emacs and
/usr/share/themes/Raleigh
Short Descriptions
gdk-pixbuf-csource generates C code containing images, useful for compiling images directly into
programs.
gdk-pixbuf-query-loaders collects information about loadable modules for gdk-pixbuf and writes it to
standard output.
gtk-query-immodules-2.0 collects information about loadable input method modules for GTK+ and
writes it to standard output.
gtk-update-icon-cache creates mmap()able cache files for icon themes.
GTK+ Libraries provide an API to implement graphical user interfaces.
664
Beyond Linux® From Scratch - Version 6.3
LessTif-0.95.0
Introduction to LessTif
The LessTif package contains an Open Source version of OSF/Motif®.
Package Information
• Download (HTTP): http://downloads.sourceforge.net/lesstif/lesstif-0.95.0.tar.bz2
•
• Download MD5 sum: ab895165c149d7f95843c7584b1c7ad4
• Download size: 2.4 MB
• Estimated disk space required: 160 MB (includes building and running the test suite)
• Estimated build time: 4.1 SBU (includes building the test suite)
Additional Downloads
• Required patch: http://www.linuxfromscratch.org/patches/blfs/6.3/lesstif-0.95.0-testsuite_fix-1.patch
LessTif Dependencies
Required
X Window System
Optional
Lynx-2.8.6rel.5 or Links-2.1pre33 (used to generate the INSTALL documentation file) and Dmalloc
Installation of LessTif
Install LessTif by running the following commands:
sed -i -e '/ShellP/d' \
-e '/XMLIBEXPORT extern Cardinal/i#include <X11/ShellP.h>\n' \
include/Motif-2.1/Xm/VendorSP.h &&
665
Beyond Linux® From Scratch - Version 6.3
Applicatons that utilize Xorg libraries often, and incorrectly, expect to find configuration files in $XORG_
PREFIX/lib/X11. While still the root user, create a compatibility symlink with the following command:
ln -v -sf /etc/X11/mwm $XORG_PREFIX/lib/X11
Command Explanations
sed -i -e '...' -e '...' include/Motif-2.1/Xm/VendorSP.h: This command moves one line in the header file to avoid
C++ compilation problems.
--disable-debug: Do not generate debugging information.
--enable-production: Build the release version of the LessTif libraries.
--with-xdnd: Enable XDND GNOME compatibility support.
rootdir=/usr/share/doc/lesstif-0.95.0: This installs the documentation into an appropriate directory
instead of the non-FHS compliant /usr/LessTif directory.
sed -i "s@libdir)/X11/mwm@sysconfdir)/mwm@" clients/Motif-2.1/mwm/Makefile: This corrects the
installation prefix for the mwm directory for FHS compliance.
Testing LessTif
It is advisable to test the installation of LessTif using the included test suite. It is not required to install any of the
resulting binaries to validate the installation. Issue the following commands to build the test suite:
cd test &&
./configure &&
make
To run the tests, issue the following commands:
cd Xm &&
./testall *
You may need to manually close four of the test windows. The first one is from test28 in the list directory. The
second one is from test10 in the menushell directory. You should click on the button in the window and choose
“exit” (do it twice) to finish the test. The third test is from test20 in the PushButton and the last one is from test24
in the scrolledwindow directory.
As many as 101 tests are known to fail. The patch applied at the beginning of the installation created a file used to
compare known failures to the failures from the test run. This file was created from an installation using the current
LFS book and should be a fairly accurate representation of the failures you'll encounter. You could see some minor
variances, however.
Configuring LessTif
Config Files
/etc/X11/mwm/system.mwmrc and ~/.mwmrc
Configuration Information
The config files are used to customize the behavior of the mwm window manager. Information about customizing
these files can be found in the mwmrc(5) man page.
666
Beyond Linux® From Scratch - Version 6.3
Contents
Installed Programs: motif-config, mwm, mxmkmf, uil, and xmbind
Installed Libraries: libDtPrints.so, libMrm.so, libUil.so, and libXm.so
Installed Directories: /etc/X11/mwm, /usr/include/Xm, /usr/include/Mrm, /usr/include/uil, /usr/include/Dt,
/usr/lib/LessTif, and /usr/share/doc/lesstif-0.95.0
Short Descriptions
motif-config is used to find out configuration information for packages needing to link to the LessTif libraries.
mwm is a window manager that adheres largely to the Motif mwm specification.
mxmkmf is the LessTif version of xmkmf which creates a Makefile from an Imakefile.
uil is a user interface language compiler which translates a plain text description of the user interface
of a Motif application into a machine-readable form.
xmbind configures the virtual key bindings of LessTif applications.
libXm.so is an OSF/Motif® source code compatible library for the X Window System. You can download
an excellent reference guide (mainly for programmers) for the Motif-2.1 specification from
http://unc.dl.sourceforge.net/lesstif/6B_book.pdf.
667
Beyond Linux® From Scratch - Version 6.3
startup-notification-0.9
Introduction to startup-notification
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.
Package Information
• Download (HTTP): http://ftp.gnome.org/pub/gnome/sources/startup-notification/0.9/startup-notification-0.9.tar.
bz2
• Download (FTP): ftp://ftp.gnome.org/pub/gnome/sources/startup-notification/0.9/startup-notification-0.9.tar.bz2
• Download MD5 sum: 624b42f1fac5a12c543a079e2cd3b366
• Download size: 226 KB
• Estimated disk space required: 4 MB
• Estimated build time: less than 0.1 SBU
startup-notification Dependencies
Required
X Window System
Installation of startup-notification
Install startup-notification by running the following commands:
Contents
Installed Programs: None
Installed Library: libstartup-notification-1.{so,a}
Installed Directories: /usr/include/startup-notification-1.0 and /usr/share/doc/startup-notification-0.9
Short Descriptions
libstartup-notification-1.{so,a} provides the functions to assist applications in communicating
with the cursor system to provide feedback to the user that the
application is loading.
668
Beyond Linux® From Scratch - Version 6.3
libwnck-2.18.3
Introduction to libwnck
The libwnck package contains a Window Navigator Construction Kit.
Package Information
• Download (HTTP): http://ftp.gnome.org/pub/gnome/sources/libwnck/2.18/libwnck-2.18.3.tar.bz2
• Download (FTP): ftp://ftp.gnome.org/pub/gnome/sources/libwnck/2.18/libwnck-2.18.3.tar.bz2
• Download MD5 sum: 1badcbb50e7bc59865f72ec270c15125
• Download size: 482 KB
• Estimated disk space required: 12 MB
• Estimated build time: 0.3 SBU
libwnck Dependencies
Required
GTK+-2.10.13 and XML::Parser-2.34
Optional
startup-notification-0.9, intltool-0.35.5, and GTK-Doc-1.8
Installation of libwnck
Install libwnck by running the following commands:
make install
Command Explanations
--enable-gtk-doc: Use this parameter if GTK-Doc is installed and you wish to rebuild the API documentation.
Contents
Installed Programs: None
Installed Library: libwnck-1.{so,a}
Installed Directories: /usr/include/libwnck-1.0 and /usr/share/gtk-doc/html/libwnck
Short Descriptions
libwnck-1.{so,a} contains functions for writing pagers and task lists.
669
Beyond Linux® From Scratch - Version 6.3
shared-mime-info-0.21
Introduction to shared-mime-info
The shared-mime-info package contains a MIME database. This allows central updates of MIME information for all
supporting applications.
Package Information
• Download (HTTP): http://freedesktop.org/~hadess/shared-mime-info-0.21.tar.bz2
• Download (FTP): ftp://anduin.linuxfromscratch.org/BLFS/svn/s/shared-mime-info-0.21.tar.bz2
• Download MD5 sum: e1965e129a473683ba395ebc02206367
• Download size: 439 KB
• Estimated disk space required: 9 MB
• Estimated build time: less than 0.1 SBU
shared-mime-info Dependencies
Required
GLib-2.12.12, libxml2-2.6.31, and XML::Parser-2.34
Optional
intltool-0.35.5
Installation of shared-mime-info
Install shared-mime-info by running the following commands:
./configure --prefix=/usr &&
make
This package does not come with a test suite.
Now, as the root user:
make install
Configuring shared-mime-info
Configuration Information
Some applications (including GNOME-2) require a properly set environment variable to locate the MIME database.
Satisfy this requirement by setting the following variable in your local shell profile, or the system-wide profile:
XDG_DATA_DIRS=/usr/share
export XDG_DATA_DIRS
Contents
Installed Program: update-mime-database
Installed Libraries: None
Installed Directory: /usr/share/mime
670
Beyond Linux® From Scratch - Version 6.3
Short Descriptions
update-mime-database assists in adding MIME data to the database.
671
Beyond Linux® From Scratch - Version 6.3
hicolor-icon-theme-0.10
Introduction to hicolor-icon-theme
The hicolor-icon-theme package contains a default fallback theme for implementations of the icon theme
specification.
Package Information
• Download (HTTP): http://icon-theme.freedesktop.org/releases/hicolor-icon-theme-0.10.tar.gz
• Download (FTP): ftp://ftp.linux.ee/pub/gentoo/distfiles/distfiles/hicolor-icon-theme-0.10.tar.gz
• Download MD5 sum: 3534f7b8e59785c7d5bfa923e85510a7
• Download size: 33 KB
• Estimated disk space required: 2 MB
• Estimated build time: less than 0.1 SBU
Installation of hicolor-icon-theme
Install hicolor-icon-theme by running the following commands:
./configure --prefix=/usr
make install
Contents
Installed Programs: None
Installed Libraries: None
Installed Directories: /usr/share/icons/hicolor
Short Descriptions
/usr/share/icons/hicolor/* contains icon definitions used as defaults.
672
Beyond Linux® From Scratch - Version 6.3
libxklavier-3.2
Introduction to libxklavier
The libxklavier package contains a utility library for X keyboard.
Package Information
• Download (HTTP): http://downloads.sourceforge.net/gswitchit/libxklavier-3.2.tar.gz
•
• Download MD5 sum: 8f89a65b2d0aa8f8f5979c7d9de3d051
• Download size: 466 KB
• Estimated disk space required: 8 MB
• Estimated build time: 0.1 SBU
libxklavier Dependencies
Required
GLib-2.12.12, X Window System, and libxml2-2.6.31
Optional
GTK-Doc-1.8
Installation of libxklavier
Install libxklavier by running the following commands:
./configure --prefix=/usr &&
make
This package does not come with a test suite.
Now, as the root user:
make install
Command Explanations
--with-xkb-base=$XORG_PREFIX/share/X11/xkb: Use this parameter if the $XORG_PREFIX is
anything other than /usr.
--enable-gtk-doc: Use this parameter if GTK-Doc is installed and you wish to rebuild the API documentation.
Contents
Installed Programs: None
Installed Library: libxklavier.{so,a}
Installed Directories: /usr/include/libxklavier, /usr/share/gtk-doc/html/libxklavier and /usr/share/libxklavier
Short Descriptions
libxklavier.{so,a} contains XKB utility functions.
673
Beyond Linux® From Scratch - Version 6.3
freeglut-2.4.0
Introduction to freeglut
freeglut is intended to be a 100% compatible, completely opensourced clone of the GLUT library. GLUT is a window
system independent toolkit for writing OpenGL programs, implementing a simple windowing API, which makes
learning about and exploring OpenGL programming very easy.
If you built the GLUT library during an installation of MesaLib-6.5.2, you do not need to install this package.
Package Information
• Download (HTTP): http://downloads.sourceforge.net/freeglut/freeglut-2.4.0.tar.gz
•
• Download MD5 sum: 6d16873bd876fbf4980a927cfbc496a1
• Download size: 459 KB
• Estimated disk space required: 7.6 MB
• Estimated build time: 0.2 SBU
freeglut Dependencies
Required
X Window System
Installation of freeglut
Install freeglut by running the following commands:
Contents
Installed Programs: None
Installed Libraries: libglut.{so,a}
Installed Directories: /usr/share/doc/freeglut-2.4.0
Short Descriptions
libglut.{so,a} contains functions that implement the OpenGL Utility Toolkit.
674
Beyond Linux® From Scratch - Version 6.3
GOffice-0.6.1
Introduction to GOffice
The GOffice package contains a library of GLib/GTK document centric objects and utilities. This is useful for
performing common operations for document centric applications that are conceptually simple, but complex to
implement fully. Some of the operations provided by the GOffice library include support for plugins, load/save
routines for application documents and undo/redo functions.
Package Information
• Download (HTTP): http://ftp.gnome.org/pub/gnome/sources/goffice/0.6/goffice-0.6.1.tar.bz2
• Download (FTP): ftp://ftp.gnome.org/pub/gnome/sources/goffice/0.6/goffice-0.6.1.tar.bz2
• Download MD5 sum: a8aa21d089a0ae6f62cb2a9bb70e83db
• Download size: 3.0 MB
• Estimated disk space required: 53 MB
• Estimated build time: 1.0 SBU
Additional Downloads
• Required Patch: http://www.linuxfromscratch.org/patches/blfs/6.3/goffice-0.6.1-gtkdoc_rebase-1.patch
GOffice Dependencies
Required
Optional
intltool-0.35.5, GTK-Doc-1.8, and libgnomeui-2.18.1 (with libgsf built to support GNOME by creating the
libgsf-gnome-1 library)
Installation of GOffice
Install GOffice by running the following commands:
675
Beyond Linux® From Scratch - Version 6.3
make install
Command Explanations
--enable-gtk-doc: Use this parameter if GTK-Doc is installed and you wish to rebuild the API documentation.
Contents
Installed Programs: None
Installed Libraries: libgoffice-0.so and numerous support plugins
Installed Directories: /usr/include/libgoffice-0.4, /usr/lib/goffice,
/usr/share/{gtk-doc/html/goffice,{pixmaps/}goffice}
Short Descriptions
libgoffice-0.so contains API functions to provide support for document centric objects and utilities.
676
Beyond Linux® From Scratch - Version 6.3
MesaLib-6.5.2
Introduction to MesaLib
Mesa is an OpenGL compatible 3-D graphics library.
Package Information
• Download (HTTP): http://downloads.sourceforge.net/mesa3d/MesaLib-6.5.2.tar.bz2
•
• Download MD5 sum: e4d894181f1859651658b3704633e10d
• Download size (including recommended download): 3.1 MB
• Estimated disk space required (including recommended download): 172 MB
• Estimated build time (including recommended download): 1.6 SBU
Additional Downloads
Recommended demonstration and diagnostic utilities for verifying OpenGL operation
MesaLib Dependencies
Required
Xorg Libraries, Xorg Utilities, libdrm-2.3.0, and expat-2.0.1
Installation of MesaLib
Extract all three tarballs from the same top-level directory as they all will extract to the Mesa-6.5.2 directory.
Install MesaLib by running the following command:
If you downloaded and extracted the Demos package, build the programs with the following commands:
677
Beyond Linux® From Scratch - Version 6.3
If you built the demo programs, install them using the following command as the root user:
Finally, if installing to any prefix other than /usr, you should create symlinks to the GL headers in /usr/include.
Execute the following command as the root user:
ln -s -v ${XORG_PREFIX}/include/GL /usr/include
Tip
Do not remove the Mesa source tree yet, it will be required to build the Xorg-Server-1.2.0.
Command Explanations
make ... linux-dri-x86: The linux-dri-x86 target is specified to use a few other helpful flags in addition to the
defaults. See the other targets in the configs directory if your architecture is not x86.
OPT_FLAGS="-O2 -fno-strict-aliasing": A bug where OpenGL applications are shifted to the left by
50% can be worked around by adding -fno-strict-aliasing to the compiler flags.
DRI_DRIVER_INSTALL_DIR=${XORG_PREFIX}/lib/X11/modules/dri: This setting specifies the
location that the DRI modules will be installed to. This path is also built into libGL.so.
sed -i 's@-l$(GLUT_LIB)@@g' configs/default: Disables linking against the GLUT libraries for the demo
programs, omit this command if you downloaded and extracted the GLUT tarball.
make ... PROGS='glxinfo glxgears': Only builds the glxinfo and glxgears programs.
Contents
Installed Programs glxgears and glxinfo
(optional):
Installed Libraries: libGL.so, libGLU.so, libGLw.so, *_dri.so and optionally, libglut.so
Installed Directories: $XORG_PREFIX/lib/modules/dri and $XORG_PREFIX/share/doc/MesaLib-6.5.2
Short Descriptions
glxgears is a GL demo useful for troubleshooting graphics problems.
glxinfo is a diagnostic program that displays information about the graphics hardware and installed GL
libraries.
libGL.so is the main OpenGL library.
libGLU.so is the OpenGL Utility library.
libGLw.so is the Xt/Motif OpenGL drawing area widget library.
678
Beyond Linux® From Scratch - Version 6.3
679
Beyond Linux® From Scratch - Version 6.3
680
Beyond Linux® From Scratch - Version 6.3
sawfish-1.3
Introduction to sawfish
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.
Package Information
• Download (HTTP): http://downloads.sourceforge.net/sawmill/sawfish-1.3.tar.gz
•
• Download MD5 sum: 9e5ce5e76c60acecdb1889c1f173295a
• Download size: 1.5 MB
• Estimated disk space required: 17.5 MB
• Estimated build time: 0.26 SBU
sawfish Dependencies
Required
rep-gtk-0.18 and EsounD-0.2.37
Installation of sawfish
Install sawfish by running the following commands:
make install
Command Explanations
--disable-themer: This option prevents building the sawfish themer. This program was not migrated to GTK-2.
--with-audiofile: This command directs sawfish to use libaudiofile for sound manipulation.
--with-esd: This command directs sawfish to use the Enlightened Sound Daemon.
Configuring sawfish
Configuration Information
Be sure to backup your current .xinitrc before proceeding.
681
Beyond Linux® From Scratch - Version 6.3
Contents
Installed Programs: sawfish, sawfish-client, and sawfish-ui
Installed Libraries: None
Installed Directory: /usr/share/sawfish, /usr/sbin/sawfish, and /usr/lib/rep/*/
Short Descriptions
sawfish is the extensible window manager using a Lisp-based scripting language.
sawfish-client allows you to connect to a window manager process and evaluate arbitrary Lisp forms.
sawfish-ui is the sawfish configurator.
682
Beyond Linux® From Scratch - Version 6.3
Fluxbox-0.9.15.1
Introduction to Fluxbox
The Fluxbox package contains a window manager.
Package Information
• Download (HTTP): http://downloads.sourceforge.net/fluxbox/fluxbox-0.9.15.1.tar.bz2
•
• Download MD5 sum: 098eb36a09338aabb63b938a5eab9ef6
• Download size: 670 KB
• Estimated disk space required: 50.3 MB
• Estimated build time: 0.8 SBU
Fluxbox Dependencies
Required
X Window System
Optional
Imlib2-1.4.0 Image display library
Installation of Fluxbox
Install Fluxbox by running the following commands:
./configure --prefix=/usr &&
make
To test the results, issue: make check.
Now, as the root user:
make install
Command Explanations
--enable-imlib2: Use this option if you wish to use other image formats in addition to xpm.
Configuring Fluxbox
Config Files
~/.fluxbox/init, ~/.fluxbox/keys, and ~/.fluxbox/menu
Configuration Information
If Fluxbox is the only Window Manager you want to use, you can start it with an .xinitrc file in your home folder.
Be sure to backup your current .xinitrc before proceeding.
echo startfluxbox > ~/.xinitrc
683
Beyond Linux® From Scratch - Version 6.3
Or alternatively, if you use a login manager like GDM-2.18.3 or kdm and would like to be able to choose Fluxbox
at the login prompt, create a fluxbox.desktop file like this.
As root:
cat > /usr/share/xsessions/fluxbox.desktop << "EOF"
[Desktop Entry]
Encoding=UTF-8
Name=Fluxbox
Comment=This session logs you into Fluxbox
Exec=startfluxbox
Type=Application
EOF
If you didn't install GDM-2.18.3 or kdm in /usr, then change that command to fit the prefix you chose.
Now create the Fluxbox configuration files:
mkdir -v ~/.fluxbox &&
cp -v /usr/share/fluxbox/init ~/.fluxbox/init &&
cp -v /usr/share/fluxbox/keys ~/.fluxbox/keys
Now if you have which-2.19 installed:
cd ~/.fluxbox &&
fluxbox-generate_menu
otherwise:
cp -v /usr/share/fluxbox/menu ~/.fluxbox/menu
Menu items are added by editing ~/.fluxbox/menu. The syntax is explained on the fluxbox man page.
If you want to use an image as your desktop background, copy the theme you like into ~/.fluxbox. Then add a
line to make it use the correct image. In the following command, change <theme> for the name of the theme you
want and change </path/to/nice/image.xpm> to point to the actual image you want to use.
cp /usr/share/fluxbox/styles/<theme> ~/.fluxbox/theme &&
sed -i 's,\(session.styleFile:\).*,\1 ~/.fluxbox/theme,' \
~/.fluxbox/init &&
echo "background.pixmap: </path/to/nice/image.xpm>" >> ~/.fluxbox/theme
In some locales the font specified in the theme may not contain the needed characters. This results in menus with
blank items. You can fix this by editing ~/.fluxbox/theme with a text editor and altering it so that it names
a suitable font.
Contents
Installed Programs: fluxbox, fbsetbg, fbsetroot, fluxbox-generate_menu, startfluxbox, and fbrun
Installed Libraries: None
Installed Directory: /usr/share/fluxbox and ~/.fluxbox
Short Descriptions
fluxbox is a window manager for X11 based on Blackbox 0.61.0.
684
Beyond Linux® From Scratch - Version 6.3
fbsetbg is a utility that sets the background image. It requires which to find one of: display,
Esetroot, wmsetbg, xv, qiv or xsri.
fbsetroot is a utility to change root window appearance based on the Blackbox application
bsetroot.
fluxbox-generate_menu is a utility that generates a menu by scanning your PATH. It requires which to
function properly.
startfluxbox is a session startup script that allows for command executions prior to fluxbox
starting.
fbrun displays a run dialog window.
685
Beyond Linux® From Scratch - Version 6.3
Metacity-2.18.5
Introduction to Metacity
The Metacity package contains a window manager. This is useful for organizing and displaying windows.
Package Information
• Download (HTTP): http://ftp.gnome.org/pub/gnome/sources/metacity/2.18/metacity-2.18.5.tar.bz2
• Download (FTP): ftp://ftp.gnome.org/pub/gnome/sources/metacity/2.18/metacity-2.18.5.tar.bz2
• Download MD5 sum: 7928172bf41f6b63976a62554a699674
• Download size: 1.9 MB
• Estimated disk space required: 61 MB
• Estimated build time: 0.6 SBU
Metacity Dependencies
Required
GTK+-2.10.13 and XML::Parser-2.34
Optional
startup-notification-0.9 (recommended if you are installing GNOME-2), GConf-2.18.0.1 (recommended if you are
installing GNOME-2), intltool-0.35.5, and libcm
Installation of Metacity
Install Metacity by running the following commands:
./configure \
--prefix=/usr \
--libexecdir=/usr/lib/metacity \
--sysconfdir=/etc \
--with-gconf-schema-file-dir=/etc/gnome/2.18.3/gconf/schemas &&
make
This package does not come with a test suite.
Now, as the root user:
make install &&
install -v -m755 -d /usr/share/doc/metacity-2.18.5 &&
install -v -m644 README rationales.txt doc/*.txt \
/usr/share/doc/metacity-2.18.5
Command Explanations
--with-gconf-schema-file-dir=/etc/gnome/2.18.3/gconf/schemas: Omit this parameter if
you are not installing Metacity for a GNOME-2 installation.
--enable-compositor: You must use this parameter (and have libcm installed) to build the Metacity composite
manager.
686
Beyond Linux® From Scratch - Version 6.3
Configuring Metacity
Configuration Information
To automatically start the Metacity window manager when you issue the startx command, append to (or create) .
xinitrc using the command below (not required if you are installing Metacity for a GNOME-2 installation). Ensure
you backup your current ~/.xinitrc before proceeding:
Contents
Installed Programs: metacity, metacity-message, metacity-theme-viewer and metacity-window-demo
Installed Library: libmetacity-private.{so,a}
Installed Directories: /usr/include/metacity-1, /usr/lib/metacity, /usr/share/doc/metacity-2.18.5,
/usr/share/gnome/wm-properties, /usr/share/metacity and the following subdirectories
of /usr/share/themes/: AgingGorilla Atlanta Bright Crux/metacity-1 Esco Metabox
Simple/metacity-1}
Short Descriptions
metacity is a window manager used mainly by GNOME.
metacity-theme-viewer allows you to preview any installed Metacity theme. When designing a new
Metacity theme, you can use metacity-theme-viewer to measure the performance
of a window frame option, and to preview the option.
metacity-window-demo demonstrates various kinds of windows that window managers and window
manager themes should handle.
687
Beyond Linux® From Scratch - Version 6.3
688
Beyond Linux® From Scratch - Version 6.3
Introduction to KDE
KDE is a comprehensive desktop environment that builds on an X Window System 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.
The KDE instructions are divided 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.) The third part provides resources for software and web developers.
There are two alternatives for installing KDE. Option one, that is used by most of the commercial distributions, is
to install KDE in the standard system prefix: /usr. This option allows the use of KDE without the need for any
additional configuration such as modification of various environment variables or configuration files. Option two is
to install it in a unique prefix such as /opt/kde or /opt/kde-3.5.9. This option allows for easy removal of
the KDE version or maintenance of multiple versions for testing.
Tip
All the KDE packages are comprised 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=$KDE_PREFIX ...
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.
Note
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.
Beyond Linux® From Scratch - Version 6.3
One option is to put KDE into the /usr hierarchy. This creates a simpler setup but is more difficult to try multiple
versions of KDE.
export KDE_PREFIX=/usr
export KDE_PREFIX=/opt/kde-3.5.9
Remember to execute ldconfig after installation of libraries to update the library cache.
If you are not installing KDE in /usr, you will need to make some configuration changes:
You should consider installing the desktop-file-utils-0.13 package. Though not required, this package will allow you
to easily use existing .desktop files in /usr/share/applications (and any other locations identified by
XDG_DATA_DIRS), and automatically add these applications to the KDE menu system.
export PATH=$PATH:/opt/kde-3.5.9/bin
export PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/opt/kde-3.5.9/lib/pkgconfig
/opt/kde-3.5.9/lib
MANDATORY_MANPATH /opt/kde-3.5.9/man
691
Beyond Linux® From Scratch - Version 6.3
Tip
If you prefer installing KDE in /opt, one trick to avoid the above configuration changes every time you
install a new version is to replace /opt/kde-3.5.9 with /opt/kde and to create a symlink from
/opt/kde-3.5.9 to /opt/kde.
692
Beyond Linux® From Scratch - Version 6.3
aRts-1.5.9
Introduction to aRts
The Analog Real-time Synthesizer (aRts) provides sound support for KDE and necessary libraries for kdelibs.
Package Information
• Download (HTTP): http://mirrors.isc.org/pub/kde/stable/3.5.9/src/arts-1.5.9.tar.bz2
• Download (FTP): ftp://ftp.kde.org/pub/kde/stable/3.5.9/src/arts-1.5.9.tar.bz2
• Download MD5 sum: 62a5e4d522314bab19288e4702480c93
• Download size: 951 KB
• Estimated disk space required: 30 MB
• Estimated build time: 1.3 SBU
aRts Dependencies
Required
Recommended
libjpeg-6b
Optional
libvorbis-1.2.0, ALSA-1.0.13, Audio File-0.2.6, libmad-0.15.1b, EsounD-0.2.37, NAS-1.9, MAS, and JACK
Installation of aRts
Install aRts by running the following commands:
This package does not come with a test suite that works with GCC-4.1.2.
Now, as the root user:
make install
Command Explanations
--prefix=$KDE_PREFIX: This option tells the process to install the package in $KDE_PREFIX. aRts is installed
here as it's required before installing KDE.
--disable-debug: This option causes the package to be compiled without debugging code.
--disable-dependency-tracking: This option speeds up one time builds.
693
Beyond Linux® From Scratch - Version 6.3
Contents
Installed Programs: artsd, artswrapper, artsshell, artsplay, artsdsp, artscat, artscontrol, artsc-config, and
mcopidl
Installed Libraries: aRts libraries
Installed Directories: The following subdirectories of $KDE_PREFIX/: bin, include/arts, include/artsc, and
lib/mcop
Short Descriptions
artsd is a daemon that provides access to the sound hardware resources.
artswrapper is a small wrapper program which simply sets real-time priority (running as root) and then
executes artsd as a non-root user.
artsshell is intended as a utility to perform miscellaneous functions related to the sound server.
artsplay is a simple utility to play a sound file.
artsdsp provides an interim solution that allows most of legacy sound applications to run unchanged.
artscat is a simple utility to send raw audio data to the sound server.
artscontrol is a graphical utility for performing a number of tasks related to the sound server.
artsc-config is a utility to assist developers using the aRts C API.
mcopidl is the Interface Definition Language (IDL) file compiler for MCOP, the Multimedia
Communication Protocol used by aRts.
aRts Libraries contains functions that support aRts programs.
To find out information about aRts and the various programs included in the package, see The aRts Handbook. For
information in languages other then English, see the KDE Documentation and navigate to the aRts documentation
in your language.
694
Beyond Linux® From Scratch - Version 6.3
Kdelibs-3.5.9
Introduction to Kdelibs
This package includes programs and libraries that are central to the development and execution of a KDE program,
as well as internationalization files for these libraries, miscellaneous HTML documentation, theme modules and
regression tests.
Package Information
• Download (HTTP): http://mirrors.isc.org/pub/kde/stable/3.5.9/src/kdelibs-3.5.9.tar.bz2
• Download (FTP): ftp://ftp.kde.org/pub/kde/stable/3.5.9/src/kdelibs-3.5.9.tar.bz2
• Download MD5 sum: 55e5f00874933d1a7ba7c95e369a205e
• Download size: 15.0 MB
• Estimated disk space required: 276 MB (additional 431 MB for API docs)
• Estimated build time: 15 SBU (additional 1.25 SBU for API docs)
Kdelibs Dependencies
Required
Qt-3.3.8b
Recommended
Optional
LibTIFF-3.8.2, Aspell-0.60.5, CUPS-1.2.12, ALSA-1.0.13, Heimdal-1.1 or MIT Kerberos V5-1.6, OpenEXR, JasPer,
Lua (version < 5.1), mDNSResponder, LibThai, Hspell, libacl (requires libattr), sudo-1.6.9p15, Graphviz-2.12, and
Doxygen-1.5.2
Run-Time Dependencies
The KDE libraries access other programs at run time. One additional package that has not been mentioned already is
pmount. This enables auto-mounting of hotplugged devices at /media/[device_name] for any user without any fstab
modification. It is needed to enable the full integration of KDE with HAL-0.5.9.1.
Installation of Kdelibs
Install kdelibs with:
./configure --prefix=$KDE_PREFIX \
--sysconfdir=/etc/kde \
--disable-debug \
--disable-dependency-tracking &&
LD_LIBRARY_PATH="$QTDIR/lib" make
695
Beyond Linux® From Scratch - Version 6.3
Note
If you wish to create the API documentation and you have Doxygen and Graphviz installed, make apidox
must be done before make install. This applies to all packages which can utilize Doxygen.
The make apidox command generates a lot of errors and warnings. In some cases it complains that Helvetica
fonts are missing and substitutes a font that does not fit boxes properly. You can add the font by downloading
the URW Fonts and unpacking them into ~/.fonts. fc-cache should also be run to update the font
properties on your system.
The documents generated are HTML and are found in $KDE_
PREFIX/share/doc/HTML/en/kdelibs-apidocs.
This package does not come with a test suite that works with GCC-4.1.2.
Now, as the root user:
make install
Command Explanations
--prefix=$KDE_PREFIX: This option tells the process to install the package in $KDE_PREFIX.
--disable-debug: This option causes the package to be compiled without debugging code.
--disable-dependency-tracking: This option speeds up one time builds.
--sysconfdir=/etc/kde: This option places configuration files in compliance with the Filesystem Hierarchy
Standard. If you omit this parameter, the configuration files will be placed in $KDE_PREFIX/etc which may be
desirable if you have multiple versions of KDE installed.
LD_LIBRARY_PATH="$QTDIR/lib" make: A bug in the kdelibs build system prevents Qt from being found
by the Makefiles if Qt was installed in /opt. Setting LD_LIBRARY_PATH works around the problem.
Contents
Installed Programs: Numerous KDE support programs: artsmessage, checkXML, cupsdconf,
cupsdoprint, dcop, dcopclient, dcopfind, dcopidl, dcopidl2cpp, dcopidlng,
dcopobject, dcopquit, dcopref, dcopserver, dcopserver_shutdown, dcopstart,
filesharelist, fileshareset, imagetops, kab2kabc, kaddprinterwizard, kbuildsycoca,
kcmshell, kconf_update, kconfig_compiler, kcookiejar, kde-config, kde-menu, kded,
kdeinit, kdeinit_shutdown, kdeinit_wrapper, kdesu_stub, kdontchangethehostname,
kdostartupconfig, kfile, kfmexec, kgrantpty, khotnewstuff, kinstalltheme,
kio_http_cache_cleaner, kio_uiserver, kioexec, kioslave, klauncher, kmailservice,
kpac_dhcp_helper, ksendbugmail, kshell, kstartupconfig, ksvgtopng, ktelnetservice,
ktradertest, kunittestmodrunner, kwrapper, lnusertemp, make_driver_db_cups,
make_driver_db_lpr, makekdewidgets, meinproc, preparetips, and start_kdeinit
Installed Libraries: Numerous KDE libraries and helper modules
Installed Directories: /etc/kde and the following subdirectories of $KDE_PREFIX/: include/{dnssd, dom,
kabc, kate, kdeprint, kdesu, khexedit, kio, kjs, kmdi, kmediaplayer, knewstuff,
kparts, kresources, ksettings, kspell2, ktexteditor, kunittest, libkmid}, lib/kde3, and
share/{applications, apps, autostart, config, doc, emoticons, icons, mimelnk, services}
696
Beyond Linux® From Scratch - Version 6.3
Short Descriptions
KDE Support Programs are essential support programs needed by other KDE applications.
KDE Libraries contain essential functions that are needed by KDE applications.
The number of programs and libraries installed by kdelibs prohibits an explanation of each one in this section. Instead,
see the KDE Documentation.
697
Beyond Linux® From Scratch - Version 6.3
Kdebase-3.5.9
Introduction to Kdebase
kdebase is the last mandatory package required for the K Desktop Environment. It provides various applications,
infrastructure files and libraries.
Package Information
• Download (HTTP): http://mirrors.isc.org/pub/kde/stable/3.5.9/src/kdebase-3.5.9.tar.bz2
• Download (FTP): ftp://ftp.kde.org/pub/kde/stable/3.5.9/src/kdebase-3.5.9.tar.bz2
• Download MD5 sum: c8c35389a238aa1b73e68ef5298eadf8
• Download size: 24.0 MB
• Estimated disk space required: 273 MB (additional 17 MB for API docs)
• Estimated build time: 11 SBU (additional 8.4 SBU for API docs)
Kdebase Dependencies
Required
kdelibs-3.5.9
Recommended
libjpeg-6b, libart_lgpl-2.3.19, libxml2-2.6.31, OpenSSL-0.9.8g, and JDK-6 Update 5
Optional
libusb-0.1.12, Linux-PAM-0.99.10.0, OpenLDAP-2.3.39, Cyrus SASL-2.1.22, Samba-3.0.30, HAL-0.5.9.1 and
D-Bus Qt3 Bindings-0.62, Heimdal-1.1 or MIT Kerberos V5-1.6, krb4, OpenEXR, libraw1394, lm_sensors (requires
Sysfs Utilities), mDNSResponder, sudo-1.6.9p15, Graphviz-2.12, and Doxygen-1.5.2
Run-Time Dependencies
Note that there are two additional packages you can install that are used at run-time for konqueror ioslave protocols.
You can install the Mtools package to enable the “floppy” ioslave protocol. This will allow easy access to the floppy
disk drives on your system. The hfsplus package can be installed to access HFS+ partitions on a Mac OS system
using the “mac” ioslave.
One additional package that can be used at run time is PCI Utilities-2.2.3. This enables the KDE Info Center to use
lspci for its "pci" info section.
Another package usable at run time is htdig. The enables khelpcenter to create a search index for the KDE application
manuals.
Installation of Kdebase
Note
You should ensure a nogroup group exists on your system before performing the configure command,
as kdebase installs a program ($KDE_PREFIX/bin/kdesud) with group ownership of nogroup.
698
Beyond Linux® From Scratch - Version 6.3
Note
If you wish to create the API documentation and you have Doxygen and Graphviz installed, make apidox
must be done before make install.
Command Explanations
LD_LIBRARY_PATH="$KDE_PREFIX/lib" make: A bug in the kdebase build system prevents kdelibs from
being found by the Makefiles when kdelibs is installed in /opt. Setting LD_LIBRARY_PATH works around the
problem.
Configuring Kdebase
Configuration Information
There is no real configuration necessary for this package other than to ensure you follow the steps outlined in the last
section of this chapter, the section called “Configuring the Core KDE Packages”.
Contents
Installed Programs: appletproxy, drkonqi, extensionproxy, genkdmconf, kaccess, kappfinder,
kapplymousetheme, kasbar, kate, kblankscrn.kss, kbookmarkmerger, kcheckpass,
kcheckrunning, kcminit, kcminit_startup, kcontrol, kcontroledit, kdcop, kdebugdialog,
kdeeject, kdeinstallktheme, kdepasswd, kdeprintfax, kdesktop, kdesktop_lock,
kdesu, kdesud, kdialog, kdm, kdm_config, kdm_greet, kdmctl, keditbookmarks,
keditfiletype, kfind, kfmclient, kfontinst, kfontview, khc_docbookdig.pl, khc_htdig.pl,
khc_htsearch.pl, khc_indexbuilder, khc_mansearch.pl, khelpcenter, khotkeys, kicker,
kinfocenter (link to kcontrol), kio_media_mounthelper, kio_system_documenthelper,
kjobviewer, klipper, klocaldomainurifilterhelper, kmenuedit, knetattach, kompmgr,
konqueror, konsole, kpager, kpersonalizer, kpm, kprinter, krandom.kss, krandrtray,
krdb, kreadconfig, krootimage, ksmserver, ksplash, ksplashsimple, kstart, ksysguard,
ksysguardd, ksystraycmd, ktip, ktrash, kwebdesktop, kwin, kwin_killer_helper,
kwin_rules_dialog, kwrite, kwriteconfig, kxkb, nspluginscan, nspluginviewer, and
startkde
Installed Libraries: Numerous KDE support libraries, helper modules, and kioslaves
Installed Directories: /etc/xdg/menus/applications-merged and the following subdirectories of
$KDE_PREFIX/: include/{kate, ksgrd, ksplash, kwin}, lib/kconf_update_bin,
share/{applnk, apps/{too many to list}, config, config.kcfg, desktop-directories,
doc/kdm, fonts, /mimelnk/{fonts, media, print}, services/{searchproviders,
useragentstrings}, sounds, templates, wallpapers, and /var/lib/kdm
699
Beyond Linux® From Scratch - Version 6.3
Short Descriptions
kate is a programmer's text editor for KDE.
kcontrol is the KDE Control Center.
kdebugdialog is a dialog box for managing diagnostic messages at runtime.
kdesu is a graphical front end for the Unix su command.
kdm is the KDE display manager (a replacement for xdm).
kfind is a utility to find files.
khelpcenter is the KDE help tool.
kicker is the KDE control panel.
kinfocenter provides a centralized and convenient overview of your KDE and system settings.
kioslaves are support modules designed to be intimately familiar with a certain protocol, so that a standard
interface (most often these are used by konqueror) can be used to get at data from any number
of places. Examples are the http and ftp kioslaves, which will retrieve data from an http or ftp
server respectively.
klipper is a clipboard utility.
kmenuedit is a utility to rearrange or add items to the K-menu.
konqueror is a filesystem and web browser.
konsole is a highly configurable X terminal emulator.
kpager provides a thumbnail view of all virtual desktops.
kprinter is the printing module in KDE. It manages the actual printing from KDE applications. It handles
print job administration and handles printer and print system management.
ksplash is a splash screen that shows the progress of an application that is loading.
ksysguard is a network enabled task manager and system monitor application, with the additional
functionality of top.
kwrite is a text editor for KDE.
kxkb is a keyboard layout switching utility based on the X11 xkb extension.
700
Beyond Linux® From Scratch - Version 6.3
If you have D-BUS-1.0.2 installed, you can start the D-BUS session daemon here as well. Starting the session daemon
here has the added bonus that it will exit when you log out of your KDE session. If you wish to start the daemon here,
use the following command instead of the one shown above:
Note
Check the ~/.xinitrc file and ensure you have no other window managers or other X applications
mentioned before KDE.
If you installed the desktop-file-utils-0.13 package, ensure the XDG_DATA_DIRS and XDG_CONFIG_DIRS
environment variables are configured properly as explained in that package and update the MIME-type application
database (as root):
update-desktop-database
ldconfig
startx
701
Beyond Linux® From Scratch - Version 6.3
702
Beyond Linux® From Scratch - Version 6.3
Kdeadmin-3.5.9
Introduction to Kdeadmin
Kdeadmin provides several KDE clients useful for managing a system. Clients include programs for managing users,
initialization files, cron, and network connections.
Package Information
• Download (HTTP): http://mirrors.isc.org/pub/kde/stable/3.5.9/src/kdeadmin-3.5.9.tar.bz2
• Download (FTP): ftp://ftp.kde.org/pub/kde/stable/3.5.9/src/kdeadmin-3.5.9.tar.bz2
• Download MD5 sum: e6607ea27b332616d20f4564656cb885
• Download size: 2.1 MB
• Estimated disk space required: 25 MB
• Estimated build time: 1.1 SBU
Kdeadmin Dependencies
Required
kdebase-3.5.9
Recommended
libjpeg-6b and libxml2-2.6.31
Optional
Linux-PAM-0.99.10.0 and LILO
Run-Time Dependencies
kcron requires a cron implementation, such as Vixie Cron, at run time. It is not compatible with Fcron-3.0.3.
Installation of Kdeadmin
Install kdeadmin with:
make install
Contents
Installed Programs: kcron, kdat, kpackage, ksysv, and kuser
Installed Libraries: None
Installed Directories: None
703
Beyond Linux® From Scratch - Version 6.3
Short Descriptions
kcron is a task scheduler.
kdat is a tar-based tape archiver.
kpackage is a package manager.
ksysv is a Sys V-Init editor.
kuser is a graphical user manager.
704
Beyond Linux® From Scratch - Version 6.3
Kdenetwork-3.5.9
Introduction to Kdenetwork
Kdenetwork provides several KDE applications useful in a networking environment. Applications include clients for
chat, PPP, news, instant messages, and similar programs.
Package Information
• Download (HTTP): http://mirrors.isc.org/pub/kde/stable/3.5.9/src/kdenetwork-3.5.9.tar.bz2
• Download (FTP): ftp://ftp.kde.org/pub/kde/stable/3.5.9/src/kdenetwork-3.5.9.tar.bz2
• Download MD5 sum: 0ec1d4ccd550510821a622eb91b893e8
• Download size: 9.0 MB
• Estimated disk space required: 194 MB (additional 26 MB for API docs)
• Estimated build time: 12 SBU (additional 0.2 SBU for API docs
Kdenetwork Dependencies
Required
kdebase-3.5.9
Recommended
libjpeg-6b, libxml2-2.6.31, libxslt-1.1.22, and OpenSSL-0.9.8g
Optional
PPP-2.4.4, XMMS-1.2.10, Graphviz-2.12, Doxygen-1.5.2, Wireless Tools-28, Speex-1.0.5, ALSA-1.0.13, gsmlib,
Meanwhile, OpenSLP, libgadu, and Valgrind
Installation of Kdenetwork
Install kdenetwork with:
./configure --prefix=$KDE_PREFIX --disable-debug \
--disable-dependency-tracking &&
make
Note
If you wish to create the API documentation and you have Doxygen and Graphviz installed, make apidox
must be done before make install.
Configuring Kdenetwork
Config Files
/etc/lisarc and ~/.lisarc
705
Beyond Linux® From Scratch - Version 6.3
Configuration Information
To utilize the LAN Browser of konqueror you will need to create the /etc/lisarc file and start the lisa daemon.
Create /etc/lisarc by filling out the information in the “Guided LISa Setup” section of the “LISa Daemon” tab
on the “Control Center” — “Internet & Network” — “Local Network Browsing” dialog box.
Install the /etc/rc.d/init.d/lisa init script included in the blfs-bootscripts-20080816 package.
make install-lisa
There is no explicit configuration for the rest of the kdenetwork package, however some individual programs need
to be set up with user information.
Contents
Installed Programs: kdict, kget, knewsticker, kopete, kpf, kppp, krdc, krfb, ksirc, ktalkd, kwifimanager, and
lisa
Installed Libraries: None
Installed Directories: None
Short Descriptions
kdict is a graphical client for the Dictionary Server Protocol (DICT).
kget allows you to group downloads.
knewsticker is a news applet for the KDE Application Launcher Panel.
kopete is KDE's multi-protocol instant messenger client.
kpf allows you to share files over a network.
kppp is a dial-up utility.
krdc is a client application that allows you to view or even control the desktop session on another
machine that is running a compatible (VNC) server.
krfb is a server application that allows you to share your current session with a user on another
machine, who can use a VNC client to view or even control the desktop.
ksirc is a chat client.
ktalkd is an enhanced talk daemon—a program to handle incoming talk requests, announce them and
allow you to respond to them using a talk client.
kwifimanager is used to configure and monitor wireless LAN cards.
lisa is intended to provide a kind of network neighborhood, but only relying on the TCP/IP protocol
stack.
706
Beyond Linux® From Scratch - Version 6.3
Kdepim-3.5.9
Introduction to Kdepim
Kdepim provides several KDE programs for managing personal information. Programs include a contact manager,
calendar, mail utilities, newsreader, X.509 certificat manager, and sticky notes.
Package Information
• Download (HTTP): http://mirrors.isc.org/pub/kde/stable/3.5.9/src/kdepim-3.5.9.tar.bz2
• Download (FTP): ftp://ftp.kde.org/pub/kde/stable/3.5.9/src/kdepim-3.5.9.tar.bz2
• Download MD5 sum: ba27b06599556c572a26f03608471ee2
• Download size: 14.0 MB
• Estimated disk space required: 281 MB (additional 251 MB for API docs)
• Estimated build time: 22 SBU (additional 1 SBU for API docs)
Kdepim Dependencies
Required
kdebase-3.5.9
Recommended
libjpeg-6b, libxml2-2.6.31, GnuPG-1.4.7 or GnuPG-2.0.8, and OpenSSL-0.9.8g
Optional
kdeaccessibility-3.5.9, kdemultimedia-3.5.9, Cyrus SASL-2.1.22, pilot-link-0.12.2, GPGME (requires
GnuPG-2.0.8), OpenSync, libmal, gnokii, BlueZ, Boost, Graphviz-2.12, and Doxygen-1.5.2
Installation of Kdepim
Install kdepim with:
Note
If you wish to create the API documentation and you have Doxygen and Graphviz installed, make apidox
must be done before make install.
make install
707
Beyond Linux® From Scratch - Version 6.3
Contents
Installed Programs: akregator, kaddressbook, kalarm, kandy, karm, kitchensync, kleopatra, kmail, knode,
knotes, konsolekalendar, kontact, korganizer, korn, kpilot, ktnef, kwatchgnupg, and
supporting programs
Installed Libraries: Numerous kdepim specific libraries
Installed Directories: Numerous subdirectories in $KDE_PREFIX/{include,share}
Short Descriptions
akregator is a program to read RSS and other online news feeds.
kaddressbook is the KDE address book.
kalarm is a system to provide reminder messages.
kandy is a program to synchronize mobile phone numbers.
karm is a personal time tracker.
kitchensync is the universal syncing tool and framework for kde.
kleopatra is a tool for managing X.509 certificates in a GpgSM keybox and for retrieving certificates
from LDAP servers.
kmail is KDE's email client.
knode is the KDE newsreader.
knotes is a popup notes utility.
konsolekalendar is a command line interface to KDE calendars.
kontact is the integrated solution to personal information management (PIM) needs.
korganizer is a personal calendar/todo system.
korn is a KDE mail checker that has the capabilities to dock itself to kicker.
kpilot is a program to synchronize a Palm-Pilot.
ktnef allows handling mail attachments using the TNEF format. Those attachments are usually
found in mails coming from Microsoft® mail servers and embed the mail properties as well
as the actual attachments.
kwatchgnupg is simpleGnuPG log viewer.
708
Beyond Linux® From Scratch - Version 6.3
Kdemultimedia-3.5.9
Introduction to Kdemultimedia
Kdemultimedia provides several KDE programs to work with sound. Programs include applications for a jukebox, a
soundcard mixer, a midi and karaoke player, and a recording application for aRts.
In this version of Kdemultimedia, some of the functionality provided by the package has been moved into a separate
project named Akode. In order for Kdemultimedia to provide the removed functionality, you must install the Akode
package first. Instructions to install Akode follow. If you wish to skip the Akode installation, go straight to the
Kdemultimedia Instructions.
Akode-2.0.2
Package Information
• Download (HTTP): http://www.kde-apps.org/CONTENT/content-files/30375-akode-2.0.2.tar.bz2
• Download (FTP): ftp://anduin.linuxfromscratch.org/BLFS/6.3/a/30375-akode-2.0.2.tar.bz2
• Download MD5 sum: 659ced0c9c735cb3e55b9138ff02342c
• Download size: 462 KB
• Estimated disk space required: 6.5 MB
• Estimated build time: 0.2 SBU
Additional Downloads
• Reqiured patch (for FFmpeg support): http://www.linuxfromscratch.org/patches/blfs/6.3/akode-2.0.2-FFmpeg_
fixes-1.patch
Akode Dependencies
Optional
pkg-config-0.22, FLAC-1.2.1, Speex-1.0.5, libmad-0.15.1b, ALSA-1.0.13, libvorbis-1.2.0, Secret Rabbit Code (a.k.a.
libsamplerate), PulseAudio, JACK, and FFmpeg-svn_20070606 (support is experimental)
Installation of Akode
Install Akode by issuing the following commands:
make install
709
Beyond Linux® From Scratch - Version 6.3
Command Explanations
--without-ffmpeg: This option disables the experimental FFmpeg support in Akode, as the build fails if it is
enabled. You can install the patch listed above and remove this switch to enable the experimental FFmpeg support,
however, the functionality of Akode built with FFmpeg support has not been tested by the BLFS editors. To install
the patch, issue the following command before beginning the build:
Kdemultimedia Dependencies
Required
kdebase-3.5.9
Recommended
libjpeg-6b, libxml2-2.6.31, and ALSA-1.0.13
Optional
Akode-2.0.2, CDParanoia-III-9.8, LAME-3.97, Audio File-0.2.6, libvorbis-1.2.0, xine Libraries-1.1.12, FLAC-1.2.1
(built with libogg-1.1.3 support), GStreamer-0.10.13, Theora, TagLib, TunePimp (requires libmusicbrainz-2.1.5),
Graphviz-2.12, and Doxygen-1.5.2
Installation of Kdemultimedia
Install kdemultimedia with:
Note
If you wish to create the API documentation and you have Doxygen and Graphviz installed, make apidox
must be done before make install.
make install
710
Beyond Linux® From Scratch - Version 6.3
Contents
Installed Programs: artsbuilder, artscontrol, juk, kaboodle, kaudiocreator, kmid, kmix, kmixctrl, krec,
kscd, midisend, mpeglibartsplay, noatun, workman2cddb.pl, yaf-cdda, yaf-mpgplay,
yaf-splay, yaf-tplay, yaf-vorbis, and yaf-yuv
Installed Libraries: Numerous kdemultimedia specific libraries
Installed Directories: The following subdirectories in $KDE_PREFIX: include/{libkcddb, mpeglib, noatun},
lib/mcop/Noatun, and share/apps/{too many to list}
Short Descriptions
artsbuilder is a tool to create new structures of small connected aRts modules.
juk is a jukebox, tagger, and music collection manager.
kaboodle is a multimedia player.
kaudiocreator is a front-end tool for ripping audio CDs and encoding the wav files.
kmid is a midi/karaoke player.
kmix is a sound mixer.
krec is a recording frontend for aRts.
kscd is a CD player.
noatun is another multimedia player.
711
Beyond Linux® From Scratch - Version 6.3
Kdegraphics-3.5.9
Introduction to Kdegraphics
Kdegraphics provides KDE programs to manage the video display and graphical output. Applications include PDF,
DVI, and Postscript viewers, an application to adjust monitor gamma correction, a 3D modeling application to
generate POV-Ray scenes, and a scanner application.
Package Information
• Download (HTTP): http://mirrors.isc.org/pub/kde/stable/3.5.9/src/kdegraphics-3.5.9.tar.bz2
• Download (FTP): ftp://ftp.kde.org/pub/kde/stable/3.5.9/src/kdegraphics-3.5.9.tar.bz2
• Download MD5 sum: 3d75e27180573a4e077e0245055891a5
• Download size: 7.1 MB
• Estimated disk space required: 150 MB (additional 37 MB for API docs)
• Estimated build time: 7.5 SBU (additional 0.6 SBU for API docs)
Kdegraphics Dependencies
Required
kdebase-3.5.9
Recommended
libjpeg-6b, libxml2-2.6.31, and libart_lgpl-2.3.19
Optional
LibTIFF-3.8.2, Imlib (not recommended: obsolete, abandoned upstream, buggy, needed only for the kuickshow
image viewer, to which kview is a better alternative), little cms-1.16, Poppler-0.5.4 (libpoppler-qt.so must
have been built), SANE-1.0.18, teTeX-3.0, FriBidi-0.10.8, libgphoto2, t1lib, OpenEXR, libpaper, KADMOS (a
commercial OCR engine), Graphviz-2.12, and Doxygen-1.5.2
Run-Time Dependencies
The kooka utility is a scanning and OCR program. In order for kooka to utilize the OCR capabilities, you must
install an OCR engine. kooka provides full OCR support using the KADMOS and GOCR engines and partial support
using the Ocrad engine.
The kghostview program requires a ghostscript interpreter from AFPL Ghostscript-8.53 or ESP Ghostscript-8.15.4
to process PS or PDF files.
The kpovmodeler program requires POV-Ray to render 3D scenes.
Installation of Kdegraphics
Install kdegraphics with:
712
Beyond Linux® From Scratch - Version 6.3
Note
If you wish to create the API documentation and you have Doxygen and Graphviz installed, make apidox
must be done before make install.
make install
Contents
Installed Programs: kcolorchooser, kcoloredit, kdvi, kfax, kfaxview, kghostview, kiconedit, kolourpaint,
kooka, kpdf, kpovmodeler, kruler, ksnapshot, kuickshow, kview, kviewshell,
mrmlsearch, printnodetest, svgdisplay, and xf86gammacfg
Installed Libraries: kio_kamera and several other kdegraphics specific libraries and support modules
Installed Directories: The following subdirectories in $KDE_PREFIX: include/{svg, kviewshell,
libtext2path-0.1}, share/applnk/Graphics, share/apps/{too many to list}, and
share/config/magic
Short Descriptions
kcolorchooser is a color chooser for a given pallette.
kcoloredit is a color pallette editor.
kdvi is a DVI viewer.
kfax is a FAX viewer.
kfaxview is a FAX previewer used with kviewshell.
kghostview is a PS/PDF viewer.
kiconedit is an icon editor.
kolourpaint is a paint program.
kooka is a raster image scan program.
kpdf is a PDF viewer.
kpovmodeler is a graphical 3D modeler, which can generate scenes for POV-Ray.
kruler is a screen ruler.
ksnapshot is a screen capture program.
kuickshow is an image viewer.
kview is another image viewer.
kviewshell is a generic framework for the KDE viewer applications.
xf86gammacfg is a simple tool for monitor gamma correction.
kio_kamera is an ioslave that allows you to view and download images from a digital camera using the
kamera:/ URL in konqueror.
713
Beyond Linux® From Scratch - Version 6.3
Kdeutils-3.5.9
Introduction to Kdeutils
Kdeutils provides KDE programs for miscellaneous tasks. Programs include a calculator, a note taker, a basic editor,
a floppy disk manager, and a binary editor.
Package Information
• Download (HTTP): http://mirrors.isc.org/pub/kde/stable/3.5.9/src/kdeutils-3.5.9.tar.bz2
• Download (FTP): ftp://ftp.kde.org/pub/kde/stable/3.5.9/src/kdeutils-3.5.9.tar.bz2
• Download MD5 sum: dbe5ddff57141f27778601df5571e182
• Download size: 3.0 MB
• Estimated disk space required: 64 MB (additional 8 MB for API docs)
• Estimated build time: 3.7 SBU (additional 0.2 SBU for API docs)
Kdeutils Dependencies
Required
kdebase-3.5.9
Recommended
libjpeg-6b, libxml2-2.6.31, and GMP-4.2.2 (required for KCalc)
Optional
Net-SNMP, tpctl (for Thinkpad support), Python-2.5.2, XMMS-1.2.10, Graphviz-2.12, and Doxygen-1.5.2
Run-Time Dependencies
Several programs included in kdeutils are frontends for other software, and so require these external programs to
be present at run time. kgpg requires GnuPG-1.4.7 or GnuPG-2.0.8, kdessh requires OpenSSH-4.7p1, while irkick
requires LIRC. The ark program will require appropriate utilities to handle various archives, including Zip-2.32,
UnZip-5.52, JDK-6 Update 5 (for the jar program), Unrar-3.7.8, rar (binary only shareware), p7zip, zoo, and
ncompress.
Installation of Kdeutils
Install kdeutils with:
./configure --prefix=$KDE_PREFIX --disable-debug \
--disable-dependency-tracking &&
make
Note
If you wish to create the API documentation and you have Doxygen and Graphviz installed, make apidox
must be done before make install.
714
Beyond Linux® From Scratch - Version 6.3
make install
Contents
Installed Programs: ark, irkick, kcalc, kcharselect, kdessh, kdf, kedit, kfloppy, kgpg, khexedit,
kjots, klaptop_acpi_helper, klaptop_check, kregexpeditor, ktimer, kwalletmanager,
kwikdisk, and superkaramba
Installed Libraries: Several kdeutils specific libraries
Installed Directories: Several subdirectories in $KDE_PREFIX/share
Short Descriptions
ark is an archiving tool.
irkick is the infrastructure for KDE's Infrared Remote Control functionality; irkick is the server
component of that infrastructure.
kcalc is a scientific calculator.
kcharselect is a character selector applet.
kdessh is a graphical interface to OpenSSH-4.7p1
kdf is a disk usage viewer.
kedit is a text editor.
kfloppy is a floppy formatter.
kgpg a simple graphical interface for GnuPG-1.4.7.
khexedit is a binary editor.
kjots is a note taker.
kregexpeditor is an editor for editing regular expressions in a graphical style (in contrast to the ASCII
syntax).
ktimer is a task scheduler.
kwalletmanager provides a secure way to manage passwords.
superkaramba is a tool to create interactive widgets on a KDE desktop.
715
Beyond Linux® From Scratch - Version 6.3
Kdeedu-3.5.9
Introduction to Kdeedu
Kdeedu provides KDE programs useful in learning. Programs include a touch typing tutor, a program to help
revise/teach Latin, a desktop planetarium, an application to study Spanish verbforms, and the classic hangman game
for children.
Package Information
• Download (HTTP): http://mirrors.isc.org/pub/kde/stable/3.5.9/src/kdeedu-3.5.9.tar.bz2
• Download (FTP): ftp://ftp.kde.org/pub/kde/stable/3.5.9/src/kdeedu-3.5.9.tar.bz2
• Download MD5 sum: cbdabe916ce6fa300f8dab972c5cb4a4
• Download size: 29.0 MB
• Estimated disk space required: 205 MB
• Estimated build time: 6.5 SBU
Kdeedu Dependencies
Required
kdebase-3.5.9
Recommended
Optional
Installation of Kdeedu
Install kdeedu with:
make install
Contents
Installed Programs: flashkard, kalzium, kbruch, keduca, khangman, kig, kiten, klettres, kmathtool,
kmessedwords, kmplot, kpercentage, kstars, ktouch, kverbos, and kvoctrain
Installed Libraries: Several kdeedu specific libraries
Installed Directories: Several subdirectories of $KDE_PREFIX/share
716
Beyond Linux® From Scratch - Version 6.3
Short Descriptions
kalzium is a program which shows you the Periodic System of Elements.
kbruch is a small program to generate tasks with fractions.
keduca is flash card application, which allows you to make interactive form based tests..
khangman is the classical hangman game for children, adapted for KDE.
kig is a KDE application for Interactive Geometry.
kiten is a Japanese reference/study tool for KDE.
klettres is an alphabet tutor (French).
kmessedwords is a simple mind-training word game.
kmplot is a mathematical function plotter for KDE.
kpercentage is a small math application that will help pupils to improve their skills in calculating percentages.
kstars is a desktop planetarium.
ktouch is a touch typing tutor.
kverbos is an application specially designed to study Spanish verb forms.
kvoctrain is a vocabulary trainer.
717
Beyond Linux® From Scratch - Version 6.3
Kdeaccessibility-3.5.9
Introduction to Kdeaccessibility
Kdeaccessibility provides KDE programs to aid handicapped users. Programs include a screen magnifier, a text to
speech plugin service to allow an application to speak using the DCOP interface, and an application for computer
speech for mute users.
Package Information
• Download (HTTP): http://mirrors.isc.org/pub/kde/stable/3.5.9/src/kdeaccessibility-3.5.9.tar.bz2
• Download (FTP): ftp://ftp.kde.org/pub/kde/stable/3.5.9/src/kdeaccessibility-3.5.9.tar.bz2
• Download MD5 sum: 79c7fa53ec60ad51fbdb16aac56d85a1
• Download size: 8.4 MB
• Estimated disk space required: 57 MB
• Estimated build time: 2.1 SBU
Kdeaccessibility Dependencies
Required
kdebase-3.5.9
Recommended
libjpeg-6b, libxml2-2.6.31, and ALSA-1.0.13
Optional
Akode-2.0.2
Run-Time Dependencies
Several KDE accessibility programs access other programs at run time for rendering speech from text. These include
FreeTTS-1.2.1, Festival, Festival Lite, Epos, or MBROLA with optionally Txt2pho.
Installation of Kdeaccessibility
Install kdeaccessibility with:
./configure --prefix=$KDE_PREFIX --disable-debug \
--disable-dependency-tracking &&
make
This package does not come with a test suite.
Now, as the root user:
make install
Contents
Installed Programs: kmag, kmousetool, and kmouth
Installed Libraries: kdeaccessibility support libraries
Installed Directories: None
718
Beyond Linux® From Scratch - Version 6.3
Short Descriptions
kmag is a screen magnifier for KDE.
kmousetool is a utility which clicks the mouse whenever the mouse cursor pauses briefly.
kmouth is an application that enables persons that cannot speak to let their computers speak.
719
Beyond Linux® From Scratch - Version 6.3
Kdetoys-3.5.9
Introduction to Kdetoys
Kdetoys includes KDE applications for a world clock, an applet showing the phases of the moon, and the ability to
track weather stations.
Package Information
• Download (HTTP): http://mirrors.isc.org/pub/kde/stable/3.5.9/src/kdetoys-3.5.9.tar.bz2
• Download (FTP): ftp://ftp.kde.org/pub/kde/stable/3.5.9/src/kdetoys-3.5.9.tar.bz2
• Download MD5 sum: 10fd55e004a582f87eed6796811bb3b8
• Download size: 3.2 MB
• Estimated disk space required: 21 MB
• Estimated build time: 0.9 SBU
Kdetoys Dependencies
Required
kdebase-3.5.9
Recommended
libjpeg-6b and libxml2-2.6.31
Installation of Kdetoys
Install kdetoys with:
make install
Contents
Installed Programs: amor, kmoon, kodo, kteatime, ktux, kweather, and kworldclock
Installed Libraries: kdetoys support libraries
Installed Directories: Support subdirectories in $KDE_PREFIX/share
Short Descriptions
amor Amusing Misuse of Resources.
kmoon is a Moon phase indicator.
kodo measures your desktop mileage.
720
Beyond Linux® From Scratch - Version 6.3
721
Beyond Linux® From Scratch - Version 6.3
Kdegames-3.5.9
Introduction to Kdegames
Kdegames provides many interesting games.
Package Information
• Download (HTTP): http://mirrors.isc.org/pub/kde/stable/3.5.9/src/kdegames-3.5.9.tar.bz2
• Download (FTP): ftp://ftp.kde.org/pub/kde/stable/3.5.9/src/kdegames-3.5.9.tar.bz2
• Download MD5 sum: 472385f21a692270fb5643d7617c7ff3
• Download size: 11.0 MB
• Estimated disk space required: 98 MB (additional 13 MB for API docs)
• Estimated build time: 3.2 SBU (additional 0.6 SBU for API docs)
Kdegames Dependencies
Required
kdebase-3.5.9
Recommended
libjpeg-6b and libxml2-2.6.31
Optional
Graphviz-2.12 and Doxygen-1.5.2
Installation of Kdegames
Install kdegames with:
./configure --prefix=$KDE_PREFIX --disable-debug \
--disable-dependency-tracking &&
make
Note
If you wish to create the API documentation and you have Doxygen and Graphviz installed, make apidox
must be done before make install.
Contents
Installed Programs: a compilation of various games
Installed Libraries: Support libraries for kdegames
Installed Directories: Subdirectories of $KDE_PREFIX/{include,share}
722
Beyond Linux® From Scratch - Version 6.3
Kdeartwork-3.5.9
Introduction to Kdeartwork
Kdeartwork provides additional KDE themes, screensavers, sounds, wallpapers, widget styles, and window styles.
Package Information
• Download (HTTP): http://mirrors.isc.org/pub/kde/stable/3.5.9/src/kdeartwork-3.5.9.tar.bz2
• Download (FTP): ftp://ftp.kde.org/pub/kde/stable/3.5.9/src/kdeartwork-3.5.9.tar.bz2
• Download MD5 sum: ec526eba38421fd3b143682b8d683c86
• Download size: 16.0 MB
• Estimated disk space required: 99 MB
• Estimated build time: 1.5 SBU
Kdeartwork Dependencies
Required
kdebase-3.5.9
Recommended
libjpeg-6b, libxml2-2.6.31, and libart_lgpl-2.3.19
Optional
XScreenSaver-5.03
Installation of Kdeartwork
Install kdeartwork with:
make install
Contents
Installed Objects: additional themes, screensavers, sounds, backgrounds, and widget styles for KDE
Installed Programs: None
Installed Libraries: None
Installed Directories: None
723
Beyond Linux® From Scratch - Version 6.3
Kdeaddons-3.5.9
Introduction to Kdeaddons
Kdeaddons provides additional plugins for konqueror, kate, and kicker.
Package Information
• Download (HTTP): http://mirrors.isc.org/pub/kde/stable/3.5.9/src/kdeaddons-3.5.9.tar.bz2
• Download (FTP): ftp://ftp.kde.org/pub/kde/stable/3.5.9/src/kdeaddons-3.5.9.tar.bz2
• Download MD5 sum: eaa3832a25b483d1a9613f75991c3d7b
• Download size: 1.7 MB
• Estimated disk space required: 48 MB
• Estimated build time: 5.7 SBU
Kdeaddons Dependencies
Required
kdebase-3.5.9
Recommended
libjpeg-6b and libxml2-2.6.31
Optional
kdenetwork-3.5.9, kdemultimedia-3.5.9, kdepim-3.5.9, kdegames-3.5.9, XMMS-1.2.10, and SDL-1.2.11
Installation of Kdeaddons
Install kdeaddons with:
make install
Contents
Installed Programs: Miscellaneous KDE support programs
Installed Libraries: Additional plugins, libraries, and scripts for KDE applications
Installed Directories: None
724
Beyond Linux® From Scratch - Version 6.3
Kde-i18n-3.5.9
Introduction to Kde-i18n
Kde-i18n is a set of internationalization packages to customize KDE for different languages and locales around the
world.
Package Information
• Download (HTTP): http://mirrors.isc.org/pub/kde/stable/3.5.9/src/kde-i18n/
• Download (FTP): ftp://ftp.kde.org/pub/kde/stable/3.5.9/src/kde-i18n/
• Download MD5 sum: http://mirrors.isc.org/pub/kde/stable/3.5.9/src/MD5SUMS
• Download size: 789 KB to 29 MB (average is about 3 MB)
• Estimated disk space required: varies
• Estimated build time: varies
Download Details
KDE has 52 separate internationalization packages in the form of:
kde-i18n-<xx>-3.5.9.tar.bz2
where the <xx> is a two to five letter code for the country covered. Download the package(s) you need from the
directories above.
Kde-i18n Dependencies
Required
kdebase-3.5.9
Recommended
libxml2-2.6.31
Installation of Kde-i18n
Install kde-i18n with:
make install
Configuring Kde-i18n
Configuration Information
To use translated programs, select Control Center —> Personalization —> Country & Language —> Language in
your K Desktop Environment.
725
Beyond Linux® From Scratch - Version 6.3
Contents
Installed Programs: None
Installed Libraries: Internationalization support for KDE
Installed Directories: None
726
Beyond Linux® From Scratch - Version 6.3
727
Beyond Linux® From Scratch - Version 6.3
Kdesdk-3.5.9
Introduction to Kdesdk
Kdesdk provides several applications useful for developers. Programs include a version control system front-end for
CVS, a program to view the differences between files, a UML Modeller, and a profile data visualization tool.
Package Information
• Download (HTTP): http://mirrors.isc.org/pub/kde/stable/3.5.9/src/kdesdk-3.5.9.tar.bz2
• Download (FTP): ftp://ftp.kde.org/pub/kde/stable/3.5.9/src/kdesdk-3.5.9.tar.bz2
• Download MD5 sum: fd86abfe0ac7c5af61b15eb5367d0399
• Download size: 5.1 MB
• Estimated disk space required: 112 MB
• Estimated build time: 6.7 SBU
Kdesdk Dependencies
Required
kdebase-3.5.9
Recommended
libjpeg-6b, Subversion-1.4.4, libxml2-2.6.31, and libxslt-1.1.22
Optional
kdepim-3.5.9
Run-Time Dependencies
Valgrind and CVS-1.11.22 are needed at run time for there respective frontends, kcachegrind and cervisia
Installation of Kdesdk
Install kdesdk with:
make install
Contents
Installed Programs: cervisia, kbabel, kcachegrind, kompare, and umbrello
Installed Libraries: Several kdesdk specific libraries
Installed Directories: Several subdirectories in $KDE_PREFIX/{include,share}
728
Beyond Linux® From Scratch - Version 6.3
Short Descriptions
cervisia provides a graphical view of CVS.
kbabel is a suite of an advanced PO file editor comprising kbabel, a multi functional catalogmanager
and a dictionary for translators kbabeldict.
kcachegrind is a KDE frontend for cachegrind, part of Valgrind.
kompare is a program to view the differences between files.
umbrello is a UML modelling diagram tool.
729
Beyond Linux® From Scratch - Version 6.3
Kdevelop-3.5.1
Introduction to Kdevelop
Kdevelop provides an Integrated Development Environment (IDE) to be used for a wide variety of programming
tasks.
Package Information
• Download (HTTP): http://mirrors.isc.org/pub/kde/stable/3.5.9/src/kdevelop-3.5.1.tar.bz2
• Download (FTP): ftp://ftp.kde.org/pub/kde/stable/3.5.9/src/kdevelop-3.5.1.tar.bz2
• Download MD5 sum: 80d2216a0089fe142735d34ae8de6a0c
• Download size: 9.1 MB
• Estimated disk space required: 187 MB (additional 23 MB for API docs)
• Estimated build time: 15 SBU (additional 0.2 SBU for API docs)
Kdevelop Dependencies
Required
kdebase-3.5.9
Recommended
libjpeg-6b, kdesdk-3.5.9, libxml2-2.6.31, and the apidox from kdelibs-3.5.9 (if building API documentation).
Optional
Python-2.5.2, DocBase, Graphviz-2.12, and Doxygen-1.5.2
Run-Time Dependencies
KDevelop can make use of a large number of external compilers or interpreters for supported languages, version
control systems, build tools , and debuggers at run time. Refer to http://www.kdevelop.org/index.html?filename=3.
5/requirements.html and the KDevelop User Manual to find out if your development environment is supported.
Installation of Kdevelop
Install kdevelop with:
Note
If you wish to create the API documentation and you have Doxygen and Graphviz installed, make apidox
must be done before make install.
730
Beyond Linux® From Scratch - Version 6.3
make install-apidox
Command Explanations
sed -i -e 's/ kdevutil$//' buildtools/lib/widgets/Makefile.in: Remove a duplicate entry on a line in the Makefile
that causes the build of the API documentation to fail.
chown -v -R root:root $KDE_PREFIX/kdevbdb: If kdevelop is built by any user other than root the installed
Berkeley-DB files will have incorrect ownership. This command changes the ownership to root:root.
Contents
Installed Programs: kdevelop and supporting programs
Installed Libraries: Supporting kdevelop libraries
Installed Directories: $KDE_PREFIX/kdevbdb and supporting subdirectoies in
$KDE_PREFIX/{include,share}
Short Descriptions
kdevelop is an Integrated Development Environment to be used for a wide variety of programming tasks in many
programming languages.
731
Beyond Linux® From Scratch - Version 6.3
Kdewebdev-3.5.9
Introduction to Kdewebdev
Kdewebdev includes KDE based programmers' utilities to generate GUI dialogs, a Web IDE, a stylesheet debugger,
and a utility to search and replace strings.
Package Information
• Download (HTTP): http://mirrors.isc.org/pub/kde/stable/3.5.9/src/kdewebdev-3.5.9.tar.bz2
• Download (FTP): ftp://ftp.kde.org/pub/kde/stable/3.5.9/src/kdewebdev-3.5.9.tar.bz2
• Download MD5 sum: e95d1fbb698ec76966abfa5bdf96bd5e
• Download size: 6.0 MB
• Estimated disk space required: 107 MB
• Estimated build time: 5.6 SBU
Kdewebdev Dependencies
Required
kdebase-3.5.9
Recommended
Optional
kdesdk-3.5.9
Run-Time Dependencies
The Quanta application included in kdewebdev can use several other utilities at run time. HTML Tidy-cvs_20070326
can be used to check the validity of HTML documents. Gubed is useful for debugging PHP scripts. GnuPG-1.4.7 or
GnuPG-2.0.8 can be used for checking digital signatures. Kompare, from kdesdk-3.5.9 can be used to view changes
to files modified outside of Quanta. Cervisia, also from kdesdk-3.5.9, is useful for interacting with CVS.
Installation of Kdewebdev
Install kdewebdev with:
make install
732
Beyond Linux® From Scratch - Version 6.3
Contents
Installed Programs: kxsldbg and quanta
Installed Libraries: kdewebdev specific libraries
Installed Directories: Several subdirectories in $KDE_PREFIX/share
Short Descriptions
kxsldbg is a GUI front-end to xsldbg, the XSLT debugger.
quanta is a web development tool that strives to be neutral and transparent to all markup languages, while
supporting popular web-based scripting languages, CSS, and other emerging W3C recommendations.
733
Beyond Linux® From Scratch - Version 6.3
Kdebindings-3.5.9
Introduction to Kdebindings
The kdebindings provides the ability to write KDE applications in a variety of languages including Ruby, Perl, Python,
Java, JavaScript, C#, and Smoke. For details see http://developer.kde.org/language-bindings/
Package Information
• Download (HTTP): http://mirrors.isc.org/pub/kde/stable/3.5.9/src/kdebindings-3.5.9.tar.bz2
• Download (FTP): ftp://ftp.kde.org/pub/kde/stable/3.5.9/src/kdebindings-3.5.9.tar.bz2
• Download MD5 sum: ba780920f6b810a30a61b1ffa888706b
• Download size: 5.5 MB
• Estimated disk space required: 490 MB
• Estimated build time: 18 SBU
Kdebindings Dependencies
Required
kdebase-3.5.9
Recommended
libjpeg-6b, libxml2-2.6.31, and libxslt-1.1.22
Optional
GLib-1.2.10, GTK+-1.2.10, Python-2.5.2, Ruby-1.8.6-p111, JDK-6 Update 5, SeaMonkey-1.1.9, QScintilla, Mono,
DotGNU Portable.NET, and Rotor
Installation of Kdebindings
Note: If KDE is installed in /opt/kde-3.5.9, you'll need to make a modification before the build using the
following command:
sed -i -e 's@/usr@/opt/kde-3.5.9@' \
python/pykde/configure.py
Install kdebindings with:
sed -i -e '/configure.*pyqt/s/-c//' \
-e '/configure.*pykde/s/-c/-i/' python/Makefile.in
sed -i 's%echo "yes" | @PYTHON@ configure.py%& -y qt-mt%' python/Makefile.in
DO_NOT_COMPILE="smoke" ./configure --prefix=$KDE_PREFIX --disable-debug \
--disable-dependency-tracking &&
make
This package does not come with a test suite.
Now, as the root user:
make install
734
Beyond Linux® From Scratch - Version 6.3
Command Explanations
sed -i -e '/configure.*pyqt/s/-c//' -e '/configure.*pykde/s/-c/-i/' python/Makefile.in : Remove a switch that causes
concatenation of multiple files for compilation. This fix reduces build time by a factor of five.
sed -i 's%echo "yes" | @PYTHON@ configure.py%& -y qt-mt%' python/Makefile.in: Specifies that the
libqt-mt.so library should be used to build the pyqt bindings. configure.py will fail if it finds both libqt-mt.
so and libqt.so.
DO_NOT_COMPILE="smoke" ./configure: Disables the building of the smoke module of kdebindings, as the
build is currently broken and no workaround has been found.
Contents
Installed Programs: Several support programs for software development
Installed Libraries: KDE bindings for various programming languages
Installed Directories: Subdirectories of /usr/lib and $KDE_PREFIX/share
735
Beyond Linux® From Scratch - Version 6.3
Introduction to GNOME
This chapter presents the instructions to install a complete GNOME-2.18.3 desktop environment. The order of the
installed packages follows the build order defined by the GNOME development team and has been thoroughly tested
by the BLFS team.
The installation of GNOME-2.18.3 is a large undertaking and one we would like to see you complete with the least
amount of stress. One of the first goals in this installation is to protect your previously installed software, especially
if you are testing GNOME on your machine. GNOME-2.18 packages utilize the --prefix=option passed to
configure, so you will use that and an environment variable (GNOME_PREFIX) to add flexibility to the installation.
To install GNOME as your desktop of choice, it is recommended that you install using --prefix=/usr. If you are
not sure that you are going to keep the GNOME installation, or you think you will update to the newest releases as they
become available, you should install with --prefix=/opt/gnome-2.18.3. Setting the environment variable
and the additional edits required by the second option are covered in the Pre-Installation Configuration section.
If you choose the second option, removal of GNOME-2.18.3 is as easy as removing the edits from the pre-installation
page and issuing the following command (you may need to become the root user):
rm -rf /opt/gnome-2.18.3
If your system was completely built per LFS and BLFS instructions, you have a very good chance of using
GNOME-2.18.3 after your first installation. 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.18.3 into your unique setup, but you will have to install well over
50 packages before you can run GNOME through any testing (assuming your windowing system is preinstalled and
tested). You should anticipate that you will be rebuilding GNOME at least once to make adjustments for your setup.
Caution
The BLFS team recommends that you carefully evaluate the optional dependencies listed for each of the
core GNOME packages. You may lose desired functionality if you don't install an optional dependency
before the package that lists the dependency, even if you later install it.
Pre-installation Configuration
Set an environment variable to resolve the prefix destination.
export GNOME_PREFIX=/usr
Note
You may wish to create a symbolic link to the actual versioned directory using a non-versioned name. This
has the advantage of an easier path to type in all the changes below and also makes it easy to point to a
different/newer version of GNOME without changing all the edits below. If you wish to use a non-versioned
name in the changes below, issue the following commands as the root user:
If you created the symbolic link, change all instances of /opt/gnome-2.18.3 to /opt/gnome in the instructions
below.
export GNOME_PREFIX=/opt/gnome-2.18.3
The try-out group will also need to make all the following configuration changes:
export PATH=$PATH:/opt/gnome-2.18.3/bin
export PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/opt/gnome-2.18.3/lib/pkgconfig
export PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/opt/gnome-2.18.3/share/pkgconfig
export GNOME_LIBCONFIG_PATH=/usr/lib:/opt/gnome-2.18.3/lib
738
Beyond Linux® From Scratch - Version 6.3
/opt/gnome-2.18.3/lib
MANDATORY_MANPATH /opt/gnome-2.18.3/share/man
Tip
Remember to execute ldconfig as the root user after installation of libraries to update the linker's library
cache.
739
Beyond Linux® From Scratch - Version 6.3
ORBit2-2.14.7
Introduction to ORBit2
The ORBit2 package contains a high-performance CORBA Object Request Broker. This allows programs to send
requests and receive replies from other programs.
Package Information
• Download (HTTP): http://ftp.gnome.org/pub/gnome/sources/ORBit2/2.14/ORBit2-2.14.7.tar.bz2
• Download (FTP): ftp://ftp.gnome.org/pub/gnome/sources/ORBit2/2.14/ORBit2-2.14.7.tar.bz2
• Download MD5 sum: 3440c44aaef14dd96e4ccd7ce22a7e6e
• Download size: 729 KB
• Estimated disk space required: 34 MB
• Estimated build time: 0.6 SBU
ORBit2 Dependencies
Required
libIDL-0.8.8
Optional
Installation of ORBit2
Install ORBit2 by running the following commands:
./configure --prefix=$GNOME_PREFIX \
--sysconfdir=/etc/gnome/2.18.3 &&
make
make install
Command Explanations
--prefix=$GNOME_PREFIX: This is the base installation for GNOME-2 from which all future package
installations will receive their prefix parameter. Be sure that $GNOME_PREFIX is set for this install or globally to
your install directory as described in the introduction of this Chapter.
--sysconfdir=/etc/gnome/2.18.3: This parameter causes the configuration files to be installed in
/etc/gnome/2.18.3 instead of $GNOME_PREFIX/etc. Additionally (if applicable), the parameter ensures
that the GConf-2 database is correctly updated.
--enable-gtk-doc: Use this parameter if GTK-Doc is installed and you wish to rebuild the API documentation.
740
Beyond Linux® From Scratch - Version 6.3
Contents
Installed Programs: ior-decode-2, linc-cleanup-sockets, orbit-idl-2, orbit2-config and typelib-dump
Installed Libraries: libname-server-2.a, libORBit-2.{so,a}, libORBit-imodule-2.{so,a},
libORBitCosNaming-2.{so,a}, and Everything_module.{so,a}
Installed Directories: The following subdirectories of $GNOME_PREFIX/: include/orbit-2.0, lib/orbit-2.0
and share/{gtk-doc/html/ORBit2, idl/orbit-2.0}
Short Descriptions
libORBit-2.{so,a} is the CORBA API.
741
Beyond Linux® From Scratch - Version 6.3
libbonobo-2.18.0
Introduction to libbonobo
The libbonobo package contains libbonobo libraries. This is a component and compound document system for
GNOME-2.
Package Information
• Download (HTTP): http://ftp.gnome.org/pub/gnome/sources/libbonobo/2.18/libbonobo-2.18.0.tar.bz2
• Download (FTP): ftp://ftp.gnome.org/pub/gnome/sources/libbonobo/2.18/libbonobo-2.18.0.tar.bz2
• Download MD5 sum: 8f0676e63420abf622f799cdd24ed9cc
• Download size: 1.4 MB
• Estimated disk space required: 38 MB
• Estimated build time: 0.7 SBU
libbonobo Dependencies
Required
ORBit2-2.14.7, libxml2-2.6.31, popt-1.10.4, and XML::Parser-2.34
Optional
X Window System, intltool-0.35.5, and GTK-Doc-1.8
Installation of libbonobo
Install libbonobo by running the following commands:
./configure --prefix=$(pkg-config --variable=prefix ORBit-2.0) \
--sysconfdir=/etc/gnome/2.18.3 \
--libexecdir=$(pkg-config \
--variable=prefix ORBit-2.0)/lib/bonobo \
--mandir=$(pkg-config \
--variable=prefix ORBit-2.0)/share/man &&
make
To test the results, issue: make check.
Now, as the root user:
make install
Command Explanations
--prefix=$(pkg-config --variable=prefix ORBit-2.0): Setting the prefix using this parameter
instead of with $GNOME_PREFIX will ensure that the prefix is consistent with the installation environment and the
package will be installed in the correct location.
--sysconfdir=/etc/gnome/2.18.3: This parameter causes the configuration files to be installed in
/etc/gnome/2.18.3 instead of $GNOME_PREFIX/etc. Additionally (if applicable), the parameter ensures
that the GConf-2 database is correctly updated.
742
Beyond Linux® From Scratch - Version 6.3
Contents
Installed Programs: activation-client, bonobo-slay, echo-client-2, bonobo-activation-run-query,
bonobo-activation-server, and bonobo-activation-sysconf
Installed Libraries: libbonobo-2.{so,a}, libbonobo-activation.{so,a}, ORBit-2 bonobo module, bonobo
servers, and libmoniker_std_2.{so,a} bonobo library
Installed Directories: /etc/gnome/2.18.3/bonobo-activation and the following subdirectories
of $GNOME_PREFIX/: include/{bonobo-activation-2.0,libbonobo-2.0},
lib/{bonobo{,-2.0},libbonobo}, and
share/{gtk-doc/html/{bonobo-activation,libbonobo}, idl/bonobo-{,activation-}2.0}
Short Descriptions
libbonobo-2.{so,a} are a set of language and system independent CORBA interfaces for creating reusable
components and compound documents.
743
Beyond Linux® From Scratch - Version 6.3
GConf-2.18.0.1
Introduction to GConf
The GConf package contains a configuration database system.
Package Information
• Download (HTTP): http://ftp.gnome.org/pub/gnome/sources/GConf/2.18/GConf-2.18.0.1.tar.bz2
• Download (FTP): http://ftp.gnome.org/pub/gnome/sources/GConf/2.18/GConf-2.18.0.1.tar.bz2
• Download MD5 sum: aa0e0a0729fb021bab72b4166fd392f9
• Download size: 1.3 MB
• Estimated disk space required: 32 MB
• Estimated build time: 0.4 SBU
GConf Dependencies
Required
ORBit2-2.14.7 and libxml2-2.6.31
Optional
GTK+-2.10.13, OpenLDAP-2.3.39, intltool-0.35.5, and GTK-Doc-1.8
Installation of GConf
Install GConf by running the following commands:
./configure --prefix=$(pkg-config --variable=prefix ORBit-2.0) \
--sysconfdir=/etc/gnome/2.18.3 \
--libexecdir=$(pkg-config \
--variable=prefix ORBit-2.0)/lib/GConf \
--mandir=$(pkg-config \
--variable=prefix ORBit-2.0)/share/man &&
make
This package does not come with a test suite.
Now, as the root user:
make install
Command Explanations
--prefix=$(pkg-config --variable=prefix ORBit-2.0): Setting the prefix using this parameter
instead of with $GNOME_PREFIX will ensure that the prefix is consistent with the installation environment and the
package will be installed in the correct location.
--sysconfdir=/etc/gnome/2.18.3: This parameter causes the GConf-2 configuration database to be built
in /etc/gnome/2.18.3 instead of $GNOME_PREFIX/etc. This installation controls all future installations of
GConf-2 schemas. If you change the location (which includes eliminating this parameter), it must be consistent for
every subsequent package installation that updates the GConf-2 configuration database.
744
Beyond Linux® From Scratch - Version 6.3
Contents
Installed Programs: gconf-merge-tree and gconftool-2
Installed Library: libgconf-2.{so,a}
Installed Directories: /etc/gnome/2.18.3/gconf and the following subdirectories of $GNOME_PREFIX/:
include/gconf, lib/GConf and share/{GConf, gtk-doc/html/gconf, sgml/gconf}
Short Descriptions
gconf-merge-tree merges an xml filesystem hierarchy.
gconftool-2 is a command line tool for manipulating the GConf database.
libgconf-2.{so,a} provide the functions necessary to maintain the configuration database.
745
Beyond Linux® From Scratch - Version 6.3
shared-mime-info-0.21
The shared-mime-info-0.21 package is located in Chapter 26 — X Libraries and is required by GNOME-2 but is
not a direct dependency of any GNOME-2 package, therefore the package is mentioned within the GNOME-2 Core
Packages (Platform section) chapter to ensure it is installed.
746
Beyond Linux® From Scratch - Version 6.3
Package Information
• Download (HTTP): http://ftp.gnome.org/pub/gnome/sources/gnome-mime-data/2.4/gnome-mime-data-2.4.3.tar.
bz2
• Download (FTP): ftp://ftp.gnome.org/pub/gnome/sources/gnome-mime-data/2.4/gnome-mime-data-2.4.3.tar.bz2
• Download MD5 sum: 2abe573a6e84b71c58a661d4bafa9bd6
• Download size: 563 KB
• Estimated disk space required: 12 MB
• Estimated build time: less than 0.1 SBU
Command Explanations
--prefix=$(pkg-config --variable=prefix ORBit-2.0): Setting the prefix using this parameter
instead of with $GNOME_PREFIX will ensure that the prefix is consistent with the installation environment and the
package will be installed in the correct location.
747
Beyond Linux® From Scratch - Version 6.3
Contents
Installed Programs: None
Installed Libraries: None
Installed Directories: $GNOME_PREFIX/share/{application-registry, share/mime-info}
Short Descriptions
application-registry contains the application mime database.
mime-info contains the mime description database.
748
Beyond Linux® From Scratch - Version 6.3
hicolor-icon-theme-0.10
The hicolor-icon-theme-0.10 package is located in Chapter 26 — X Libraries and is recommended in a GNOME-2
installation. This package is not a direct dependency of any GNOME-2 package, therefore it is mentioned within the
GNOME-2 Core Packages chapter to ensure it is installed.
desktop-file-utils-0.13
The desktop-file-utils-0.13 package is located in Chapter 10 — General Utilities and is required by GNOME-2 but is
not a direct dependency of any GNOME-2 package, therefore the package is mentioned within the GNOME-2 Core
Packages (Platform section) chapter to ensure it is installed.
749
Beyond Linux® From Scratch - Version 6.3
Package Information
• Download (HTTP): http://ftp.gnome.org/pub/gnome/sources/gnome-vfs/2.18/gnome-vfs-2.18.1.tar.bz2
• Download (FTP): ftp://ftp.gnome.org/pub/gnome/sources/gnome-vfs/2.18/gnome-vfs-2.18.1.tar.bz2
• Download MD5 sum: bf4a6d95180d05981893e5d021c6695c
• Download size: 1.9 MB
• Estimated disk space required: 56 MB
• Estimated build time: 1.3 SBU
Optional
Samba-3.0.30, Gamin-0.1.9, HAL-0.5.9.1, GTK-Doc-1.8, intltool-0.35.5, OpenSSH-4.7p1, OpenSSL-0.9.8g or
GnuTLS-1.6.3, Heimdal-1.1 or MIT Kerberos V5-1.6, Avahi, OpenAFS, and CDParanoia-III-9.8 (not recommended)
If you run ./configure --help for the complete list of dependency requirements and available parameters, you may
notice a message about the gnome-mount-0.6 package. This package is not required at build-time, and is only a
run-time dependency. If gnome-mount is available at run-time, GNOME-VFS will use it. If it is not available,
GNOME-VFS will fall back to using other mounting mechanisms.
Command Explanations
--prefix=$(pkg-config --variable=prefix ORBit-2.0): Setting the prefix using this parameter
instead of with $GNOME_PREFIX will ensure that the prefix is consistent with the installation environment and the
package will be installed in the correct location.
750
Beyond Linux® From Scratch - Version 6.3
Contents
Installed Programs: gnomevfs-cat, gnomevfs-copy, gnomevfs-info, gnomevfs-ls, gnomevfs-mkdir,
gnomevfs-mv, gnomevfs-rm, and gnome-vfs-daemon
Installed Libraries: libgnomevfs-2.{so,a} and modules
Installed Directories: The following subdirectories of /etc/gnome/2.18.3/: gconf/{schemas,
gconf.xml.defaults/{desktop, schemas, system}, gnome-vfs-2.0} and the
following subdirectories of $GNOME_PREFIX/: include/gnome-vfs-{,module-}2.0,
lib/gnome-vfs{,-2.0}, share/gtk-doc/html/gnome-vfs-2.0
751
Beyond Linux® From Scratch - Version 6.3
Package Information
• Download (HTTP): http://ftp.gnome.org/pub/gnome/sources/gnome-vfs-monikers/2.15/gnome-vfs-monikers-2.15.
3.tar.bz2
• Download (FTP): ftp://ftp.gnome.org/pub/gnome/sources/gnome-vfs-monikers/2.15/gnome-vfs-monikers-2.15.3.
tar.bz2
• Download MD5 sum: b16f0db0482263be3318e269f52bb5b6
• Download size: 260 KB
• Estimated disk space required: 3 MB
• Estimated build time: .1 SBU
make install
Command Explanations
--prefix=$(pkg-config --variable=prefix ORBit-2.0): Setting the prefix using this parameter
instead of with $GNOME_PREFIX will ensure that the prefix is consistent with the installation environment and the
package will be installed in the correct location.
Contents
Installed Programs: None
Installed Library: A Bonobo module
Installed Directories: None
752
Beyond Linux® From Scratch - Version 6.3
libgnome-2.18.0
Introduction to libgnome
The libgnome package contains the libgnome library.
Package Information
• Download (HTTP): http://ftp.gnome.org/pub/gnome/sources/libgnome/2.18/libgnome-2.18.0.tar.bz2
• Download (FTP): ftp://ftp.gnome.org/pub/gnome/sources/libgnome/2.18/libgnome-2.18.0.tar.bz2
• Download MD5 sum: 73426589d7c6fa3266fe4e8f3be2f5b5
• Download size: 1.0 MB
• Estimated disk space required: 24 MB
• Estimated build time: 0.3 SBU
libgnome Dependencies
Required
libbonobo-2.18.0 and GNOME Virtual File System-2.18.1
Optional
GTK-Doc-1.8 and intltool-0.35.5
Installation of libgnome
Install libgnome by running the following commands:
make install
Command Explanations
--prefix=$(pkg-config --variable=prefix ORBit-2.0): Setting the prefix using this parameter
instead of with $GNOME_PREFIX will ensure that the prefix is consistent with the installation environment and the
package will be installed in the correct location.
753
Beyond Linux® From Scratch - Version 6.3
Contents
Installed Program: gnome-open
Installed Libraries: libgnome-2.{so,a} and the libmoniker_extra_2.{so,a} bonobo library
Installed Directories: /etc/gnome/2.18.3/sound, and the following subdirectories of $GNOME_PREFIX/:
include/libgnome-2.0, share/gtk-doc/html/libgnome
Short Descriptions
libgnome-2.{so,a} are the non-GUI portion of the GNOME libraries.
754
Beyond Linux® From Scratch - Version 6.3
libgnomecanvas-2.14.0
Introduction to libgnomecanvas
The libgnomecanvas package contains the GNOME canvas library. It is an engine for structured graphics and one
of the essential GNOME libraries.
Package Information
• Download (HTTP): http://ftp.gnome.org/pub/gnome/sources/libgnomecanvas/2.14/libgnomecanvas-2.14.0.tar.
bz2
• Download (FTP): ftp://ftp.gnome.org/pub/gnome/sources/libgnomecanvas/2.14/libgnomecanvas-2.14.0.tar.bz2
• Download MD5 sum: 516c46fb4a1401b05cfef58c350fbd3d
• Download size: 612 KB
• Estimated disk space required: 12.6 MB
• Estimated build time: 0.2 SBU
libgnomecanvas Dependencies
Required
libglade-2.6.1 and libart_lgpl-2.3.19
Optional
GTK-Doc-1.8
Installation of libgnomecanvas
Note
The instructions below are based on installing the package into a GNOME-2 environment. If, for whatever
reason, you're installing this package without having ORBit2 and the core GNOME-2 libraries installed,
you'll need to modify the --prefix= parameter on the configure script to point to your desired installation
path (e.g., --prefix=/usr).
Command Explanations
--prefix=$(pkg-config --variable=prefix ORBit-2.0): Setting the prefix using this parameter
instead of with $GNOME_PREFIX will ensure that the prefix is consistent with the installation environment and the
package will be installed in the correct location.
755
Beyond Linux® From Scratch - Version 6.3
--enable-gtk-doc: Use this parameter if GTK-Doc is installed and you wish to rebuild the API documentation.
Contents
Installed Programs: None
Installed Libraries: libgnomecanvas-2.{so,a} and the libcanvas.{so,a} Glade library
Installed Directories: The following subdirectories of $GNOME_PREFIX/: include/libgnomecanvas-2.0,
lib/libglade and share/gtk-doc/html/libgnomecanvas
756
Beyond Linux® From Scratch - Version 6.3
libbonoboui-2.18.0
Introduction to libbonoboui
The libbonoboui package contains libbonoboui libraries.
Package Information
• Download (HTTP): http://ftp.gnome.org/pub/gnome/sources/libbonoboui/2.18/libbonoboui-2.18.0.tar.bz2
• Download (FTP): ftp://ftp.gnome.org/pub/gnome/sources/libbonoboui/2.18/libbonoboui-2.18.0.tar.bz2
• Download MD5 sum: 22bd67a0a8b7f156c02c5fc08fb1fa24
• Download size: 981 KB
• Estimated disk space required: 31 MB
• Estimated build time: 1.0 SBU
libbonoboui Dependencies
Required
Optional
Installation of libbonoboui
Install libbonoboui by running the following commands:
Command Explanations
--prefix=$(pkg-config --variable=prefix ORBit-2.0): Setting the prefix using this parameter
instead of with $GNOME_PREFIX will ensure that the prefix is consistent with the installation environment and the
package will be installed in the correct location.
--enable-gtk-doc: Use this parameter if GTK-Doc is installed and you wish to rebuild the API documentation.
757
Beyond Linux® From Scratch - Version 6.3
Contents
Installed Programs: bonobo-browser and test-moniker
Installed Libraries: libbonoboui-2.{so,a} and libbonobo.{so,a} Glade library
Installed Directories: The following subdirectories of $GNOME_PREFIX/: include/libbonoboui-2.0,
share/{doc/libbonoboui-2.18.0, gnome-2.0, gtk-doc/html/libbonoboui}
Short Descriptions
libbonoboui-2.{so,a} are the GUI portion of the Bonobo libraries.
758
Beyond Linux® From Scratch - Version 6.3
gnome-keyring-0.8.1
Introduction to gnome-keyring
The gnome-keyring package contains a daemon that keeps passwords and other secrets for users.
Package Information
• Download (HTTP): http://ftp.gnome.org/pub/gnome/sources/gnome-keyring/0.8/gnome-keyring-0.8.1.tar.bz2
• Download (FTP): ftp://ftp.gnome.org/pub/gnome/sources/gnome-keyring/0.8/gnome-keyring-0.8.1.tar.bz2
• Download MD5 sum: 24b15dedcf40c1c60d0fb989370d80ff
• Download size: 448 KB
• Estimated disk space required: 8 MB
• Estimated build time: 0.1 SBU
gnome-keyring Dependencies
Required
Optional
Installation of gnome-keyring
Note
The instructions below are based on installing the package into a GNOME-2 environment. If, for whatever
reason, you're installing this package without having ORBit2 and the core GNOME-2 libraries installed,
you'll need to modify the --prefix= parameter on the configure script to point to your desired installation
path (e.g., --prefix=/usr).
759
Beyond Linux® From Scratch - Version 6.3
Command Explanations
--prefix=$(pkg-config --variable=prefix ORBit-2.0): Setting the prefix using this parameter
instead of with $GNOME_PREFIX will ensure that the prefix is consistent with the installation environment and the
package will be installed in the correct location.
--libexecdir=$(pkg-config --variable=prefix ORBit-2.0)/lib/gnome-keyring:
This parameter causes the libexec files to be installed in the preferred location of $GNOME_
PREFIX/lib/gnome-keyring instead of $GNOME_PREFIX/libexec.
Contents
Installed Program: gnome-keyring-daemon
Installed Library: libgnome-keyring.so
Installed Directories: The following subdirectories of $GNOME_PREFIX/: include/gnome-keyring-1,
lib/gnome-keyring and share/doc/gnome-keyring-0.8.1
Short Descriptions
gnome-keyring-daemon is a session daemon that keeps passwords for users.
libgnome-keyring.so let other applications utilize gnome-keyring-daemon.
760
Beyond Linux® From Scratch - Version 6.3
Package Information
• Download (HTTP): http://ftp.gnome.org/pub/gnome/sources/gnome-icon-theme/2.18/gnome-icon-theme-2.18.0.
tar.bz2
• Download (FTP): ftp://ftp.gnome.org/pub/gnome/sources/gnome-icon-theme/2.18/gnome-icon-theme-2.18.0.tar.
bz2
• Download MD5 sum: 0b9aa12c473e0be61dc324b059c106e3
• Download size: 2.7 MB
• Estimated disk space required: 19 MB
• Estimated build time: 0.3 SBU
Optional
intltool-0.35.5 and pkg-config-0.22
make install
Contents
Installed Programs: None
Installed Libraries: None
Installed Directory: /usr/share/icons/gnome
761
Beyond Linux® From Scratch - Version 6.3
libgnomeui-2.18.1
Introduction to libgnomeui
The libgnomeui package contains libgnomeui libraries.
Package Information
• Download (HTTP): http://ftp.gnome.org/pub/gnome/sources/libgnomeui/2.18/libgnomeui-2.18.1.tar.bz2
• Download (FTP): ftp://ftp.gnome.org/pub/gnome/sources/libgnomeui/2.18/libgnomeui-2.18.1.tar.bz2
• Download MD5 sum: dbdb274517ad643d9397dd6868788631
• Download size: 1.4 MB
• Estimated disk space required: 42 MB
• Estimated build time: 0.8 SBU
libgnomeui Dependencies
Required
libbonoboui-2.18.0 and gnome-keyring-0.8.1
Optional
libjpeg-6b, EsounD-0.2.37, intltool-0.35.5, and GTK-Doc-1.8
Installation of libgnomeui
Install libgnomeui by running the following commands:
Command Explanations
--prefix=$(pkg-config --variable=prefix ORBit-2.0): Setting the prefix using this parameter
instead of with $GNOME_PREFIX will ensure that the prefix is consistent with the installation environment and the
package will be installed in the correct location.
762
Beyond Linux® From Scratch - Version 6.3
Configuring libgnomeui
Configuration Information
Some applications cannot properly discover the libglade interface library installed by libgnomeui. Get around this
problem by initializing an environment variable which identifies the location of the library. Add the following line
to the system-wide /etc/profile file, or to individual user's ~/.profile or ~/.bashrc files:
export LIBGLADE_MODULE_PATH=$GNOME_PREFIX/lib/libglade/2.0
Contents
Installed Programs:
Installed Libraries: libgnomeui-2.{so,a}, the libgnome.{so,a} Glade library, and the libgnome-vfs.{so,a}
GTK+ library
Installed Directories: The following subdirectories of $GNOME_PREFIX/: include/libgnomeui-2.0,
lib/{gtk-2.0/2.10.0/filesystems, libgnomeui} and share/gtk-doc/html/libgnomeui
Short Descriptions
libgnomeui-2.{so,a} are the GUI portion of the GNOME libraries.
763
Beyond Linux® From Scratch - Version 6.3
GAIL-1.18.0
Introduction to GAIL
The GAIL package provides accessibility support for GTK+ and libgnomecanvas by implementing AtkObjects for
widgets in GTK+ and libgnomecanvas. The GAIL library is a GTK+ module. This module is normally used with
the atk-bridge GTK+ module from AT-SPI to allow an assistive technology, e.g., a screenreader, to query or drive
the program.
Package Information
• Download (HTTP): http://ftp.gnome.org/pub/gnome/sources/gail/1.18/gail-1.18.0.tar.bz2
• Download (FTP): ftp://ftp.gnome.org/pub/gnome/sources/gail/1.18/gail-1.18.0.tar.bz2
• Download MD5 sum: d58ad8cc79d3cb6778bc015ef69fb499
• Download size: 610 KB
• Estimated disk space required: 21 MB
• Estimated build time: 0.6 SBU
GAIL Dependencies
Required
libgnomecanvas-2.14.0
Optional
GTK-Doc-1.8
Installation of GAIL
Note
The instructions below are based on installing the package into a GNOME-2 environment. If, for whatever
reason, you're installing this package without having ORBit2 and the core GNOME-2 libraries installed,
you'll need to modify the --prefix= parameter on the configure script to point to your desired installation
path (e.g., --prefix=/usr).
764
Beyond Linux® From Scratch - Version 6.3
Command Explanations
--prefix=$(pkg-config --variable=prefix ORBit-2.0): Setting the prefix using this parameter
instead of with $GNOME_PREFIX will ensure that the prefix is consistent with the installation environment and the
package will be installed in the correct location.
--enable-gtk-doc: Use this parameter if GTK-Doc is installed and you wish to rebuild the API documentation.
if [ ... != "/usr" ]; then ...; fi: GTK+ will look for the GAIL modules in /usr/lib even if $GNOME_PREFIX is
NOT /usr. This command creates a symbolic link to satisfy this requirement.
Contents
Installed Programs: None
Installed Libraries: libgailutil.so and GAIL GTK+ modules
Installed Directories: The following subdirectories of $GNOME_PREFIX/: include/gail-1.0,
lib/gtk-2.0/modules and share/gtk-doc/html/gail-libgail-util
Short Descriptions
libgailutil.so provides the functions that solve accessibility problems in a consistent manner across
GNOME.
765
Beyond Linux® From Scratch - Version 6.3
GTK Engines-2.10.2
Introduction to GTK Engines
The GTK Engines package contains eight themes/engines and two additional engines for GTK2.
Package Information
• Download (HTTP): http://ftp.gnome.org/pub/gnome/sources/gtk-engines/2.10/gtk-engines-2.10.2.tar.bz2
• Download (FTP): http://ftp.gnome.org/pub/gnome/sources/gtk-engines/2.10/gtk-engines-2.10.2.tar.bz2
• Download MD5 sum: 01de081b24d7b5d92093cad5c5e4b8c7
• Download size: 654 KB
• Estimated disk space required: 19 MB
• Estimated build time: 0.5 SBU (additional ~9 SBU to run the test suite)
Optional
intltool-0.35.5
To test the results, issue: make check. This takes quite a while.
Now, as the root user:
make install
Contents
Installed Programs: None
Installed Libraries: GTK-2 engines libraries
Installed Directories: /usr/lib/gtk-2.0/2.10.0/engines and /usr/share/themes/{theme names}
Installed Themes: Clearlooks, Crux, Industrial, LighthouseBlue, Metal, Mist, Redmond and ThinIce
Short Descriptions
engines libraries are manager systems for specific themes.
766
Beyond Linux® From Scratch - Version 6.3
GNOME Themes-2.18.1
Introduction to GNOME Themes
The GNOME Themes package contains several more theme sets.
Package Information
• Download (HTTP): http://ftp.gnome.org/pub/gnome/sources/gnome-themes/2.18/gnome-themes-2.18.1.tar.bz2
• Download (FTP): ftp://ftp.gnome.org/pub/gnome/sources/gnome-themes/2.18/gnome-themes-2.18.1.tar.bz2
• Download MD5 sum: caa1683da286eeeb0f4f7ec8b0cc34bb
• Download size: 2.4 MB
• Estimated disk space required: 25 MB
• Estimated build time: 0.3 SBU
Optional
intltool-0.35.5
make install
Command Explanations
--enable-all-themes: Using this parameter enables the installation of additional accessibility themes. Omit
this parameter if you have no desire for additional accessibility themes.
Contents
Installed Programs: None
Installed Libraries: None
Installed Directories: Several directories under /usr/share/{icons,themes}
Installed Themes: Several themes in the /usr/share/themes hierarchy and icons in the /usr/share/icons
hierarchy
767
Beyond Linux® From Scratch - Version 6.3
Package Information
• Download (HTTP): http://ftp.gnome.org/pub/gnome/sources/gnome-doc-utils/0.10/gnome-doc-utils-0.10.3.tar.
bz2
• Download (FTP): ftp://ftp.gnome.org/pub/gnome/sources/gnome-doc-utils/0.10/gnome-doc-utils-0.10.3.tar.bz2
• Download MD5 sum: 43f3a4086ec1254cbe20b85948192d18
• Download size: 451 KB
• Estimated disk space required: 12 MB
• Estimated build time: less than 0.1 SBU
Recommended
Python-2.5.2 and ScrollKeeper-0.3.14
The packages are listed as recommended even though GNOME Doc Utils will build fine without them. If you don't
install the recommended packages (and you pass the appropriate flags to the configure command so that it will build
without them), functionality will be missing that is expected later in other GNOME packages.
Optional
pkg-config-0.22 and intltool-0.35.5
768
Beyond Linux® From Scratch - Version 6.3
make install
Command Explanations
--prefix=$(pkg-config --variable=prefix ORBit-2.0): Setting the prefix using this parameter
instead of with $GNOME_PREFIX will ensure that the prefix is consistent with the installation environment and the
package will be installed in the correct location.
--mandir=$(pkg-config --variable=prefix ORBit-2.0)/share/man: This parameter causes
the man.(X) files to be installed in $GNOME_PREFIX/share/man/man(X) instead of $GNOME_
PREFIX/man/man(X).
Contents
Installed Programs: gnome-doc-prepare and xml2po
Installed Libraries: None
Installed Directories: The following subdirectories of $GNOME_PREFIX/share/: gnome-doc-utils,
gnome/help/gnome-doc-{make,xslt}, omf/gnome-doc-{make,xslt}, xml/gnome and
xml2po}
Installed Stylesheets: Custom DocBook XSLT stylesheets
Short Descriptions
gnome-doc-prepare prepares a package to use gnome-doc-utils.
xml2po is a Python script used to translate XML documents.
769
Beyond Linux® From Scratch - Version 6.3
GNOME Desktop-2.18.3
Introduction to GNOME Desktop
The GNOME Desktop package contains the gnome-about program, the libgnome-desktop-2 library and
GNOME's core graphics files and icons.
Package Information
• Download (HTTP): http://ftp.gnome.org/pub/gnome/sources/gnome-desktop/2.18/gnome-desktop-2.18.3.tar.bz2
• Download (FTP): ftp://ftp.gnome.org/pub/gnome/sources/gnome-desktop/2.18/gnome-desktop-2.18.3.tar.bz2
• Download MD5 sum: 98de3b7d0da690da8b94cddc74f3914b
• Download size: 1.3 MB
• Estimated disk space required: 15 MB
• Estimated build time: 0.3 SBU
Recommended
startup-notification-0.9
Optional
intltool-0.35.5
Command Explanations
--prefix=$(pkg-config --variable=prefix ORBit-2.0): Setting the prefix using this parameter
instead of with $GNOME_PREFIX will ensure that the prefix is consistent with the installation environment and the
package will be installed in the correct location.
--sysconfdir=/etc/gnome/2.18.3: This parameter causes the configuration files to be installed in
/etc/gnome/2.18.3 instead of $GNOME_PREFIX/etc. Additionally (if applicable), the parameter ensures
that the GConf-2 database is correctly updated.
770
Beyond Linux® From Scratch - Version 6.3
--localstatedir=/var/lib: This parameter is used so that all ScrollKeeper files are installed in, and the
ScrollKeeper database is properly updated in /var/lib/scrollkeeper instead of some files being installed in
$GNOME_PREFIX/var/scrollkeeper.
--with-gnome-distributor="Some Name": Use this parameter to supply a custom name in the
“Distributor:” field of the “GNOME About” display window.
--with-kde-datadir=$KDE_PREFIX/share: Use this parameter if KDE is installed in any prefix other than
/usr.
--enable-gtk-doc: Use this parameter if GTK-Doc is installed and you wish to rebuild the API documentation.
Contents
Installed Program: gnome-about
Installed Library: libgnome-desktop-2.{so,a}
Installed Directory: The following subdirectories of $GNOME_PREFIX/: include/gnome-desktop-2.0,
share/{gnome-about, {gnome/help,omf}/{fdl,gnome-feedback,gpl,lgpl},
gtk-doc/html/gnome-desktop}
Short Descriptions
gnome-about produces the about screen.
libgnome-desktop-2.{so,a} contains APIs being tested for inclusion in libgnome or libgnomeui.
771
Beyond Linux® From Scratch - Version 6.3
gnome-backgrounds-2.18.3
Introduction to gnome-backgrounds
The gnome-backgrounds package contains a collection of graphics files which can be used as backgrounds in the
GNOME desktop environment. Additionally, the package creates the proper framework and directory structure so
that you can add your own files to the collection.
Package Information
• Download (HTTP): http://ftp.gnome.org/pub/gnome/sources/gnome-backgrounds/2.18/gnome-backgrounds-2.
18.3.tar.bz2
• Download (FTP): ftp://ftp.gnome.org/pub/gnome/sources/gnome-backgrounds/2.18/gnome-backgrounds-2.18.3.
tar.bz2
• Download MD5 sum: d91b925d358d2cbc705b4a033e7d5c2e
• Download size: 1.2 MB
• Estimated disk space required: 5 MB
• Estimated build time: less than 0.1 SBU
gnome-backgrounds Dependencies
Required
XML::Parser-2.34
Optional
intltool-0.35.5
Installation of gnome-backgrounds
Note
The instructions below are based on installing the package into a GNOME-2 environment. If, for whatever
reason, you're installing this package without having ORBit2 and the core GNOME-2 libraries installed,
you'll need to modify the --prefix= parameter on the configure script to point to your desired installation
path (e.g., --prefix=/usr).
Command Explanations
--prefix=$(pkg-config --variable=prefix ORBit-2.0): Setting the prefix using this parameter
instead of with $GNOME_PREFIX will ensure that the prefix is consistent with the installation environment and the
package will be installed in the correct location.
772
Beyond Linux® From Scratch - Version 6.3
Contents
Installed Programs: None
Installed Libraries: None
Installed Directories: $GNOME_PREFIX/share/{gnome-background-properties, pixmaps/backgrounds}
Short Descriptions
GNOME backgrounds are backgrounds for the GNOME desktop.
773
Beyond Linux® From Scratch - Version 6.3
gnome-menus-2.18.3
Introduction to gnome-menus
The gnome-menus package contains an implementation of the draft “Desktop Menu Specification” from
freedesktop.org (http://www.freedesktop.org/Standards/menu-spec). Also contained are the GNOME menu layout
configuration files, .directory files and a menu related utility program.
Package Information
• Download (HTTP): http://ftp.gnome.org/pub/gnome/sources/gnome-menus/2.18/gnome-menus-2.18.3.tar.bz2
• Download (FTP): ftp://ftp.gnome.org/pub/gnome/sources/gnome-menus/2.18/gnome-menus-2.18.3.tar.bz2
• Download MD5 sum: e2b97b01b33b9744baf26982a8ad588a
• Download size: 437 KB
• Estimated disk space required: 8 MB
• Estimated build time: 0.2 SBU
gnome-menus Dependencies
Required
GLib-2.12.12 and XML::Parser-2.34
Optional
Python-2.5.2, Gamin-0.1.9, and intltool-0.35.5
Installation of gnome-menus
Note
The instructions below are based on installing the package into a GNOME-2 environment. If, for whatever
reason, you're installing this package without having ORBit2 and the core GNOME-2 libraries installed,
you'll need to modify the --prefix= parameter on the configure script to point to your desired installation
path (e.g., --prefix=/usr).
Command Explanations
--prefix=$(pkg-config --variable=prefix ORBit-2.0): Setting the prefix using this parameter
instead of with $GNOME_PREFIX will ensure that the prefix is consistent with the installation environment and the
package will be installed in the correct location.
774
Beyond Linux® From Scratch - Version 6.3
Configuring gnome-menus
Configuration Information
XDG_CONFIG_DIRS Variable
So that GNOME can find the desktop configuration files, ensure you set the XDG_CONFIG_DIRS environment
variable in the system profile, or in individual user's profiles as shown below (you may add additional directories,
separated with colons, if desired):
export XDG_CONFIG_DIRS=/etc/gnome/2.18.3/xdg:/etc/xdg
XDG_DATA_DIRS Variable
So that GNOME can find the data to populate the menus, ensure you set the XDG_DATA_DIRS environment variable
in the system profile, or in individual user's profiles as shown below (you may add additional directories, separated
with colons, if desired):
export XDG_DATA_DIRS=$GNOME_PREFIX/share:/usr/share
PYTHONPATH Variable
If your GNOME-2 installation prefix is anything other than /usr and you have Python installed, you need to update
the PYTHONPATH environment variable so that the gmenu module can be located by Python. Set the variable in the
system profile, or in individual user's profiles as shown below:
Contents
Installed Programs: gmenu-simple-editor and gnome-menu-spec-test
Installed Library: libgnome-menu.{so,a}
Installed Directories: /etc/gnome/2.18.3/xdg and the following subdirectories of $GNOME_PREFIX/:
include/gnome-menus, lib/python2.5/site-packages/GMenuSimpleEditor,
share/{desktop-directories, gnome-menus}
Short Descriptions
gmenu-simple-editor is a simple front-end script to the Python Gmenu Simple Editor module
gnome-menu-spec-test is used to test GNOME's implementation of the Desktop Menu Specification.
775
Beyond Linux® From Scratch - Version 6.3
776
Beyond Linux® From Scratch - Version 6.3
GNOME Panel-2.18.3
Introduction to GNOME Panel
The GNOME Panel package contains hooks to the menu sub-system and the applet sub-system.
Package Information
• Download (HTTP): http://ftp.gnome.org/pub/gnome/sources/gnome-panel/2.18/gnome-panel-2.18.3.tar.bz2
• Download (FTP): ftp://ftp.gnome.org/pub/gnome/sources/gnome-panel/2.18/gnome-panel-2.18.3.tar.bz2
• Download MD5 sum: 545348de234fa8222e328fa7f3a5ba71
• Download size: 2.7 MB
• Estimated disk space required: 67 MB
• Estimated build time: 0.8 SBU
Required
Optional
Evolution Data Server-1.10.3 (required if you plan to install Evolution-2.10.3 or Ekiga-2.0.9), intltool-0.35.5, and
GTK-Doc-1.8
Note
The libxml2 Python module must have been built during the installation of libxml2 else the GNOME Panel
build will fail.
make install
777
Beyond Linux® From Scratch - Version 6.3
Command Explanations
--prefix=$(pkg-config --variable=prefix ORBit-2.0): Setting the prefix using this parameter
instead of with $GNOME_PREFIX will ensure that the prefix is consistent with the installation environment and the
package will be installed in the correct location.
--sysconfdir=/etc/gnome/2.18.3: This parameter causes the configuration files to be installed in
/etc/gnome/2.18.3 instead of $GNOME_PREFIX/etc. Additionally (if applicable), the parameter ensures
that the GConf-2 database is correctly updated.
--localstatedir=/var/lib: This parameter is used so that all ScrollKeeper files are installed in, and the
ScrollKeeper database is properly updated in /var/lib/scrollkeeper instead of some files being installed in
$GNOME_PREFIX/var/scrollkeeper.
--libexecdir=$(pkg-config --variable=prefix ORBit-2.0)/lib/gnome-panel:
This parameter causes the libexec files to be installed in the preferred location of $GNOME_
PREFIX/lib/gnome-panel instead of $GNOME_PREFIX/libexec.
--mandir=$(pkg-config --variable=prefix ORBit-2.0)/share/man: This parameter causes
the man.(X) files to be installed in $GNOME_PREFIX/share/man/man(X) instead of $GNOME_
PREFIX/man/man(X).
--enable-gtk-doc: Use this parameter if GTK-Doc is installed and you wish to rebuild the API documentation.
Contents
Installed Programs: gnome-desktop-item-edit, gnome-panel and panel-test-applets
Installed Library: libpanel-applet-2.{so,a}
Installed Directories: The following subdirectories of $GNOME_PREFIX/: include/panel-2.0,
lib/gnome-panel, share/{gnome/{help/{too many to list}, panel},
gtk-doc/html/panel-applet, icons, idl/gnome-panel-2.0, omf/{too many too list}}
Short Descriptions
libpanel-applet-2.{so,a} allow development of small applications (applets) which may be embedded in
the panel.
778
Beyond Linux® From Scratch - Version 6.3
VTE-0.16.6
Introduction to VTE
The VTE package contains a termcap file implementation for terminal emulators.
Package Information
• Download (HTTP): http://ftp.gnome.org/pub/gnome/sources/vte/0.16/vte-0.16.6.tar.bz2
• Download (FTP): ftp://ftp.gnome.org/pub/gnome/sources/vte/0.16/vte-0.16.6.tar.bz2
• Download MD5 sum: 131174986ab519b91dfcd6cf22541cbb
• Download size: 1.1 MB
• Estimated disk space required: 26 MB
• Estimated build time: 0.6 SBU
VTE Dependencies
Required
GTK+-2.10.13 and XML::Parser-2.34
Optional
GTK-Doc-1.8, intltool-0.35.5, and PyGTK-2.10.6 (including the gtk module)
Installation of VTE
Install VTE by running the following commands:
make install
Command Explanations
sed -i ... termcaps/xterm: The Home and End keys are broken in the xterm termcap file. This sed command fixes
them.
--libexecdir=/usr/lib/vte: This parameter causes the libexec files to be installed in the preferred location
of /usr/lib/vte instead of /usr/libexec.
--with-glX: This parameter can be passed to the configure script to enable additional drawing methods in the
VTE library.
--enable-gtk-doc: Use this parameter if GTK-Doc is installed and you wish to rebuild the API documentation.
779
Beyond Linux® From Scratch - Version 6.3
Contents
Installed Program: vte
Installed Libraries: libvte.{so,a} and the vtemodule.{so,a} Python module
Installed Directories: /usr/include/vte, /usr/lib/vte, /usr/share/gtk-doc/html/vte, and /usr/share/vte
Short Descriptions
vte is a test application for the VTE libraries.
libvte.{so,a} is a library which implements a terminal emulator widget for GTK+.
780
Beyond Linux® From Scratch - Version 6.3
GNOME Terminal-2.18.1
Introduction to GNOME Terminal
The GNOME Terminal package contains the console. This is useful for executing programs from a command prompt.
Package Information
• Download (HTTP): http://ftp.gnome.org/pub/gnome/sources/gnome-terminal/2.18/gnome-terminal-2.18.1.tar.
bz2
• Download (FTP): ftp://ftp.gnome.org/pub/gnome/sources/gnome-terminal/2.18/gnome-terminal-2.18.1.tar.bz2
• Download MD5 sum: c1902cf4727f4cd976d6cc0beb1c03fe
• Download size: 1.9 MB
• Estimated disk space required: 43 MB
• Estimated build time: 0.3 SBU
Required
make install
Command Explanations
--prefix=$(pkg-config --variable=prefix ORBit-2.0): Setting the prefix using this parameter
instead of with $GNOME_PREFIX will ensure that the prefix is consistent with the installation environment and the
package will be installed in the correct location.
--sysconfdir=/etc/gnome/2.18.3: This parameter causes the configuration files to be installed in
/etc/gnome/2.18.3 instead of $GNOME_PREFIX/etc. Additionally (if applicable), the parameter ensures
that the GConf-2 database is correctly updated.
--localstatedir=/var/lib: This parameter is used so that all ScrollKeeper files are installed in, and the
ScrollKeeper database is properly updated in /var/lib/scrollkeeper instead of some files being installed in
$GNOME_PREFIX/var/scrollkeeper.
781
Beyond Linux® From Scratch - Version 6.3
Contents
Installed Program: gnome-terminal
Installed Libraries: None
Installed Directories: $GNOME_PREFIX/share/{,gnome/help/,omf/}gnome-terminal
Short Descriptions
gnome-terminal provides the command prompt in the GNOME environment.
782
Beyond Linux® From Scratch - Version 6.3
LibGTop-2.14.9
Introduction to LibGTop
The LibGTop package contains the GNOME top libraries.
Package Information
• Download (HTTP): http://ftp.gnome.org/pub/gnome/sources/libgtop/2.14/libgtop-2.14.9.tar.bz2
• Download (FTP): ftp://ftp.gnome.org/pub/gnome/sources/libgtop/2.14/libgtop-2.14.9.tar.bz2
• Download MD5 sum: a228ccab58216f7fef97de9c2b6e328e
• Download size: 772 KB
• Estimated disk space required: 16 MB
• Estimated build time: 0.3 SBU
LibGTop Dependencies
Required
GLib-2.12.12 and popt-1.10.4
Optional
GDBM-1.8.3, GTK-Doc-1.8, and X Window System
Installation of LibGTop
Note
The instructions below are based on installing the package into a GNOME-2 environment. If, for whatever
reason, you're installing this package without having ORBit2 and the core GNOME-2 libraries installed,
you'll need to modify the --prefix= parameter on the configure script to point to your desired installation
path (e.g., --prefix=/usr).
783
Beyond Linux® From Scratch - Version 6.3
Command Explanations
--prefix=$(pkg-config --variable=prefix ORBit-2.0): Setting the prefix using this parameter
instead of with $GNOME_PREFIX will ensure that the prefix is consistent with the installation environment and the
package will be installed in the correct location.
--infodir=$(pkg-config --variable=prefix ORBit-2.0)/share/info: This switch installs the
info documentation in $GNOME_PREFIX/share/info instead of $GNOME_PREFIX/info. You may need to
add this directory to your $INFOPATH environment variable if your GNOME installation prefix is anything other
than /usr.
--with-libgtop-examples: Adding this parameter to the configure script will build numerous example
programs.
--with-libgtop-inodedb: Add this parameter to the configure script if you have GDBM installed and wish
to build the inodedb programs.
--enable-gtk-doc: Use this parameter if GTK-Doc is installed and you wish to rebuild the API documentation.
Configuring LibGTop
Configuration Information
If $GNOME_PREFIX is anything other than /usr, update the INFOPATH environment variable by adding the
following to your system-wide or personal profile:
export INFOPATH=/usr/share/info:$(pkg-config \
--variable=prefix ORBit-2.0)/share/info
Contents
Installed Programs: file_by_inode2 and mkinodedb2
Installed Library: libgtop-2.0.{so,a}
Installed Directories: The following subdirectories of $GNOME_PREFIX/: include/libgtop-2.0 and
lib/libgtop/examples
Short Descriptions
libgtop-2.0.{so,a} contains the functions that allow access to system performance data.
784
Beyond Linux® From Scratch - Version 6.3
libgnomekbd-2.18.2
Introduction to libgnomekbd
The libgnomekbd package contains xkb hooks used by the GNOME desktop.
Package Information
• Download (HTTP): http://ftp.gnome.org/pub/gnome/sources/libgnomekbd/2.18/libgnomekbd-2.18.2.tar.bz2
• Download (FTP): ftp://ftp.gnome.org/pub/gnome/sources/libgnomekbd/2.18/libgnomekbd-2.18.2.tar.bz2
• Download MD5 sum: e99a9f1de689ba3c0ad03fadd55dd3e4
• Download size: 359 KB
• Estimated disk space required: 8 MB
• Estimated build time: 0.2 SBU
libgnomekbd Dependencies
Required
libxklavier-3.2 and libgnomeui-2.18.1
Optional
intltool-0.35.5
Installation of libgnomekbd
Install libgnomekbd by running the following commands:
./configure --prefix=$(pkg-config --variable=prefix ORBit-2.0) \
--sysconfdir=/etc/gnome/2.18.3 &&
make
This package does not come with a test suite.
Now, as the root user:
make install
Command Explanations
--prefix=$(pkg-config --variable=prefix ORBit-2.0): Setting the prefix using this parameter
instead of with $GNOME_PREFIX will ensure that the prefix is consistent with the installation environment and the
package will be installed in the correct location.
--sysconfdir=/etc/gnome/2.18.3: This parameter causes the configuration files to be installed in
/etc/gnome/2.18.3 instead of $GNOME_PREFIX/etc. Additionally (if applicable), the parameter ensures
that the GConf-2 database is correctly updated.
Contents
Installed Program: gkbd-indicator-plugins-capplet
Installed Libraries: libgnomekbd.{so,a} and libgnomekbdui.{so,a}
Installed Directories: The following subdirectories of $GNOME_PREFIX: /include/libgnomekbd and
/share/libgnomekbd
785
Beyond Linux® From Scratch - Version 6.3
Short Descriptions
gkbd-indicator-plugins-capplet is used internally by the GNOME desktop to interface with xkb.
libgnomekbd{,ui}.{so,a} contain the X keyboard API functions to support xkb on the GNOME
desktop.
786
Beyond Linux® From Scratch - Version 6.3
EEL-2.18.3
Introduction to EEL
The EEL package contains the Eazel Extensions Library. This is a collection of widgets and extensions to the GNOME
platform.
Package Information
• Download (HTTP): http://ftp.gnome.org/pub/gnome/sources/eel/2.18/eel-2.18.3.tar.bz2
• Download (FTP): ftp://ftp.gnome.org/pub/gnome/sources/eel/2.18/eel-2.18.3.tar.bz2
• Download MD5 sum: c51fea61eb99eaa7995754b8acf787ff
• Download size: 643 KB
• Estimated disk space required: 14 MB
• Estimated build time: 0.5 SBU
EEL Dependencies
Required
GNOME Desktop-2.18.3, gnome-menus-2.18.3, and GAIL-1.18.0
Optional
intltool-0.35.5
Installation of EEL
Install EEL by running the following commands:
./configure --prefix=$(pkg-config --variable=prefix ORBit-2.0) &&
make
To test the results, issue: make check.
Now, as the root user:
make install
Command Explanations
--prefix=$(pkg-config --variable=prefix ORBit-2.0): Setting the prefix using this parameter
instead of with $GNOME_PREFIX will ensure that the prefix is consistent with the installation environment and the
package will be installed in the correct location.
Contents
Installed Programs: None
Installed Library: libeel-2.{so,a}
Installed Directory: $GNOME_PREFIX/include/eel-2
Short Descriptions
libeel-2.{so,a} is a collection of widgets developed by the Nautilus project.
787
Beyond Linux® From Scratch - Version 6.3
Nautilus-2.18.3
Introduction to Nautilus
The Nautilus package contains the GNOME shell and file manager.
Package Information
• Download (HTTP): http://ftp.gnome.org/pub/gnome/sources/nautilus/2.18/nautilus-2.18.3.tar.bz2
• Download (FTP): ftp://ftp.gnome.org/pub/gnome/sources/nautilus/2.18/nautilus-2.18.3.tar.bz2
• Download MD5 sum: e027b4e1a925122ef3e7f54323cc3c44
• Download size: 4.3 MB
• Estimated disk space required: 103 MB
• Estimated build time: 1.1 SBU
Nautilus Dependencies
Required
EEL-2.18.3, EsounD-0.2.37, libexif-0.6.16, and librsvg-2.16.1
Optional
startup-notification-0.9, Tracker (see the Tracker README file for the extensive dependencies), Beagle (needs
Gnome-Sharp which requires Mono), and DocBook-utils-0.6.14
Installation of Nautilus
Install Nautilus by running the following commands:
./configure --prefix=$(pkg-config --variable=prefix ORBit-2.0) \
--sysconfdir=/etc/gnome/2.18.3 &&
make
To test the results, issue: make check.
Now, as the root user:
make install &&
install -v -m755 -d $(pkg-config \
--variable=prefix ORBit-2.0)/share/doc/nautilus-2.18.3 &&
install -v -m644 docs/*.{txt,dia,pdf,sxw,faq,html} $(pkg-config \
--variable=prefix ORBit-2.0)/share/doc/nautilus-2.18.3
Command Explanations
--prefix=$(pkg-config --variable=prefix ORBit-2.0): Setting the prefix using this parameter
instead of with $GNOME_PREFIX will ensure that the prefix is consistent with the installation environment and the
package will be installed in the correct location.
--sysconfdir=/etc/gnome/2.18.3: This parameter causes the configuration files to be installed in
/etc/gnome/2.18.3 instead of $GNOME_PREFIX/etc. Additionally (if applicable), the parameter ensures
that the GConf-2 database is correctly updated.
788
Beyond Linux® From Scratch - Version 6.3
Contents
Installed Programs: nautilus, nautilus-connect-server and nautilus-file-management-properties
Installed Library: libnautilus-extension.so
Installed Directories: The following subdirectories of $GNOME_PREFIX/: include/nautilus,
share/{doc/nautilus-2.18.3, {,pixmaps}nautilus}
Short Descriptions
nautilus is the GNOME file manager.
libnautilus-extension.so supplies the functions needed by the file manager.
789
Beyond Linux® From Scratch - Version 6.3
Control Center-2.18.1
Introduction to Control Center
The Control Center package contains the GNOME settings managers.
Package Information
• Download (HTTP): http://ftp.gnome.org/pub/gnome/sources/control-center/2.18/control-center-2.18.1.tar.bz2
• Download (FTP): ftp://ftp.gnome.org/pub/gnome/sources/control-center/2.18/control-center-2.18.1.tar.bz2
• Download MD5 sum: bae0fd0f9e32f374bd7236d98788b13f
• Download size: 2.1 MB
• Estimated disk space required: 71 MB
• Estimated build time: 2 SBU
Required
GStreamer Base Plug-ins-0.10.13, libgnomekbd-2.18.2, Metacity-2.18.5, and Nautilus-2.18.3
Optional
HAL-0.5.9.1, shared-mime-info-0.21, Evolution Data Server-1.10.3, and ALSA-1.0.13
Though they are only run-time dependencies and Control Center will compile just fine without them installed, there
are two screen saver packages that can be installed which will provide a robust collection of screen savers and screen
locking capability. gnome-screensaver-2.18.2 is looked for first, with a fallback to XScreenSaver-5.03 if necessary.
make install
Command Explanations
--prefix=$(pkg-config --variable=prefix ORBit-2.0): Setting the prefix using this parameter
instead of with $GNOME_PREFIX will ensure that the prefix is consistent with the installation environment and the
package will be installed in the correct location.
790
Beyond Linux® From Scratch - Version 6.3
Contents
Installed Programs: gnome-about-me,gnome-accessibility-keyboard-properties, gnome-at-properties,
gnome-background-properties, gnome-control-center,
gnome-default-applications-properties, gnome-display-properties,
gnome-font-properties, gnome-font-viewer, gnome-keybinding-properties,
gnome-keyboard-properties, gnome-mouse-properties, gnome-network-preferences,
gnome-sound-properties, gnome-theme-manager, gnome-theme-thumbnailer,
gnome-thumbnail-font, gnome-typing-monitor, gnome-ui-properties,
gnome-window-properties, and themus-theme-applier
Installed Libraries: libgnome-window-settings.{so,a}, GNOME VFS and window manager settings library
modules and Nautilus library module extensions
Installed Directories: The following subdirectories of $GNOME_PREFIX/:
include/gnome-window-settings-2.0, lib/{control-center, nautilus,
window-manager-settings}, share/{{,gnome/help/,omf/}control-center-2.0,
gnome/{default-applications,cursor-fonts}}
791
Beyond Linux® From Scratch - Version 6.3
GNOME Applets-2.18.0
Introduction to GNOME Applets
The GNOME Applets package contains small applications which generally run in the background and display their
output to the GNOME panel.
Package Information
• Download (HTTP): http://ftp.gnome.org/pub/gnome/sources/gnome-applets/2.18/gnome-applets-2.18.0.tar.bz2
• Download (FTP): ftp://ftp.gnome.org/pub/gnome/sources/gnome-applets/2.18/gnome-applets-2.18.0.tar.bz2
• Download MD5 sum: db3ef99c00335798f30fc0a9162c0257
• Download size: 7.1 MB
• Estimated disk space required: 118 MB
• Estimated build time: 1.1 SBU
Required
ScrollKeeper-0.3.14, GAIL-1.18.0, GNOME Icon Theme-2.18.0, GNOME Panel-2.18.3
Optional
LibGTop-2.14.9, Control Center-2.18.1, GStreamer Base Plug-ins-0.10.13, HAL-0.5.9.1, libgnomekbd-2.18.2,
gucharmap-1.10.0, system-tools-backends-1.4.2, DocBook-utils-0.6.14, libapm, and libnotify
792
Beyond Linux® From Scratch - Version 6.3
Command Explanations
--prefix=$(pkg-config --variable=prefix ORBit-2.0): Setting the prefix using this parameter
instead of with $GNOME_PREFIX will ensure that the prefix is consistent with the installation environment and the
package will be installed in the correct location.
--sysconfdir=/etc/gnome/2.18.3: This parameter causes the configuration files to be installed in
/etc/gnome/2.18.3 instead of $GNOME_PREFIX/etc. Additionally (if applicable), the parameter ensures
that the GConf-2 database is correctly updated.
--localstatedir=/var/lib: This parameter is used so that all ScrollKeeper files are installed in, and the
ScrollKeeper database is properly updated in /var/lib/scrollkeeper instead of some files being installed in
$GNOME_PREFIX/var/scrollkeeper.
--libexecdir=$(pkg-config --variable=prefix ORBit-2.0)/lib/gnome-applets:
This parameter causes the libexec files to be installed in the preferred location of in $GNOME_
PREFIX/lib/gnome-applets instead of $GNOME_PREFIX/libexec.
--mandir=$(pkg-config --variable=prefix ORBit-2.0)/share/man: This parameter causes
the man.(X) files to be installed in $GNOME_PREFIX/share/man/man(X) instead of $GNOME_
PREFIX/man/man(X).
make -C man install-man: This command installs the man-pages that are not installed during make install.
Contents
Installed Program: cpufreq-selector
Installed Libraries: None
Installed Directories: The following subdirectories of $GNOME_PREFIX/: include/libgweather,
lib/gnome-applets, share/{gnome-applets, {gnome/help,omf}/{too many to list},
pixmaps/{accessx-status-applet, cpufreq-applet, stickynotes}, xmodmap}
793
Beyond Linux® From Scratch - Version 6.3
GNOME Session-2.18.3
Introduction to GNOME Session
The GNOME Session package contains the GNOME session manager.
Package Information
• Download (HTTP): http://ftp.gnome.org/pub/gnome/sources/gnome-session/2.18/gnome-session-2.18.3.tar.bz2
• Download (FTP): ftp://ftp.gnome.org/pub/gnome/sources/gnome-session/2.18/gnome-session-2.18.3.tar.bz2
• Download MD5 sum: 59b6809ed1d8e39c1550217e665c75df
• Download size: 716 KB
• Estimated disk space required: 14 MB
• Estimated build time: 0.3 SBU
Optional
TCP Wrapper-7.6 and libnotify
make install
Command Explanations
--prefix=$(pkg-config --variable=prefix ORBit-2.0): Setting the prefix using this parameter
instead of with $GNOME_PREFIX will ensure that the prefix is consistent with the installation environment and the
package will be installed in the correct location.
--sysconfdir=/etc/gnome/2.18.3: This parameter causes the configuration files to be installed in
/etc/gnome/2.18.3 instead of $GNOME_PREFIX/etc. Additionally (if applicable), the parameter ensures
that the GConf-2 database is correctly updated.
794
Beyond Linux® From Scratch - Version 6.3
Contents
Installed Programs: gnome-session, gnome-session-properties, gnome-session-remove,
gnome-session-save, and gnome-wm
Installed Libraries: None
Installed Directory: $GNOME_PREFIX/share/pixmaps/splash
Short Descriptions
gnome-session starts up the GNOME desktop.
gnome-session-* session utilities includes a configuration program and other session management related
utilities.
gnome-wm uses the $WINDOW_MANAGER environment variable to allow a user to define a window
manager of choice. If no $WINDOW_MANAGER is defined, gnome-wm defaults to metacity
as the default window manager.
795
Beyond Linux® From Scratch - Version 6.3
Yelp-2.18.1
Introduction to Yelp
The Yelp package contains the help browser. This is useful for viewing help files.
Package Information
• Download (HTTP): http://ftp.gnome.org/pub/gnome/sources/yelp/2.18/yelp-2.18.1.tar.bz2
• Download (FTP): ftp://ftp.gnome.org/pub/gnome/sources/yelp/2.18/yelp-2.18.1.tar.bz2
• Download MD5 sum: 84abbfe7e042706cbf21752957e29bf3
• Download size: 900 KB
• Estimated disk space required: 18 MB
• Estimated build time: 0.3 SBU
Yelp Dependencies
Required
libgnomeui-2.18.1, startup-notification-0.9, GNOME Doc Utils-0.10.3, and a mozilla.org Gecko layout engine
(SeaMonkey-1.1.9 or Firefox-2.0.0.15 or Thunderbird-2.0.0.12 or Mozilla)
Optional
Beagle
Note
The Yelp package is not required for a functional GNOME desktop. Note, however, that without Yelp you
will not be able to view the built-in Help provided by core GNOME and many of the support applications.
This is mentioned here because you may not wish to install a Gecko layout engine. Without a Gecko layout
engine you will have no graphical browser capability as the default GNOME browser, Epiphany-2.18.3,
also requires a Gecko layout engine.
Installation of Yelp
Install Yelp by running the following commands:
make install
796
Beyond Linux® From Scratch - Version 6.3
Command Explanations
--prefix=$(pkg-config --variable=prefix ORBit-2.0): Setting the prefix using this parameter
instead of with $GNOME_PREFIX will ensure that the prefix is consistent with the installation environment and the
package will be installed in the correct location.
--sysconfdir=/etc/gnome/2.18.3: This parameter causes the configuration files to be installed in
/etc/gnome/2.18.3 instead of $GNOME_PREFIX/etc. Additionally (if applicable), the parameter ensures
that the GConf-2 database is correctly updated.
--localstatedir=/var/lib: This parameter is used so that all ScrollKeeper files are installed in, and the
ScrollKeeper database is properly updated in /var/lib/scrollkeeper instead of some files being installed in
$GNOME_PREFIX/var/scrollkeeper.
Contents
Installed Programs: gnome-help and yelp
Installed Libraries: None
Installed Directory: $GNOME_PREFIX/share/yelp
Short Descriptions
gnome-help is a symbolic link to yelp.
yelp is the GNOME help browser.
797
Beyond Linux® From Scratch - Version 6.3
Package Information
• Download (HTTP): http://ftp.gnome.org/pub/gnome/sources/gnome-user-docs/2.18/gnome-user-docs-2.18.2.tar.
bz2
• Download (FTP): ftp://ftp.gnome.org/pub/gnome/sources/gnome-user-docs/2.18/gnome-user-docs-2.18.2.tar.bz2
• Download MD5 sum: 4d3b5c8bd3cc8008f2a44d98efaa2502
• Download size: 6.5 MB
• Estimated disk space required: 52 MB
• Estimated build time: 0.1 SBU
Command Explanations
--prefix=$(pkg-config --variable=prefix ORBit-2.0): Setting the prefix using this parameter
instead of with $GNOME_PREFIX will ensure that the prefix is consistent with the installation environment and the
package will be installed in the correct location.
--localstatedir=/var/lib: This parameter is used so that all ScrollKeeper files are installed in, and the
ScrollKeeper database is properly updated in /var/lib/scrollkeeper instead of some files being installed in
$GNOME_PREFIX/var/scrollkeeper.
798
Beyond Linux® From Scratch - Version 6.3
Contents
Installed Programs: None
Installed Libraries: None
Installed Directories: $GNOME_PREFIX/share/{gnome/help/{gnome-access-guide, system-admin-guide,
user-guide}, omf/{gnome-user-docs,user-guide}}
Short Descriptions
OMF files contain user documentation. These include introductions and help on the core packages.
799
Beyond Linux® From Scratch - Version 6.3
If you have D-BUS-1.0.2 installed, you can start the D-BUS session daemon here as well. Starting the session daemon
here has the added bonus that it will exit when you log out of your GNOME session. If you wish to start the daemon
here, use the following command instead of the one shown above:
Note
Check the ~/.xinitrc file and ensure you have no other window managers or other X applications
mentioned before GNOME.
Ensure all libraries can be found by udating the linker's cache (as root):
ldconfig
update-desktop-database
800
Beyond Linux® From Scratch - Version 6.3
801
Beyond Linux® From Scratch - Version 6.3
Package Information
• Download (HTTP): http://ftp.gnome.org/pub/gnome/sources/evolution-data-server/1.10/evolution-data-server-1.
10.3.tar.bz2
• Download (FTP): ftp://ftp.gnome.org/pub/gnome/sources/evolution-data-server/1.10/evolution-data-server-1.10.
3.tar.bz2
• Download MD5 sum: 44438eca3ca3cab861109605611fe778
• Download size: 7.1 MB
• Estimated disk space required: 185 MB
• Estimated build time: 3.3 SBU (additional 0.5 SBU to run the test suite)
Required
NSS-3.11.7
The NSS package is not required if you have Firefox-2.0.0.15, Thunderbird-2.0.0.12, SeaMonkey-1.1.9 or Mozilla
installed. These packages contain internal copies of NSS (or they used a system-installed copy). If any of the four
packages are installed, one way or another you will already have NSS/NSPR libraries on your system.
Optional
OpenLDAP-2.3.39, an MTA (that provides a sendmail command), Heimdal-1.1 or MIT Kerberos V5-1.6, krb4,
GTK-Doc-1.8, intltool-0.35.5, and DocBook-utils-0.6.14
802
Beyond Linux® From Scratch - Version 6.3
Note
The instructions below assume you have the NSS/NSPR libraries installed on your system. If you elected
not to install NSS (or one of the other packages mentioned above), you'll need to remove the following two
parameter settings from the configure command below:
--enable-nss
--enable-smime
The Evolution configure script does not look for the Thunderbird mail client for the NSS/NSPR libraries.
If you are using Thunderbird as your source for the NSS/NSPR libraries, you will have to add the following
two parameter settings to the configure command below:
--with-nspr-includes=/usr/include/nspr
--with-nss-includes=/usr/include/nss
To test the results, issue: make -k check. Some tests are known to fail, however most should pass.
Now, as the root user:
make install
Command Explanations
--prefix=$(pkg-config --variable=prefix ORBit-2.0): Setting the prefix using this parameter
instead of with $GNOME_PREFIX will ensure that the prefix is consistent with the installation environment and the
package will be installed in the correct location.
--libexecdir=$(pkg-config --variable=prefix ORBit-2.
0)/lib/evolution-data-server-1.2: This parameter causes the libexec files to be installed in
the preferred location of $GNOME_PREFIX/lib/evolution-data-server-1.2 instead of $GNOME_
PREFIX/libexec.
--enable-nntp: This parameter is used to build the Usenet news (NNTP) backend.
--enable-gnome-keyring: This parameter is used so that passwords are stored using the gnome-keyring
storage manager.
--enable-nss: This parameter is used to pull in the Mozilla Network Security Services libraries for SSL support.
--enable-smime: This parameter is used to pull in the Mozilla Network Security Services libraries for S/MIME
support.
803
Beyond Linux® From Scratch - Version 6.3
Note
To enable many of the optional dependencies, review the information from ./configure --help for the
necessary parameters you must pass to the configure script.
Contents
Installed Programs: None
Installed Libraries: libcamel-1.2.so, libcamel-provider-1.2.so, libebook-1.2.so, libecal-1.2.so,
libedata-book-1.2.so, libedata-cal-1.2.so, libedataserver-1.2.so,
libedataserverui-1.2.so, libegroupwise-1.2.so, libexchange-storage-1.2.so and
numerous provider and extension modules.
Installed Directories: The following subdirectories of $GNOME_PREFIX/:
include/evolution-data-server-1.10, lib/evolution-data-server-1.2,
share/{evolution-data-server-1.10, gtk-doc/html/libe{book,cal,data{,server}},
idl/evolution-data-server-1.10, pixmaps/evolution-data-server-1.10}
Short Descriptions
libe*.so libraries are client, backend and utility libraries for the Evolution address books, calendar and data
servers.
804
Beyond Linux® From Scratch - Version 6.3
gnome-audio-2.0.0
Introduction to gnome-audio
The gnome-audio package contains a set of default sounds for the GNOME GUI desktop. Sound files for startup,
shutdown and many GTK+ events are included. These sounds complement the GNOME Media package.
Package Information
• Download (HTTP): http://ftp.gnome.org/pub/gnome/sources/gnome-audio/2.0/gnome-audio-2.0.0.tar.bz2
• Download (FTP): ftp://ftp.gnome.org/pub/gnome/sources/gnome-audio/2.0/gnome-audio-2.0.0.tar.bz2
• Download MD5 sum: cd14b84af59fb2ec673527d32f4e379f
• Download size: 1.4 MB
• Estimated disk space required: 4.2 MB
• Estimated build time: less than 0.1 SBU
Installation of gnome-audio
Note
The instructions below are based on installing the package into a GNOME-2 environment. If, for whatever
reason, you're installing this package without having ORBit2 and the core GNOME-2 libraries installed,
you'll need to modify the --prefix= parameter on the configure script to point to your desired installation
path (e.g., --prefix=/usr).
Command Explanations
prefix=$(pkg-config --variable=prefix ORBit-2.0): Setting the prefix using this parameter
instead of with $GNOME_PREFIX will ensure that the prefix is consistent with the installation environment and the
package will be installed in the correct location.
Contents
Installed Programs: None
Installed Libraries: None
Installed Directory: $GNOME_PREFIX/share/sounds
805
Beyond Linux® From Scratch - Version 6.3
GtkHTML-3.14.3
Introduction to GtkHTML
The GtkHTML package contains a lightweight HTML rendering/printing/editing engine.
Package Information
• Download (HTTP): http://ftp.gnome.org/pub/gnome/sources/gtkhtml/3.14/gtkhtml-3.14.3.tar.bz2
• Download (FTP): http://ftp.gnome.org/pub/gnome/sources/gtkhtml/3.14/gtkhtml-3.14.3.tar.bz2
• Download MD5 sum: 7c028f07e0eb061b0a895ac514265cf1
• Download size: 1.2 MB
• Estimated disk space required: 61 MB
• Estimated build time: 1.3 SBU
GtkHTML Dependencies
Required
Optional
Installation of GtkHTML
Install GtkHTML by running the following commands:
make install
Command Explanations
--prefix=$(pkg-config --variable=prefix ORBit-2.0): Setting the prefix using this parameter
instead of with $GNOME_PREFIX will ensure that the prefix is consistent with the installation environment and the
package will be installed in the correct location.
--libexecdir=$(pkg-config --variable=prefix ORBit-2.0)/lib/gtkhtml: This parameter
causes the libexec files to be installed in the preferred location of $GNOME_PREFIX/lib/gtkhtml instead of
$GNOME_PREFIX/libexec.
806
Beyond Linux® From Scratch - Version 6.3
Contents
Installed Programs: None
Installed Libraries: libgtkhtml-3.14.{so,a} and libgnome-gtkhtml-editor-3.14.{so,a}
Installed Directories: The following subdirectories of $GNOME_PREFIX/: include/libgtkhtml-3.14,
lib/gtkhtml, and share/gtkhtml-3.14
Short Descriptions
libgtkhtml-3.8.{so,a} provide the functions to render HTML within applications.
807
Beyond Linux® From Scratch - Version 6.3
gtksourceview-1.8.5
Introduction to gtksourceview
The gtksourceview package contains libgtksourceview libraries. This is useful for extending the GTK text
functions to include syntax highlighting.
Package Information
• Download (HTTP): http://ftp.gnome.org/pub/gnome/sources/gtksourceview/1.8/gtksourceview-1.8.5.tar.bz2
• Download (FTP): ftp://ftp.gnome.org/pub/gnome/sources/gtksourceview/1.8/gtksourceview-1.8.5.tar.bz2
• Download MD5 sum: de67df2944c1cccbc2d0b4a738e11050
• Download size: 785 KB
• Estimated disk space required: 15 MB
• Estimated build time: 0.2 SBU
gtksourceview Dependencies
Required
GTK+-2.10.13 and XML::Parser-2.34
Recommended
libgnomeprint-2.18.0
Optional
GTK-Doc-1.8 and intltool-0.35.5
Installation of gtksourceview
Install gtksourceview by running the following commands:
./configure --prefix=$(pkg-config --variable=prefix ORBit-2.0) &&
make
This package does not come with a test suite. If you have the optional dependencies to build the test programs installed,
after the package is installed you can change to the tests directory in the source tree and issue ./test-widget. This
will test the functionality of the libgtksourceview-1.0 library.
Now, as the root user:
make install
Command Explanations
--prefix=$(pkg-config --variable=prefix ORBit-2.0): Setting the prefix using this parameter
instead of with $GNOME_PREFIX will ensure that the prefix is consistent with the installation environment and the
package will be installed in the correct location.
808
Beyond Linux® From Scratch - Version 6.3
--enable-gtk-doc: Use this parameter if GTK-Doc is installed and you wish to rebuild the API documentation.
Contents
Installed Programs: None
Installed Library: libgtksourceview-1.0.{so,a}
Installed Directories: The following subdirectories of $GNOME_PREFIX/: include/gtksourceview-1.0,
share/{gtk-doc/html/gtksourceview, gtksourceview-1.0}
Short Descriptions
libgtksourceview-1.0.{so,a} contains function extensions for the GtkTextView widget.
809
Beyond Linux® From Scratch - Version 6.3
libgnomecups-0.2.2
Introduction to libgnomecups
The libgnomecups package contains a library used to wrap the CUPS API in a GLib fashion, so CUPS code can be
cleanly integrated with GLib code.
Package Information
• Download (HTTP): http://ftp.gnome.org/pub/gnome/sources/libgnomecups/0.2/libgnomecups-0.2.2.tar.bz2
• Download (FTP): ftp://ftp.gnome.org/pub/gnome/sources/libgnomecups/0.2/libgnomecups-0.2.2.tar.bz2
• Download MD5 sum: 959d5524fe9c37efb55ccfa02e3a063b
• Download size: 314 KB
• Estimated disk space required: 4.4 MB
• Estimated build time: 0.1 SBU
libgnomecups Dependencies
Required
CUPS-1.2.12, GLib-2.12.12, and XML::Parser-2.34
Optional
intltool-0.35.5
Installation of libgnomecups
Note
The instructions below are based on installing the package into a GNOME-2 environment. If, for whatever
reason, you're installing this package without having ORBit2 and the core GNOME-2 libraries installed,
you'll need to modify the --prefix= parameter on the configure script to point to your desired installation
path (e.g., --prefix=/usr).
make install
Command Explanations
--prefix=$(pkg-config --variable=prefix ORBit-2.0): Setting the prefix using this parameter
instead of with $GNOME_PREFIX will ensure that the prefix is consistent with the installation environment and the
package will be installed in the correct location.
810
Beyond Linux® From Scratch - Version 6.3
Contents
Installed Programs: None
Installed Library: libgnomecups-1.0.{so,a}
Installed Directory: $GNOME_PREFIX/include/libgnomecups-1
Short Descriptions
libgnomecups-1.0.{so,a} libraries are used to wrap the CUPS API in a GLib type interface.
811
Beyond Linux® From Scratch - Version 6.3
libgnomeprint-2.18.0
Introduction to libgnomeprint
The libgnomeprint package contains libgnomeprint libraries.
Package Information
• Download (HTTP): http://ftp.gnome.org/pub/gnome/sources/libgnomeprint/2.18/libgnomeprint-2.18.0.tar.bz2
• Download (FTP): ftp://ftp.gnome.org/pub/gnome/sources/libgnomeprint/2.18/libgnomeprint-2.18.0.tar.bz2
• Download MD5 sum: 5bfc42d67cae1148d1faf238185cbf4d
• Download size: 830 KB
• Estimated disk space required: 26 MB
• Estimated build time: 0.7 SBU
libgnomeprint Dependencies
Required
Optional
Installation of libgnomeprint
Note
The instructions below are based on installing the package into a GNOME-2 environment. If, for whatever
reason, you're installing this package without having ORBit2 and the core GNOME-2 libraries installed,
you'll need to modify the --prefix= parameter on the configure script to point to your desired installation
path (e.g., --prefix=/usr).
The test suite requires Acroread-4 to be installed and passing --with-metadata-printer to the configure
script. If the previous requirements are met and you wish to run the regression tests, change directories to the tests
directory and issue: ./run-test.pl.
Now, as the root user:
make install
812
Beyond Linux® From Scratch - Version 6.3
Command Explanations
--prefix=$(pkg-config --variable=prefix ORBit-2.0): Setting the prefix using this parameter
instead of with $GNOME_PREFIX will ensure that the prefix is consistent with the installation environment and the
package will be installed in the correct location.
--disable-gtk-doc: This switch prevents rebuilding the documentation during the make command. Remove
this parameter if you have GTK-Doc installed and wish to rebuild the documentation.
Contents
Installed Programs: None
Installed Libraries: libgnomeprint-2-2.{so,a} and numerous filters and modules
Installed Directories: The following subdirectories of $GNOME_PREFIX/: include/libgnomeprint-2.2,
lib/libgnomeprint, share/{,gtk-doc/html/}libgnomeprint
Short Descriptions
libgnomeprint-2-2.{so,a} implements the GNOME Printing Architecture.
813
Beyond Linux® From Scratch - Version 6.3
libgnomeprintui-2.18.0
Introduction to libgnomeprintui
The libgnomeprintui package contains the libgnomeprintui library.
Package Information
• Download (HTTP): http://ftp.gnome.org/pub/gnome/sources/libgnomeprintui/2.18/libgnomeprintui-2.18.0.tar.
bz2
• Download (FTP): ftp://ftp.gnome.org/pub/gnome/sources/libgnomeprintui/2.18/libgnomeprintui-2.18.0.tar.bz2
• Download MD5 sum: bea9871059cabee9d108bab32d58d2af
• Download size: 656 KB
• Estimated disk space required: 19 MB
• Estimated build time: 0.3 SBU
libgnomeprintui Dependencies
Required
libgnomecanvas-2.14.0, GNOME Icon Theme-2.18.0, and libgnomeprint-2.18.0
Optional
GTK-Doc-1.8
Installation of libgnomeprintui
Note
The instructions below are based on installing the package into a GNOME-2 environment. If, for whatever
reason, you're installing this package without having ORBit2 and the core GNOME-2 libraries installed,
you'll need to modify the --prefix= parameter on the configure script to point to your desired installation
path (e.g., --prefix=/usr).
make install
Command Explanations
--prefix=$(pkg-config --variable=prefix ORBit-2.0): Setting the prefix using this parameter
instead of with $GNOME_PREFIX will ensure that the prefix is consistent with the installation environment and the
package will be installed in the correct location.
814
Beyond Linux® From Scratch - Version 6.3
--enable-gtk-doc: Use this option if you have GTK-Doc installed and wish to build the API documentation,
as the source tarball does not contain any pre-built docs.
Contents
Installed Programs: None
Installed Library: libgnomeprintui-2-2.{so,a}
Installed Directories: The following subdirectories of $GNOME_PREFIX/: include/libgnomeprintui-2.2 and
share/{,gtk-doc/html/}libgnomeprintui
Short Descriptions
libgnomeprintui-2-2.{so,a} is the GUI portion of the GNOME Printing Architecture implementation.
815
Beyond Linux® From Scratch - Version 6.3
system-tools-backends-1.4.2
Introduction to system-tools-backends
The system-tools-backends are a set of cross-platform scripts for Linux and other Unix systems. The backends provide
a standard XML interface for modifying the configuration regardless of the distribution being used.
Package Information
• Download (HTTP): http://ftp.gnome.org/pub/gnome/sources/system-tools-backends/1.4/system-tools-backends-
1.4.2.tar.bz2
• Download (FTP): ftp://ftp.gnome.org/pub/gnome/sources/system-tools-backends/1.4/system-tools-backends-1.4.
2.tar.bz2
• Download MD5 sum: a0af1513becdf3b9bfed3535ad8f7dab
• Download size: 708 KB
• Estimated disk space required: 10.2 MB
• Estimated build time: less than 0.1 SBU
system-tools-backends Dependencies
Required
XML::Parser-2.34
Optional
intltool-0.35.5
Installation of system-tools-backends
Note
The instructions below are based on installing the package into a GNOME-2 environment. If, for whatever
reason, you're installing this package without having ORBit2 and the core GNOME-2 libraries installed,
you'll need to modify the --prefix= parameter on the configure script to point to your desired installation
path (e.g., --prefix=/usr).
Command Explanations
--prefix=$(pkg-config --variable=prefix ORBit-2.0): Setting the prefix using this parameter
instead of with $GNOME_PREFIX will ensure that the prefix is consistent with the installation environment and the
package will be installed in the correct location.
816
Beyond Linux® From Scratch - Version 6.3
Contents
Installed Programs: None
Installed Libraries: None
Installed Directories: $GNOME_PREFIX/share/setup-tool-backends
Short Descriptions
System tools backend scripts are configuration files, Perl and shell scripts used to perform setup of
various desktop frontend processes and services.
817
Beyond Linux® From Scratch - Version 6.3
bug-buddy-2.18.1
Introduction to bug-buddy
The bug-buddy package contains a graphical bug reporting tool. This can extract debugging information from a core
file or crashed application.
Package Information
• Download (HTTP): http://ftp.gnome.org/pub/gnome/sources/bug-buddy/2.18/bug-buddy-2.18.1.tar.bz2
• Download (FTP): ftp://ftp.gnome.org/pub/gnome/sources/bug-buddy/2.18/bug-buddy-2.18.1.tar.bz2
• Download MD5 sum: ebeaeee4acc1432b59a4ef242abff620
• Download size: 553 KB
• Estimated disk space required: 10 MB
• Estimated build time: 0.1 SBU
bug-buddy Dependencies
Required
GNOME Desktop-2.18.3, gnome-menus-2.18.3, Evolution Data Server-1.10.3, LibGTop-2.14.9, and
ScrollKeeper-0.3.14
Optional
NetworkManager (download), and intltool-0.35.5
Installation of bug-buddy
Install bug-buddy by running the following commands:
./configure --prefix=$(pkg-config --variable=prefix ORBit-2.0) \
--sysconfdir=/etc/gnome/2.18.3 \
--localstatedir=/var/lib \
--mandir=$(pkg-config \
--variable=prefix ORBit-2.0)/share/man &&
make
This package does not come with a test suite.
Now, as the root user:
make install
Command Explanations
--prefix=$(pkg-config --variable=prefix ORBit-2.0): Setting the prefix using this parameter
instead of with $GNOME_PREFIX will ensure that the prefix is consistent with the installation environment and the
package will be installed in the correct location.
--sysconfdir=/etc/gnome/2.18.3: This parameter causes the configuration files to be installed in
/etc/gnome/2.18.3 instead of $GNOME_PREFIX/etc. Additionally (if applicable), the parameter ensures
that the GConf-2 database is correctly updated.
818
Beyond Linux® From Scratch - Version 6.3
--localstatedir=/var/lib: This parameter is used so that all ScrollKeeper files are installed in, and the
ScrollKeeper database is properly updated in /var/lib/scrollkeeper instead of some files being installed in
$GNOME_PREFIX/var/scrollkeeper.
--mandir=$(pkg-config --variable=prefix ORBit-2.0)/share/man: This parameter causes
the man.(X) files to be installed in $GNOME_PREFIX/share/man/man(X) instead of $GNOME_
PREFIX/man/man(X).
Contents
Installed Program: bug-buddy
Installed Libraries: None
Installed Directories: $GNOME_PREFIX/share/{,gnome/help/ ,omf/}bug-buddy
Short Descriptions
bug-buddy is a graphical bug reporting system.
819
Beyond Linux® From Scratch - Version 6.3
Ekiga-2.0.9
Introduction to Ekiga
Ekiga is an H.323 and SIP compatible videoconferencing and VOIP/IP-Telephony application that allows you to
make audio and video calls to remote users with H.323 hardware or software (such as Microsoft Netmeeting) and
SIP compatible software. It supports all modern videoconferencing features, such as registering to an ILS directory,
gatekeeper support, making multi-user conference calls using an external MCU, using modern Quicknet telephony
cards, and making PC-To-Phone calls.
Package Information
• Download (HTTP): http://ftp.gnome.org/pub/gnome/sources/ekiga/2.0/ekiga-2.0.9.tar.bz2
• Download (FTP): ftp://ftp.gnome.org/pub/gnome/sources/ekiga/2.0/ekiga-2.0.9.tar.bz2
• Download MD5 sum: 6c7a01faef8203d6f0ba0dfe6188bb1a
• Download size: 5.5 MB
• Estimated disk space required: 70 MB
• Estimated build time: 0.9 SBU
Ekiga Dependencies
Required
ScrollKeeper-0.3.14, EsounD-0.2.37, Evolution Data Server-1.10.3, PWLib-1.10.7 (compiled with
OpenLDAP-2.3.39 support), and OPAL-2.2.8 (home page for PWLib and OPAL)
Optional
intltool-0.35.5, GNOME Doc Utils-0.10.3, SDL-1.2.11 (required for full-screen video), and Avahi
Installation of Ekiga
Install Ekiga by running the following commands:
./configure --prefix=$(pkg-config --variable=prefix ORBit-2.0) \
--sysconfdir=/etc/gnome/2.18.3 \
--localstatedir=/var/lib &&
make
This package does not come with a test suite.
Now, as the root user:
make install
Two D-BUS service scripts were installed in the previous step. If the $GNOME_PREFIX is anything other than
/usr, as the root user you should add the $GNOME_PREFIX/share/dbus-1/services directory to the
local session configuration as described in the D-BUS-1.0.2 configuration section.
Command Explanations
--prefix=$(pkg-config --variable=prefix ORBit-2.0): Setting the prefix using this parameter
instead of with $GNOME_PREFIX will ensure that the prefix is consistent with the installation environment and the
package will be installed in the correct location.
820
Beyond Linux® From Scratch - Version 6.3
Contents
Installed Programs: ekiga, ekiga-config-tool and ekiga-helper
Installed Libraries: None
Installed Directories: $GNOME_PREFIX/share/{gnome/help/, omf/, pixmaps/, sounds/}ekiga
Short Descriptions
ekiga is a H.323 and SIP VOIP, telephony and video conferencing application which uses the H.323 and SIP
protocols.
821
Beyond Linux® From Scratch - Version 6.3
EOG-2.18.2
Introduction to EOG
The EOG package contains Eye of GNOME. This is useful for viewing and cataloging image files.
Package Information
• Download (HTTP): http://ftp.gnome.org/pub/gnome/sources/eog/2.18/eog-2.18.2.tar.bz2
• Download (FTP): ftp://ftp.gnome.org/pub/gnome/sources/eog/2.18/eog-2.18.2.tar.bz2
• Download MD5 sum: 7e5fc342201ea00404008258c19b4461
• Download size: 1.2 MB
• Estimated disk space required: 22 MB
• Estimated build time: 0.3 SBU
EOG Dependencies
Required
GNOME Desktop-2.18.3 and GNOME Icon Theme-2.18.0
Recommended
libjpeg-6b
Optional
intltool-0.35.5, libexif-0.6.16, and little cms-1.16
Installation of EOG
Install EOG by running the following commands:
make install
Command Explanations
--prefix=$(pkg-config --variable=prefix ORBit-2.0): Setting the prefix using this parameter
instead of with $GNOME_PREFIX will ensure that the prefix is consistent with the installation environment and the
package will be installed in the correct location.
--sysconfdir=/etc/gnome/2.18.3: This parameter causes the configuration files to be installed in
/etc/gnome/2.18.3 instead of $GNOME_PREFIX/etc. Additionally (if applicable), the parameter ensures
that the GConf-2 database is correctly updated.
822
Beyond Linux® From Scratch - Version 6.3
--localstatedir=/var/lib: This parameter is used so that all ScrollKeeper files are installed in, and the
ScrollKeeper database is properly updated in /var/lib/scrollkeeper instead of some files being installed in
$GNOME_PREFIX/var/scrollkeeper.
Contents
Installed Program: eog
Installed Libraries: None
Installed Directories: $GNOME_PREFIX/share/{,gnome/help/ ,omf/ ,pixmaps/}eog
Short Descriptions
eog is a fast and functional image viewer as well as an image cataloging program.
823
Beyond Linux® From Scratch - Version 6.3
Epiphany-2.18.3
Introduction to Epiphany
Epiphany is a simple yet powerful GNOME web browser targeted at non-technical users. Its principles are simplicity
and standards compliance.
Package Information
• Download (HTTP): http://ftp.gnome.org/pub/gnome/sources/epiphany/2.18/epiphany-2.18.3.tar.bz2
• Download (FTP): ftp://ftp.gnome.org/pub/gnome/sources/epiphany/2.18/epiphany-2.18.3.tar.bz2
• Download MD5 sum: 2e77f3f0651a27cac29224e82c3cc793
• Download size: 4.7 MB
• Estimated disk space required: 91 MB
• Estimated build time: 1.3 SBU
Epiphany Dependencies
Required
GNOME Desktop-2.18.3, startup-notification-0.9, ISO Codes-1.2, and a mozilla.org Gecko layout engine
(SeaMonkey-1.1.9 or Firefox-2.0.0.15 or Thunderbird-2.0.0.12 or Mozilla)
Optional
Installation of Epiphany
Install Epiphany by running the following commands:
make install
A D-BUS service script was installed in the previous step. If the $GNOME_PREFIX is anything other than /usr, as
the root user you should add the $GNOME_PREFIX/share/dbus-1/services directory to the local session
configuration as described in the D-BUS-1.0.2 configuration section.
824
Beyond Linux® From Scratch - Version 6.3
If you have GNOME-Python installed, the Epiphany Python extension is automatically built. If your
$GNOME_PREFIX is anything but /usr and you have GNOME-Python installed, as the root user create the
following symbolic link in the PyGTK extensions directory of /usr/share:
ln -v -s $GNOME_PREFIX/share/pygtk/2.0/defs/epiphany.defs \
/usr/share/pygtk/2.0/defs
Command Explanations
--prefix=$(pkg-config --variable=prefix ORBit-2.0): Setting the prefix using this parameter
instead of with $GNOME_PREFIX will ensure that the prefix is consistent with the installation environment and the
package will be installed in the correct location.
--sysconfdir=/etc/gnome/2.18.3: This parameter causes the configuration files to be installed in
/etc/gnome/2.18.3 instead of $GNOME_PREFIX/etc. Additionally (if applicable), the parameter ensures
that the GConf-2 database is correctly updated.
--localstatedir=/var/lib: This parameter is used so that all ScrollKeeper files are installed in, and the
ScrollKeeper database is properly updated in /var/lib/scrollkeeper instead of some files being installed in
$GNOME_PREFIX/var/scrollkeeper.
--mandir=$(pkg-config --variable=prefix ORBit-2.0)/share/man: This parameter causes
the man.(X) files to be installed in $GNOME_PREFIX/share/man/man(X) instead of $GNOME_
PREFIX/man/man(X).
Contents
Installed Program: epiphany
Installed Libraries: None
Installed Directories: The following subdirectories of $GNOME_PREFIX/: include/epiphany-2.14,
lib/epiphany, share/{,gnome/help/, gtk-doc/html/, omf/}epiphany
Short Descriptions
epiphany is a GNOME web browser based on the Mozilla rendering engine.
825
Beyond Linux® From Scratch - Version 6.3
Evince-0.8.3
Introduction to Evince
The Evince package contains a document viewer for multiple document formats. It currently supports PDF, Postscript,
DjVu, TIFF and DVI. This is useful for viewing documents of various types using one simple application instead of
the multiple document viewers that once existed on the GNOME Desktop.
Package Information
• Download (HTTP): http://ftp.gnome.org/pub/gnome/sources/evince/0.8/evince-0.8.3.tar.bz2
• Download (FTP): ftp://ftp.gnome.org/pub/gnome/sources/evince/0.8/evince-0.8.3.tar.bz2
• Download MD5 sum: 0603d3f3f5648c88f10f75c89807c3d1
• Download size: 1.5 MB
• Estimated disk space required: 44 MB
• Estimated build time: 0.7 SBU
Evince Dependencies
Required
Run-Time Requirement
shared-mime-info-0.21
Optional
intltool-0.35.5, GTK-Doc-1.8, libgnomeprintui-2.18.0 (only used as an alternate method for printing), LibTIFF-3.8.2,
teTeX-3.0 (required to build the DVI viewer), Nautilus-2.18.3 (required to build the Nautilus plugin), Poppler-0.5.4
(required for PDF support and must be built with GTK+ support), ESP Ghostscript-8.15.4 or AFPL Ghostscript-8.53
(required for Postscript ability from Evince), DjVuLibre (required for DjVu graphics from Evince), and t1lib (required
for Type1 font support in the DVI viewer)
Installation of Evince
Install Evince by running the following commands:
The test suite for this package requires a functional dogtail installation. Requirements and download information can
be found at http://people.redhat.com/zcerza/dogtail/. The test suite is invoked by issuing make check.
826
Beyond Linux® From Scratch - Version 6.3
make install
Command Explanations
--prefix=$(pkg-config --variable=prefix ORBit-2.0): Setting the prefix using this parameter
instead of with $GNOME_PREFIX will ensure that the prefix is consistent with the installation environment and the
package will be installed in the correct location.
--sysconfdir=/etc/gnome/2.18.3: This parameter causes the configuration files to be installed in
/etc/gnome/2.18.3 instead of $GNOME_PREFIX/etc. Additionally (if applicable), the parameter ensures
that the GConf-2 database is correctly updated.
--localstatedir=/var/lib: This parameter is used so that all ScrollKeeper files are installed in, and the
ScrollKeeper database is properly updated in /var/lib/scrollkeeper instead of some files being installed in
$GNOME_PREFIX/var/scrollkeeper.
--mandir=$(pkg-config --variable=prefix ORBit-2.0)/share/man: This parameter causes
the man.(X) files to be installed in $GNOME_PREFIX/share/man/man(X) instead of $GNOME_
PREFIX/man/man(X).
--disable-ps: This parameter is required if you don't have a Ghostscript package installed. Remove the parameter
if you do have a Ghostscript package installed and wish to build the DVI viewer which provides Postscript support.
--enable-djvu: Use this parameter if you have the DjVuLibre package installed and you wish to build support
to view DjVu graphic files.
--enable-dvi: Use this parameter if you have the teTeX package installed and you wish to build support to view
DVI files.
--enable-t1lib: Use this parameter if you have the t1lib package installed and you wish to build support for
Type1 fonts in the DVI viewer.
Contents
Installed Programs: evince and evince-thumbnailer
Installed Library: libevince-properties-page.{so,a} Nautilus extension
Installed Directories: $GNOME_PREFIX/share/{,gnome/help/ ,omf/}evince
Short Descriptions
evince is a multiple format document viewer.
evince-thumbnailer is a simple program used to create thumbnail images of supported documents.
827
Beyond Linux® From Scratch - Version 6.3
File Roller-2.18.4
Introduction to File Roller
File Roller is an archive manager for GNOME with support for tar, bzip2, gzip, zip, jar, compress, lzop and many
other archive formats.
Package Information
• Download (HTTP): http://ftp.gnome.org/pub/gnome/sources/file-roller/2.18/file-roller-2.18.4.tar.bz2
• Download (FTP): ftp://ftp.gnome.org/pub/gnome/sources/file-roller/2.18/file-roller-2.18.4.tar.bz2
• Download MD5 sum: f651f951d5c1c24288c1a25b1f567be0
• Download size: 1.1 MB
• Estimated disk space required: 21 MB
• Estimated build time: 0.2 SBU
Optional
intltool-0.35.5 and Nautilus-2.18.3
Command Explanations
--prefix=$(pkg-config --variable=prefix ORBit-2.0): Setting the prefix using this parameter
instead of with $GNOME_PREFIX will ensure that the prefix is consistent with the installation environment and the
package will be installed in the correct location.
--sysconfdir=/etc/gnome/2.18.3: This parameter causes the configuration files to be installed in
/etc/gnome/2.18.3 instead of $GNOME_PREFIX/etc. Additionally (if applicable), the parameter ensures
that the GConf-2 database is correctly updated.
828
Beyond Linux® From Scratch - Version 6.3
--localstatedir=/var/lib: This parameter is used so that all ScrollKeeper files are installed in, and the
ScrollKeeper database is properly updated in /var/lib/scrollkeeper instead of some files being installed in
$GNOME_PREFIX/var/scrollkeeper.
--disable-nautilus-actions: This parameter is required if Nautilus is not installed. Remove the parameter
if Nautilus is installed.
Contents
Installed Program: file-roller
Installed Libraries: A Nautilus extension
Installed Directories: $GNOME_PREFIX/lib/file-roller,
$GNOME_PREFIX/share/{,gnome/help/ ,omf/}file-roller
Short Descriptions
file-roller is an archiver for GNOME.
829
Beyond Linux® From Scratch - Version 6.3
gcalctool-5.9.14
Introduction to gcalctool
gcalctool is a powerful graphical calculator with financial, logical and scientific modes. It uses a multiple precision
package to do its arithmetic to give a high degree of accuracy.
Package Information
• Download (HTTP): http://ftp.gnome.org/pub/gnome/sources/gcalctool/5.9/gcalctool-5.9.14.tar.bz2
• Download (FTP): ftp://ftp.gnome.org/pub/gnome/sources/gcalctool/5.9/gcalctool-5.9.14.tar.bz2
• Download MD5 sum: dd51bc2fa9e53a3b6d7b3264e1059296
• Download size: 1.1 MB
• Estimated disk space required: 20 MB
• Estimated build time: 0.2 SBU
gcalctool Dependencies
Required
libgnomeui-2.18.1 and GNOME Doc Utils-0.10.3
Optional
intltool-0.35.5
Installation of gcalctool
Install gcalctool by running the following commands:
make install
Command Explanations
--prefix=$(pkg-config --variable=prefix ORBit-2.0): Setting the prefix using this parameter
instead of with $GNOME_PREFIX will ensure that the prefix is consistent with the installation environment and the
package will be installed in the correct location.
--sysconfdir=/etc/gnome/2.18.3: This parameter causes the configuration files to be installed in
/etc/gnome/2.18.3 instead of $GNOME_PREFIX/etc. Additionally (if applicable), the parameter ensures
that the GConf-2 database is correctly updated.
830
Beyond Linux® From Scratch - Version 6.3
--localstatedir=/var/lib: This parameter is used so that all ScrollKeeper files are installed in, and the
ScrollKeeper database is properly updated in /var/lib/scrollkeeper instead of some files being installed in
$GNOME_PREFIX/var/scrollkeeper.
--mandir=$(pkg-config --variable=prefix ORBit-2.0)/share/man: This parameter causes
the man.(X) files to be installed in $GNOME_PREFIX/share/man/man(X) instead of $GNOME_
PREFIX/man/man(X).
Contents
Installed Programs: gcalctool and gnome-calculator
Installed Libraries: None
Installed Directories: $GNOME_PREFIX/share/{gnome/help/, omf/}gcalctool
Short Descriptions
gcalctool is a desktop calculator for GNOME.
gnome-calculator is a symlink to the gcalctool program.
831
Beyond Linux® From Scratch - Version 6.3
GConf Editor-2.18.0
Introduction to GConf Editor
The GConf Editor package contains a GUI editor for the GConf configuration database.
Package Information
• Download (HTTP): http://ftp.gnome.org/pub/gnome/sources/gconf-editor/2.18/gconf-editor-2.18.0.tar.bz2
• Download (FTP): ftp://ftp.gnome.org/pub/gnome/sources/gconf-editor/2.18/gconf-editor-2.18.0.tar.bz2
• Download MD5 sum: cbaefa1ff8a548a3d381c67aed426fb7
• Download size: 694 KB
• Estimated disk space required: 9 MB
• Estimated build time: 0.1 SBU
Optional
intltool-0.35.5
Command Explanations
--prefix=$(pkg-config --variable=prefix ORBit-2.0): Setting the prefix using this parameter
instead of with $GNOME_PREFIX will ensure that the prefix is consistent with the installation environment and the
package will be installed in the correct location.
--sysconfdir=/etc/gnome/2.18.3: This parameter causes the configuration files to be installed in
/etc/gnome/2.18.3 instead of $GNOME_PREFIX/etc. Additionally (if applicable), the parameter ensures
that the GConf-2 database is correctly updated.
--localstatedir=/var/lib: This parameter is used so that all ScrollKeeper files are installed in, and the
ScrollKeeper database is properly updated in /var/lib/scrollkeeper instead of some files being installed in
$GNOME_PREFIX/var/scrollkeeper.
832
Beyond Linux® From Scratch - Version 6.3
Contents
Installed Program: gconf-editor
Installed Libraries: None
Installed Directories: $GNOME_PREFIX/share/{gnome/help, omf, pixmaps}/gconf-editor
Short Descriptions
gconf-editor allows direct modification of the GConf configuration database.
833
Beyond Linux® From Scratch - Version 6.3
GDM-2.18.3
Introduction to GDM
The GDM package contains GNOME's Display Manager daemon. This is useful for allowing configurable graphical
logins.
Package Information
• Download (HTTP): http://ftp.gnome.org/pub/gnome/sources/gdm/2.18/gdm-2.18.3.tar.bz2
• Download (FTP): ftp://ftp.gnome.org/pub/gnome/sources/gdm/2.18/gdm-2.18.3.tar.bz2
• Download MD5 sum: 08555fce34d247062625c1a451a4d5a6
• Download size: 3.4 MB
• Estimated disk space required: 64 MB
• Estimated build time: 0.6 SBU
GDM Dependencies
Required
libgnomecanvas-2.14.0, GNOME Doc Utils-0.10.3, and librsvg-2.16.1
Optional
intltool-0.35.5, Zenity-2.18.2, Linux-PAM-0.99.10.0, TCP Wrapper-7.6, ConsoleKit, and OpenAFS
If you configure GDM to offer secure connections to remote machines, you will need to have Zenity-2.18.2,
OpenSSH-4.7p1 and which-2.19 installed.
Installation of GDM
It is recommended to have a dedicated user and group to take control of the gdm-binary daemon after it is started.
Issue the following commands as the root user:
834
Beyond Linux® From Scratch - Version 6.3
make install
Command Explanations
--prefix=$(pkg-config --variable=prefix ORBit-2.0): Setting the prefix using this parameter
instead of with $GNOME_PREFIX will ensure that the prefix is consistent with the installation environment and the
package will be installed in the correct location.
--sysconfdir=/etc/gnome/2.18.3: This parameter causes the configuration files to be installed in
/etc/gnome/2.18.3 instead of $GNOME_PREFIX/etc. Additionally (if applicable), the parameter ensures
that the GConf-2 database is correctly updated.
--localstatedir=/var/lib: This command puts files in /var/lib instead of $GNOME_PREFIX/var.
This also has the downside affect of using /var/lib/log/gdm as the log directory. See the “Configuration
Information” section below for instructions on relocating the log file directory.
--libexecdir=$(pkg-config --variable=prefix ORBit-2.0)/lib/gdm: This parameter is used
so that the GDM internal support programs are installed in the preferred location of $GNOME_PREFIX/lib/gdm
instead of $GNOME_PREFIX/libexec.
--mandir=$(pkg-config --variable=prefix ORBit-2.0)/share/man: This parameter causes
the man.(X) files to be installed in $GNOME_PREFIX/share/man/man(X) instead of $GNOME_
PREFIX/man/man(X).
--with-pam-prefix=/etc: This command puts PAM configuration files in /etc/pam.d instead of
/etc/gnome/2.18.3.
Configuring GDM
Config Files
/etc/gnome/2.18.3/gdm/custom.conf, $GNOME_PREFIX/share/gdm/defaults.conf
Configuration Information
Starting with the 2.14.x version of GNOME, the default configuration parameters are stored in a static file
($GNOME_PREFIX/share/gdm/defaults.conf). This file is not intended to be edited. If modification of the
configuration is necessary, you should add parameters to the /etc/gnome/2.18.3/gdm/custom.conf file.
The settings in this file will override the settings in the static file. The same parameters in the static file are used in
the configuration file.
Change the directory containing the GDM log files to the /var/log hierarchy by creating a directory and modifying
the /etc/gnome/2.18.3/gdm/custom.conf configuration file. Issue the following commands as the root
user:
835
Beyond Linux® From Scratch - Version 6.3
The GDM PAM configuration files contain modules not present in a BLFS installation. If you have PAM installed,
issue the following commands as the root user to replace those files with files containing correctly specified
modules:
EOF
cat > /etc/pam.d/gdm-autologin << "EOF"
auth required pam_env.so
auth requisite pam_nologin.so
auth required pam_permit.so
account required pam_unix.so
password required pam_unix.so
session required pam_unix.so
EOF
If you have D-BUS installed and you want to start the session D-BUS daemon when you start the GNOME desktop
environment using gdm, you'll need to create a new Xsession file. Create the file using the following command as
the root user.
EOF
chmod -v 644 $GNOME_PREFIX/share/xsessions/gnome-dbus.desktop
Choose this session using the session selection dialog on the display manager login screen. You also have the
opportunity to make this your default session.
Note
You may use the .desktop file created above as an example to create additional .desktop files and
add any other desired items to the GDM display manager session selection menu.
gdm can be tested by executing it as the root user. Use the gdm-stop command if you wish to stop the display
manager.
836
Beyond Linux® From Scratch - Version 6.3
Boot Script
To start a graphical login when the system is booted, install the /etc/rc.d/init.d/gdm init script included in
the blfs-bootscripts-20080816 package. If your GNOME_PREFIX environment variable is anything other than /usr
or /opt/gnome-2.18.3, you will need to modify the PATH statement in the script to include the path where you
have GNOME installed.
make install-gdm
id:3:initdefault:
is changed to:
id:5:initdefault:
Contents
Installed Programs: gdm, gdm-binary, gdm-dmx-reconnect-proxy, gdm-restart, gdm-safe-restart,
gdm-stop, gdmXnest, gdmXnestchooser, gdmdynamic, gdmflexiserver,
gdmphotosetup, gdmsetup, and gdmthemetester
Installed Libraries: lib*mouselistener.{so,a} GTK+ modules
Installed Directories: /etc/gnome/2.18.3/{,g}dm, /var/lib/gdm, /var/log/gdm and the following directories in
$GNOME_PREFIX/: share/{,gnome/help/ ,omf/}gdm
Short Descriptions
gdm is a wrapper script to execute the GDM binary, the configurable GNOME based login
prompt.
gdm-restart sends the HUP signal to the GDM daemon so that it restarts. It's used after the config file
is edited
gdm-safe-restart sends the USR1 signal to the GDM daemon so that it restarts. It's used after the config
file is edited.
gdmsetup is a graphical interface to edit the gdm.conf file.
837
Beyond Linux® From Scratch - Version 6.3
gedit-2.18.2
Introduction to gedit
The gedit package contains a lightweight UTF-8 text editor for the GNOME desktop.
Package Information
• Download (HTTP): http://ftp.gnome.org/pub/gnome/sources/gedit/2.18/gedit-2.18.2.tar.bz2
• Download (FTP): ftp://ftp.gnome.org/pub/gnome/sources/gedit/2.18/gedit-2.18.2.tar.bz2
• Download MD5 sum: 7e8bf29bd6bf0d17ceaf42d9bd5d94e6
• Download size: 3.4 MB
• Estimated disk space required: 80 MB
• Estimated build time: 1.1 SBU (includes spell-check support and Python plugins)
gedit Dependencies
Required
PyGTK-2.10.6 (including the gtk, pango and gtk.libglade modules) and Gnome-Python-Desktop-2.18.0 (including
the gtksourceview module)
Optional
Installation of gedit
Install gedit by running the following commands:
make install
838
Beyond Linux® From Scratch - Version 6.3
Command Explanations
--prefix=$(pkg-config --variable=prefix ORBit-2.0): Setting the prefix using this parameter
instead of with $GNOME_PREFIX will ensure that the prefix is consistent with the installation environment and the
package will be installed in the correct location.
--sysconfdir=/etc/gnome/2.18.3: This parameter causes the configuration files to be installed in
/etc/gnome/2.18.3 instead of $GNOME_PREFIX/etc. Additionally (if applicable), the parameter ensures
that the GConf-2 database is correctly updated.
--localstatedir=/var/lib: This parameter is used so that all ScrollKeeper files are installed in, and the
ScrollKeeper database is properly updated in /var/lib/scrollkeeper instead of some files being installed in
$GNOME_PREFIX/var/scrollkeeper.
--disable-spell: This parameter disables spell-checking capability and is required if Enchant is not installed.
Remove the parameter if Enchant is installed.
--enable-gtk-doc: Use this parameter if GTK-Doc is installed and you wish to rebuild the API documentation.
Contents
Installed Programs: gedit and gnome-text-editor
Installed Libraries: gedit plugin modules
Installed Directories: The following subdirectories of $GNOME_PREFIX/: include/gedit-2.16, lib/gedit-2,
share/{gedit-2, {gnome/help, omf}/gedit}
Short Descriptions
gedit is a lightweight text editor integrated with the GNOME desktop.
gnome-text-editor is a symlink to gedit.
839
Beyond Linux® From Scratch - Version 6.3
GNOME Games-2.18.2.1
Introduction to GNOME Games
The GNOME Games package contains games. Starting with GNOME-2.8, the background graphics, artwork and
themes for the games are supplied in a separate package. You can download the GNOME Games Extra Data package
from http://ftp.gnome.org/pub/gnome/sources/gnome-games-extra-data/2.18/.
Package Information
• Download (HTTP): http://ftp.gnome.org/pub/gnome/sources/gnome-games/2.18/gnome-games-2.18.2.1.tar.bz2
• Download (FTP): ftp://ftp.gnome.org/pub/gnome/sources/gnome-games/2.18/gnome-games-2.18.2.1.tar.bz2
• Download MD5 sum: c3434a724cd72a536ba48d9187f10697
• Download size: 7.5 MB
• Estimated disk space required: 118 MB
• Estimated build time: 1.8 SBU
Optional
intltool-0.35.5, EsounD-0.2.37, Guile-1.8.2 (to build the AisleRiot solitaire games), and GGZ (to enable network
gaming; see the GNOME Games README file for the specific GGZ packages you will need)
See the glchess/README file for additional optional dependencies for the chess game.
840
Beyond Linux® From Scratch - Version 6.3
Command Explanations
--prefix=$(pkg-config --variable=prefix ORBit-2.0): Setting the prefix using this parameter
instead of with $GNOME_PREFIX will ensure that the prefix is consistent with the installation environment and the
package will be installed in the correct location.
--sysconfdir=/etc/gnome/2.18.3: This parameter causes the configuration files to be installed in
/etc/gnome/2.18.3 instead of $GNOME_PREFIX/etc. Additionally (if applicable), the parameter ensures
that the GConf-2 database is correctly updated.
--localstatedir=/var/lib: This parameter is used so that all ScrollKeeper files are installed in,
and the ScrollKeeper database is properly updated in /var/lib/scrollkeeper instead of $GNOME_
PREFIX/var/scrollkeeper and also causes the game programs to use /var/lib/games as the directory
holding the high score files.
--disable-setgid: This will prevent the setgid bit on the executables from being set. It provides system
administrators with the option to disable setgid binaries, though it also means that the functionality to save high game
scores will be disabled.
Contents
Installed Programs: blackjack, glchess, glines, gnect, gnectd, gnibbles, gnibblesd, gnobots2,
gnome-gnuchess, gnome-sudoku, gnometris, gnomine, gnotravex, gnotski, gtali, iagno,
iagnod, mahjongg, same-gnome, and sol
Installed Libraries: None
Installed Directories: The following subdirectories of $GNOME_PREFIX/: share/{{many game names},
{,omf/}gnome-games, {,help,pixmaps,sound}/{game names}, /var/lib/games
Short Descriptions
See the README file in the source tree for a description of each game.
841
Beyond Linux® From Scratch - Version 6.3
Package Information
• Download (HTTP): http://ftp.gnome.org/pub/gnome/sources/gnome-keyring-manager/2.18/gnome-keyring-
manager-2.18.0.tar.bz2
• Download (FTP): ftp://ftp.gnome.org/pub/gnome/sources/gnome-keyring-manager/2.18/gnome-keyring-
manager-2.18.0.tar.bz2
• Download MD5 sum: 05183cdea9d933cb1e9a8f4202c6ffc0
• Download size: 455 KB
• Estimated disk space required: 8 MB
• Estimated build time: 0.2 SBU
Required
Optional
intltool-0.35.5
make install
Command Explanations
--prefix=$(pkg-config --variable=prefix ORBit-2.0): Setting the prefix using this parameter
instead of with $GNOME_PREFIX will ensure that the prefix is consistent with the installation environment and the
package will be installed in the correct location.
842
Beyond Linux® From Scratch - Version 6.3
Contents
Installed Program: gnome-keyring-manager
Installed Libraries: None
Installed Directories: $GNOME_PREFIX/share/{,gnome/help/ ,omf/}gnome-keyring-manager
Short Descriptions
gnome-keyring-manager is a graphical key management tool for GNOME. It allows the user to create, delete,
and otherwise manipulate keys and keyrings which can be used to store passwords.
843
Beyond Linux® From Scratch - Version 6.3
GNOME Media-2.18.0
Introduction to GNOME Media
The GNOME Media package contains GNOME's media applications.
Package Information
• Download (HTTP): http://ftp.gnome.org/pub/gnome/sources/gnome-media/2.18/gnome-media-2.18.0.tar.bz2
• Download (FTP): ftp://ftp.gnome.org/pub/gnome/sources/gnome-media/2.18/gnome-media-2.18.0.tar.bz2
• Download MD5 sum: a472d8c7733b119376bc6127ee55a82d
• Download size: 3.0 MB
• Estimated disk space required: 44 MB
• Estimated build time: 0.8 SBU
Optional
GStreamer Base Plug-ins-0.10.13 (required to build the sound mixer), GStreamer Good Plug-ins-0.10.6 (required to
build the sound recorder), Nautilus CD Burner-2.18.2 (required to build the CD player), an MTA (that provides a
sendmail command), intltool-0.35.5, and DocBook-utils-0.6.14
Command Explanations
--prefix=$(pkg-config --variable=prefix ORBit-2.0): Setting the prefix using this parameter
instead of with $GNOME_PREFIX will ensure that the prefix is consistent with the installation environment and the
package will be installed in the correct location.
--sysconfdir=/etc/gnome/2.18.3: This parameter causes the configuration files to be installed in
/etc/gnome/2.18.3 instead of $GNOME_PREFIX/etc. Additionally (if applicable), the parameter ensures
that the GConf-2 database is correctly updated.
844
Beyond Linux® From Scratch - Version 6.3
--localstatedir=/var/lib: This parameter is used so that all ScrollKeeper files are installed in, and the
ScrollKeeper database is properly updated in /var/lib/scrollkeeper instead of some files being installed in
$GNOME_PREFIX/var/scrollkeeper.
--libexecdir=$(pkg-config --variable=prefix ORBit-2.0)/lib/gnome-media:
This parameter causes the libexec files to be installed in the preferred location of $GNOME_
PREFIX/lib/gnome-media instead of $GNOME_PREFIX/libexec.
Contents
Installed Programs: CDDBSlave2, cddb-slave2-properties, cddb-track-editor,
gnome-audio-profiles-properties, gnome-cd, gnome-sound-recorder,
gnome-volume-control, gstreamer-properties and vumeter
Installed Libraries: libcddb-slave2.{so,a}, libgnome-media-profiles.{so,a} and a
libgnome-media-profiles.{so,a} Glade library
Installed Directories: The following subdirectories of $GNOME_PREFIX/:
include/{cddb-slave2,gnome-media}, lib/gnome-media,
share/{gnome-{media,sound-recorder}, gnome/help/{gnome-{cd, sound-recorder,
volume-control}, grecord, gstreamer-properties}, gstreamer-properties,
omf/gnome-media, pixmaps/gnome-{cd, media}}
Short Descriptions
gnome-cd is GNOME's CD Player.
gnome-sound-recorder is GNOME's recorder.
gnome-volume-control is GNOME's mixer with volume applet.
gstreamer-properties is a GUI front-end to GStreamer's audio/video input/output parameters.
vumeter is a visual volume meter.
845
Beyond Linux® From Scratch - Version 6.3
gnome-mount-0.6
Introduction to gnome-mount
The gnome-mount package contains programs for mounting, unmounting and ejecting storage devices. The goal for
gnome-mount is to get the appropriate GNOME software (such as gnome-volume-manager and GNOME-VFS) to
use this instead of invoking mount/umount/eject or direct HAL invoking methods.
All the gnome-mount programs utilize the methods on HAL and as such run unprivileged. The rationale for
gnome-mount is to have a centralized place (in GConf) where settings (e.g., mount options and mount locations)
are maintained.
Package Information
• Download (HTTP): http://people.freedesktop.org/~david/dist/gnome-mount-0.6.tar.gz
•
• Download MD5 sum: d2612aecfa73806e072316033d78b203
• Download size: 466 KB
• Estimated disk space required: 6 MB
• Estimated build time: 0.1 SBU
gnome-mount Dependencies
Required
gnome-keyring-0.8.1 and HAL-0.5.9.1
Optional
Nautilus-2.18.3, libnotify, and intltool-0.35.5
Installation of gnome-mount
Install gnome-mount by running the following commands:
./configure --prefix=$(pkg-config --variable=prefix ORBit-2.0) \
--sysconfdir=/etc/gnome/2.18.3 &&
make
This package does not come with a test suite.
Now, as the root user:
make install
Command Explanations
--prefix=$(pkg-config --variable=prefix ORBit-2.0): Setting the prefix using this parameter
instead of with $GNOME_PREFIX will ensure that the prefix is consistent with the installation environment and the
package will be installed in the correct location.
--sysconfdir=/etc/gnome/2.18.3: This parameter causes the configuration files to be installed in
/etc/gnome/2.18.3 instead of $GNOME_PREFIX/etc. Additionally (if applicable), the parameter ensures
that the GConf-2 database is correctly updated.
846
Beyond Linux® From Scratch - Version 6.3
Contents
Installed Programs: gnome-eject, gnome-mount and gnome-umount
Installed Libraries: libgnome-mount.{so,a} Nautilus extention
Installed Directories: $GNOME_PREFIX/share/gnome-mount
Short Descriptions
gnome-mount is used to automatically mount storage media and other removable media.
gnome-umount is a symbolic link to gnome-mount used to automatically unmount storage media and other
removable media.
gnome-eject is a symbolic link to gnome-mount used to automatically open and close (if supported by the
drive) the drive door and tray in CD/DVD drives.
847
Beyond Linux® From Scratch - Version 6.3
GNOME Netstatus-2.12.1
Introduction to GNOME Netstatus
The GNOME Netstatus package contains a panel applet that monitors network interfaces. It provides indicators for
incoming and outgoing data, packets received and transmitted, and information about the network interface such as
IP information and Ethernet address.
Package Information
• Download (HTTP): http://ftp.gnome.org/pub/gnome/sources/gnome-netstatus/2.12/gnome-netstatus-2.12.1.tar.
bz2
• Download (FTP): ftp://ftp.gnome.org/pub/gnome/sources/gnome-netstatus/2.12/gnome-netstatus-2.12.1.tar.bz2
• Download MD5 sum: 8651ca1694a6c222ae5cad6e21814d24
• Download size: 500 KB
• Estimated disk space required: 9 MB
• Estimated build time: 0.2 SBU
Required
GNOME Panel-2.18.3
make install
Command Explanations
--prefix=$(pkg-config --variable=prefix ORBit-2.0): Setting the prefix using this parameter
instead of with $GNOME_PREFIX will ensure that the prefix is consistent with the installation environment and the
package will be installed in the correct location.
--sysconfdir=/etc/gnome/2.18.3: This parameter causes the configuration files to be installed in
/etc/gnome/2.18.3 instead of $GNOME_PREFIX/etc. Additionally (if applicable), the parameter ensures
that the GConf-2 database is correctly updated.
848
Beyond Linux® From Scratch - Version 6.3
--localstatedir=/var/lib: This parameter is used so that all ScrollKeeper files are installed in, and the
ScrollKeeper database is properly updated in /var/lib/scrollkeeper instead of some files being installed in
$GNOME_PREFIX/var/scrollkeeper.
--libexecdir=$(pkg-config --variable=prefix ORBit-2.0)/lib/gnome-netstatus:
This parameter causes the libexec files to be installed in the preferred location of in $GNOME_
PREFIX/lib/gnome-netstatus instead of $GNOME_PREFIX/libexec.
Contents
Installed Programs: None
Installed Libraries: None
Installed Applet: gnome-netstatus-applet
Installed Directories: $GNOME_PREFIX/share/{,gnome/help/ ,omf/}gnome-netstatus
Short Descriptions
gnome-netstatus-applet displays information about a network interface on your panel.
849
Beyond Linux® From Scratch - Version 6.3
gnome-screensaver-2.18.2
Introduction to gnome-screensaver
The gnome-screensaver package contains a screen saver and locker designed to have simple, sane, secure defaults
and be well integrated with the desktop. It supports locking down of configuration settings, has translations into many
languages and convenient user switching.
Package Information
• Download (HTTP): http://ftp.gnome.org/pub/gnome/sources/gnome-screensaver/2.18/gnome-screensaver-2.18.
2.tar.bz2
• Download (FTP): ftp://ftp.gnome.org/pub/gnome/sources/gnome-screensaver/2.18/gnome-screensaver-2.18.2.
tar.bz2
• Download MD5 sum: b5931e1f39c62acee0df1fcf016ddc39
• Download size: 2.0 MB
• Estimated disk space required: 21 MB
• Estimated build time: 0.3 SBU
gnome-screensaver Dependencies
Required
Optional
Installation of gnome-screensaver
Note
Optional Features
1. If you have XScreenSaver installed and wish to import any or all of the “hacks” into gnome-screensaver
themes, set the following environment variable (modify it if XScreenSaver is installed in a non-standard
location):
XSAVERDIR=/usr/share/xscreensaver/config
--with-xscreensaverdir=$XSAVERDIR
2. If you have GDM installed and wish to provide user-switching from the gnome-screensaver unlock-screen
dialog box, add the following parameter to the configure script below:
--with-gdm-config=/etc/gnome/2.18.3/gdm/custom.conf
850
Beyond Linux® From Scratch - Version 6.3
XSAVERLIST="*" &&
unset XSAVERDIR
unset XSAVERLIST
unset SAVERLIST
cd ..
This package does not come with a test suite.
Now, as the root user:
make install &&
GNOMEDOCDIR="$(pkg-config \
--variable=prefix ORBit-2.0)/share/doc/gnome-screensaver-2.18.2" &&
851
Beyond Linux® From Scratch - Version 6.3
Command Explanations
sed -i 's|etc/pam\.d"|etc|' data/Makefile.in: This command is used so that an erroneous message to copy the PAM
configuration file is not displayed.
--prefix=$(pkg-config --variable=prefix ORBit-2.0): Setting the prefix using this parameter
instead of with $GNOME_PREFIX will ensure that the prefix is consistent with the installation environment and the
package will be installed in the correct location.
--sysconfdir=/etc/gnome/2.18.3: This parameter causes the configuration files to be installed in
/etc/gnome/2.18.3 instead of $GNOME_PREFIX/etc. Additionally (if applicable), the parameter ensures
that the GConf-2 database is correctly updated.
--libexecdir=$(pkg-config --variable=prefix ORBit-2.0)/lib/gnome-screensaver:
This parameter causes the libexec files to be installed in the preferred location of $GNOME_
PREFIX/lib/gnome-screensaver instead of $GNOME_PREFIX/libexec.
--with-pam-prefix=/etc: This parameter is used so that the Linux-PAM configuration file for the
gnome-screensaver application is installed in the correct location. You may omit this parameter if you don't have
Linux-PAM installed, though it won't affect the build if you don't.
Configuring gnome-screensaver
Config Files
/etc/pam.d/gnome-screensaver, /etc/gnome/2.18.3/gdm/custom.conf
Configuration Information
General Configuration
Most of the gnome-screensaver configuration parameters can be modified using the Screensaver menu item from
the Desktop—Preferences drop-down menu. Some of the fine-tuning parameters are only available using GConf
Editor-2.18.0.
Linux-PAM Configuration
If you have Linux-PAM installed, the just-installed gnome-screensaver configuration file does not work with
a BLFS system. Replace the existing file with one that can be used on a BLFS system by issuing the following
command as the root user:
EOF
chmod -v 644 /etc/pam.d/gnome-screensaver
852
Beyond Linux® From Scratch - Version 6.3
User-Switching Configuration
If you have GDM installed and you passed the --with-gdm-config= option to the configure script, the
screen-unlocking dialog box will contain an option to “Switch Users”. This user switching option uses the same
configuration as GDM to determine what users are displayed in this dialog. You can use the GDM configuration
option from the GDM login screen, or you can directly edit the /etc/gnome/2.18.3/gdm/custom.conf file
to modify the settings.
Contents
Installed Programs: gnome-screensaver, gnome-screensaver-command and
gnome-screensaver-preferences
Installed Libraries: None
Installed Directories: $GNOME_PREFIX/share/{doc/gnome-screensaver-2.18.2, gnome-screensaver,
pixmaps/backgrounds/cosmos}
Short Descriptions
gnome-screensaver is a screensaver and screen-locking program designed to work seamlessly with the
GNOME desktop.
853
Beyond Linux® From Scratch - Version 6.3
Package Information
• Download (HTTP): http://ftp.gnome.org/pub/gnome/sources/gnome-system-monitor/2.18/gnome-system-
monitor-2.18.2.tar.bz2
• Download (FTP): ftp://ftp.gnome.org/pub/gnome/sources/gnome-system-monitor/2.18/gnome-system-monitor-2.
18.2.tar.bz2
• Download MD5 sum: 860047e636522af2c068dddb5df883bd
• Download size: 1.7 MB
• Estimated disk space required: 23 MB
• Estimated build time: 0.3 SBU
Optional
intltool-0.35.5
make install
Command Explanations
--prefix=$(pkg-config --variable=prefix ORBit-2.0): Setting the prefix using this parameter
instead of with $GNOME_PREFIX will ensure that the prefix is consistent with the installation environment and the
package will be installed in the correct location.
854
Beyond Linux® From Scratch - Version 6.3
Contents
Installed Program: gnome-system-monitor
Installed Libraries: None
Installed Directories: $GNOME_PREFIX/share/{gnome/help, omf}/gnome-system-monitor
Short Descriptions
gnome-system-monitor displays the process tree and hardware meters.
855
Beyond Linux® From Scratch - Version 6.3
GNOME Utilities-2.18.1
Introduction to GNOME Utilities
The GNOME Utilities package contains a collection of small applications designed to make your life a little easier.
Package Information
• Download (HTTP): http://ftp.gnome.org/pub/gnome/sources/gnome-utils/2.18/gnome-utils-2.18.1.tar.bz2
• Download (FTP): ftp://ftp.gnome.org/pub/gnome/sources/gnome-utils/2.18/gnome-utils-2.18.1.tar.bz2
• Download MD5 sum: 10e8bd928d099a0d1f70919c8b7b7784
• Download size: 4.0 MB
• Estimated disk space required: 55 MB
• Estimated build time: 0.7 SBU
Optional
intltool-0.35.5, Linux-PAM-0.99.10.0 (only if consolehelper is also installed), and HAL-0.5.9.1
Command Explanations
--prefix=$(pkg-config --variable=prefix ORBit-2.0): Setting the prefix using this parameter
instead of with $GNOME_PREFIX will ensure that the prefix is consistent with the installation environment and the
package will be installed in the correct location.
--sysconfdir=/etc/gnome/2.18.3: This parameter causes the configuration files to be installed in
/etc/gnome/2.18.3 instead of $GNOME_PREFIX/etc. Additionally (if applicable), the parameter ensures
that the GConf-2 database is correctly updated.
856
Beyond Linux® From Scratch - Version 6.3
--localstatedir=/var/lib: This parameter is used so that all ScrollKeeper files are installed in, and the
ScrollKeeper database is properly updated in /var/lib/scrollkeeper instead of some files being installed in
$GNOME_PREFIX/var/scrollkeeper.
--libexecdir=$(pkg-config --variable=prefix ORBit-2.0)/lib/bonobo: This parameter
causes the libexec files to be installed in the preferred location of $GNOME_PREFIX/lib/gnome-utils instead
of $GNOME_PREFIX/libexec.
--mandir=$(pkg-config --variable=prefix ORBit-2.0)/share/man: This parameter causes
the man.(X) files to be installed in $GNOME_PREFIX/share/man/man(X) instead of $GNOME_
PREFIX/man/man(X).
--enable-gtk-doc: Use this parameter if GTK-Doc is installed and you wish to rebuild the API documentation.
--with-pam-prefix=/etc/pam.d: This parameter causes the PAM files to be installed in the correct location
of /etc/pam.d instead of /etc/gnome/2.18.3.
Contents
Installed Programs: gfloppy, gnome-dictionary, gnome-panel-screenshot, gnome-screenshot,
gnome-search-tool, and gnome-system-log
Installed Libraries: libgdict-1.0.{so,a}
Installed Directories: The following subdirectories of $GNOME_PREFIX/: include/gdict-1.0,
lib/gnome-utils, share/{gnome-{screenshot, system-log, utils}, gnome/help/{gfloppy,
gnome-dictionary, gnome-search-tool, gnome-system-log} omf/gnome-utils,
pixmaps/gsearchtool}
Short Descriptions
gfloppy formats floppy disks under Linux.
gnome-dictionary allows you to look up definitions and spelling of words.
gnome-screenshot is used to capture the contents of the current desktop as a graphics formatted file.
gnome-search-tool allows you to search for files on your system using simple and advanced search options.
gnome-system-log allows you to monitor and view system log files.
857
Beyond Linux® From Scratch - Version 6.3
gnome-volume-manager-2.17.0
Introduction to gnome-volume-manager
The gnome-volume-manager package contains a volume manager for GNOME. It is a desktop-level daemon that
enforces volume-related policy in response to events received from HAL. This is useful for automatic mounting of
floppy diskettes, CDROMs and removable storage devices. It can also be used to automatically run a program in
response to other hotplug events such as plugging in USB printers or cameras, or inserting DVDs and music CDs.
The goal of gnome-volume-manager is to implement all functionality as a state-machine in response to asynchronous
events from HAL. It is one component in a larger plan to fully integrate all levels of the Linux system, from the kernel
on up through the desktop and its applications.
Package Information
• Download (HTTP): http://ftp.gnome.org/pub/gnome/sources/gnome-volume-manager/2.17/gnome-volume-
manager-2.17.0.tar.bz2
• Download (FTP): ftp://ftp.gnome.org/pub/gnome/sources/gnome-volume-manager/2.17/gnome-volume-
manager-2.17.0.tar.bz2
• Download MD5 sum: 104cec26e721e0bba69debd392367195
• Download size: 341 KB
• Estimated disk space required: 11 MB
• Estimated build time: 0.1 SBU
gnome-volume-manager Dependencies
Required
libgnomeui-2.18.1 and HAL-0.5.9.1
Optional
intltool-0.35.5, Nautilus-2.18.3, and libnotify
Installation of gnome-volume-manager
Install gnome-volume-manager by running the following commands:
./configure --prefix=$(pkg-config --variable=prefix ORBit-2.0) \
--sysconfdir=/etc/gnome/2.18.3 \
--disable-multiuser &&
make
This package does not come with a test suite.
Now, as the root user:
make install
Command Explanations
--prefix=$(pkg-config --variable=prefix ORBit-2.0): Setting the prefix using this parameter
instead of with $GNOME_PREFIX will ensure that the prefix is consistent with the installation environment and the
package will be installed in the correct location.
858
Beyond Linux® From Scratch - Version 6.3
Configuring gnome-volume-manager
Configuration Information
Proper operation of this package is dependant upon the hald daemon running on the system. Ensure the hald daemon
is running before attempting to start or configure gnome-volume-manager. Configuration is accomplished using the
“Removable Drives and Media” graphical interface found on the “Desktop”—“Preferences” drop-down menu. You
can also run the gnome-volume-properties command from the command line to bring up the configuration interface.
Note that the gnome-volume-manager daemon program should be started when your GNOME desktop environment
is started. This should be automatically configured during the installation of gnome-volume-manager.
The “Disk Mounter” applet can be installed in the control panel for visual display status of removable media. Installing
this applet in the panel is accomplished using conventional methods.
Contents
Installed Programs: gnome-volume-manager and gnome-volume-properties
Installed Libraries: None
Installed Directories: $GNOME_PREFIX/share/gnome-volume-manager
Short Descriptions
gnome-volume-manager is the manager daemon, designed to be run at the desktop level. It is a simple
policy engine that implements a state machine in response to events from
HAL. Responding to these events, it implements automount, autorun, autoplay,
automatic photo management, and so on.
gnome-volume-properties is a control panel applet for gnome-volume-manager. It is also provides a
graphical configuration interface.
859
Beyond Linux® From Scratch - Version 6.3
gucharmap-1.10.0
Introduction to gucharmap
gucharmap is a Unicode character map and font viewer. It allows you to browse through all the available Unicode
characters and categories for the installed fonts, and to examine their detailed properties. It is an easy way to find the
character you might only know by its Unicode name or code point.
Package Information
• Download (HTTP): http://ftp.gnome.org/pub/gnome/sources/gucharmap/1.10/gucharmap-1.10.0.tar.bz2
• Download (FTP): ftp://ftp.gnome.org/pub/gnome/sources/gucharmap/1.10/gucharmap-1.10.0.tar.bz2
• Download MD5 sum: a0e01bcff2bc5e35ec88f60a383051d3
• Download size: 2.5 MB
• Estimated disk space required: 30 MB
• Estimated build time: 0.2 SBU
gucharmap Dependencies
Required
GTK+-2.10.13 and XML::Parser-2.34
Optional
GNOME Doc Utils-0.10.3 (to build the user manual), libgnomeui-2.18.1, and intltool-0.35.5
Installation of gucharmap
Note
The instructions below are based on installing the package into a GNOME-2 environment. If, for whatever
reason, you're installing this package without having ORBit2 and the core GNOME-2 libraries installed,
you'll need to modify the --prefix= parameter on the configure script to point to your desired installation
path (e.g., --prefix=/usr).
Command Explanations
--prefix=$(pkg-config --variable=prefix ORBit-2.0): Setting the prefix using this parameter
instead of with $GNOME_PREFIX will ensure that the prefix is consistent with the installation environment and the
package will be installed in the correct location.
860
Beyond Linux® From Scratch - Version 6.3
--localstatedir=/var/lib: This parameter is used so that all ScrollKeeper files are installed in, and the
ScrollKeeper database is properly updated in /var/lib/scrollkeeper instead of some files being installed in
$GNOME_PREFIX/var/scrollkeeper.
Contents
Installed Programs: charmap, gnome-character-map, and gucharmap
Installed Library: libgucharmap.so
Installed Directories: The following subdirectories $GNOME_PREFIX/: include/gucharmap and
share/{gnome/help/,omf/}/gucharmap
Short Descriptions
gucharmap is a Unicode character map and font viewer.
861
Beyond Linux® From Scratch - Version 6.3
Nautilus CD Burner-2.18.2
Introduction to Nautilus CD Burner
The Nautilus CD Burner package provides an easy method to write files to a CD or DVD burner with GNOME; by
drag-and-dropping files using the GNOME file manager, Nautilus.
Package Information
• Download (HTTP): http://ftp.gnome.org/pub/gnome/sources/nautilus-cd-burner/2.18/nautilus-cd-burner-2.18.2.
tar.bz2
• Download (FTP): http://ftp.gnome.org/pub/gnome/sources/nautilus-cd-burner/2.18/nautilus-cd-burner-2.18.2.
tar.bz2
• Download MD5 sum: fee9ec2f398a6b1eacfd59e239d06837
• Download size: 740 KB
• Estimated disk space required: 15 MB
• Estimated build time: 0.3 SBU
Optional
gnome-mount-0.6 and intltool-0.35.5
Though Nautilus CD Burner happily passes all the configure script checks and then builds successfully without them,
the Cdrtools-2.01 and dvd+rw-tools-7.0 packages are required to be installed or you won't be able to create ISO
filesystems or burn CDs and DVDs.
Command Explanations
--prefix=$(pkg-config --variable=prefix ORBit-2.0): Setting the prefix using this parameter
instead of with $GNOME_PREFIX will ensure that the prefix is consistent with the installation environment and the
package will be installed in the correct location.
862
Beyond Linux® From Scratch - Version 6.3
Contents
Installed Programs: nautilus-cd-burner
Installed Libraries: libnautilus-burn.so and gnome-vfs and nautilus modules
Installed Directories: The following subdirectories of $GNOME_PREFIX/: include/libnautilus-burn,
lib/nautilus-cd-burner and share/nautilus-cd-burner
Short Descriptions
nautilus-cd-burner is an extension to Nautilus that lets you burn CDs easily.
863
Beyond Linux® From Scratch - Version 6.3
Sound Juicer-2.16.4
Introduction to Sound Juicer
The Sound Juicer package contains the sound-juicer program, a simple and clean CD ripping tool. This is useful for
extracting the audio tracks from audio compact discs and converting them into audio files. It can also play the audio
tracks directly from the CD, allowing you to preview the CD before ripping it. Sound Juicer is designed to be easy to
use, and to work with little user intervention. When you start sound-juicer it will examine the CD in the drive and
try to locate information about the audio tracks using the MusicBrainz service.
Package Information
• Download (HTTP): http://ftp.gnome.org/pub/gnome/sources/sound-juicer/2.16/sound-juicer-2.16.4.tar.bz2
• Download (FTP): ftp://ftp.gnome.org/pub/gnome/sources/sound-juicer/2.16/sound-juicer-2.16.4.tar.bz2
• Download MD5 sum: bcf1f77027b1d1d4c1667b20c6448122
• Download size: 1.2 MB
• Estimated disk space required: 15 MB
• Estimated build time: 0.3 SBU
Required
Nautilus CD Burner-2.18.2, GNOME Media-2.18.0, GStreamer Base Plug-ins-0.10.13 (for the cdparanoiasrc,
gnomevfssink and vorbisenc plugins), and libmusicbrainz-2.1.5
Optional
intltool-0.35.5, GStreamer Good Plug-ins-0.10.6 (for the flacenc and wavenc plugins), libcdio (which can use
CDParanoia-III-9.8, libcddb, and VCDImager), and TagLib
Note
At a minimum you should have the following plugins configured into the GStreamer installation:
cdparanoiasrc and gnomevfssink. If either of these plugins are not configured into the GStreamer setup,
Sound Juicer will fail at run-time. Additionally, if you need to encode in Ogg Vorbis, FLAC, Wave or MP3
formats, you should ensure the vorbisenc, flacenc, wavenc and lame plugins are configured into GStreamer.
You can easily determine if you have the necessary plugins configured by using the gst-inspect program.
Here is an example:
864
Beyond Linux® From Scratch - Version 6.3
make install
Command Explanations
--prefix=$(pkg-config --variable=prefix ORBit-2.0): Setting the prefix using this parameter
instead of with $GNOME_PREFIX will ensure that the prefix is consistent with the installation environment and the
package will be installed in the correct location.
--sysconfdir=/etc/gnome/2.18.3: This parameter causes the configuration files to be installed in
/etc/gnome/2.18.3 instead of $GNOME_PREFIX/etc. Additionally (if applicable), the parameter ensures
that the GConf-2 database is correctly updated.
--localstatedir=/var/lib: This parameter is used so that all ScrollKeeper files are installed in, and the
ScrollKeeper database is properly updated in /var/lib/scrollkeeper instead of some files being installed in
$GNOME_PREFIX/var/scrollkeeper.
Contents
Installed Program: sound-juicer
Installed Libraries: none
Installed Directories: $GNOME_PREFIX/share/{,gnome/help/ ,omf/}sound-juicer
Short Descriptions
sound-juicer is a graphical CD extraction (ripping) tool based on GNOME-2 and GStreamer.
865
Beyond Linux® From Scratch - Version 6.3
Totem-2.18.2
Introduction to Totem
The Totem package contains the official movie player of the GNOME desktop environment based on GStreamer or
Xine Libraries. It features a playlist, a full-screen mode, seek and volume controls, as well as keyboard navigation.
This is useful for playing any GStreamer or Xine Libraries supported file, DVD, VCD or digital CD.
Package Information
• Download (HTTP): http://ftp.gnome.org/pub/gnome/sources/totem/2.18/totem-2.18.2.tar.bz2
• Download (FTP): ftp://ftp.gnome.org/pub/gnome/sources/totem/2.18/totem-2.18.2.tar.bz2
• Download MD5 sum: a77ca6f0c56b2fc6ececd8158bb0cdca
• Download size: 2.0 MB
• Estimated disk space required: 48 MB
• Estimated build time: 1.0 SBU
Totem Dependencies
Required
GNOME Icon Theme-2.18.0, GNOME Desktop-2.18.3, ISO Codes-1.2, and GStreamer Good Plug-ins-0.10.6
(default back-end) or xine Libraries-1.1.12 (secondary back-end)
If you anticipate using Totem to play DVDs, you should use the Xine Libraries backend by passing
--enable-xine to the configure script as the the GStreamer backend does not work properly. If you elect to
use the default GStreamer backend anyway, ensure you built GStreamer Good Plugins with GConf support or the
configure script will fail.
Optional
intltool-0.35.5, Nautilus-2.18.3, HAL-0.5.9.1, SeaMonkey-1.1.9 or Firefox-2.0.0.15 (to build the browser plug-in),
libirman, LIRC, Gromit (required for the telestrator mode), and NvTv Simple
Note: libdvdcss-1.2.9 is a run-time requirement if you wish to play encrypted DVDs
Installation of Totem
Install Totem by running the following commands:
866
Beyond Linux® From Scratch - Version 6.3
make install
Command Explanations
--prefix=$(pkg-config --variable=prefix ORBit-2.0): Setting the prefix using this parameter
instead of with $GNOME_PREFIX will ensure that the prefix is consistent with the installation environment and the
package will be installed in the correct location.
--sysconfdir=/etc/gnome/2.18.3: This parameter causes the configuration files to be installed in
/etc/gnome/2.18.3 instead of $GNOME_PREFIX/etc. Additionally (if applicable), the parameter ensures
that the GConf-2 database is correctly updated.
--localstatedir=/var/lib: This parameter is used so that all ScrollKeeper files are installed in, and the
ScrollKeeper database is properly updated in /var/lib/scrollkeeper instead of some files being installed in
$GNOME_PREFIX/var/scrollkeeper.
--libexecdir=$(pkg-config --variable=prefix ORBit-2.0)/lib/totem: This parameter is
used so that the movie player browser plugin is installed in the preferred location of $GNOME_PREFIX/lib/totem
instead of $GNOME_PREFIX/libexec.
--mandir=$(pkg-config --variable=prefix ORBit-2.0)/share/man: This parameter causes
the man.(X) files to be installed in $GNOME_PREFIX/share/man/man(X) instead of $GNOME_
PREFIX/man/man(X).
Configuring Totem
Configuration Information
There are no configuration files that need to be directly edited. Configuration is accomplished by setting the desired
values in the various menu options accessed via the totem graphical interface.
Contents
Installed Programs: totem, totem-video-thumbnailer and optionally, vanity
Installed Libraries: libtotem-plparser.{so,a}, a Nautilus extension plugin and optionally, a Mozilla video
plugin
Installed Directories: The following subdirectories of $GNOME_PREFIX/: include/totem, lib/totem,
share/{,gnome/help/ ,omf/}totem
Short Descriptions
totem is a GNOME-desktop movie player.
totem-video-thumbnailer is a video thumbnailer for the GNOME desktop used internally by GNOME
applications such as Nautilus to generate PNG thumbnails of video files. While
it is possible to invoke it manually, it is usually done automatically by Nautilus.
867
Beyond Linux® From Scratch - Version 6.3
Zenity-2.18.2
Introduction to Zenity
Zenity is a rewrite of gdialog, the GNOME port of dialog which allows you to display GTK+ dialog boxes from the
command line and shell scripts.
Package Information
• Download (HTTP): http://ftp.gnome.org/pub/gnome/sources/zenity/2.18/zenity-2.18.2.tar.bz2
• Download (FTP): ftp://ftp.gnome.org/pub/gnome/sources/zenity/2.18/zenity-2.18.2.tar.bz2
• Download MD5 sum: 6eb60cebdfddd7f9ad302d0b5477382e
• Download size: 1.7 MB
• Estimated disk space required: 11 MB
• Estimated build time: 0.1 SBU
Zenity Dependencies
Required
libgnomecanvas-2.14.0 and GNOME Doc Utils-0.10.3
Optional
libnotify and intltool-0.35.5
Installation of Zenity
Install Zenity by running the following commands:
make install
Command Explanations
--prefix=$(pkg-config --variable=prefix ORBit-2.0): Setting the prefix using this parameter
instead of with $GNOME_PREFIX will ensure that the prefix is consistent with the installation environment and the
package will be installed in the correct location.
--localstatedir=/var/lib: This parameter is used so that all ScrollKeeper files are installed in, and the
ScrollKeeper database is properly updated in /var/lib/scrollkeeper instead of some files being installed in
$GNOME_PREFIX/var/scrollkeeper.
868
Beyond Linux® From Scratch - Version 6.3
Contents
Installed Programs: gdialog and zenity
Installed Libraries: None
Installed Directories: $GNOME_PREFIX/share/{,gnome/help/ ,omf/}zenity
Short Descriptions
gdialog is a Perl wrapper script which can be used with legacy scripts.
zenity is a program that will display GTK+ dialogs, and return the user's input.
869
Beyond Linux® From Scratch - Version 6.3
AT SPI-1.18.1
Introduction to AT SPI
The AT SPI package contains the Assistive Technology Service Provider Interface. This is useful for redirecting UI
events to accessible applications and adaptive/assistive technologies.
Package Information
• Download (HTTP): http://ftp.gnome.org/pub/gnome/sources/at-spi/1.18/at-spi-1.18.1.tar.bz2
• Download (FTP): ftp://ftp.gnome.org/pub/gnome/sources/at-spi/1.18/at-spi-1.18.1.tar.bz2
• Download MD5 sum: 46c531204df5d39f7e83822372b0ce69
• Download size: 780 KB
• Estimated disk space required: 22 MB
• Estimated build time: 0.5 SBU
AT SPI Dependencies
Required
GAIL-1.18.0 and libbonobo-2.18.0
Optional
intltool-0.35.5 and GTK-Doc-1.8
Installation of AT SPI
Install AT SPI by running the following commands:
./configure --prefix=$(pkg-config --variable=prefix ORBit-2.0) \
--libexecdir=$(pkg-config \
--variable=prefix ORBit-2.0)/lib/at-spi &&
make
This package does not come with a functional test suite. Review the README file for additional information about
testing the package.
Now, as the root user:
make install
Command Explanations
--prefix=$(pkg-config --variable=prefix ORBit-2.0): Setting the prefix using this parameter
instead of with $GNOME_PREFIX will ensure that the prefix is consistent with the installation environment and the
package will be installed in the correct location.
--libexecdir=$(pkg-config --variable=prefix ORBit-2.0)/lib/at-spi: This parameter
causes the libexec files to be installed in the preferred location of $GNOME_PREFIX/lib/at-spi instead of
$GNOME_PREFIX/libexec.
--enable-gtk-doc: Use this parameter if GTK-Doc is installed and you wish to rebuild the API documentation.
870
Beyond Linux® From Scratch - Version 6.3
Contents
Installed Programs: None
Installed Libraries: libspi.{so,a}, libcspi.{so,a}, libloginhelper.{so,a}, the libatk-bridge.so GTK+ module,
and ORBit-2.0 Accessibility modules
Installed Directories: The following subdirectories of $GNOME_PREFIX/: include/at-spi-1.0, lib/at-spi,
share/{gtk-doc/html/at-spi-cspi, idl/at-spi-1.0}
Short Descriptions
at-spi-registryd is the registry daemon that allows communication between the UI and assistance devices.
871
Beyond Linux® From Scratch - Version 6.3
GNOME Magnifier-0.14.6
Introduction to GNOME Magnifier
The GNOME Magnifier includes a screen magnifier, which allows you to zoom in on portions of the desktop. It is
expressly designed for users with low vision who wish to use the GNOME desktop.
Package Information
• Download (HTTP): http://ftp.gnome.org/pub/gnome/sources/gnome-mag/0.14/gnome-mag-0.14.6.tar.bz2
• Download (FTP): ftp://ftp.gnome.org/pub/gnome/sources/gnome-mag/0.14/gnome-mag-0.14.6.tar.bz2
• Download MD5 sum: c5eafb3c492d2b84c37b9a12e3b7a19e
• Download size: 468 KB
• Estimated disk space required: 20 MB (includes building reference docs)
• Estimated build time: 0.3 SBU
Optional
intltool-0.35.5 and Doxygen-1.5.2
Command Explanations
--prefix=$(pkg-config --variable=prefix ORBit-2.0): Setting the prefix using this parameter
instead of with $GNOME_PREFIX will ensure that the prefix is consistent with the installation environment and the
package will be installed in the correct location.
872
Beyond Linux® From Scratch - Version 6.3
Contents
Installed Program: magnifier
Installed Library: libgnome-mag.so
Installed Directories: The following subdirectories of $GNOME_PREFIX/: include/gnome-mag-1.0,
lib/colorblind-applet, lib/python2.5/site-packages/colorblind,
share/{colorblind,doc/gnome-mag-0.14.6,gnome-mag,idl/gnome-mag-1.0}
Short Descriptions
magnifier is a screen zooming utility.
873
Beyond Linux® From Scratch - Version 6.3
GNOME Speech-0.4.16
Introduction to GNOME Speech
The GNOME Speech package provides a simple general API for producing text-to-speech output. Multiple backends
are supported by the GNOME Speech library, but currently only the Festival backend is built by default; the other
backends require either Java or proprietary software.
Package Information
• Download (HTTP): http://ftp.gnome.org/pub/gnome/sources/gnome-speech/0.4/gnome-speech-0.4.16.tar.bz2
• Download (FTP): ftp://ftp.gnome.org/pub/gnome/sources/gnome-speech/0.4/gnome-speech-0.4.16.tar.bz2
• Download MD5 sum: 381e2e9126e102ace9abb452c9087141
• Download size: 308 KB
• Estimated disk space required: 6 MB
• Estimated build time: 0.2 SBU
Required
libbonobo-2.18.0
Java Access Bridge-1.18.0, FreeTTS-1.2.1, DECtalk, eSpeak, Festival, Loquendo, Speech Dispatcher, Speechworks
ETI Eloquence, Swift, Theta, and ViaVoice
Note
You must install at least one of the backend drivers for GNOME Speech to render speech through the audio
hardware. You should test the installation of the backend driver and ensure it produces desired results before
installing GNOME Speech.
874
Beyond Linux® From Scratch - Version 6.3
Command Explanations
--prefix=$(pkg-config --variable=prefix ORBit-2.0): Setting the prefix using this parameter
instead of with $GNOME_PREFIX will ensure that the prefix is consistent with the installation environment and the
package will be installed in the correct location.
--with-jab-dir=$(pkg-config --variable=prefix ORBit-2.0)/share/jar: Use this option
if you have installed the Java Access Bridge package and wish to have GNOME Speech build in Java support.
Note: see the README and INSTALL files in the package source tree for the correct parameters to pass to configure
to enable the desired backends.
Contents
Installed Programs: festival-synthesis-driver, freetts-synthesis-driver, speechd-synthesis-driver and
test-speech
Installed Library: libgnomespeech.{so,a}. Other drivers and libraries are also installed if you have
enabled additional backends.
Installed Directories: The following subdirectories of $GNOME_PREFIX/: include/gnome-speech-1.0,
share/{doc/gnome-speech-0.4.16, gnome-speech, idl/gnome-speech-1.0}
Short Descriptions
test-speech is used to test the various backend drivers and voices installed on the system.
libgnomespeech.{so,a} provides the API for programs to convert text into speech.
875
Beyond Linux® From Scratch - Version 6.3
GOK-1.2.5
Introduction to GOK
GOK is a dynamic onscreen keyboard. It features Direct Selection, Dwell Selection, Automatic Scanning and Inverse
Scanning access methods and includes word completion.
Package Information
• Download (HTTP): http://ftp.gnome.org/pub/gnome/sources/gok/1.2/gok-1.2.5.tar.bz2
• Download (FTP): ftp://ftp.gnome.org/pub/gnome/sources/gok/1.2/gok-1.2.5.tar.bz2
• Download MD5 sum: 2ef1f171385a37f93408dbca7ecfdf11
• Download size: 1.2 MB
• Estimated disk space required: 50 MB
• Estimated build time: 0.6 SBU
GOK Dependencies
Required
EsounD-0.2.37, ScrollKeeper-0.3.14, AT SPI-1.18.1, libwnck-2.18.3, libgnomeui-2.18.1, and GNOME
Speech-0.4.16
Optional
libusb-0.1.12, intltool-0.35.5, and GTK-Doc-1.8
Installation of GOK
Install GOK by running the following commands:
For full functionality of this package, you should install the libgail-gnome-1.18.0 package.
Command Explanations
--prefix=$(pkg-config --variable=prefix ORBit-2.0): Setting the prefix using this parameter
instead of with $GNOME_PREFIX will ensure that the prefix is consistent with the installation environment and the
package will be installed in the correct location.
876
Beyond Linux® From Scratch - Version 6.3
Configuring GOK
Configuration Information
It is recommended that you configure your input device as an “Extended” input device. Exact configuration methods
depend on the type of hardware attached to your system. See the README file in the package source tree and GOK
Help for information on how to configure your input device.
Contents
Installed Programs: gok and create-branching-keyboard
Installed Libraries: None
Installed Directories: The following subdirectories of $GNOME_PREFIX/:
share/{,gnome/help/ ,gtk-doc/html ,omf}gok
Short Descriptions
gok is a dynamic onscreen keyboard utility.
877
Beyond Linux® From Scratch - Version 6.3
Package Information
• Download (HTTP): http://ftp.gnome.org/pub/gnome/sources/java-access-bridge/1.18/java-access-bridge-1.18.0.
tar.bz2
• Download (FTP): ftp://ftp.gnome.org/pub/gnome/sources/java-access-bridge/1.18/java-access-bridge-1.18.0.tar.
bz2
• Download MD5 sum: 9d250af333d03a091be06d2baab8cad4
• Download size: 108 KB
• Estimated disk space required: 7 MB
• Estimated build time: 1.2 SBU
Command Explanations
--prefix=$(pkg-config --variable=prefix ORBit-2.0): Setting the prefix using this parameter
instead of with $GNOME_PREFIX will ensure that the prefix is consistent with the installation environment and the
package will be installed in the correct location.
878
Beyond Linux® From Scratch - Version 6.3
cat $(pkg-config ...: This command appends to (or creates) the Java runtime accessibility.properties file
required for Java Access Bridge.
ln -v -sf $(pkg-config ...: This command creates a link from the Access Bridge jar file to the Java runtime library
extensions directory.
Configuration Information
Before running a Java program with the Java Access Bridge, you should ensure that your GNOME 2 installation
enables CORBA traffic over IP from the ORBit2 ORB. Do this by adding the following line to ~/.orbitrc using
the following command:
EOF
Contents
Installed Programs: None
Installed Libraries: gnome-java-bridge.jar and JNav.jar
Installed Directories: $GNOME_PREFIX/share/jar
Short Descriptions
gnome-java-bridge.jar is a Java runtime environment extension that connects the built-in accessibility
support in Java Swing applications to the GNOME Accessibility framework.
879
Beyond Linux® From Scratch - Version 6.3
libgail-gnome-1.18.0
Introduction to libgail-gnome
The libgail-gnome package contains the GNOME Accessibility Implementation library additions which implement
ATK interfaces for libbonoboui and libgnomeui widgets.
Package Information
• Download (HTTP): http://ftp.gnome.org/pub/gnome/sources/libgail-gnome/1.18/libgail-gnome-1.18.0.tar.bz2
• Download (FTP): ftp://ftp.gnome.org/pub/gnome/sources/libgail-gnome/1.18/libgail-gnome-1.18.0.tar.bz2
• Download MD5 sum: 2dd239118bf252c7b1e3d1701cd8a954
• Download size: 223 KB
• Estimated disk space required: 3 MB
• Estimated build time: 0.1 SBU
libgail-gnome Dependencies
Required
GNOME Panel-2.18.3 and AT SPI-1.18.1
Installation of libgail-gnome
Install libgail-gnome by running the following commands:
make install
Command Explanations
--prefix=$(pkg-config --variable=prefix ORBit-2.0): Setting the prefix using this parameter
instead of with $GNOME_PREFIX will ensure that the prefix is consistent with the installation environment and the
package will be installed in the correct location.
Contents
Installed Programs: None
Installed Library: libgail-gnome.so GTK+ module
Installed Directories: None
Short Descriptions
libgail-gnome.so library module is a GAIL addition which implements ATK interfaces for libbonoboui and
libgnomeui widgets.
880
Beyond Linux® From Scratch - Version 6.3
Orca-2.18.1
Introduction to Orca
Orca enables users with limited vision, or no vision, to use the GNOME desktop and applications effectively. It
provides a number of features, including magnification, focus tracking, braille output, automatic screen reading and
more.
Package Information
• Download (HTTP): http://ftp.gnome.org/pub/gnome/sources/orca/2.18/orca-2.18.1.tar.bz2
• Download (FTP): ftp://ftp.gnome.org/pub/gnome/sources/orca/2.18/orca-2.18.1.tar.bz2
• Download MD5 sum: 764f170af318c3ffd63b9cdfdcd19248
• Download size: 934 KB
• Estimated disk space required: 17 MB
• Estimated build time: 0.1 SBU
Orca Dependencies
Required
AT SPI-1.18.1, PyORBit-2.14.3, and Gnome-Python-2.18.2
Optional
intltool-0.35.5, GNOME Speech-0.4.16 (required for speech-enabled screen reading), GNOME Magnifier-0.14.6
(required for screen magnification), BRLTTY (required for braille output, must have Pyrex installed first)
Installation of Orca
Install Orca by running the following commands:
./configure --prefix=/usr \
--enable-pydoc &&
make
881
Beyond Linux® From Scratch - Version 6.3
For full functionality of this package, you should install the libgail-gnome-1.18.0 package.
Command Explanations
if [ ... != "/usr" ]; then ...; fi: This command is used to add the GNOME prefix bin directory to the hard-coded
PATH statement in the script if the GNOME prefix is anything other than /usr.
--enable-pydoc: This parameter is used to build the documentation. Remove it if you don't want the
documentation (also remove the installation commands).
Contents
Installed Program: orca
Installed Libraries: Python assistive technology (accessiblity) modules
Installed Directories: /usr/lib/python2.5/site-packages/orca and /usr/share/orca
Short Descriptions
orca is a GUI menu interface used to access and configure the various functionality parameters provided for users
with limited vision.
882
Beyond Linux® From Scratch - Version 6.3
884
Beyond Linux® From Scratch - Version 6.3
AbiWord-2.4.6
Introduction to AbiWord
The AbiWord package contains a word processing application. This is useful for writing reports, letters and other
formatted documents.
Package Information
• Download (HTTP): http://www.abisource.com/downloads/abiword/2.4.6/source/abiword-2.4.6.tar.bz2
•
• Download MD5 sum: 8ed5fb282b9741aca75b9e47500d39a1
• Download size: 25 MB
• Estimated disk space required: 262 MB (additional 210 MB to build and install the API docs)
• Estimated build time: 4.5 SBU (to build and install the program, docs and all plugins)
AbiWord Dependencies
Required
Optional
libgnomeui-2.18.1 (for GNOME-2 support), gucharmap-1.10.0, Enchant (uses Aspell-0.60.5), wv (with libwmf
installed first), and Valgrind
libgsf-1.14.7 (to build the OpenDocument/OpenOffice plugin), Poppler-0.5.4 (for the pdf plugin, requires installing
with unsupported xpdf headers), librsvg-2.16.1, Nautilus-2.18.3 (for GNOME-2 support), GOffice-0.6.1 (you must
use a version of GOffice <0.3.0), Link Grammar, Aiksaurus, libgnomedb version <1.3.0* (requires libgda version
<1.3.0), libwmf, GtkMathView (requires Gnome DOM Bindings which requires gdome2), libwpd, OTS, and Psiconv
* The libgda/libgnomedb stack required for AbiWord database access may conflict with the versions used by the
Gnumeric-1.8.2 database plugin. Though the libraries themselves pose no conflict, the executables and support files
will overwrite one another. Note that the current (version 3.0.x) stack does not pose a conflict with any of the previous
versions (but does not support AbiWord or Gnumeric database access. AbiWord requires versions <1.3.0 (1.2.2 is
known to work).
885
Beyond Linux® From Scratch - Version 6.3
Installation of AbiWord
Install AbiWord by running the following commands:
cd abi &&
./configure --prefix=/usr &&
make &&
cd ../abiword-plugins &&
sed -i 's/dictionary_file)/reinterpret_cast<const unsigned char *>(&)/' \
tools/ots/xp/AbiOts.cpp &&
cd ..
If you wish to create the API documentation, Doxygen-1.5.2 must be installed and issue the following commands:
This package's test suite requires Valgrind. Though the end message will indicate the tests failed, there will actually
be many tests that run to a successful completion. Run the tests by issuing the following commands:
cd abi &&
make install &&
cd ../abiword-plugins &&
make install &&
cd ..
AbiWord is now installed and must be used to build the Help files. Issue the following commands as an unprivileged
user:
886
Beyond Linux® From Scratch - Version 6.3
Command Explanations
--without-inter7eps: Some of the headers from the EPS package are not compatible with GCC-4.1.2. This
parameter prevents linking to the package and incurring a build failure.
sed -i '...' tools/ots/xp/AbiOts.cpp : This command is used to fix an incompatibility with GCC and the libots package.
if [ ... != "/usr" ]; then ...;fi: This command is used to remove unneeded directories if the GNOME installation is
in any prefix other than /usr.
Configuring AbiWord
Config File
~/.AbiSuite/templates/normal.awt
Configuration Information
Choose the right template for your language and locale from the list produced by the following command:
ls /usr/share/AbiSuite-2.4/templates
Create the folder ~/.AbiSuite/templates then copy the normal.awt you want into it:
install -v -m750 -d ~/.AbiSuite/templates &&
install -v -m640 /usr/share/AbiSuite-2.4/templates/normal.awt-<lang> \
~/.AbiSuite/templates/normal.awt
887
Beyond Linux® From Scratch - Version 6.3
Change <lang> in the above command to fit the name of the file you want.
If you have desktop-file-utils-0.13 installed, you should run the update-desktop-database command to update the
mimeminfo cache and allow the Help system to work.
Contents
Installed Programs: abiword, AbiWord-2.4, ttfadmin.sh, and ttftool
Installed Libraries: Numerous plugin library support modules
Installed Directories: /usr/lib/AbiWord-2.4 and /usr/share/AbiSuite-2.4
Short Descriptions
abiword is a symbolic link to the main AbiWord-2.4 executable.
AbiWord-2.4 is the word-processing program executable.
ttfadmin.sh generates support files required by AbiWord for each TrueType font in a given directory.
ttftool is a utility for processing TrueType fonts.
888
Beyond Linux® From Scratch - Version 6.3
Gnumeric-1.8.2
Introduction to Gnumeric
The Gnumeric package contains a spreadsheet program. This is useful for mathematical analysis.
Package Information
• Download (HTTP): http://ftp.gnome.org/pub/gnome/sources/gnumeric/1.8/gnumeric-1.8.2.tar.bz2
• Download (FTP): ftp://ftp.gnome.org/pub/gnome/sources/gnumeric/1.8/gnumeric-1.8.2.tar.bz2
• Download MD5 sum: f60edc6ca42daa2fb3717f3c90fa8a6e
• Download size: 14.0 MB
• Estimated disk space required: 206 MB
• Estimated build time: 3.0 SBU (includes creating HTML documentation)
Gnumeric Dependencies
Required
Optional
PyGTK-2.10.6, libgnomeui-2.18.1 (combined with the libgsf-gnome-1 library from the libgsf-1.14.7 package
will provide GNOME-2 support), libgnomedb* (requires libgda), pxlib, Psiconv, Hildon, Gnome Basic (this package
is no longer under active development), and Valgrind (to run some of the testsuite)
* The libgda/libgnomedb stack required for Gnumeric database access may conflict with the versions used by the
AbiWord-2.4.6 database plugin. Though the libraries themselves pose no conflict, the executables and support files
will overwrite one another. Note that the current (version 3.0.x) stack does not pose a conflict with any of the previous
versions (but does not support Gnumeric or AbiWord database access. Gnumeric requires versions >1.2.x and <2.x.x
(1.99.1 is known to work).
Note
Though only a run-time dependency, if you don't install the Yelp-2.18.1 package, the built-in help
functionality in Gnumeric will not be available.
Installation of Gnumeric
Install Gnumeric by running the following commands:
./configure --prefix=/usr \
--sysconfdir=/etc/gnome/2.18.3 \
--localstatedir=/var/lib &&
make
This package requires that it is installed before the test suite is run. The commands to run the tests are located a bit
later in the instructions.
889
Beyond Linux® From Scratch - Version 6.3
If you have GNOME Doc Utils-0.10.3 installed you can create an HTML version of the Help documentation by
issuing the following commands:
./configure \
--prefix=$(pkg-config --variable=prefix gnome-doc-utils) &&
make -C doc html
If you created the HTML documentation, install it by issuing the following commands as the root user:
ln -v -s /usr/share/xml/docbook/xsl-stylesheets-1.71.1/images \
/usr/share/doc/gnumeric-1.8.2/stylesheet
If you wish to install the Developer documentation, issue the following commands as the root user:
rm -v /usr/share/doc/gnumeric-1.8.2/developer/Makefile*
Command Explanations
--sysconfdir=/etc/gnome/2.18.3: This parameter causes the configuration files to be installed in
/etc/gnome/2.18.3 instead of $GNOME_PREFIX/etc. Additionally (if applicable), the parameter ensures
that the GConf-2 database is correctly updated.
--localstatedir=/var/lib: This parameter is used so that all ScrollKeeper files are installed in, and the
ScrollKeeper database is properly updated in /var/lib/scrollkeeper instead of some files being installed in
$GNOME_PREFIX/var/scrollkeeper.
--prefix=$(pkg-config --variable=prefix gnome-doc-utils): This rebuilds the Makefiles
with the same prefix used in the GNOME Doc Utils installation.
Testing gnumeric
If you wish to run the testuite, issue:
make check
Two of the seven tests fail because the scripts they use are missing, two others fail for unknown reasons.
890
Beyond Linux® From Scratch - Version 6.3
Contents
Installed Programs: gnumeric, gnumeric-1.8.2, ssconvert, and ssindex
Installed Libraries: libspreadsheet and numerous filters, plugins and GNOME components
Installed Directories: /usr/lib/gnumeric, /usr/share/doc/gnumeric-1.8.2, and /usr/share/{,gnome/help/, omf/,
pixmaps/}gnumeric
Short Descriptions
gnumeric is a symlink to gnumeric-1.8.2
gnumeric-1.8.2 is GNOME's spreadsheet application.
ssconvert is a command line utility to convert spreadsheet files between various spreadsheet file formats.
ssindex is a command line utility to generate index data for spreadsheet files.
891
Beyond Linux® From Scratch - Version 6.3
GnuCash-2.2.4
Introduction to GnuCash
GnuCash is a personal finance manager.
Package Information
• Download (HTTP): http://www.gnucash.org/pub/gnucash/sources/stable/gnucash-2.2.4.tar.bz2
• Download (FTP): ftp://ftp.at.gnucash.org/pub/gnucash/gnucash/sources/stable/gnucash-2.2.4.tar.bz2
• Download MD5 sum: f521cea858ee7223325114ec98de86ca
• Download size: 6.8 MB
• Estimated disk space required: 163 MB (additional 50 MB if running test suite; additional 124 MB for API docs)
• Estimated build time: 3.1 SBU (additional 1.8 SBU to run the test suite; additional 0.3 SBU for docs)
Additional Downloads
• Help documentation: http://www.gnucash.org/pub/gnucash/sources/stable/gnucash-docs-2.2.0.tar.gz
• Download MD5 sum: 97a29e499baca1807a3944ae3c0ad61e
• Download size: 10.0 MB
• Estimated disk space required: 27 MB (additional 41 MB for html and pdf)
• Estimated build time: less than 0.1 SBU (additional 0.4 SBU for html and pdf)
GnuCash Dependencies
Required
Guile-1.8.2, SLIB-3a4, GOffice-0.6.1, and GtkHTML-3.14.3
Optional
PostgreSQL-8.2.4, Guile-www, and Electric Fence
Installation of GnuCash
Install GnuCash by running the following commands:
sed -i 's|xml::${sysconfdir}|xml::/etc/gnome/2.18.3|' configure &&
./configure \
--prefix=/usr \
--sysconfdir=/etc \
--libexecdir=/usr/lib \
--with-gconf-schema-file-dir=/etc/gnome/2.18.3/gconf/schemas &&
make
892
Beyond Linux® From Scratch - Version 6.3
If you wish to create the API documentation in HTML format, you must have Doxygen-1.5.2 and Graphviz-2.12
installed, then issue: make doc. If you wish to create the API Design Guide in several formats, you must have
teTeX-3.0 installed and issue: make -C src/doc/design html pdf ps.
To test the results, issue make check. All tests should pass. An easy way to look at the results of the tests is to issue
grep -A1 ============== check.log (this is assuming you redirected the output from the tests to the indicated
filename).
If you built the API HTML or Design Guide documentation, issue the following commands (modified as necessary,
depending on what docs are being installed) as the root user:
If you want to install the Help documentation system, you must have ScrollKeeper-0.3.14 installed. Then unpack the
additional tarball, change into the gnucash-docs-2.2.0 source directory and issue the following commands as
an unprivileged user:
./configure --prefix=/usr \
--localstatedir=/var/lib &&
make
893
Beyond Linux® From Scratch - Version 6.3
HTML versions of the Help Manual and Users Guide can be created if the DocBook XML tools are installed
(libxslt-1.1.22, DocBook XML DTD-4.5 and DocBook XSL Stylesheets-1.71.1). A PDF version of the Users Guide
can be created if you have DocBook-utils-0.6.14 and JadeTeX-3.13 installed. Issue the following commands to create
the documentation (modify as appropriate for your desires):
make install
If you built the Help Manual or Users Guide, install them using the following commands as the root user (modify
as necessary):
Note that you must have Yelp-2.18.1 installed in order to view the Help documents using the default GnuCash method.
Command Explanations
sed -i 's|xml::${sysconfdir}|xml::/etc/gnome/2.18.3|' configure: This command is used because the location of
the GConf source database is hard-coded into the configure script as $sysconfdir/gconf (rendering the
--with-gconf-source parameter useless). The modification ensures that the GConf database is properly
updated while still allowing the package configuration files to be installed in /etc/gnucash.
--localstatedir=/var/lib: This parameter is used so that all ScrollKeeper files are installed in, and the
ScrollKeeper database is properly updated in /var/lib/scrollkeeper instead of some files being installed in
$GNOME_PREFIX/var/scrollkeeper.
--enable-sql: This parameter is required if you want to build in SQL support using PostgreSQL.
--enable-hbci: This parameter is required if you want to build in on-line banking support using AqBanking. See
doc/README.HBCI in the GnuCash source tree for complete information.
894
Beyond Linux® From Scratch - Version 6.3
Configuring GnuCash
Configuration Information
If you wish to use GnuCash to retrieve stock price quotes, you'll need to install the following Perl modules:
libwww-perl-5.806, Date::Manip-5.54, HTML::Parser-3.56, HTML::TableExtract-2.10, Crypt::SSLeay-0.56 [376],
and Finance::Quote-1.13. Alternatively, you can run the /usr/bin/gnc-fq-update script as the root user.
Contents
Installed Programs: gnc-fq-check, gnc-fq-dump, gnc-fq-helper, gnc-fq-update, gnc-test-env,
gnucash, gnucash-bin, gnucash-env, gnucash-make-guids, gnucash-valgrind, and
update-gnucash-gconf
Installed Libraries: libgnc-backend-file-utils.so, libgnc-backend-postgres.so,
libgnc-business-ledger.so,libgnc-core-utils.so, libgnc-gnome.so, libgnc-module.so,
libgnc-qof.so and numerous support libraries installed in /usr/lib/gnucash
Installed Directories: /etc/gnucash, /usr/include/gnucash, /usr/lib/gnucash, and the following subdirectories
of /usr/share/: doc/gnucash-2.2.4, gnome/help/gnucash, gnucash, omf/gnucash-docs,
and /xml/gnucash
Short Descriptions
gnucash is a personal finance manager.
895
Beyond Linux® From Scratch - Version 6.3
GIMP-2.2.17
Introduction to GIMP
The GIMP package contains the GNU Image Manipulation Program. This is useful for photo retouching, image
composition and image authoring.
Package Information
• Download (HTTP): http://ftp.gwdg.de/pub/misc/grafik/gimp/gimp/v2.2/gimp-2.2.17.tar.bz2
• Download (FTP): ftp://ftp.gimp.org/pub/gimp/v2.2/gimp-2.2.17.tar.bz2
• Download MD5 sum: 4f509ed4a605452d88e04045ff388d58
• Download size: 13.1 MB
• Estimated disk space required: 310 MB (additional 314 MB to install the help system)
• Estimated build time: 4.6 SBU (additional 0.6 SBU to run the test suite and additional 9.1 SBU to build the help
files)
Additional Downloads
Help System
GIMP Dependencies
Required
Recommended
Note
If the recommended dependencies are not installed, the configure switches below will need to be modified
as explained in the section called “Command Explanations” below.
Optional
896
Beyond Linux® From Scratch - Version 6.3
Installation of GIMP
Install GIMP by running the following commands:
./configure --prefix=/usr \
--sysconfdir=/etc \
--disable-print &&
make
The gimp-help tarball contains a help system designed for use with external web browsers, the internal GIMP help
browser, and HTML renderers. The tarball only contains the XML sources, so you will need the xsltproc program
from libxslt-1.1.22 to build the HTML files.
If you downloaded the gimp-help tarball, unpack it and change into the root of the newly created source tree (as
an unprivileged user). Issue the following commands to install the help files:
./configure &&
make
make install
Command Explanations
-disable-print: This option disables print support and is required if the obsolete Gimp-Print package is not
installed. Print support for the Gimp can be provided later by installing the Gutenprint-5.0.1 package.
--without-libjpeg: This option is necessary if libjpeg is not installed.
--without-libtiff: This option is necessary if libtiff is not installed.
--enable-gtk-doc: Use this parameter if GTK-Doc is installed and you wish to rebuild the API documentation.
Configuring GIMP
Config Files
/etc/gimp/2.0/* and ~/.gimp-2.0/gimprc
Configuration Information
GIMP executes a configuration wizard for each user upon their initial use of the program.
897
Beyond Linux® From Scratch - Version 6.3
GIMP executes the mozilla web browser by default to view the help files. If you do not have Mozilla, or prefer
a different web browser, you can set a new system value in /etc/gimp/2.0/gimprc. Execute the following
command as the root user, replacing <browser> with your preferred web browser:
Contents
Installed Programs: gimp, gimp-2.2, gimp-remote, gimp-remote-2.2, and gimptool-2.0
Installed Libraries: libgimp-2.0.so, libgimpbase-2.0.so, libgimpcolor-2.0.so, libgimpmath-2.0.so,
libgimpmodule-2.0.so, libgimpthumb-2.0.so, libgimpui-2.0.so, libgimpwidgets-2.0.so,
and many other modules and plugin libraries
Installed Directories: /etc/gimp, /usr/include/gimp-2.0, /usr/lib/gimp, /usr/share/doc/gimp-2.2.17,
/usr/share/gimp and
/usr/share/gtk-doc/html/libgimp{,base,color,math,module,thumb,widgets}
Short Descriptions
gimp is a symbolic link to gimp-2.2.
gimp-2.2 is an image manipulation program. It works with a variety of image formats and
provides a large selection of tools.
gimp-remote is a symbolic link to gimp-remote-2.2.
gimp-remote-2.2 is a small utility that tells a running GIMP to open a local or remote image file.
gimptool-2.0 is a tool that can build plug-ins or scripts and install them if they are distributed
in one source file. gimptool-2.0 can also be used by programs that need to know
what libraries and include-paths GIMP was compiled with.
libgimp-2.0.so provides C bindings for GIMP's Procedural Database (PDB) which offers an
interface to core functions and to functionality provided by plug-ins.
libgimpbase-2.0.so provides the C functions for basic GIMP functionality such as determining
enumeration data types, gettext translation, determining GIMP's version number
and capabilities, handling data files and accessing the environment.
libgimpcolor-2.0.so provides the C functions relating to RGB, HSV and CMYK colors as well
as converting colors between different color models and performing adaptive
supersampling on an area.
libgimpmath-2.0.so contains C functions which provide mathematical definitions and macros,
manipulate 3x3 transformation matrices, set up and manipulate vectors and the
MD5 message-digest algorithm.
libgimpmodule-2.0.so provides the C functions which implements module loading using GModule and
keeps a list of GimpModule's found in a given searchpath.
libgimpthumb-2.0.so provides the C functions for handling GIMP's thumbnail objects.
libgimpui-2.0.so contains the GIMP common user interface functions.
libgimpwidgets-2.0.so contains GIMP and GTK widget creation and manipulation functions.
898
Beyond Linux® From Scratch - Version 6.3
Evolution-2.10.3
Introduction to Evolution
The Evolution package contains an integrated mail, calendar and address book suite designed for the GNOME-2
environment.
Package Information
• Download (HTTP): http://ftp.gnome.org/pub/gnome/sources/evolution/2.10/evolution-2.10.3.tar.bz2
• Download (FTP): ftp://ftp.gnome.org/pub/gnome/sources/evolution/2.10/evolution-2.10.3.tar.bz2
• Download MD5 sum: 09cc60b037849b3c9b34961eb7da217f
• Download size: 26 MB
• Estimated disk space required: 355 MB
• Estimated build time: 10 SBU
Evolution Dependencies
Required
NSS-3.11.7
The NSS package is not required if you have Firefox-2.0.0.15, Thunderbird-2.0.0.12, SeaMonkey-1.1.9 or Mozilla
installed. These packages contain internal copies of NSS (or they used a system-installed copy). If any of the four
packages are installed, one way or another you will already have NSS/NSPR libraries on your system.
Optional
OpenLDAP-2.3.39, HAL-0.5.9.1, D-Bus GLib Bindings-0.74, GNOME Spell, Heimdal-1.1 or MIT Kerberos V5-1.6,
krb4, GNOME Pilot conduits (requires pilot-link-0.12.2 then GNOME Pilot), GStreamer-0.8.x, NetworkManager
(download), libnotify, Mono, intltool-0.35.5, GTK-Doc-1.8, and DocBook-utils-0.6.14
Installation of Evolution
Install Evolution by running the following commands:
899
Beyond Linux® From Scratch - Version 6.3
Note
The instructions below assume you have the NSS/NSPR libraries installed on your system. If you elected
not to install NSS (or one of the other packages mentioned above), you'll need to remove the following two
parameter settings from the configure command below:
--enable-nss
--enable-smime
The Evolution configure script only looks for the stand-alone NSS package and the Mozilla and Firefox
browsers for the NSS/NSPR libraries. If you are using Thunderbird as your source for the NSS/NSPR
libraries, you will have to add the following two parameter settings to the configure command below:
--with-nspr-includes=/usr/include/nspr
--with-nss-includes=/usr/include/nss
Command Explanations
--prefix=$(pkg-config --variable=prefix ORBit-2.0): Setting the prefix using this parameter
instead of with $GNOME_PREFIX will ensure that the prefix is consistent with the installation environment and the
package will be installed in the correct location.
--sysconfdir=/etc/gnome/2.18.3: This parameter causes the configuration files to be installed in
/etc/gnome/2.18.3 instead of $GNOME_PREFIX/etc. Additionally (if applicable), the parameter ensures
that the GConf-2 database is correctly updated.
--localstatedir=/var/lib: This parameter is used so that all ScrollKeeper files are installed in, and the
ScrollKeeper database is properly updated in /var/lib/scrollkeeper instead of some files being installed in
$GNOME_PREFIX/var/scrollkeeper.
--libexecdir=$(pkg-config --variable=prefix ORBit-2.0)/lib: This parameter causes the
libexec files to be installed in the preferred location of $GNOME_PREFIX/lib/evolution instead of $GNOME_
PREFIX/libexec/evolution.
900
Beyond Linux® From Scratch - Version 6.3
--enable-nntp: This parameter is used to build the Usenet news (NNTP) backend.
--enable-nss: This parameter is used to pull in the Mozilla Network Security Services libraries for SSL support.
--enable-smime: This parameter is used to pull in the Mozilla Network Security Services libraries for S/MIME
support.
--with-openldap: This parameter will compile LDAP support into Evolution.
--with-krb5: This parameter will compile Kerberos5 support into Evolution.
--with-pilot-conduits: This parameter will build the GNOME Pilot conduits allowing you to synchronize
Evolution data on a Palm device.
ln -v -s evolution-2.10 $(pkg-config --variable=prefix ORBit-2.0)/bin/evolution: This optional command creates
a convenience symlink to the evolution-2.10 binary.
--with-kde-applnk-path=<$KDE_PREFIX/share/applnk>: Use this parameter if you wnat the
installation process to create a .desktop file in the KDE global desktop file directory.
Contents
Installed Programs: evolution and evolution-2.10
Installed Libraries: $GNOME_PREFIX/lib/evolution/2.10/* (contains support libraries, conduits, and
other components)
Installed Directories: The following subdirectories of $GNOME_PREFIX/: include/evolution-2.10,
lib/evolution, share/{{,omf/}evolution, {gnome/help,idl}/evolution-2.10}
Short Descriptions
evolution is a symlink to the evolution-2.10 program.
evolution-2.10 is an email, calendar and address book suite.
901
Beyond Linux® From Scratch - Version 6.3
902
Beyond Linux® From Scratch - Version 6.3
KOffice-1.6.3
Introduction to KOffice
KOffice is the integrated office suite for KDE. It provides native OASIS OpenDocument format support.
Package Information
• Download (HTTP): http://mirrors.isc.org/pub/kde/stable/koffice-1.6.3/src/koffice-1.6.3.tar.bz2
• Download (FTP): ftp://ftp.kde.org/pub/kde/stable/koffice-1.6.3/src/koffice-1.6.3.tar.bz2
• Download MD5 sum: 386d388094734f9759977c3267098e30
• Download size: 55.0 MB
• Estimated disk space required: 489 MB (additional 592 MB for API docs)
• Estimated build time: 44 SBU (additional 4.4 SBU for API docs)
Additional Downloads
KOffice has many localization packages in the form of: koffice-l10n-<xx>-1.6.3.tar.bz2. The <xx> is
a two to seven character code for the country covered. The sizes of these files range from about 0.2 MB to 15 MB.
• KOffice l10n package listing: http://download.kde.org/stable/koffice-1.6.3/src/koffice-l10n/
• Download MD5 sums: http://mirrors.isc.org/pub/kde/stable/koffice-1.6.3/src/MD5SUMS
KOffice Dependencies
Required
kdebase-3.5.9
Recommended
libjpeg-6b, libart_lgpl-2.3.19, libxml2-2.6.31, and libxslt-1.1.22
Optional
Aspell-0.60.5, Python-2.5.2, Ruby-1.8.6-p111, libpqxx (for kexi, requires PostgreSQL-8.2.4), MySQL-5.0.41
(plugin), little cms-1.16 and ImageMagick-6.3.5-10 (required for krita), OpenEXR (for enhanced image processing),
libwv2 (for MS Word filter), libwpd (for Wordperfect filter), libpaper, Graphviz-2.12, and Doxygen-1.5.2 (the last
two to build API documentation)
Installation of KOffice
Install KOffice with the following commands:
Note
If you wish to create the API documentation and you have Doxygen and Graphviz installed, make apidox
must be done before make install.
903
Beyond Linux® From Scratch - Version 6.3
make install
Contents
Installed Programs: karbon, kchart, kexi, kformula, kivio, koconverter, koshell, kplato, kprconverter.pl,
kpresenter, krita, krossrunner, kspread, ksqlite, ksqlite2, ksqlite2to3, kthesaurus,
kudesigner, kugar, and kword
Installed Libraries: Numerous libraries (about 50) in $KDE_PREFIX/lib
Installed Directory: Numerous directories in $KDE_PREFIX/share
Short Descriptions
kchart is a chart drawing application.
kexi is an integrated data management application.
kformula is a formula editor.
kivio is a flowchart program.
kplato is a project management application.
kpresenter is a presentation builder/display program.
krita is a painting and image editing application for KOffice..
kspread is a scriptable spreadsheet program.
kugar is a tool for creating reports.
kword is a framemaker-like word processing and desktop publishing program.
904
Beyond Linux® From Scratch - Version 6.3
OpenOffice-2.3.1
Introduction to OpenOffice
OpenOffice is an office suite, the open source sibling of StarOffice.
Package Information
• OpenOffice Core Download (HTTP): http://ftp.osuosl.org/pub/openoffice/stable/2.3.1/OOo_2.3.1_src_core.tar.
bz2
• OpenOffice Core Download (FTP): ftp://ftp.osuosl.org/pub/openoffice/stable/2.3.1/OOo_2.3.1_src_core.tar.bz2
• OpenOffice Core Download MD5 sum: 9555a2d5fae9a25c788cc732921ef57a
• OpenOffice Core Download size: 138 MB
• OpenOffice System Download (HTTP): http://ftp.osuosl.org/pub/openoffice/stable/2.3.1/OOo_2.3.1_src_system.
tar.bz2
• OpenOffice System Download (FTP): ftp://ftp.osuosl.org/pub/openoffice/stable/2.3.1/OOo_2.3.1_src_system.
tar.bz2
• OpenOffice System Download MD5 sum: 1e20befe2fdb65c00be11f1f5d9ebdca
• OpenOffice System Download size: 36 MB
• Estimated disk space required: 4.2-4.8 GB (depending on configured options)
• Estimated build time: 75-100 SBU (depending on configured options)
Additional Downloads
• Required patch: http://www.linuxfromscratch.org/patches/blfs/6.3/OOo_2.3.1-use_bin_hsqldb-1.patch
• Optional download if you wish to build the in-tree Mozilla browser: ftp://ftp.mozilla.org/pub/mozilla.org/
mozilla/releases/mozilla1.7.5/source/mozilla-source-1.7.5.tar.gz
• Optional download if you wish to build the OpenOffice SDK: ftp://ftp.osuosl.org/pub/openoffice/stable/2.
3.1/OOo_2.3.1_src_sdk.tar.bz2 which also requires MinGW or a precompiled unowinreg.dll for the
cross-platform Java components.
• Optional download if you would like to localize the installation: ftp://ftp.osuosl.org/pub/openoffice/stable/2.3.1/
OOo_2.3.1_src_l10n.tar.bz2
• Optional download if you need to support the old StarOffice-5.x file formats: ftp://ftp.osuosl.org/pub/openoffice/
stable/2.3.1/OOo_2.3.1_src_binfilter.tar.bz2
OpenOffice Dependencies
Required
Apache Ant-1.7.0, GTK+-2.10.13, libIDL-0.8.8, Perl Modules XML::Parser-2.34 and Archive::Zip-1.20,
UnZip-5.52, which-2.19, and Zip-2.32
Recommended
libart_lgpl-2.3.19 and libxslt-1.1.22
Optional
ALTLinuxhyph, boost, CUPS-1.2.12, cURL-7.16.3, Berkeley DB-4.5.20 (built with Java support),
desktop-file-utils-0.13, EPM, Evolution-2.10.3, GNOME Virtual File System-2.18.1, GPC, KDE, libjpeg-6b,
libsndfile, LibTIFF-3.8.2, libwpd, Linux-PAM-0.99.10.0, Firefox-2.0.0.15 (with ldap support), MySpell, MyThes,
NAS-1.9, neon, OpenLDAP-2.3.39, PortAudio, Python-2.5.2, Sablotron, SANE-1.0.18, startup-notification-0.9,
STLPort, and unixODBC-2.2.12
905
Beyond Linux® From Scratch - Version 6.3
Installation of OpenOffice
The OpenOffice source code is now distributed in several tarballs. You should extract each from the same top-level
directory before entering the build directory. At a minimum, you will need to extract the “core” and “system” tarballs.
Note that the source directory name is not consistent with the tarball name and will be named OOG680_m9.
If you wish to build an in-tree Mozilla, as opposed to using a system wide installation, copy the Mozilla source tarball
into the source tree:
cp ../mozilla-source-1.7.5.tar.gz moz/download/
If you want to optimize the build, edit the appropriate makefile in solenv/inc/ and add the desired optimization
flags to the CFLAGSOPT variable. The makefiles are arch specific, for instance edit solenv/inc/unxlngi6.
mk for i686. Some users have reported problems with -fomit-frame-pointer. The best option is to not use
any custom optimizations.
Note
Because of the complexity of the OpenOffice build system, it is not possible to provide generic
build instructions for all systems. You should review the output of config_office/configure --help
and take advantage of any system installed programs and libraries available using the --enable-*,
--disable-*, and --with-system-* parameters. Additionally, if you have installed KDE in the
/opt prefix, and would like to use the --enable-kde switch, you must set KDEDIR=$KDE_PREFIX
before running configure.
OpenOffice fails to compile if umask is set to something exotic. The build can also fail if the LANG or LC_ALL
environment variables are set. Use the following commands to change your environment accordingly:
906
Beyond Linux® From Scratch - Version 6.3
./bootstrap &&
source LinuxX86Env.Set.sh &&
dmake
907
Beyond Linux® From Scratch - Version 6.3
pushd instsetoo_native/unxlngi6.pro/OpenOffice/\
native/install/en-US/linux-2.6-intel/buildroot/opt &&
cp -r -v openoffice.org2.3 /opt/openoffice-2.3.1 &&
popd &&
for appl in sbase scalc sdraw simpress smath soffice spadmin swriter
do
ln -v -sf /opt/openoffice-2.3.1/program/$appl /usr/bin
done &&
If you have installed desktop-file-utils-0.13, you should copy the *.desktop files to
/usr/share/applications using the following commands as the root user:
Finally, if you'd like to edit OpenOffice documents directly from SeaMonkey-1.1.9 or Firefox-2.0.0.15, create
a symbolic link in your plugins directory to /opt/openoffice-2.3.1/program/libnpsoplugin.so.
Additionally, you must enable the plugin from the Internet Options within any OpenOffice application.
Command Explanations
sed 's@..\$dist\$/configure@uudecode="no"...': This command corrects a build failure if a faulty uudecode
program provided by the GMime-2.2.10 package is installed.
--enable-*: The switches listed in the example configure command above force the use of system installed
libraries that are known to be available on a BLFS system that meets the required and recommended dependencies.
--disable-fontooo: Use Fontconfig instead of the FontOOo.
908
Beyond Linux® From Scratch - Version 6.3
--disable-gnome-vfs: Disable the use of Gnome Virtual File System libraries. Omit this switch if you have
Gnome installed.
--without-fonts: Do not install Bitstream Vera fonts since they are already included in the X Window System
Environment.
--with{,out}-system-*: Determines whether to use the system libraries and programs or to build the source
packages included in the build tree.
--without-pam: Disable the use of Linux-PAM functions. Omit this switch if Linux-PAM is installed.
--enable-build-mozilla: Build the in-tree Mozilla suite.
--with-build-version=BLFS: Appends “BLFS” to the end of the version string.
--with-package-format=native: This switch forces the build to skip the packaging process, leaving only
the temporary installation that would be used for packaging. This temporary installation is later copied directly to
the final destination.
--disable-binfilter: This switch disables the build of legacy StarOffice-5 import filters. Omit this switch if
you've downloaded the binfilter package above. Warning: Installation of the legacy import filters increases the build
time considerably. Only install them if you have these old file types, and need to edit them in OpenOffice.
--disable-odk: This switch disables the build of the OpenOffice SDK. Omit this switch if you've downloaded
the SDK package (and additional requirements) above.
--disable-qadevooo: This switch skips the building of the quality assurance tools used by the OpenOffice
development teams.
--with-system-mozilla=<type> : Enables the use of a system installed gecko or XULRunner engine in
place of the full Mozilla suite. This will disable the use of a Thunderbird address book as a data source. If you omit
the type of installation, configure defaults to and searches for a working XULRunner installation and will fail if one
is not found.
--disable-cups: Disable the use of CUPS for printing.
--with-lang=<LANG>: Allows the use of additional languages in OpenOffice. US English (ENUS) is the default.
--with-dict=<LANG>: Allows the use of alternate dictionaries in OpenOffice. US English (ENUS) is the default.
--with-use-shell=bash: Tells the OpenOffice build system to use bash instead of tcsh.
./bootstrap: Build the dmake utility required to complete the build.
dmake: Compiles the package.
for appl in sbase scalc...: Creates symlinks for the applications in /usr/bin.
for appl in *.desktop...: Edit the *.desktop files for use with a standard BLFS system.
Contents
Installed Programs: scalc, sdraw, simpress, smath, soffice, spadmin, and swriter.
Installed Libraries: OpenOffice libraries
Installed Directory: /opt/openoffice-2.3.1
Short Descriptions
sbase is a database application.
909
Beyond Linux® From Scratch - Version 6.3
910
Beyond Linux® From Scratch - Version 6.3
911
Beyond Linux® From Scratch - Version 6.3
SeaMonkey-1.1.9
Introduction to SeaMonkey
SeaMonkey is a browser suite, the Open Source sibling of Netscape. It includes the browser, composer, mail and
news clients, and an IRC client. It is the follow-on to the Mozilla browser suite.
The Mozilla project also hosts two subprojects that aim to satisfy the needs of users who don't need the complete
browser suite or prefer to have separate applications for browsing and e-mail. These subprojects are Mozilla Firefox,
(a stand-alone browser based on the Mozilla source code) and Mozilla Thunderbird, (a stand-alone mail/newsgroup
client based on the Mozilla source code). The build instructions for these two applications are discussed in separate
sections:
• Firefox-2.0.0.15
• Thunderbird-2.0.0.12
Package Information
• Download (HTTP): http://ftp.mozilla.org/pub/mozilla.org/seamonkey/releases/1.1.9/seamonkey-1.1.9.source.tar.
bz2
• Download (FTP): ftp://ftp.mozilla.org/pub/mozilla.org/seamonkey/releases/1.1.9/seamonkey-1.1.9.source.tar.bz2
• Download MD5 sum: 2b08c472164e80922f715c6e96e0bee7
• Download size: 33.7 MB
• Estimated disk space required: 632 MB
• Estimated build time: 17.0 SBU
To enable the Enigmail extension to the SeaMonkey mail client, you'll need to download the tarball listed below.
The Enigmail extension allows users to access the authentication and encryption features provided by the GnuPG
package. The Enigmail extension will not operate correctly unless you have GnuPG-1.4.7 or GnuPG-2.0.8 installed.
• http://www.mozilla-enigmail.org/download/source/enigmail-0.95.6.tar.gz
• Download MD5 sum (Enigmail): cfbe6ff77f80a349b396829757ad952a
SeaMonkey Dependencies
Required
GTK+-2.10.13, libIDL-0.8.8, and Zip-2.32
Note
libjpeg-6b should have been installed before GTK+ and should exist on your system. If for some reason you
haven't installed libjpeg, you should remove the --with-system-jpeg option from the .mozconfig
file created below.
Recommended
NSS-3.11.7 (if you will be installing any other package that utilizes NSS/NSPR, such as Firefox, Thunderbird,
Evolution, or OpenOffice)
Optional
UnZip-5.52 and libgnomeui-2.18.1 (to build the gnomevfs extension)
912
Beyond Linux® From Scratch - Version 6.3
Installation of SeaMonkey
The configuration of SeaMonkey is accomplished by creating a .mozconfig file containing the desired
configuration options. A default .mozconfig file is created below. To see the entire list of available configuration
options (and an abbreviated description of each one), issue ./configure --help. Additional information can also be
found below in the section titled Additional .mozconfig Options. If you are going to use system-installed versions of
the NSS and NSPR libraries, ensure you uncomment the two lines near the bottom of the file. If you would prefer to
download the file instead of creating it by typing or cut-and-pasting, you can find it at http://anduin.linuxfromscratch.
org/files/BLFS/6.3/seamonkey-1.1.9-mozconfig (the file must be installed in the root of the source tree mozilla
directory, and named .mozconfig). Create the file by issuing the following command:
# These options are used so that the SeaMonkey binaries are linked to
# the system-installed copies of the specified libraries instead of
# the source tree code which may not be the most recent versions.
ac_add_options --with-system-zlib
ac_add_options --with-system-png
ac_add_options --with-system-jpeg
ac_add_options --enable-system-cairo
913
Beyond Linux® From Scratch - Version 6.3
# This option is used so that the debugging symbols are removed from
# the installed binaries during the installation process. Comment out
# this option if you may have a need to retain the debugging symbols
# in the installed binaries. Note that this can substantially
# increase the size of the installed binaries.
ac_add_options --enable-strip
# This option is added so that test libraries and programs are not
# built. These would only be required for debugging purposes.
ac_add_options --disable-tests
# This option is used to enable support for rendering SVG files in the
# SeaMonkey browser.
ac_add_options --enable-svg
# Complex scripts such as Thai can only be rendered in SeaMonkey with the
# help of Pango. This option significantly slows rendering, so only use
# it if necessary.
#ac_add_options --enable-pango
914
Beyond Linux® From Scratch - Version 6.3
# option is not required for end-user browsing, and is only used for
# development purposes.
#ac_add_options --with-default-mozilla-five-home=/usr/lib/seamonkey-1.1.9
EOF
ifdef MOZ_ENABLE_CANVAS
EXTRA_DSO_LDOPTS += $(XLDFLAGS) -lX11 -lXrender
endif
EOF
If you're building the SeaMonkey mail/newsgroup client and plan to install the Enigmail extension, issue the following
commands:
This package does not come with a test suite. However, it cn be launched fom the build directory before installing
with the command line: ../seamonkey-build/dist/bin/seamonkey.
If you built SeaMonkey utilizing system-installed NSS and NSPR libraries, the seamonkey-ns*.pc pkgconfig
files are broken as they point to the wrong directories where the actual libraries and interface headers are located.
Issue the following commands as the root user to replace the broken files with symbolic links to known good files:
915
Beyond Linux® From Scratch - Version 6.3
If you did NOT build seamonkey utilizing system-installed NSS and NSPR libraries, issue the following commands
as the root user to install the NSS interface headers:
install -v -m755 -d /usr/include/seamonkey-1.1.9/nss &&
cp -v -Lf ../seamonkey-build/dist/{private,public}/nss/*.h \
/usr/include/seamonkey-1.1.9/nss
If you built the Enigmail extension, issue the following commands as the root user to install the .xpi file into the
/usr/lib/seamonkey-1.1.9/xpi_store directory:
install -v -m644 -D ../seamonkey-build/dist/bin/enigmail-0.95.6.xpi \
/usr/lib/seamonkey-1.1.9/xpi_store/enigmail-0.95.6.xpi
There are two methods you can use to install the Enigmail extension. Both are shown here and provide similar
functionality with one major difference. The first method will install the extension system-wide and all users of
SeaMonkey will have an Enigmail-enabled mail client. The method shown later only installs it on a per-user basis.
The first method must be accomplished now (before the object directory is removed) and uses the conventional make
install command to install the Enigmail files straight from the distribution directory of the object directory. The
alternate method is shown as it installs using the .xpi file created earlier and can be done later (at any time you
desire) as the file used to install Enigmail was copied into /usr/lib/seamonkey-1.1.9/xpi_store in the
previous step. This method can be used to install any downloaded Mozilla extension distributed in a .xpi file. There
are many extensions available for SeaMonkey. A list containing many of them can be found at http://extensionroom.
mozdev.org/.
If you want to install the Enigmail extension now, which offers system-wide access, issue the following command
as the root user:
make -C ../seamonkey-build/mailnews/extensions/enigmail install
To install an extension from a created or download .xpi file, you simply need to “open” the .xpi file using
the “Open File” option of the “File” menu of the browser window. You can browse to find the file (for example,
the Enigmail .xpi file is located in /usr/lib/seamonkey-1.1.9/xpi_store), select it, then follow the
prompts to install the extension.
Note
You should run /usr/bin/seamonkey once as the root user (or any user with write privileges) to create
some necessary additional files in the /usr hierarchy. Also do this each time you install additional
system-wide extensions.
916
Beyond Linux® From Scratch - Version 6.3
Command Explanations
'EXTRA_DSO_LDOPTS' += -lX11 -lXrender ...: Building the layout backend will break when the canvas element
is enabled without adding these two required libraries.
make -f client.mk ...: Mozilla products are packaged to allow the use of a configuration file which can be used to pass
the configuration settings to the configure command. make uses the client.mk file to get initial configuration
and setup parameters, then depending on the target parameter (build or install), either runs the configure script
and compiles the package or installs the package.
./makemake -r: This command is used to recursively create Makefiles in the appropriate subdirectory of
seamonkey-build.
make -C ... xpi: This command builds the Enigmail .xpi file which can be used to install Enigmail.
install .../movemail.rdf ...: This command is used to install a file inadvertently left out of the installation script.
Configuring SeaMonkey
No specific configuration is required as long as the seamonkey script is in the user's path. If SeaMonkey is installed
in a non-standard location, make a symlink to the seamonkey script in the /usr/bin directory.
Some applications look for netscape when they need to open a browser. You may make the following symlink for
convenience (as the root user).
917
Beyond Linux® From Scratch - Version 6.3
For installing various SeaMonkey plugins, refer to Mozdev's PluginDoc Project. If you have JDK-6 Update 5 already
installed, create the following link as the root user to utilize the JAVA plugin:
ln -v -s $JAVA_HOME/jre/plugin/i386/ns7/libjavaplugin_oji.so \
/usr/lib/seamonkey-1.1.9/plugins
Some packages install SeaMonkey plugins into the default system-wide directory
/usr/lib/mozilla/plugins. If desired, create symbolic links in the SeaMonkey plugin directory
/usr/lib/seamonkey-1.1.9/plugins to the files in the default plugin directory (you should link to the
actual files and not other links). Alternatively, you can move or copy the files in the default plugin directory to the
SeaMonkey plugin directory. An example of creating a symbolic link is shown below. Create the links as the root
user:
ln -v -s ../../mozilla/plugins/<plugin.so> \
/usr/lib/seamonkey-1.1.9/plugins
Along with using the “Preferences” menu to configure SeaMonkey's options and preferences to suit individual tastes,
finer grain control of many options is only available using a tool not available from the general menu system. To
access this tool, you'll need to open a browser window and enter about:config in the address bar. This will
display a list of the configuration preferences and information related to each one. You can use the “Filter:” bar to
enter search criteria and narrow down the listed items. Changing a preference can be done using two methods. One,
if the preference has a boolean value (True/False), simply double-click on the preference to toggle the value and two,
for other preferences simply right-click on the desired line, choose “Modify” from the menu and change the value.
Creating new preference items is accomplished in the same way, except choose “New” from the menu and provide
the desired data into the fields when prompted.
Tip
There is a multitude of configuration parameters you can tweak to customize SeaMonkey. A very extensive
and up-to-date list of these parameters can be found at http://preferential.mozdev.org/preferences.html.
Contents
Installed Programs: seamonkey and seamonkey-config
Installed Libraries: Numerous libraries, browser, and email/newsgroup components, plugins, extensions,
and helper modules installed in /usr/lib/seamonkey-1.1.9
Installed Directories: /usr/include/seamonkey-1.1.9, /usr/lib/seamonkey-1.1.9, and
/usr/share/idl/seamonkey-1.1.9
Short Descriptions
seamonkey is a browser/email/newsgroup/chat client suite. The various components such as the Composer,
mail-news client, IRC chat client, and address book can be accessed from the menu after seamonkey
starts or via command-line switches to the seamonkey script. Issue man seamonkey for additional
information.
918
Beyond Linux® From Scratch - Version 6.3
Firefox-2.0.0.15
Introduction to Firefox
Firefox is a stand-alone browser based on the Mozilla codebase.
Package Information
• Download (HTTP): http://releases.mozilla.org/pub/mozilla.org/firefox/releases/2.0.0.15/source/firefox-2.0.0.15-
source.tar.bz2
• Download (FTP): ftp://ftp.mozilla.org/pub/mozilla.org/firefox/releases/2.0.0.15/source/firefox-2.0.0.15-source.
tar.bz2
• Download MD5 sum: ef827973830cc6453adf8ca3b88a9c6d
• Download size: 38 MB
• Estimated disk space required: 574 MB
• Estimated build time: 13 SBU
Firefox Dependencies
Required
GTK+-2.10.13, libIDL-0.8.8, and Zip-2.32
Note: libjpeg should have been installed before GTK+ and should exist on your system. If for some reason you haven't
installed libjpeg, you should remove the --with-system-jpeg option from the .mozconfig file created
below.
Recommended
NSS-3.11.7(if you will be installing any other package that utilizes NSS/NSPR, such as Thunderbird, SeaMonkey,
Evolution, or OpenOffice)
Optional
UnZip-5.52 and libgnomeui-2.18.1 (to build the gnomevfs extension)
Installation of Firefox
The configuration of Firefox is accomplished by creating a .mozconfig file containing the desired configuration
options. A default .mozconfig is created below. To see the entire list of available configuration options (and an
abbreviated description of each one), issue ./configure --help. If you are going to use system-installed versions of
the NSS and NSPR libraries, ensure you uncomment the two lines near the bottom of the file. If you are going to
build the OpenOffice package and you want to use this Firefox installation as the default Mozilla source, ensure you
uncomment the --enable-ldap option in the file created below. You may also wish to review the entire file and
uncomment any other desired options. If you would prefer to download the file instead of creating it by typing or
cut-and-pasting, you can find it at http://anduin.linuxfromscratch.org/files/BLFS/6.3/firefox-2.0.0.15-mozconfig (the
file must be installed in the root of the source tree mozilla directory, and named .mozconfig). Create the file
by issuing the following command:
cat > .mozconfig << "EOF"
# This file contains the options used in the Firefox build. You may
# need to specify additional options for your specific build needs.
# Use the information provided by running './configure --help' to
919
Beyond Linux® From Scratch - Version 6.3
# These options are used so that the Firefox binaries are linked to
# the system-installed copies of the specified libraries instead of
# the source tree code which may not be the most recent versions.
ac_add_options --with-system-zlib
ac_add_options --with-system-png
ac_add_options --with-system-jpeg
ac_add_options --enable-system-cairo
# This option is used to enable support for rendering SVG files in the
# Firefox browser. Comment out the line to disable the option.
ac_add_options --enable-svg
# This option is used so that the debugging symbols are removed from
# the installed binaries during the installation process. Comment out
# this option if you may have a need to retain the debugging symbols
# in the installed binaries. Note that this can substantially
# increase the size of the installed binaries.
ac_add_options --enable-strip
# This option is added so that test libraries and programs are not
# built. These would only be required for debugging purposes.
920
Beyond Linux® From Scratch - Version 6.3
ac_add_options --disable-tests
# Complex scripts such as Thai can only be rendered in Firefox with the
# help of Pango. This option significantly slows rendering, so only use
# it if necessary.
#ac_add_options --enable-pango
EOF
921
Beyond Linux® From Scratch - Version 6.3
chown -v -R root:root \
/usr/lib/firefox-2.0.0.15/extensions/[email protected]/*
If you enabled LDAP support in the Firefox build, install some additional interface headers as the root user:
If you built Firefox utilizing system-installed NSS and NSPR libraries, the firefox-ns*.pc pkgconfig files are
broken as they point to the wrong directories where the actual libraries and interface headers are located. Issue the
following commands as the root user to replace the broken files with symbolic links to known good files:
If you did NOT build Firefox utilizing system-installed NSS and NSPR libraries, issue the following commands as
the root user to install the NSS interface headers:
Note
You should run /usr/bin/firefox once as the root user (or any user with write privileges) to create some
necessary additional files in the /usr hierarchy.
922
Beyond Linux® From Scratch - Version 6.3
Command Explanations
'EXTRA_DSO_LDOPTS' += -lX11 -lXrender ...: Building the layout backend will break when the canvas element
is enabled without adding these two required libraries.
sed -i "s/^ enum$/& xptinfo_enum_1/" ...: This command is used to fix an anonymous enum in an external/public
interface header file.
make -f client.mk ...: Mozilla products are packaged to allow the use of a configuration file which can be used to pass
the configuration settings to the configure command. make uses the client.mk file to get initial configuration
and setup parameters, then depending on the target parameter (build or install), either runs the configure script
and compiles the package or installs the package.
install -v -m755 -d .../chrome/icons/default and ln -v -s ../../../icons/default.xpm ...: These two commands are used
to create a symlink in the required directory so that the proper icon is displayed in the taskbar and when Firefox
windows are minimized.
chown -v -R root:root ...: This command changes the ownership of some installed files to more appropriate
user:group names.
Configuring Firefox
No specific configuration is required as long as the firefox script is in the user's path. If Firefox is installed in a
non-standard location, then make a symlink to the firefox script in the /usr/bin directory.
If your Window or Desktop Manager does not allow you to configure a default mail client, you can add a configuration
parameter to Firefox so that an email client will start when you click on a mailto: URL. There are two parameters
you need to check. The procedure to check or modify any of the configuration parameters is quite simple and the
instructions here can be used to view or modify any of the parameters.
First, open the configuration dialog by entering about:config in the address bar. This will display a list of the
configuration preferences and information related to each one. You can use the “Filter:” bar to enter search criteria
and narrow down the listed items. Changing a preference can be done using two methods. One, if the preference has a
boolean value (True/False), simply double-click on the preference to toggle the value and two, for other preferences
simply right-click on the desired line, choose “Modify” from the menu and change the value. Creating new preference
items is accomplished in the same way, except choose “New” from the menu and provide the desired data into the
fields when prompted.
The two configuration preference items you need to check so that Firefox uses a specified default mail
client are the network.protocol-handler.external.mailto which should be set to True and the
network.protocol-handler.app.mailto which should be set to the path of the desired mail client, e.g.,
/usr/bin/thunderbird.
Tip
There is a multitude of configuration parameters you can tweak to customize Firefox. A very extensive and
up-to-date list of these parameters can be found at http://preferential.mozdev.org/preferences.html.
Many applications look for netscape when they need to open a browser. You may wish to make the following symlink
for convenience (as the root user).
923
Beyond Linux® From Scratch - Version 6.3
For installing various Firefox plugins, refer to Mozdev's PluginDoc Project. If you have the JDK-6 Update 5 already
installed, create the following link as the root user to utilize the installed Java plugin:
ln -v -s $JAVA_HOME/jre/plugin/i386/ns7/libjavaplugin_oji.so \
/usr/lib/firefox-2.0.0.15/plugins
Some packages install Mozilla plugins into the default system-wide directory /usr/lib/mozilla/plugins.
If desired, create symbolic links in the Firefox plugin directory /usr/lib/firefox-2.0.0.15/plugins to
the files in the default plugin directory (you should link to the actual files and not other links). Alternatively, you
can move or copy the files in the default plugin directory to the Firefox plugin directory. An example of creating a
symbolic link is shown below. Create the links as the root user:
ln -v -s ../../mozilla/plugins/<plugin.so> \
/usr/lib/firefox-2.0.0.15/plugins
Contents
Installed Programs: firefox and firefox-config
Installed Libraries: Numerous libraries, browser components, plugins, extensions, and helper modules
installed in /usr/lib/firefox-2.0.0.15
Installed Directories: /usr/include/firefox-2.0.0.15, /usr/lib/firefox-2.0.0.15, and
/usr/share/idl/firefox-2.0.0.15
Short Descriptions
firefox is a shell script that sets up the environment and calls the firefox-bin binary.
firefox-config determines the compile and linker flags that should be used to compile and link programs that
use Firefox libraries and browser components.
924
Beyond Linux® From Scratch - Version 6.3
Konqueror-3.5.9
konqueror is the default graphical web browser for the KDE desktop environment. It is packaged and installed with
kdebase-3.5.9.
925
Beyond Linux® From Scratch - Version 6.3
926
Beyond Linux® From Scratch - Version 6.3
Thunderbird-2.0.0.12
Introduction to Thunderbird
Thunderbird is a stand-alone mail/news client based on the Mozilla codebase.
Package Information
• Download (HTTP): http://anduin.linuxfromscratch.org/sources/BLFS/6.3/t/thunderbird-2.0.0.12-source.tar.bz2
•
• Download MD5 sum: c23f576a8fd0ceee5135829c8ae5168b
• Download size: 37 MB
• Estimated disk space required: 629 MB
• Estimated build time: 18 SBU
To enable the Enigmail extension to the Thunderbird mail client, you'll need to download the tarball shown below.
The Enigmail extension allows users to access the authentication and encryption features provided by the GnuPG
package. The Enigmail extension will not operate correctly unless you have GnuPG-1.4.7 or GnuPG-2.0.8 installed.
• http://www.mozilla-enigmail.org/download/source/enigmail-0.95.6.tar.gz
• Download MD5 sum: cfbe6ff77f80a349b396829757ad952a
• Download size: 1.1 MB
Thunderbird Dependencies
Required
Recommended
NSS-3.11.7 (if you will be installing any other package that utilizes NSS/NSPR, such as Firefox, SeaMonkey,
Evolution, or OpenOffice)
Optional
Installation of Thunderbird
The configuration of Thunderbird is accomplished by creating a .mozconfig file containing the desired
configuration options. A default .mozconfig is created below. To see the entire list of available configuration
options (and an abbreviated description of each one), issue ./configure --help. If you are going to use system-installed
versions of the NSS and NSPR libraries, ensure you uncomment the two lines near the bottom of the file. You may
also wish to review the entire file and uncomment any other desired options. If you would prefer to download the file
927
Beyond Linux® From Scratch - Version 6.3
# These options are used so that the Thunderbird binaries are linked to
# the system-installed copies of the specified libraries instead of
# the source tree code which may not be the most recent versions.
ac_add_options --with-system-zlib
ac_add_options --with-system-png
ac_add_options --with-system-jpeg
ac_add_options --enable-system-cairo
# This option is used so that the debugging symbols are removed from
928
Beyond Linux® From Scratch - Version 6.3
# This option is added so that test libraries and programs are not
# built. These would only be required for debugging purposes.
ac_add_options --disable-tests
# This option is used to enable support for rendering SVG files in the
# Thunderbird mail client. Uncomment the line below to enable the option.
#ac_add_options --enable-svg
929
Beyond Linux® From Scratch - Version 6.3
# below is modified. If you need to use the command below, change the
# ... to /usr/lib.
#ac_add_options --with-default-mozilla-five-home=.../thunderbird-2.0.0.12
EOF
If you built Thunderbird utilizing system-installed NSS and NSPR libraries, the thunderbird-ns*.pc pkgconfig
files are broken as they point to the wrong directories where the actual libraries and interface headers are located.
Issue the following commands as the root user to replace the broken files with symbolic links to known good files:
930
Beyond Linux® From Scratch - Version 6.3
If you did NOT build Thunderbird utilizing system-installed NSS and NSPR libraries, issue the following commands
as the root user to install the NSS interface headers:
install -v -m755 -d /usr/include/thunderbird-2.0.0.12/nss &&
cp -v -Lf ../thunderbird-build/dist/{private,public}/nss/*.h \
/usr/include/thunderbird-2.0.0.12/nss
If you built the Enigmail extension, issue the following commands as the root user to install the .xpi file:
install -v -m644 -D ../thunderbird-build/dist/bin/enigmail-0.95.6.xpi \
/usr/lib/thunderbird-2.0.0.12/xpi_store/enigmail-0.95.6.xpi
If you want to install Enigmail globally so that all users who run Thunderbird will have access to the extension, issue
the command shown below. Note that this procedure starts an instance of Thunderbird and you must have an X server
running. Issue the following command as the root user:
/usr/bin/thunderbird -install-global-extension \
/usr/lib/thunderbird-2.0.0.12/xpi_store/enigmail-0.95.6.xpi
Global installation of other extensions can be done using the same basic method as the Enigmail extension. See the
“Configuring Thunderbird” section below for information about configuring Enigmail for individual users if you did
not not install it globally.
Note
You should run /usr/bin/thunderbird once as the root user (or any user with write privileges) to create
some necessary additional files in the /usr/lib/thunderbird-2.0.0.12 directory.
Command Explanations
'EXTRA_DSO_LDOPTS' += -lX11 -lXrender ...: Building the layout backend will break when the canvas element
is enabled without adding these two required libraries.
sed -i "s/^ enum$/& xptinfo_enum_1/" ...: This command is used to fix an anonymous enum in an external/public
interface header file.
make -f client.mk ...: Mozilla products are packaged to allow the use of a configuration file which can be used to pass
the configuration settings to the configure command. make uses the client.mk file to get initial configuration
and setup parameters, then depending on the target parameter (build or install), either runs the configure script
and compiles the package or installs the package.
( cd mailnews/... && ./makemake -r ): This command is used to recursively create Makefiles in the enigmail
directory.
make -C ... xpi: This command builds the Enigmail .xpi file which is used to install Enigmail.
install .../{movemail,rss}.rdf: These commands are used to install two mail extensions inadvertantly left out of the
installation script or installed to the wrong location.
Configuring Thunderbird
Configuration Information
No specific configuration is required as long as the thunderbird script is in the user's path. If Thunderbird is installed
in a non-standard location, then make a symlink to the thunderbird script in the /usr/bin directory.
931
Beyond Linux® From Scratch - Version 6.3
If you don't have privileges to install extensions globally, or you prefer to not install global extensions, you can
configure Thunderbird on an individual user basis for access to extensions. For example, if you built the Enigmail
extension and did not install it globally, it can be installed on an as-needed basis for each user of the system who may
use Thunderbird. It is accomplished through the Thunderbird “Tools” menu. Choose the “Extensions” – “Install”
option and fill in the “Look in:” field with /usr/lib/thunderbird-2.0.0.12/xpi_store. You'll then
see the enigmail-0.95.6-linux-????.xpi file listed. Choose this file and click on “Open”, then click on
“Install now”. The Enigmail extension will install and you will be prompted to restart Thunderbird.
If your Window or Desktop Manager does not allow you to configure a default browser, you can add a configuration
parameter to Thunderbird so that a browser will start when when you click on an Internet/intranet/local URL. The
procedure to check or modify any of the configuration parameters is quite simple and the instructions here can be
used to view or modify any of the parameters.
First, open the configuration dialog by opening the “Edit” drop-down menu. Choose “Preferences” and then click on
the “Advanced” icon on the top menu bar. Choose the “General” tab and click on the “Config Editor” button. This
will display a list of the configuration preferences and information related to each one. You can use the “Filter:” bar
to enter search criteria and narrow down the listed items. Changing a preference can be done using two methods.
One, if the preference has a boolean value (True/False), simply double-click on the preference to toggle the value
and two, for other preferences simply right-click on the desired line, choose “Modify” from the menu and change
the value. Creating new preference items is accomplished in the same way, except choose “New” from the menu and
provide the desired data into the fields when prompted.
The configuration preference item you need to check so that Thunderbird uses a specified browser is the
network.protocol-handler.app.http which should be set to the path of the desired browser, e.g.,
/usr/bin/firefox.
Tip
There is a multitude of configuration parameters you can tweak to customize Thunderbird. A very extensive
and up-to-date list of these parameters can be found at http://preferential.mozdev.org/preferences.html.
Contents
Installed Programs: thunderbird and thunderbird-config
Installed Libraries: Numerous libraries, email/newsgroups components, plugins, extensions, and helper
modules installed in /usr/lib/thunderbird-2.0.0.12
Installed Directories: /usr/include/thunderbird-2.0.0.12, /usr/lib/thunderbird-2.0.0.12, and
/usr/share/idl/thunderbird-2.0.0.12
Short Descriptions
thunderbird is Mozilla's next-generation email and newsgroup client.
932
Beyond Linux® From Scratch - Version 6.3
Pan-0.14.2
Introduction to Pan
The Pan package contains a graphical newsreader. This is useful for reading and writing news, threading articles and
replying via email.
Package Information
• Download (HTTP): http://pan.rebelbase.com/download/releases/0.14.2/SOURCE/pan-0.14.2.tar.bz2
•
• Download MD5 sum: ed3188e7059bb6d6c209ee5d46ac1852
• Download size: 1.8 MB
• Estimated disk space required: 67.8 MB
• Estimated build time: 0.72 SBU
Pan Dependencies
Required
GTK+-2.10.13, GNet-2.0.7, intltool-0.35.5 and libxml2-2.6.31
Optional
gtkspell-2.0.4
Installation of Pan
Install Pan by running the following commands:
make install
Contents
Installed Program: pan
Installed Libraries: None
Installed Directories: /usr/share/gnome/apps/Internet
Short Descriptions
pan is a graphical newsreader.
933
Beyond Linux® From Scratch - Version 6.3
Balsa-2.3.22
Introduction to Balsa
The Balsa package contains a GNOME-2 based mail client.
Package Information
• Download (HTTP): http://balsa.gnome.org/balsa-2.3.22.tar.bz2
•
• Download MD5 sum: 0f9b8dbdd26a1916dcc92f0767e8b4e4
• Download size: 2.5 MB
• Estimated disk space required: 55 MB
• Estimated build time: 0.6 SBU
Balsa Dependencies
Required
libgnomeui-2.18.1, ScrollKeeper-0.3.14, GMime-2.2.10, and Aspell-0.60.5 or GtkSpell (GtkSpell provides on-the-fly
as you type spell checking)
Recommended
libESMTP-1.0.4 (required for outgoing SMTP service) and PCRE-7.6
Optional
GtkHTML-3.14.3, gtksourceview-1.8.5, OpenSSL-0.9.8g, OpenLDAP-2.3.39, Compface-1.5.2, Heimdal-1.1 or MIT
Kerberos V5-1.6, libnotify, SQLite, and an MTA (that provides a sendmail command, note that it is only used if you
didn't install the recommended libESMTP package)
Installation of Balsa
Install Balsa by running the following commands:
make install
934
Beyond Linux® From Scratch - Version 6.3
Command Explanations
--prefix=$(pkg-config --variable=prefix ORBit-2.0): Setting the prefix using this parameter
instead of with $GNOME_PREFIX will ensure that the prefix is consistent with the installation environment and the
package will be installed in the correct location.
--sysconfdir=/etc/gnome/2.18.3: This parameter causes the configuration files to be installed in
/etc/gnome/2.18.3 instead of $GNOME_PREFIX/etc. Additionally (if applicable), the parameter ensures
that the GConf-2 database is correctly updated.
--localstatedir=/var/lib: This parameter is used so that all ScrollKeeper files are installed in, and the
ScrollKeeper database is properly updated in /var/lib/scrollkeeper instead of some files being installed in
$GNOME_PREFIX/var/scrollkeeper.
--with-rubrica: This parameter is used to provide Rubrica2 address book support.
--with-gtkhtml=no: This parameter is used if you don't have libgtkhtml installed. Remove this parameter if
the package is installed. Note that you won't be able to read or write HTML formatted mail messages if you use
this parameter.
--with-esmtp=no: Use this parameter if you don't have libESMTP installed.
--with-ssl: Use this option to enable SSL support if OpenSSL is installed.
--with-ldap: Use this option to enable LDAP address book support if OpenLDAP is installed.
--with-sqlite: Use this option to enable SQLite address book support if SQLite is installed.
--with-gpgme: Use this option to enable GPG support if “GnuPG Made Easy” (GPGME) is installed.
--enable-smime: Use this option to enable S/MIME support if GnuPG-2.x.x is installed.
Configuring Balsa
Configuration Information
All configuration of Balsa is done through the Balsa menu system, with mailbox configuration done with the
Settings—>Preferences menu.
If you are unable to connect to your ISP, they probably don't support APOP. Disable it in
Settings/Preferences/POP3/advanced.
If you enable filters for your incoming POP3 mail, you must have Procmail-3.22 installed, as the incoming mail will
be handed off to procmail for processing.
Contents
Installed Programs: balsa and balsa-ab
Installed Libraries: None
Installed Directories: The following subdirectories of $GNOME_PREFIX/share/: {gnome/help, omf,
sounds}/balsa
Short Descriptions
balsa is a GNOME-2 based mail client.
935
Beyond Linux® From Scratch - Version 6.3
Pidgin-2.1.0
Introduction to Pidgin
Pidgin is an instant messaging client that can connect with a wide range of networks including AIM, ICQ, GroupWise,
MSN, Jabber, IRC, Napster, Gadu-Gadu, SILC, Zephyr and Yahoo!.
Package Information
• Download (HTTP): http://downloads.sourceforge.net/pidgin/pidgin-2.1.0.tar.bz2
•
• Download MD5 sum: 83f44bf9c076595967f7374c50250176
• Download size: 7.7 MB
• Estimated disk space required: 172 MB (additinoal 106 MB for API documentation)
• Estimated build time: 2.5 SBU
Pidgin Dependencies
Required
GLib-2.12.12, libxml2-2.6.31, and XML::Parser-2.34
Optional for SSL Support
GnuTLS-1.6.3 or NSS-3.11.7
SSL support is required for MSN Messenger and Google Talk. GnuTLS is the preferred method. Note that one of
Firefox-2.0.0.15, Thunderbird-2.0.0.12, SeaMonkey-1.1.9, or Mozilla can be used instead of NSS.
Optional GUI Tools
GTK+-2.10.13 (required to build the GUI interface), Gtkspell (for spell-check support and only used if Gtk+ is
installed), XScreenSaver-5.03 (to check for idleness and only used if Gtk+ is installed), startup-notification-0.9 (only
used if Gtk+ is installed), and X Window System (used for session management support)
Optional
intltool-0.35.5, GConf-2.18.0.1, D-Bus GLib Bindings-0.74 (requires Python-2.5.2 also), SILC Client, SILC Toolkit,
zephyr, GStreamer-0.10.13 (required for audio support), Evolution Data Server-1.10.3 (required for Evolution
integration), SQLite (required for the Contact Availability Prediction plugin), Cyrus SASL-2.1.22 (required for Jabber
support), MIT Kerberos V5-1.6 (required for Kerberos support in the Zephyr module), Avahi (required for the Bonjour
plugin), Meanwhile (required for Sametime protocol support), NetworkManager (download and requires that D-Bus
is installed), check (only used during the test suite), and Gadu-Gadu external libraries (cannot find a URL)
Optional for Programming Language Support
Mono (experimental), Tcl-8.4.18, and Tk-8.4.18
Installation of Pidgin
Compile Pidgin by running the following commands:
./configure --prefix=/usr \
--with-gconf-schema-file-dir=/etc/gnome/2.18.3/gconf/schemas \
--disable-gtkui &&
make
936
Beyond Linux® From Scratch - Version 6.3
If you have Doxygen-1.5.2 installed (Graphviz-2.12 can be used also) and you wish to create the API documentation,
issue: make docs
To test the results, issue: make check. Note that the end result of the suite indicates an error. This error is only due
to some locale translation issues and not the actual tests. The actual result of the tests are displayed about half way
through the tests and should indicate that they passed.
Now, as the root user:
make install &&
install -v -m755 -d /usr/share/doc/pidgin-2.1.0 &&
install -v -m644 README* doc/*.txt doc/gtkrc-2.0 \
/usr/share/doc/pidgin-2.1.0
If you created the API documentation, install it using the following commands as the root user:
install -v -m755 -d /usr/share/doc/pidgin-2.1.0/api &&
install -v -m644 doc/html/* \
/usr/share/doc/pidgin-2.1.0/api
Command Explanations
--with-gconf-schema-file-dir=/etc/gnome/2.18.3/gconf/schemas: This parameter is used so
that the GConf schema files are installed into the existing database. If GConf is not installed, the parameter does not
affect the build or installation of the package.
--disable-gtkui: This parameter is used if GTK+ is not installed. The build will only produce the finch
program, which is a text-based (Ncurses) only version. Remove this parameter if you have GTK+ installed to build
the GUI pidgin program.
Configuring Pidgin
Config Files
~/.purple/* and ~/.gtkrc-02
Configuration Information
Most configuration can be accomplished by using the various preference settings inside the programs. Additionally,
you can create a ~/.gtkrc-02 file which can store settings that affect the Pidgin application. Note that an example
gtkrc-02 file was installed during the package installation and can be used as a starting point or reference.
Contents
Installed Programs: finch, pidgin, purple-client-example, purple-remote, purple-send, purple-send-async,
and purple-url-handler
Installed Library: libgnt.so, libpurple.so, and libpurple-client.so along with numerous plugin and support
modules located in various subdirectories of /usr/lib.
Installed Directories: /usr/include/{finch,gnt,libpurple,pidgin}, /usr/lib/{finch,gnt,pidgin,purple-2},
/usr/share/doc/pidgin-2.1.0, /usr/share/pixmaps/pidgin, and /usr/share/sounds/pidgin
Short Descriptions
finch is a text-based (Ncurses) instant messaging client.
937
Beyond Linux® From Scratch - Version 6.3
938
Beyond Linux® From Scratch - Version 6.3
XChat-2.8.4
Introduction to XChat
XChat is an IRC chat program. It allows you to join multiple IRC channels (chat rooms) at the same time, talk publicly,
have private one-on-one conversations, etc. File transfers are also possible.
Package Information
• Download (HTTP): http://www.xchat.org/files/source/2.8/xchat-2.8.4.tar.bz2
• Download (FTP): ftp://ftp.linux.ee/pub/gentoo/distfiles/distfiles/xchat-2.8.4.tar.bz2
• Download MD5 sum: 66d60febc62a01bafac9bb3a35fb37ae
• Download size: 1.3 MB
• Estimated disk space required: 33 MB
• Estimated build time: 0.3 SBU
Additional Downloads
• Required patch: http://xchat.org/files/source/2.8/patches/xc284-scrollbmkdir.diff
XChat Dependencies
Required
GLib-2.12.12
Recommended
GTK+-2.10.13
Optional
D-Bus GLib Bindings-0.74, OpenSSL-0.9.8g, Python-2.5.2, Tcl-8.4.18, GConf-2.18.0.1, and libsexy or GtkSpell (not
recommended)
Note that using libsexy for spell checking requires Enchant at run-time. Aspell-0.60.5 is just one of many backend
spell libraries Enchant can use. See the Enchant project page (URL above) for additional information about the
available backends.
Installation of XChat
Install XChat by running the following commands:
939
Beyond Linux® From Scratch - Version 6.3
Command Explanations
--sysconfdir=/etc/gnome/2.18.3: This parameter causes the configuration files to be installed in
/etc/gnome/2.18.3 instead of $GNOME_PREFIX/etc. Additionally (if applicable), the parameter ensures
that the GConf-2 database is correctly updated.
--enable-shm: This parameter is used to enable XShm for fast tinting.
Contents
Installed Program: xchat
Installed Libraries: XChat binding modules
Installed Directories: /usr/lib/xchat and /usr/share/doc/xchat-2.8.4
Short Descriptions
xchat is a graphical Internet Relay Chat (IRC) client.
940
Beyond Linux® From Scratch - Version 6.3
Part X. Multimedia
Beyond Linux® From Scratch - Version 6.3
ALSA-1.0.13
The Linux kernel now provides ALSA support by default. However, applications need to interface to that capability.
The following five sections of the book deal with the five separate components of ALSA: the libraries, the utilities,
the tools, the firmware and the OSS compatibility libraries.
942
Beyond Linux® From Scratch - Version 6.3
ALSA Library-1.0.13
Introduction to ALSA Library
The ALSA Library package contains the ALSA library. This is used by programs (including ALSA Utilities) requiring
access to the ALSA sound interface.
Package Information
• Download (HTTP): http://gd.tuwien.ac.at/opsys/linux/alsa/lib/alsa-lib-1.0.13.tar.bz2
• Download (FTP): ftp://ftp.alsa-project.org/pub/lib/alsa-lib-1.0.13.tar.bz2
• Download MD5 sum: d55a9d7d2a79d738a1b7a511cffda4b6
• Download size: 694 KB
• Estimated disk space required: 34.9 MB (additional 22.2 MB to build and install docs)
• Estimated build time: 0.6 SBU (less than 0.1 SBU to build and install docs)
Kernel Configuration
In the Device Drivers # Sound # Advanced Linux Sound Architecture section of the kernel configuration, select the
settings and drivers appropriate for your hardware. Ensure that the deprecated Device Drivers # Sound # Open Sound
System is not selected. If necessary, recompile and install your new kernel.
If you have Doxygen installed and you wish to build the library API documentation, run the following commands
from the top-level directory of the source tree:
make doc
943
Beyond Linux® From Scratch - Version 6.3
Command Explanations
--enable-static: This switch is used to enable building the static library as some programs link against it.
Configuration Information
The default alsa.conf is adequate for most installations. For extra functionality and/or advanced control of your
sound device, you may need to create additional configuration files. For information on the available configuration
parameters, visit http://www.alsa-project.org/alsa-doc/doc-php/asoundrc.php.
Contents
Installed Programs: aserver
Installed Library: libasound.{so,a} and smixer-*.{so,a}
Installed Directories: /usr/include/alsa, /usr/lib/alsa-lib, /usr/share/alsa and /usr/share/doc/alsa-lib-1.0.13
Short Descriptions
aserver provides the ALSA server.
libasound.{so,a} provides ALSA functions for application programs.
smixer-*.{so,a} provides hardware dependent ALSA mixer functions.
944
Beyond Linux® From Scratch - Version 6.3
ALSA Plugins-1.0.13
Introduction to ALSA Plugins
The ALSA Plugins package contains plugins for various audio libraries and sound servers.
Note
The ALSA Plugins package has not been tested by the BLFS editors.
Package Information
• Download (HTTP): http://gd.tuwien.ac.at/opsys/linux/alsa/plugins/alsa-plugins-1.0.13.tar.bz2
• Download (FTP): ftp://ftp.alsa-project.org/pub/plugins/alsa-plugins-1.0.13.tar.bz2
• Download MD5 sum: 7ef5e429b4a2756d0b5f0d7ce5bba0c8
• Download size: 225 KB
• Estimated disk space required: 2.4 MB
• Estimated build time: less than 0.1 SBU
Optional
FFmpeg-svn_20070606, JACK, PulseAudio, Secret Rabbit Code (a.k.a. libsamplerate)
Contents
Installed Programs: None
Installed Libraries: Numerous libasound_module_<module>.so modules including ctl_oss, pcm_oss,
pcm_upmix, pcm_vdownmix and optionally ctl_pulse, pcm_pulse, pcm_a52,
pcm_jack and rate_samplerate*
Installed Directory: /usr/share/doc/alsa-plugins-1.0.13
945
Beyond Linux® From Scratch - Version 6.3
Short Descriptions
libasound_module_pcm_oss.so Allows native ALSA applications to run on OSS.
libasound_module_pcm_upmix.so Allows upmixing sound to 4 or 6 channels.
libasound_module_pcm_vdownmix.so Allows downmixing sound from 4-6 channels to 2 channel
stereo output.
libasound_module_pcm_jack.so Allows native ALSA applications to work with jackd.
libasound_module_pcm_pulse.so Allows native ALSA applications to access a PulseAudio
sound daemon.
libasound_module_pcm_a52.so Converts S16 linear sound format to A52 compressed format
and sends it to an SPDIF output.
libasound_module_rate_samplerate.so Provides an external rate converter through
libsamplerate.
946
Beyond Linux® From Scratch - Version 6.3
ALSA Utilities-1.0.13
Introduction to ALSA Utilities
The ALSA Utilities package contains various utilities which are useful for controlling your sound card.
Package Information
• Download (HTTP): http://gd.tuwien.ac.at/opsys/linux/alsa/utils/alsa-utils-1.0.13.tar.bz2
• Download (FTP): ftp://ftp.alsa-project.org/pub/utils/alsa-utils-1.0.13.tar.bz2
• Download MD5 sum: dfe4bb5d3217f3ec662b172ce8397cf0
• Download size: 958 KB
• Estimated disk space required: 8.1 MB
• Estimated build time: 0.1 SBU
Required
ALSA Library-1.0.13
./configure &&
make
make install
Configuration Information
Use a bootscript to store the values at shutdown.
As the root user, install the init script /etc/rc.d/init.d/alsa included in the blfs-bootscripts-20080816
package.
make install-alsa
Note that all channels of your sound card are muted by default. You can use the alsamixer program from the ALSA
Utilities to change this. Use speaker-test to check that your settings have been applied correctly.
947
Beyond Linux® From Scratch - Version 6.3
The first time the alsactl program is run from the udev rule below, it will complain that there is no state in
/etc/asound.state. You can prevent this by running the following commands as the root user:
The volume settings will be restored from the saved state by Udev when the device is detected (during boot or when
plugged in for USB devices).
As the root user, install a new Udev rules file to create the audio device nodes and run the restore script:
All sound devices are not accessible for any user except root and members of the audio group. Add any users
that might use the sound devices to that group:
Note
You may need to log out and back in again to refresh your group memberships. 'su <username>' should
work as well.
Contents
Installed Programs: aconnect, alsaconf, alsactl, alsamixer, amidi, amixer, aplay, aplaymidi, arecord,
arecordmidi, aseqnet, aseqdump, iecset, and speaker-test
Installed Libraries: None
Installed Directories: None
Short Descriptions
aconnect is a utility for connecting and disconnecting two existing ports in the ALSA sequencer system.
alsaconf is a configuration tool which tries to detect the sound cards on your system and write a suitable
configuration file for ALSA. This program is incompatible with udev and hotplug.
alsactl is used to control advanced settings for the ALSA sound card drivers.
alsamixer is an ncurses-based mixer program for use with the ALSA sound card drivers.
amidi is used to read from and write to ALSA RawMIDI ports.
amixer allows command-line control of the mixers for the ALSA sound card drivers.
aplay is a command-line soundfile player for the ALSA sound card drivers.
aplaymidi is a command-line utility that plays the specified MIDI file(s) to one or more ALSA sequencer
ports.
948
Beyond Linux® From Scratch - Version 6.3
arecord is a command-line soundfile recorder for the ALSA sound card drivers.
arecordmidi is a command-line utility that records a standard MIDI file from one or more ALSA sequencer
ports.
aseqdump is a command-line utility that prints the sequencer events it receives as text.
aseqnet is an ALSA sequencer client which sends and receives event packets over a network.
iecset is a small utility to set or dump the IEC958 (or so-called “S/PDIF”) status bits of the specified
sound card via the ALSA control API.
speaker-test is a command-line speaker test tone generator for ALSA.
949
Beyond Linux® From Scratch - Version 6.3
ALSA Tools-1.0.13
Introduction to ALSA Tools
The ALSA Tools package contains advanced tools for certain sound cards.
Note
The ALSA Tools package has not been tested by the BLFS editors.
Package Information
• Download (HTTP): http://gd.tuwien.ac.at/opsys/linux/alsa/tools/alsa-tools-1.0.13.tar.bz2
• Download (FTP): ftp://ftp.alsa-project.org/pub/tools/alsa-tools-1.0.13.tar.bz2
• Download MD5 sum: 3f30a884848a21910195a3c77f1dbde2
• Download size: 1.4 MB
• Estimated disk space required: 14-17 MB depending on the tool being built
• Estimated build time: 0.1-0.5 SBU depending on the tool being built
Required
ALSA Library-1.0.13
Optional
pkg-config-0.22 and GTK+-2.10.13 or GTK+-1.2.10 (to build echomixer, envy24control and rmedigicontrol),
FLTK (to build hdspconf and hdspmixer), and Qt-3.3.8b (to build qlo10k1).
The ac3dec tool comes with a test suite, but it is not functional since it does not contain the reference results for
the dither_test program.
make install
950
Beyond Linux® From Scratch - Version 6.3
Contents
Installed Programs: ac3dec, extract_ac3, as10k1, dl10k1, echomixer, envy24control, hdspconf, hdsploader,
hdspmixer, init_audigy, init_audigy_eq10, init_live, lo10k1, ld10k1, ld10k1d,
mixartloader, pcxhrloader, qlo10k1, rmedigicontrol, cspctl, sbiload, sscape_ctl,
us428control, usx2yloader, and vxloader
Installed Library: liblo10k1.so
Installed Directories: /usr/share/applications, /usr/share/pixmaps, /usr/include/lo10k1, /usr/share/ld10k1,
and /usr/share/sounds
Short Descriptions
ac3dec is a free AC-3 stream decoder.
extract_ac3 will take an MPEG-2 stream and produce AC-3 audio to stdout if it exists.
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.
echomixer is the Linux equivalent of the Echoaudio console application from Echoaudio. It is a tool to
control all the features of any Echoaudio soundcard. This includes clock sources, input and
output gains, mixers, etc.
envy24control is a control tool for Envy24 (ice1712) based sound cards.
hdspconf is a GUI to control the Hammerfall HDSP Alsa Settings. Up to four hdsp cards are supported.
hdsploader is used to load the firmware required by the Hammerfall HDSP sound cards.
hdspmixer is the Linux equivalent of the Totalmix application from RME. It is a tool to control the
advanced routing features of the RME Hammerfall DSP soundcard series.
ld10k1 is the server of a EMU10K{1,2} patch loader for ALSA.
lo10k1 is the client of a EMU10K{1,2} patch loader for ALSA.
dl10k1 loads config dumps generated by lo10k1 and ld10k1.
ld10k1d is an init script for the ld10k1 patch loader.
qlo10k1 is a Qt GUI for the ld10k1 patch loader.
mixartloader is a helper program to load the firmware binaries onto the Digigram's miXart board sound
drivers. The following modules require this program: snd-mixart. These drivers don't work
properly at all until the certain firmwares are loaded, i.e. no PCM nor mixer devices will
appear.
pcxhrloader is a helper program to load the firmware binaries onto Digigram's pcxhr compatible board
sound drivers. The following modules require this program: snd-pcxhr. These drivers don't
work properly at all until the certain firmwares are loaded, i.e. no PCM nor mixer devices
will appear.
rmedigicontrol is a control tool for RME Digi32 and RME Digi96 sound cards. It provides a graphical
frontend for all the sound card controls and switches.
cspctl is an SB16/AWE32 Creative Signal Processor (ASP/CSP) control program.
sbiload is an OPL2/3 FM instrument loader for the ALSA sequencer.
sscape_ctl is an ALSA SoundScape control utility.
951
Beyond Linux® From Scratch - Version 6.3
952
Beyond Linux® From Scratch - Version 6.3
ALSA Firmware-1.0.13
Introduction to ALSA Firmware
The ALSA Firmware package contains firmware for certain sound cards.
Note
The ALSA Firmware package has not been tested by the BLFS editors.
Package Information
• Download (HTTP): http://gd.tuwien.ac.at/opsys/linux/alsa/firmware/alsa-firmware-1.0.13.tar.bz2
• Download (FTP): ftp://ftp.alsa-project.org/pub/firmware/alsa-firmware-1.0.13.tar.bz2
• Download MD5 sum: 97de41a923e68c3d6c52c14f1a2843df
• Download size: 2.7 MB
• Estimated disk space required: 27.2 MB
• Estimated build time: less than 0.1 SBU
Optional
AS31 (for rebuilding the firmware from source)
make install
Contents
Installed Programs: None
Installed Libraries: None
Installed Directory: /lib/firmware and/or /usr/share/alsa/firmware
953
Beyond Linux® From Scratch - Version 6.3
ALSA OSS-1.0.12
Introduction to ALSA OSS
The ALSA OSS package contains the ALSA OSS compatibility library. This is used by programs which wish to use
the ALSA OSS sound interface.
Note
The ALSA OSS package has not been tested by the BLFS editors.
Package Information
• Download (HTTP): http://gd.tuwien.ac.at/opsys/linux/alsa/oss-lib/alsa-oss-1.0.12.tar.bz2
• Download (FTP): ftp://ftp.alsa-project.org/pub/oss-lib/alsa-oss-1.0.12.tar.bz2
• Download MD5 sum: d4d18bbf63a866d6e065b90e16acd676
• Download size: 231 KB
• Estimated disk space required: 3.3 MB
• Estimated build time: less than 0.1 SBU
Contents
Installed Program: aoss
Installed Libraries: libalsatoss.{so,a}, libaoss.{so,a}, and libossredir.a
Installed Directories: None
954
Beyond Linux® From Scratch - Version 6.3
Short Descriptions
aoss is a simple wrapper script which facilitates the use of the ALSA OSS compatibility library. It just sets the
appropriate LD_PRELOAD path and then runs the command.
955
Beyond Linux® From Scratch - Version 6.3
aRts-1.5.9
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.5.9 portion of the KDE installation instructions.
956
Beyond Linux® From Scratch - Version 6.3
Audio File-0.2.6
Introduction to Audio File
The Audio File package contains the audio file libraries and two sound file support programs. These are useful to
support basic sound file formats.
Package Information
• Download (HTTP): http://www.68k.org/~michael/audiofile/audiofile-0.2.6.tar.gz
•
• Download MD5 sum: 9c1049876cd51c0f1b12c2886cce4d42
• Download size: 374 KB
• Estimated disk space required: 8.5 MB
• Estimated build time: 0.23 SBU
make install
Contents
Installed Programs: audiofile-config, sfinfo, and sfconvert
Installed Library: libaudiofile.{so,a}
Installed Directories: None
Short Descriptions
audiofile-config is used during the compile process by programs linking to this library.
sfinfo displays the sound file format, audio encoding, sampling rate and duration for audio
formats supported by this library.
sfconvert converts sound file formats where the original format and destination format are
supported by this library.
libaudiofile.{so,a} contains functions used by programs to support AIFF, AIFF-compressed, Sun/NeXT,
WAV and BIC audio formats.
957
Beyond Linux® From Scratch - Version 6.3
EsounD-0.2.37
Introduction to EsounD
The EsounD package contains the Enlightened Sound Daemon. This is useful for mixing together several digitized
audio streams for playback by a single device.
Package Information
• Download (HTTP): http://ftp.gnome.org/pub/gnome/sources/esound/0.2/esound-0.2.37.tar.bz2
• Download (FTP): ftp://ftp.gnome.org/pub/gnome/sources/esound/0.2/esound-0.2.37.tar.bz2
• Download MD5 sum: 99cc68770176c8940cf346f60208420e
• Download size: 383 KB
• Estimated disk space required: 5 MB
• Estimated build time: 0.2 SBU
EsounD Dependencies
Required
Audio File-0.2.6
Optional
ALSA-1.0.13, aRts-1.5.9, TCP Wrapper-7.6, and DocBook-utils-0.6.14
Installation of EsounD
Install EsounD by running the following commands:
Command Explanations
sed -i '...': This appends the version string to the documentation installation directory.
--sysconfdir=/etc: This switch puts configuration files in /etc instead of /usr/etc.
Configuring EsounD
Config Files
/etc/esd.conf
958
Beyond Linux® From Scratch - Version 6.3
Configuration Information
Instructions and information about the configuration file is located in the TIPS file in the EsounD source directory.
Contents
Installed Programs: esd, esdcat, esdctl, esd-config, esddsp, esdfilt, esdloop, esdmon, esdplay, esdrec, and
esdsample
Installed Libraries: libesd.{so,a} and libesddsp.{so,a}
Installed Directory: /usr/share/doc/esound-0.2.37
Short Descriptions
esd is the Enlightened Sound Daemon.
esd-config is used by configure to determine the compiler and linker flags that should be used to compile
and link programs that use EsounD.
esdcat plays a RAW audio stream through the daemon.
esdctl controls certain aspects of the sound daemon.
esdfilt is an EsoundD filter.
esdloop is test scaffolding for sample cache, loop and free.
esdmon outputs the mixed stream from the daemon.
esdplay plays the named file on EsoundD.
esdrec outputs from the sound device's current input.
esdsample is test scaffolding for sample cache, playback, and free.
libesd.{so,a} contains functions used by the EsounD programs as well as other programs to read, write and
play various sound format files.
959
Beyond Linux® From Scratch - Version 6.3
SDL-1.2.11
Introduction to SDL
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.
Package Information
• Download (HTTP): http://www.libsdl.org/release/SDL-1.2.11.tar.gz
•
• Download MD5 sum: 418b42956b7cd103bfab1b9077ccc149
• Download size: 2.7 MB
• Estimated disk space required: 23 MB
• Estimated build time: 0.8 SBU
SDL Dependencies
Optional
Installation of SDL
This package (unfortunately) expects the X Window system to be installed in the /usr/X11R6 directory. If you're
using a recent version of Xorg and it is installed in any other location, ensure you have followed the instructions in
the Creating an X11R6 Compatibility Symlink section.
Install SDL by running the following commands:
Testing SDL
It is advisable to test the installation of SDL using the included test programs. It is not required to install any of the
resulting binaries to validate the installation. Issue the following commands to build the test programs:
cd test &&
./configure &&
make
960
Beyond Linux® From Scratch - Version 6.3
Configuring SDL
Configuration Information
As with most libraries, there is no configuration to do, save that the library directory, i.e., /opt/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
Installed Program: sdl-config
Installed Libraries: libSDL*.{so,a}
Installed Directories: /usr/include/SDL and /usr/share/doc/SDL-1.2.11
Short Descriptions
sdl-config determines the compile and linker flags that should be used to compile and link programs
that use libSDL.
libSDL*.{so,a} libraries provide low level access to audio, keyboard, mouse, joystick, 3D hardware via
OpenGL, and 2D frame buffer across multiple platforms.
961
Beyond Linux® From Scratch - Version 6.3
Libao-0.8.8
Introduction to Libao
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), ALSA (Advanced
Linux Sound Architecture), NAS (Network Audio system), aRTS (analog Real-Time Synthesizer and PulseAudio
(next generation GNOME sound architecture).
Package Information
• Download (HTTP): http://downloads.xiph.org/releases/ao/libao-0.8.8.tar.gz
• Download (FTP): ftp://ftp.linux.ee/pub/gentoo/distfiles/distfiles/libao-0.8.8.tar.gz
• Download MD5 sum: b92cba3cbcf1ee9bc221118a85d23dcd
• Download size: 405 KB
• Estimated disk space required: 4 MB
• Estimated build time: 0.1 SBU
Libao Dependencies
Optional
X Window System, EsounD-0.2.37, ALSA-1.0.13, aRts-1.5.9, NAS-1.9, and PulseAudio (requires atomic_ops)
Installation of Libao
Install libao by running the following commands:
./configure --prefix=/usr &&
make
This package does not come with a test suite.
Now, as the root user:
make install &&
install -v -m644 README /usr/share/doc/libao-0.8.8
Configuring Libao
Config Files
/etc/libao.conf and ~/.libao
Configuration Information
Currently, the only configuration option available is setting the default output device. Issue man libao.conf for details.
Contents
Installed Programs: None
Installed Libraries: libao.{so,a} and plugins
Installed Directories: /usr/include/ao, /usr/lib/ao and /usr/share/doc/libao-0.8.8
962
Beyond Linux® From Scratch - Version 6.3
Short Descriptions
libao.{so,a} provide functions for programs wishing to output sound over supported platforms.
963
Beyond Linux® From Scratch - Version 6.3
libogg-1.1.3
Introduction to libogg
The libogg package contains the Ogg file structure. This is useful for creating (encoding) or playing (decoding) a
single physical bit stream.
Package Information
• Download (HTTP): http://downloads.xiph.org/releases/ogg/libogg-1.1.3.tar.gz
•
• Download MD5 sum: eaf7dc6ebbff30975de7527a80831585
• Download size: 403 KB
• Estimated disk space required: 3.6 MB
• Estimated build time: less than 0.1 SBU
Installation of libogg
Install libogg by running the following commands:
make install
Contents
Installed Programs: None
Installed Library: libogg.{so,a}
Installed Directories: /usr/include/ogg and /usr/share/doc/libogg-1.1.3
Short Descriptions
libogg.{so,a} libraries provide the functions required for programs to read or write Ogg formatted bit streams.
964
Beyond Linux® From Scratch - Version 6.3
libvorbis-1.2.0
Introduction to libvorbis
The libvorbis package contains a general purpose audio and music encoding format. This is useful for creating
(encoding) and playing (decoding) sound in an open (patent free) format.
Package Information
• Download (HTTP): http://downloads.xiph.org/releases/vorbis/libvorbis-1.2.0.tar.bz2
•
• Download MD5 sum: 7c6e409d7aa1fa8a5481dea571d5bde0
• Download size: 1.2 MB
• Estimated disk space required: 18 MB
• Estimated build time: 0.2 SBU
Additional Downloads
• Required Patch: http://www.linuxfromscratch.org/patches/blfs/6.3/libvorbis-1.2.0-security_fixes-1.patch
libvorbis Dependencies
Required
libogg-1.1.3
Optional
pkg-config-0.22, and libxslt-1.1.22 and PassiveTeX (to build the PDF documentation)
Installation of libvorbis
Install libvorbis by running the following commands:
patch -Np1 -i ../libvorbis-1.2.0-security_fixes-1.patch &&
./configure --prefix=/usr &&
make
This package does not come with a test suite.
Now, as the root user:
make install &&
install -v -m644 doc/Vorbis* /usr/share/doc/libvorbis-1.2.0
Command Explanations
--enable-docs: This switch enables building the documentation.
Contents
Installed Programs: None
Installed Libraries: libvorbis.{so,a}, libvorbisenc.{so,a}, and libvorbisfile.{so,a}
Installed Directories: /usr/include/vorbis and /usr/share/doc/libvorbis-1.2.0
965
Beyond Linux® From Scratch - Version 6.3
Short Descriptions
libvorbis*.{so,a} libraries provide the functions to read and write sound files.
966
Beyond Linux® From Scratch - Version 6.3
FAAC-1.26
Introduction to FAAC
FAAC is an encoder for a lossy sound compression scheme specified in MPEG-2 Part 7 and MPEG-4 Part 3 standards
and known as Advanced Audio Coding (AAC). This encoder is useful for producing files that can be played back on
iPod. Moreover, iPod does not understand other sound compression schemes in video files.
Package Information
• Download (HTTP): http://downloads.sourceforge.net/faac/faac-1.26.tar.gz
•
• Download MD5 sum: 1d7c019bd2dbb4f3101b8937ebc59cf6
• Download size: 392 KB
• Estimated disk space required: 33 MB
• Estimated build time: 0.6 SBU
FAAC Dependencies
Optional
libmp4v2 from mpeg4ip (untested, as of 2007-09-28, development of the project is stopped; an internal version of
the library is used if the external one is not found).
Installation of FAAC
Install FAAC by running the following commands:
./bootstrap &&
sed -i -e '/obj-type/d' -e '/Long Term/d' frontend/main.c &&
./configure --prefix=/usr &&
make
This package does not come with a test suite. However, basic functionality can be tested by encoding a sample WAV
file (the sample file is installed by the ALSA Utilities-1.0.13 package:
Then, decode the result using the faad program from the FAAD2-2.6.1 package and play back the decoded file
(requires the aplay program from the ALSA Utilities-1.0.13 package:
faad Front_Left.mp4
aplay Front_Left.wav
aplay should identify the file as “Signed 16 bit Little Endian, Rate 48000 Hz, Stereo”, and you should hear the words
“front left”.
Now, as the root user:
make install
967
Beyond Linux® From Scratch - Version 6.3
Command Explanations
./bootstrap: This command runs GNU Autotools to create the configure script and other required build files.
sed -i ...: This command removes documentation for the --obj-type parameter from the faac --long-help
command output. This parameter is already disabled in FAAC-1.26 due to sound quality issues with object types
other than “Low Complexity”.
--enable-drm: This option is supposed to enable support for encoding files for Digital Radio Mondiale, but
actually breaks the base functionality of the package (e.g., the resulting faac program produces files that cannot be
decoded by FAAD2-2.6.1, even if compiled with DRM support). Don't use it.
Contents
Installed Program: faac
Installed Libraries: libfaac.{so,a} and libmp4v2.{so,a}
Installed Directories: None
Short Descriptions
faac is a command-line AAC encoder.
libfaac.{so,a} contains functions for encoding AAC streams.
libmp4v2.{so,a} contains functions for creating and manipulating MP4 files.
968
Beyond Linux® From Scratch - Version 6.3
FAAD2-2.6.1
Introduction to FAAD2
FAAD2 is a decoder for a lossy sound compression scheme specified in MPEG-2 Part 7 and MPEG-4 Part 3 standards
and known as Advanced Audio Coding (AAC).
Package Information
• Download (HTTP): http://downloads.sourceforge.net/faac/faad2-2.6.1.tar.gz
•
• Download MD5 sum: 74e92df40c270f216a8305fc87603c8a
• Download size: 820 KB
• Estimated disk space required: 15 MB (without media player plugins)
• Estimated build time: 0.3 SBU (without media player plugins)
Additional Downloads
• Sample AAC file: http://www.nch.com.au/acm/sample.aac (7 KB)
FAAD2 Dependencies
Optional (to build corresponding AAC plugins)
XMMS-1.2.10 and mpeg4ip (both are untested, and both projects are dead).
Installation of FAAD2
Install FAAD2 by running the following commands:
./bootstrap &&
./configure --prefix=/usr &&
make
This package does not come with a test suite. However, basic functionality can be tested by decoding the sample
AAC file:
./frontend/faad -o sample.wav ../sample.aac
This should display a copyright message and the following information about the sample file:
sample.aac file info:
ADTS, 4.608 sec, 13 kbps, 16000 Hz
---------------------
| Config: 2 Ch |
---------------------
| Ch | Position |
---------------------
| 00 | Left front |
| 01 | Right front |
---------------------
969
Beyond Linux® From Scratch - Version 6.3
Now play the result (requires the aplay program from the ALSA Utilities-1.0.13 package):
aplay sample.wav
aplay should identify the file as “Signed 16 bit Little Endian, Rate 16000 Hz, Stereo”, and you should hear some
piano notes.
Now, as the root user:
make install
Command Explanations
./bootstrap: This command runs GNU Autotools to create the configure script and other required build files.
--with-drm: This option is supposed to enable support for decoding Digital Radio Mondiale, but actually breaks
the base functionality of the package (e.g., the resulting faad program cannot decode the sample AAC file linked
above). Don't use it.
Contents
Installed Program: faad
Installed Library: libfaad.{so,a}
Installed Directories: None
Short Descriptions
faad is a command-line utility for decoding AAC and MP4 files.
libfaad.{so,a} contains functions for decoding AAC streams.
970
Beyond Linux® From Scratch - Version 6.3
NAS-1.9
Introduction to NAS
The Network Audio System is a network transparent, client/server audio transport system used to read , write and
play audio files in many formats including .au, .snd, .voc, .wav, .aiff, .aif and .iff. It can be described
as the audio equivalent of an X server.
There may be a more recent release available from the NAS home page. You can check http://nas.codebrilliance.
com/ and probably use the existing BLFS instructions. Note that versions other than the one shown in the download
URLs have not been tested in a BLFS environment.
Package Information
• Download (HTTP): http://downloads.sourceforge.net/nas/nas-1.9.src.tar.gz
• Download (FTP): ftp://anduin.linuxfromscratch.org/BLFS/6.3/n/nas-1.9.src.tar.gz
• Download MD5 sum: aac031fae04f53bcd1e033b380b1b29d
• Download size: 1.4 MB
• Estimated disk space required: 18 MB
• Estimated build time: 0.3 SBU
NAS Dependencies
Required
X Window System
Installation of NAS
This package (unfortunately) expects the X Window system to be installed in the /usr/X11R6 directory. If you're
using a recent version of Xorg and it is installed in any other location, ensure you have followed the instructions in
the Creating an X11R6 Compatibility Symlink section.
Install NAS by running the following commands:
xmkmf &&
make World
This package does not come with a test suite.
Now, as the root user:
make install install.man &&
install -v -m755 -d /usr/share/doc/nas-1.9/{html,pdf} &&
install -v -m644 doc/html/* /usr/share/doc/nas-1.9/html &&
install -v -m644 doc/pdf/* /usr/share/doc/nas-1.9/pdf &&
install -v -m644 doc/{README,actions,*.{ps,txt}} \
/usr/share/doc/nas-1.9
Command Explanations
xmkmf; make World: These commands use the standard for compiling X based applications.
971
Beyond Linux® From Scratch - Version 6.3
Configuring NAS
Config Files
/etc/nas/nasd.conf
Configuration Information
Create the NAS configuration file using the following command:
Edit the new configuration file to suit your network and system needs.
Boot Script
Note
The NAS server cannot run simultaneously with other sound servers, such as MAS or JACK.
make install-nas
The init script uses a default parameter to allow access to all hosts on the network. Review the nasd man page for
other available parameters if you need to modify the script.
Contents
Installed Programs: auconvert, auctl, audemo, audial, auedit, auinfo, aupanel, auphone, auplay, aurecord,
auscope, autool, auwave, checkmail, issndfile, nasd, playbucket, and soundtoh
Installed Library: libaudio.{so,a}
Installed Directory: /etc/nas, /usr/X11R6/include/audio and /usr/share/doc/nas-1.9
Short Descriptions
au{utilities} are a collection of tools to convert, play, edit, record, and manipulate sound files. See the
respective man page for each utility for a full description of each one.
checkmail plays a sound file when the user receives mail.
issndfile checks if a file is in a recognized audio file format.
nasd is the Network Audio System server daemon.
playbucket plays, or creates, the bucket corresponding to the specified file.
soundtoh converts a sound file to a C language header file.
libaudio.{so,a} contains API functions to read and write audio files.
972
Beyond Linux® From Scratch - Version 6.3
LibMPEG3-1.7
Introduction to LibMPEG3
LibMPEG3 supports advanced editing and manipulation of MPEG streams.
Package Information
• Download (HTTP): http://downloads.sourceforge.net/heroines/libmpeg3-1.7-src.tar.bz2
•
• Download MD5 sum: 4a3e8896164d59d7d0dff69b50b75352
• Download size: 320 KB
• Estimated disk space required: 12 MB
• Estimated build time: less than 0.1 SBU
Additional Downloads
• Required Patch: http://www.linuxfromscratch.org/patches/blfs/6.3/libmpeg3-1.7-makefile_mods-1.patch
LibMPEG3 Dependencies
Required
NASM-0.98.39
Installation of LibMPEG3
Install LibMPEG3 by running the following commands:
make install
Command Explanations
patch -Np1 -i ...: The patch modifies the Makefile so that everything is installed with the make install command
instead of just the executables being installed and manual commands used to install the library, interface headers and
documentation. The patch also fixes a syntax error in the Makefile.
./configure: This is not a typical Autotools script. It is only used to check for the availability of the NASM compiler.
Contents
Installed Programs: mpeg3cat, mpeg3dump, mpeg3peek and mpeg3toc
Installed Library: libmpeg3.a
Installed Directory: /usr/share/doc/libmpeg3-1.7
973
Beyond Linux® From Scratch - Version 6.3
Short Descriptions
mpeg3cat concatenates elementary streams or demultiplexes a program stream (separates components of the
stream).
mpeg3dump dumps information or extracts audio to a 24 bit PCM file.
mpeg3peek prints the byte offset of a given frame. It only works for video and requires a table of contents.
mpeg3toc creates a table of contents for a DVD or MPEG stream.
libmpeg3.a decodes several MPEG standards into uncompressed data suitable for editing and playback.
974
Beyond Linux® From Scratch - Version 6.3
libmad-0.15.1b
Introduction to libmad
libmad is a high-quality MPEG audio decoder capable of 24-bit output.
Package Information
• Download (HTTP): http://downloads.sourceforge.net/mad/libmad-0.15.1b.tar.gz
• Download (FTP): ftp://ftp.mars.org/pub/mpeg/libmad-0.15.1b.tar.gz
• Download MD5 sum: 1be543bc30c56fb6bea1d7bf6a64e66c
• Download size: 494 KB
• Estimated disk space required: 4.2 MB
• Estimated build time: 0.1 SBU
Installation of libmad
Install libmad by running the following commands:
./configure --prefix=/usr &&
make
This package does not come with a test suite.
Now, as the root user:
make install
Some packages check for the pkg-config file for libmad. This file is particularly needed so that Cdrdao can recognize
the installed libmad.
As the root user:
cat > /usr/lib/pkgconfig/mad.pc << "EOF"
prefix=/usr
exec_prefix=${prefix}
libdir=${exec_prefix}/lib
includedir=${prefix}/include
Name: mad
Description: MPEG audio decoder
Requires:
Version: 0.15.1b
Libs: -L${libdir} -lmad
Cflags: -I${includedir}
EOF
Contents
Installed Programs: None
Installed Library: libmad.{so,a}
Installed Directories: None
975
Beyond Linux® From Scratch - Version 6.3
Short Descriptions
libmad.{so,a} is a MPEG audio decoder library.
976
Beyond Linux® From Scratch - Version 6.3
libquicktime-1.0.0
Introduction to libquicktime
The libquicktime package contains the libquicktime library, various plugins and codecs, along with graphical
and command line utilities used for encoding and decoding Quicktime files. This is useful for reading and writing
files in the Quicktime format. The goal of the project is to enhance, while providing compatibility with, the Quicktime
4 Linux library.
Package Information
• Download (HTTP): http://downloads.sourceforge.net/libquicktime/libquicktime-1.0.0.tar.gz
• Download (FTP): ftp://ftp.linux.ee/pub/gentoo/distfiles/distfiles/libquicktime-1.0.0.tar.gz
• Download MD5 sum: 2f609e3ef5e760f44022f6c4b66d6a01
• Download size: 998 KB
• Estimated disk space required: 17 MB
• Estimated build time: 0.7 SBU (includes building all codec modules)
libquicktime Dependencies
Optional
pkg-config-0.22, libpng-1.2.29, libjpeg-6b, X Window System, GTK+-2.10.13, ALSA-1.0.13, libvorbis-1.2.0,
LAME-3.97, libdv-1.0.0, FFmpeg-svn_20070606, x264, FAAC-1.26, and FAAD2-2.6.1
Installation of libquicktime
Install libquicktime by running the following commands:
./configure --prefix=/usr &&
make
If you have Doxygen-1.5.2 installed and wish to create the API documentation, issue: doxygen.
This package does not come with a test suite.
Now, as the root user:
make install &&
install -v -m755 -d /usr/share/doc/libquicktime-1.0.0 &&
install -v -m644 README doc/{*.txt,*.html,mainpage.incl} \
/usr/share/doc/libquicktime-1.0.0
If you created the API documentation, install it by issuing the following commands as the root user:
install -v -m755 -d /usr/share/doc/libquicktime-1.0.0/api &&
install -v -m644 doc/html/* \
/usr/share/doc/libquicktime-1.0.0/api
Contents
Installed Programs: libquicktime_config, lqt-config, lqt_transcode, lqtplay, qt2text, qtdechunk, qtdump,
qtinfo, qtrechunk, qtstreamize and qtyuv4toyuv
Installed Libraries: libquicktime.so and several plugin codec libraries
Installed Directories: /usr/include/lqt, /usr/lib/libquicktime and /usr/share/doc/libquicktime-1.0.0
977
Beyond Linux® From Scratch - Version 6.3
Short Descriptions
libquicktime_config is a graphical front end to examine and configure the available libquicktime audio and
video codecs.
lqt-config is a simple program used to query the libquicktime installation settings and plugin
information.
lqt_transcode is a command-line program used to encode video and/or audio files from one format
to another.
lqtplay is a simple Quicktime movie player for X11.
qtdechunk can take movies containing rgb frames and write them out as ppm images.
qtrechunk concatenates input frames into a Quicktime movie.
qtyuv4toyuv is used to write a YUV4 encoded movie as a planar YUV 4:2:0 file.
libquicktime.so is a library for reading and writing Quicktime files. It provides convenient access to
Quicktime files with a variety of supported codecs. The library contains new functions
integrated with all the original Quicktime 4 Linux library functions used to encode
and decode Quicktime files.
978
Beyond Linux® From Scratch - Version 6.3
libFAME-0.9.1
Introduction to libFAME
libFAME is a fast (real-time) MPEG-1 as well as MPEG-4 rectangular and arbitrary shaped video encoding library.
Package Information
• Download (HTTP): http://downloads.sourceforge.net/fame/libfame-0.9.1.tar.gz
• Download (FTP): ftp://ftp.linux.ee/pub/gentoo/distfiles/distfiles/libfame-0.9.1.tar.gz
• Download MD5 sum: 880085761e17a3b4fc41f4f6f198fd3b
• Download size: 290 KB
• Estimated disk space required: 6.6 MB
• Estimated build time: 0.2 SBU
Additional Downloads
• Required Patch: http://www.linuxfromscratch.org/patches/blfs/6.3/libfame-0.9.1-gcc34-1.patch
Installation of libFAME
Install libFAME by running the following commands:
make install
Command Explanations
sed -i 's/$CC --version/$CC -dumpversion/' configure: This command causes the configure script to use a different
command to find out the version of the compiler. Without this command, the -fstrict-aliasing flag is not added to the
CFLAGS variable in the various Makefiles.
--enable-sse: This option is off by default and should be set on if your machine has SSE capability. One way
to find out if you have SSE is to issue cat /proc/cpuinfo and see if sse is listed in the flags.
Contents
Installed Programs: libfame-config
Installed Libraries: libfame.{so,a}
Installed Directories: None
Short Descriptions
libfame-config provides configuration information for libfame.
979
Beyond Linux® From Scratch - Version 6.3
980
Beyond Linux® From Scratch - Version 6.3
Speex-1.0.5
Introduction to Speex
Speex is an audio compression format designed especially for speech. It is well-adapted to Internet applications and
provides useful features that are not present in most other CODECs.
Package Information
• Download (HTTP): http://downloads.us.xiph.org/releases/speex/speex-1.0.5.tar.gz
•
• Download MD5 sum: 01d6a2de0a88a861304bf517615dea79
• Download size: 535 KB
• Estimated disk space required: 4.2 MB
• Estimated build time: 0.12 SBU
Speex Dependencies
Optional
libogg-1.1.3
Installation of Speex
Install Speex by running the following commands:
make install
Contents
Installed Programs: speexdec and speexenc
Installed Libraries: libspeex.{so,a}
Installed Directories: /usr/share/doc/speex-1.0.5
Short Descriptions
speexdec decodes a Speex file and produces a WAV or raw file.
speexenc encodes a WAV or raw files using Speex.
libspeex.{so,a} provides functions for the audio encoding/decoding programs.
981
Beyond Linux® From Scratch - Version 6.3
Id3lib-3.8.3
Introduction to Id3lib
id3lib is a library for reading, writing and manipulating ID3v1 and ID3v2 tags.
Package Information
• Download (HTTP): http://downloads.sourceforge.net/id3lib/id3lib-3.8.3.tar.gz
•
• Download MD5 sum: 19f27ddd2dda4b2d26a559a4f0f402a7
• Download size: 950 KB
• Estimated disk space required: 21 MB
• Estimated build time: 0.6 SBU
Additional Downloads
• Required patch: http://www.linuxfromscratch.org/patches/blfs/6.3/id3lib-3.8.3-test_suite-1.patch
Installation of Id3lib
Install id3lib by running the following commands:
Contents
Installed Programs: id3convert, id3cp, id3info, and id3tag
Installed Library: libid3.{so,a}
Installed Directories: /usr/include/id3 and /usr/share/doc/id3lib-3.8.3
Short Descriptions
id3convert converts between ID3v1/v2 tagging formats.
id3cp extracts ID3v1/v2 tags from digital audio files.
id3info prints ID3v1/v2 tag contents.
id3tag is an utility for editing ID3v1/v2 tags.
libid3.{so,a} provides functions for the ID3v1/v2 tag editing programs as well as other external programs
and libraries.
982
Beyond Linux® From Scratch - Version 6.3
FLAC-1.2.1
Introduction to FLAC
FLAC is an audio CODEC similar to MP3, but lossless, meaning that audio is compressed without losing any
information.
Package Information
• Download (HTTP): http://downloads.sourceforge.net/flac/flac-1.2.1.tar.gz
•
• Download MD5 sum: 153c8b15a54da428d1f0fadc756c22c7
• Download size: 1.9 MB
• Estimated disk space required: 205 MB (includes running the test suite)
• Estimated build time: 0.6 SBU (additional 8 SBU to run the test suite)
FLAC Dependencies
Optional
Installation of FLAC
Install FLAC by running the following commands:
To test the results, issue: make check. Note that if you passed the --enable-exhaustive-tests and
--enable-valgrind-testing parameters to configure and then run the test suite, it will take a very long time
(up to 300 SBUs) and use about 375 MB of disk space.
Now, as the root user:
make install
Command Explanations
--disable-thorough-tests: This parameter is used so that the test suite will complete in a reasonable amount
of time. Remove it if you desire more extensive tests.
--enable-sse: This option is off by default and should be set on if your machine has SSE capability. One way
to find out if you have SSE is to issue cat /proc/cpuinfo and see if sse is listed in the flags.
Contents
Installed Programs: flac and metaflac
Installed Libraries: libFLAC.{so,a}, libFLAC++.{so,a} and libxmms-flac.{so,a}
Installed Directories: /usr/include/FLAC, /usr/include/FLAC++ and /usr/share/doc/flac-1.2.1
983
Beyond Linux® From Scratch - Version 6.3
Short Descriptions
flac is a command-line utility for encoding, decoding and converting FLAC files.
metaflac is a program for listing, adding, removing, or editing metadata in one or more FLAC
files.
libFLAC{,++}.{so,a} these libraries provide native FLAC and Ogg FLAC C/C++ APIs for programs
utilizing FLAC.
libxmms-flac.{so,a} is a plugin for XMMS.
984
Beyond Linux® From Scratch - Version 6.3
libdvdcss-1.2.9
Introduction to libdvdcss
libdvdcss is a simple library designed for accessing DVDs as a block device without having to bother about the
decryption.
Package Information
• Download (HTTP): http://www.videolan.org/pub/libdvdcss/1.2.9/libdvdcss-1.2.9.tar.bz2
• Download (FTP): ftp://ftp.linux.ee/pub/gentoo/distfiles/distfiles/libdvdcss-1.2.9.tar.bz2
• Download MD5 sum: 553383d898826c285afb2ee453b07868
• Download size: 283 KB
• Estimated disk space required: 5 MB
• Estimated build time: less than 0.1 SBU
libdvdcss Dependencies
Installation of libdvdcss
Note
In certain circumstances the 'inputenc' package in the LaTeX installation may not work properly duing the
build, causing it to hang up. If this happens, issue quit at the LaTeX prompt and then issue the following
command at the shell prompt:
Now either resume the build, or start over. Disregard this note if you do not have a LaTeX package or
Doxygen installed.
If you have Doxygen and teTeX installed, HTML and Postscript documentation was created during the build. If you
also want to install a PDF version of the reference manual, issue the following command:
make install
985
Beyond Linux® From Scratch - Version 6.3
If you have Doxygen and teTeX installed, install the documentation using the following commands as the root user:
Contents
Installed Programs: None
Installed Library: libdvdcss.{so,a}
Installed Directories: /usr/include/dvdcss and /usr/share/doc/libdvdcss-1.2.9
Short Descriptions
libdvdcss.{so,a} provides the functionality that is required for transparent DVD access with CSS decryption.
986
Beyond Linux® From Scratch - Version 6.3
Libdvdread-0.9.7
Introduction to Libdvdread
libdvdread is a library which provides a simple foundation for reading DVDs.
Package Information
• Download (HTTP): http://www.dtek.chalmers.se/groups/dvd/dist/libdvdread-0.9.7.tar.gz
• Download (FTP): ftp://ftp.linux.ee/pub/gentoo/distfiles/distfiles/libdvdread-0.9.7.tar.gz
• Download MD5 sum: 078788c9241ae16763529e1235502337
• Download size: 389 KB
• Estimated disk space required: 9 MB
• Estimated build time: 0.1 SBU
Libdvdread Dependencies
Optional
libdvdcss-1.2.9
Installation of Libdvdread
Install libdvdread by running the following commands:
make install
Command Explanations
--with-libdvdcss: This switch is needed if you want libdvdread to link to the libdvdcss library so it can
read CSS encrypted DVDs. If you do not pass this switch, libdvdread will dlopen the libdvdcss library at runtime,
if it is available, in order to read CSS encrypted DVDs.
Contents
Installed Programs: None
Installed Libraries: libdvdread.{so,a}
Installed Directories: /usr/include/dvdread
Short Descriptions
libdvdread.{so,a} provides functionality required to access DVDs.
987
Beyond Linux® From Scratch - Version 6.3
Libdv-1.0.0
Introduction to Libdv
The Quasar DV Codec (libdv) is a software CODEC for DV video, the encoding format used by most digital
camcorders.
Package Information
• Download (HTTP): http://downloads.sourceforge.net/libdv/libdv-1.0.0.tar.gz
•
• Download MD5 sum: f895162161cfa4bb4a94c070a7caa6c7
• Download size: 574 KB
• Estimated disk space required: 7 MB
• Estimated build time: 0.2 SBU
Libdv Dependencies
Optional
popt-1.10.4, pkg-config-0.22, SDL-1.2.11, GTK+-1.2.10, and X Window System
Installation of Libdv
Install libdv by running the following commands:
Contents
Installed Programs: dubdv, dvconnect, encodedv, and playdv
Installed Library: libdv.{so,a}
Installed Directories: /usr/include/libdv and /usr/share/doc/libdv-1.0.0
Short Descriptions
dubdv inserts audio into a digital video stream.
dvconnect is a small utility to send or capture raw data from and to the camcorder.
encodedv encodes a series of images to a digital video stream.
playdv displays digital video streams on the screen.
libdv.{so,a} provides functions for programs interacting with the Quasar DV CODEC.
988
Beyond Linux® From Scratch - Version 6.3
Liba52-0.7.4
Introduction to Liba52
liba52 is a free library for decoding ATSC A/52 (also known as AC-3) streams. The A/52 standard is used in a variety
of applications, including digital television and DVD.
Package Information
• Download (HTTP): http://liba52.sourceforge.net/files/a52dec-0.7.4.tar.gz
•
• Download MD5 sum: caa9f5bc44232dc8aeea773fea56be80
• Download size: 236 KB
• Estimated disk space required: 2.5 MB
• Estimated build time: less than 0.1 SBU
Installation of Liba52
Install liba52 by running the following commands:
Contents
Installed Programs: a52dec and extract_a52
Installed Library: liba52.{so,a}
Installed Directories: /usr/include/a52dec and /usr/share/doc/liba52-0.7.4
Short Descriptions
a52dec plays ATSC A/52 audio streams.
extract_a52 extracts ATSC A/52 audio from an MPEG stream.
liba52.{so,a} provides functions for the programs dealing with ATSC A/52 streams.
989
Beyond Linux® From Scratch - Version 6.3
XviD-1.1.3
Introduction to XviD
XviD is an MPEG-4 compliant video CODEC.
Package Information
• Download (HTTP): http://downloads.xvid.org/downloads/xvidcore-1.1.3.tar.bz2
•
• Download MD5 sum: 29c60d4d991ac18f687a8fd13cfe64b7
• Download size: 625 KB
• Estimated disk space required: 9 MB
• Estimated build time: 0.2 SBU
XviD Dependencies
Optional
NASM-0.98.39
Installation of XviD
Install XviD by running the following commands:
cd build/generic &&
./configure --prefix=/usr &&
make
Command Explanations
ln -v -sf libxvidcore.so.4 /usr/lib/libxvidcore.so: This command makes applications linked against .so names,
link to .so.<MAJOR>. This ensures better binary compatibility, as XviD developers take care not changing the
<MAJOR> number until there is an incompatible ABI change.
990
Beyond Linux® From Scratch - Version 6.3
Contents
Installed Programs: None
Installed Library: libxvidcore.{so,a}
Installed Directory: /usr/share/doc/xvidcore-1.1.3
Short Descriptions
libxvidcore.{so,a} provides functions to encode and decode most MPEG-4 video data.
991
Beyond Linux® From Scratch - Version 6.3
Xine Libraries-1.1.12
Introduction to Xine Libraries
The xine Libraries 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.
Package Information
• Download (HTTP): http://downloads.sourceforge.net/xine/xine-lib-1.1.12.tar.bz2
• Download (FTP): ftp://ftp.linux.ee/pub/gentoo/distfiles/distfiles/xine-lib-1.1.12.tar.bz2
• Download MD5 sum: b7254614c78c8b0f1652b8dc06f80b3a
• Download size: 7.1 MB
• Estimated disk space required: 233 MB
• Estimated build time: 6.1 SBU
Required
X Window System and EsounD-0.2.37 or OSS or ALSA-1.0.13 or aRts-1.5.9 or PulseAudio or JACK
Recommended
pkg-config-0.22 and FFmpeg-svn_20070606
Optional
AAlib-1.4rc5, libmng-1.0.9, SDL-1.2.11, libFAME-0.9.1, libvorbis-1.2.0, Speex-1.0.5, GNOME Virtual File
System-2.18.1, FLAC-1.2.1, Samba-3.0.30, ImageMagick-6.3.5-10, DirectFB, Theora, libcaca, libmodplug, libcdio,
VCDImager, libmpcdec, WavPack, libdxr3, sgmltools-lite, and Transfig
The developers recommended that you use the internal source tree versions of liba52-0.7.4, libdts (now libdca),
libdvdnav, and libmad-0.15.1b and not system-installed versions.
make install
Command Explanations
--enable-static: This switch is used to enable building the static library as some programs link against it.
992
Beyond Linux® From Scratch - Version 6.3
--with-external-ffmpeg: This switch enables use of an external FFmpeg library. The internaly built library
produces poor resuts with some video files.
--docdir=/usr/share/xine-lib-1.1.12: This switch causes the documentation to be installed into a
versioned instead of the default /usr/share/doc/xine-lib.
Contents
Installed Program: xine-config
Installed Libraries: libxine.{a,so} and numerous plugin modules and video extensions
Installed Fonts: Output display engine fonts located in /usr/share/xine/libxine1/fonts
Installed Directories: /usr/include/xine, /usr/lib/xine, /usr/share/xine, and /usr/share/doc/xine-lib-1.1.12
Short Descriptions
xine-config provides information to programs trying to link with the xine libraries.
libxine.so provides the API for processing audio/video files.
993
Beyond Linux® From Scratch - Version 6.3
Libmikmod-3.1.11
Introduction to Libmikmod
libmikmod is a sound library capable of playing audio samples as well as tracker modules. Supported module formats
include MOD, S3M, XM, IT, MED, MTM and 669.
Package Information
• Download (HTTP): http://mikmod.raphnet.net/files/libmikmod-3.1.11.tar.gz
• Download (FTP): ftp://ftp.linux.ee/pub/gentoo/distfiles/distfiles/libmikmod-3.1.11.tar.gz
• Download MD5 sum: 705106da305e8de191549f1e7393185c
• Download size: 604 KB
• Estimated disk space required: 9.9 MB
• Estimated build time: 0.3 SBU
Additional Downloads
• Recommended Patch: http://mikmod.raphnet.net/files/libmikmod-3.1.11-a.diff
Libmikmod Dependencies
Optional
ALSA-1.0.13, EsounD-0.2.37, libGUS, AFlib and SAM9407 driver
Installation of Libmikmod
Install libmikmod by running the following commands:
patch -Np1 -i ../libmikmod-3.1.11-a.diff &&
sed -i -e "s/VERSION=10/VERSION=11/" \
-e "s/sys_asoundlib/alsa_asoundlib/" \
-e "s/snd_cards/snd_card_load/g" \
-e "s|sys/asoundlib.h|alsa/asoundlib.h|g" \
-e "s/^LIBOBJS/#LIBOBJS/" \
configure.in &&
autoconf &&
./configure --prefix=/usr &&
make
Now, as the root user:
make install &&
chmod 755 /usr/lib/libmikmod.so.2.0.4 &&
install -v -m644 -D docs/mikmod.html \
/usr/share/doc/libmikmod-3.1.11/mikmod.html
Command Explanations
sed -i -e ...: This increments the package micro version and also modifies the ALSA header search routine so that the
package properly discovers the ALSA library. It also fixes a problem which makes autoconf fail.
994
Beyond Linux® From Scratch - Version 6.3
autoconf: This generates a new configure script, required because of the changes to configure.in.
Contents
Installed Program: libmikmod-config
Installed Library: libmikmod.{so,a}
Installed Directory: /usr/share/doc/libmikmod-3.1.11
Short Descriptions
libmikmod-config provides version information, compiler, and linker flags to programs that utilize
libmikmod.
libmikmod.{so,a} contains functions that are required to play various tracker module files.
995
Beyond Linux® From Scratch - Version 6.3
GStreamer-0.10.13
Introduction to GStreamer
The GStreamer package contains a streaming media framework that enables applications to share a common set of
plugins for things like video decoding and encoding, audio encoding and decoding, audio and video filters, audio
visualisation, Web streaming and anything else that streams in real-time or otherwise. It is modelled after research
software worked on at the Oregon Graduate Institute. After installing GStreamer, you'll likely need to install one
or more of the GStreamer Good Plug-ins-0.10.6, GStreamer Ugly Plug-ins-0.10.6, GStreamer Bad Plug-ins and
GStreamer FFmpeg plug-in packages.
Package Information
• Download (HTTP): http://gstreamer.freedesktop.org/src/gstreamer/gstreamer-0.10.13.tar.bz2
• Download (FTP): ftp://ftp.gnome.org/pub/gnome/sources/gstreamer/0.10/gstreamer-0.10.13.tar.bz2
• Download MD5 sum: 69b594b43e52e1d0eaf512a89c7b3137
• Download size: 1.9 MB
• Estimated disk space required: 72 MB
• Estimated build time: 1.5 SBU (includes building manuals and 0.5 SBU to run the test suite)
GStreamer Dependencies
Required
Optional
Check (required to run the unit regression tests), and Valgrind (optionally used during the unit regression tests)
Installation of GStreamer
Install GStreamer by running the following commands:
To test the results, issue: make check. There are many other Makefile targets you can specify for running the tests,
issue make -C tests/check help to see the complete list.
996
Beyond Linux® From Scratch - Version 6.3
if [ -d /usr/share/doc/gstreamer-0.10/faq/html ]; then
chown -v -R root:root \
/usr/share/doc/gstreamer-0.10/*/html
fi
If the command outputs a series of messages from fakesrc and fakesink, everything is okay.
Command Explanations
--enable-gtk-doc: Use this parameter if GTK-Doc is installed and you wish to rebuild the API documentation.
--enable-docbook: This parameter is used to build HTML, PDF and PostScript versions of the GStreamer User's
Manual, FAQ and Writer's Guide. Note that you must have all the listed dependencies installed.
chown -v -R root:root ...: The documentation is installed with ownerships of the user who untarred and built the
package. This command changes the ownerships of the installed documentation files to root:root and is only executed
if the documentation files were built and installed.
Contents
Installed Programs: gst-feedback{,-0.10}, gst-inspect{,-0.10}, gst-launch{,-0.10}, gst-typefind{,-0.10},
gst-xmllaunch{,-0.10} and gst-xmlinspect{,-0.10}
Installed Libraries: libgstbase-0.10.{so,a}, libgstcheck-0.10.{so,a}, libgstcontroller-0.10.{so,a},
libgstdataprotocol-0.10.{so,a}, libgstnet-0.10.{so,a}, libgstreamer-0.10.{so,a}, and
libgst*.{so,a} plugin modules
Installed Directories: /usr/include/gstreamer-0.10, /usr/lib/gstreamer-0.10, /usr/share/doc/gstreamer-0.10,
/usr/share/gtk-doc/html/gstreamer{,-libs,-plugins}-0.10
Short Descriptions
gst-feedback-0.10 generates debug info for GStreamer bug reports.
gst-inspect-0.10 prints information about a GStreamer plugin or element.
gst-launch-0.10 is a tool that builds and runs basic GStreamer pipelines.
gst-typefind-0.10 uses the GStreamer type finding system to determine the relevant GStreamer plugin
to parse or decode a file, and determine the corresponding MIME type.
gst-xmlinspect-0.10 prints information about a GStreamer plugin or element in XML document format.
997
Beyond Linux® From Scratch - Version 6.3
gst-xmllaunch-0.10 is used to build and run a basic GStreamer pipeline, loading it from an XML
description.
998
Beyond Linux® From Scratch - Version 6.3
Package Information
• Download (HTTP): http://gstreamer.freedesktop.org/src/gst-plugins-base/gst-plugins-base-0.10.13.tar.bz2
• Download (FTP): ftp://ftp.gnome.org/pub/gnome/sources/gst-plugins-base/0.10/gst-plugins-base-0.10.13.tar.bz2
• Download MD5 sum: 735f7b911cd00540d2bea8596a3859cd
• Download size: 1.5 MB
• Estimated disk space required: up to 72 MB (depends on what dependencies are installed)
• Estimated build time: up to 1.5 SBU (0.5 SBU to run the test suite)
Contents
Installed Programs: gst-visualise-0.10
Installed Libraries: libgst*.{so,a} and numerous GStreamer plugins
Installed Directories: /usr/include/gstreamer-0.10/gst/{too numerous to list} and
/usr/share/gtk-doc/html/gst-plugins-base-libs-0.10
999
Beyond Linux® From Scratch - Version 6.3
Short Descriptions
gst-visualise-0.10 is used to run a basic GStreamer pipeline to display a graphical visualisation of an audio
stream.
1000
Beyond Linux® From Scratch - Version 6.3
Package Information
• Download (HTTP): http://gstreamer.freedesktop.org/src/gst-plugins-good/gst-plugins-good-0.10.6.tar.bz2
• Download (FTP): ftp://ftp.gnome.org/pub/gnome/sources/gst-plugins-good/0.10/gst-plugins-good-0.10.6.tar.bz2
• Download MD5 sum: 25f111360c2930705b91b4fcf93ae5c5
• Download size: 1.5 MB
• Estimated disk space required: up to 85 MB (depends on which dependencies are installed)
• Estimated build time: up to 1.7 SBU
Required
Optional (Required for the GStreamer Backend in Totem-2.18.2, and Can be Used by Many Other GNOME
Applications)
GConf-2.18.0.1
Optional
AAlib-1.4rc5, cairo-1.4.14, libcdio (which can use CDParanoia-III-9.8, libcddb, and VCDImager), libavc1394
(requires libraw1394), libdv-1.0.0, EsounD-0.2.37, FLAC-1.2.1, GTK+-2.10.13 (required to build the examples),
HAL-0.5.9.1, libjpeg-6b, LADSPA, libcaca, libpng-1.2.29, libshout, Speex-1.0.5 (version >= 1.1.6 is preferred),
WavPack, TagLib, X Window System, Check (required to run the unit regression tests), and Valgrind (optionally
used during the unit regression tests)
./configure --prefix=/usr \
--sysconfdir=/etc/gnome/2.18.3 &&
make
To test the results, issue: make check. The “generic/states” test is known to fail on some platforms. There are many
other Makefile targets you can specify for running the tests, issue make -C tests/check help to see the complete list.
1001
Beyond Linux® From Scratch - Version 6.3
make install
If you did not rebuild the API documentation by passing --enable-gtk-doc to the configure script and you
wish to install the pre-built documentation, issue the following command as the root user:
Command Explanations
--sysconfdir=/etc/gnome/2.18.3: This parameter is used so that the GConf configuration files are
installed in the system-wide GNOME GConf database located in /etc/gnome/2.18.3/gconf instead of
/usr/etc. You may omit this parameter if you don't have GConf installed.
Contents
Installed Programs: None
Installed Libraries: Numerous GStreamer plugins
Installed Directories: /usr/share/gtk-doc/html/gst-plugins-good-plugins-0.10
1002
Beyond Linux® From Scratch - Version 6.3
Package Information
• Download (HTTP): http://gstreamer.freedesktop.org/src/gst-plugins-ugly/gst-plugins-ugly-0.10.6.tar.bz2
•
• Download MD5 sum: f1016148ecbfba968c0ef1773066988b
• Download size: 773 KB
• Estimated disk space required: up to 21 MB (depends on what dependencies are installed)
• Estimated build time: up to 0.4 SBU
Required
Optional
make install
If you did not rebuild the API documentation by passing --enable-gtk-doc to the configure script and you
wish to install the pre-built documentation, issue the following command as the root user:
1003
Beyond Linux® From Scratch - Version 6.3
Contents
Installed Programs: None
Installed Libraries: Several GStreamer plugins
Installed Directories: /usr/share/gtk-doc/html/gst-plugins-ugly-plugins-0.10
1004
Beyond Linux® From Scratch - Version 6.3
libmusicbrainz-2.1.5
Introduction to libmusicbrainz
The libmusicbrainz package contains a library which allows you to access the data held on the MusicBrainz server.
This is useful for adding MusicBrainz lookup capabilities to other applications.
MusicBrainz is a community music metadatabase that attempts to create a comprehensive music information site.
You can use the MusicBrainz data either by browsing the web site, or you can access the data from a client program
— for example, a CD player program can use MusicBrainz to identify CDs and provide information about the CD,
about the artist or other related information.
Package Information
• Download (HTTP): http://ftp.musicbrainz.org/pub/musicbrainz/libmusicbrainz-2.1.5.tar.gz
• Download (FTP): ftp://ftp.musicbrainz.org/pub/musicbrainz/libmusicbrainz-2.1.5.tar.gz
• Download MD5 sum: d5e19bb77edd6ea798ce206bd05ccc5f
• Download size: 524 KB
• Estimated disk space required: 12 MB
• Estimated build time: 0.4 SBU
libmusicbrainz Dependencies
Required
expat-2.0.1
Installation of libmusicbrainz
Install libmusicbrainz by running the following commands:
This package does not come with a stand-alone test suite (to test you must have Python installed and perform the
test after the package is installed).
Now, as the root user:
To test the Python bindings, issue the following: (cd python && python setup.py test).
1005
Beyond Linux® From Scratch - Version 6.3
If you built the Python bindings, issue the following commands as the root user to install them:
Contents
Installed Programs: None
Installed Library: libmusicbrainz.{so,a}
Installed Directories: /usr/include/musicbrainz and /usr/share/doc/libmusicbrainz-2.1.5
Short Descriptions
libmusicbrainz.{so,a} contains API functions to access the MusicBrainz database, both for looking up
data and also for submitting new data.
1006
Beyond Linux® From Scratch - Version 6.3
libmpeg2-0.4.1
Introduction to libmpeg2
The libmpeg2 package contains a library for decoding MPEG-2 and MPEG-1 video streams. The library is able to
decode all MPEG streams that conform to certain restrictions: “constrained parameters” for MPEG-1, and “main
profile” for MPEG-2. This is useful for programs and applications needing to decode MPEG-2 and MPEG-1 video
streams.
Package Information
• Download (HTTP): http://libmpeg2.sourceforge.net/files/mpeg2dec-0.4.1.tar.gz
• Download (FTP): ftp://ftp.linux.ee/pub/gentoo/distfiles/distfiles//mpeg2dec-0.4.1.tar.gz
• Download MD5 sum: 7631b0a4bcfdd0d78c0bb0083080b0dc
• Download size: 494 KB
• Estimated disk space required: 7 MB
• Estimated build time: 0.2 SBU
libmpeg2 Dependencies
Optional
Installation of libmpeg2
Install libmpeg2 by running the following commands:
To test the results, issue: make check. To perform a more comprehensive regression test, see the file test/README
in the source tree.
Now, as the root user:
Command Explanations
--enable-shared: This parameter forces building shared versions of the libraries as well as the static versions.
Contents
Installed Programs: corrupt_mpeg2, extract_mpeg2 and mpeg2dec
Installed Libraries: libmpeg2.{so,a} and libmpeg2convert.{so,a}
Installed Directories: /usr/include/mpeg2dec and /usr/share/doc/mpeg2dec-0.4.1
1007
Beyond Linux® From Scratch - Version 6.3
Short Descriptions
extract_mpeg2 extracts MPEG video streams from a multiplexed stream.
mpeg2dec decodes MPEG1 and MPEG2 video streams.
libmpeg2.{so,a} contains API functions used to decode MPEG video streams.
libmpeg2convert.{so,a} contains API functions used for color conversions of MPEG video streams.
1008
Beyond Linux® From Scratch - Version 6.3
1009
Beyond Linux® From Scratch - Version 6.3
Mpg123-1.4.2
Introduction to Mpg123
The mpg123 package contains a console-based MP3 player. It claims to be the fastest MP3 decoder for Unix.
Package Information
• Download (HTTP): http://downloads.sourceforge.net/mpg123/mpg123-1.4.2.tar.bz2
•
• Download MD5 sum: c571594e81e15c9d5cafe1bb3fdc3386
• Download size: 1.0 MB
• Estimated disk space required: 9.4 MB
• Estimated build time: 0.3 SBU
Mpg123 Dependencies
Required
ALSA Library-1.0.13
Installation of Mpg123
Install mpg123 by running the following commands:
make install
Contents
Installed Program: mpg123
Installed Libraries: libmpg123.so, output_alsa.so, output_arts.so, output_esd.so, and output_oss.so
Installed Directories: /usr/lib/mpg123
Short Descriptions
mpg123 is used for playing MP3 files via the console.
1010
Beyond Linux® From Scratch - Version 6.3
Vorbis Tools-1.2.0
Introduction to Vorbis Tools
The Vorbis Tools package contains command-line tools for Ogg audio files. This is useful for encoding, playing or
editing files using the Ogg CODEC.
Package Information
• Download (HTTP): http://downloads.xiph.org/releases/vorbis/vorbis-tools-1.2.0.tar.gz
•
• Download MD5 sum: df976d24e51ef3d87cd462edf747bf9a
• Download size: 1.0 MB
• Estimated disk space required: 7 MB
• Estimated build time: 0.2 SBU
Required
libvorbis-1.2.0
libao-0.8.8
Optional
./configure --prefix=/usr \
--enable-vcut \
--without-curl &&
make
make install
Command Explanations
--enable-vcut: This parameter is used so that the vcut program is built as it is not by default.
--without-curl: This parameter disables HTTP streaming in ogg123. Remove this parameter if you have cURL
installed.
1011
Beyond Linux® From Scratch - Version 6.3
Configuration Information
Issue man libao.conf for information about setting the default output device. Also see
/usr/share/doc/vorbis-tools-1.1.1/ogg123rc-example.
Contents
Installed Programs: ogg123, oggdec, oggenc, ogginfo, vcut, and vorbiscomment
Installed Libraries: None
Installed Directory: /usr/share/doc/vorbis-tools-1.2.0
Short Descriptions
ogg123 is a command-line audio player for Ogg Vorbis streams.
oggdec is a simple decoder which converts Ogg Vorbis files into PCM audio files (WAV or raw).
oggenc is an encoder that turns raw, WAV or AIFF files into an Ogg Vorbis stream.
ogginfo prints information stored in an audio file.
vcut will split a file into two files at a designated cut point.
vorbiscomment is an editor that changes information in the audio file metadata tags.
1012
Beyond Linux® From Scratch - Version 6.3
XMMS-1.2.10
Introduction to XMMS
XMMS is an audio player for the X Window System.
Package Information
• Download (HTTP): http://www.xmms.org/files/1.2.x/xmms-1.2.10.tar.bz2
• Download (FTP): ftp://ftp.linux.ee/pub/gentoo/distfiles/distfiles/xmms-1.2.10.tar.bz2
• Download MD5 sum: 03a85cfc5e1877a2e1f7be4fa1d3f63c
• Download size: 2.4 MB
• Estimated disk space required: 55 MB
• Estimated build time: 0.84 SBU
Additional Downloads
• Required patch: http://www.linuxfromscratch.org/patches/blfs/6.3/xmms-1.2.10-gcc4-1.patch
XMMS Dependencies
Required
GTK+-1.2.10
Optional
Installation of XMMS
Install XMMS by running the following commands:
Configuring XMMS
Config Files
~/.xmms/config
1013
Beyond Linux® From Scratch - Version 6.3
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
Installed Programs: xmms, xmms-config, and wmxmms
Installed Libraries: libxmms.{so,a} and numerous input, output, effects, and general plugins
Installed Directories: /usr/include/xmms, /usr/lib/xmms, /usr/share/xmms and /usr/share/doc/xmms-1.2.10
Short Descriptions
xmms (an acronym for X MultiMedia System) is a program comparable in function with WinAMP.
Its 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. Its look can be customized with WinAMP
style skins.
xmms-config is used by other programs which need to link with xmms to retrieve the library and include
paths.
wmxmms is a dock applet for the Window Maker window manager. From the applet you can start and
control xmms.
libxmms.{so,a} contains graphics and playback functions used by xmms. These functions can also be utilized
by other packages.
1014
Beyond Linux® From Scratch - Version 6.3
LAME-3.97
Introduction to LAME
The LAME package contains an MP3 encoder and optionally, an MP3 frame analyzer. This is useful for creating
and analyzing compressed audio files.
Package Information
• Download (HTTP): http://downloads.sourceforge.net/lame/lame-3.97.tar.gz
•
• Download MD5 sum: 90a4acbb730d150dfe80de145126eef7
• Download size: 1.3 MB
• Estimated disk space required: 18 MB
• Estimated build time: 0.4 SBU
LAME Dependencies
Optional
GTK+-1.2.10, NASM-0.98.39, libsndfile (support is currently broken), Electric Fence and Dmalloc
Installation of LAME
Install LAME by running the following commands:
make install
Command Explanations
--enable-mp3rtp: Builds the encode-to-RTP program.
--enable-mp3x: Builds the mp3x frame analyzer program (requires GTK+).
Contents
Installed Programs: lame, mp3rtp, and optionally, mp3x
Installed Library: libmp3lame.{so,a}
Installed Directories: /usr/include/lame and /usr/share/doc/lame
Short Descriptions
lame creates MP3 audio files from raw PCM or .wav data.
mp3rtp is used to encode MP3 with RTP streaming of the output.
1015
Beyond Linux® From Scratch - Version 6.3
mp3x is a GTK based graphical MP3 frame analyzer used for debugging, development and
studying MP3 frames produced by any encoder.
libmp3lame.{so,a} libraries provide the functions necessary to convert raw PCM and WAV files to MP3
files.
1016
Beyond Linux® From Scratch - Version 6.3
CDParanoia-III-9.8
Introduction to CDParanoia
The CDParanoia package contains a CD audio extraction tool. This is useful for extracting .wav files from audio
CDs. A CDDA capable CDROM drive is needed. Practically all drives supported by Linux can be used.
Package Information
• Download (HTTP): http://www.xiph.org/paranoia/download/cdparanoia-III-alpha9.8.src.tgz
•
• Download MD5 sum: 7218e778b5970a86c958e597f952f193
• Download size: 114 KB
• Estimated disk space required: 1.3 MB
• Estimated build time: 0.12 SBU
Installation of CDParanoia
Install CDParanoia by running the following commands:
Command Explanations
sed -i '/default:/a break;' interface/utils.h: This command enables the code to be compiled with a recent version
of gcc.
Configuring CDParanoia
Configuration Information
As with most libraries, there is no configuration to do, save that the library directory, i.e., /opt/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
Installed Program: cdparanoia
Installed Libraries: libcdda_interface.{so,a} and libcdda_paranoia.{so,a}
Installed Directories: None
1017
Beyond Linux® From Scratch - Version 6.3
Short Descriptions
cdparanoia is used for 'ripping' an audio-cd. Ripping is the process of digitally extracting
music from an audio-cd.
libcdda_interface.{so,a} contains functions used by cdparanoia, as well as other packages, which can
automatically identify if a CD device is CDDA compatible.
libcdda_paranoia.{so,a} contains functions used by cdparanoia, as well as other packages, which
provide data verification, synchronization, error handling and scratch
reconstruction capability.
1018
Beyond Linux® From Scratch - Version 6.3
FreeTTS-1.2.1
Introduction to FreeTTS
The FreeTTS package contains a speech synthesis system written entirely in the Java programming language. It is
based upon Flite: a small run-time speech synthesis engine developed at Carnegie Mellon University. Flite is derived
from the Festival Speech Synthesis System from the University of Edinburgh and the FestVox project from Carnegie
Mellon University. The FreeTTS package is used to convert text to audible speech through the system audio hardware.
Package Information
• Download (HTTP): http://downloads.sourceforge.net/freetts/freetts-1.2.1-src.zip
•
• Download MD5 sum: f3e3ceae5b8cb5e175b50931f2e350e8
• Download size: 14.1 MB
• Estimated disk space required: 112 MB
• Estimated build time: 0.4 SBU
Additional Downloads
• Test suite: http://downloads.sourceforge.net/freetts/freetts-1.2.1-tst.zip
• Download MD5 sum: 8e461701ee94b3942cc37783f6de4128
• Download size: 3.9 MB
FreeTTS Dependencies
Required
Apache Ant-1.7.0, Sharutils (for the uudecode program), and working audio hardware/software.
Installation of FreeTTS
The FreeTTS package is distributed in ZIP format and the unzip command will default to creating an unused source
directory. Additionally, unzipping the test suite file will prompt for questions about overwriting existing files. Use
the following commands to unzip the source files:
Tip
The sh jsapi.sh command below installs the Java Speech API components into the FreeTTS source tree.
You will be required to view, and then accept (by entering a y keypress), a license agreement before the
installation will continue. If you are scripting (automating) the build, you'll need to account for this. There
is information about automating build commands in the Automated Building Procedures section of Chapter
2. Towards the end of this section, specific information for automating this type of installation is discussed.
1019
Beyond Linux® From Scratch - Version 6.3
cd lib &&
sh jsapi.sh &&
cd .. &&
ant
Optionally, install any or all of the additional FreeTTS components using the following commands as the root user
(see the Command Explanations section for details):
Command Explanations
sh jsapi.sh: This command installs the Java Speech API components into the FreeTTS source tree.
ant: FreeTTS uses the Apache Ant build system instead of the GNU autotools. This commands builds everything,
including the class libraries, tools and demos.
cp -v -R bin ...; install -v -m644 speech.properties: These two commands install the demonstration programs.
Optionally copy the speech.properties file to ~/speech.properties if you don't want to make it
available system-wide.
cp -v -R tools ...: This installs the voice data import utilities. See the README.html files in the
tools/ subdirectories for information and instructions about using the tools.
cp -v -R mbrola ...: This installs the mbrola.jar file, required if you use the MBROLA voices.
cp -v -R demo ...: This installs the sources and documentation for the demonstration programs.
1020
Beyond Linux® From Scratch - Version 6.3
For additional information and documentation about the FreeTTS project, visit the main web page at http://freetts.
sourceforge.net.
Depending on the setup of your audio drivers and software, you may have to add the -streaming switch to the
command as shown below:
Contents
Installed Programs: None
Installed Libraries: /opt/freetts-1.2.1/lib/*.jar
Installed Directory: /opt/freetts-1.2.1
Short Descriptions
*.jar contains the class libraries which make up the FreeTTS speech synthesis system.
1021
Beyond Linux® From Scratch - Version 6.3
Audacious-1.3.2
Introduction to Audacious
Audacious is a Gtk+-2 based audio player.
Package Information
• Download (HTTP): http://distfiles.atheme.org/audacious-1.3.2.tgz
• Download (FTP): ftp://ftp.linux.ee/pub/gentoo/distfiles/distfiles/audacious-1.3.2.tgz
• Download MD5 sum: b784a30604a2f9d84e9da310069f43f9
• Download size: 1.7 MB
• Estimated disk space required: 86 MB (includes all plugins and documentation)
• Estimated build time: 1.9 SBU
Additional Downloads
Required
• Plugins: http://distfiles.atheme.org/audacious-plugins-1.3.5.tgz
• Md5 sum: ff6b5901367337f8149e15c8fb1fdf95
• Size: 2.9 MB
Optional
Audacious Dependencies
Required
Optional
libnotify
1022
Beyond Linux® From Scratch - Version 6.3
Installation of Audacious
Install Audacious by running the following commands:
./configure --prefix=/usr &&
make
If you wish to create the SDK documentation, issue the following command: make documentation-build.
This package does not come with a test suite.
Now, as the root user:
make install &&
install -v -m644 -D README /usr/share/doc/audacious-1.3.2/README
If you created the SDK documentation, install it by issuing the following commands as the root user:
install -v -m755 -d /usr/share/gtk-doc/html/{,lib}audacious &&
install -v -m644 doc/audacious/html/* \
/usr/share/gtk-doc/html/audacious &&
install -v -m644 doc/libaudacious/html/* \
/usr/share/gtk-doc/html/libaudacious
Command Explanations
--enable-one-plugin-dir and --disable-user-plugin-dir: These options are used to determine
how the plugins are stored. Review the ouput from ./configure --help for information.
--enable-chardet: This option is used to enable character set detection support.
--enable-samplerate: This option is used to enable libsamplerate support.
Contents
Installed Programs: audacious, audacious-arts-helper and audtool
Installed Libraries: libaudacious.so and numerous Container, Effect, General, Input, Output, Visualization,
and amidi-plug plugin modules
Installed Directories: /usr/include/audacious, /usr/lib/audacious, /usr/share/audacious,
/usr/share/doc/audacious-1.3.2, and /usr/share/gtk-doc/html/audacious
1023
Beyond Linux® From Scratch - Version 6.3
Short Descriptions
audacious is a Gtk2 port of XMMS based on the Beep Media Player.
libaudacious.so contains functions that are used by audacious to render its graphical interface.
1024
Beyond Linux® From Scratch - Version 6.3
Amarok-1.4.8
Introduction to Amarok
Amarok is an audio player for KDE. Features include a context browser, Magnatunes and Last.fm integration, support
for multimedia devices, and scripting through Ruby.
Package Information
• Download (HTTP): http://mirrors.isc.org/pub/kde/stable/amarok/1.4.8/src/amarok-1.4.8.tar.bz2
• Download (FTP): ftp://ftp.kde.org/pub/kde/stable/amarok/1.4.8/src/amarok-1.4.8.tar.bz2
• Download MD5 sum: 7f65c4a8f3f0ff9042a5b5dd21b36cc8
• Download size: 13 MB
• Estimated disk space required: 129 MB
• Estimated build time: 3.6 SBU
Amarok Dependencies
Required
kdelibs-3.5.9, Ruby-1.8.6-p111, and TagLib
Recommended
kdebase-3.5.9 and xine Libraries-1.1.12
Optional
kdemultimedia-3.5.9 (for cd-ripping support), K3b-1.0.4 (for cd-burning support), SDL-1.2.11, SQLite,
PostgreSQL-8.2.4, MySQL-5.0.41, Helix (untested media backend, alternative to xine), FAAD2-2.6.1 or mpeg4ip,
libvisual, TunePimp, libgpod, libifp, libnjp, libmtp, and libkarma (requires omfs)
Installation of Amarok
Install Amarok by running the following commands:
make install
Command Explanations
--prefix=$(kde-config --prefix): This parameter uses kde-config to establish the prefix of the existing
KDE installation and then sets the installation prefix for Amarok to the same value.
1025
Beyond Linux® From Scratch - Version 6.3
--disable-debug: This option causes the package to be compiled without debugging code.
--disable-dependency-tracking: This option speeds up one time builds.
--without-included-sqlite: This option forces the use of a system-installed copy of SQLite.
--enable-mysql: This option enables use of a MySQL database for music collections.
--enable-postresql: This option enables use of a PostgreSQL database for music collections.
Support for other optional dependencies may require passing options to the configure script. Refer to the output from
./configure --help for additional information.
Contents
Installed Programs: amarok, amarokapp, amarokcollectionscanner, amarok_daapserver.rb, and
amarok_proxy.rb
Installed Libraries: libamarok.so, and several modules for installed dependencies
Installed Directories: $KDE_PREFIX/share/apps/amarok and $KDE_PREFIX/share/doc/HTML/*/amarok
Short Descriptions
amarok is a wrapper for amarokapp to speed up command line argument passing
amarokapp is the Amarok audio player
amarokcollectionscanner is used to scan a directory structure and build a collection
amarok_daapserver.rb is a DAAP server for Amarok
amarok_proxy.rb is a proxy server for DAAP and Last.fm
1026
Beyond Linux® From Scratch - Version 6.3
1027
Beyond Linux® From Scratch - Version 6.3
FFmpeg-svn_20070606
Introduction to FFmpeg
FFmpeg is a solution to record, convert and stream audio and video. It is a very fast video and audio converter and
it can also acquire from a live audio/video source. Designed to be intuitive, the command-line interface (ffmpeg)
tries to figure out all the parameters, when possible. FFmpeg can also convert from any sample rate to any other,
and resize video on the fly with a high quality polyphase filter. FFmpeg can use a video4linux compatible video
source and any Open Sound System audio source. The developers of this package do not create or distribute package
tarballs any longer. BLFS created the tarball for this package by checking out from upstream SVN the FFmpeg code
dated June 6, 2007.
Package Information
• Download (HTTP): http://anduin.linuxfromscratch.org/files/BLFS/6.3/sources/ffmpeg-svn_20070606.tar.bz2
•
• Download MD5 sum: abae526f04693c08684f0a18c28e3313
• Download size: 2.2 MB
• Estimated disk space required: 131 MB (built with all dependencies)
• Estimated build time: 1.8 SBU
FFmpeg Dependencies
Optional
AMR narrowband (floating point), AMR wideband, FAAC-1.26, FAAD2-2.6.1, FreeType-2.3.7, GSM, Imlib2-1.4.0,
LAME-3.97, liba52-0.7.4, libdc1394, libnut (SVN checkout), libvorbis-1.2.0, MediaLibrary, SDL-1.2.11, Theora, X
Window System, x264, XviD-1.1.3, and teTeX-3.0 (to build HTML documentation)
Installation of FFmpeg
Review the doc/optimization.txt file in the source tree for information about optimizing the build.
Additionally, you may want to build the postprocessing library as other packages such as MPlayer-1.0rc1 and
Transcode-1.0.3 can utilize it, and xine Libraries-1.1.12 depends on it. See the “Command Explanations” section for
additional information.
./configure --prefix=/usr \
--enable-shared \
--enable-pthreads \
--disable-ffplay &&
sed -i 's|/man|/share/man|' config.mak &&
make &&
texi2html --version >/dev/null 2>&1 || make doc/ff{mpeg,play,server}.1
1028
Beyond Linux® From Scratch - Version 6.3
If you have teTeX installed, the HTML documentation was built during the make process. If you wish to create
additional formats of the documentation, you must have teTeX installed, then issue following commands:
cd doc &&
for DOCNAME in faq ffmpeg-doc hooks ffserver-doc ffplay-doc; do
texi2dvi -b -p $DOCNAME.texi
texi2dvi -b $DOCNAME.texi
dvips -o $DOCNAME.ps $DOCNAME.dvi
if [ $DOCNAME = ffserver-doc ] || [ $DOCNAME = ffplay-doc ]; then \
continue
fi
makeinfo --plaintext --force -o $DOCNAME.txt $DOCNAME.texi
done &&
cd .. &&
unset DOCNAME
If you have Doxygen-1.5.2 installed and wish to create the API documentation (takes about 100 MB of space), issue
doxygen.
This package does not come with a test suite that works.
Now, as the root user:
If you created additional formats of the documentation, install it by issuing the following commands as the root user:
If you created the API documentation, install it by issuing the following commands as the root user:
Command Explanations
--enable-shared: This switch is needed to build the shared libraries, otherwise only static libraries are built
and installed.
--enable-pthreads: This switch enables the build to link against the Posix threads library.
--disable-ffplay: Only installs the server part. ffplay requires X for building. Remove this option if X is
installed.
--enable-<codec>: Review the available options and codecs using the ./configure --help command. You must
explicitly enable each optional codec. Note that if you wish to build support for postprocessing, liba52, xvid, x264,
libfaad2, x11grab or swscaler, you must pass --enable-gpl to the configure script.
--enable-pp: This switch enables postprocessing support.
1029
Beyond Linux® From Scratch - Version 6.3
--enable-gpl: This switch enables the use of GPL code for postprocessing support.
texi2html --version ...: These commands are used to check the presence of the teTeX package, and builds/installs
the man pages if it is not found.
Configuring FFmpeg
Config Files
/etc/ffserver.conf and ~/.ffmpeg/ffserver-config
You'll find a sample ffserver configuration file at http://ffmpeg.sourceforge.net/sample.html (also doc/ffserver.
conf in the source tree).
Contents
Installed Programs: ffmpeg, ffserver, and optionally, ffplay
Installed Libraries: libavcodec.{so,a}, libavformat.{so,a}, libavutil.{so,a}, video hook modules and
optionally, libpostproc.{so,a}
Installed Directories: /usr/include/ffmpeg, /usr/include/postproc, /usr/lib/vhook, and
/usr/share/doc/ffmpeg-svn_20070606
Short Descriptions
ffmpeg is a command-line tool to convert video files, network streams and input from a TV card to
several video formats.
ffplay is a very simple and portable media player using the ffmpeg libraries and the SDL library.
ffserver is a streaming server for everything that ffmpeg could use as input (files, streams, TV card
input, webcam, etc.).
libavcodec.so is a library containing the FFmpeg codecs (both encoding and decoding).
libavformat.so is a library containing the file formats handling (mux and demux code for several formats)
used by ffplay as well as allowing the generation of audio or video streams.
1030
Beyond Linux® From Scratch - Version 6.3
Avifile-0.7.45
Introduction to Avifile
The Avifile package contains an AVI video file player, tools and support libraries. This is useful for viewing and
editing AVI files.
Package Information
• Download (HTTP): http://downloads.sourceforge.net/avifile/avifile-0.7-0.7.45.tar.bz2
•
• Download MD5 sum: 7da94802f120d1b69e04a13170dcd21d
• Download size: 3.2 MB
• Estimated disk space required: 57.5 MB
• Estimated build time: 2.5 SBU
Additional Downloads
Patches
• Required patch: http://www.linuxfromscratch.org/patches/blfs/6.3/avifile-0.7-0.7.45-gcc41-1.patch
Codecs
• Required CODEC: http://downloads.sourceforge.net/avifile/binaries-011002.tgz
• Download MD5 sum: 4db4edeeceefb9353b15b047207fa6d3
• Download size: 4.3 MB
• Estimated disk space required: 13 MB
Avifile Dependencies
Required
Qt-3.3.8b and SDL-1.2.11
Optional
pkg-config-0.22, libjpeg-6b, libvorbis-1.2.0, liba52-0.7.4, LAME-3.97, libmad-0.15.1b, XviD-1.1.3, FAAD2-2.6.1,
DivX4Linux, and Dmalloc
Installation of Avifile
Install the required CODECs as the root user using the following commands:
1031
Beyond Linux® From Scratch - Version 6.3
make install
Contents
Installed Programs: avibench, avicap, avicat, avifile-config, avimake, aviplay, avirec, avirecompress,
avitype and kv41setup
Installed Libraries: libaviplay.so, libaviplayavcodec.so, libaviplayavformat.so, libaviplayavutil.so,
libaviplaydha.so, libaviplayvidix, libqavm.so and numerous CODEC plugins and video
extensions.
Installed Directories: /usr/include/avifile-0.7, /usr/lib/avifile-0.7, and /usr/share/avifile-0.7
Short Descriptions
avibench performs a measurement of the AVI file support library's performance for a file.
avicap is a widget that displays acquired video from a Video For Windows (VFW) compatible device,
like a webcam or a TV-tuner.
avicat takes a set of AVI files and combines them into a single file.
avifile-config is a script used to get information about the installed version of Avifile.
avimake takes a set of JPG images and creates a movie.
aviplay manages the input formats, the CODECs and the output formats to display AVI video files
on your screen.
avirec is a command-line video recording tool.
avirecompress is a widget that takes an input file of one CODEC type and converts it into a video file of
another CODEC.
avitype will read and display AVI file header information.
kv41setup is a small tool which tells video4linux about the current video mode.
libaviplay*.so libraries contain the functions required by the various Avifile programs for encoding,
decoding and to interface with the various plugins and video extensions.
1032
Beyond Linux® From Scratch - Version 6.3
MPlayer-1.0rc1
Introduction to MPlayer
The MPlayer package contains an audio/video player controlled via the command line or graphical interface
which is able to play almost every popular audio and video file format and CODEC (COder/DECoder, also
COmpressor/DECompressor). With supported video hardware and additional drivers, MPlayer can play video files
without an X Window System installed.
For MPlayer general information and available features, including a full list of file formats, CODECs and output
devices supported by MPlayer, visit the MPlayer web site.
Package Information
• Download (HTTP): http://www.mplayerhq.hu/MPlayer/releases/MPlayer-1.0rc1.tar.bz2
• Download (FTP): ftp://ftp1.mplayerhq.hu/MPlayer/releases/MPlayer-1.0rc1.tar.bz2
• Download MD5 sum: 18c05d88e22c3b815a43ca8d7152ccdc
• Download size: 8.3 MB
• Estimated disk space required: 133-250 MB (additional 22 MB for essential CODECs)
• Estimated build time: 1.2-2.5 SBU (depends on how FFmpeg is linked in)
Additional Downloads
Patches
• Required Patch: http://www.mplayerhq.hu/MPlayer/patches/asmrules_fix_20061231.diff
• Required Patch: http://www.mplayerhq.hu/MPlayer/patches/cddb_fix_20070605.diff
• Required Patch: http://www.linuxfromscratch.org/patches/blfs/6.3/MPlayer-1.0rc1-ext_ffmpeg-1.patch
CODECs
• Proprietary CODECs: http://www.mplayerhq.hu/MPlayer/releases/codecs/essential-20061022.tar.bz2
• Download MD5 sum: abcf4a3abc16cf88c9df7e0a77e9b941
• Download size: 10.0 MB
• Alternate CODECs (provides additional functionality and is a larger file): http://www.mplayerhq.hu/MPlayer/
releases/codecs/all-20061022.tar.bz2
• Additional CODECs: http://www.mplayerhq.hu/MPlayer/releases/codecs/
Skins
• Default GUI skin: http://www.mplayerhq.hu/MPlayer/skins/Blue-1.7.tar.bz2
• Download MD5 sum: e4e2020d11b681aac898103b3ba723c4
• Download size: 222 KB
• Additional skins: http://www1.mplayerhq.hu/MPlayer/skins/
Fonts
• Prerendered fonts: http://www1.mplayerhq.hu/MPlayer/releases/fonts/font-arial-iso-8859-1.tar.bz2
• Download MD5 sum: 1ecd31d17b51f16332b1fcc7da36b312
• Download size: 234 KB
• Additional fonts: http://www1.mplayerhq.hu/MPlayer/releases/fonts/
The CODECs, skins and fonts are not required to build and use MPlayer.
1033
Beyond Linux® From Scratch - Version 6.3
MPlayer Dependencies
Optional Input Drivers and Libraries
CDParanoia-III-9.8, DVB, DVB drivers, libcdio, libdv-1.0.0, libdvdread-0.9.7, LIVE555 Streaming Media,
Samba-3.0.30, and TiVo vstream client
Optional CODECs
AMR narrowband (floating point) or AMR naarrowband (fixed point), AMR wideband, FAAC-1.26, FAAD2-2.6.1
(must disable the internal version), FFmpeg-svn_20070606, LAME-3.97, libdca, libFAME-0.9.1, libmad-0.15.1b,
libmpcdec, libnut (SVN checkout), libvorbis-1.2.0, LIRC, lirccd, LZO-2.02 (requires Version 1), SVGAlib, Theora,
tooLAME, TwoLAME, Tremor (requires libvorbis-1.2.0 and you must disable the internal version), x264, and
XviD-1.1.3
Installation of MPlayer
CODEC Installation (Optional)
If you downloaded any proprietary CODECs (which can provide support for additional audio and video formats such
as Real, Indeo and QuickTime), extract them to /usr/lib/mplayer/codecs using the following commands as
the root user (substitute and/or add different CODEC filenames, if necessary):
install -v -d -m755 /usr/lib/mplayer/codecs &&
tar -xvf ../essential-20061022.tar.bz2 \
-C /usr/lib/mplayer/codecs --strip-components=1 &&
chown -v -R root:root /usr/lib/mplayer/codecs
1034
Beyond Linux® From Scratch - Version 6.3
Note
The package maintainers recommend building without any optimizations.
This package (unfortunately) expects the X Window system to be installed in the /usr/X11R6 directory. If you're
using a recent version of Xorg and it is installed in any other location, ensure you have followed the instructions in
the Creating an X11R6 Compatibility Symlink section.
MPlayer can build a shared post-processing library from the internal FFmpeg package which other packages can
link to. This requires MPlayer to link dynamically to this library instead of the default statically linked method. If
you desire to build the shared library, add --enable-shared-pp to the configure script. Note that the FFmpeg
package can also build this library (which MPlayer can link to instead of building it), ensure you don't overwrite
an existing one.
You may wish to examine the output from ./configure --help to find out what additional parameters to configure
are needed to include the dependencies you have installed on your system. To link in existing FFmpeg libraries
(and MPlayer won't have to build them), you must pass a total of nine additional options to the configure script.
Four to disable building the static FFmpeg libraries, four to enable using the system-installed shared libraries and
--with-extraincdir=/usr/include/ffmpeg so the build can locate the FFmpeg interface headers.
1035
Beyond Linux® From Scratch - Version 6.3
./configure --prefix=/usr \
--confdir=/etc/mplayer \
--enable-largefiles \
--enable-dynamic-plugins &&
make
Passing certain parameters to configure may result in the creation of libdha.so.1.0. If so, you may wish to
create a symlink to this library in case other packages link to libdha.so. Use the following command as the root
user to create the symbolic link:
ln -v -s libdha.so.1.0 /usr/lib/libdha.so
You will need codecs.conf only if you want to change its properties, as the main binary contains an internal copy
of it. Ensure any changes you make to codecs.conf achieve the desired results, as incorrect entries in this file have
been known to cause errors and render the player unusable. If necessary, create the file using the following command.
You may also want to copy all the default configuration files to /etc/mplayer for future reference or more
customization ability.
MPlayer requires that the RTC run at a frequency of 1024 Hz. Make this setting change at boot-time by adding a
line to /etc/sysctl.conf:
OSD and Subtitles Font Installation (Required if '--enable-menu' Was Passed to 'configure')
The recommended method to set up a font for MPlayer is to link a TTF file to your ~/.mplayer directory. A link
should be created in each user's home directory who may use MPlayer. For example:
1036
Beyond Linux® From Scratch - Version 6.3
There are several other ways to set up a font package. To use a prerendered MPlayer font package, extract and link
one of the font tarballs using the following commands:
tar -xvf ../font-arial-iso-8859-1.tar.bz2 \
-C /usr/share/mplayer/font &&
chown -v -R root:root /usr/share/mplayer/font &&
cd /usr/share/mplayer/font &&
ln -v -sf font-arial-iso-8859-1/font-arial-<font size>-iso-8859-1/* .
Available font sizes are 14, 18, 24 or 28.
Additional information as well as additional methods to set up an MPlayer font package can be found at http://www.
mplayerhq.hu/DOCS/HTML/en/subosd.html#mpsub-install.
Configuring MPlayer
Config Files
/etc/mplayer/* and ~/.mplayer/*
Configuration Information
Typically, there's no configuration required for the system-wide files in /etc/mplayer (in fact, this directory is
empty unless you copied the default files as mentioned above). Configuration can be accomplished by choosing the
configuration button located on the MPlayer GUI. Any configuration changes made here will be copied to the user's
~/.mplayer directory.
Contents
Installed Programs: gmplayer, mplayer, and mencoder
Installed Libraries: libdha.so and optionally, libpostproc.so
Installed Directories: ~/.mplayer, /etc/mplayer, /usr/include/postproc, /usr/lib/mplayer, /usr/share/mplayer,
and /usr/share/doc/mplayer-1.0rc1
Short Descriptions
gmplayer is a symlink to mplayer which brings up the graphical user interface component of 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 information 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://fredrik.hubbe.net/plugger/test.mpg
For further information, look at the very good documentation included with the package in the
source tree subdirectory DOCS (also installed at /usr/share/doc/mplayer-1.0rc1).
mencoder is used to encode any MPlayer playable movie to DivX4, XviD or any CODEC in
libavcodec with PCM/MP3/VBRMP3 audio.
1037
Beyond Linux® From Scratch - Version 6.3
Example:
rm frameno.avi
mencoder -dvd 1 -aid 128 -ovc frameno -oac mp3lame \
-lameopts vbr=3 -o frameno.avi
1038
Beyond Linux® From Scratch - Version 6.3
Package Information
• Download (HTTP): http://downloads.sourceforge.net/xine/xine-ui-0.99.5.tar.gz
• Download (FTP): ftp://ftp.linux.ee/pub/gentoo/distfiles/distfiles/xine-ui-0.99.5.tar.gz
• Download MD5 sum: e643cd1fcad4d98a5ae4eb877ce5087b
• Download size: 2.5 MB
• Estimated disk space required: 19 MB
• Estimated build time: 0.3 SBU
Required
xine Libraries-1.1.12
Optional
pkg-config-0.22, cURL-7.16.3, AAlib-1.4rc5, LIRC and libcaca
Command Explanations
docsdir=/usr/share/doc/xine-ui-0.99.5: This parameter causes the Xine UI documentation to
be installed in the versioned directory /usr/share/doc/xine-ui-0.99.5, rather that the default
/usr/share/doc/xine-ui.
1039
Beyond Linux® From Scratch - Version 6.3
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-0.99.5/README.config_en.
Contents
Installed Programs: aaxine, cacaxine, fbxine, xine, xine-bugreport, xine-check, and xine-remote
Installed Directories: /usr/share/xine/{desktop,skins,visuals} and /usr/share/doc/xine-ui-0.99.5
Short Descriptions
aaxine is an ASCII art video player which utilizes AAlib as the frontend for the xine Libraries.
cacaxine is a color ASCII art video player which utilizes CACA as the frontend for the xine Libraries.
fbxine is a frame buffer interface to the xine Libraries.
xine is a multimedia player designed to play MPEG streams (audio and video), MPEG elementary
streams (MP3), MPEG transport streams, Ogg files, AVI files, ASF files, some Quicktime
files, VCDs and DVDs (non-encrypted).
xine-bugreport produces a terse system description and guides you through the process of reporting a bug.
xine-check tests the xine video player installation for common problems. It tests the operating system
settings, installation of plugins, CD/DVD drive settings and video support parameters.
xine-remote is a tool to connect to a xine remote control server.
1040
Beyond Linux® From Scratch - Version 6.3
Transcode-1.0.3
Introduction to Transcode
Transcode is a fast, versatile and command-line based audio/video everything to everything converter. For a rundown
of the features and capabilities, along with usage examples, visit the Transcode Wiki at http://www.transcoding.org/.
Package Information
• Download (HTTP): http://transcode.kabewm.com/transcode-1.0.3.tar.bz2
• Download (FTP): ftp://ftp.linux.ee/pub/gentoo/distfiles/distfiles/transcode-1.0.3.tar.bz2
• Download MD5 sum: 4f6eb832123ea28c54f0d4952733bcb6
• Download size: 1.9 MB
• Estimated disk space required: 61 MB
• Estimated build time: 1.4 SBU
Additional Downloads
• Required patch: http://www.linuxfromscratch.org/patches/blfs/6.3/transcode-1.0.3-libmpeg3_fixes-1.patch
Transcode Dependencies
Required
FFmpeg-svn_20070606 and libmpeg2-0.4.1
Recommended
LAME-3.97
Optional (Listed in the Order That the configure Script Looks for Them)
pkg-config-0.22, X Window System, DivX4Linux, XviD-1.1.3, LoRS/IBP, FreeType-2.3.7, Avifile-0.7.45,
libogg-1.1.3, libvorbis-1.2.0, Theora, libdvdread-0.9.7, PVM3, libdv-1.0.0, libquicktime-1.0.0, LZO-2.02 (requires
Version 1), liba52-0.7.4, LibMPEG3-1.7, libxml2-2.6.31, MJPEG Tools, SDL-1.2.11, GTK+-1.2.10, libFAME-0.9.1,
ImageMagick-6.3.5-10, and libjpeg-6b
Installation of Transcode
Install Transcode by running the following commands:
patch -Np1 -i ../transcode-1.0.3-libmpeg3_fixes-1.patch &&
sed -i 's|doc/transcode|&-$(PACKAGE_VERSION)|' \
$(find . -name Makefile.in -exec grep -l 'docsdir =' {} \;) &&
autoconf &&
./configure --prefix=/usr &&
make
This package does not come with a test suite.
Now, as the root user:
make install
1041
Beyond Linux® From Scratch - Version 6.3
Command Explanations
--enable-netstream: This parameter enables network streaming support.
Support for most of the dependency packages requires using options passed to the configure script. View the
INSTALL file and the output from ./configure --help for complete information about enabling dependency packages.
Contents
Installed Programs: avicodec, avidump, avifix, aviindex, avimerge, avisplit, avisync, tccat, tcdecode,
tcdemux, tcextract, tcframe, tcmodinfo, tcmp3cut, tcprobe, tcrequant, tcscan,
tcxmlcheck, tcxpm2rgb, and transcode
Installed Libraries: a52_decore.so, af6_decore.so, export*.so, filter*.so, and import*.so output/filter/input
modules
Installed Directories: /usr/lib/transcode and /usr/share/doc/transcode-1.0.3
Short Descriptions
avicodec indicates or changes the FOURCC CODEC flag in an AVI file.
avidump dumps audio or video stream of a given AVI file to stdout (for AVI
conversion or extraction of audio streams).
avifix fixes the header of an AVI file.
aviindex writes a text file describing the index of an AVI file.
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 splits AVI files into multiple files.
avisync can shift audio in AVI files for better synchronizing of the audio and video
data signal.
tccat concatenates input files using the input plugins of Transcode.
tcdecode is used to decode input files to raw video and PCM audio streams.
tcdemux demultiplexes (separates) audio/video input that contains multiple streams,
e.g., VOB files.
tcextract grabs single streams from a file containing multiple streams.
tcframe processes single video frames for different color encodings (RGB >-< YUV
or similar).
tcmodinfo loads a supplied Transcode filter module and prints its parameters.
tcmp3cut is a tool which can cut MP3 streams at milliseconds positions.
tcprobe prints information about the input file format.
tcrequant is a tool which can requantize an MPEG-2 elementary stream.
tcscan performs several measurements on the given input data.
tcxmlcheck checks information in a SMIL input file.
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
1042
Beyond Linux® From Scratch - Version 6.3
1043
Beyond Linux® From Scratch - Version 6.3
1044
Beyond Linux® From Scratch - Version 6.3
Cdrtools-2.01
Introduction to Cdrtools
The Cdrtools package contains CD recording utilities. These are useful for reading, creating or writing (burning)
Compact Discs.
Package Information
• Download (HTTP): http://gd.tuwien.ac.at/utils/schilling/cdrtools/cdrtools-2.01.tar.bz2
• Download (FTP): ftp://ftp.berlios.de/pub/cdrecord/cdrtools-2.01.tar.bz2
• Download MD5 sum: d44a81460e97ae02931c31188fe8d3fd
• Download size: 1.4 MB
• Estimated disk space required: 21 MB
• Estimated build time: 0.5 SBU
Additional Downloads
• Required patch for extending the number of locales to create CDs with non-ASCII filenames: http://www.
linuxfromscratch.org/patches/blfs/6.3/cdrtools-2.01-mkisofs_iconv-1.patch
• Recommended Patch for using Cdrtools in locales using non-ISO-8859-1 character sets: http://www.
linuxfromscratch.org/patches/blfs/6.3/cdrtools-2.01-ascii-2.patch
Installation of Cdrtools
Note
Installation of Cdrtools will fail if raw kernel headers are found in /usr/src/linux either as actual files
or a symlink. As of the Linux 2.6 kernel series, this directory should no longer exist because appropriate
headers were installed in the linux-libc-headers package during the base LFS installation.
When creating an ISO 9660 image with mkisofs, the character set of the filenames used must be specified unless it is
ISO-8859-1, the default. If the character set is not specified correctly, then non-ASCII filenames will be unreadable
on other systems, such as Microsoft Windows. This patch allows any input character set supported by Glibc (such as
UTF-8) to be specified to mkisofs, as opposed of the short list of built-in encodings. Also, the default input character
set is set to that of the current locale, which is the correct behavior. To address this situation, apply the mkisofs_iconv
patch:
1045
Beyond Linux® From Scratch - Version 6.3
Command Explanations
INS_BASE=/usr: This parameter moves the install directory from /opt/schily to /usr.
DEFINSUSR=root DEFINSGRP=root: These parameters install all programs with root:root ownership instead
of the default bin:bin.
Contents
Installed Programs: cdda2wav, cdrecord, devdump, isodebug, isodump, isoinfo, isovfy, mkhybrid, mkisofs,
readcd, rscsi, scgcheck, and skel
Installed Libraries: libdeflt.a, libedc_ecc.a, libfile.a, libhfs.a, libparanoia.a, librscg.a, libscg.a, libschily.a,
and libunls.a
Installed Directories: None
Short Descriptions
cdda2wav converts Compact Disc audio into WAV sound files.
cdrecord records audio or data Compact Discs.
devdump is a diagnostic program used to dump an ISO-9660 device or file in hex.
isodebug is used to display the command-line parameters used to create an ISO-9660 image.
isodump is a diagnostic program used to dump a device or file based on ISO-9660.
isoinfo is used to analyze or list an ISO-9660 image.
isovfy is used to verify an ISO-9660 image.
mkhybrid is a symbolic link to mkisofs used to create ISO-9660/HFS hybrid filesystem images.
mkisofs is used to create ISO-9660/JOLIET/HFS filesystem images, optionally with Rock Ridge attributes.
readcd reads or writes Compact Discs.
rscsi is a remote SCSI manager.
scgcheck is used to check and verify the Application Binary Interface of libscg.
libscg.a is a highly portable SCSI transport library.
1046
Beyond Linux® From Scratch - Version 6.3
Cdrdao-1.2.2
Introduction to Cdrdao
The Cdrdao package contains CD recording utilities. These are useful for burning a CD in disk-at-once mode.
Package Information
• Download (HTTP): http://downloads.sourceforge.net/cdrdao/cdrdao-1.2.2.tar.bz2
•
• Download MD5 sum: f0cbf36907406cb4f4c568f9e6669a34
• Download size: 1.4 MB
• Estimated disk space required: 64 MB
• Estimated build time: 1.3 SBU (includes building gcdmaster)
Cdrdao Dependencies
Recommended
libao-0.8.8, libvorbis-1.2.0, libmad-0.15.1b, and LAME-3.97 (required to build toc2mp3)
Optional
libacl and libattr
Installation of Cdrdao
Install Cdrdao by running the following commands:
./configure --prefix=/usr &&
make
This package does not come with a test suite.
Now, as the root user:
make install &&
install -v -m755 -d /usr/share/doc/cdrdao-1.2.2 &&
install -v -m644 README* /usr/share/doc/cdrdao-1.2.2
Contents
Installed Programs: cdrdao, cue2toc, toc2cddb, toc2cue and optionally, gcdmaster and toc2mp3
Installed Libraries: None
Installed Directory: /usr/share/cdrdao, /usr/share/doc/cdrdao-1.2.2 and /usr/share/gcdmaster
1047
Beyond Linux® From Scratch - Version 6.3
Short Descriptions
cdrdao records audio or data CD-Rs in disk-at-once (DAO) mode based on a textual description of the CD
contents.
cue2toc converts CUE to TOC format for audio CDs.
gcdmaster is a graphical front end to cdrdao for composing audio CDs.
toc2cddb converts a Cdrdao TOC file into a cddb file and prints it to stdout.
toc2cue converts TOC to CUE format for audio CDs.
toc2mp3 converts an audio CD disk image (.toc file) to MP3 files.
1048
Beyond Linux® From Scratch - Version 6.3
UDFtools-1.0.0b3
Introduction to UDFtools
The UDFtools package contains utilities for creating and mounting CD-RW disks with UDF file systems for both
reading and writing. UDF files systems are used on both CD-RW media and on DVD. For more details of the UDF
file system standard see: http://www.osta.org and http://www.ecma-international.org.
Package Information
• Download (HTTP): http://downloads.sourceforge.net/linux-udf/udftools-1.0.0b3.tar.gz
•
• Download MD5 sum: 2f491ddd63f31040797236fe18db9e60
• Download size: 287 KB
• Estimated disk space required: 3.5 MB
• Estimated build time: 0.1 SBU
Additional Downloads
• Required patch: http://w1.894.telia.com/~u89404340/patches/packet/udftools-1.0.0b3.patch.bz2
Kernel Configuration
In the kernel configuration, modify your settings to match those listed here:
Block devices
Packet writing on CD/DVD media: Y or M
CD-ROM/DVD Filesystems
UDF file system support Y or M
Installation of UDFtools
Install UDFtools by running the following commands:
make install
Command Explanations
sed -i -e 's/(char\*)spm +=/spm = (char\*)spm +/' wrudf/wrudf.c: This change is required to compile with recent
compilers.
1049
Beyond Linux® From Scratch - Version 6.3
Contents
Installed Programs: cdrwtool, mkudffs, pktsetup, udffsck, and wrudf
Installed Library: libudffs.a
Installed Directories: None
Short Descriptions
cdrwtool provides facilities to manage CD-RW drives, including formatting new disks, setting the read and
write speeds, etc.
Example:
cdrwtool -d /dev/scd0 -q
prepares a new CD-RW for use and formats it with a UDF file system.
mkudffs is used to create new UDF file systems. It can be used on hard disks and CD-Rs as well as CD-RWs.
pktsetup is used to establish and break down associations between the kernel packet driver and a physical
drive.
Example:
associates the physical device /dev/scd0 with the kernel packet driver /dev/pktcdvd0, then
mounts a UDF formatted CD-RW for read/write access.
udffsck is used to check the integrity and correct errors on UDF filesystems.
wrudf is used to maintain a UDF filesystem.
libudffs.a contains functions used by the UDFtools programs.
1050
Beyond Linux® From Scratch - Version 6.3
dvd+rw-tools-7.0
Introduction to dvd+rw-tools
The dvd+rw-tools package contains several utilities to master the DVD media, both +RW/+R and -R[W]. The
principle tool is growisofs which provides a way to both lay down and grow an ISO9660 file system on (as well
as to burn an arbitrary pre-mastered image to) all supported DVD media. This is useful for creating a new DVD or
adding to an existing image on a partially burned DVD.
Package Information
• Download (HTTP): http://fy.chalmers.se/~appro/linux/DVD+RW/tools/dvd+rw-tools-7.0.tar.gz
•
• Download MD5 sum: 2eb9c2a6b1e6bc7c4d72d3b5ece34ceb
• Download size: 131 KB
• Estimated disk space required: 1.4 MB
• Estimated build time: less than 0.1 SBU
dvd+rw-tools Dependencies
Required
Though not required during the build, you must have Cdrtools-2.01 installed or the growisofs command will not
function properly, rendering the entire package useless.
Installation of dvd+rw-tools
Install dvd+rw-tools by running the following commands:
Command Explanations
make all rpl8 btcflash: This command uses additional targets so that all the utilities are built.
Contents
Installed Programs: btcflash, dvd+rw-booktype, dvd+rw-format, dvd+rw-mediainfo, dvd-ram-control,
growisofs, and rpl8
Installed Libraries: None
Installed Directory: /usr/share/doc/dvd+rw-tools-7.0
1051
Beyond Linux® From Scratch - Version 6.3
Short Descriptions
growisofs is a combined mkisofs frontend/DVD recording program.
1052
Beyond Linux® From Scratch - Version 6.3
K3b-1.0.4
Introduction to K3b
The K3b package contains a KDE-based graphical interface to the Cdrtools and dvd+rw-tools CD/DVD manipulation
tools. It also combines the capabilities of many other multimedia packages into one central interface to provide
a simple-to-operate application that can be used to handle many of your CD/DVD recording and formatting
requirements. This is useful for creating audio, data, video and mixed-mode CDs as well as copying, ripping and
burning CDs and DVDs.
Though K3b can be used to copy almost any DVD to similar medium, it does not provide a way to copy, or reproduce
a double-layer DVD onto single-layer medium. Of course, there is not a program anywhere on any platform that can
make an exact duplicate of a double-layer DVD onto a single-layer disk, there are programs on some platforms that
can compress the data on a double-layer DVD to fit on a single-layer DVD producing a duplicate, but compressed,
image. If you need to copy the contents of a double-layer DVD to single-layer medium, you may want to look at
the RMLCopyDVD package.
Package Information
• Download (HTTP): http://downloads.sourceforge.net/k3b/k3b-1.0.4.tar.bz2
•
• Download MD5 sum: 42538ddae0809707d3bcdbe0a6ed6a43
• Download size: 4.9 MB
• Estimated disk space required: 67.1 MB
• Estimated build time: 4.0 SBU
K3b Dependencies
Required
kdelibs-3.5.9
There are programs from three packages that K3b will look for at runtime: Cdrtools-2.01 (required to burn CD-ROM
media), dvd+rw-tools-7.0 (required to burn or format DVD media), and Cdrdao-1.2.2 (required to burn CD-ROM
media in DAO (Disk At Once) mode). If you don't need the capability provided by any of the three packages, you
don't have to install it. However, a warning message will be generated every time you run the k3b program if any
are not installed.
Recommended
kdebase-3.5.9, libjpeg-6b, kdemultimedia-3.5.9 (required for a working audio player)
Optional
ALSA-1.0.13, CDParanoia-III-9.8, FFmpeg-svn_20070606, FLAC-1.2.1, HAL-0.5.9.1 and D-Bus Qt3
Bindings-0.62, LAME-3.97, libmad-0.15.1b, libmusicbrainz-2.1.5, libvorbis-1.2.0, libxml2-2.6.31, libsndfile,
MoviX, Musepack (libmpcdec), normalize, resmgr, Secret Rabbit Code (libsamplerate), SoX, TagLib, and VCDImager
For an explanation how each package is used by K3b, see the Requirements page at http://k3b.plainblack.
com/requirements.
1053
Beyond Linux® From Scratch - Version 6.3
Installation of K3b
Install K3b by running the following commands:
make install
Command Explanations
--prefix=$(kde-config --prefix): This parameter uses kde-config to establish the prefix of the existing
KDE installation and then sets the installation prefix for K3b to the same value.
--disable-debug: This option causes the package to be compiled without debugging code.
--disable-dependency-tracking: This option speeds up one time builds.
Configuring k3b
Configuration Information
You will need to ensure that any user of K3b has permission to read and write to the CD/DVD/audio hardware device
files. The easiest way to do this is by creating groups (audio, video, cdrecord, dvdrecord, etc.,) and then add users
to the appropriate groups. You'll also have to ensure that the Udev rules are set up appropriately if you are using a
system where the device files are created during the system boot-up sequence.
There is a script installed (k3bsetup) that is a front-end to the k3bsetup2 KControlModule. This script can be accessed
as a pull-down menu from the K3b GUI and requires root user privileges (root privileges are acquired through the
use of the automatically-launched kdesud program). Though this utility can be used to set the appropriate permissions
for the device files, be forewarned that in a Udev environment, where the device files are created during the system
boot-up sequence, any changes made by this utility will not be preserved across system boots.
Contents
Installed Programs: k3b and k3bsetup
Installed Libraries: libk3b.so, libk3bdevice.so and numerous modules for the installed dependencies
Installed Directories: The following subdirectories of $KDE_PREFIX/share/: applnk/Settings/System,
apps/k3b, doc/HTML/en/k3b
Short Descriptions
k3b is the graphical CD/DVD program.
k3bsetup is a script used to launch the k3bsetup2 KControlModule for setting up the CD/DVD hardware and
device files in your system.
1054
Beyond Linux® From Scratch - Version 6.3
1056
Beyond Linux® From Scratch - Version 6.3
CUPS-1.2.12
Introduction to CUPS
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.
Package Information
• Download (HTTP): http://ftp.easysw.com/pub/cups/1.2.12/cups-1.2.12-source.tar.bz2
• Download (FTP): ftp://ftp.easysw.com/pub/cups/1.2.12/cups-1.2.12-source.tar.bz2
• Download MD5 sum: d410658468384b5ba5d04a808f6157fe
• Download size: 3.6 MB
• Estimated disk space required: 62 MB
• Estimated build time: 0.6 SBU
Additional Downloads
• Required patch: http://www.linuxfromscratch.org/patches/blfs/6.3/cups-1.2.12-security_fixes-2.patch
CUPS Dependencies
Recommended
libjpeg-6b, libpng-1.2.29, and LibTIFF-3.8.2
Optional
pkg-config-0.22, D-BUS-1.0.2, OpenLDAP-2.3.39, OpenSSL-0.9.8g or GnuTLS-1.6.3, Linux-PAM-0.99.10.0,
PHP-5.2.3, Python-2.5.2, JDK-6 Update 5, OpenSLP, libpaper, libacl (requires libattr), HTMLDOC, and Valgrind
(optionally used if running the test suites)
Installation of CUPS
Create an lp user, as CUPS will create some files owned by this user. (The lp user is the default used by CUPS,
but may be changed to a different user by passing a parameter to the configure script.) Use the following command
as the root user:
useradd -c "Print Service User" -d /dev/null -g lp -s /bin/false -u 9 lp
Install CUPS by running the following commands:
patch -Np1 -i ../cups-1.2.12-security_fixes-2.patch &&
./configure &&
make
To test the results, issue: make check. This will run a basic test suite without any load testing. If you wish to run the
tests specifying non-default parameters, issue: make test. Note that the “torture load testing” test uses more resources
than those displayed in the prompt.
Now, as the root user:
make install
1057
Beyond Linux® From Scratch - Version 6.3
The man files are installed in compressed (.gz) format. If desired, use the following commands to uncompress them:
gunzip -v /usr/share/man/man{\
1/{cancel,cups{-config,test{dsc,ppd}},\
lp{,options,passwd,q,rm,r,stat}}.1,\
5/{{classes,client,cups-snmp,cupsd,printers,subscriptions,mailto}.conf,\
mime.{convs,types}}.5,\
7/{backend,filter}.7,\
8/{accept,cups{d,addsmb,enable,-{deviced,driverd,lpd,polld}},\
lp{admin,info,move,c}}.8}.gz &&
rm -v /usr/share/man/man8/{reject,cupsdisable}.8.gz &&
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.
Configuring CUPS
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.
For non-PostScript printers to print with CUPS, you need to install ESP Ghostscript-8.15.4 to convert PostScript
to raster images and a driver (e.g., from Gutenprint-5.0.1) to convert the resulting raster images to a form that the
printer understands. Foomatic drivers use Ghostscript to convert PostScript to a printable form directly, but this is
considered to be a hack by CUPS developers.
Kernel Configuration
To use your printer you will likely need the appropriate drivers enabled in the kernel — for example, “Parallel printer
support” if you have a parallel port printer, or “USB Printer support” for a USB printer.
Boot Script
During the installation, CUPS added startup files in /etc/rc.d. These scripts will work in most cases, but will
fail if you provide printers to Samba clients. Additionally, they are not consistent with standard LFS style scripts.
Replace the installed scripts with the scripts and symlinks included in the blfs-bootscripts-20080816 package:
make install-cups
Contents
Installed Programs: accept, cancel, cups-config, cupsaddsmb, cupsd, cupstestppd, disable, enable, lp,
lpadmin, lpc, lpinfo, lpmove, lpoptions, lppasswd, lpq, lpr, lprm, lpstat, and reject
Installed Libraries: libcups.{so,a}, libcupsimage.{so,a}, and various filters and backend drivers
Installed Directories: /etc/cups, /usr/include/cups, /usr/lib/cups, /usr/share/cups, /usr/share/doc/cups-1.2.12,
/var/cache/cups, /var/log/cups, and /var/spool/cups
1058
Beyond Linux® From Scratch - Version 6.3
Short Descriptions
accept instructs the printing system to accept print jobs to the specified destinations.
cancel cancels existing print jobs from the print queues.
cups-config is a CUPS program configuration utility.
cupsaddsmb exports printers to the Samba software for use with Windows clients.
cupsd is the scheduler for the Common Unix Printing System.
cupstestppd tests the conformance of PPD files.
disable stops the named printers or classes.
enable starts the named printers or classes.
lp submits files for printing or alters a pending job.
lpadmin configures printer and class queues provided by CUPS.
lpc provides limited control over printer and class queues provided by CUPS.
lpinfo lists the available devices or drivers known to the CUPS server.
lpmove moves the specified job to a new destination.
lpoptions displays or sets printer options and defaults.
lppasswd adds, changes or deletes passwords in the CUPS digest password file passwd.md5.
lpq shows the current print queue status on the named printer.
lpr submits files for printing.
lprm cancels print jobs that have been queued for printing.
lpstat displays status information about the current classes, jobs, and printers.
reject instructs the printing system to reject print jobs to the specified destinations.
1059
Beyond Linux® From Scratch - Version 6.3
LPRng-3.8.28
Introduction to LPRng
The LPRng package contains an enhanced, extended and portable implementation of the Berkeley Line PRinter (LPR)
print spooler. This is useful for queuing print jobs.
There may be a more recent release available from the LPRng home page. You can check http://sourceforge.
net/projects/lprng and probably use the existing BLFS instructions. Note that versions other than the one shown in
the download URLs have not been tested in a BLFS environment.
Package Information
• Download (HTTP): http://anduin.linuxfromscratch.org/sources/BLFS/6.3/l/LPRng-3.8.28.tgz
• Download (FTP): ftp://anduin.linuxfromscratch.org/BLFS/6.3/l/LPRng-3.8.28.tgz
• Download MD5 sum: 1b3a0abd291b260eab6087ac0e61ed84
• Download size: 10.2 MB
• Estimated disk space required: 71.8 MB
• Estimated build time: 0.42 SBU
LPRng Dependencies
Optional
Installation of LPRng
Install LPRng by running the following commands:
./configure --prefix=/usr \
--libexecdir=/usr/lib/lprng \
--sysconfdir=/etc \
--enable-shared &&
make
1060
Beyond Linux® From Scratch - Version 6.3
Command Explanations
sed -i 's@CLEAR ...': This fixes a GCC-4 warning, treated as an error.
sed -i 's@ fd, l ...': This fixes a compilation problem with using versions of GCC-4.
sed -i -e '...' -e '...': This fixes a couple of syntax bugs when using newer versions of make.
Configuring LPRng
Config Files
/etc/printcap and /etc/lpd/*
Configuration Information
There is no generic printcap for all printers. A sample printcap is loaded into the /etc directory which can be of
some help. Information is also available at http://www.lprng.org, http://www.linuxprinting.org and the documentation
installed in /usr/share/doc/lprng-3.8.28.
Boot Script
The init script installed by LPRng is not consistent with other BLFS scripts; therefore, install the /etc/rc.
d/init.d/lprng init script included in the blfs-bootscripts-20080816 package (as the root user):
make install-lprng
Note
You may also want to remove the lpd script that was installed in /etc/rc.d/init.d.
Contents
Installed Programs: cancel, checkpc, lp, lpc, lpd, lpq, lpr, lprm, lprng_certs, lprng_index_certs, and lpstat
Installed Library: liblpr.{so,a}
Installed Directories: /etc/lpd, /usr/lib/lprng, /usr/share/doc/3.8.28, /var/run/lpd, and /var/spool/lpd
Short Descriptions
cancel is a symlink to lprm used to send cancel requests to an LPRng print service.
checkpc checks out the printcap database.
lp is a symlink to lpr used to send requests to an LPRng print service.
lpc is a control program for the lpd daemon.
lpd is the print queueing daemon.
lpq is a status monitoring program.
lpr is a print job spooler program.
lprm is a print job removal program.
lprng_certs is a program used to manage SSL certificates for the LPRng software.
lprng_index_certs creates a set of index files in the LPRng signing certificate directory.
1061
Beyond Linux® From Scratch - Version 6.3
1062
Beyond Linux® From Scratch - Version 6.3
AFPL Ghostscript-8.53
Introduction to Ghostscript
Ghostscript is a versatile processor for PostScript data with the ability to render PostScript to different targets.
Package Information
• Download (HTTP): http://downloads.sourceforge.net/ghostscript/ghostscript-8.53.tar.bz2
•
• Download MD5 sum: e65e0c40213a616174572faa639e04d6
• Download size: 9.3 MB
• Estimated disk space required: 104 MB (includes installing libgs.so and both font tarballs)
• Estimated build time: 2.4 SBU (includes building and installing libgs.so)
Additional Downloads
Standard Fonts
Ghostscript Dependencies
Optional
libjpeg-6b, libpng-1.2.29, GTK+-1.2.10, and X Window System
Conflicts
This version of Ghostscript does not work with CUPS due to missing generic "cups" raster image driver. The necessary
support cannot be patched in due to incompatible licenses. Use ESP Ghostscript-8.15.4 instead if you have CUPS.
Installation of Ghostscript
Install Ghostscript by running the following commands:
make install
1063
Beyond Linux® From Scratch - Version 6.3
To install the shared library libgs.so, run the following additional command as an unprivileged user:
make so
Note
The shared library depends on GTK+-1.2.10. It is only used in external programs like GSview-4.8 and
ImageMagick-6.3.5-10.
To finish the installation, unpack all fonts you've downloaded to /usr/share/ghostscript and ensure the
ownerships of the files are root:root. Substitute <font-tarball> appropriately in the command below for the
fonts you wish to install:
Command Explanations
install ...: Some packages (ImageMagick is one) need the Ghostscript interface headers in place to link to the shared
library. These commands install the headers.
ln -v -s ps /usr/include/ghostscript: Some packages expect to find the interface headers in an alternate location.
Contents
Installed Programs: bdftops, dumphint, ddvipdf, eps2eps, fixmswrd.pl, font2c, gs, gsbj, gsc, gsdj, gsdj500,
gslj, gslp, gsnd, gsx, lprsetup.sh, pdf2dsc, pdf2ps, pdfopt, pf2afm, pfbtopfa, pj-gs.sh,
printafm, ps2ascii, ps2epsi, ps2pdf, ps2pdf12, ps2pdf13, ps2pdf14, ps2pdfwr, ps2ps,
pv.sh, unix-lpr.sh, and wftopfa
Installed Library: libgs.so
Installed Directories: /usr/include/ps and /usr/share/ghostscript
Short Descriptions
gs invokes Ghostscript, an interpreter of Adobe Systems' PostScript(tm) and Portable Document Format (PDF)
languages.
AFPL Ghostscript provides many different scripts used to render PostScript/PDF files back and forth. Please refer to
the HTML documentation or try man gs for information about the capabilities provided by the package.
1064
Beyond Linux® From Scratch - Version 6.3
ESP Ghostscript-8.15.4
Introduction to ESP Ghostscript
ESP Ghostscript is a versatile processor for PostScript data with the ability to render PostScript to different targets.
ESP Ghostscript is a customized version of GNU Ghostscript that includes an enhanced configuration script, the
CUPS raster driver to support CUPS raster printer drivers, and additional patches and drivers from various Linux
distributors.
Package Information
• Download (HTTP): http://ftp.funet.fi/pub/mirrors/ftp.easysw.com/pub/ghostscript/8.15.4/espgs-8.15.4-source.
tar.bz2
• Download (FTP): ftp://ftp.easysw.com/pub/ghostscript/8.15.4/espgs-8.15.4-source.tar.bz2
• Download MD5 sum: e74e0463e0bfb1cea3db245d8e71828c
• Download size: 8.7 MB
• Estimated disk space required: 108 MB (includes installing libgs.so and both font tarballs)
• Estimated build time: 2.3 SBU (includes building and installing libgs.so)
Additional Downloads
Required Patch
• http://www.linuxfromscratch.org/patches/blfs/6.3/espgs-8.15.4-bov_fix-1.patch
Standard Fonts
• Download (FTP): ftp://ftp.imagemagick.org/pub/ImageMagick/delegates/ghostscript-fonts-std-8.11.tar.gz
• Download MD5 sum: 6865682b095f8c4500c54b285ff05ef6
• Download size: 3.7 MB
Other Fonts
• Download (HTTP): http://ftp.gnu.org/pub/gnu/ghostscript/gnu-gs-fonts-other-6.0.tar.gz
• Download MD5 sum: 33457d3f37de7ef03d2eea05a9e6aa4f
• Download size: 796 KB
1065
Beyond Linux® From Scratch - Version 6.3
To build the shared libgs.so library you must have GTK+ installed and issue the following command:
make so
This package does not come with a test suite. However, you may test the operation of the newly built gs program by
issuing the following command (issue from an X Windows terminal):
bin/gs -Ilib -dBATCH examples/tiger.eps
Now, as the root user:
make install &&
install -d /usr/share/doc/espgs-8.15.4
ln -v -s ../../ghostscript/8.15/doc /usr/share/doc/espgs-8.15.4 &&
for INSTFILE in `ls doc`
do
if [ ! -f /usr/share/doc/espgs-8.15.4/$INSTFILE ]; then
install -v -m644 doc/$INSTFILE /usr/share/doc/espgs-8.15.4/
fi
done
If you built the shared library, install it and the associated programs by issuing the following commands as the root
user:
make soinstall &&
install -v -d -m755 /usr/include/ps &&
install -v -m644 src/*.h /usr/include/ps &&
ln -v -s ps /usr/include/ghostscript
To finish the installation, unpack all fonts you've downloaded to /usr/share/ghostscript and ensure the
ownerships of the files are root:root. Substitute <font-tarball> appropriately in the command below for
the fonts you wish to install:
tar -xvf ../<font-tarball> -C /usr/share/ghostscript &&
chown -v root:root /usr/share/ghostscript/fonts/*
Command Explanations
sed -i "s/bbox.dev$/x11.dev/" Makefile.in: This command changes the default gs output device from the bbox driver
to the x11 (screen) driver.
--enable-threads: This parameter enables threaded output.
--without-omni: This switch disables the omni driver support.
--without-ijs: This switch disables the IJS driver support.
install -v -m644 src/*.h /usr/include/ps: Some packages (ImageMagick is one) need the Ghostscript interface
headers in place to link to the shared library. These commands install the headers.
ln -v -s ps /usr/include/ghostscript: Some packages expect to find the interface headers in an alternate location.
for INSTFILE in `ls doc` ...: This “for” loop installs some documentation files that were not installed during the
installation process.
1066
Beyond Linux® From Scratch - Version 6.3
Contents
Installed Programs: bdftops, dvipdf, eps2eps, fixmswrd.pl, font2c, gs, gsbj, gsc, gsdj, gsdj500, gslj, gslp,
gsnd, gsx, lprsetup.sh, pdf2dsc, pdf2ps, pdfopt, pf2afm, pfbtopfa, printafm, ps2ascii,
ps2epsi, ps2pdf,ps2pdf12, ps2pdf13, ps2pdf14, ps2pdfwr, ps2ps, pv.sh, unix-lpr.sh,
and wftopfa
Installed Library: libgs.so
Installed Directories: /usr/include/ps and /usr/share/ghostscript
Short Descriptions
gs invokes Ghostscript, an interpreter of Adobe Systems' PostScript(tm) and Portable Document
Format (PDF) languages.
pstoraster is a filter used by CUPS to convert PostScript to a generic raster image format that is acceptable as
an input to drivers for non-PostScript printers (e.g., from Gutenprint-5.0.1). It is built and installed
only if CUPS-1.2.12 is found.
ESP Ghostscript provides many different scripts used to render PostScript/PDF files back and forth. Please refer to
the HTML documentation or try man gs for information about the capabilities provided by the package.
1067
Beyond Linux® From Scratch - Version 6.3
Gutenprint-5.0.1
Introduction to Gutenprint
The Gutenprint (formerly Gimp-Print) package contains high quality drivers for many brands and models of printers
for use with ESP Ghostscript-8.15.4, CUPS-1.2.12, Foomatic, LPRng-3.8.28, lpr and the GIMP-2.0. See a list of
supported printers at http://gutenprint.sourceforge.net/p_Supported_Printers.php3.
Package Information
• Download (HTTP): http://downloads.sourceforge.net/gimp-print/gutenprint-5.0.1.tar.bz2
•
• Download MD5 sum: 4ec66d57c1014b503d6bea16b1c31d81
• Download size: 4.8 MB
• Estimated disk space required: 49 MB
• Estimated build time: 0.9 SBU
Gutenprint Dependencies
Optional
CUPS-1.2.12, Foomatic, IJS, GIMP-2.2.17, GTK+-1.2.10, and GTK+-2.10.13
Installation of Gutenprint
Install Gutenprint by running the following commands:
sed -i 's|$(PACKAGE)/doc|doc/$(PACKAGE)-$(VERSION)|' \
doc{,/developer}/Makefile.in &&
./configure --prefix=/usr &&
make
To test the results, issue make check. This could take a very long time (100+ SBUs).
Now, as the root user:
Command Explanations
sed -i '...' doc{,/developer}/Makefile.in: This command is used so that the package documentation is installed in the
conventional /usr/share/doc directory structure instead of /usr/share/gutenprint/doc.
1068
Beyond Linux® From Scratch - Version 6.3
--with-translated-ppds=no: When this parameter is given, only US English PPD files for CUPS will be
built. Useful if the PPD files are not yet translated into your native language and you want to save some space by
not installing unneeded translations.
Configuring Gutenprint
Configuration Information
For CUPS to see newly installed PPD files, it has to be restarted (as the root user):
/etc/rc.d/init.d/cups restart
This command may take a long time (up to 10 minutes) to complete. Don't panic while CUPS is rescanning the list
of PPD files. The long delay will happen only once.
Then point your web browser to http://localhost:631/ to add a new printer to CUPS.
Contents
Installed Programs: cups-calibrate, cups-genppd.5.0, cups-genppdconfig.5.0, cups-genppdupdate.5.0,
escputil, ijsgutenprint.5.0, and testpattern
Installed Libraries: libgutenprint.{so,a}, libgutenprintui2.{so,a}, libgutenprintui2.{so,a} and optionally,
various CUPS filters and backend drivers
Installed Directories: /usr/include/gutenprint, /usr/lib/gimp/1.2, /usr/lib/gutenprint,
/usr/share/doc/gutenprint-5.0.1 and /usr/share/gutenprint
Short Descriptions
cups-calibrate calibrates the color output of printers using the Gutenprint, CUPS or ESP Print Pro
drivers.
escputil is a command line utility to perform various maintenance tasks on Epson Stylus inkjet
printers.
ijsgutenprint.5.0 is a Ghostscript driver for Gutenprint.
1069
Beyond Linux® From Scratch - Version 6.3
1070
Beyond Linux® From Scratch - Version 6.3
SANE-1.0.18
Introduction to SANE
SANE is short for Scanner Access Now Easy. Scanner access, however, is far from easy, since every vendor has their
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, and the
vendor drivers can't be used.
SANE is split into back ends and front ends. The back ends are drivers for the supported scanners and cameras. The
front ends are user interfaces to access the backends.
SANE Dependencies
Kernel Configuration
To access your scanner, you will probably need the related kernel drivers and/or additional support packages. A
SCSI scanner will need SCSI drivers, a parallel port scanner needs parallel port support (you should use enhanced
EPP modes) and perhaps libieee1284 and a USB scanner will need the libusb-0.1.12 package. Ensure you have the
necessary drivers properly configured to access the devices.
1071
Beyond Linux® From Scratch - Version 6.3
Installation of SANE
Installation of SANE Back Ends
Install SANE-backends by running the following commands:
./configure --prefix=/usr --sysconfdir=/etc &&
make
This package does not come with a test suite.
Now, as the root user:
make install
Command Explanations
--sysconfdir=/etc: This switch installs the configuration files in /etc/sane.d instead of
/usr/etc/sane.d.
Configuring SANE
Config Files
/etc/sane.d/*.conf
Configuration Information
Backend Configuration
The backend configuration files are located in /etc/sane.d. Information for configuring the various backends
can be found by using the man(5) page for the desired backend. Run man sane-<backend>, substituting the desired
backend.
1072
Beyond Linux® From Scratch - Version 6.3
General Information
For general information about configuring and using SANE, see man sane. Linux-2.6.x brings some special
issues into the picture. See http://www.sane-project.org/README.linux for information about using SANE with the
Linux-2.6.x kernel. For information about USB scanning devices, run man sane-usb. For information about SCSI
devices, run man sane-scsi.
Contents
Back Ends:
Installed Programs: gamma4scanimage, sane-config, saned, sane-find-scanner, and scanimage
Installed Libraries: libsane.so and numerous scanner backend modules
Installed Directories: /etc/sane.d, /usr/include/sane, /usr/lib/sane, /usr/share/sane, and
/usr/share/doc/sane-1.0.18
Front Ends:
Installed Programs: scanadf, xcam, and xscanimage
Installed Library: GIMP plugin embedded in xscanimage
Installed Directories: None
Short Descriptions
gamma4scanimage creates a gamma table in the format expected by scanimage.
sane-config is a tool used to determine the compiler and linker flags that should be used to compile
and link SANE.
saned is the SANE daemon that allows remote clients to access image acquisition devices
available on the local host.
sane-find-scanner is a command-line tool to find SCSI and USB scanners and determine their device files.
Its primary purpose is to make sure that scanners can be detected by SANE backends.
scanadf is a command-line interface to control image acquisition devices which are equipped with
an automatic document feeder (ADF).
scanimage is a command line interface for scanning from image acquisition devices such as flatbed
scanners or cameras. It is also used to list the available backend devices.
xcam is a graphical camera front end for SANE.
xscanimage is a graphical user interface for scanning.
libsane.so is the application programming interface that is used to communicate between frontends
and backends.
1073
Beyond Linux® From Scratch - Version 6.3
libsane-*.so modules are backend scanning library plugins used to interface with scanning devices.
See http://www.sane-project.org/sane-supported-devices.html for a list of supported
backends.
1074
Beyond Linux® From Scratch - Version 6.3
XSane-0.994
Introduction to XSane
XSane is another front end for SANE-1.0.18. It has additional features to improve the image quality and ease of use
compared to xscanimage.
Package Information
• Download (HTTP): http://gd.tuwien.ac.at/hci/sane/xsane/xsane-0.994.tar.gz
• Download (FTP): ftp://ftp2.sane-project.org/pub/sane/xsane/xsane-0.994.tar.gz
• Download MD5 sum: 7d02656026797a46a84bda63006f5668
• Download size: 3.3 MB
• Estimated disk space required: 23 MB
• Estimated build time: 0.2 SBU
XSane Dependencies
Required
Optional
Installation of XSane
Install XSane by running the following commands:
ln -v -s /usr/bin/xsane /usr/lib/gimp/2.0/plug-ins/
Command Explanations
ln -v -s ../../doc/xsane-0.994 /usr/share/sane/xsane/doc: This symlink is created to ensure that any program that
looks for the XSane documentation in the default location will find it, as the documentation is installed in an alternate
location specified in the make install command.
1075
Beyond Linux® From Scratch - Version 6.3
Contents
Installed Program: xsane
Installed Libraries: None
Installed Directory: /usr/share/doc/xsane-0.994 and /usr/share/sane/xsane
Short Descriptions
xsane is a graphical user-interface to control an image acquisition device such as a flatbed scanner.
1076
Beyond Linux® From Scratch - Version 6.3
1077
Beyond Linux® From Scratch - Version 6.3
SGML Common-0.6.3
Introduction to SGML Common
The SGML Common package contains install-catalog. This is useful for creating and maintaining centralized SGML
catalogs.
Package Information
• Download (HTTP): http://gd.tuwien.ac.at/hci/kde/devel/docbook/SOURCES/sgml-common-0.6.3.tgz
• Download (FTP): ftp://sources.redhat.com/pub/docbook-tools/new-trials/SOURCES/sgml-common-0.6.3.tgz
• Download MD5 sum: 103c9828f24820df86e55e7862e28974
• Download size: 75 KB
• Estimated disk space required: 1.5 MB
• Estimated build time: less than 0.1 SBU
Additional Downloads
• Required Patch: http://www.linuxfromscratch.org/patches/blfs/6.3/sgml-common-0.6.3-manpage-1.patch
1078
Beyond Linux® From Scratch - Version 6.3
Update Hint
Remove the above catalog items prior to upgrading (as the root user) with:
Configuration Information
No change in this file is necessary.
Contents
Installed Programs: install-catalog and sgmlwhich
Installed Libraries: None
Installed Files: SGML and XML DocBook entity files
Installed Directories: /etc/sgml, /usr/share/doc/sgml-common-0.6.3, and /usr/share/sgml
Short Descriptions
install-catalog creates a centralized catalog that maintains references to catalogs scattered throughout
the /usr/share/sgml directory tree.
sgmlwhich will print to standard output the name of the main configuration file.
SGML entities files contain the basic character entities defined with SDATA entries.
XML entities files contain the basic character entities defined by a hexadecimal representation of the
Unicode character number.
1079
Beyond Linux® From Scratch - Version 6.3
Package Information
• Download (HTTP): http://www.docbook.org/sgml/3.1/docbk31.zip
• Download (FTP): ftp://ftp.kde.org/pub/kde/devel/docbook/SOURCES/docbk31.zip
• Download MD5 sum: 432749c0c806dbae81c8bcb70da3b5d3
• Download size: 55 KB
• Estimated disk space required: 676 KB
• Estimated build time: 0.01 SBU
Required
1080
Beyond Linux® From Scratch - Version 6.3
Command Explanations
sed -i -e '/ISO 8879/d' docbook.cat: This command removes the ENT definitions from the catalog file.
sed -i -e 's|DTDDECL "-//OASIS//DTD Docbook V3.1//EN"|SGMLDECL|g' docbook.cat: This command
replaces the DTDDECL catalog entry, which is not supported by Linux SGML tools, with the SGMLDECL catalog
entry.
Configuration Information
The above installation script updates the catalog.
Using only the most current 3.x version of DocBook SGML DTD requires the following (perform as the root user):
Contents
Installed Programs: None
Installed Libraries: None
Installed Files: SGML DTD and MOD files
Installed Directory: /usr/share/sgml/docbook/sgml-dtd-3.1
Short Descriptions
SGML 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.
SGML MOD files contain components of the document type definition that are sourced into the DTD files.
1081
Beyond Linux® From Scratch - Version 6.3
Package Information
• Download (HTTP): http://www.docbook.org/sgml/4.5/docbook-4.5.zip
•
• Download MD5 sum: 07c581f4bbcba6d3aac85360a19f95f7
• Download size: 70 KB
• Estimated disk space required: 784 KB
• Estimated build time: 0.01 SBU
Command Explanations
sed -i -e '/ISO 8879/d' -e '/gml/d' docbook.cat: This command removes the ENT definitions from the catalog file.
1082
Beyond Linux® From Scratch - Version 6.3
Configuration Information
The above installation script updates the catalog.
Using only the most current 4.x version of DocBook SGML DTD requires the following (perform as the root user):
Contents
Installed Programs: None
Installed Libraries: None
Installed Files: SGML DTD and MOD files
Installed Directory: /usr/share/sgml/docbook/sgml-dtd-4.5
Short Descriptions
SGML 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.
SGML MOD files contain components of the document type definition that are sourced into the DTD files.
1083
Beyond Linux® From Scratch - Version 6.3
OpenSP-1.5.2
Introduction to OpenSP
The OpenSP package contains a C++ library for using SGML/XML files. This is useful for validating, parsing and
manipulating SGML and XML documents.
Package Information
• Download (HTTP): http://downloads.sourceforge.net/openjade/OpenSP-1.5.2.tar.gz
•
• Download MD5 sum: 670b223c5d12cee40c9137be86b6c39b
• Download size: 1.5 MB
• Estimated disk space required: 32 MB
• Estimated build time: 1.0 SBU
OpenSP Dependencies
Required
SGML Common-0.6.3
Optional
xmlto
Installation of OpenSP
Install OpenSP by running the following commands:
To test the results, issue make check. As many as eight of the 22 tests may fail. Do not be alarmed.
Now, as the root user:
1084
Beyond Linux® From Scratch - Version 6.3
Command Explanations
sed -i 's:32,:253,:...unicode.syn}: These seds prevent some annoying messages that may otherwise
appear while running openjade.
--disable-static: This switch prevents the building of the static library.
--enable-http: This switch adds support for HTTP.
--enable-default-catalog=/etc/sgml/catalog: This switch sets the path to the 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.
--disable-doc-build: This switch prevents the configure script checking if you have xmlto installed. If you
have xmlto, you can remove this option.
make pkgdatadir=/usr/share/sgml/OpenSP-1.5.2: This sets the pkgdatadir variable in the Makefile from
/usr/share/OpenSP to /usr/share/sgml/OpenSP-1.5.2.
ln -v -sf ...: These commands create the SP equivalents of OpenSP executables and libraries.
Contents
Installed Programs: onsgmls, osgmlnorm, ospam, ospcat, ospent, osx, and the SP equivalent symlinks:
nsgmls, sgml2xml, sgmlnorm, spam, spcat, spent, and sx
Installed Library: libosp.so and the SP equivalent symlink: libsp.so
Installed Directories: /usr/include/OpenSP, /usr/share/doc/OpenSP, and /usr/share/sgml/OpenSP-1.5.2
Short Descriptions
onsgmls is used to process SGML files.
osgmlnorm prints on the standard output a normalized document instance for the SGML document contained in
the concatenation of the entities with system identifiers .nf and .fi.
ospam is a markup stream editor.
ospcat prints effective system identifiers found in the catalogs.
ospent provides access to OpenSP's entity manager.
osx is an SGML normalizer or used to convert SGML files to XML files.
nsgmls is a symlink to onsgmls.
sgml2xml is a symlink to osx.
sgmlnorm is a symlink to osgmlnorm.
spam is a symlink to ospam.
spcat is a symlink to ospcat.
spent is a symlink to ospent.
sx is a symlink to osx.
libosp.so contains functions required by the OpenSP programs to parse, validate and manipulate SGML and
XML files.
1085
Beyond Linux® From Scratch - Version 6.3
1086
Beyond Linux® From Scratch - Version 6.3
OpenJade-1.3.2
Introduction to OpenJade
The OpenJade package contains a DSSSL engine. This is useful for SGML and XML transformations into RTF, TeX,
SGML and XML.
Package Information
• Download (HTTP): http://downloads.sourceforge.net/openjade/openjade-1.3.2.tar.gz
• Download (FTP): ftp://ftp.freestandards.org/pub/lsb/app-battery/packages/openjade-1.3.2.tar.gz
• Download MD5 sum: 7df692e3186109cc00db6825b777201e
• Download size: 880 KB
• Estimated disk space required: 19.2 MB
• Estimated build time: 0.7 SBU
OpenJade Dependencies
Required
OpenSP-1.5.2
Installation of OpenJade
Install OpenJade by running the following commands:
1087
Beyond Linux® From Scratch - Version 6.3
Command Explanations
make install-man: This command installs the openjade man page.
--disable-static: This switch prevents the building of the static library.
--enable-http: This switch adds support for HTTP.
--enable-default-catalog=/etc/sgml/catalog: This switch sets the path to the 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 -v -sf ...: These commands create the Jade equivalents of OpenJade executables and libraries.
Configuring OpenJade
Configuration Information
echo "SYSTEM \"http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd\" \
\"/usr/share/xml/docbook/xml-dtd-4.5/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
Stylesheets.
Contents
Installed Programs: openjade and the Jade equivalent symlink, jade
Installed Libraries: libogrove.so, libospgrove.so, libostyle.so, and the Jade equivalent symlinks:
libgrove.so, libspgrove.so, and libstyle.so
Installed Directory: /usr/share/sgml/openjade-1.3.2
Short Descriptions
openjade is a DSSSL engine used for transformations.
jade is a symlink to openjade.
1088
Beyond Linux® From Scratch - Version 6.3
Package Information
• Download (HTTP): http://downloads.sourceforge.net/docbook/docbook-dsssl-1.79.tar.bz2
• Download (FTP): ftp://ftp.linux.ee/pub/gentoo/distfiles/distfiles/docbook-dsssl-1.79.tar.bz2
• Download MD5 sum: bc192d23266b9a664ca0aba4a7794c7c
• Download size: 277 KB
• Estimated disk space required: 14 MB
• Estimated build time: less than 0.1 SBU
Additional Downloads
• Documentation and test data: http://downloads.sourceforge.net/docbook/docbook-dsssl-doc-1.79.tar.bz2
• Download MD5 sum: 9a7b809a21ab7d2749bb328334c380f2
• Download size: 142 KB
Command Explanations
The above commands create an installation script for this package.
1089
Beyond Linux® From Scratch - Version 6.3
cd /usr/share/sgml/docbook/dsssl-stylesheets-1.79/doc/testdata
The first test should produce no output to stdout (your screen) and create a file named jtest.rtf in the current
directory:
The next test should return only the following line to stdout: onsgmls:I: "OpenSP" version "1.5.2"
The next test should produce no output to stdout and create a file named test.rtf in the current directory:
openjade -t rtf \
-d /usr/share/sgml/docbook/dsssl-stylesheets-1.79/print/docbook.dsl \
test.sgm
The last test should produce no output to stdout and create a file named c1.htm in the current directory:
openjade -t sgml \
-d /usr/share/sgml/docbook/dsssl-stylesheets-1.79/html/docbook.dsl \
test.sgm
Contents
Installed Program: collateindex.pl
Installed Libraries: None
Installed Files: DSSSL stylesheets
Installed Directory: /usr/share/sgml/docbook/dsssl-stylesheets-1.79
Short Descriptions
collateindex.pl is a Perl script that creates a DocBook index from raw index data.
1090
Beyond Linux® From Scratch - Version 6.3
DocBook-utils-0.6.14
Introduction to DocBook-utils
The DocBook-utils package is a collection of utility scripts used to convert and analyze SGML documents in general,
and DocBook files in particular. The scripts are used to convert from DocBook or other SGML formats into “classical”
file formats like HTML, man, info, RTF and many more. There's also a utility to compare two SGML files and only
display the differences in markup. This is useful for comparing documents prepared for different languages.
Package Information
• Download (HTTP): http://sources-redhat.mirrors.redwire.net/docbook-tools/new-trials/SOURCES/docbook-
utils-0.6.14.tar.gz
• Download (FTP): ftp://sources.redhat.com/pub/docbook-tools/new-trials/SOURCES/docbook-utils-0.6.14.tar.gz
• Download MD5 sum: 6b41b18c365c01f225bc417cf632d81c
• Download size: 124 KB
• Estimated disk space required: 1.44 MB
• Estimated build time: less than 0.1 SBU
DocBook-utils Dependencies
Required
OpenJade-1.3.2, DocBook DSSSL Stylesheets-1.79 and DocBook SGML DTD-3.1
Installation of DocBook-utils
Install DocBook-utils by running the following commands:
make install
Many packages use an alternate name for the DocBook-utils scripts. If you wish to create these alternate names, use
the following command:
for doctype in html ps dvi man pdf rtf tex texi txt
do
ln -s docbook2$doctype /usr/bin/db2$doctype
done
1091
Beyond Linux® From Scratch - Version 6.3
Note
The jw script uses the which command to locate required utilities. You must install which-2.19 before
attempting to use any of the DocBook-utils programs.
Command Explanations
sed -i 's:/html::' doc/HTML/Makefile.in: This command changes the installation directory of the HTML documents.
Contents
Installed Programs: docbook2dvi, docbook2html, docbook2man, docbook2pdf, docbook2ps, docbook2rtf,
docbook2tex, docbook2texi, docbook2txt, jw, and sgmldiff
Installed Libraries: None
Installed Directories: /usr/share/doc/docbook-utils-0.6.14 and /usr/share/sgml/docbook/utils-0.6.14
Installed Symlinks: db2dvi, db2html, db2man, db2pdf, db2ps, db2rtf, db2tex, db2texi, and db2txt
Short Descriptions
docbook2* are simple one-line wrapper scripts to jw. They are provided as easy-to-remember names used to
convert DocBook or other SGML files to the respective format.
db2* are symlinks pointing at the respectively named docbook2* commands, created to satisfy some
program's use of these names.
jw is a script used to convert DocBook or other SGML files to various output formats. It hides most of
OpenJade's complexity and adds comfortable features.
sgmldiff is used to compare two SGML files and only return the differences in the markup. This is especially
useful to compare files that should be identical except for language differences in the content.
1092
Beyond Linux® From Scratch - Version 6.3
1093
Beyond Linux® From Scratch - Version 6.3
Package Information
• Download (HTTP): http://www.docbook.org/xml/4.5/docbook-xml-4.5.zip
• Download (FTP): ftp://ftp.linux.ee/pub/gentoo/distfiles/distfiles/docbook-xml-4.5.zip
• Download MD5 sum: 03083e288e87a7e829e437358da7ef9e
• Download size: 96 KB
• Estimated disk space required: 1.2 MB
• Estimated build time: less than 0.1 SBU
Install DocBook XML DTD by running the following commands as the root user:
install -v -d -m755 /usr/share/xml/docbook/xml-dtd-4.5 &&
install -v -d -m755 /etc/xml &&
chown -R root:root . &&
cp -v -af docbook.cat *.dtd ent/ *.mod \
/usr/share/xml/docbook/xml-dtd-4.5
Create (or update) and populate the /etc/xml/docbook catalog file by running the following commands as the
root user:
if [ ! -e /etc/xml/docbook ]; then
xmlcatalog --noout --create /etc/xml/docbook
fi &&
xmlcatalog --noout --add "public" \
"-//OASIS//DTD DocBook XML V4.5//EN" \
"http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" \
/etc/xml/docbook &&
xmlcatalog --noout --add "public" \
"-//OASIS//DTD DocBook XML CALS Table Model V4.5//EN" \
"file:///usr/share/xml/docbook/xml-dtd-4.5/calstblx.dtd" \
1094
Beyond Linux® From Scratch - Version 6.3
/etc/xml/docbook &&
xmlcatalog --noout --add "public" \
"-//OASIS//DTD XML Exchange Table Model 19990315//EN" \
"file:///usr/share/xml/docbook/xml-dtd-4.5/soextblx.dtd" \
/etc/xml/docbook &&
xmlcatalog --noout --add "public" \
"-//OASIS//ELEMENTS DocBook XML Information Pool V4.5//EN" \
"file:///usr/share/xml/docbook/xml-dtd-4.5/dbpoolx.mod" \
/etc/xml/docbook &&
xmlcatalog --noout --add "public" \
"-//OASIS//ELEMENTS DocBook XML Document Hierarchy V4.5//EN" \
"file:///usr/share/xml/docbook/xml-dtd-4.5/dbhierx.mod" \
/etc/xml/docbook &&
xmlcatalog --noout --add "public" \
"-//OASIS//ELEMENTS DocBook XML HTML Tables V4.5//EN" \
"file:///usr/share/xml/docbook/xml-dtd-4.5/htmltblx.mod" \
/etc/xml/docbook &&
xmlcatalog --noout --add "public" \
"-//OASIS//ENTITIES DocBook XML Notations V4.5//EN" \
"file:///usr/share/xml/docbook/xml-dtd-4.5/dbnotnx.mod" \
/etc/xml/docbook &&
xmlcatalog --noout --add "public" \
"-//OASIS//ENTITIES DocBook XML Character Entities V4.5//EN" \
"file:///usr/share/xml/docbook/xml-dtd-4.5/dbcentx.mod" \
/etc/xml/docbook &&
xmlcatalog --noout --add "public" \
"-//OASIS//ENTITIES DocBook XML Additional General Entities V4.5//EN" \
"file:///usr/share/xml/docbook/xml-dtd-4.5/dbgenent.mod" \
/etc/xml/docbook &&
xmlcatalog --noout --add "rewriteSystem" \
"http://www.oasis-open.org/docbook/xml/4.5" \
"file:///usr/share/xml/docbook/xml-dtd-4.5" \
/etc/xml/docbook &&
xmlcatalog --noout --add "rewriteURI" \
"http://www.oasis-open.org/docbook/xml/4.5" \
"file:///usr/share/xml/docbook/xml-dtd-4.5" \
/etc/xml/docbook
1095
Beyond Linux® From Scratch - Version 6.3
Create (or update) and populate the /etc/xml/catalog catalog file by running the following commands as the
root user:
if [ ! -e /etc/xml/catalog ]; then
xmlcatalog --noout --create /etc/xml/catalog
fi &&
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
1096
Beyond Linux® From Scratch - Version 6.3
Configuration Information
The above installation creates the files and updates the catalogs. In order to install ScrollKeeper or to utilize DocBook
XML DTD V4.5 when any version 4.x is requested in the System Identifier, you need to add additional statements
to the catalog files. If you have any of the DocBook XML DTD's referenced below already installed on your system,
remove those entries from the for command below (issue the commands as the root user):
Contents
Installed Programs: None
Installed Libraries: None
Installed Files: DTD, MOD and ENT files
Installed Directories: /etc/xml and /usr/share/xml/docbook/xml-dtd-4.5
Short Descriptions
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 files contain components of the document type definition that are sourced into the DTD files.
ENT files files contain lists of named character entities allowed in HTML.
1097
Beyond Linux® From Scratch - Version 6.3
Package Information
• Download (HTTP): http://downloads.sourceforge.net/docbook/docbook-xsl-1.71.1.tar.bz2
•
• Download MD5 sum: 6a269abc854ae949b2cfd6377bc17fde
• Download size: 1.4 MB
• Estimated disk space required: 40 MB (includes installing optional documentation)
• Estimated build time: less than 0.1 SBU
Additional Downloads
• Optional documentation: http://downloads.sourceforge.net/docbook/docbook-xsl-doc-1.71.1.tar.bz2
• Download MD5 sum: f7844a751a4612c56acddc0790fbc501
• Download size: 1.3 MB
1098
Beyond Linux® From Scratch - Version 6.3
Configuration Information
Create (or append) and populate the XML catalog file using the following commands as the root user:
Occasionally, you may find the need to install other versions of the XSL stylesheets as some projects reference a
specific version. One example is BLFS-6.0, which required the 1.67.2 version. In these instances you should install
any other required version in its own versioned directory and create catalog entries as follows (substitute the desired
version number for <version>):
1099
Beyond Linux® From Scratch - Version 6.3
Contents
Installed Programs: None
Installed Libraries: None
Installed Files: XSL style sheets for HTML and FO
Installed Directories: /usr/share/xml/docbook/xsl-stylesheets-1.71.1 and /usr/share/doc/docbook-xsl-1.71.1
1100
Beyond Linux® From Scratch - Version 6.3
1101
Beyond Linux® From Scratch - Version 6.3
a2ps-4.14
Introduction to a2ps
a2ps is a filter utilized mainly in the background and primarily by printing scripts to convert almost every input format
into PostScript output. The application's name expands appropriately to “all to PostScript”.
Caution
a2ps cannot convert UTF-8 encoded text to PostScript. The issue is discussed in detail in the Needed
Encoding Not a Valid Option section of the Locale Related Issues page. The solution is to use paps-0.6.8
instead of a2ps for converting UTF-8 encoded text to PostScript.
Package Information
• Download (HTTP): http://ftp.gnu.org/gnu/a2ps/a2ps-4.14.tar.gz
• Download (FTP): ftp://ftp.gnu.org/gnu/a2ps/a2ps-4.14.tar.gz
• Download MD5 sum: 781ac3d9b213fa3e1ed0d79f986dc8c7
• Download size: 2.6 MB
• Estimated disk space required: 22 MB
• Estimated build time: 0.3 SBU
Additional Downloads
• International fonts: ftp://ftp.enst.fr/pub/unix/a2ps/i18n-fonts-0.1.tar.gz
a2ps Dependencies
Recommended
PSUtils-p17, and CUPS-1.2.12 or LPRng-3.8.28 (otherwise, a2ps will use the cat >/dev/lp0 command instead of lpr
for sending its output to the printer)
Optional
X Window System, teTeX-3.0, AFPL Ghostscript-8.53 or ESP Ghostscript-8.15.4, libpaper, Adobe Reader, and
Ghostview
Installation of a2ps
Install a2ps by running the following commands:
1102
Beyond Linux® From Scratch - Version 6.3
To test the results, issue: make check. The printers.tst test will fail, as there is no default test printer. The
styles.tst may also fail, as the tests report some inconsistencies between the generated postscript and the
reference sets. This is caused by version number differences between the postscript test files and those generated by
the tests — these do not affect the operation of the program and can be ignored.
Now, as the root user:
make install
If desired, install the downloaded i18n-fonts by running the following commands as the root user:
Command Explanations
sed -i 's/+0 -1/-k 1,2/' afm/make_fonts_map.sh: The make_fonts_map.sh script uses an option that is invalid
with the version of sort installed as part of Coreutils-6.9. If you are using an older version of Coreutils, skip this step.
sed -i -e "s|/usr/local/share|/usr/share|" configure: This command modifies the configure script to search for
Ghostscript fonts at the location where they were installed by the BLFS instructions.
--sysconfdir=/etc/a2ps: Configuration data is installed in /etc/a2ps instead of /usr/etc.
--enable-shared: This switch enables building the dynamic liba2ps library.
--with-medium=letter: This switch changes the default paper format to US letter. It can either be given here
or set in /etc/a2ps/a2ps-site.cfg after installation. The default is A4, but there are several other options,
in particular: A4dj or letterdj are good settings for HP Deskjet and other printers that need wider paper-handling
margins. See /etc/a2ps/a2ps.cfg after installation.
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
Installed Programs: a2ps, card, composeglyphs, fixnt, fixps, ogonkify, pdiff, psmandup, psset, and
texi2dvi4a2ps
Installed Libraries: liba2ps.{so,a} and filter data
Installed Directories: /etc/a2ps and /usr/share/a2ps
1103
Beyond Linux® From Scratch - Version 6.3
Short Descriptions
a2ps is a filter, utilized primarily by printing scripts, that converts standard input or supported files
to PostScript.
card prints a reference card of a given program's options.
composeglyphs creates a composite font program.
fixnt is supposed to fix the problems in the PostScript files generated by the Microsoft PostScript
driver under Windows NT (3.5 and 4.0).
fixps tries to fix common PostScript problems that break postprocessing.
ogonkify provides international support for Postscript by performing various munging of PostScript files
related to printing in different languages.
pdiff produces a pretty comparison between files.
psmandup tries to produce a version of a given PostScript file to print in manual duplex.
psset produces a version of a given PostScript file with a protected call to the PostScript operator
'setpagedevice'. Typical use is making a file print duplex, or on the manual tray, etc.
texi2dvi4a2ps compiles Texinfo and LaTeX files to DVI or PDF
1104
Beyond Linux® From Scratch - Version 6.3
Enscript-1.6.4
Introduction to Enscript
Enscript converts ASCII text files to PostScript, HTML, RTF, ANSI and overstrikes.
Caution
Enscript cannot convert UTF-8 encoded text to PostScript. The issue is discussed in detail in the Needed
Encoding Not a Valid Option section of the Locale Related Issues page. The solution is to use paps-0.6.8,
instead of Enscript, for converting UTF-8 encoded text to PostScript.
Package Information
• Download (HTTP): http://fresh.t-systems-sfr.com/unix/src/misc/enscript-1.6.4.tar.gz
• Download (FTP): ftp://ftp.linux.ee/pub/gentoo/distfiles/distfiles/enscript-1.6.4.tar.gz
• Download MD5 sum: b5174b59e4a050fb462af5dbf28ebba3
• Download size: 1.0 MB
• Estimated disk space required: 11.5 MB
• Estimated build time: less than 0.1 SBU
Additional Downloads
• Required patch: http://www.linuxfromscratch.org/patches/blfs/6.3/enscript-1.6.4-security_fixes-1.patch
Installation of Enscript
Install Enscript by running the following commands:
Though it is very sparse, if you have teTeX-3.0 installed, you can create alternate forms of the documentation by
issuing any or all of the following commands:
cd docs &&
texi2html enscript.texi &&
makeinfo --plaintext -o enscript.txt enscript.texi &&
cd ..
1105
Beyond Linux® From Scratch - Version 6.3
If you built any of the alternate forms of documentation, install it using the following command as the root user:
Command Explanations
--sysconfdir=/etc/enscript: This switch puts configuration data in /etc/enscript instead of
/usr/etc.
--localstatedir=/var: This switch sets the directory for runtime data to /var instead of /usr/var.
--with-media=Letter: This switch sets the medium format to letter.
Contents
Installed Programs: diffpp, enscript, mkafmmap, over, sliceprint, and states
Installed Libraries: None
Installed Directories: /etc/enscript, /usr/share/doc/enscript-1.6.4 and /usr/share/enscript
Short Descriptions
diffpp converts diff output files to a format suitable to be printed with enscript.
enscript is a filter, used primarily by printing scripts, that converts ASCII text files to PostScript, HTML,
RTF, ANSI and overstrikes.
mkafmmap creates a font map from a given file.
over is a script which calls enscript and passes the correct parameters to create overstriked fonts.
sliceprint slices documents with long lines.
states is an awk-like text processing tool with some state machine extensions. It is designed for program
source code highlighting and for similar tasks where state information helps input processing.
1106
Beyond Linux® From Scratch - Version 6.3
PSUtils-p17
Introduction to PSUtils
PSUtils is a set of utilities to manipulate PostScript files.
Package Information
• Download (HTTP): http://gd.tuwien.ac.at/publishing/tex/tex-utils/psutils/psutils-p17.tar.gz
•
• Download MD5 sum: b161522f3bd1507655326afa7db4a0ad
• Download size: 68 KB
• Estimated disk space required: 740 KB
• Estimated build time: 0.01 SBU
Installation of PSUtils
Install PSUtils by running the following commands:
make install
Command Explanations
sed 's@/usr/local@/usr@g' Makefile.unix > Makefile: This command creates a Makefile that installs the
program to the /usr prefix instead of the /usr/local prefix.
Contents
Installed Programs: epsffit, extractres, fixdlsrps, fixfmps, fixmacps, fixpsditps, fixpspps, fixscribeps,
fixtpps, fixwfwps, fixwpps, fixwwps, getafm, includeres, psbook, psmerge, psnup,
psresize, psselect, pstops, and showchar
Installed Libraries: None
Installed Directories: /usr/share/psutils
Sometimes psnup and other utilities from this package produce PostScript files that don't conform to Adobe's DSC
standard. CUPS may print them incorrectly. On the other hand, CUPS has builtin replacements for most commands
from this package. For example, to print a document 2-up, you can issue this command:
lp -o number-up=2 <filename>
Short Descriptions
epsffit fits an EPSF file to a given bounding box.
psbook rearranges pages into signatures.
1107
Beyond Linux® From Scratch - Version 6.3
1108
Beyond Linux® From Scratch - Version 6.3
GSview-4.8
Introduction to GSview
GSview is a viewer for PostScript and PDF using X.
Package Information
• Download (HTTP): http://gd.tuwien.ac.at/publishing/ghostscript/ghostgum/gsview-4.8.tar.gz
•
• Download MD5 sum: 21c81819af0eeb42ac5ee6499f4a7116
• Download size: 931 KB
• Estimated disk space required: 11.4 MB
• Estimated build time: 0.1 SBU
Additional Downloads
• Required Patch: http://www.linuxfromscratch.org/patches/blfs/6.3/gsview-4.8-pstotext-1.patch
GSview Dependencies
Required
GTK+-1.2.10, and AFPL Ghostscript-8.53 or ESP Ghostscript-8.15.4
Note that you must build the shared libgs.so library during the Ghostscript installation else the gsview program
will fail at run-time.
Installation of GSview
GSview uses netscape to browse through the online help. BLFS does not install Netscape, but has other browsers
from which to choose. You can create a symlink from your preferred browser to /usr/bin/netscape, or simply
edit srcunx/gvxreg.c using the following sed script with your browser's executable file name substituted for
<browser>:
sed -i 's:netscape:<browser>:' srcunx/gvxreg.c
The GSview package has not been updated in quite a while and does not accomodate the recent versions of the ESP
Ghostscript package. If you installed ESP Ghostscript-8.15.4 as your Ghostscript application, you must modify the
maximum version of Ghostscript allowed. Make the modification using the following command:
sed -i 's:999:99999:' src/gvcver.h
Install GSview by running the following commands:
patch -Np1 -i ../gsview-4.8-pstotext-1.patch &&
sed 's:/local::' srcunx/unx.mak > Makefile &&
make
This package does not come with a test suite.
Now, as the root user:
make install
1109
Beyond Linux® From Scratch - Version 6.3
Command Explanations
sed 's:/local::' srcunx/unx.mak > Makefile: This command changes the default installation directory to /usr during
the creation of the Makefile.
Configuring GSview
Config Files
/etc/gsview/*
Contents
Installed Programs: gsview and gsview-help
Installed Libraries: None
Installed Directories: /etc/gsview and /usr/share/doc/gsview-4.8
Short Descriptions
gsview is a viewer for PostScript (PS) and PDF files.
gsview-help is a script for displaying help files in your chosen browser.
1110
Beyond Linux® From Scratch - Version 6.3
Xpdf-3.02
Introduction to Xpdf
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.
Package Information
• Download (HTTP): http://gd.tuwien.ac.at/publishing/xpdf/xpdf-3.02.tar.gz
• Download (FTP): ftp://ftp.foolabs.com/pub/xpdf/xpdf-3.02.tar.gz
• Download MD5 sum: 599dc4cc65a07ee868cf92a667a913d2
• Download size: 674 KB
• Estimated disk space required: 46 MB
• Estimated build time: 0.4 SBU
Additional Downloads
• Required patch: ftp://ftp.foolabs.com/pub/xpdf/xpdf-3.02pl2.patch
Xpdf Dependencies
Required
LessTif-0.95.0
Optional
AFPL Ghostscript-8.53 or ESP Ghostscript-8.15.4 (just the fonts), t1lib, and libpaper
Installation of Xpdf
Install Xpdf by running the following commands:
make install
Command Explanations
--enable-a4-paper: This switch must be added to set DIN A4 as the standard paper format.
1111
Beyond Linux® From Scratch - Version 6.3
Configuring Xpdf
Config Files
/etc/xpdfrc and ~/.xpdfrc
Configuration Information
In the /etc directory you will find a sample xpdfrc that can be either copied to ~/.xpdfrc or taken as an example
to write your own configuration file. Below you'll find a condensed version of the file you may wish to build from.
# 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/share/fonts/X11-TTF
psFile "|lpr"
psPaperSize letter
#psPaperSize A4
textEOL unix
enableT1lib yes
enableFreeType yes
antialias yes
Contents
Installed Programs: pdffonts, pdfimages, pdfinfo, pdftoppm, pdftops, pdftotext, and xpdf
Installed Libraries: None
Installed Directories: None
Short Descriptions
pdffonts lists the fonts used in a PDF file along with various information for each font.
1112
Beyond Linux® From Scratch - Version 6.3
pdfimages saves images from a PDF file as PPM, PBM, or JPEG files.
pdfinfo prints the contents of the 'Info' dictionary (plus some other useful information) from a PDF file.
pdftoppm converts PDF files to PBM, PGM and PPM formats.
pdftops converts PDF files to Postscript format.
pdftotext parses ASCII text from PDF files.
xpdf displays files in PDF format.
1113
Beyond Linux® From Scratch - Version 6.3
FOP-0.93
Introduction to FOP
The FOP (Formatting Objects Processor) package contains a print formatter driven by XSL formatting objects
(XSL-FO). It is a Java application that reads a formatting object tree and renders the resulting pages to a specified
output. Output formats currently supported include PDF, PCL, PostScript, SVG, XML (area tree representation),
print, AWT, MIF and ASCII text. The primary output target is PDF.
Package Information
• Download (HTTP): http://archive.apache.org/dist/xmlgraphics/fop/source/fop-0.93-src.tar.gz
• Download (FTP): ftp://anduin.linuxfromscratch.org/BLFS/6.3/f/fop-0.93-src.tar.gz
• Download MD5 sum: 184c578a6269a8287ed150e0fc12868d
• Download size: 11.7 MB
• Estimated disk space required: 216 MB
• Estimated build time: 0.9 SBU
Additional Downloads
Required packages
FOP Dependencies
Required
Apache Ant-1.7.0
Optional
JIMI SDK, XMLUnit, and Forrest (only used to rebuild the documentation)
Installation of FOP
Ensure $JAVA_HOME is set correctly before beginning the build. To build the JIMI SDK and/or XMLUnit extension
classes, ensure the corresponding .jar files are identified in the CLASSPATH environment variable.
1114
Beyond Linux® From Scratch - Version 6.3
Installing JAI
Tip
The $FOP_BUILD_DIR/JAI.bin command below installs the JAI components in the JDK tree. You will
be required to view, and then accept (by entering a y keypress), a license agreement before the installation
will continue. If you are scripting (automating) the build, you'll need to account for this. There is information
about automating build commands in the Automated Building Procedures section of Chapter 2. Towards
the end of this section, specific information for automating this type of installation is discussed.
Install the JAI components by running the following commands as the root user while in the root of the FOP source
tree:
install -m755 ../jai-1_1_2_01-lib-linux-i586-jdk.bin JAI.bin &&
sed -i 's/tail +122/tail -n +122/' JAI.bin &&
FOP_BUILD_DIR=$(pwd) &&
cd $JAVA_HOME &&
$FOP_BUILD_DIR/JAI.bin &&
cd $FOP_BUILD_DIR &&
rm JAI.bin
Command Explanations
sed -i 's/tail +122/tail -n +122/' ...: The JAI binary file has a tail command imbedded in the file which uses obsolete
syntax and causes the file to unpack incorrectly. This command fixes the obsolete syntax.
1115
Beyond Linux® From Scratch - Version 6.3
$FOP_BUILD_DIR/JAI.bin: This command installs the JAI components into the JDK file structure. $FOP_
BUILD_DIR is used as a reference point to the source executable and as a method to return back to the FOP source
tree.
ant: This reads the build.xml file and performs the default all target which builds the package and runs the
unit regression tests.
ant javadocs: This builds the Java API documentation. Omit this step if desired.
ln -v -sf fop-0.93 /opt/fop: This is optional and creates a convenience symlink so that $FOP_HOME doesn't have to
be changed each time there's a package version change.
Configuring FOP
Config Files
~/.foprc
Configuration Information
Using FOP to process some large FO's (including the FO derived from the BLFS XML sources), can lead to memory
errors. Unless you add a parameter to the java command used in the fop script you may receive messages similar
to the one shown below:
Exception in thread "main" java.lang.OutOfMemoryError: Java heap space
To avoid errors like this, you need to pass an extra parameter to the java command used in the fop script. This can be
accomplished by creating a ~/.foprc (which is sourced by the fop script) and adding the parameter to the FOP_
OPTS environment variable.
The fop script looks for a FOP_HOME environment variable to locate the FOP class libraries. You can create this
variable using the ~/.foprc file as well. Create a ~/.foprc file using the following commands:
cat > ~/.foprc << "EOF"
FOP_OPTS="-Xmx<RAM_Installed>m"
FOP_HOME="/opt/fop"
EOF
Replace <RAM_Installed> with a number representing the amount of RAM installed in your computer (in
megabytes). An example would be FOP_OPTS="-Xmx768m". For more information about memory issues running
FOP, see http://xml.apache.org/fop/running.html#memory.
To include the fop script in your path, update your personal or system-wide profile with the following:
PATH=$PATH:/opt/fop
Contents
Installed Programs: fop
Installed Libraries: fop.jar and numerous support library classes located in /opt/fop/{build,lib};
JAI components include libmlib_jai.so, jai_codec.jar, jai_core.jar, and
mlibwrapper_jai.jar
Installed Directory: /opt/fop-0.93
1116
Beyond Linux® From Scratch - Version 6.3
Short Descriptions
fop is a wrapper script to the java command which sets up the FOP environment and passes the required
parameters.
fop.jar contains all the FOP Java classes.
1117
Beyond Linux® From Scratch - Version 6.3
paps-0.6.8
Introduction to paps
paps is a text to PostScript converter that works through Pango. Its input is a UTF-8 encoded text file and it outputs
vectorized PostScript. It may be used for printing any complex script supported by Pango.
Package Information
• Download (HTTP): http://downloads.sourceforge.net/paps/paps-0.6.8.tar.gz
•
• Download MD5 sum: e9508132bf27609bf2fded2bfd9cb3f1
• Download size: 460 KB
• Estimated disk space required: 3 MB
• Estimated build time: less than 0.1 SBU
paps Dependencies
Required
Pango-1.16.4
Optional
Doxygen-1.5.2
Installation of paps
Install paps by running the following commands:
./configure --prefix=/usr &&
make
To test the results, issue: src/test_libpaps > test.ps. View the output file in any available PostScript viewer and
visually compare it to doxygen-doc/html/example-output.png in the source tree. The results of the output
will be more robust with DejaVu, Arphic, and Kochi fonts installed as explained in the Xft Font Protocol Section
of the X Window System configuration.
Now, as the root user:
make install &&
install -v -m755 -d /usr/share/doc/paps-0.6.8 &&
install -v -m644 doxygen-doc/html/* /usr/share/doc/paps-0.6.8
Contents
Installed Program: paps
Installed Library: libpaps.a
Installed Directory: /usr/share/doc/paps-0.6.8
Short Descriptions
paps is a text to PostScript converter that supports UTF-8 character encoding.
1118
Beyond Linux® From Scratch - Version 6.3
1119
Beyond Linux® From Scratch - Version 6.3
1120
Beyond Linux® From Scratch - Version 6.3
teTeX-3.0
Introduction to teTeX
teTeX is an implementation of Donald Knuth's TeX typesetting program. This package is able to create documents
in a variety of formats. The optional texmfsrc (TeX METAFONT) tarball contains source code for programs to
create and manipulate TeX fonts.
Package Information
•
• Download (FTP): ftp://tug.ctan.org/tex-archive/systems/unix/teTeX/3.0/distrib/tetex-src-3.0.tar.gz
• Download MD5 sum: 944a4641e79e61043fdaf8f38ecbb4b3
• Download size: 12.7 MB
• Estimated disk space required: 423 MB (549 MB with optional tarball, additional 231 MB for CM-Super fonts)
• Estimated build time: 2.1 SBU
Additional Downloads
Required Macros and Fonts
•
• Download (FTP): ftp://tug.ctan.org/tex-archive/systems/unix/teTeX/3.0/distrib/tetex-texmf-3.0.tar.gz
• Download MD5 sum: ed9d30d9162d16ac8d5065cde6e0f6fa
• Download size: 87.1 MB
Optional 'texmf' Sources:
•
• Download (FTP): ftp://tug.ctan.org/tex-archive/systems/unix/teTeX/3.0/distrib/tetex-texmfsrc-3.0.tar.gz
• Download MD5 sum: 66c32a11964a49982ba2a32d3bbfe7f5
• Download size: 57.7 MB
Optional 'cm-super' Sources:
teTeX Dependencies
Required
Ed-0.8
Optional
1121
Beyond Linux® From Scratch - Version 6.3
Installation of teTeX
Before building teTeX, the macros and fonts package (texmf tarball) must be installed. Install the macros and fonts
using the following commands as the root user:
If the optional texmfsrc source code TAR ball was downloaded, unpack it now as the root user:
./configure --prefix=/usr \
--exec-prefix=/usr \
--bindir=/usr/bin \
--without-texinfo \
--with-x=no \
--with-system-ncurses \
--with-system-zlib &&
make all
To test the results, issue: make check. The tests should complete without errors (there may be some errors which
are ignored).
Note
The paper size may be changed to a4, as is used in most countries.
1122
Beyond Linux® From Scratch - Version 6.3
To install the optional cm-super fonts, perform the following instructions as the root user:
tar -xf ../tetex-cm-super.tar.bz2 &&
FONTDIR=$(kpsewhich --expand-var '$TEXMFMAIN') &&
mkdir -v -p $FONTDIR/fonts/afm/public/cm-super \
$FONTDIR/fonts/type1/public/cm-super \
$FONTDIR/fonts/enc/dvips/cm-super \
$FONTDIR/fonts/map/dvips/cm-super &&
mktexlsr &&
updmap-sys &&
unset FONTDIR
Command Explanations
--with-x=no: This switch will avoid any X dependencies. teTeX can be compiled with X support, notably for
xdvi. If this is desired, remove this parameter.
--exec-prefix=/usr --bindir=/usr/bin: These switches ensure that teTeX binaries are installed in
/usr/bin.
--without-texinfo: A default LFS installation already has the Texinfo package installed. This switch will
avoid overwriting it with the included Texinfo package.
--with-system-ncurses: This switch specifies using the already installed libncurses library.
--with-system-zlib: A default LFS installation already has the Zlib library installed. This switch will avoid
replacing it with the included Zlib library.
--disable-a4: Use this option to set the default paper size to letter and the default unit to inch.
1123
Beyond Linux® From Scratch - Version 6.3
texconfig-sys dvips paper letter: This command sets the default paper size for teTeX.
texconfig-sys font rw: This command specifies creating and using a directory for globally writeable fonts.
mktexlsr: This command recreates the teTeX ls-R databases after installing the CM-Super fonts.
updmap-sys: This command updates the system-wide font configuration to include the CM-Super fonts.
Tip
Run ./configure --help for information about using other switches which will enable the build to use other
installed packages you may have on your system.
Contents
Installed Programs: 100 separate binaries and scripts along with 30 symlinks to these programs.
Installed Library: libkpathsea.a
Installed Directories: /usr/include/kpathsea, /var/tmp/texfonts and the following subdirectories of /usr/share/:
texi2html, texinfo/html, texmf, texmf-config and texmf-var
Short Descriptions
teTeX programs included in the teTeX package are too numerous to individually list. Please refer to the
individual program man pages and file:///usr/share/texmf/doc/index.html for details, as well
as a tour of the expansive teTeX documentation.
libkpathsea.a contains functions used by teTeX for searching and cataloging path names.
1124
Beyond Linux® From Scratch - Version 6.3
JadeTeX-3.13
Introduction to JadeTeX
The JadeTeX package is a companion package to the OpenJade DSSSL processor. JadeTeX transforms high level
LaTeX macros into DVI/PostScript and Portable Document Format (PDF) forms.
Package Information
• Download (HTTP): http://downloads.sourceforge.net/jadetex/jadetex-3.13.tar.gz
• Download (FTP): ftp://ftp.linux.ee/pub/gentoo/distfiles/distfiles/jadetex-3.13.tar.gz
• Download MD5 sum: 634dfc172fbf66a6976e2c2c60e2d198
• Download size: 103 KB
• Estimated disk space required: 9.3 MB
• Estimated build time: less than 0.1 SBU
Additional Downloads
• Recommended demo files: http://anduin.linuxfromscratch.org/sources/BLFS/6.3/j/jadetex-3.13-demo.tar.bz2
JadeTeX Dependencies
Required
Installation of JadeTeX
If you downloaded the demo files tarball, unpack it along with the source tarball. It will unpack as a demo directory
in the root of the source tree.
First, as the root user, make some required modifications to the texmf.cnf file already installed on the system
by the teTeX package, then build a new latex.fmt file using the following commands:
% latex settings
main_memory.latex = 1100000
param_size.latex = 1500
stack_size.latex = 1500
hash_extra.latex = 15000
string_vacancies.latex = 45000
pool_free.latex = 47500
1125
Beyond Linux® From Scratch - Version 6.3
nest_size.latex = 500
save_size.latex = 5000
pool_size.latex = 500000
max_strings.latex = 55000
font_mem_size.latex= 400000
% jadetex settings
main_memory.jadetex = 1500000
param_size.jadetex = 1500
stack_size.jadetex = 1500
hash_extra.jadetex = 50000
string_vacancies.jadetex = 45000
pool_free.jadetex = 47500
nest_size.jadetex = 500
save_size.jadetex = 5000
pool_size.jadetex = 500000
max_strings.jadetex = 55000
% pdfjadetex settings
main_memory.pdfjadetex = 2500000
param_size.pdfjadetex = 1500
stack_size.pdfjadetex = 1500
hash_extra.pdfjadetex = 50000
string_vacancies.pdfjadetex = 45000
pool_free.pdfjadetex = 47500
nest_size.pdfjadetex = 500
save_size.pdfjadetex = 5000
pool_size.pdfjadetex = 500000
max_strings.pdfjadetex = 55000
EOF
LATEX_FMT_DIR="$(kpsewhich -expand-var '$TEXMFSYSVAR')/web2c" &&
mv -v $(kpsewhich latex.fmt) $(kpsewhich latex.fmt).orig &&
mv -v $LATEX_FMT_DIR/latex.log $LATEX_FMT_DIR/latex.log.orig &&
fmtutil-sys --byfmt latex
make
1126
Beyond Linux® From Scratch - Version 6.3
install -v -m755 -d \
$(kpsewhich -expand-var '$TEXMFLOCAL')/tex/jadetex/config &&
install -v -m644 dsssl.def jadetex.ltx *.sty \
$(kpsewhich -expand-var '$TEXMFLOCAL')/tex/jadetex &&
install -v -m644 {,pdf}jadetex.ini \
$(kpsewhich -expand-var '$TEXMFLOCAL')/tex/jadetex/config &&
FMTUTIL_CNF="$(kpsewhich fmtutil.cnf)" &&
mv $FMTUTIL_CNF $FMTUTIL_CNF.orig &&
cat $FMTUTIL_CNF.orig - >> $FMTUTIL_CNF << "EOF"
# JadeTeX formats:
jadetex etex - "&latex" jadetex.ini
pdfjadetex pdfetex - "&pdflatex" pdfjadetex.ini
EOF
mv -v $(kpsewhich -expand-var '$TEXMFMAIN')/ls-R \
$(kpsewhich -expand-var '$TEXMFMAIN')/ls-R.orig &&
mv -v $(kpsewhich -expand-var '$TEXMFSYSVAR')/ls-R \
$(kpsewhich -expand-var '$TEXMFSYSVAR')/ls-R.orig &&
mktexlsr &&
fmtutil-sys --byfmt jadetex &&
fmtutil-sys --byfmt pdfjadetex &&
mktexlsr &&
ln -v -sf etex /usr/bin/jadetex &&
ln -v -sf pdfetex /usr/bin/pdfjadetex &&
install -v -m644 -D index.html \
/usr/share/doc/jadetex-3.13/index.html &&
install -v -m644 *.1 /usr/share/man/man1
If you downloaded the demo files tarball, issue the following commands as an unprivileged user to test the
functionality of the new JadeTex installation:
cd demo &&
openjade -t tex -d demo.dsl demo.sgm &&
jadetex demo.tex &&
pdfjadetex demo.tex &&
ls -lrt &&
cd ..
The commands should complete without errors or warnings and create demo.dvi and demo.pdf files.
Command Explanations
sed -i -e ... -e ... $(kpsewhich texmf.cnf): This command uses kpsewhich to locate the installed texmf.cnf. The
first change is used to modify the header of the file so that if teTeX is upgraded, the file won't get overwritten. The
next change adds a parameter to increase ConTeXt's memory size to accommodate JadeTeX.
1127
Beyond Linux® From Scratch - Version 6.3
fmtutil-sys ...: These commands are used to build the latex.fmt, jadetex.fmt and pdfjadetex.fmt files.
Additionally, the command automagically places the files in the correct directory.
mktexlsr; ln -v -sf tex ...; ln -v -sf pdftex ...: The JadeTeX programs are actually just symlinks to the teTeX programs.
mktexlsr updates teTeX's ls-R databases used by the libkpathsea library so that teTeX knows to use the
JadeTeX .fmt files when jadetex or pdfjadetex is called.
Configuring JadeTeX
Config Files
jadetex.dtx in the JadeTeX source tree.
Configuration Information
If you need to modify the default JadeTeX macro settings, see the JadeTeX FAQ.
Contents
Installed Programs: jadetex and pdfjadetex
Installed Libraries: None
Installed Directories: /usr/share/texmf-local and /usr/share/doc/jadetex-3.13
Short Descriptions
jadetex transforms LaTeX macros created by OpenJade into DVI/PostScript forms.
pdfjadetex transforms LaTeX macros created by OpenJade into Portable Document Format (PDF) forms.
1128
Beyond Linux® From Scratch - Version 6.3
Important
CREATIVE COMMONS CORPORATION IS NOT A LAW FIRM AND DOES NOT PROVIDE LEGAL
SERVICES. DISTRIBUTION OF THIS LICENSE DOES NOT CREATE AN ATTORNEY-CLIENT
RELATIONSHIP. CREATIVE COMMONS PROVIDES THIS INFORMATION ON AN "AS-IS"
BASIS. CREATIVE COMMONS MAKES NO WARRANTIES REGARDING THE INFORMATION
PROVIDED, AND DISCLAIMS LIABILITY FOR DAMAGES RESULTING FROM ITS USE.
License
THE WORK (AS DEFINED BELOW) IS PROVIDED UNDER THE TERMS OF THIS CREATIVE COMMONS
PUBLIC LICENSE ("CCPL" OR "LICENSE"). THE WORK IS PROTECTED BY COPYRIGHT AND/OR OTHER
APPLICABLE LAW. ANY USE OF THE WORK OTHER THAN AS AUTHORIZED UNDER THIS LICENSE
OR COPYRIGHT LAW IS PROHIBITED.
BY EXERCISING ANY RIGHTS TO THE WORK PROVIDED HERE, YOU ACCEPT AND AGREE TO BE
BOUND BY THE TERMS OF THIS LICENSE. THE LICENSOR GRANTS YOU THE RIGHTS CONTAINED
HERE IN CONSIDERATION OF YOUR ACCEPTANCE OF SUCH TERMS AND CONDITIONS.
1. Definitions
a. "Collective Work" means a work, such as a periodical issue, anthology or encyclopedia, in which the Work
in its entirety in unmodified form, along with a number of other contributions, constituting separate and
independent works in themselves, are assembled into a collective whole. A work that constitutes a Collective
Work will not be considered a Derivative Work (as defined below) for the purposes of this License.
b. "Derivative Work" means a work based upon the Work or upon the Work and other pre-existing works, such
as a translation, musical arrangement, dramatization, fictionalization, motion picture version, sound recording,
art reproduction, abridgment, condensation, or any other form in which the Work may be recast, transformed,
or adapted, except that a work that constitutes a Collective Work will not be considered a Derivative Work
for the purpose of this License. For the avoidance of doubt, where the Work is a musical composition or
sound recording, the synchronization of the Work in timed-relation with a moving image ("synching") will be
considered a Derivative Work for the purpose of this License.
c. "Licensor" means the individual or entity that offers the Work under the terms of this License.
d. "Original Author" means the individual or entity who created the Work.
e. "Work" means the copyrightable work of authorship offered under the terms of this License.
f. "You" means an individual or entity exercising rights under this License who has not previously violated the
terms of this License with respect to the Work, or who has received express permission from the Licensor to
exercise rights under this License despite a previous violation.
g. "License Elements" means the following high-level license attributes as selected by Licensor and indicated in
the title of this License: Attribution, Noncommercial, ShareAlike.
2. Fair Use Rights. Nothing in this license is intended to reduce, limit, or restrict any rights arising from fair use, first
sale or other limitations on the exclusive rights of the copyright owner under copyright law or other applicable
laws.
1129
Beyond Linux® From Scratch - Version 6.3
3. License Grant. Subject to the terms and conditions of this License, Licensor hereby grants You a worldwide,
royalty-free, non-exclusive, perpetual (for the duration of the applicable copyright) license to exercise the rights
in the Work as stated below:
a. to reproduce the Work, to incorporate the Work into one or more Collective Works, and to reproduce the Work
as incorporated in the Collective Works;
b. to create and reproduce Derivative Works;
c. to distribute copies or phonorecords of, display publicly, perform publicly, and perform publicly by means of
a digital audio transmission the Work including as incorporated in Collective Works;
d. to distribute copies or phonorecords of, display publicly, perform publicly, and perform publicly by means of
a digital audio transmission Derivative Works;
The above rights may be exercised in all media and formats whether now known or hereafter devised. The above
rights include the right to make such modifications as are technically necessary to exercise the rights in other
media and formats. All rights not expressly granted by Licensor are hereby reserved, including but not limited
to the rights set forth in Sections 4(e) and 4(f).
4. Restrictions.The license granted in Section 3 above is expressly made subject to and limited by the following
restrictions:
a. You may distribute, publicly display, publicly perform, or publicly digitally perform the Work only under the
terms of this License, and You must include a copy of, or the Uniform Resource Identifier for, this License
with every copy or phonorecord of the Work You distribute, publicly display, publicly perform, or publicly
digitally perform. You may not offer or impose any terms on the Work that alter or restrict the terms of this
License or the recipients' exercise of the rights granted hereunder. You may not sublicense the Work. You must
keep intact all notices that refer to this License and to the disclaimer of warranties. You may not distribute,
publicly display, publicly perform, or publicly digitally perform the Work with any technological measures
that control access or use of the Work in a manner inconsistent with the terms of this License Agreement.
The above applies to the Work as incorporated in a Collective Work, but this does not require the Collective
Work apart from the Work itself to be made subject to the terms of this License. If You create a Collective
Work, upon notice from any Licensor You must, to the extent practicable, remove from the Collective Work
any reference to such Licensor or the Original Author, as requested. If You create a Derivative Work, upon
notice from any Licensor You must, to the extent practicable, remove from the Derivative Work any reference
to such Licensor or the Original Author, as requested.
b. You may distribute, publicly display, publicly perform, or publicly digitally perform a Derivative Work only
under the terms of this License, a later version of this License with the same License Elements as this License,
or a Creative Commons iCommons license that contains the same License Elements as this License (e.g.
Attribution-NonCommercial-ShareAlike 2.0 Japan). You must include a copy of, or the Uniform Resource
Identifier for, this License or other license specified in the previous sentence with every copy or phonorecord
of each Derivative Work You distribute, publicly display, publicly perform, or publicly digitally perform. You
may not offer or impose any terms on the Derivative Works that alter or restrict the terms of this License
or the recipients' exercise of the rights granted hereunder, and You must keep intact all notices that refer to
this License and to the disclaimer of warranties. You may not distribute, publicly display, publicly perform,
or publicly digitally perform the Derivative Work with any technological measures that control access or use
of the Work in a manner inconsistent with the terms of this License Agreement. The above applies to the
Derivative Work as incorporated in a Collective Work, but this does not require the Collective Work apart
from the Derivative Work itself to be made subject to the terms of this License.
1130
Beyond Linux® From Scratch - Version 6.3
c. You may not exercise any of the rights granted to You in Section 3 above in any manner that is primarily
intended for or directed toward commercial advantage or private monetary compensation. The exchange of
the Work for other copyrighted works by means of digital file-sharing or otherwise shall not be considered to
be intended for or directed toward commercial advantage or private monetary compensation, provided there
is no payment of any monetary compensation in connection with the exchange of copyrighted works.
d. If you distribute, publicly display, publicly perform, or publicly digitally perform the Work or any Derivative
Works or Collective Works, You must keep intact all copyright notices for the Work and give the Original
Author credit reasonable to the medium or means You are utilizing by conveying the name (or pseudonym
if applicable) of the Original Author if supplied; the title of the Work if supplied; to the extent reasonably
practicable, the Uniform Resource Identifier, if any, that Licensor specifies to be associated with the Work,
unless such URI does not refer to the copyright notice or licensing information for the Work; and in the case of
a Derivative Work, a credit identifying the use of the Work in the Derivative Work (e.g., "French translation
of the Work by Original Author," or "Screenplay based on original Work by Original Author"). Such credit
may be implemented in any reasonable manner; provided, however, that in the case of a Derivative Work or
Collective Work, at a minimum such credit will appear where any other comparable authorship credit appears
and in a manner at least as prominent as such other comparable authorship credit.
e. For the avoidance of doubt, where the Work is a musical composition:
i. Performance Royalties Under Blanket Licenses. Licensor reserves the exclusive right to collect, whether
individually or via a performance rights society (e.g. ASCAP, BMI, SESAC), royalties for the public
performance or public digital performance (e.g. webcast) of the Work if that performance is primarily
intended for or directed toward commercial advantage or private monetary compensation.
ii. Mechanical Rights and Statutory Royalties. Licensor reserves the exclusive right to collect, whether
individually or via a music rights agency or designated agent (e.g. Harry Fox Agency), royalties for any
phonorecord You create from the Work ("cover version") and distribute, subject to the compulsory license
created by 17 USC Section 115 of the US Copyright Act (or the equivalent in other jurisdictions), if Your
distribution of such cover version is primarily intended for or directed toward commercial advantage or
private monetary compensation. 6. Webcasting Rights and Statutory Royalties. For the avoidance of doubt,
where the Work is a sound recording, Licensor reserves the exclusive right to collect, whether individually
or via a performance-rights society (e.g. SoundExchange), royalties for the public digital performance (e.g.
webcast) of the Work, subject to the compulsory license created by 17 USC Section 114 of the US Copyright
Act (or the equivalent in other jurisdictions), if Your public digital performance is primarily intended for
or directed toward commercial advantage or private monetary compensation.
f. Webcasting Rights and Statutory Royalties. For the avoidance of doubt, where the Work is a sound recording,
Licensor reserves the exclusive right to collect, whether individually or via a performance-rights society
(e.g. SoundExchange), royalties for the public digital performance (e.g. webcast) of the Work, subject to
the compulsory license created by 17 USC Section 114 of the US Copyright Act (or the equivalent in other
jurisdictions), if Your public digital performance is primarily intended for or directed toward commercial
advantage or private monetary compensation.
5. Representations, Warranties and Disclaimer
1131
Beyond Linux® From Scratch - Version 6.3
1132
Beyond Linux® From Scratch - Version 6.3
Important
Creative Commons is not a party to this License, and makes no warranty whatsoever in connection with
the Work. Creative Commons will not be liable to You or any party on any legal theory for any damages
whatsoever, including without limitation any general, special, incidental or consequential damages arising
in connection to this license. Notwithstanding the foregoing two (2) sentences, if Creative Commons has
expressly identified itself as the Licensor hereunder, it shall have all rights and obligations of Licensor.
Except for the limited purpose of indicating to the public that the Work is licensed under the CCPL,
neither party will use the trademark "Creative Commons" or any related trademark or logo of Creative
Commons without the prior written consent of Creative Commons. Any permitted use will be in compliance
with Creative Commons' then-current trademark usage guidelines, as may be published on its website or
otherwise made available upon request from time to time.
Creative Commons may be contacted at http://creativecommons.org/.
1133
Beyond Linux® From Scratch - Version 6.3
1. Grant of Copyright License. Licensor hereby grants You a world-wide, royalty-free, non-exclusive, perpetual,
sublicenseable license to do the following:
• to reproduce the Original Work in copies;
• to prepare derivative works ("Derivative Works") based upon the Original Work;
• to distribute copies of the Original Work and Derivative Works to the public;
• to perform the Original Work publicly; and
• to display the Original Work publicly.
2. Grant of Patent License. Licensor hereby grants You a world-wide, royalty-free, non-exclusive, perpetual,
sublicenseable license, under patent claims owned or controlled by the Licensor that are embodied in the Original
Work as furnished by the Licensor, to make, use, sell and offer for sale the Original Work and Derivative Works.
3. Grant of Source Code License. The term "Source Code" means the preferred form of the Original Work for
making modifications to it and all available documentation describing how to modify the Original Work. Licensor
hereby agrees to provide a machine-readable copy of the Source Code of the Original Work along with each
copy of the Original Work that Licensor distributes. Licensor reserves the right to satisfy this obligation by
placing a machine-readable copy of the Source Code in an information repository reasonably calculated to permit
inexpensive and convenient access by You for as long as Licensor continues to distribute the Original Work, and
by publishing the address of that information repository in a notice immediately following the copyright notice
that applies to the Original Work.
4. Exclusions From License Grant. Neither the names of Licensor, nor the names of any contributors to the Original
Work, nor any of their trademarks or service marks, may be used to endorse or promote products derived from this
Original Work without express prior written permission of the Licensor. Nothing in this License shall be deemed
to grant any rights to trademarks, copyrights, patents, trade secrets or any other intellectual property of Licensor
except as expressly stated herein. No patent license is granted to make, use, sell or offer to sell embodiments
of any patent claims other than the licensed claims defined in Section 2. No right is granted to the trademarks
of Licensor even if such marks are included in the Original Work. Nothing in this License shall be interpreted
to prohibit Licensor from licensing under different terms from this License any Original Work that Licensor
otherwise would have a right to license.
5. This section intentionally omitted.
6. Attribution Rights. You must retain, in the Source Code of any Derivative Works that You create, all copyright,
patent or trademark notices from the Source Code of the Original Work, as well as any notices of licensing and any
descriptive text identified therein as an "Attribution Notice." You must cause the Source Code for any Derivative
Works that You create to carry a prominent Attribution Notice reasonably calculated to inform recipients that
You have modified the Original Work.
7. Warranty of Provenance and Disclaimer of Warranty. Licensor warrants that the copyright in and to the Original
Work and the patent rights granted herein by Licensor are owned by the Licensor or are sublicensed to You under
the terms of this License with the permission of the contributor(s) of those copyrights and patent rights. Except
as expressly stated in the immediately proceeding sentence, the Original Work is provided under this License on
1134
Beyond Linux® From Scratch - Version 6.3
an "AS IS" BASIS and WITHOUT WARRANTY, either express or implied, including, without limitation, the
warranties of NON-INFRINGEMENT, MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
THE ENTIRE RISK AS TO THE QUALITY OF THE ORIGINAL WORK IS WITH YOU. This DISCLAIMER
OF WARRANTY constitutes an essential part of this License. No license to Original Work is granted hereunder
except under this disclaimer.
8. Limitation of Liability. Under no circumstances and under no legal theory, whether in tort (including negligence),
contract, or otherwise, shall the Licensor be liable to any person for any direct, indirect, special, incidental,
or consequential damages of any character arising as a result of this License or the use of the Original Work
including, without limitation, damages for loss of goodwill, work stoppage, computer failure or malfunction, or
any and all other commercial damages or losses. This limitation of liability shall not apply to liability for death or
personal injury resulting from Licensor's negligence to the extent applicable law prohibits such limitation. Some
jurisdictions do not allow the exclusion or limitation of incidental or consequential damages, so this exclusion
and limitation may not apply to You.
9. Acceptance and Termination. If You distribute copies of the Original Work or a Derivative Work, You must make
a reasonable effort under the circumstances to obtain the express assent of recipients to the terms of this License.
Nothing else but this License (or another written agreement between Licensor and You) grants You permission
to create Derivative Works based upon the Original Work or to exercise any of the rights granted in Section 1
herein, and any attempt to do so except under the terms of this License (or another written agreement between
Licensor and You) is expressly prohibited by U.S. copyright law, the equivalent laws of other countries, and by
international treaty. Therefore, by exercising any of the rights granted to You in Section 1 herein, You indicate
Your acceptance of this License and all of its terms and conditions.
10. Termination for Patent Action. This License shall terminate automatically and You may no longer exercise any
of the rights granted to You by this License as of the date You commence an action, including a cross-claim or
counterclaim, against Licensor or any licensee alleging that the Original Work infringes a patent. This termination
provision shall not apply for an action alleging patent infringement by combinations of the Original Work with
other software or hardware.
11. Jurisdiction, Venue and Governing Law. Any action or suit relating to this License may be brought only in the
courts of a jurisdiction wherein the Licensor resides or in which Licensor conducts its primary business, and
under the laws of that jurisdiction excluding its conflict-of-law provisions. The application of the United Nations
Convention on Contracts for the International Sale of Goods is expressly excluded. Any use of the Original Work
outside the scope of this License or after its termination shall be subject to the requirements and penalties of the
U.S. Copyright Act, 17 U.S.C. § 101 et seq., the equivalent laws of other countries, and international treaty.
This section shall survive the termination of this License.
12. Attorneys Fees. In any action to enforce the terms of this License or seeking damages relating thereto, the
prevailing party shall be entitled to recover its costs and expenses, including, without limitation, reasonable
attorneys' fees and costs incurred in connection with such action, including any appeal of such action. This section
shall survive the termination of this License.
13. Definition of "You" in This License. "You" throughout this License, whether in upper or lower case, means an
individual or a legal entity exercising rights under, and complying with all of the terms of, this License. For
legal entities, "You" includes any entity that controls, is controlled by, or is under common control with you. For
purposes of this definition, "control" means (i) the power, direct or indirect, to cause the direction or management
of such entity, whether by contract or otherwise, or (ii) ownership of fifty percent (50%) or more of the outstanding
shares, or (iii) beneficial ownership of such entity.
14. Right to Use. You may use the Original Work in all ways not otherwise restricted or conditioned by this License
or by law, and Licensor promises not to interfere with or be responsible for such uses by You.
1135
Beyond Linux® From Scratch - Version 6.3
This license is Copyright (C) 2003-2004 Lawrence E. Rosen. All rights reserved. Permission is hereby granted to
copy and distribute this license without modification. This license may not be modified without the express written
permission of its copyright owner.
1136
Beyond Linux® From Scratch - Version 6.3
Glossary
Acronyms
669 UNIS/Composer 669 Module
ABI Application Binary Interface
ADSL Asymmetric Digital Subscriber Line
AFS Andrew File System
AIFF Audio Interchange File Format
ALSA Advanced Linux Sound Architecture
ANSI American National Standards Institute
API Application Programming Interface
APR Apache Portable Runtime
ARP Address Resolution Protocol
ASCII American Standard Code for Information Interchange
ASN Abstract Syntax Notation
ASF Advanced Streaming Format
ATA AT-Attached
ATSC Advanced Television Systems Committee
ATK Accessibility ToolKit
AVI Audio Video Interleave
AWT Abstract Window Toolkit
BER Basic Encoding Rules
BICS Berkeley/IRCAM/CARL
BIND Berkeley Internet Name Domain
BIOS Basic Input/Output System
BLFS Beyond Linux From Scratch
BMP Bit MaP
CD Compact Disk
CDDA Compact Disc Digital Audio
CIFS Common Internet File System
See Also SMB .
CMS Cryptographic Message Syntax
1137
Beyond Linux® From Scratch - Version 6.3
1138
Beyond Linux® From Scratch - Version 6.3
1139
Beyond Linux® From Scratch - Version 6.3
1140
Beyond Linux® From Scratch - Version 6.3
LZO Lempel-Ziv-Oberhumer
LZW Lempel-Ziv-Welch
MAC Media Access Control
MCOP Multimedia COmmunication Protocol
MCU Multipoint Control Unit
MD Message-Digest
MDA Mail Delivery Agent
MED MED/OctaMED Module
MIDI Musical Instrument Digital Interface
MIF Maker Interchange Format
MII Media Independent Interface
MIME Multipurpose Internet Mail Extensions
MIT Massachusetts Institute of Technology
MNG Multiple-image Network Graphics
MOD ProTracker Module
MP3 MPEG-1 audio layer 3
MPEG Moving Picture Experts Group
MSL Magick Scripting Language
MTA Mail Transport Agent
MTM MultiTracker Module
MUA Mail User Agent
NASM Netwide ASseMbler
NNTP Network News Transfer Protocol
NFS Network File System
NIS Network Information Service
NPTL Native Posix Thread Library
NSPR Netscape Portable Runtime
NSS Network Security Services
NTP Network Time Protocol
OAF Object Activation Framework
ODBC Open DataBase Connectivity
OMF Open Metadata Framework
1141
Beyond Linux® From Scratch - Version 6.3
1142
Beyond Linux® From Scratch - Version 6.3
1143
Beyond Linux® From Scratch - Version 6.3
1144
Beyond Linux® From Scratch - Version 6.3
1145
Beyond Linux® From Scratch - Version 6.3
1146
Beyond Linux® From Scratch - Version 6.3
1147
Beyond Linux® From Scratch - Version 6.3
1148
Beyond Linux® From Scratch - Version 6.3
1149
Beyond Linux® From Scratch - Version 6.3
1150
Beyond Linux® From Scratch - Version 6.3
1151
Beyond Linux® From Scratch - Version 6.3
1152
Beyond Linux® From Scratch - Version 6.3
1153
Beyond Linux® From Scratch - Version 6.3
1154
Beyond Linux® From Scratch - Version 6.3
1155
Beyond Linux® From Scratch - Version 6.3
1156
Beyond Linux® From Scratch - Version 6.3
1157
Beyond Linux® From Scratch - Version 6.3
1158
Beyond Linux® From Scratch - Version 6.3
1159
Beyond Linux® From Scratch - Version 6.3
1160
Beyond Linux® From Scratch - Version 6.3
1161
Beyond Linux® From Scratch - Version 6.3
1162
Beyond Linux® From Scratch - Version 6.3
1163
Beyond Linux® From Scratch - Version 6.3
1164
Beyond Linux® From Scratch - Version 6.3
1165
Beyond Linux® From Scratch - Version 6.3
1166
Beyond Linux® From Scratch - Version 6.3
1167
Beyond Linux® From Scratch - Version 6.3
1168
Beyond Linux® From Scratch - Version 6.3
1169
Beyond Linux® From Scratch - Version 6.3
1170
Beyond Linux® From Scratch - Version 6.3
1171
Beyond Linux® From Scratch - Version 6.3
1172
Beyond Linux® From Scratch - Version 6.3
1173