Copyright © 2001-2008 BLFS Development Team
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.
2008-08-24
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 |
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.
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)
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)
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
Last updated on 2008-08-24 14:01:22 -0500
This book is mainly aimed at those who have built a system based on the LFS book. It will also be useful for those who are using other distributions, but for one reason or another want to manually build software and are in need of some assistance. Note that the material contained in this book, in particular the dependency listings, is based upon 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.
Last updated on 2007-04-04 14:42:53 -0500
This book is divided into the following parts.
This part contains information which is essential to the rest of the book.
Here we introduce basic configuration and security issues. We also discuss a range of editors, file systems, and shells which aren't covered in the main LFS book.
In this section we cover libraries which are often needed by the rest of the book as well as system utilities. Information on Programming (including recompiling GCC to support its full range of languages) concludes this part.
Here we cover how to connect to a network when you aren't using the simple static IP setup given in the main LFS book.
Networking libraries and command-line networking tools make up the bulk of this part.
Here we deal with setting up mail and other servers (such as SSH, Apache, etc.).
This part explains how to set up a basic X Window System installation along with some generic X libraries and Window managers.
For those who want to use the K Desktop Environment or some parts of it, this part covers it.
GNOME is the main alternative to KDE in the Desktop Environment arena and we cover GNOME-2.18 here.
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.
Here we cover setting multimedia libraries and drivers along with some audio, video and CD-writing programs.
The PST part of the book covers document handling with applications like Ghostscript, CUPS and DocBook to installing teTeX.
The Appendices cover information which doesn't belong in the main book; they are mainly there as a reference.
Last updated on 2007-10-16 06:56:37 -0500
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.
Last updated on 2007-04-04 14:42:53 -0500
The Beyond Linux From Scratch book is designed to carry on from where the LFS book leaves off. But unlike the LFS book, it isn't designed to be followed straight through. Reading the Which sections of the book? part of this chapter should help guide you through the book.
Please read most of this part of the book carefully as it explains quite a few of the conventions used throughout the book.
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.
Last updated on 2007-10-16 06:56:37 -0500
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 randy AT linuxfromscratch D0T org and we'll be happy to add it. We don't include email addresses by default so if you want it included, please state so when you contact us.
Editor: Randy McMurchy <randy AT linuxfromscratch D0T org>
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
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.
traceroute: Jeff Bauman
ProFTPD and rsync: Daniel Baumann
joe, nano, nmap, slang, w3m and whois: Timothy Bauscher
Fetchmail: Paul Campbell
CDParanoia, mpg123, SDL and XMMS: Jeroen Coumans
Amarok: Robert Daniels
UDFtools, Perl modules (initial version) and Bluefish: Richard Downing
sudo, wireless_tools: Bruce Dubbs
tripwire: Manfred Glombowski
Dash and rxvt-unicode: Ag Hatzimanikas
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
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
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.
Last updated on 2008-05-12 07:59:11 -0500
Unlike the Linux From Scratch book, BLFS isn't designed to be followed in a linear manner. This is because LFS provides instructions on how to create a base system which is capable of turning into anything from a web server to a multimedia desktop system. BLFS is where we try to guide you in the process of going from the base system to your intended destination. Choice is very much involved.
Everyone who reads the book will want to read certain sections. The Introduction part, which you are currently reading, contains generic information. Especially take note of the information in 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.
Last updated on 2008-03-18 10:49:58 -0500
To make things easy to follow, there are a number of conventions used throughout the book. Following are some examples:
./configure --prefix=/usr
This form of text is designed to be typed exactly as seen unless otherwise noted in the surrounding text. It is also used to identify references to specific commands.
install-info: unknown option
`--dir-file=/mnt/lfs/usr/info/dir'
This form of text (fixed width text) is showing screen output, probably a result from issuing a command. It is also used to show filenames such as
/boot/grub/grub.conf
Emphasis
This form of text is used for several purposes in the book but mainly to emphasize important points or to give examples as to what to type.
http://www.linuxfromscratch.org/
This form of text is used for hypertext links external to the book such as HowTos, download locations, websites, etc.
This form of text is used for links internal to the book such as another section describing a different package.
cat > $LFS/etc/group << "EOF"
root:x:0:
bin:x:1:
......
EOF
This type of section is used mainly when creating configuration files. The first command (in bold) tells the system to create the file
$LFS/etc/group
from whatever is typed on the following lines until the sequence EOF is encountered. Therefore, this whole section is generally typed as seen.
<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.
Last updated on 2007-04-04 14:42:53 -0500
This is BLFS-BOOK version 6.3 dated August 24th, 2008. This version is intended as the complement to the LFS-6.3 book.
Last updated on 2008-05-12 07:59:11 -0500
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.
Last updated on 2007-04-04 14:42:53 -0500
Within the BLFS instructions, each package has two references for finding the source files for the package—an HTTP link and an FTP link (some packages may only list one of these links). Every effort has been made to ensure that these links are accurate. However, the World Wide Web is in continuous flux. Packages are sometimes moved or updated and the exact URL specified is not always available.
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.
Last updated on 2007-04-04 14:42:53 -0500
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:
August 24th, 2008
[randy] - Fixed a broken URL for the libpcap package.
[randy] - Fixed a broken URL for the Libassuan package.
[randy] - Fixed a broken URL for the GnuPG2 package.
[randy] - Fixed a broken URL for the GnuPG package.
[randy] - Fixed a broken URL for the libidn package.
August 17th, 2008
[randy] - Modified the sudo instructions so the Linux-PAM configuration file is correct. Thanks to Jeremy Henty for the report.
August 15th, 2008
[thomas] - Added a command to create a missing test data file in the CrackLib instructions so that 'make test' works.
August 11th, 2008
[randy] - Added some text to the AutoFS instructions pointing out that the wget package must be installed. Thanks to Leonhard Landrock for the report.
[randy] - Changed the location of the Stunnel patch due to upstream's removing it. Thanks to Brian Cade for the report.
[randy] - Added parameters to the Pin Entry instructions so the configuration process won't fail if the optional dependencies are not installed. Thanks to Brian Cade for the report.
[randy] - Fixed broken Thunderbird download URL.
[randy] - Fixed broken rsync download URL.
[randy] - Fixed broken Whois download URL.
August 10th, 2008
[randy] - Updated the PAR-Dist Perl module to 0.31.
[randy] - Updated the Text-CSV_XS Perl module to 0.52.
Aug 1st, 2008
[thomas] - Fix net-tools download location.
July 12th, 2008
[ken] - Updated security_fixes patch for poppler-0.5.4.
[ken] - Updated security_fixes patch for fetchmail-6.3.8.
[ken] - Updated firefox to 2.0.0.15 to fix another batch of vulnerabilities.
July 9th, 2008
[ken] - Updated freetype to 2.3.7 (bugfixes on top of the vulnerability fixes).
[ken] - Updated libpng to 1.2.29 (bugfixes on top of the vulnerability fixes).
[ken] - Added security patch to libvorbis.
July 8th, 2008
[ken] - Added security patch to pcre.
June 27th, 2008
[dj] - Corrected warning in shadow instructions to add the --without-pam switch instead of replace.
June 25th, 2008
[dj] - Removed Xorg-Data page and replaced with remaining xcursor-themes package.
June 19th, 2008
[dj] - Corrected text surrounding the sample commands Xorg installation.
[dj] - Added libXdmcp to Xorg Libraries required dependendcies.
[dj] - Accounted for additional path depth in Xorg Libraries patch commands. Reported by Philipp Christian Loewner.
June 9th, 2008
[alexander] - Fixed typos on the PPP page.
June 6th, 2008
[thomas] - Update to new Samba version 3.0.30.
May 24th, 2008
[dj] - Completed removal of xorg proxy packages.
[dj] - Fixed pam_xauth.so module name in /etc/pam.s/su. Reported by Guy Dalziel.
May 16th, 2008
[randy] - Modified the akode tarball download URL in the kdemultimedia instructions to a wget-friendly name.
[randy] - Added a download URL and a command to install the akode patch for experimental FFmpeg support in the kdemultimedia instructions.
May 15th, 2008
[dnicholson] - Fix the Linux-PAM tarball md5sum and size. Thanks to Toni for the report.
[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
[randy] - Removed an unnecessary sed command from the Ed instructions.
April 25th, 2008
[dnicholson] - Update to xkeyboard-config-1.2.
April 23rd, 2008
[bdubbs] - Updated to mpg123-1.4.2.
[bdubbs] - Ensure /etc/X11/app-defaults exists in rxvt-unicode.
[bdubbs] - Updated to xine-lib-1.1.12.
April 22nd, 2008
[dnicholson] - Fix multiple security vulnerabilities in xorg-server, libXfont and xfs for Xorg-7.2.
April 21st, 2008
[bdubbs] - Update to seamonkey 1.1.9.
[dnicholson] - Bug fixes and automatic compression support from Lars Bamberger for the compressdoc script.
April 20th, 2008
[bdubbs] - Update to Tripwire-2.4.1.2.
April 14th, 2008
[bdubbs] - Add 2nd security patch to unzip. Also moved locale patch to BLFS repository.
[bdubbs] - Add optional dependencies to autofs.
April 13th, 2008
[ken] - Update the cups security_fixes patch.
April 11th, 2008
[bdubbs] - Updated to dhcp-3.0.6.
[randy] - Added a comment to the Tcsh page mentioning that one of the tests in the testsuite is known to fail.
[alexander] - Removed the obsolete libxml1 library.
April 10th, 2008
[randy] - Updated to Whois-4.7.26.
April 9th, 2008
[randy] - Updated to Tk-8.4.18.
[randy] - Updated to Tcl-8.4.18.
[dj] - Updated OpenOffice instructions with changes suggested by Randy McMurchy and Chris Staub.
[dj] - Corrected OpenOffice build failure when GMime is installed. Thanks to Alessandro Alocci for tracking down the cause of the build failure.
[randy] - Clarified the GMP documentation installation.
April 6th, 2008
[ag] - Updated to zsh-4.3.6.
April 5th, 2008
[ag] - Added a command to regenerate the tags file in vim when updating the runtime files.
[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
[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
[ken] - Updated to gnucash-2.2.4.
[randy] - Updated Epiphany to reflect the GNOME-2.18.3 update.
[randy] - Updated File Roller, gcalctool, GNOME Keyring Manager, GNOME Netstatus and GNOME System Monitor to reflect the GNOME-2.18.3 update.
March 13th, 2008
[randy] - Removed (commented out) the Galeon package as it requires an older version of a Gecko engine than what is in the book. Currently, it fails to build. Will add it back to the book when/if it supports modern Gecko.
[randy] - Updated to Vorbis Tools-1.2.0.
[rdaniels] - Updated to xine-ui-0.99.5. Fixed ftp link for xine-lib.
[rdaniels] - Updated to xine-lib-1.1.10.1. Removed obsolete note from xine-lib page regarding --with-xv-path.
March 12th, 2008
[dnicholson] - Add pidfile directive to ntp.conf.
[rdaniels] - Updated to gmp-4.2.2.
[randy] - Updated to libgtkhtml-2.11.1.
[randy] - Updated the Heimdal instructions to preserve the mk_cmds script from the e2fsprogs package. Thanks DJ.
[randy] - Updated to S-Lang-2.1.3.
[randy] - Updated the SLIB download URL.
[alexander] - Added dialup and GPRS configuration instructions to the PPP page.
[dj] - Updated to OpenLDAP-2.3.39.
[dj] - Updated to Postfix-2.5.1.
[rdaniels] - Updated to Nano-2.0.7.
March 11th, 2008
[alexander] - Updated to Tin-1.8.3.
[alexander] - Mentioned the locale issue with the built-in editor in Lynx, and made cookies persistent.
[alexander] - Changed Lynx download URL in order to avoid MD5 sum changes in the future.
[alexander] - Reworded explanations and verified dependencies on the Links page.
[randy] - Updated to paps-0.6.8.
[randy] - Removed an obsolete sed command from the GNOME Doc Utils instructions.
[rdaniels] - Updated to K3b-1.0.4.
[rdaniels] - Updated to KOffice-1.6.3. Changed dependency from PostgreSQL to libpqxx. Use kde-config to set --prefix.
March 10th, 2008
[randy] - Updated the Enigmail download URLs to proper locations in the Thunderbird and Seamonkey instructions.
[randy] - Updated to Thunderbird-2.0.0.12 with Enigmail-0.95.6.
[ken] - Add missing goffice dependency.
[randy] - Updated to libxslt-1.1.22.
[rdaniels] - Updated to KDE-3.5.9.
March 9th, 2008
[ken] - Updated to gnumeric-1.8.1, with goffice-0.6.1, libgsf-1.14.7, and warning that gnucash-2.2.0 needs an older version of goffice.
[dj] - Updated to gamin-0.1.9.
[ken] - Updated to firefox-2.0.0.12.
[ken] - Updated to cairo-1.4.14.
[dj] - Updated to ksh-2008-02-02.
[dj] - Added iproute2 patch for bind, corrected L.ROOT-SERVERS.NET IP address, and added -r /dev/urandom to rdnc-confgen command.
[randy] - Updated to libxml2-2.6.31.
[dj] - Updated to JDK-6u5 and added warning about trailing JRL releases and security vulnerabilities.
March 8th, 2008
[bdubbs] - Udated to autofs-5.0.3. Expanded explanation of the use of autofs and created a procedure to automatically download and apply all patches.
[ag] - Added a patch and a configuration item to fix the UTF-8 related issues in Links. Thanks to Alexander Patrakov for the suggestions.
[bdubbs] - Fixed problem with netfs bootscript boot procedure.
[randy] - Updated to Balsa-2.3.22.
[thomas] - Updated to portmap-6.0 and nfs-utils-1.1.1
March 7th, 2008
[ag] - Updated to pcre-7.6. Added the --enable-pcregrep-libbz2 and --enable-pcregrep-libz switches. Added in command explanations the --enable-unicode-properties switch. Added patch to fix ABI breakage.
[randy] - Added new package GnuPG-2.0.8.
[bdubbs] - Fixed autofs bootscript.
[rdaniels] - Added new package Amarok-1.4.8.
March 6th, 2008
[bdubbs] - Added Qt4.
March 5th, 2008
[ag] - Updated to zsh-4.3.5. Added libcap as an optional dependency and enabled the --bindir=/bin switch.
March 4th, 2008
[dj] - Updated broken cracklib-heimdal patch.
March 3rd, 2008
[ken] - Updated to libpng-1.2.24, thanks to Hendrik Hoeth.
March 2nd, 2008
[ag] - Fixed two broken links in MPlayer page. Reported by habiloid.
February 26th, 2008
[ag] - Updated to links-2.1pre33. Enables graphics support by default.
February 25th, 2008
[tushar] - Add a note about LDFLAGS for BBLFS section.
[ag] - Added a switch to the OpenSSH instructions to set the default path for xauth.
February 24th, 2008
[ag] - Updated vim with the latest upstream patches. Added a command to update the runtime files.
[dj] - Updated to Linux-PAM-0.99.10.0.
February 22nd, 2008
[dj] - Updated to cracklib-2.8.12.
February 21st, 2008
[dj] - Updated to xfsprogs-2.9.6.
February 19th, 2008
[dj] - Added note about OpenSSH testsuite failures.
February 13th, 2008
[dj] - Updated to openssh-4.7p1.
[dj] - Updated to whois-4.7.24 (Christian Wurst).
February 11th, 2008
[ag] - Updated to rxvt-unicode-9.02. Added libAfterImage as an optional dependency.
[dj] - Updated to openssl-0.9.8g.
February 6th, 2008
[dj] - Updated to sudo-1.6.9p12.
February 5th, 2008
[bdubbs] - Removed XFree86.
January 21st, 2008
[randy] - Updated to Libassuan-1.0.4.
January 20th, 2008
[alexander] - Configured the Backspace key in xterm, updated program descriptions, updated xterm to version 231.
January 19th, 2008
[alexander] - Added FAAC and FAAD2.
January 10th, 2008
[randy] - Corrected a chmod command in the BIND instructions.
December 29th, 2007
[dj] - Added --without-pam switch to OpenOffice installation instructions. Reported by Nathan Coulson.
December 28th, 2007
[ag] - Added a documentation link to the procmail page.
December 22nd, 2007
[ag] - Updated to Ruby-1.8.6-p111.
December 21st, 2007
[dnicholson] - Updated the bootscripts tarball to include fixes for dhcp, gdm, gpm, hal, ntp, dbus and samba.
[alexander] - Updated the text about default mount options on the HAL page.
December 19th, 2007
[dj] - Updated to OpenOffice-2.3.1.
December 17th, 2007
[alexander] - Dropped Imlib-1.9.15.
[dj] - Updated to JDK-6 Update 3.
December 16th, 2007
[alexander] - Moved the URI Perl module under a separate heading, to simplify cross-references.
December 15th, 2007
[ag] - Updated to XFS 2.9.4. Thanks to Christian Wurst for his patch.
December 14th, 2007
[ag] - Updated to Mutt-1.5.17. Added command to generate the manual in PDF format.
December 13th, 2007
[ag] - Fixed Ruby download link.
[ag] - Updated to Flac-1.2.1.
December 7th, 2007
[alexander] - Updated to Xfce-4.4.2 and commented it out.
November 22nd, 2007
[ag] - Fixed the download link to rxvt-unicode.
[ag] - Updated to Compface 2.5.2.
November 17th, 2007
[ag] - Fixed a broken link to the Python documentation. Reported by Moody.
[ag] - Added a switch in the 'Command Explanations' section of the Vorbis Tools page that allows ogg123 to be built without cURL. Reported by laxy. Fixes #2413.
November 5th, 2007
[dnicholson] - Really fix luit to find the locale.alias file. Caught by laxy. Fixes #2414.
November 4th, 2007
[ag] - Updated to rxvt-unicode-8.4.
[ag] - Updated to libvorbis-1.2.0.
November 2nd, 2007
[dnicholson] - Fix luit to find the locale.alias file. Fixes #2393.
[dnicholson] - Updated to Nano-2.0.6.
November 1st, 2007
[ag] - Updated to ed-0.8.
[ag] - Updated to Fcron-3.0.3.
October 16th, 2007
[randy] - Updated to Heimdal-0.8.1.
[randy] - Modified the 'Configuring for Adding Users' page to reflect that the /etc/default/useradd file is now created in LFS. Thanks to Chris Staub for the suggestion.
[randy] - Fixed numerous typos and ommisions, along with several corrections by applying patches from Chris Staub. Thanks, Chris.
[randy] - Updated the Evince instructions to reflect the GNOME-2.18.3 update.
September 22nd, 2007
[randy] - Fixed an incorrect installation command in the XSL Stylesheets instructions, thanks to Frank Ianella for pointing it out.
September 12th, 2007
[randy] - Updated the EOG instructions to reflect the GNOME-2.18.3 update.
September 11, 2007
[randy] - Added a note to the Totem instructions explaining that the GStreamer backend will not play DVDs properly, and you can use the Xine Libraries backend instead.
September 10th, 2007
[randy] - Added a more accurate explanation of the GConf dependency in the GStreamer Good Plugins instructions.
September 9th, 2007
[manuel] - Updated the internal XSL Stylesheets to 1.73.2.
September 7th, 2007
[randy] - Changed the chmod command in the OpenLDAP instructions to use the 'readlink' command to find out the names of the shared libraries.
September 6th, 2007
[randy] - Modified the Heimdal instructions which move the libraries into /lib to use the 'readlink' command to create the symlinks so that the instructions are not version specific.
September 5th, 2007
[randy] - Modified the Linux-PAM instructions to install the libraries into /lib and then use the 'readlink' command to create the symlinks so that the instructions are not version specific.
September 4th, 2007
[dnicholson] - Removed an unnecessary command in the Cyrus SASL instructions.
September 2nd, 2007
[dnicholson] - Updated to Cyrus SASL-2.1.22.
August 22nd, 2007
[dj] - Updated to dhcpcd-3.0.19.
August 21st, 2007
[djensen] - Removed a Makefile sed that disabled autoconf in XFS-2.9.3. It will be needed with some libtool versions.
August 20th , 2007
[djensen] - Updated to XFS-2.9.3.
[dj] - Added GCC-3.3.6 as a runtime dependency for the binary JDK.
August 19th, 2007
[randy] - Added new package PIN-Entry-0.7.3.
August 18th, 2007
[randy] - Updated to DocBook XSL Stylesheets-1.71.1.
[randy] - Added new package Libksba-1.0.2.
August 17th, 2007
[randy] - Updated to Transcode-1.0.3.
[randy] - Applied a patch contributed by Jeremy Henty that updated the book to Emacs-22.1. Thanks Jeremy!
[randy] - Updated to libquicktime-1.0.0.
[randy] - Updated to libmpeg3-1.7.
[dj] - Updated to OpenOffice-2.2.1
August 16th, 2007
[randy] - Added new package GnuTLS-1.6.3.
[manuel] - Added upstream asmrules_fix_20061231.diff patch to Mplayer-1.0rc1.
[randy] - Added new package Libgcrypt-1.2.4.
[randy] - Added new package Libgpg-error-1.5.
[randy] - Added new package Libassuan-1.0.2.
[randy] - Added new package Pth-2.0.7.
August 15th, 2007
[randy] - Updated Gaim to Pidgin-2.1.0.
[randy] - Removed an unneeded sed command from the RP-PPPoE instructions.
[randy] - Updated to Audacious-1.3.2.
August 14th, 2007
[randy] - Added new package mcs-0.4.1 to support recent versions of Audacious.
[randy] - Updated to Hdparm-7.7.
[randy] - Updated to Hd2u-1.0.1.
[randy] - Updated to Exim-4.67.
August 13th, 2007
[randy] - Updated to Cdrdao-1.2.2.
[randy] - Updated the Sound Juicer instructions to reflect the GNOME-2.18.3 update.
[randy] - Updated to libmusicbrainz-2.1.5.
August 12th, 2007
[dnicholson] - Added the Python Modules page with Gnome-Python and its dependencies.
[randy] - Added instructions to create an X11R6 symlink to the X Windows Components page.
[dj] - Updated to JDK-6 Update 2.
August 11th, 2007
[randy] - Updated the GConf Editor instructions to reflect the GNOME-2.18.3 update.
[randy] - Added a note to the FreeGlut instructions saying you don't need to install it if you installed the GLUT library during a MesaLib installation.
[randy] - Updated to MPlayer-1.0rc1.
[randy] - Updated to FFmpeg-svn_20070606 (svn checkout).
August 9th, 2007
[randy] - Replaced the obsolete Gimp-Print package with Gutenprint-5.0.1.
August 8th, 2007
[randy] - Updated to XChat-2.8.4.
[randy] - Updated all the GNOME Assistive Technology (Accessibility) packages to GNOME-2.18 versions, including updating Gnome Speech to 0.4.16.
[randy] - Added new package Orca-2.18.1 as a replacement for the obsolete Gnopernicus package.
[randy] - Replaced all instances of the Gtk+-2 library directory pathname with an entity.
[randy] - Replaced all instances of the Python library directory pathname with an entity.
[randy] - Simplified some commands using conditionals in various package instructions.
[randy] - Added a parameter to the configure command in the GNOME Session instructions so that the Assistive Technology (Accessibility) packages work properly.
August 7th, 2007
[randy] - Added notes to the AbiWord and Gnumeric instructions that the versions of libgda/libgnomedb will conflict with each other.
[randy] - Minor modifications to the Gnumeric build instructions.
[randy] - Updated to AbiWord-2.4.6.
August 6th, 2007
[randy] - Updated to FriBidi-0.10.8.
August 5th, 2007
[randy] - Updated to Finance::Quote-1.13.
[dnicholson] - Updated to Thunderbird-2.0.0.6 with Enigmail-0.95.3.
[dnicholson] - Updated to Firefox-2.0.0.6.
[randy] - Updated to GnuCash-2.2.0.
August 3rd, 2007
[ag] - Updated to Fetchmail-6.3.8.
[randy] - Updated to GOffice-0.4.2.
[randy] - Updated to SLIB-3a4.
[randy] - Updated to Guile-1.8.2. This breaks the GnuCash package instructions and since no other BLFS packages depend on the GNOME-1.4 libraries, the entire GNOME-1.4 section of the book has been commented out.
August 2nd, 2007
[ag] - Added the rxvt-unicode terminal emulator package.
[dnicholson] - Updated to NcFTP-3.2.1.
[randy] - Updated to gedit-2.18.2.
[dnicholson] - Updated to Iptables-1.3.8.
[dnicholson] - Updated the libusb udev rule for raw USB device ownership to work with Linux-2.6.22.
August 1st, 2007
[ag] - Updated to ReiserFS-3.6.20.
July 31st, 2007
[ag] - Removed obsolete text in the X Window System Components page.
[ag] - Updated to Dash-0.5.4. Fixes Trac ticket #2366.
July 30th, 2007
[ag] - Removed the extra-prompt.sh script and avoid exporting the PS1 variable. Thanks to David Jensen for the suggestions and to Craig Jackson for the report.
[ag] - Added a warning in the mutt instructions about linking mutt against GnuTLS.
[ag] - Added a consolidated patch to vim instructions, with fixes from upstream. Syncing with LFS.
July 27th, 2007
[randy] - Added the D-Bus GLib bindings as a required dependency of GNOME VFS and removed it from other packages where it became redundant.
[randy] - Updated to XSane-0.994.
[randy] - Updated to ksh-2007-06-28.
[randy] - Updated Perl Modules: Finance::QuoteHist-1.11, HTML::TableExtract-2.10.
[randy] - Added a patch to the Avifile instructions to correct a build problem when using GCC-4.1.x. Thanks to Robert Connolly for submitting the patch.
July 26th, 2007
[randy] - Updated to rsync-2.6.9.
[randy] - Updated some GNOME utility packages: GDM-2.18.3, GNOME Utilities-2.18.1, gnome-screensaver-2.18.2, zenity-2.18.2.
[randy] - Updated to XScreenSaver-5.03.
[randy] - Updated several package's broken download URLs.
[randy] - Updated to gnome-volume-manager-2.17.0.
July 25th, 2007
[randy] - Updated to Evolution-2.10.3.
[randy] - Updated to Xine Libraries-1.1.7.
[randy] - Updated some of the GNOME-2 additional packages ('Utilities') to GNOME-2.18.3: bug-buddy-2.18.1, GNOME Media-2.18.0, gnome-mount-0.6, gucharmap-1.10.0, Nautilus CD Burner-2.18.2, Totem-2.18.2. Other additional packages will be updated individually as soon as possible.
[randy] - Updated GNOME-2 additional packages ('Libraries') to GNOME-2.18.3.
[randy] - Updated core GNOME-2 to version 2.18.3. Separated the core packages into 'Platform' and 'Desktop' sections.
[randy] - Updated to ImageMagick-6.3.5-3.
[randy] - Updated Perl Modules: Archive-Tar-1.32, Archive-Zip1.20, Business-ISBN-Data-1.14, Compress-Raw-Zlib-2.005, Compress-Zlib-2.005, Crypt-SSLeay-0.56, Digest-SHA-5.45, ExtUtils-CBuilder-0.19, ExtUtils-ParseXS-2.18, IO-Compress-Base-2.005, Compress-Raw-Bzip2-2.005, IO-Compress-Bzip2-2.005, IO-Compress-Zlib-2.005, IO-Zlib-1.06, LWP5.806, Module-Build-0.2808, Module-Corelist-2.12, Module-Signature-0.55, PAR-Dist-0.24, Pod-Readme-0.09, Test-Base-0.54, Test-Prereq-1.033, version-0.7203, YAML-0.65.
July 24th, 2007
[bdubbs] - Updated to Bind-9.4.1-P1.
[randy] - Updated to SANE Backends-1.0.18.
[dj] - Added Java header path to CPPFLAGS for Graphviz.
July 22nd, 2007
[randy] - Updated to XviD-1.1.3.
[randy] - Updated to ISO Codes-1.2.
[randy] - Updated to Module::Info-0.31.
July 21st, 2007
[randy] - Updated to Metacity-2.18.5
[randy] - Added new package libgnomekbd-2.18.2 to the GNOME Core packages section.
[dnicholson] - Reworked Xorg download links and md5sum files. Added the continue parameter for the large wget downloads.
[randy] - Added a sed and a patch to allow Vorbis-Tools to link against cURL and FLAC respectively. Fixes Trac ticket #2240. Patch to update the book contributed by Ag Hatzimanikas.
[randy] - Updated to libxklavier-3.2.
[randy] - Updated to W3m-0.5.2.
July 20th, 2007
[randy] - Updated to GMime-2.2.10.
[randy] - Updated to libwnck-2.18.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
[randy] - Updated to LessTif-0.95.0.
[randy] - Updated to NSS-3.11.7 (includes NSPR-4.6.7).
[randy] - Updated to Firefox-2.0.0.4.
[randy] - Updated to Thunderbird-2.0.0.4.
July 14th, 2007
[randy] - Updated to HAL-0.5.9.1 and HAL Hardware Info-20070618.
[randy] - Added the Qt3 bindings to the D-Bus Bindings page.
July 12th, 2007
[randy] - Updated to Tcsh-6.15.00.
July 11th, 2007
[randy] - Updated to cpio-2.9.
[randy] - Updated to Sendmail-8.14.1.
July 10th, 2007
[dnicholson] - Added information for running the D-Bus testsuite.
[randy] - Updated the K3b and KDE Base instructions to specify that the D-Bus Qt3 Bindings are required if HAL functionality is desired.
[dnicholson] - Added libxcb and its dependencies xcb-proto and libpthread-stubs to the book. Enabled it as a dependency for the Xorg-7 Libraries.
[randy] - Modified the D-Bus dependency in several packages to account for the new D-Bus core and bindings separation.
[randy] - Added the Python Bindings to the D-Bus Bindings page.
July 9th, 2007
[dnicholson] - Updated D-Bus Core to 1.0.2.
[randy] - Created a D-Bus Bindings page and added the GLib bindings. Other D-Bus bindings will be added to the same page as they are developed.
July 8th, 2007
[dnicholson] - Fix a bad commit breaking Xorg-7 libX11 in r6797.
[dnicholson] - Applied patchlevel updates for Xorg-7.2 packages.
[randy] - Updated to CUPS-1.2.11.
[randy] - Updated to PHP-5.2.3.
[randy] - Updated to libexif-0.6.16.
[randy] - Updated to libglade-2.6.1.
[randy] - Updated to cURL-7.16.3.
[randy] - Updated to Libidn-0.6.14.
July 7th, 2007
[manuel] - Updated book rendering framework to use the new LFS-XSL stylesheets.
July 6th, 2007
[randy] - Updated to PostgreSQL-8.2.4.
[randy] - Downgraded OpenLDAP to the stable 2.3.32 version as the download page now properly reflects the versions.
July 5th, 2007
[randy] - Updated to MySQL-5.0.41.
[randy] - Updated Tcl and Tk to 8.4.15.
July 4th, 2007
[randy] - Updated to libxslt-1.1.21.
[dj] - Modified Linux-PAM configuration to use cracklib defaults.
July 3rd, 2007
[randy] - Updated to libxml2-2.6.29.
[randy] - Updated to Python-2.5.1.
[randy] - Updated to Shadow-4.0.18.1, which is the version used in LFS. Also modified the /etc/pam.d/login file as suggested by Jonathan Oksman to strengthen the login security.
[dnicholson] - Fixed an incorrect path for the MesaLib drivers. Reported by Alexander Patrakov.
July 2nd, 2007
[randy] - Updated to Whois-4.7.21.
[randy] - Updated to Expat-2.0.1.
[randy] - Updated to S-Lang-2.1.1.
[randy] - Updated to PCRE-7.2.
[randy] - Updated to libpng-1.2.18.
[randy] - Updated to pkg-config-0.22.
July 1st, 2007
[randy] - Incremented the date of the bootscript entity so a new bootscript tarball will be created (to reflect the changes made to the bootscripts on 20070620).
June 30th, 2007
[randy] - Updated to GTK+-2.10.13.
[randy] - Updated to Pango-1.16.4.
[randy] - Updated to cairo-1.4.10.
[randy] - Updated Inetutils MD5sum as upstream released a new tarball.
[randy] - Updated to GLib-2.12.12.
June 20th, 2007
[dnicholson] - Fixed app-defaults references in xterm. Closes #2362. Reported by laxy.
[dnicholson] - Updated to dhcpcd-3.0.17.
June 15th, 2007
[dnicholson] - Mutt cleanups from Alexander Patrakov and Ag Hatzim.
[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.
[dnicholson] - Removed an unnecessary parameter for the xorg-server package.
May 23rd, 2007
[dnicholson] - Removed the unneeded Glibc build fix for XFree86.
May 19th, 2007
[dnicholson] - Fix the installation of the mail extensions to go to the correct directory in Thunderbird.
May 18th, 2007
[dnicholson] - Updated to Thunderbird-2.0.0.0 with Enigmail-0.95.0.
May 13th, 2007
[dnicholson] - Updated to xterm-225 and corrected configure settings. Thanks to kratz00 and fix.
[bdubbs] - Updated to vim-7.1.
May 5th, 2007
[bdubbs] - Corrected md5sum for libdrm-2.0.1.
[bdubbs] - Updated to xine-lib-1.1.6.
[bdubbs] - Updated to Seamonkey-1.1.1.
April 29th, 2007
[dnicholson] - Updated to Fontconfig-2.4.2. Fixes ticket #2134.
April 27th, 2007
[dnicholson] - Updated to Firefox-2.0.0.3. Fixes ticket #2218.
[dnicholson] - Updated to HAL-0.5.9 with hal-info-20070425. Fixes ticket #2213.
[dnicholson] - Updated to FreeType-2.3.4. Fixes ticket #1988.
April 26th, 2007
[randy] - Updated to GnuPG-1.4.7.
April 25th, 2007
[bdubbs] - Added a security patch for Qt and updated description of MySql options for Qt.
[alexander] - Applied cpio-2.7 upstream fixes.
April 21st, 2007
[bdubbs] - Expanded note on building database support into qt.
April 20th, 2007
[randy] - Updated to Graphviz-2.12.
[randy] - Updated to Doxygen-1.5.2.
April 19th, 2007
[randy] - Updated to unixODBC-2.2.12.
[randy] - Updated to libsoup-2.2.100.
[randy] - Updated to startup-notification-0.9.
[randy] - Updated to GOffice-0.2.2.
[randy] - Updated to ESP Ghostscript-8.15.4.
April 18th, 2007
[randy] - Added additional files to the chmod command in the S-Lang instructions.
[randy] - Added a note to run some commands in the OpenSSH instructions as the root user. Thanks to ghylton for the report.
[randy] - Updated to libgsf-1.14.3.
April 17th, 2007
[randy] - Added new Perl Modules to support icon-naming-utils: Tie::IxHash, XML::LibXML, XML::NamespaceSupport, XML::SAX, XML::SAX::Expat and XML::Simple
[randy] - Added new package icon-naming-utils-0.8.2 (required by the GNOME Icon Theme package).
April 16th, 2007
[randy] - Updated to EsounD-0.2.37.
[randy] - Updated the PyGTK dependencies in the HAL instructions.
April 15th, 2007
[djensen] - Updated to librsvg-2.16.1.
[djensen] - Updated to shared-mime-info-0.20.
[randy] - Updated to Qt-3.3.8.
[randy] - Updated to NAS-1.9.
April 14th, 2007
[randy] - Updated to Samba-3.0.24.
April 13th, 2007
[randy] - Updated to Gamin-0.1.8.
[randy] - Updated to desktop-file-utils-0.12.
April 10th, 2007
[randy] - Updated to little cms-1.16.
[randy] - Added the Utah Raster Toolkit as an optional dependency of giflib.
April 9th, 2007
[randy] - Updated to Ruby-1.8.6.
[randy] - Updated to libart_lgpl-2.3.19.
April 4th, 2007
[randy] - Updated the XML and stylesheets to use the 4.5 version of DocBook XML DTD.
March 31st, 2007
[randy] - Updated to PHP-5.2.1.
[randy] - Removed the Ash package as it has been effectively replaced by the Dash package.
March 30th, 2007
[randy] - Updated to hicolor-icon-theme-0.10.
[randy] - Updated to libpcap-0.9.5.
[randy] - Updated to Apache HTTPD-2.2.4.
[randy] - Updated to GTK-Doc-1.8.
[randy] - Updated to Perl Module HTML::Parser-3.56.
[randy] - Updated to Perl modules: Algorithm::Diff-1.1902, Compress::Zlib-2.004, Crypt::SSLeay-0.53, Pod::Simple-3.05, Test::Pod-1.26, Test::Simple-0.70, version-0.71.
[randy] - Added new Perl modules: Compress::Raw::Zlib-2.004, IO::Compress::Base-2.004, IO::Compress::Bzip2-2.004, IO::Compress::Zlib-2.004.
March 28th, 2007
[randy] - Updated to ASpell-0.60.5.
March 27th, 2007
[randy] - Updated to HTML Tidy-cvs_20070326.
March 26th, 2007
[djensen] - Updated to libIDL-0.8.8.
[randy] - Updated to Heirloom Mailx-12.2.
[randy] - Updated to Sendmail-8.14.0.
[randy] - Updated to OpenLDAP-2.3.34.
March 25th, 2007
[djensen] - Updated to Intltool-0.35.5.
[djensen] - Updated to libwnck-2.18.0.
[djensen] - Updated to VTE-2.16.0.
[randy] - Updated to OpenSSH-4.6p1.
[randy] - Updated to OpenSSL-0.9.8e.
[randy] - Updated to cURL-7.16.1.
[randy] - Updated to Stunnel-4.20.
[randy] - Updated to Libidn-0.6.11.
March 24th, 2007
[randy] - Updated to FOP-0.93.
March 23rd, 2007
[dnicholson] - Removed the reference to tinker-term.sh in the Bash Shell Startup Files. Thanks to Jonathan Oksman for the report.
[dnicholson] - Added a patch with upstream fixes for Dash and an optional command for replacing /bin/sh.
[randy] - Updated to Apache Ant-1.7.0.
[randy] - Added new package JUnit-4.1.
March 21st, 2007
[randy] - Updated to MySQL-5.0.37.
[randy] - Modified the Heimdal instructions to rename the Heimdal libss headers and libraries and restore the orginal E2fsprogs files. Also added some documentation installation commands.
March 20th, 2007
[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.
February 24th, 2007
[dnicholson] - Fixed a dead ftp:// link for Nano. Reported by Daniel Rindt.
February 19th, 2007
[dnicholson] - Fixed the sed needed to run the libxml2 testsuite. Closes #2299. Report from kratz00.
February 16th, 2007
[randy] - Updated to GMP-4.2.1.
[randy] - Updated to libxml2-2.6.27.
[randy] - Fixed a broken documentation installation command in the libpng instructions, thanks to Nathan Coulson for the report.
[randy] - Updated to Inetutils-1.5.
February 15th, 2007
[randy] - Updated to Sysstat-7.0.4.
[randy] - Updated to Shadow-4.0.17.
[randy] - Updated to Linux-PAM-0.99.7.1.
[randy] - Updated to Tk-8.4.14.
[randy] - Updated to Tcl-8.4.14.
[randy] - Updated to S-Lang-2.0.7.
[randy] - Updated to PCRE-7.0.
[randy] - Updated to libpng-1.2.16.
[randy] - Updated to pkg-config-0.21.
February 14th, 2007
[randy] - Released BLFS Version 6.2.0.
February 6th, 2007
[randy] - Updated to CrackLib-2.8.10 (don't merge to the 6.2 branch until 6.2.0 has been released).
February 4th, 2007
[randy] - Removed the obsolete and unmaintained Xorg-6.9 package (do not merge to the 6.2 branch).
Last updated on 2008-08-24 12:50:26 -0500
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.
Last updated on 2007-04-04 14:42:53 -0500
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:
Users must register and log in to edit a page.
Suggestions to change the book should be made by creating a new ticket, not by making comments in the Wiki.
Questions with your specific installation problems should be made by subscribing and mailing to the BLFS Support Mailing List at mailto:blfs-support AT linuxfromscratch D0T org.
Discussions of build instructions should be made by subscribing and mailing to the BLFS Development List at mailto:blfs-dev AT linuxfromscratch D0T org.
Inappropriate material will be removed.
Last updated on 2007-04-04 14:42:53 -0500
If you encounter a problem while using this book, and your problem is not listed in the FAQ (http://www.linuxfromscratch.org/faq), you will find that most of the people on Internet Relay Chat (IRC) and on the mailing lists are willing to help you. An overview of the LFS mailing lists can be found in Mailing lists. To assist us in diagnosing and solving your problem, include as much relevant information as possible in your request for help.
Before asking for help, you should review the following items:
Is the hardware support compiled into the kernel or
available as a module to the kernel? If it is a module,
is it configured properly in modprobe.conf
and has it been loaded?
You should use lsmod as the
root
user to see if
it's loaded. Check the sys.log
file or run modprobe <driver>
to review any error message. If it loads properly, you
may need to add the modprobe command to
your boot scripts.
Are your permissions properly set, especially for
devices? LFS uses groups to make these settings easier,
but it also adds the step of adding users to groups to
allow access. A simple moduser -G audio <user>
may be all that's necessary for that user to have
access to the sound system. Any question that starts
out with “It works as root,
but not as ...” requires a thorough review
of permissions prior to asking.
BLFS liberally uses /opt/
.
The main objection to this centers around the need to
expand your environment variables for each package
placed there (e.g., PATH=$PATH:/opt/kde/bin). In most
cases, the package instructions will walk you through
the changes, but some will not. The section called
“Going Beyond
BLFS” is available to help you check.
<package>
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 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.
Last updated on 2007-04-04 14:42:53 -0500
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 randy AT linuxfromscratch D0T org.
Last updated on 2007-04-04 14:42:53 -0500
This chapter is used to explain some of the policies used throughout the book, to introduce important concepts and to explain some issues you may see with some of the included packages.
Those people who have built an LFS system may be aware of the general principles of downloading and unpacking software. We will however repeat some of that information here for those new to building their own software.
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
Makefile
s and C code, but if in
doubt, start from a clean tree.
The golden rule of Unix System Administration is to use your
superpowers only when necessary. Hence, BLFS recommends that
you build software as an unprivileged user and only become
the root
user when installing
the software. This philosophy is followed in all the packages
in this book. Unless otherwise specified, all instructions
should be executed as an unprivileged user. The book will
advise you on instructions that need root
privileges.
If a file is in .tar
format and
compressed, it is unpacked by running one of the following
commands:
tar -xvf filename.tar.gz tar -xvf filename.tgz tar -xvf filename.tar.Z tar -xvf filename.tar.bz2
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.
You can also use a slightly different method:
bzcat filename.tar.bz2 | tar -xv
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
Generally, to verify that the downloaded file is genuine and
complete, many package maintainers also distribute md5sums of
the files. To verify the md5sum of the downloaded files,
download both the file and the corresponding md5sum file to
the same directory (preferably from different on-line
locations), and (assuming file.md5sum
is the md5sum file downloaded)
run the following command:
md5sum -c file.md5sum
If there are any errors, they will be reported. Note that the
BLFS book includes md5sums for all the source files also. To
use the BLFS supplied md5sums, you can create a file.md5sum
(place the md5sum data and the
exact name of the downloaded file on the same line of a file,
separated by white space) and run the command shown above.
Alternately, simply run the command shown below and compare
the output to the md5sum data shown in the BLFS book.
md5sum <name_of_downloaded_file>
For larger packages, it is convenient to create log files
instead of staring at the screen hoping to catch a particular
error or warning. Log files are also useful for debugging and
keeping records. The following command allows you to create
an installation log. Replace <command>
with the
command you intend to execute.
( <command>
2>&1 | tee compile.log && exit $PIPESTATUS )
2>&1
redirects error
messages to the same location as standard output. The
tee command
allows viewing of the output while logging the results to a
file. The parentheses around the command run the entire
command in a subshell and finally the exit $PIPESTATUS command
ensures the result of the <command>
is returned
as the result and not the result of the tee command.
There are times when automating the building of a package can
come in handy. Everyone has their own reasons for wanting to
automate building, and everyone goes about it in their own
way. Creating Makefile
s,
Bash scripts, Perl scripts or simply a list of
commands used to cut and paste are just some of the methods
you can use to automate building BLFS packages. Detailing how
and providing examples of the many ways you can automate the
building of packages is beyond the scope of this section.
This section will expose you to using file redirection and
the yes command
to help provide ideas on how to automate your builds.
You will find times throughout your BLFS journey when you will come across a package that has a command prompting you for information. This information might be configuration details, a directory path, or a response to a license agreement. This can present a challenge to automate the building of that package. Occasionally, you will be 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.
Sometimes you will only need to provide one response, or provide the same response to many prompts. For these instances, the yes command works really well. The yes command can be used to provide a response (the same one) to one or more instances of questions. It can be used to simulate pressing just the Enter key, entering the Y key or entering a string of text. Perhaps the easiest way to show its use is in an example.
First, create a short Bash script by entering the following commands:
cat > blfs-yes-test1 << "EOF"
#!/bin/bash
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
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 instructions to accept all the defaults to the many prompts during the configuration step. You may now remove the test script, if desired.
In order to automate the building of some packages, especially those that require you to read a license agreement one page at a time, requires using a method that avoids having to press a key to display each page. Redirecting the output to a file can be used in these instances to assist with the automation. The previous section on this page touched on creating log files of the build output. The redirection method shown there used the tee command to redirect output to a file while also displaying the output to the screen. Here, the output will only be sent to a file.
Again, the easiest way to demonstrate the technique is to show an example. First, issue the command:
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:
ls -l /usr/bin | more > redirect_test.log 2>&1
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:
cat > blfs-yes-test2 << "EOF"
#!/bin/bash
ls -l /usr/bin | more
echo -n -e "\n\nDid you enjoy reading this? (y,n) "
read A_STRING
if test "$A_STRING" = "y"; then A_STRING="You entered the 'y' key"
else A_STRING="You did NOT enter the 'y' key"
fi
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.
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.
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.
Last updated on 2007-04-04 14:42:53 -0500
Should I install XXX in /usr
or /usr/local
?
This is a question without an obvious answer for an LFS based system.
In traditional Unix systems, /usr
usually contains files that come with the system distribution,
and the /usr/local
tree is free
for the local administrator to manage. The only really hard and
fast rule is that Unix distributions should not touch
/usr/local
, except perhaps to
create the basic directories within it.
With Linux distributions like Red Hat, Debian, etc., a possible
rule is that /usr
is managed by
the distribution's package system and /usr/local
is not. This way the package
manager's database knows about every file within /usr
.
LFS users build their own system and so deciding where the
system ends and local files begin is not straightforward. So
the choice should be made in order to make things easier to
administer. There are several reasons for dividing files
between /usr
and /usr/local
.
On a network of several machines all running LFS, or
mixed LFS and other Linux distributions, /usr/local
could be used to hold
packages that are common between all the computers in the
network. It can be NFS mounted or mirrored from a single
server. Here local indicates local to the site.
On a network of several computers all running an
identical LFS system, /usr/local
could hold packages that are
different between the machines. In this case local refers
to the individual computers.
Even on a single computer, /usr/local
can be useful if you have
several distributions installed simultaneously, and want
a place to put packages that will be the same on all of
them.
Or you might regularly rebuild your LFS, but want a place to put files that you don't want to rebuild each time. This way you can wipe the LFS file system and start from a clean partition every time without losing everything.
Some people ask why not use your own directory tree, e.g.,
/usr/site
, rather than
/usr/local
?
There is nothing stopping you, many sites do make their own
trees, however it makes installing new software more difficult.
Automatic installers often look for dependencies in
/usr
and /usr/local
, and if the file it is looking for
is in /usr/site
instead, the
installer will probably fail unless you specifically tell it
where to look.
What is the BLFS position on this?
All of the BLFS instructions install programs in /usr
with optional instructions to install
into /opt
for some specific
packages.
Last updated on 2007-04-04 14:42:53 -0500
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.
Last updated on 2007-04-04 14:42:53 -0500
The BLFS Bootscripts package contains the init scripts that are used throughout the book. It is assumed that you will be using the BLFS Bootscripts package in conjunction with a compatible LFS-Bootscripts package. Refer to ../../../../lfs/view/6.3/chapter07/bootscripts.html for more information on the LFS-Bootscripts package.
Package Information
The BLFS Bootscripts package will be used throughout the BLFS
book for startup scripts. Unlike LFS, each init script has a
separate install target in the BLFS Bootscripts package. It is
recommended you keep the package source directory around until
completion of your BLFS system. When a script is requested from
BLFS Bootscripts, simply change to the directory and as the
root
user, execute the given
make install-<init-script>
command. This command installs the init script to its proper
location (along with any auxiliary configuration scripts) and
also creates the appropriate symlinks to start and stop the
service at the appropriate run-level.
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.
Last updated on 2007-04-04 14:42:53 -0500
This page contains information about locale related problems and issues. In the following paragraphs you'll find a generic overview of things that can come up when configuring your system for various locales. Many (but not all) existing locale related problems can be classified and fall under one of the headings below. The severity ratings below use the following criteria:
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.
Severity: Critical
Some programs require the user to specify the character
encoding for their input or output data and present only a
limited choice of encodings. This is the case for the
-X
option in a2ps-4.14 and Enscript-1.6.4, the -input-charset
option in unpatched Cdrtools-2.01, and the character sets
offered for display in the menu of Links-2.1pre33. If the
required encoding is not in the list, the program usually
becomes completely unusable. For non-interactive programs, it
may be possible to work around this by converting the
document to a supported input character set before submitting
to the program.
A solution to this type of problem is to implement the necessary support for the missing encoding as a patch to the original program (as done for Cdrtools-2.01 in this book), or to find a replacement.
Severity: High for non-text documents, low for text documents
Some programs, nano-2.0.7 or JOE-3.5 for example, assume that documents are always in the encoding implied by the current locale. While this assumption may be valid for the user-created documents, it is not safe for external ones. When this assumption fails, non-ASCII characters are displayed incorrectly, and the document may become unreadable.
If the external document is entirely text based, it can be converted to the current locale encoding using the iconv program.
For documents that are not text-based, this is not possible. In fact, the assumption made in the program may be completely invalid for documents where the Microsoft Windows operating system has set de facto standards. An example of this problem is ID3v1 tags in MP3 files (see the BLFS Wiki ID3v1Coding page for more details). For these cases, the only solution is to find a replacement program that doesn't have the issue (e.g., one that will allow you to specify the assumed document encoding).
Among BLFS packages, this problem applies to nano-2.0.7, JOE-3.5, and all media players except Audacious-1.3.2.
Another problem in this category is when someone cannot read the documents you've sent them because their operating system is set up to handle character encodings differently. This can happen often when the other person is using Microsoft Windows, which only provides one character encoding for a given country. For example, this causes problems with UTF-8 encoded TeX documents created in Linux. On Windows, most applications will assume that these documents have been created using the default Windows 8-bit encoding. See the teTeX Wiki page for more details.
In extreme cases, Windows encoding compatibility issues may be solved only by running Windows programs under Wine.
Severity: Critical
The POSIX standard mandates that the filename encoding is the
encoding implied by the current LC_CTYPE locale category.
This information is well-hidden on the page which specifies
the behavior of Tar and
Cpio programs. Some programs
get it wrong by default (or simply don't have enough
information to get it right). The result is that they create
filenames which are not subsequently shown correctly by
ls, or they
refuse to accept filenames that ls shows properly. For the
GLib-2.12.12 library, the problem can be
corrected by setting the G_FILENAME_ENCODING
environment variable to
the special "@locale" value. Glib2 based programs that don't respect
that environment variable are buggy.
The Zip-2.32, UnZip-5.52, and Nautilus CD Burner-2.18.2 have this problem because they hard-code the expected filename encoding. UnZip contains a hard-coded conversion table between the CP850 (DOS) and ISO-8859-1 (UNIX) encodings and uses this table when extracting archives created under DOS or Microsoft Windows. However, this assumption only works for those in the US and not for anyone using a UTF-8 locale. Non-ASCII characters will be mangled in the extracted filenames.
On the other hand, Nautilus CD
Burner checks names of files added to its window for
UTF-8 validity. This is wrong for users of non-UTF-8 locales.
Also, Nautilus CD Burner
unconditionally calls mkisofs with the -input-charset UTF-8
parameter,
which is only correct in UTF-8 locales.
The general rule for avoiding this class of problems is to avoid installing broken programs. If this is impossible, the convmv command-line tool can be used to fix filenames created by these broken programs, or intentionally mangle the existing filenames to meet the broken expectations of such programs.
In other cases, a similar problem is caused by importing filenames from a system using a different locale with a tool that is not locale-aware (e.g., NFS Utilities-1.1.2 or OpenSSH-4.7p1). In order to avoid mangling non-ASCII characters when transferring files to a system with a different locale, any of the following methods can be used:
Transfer anyway, fix the damage with convmv.
On the sending side, create a tar archive with the
--format=posix
switch passed to tar (this will be the
default in a future version of tar).
Mail the files as attachments. Mail clients specify the encoding of attached filenames.
Write the files to a removable disk formatted with a FAT or FAT32 filesystem.
Transfer the files using Samba.
Transfer the files via FTP using RFC2640-aware server (this currently means only wu-ftpd, which has bad security history) and client (e.g., lftp).
The last four methods work because the filenames are automatically converted from the sender's locale to UNICODE and stored or sent in this form. They are then transparently converted from UNICODE to the recipient's locale encoding.
Severity: High or critical
Many programs were written in an older era where multibyte locales were not common. Such programs assume that C "char" data type, which is one byte, can be used to store single characters. Further, they assume that any sequence of characters is a valid string and that every character occupies a single character cell. Such assumptions completely 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.
Severity: Low
LFS expects that manual pages are in the language-specific (usually 8-bit) encoding, as specified on the LFS Man DB page. However, some packages install translated manual pages in UTF-8 encoding (e.g., Shadow, already dealt with), or manual pages in languages not in the table. Not all BLFS packages have been audited for conformance with the requirements put in LFS (the large majority have been checked, and fixes placed in the book for packages known to install non-conforming manual pages). If you find a manual page installed by any of BLFS packages that is obviously in the wrong encoding, please remove or convert it as needed, and report this to BLFS team as a bug.
You can easily check your system for any non-conforming manual pages by copying the following short shell script to some accessible location,
#!/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):
find /usr/share/man -type f | xargs checkman.sh
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.
Last updated on 2007-11-01 18:23:19 -0500
The packages that are installed in this book are only the tip of the iceberg. We hope that the experience you gained with the LFS book and the BLFS book will give you the background needed to compile, install and configure packages that are not included in this book.
When you want to install a package to a location other than
/
, or /usr
, you are installing outside the default
environment settings on most machines. The following examples
should assist you in determining how to correct this situation.
The examples cover the complete range of settings that may need
updating, but they are not all needed in every situation.
Expand the PATH
to include
$PREFIX/bin
.
Expand the PATH
for
root
to include
$PREFIX/sbin
.
Add $PREFIX/lib
to
/etc/ld.so.conf
or expand
LD_LIBRARY_PATH
to include it.
Before using the latter option, check out http://xahlee.org/UnixResource_dir/_/ldpath.html.
If you modify /etc/ld.so.conf
, remember to update
/etc/ld.so.cache
by
executing ldconfig as the
root
user.
Add $PREFIX/man
to
/etc/man_db.conf
or expand
MANPATH
.
Add $PREFIX/info
to
INFOPATH
.
Add $PREFIX/lib/pkgconfig
to PKG_CONFIG_PATH
. Some
packages are now installing .pc
files in $PREFIX/share/pkgconfig
, so you may
have to include this directory also.
Add $PREFIX/include
to
CPPFLAGS
when compiling
packages that depend on the package you installed.
Add $PREFIX/lib
to
LDFLAGS
when compiling
packages that depend on a library installed by the
package.
If you are in search of a package that is not in the book, the following are different ways you can search for the desired package.
If you know the name of the package, then search
FreshMeat for it at http://freshmeat.net/. Also
search Google at http://google.com/. Sometimes a
search for the rpm
at
http://rpmfind.net/ or the
deb
at http://www.debian.org/distrib/packages#search_packages
can also lead to a link to the package.
If you know the name of the executable, but not the package that the executable belongs to, first try a Google search with the name of the executable. If the results are overwhelming, try searching for the given executable in the Debian repository at http://www.debian.org/distrib/packages#search_contents.
Some general hints on handling new packages:
Many of the newer packages follow the ./configure && make && make install process. Help on the options accepted by configure can be obtained via the command ./configure --help.
Most of the packages contain documentation on compiling and installing the package. Some of the documents are excellent, some not so excellent. Check out the homepage of the package for any additional and updated hints for compiling and configuring the package.
If you are having a problem compiling the package, try searching the LFS archives at http://www.linuxfromscratch.org/search.html for the error or if that fails, try searching Google. If everything else fails, try the blfs-support mailing-list.
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.
Last updated on 2008-02-25 11:58:32 -0600
The intention of LFS is to provide a basic system which you can build upon. There are several things about tidying up the system which many people wonder about once they have done the base install. We hope to cover these issues in this chapter.
Most people coming from non-Unix like backgrounds to Linux find
the concept of text-only configuration files slightly strange. In
Linux, just about all configuration is done via the manipulation
of text files. The majority of these files can be found in the
/etc
hierarchy. There are often
graphical configuration programs available for different
subsystems but most are simply pretty front ends to the process
of editing a text file. The advantage of text-only configuration
is that you can edit parameters using your favorite text editor,
whether that be vim, emacs, or any other editor.
The first task is making a recovery boot device in Creating a Custom Boot Device because it's the most critical need. Then the system is configured to ease addition of new users, because this can affect the choices you make in the two subsequent topics—The Bash Shell Startup Files and The vimrc Files.
The remaining topics, Customizing your Logon with /etc/issue, The /etc/shells File, Random number generation, Compressing man and info pages, Autofs-5.0.3, and Configuring for Network Filesystems are then addressed, in that order. They don't have much interaction with the other topics in this chapter.
This section is really about creating a rescue device. As the name rescue implies, the host system has a problem, often lost partition information or corrupted file systems, that prevents it from booting and/or operating normally. For this reason, you must not depend on resources from the host being "rescued". To presume that any given partition or hard drive will be available is a risky presumption.
In a modern system, there are many devices that can be used as a rescue device: floppy, cdrom, usb drive, or even a network card. Which one you use depends on your hardware and your BIOS. In the past, we usually thought of rescue device as a floppy disk. Today, many systems do not even have a floppy drive.
Building a complete rescue device is a challenging task. In many ways, it is equivalent to building an entire LFS system. In addition, it would be a repetition of information already available. For these reasons, the procedures for a rescue device image are not presented here.
The software of today's systems has grown large. Linux 2.6 no longer supports booting directly from a floppy. In spite of this, there are solutions available using older versions of Linux. One of the best is Tom's Root/Boot Disk available at http://www.toms.net/rb/. This will provide a minimal Linux system on a single floppy disk and provides the ability to customize the contents of your disk if necessary.
There are several sources that can be used for a rescue CD-ROM. Just about any commercial distribution's installation CD-ROMs or DVDs will work. These include RedHat, Mandrake, and SuSE. One very popular option is Knoppix.
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.
A USB Pen drive, sometimes called a Thumb drive, is recognized by Linux as a SCSI device. Using one of these devices as a rescue device has the advantage that it is usually large enough to hold more than a minimal boot image. You can save critical data to the drive as well as use it to diagnose and recover a damaged system. Booting such a drive requires BIOS support, but building the system consists of formatting the drive, adding GRUB as well as the Linux kernel and supporting files.
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/CreatingaCustomBootDevice
Last updated on 2008-03-12 11:05:41 -0500
Together, the /usr/sbin/useradd command and
/etc/skel
directory (both are
easy to set up and use) provide a way to assure new users are
added to your LFS system with the same beginning settings for
things such as the PATH
, keyboard
processing and other environmental variables. Using these two
facilities makes it easier to assure this initial state for
each new user added to the system.
The /etc/skel
directory holds
copies of various initialization and other files that may be
copied to the new user's home directory when the /usr/sbin/useradd program
adds the new user.
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.
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.
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>
Last updated on 2007-10-16 08:49:09 -0500
Throughout BLFS, many packages install programs that run as
daemons or in some way should have a user or group name
assigned. Generally these names are used to map a user ID (uid)
or group ID (gid) for system use. Generally the specific uid or
gid numbers used by these applications are not significant. The
exception of course, is that root
has a uid and gid of 0 (zero) that is
indeed special. The uid values are stored in /etc/passwd
and the gid values are found in
/etc/group
.
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.
Table 3.1. UID/GID Suggested Values
Name | uid | gid |
---|---|---|
bin | 1 | |
lp | 9 | |
messagebus | 18 | 18 |
haldaemon | 19 | 19 |
named | 20 | 20 |
gdm | 21 | 21 |
fcron | 22 | 22 |
apache | 25 | 25 |
smmsp | 26 | 26 |
exim | 31 | 31 |
postfix | 32 | 32 |
postdrop | 33 | |
sendmail | 34 | |
34 | ||
vmailman | 35 | 35 |
news | 36 | 36 |
mysql | 40 | 40 |
postgres | 41 | 41 |
ftp | 45 | 45 |
proftpd | 46 | 46 |
vsftpd | 47 | 47 |
rsyncd | 48 | 48 |
sshd | 50 | 50 |
stunnel | 51 | 51 |
svn | 56 | 56 |
svntest | 57 | |
games | 60 | 60 |
anonymous | 98 | |
nobody | 99 | |
nogroup | 99 |
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.
Last updated on 2008-03-12 11:05:41 -0500
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.
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/aboutdevices
If there are multiple sound cards in a system, the "default"
sound card becomes random. The method to establish sound card
order depends on whether the drivers are modules or not. If
the sound card drivers are compiled into the kernel, control
is via kernel command line parameters in /boot/grub/menu.lst
. For example, if a
system has both an FM801 card and a SoundBlaster PCI card,
the following can be appended to the command line:
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:
options snd-fm801 index=0
options snd-ens1371 index=1
Fine-tuning of device attributes such as group name and
permissions is possible by creating extra udev rules, matching on something like
this (on one line). The vendor and product can be found by
searching the /sys/devices directory entries or using
udevinfo after
the device has been attached. See the documentation in the
current udev directory of
/usr/share/doc
for details.
SUBSYSTEM=="usb_device", SYSFS{idVendor}=="05d8",
SYSFS{idProduct}=="4002", GROUP:="scanner", MODE:="0640"
Some older applications, such as VMware, need the following deprecated
entry in the /etc/fstab
file.
This is not normally needed.
usbfs /proc/bus/usb usbfs devgid=14,devmode=0660 0 0
In some cases, it makes sense to disable udev completely and create static devices. Servers are one example of this situation. Does a server need the capability of handling dynamic devices? Only the system administrator can answer that question, but in many cases the answer will be no.
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:
If the instructions below are not followed carefully, your system could become unbootable.
mount --bind / /mnt cp -a /dev/* /mnt/dev rm /etc/rc.d/rcsysinit.d/{S10udev,S45udev_retry} umount /mnt
At this point, the system will use static devices upon the next reboot. Create any desired additional devices using mknod.
If you want to restore the dynamic devices, recreate the
/etc/rc.d/rcsysinit.d/{S10udev,S45udev_retry}
symbolic links and reboot again. Static devices do not need
to be removed (console and null are always needed) because
they are covered by the tmpfs
partition. Disk usage for devices is negligible (about
20–30 bytes per entry.)
Last updated on 2007-04-14 05:46:41 -0500
The shell program /bin/bash
(hereafter referred to as just "the shell") uses a collection
of startup files to help create an environment. Each file has a
specific use and may affect login and interactive environments
differently. The files in the /etc
directory generally provide global
settings. If an equivalent file exists in your home directory
it may override the global settings.
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.
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.
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 <jameswrobertson@earthlink.net>
# modifications by Dagmar d'Surreal <rivyqntzne@pbzpnfg.arg>
# System wide environment variables and startup programs.
# System wide aliases and functions should go in /etc/bashrc. Personal
# environment variables and startup programs should go into
# ~/.bash_profile. Personal aliases and functions should go into
# ~/.bashrc.
# Functions to help us manage paths. Second argument is the name of the
# path variable to be modified (default: PATH)
pathremove () {
local IFS=':'
local NEWPATH
local DIR
local PATHVARIABLE=${2:-PATH}
for DIR in ${!PATHVARIABLE} ; do
if [ "$DIR" != "$1" ] ; then
NEWPATH=${NEWPATH:+$NEWPATH:}$DIR
fi
done
export $PATHVARIABLE="$NEWPATH"
}
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"
}
# Set the initial path
export PATH=/bin:/usr/bin
if [ $EUID -eq 0 ] ; then
pathappend /sbin:/usr/sbin
unset HISTFILE
fi
# Setup some environment variables.
export HISTSIZE=1000
export HISTIGNORE="&:[bf]g:exit"
# 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
for script in /etc/profile.d/*.sh ; do
if [ -r $script ] ; then
. $script
fi
done
# Now to clean up
unset pathremove pathprepend pathappend
# End /etc/profile
EOF
Now create the /etc/profile.d
directory, where the individual initialization scripts are
placed:
install --directory --mode=0755 --owner=root --group=root /etc/profile.d
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.
cat > /etc/profile.d/dircolors.sh << "EOF"
# Setup for /bin/ls to support color, the alias is in /etc/bashrc.
if [ -f "/etc/dircolors" ] ; then
eval $(dircolors -b /etc/dircolors)
if [ -f "$HOME/.dircolors" ] ; then
eval $(dircolors -b $HOME/.dircolors)
fi
fi
alias ls='ls --color=auto'
EOF
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.
cat > /etc/profile.d/extrapaths.sh << "EOF"
if [ -d /usr/local/lib/pkgconfig ] ; then
pathappend /usr/local/lib/pkgconfig PKG_CONFIG_PATH
fi
if [ -d /usr/local/bin ]; then
pathprepend /usr/local/bin
fi
if [ -d /usr/local/sbin -a $EUID -eq 0 ]; then
pathprepend /usr/local/sbin
fi
if [ -d ~/bin ]; then
pathprepend ~/bin
fi
#if [ $EUID -gt 99 ]; then
# pathappend .
#fi
EOF
This script sets up the default inputrc
configuration file. If the user
does not have individual settings, it uses the global file.
cat > /etc/profile.d/readline.sh << "EOF"
# Setup the INPUTRC environment variable.
if [ -z "$INPUTRC" -a ! -f "$HOME/.inputrc" ] ; then
INPUTRC=/etc/inputrc
fi
export INPUTRC
EOF
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.
cat > /etc/profile.d/umask.sh << "EOF"
# By default we want the umask to get set.
if [ "$(id -gn)" = "$(id -un)" -a $EUID -gt 99 ] ; then
umask 002
else
umask 022
fi
EOF
If X is installed, the
PATH
and PKG_CONFIG_PATH
variables are also updated.
cat > /etc/profile.d/X.sh << "EOF"
if [ -x /usr/X11R6/bin/X ]; then
pathappend /usr/X11R6/bin
fi
if [ -d /usr/X11R6/lib/pkgconfig ] ; then
pathappend /usr/X11R6/lib/pkgconfig PKG_CONFIG_PATH
fi
EOF
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.
cat > /etc/profile.d/i18n.sh << "EOF"
# Set up i18n variables
export LANG=<ll>
_<CC>
.<charmap>
<@modifiers>
EOF
Here is a base /etc/bashrc
.
Comments in the file should explain everything you need.
cat > /etc/bashrc << "EOF"
# Begin /etc/bashrc
# Written for Beyond Linux From Scratch
# by James Robertson <jameswrobertson@earthlink.net>
# updated by Bruce Dubbs <bdubbs@linuxfromscratch.org>
# System wide aliases and functions.
# System wide environment variables and startup programs should go into
# /etc/profile. Personal environment variables and startup programs
# should go into ~/.bash_profile. Personal aliases and functions should
# go into ~/.bashrc
# Provides a colored /bin/ls command. Used in conjunction with code in
# /etc/profile.
alias ls='ls --color=auto'
# Provides prompt for non-login shells, specifically shells started
# in the X environment. [Review the LFS archive thread titled
# PS1 Environment Variable for a great case study behind this script
# addendum.]
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
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.
cat > ~/.bash_profile << "EOF"
# Begin ~/.bash_profile
# Written for Beyond Linux From Scratch
# by James Robertson <jameswrobertson@earthlink.net>
# updated by Bruce Dubbs <bdubbs@linuxfromscratch.org>
# Personal environment variables and startup programs.
# Personal aliases and functions should go in ~/.bashrc. System wide
# environment variables and startup programs are in /etc/profile.
# System wide aliases and functions are in /etc/bashrc.
append () {
# First remove the directory
local IFS=':'
local NEWPATH
for DIR in $PATH; do
if [ "$DIR" != "$1" ]; then
NEWPATH=${NEWPATH:+$NEWPATH:}$DIR
fi
done
# Then append the directory
export PATH=$NEWPATH:$1
}
if [ -f "$HOME/.bashrc" ] ; then
source $HOME/.bashrc
fi
if [ -d "$HOME/bin" ] ; then
append $HOME/bin
fi
unset append
# End ~/.bash_profile
EOF
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 <jameswrobertson@earthlink.net>
# Personal aliases and functions.
# Personal environment variables and startup programs should go in
# ~/.bash_profile. System wide environment variables and startup
# programs are in /etc/profile. System wide aliases and functions are
# in /etc/bashrc.
if [ -f "/etc/bashrc" ] ; then
source /etc/bashrc
fi
# End ~/.bashrc
EOF
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 <jameswrobertson@earthlink.net>
# Personal items to perform on logout.
# End ~/.bash_logout
EOF
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.
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.
Last updated on 2008-05-09 08:00:42 -0500
The LFS book installs Vim as its text editor. At this point it should be noted that there are a lot of different editing applications out there including Emacs, nano, Joe and many more. Anyone who has been around the Internet (especially usenet) for a short time will certainly have observed at least one flame war, usually involving Vim and Emacs users!
The LFS book creates a basic vimrc
file. In this section you'll find an
attempt to enhance this file. At startup, vim reads the global
configuration file (/etc/vimrc
)
as well as a user-specific file (~/.vimrc
). Either or both can be tailored to
suit the needs of your particular system.
Here is a slightly expanded .vimrc
that you can put in ~/.vimrc
to provide user specific effects. Of
course, if you put it into /etc/skel/.vimrc
instead, it will be made
available to users you add to the system later. You can also
copy the file from /etc/skel/.vimrc
to the home directory of
users already on the system, such as root
. Be sure to set permissions, owner,
and group if you do copy anything directly from /etc/skel
.
" Begin .vimrc
set columns=80
set wrapmargin=8
set ruler
" End .vimrc
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.
Last updated on 2007-10-16 08:02:24 -0500
When you first boot up your new LFS system, the logon screen
will be nice and plain (as it should be in a bare-bones
system). Many people however, will want their system to display
some information in the logon message. This can be accomplished
using the file /etc/issue
.
The /etc/issue
file is a plain
text file which will also accept certain escape sequences (see
below) in order to insert information about the system. There
is also the file issue.net
which
can be used when logging on remotely. ssh however, will only use it
if you set the option in the configuration file and will
not interpret the escape
sequences shown below.
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.
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).
b Insert the baudrate of the current line.
d Insert the current date.
s Insert the system name, the name of the operating system.
l Insert the name of the current tty line.
m Insert the architecture identifier of the machine, e.g., i686.
n Insert the nodename of the machine, also known as the hostname.
o Insert the domainname of the machine.
r Insert the release number of the kernel, e.g., 2.6.11.12.
t Insert the current time.
u Insert the number of current users logged in.
U Insert the string "1 user" or "<n> users" where <n> is the
number of current users logged in.
v Insert the version of the OS, e.g., the build-date etc.
Last updated on 2007-04-04 14:42:53 -0500
The shells
file contains a list
of login shells on the system. Applications use this file to
determine whether a shell is valid. For each shell a single
line should be present, consisting of the shell's path,
relative to the root of the directory structure (/).
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.
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
Last updated on 2007-04-04 14:42:53 -0500
The Linux kernel supplies a random number generator which is
accessed through /dev/random
and
/dev/urandom
. Programs that
utilize the random and urandom devices, such as OpenSSH, will benefit from these
instructions.
When a Linux system starts up without much operator interaction, the entropy pool (data used to compute a random number) may be in a fairly predictable state. This creates the real possibility that the number generated at startup may always be the same. In order to counteract this effect, you should carry the entropy pool information across your shut-downs and start-ups.
Install the /etc/rc.d/init.d/random
init script included
with the blfs-bootscripts-20080816 package.
make install-random
Last updated on 2007-04-04 14:42:53 -0500
Man and info reader programs can transparently process files
compressed with gzip or bzip2, a feature you can use
to free some disk space while keeping your documentation
available. However, things are not that simple; man directories
tend to contain links—hard and symbolic—which
defeat simple ideas like recursively calling gzip on them. A better way to
go is to use the script below. 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/compressdoc
(the file should be installed in the /usr/sbin
directory).
cat > /usr/sbin/compressdoc << "EOF"
#!/bin/bash
# VERSION: 20080421.1623
#
# Compress (with bzip2 or gzip) all man pages in a hierarchy and
# update symlinks - By Marc Heerdink <marc @ koelkast.net>
#
# Modified to be able to gzip or bzip2 files as an option and to deal
# with all symlinks properly by Mark Hymers <markh @ linuxfromscratch.org>
#
# Modified 20030930 by Yann E. Morin <yann.morin.1998 @ anciens.enib.fr>
# to accept compression/decompression, to correctly handle hard-links,
# to allow for changing hard-links into soft- ones, to specify the
# compression level, to parse the man.conf for all occurrences of MANPATH,
# to allow for a backup, to allow to keep the newest version of a page.
#
# Modified 20040330 by Tushar Teredesai to replace $0 by the name of the
# script.
# (Note: It is assumed that the script is in the user's PATH)
#
# Modified 20050112 by Randy McMurchy to shorten line lengths and
# correct grammar errors.
#
# Modified 20060128 by Alexander E. Patrakov for compatibility with Man-DB.
#
# Modified 20060311 by Archaic to use Man-DB manpath utility which is a
# replacement for man --path from Man.
#
# Modified 20080421 by Dan Nicholson to properly execute the correct
# compressdoc when working recursively. This means the same compressdoc
# will be used whether a full path was given or it was resolved from PATH.
#
# Modified 20080421 by Dan Nicholson to be more robust with directories
# that don't exist or don't have sufficient permissions.
#
# Modified 20080421 by Lars Bamberger to (sort of) automatically choose
# a compression method based on the size of the manpage. A couple bug
# fixes were added by Dan Nicholson.
#
# Modified 20080421 by Dan Nicholson to suppress warnings from manpath
# since these are emitted when $MANPATH is set. Removed the TODO for
# using the $MANPATH variable since manpath(1) handles this already.
#
# TODO:
# - choose a default compress method to be based on the available
# tool : gzip or bzip2;
# - offer an option to restore a previous backup;
# - add other compression engines (compress, zip, etc?). Needed?
# Funny enough, this function prints some help.
function help ()
{
if [ -n "$1" ]; then
echo "Unknown option : $1"
fi
( echo "Usage: $MY_NAME <comp_method> [options] [dirs]" && \
cat << EOT
Where comp_method is one of :
--gzip, --gz, -g
--bzip2, --bz2, -b
Compress using gzip or bzip2.
--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.
--backup Specify a .tar backup shall be done for all directories.
In case a backup already exists, it is saved as .tar.old
prior to making the new backup. If a .tar.old backup
exists, it is removed prior to saving the backup.
In backup mode, no other action is performed.
And where options are :
-1 to -9, --fast, --best
The compression level, as accepted by gzip and bzip2.
When not specified, uses the default compression level
for the given method (-6 for gzip, and -9 for bzip2).
Not used when in backup or decompress modes.
--force, -F Force (re-)compression, even if the previous one was
the same method. Useful when changing the compression
ratio. By default, a page will not be re-compressed if
it ends with the same suffix as the method adds
(.bz2 for bzip2, .gz for gzip).
--soft, -S Change hard-links into soft-links. Use with _caution_
as the first encountered file will be used as a
reference. Not used when in backup mode.
--hard, -H Change soft-links into hard-links. Not used when in
backup mode.
--conf=dir, --conf dir
Specify the location of man_db.conf. Defaults to /etc.
--verbose, -v Verbose mode, print the name of the directory being
processed. Double the flag to turn it even more verbose,
and to print the name of the file being processed.
--fake, -f Fakes it. Print the actual parameters compressdoc will use.
dirs A list of space-separated _absolute_ pathnames to the
man directories. When empty, and only then, use manpath
to parse ${MAN_CONF}/man_db.conf for all valid occurrences
of MANDATORY_MANPATH.
Note about compression:
There has been a discussion on blfs-support about compression ratios of
both gzip and bzip2 on man pages, taking into account the hosting fs,
the architecture, etc... On the overall, the conclusion was that gzip
was much more efficient on 'small' files, and bzip2 on 'big' files,
small and big being very dependent on the content of the files.
See the original post from Mickael A. Peters, titled
"Bootable Utility CD", dated 20030409.1816(+0200), and subsequent posts:
http://linuxfromscratch.org/pipermail/blfs-support/2003-April/038817.html
On my system (x86, ext3), man pages were 35564KB before compression.
gzip -9 compressed them down to 20372KB (57.28%), bzip2 -9 got down to
19812KB (55.71%). That is a 1.57% gain in space. YMMV.
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
# Look for, and keep, the most recent one
LATEST=`(cd "$DIR"; ls -1rt "${BASENAME}" "${GZ_FILE}" "${BZ_FILE}" \
2>/dev/null | tail -n 1)`
for i in "${BASENAME}" "${GZ_FILE}" "${BZ_FILE}"; do
[ "$LATEST" != "$i" ] && rm -f "$DIR"/"$i"
done
# In case the specified file was the latest, return 0
[ "$LATEST" = "$2" ] && return 0
# If the file was not the latest, return 1
return 1
}
# Name of the script
MY_NAME=`basename $0`
# OK, parse the command-line for arguments, and initialize to some
# sensible state, that is: don't change links state, parse
# /etc/man_db.conf, be most silent, search man_db.conf in /etc, and don't
# force (re-)compression.
COMP_METHOD=
COMP_SUF=
COMP_LVL=
FORCE_OPT=
LN_OPT=
MAN_DIR=
VERBOSE_LVL=0
BACKUP=no
FAKE=no
MAN_CONF=/etc
while [ -n "$1" ]; do
case $1 in
--gzip|--gz|-g)
COMP_SUF=.gz
COMP_METHOD=$1
shift
;;
--bzip2|--bz2|-b)
COMP_SUF=.bz2
COMP_METHOD=$1
shift
;;
--automatic)
COMP_SUF=TBD
COMP_METHOD=$1
shift
;;
--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
;;
/*)
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
# Note: on my machine, 'man --path' gives /usr/share/man twice, once
# with a trailing '/', once without.
if [ -z "$MAN_DIR" ]; then
MAN_DIR=`manpath -q -C "$MAN_CONF"/man_db.conf \
| sed 's/:/\\n/g' \
| while read foo; do dirname "$foo"/.; done \
| sort -u \
| while read bar; do echo -n "$bar "; done`
fi
# If no MANDATORY_MANPATH in ${MAN_CONF}/man_db.conf, abort as well
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
# If no method was specified, print help
if [ -z "${COMP_METHOD}" -a "${BACKUP}" = "no" ]; then
help
exit 1
fi
# In backup mode, do the backup solely
if [ "$BACKUP" = "yes" ]; then
for DIR in $MAN_DIR; do
cd "${DIR}/.."
if [ ! -w "`pwd`" ]; then
echo "Directory '`pwd`' is not writable"
exit 1
fi
DIR_NAME=`basename "${DIR}"`
echo "Backing up $DIR..." > $DEST_FD0
[ -f "${DIR_NAME}.tar.old" ] && rm -f "${DIR_NAME}.tar.old"
[ -f "${DIR_NAME}.tar" ] &&
mv "${DIR_NAME}.tar" "${DIR_NAME}.tar.old"
tar -cvf "${DIR_NAME}.tar" "${DIR_NAME}" > $DEST_FD1
done
exit 0
fi
# I know MAN_DIR has only absolute path names
# I need to take into account the localized man, so I'm going recursive
for DIR in $MAN_DIR; do
MEM_DIR=`pwd`
if [ ! -w "$DIR" ]; then
echo "Directory '$DIR' is not writable"
exit 1
fi
cd "$DIR"
for FILE in *; do
# Fixes the case were the directory is empty
if [ "foo$FILE" = "foo*" ]; then continue; 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
# Do not compress whatis files
if [ "$FILE" = "whatis" ]; 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
# But I need exit in case of error. We must change back to the
# original directory so $0 is resolved correctly.
(cd "$MEM_DIR" && eval "$0" ${COMP_METHOD} ${COMP_LVL} ${LN_OPT} \
${VERBOSE_OPT} ${FORCE_OPT} "${DIR}/${FILE}") || exit $?
echo "<- Leaving ${DIR}/${FILE}." > $DEST_FD1
else # !dir
if ! check_unique "$DIR" "$FILE"; then continue; fi
# With automatic compression, get the uncompressed file size of
# the file (dereferencing symlinks), and choose an appropriate
# compression method.
if [ "$COMP_METHOD" = "--automatic" ]; then
declare -i SIZE
case "$FILE" in
*.bz2)
SIZE=$(bzcat "$FILE" | wc -c) ;;
*.gz)
SIZE=$(zcat "$FILE" | wc -c) ;;
*)
SIZE=$(wc -c < "$FILE") ;;
esac
if (( $SIZE >= (5 * 2**10) )); then
COMP_SUF=.bz2
elif (( $SIZE >= (1 * 2**10) )); then
COMP_SUF=.gz
else
COMP_SUF=
fi
fi
# Check if the file is already compressed with the specified method
BASE_FILE=`basename "$FILE" .gz`
BASE_FILE=`basename "$BASE_FILE" .bz2`
if [ "${FILE}" = "${BASE_FILE}${COMP_SUF}" \
-a "foo${FORCE_OPT}" = "foo" ]; then continue; fi
# If we have a symlink
if [ -h "$FILE" ]; then
case "$FILE" in
*.bz2)
EXT=bz2 ;;
*.gz)
EXT=gz ;;
*)
EXT=none ;;
esac
if [ ! "$EXT" = "none" ]; then
LINK=`ls -l "$FILE" | cut -d ">" -f2 \
| tr -d " " | sed s/\.$EXT$//`
NEWNAME=`echo "$FILE" | sed s/\.$EXT$//`
mv "$FILE" "$NEWNAME"
FILE="$NEWNAME"
else
LINK=`ls -l "$FILE" | cut -d ">" -f2 | tr -d " "`
fi
if [ "$LN_OPT" = "-H" ]; then
# Change this soft-link into a hard- one
rm -f "$FILE" && ln "${LINK}$COMP_SUF" "${FILE}$COMP_SUF"
chmod --reference "${LINK}$COMP_SUF" "${FILE}$COMP_SUF"
else
# Keep this soft-link a soft- one.
rm -f "$FILE" && ln -s "${LINK}$COMP_SUF" "${FILE}$COMP_SUF"
fi
echo "Relinked $FILE" > $DEST_FD1
# else if we have a plain file
elif [ -f "$FILE" ]; then
# Take care of hard-links: build the list of files hard-linked
# to the one we are {de,}compressing.
# NB. This is not optimum has the file will eventually be
# compressed as many times it has hard-links. But for now,
# that's the safe way.
inode=`ls -li "$FILE" | awk '{print $1}'`
HLINKS=`find . \! -name "$FILE" -inum $inode`
if [ -n "$HLINKS" ]; then
# We have hard-links! Remove them now.
for i in $HLINKS; do rm -f "$i"; done
fi
# Now take care of the file that has no hard-link
# We do decompress first to re-compress with the selected
# compression ratio later on...
case "$FILE" in
*.bz2)
bunzip2 $FILE
FILE=`basename "$FILE" .bz2`
;;
*.gz)
gunzip $FILE
FILE=`basename "$FILE" .gz`
;;
esac
# Compress the file with the given compression ratio, if needed
case $COMP_SUF in
*bz2)
bzip2 ${COMP_LVL} "$FILE" && chmod 644 "${FILE}${COMP_SUF}"
echo "Compressed $FILE" > $DEST_FD1
;;
*gz)
gzip ${COMP_LVL} "$FILE" && chmod 644 "${FILE}${COMP_SUF}"
echo "Compressed $FILE" > $DEST_FD1
;;
*)
echo "Uncompressed $FILE" > $DEST_FD1
;;
esac
# If the file had hard-links, recreate those (either hard or soft)
if [ -n "$HLINKS" ]; then
for i in $HLINKS; do
NEWFILE=`echo "$i" | sed s/\.gz$// | sed s/\.bz2$//`
if [ "$LN_OPT" = "-S" ]; then
# Make this hard-link a soft- one
ln -s "${FILE}$COMP_SUF" "${NEWFILE}$COMP_SUF"
else
# Keep the hard-link a hard- one
ln "${FILE}$COMP_SUF" "${NEWFILE}$COMP_SUF"
fi
# Really work only for hard-links. Harmless for soft-links
chmod 644 "${NEWFILE}$COMP_SUF"
done
fi
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
As root
, make compressdoc executable for
all users:
chmod -v 755 /usr/sbin/compressdoc
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.
Last updated on 2008-04-21 18:27:43 -0500
The Autofs package contains userspace tools that work with the kernel to mount and un-mount removable file systems. The primary use is to mount external network file systems like NFS (see NFS Utilities-1.1.2) or Samba (see Samba-3.0.30) on demand.
It may also be useful for allowing users to mount floppies, cdroms and other removable storage devices without requiring the system administrator to mount the devices although this capability is now generally provided by HAL (see HAL-0.5.9.1). This may not be ideal for all installations, so be aware of the risks before implementing this feature.
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
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:
wget http://ftp.kernel.org/pub/linux/daemons/autofs/v5/patch_order-5.0.3 && sed 's;autofs;http://ftp.kernel.org/pub/linux/daemons/autofs/v5/autofs;' \ patch_order-5.0.3 > wget-list && wget -i wget-list
OpenLDAP-2.3.39 and Cyrus SASL-2.1.22
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/autofs
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)
Recompile and install the new kernel, if necessary.
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
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.
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
/media/auto /etc/auto.misc --ghost
#/home /etc/auto.home
# 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 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.
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.
Last updated on 2008-08-11 15:01:37 -0500
While LFS is capable of mounting network file systems such as
NFS, these are not mounted by the mountfs
init script. Network file systems
must be mounted after the networking is activated and unmounted
before the network goes down. The netfs
bootscript was written to handle both
boot-time mounting of network filesystems, if the entry in
/etc/fstab
contains the
_netdev
option, and unmounting of
all network filesystems before the network is brought down.
As the root
user, install the
/etc/rc.d/init.d/netfs
bootscript
included with the blfs-bootscripts-20080816 package.
make install-netfs
Last updated on 2007-04-04 14:42:53 -0500
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.
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).
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)
bc-1.06 (recommended if you run the test suite during the build)
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/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
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.
make MANDIR=/usr/share/man;
make MANDIR=/usr/share/man install: These
commands install OpenSSL
with the man pages in /usr/share/man
instead of /etc/ssl/man
.
cp -v -r certs /etc/ssl: The certificates must be copied manually as the default installation skips this step.
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.
is a Perl script that scans all files in a directory and adds symbolic links to their hash values. |
|
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. |
|
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. |
|
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. |
Last updated on 2008-03-22 21:40:43 -0500
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.
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
GTK-Doc-1.8, OpenCDK, Tiny ASN.1, libcfg+, LZO-2.02, and Valgrind (used during the test suite)
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/gnutls
Install GnuTLS 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/gnutls-1.6.3/reference && install -v -m644 doc/reference/html/* \ /usr/share/doc/gnutls-1.6.3/reference && install -v -m644 doc/*.{html,png,eps,pdf,ps} \ /usr/share/doc/gnutls-1.6.3
is used to generate X.509 certificates, certificate requests, and private keys. |
|
is a simple client program to set up a TLS connection to some other computer. |
|
is a simple client program to set up a TLS connection to some other computer and produces very verbose progress results. |
|
is a simple server program that listens to incoming TLS connections. |
|
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. |
|
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. |
|
is a simple program that generates random keys for use with TLS-PSK. |
|
is a simple program that emulates the programs in the Stanford SRP (Secure Remote Password) libraries using GNU TLS. |
|
contains the core API functions and X.509 certificate API functions. |
Last updated on 2008-05-09 08:00:42 -0500
The CrackLib package contains a library used to enforce strong passwords by comparing user selected passwords to words in chosen word lists.
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
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.
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.
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/cracklib
Install CrackLib by running the following commands:
./configure --prefix=/usr \ --with-default-dict=/lib/cracklib/pw_dict && make
Now, as the root
user:
make install && mv -v /usr/lib/libcrack.so.2* /lib && ln -v -sf ../../lib/libcrack.so.2.8.0 /usr/lib/libcrack.so
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.
install -v -m644 -D ../cracklib-words-20080203.gz \ /usr/share/dict/cracklib-words.gz && gunzip -v /usr/share/dict/cracklib-words.gz && ln -v -s cracklib-words /usr/share/dict/words && echo $(hostname) >>/usr/share/dict/cracklib-extra-words && install -v -m755 -d /lib/cracklib && create-cracklib-dict /usr/share/dict/cracklib-words \ /usr/share/dict/cracklib-extra-words
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:
cat > test-data <<"EOF" && antzer G@ndalf neulinger lantzer Pa$$w0rd PaS$W0rd Pas$w0rd Pas$W0rd Pa$sw0rd Pa$sW0rd EOF make test
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.
--with-default-dict=/lib/cracklib/pw_dict
:
This parameter forces the installation of the CrackLib dictionary to the /lib
hierarchy.
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.
Last updated on 2008-08-17 08:22:54 -0500
The Linux-PAM package contains Pluggable Authentication Modules. This is useful to enable the local system administrator to choose how applications authenticate users.
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
Optional documentation: http://anduin.linuxfromscratch.org/sources/BLFS/6.3/l/Linux-PAM-0.99.10.0-docs.tar.bz2
CrackLib-2.8.12, and Prelude
libxslt-1.1.22, DocBook XML DTD-4.5, DocBook XSL Stylesheets-1.71.1, w3m, and FOP-0.93
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/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.
Now, as the root
user:
make install && chmod -v 4755 /lib/security/unix_chkpwd && mv -v /lib/security/pam_tally /sbin && mv -v /lib/libpam{,c,_misc}.la /usr/lib && sed -i 's| /lib| /usr/lib|' /usr/lib/libpam_misc.la && 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
--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.
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
auth required pam_unix.so nullok
account required pam_unix.so
session required pam_unix.so
password required pam_unix.so nullok
# End /etc/pam.d/other
# Begin /etc/pam.conf
other auth required pam_unix.so nullok
other account required pam_unix.so
other session required pam_unix.so
other password required pam_unix.so nullok
# End /etc/pam.conf
The PAM man page (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.
You should now reinstall the Shadow-4.0.18.1 package.
Last updated on 2008-05-16 01:37:44 -0500
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.
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
Linux-PAM-0.99.10.0 and/or CrackLib-2.8.12
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/shadow
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.
Reinstall Shadow by running the following commands:
patch -Np1 -i ../shadow-4.0.18.1-useradd_fix-2.patch && ./configure --libdir=/lib \ --sysconfdir=/etc \ --enable-shared \ --without-selinux && sed -i 's/groups$(EXEEXT) //' src/Makefile && find man -name Makefile -exec sed -i 's/groups\.1 / /' {} \; && sed -i -e 's/ ko//' -e 's/ zh_CN zh_TW//' man/Makefile && 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 && convert-mans UTF-8 EUC-JP man/ja/*.? && convert-mans UTF-8 KOI8-R man/ru/*.? && convert-mans UTF-8 ISO-8859-9 man/tr/*.? && make
This package does not come with a test suite.
Now, as the root
user:
make install && mv -v /usr/bin/passwd /bin && mv -v /lib/libshadow.*a /usr/lib && rm -v /lib/libshadow.so && ln -v -sf ../../lib/libshadow.so.0 /usr/lib/libshadow.so
--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.
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.
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:
useradd -D -b /home && sed -i 's/yes/no/' /etc/default/useradd
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.
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:
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:
install -v -m644 /etc/login.defs /etc/login.defs.orig && for FUNCTION in LASTLOG_ENAB MAIL_CHECK_ENAB \ PORTTIME_CHECKS_ENAB CONSOLE \ MOTD_FILE NOLOGINS_FILE PASS_MIN_LEN \ SU_WHEEL_ONLY MD5_CRYPT_ENAB \ CONSOLE_GROUPS ENVIRON_FILE \ ULIMIT ENV_TZ ENV_HZ ENV_SUPATH \ ENV_PATH QMAIL_DIR MAIL_DIR MAIL_FILE \ CHFN_AUTH FAILLOG_ENAB QUOTAS_ENAB FTMP_FILE \ OBSCURE_CHECKS_ENAB CRACKLIB_DICTPATH \ PASS_CHANGE_TRIES PASS_ALWAYS_WARN ISSUE_FILE do sed -i "s/^$FUNCTION/# &/" /etc/login.defs done
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:
install -v -d -m755 /etc/pam.d
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:
cat > /etc/pam.d/login << "EOF"
# Begin /etc/pam.d/login
auth requisite pam_nologin.so
auth required pam_securetty.so
auth required pam_unix.so
account required pam_access.so
account required pam_unix.so
session required pam_env.so
session required pam_motd.so
session required pam_limits.so
session optional pam_mail.so dir=/var/mail standard
session optional pam_lastlog.so
session required pam_unix.so
password required pam_cracklib.so retry=3
password required pam_unix.so md5 shadow use_authtok
# End /etc/pam.d/login
EOF
cat > /etc/pam.d/login << "EOF"
# Begin /etc/pam.d/login
auth requisite pam_nologin.so
auth required pam_securetty.so
auth required pam_env.so
auth required pam_unix.so
account required pam_access.so
account required pam_unix.so
session required pam_motd.so
session required pam_limits.so
session optional pam_mail.so dir=/var/mail standard
session optional pam_lastlog.so
session required pam_unix.so
password required pam_unix.so md5 shadow
# End /etc/pam.d/login
EOF
cat > /etc/pam.d/passwd << "EOF"
# Begin /etc/pam.d/passwd
password required pam_cracklib.so type=Linux retry=1 \
difok=5 diffignore=23 minlen=9 \
dcredit=1 ucredit=1 lcredit=1 \
ocredit=1 \
dictpath=/lib/cracklib/pw_dict
password required pam_unix.so md5 shadow use_authtok
# End /etc/pam.d/passwd
EOF
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.
cat > /etc/pam.d/passwd << "EOF"
# Begin /etc/pam.d/passwd
password required pam_unix.so md5 shadow
# End /etc/pam.d/passwd
EOF
cat > /etc/pam.d/su << "EOF"
# Begin /etc/pam.d/su
auth sufficient pam_rootok.so
auth required pam_unix.so
account required pam_unix.so
session optional pam_mail.so dir=/var/mail standard
session optional pam_xauth.so
session required pam_env.so
session required pam_unix.so
# End /etc/pam.d/su
EOF
cat > /etc/pam.d/chage << "EOF"
# Begin /etc/pam.d/chage
auth sufficient pam_rootok.so
auth required pam_unix.so
account required pam_unix.so
session required pam_unix.so
password required pam_permit.so
# End /etc/pam.d/chage
EOF
for PROGRAM in chpasswd chgpasswd groupadd groupdel groupmems \ groupmod newusers useradd userdel usermod do install -v -m644 /etc/pam.d/chage /etc/pam.d/$PROGRAM sed -i "s/chage/$PROGRAM/" /etc/pam.d/$PROGRAM done
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.
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:
cat > /etc/pam.d/other << "EOF"
# Begin /etc/pam.d/other
auth required pam_deny.so
auth required pam_warn.so
account required pam_deny.so
session required pam_deny.so
password required pam_deny.so
password required pam_warn.so
# End /etc/pam.d/other
EOF
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
During previous configuration, several items were removed
from /etc/login.defs
. Some
of these items are now controlled by the pam_env.so
module and the /etc/security/pam_env.conf
configuration file. In particular, the default path has
been changed. To recover your default path, execute the
following commands:
ENV_PATH=`grep '^ENV_PATH' /etc/login.defs.orig | \ awk '{ print $2 }' | sed 's/PATH=//'` && echo 'PATH DEFAULT='`echo "${ENV_PATH}"`\ ' OVERRIDE=${PATH}' \ >> /etc/security/pam_env.conf && unset ENV_PATH
ENV_SUPATH is no longer supported. You must create a
valid /root/.bashrc
file
to provide a modified path for the super-user.
A list of the installed files, along with their short descriptions can be found at ../../../../lfs/view/6.3/chapter06/shadow.html#contents-shadow.
Last updated on 2008-06-27 00:27:03 -0500
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.
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
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/iptables
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.
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.
Install iptables by running the following commands:
sed -i 's/name="$node/name="node/' iptables.xslt && make LIBDIR=/lib KERNEL_DIR=/usr
This package does not come with a test suite.
Now, as the root
user:
make PREFIX=/usr LIBDIR=/lib BINDIR=/sbin \ MANDIR=/usr/share/man install && install -v -m644 iptables.xslt /lib/iptables
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
.
Introductory instructions for configuring your firewall are presented in the next section: Firewalling
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
is used to set up, maintain, and inspect the tables of IP packet filter rules in the Linux kernel. |
|
is used to restore IP Tables from data specified on STDIN. Use I/O redirection provided by your shell to read from a file. |
|
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. |
|
is used to convert the output of iptables-save to
an XML format. Using the |
|
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. |
|
library modules are various modules (implemented as dynamic libraries) which extend the core functionality of iptables. |
Last updated on 2008-05-09 07:42:27 -0500
Before you read this part of the chapter, you should have already installed iptables as described in the previous section.
The general purpose of a firewall is to protect a computer or a network against malicious access.
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.
The word firewall can have several different meanings.
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.
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.
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.
This box performs masquerading or routing, but grants public access to some branch of your network which, because of public IPs and a physically separated structure, is essentially a separate network with direct Internet access. The servers on this network are those which must be easily accessible from both the Internet and intranet. The firewall protects both networks. This type of firewall has a minimum of three network interfaces.
This introduction on how to setup a firewall is not a complete guide to securing systems. Firewalling is a complex issue that requires careful configuration. The scripts quoted here are simply intended to give examples of how a firewall works. They are not intended to fit into any particular configuration and may not provide complete protection from an attack.
Customization of these scripts for your specific situation will be necessary for an optimal configuration, but you should make a serious study of the iptables documentation and creating firewalls in general before hacking away. Have a look at the list of links for further reading at the end of this section for more details. There you will find a list of URLs that contain quite comprehensive information about building your own firewall.
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.
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.
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"
#!/bin/sh
# Begin $rc_base/rc.iptables
# Insert connection-tracking modules
# (not needed if built into the kernel)
modprobe ip_tables
modprobe iptable_filter
modprobe ip_conntrack
modprobe ip_conntrack_ftp
modprobe ipt_state
modprobe ipt_LOG
# Enable broadcast echo Protection
echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_broadcasts
# Disable Source Routed Packets
echo 0 > /proc/sys/net/ipv4/conf/all/accept_source_route
# Enable TCP SYN Cookie Protection
echo 1 > /proc/sys/net/ipv4/tcp_syncookies
# Disable ICMP Redirect Acceptance
echo 0 > /proc/sys/net/ipv4/conf/all/accept_redirects
# Don¹t send Redirect Messages
echo 0 > /proc/sys/net/ipv4/conf/all/send_redirects
# Drop Spoofed Packets coming in on an interface, where responses
# would result in the reply going out a different interface.
echo 1 > /proc/sys/net/ipv4/conf/all/rp_filter
# Log packets with impossible addresses.
echo 1 > /proc/sys/net/ipv4/conf/all/log_martians
# be verbose on dynamic ip-addresses (not needed in case of static IP)
echo 2 > /proc/sys/net/ipv4/ip_dynaddr
# disable Explicit Congestion Notification
# too many routers are still ignorant
echo 0 > /proc/sys/net/ipv4/tcp_ecn
# Set a known state
iptables -P INPUT DROP
iptables -P FORWARD DROP
iptables -P OUTPUT DROP
# 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
# Allow local-only connections
iptables -A INPUT -i lo -j ACCEPT
# Free output on any interface to any ip for any service
# (equal to -P ACCEPT)
iptables -A OUTPUT -j ACCEPT
# Permit answers on already established connections
# and permit new connections related to established ones
# (e.g. port mode ftp)
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
# Log everything else. What's Windows' latest exploitable vulnerability?
iptables -A INPUT -j LOG --log-prefix "FIREWALL:INPUT "
# 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.
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.
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
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
# Insert iptables modules (not needed if built into the kernel).
modprobe ip_tables
modprobe iptable_filter
modprobe ip_conntrack
modprobe ip_conntrack_ftp
modprobe ipt_state
modprobe iptable_nat
modprobe ip_nat_ftp
modprobe ipt_MASQUERADE
modprobe ipt_LOG
modprobe ipt_REJECT
# Enable broadcast echo Protection
echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_broadcasts
# Disable Source Routed Packets
echo 0 > /proc/sys/net/ipv4/conf/all/accept_source_route
# Enable TCP SYN Cookie Protection
echo 1 > /proc/sys/net/ipv4/tcp_syncookies
# Disable ICMP Redirect Acceptance
echo 0 > /proc/sys/net/ipv4/conf/all/accept_redirects
# Don¹t send Redirect Messages
echo 0 > /proc/sys/net/ipv4/conf/all/send_redirects
# Drop Spoofed Packets coming in on an interface where responses
# would result in the reply going out a different interface.
echo 1 > /proc/sys/net/ipv4/conf/all/rp_filter
# Log packets with impossible addresses.
echo 1 > /proc/sys/net/ipv4/conf/all/log_martians
# Be verbose on dynamic ip-addresses (not needed in case of static IP)
echo 2 > /proc/sys/net/ipv4/ip_dynaddr
# Disable Explicit Congestion Notification
# Too many routers are still ignorant
echo 0 > /proc/sys/net/ipv4/tcp_ecn
# Set a known state
iptables -P INPUT DROP
iptables -P FORWARD DROP
iptables -P OUTPUT DROP
# 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
# Allow local connections
iptables -A INPUT -i lo -j ACCEPT
iptables -A OUTPUT -o lo -j ACCEPT
# Allow forwarding if the initiated on the intranet
iptables -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A FORWARD -i ! ppp+ -m state --state NEW -j ACCEPT
# Do masquerading
# (not needed if intranet is not using private ip-addresses)
iptables -t nat -A POSTROUTING -o ppp+ -j MASQUERADE
# Log everything for debugging
# (last of all rules, but before policy rules)
iptables -A INPUT -j LOG --log-prefix "FIREWALL:INPUT "
iptables -A FORWARD -j LOG --log-prefix "FIREWALL:FORWARD"
iptables -A OUTPUT -j LOG --log-prefix "FIREWALL:OUTPUT "
# 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.
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.
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.
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.
iptables -A INPUT -i ! ppp+ -j ACCEPT
iptables -A OUTPUT -o ! ppp+ -j ACCEPT
If daemons, such as squid, have to access the Internet themselves, you could open OUTPUT generally and restrict INPUT.
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A OUTPUT -j ACCEPT
However, it is generally not advisable to leave OUTPUT unrestricted. You lose any control 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:
Squid is caching the web:
iptables -A OUTPUT -p tcp --dport 80 -j ACCEPT
iptables -A INPUT -p tcp --sport 80 -m state --state ESTABLISHED \
-j ACCEPT
Your caching name server (e.g., named) does its lookups via UDP:
iptables -A OUTPUT -p udp --dport 53 -j ACCEPT
You want to be able to ping your computer to ensure it's still alive:
iptables -A INPUT -p icmp -m icmp --icmp-type echo-request -j ACCEPT
iptables -A OUTPUT -p icmp -m icmp --icmp-type echo-reply -j ACCEPT
If you are frequently accessing FTP servers or enjoy chatting, you might notice certain delays because some implementations of these daemons have the feature of querying an identd on your system to obtain usernames. Although there's really little harm in this, having an identd running is not recommended because many security experts feel the service gives out too much additional information.
To avoid these delays you could reject the requests with a 'tcp-reset':
iptables -A INPUT -p tcp --dport 113 -j REJECT --reject-with tcp-reset
To log and drop invalid packets (packets that came in after netfilter's timeout or some types of network scans):
iptables -I INPUT -p tcp -m state --state INVALID \
-j LOG --log-prefix "FIREWALL:INVALID"
iptables -I INPUT -p tcp -m state --state INVALID -j DROP
Anything coming from the outside should not have a private address, this is a common attack called IP-spoofing:
iptables -A INPUT -i ppp+ -s 10.0.0.0/8 -j DROP
iptables -A INPUT -i ppp+ -s 172.16.0.0/12 -j DROP
iptables -A INPUT -i ppp+ -s 192.168.0.0/16 -j DROP
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:
iptables -A INPUT -i ppp0 -p udp -s 0.0.0.0 --sport 67 \
-d 255.255.255.255 --dport 68 -j ACCEPT
To simplify debugging and be fair to anyone who'd like to access a service you have disabled, purposely or by mistake, you could REJECT those packets that are dropped.
Obviously this must be done directly after logging as the very last lines before the packets are dropped by policy:
iptables -A INPUT -j REJECT
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.
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.
www.netfilter.org - Homepage of the netfilter/iptables project
Netfilter related FAQ
Netfilter related HOWTO's
en.tldp.org/LDP/nag2/x-087-2-firewall.html
en.tldp.org/HOWTO/Security-HOWTO.html
en.tldp.org/HOWTO/Firewall-HOWTO.html
www.linuxsecurity.com/docs/
www.little-idiot.de/firewall (German & outdated, but very comprehensive)
linux.oreillynet.com/pub/a/linux/2000/03/10/netadmin/ddos.html
staff.washington.edu/dittrich/misc/ddos
www.e-infomax.com/ipmasq
www.circlemud.org/~jelson/writings/security/index.htm
www.securityfocus.com
www.cert.org - tech_tips
security.ittoolbox.com
www.insecure.org/reading.html
Last updated on 2007-10-16 08:26:18 -0500
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.
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
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
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/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 && install -v -m755 -d /usr/share/doc/gnupg-1.4.7 && mv -v /usr/share/gnupg/{FAQ,faq.html} /usr/share/doc/gnupg-1.4.7 && install -v -m644 \ doc/{highlights-1.4.txt,OpenPGP,samplekeys.asc,DETAILS,*.texi} \ /usr/share/doc/gnupg-1.4.7
If you created alternate formats of the documentation,
install it using the following command as the root
user:
cp -v -R doc/gnupg1.{html,pdf} /usr/share/doc/gnupg-1.4.7
--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.
Last updated on 2008-08-24 11:52:33 -0500
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.
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
Pth-2.0.7, Libassuan-1.0.4, Libgcrypt-1.2.4, and Libksba-1.0.2
OpenLDAP-2.3.39, libusb-0.1.12, cURL-7.16.3, and an MTA
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/gnupg2
Install GnuPG 2 by running the following commands:
./configure --prefix=/usr --libexecdir=/usr/lib/gnupg2 && make
If you have teTeX-3.0 installed and you wish to create documentation in alternate formats, issue the following commands:
make -C doc pdf ps html && makeinfo --html --no-split -o doc/gnupg_nochunks.html doc/gnupg.texi && makeinfo --plaintext -o doc/gnupg.txt doc/gnupg.texi
To test the results, issue: make check.
Now, as the root
user:
make install && install -v -m755 -d /usr/share/doc/gnupg-2.0.8 && ln -sv ../../gnupg/FAQ /usr/share/doc/gnupg-2.0.8 && ln -sv ../../gnupg/faq.html /usr/share/doc/gnupg-2.0.8 && install -v -m644 doc/{DETAILS,KEYSERVER,OpenPGP,TRANSLATE} \ /usr/share/doc/gnupg-2.0.8
If you created alternate formats of the documentation,
install it using the following command as the root
user:
install -v -m755 -d /usr/share/doc/gnupg-2.0.8/html && install -v -m644 doc/gnupg.html/* \ /usr/share/doc/gnupg-2.0.8/html && install -v -m644 doc/gnupg_nochunks.html \ /usr/share/doc/gnupg-2.0.8/gnupg.html && install -v -m644 doc/*.texi \ /usr/share/doc/gnupg-2.0.8 && install -v -m644 doc/gnupg.{pdf,dvi,ps,txt} \ /usr/share/doc/gnupg-2.0.8
--libexecdir=/usr/lib/gnupg2
:
This switch creates a gnupg
directory in /usr/lib
instead
of /usr/libexec
.
is used to create and populate user's |
|
is a wrapper script used to run gpgconf with the
|
|
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. |
|
is a utility used to communicate with a running gpg-agent. |
|
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. |
|
is a utility used to automatically and reasonable
safely query and modify configuration files in the
|
|
is a utility currently only useful for debugging.
Run it with |
|
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. |
|
is a simple tool used to interactivly generate a certificate request which will be printed to stdout. |
|
is a verify only version of gpg2. |
|
is used to list, export and import Keybox data. |
|
is a daemon used to manage smartcards. It is usually invoked by gpg-agent and in general not used directly. |
|
is a simple symmetric encryption tool. |
|
is used to listen to a Unix Domain socket created by any of the GnuPG tools. |
Last updated on 2008-08-24 11:52:33 -0500
The Tripwire package contains programs used to verify the integrity of the files on a given system.
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
An MTA
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/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
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.
This package does not come with a test suite.
Now, as the root
user:
make install && cp -v policy/*.txt /usr/doc/tripwire
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/
.
cp -v policy/*.txt /usr/doc/tripwire: This command installs the tripwire sample policy files with the other tripwire documentation.
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.
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 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:
tripwire --update --twrfile /var/lib/tripwire/report/<report-name.twr>
You will be placed into vim with a copy of the report in front of you. If all the changes were good, then just type :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.
is a signature gathering utility that displays the hash function values for the specified files. |
|
is the main file integrity checking program. |
|
administrative and utility tool used to perform certain administrative functions related to Tripwire files and configuration options. |
|
prints Tripwire database and report files in clear text format. |
Last updated on 2008-05-09 08:00:42 -0500
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.
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)
Berkeley DB-4.5.20 is recommended (installed in LFS) or GDBM-1.8.3
Linux-PAM-0.99.10.0, OpenLDAP-2.3.39, X Window System, and libcap
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.
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/heimdal
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.
Install Heimdal by running the following commands:
patch -Np1 -i ../heimdal-1.1-blfs_docs-1.patch && patch -Np1 -i ../heimdal-1.1-libss-1.patch && ./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:
pushd doc && make html && texi2pdf heimdal.texi && texi2dvi heimdal.texi && dvips -o heimdal.ps heimdal.dvi && makeinfo --plaintext -o heimdal.txt heimdal.texi && texi2pdf hx509.texi && texi2dvi hx509.texi && dvips -o hx509.ps hx509.dvi && makeinfo --plaintext -o hx509.txt hx509.texi && popd
To test the results, issue: make -k check. The ipropd test is known to fail but all others should pass.
Now, as the root
user:
make install && install -v -m755 -d /usr/share/doc/heimdal-1.1 && install -v -m644 doc/{init-creds,layman.asc} \ /usr/share/doc/heimdal-1.1 && ln -sfv mech.5 /usr/share/man/man5/qop.5 && ln -sfv ../man5/mech.5 /usr/share/man/cat5/qop.5 && ln -sfv ../man5/mech.5 /usr/share/man/cat5 && mv -v /bin/login /bin/login.SHADOW && mv -v /bin/su /bin/su.SHADOW && mv -v /usr/bin/{login,su} /bin && ln -v -sf ../../bin/login /usr/bin && for LINK in lib{otp,kafs,krb5,hx509,asn1,roken,crypto}; do mv -v /usr/lib/${LINK}.so.* /lib && ln -v -sf ../../lib/$(readlink /usr/lib/${LINK}.so) \ /usr/lib/${LINK}.so done && 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 && chmod -v 755 /bin/krb5-check-cracklib.pl
--libexecdir=/usr/sbin
: This
switch causes the daemon programs to be installed into
/usr/sbin
.
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
.
--localstatedir=/var/lib/heimdal
,
--datadir=/var/lib/heimdal
and
--with-hdbdir=/var/lib/heimdal
:
These parameters are used so that the KDC database and
associated files will all reside in /var/lib/heimdal
.
--with-readline=/usr
:
This parameter must be used so that the configure script properly
locates the installed Readline package.
--enable-kcm
: This
parameter enables building the Kerberos Credentials Manager.
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.
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.
Create the Kerberos configuration file with the following commands:
install -v -m755 -d /etc/heimdal &&
cat > /etc/heimdal/krb5.conf << "EOF" &&
# Begin /etc/heimdal/krb5.conf
[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:
install -v -m755 -d /var/lib/heimdal && kstash
Create the KDC database:
kadmin -l
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.
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
To use the kerberized client programs (telnet, ftp, rsh, rxterm, rxtelnet, rcp, xnlock), you first must get a TGT. Use the kinit program to get the ticket. After you've acquired the ticket, you can use the kerberized programs to connect to any kerberized server on the network. You will not be prompted for authentication until your ticket expires (default is one day), unless you specify a different user as a command line argument to the program.
The kerberized programs will connect to non-kerberized daemons, warning you that authentication is not encrypted.
In order to use the Heimdal X programs, you'll need to add a
service port entry to the /etc/services
file for the kxd server. There is no
'standardized port number' for the 'kx' service in the
IANA database, so you'll have to pick an unused port
number. Add an entry to the services
file similar to the entry
below (substitute your chosen port number for <49150>
):
kx <49150>
/tcp # Heimdal kerberos X
kx <49150>
/udp # Heimdal kerberos X
For additional information consult the Heimdal hint on which the above instructions are based.
obtains AFS tokens for a number of cells. |
|
is a kerberized FTP client. |
|
is a kerberized FTP daemon. |
|
takes a principal database in a specified format and converts it into a stream of Heimdal database records. |
|
is a server that receives a database sent by hprop and writes it as a local database. |
|
is used to maintain the iprop log file. |
|
is a daemon which runs on the master KDC server which incrementally propagates changes to the KDC database to the slave KDC servers. |
|
is a daemon which runs on the slave KDC servers which incrementally propagates changes to the KDC database from the master KDC server. |
|
is a utility used to make modifications to the Kerberos database. |
|
is a server for administrative access to the Kerberos database. |
|
is a symbolic link to the kinit program. |
|
is a process based credential cache for Kerberos tickets. |
|
is a Kerberos 5 server. |
|
removes a principle's current set of tickets. |
|
is a program which forwards tickets to a remote host through an authenticated and encrypted stream. |
|
is a server used to receive forwarded tickets. |
|
obtains a ticket for a service. |
|
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. |
|
reads and displays the current tickets in the credential cache. |
|
is a program for changing Kerberos 5 passwords. |
|
is a Kerberos 5 password changing server. |
|
gives information on how to link programs against Heimdal libraries. |
|
stores the KDC master password in a file. |
|
is a program for managing Kerberos keytabs. |
|
is a program which securely forwards X connections. |
|
is the daemon for kx. |
|
is a kerberized login program. |
|
manages one-time passwords. |
|
prints lists of one-time passwords. |
|
is a script that runs push --from. |
|
is a kerberized POP-3 server. |
|
is a kerberized POP mail retrieval client. |
|
is a kerberized rcp client program. |
|
is a kerberized rsh client program. |
|
is a kerberized rsh server. |
|
starts a secure xterm window with a telnet to a given host and forwards X connections. |
|
starts a secure remote xterm. |
|
maps a password into a key. |
|
is a kerberized su client program. |
|
is a kerberized telnet client program. |
|
is a kerberized telnet server. |
|
forwards X connections backwards. |
|
checks |
|
is a program that acts as a secure screen saver for workstations running X. |
|
provides the ASN.1 and DER functions to encode and decode the Kerberos TGTs. |
|
is a command-line editing library with history. |
|
contain the Generic Security Service Application Programming Interface (GSSAPI) functions which provides security services to callers in a generic fashion, supportable with a range of underlying mechanisms and technologies and hence allowing source-level portability of applications to different environments. |
|
is a Heimdal Kerberos 5 authentication/authorization database access library. |
|
contains the administrative authentication and password checking functions required by Kerberos 5 client-side programs. |
|
contain the administrative authentication and password checking functions required by Kerberos 5 servers. |
|
contains the functions required to authenticated to AFS. |
|
is an all-purpose Kerberos 5 library. |
|
contains the functions required to handle authenticating one time passwords. |
|
is a library containing Kerberos 5 compatibility functions. |
Last updated on 2008-05-09 08:00:42 -0500
MIT Kerberos V5 is a free implementation of Kerberos 5. Kerberos is a network authentication protocol. It centralizes the authentication database and uses kerberized applications to work with servers or services that support Kerberos allowing single logins and encrypted communication over internal networks or the Internet.
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
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)
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.
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/mitkrb
MIT Kerberos V5 is
distributed in a TAR file containing a compressed TAR package
and a detached PGP ASC
file.
You'll need to unpack the distribution tar file, then unpack
the compressed tar file before starting the build.
After unpacking the distribution tarball and if you have GnuPG-1.4.7 installed, you can authenticate the package with the following command:
gpg - -verify krb5-1.6.tar.gz.asc
Build MIT Kerberos V5 by running the following commands:
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
The regression test suite is designed to be run after the installation has been completed.
Now, as the root
user:
make install && mv -v /usr/bin/ksu /bin && chmod -v 755 /bin/ksu && mv -v /usr/lib/libkrb5.so.3* /lib && mv -v /usr/lib/libk5crypto.so.3* /lib && mv -v /usr/lib/libkrb5support.so.0* /lib && ln -v -sf ../../lib/libkrb5.so.3.3 /usr/lib/libkrb5.so && ln -v -sf ../../lib/libk5crypto.so.3.1 /usr/lib/libk5crypto.so && ln -v -sf ../../lib/libkrb5support.so.0.1 /usr/lib/libkrb5support.so&& install -m644 -v ../doc/*.info* /usr/share/info && for INFOFILE in 425 5-admin 5-install 5-user; do install-info --info-dir=/usr/share/info \ /usr/share/info/krb$INFOFILE.info rm ../doc/krb$INFOFILE.info* done && install -m755 -v -d /usr/share/doc/krb5-1.6 && cp -Rv ../doc/* /usr/share/doc/krb5-1.6
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:
mv -v /bin/login /bin/login.shadow && install -m755 -v /usr/sbin/login.krb5 /bin/login && mv -v /usr/lib/libdes425.so.3* /lib && mv -v /usr/lib/libkrb4.so.2* /lib && ln -v -sf ../../lib/libdes425.so.3.0 /usr/lib/libdes425.so && ln -v -sf ../../lib/libkrb4.so.2.0 /usr/lib/libkrb4.so && ldconfig
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.
--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.
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
.
Create the Kerberos configuration file with the following
commands issued by the root
user:
install -v -m755 -d /etc/krb5 &&
cat > /etc/krb5/krb5.conf << "EOF"
# Begin /etc/krb5/krb5.conf
[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:
kdb5_util create -r <LFS.ORG>
-s
Now you should populate the database with principles
(users). For now, just use your regular login name or
root
.
kadmin.localkadmin:
add_policy dict-onlykadmin:
addprinc -policy dict-only<loginname>
The KDC server and any machine running kerberized server daemons must have a host key installed:
kadmin:
addprinc -randkey host/<belgarath.lfs.org>
After choosing the defaults when prompted, you will have to export the data to a keytab file:
kadmin:
ktadd host/<belgarath.lfs.org>
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:
kadmin:
addprinc -randkey ftp/<belgarath.lfs.org>
kadmin:
ktadd ftp/<belgarath.lfs.org>
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 &
Attempt to get a ticket with the following command:
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
Information about the ticket should be displayed on the screen.
To test the functionality of the keytab file, issue the following command:
ktutilktutil:
rkt /etc/krb5/krb5.keytabktutil:
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
To use the kerberized client programs (telnet, ftp, rsh, rcp, rlogin), you first must get an authentication ticket. Use the kinit program to get the ticket. After you've acquired the ticket, you can use the kerberized programs to connect to any kerberized server on the network. You will not be prompted for authentication until your ticket expires (default is one day), unless you specify a different user as a command line argument to the program.
The kerberized programs will connect to non kerberized daemons, warning you that authentication is not encrypted.
Using kerberized server programs (telnetd, kpropd, klogind and
kshd)
requires two additional configuration steps. First the
/etc/services
file must be
updated to include eklogin and krb5_prop. Second, the
inetd.conf
or xinetd.conf
must be modified for each
server that will be activated, usually replacing the
server from Inetutils-1.5.
For additional information consult Documentation for krb-1.6 on which the above instructions are based.
is a kerberized FTP client. |
|
is a kerberized FTP daemon. |
|
is a host keytable manipulation utility. |
|
is an utility used to make modifications to the Kerberos database. |
|
is a server for administrative access to a Kerberos database. |
|
is the KDC database utility. |
|
removes the current set of tickets. |
|
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. |
|
reads and displays the current tickets in the credential cache. |
|
is the server that responds to rlogin requests. |
|
is a program for changing Kerberos 5 passwords. |
|
takes a principal database in a specified format and converts it into a stream of database records. |
|
receives a database sent by kprop and writes it as a local database. |
|
gives information on how to link programs against libraries. |
|
is a Kerberos 5 server. |
|
is the server that responds to rsh requests. |
|
is the super user program using Kerberos protocol.
Requires a properly configured |
|
is a program for managing Kerberos keytabs. |
|
prints keyversion numbers of Kerberos principals. |
|
is a kerberized login program. |
|
is a kerberized rcp client program. |
|
is a kerberized rlogin client program. |
|
is a kerberized rsh client program. |
|
is a kerberized telnet client program. |
|
is a kerberized telnet server. |
|
contain the Generic Security Service Application Programming Interface (GSSAPI) functions which provides security services to callers in a generic fashion, supportable with a range of underlying mechanisms and technologies and hence allowing source-level portability of applications to different environments. |
|
contains the administrative authentication and password checking functions required by Kerberos 5 client-side programs. |
|
contain the administrative authentication and password checking functions required by Kerberos 5 servers. |
|
is a Kerberos 5 authentication/authorization database access library. |
|
is an all-purpose Kerberos 5 library. |
Last updated on 2007-10-16 06:29:13 -0500
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.
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
Linux-PAM-0.99.10.0, OpenLDAP-2.3.39, Heimdal-1.1 or MIT Kerberos V5-1.6, JDK-6 Update 5, MySQL-5.0.41, PostgreSQL-8.2.4, GDBM-1.8.3, krb4, SQLite, and Dmalloc
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/cyrus-sasl
Install Cyrus SASL by running the following commands:
./configure --prefix=/usr --sysconfdir=/etc \ --with-dbpath=/var/lib/sasl/sasldb2 \ --with-saslauthd=/var/run/saslauthd && make
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:
make install && install -v -m755 -d /usr/share/doc/cyrus-sasl-2.1.22 && install -v -m644 doc/{*.{html,txt,fig},ONEWS,TODO} \ saslauthd/LDAP_SASLAUTHD /usr/share/doc/cyrus-sasl-2.1.22 && install -v -m700 -d /var/lib/sasl /var/run/saslauthd
--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.
/etc/saslauthd.conf
(for
saslauthd
LDAP configuration) and /etc/sasl2/Appname.conf
(where "Appname"
is the application defined name of the application)
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.
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
You'll need to modify the init script and replace the
parameter to the <authmech>
-a
switch
with your desired authentication mechanism.
is the SASL authentication server. |
|
is used to list the users in the SASL password
database |
|
is used to set and delete a user's SASL password
and mechanism specific secrets in the SASL password
database |
|
is a general purpose authentication library for server and client applications. |
Last updated on 2007-09-04 07:50:55 -0500
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.
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
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/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:
groupadd -g 51 stunnel && useradd -c "Stunnel Daemon" -d /var/lib/stunnel \ -g stunnel -s /bin/false -u 51 stunnel
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-----
Install Stunnel by running the following commands:
patch -Np1 -i ../stunnel-4.21-setuid-1.patch && sed -i 's|nogroup|stunnel|g' configure && sed -i 's|$(prefix)/var/lib|$(localstatedir)|' tools/Makefile.in && ./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
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]:
prompt with the name or IP address you will be using to access the service(s).
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.
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
Last updated on 2008-08-11 13:33:19 -0500
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.
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
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
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/sudo
Install sudo by running the following commands:
./configure --prefix=/usr --libexecdir=/usr/lib \ --with-ignore-dot --with-all-insults \ --enable-shell-sets-home --disable-root-sudo \ --with-logfac=auth --without-pam --without-sendmail && make
This package does not come with a test suite.
Now, as the root
user:
make install
--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.
--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.
There are many options to sudo's configure command. Check the configure --help output for a complete list.
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:
# User alias specification User_Alias ADMIN = YourLoginId # Allow people in group ADMIN to run all commands without a password ADMIN ALL = NOPASSWD: ALL
For details, see man sudoers.
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:
sed -e 's@/su@/sudo@' -e '/pam_rootok/d' \ /etc/pam.d/su > /etc/pam.d/sudo
executes a command as another user as permitted by
the |
|
is a hard link to sudo that implies
the |
|
allows for safer editing of the |
|
enables support for the "noexec" functionality which prevents a dynamically-linked program being run by sudo from executing another program (think shell escapes). |
Last updated on 2008-08-17 11:30:32 -0500
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.
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)
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/nss
Install NSS by running the following commands:
bash export WORKINGDIR=$PWD && export BUILD_OPT=1 && patch -Np1 -i ../nss-3.11.7-with-nspr-4.6.7-fedora_fixes-1.patch && cd mozilla/security/nss && make nss_build_all && cd ../.. && export NSS_LINUXDIR=$(basename `ls -d $WORKINGDIR/mozilla/dist/Linux*`)
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
export DOMSUF=<validdomain.name>
&&
export PATH=$PATH:$WORKINGDIR/mozilla/dist/$NSS_LINUXDIR/bin &&
export TEST_RESULTSDIR=$WORKINGDIR/mozilla/tests_results/security &&
cd security/nss/tests &&
sed -i 's/gmake/make/' common/init.sh &&
./all.sh &&
grep Passed $TEST_RESULTSDIR/$(hostname).1/results.html | wc -l &&
exit
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.
Now, as the root
user:
install -v -m755 nsprpub/$NSS_LINUXDIR/config/nspr-config \ security/nss/cmd/config/nss-config \ /usr/bin && install -v -m755 -d /usr/lib/pkgconfig && install -v -m644 nsprpub/lib/pkgconfig/nspr.pc \ security/nss/lib/pkgconfig/nss.pc \ /usr/lib/pkgconfig && cd dist && install -v -m755 $NSS_LINUXDIR/lib/*.so /usr/lib && install -v -m644 $NSS_LINUXDIR/lib/{*.chk,libcrmf.a} /usr/lib && install -v -m755 -d /usr/include/{nss,nspr} && install -v -m644 {public,private}/nss/* /usr/include/nss && cp -v -RL $NSS_LINUXDIR/include/* /usr/include/nspr && chmod -v 644 /usr/include/nspr/prvrsion.h
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
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.
is used to determine the NSPR installation settings of the installed NSPR libraries. |
|
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.
Last updated on 2007-07-15 10:53:33 -0500
Journaling file systems reduce the time needed to recover a file system that was not unmounted properly. While this can be extremely important in reducing downtime for servers, it has also become popular for desktop environments. This chapter contains two other journaling file systems you can use instead of the default LFS third extended file system.
The ReiserFS package contains various utilities for use with the Reiser file system.
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
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/reiser
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
--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.
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. |
|
creates a ReiserFS file system. |
|
is used to check or repair a ReiserFS file system. |
|
is used for tuning the ReiserFS journal. WARNING: Don't use this utility without first reading the man page thoroughly. |
|
is used to resize an unmounted ReiserFS file system. |
Last updated on 2008-08-24 11:52:33 -0500
The XFS package contains administration and debugging tools for the XFS file system.
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
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.
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/xfs
Install XFS by running the following commands:
make DEBUG=-DNDEBUG INSTALL_USER=root INSTALL_GROUP=root \ LOCAL_CONFIGURE_OPTIONS="--enable-readline=yes"
This package does not come with a test suite.
Now, as the root
user:
make install && make install-dev && chmod -v 755 /lib/libhandle.so* && rm -f /lib/libhandle.{a,la,so} && ln -svf ../../lib/libhandle.so.1 /usr/lib/libhandle.so
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.
make install-dev: This command installs static XFS libraries, their headers and the corresponding documentation.
simply exits with a zero status, since XFS partitions are checked at mount time. |
|
constructs an XFS file system. |
|
changes the parameters of an XFS file system. |
|
prints block mapping for an XFS file. |
|
checks XFS file system consistency. |
|
copies the contents of an XFS file system to one or more targets in parallel. |
|
is used to debug an XFS file system. |
|
suspends access to an XFS file system. |
|
expands an XFS file system. |
|
is equivalent to invoking xfs_growfs, but specifying that no change to the file system is to be made. |
|
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. |
|
prints the log of an XFS file system. |
|
restores an XFS metadump image to a filesystem image. |
|
copies XFS filesystem metadata to a file. |
|
creates an XFS file, padded with zeroes by default. |
|
generates pathnames from inode numbers for an XFS file system. |
|
is a utility for reporting and editing various aspects of filesystem quota. |
|
repairs corrupt or damaged XFS file systems. |
|
copies a file to the real-time partition on an XFS file system. |
|
contains XFS-specific functions that provide a way to perform certain filesystem operations without using a file descriptor to access filesystem objects. |
Last updated on 2008-05-09 08:00:42 -0500
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.
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.
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
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
GTK+-2.10.13 or LessTif-0.95.0 or GTK+-1.2.10, Python-2.5.2, Tcl-8.4.18, Ruby-1.8.6-p111, and GPM-1.20.1
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/vim
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
.
If desired, unpack the translated messages archive:
tar -xf ../vim-7.1-lang.tar.gz --strip-components=1
Install Vim by running the following commands:
patch -Np1 -i ../vim-7.1-mandir-1.patch && patch -Np1 -i ../vim-7.1-fixes-6.patch && echo '#define SYS_VIMRC_FILE "/etc/vimrc"' >> src/feature.h && echo '#define SYS_GVIMRC_FILE "/etc/gvimrc"' >> src/feature.h && ./configure --prefix=/usr --with-features=huge && make
To test the results, issue: make test. The vim test suite outputs a lot of binary
data to the screen, which can cause issues with the settings
of the current terminal. This can be resolved by redirecting
the output to a log file. Even if one of the tests fails to
produce the file test.out
in
src/testdir
, the remaining
tests will still be executed. If all goes well,the final
message in the log file will be ALL
DONE
. Note:
Some color tests expect to be executed under the xterm terminal emulator.
Now, as the root
user:
make install
By default, Vim's documentation is installed in /usr/share/vim
. The following symlink
allows the documentation to be accessed via /usr/share/doc/vim-7.1
, making it
consistent with the location of documentation for other
packages:
ln -snfv ../vim/vim71/doc /usr/share/doc/vim-7.1
If you wish to update the runtime files, issue the following command (requires rsync-3.0.2):
rsync -avzcP --delete --exclude="/dos/" --exclude="/spell/" \ ftp.nluug.nl::Vim/runtime/ ./runtime/
To install the runtime files and regenerate the tags
file, as the root
user issue:
make -C src installruntime && vim -c ":helptags /usr/share/doc/vim-7.1" -c ":q"
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.
Vim has an integrated spell checker which you can enable it if you issue the following in a vim window:
:setlocal spell spelllang=ru
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.
A list of the reinstalled files, along with their short descriptions can be found in the LFS Vim Installation Instructions
Last updated on 2008-08-12 10:41:54 -0500
The Emacs package contains an extensible, customizable, self-documenting real-time display editor.
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
X Window System, libjpeg-6b, libpng-1.2.29, LibTIFF-3.8.2, and libungif
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/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
--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
.
is a program to convert mail files from RMAIL format to Unix “mbox” format. |
|
creates cross-reference tagfile database files for source code. |
|
permits browsing of C++ class hierarchies from within emacs. |
|
is an editor. |
|
attaches an emacs session to an already running emacsserver instance. |
|
is another program to generate source code cross-reference tagfiles. |
|
prints entries in Change Logs matching various criteria. |
|
is a shell script used to check files into RCS. |
Last updated on 2007-08-17 14:03:17 -0500
The nano package contains a small, simple text editor which aims to replace Pico, the default editor in the Pine package.
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
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/Nano
Install nano by running the following commands:
./configure --prefix=/usr --sysconfdir=/etc/nano \ --enable-color --enable-multibuffer --enable-nanorc && make
This package does not come with a test suite.
Now, as the root
user:
make install && install -v -m644 -D doc/nanorc.sample /etc/nano/nanorc.sample && install -v -m755 -d /usr/share/doc/nano-2.0.7 && install -v -m644 doc/{,man/,texinfo/}*.html /usr/share/doc/nano-2.0.7
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.
Last updated on 2008-03-12 06:22:57 -0500
JOE (Joe's own editor) is a small text editor capable of emulating WordStar, Pico, and Emacs.
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
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/joe
Install JOE by running the following commands:
./configure --sysconfdir=/etc --prefix=/usr && make
This package does not come with a test suite.
Now, as the root
user:
make install
is a symbolic link to joe used to launch Emacs emulation mode. |
|
is a small text editor capable of emulating WordStar, Pico, and Emacs. |
|
is a symbolic link to joe used to launch Pico emulation mode. |
|
is a symbolic link to joe used to launch WordStar emulation mode. |
|
is a symbolic link to joe that restricts JOE to editing only files which are specified on the command-line. |
|
is a program used by joe to generate the termcap index file. |
Last updated on 2007-04-04 14:42:53 -0500
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.
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
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/ed
Install Ed by running the following commands:
./configure --prefix=/usr && make
To test the results, issue: make check.
Now, as the root
user:
make install && make install-man
Last updated on 2008-04-25 18:22:22 -0500
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.
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
GTK+-2.10.13 and PCRE-7.6
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
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/bluefish
Install Bluefish 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
Last updated on 2008-04-09 10:40:36 -0500
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.
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.
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
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/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
--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.
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.
Last updated on 2008-05-09 07:42:27 -0500
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.
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.
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
Optional Documentation: http://downloads.sourceforge.net/zsh/zsh-4.3.6-doc.tar.bz2
MD5 sum: cab29228a90f58b1431a66ab24a0a0c2
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/zsh
If you downloaded the optional documentation, unpack it with the following command:
tar --strip-components=1 -xvf ../zsh-4.3.6-doc.tar.bz2
Install ZSH by running the following commands:
./configure --prefix=/usr \ --bindir=/bin \ --sysconfdir=/etc/zsh \ --enable-etcdir=/etc/zsh && make
If you have teTeX-3.0 installed, you can build additional formats of the documentation by issuing any or all of the following commands:
texi2pdf Doc/zsh.texi -o Doc/zsh.pdf && texi2html Doc/zsh.texi --output=Doc/zsh_1file_t.html && makeinfo Doc/zsh.texi --html --no-split --no-headers \ -o Doc/zsh_1file_m.html && makeinfo Doc/zsh.texi --plaintext -o Doc/zsh.txt
To test the results, issue: make check.
Now, as the root
user:
make install && make infodir=/usr/share/info install.info
If you downloaded the optional documentation, install it by
issuing the following commands as the root
user:
make htmldir=/usr/share/doc/zsh-4.3.6/html install.html && install -v -m644 Doc/zsh.dvi /usr/share/doc/zsh-4.3.6
If you built any additional formats of the documentation,
install them by issuing the following command as the
root
user:
install -v -m644 Doc/{zsh_1file*,*.{pdf,txt}} \ /usr/share/doc/zsh-4.3.6
--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:
mv -v /usr/lib/libpcre.so.* /lib/ && ln -v -sf ../../lib/libpcre.so.0 /usr/lib/libpcre.so
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.
Last updated on 2008-05-09 08:00:42 -0500
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.
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
libedit (command line editor library)
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/dash
Install Dash by running the following commands:
./configure --bindir=/bin --mandir=/usr/share/man && make
This package does not come with a test suite.
Now, as the root
user:
make install
If you would like to make dash the default
sh, recreate
the /bin/sh
symlink as the
root
user:
ln -svf dash /bin/sh
--bindir=/bin
: This
parameter places the dash binary into the root
filesystem.
--with-libedit
: To compile
Dash with libedit support.
Last updated on 2008-05-09 07:42:27 -0500
ksh is the AT&T Korn Shell.
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.
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
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/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
bin/package make: This command rebuilds the ast INIT package and builds the ast ksh package.
Last updated on 2008-05-09 07:42:27 -0500
Libraries contain code which is often required by more than one program. This has the advantage that each program doesn't need to duplicate code (and risk introducing bugs), it just has to call functions from the libraries installed on the system. The most obvious example of a set of libraries is Glibc which is installed during the LFS book. This contains all of the C library functions which programs use.
There are two types of libraries: static and shared. Shared
libraries (usually libXXX.so
) are
loaded into memory from the shared copy at runtime (hence the
name). Static libraries (libXXX.a
)
are actually linked into the program executable file itself, thus
making the program file larger. Quite often, you will find both
static and shared copies of the same library on your system.
Generally, you only need to install libraries when you are
installing software that needs the functionality they supply. In
the BLFS book, each package is presented with a list of (known)
dependencies. Thus, you can figure out which libraries you need
to have before installing that program. If you are installing
something without using BLFS instructions, usually the
README
or INSTALL
file will contain details of the
program's requirements.
There are certain libraries which nearly everyone will need at some point. In this chapter we list these and some others and explain why you may want to install them.
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.
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
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/pcre
Install PCRE by running the following commands:
patch -Np1 -i ../pcre-7.6-abi_breakage-1.patch && patch -Np1 -i ../pcre-7.6-security_fix-1.patch && ./configure --prefix=/usr \ --docdir=/usr/share/doc/pcre-7.6 \ --enable-utf8 \ --enable-pcregrep-libz \ --enable-pcregrep-libbz2 && make
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.
mv -v /usr/lib/libpcre.so.* /lib/ && ln -v -sf ../../lib/libpcre.so.0 /usr/lib/libpcre.so
--enable-utf8
: This
switch includes the code for handling UTF-8 character strings
in the library.
--enable-unicode-properties
:
This switch enables Unicode properties support.
--enable-pcregrep-libz
: This
switch adds support to pcregrep to read
.gz
compressed files.
--enable-pcregrep-libbz2
: This
switch adds support to pcregrep to read
.bz2
compressed files.
Last updated on 2008-07-09 09:23:33 -0500
The popt package contains the popt libraries which are used by some programs to parse command-line options.
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
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/popt
Install popt by running the following commands:
sed -i -e "/*origOptString ==/c 0)" popt.c && ./configure --prefix=/usr && make
If you have Doxygen-1.5.2 installed and wish to build the API documentation, issue doxygen.
To test the results, issue:
make check
Now, as the root
user:
make install
If you built the API documentation, install it using the
following commands issued by the root
user:
install -v -m755 -d /usr/share/doc/popt-1.10.4 && install -v -m644 doxygen/html/* /usr/share/doc/popt-1.10.4
sed ...: This fix taken backported from the development version of popt fixes a problem identified by the included testsuite.
Last updated on 2008-08-10 16:20:02 -0500
The S-Lang package contains the S-Lang library, which provides facilities such as display/screen management, keyboard input, and keymaps.
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
libpng-1.2.29, PCRE-7.6, and Oniguruma
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/slang
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
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.
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
.
Last updated on 2008-03-12 11:43:44 -0500
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.
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)
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/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
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.
Last updated on 2008-03-09 22:43:40 -0500
The libxml2 package contains XML libraries. These are useful for parsing XML files.
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)
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)
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.
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/libxml2
Install libxml2 by running the following commands:
./configure --prefix=/usr && make
To test the results, issue: make check.
Now, as the root
user:
make install
--with-history
: If
this option is used, it enables readline support when running
xmlcatalog or
xmllint in
shell mode.
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.
determines the compile and linker flags that should
be used to compile and link programs that use
|
|
is used to monitor and manipulate XML and SGML catalogs. |
|
parses XML files and outputs reports (based upon options) to detect errors in XML coding. |
|
libraries provide the functions for programs to parse files that use the XML format. |
Last updated on 2008-03-09 09:20:31 -0500
The libxslt package contains
XSLT libraries. These are useful for extending libxml2
libraries to support XSLT files.
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
Python-2.5.2 and Libgcrypt-1.2.4
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/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
is used to find out the pre-processor, linking and compiling flags necessary to use the libxslt libraries in 3rd-party programs. |
|
is used to apply XSLT stylesheets to XML documents. |
|
provides extensions to the |
|
is used to provide extensions to XSLT functions. |
Last updated on 2008-03-09 19:24:21 -0500
The libgtkhtml package
contains the libgtkhtml-2
library. This library provides an API for rendering HTML.
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
GTK+-2.10.13 and libxml2-2.6.31
GAIL-1.18.0 and GNOME Virtual File System-2.18.1 (only used in the test suite)
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/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
--disable-accessibility
: This
forces the package to build without linking to the
libgailutil
accessibility
library. Remove this switch if you have GAIL installed.
Last updated on 2008-03-12 13:45:14 -0500
The GMP package contains math libraries. These have useful functions for arbitrary precision arithmetic.
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)
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/gmp
Install GMP by running the following commands:
./configure --prefix=/usr --enable-cxx --enable-mpbsd && make
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:
make -C doc pdf && make -C doc ps && make -C doc html && texi2html -o doc/gmp_nochunks.html doc/gmp.texi && makeinfo --plaintext -o doc/gmp.txt doc/gmp.texi
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:
awk '/tests passed/{total+=$2} ; END{print total}' check.log
139 should be returned.
Now, as the root
user:
make install && install -v -m755 -d /usr/share/doc/gmp-4.2.2 && install -v -m644 doc/{isa_abi_headache,configuration} doc/*.html \ /usr/share/doc/gmp-4.2.2
If you created any of the alternate formats of the
documentation, install it using the following commands as the
root
user:
install -v -m755 -d /usr/share/doc/gmp-4.2.2/html && install -v -m644 doc/gmp.html/* \ /usr/share/doc/gmp-4.2.2/html && install -v -m644 doc/gmp.{pdf,dvi,ps,html,txt} \ /usr/share/doc/gmp-4.2.2
--enable-cxx
: This
parameter enables C++ support by building the libgmpxx
libraries.
--enable-mpbsd
: This
parameter enables building the Berkeley MP compatibility
(libmp
) libraries.
Last updated on 2008-04-08 21:22:47 -0500
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.
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
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/gdbm
Install GDBM by running the following commands:
./configure --prefix=/usr && make
This package does not come with a test suite.
Now, as the root
user:
make BINOWN=root BINGRP=root install
In addition, you may need to install the DBM and NDBM compatibility headers and library since some applications look for these older dbm routines.
make BINOWN=root BINGRP=root install-compat
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.
Last updated on 2007-04-04 14:42:53 -0500
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.
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
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/glib
Install glib by running the following commands:
patch -Np1 -i ../glib-1.2.10-gcc34-1.patch && ./configure --prefix=/usr && make
To test the results, issue: make check.
Now, as the root
user:
make install && chmod -v 755 /usr/lib/libgmodule-1.2.so.0.0.10
Last updated on 2007-04-04 14:42:53 -0500
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.
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)
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/glib2
Install GLib by running the following commands:
./configure --prefix=/usr && make
To test the results, issue: make check.
Now, as the root
user:
make install
--enable-gtk-doc
: Use this
parameter if GTK-Doc is
installed and you wish to rebuild the API documentation.
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":
cat > /etc/profile.d/glib2-locale.sh << "EOF"
# Use the current locale charset for filenames
# in applications using GLib
export G_FILENAME_ENCODING=@locale
EOF
Last updated on 2007-06-29 20:13:01 -0500
The libIDL package contains libraries for Interface Definition Language files. This is a specification for defining portable interfaces.
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
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/libidl
Install libIDL by running the following commands:
./configure --prefix=/usr && make
If you have teTeX installed and wish to build the documentation, issue the following commands:
make pdf && make ps && makeinfo --plaintext libIDL2.texi >libIDL2.txt
This package does not come with a test suite.
Now, as the root
user:
make install
If you built the documentation, issue the following commands
as the root
user to install
it:
install -v -m755 -d /usr/share/doc/libIDL-0.8.8 && install -v -m644 libIDL2.{pdf,dvi,ps,txt} README \ /usr/share/doc/libIDL-0.8.8
Last updated on 2007-04-04 14:42:53 -0500
The libcroco package
contains libcroco
libraries.
This is useful for providing a CSS API.
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
GLib-2.12.12 and libxml2-2.6.31
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/libcroco
Install libcroco by running the following commands:
./configure --prefix=/usr && make
To test the results, issue: LD_LIBRARY_PATH=$(pwd)/src/.libs make test.
Now, as the root
user:
make install && install -v -m755 -d /usr/share/doc/libcroco-0.6.1/examples && install -v -m644 README docs/usage.txt \ /usr/share/doc/libcroco-0.6.1 && install -v -m644 docs/examples/*.c \ /usr/share/doc/libcroco-0.6.1/examples
Last updated on 2007-04-04 14:42:53 -0500
The libgsf package contains
libgsf-1
libraries. These are
useful for providing an extensible input/output abstraction
layer for structured file formats.
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
GLib-2.12.12, libxml2-2.6.31, and XML::Parser-2.34
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.
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/libgsf
Install libgsf by running the following commands:
./configure --prefix=/usr && make
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
--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.
Last updated on 2008-03-09 18:59:14 -0500
The libglade package
contains libglade
libraries.
These are useful for loading Glade interface files in a
program at runtime.
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
libxml2-2.6.31 and GTK+-2.10.13
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/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
--enable-gtk-doc
: Use this
parameter if GTK-Doc is
installed and you wish to rebuild the API documentation.
Last updated on 2007-07-08 10:04:29 -0500
The Expat package contains a stream oriented C library for parsing XML.
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
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/expat
Install Expat by running the following commands:
./configure --prefix=/usr && make
Now, as the root
user:
make install && install -v -m755 -d /usr/share/doc/expat-2.0.1 && install -v -m644 doc/*.{html,png,css} /usr/share/doc/expat-2.0.1
To test the results, issue: make check as an unprivileged user. Note this must be done after the package is installed.
Last updated on 2007-07-02 13:22:33 -0500
The libESMTP package contains the libESMTP libraries which are used by some programs to manage email submission to a mail transport layer.
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
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/libesmtp
Install libESMTP 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
Last updated on 2007-07-14 18:27:07 -0500
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.
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
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
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/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/
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. |
|
is a wrapper around aspell to invoke it in ispell compatible mode. |
|
is a wrapper around aspell to invoke it in spell compatible mode. |
|
imports old personal dictionaries into Aspell. |
|
decompresses a prezipped file to stdout. |
|
decompresses a prezipped file. |
|
is a prefix delta compressor, used to compress sorted word lists or other similar text files. |
|
is called by the various wrapper scripts to perform the actual compressing and decompressing. |
|
displays information about the |
|
is a script to help use Aspell as an ispell replacement. |
|
compresses or decompresses sorted word lists for use with the Aspell spell checker. |
|
contains spell checking API functions. |
|
is an interface to the |
Last updated on 2007-04-04 14:42:53 -0500
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.
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
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.
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/slib
Install SLIB by issuing the following commands:
patch -Np1 -i ../slib-3a4-guile_fixes-1.patch && sed -i 's|usr/lib|usr/share|' {RScheme,guile}.init
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:
texi2pdf slib.texi && texi2html slib.texi && texi2dvi slib.texi && dvips -o slib.ps slib.dvi && makeinfo -o slib.txt --plaintext slib.texi
This package does not come with a functional test suite.
Now, as the root
user:
make prefix=/usr/ \ libdir=/usr/share/ \ mandir=/usr/share/man/ \ infodir=/usr/share/info/ \ install installinfo && install -v -m755 -d /usr/share/doc/slib-3a4 && install -v -m644 ANNOUNCE FAQ README /usr/share/doc/slib-3a4
If you have Guile-1.8.2 installed, create the following
symbolic link as the root
user to satisfy Guile's
default “Implementation
Vicinity” directory.
ln -v -s ../slib /usr/share/guile
If you built any of the documentation, install it using the
following command as the root
user:
install -v -m644 slib.{pdf,html,dvi,ps,txt,texi} \ /usr/share/doc/slib-3a4
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.
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.
Last updated on 2008-03-12 08:08:51 -0500
The G-Wrap package contains tools for exporting C libraries into Scheme interpreters.
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
SLIB-3a4 and GLib-1.2.10
guile-gtk and
GCC-4.1.2
(build Java so that libffi
is
built)
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/gwrap
Install G-Wrap by running the following commands:
./configure --prefix=/usr && make
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 ..
To test the results, issue: make check.
Now, as the root
user:
make install
If you created the alternate formats of the documentation,
install it using the following commands as the root
user:
install -v -m755 -d /usr/share/doc/g-wrap-1.3.4 && install -v -m644 doc/g-wrap.{pdf,html,txt,dvi,ps} \ /usr/share/doc/g-wrap-1.3.4
Last updated on 2007-07-14 18:27:07 -0500
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.
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)
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/lzo
Install LZO by running the following commands:
./configure --prefix=/usr --enable-shared && make
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:
make install && install -v -m755 -d /usr/share/doc/lzo-2.02 && install -v -m644 doc/* /usr/share/doc/lzo-2.02
Last updated on 2007-04-04 14:42:53 -0500
The libusb package contains a library used by some applications for USB device access.
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)
OpenJade-1.3.2 and DocBOOK SGML DTD-4.2
Doxygen-1.5.2 and Graphviz-2.12
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/libusb
Install libusb by running the following commands:
./configure --prefix=/usr --disable-build-docs && make
If you wish to build the API documentation (see the required dependencies), issue the following command:
make apidox
To test the results, issue make -k check.
Now, as the root
user:
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:
install -v -d -m755 /usr/share/doc/libusb-0.1.12/html && install -v -m644 doc/html/* /usr/share/doc/libusb-0.1.12/html
If you built the API documentation, install it using the
following commands as the root
user:
install -v -d -m755 /usr/share/doc/libusb-0.1.12/apidocs && install -v -m644 apidocs/html/* \ /usr/share/doc/libusb-0.1.12/apidocs
--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.
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.
cat > /etc/udev/rules.d/23-usb.rules << "EOF"
# Set group ownership for raw USB devices
SUBSYSTEM=="usb", ENV{DEVTYPE}=="usb_device", GROUP="usb"
EOF
Add any users that need to access raw USB devices to the
usb
group.
usermod -a -G usb <username>
Last updated on 2008-05-09 08:00:42 -0500
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.
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
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/iso-codes
Install ISO Codes 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
Last updated on 2007-07-22 09:03:36 -0500
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.
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)
GTK-Doc-1.8 and Gtk# (requires Mono)
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/gmime
Install GMime by running the following commands:
./configure --prefix=/usr && make
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.
Now, as the root
user:
make install && install -v -m755 -d /usr/share/doc/gmime-2.2.10 && install -v -m644 README docs{,/tutorial}/gmime* \ /usr/share/doc/gmime-2.2.10
--enable-gtk-doc
: Use this
parameter if GTK-Doc is
installed and you wish to rebuild the API documentation.
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. |
|
is used to decode files or data encoded with uuencode. |
|
is a method of encoding binary data into 7-bit ASCII data. |
|
contains API functions used by programs that need to adhere to the MIME standards. |
Last updated on 2007-07-20 15:41:06 -0500
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.
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
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
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/libidn
Install Libidn by running the following commands:
./configure --prefix=/usr && make
To test the results, issue: make check.
Now, as the root
user:
make install && find doc -name "Makefile*" -exec rm {} \; && 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
--enable-gtk-doc
: Use this
parameter if GTK-Doc is
installed and you wish to rebuild the API documentation.
is a command line interface to the internationalized domain name library. |
|
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. |
Last updated on 2008-08-24 11:52:33 -0500
libdrm provides core library routines for the X Window System to directly interface with video hardware using the Linux kernel's Direct Rendering Modules.
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
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/libdrm
Install libdrm by running the following commands:
./configure --prefix=$XORG_PREFIX && make
This package does not come with a test suite.
Now, as the root
user:
make install
$XORG_PREFIX
/include/drm
Last updated on 2008-02-05 11:44:55 -0600
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.
Download (HTTP): http://dbus.freedesktop.org/releases/dbus-glib/dbus-glib-0.74.tar.gz
Download MD5 sum: 0923d825a0aff2e4eb23338b630286fb
Download size: 654 KB
Estimated disk space required: 9 MB
Estimated build time: 0.2 SBU
D-BUS-1.0.2, GLib-2.12.12, and expat-2.0.1
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/dbus-glib
Install D-Bus GLib Bindings 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
--enable-gtk-doc
: Use this
parameter if GTK-Doc is
installed and you wish to rebuild the API documentation.
Download (HTTP): http://dbus.freedesktop.org/releases/dbus-python/dbus-python-0.82.0.tar.gz
Download MD5 sum: 024522ffba612f0d41b64269e925835c
Download size: 482 KB
Estimated disk space required: 6 MB
Estimated build time: 0.1 SBU
Python-2.5.2 and D-Bus GLib Bindings-0.74
PyGObject (required to run the test suite)
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/dbus-python
Install D-Bus Python Bindings by running the following commands:
./configure --prefix=/usr && make
To test the results, issue: make check. Note you must have PyGObject installed.
Now, as the root
user:
make install
Download (HTTP): http://anduin.linuxfromscratch.org/files/BLFS/6.3/sources/dbus-qt3-0.62.tar.bz2
Download MD5 sum: 307e119f501c207a437d1dd087c9af80
Download size: 390 KB
Estimated disk space required: 4 MB
Estimated build time: 0.1 SBU
D-BUS-1.0.2 and Qt-3.3.8b
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/dbus-qt3
Install D-Bus Qt3 Bindings 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
Last updated on 2008-05-09 08:00:42 -0500
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.
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
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/libpthread-stubs
Install libpthread-stubs 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
Last updated on 2007-07-09 23:30:55 -0500
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.
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
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/pth
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.
Install Pth 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/pth-2.0.7 && install -v -m644 README PORTING SUPPORT TESTS \ /usr/share/doc/pth-2.0.7
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. |
|
contains the API functions used by the GNU Portable Threads Library. |
Last updated on 2007-08-15 19:36:18 -0500
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.
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
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.
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/libassuan
Install Libassuan 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 -k -C doc pdf ps html && makeinfo --html --no-split -o doc/assuan_nochunks.html doc/assuan.texi && makeinfo --plaintext -o doc/assuan.txt doc/assuan.texi
To test the results, issue: make check.
Now, as the root
user:
make install && install -v -m644 -D README /usr/share/doc/libassuan-1.0.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/libassuan-1.0.4/html && install -v -m644 doc/assuan.html/* \ /usr/share/doc/libassuan-1.0.4/html && install -v -m644 doc/assuan_*.html \ /usr/share/doc/libassuan-1.0.4 && install -v -m644 doc/assuan.{pdf,ps,dvi,txt,texi} \ /usr/share/doc/libassuan-1.0.4
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. |
|
is the IPC library. |
|
is the IPC library linked with the GNU Portable Threads Library. |
Last updated on 2008-08-24 11:52:33 -0500
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.
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
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/libgpg-error
Install Libgpg-error 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 -m644 -D README /usr/share/doc/libgpg-error-1.5/README
is used to determine Libgpg-error error codes. |
|
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. |
|
contains the Libgpg-error API functions. |
Last updated on 2008-05-10 18:53:20 -0500
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.
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
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/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
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. |
|
contains the cryptographic API functions. |
Last updated on 2008-05-10 18:53:20 -0500
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.
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
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/libksba
Install Libksba 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:
tex --output-directory=doc ksba.texi && dvips -o doc/ksba.ps doc/ksba.dvi && make -C doc pdf html && makeinfo --html --no-split -o doc/ksba_nochunks.html doc/ksba.texi && makeinfo --plaintext -o doc/ksba.txt doc/ksba.texi
To test the results, issue: make check.
Now, as the root
user:
make install && install -v -m644 -D README /usr/share/doc/libksba-1.0.2/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/libksba-1.0.2/html && install -v -m644 doc/ksba.html/* \ /usr/share/doc/libksba-1.0.2/html && install -v -m644 doc/ksba_*.html \ /usr/share/doc/libksba-1.0.2 && install -v -m644 doc/ksba.{pdf,ps,dvi,txt,texi} \ /usr/share/doc/libksba-1.0.2
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. |
|
contains the cryptographic API functions. |
Last updated on 2008-05-10 18:53:20 -0500
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.
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
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/Mowgli
Install Mowgli by running the following commands:
./configure --prefix=/usr && make
This package does not come with a formal test suite.
Now, as the root
user:
make install
Last updated on 2008-03-17 10:09:51 -0500
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.
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
GConf-2.18.0.1 and kdelibs-3.5.9
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/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
--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.
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.
queries mcs for a configuration value. |
|
displays information about the current installation and configuration of mcs. |
|
queries mcs to determine what backends are available. |
|
instructs mcs to change a configuration value. |
|
contains the API functions required by the mcs userspace tools. |
Last updated on 2008-03-17 11:00:11 -0500
Depending on what your system will be used for, you may or may not require the graphics and font libraries. Most desktop machines will want them for use with graphical applications. Most servers on the other hand, will not require them.
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.
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
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/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
--enable-static
--enable-shared
: These switches tell libjpeg to build both shared and static
libraries.
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
.
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. |
|
decompresses image files from JPEG/JFIF format to either PPM (PBMPLUS color format), PGM (PBMPLUS gray-scale format), BMP, or Targa format. |
|
is used for lossless transformation of JPEG files. |
|
displays text comments from within a JPEG file. |
|
inserts text comments into a JPEG file. |
|
library is used by many programs for reading and writing JPEG format files. |
Last updated on 2007-04-04 14:42:53 -0500
The libpng package contains libraries used by other programs for reading and writing PNG files.
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
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/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
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
.
is a symlink to libpng12-config. |
|
provides configuration information for libpng. |
|
are a collection of routines used to create and manipulate PNG format graphics files. The PNG format was designed as a replacement for GIF and, to a lesser extent, TIFF, with many improvements and extensions and lack of patent problems. |
Last updated on 2008-07-09 11:49:35 -0500
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.
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
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.
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/libtiff
Install LibTIFF by running the following commands:
./configure --prefix=/usr && make
To test the results, issue: make check.
Now, as the root
user:
make install
converts a Microsoft Windows Device Independent Bitmap image file to a TIFF image. |
|
converts a TIFF facsimile to compressed PostScript file. |
|
creates a TIFF Class F fax file from raw fax data. |
|
creates a TIFF file from a GIF87 format image file. |
|
converts a palette color TIFF image to a full color image. |
|
creates a TIFF file from a PPM image file. |
|
creates a TIFF file from a Sun rasterfile. |
|
converts a raw byte sequence into TIFF. |
|
converts non-YCbCr TIFF images to YCbCr TIFF images. |
|
creates a TIFF file with thumbnail images. |
|
converts a color TIFF image to grayscale. |
|
converts a TIFF image to a PDF document. |
|
converts a TIFF image to a PostScript file. |
|
converts a wide variety of TIFF images into an RGBA TIFF image. |
|
compares two TIFF files. |
|
copies (and possibly converts) a TIFF file. |
|
converts a grayscale image to bilevel using dithering. |
|
prints verbatim information about TIFF files. |
|
displays an image stored in a TIFF file in an X window. |
|
prints information about TIFF files. |
|
applies the median cut algorithm to data in a TIFF file. |
|
sets the value of a TIFF header to a specified value. |
|
splits a multi-image TIFF into single-image TIFF files. |
|
contains the API functions used by the libtiff programs as well as other programs to read and write TIFF files. |
|
contains the C++ API functions used by programs to read and write TIFF files. |
Last updated on 2007-04-04 14:42:53 -0500
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.
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
X Window System and Utah Raster Toolkit (or URT-3.1b)
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/giflib
Install giflib 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/giflib-4.1.4/html && install -v -m644 doc/*.{png,html} \ /usr/share/doc/giflib-4.1.4/html && install -v -m644 doc/*.txt \ /usr/share/doc/giflib-4.1.4
dumps images saved as GIF files on Epson type printers. |
|
prints GIF files on laser printers supporting PostScript. |
|
converts images saved as GIF to 24-bit RGB images. |
|
displays images saved as GIF files under X Window System. |
|
assembles multiple GIFs into one, or burst a multiple-image GIF. |
|
generates a single-color test pattern GIF. |
|
bursts a GIF image into subrectangles. |
|
clips or crops a GIF image. |
|
modifies GIF image colormaps. |
|
generates color test patterns. |
|
combines two GIF images of exactly the same size into one. |
|
uses giflib tools to compose images. |
|
is a template for filtering a GIF sequentially. |
|
clumsily attempts to fix truncated GIF images. |
|
flips a GIF image along the X or Y axis or rotates an image by 90 degrees. |
|
generate a color-frequency histogram from a GIF. |
|
gives information about a GIF file. |
|
converts between interlaced and non-interlaced images. |
|
is an end-of-pipe fitting for GIF-processing pipelines. |
|
generates one composite GIF from a multiple-image GIF. |
|
changes a GIF's screen size or reconditions it. |
|
rotates a GIF through any desired angle. |
|
resizes a GIF by deletion or duplication of bits. |
|
is a template for filtering a GIF with in-core operations. |
|
prints (text only) general information about a GIF file. |
|
creates a test GIF image resembling a color monitor test pattern. |
|
is a converter/deconverter to/from an editable text format. |
|
converts raw 8-bit image data into GIF files. |
|
converts 24 bit images to a GIF image using color quantization. |
|
generates GIF images out of regular text in 8x8 font. |
|
contains API functions required by the giflib programs and any other programs needing library functionality to read, write and manipulate GIF images. |
Last updated on 2008-05-10 18:53:20 -0500
The little cms library is used by other programs to provide color management facilities.
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)
LibTIFF-3.8.2, libjpeg-6b, and Python-2.5.2 (with SWIG also)
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/lcms
Install little cms by running the following commands:
patch -Np1 -i ../lcms-1.16-swig_fixes-1.patch && ./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/lcms-1.16 && install -v -m644 README.1ST doc/* /usr/share/doc/lcms-1.16
generates PostScript CRD or CSA from ICC profiles. |
|
links two or more profiles into a single device link profile. |
|
is a color space conversion calculator. |
|
is an ICC profile applier for JPEG files. |
|
is an ICC profile applier for TIFF files. |
|
shows media white of profiles, identifying black body locus. |
|
is used by the lcms programs as well as other programs to provide color management facilities. |
Last updated on 2007-07-14 18:27:07 -0500
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.
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
libjpeg-6b and little cms-1.16
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/libmng
Install libmng by running the following commands:
cp makefiles/makefile.linux Makefile && make
This package does not come with a test suite.
Now, as the root
user:
make prefix=/usr install && install -v -m644 doc/man/*.3 /usr/share/man/man3 && install -v -m644 doc/man/*.5 /usr/share/man/man5 && install -v -m755 -d /usr/share/doc/libmng-1.0.9 && install -v -m644 doc/*.{png,txt} /usr/share/doc/libmng-1.0.9
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.
Last updated on 2007-04-04 14:42:53 -0500
The FreeType2 package contains a library to allow applications to properly render TrueType fonts.
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 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
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/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
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.
Last updated on 2008-07-09 10:51:58 -0500
The Fontconfig package is a library for configuring and customizing font access.
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
FreeType-2.3.7 and either expat-2.0.1 or libxml2-2.6.31 (requires pkg-config-0.22)
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.
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/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
To test the results, issue: make check.
Now, as the root
user:
make install && install -v -m644 doc/*.3 /usr/share/man/man3 && install -v -m644 doc/*.5 /usr/share/man/man5 && install -v -m755 \ -d /usr/share/doc/fontconfig-2.4.2/fontconfig-devel && install -v -m644 doc/*.{html,pdf,txt} \ /usr/share/doc/fontconfig-2.4.2 && install -v -m644 doc/fontconfig-devel/* \ /usr/share/doc/fontconfig-2.4.2/fontconfig-devel
--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.
--with-docdir=/usr/share/doc/fontconfig-2.4.2
:
Though this parameter seems counter-intuitive following the
preceding parameter to the configure command, it is
used so that if the builder removes the --disable-docs
parameter, the
documentation will be installed in a versioned directory name
instead of the default /usr/share/doc/fontconfig
.
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.
is used to create font information caches. |
|
is used to read font information caches. |
|
is used to create font lists. |
|
is used to match available fonts, or find fonts that match a given pattern. |
|
contains functions used by the Fontconfig programs and also by other programs to configure or customize font access. |
Last updated on 2008-05-06 00:26:07 -0500
The libart_lgpl package
contains the libart
libraries.
These are useful for high-performance 2D graphics.
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
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/libart_lgpl
Install libart_lgpl by running the following commands:
patch -Np1 -i ../libart_lgpl-2.3.19-upstream_fix-1.patch && ./configure --prefix=/usr && make
This package does not come with a test suite.
Now, as the root
user:
make install
Last updated on 2007-04-09 10:10:01 -0500
The librsvg package contains
librsvg
libraries and tools
used to manipulate, convert and view Scalable Vector Graphic
(SVG) images.
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
GTK+-2.10.13 and libxml2-2.6.31
libcroco-0.6.1 and libgsf-1.14.7
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.
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/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
--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.
Last updated on 2008-05-09 07:42:27 -0500
AAlib is a library to render any graphic into ASCII Art.
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
X Window System, S-Lang-2.1.3, and GPM-1.20.1
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/aalib
Install AAlib 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
is little toy of AAlib, rendering an animated fire in ASCII Art. |
|
provides information for your current settings related to AAlib. |
|
provides configuration info for AAlib. |
|
shows the abilities of AAlib in a little test. |
|
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. |
Last updated on 2007-04-04 14:42:53 -0500
Imlib2 is a graphics library for fast file loading, saving, rendering and manipulation.
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
FreeType-2.3.7, libpng-1.2.29, and libjpeg-6b
LibTIFF-3.8.2, giflib-4.1.4, and libid3tag
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/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
--without-x
: Add this
parameter if you do not have an X Window System installed.
Last updated on 2007-07-18 20:55:50 -0500
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.
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
Doxygen-1.5.2 and Graphviz-2.12
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/libexif
Install libexif by running the following commands:
./configure --prefix=/usr \ --with-doc-dir=/usr/share/doc/libexif-0.6.16 && make
To test the results, issue: make check.
Now, as the root
user:
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.
Last updated on 2007-07-08 11:14:30 -0500
The FriBidi package is an implementation of the Unicode Bidirectional Algorithm (bidi). This is useful for supporting Arabic and Hebrew alphabets in other packages.
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
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/fribidi
Install FriBidi by running the following commands:
patch -Np1 -i ../fribidi-0.10.8-test_fixes-1.patch && ./configure --prefix=/usr && make
To test the results, issue: make check.
Now, as the root
user:
make install
is a command-line interface to the |
|
is used to acquire information about the installed
|
|
contains functions used to implement the Unicode Bidirectional Algorithm. |
Last updated on 2007-08-05 18:41:15 -0500
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.
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)
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.
pkg-config-0.22 and Fontconfig-2.4.2
libjpeg-6b, cairo-1.4.14, GTK+-2.10.13, Qt-3.3.8b, and Qt-4.x.x
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.
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/poppler
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.
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:
patch -Np1 -i ../poppler-0.5.4-security_fixes-1.patch && ./configure --prefix=/usr \ --sysconfdir=/etc \ --enable-zlib \ --disable-cairo-output \ --disable-poppler-glib \ --disable-gtk-test && make
This package does not come with a test suite.
Now, as the root
user:
make install && install -v -m755 -d /usr/share/doc/poppler-0.5.4 && install -v -m644 README* /usr/share/doc/poppler-0.5.4
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):
make prefix=/usr install
--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.
Last updated on 2008-07-12 13:29:07 -0500
This chapter contains various utilities that do not fit conveniently into other chapters. Programs include a command line calculator, several utilities for manipulating text and graphics, a program to interface with a palm-pilot, a program for entering PIN numbers and pass-phrases, and a hash generator.
The bc package contains an arbitrary precision numeric processing language.
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)
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/bc
Install bc by running the following commands:
sed -i '/PROTO.*readline/d' bc/scan.l && sed -i '/flex -I8/s/8//' configure && sed -i '/stdlib/a #include <string.h>' lib/number.c && sed -i 's/program.*save/static &/' bc/load.c && ./configure --prefix=/usr --with-readline && make
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.
echo "quit" | ./bc/bc -l Test/checklib.b
Now, as the root
user:
make install
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.
Last updated on 2007-04-04 14:42:53 -0500
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.
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
libglade-2.6.1 and librep-0.17
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/rep-gtk
Install rep-gtk by running the following commands:
patch -Np1 -i ../rep-gtk-0.18-gtk2.4-1.patch && ./configure --prefix=/usr && make
This package does not come with a test suite.
Now, as the root
user:
make install
Last updated on 2007-04-04 14:42:53 -0500
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.
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
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/compface
Install Compface 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 -m755 -v xbm2xface.pl /usr/bin
is a filter for generating highly compressed representations of 48x48x1 face image files. |
|
is an inverse filter which performs an inverse transformation with no loss of data. |
|
is a script to generate xfaces. |
|
allows the compression and decompression algorithms to be used in other programs such as MTAs. |
Last updated on 2007-11-22 15:22:21 -0600
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.
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.
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.
pkg-config-0.22, CUPS-1.2.12 or LPRng-3.8.28 (or any other print utility that provides an lpr command), dcraw, Dmalloc, Electric Fence, PGP or GnuPG-1.4.7 or GnuPG-2.0.8 (you'll have to do some hacking to use GnuPG), SANE-1.0.18, and Wget-1.10.2
corefonts, FlashPIX (or FlashPIX library), FreeType-2.3.7, Jasper, JBIG-KIT, little cms-1.16, libexif-0.6.16, libjpeg-6b, libpng-1.2.29, librsvg-2.16.1, LibTIFF-3.8.2, libxml2-2.6.31, DjVuLibre, and RALCGM (or RALCGM-3.50)
ESP Ghostscript-8.15.4 or AFPL Ghostscript-8.53, GhostPCL, GIMP-2.2.17, Gnuplot, Graphviz-2.12, POV-Ray, and Radiance
AutoTrace, Enscript-1.6.4, hp2xx, html2ps, libwmf, MPEG-2 Video Codec, Netpbm, teTeX-3.0, Transfig, txt2html (requires Module::Build-0.2808 and Perl Module Getopt::ArgvFile), and Utah Raster Toolkit (or URT-3.1b)
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/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
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=
:
This option specifies the directory where the Windows
CoreFonts are installed.
<Some/Directory>
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.
animates a sequence of images. |
|
compares an image to a reconstructed image. |
|
composites various images into the given base image. |
|
processes a MSL script to create an image. |
|
converts image(s) from one format to another. |
|
displays an image. |
|
describes the format and characteristics of an image file. |
|
captures an X window. |
|
show information about the installed versions of ImageMagick and Magick++. |
|
transforms an image. |
|
composites various images into a new image. |
|
streams one or more pixel components of an image or portion of the image to your choice of storage formats. |
|
shows the options required to use the Wand library. |
|
allows the reading, manipulation and writing of a
large number of image file formats using the
ImageMagick
library. Run make in the
|
Last updated on 2008-05-19 17:38:54 -0500
The hd2u package contains an any to any text format converter.
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
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/hd2u
Install hd2u 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
Last updated on 2007-08-13 18:29:22 -0500
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.
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
libxslt-1.1.22, DocBook XML DTD-4.5, and DocBook XSL Stylesheets-1.71.1
pkg-config-0.22, ScrollKeeper-0.3.14, OpenJade-1.3.2, DocBook SGML DTD-4.5, and DocBook DSSSL Stylesheets-1.79
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/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
--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
.
Last updated on 2007-04-04 14:42:53 -0500
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.
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
libxslt-1.1.22, DocBook XML DTD-4.5, and XML::Parser-2.34
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/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
--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.
--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.
ScrollKeeper utility programs |
The ScrollKeeper utility programs and scripts listed above are for performing installation, building, getting and updating table of contents files. |
provides the API necessary for help browsers to interact with documentation written to utilize ScrollKeeper. |
Last updated on 2007-08-08 18:09:31 -0500
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.
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
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/intltool
Install intltool 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 -m644 -D doc/I18N-HOWTO \ /usr/share/doc/intltool-0.35.5/I18N-HOWTO
Last updated on 2007-04-04 14:42:53 -0500
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.
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
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/screen
Install Screen by running the following commands:
./configure --prefix=/usr --with-socket-dir=/var/run/screen \ --with-sys-screenrc=/etc/screenrc && sed -i -e "s%/usr/local/etc/screenrc%/etc/screenrc%" {etc,doc}/* && make
This package does not come with a test suite.
Now, as the root
user:
make install && install -m 644 etc/etcscreenrc /etc/screenrc
--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.
Last updated on 2007-04-04 14:42:53 -0500
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.
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.
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/tidy
Install HTML Tidy by running the following commands:
./configure --prefix=/usr && make
To test the results, issue: make check.
Now, as the root
user:
make install
If you wish to install the API documentation, issue the
following command as the root
user:
make -C htmldoc install_apidocs
Last updated on 2007-04-04 14:42:53 -0500
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.
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
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/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
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:
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
Last updated on 2007-07-18 16:12:44 -0500
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.
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
bc-1.06 and libglade-2.6.1 (alternatively LessTif-0.95.0 but not recommended)
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)
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/xscreensaver
Install XScreenSaver by running the following commands:
./configure --prefix=/usr --libexecdir=/usr/lib && make
This package does not come with a test suite.
Now, as the root
user:
make install
--with-setuid-hacks
: This switch
allows some demos to be installed setuid root
which is needed in order to ping
other hosts.
--enable-locking
: This switch
provides support for locking the display.
is a screen saver and locker daemon. |
|
controls a running xscreensaver process by sending it client messages. |
|
is a graphical front-end for setting the parameters used by the background xscreensaver daemon. |
|
is a helper program for the xscreensaver modules that manipulate images. |
|
is a helper program for the xscreensaver modules that manipulate images. |
|
is a helper program for the xscreensaver modules that manipulate images. |
|
is a helper program for the xscreensaver OpenGL modules. |
|
prints some text to stdout, for use by screen savers. |
Last updated on 2008-05-10 18:53:20 -0500
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.
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
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
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/pilot-link
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.
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.
Now, as the root
user:
make install && install -v -m755 -d /usr/share/doc/pilot-link-0.12.2 && install -v -m644 README doc/{README.*,TODO,CodingGuidelines} \ /usr/share/doc/pilot-link-0.12.2
--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.
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. |
Last updated on 2007-07-18 07:37:23 -0500
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.
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)
Qt-3.3.8b (required to build the GUI tools), Pth-2.0.7, and Mini SQL
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.
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/unixodbc
Install unixODBC by running the following commands:
./configure --prefix=/usr \ --sysconfdir=/etc/unixodbc \ --enable-fdb \ --disable-gui && make
This package does not come with a test suite.
Now, as the root
user:
make install && find doc -name "Makefile*" -exec rm {} \; && chmod 644 doc/{lst,ProgrammerManual/Tutorial}/* && install -v -m755 -d /usr/share/doc/unixODBC-2.2.12 && cp -v -R doc/* /usr/share/doc/unixODBC-2.2.12
--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.
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.
is a graphical program which can be used to browse/explore ODBC data sources. |
|
is an enhanced version of DataManager. |
|
is a graphical program used to make configuration of ODBC data sources extremely easy. |
|
is a utility used to check a share library to see if it can be loaded and if a given symbol exists in it. |
|
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. |
|
provides the same functionality as the isql program. |
|
is used to find out details about the installation of the unixODBC package. |
|
is a utility created for install script/RPM
writers. It is a command line interface to key
functionality in the |
|
is a graphical program used to test the ODBC API. |
Last updated on 2007-08-15 18:06:57 -0500
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.
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
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
SWIG (SWIG must be installed or no bindings will be built), Guile-1.8.2, JDK-6 Update 5, PHP-5.2.3, Python-2.5.2, Ruby-1.8.6-p111, Tcl-8.4.18, C# (DotGNU Portable.NET or Mono), Io, Lua, and Objective Caml
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/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"
Install Graphviz by running the following commands:
patch -Np1 -i ../graphviz-2.12-gd_fixes-1.patch && ./configure --prefix=/usr && make
This package does not come with a test suite that provides meaningful results.
Now, as the root
user:
make install
If desired, create a symbolic link in the system documents
directory to the documentation installed in /usr/share/graphviz/doc
using the following
command as the root
user:
ln -v -s /usr/share/graphviz/doc \ /usr/share/doc/graphviz-2.12
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
.
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. |
|
decomposes graphs into their biconnected components, printing the components to standard output. |
|
decomposes graphs into their connected components, printing the components to standard output. |
|
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 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. |
|
reads a stream of graphs and for each computes the distance of every node from sourcenode. |
|
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. |
|
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 |
|
is a version of dotthat has all the Graphviz libraries compiled statically. |
|
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. |
|
draws undirected graphs using a “spring” model. It relies on a force-directed approach in the spirit of Fruchterman and Reingold. |
|
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. |
|
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. |
|
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. |
|
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. |
|
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 |
|
is a two-view graphics editor for technical pictures. |
|
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. |
|
reads a stream of graphs and prints each in pretty-printed (canonical) format on stdout. If no files are given, it reads from stdin. |
|
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 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. |
|
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. |
|
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. |
|
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. |
|
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. |
|
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, |
|
manages run-time dictionaries using standard container data types: unordered set/multiset, ordered set/multiset, list, stack, and queue. |
|
is a C-like expression library. |
|
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 |
|
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. |
|
contains functions to find the shortest path between two points in a simple polygon. |
Last updated on 2007-07-24 00:02:11 -0500
xterm is a terminal emulator for the X Window System.
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
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.
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/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
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.
--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.
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:
cat >> $XORG_PREFIX/share/X11/app-defaults/XTerm << "EOF" *VT100*locale: true *VT100*faceName: Monospace *VT100*faceSize: 10 *backarrowKeyIsErase: true *ptyInitialErase: true EOF
Last updated on 2008-05-09 07:42:27 -0500
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.
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
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/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
Build rman by running the following command:
make
This package does not come with a test suite.
Now, as the root
user:
make install
Last updated on 2008-02-05 11:44:55 -0600
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.
The Recode package is no longer maintained upstream. Wishlist bugs such as http://bugs.debian.org/94966 will never be fixed.
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
Python-2.5.2 (for the “bigauto” test) and Dmalloc
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/recode
Install Recode by running the following commands:
patch -Np1 -i ../recode-3.6-fixes-1.patch && ./configure --prefix=/usr --without-included-gettext && make
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
--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.
Last updated on 2007-01-19 00:38:19 +0500
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.
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
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/icon-naming-utils
Install icon-naming-utils by running the following commands:
./configure --prefix=/usr \ --libexecdir=/usr/lib/icon-naming-utils && make
This package does not come with a test suite.
Now, as the root
user:
make install
--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
.
Last updated on 2008-05-09 08:00:42 -0500
rxvt-unicode is a clone of the terminal emulator rxvt, an X Window System terminal emulator which includes support for XFT and Unicode.
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
libAfterImage (adds support for transparency and background images)
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/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
--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.
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:
cat >> /etc/X11/app-defaults/URxvt << "EOF"
URxvt*perl-ext: matcher
URxvt*urlLauncher: firefox
URxvt.background: black
URxvt.foreground: yellow
URxvt*font: xft:Monospace:pixelsize=12
EOF
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:
# Start the urxvtd daemon
urxvtd -q -f -o &
For more information, examine the urxvt, urxvtd, urxvtc, and urxvtperl
man pages.
/usr/lib/urxvt/perl
Last updated on 2008-05-14 09:22:03 -0500
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.
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
GTK+-1.2.10, GTK+-2.10.13, Qt-3.3.8b, and libcap
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/pinentry
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:
make -k -C doc pdf ps html && makeinfo --html --no-split -o doc/pinentry_nochunks.html doc/pinentry.texi && makeinfo --plaintext -o doc/pinentry.txt doc/pinentry.texi
This package does not come with a test suite.
Now, as the root
user:
make install && install -v -m644 -D README /usr/share/doc/pinentry-0.7.3/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/pinentry-0.7.3/html && install -v -m644 doc/pinentry.html/* \ /usr/share/doc/pinentry-0.7.3/html && install -v -m644 doc/pinentry_*.html \ /usr/share/doc/pinentry-0.7.3 && install -v -m644 doc/pinentry.{pdf,ps,dvi,txt,texi} \ /usr/share/doc/pinentry-0.7.3
--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.
Last updated on 2008-08-11 12:34:50 -0500
Gperf generates a perfect hash function from a key set.
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
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/gperf
Install Gperf by running the following commands:
./configure --prefix=/usr && make
If desired, create a text version of the documentation by issuing the following command:
makeinfo -o doc/gperf.txt --plaintext doc/gperf.texi
To test the results, issue make check. There should be no output from the diff commands.
Now, as the root
user:
make install && install -v -m755 -d /usr/share/doc/gperf-3.0.3 && install -m644 -v doc/gperf.{dvi,ps,pdf,txt} /usr/share/doc/gperf-3.0.3
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.
Last updated on 2008-04-09 10:40:36 -0500
This chapter contains mainly hardware utilities. It also contains some applications used by other applications in the book for installation or configuration purposes.
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!
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
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
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/GPM
Install GPM by running the following commands:
patch -Np1 -i ../gpm-1.20.1-segfault-1.patch && patch -Np1 -i ../gpm-1.20.1-silent-1.patch && ./configure --prefix=/usr --sysconfdir=/etc && LDFLAGS="-lm" make
Now, as the root
user:
make install && cp -v conf/gpm-root.conf /etc && ldconfig
LDFLAGS="-lm": The math library must be linked with gpm, as ceil() is used in some cursor scrolling logic.
Install the /etc/rc.d/init.d/gpm
init script included
in the blfs-bootscripts-20080816 package.
make install-gpm
/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:
cat > /etc/sysconfig/mouse << "EOF"
# Begin /etc/sysconfig/mouse
MDEVICE="<yourdevice>
"
PROTOCOL="<yourprotocol>
"
GPMOPTS="<additional options>
"
# End /etc/sysconfig/mouse
EOF
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.
is a security mechanism used to disable the paste buffer. |
|
is a cut and paste utility and mouse server for virtual consoles. |
|
is a default handler for gpm. It is used to draw menus on the root window. |
|
is a simple sample application using the high-level library, meant to be read by programmers trying to use the high-level library. |
|
is a program to report mouse events. |
|
is a tool for determining the mouse type and device it's attached to. |
|
contains the API functions to access the GPM daemon. |
Last updated on 2007-07-14 18:27:07 -0500
The Fcron package contains a periodical command scheduler which aims at replacing Vixie Cron.
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
An MTA, text editor (default is vi from the Vim-7.1 package), Linux-PAM-0.99.10.0, DocBook-utils-0.6.14
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/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
# End fcron addition
EOF
The configuration file has been modified, so reloading the
sysklogd daemon
will activate the changes (again as the root
user).
/etc/rc.d/init.d/sysklogd reload
For security reasons, an unprivileged user and group for
Fcron should be created
(perform as the root
user):
groupadd -g 22 fcron && useradd -d /dev/null -c "Fcron User" -g fcron -s /bin/false -u 22 fcron
Install Fcron by running the following commands:
./configure --prefix=/usr --sysconfdir=/etc \ --localstatedir=/var --without-sendmail --with-boot-install=no && make
This package does not come with a test suite.
Now, as the root
user:
make install
--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=
to use a different mailer
command.
</path/to/MTA
command>
--with-boot-install=no
: This
prevents installation of the bootscript included with the
package.
--with-editor=
:
This switch allows you to set the default text editor.
</path/to/editor>
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.
Install the /etc/rc.d/init.d/fcron
init script from
the blfs-bootscripts-20080816 package.
make install-fcron
Last updated on 2007-11-01 16:53:39 -0500
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.
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.
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
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/hdparm
Build hdparm by running the following command:
make
This package does not come with a test suite.
Now, as the root
user:
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:
make binprefix=/usr/ install
Last updated on 2007-08-13 18:57:32 -0500
The presence or absence of the which program in the main LFS book is probably one of the most contentious issues on the mailing lists. It has resulted in at least one flame war in the past. To hopefully put an end to this once and for all, presented here are two options for equipping your system with which. The question of which “which” is for you to decide.
The first option is to install the actual GNU which package.
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
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/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
The second option (for those who don't want to install the
package) is to create a simple script (execute as the
root
user):
cat > /usr/bin/which << "EOF"
#!/bin/bash
type -pa "$@" | head -n 1 ; exit ${PIPESTATUS[0]}
EOF
chmod -v 755 /usr/bin/which
chown -v root:root /usr/bin/which
This should work OK and is probably the easiest solution for most cases, but is not the most comprehensive implementation.
Last updated on 2008-04-02 16:28:16 -0500
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.
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.
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
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/unzip
Use of UnZip in the JDK, Mozilla, DocBook or any other BLFS package installation is not a problem, as BLFS instructions never use UnZip to extract a file with non-ASCII characters in the file's name.
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.
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.
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
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.
allows the output of unzip commands to be redirected. |
|
lists, tests or extracts files from a |
|
is a self-extracting stub that can be prepended to
a |
|
searches files in a |
|
produces technical information about the files in a
|
|
contains the API functions required by the UnZip programs. |
Last updated on 2008-04-15 03:34:07 -0500
The Zip package contains
Zip utilities. These are
useful for compressing files into ZIP
archives.
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
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/zip
Install Zip by running the following commands:
make -f unix/Makefile generic_gcc
This package does not come with a test suite.
Now, as the root
user:
make prefix=/usr -f unix/Makefile install
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.
Last updated on 2007-04-04 14:42:53 -0500
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.
Download (HTTP): http://www.rarlab.com/rar/unrarsrc-3.7.8.tar.gz
Download MD5 sum: b783f1932bc0c73902c6399f7c2c6f43
Download size: 131 KB
Estimated disk space required: 175 KB
Estimated build time: Less than 0.1 SBU
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/unrar
Install UnRar by running the following commands:
make -f makefile.unix
This package does not come with a test suite.
Now, as the root
user:
install -v -m755 unrar /usr/bin
Last updated on 2008-08-17 08:22:54 -0500
The PCI Utilities package is a set of programs for listing PCI devices, inspecting their status and setting their configuration registers.
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
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/pciutils
Install PCI Utilities by running the following commands:
sed -i 's/null ;/null 2>\&1 ;/' update-pciids.sh && make PREFIX=/usr
This package does not come with a test suite.
Now, as the root
user:
make PREFIX=/usr install
Some packages require the PCI static library. To install the
library and headers, issue the following commands as the
root
user:
install -v -m 755 -d /usr/include/pci && install -v -m 644 lib/libpci.a /usr/lib && install -v -m 644 lib/*.h /usr/include/pci
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
.
The pci.ids
data file is
constantly being updated. To get a current version of this
file, run update-pciids as the
root
user. This program
requires the which-2.19 script or
program to find cURL-7.16.3, Wget-1.10.2 or Lynx-2.8.6rel.5 which are
used to download the most current file, and then 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 pci.ids
file periodically.
is a utility for displaying information about all PCI buses in the system and all devices connected to them. |
|
is a utility for querying and configuring PCI devices. |
|
fetches the current version of the PCI ID list. Requires cURL-7.16.3, Wget-1.10.2 or Lynx-2.8.6rel.5. |
|
is the static library that allows applications to access the PCI subsystem. |
Last updated on 2008-03-12 11:05:41 -0500
The usbutils package contains a utility used to display information about USB buses in the system and the devices connected to them.
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
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/usbutils
Install usbutils by running the following commands:
sed -i 's|DEST=|&/usr/share/|' update-usbids.sh && ./configure --prefix=/usr && make
This package does not come with a test suite.
Now, as the root
user:
make install && install -v -m755 update-usbids.sh /usr/sbin/update-usbids
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.
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.
is a utility for displaying information about all USB buses in the system and all devices connected to them. |
|
downloads the current version of the USB ID list. Requires Wget-1.10.2 or Lynx-2.8.6rel.5. |
Last updated on 2008-03-12 11:05:41 -0500
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.
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
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/pkgconfig
Install pkg-config by running the following commands:
./configure --prefix=/usr && make
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
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.
Last updated on 2007-07-14 18:27:07 -0500
The cpio package contains tools for archiving.
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
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/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 -C doc pdf && make -C doc ps && texi2html -o doc/cpio.html doc/cpio.texi && makeinfo --plaintext -o doc/cpio.txt doc/cpio.texi
To test the results, issue make check
Now, as the root
user:
make install
If you built any of the alternate forms of documentation,
install it by issuing the following commands as the
root
user:
install -v -m755 -d /usr/share/doc/cpio-2.9 && install -v -m644 doc/cpio.{pdf,ps,dvi,html,txt} \ /usr/share/doc/cpio-2.9
CPIO_MT_PROG=mt
: This
parameter forces the building and installation of the
mt program.
--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.
Last updated on 2007-07-11 12:15:17 -0500
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.
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
Midnight Commander without the Debian patch is completely unusable in multibyte locales because it assumes that characters and bytes are the same thing. The issue manifests itself as massive screen content corruption similar to what is depicted in this screenshot (taken in the ru_RU.UTF-8 locale). For a general discussion of this type of issue, see the Breaks Multibyte Characters section of the Locale Related Issues page. The Debian patch mostly fixes this issue, and adds support for recoding remote FTP filenames. Debian also fixed 64-bit issues, rare segfaults in mcedit, and improved syntax highlighting.
If you do not use a multibyte locale and do not need any of the new features or fixes, the patch is still supposed to be harmless. However, the patch changes the dependencies and build instructions, and in the past it caused unacceptable regressions for non-UTF-8 locale users. Thus, failsafe instructions without the patch are left in the book just in case. Due to the size and unofficial nature of the patch, please do not report bugs in the patched MC to the original MC developers.
GLib-1.2.10 (untested with Debian patch) or GLib-2.12.12
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
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/MC
Fix incompatibility of MC-4.6.1 with Bash-3.2:
patch -Np1 -i ../mc-4.6.1-bash32-1.patch
If desired, apply Debian fixes:
patch -Np1 -i ../mc-4.6.1-debian_fixes-1.patch
Install MC by running the following commands:
CPPFLAGS="-DUTF8" ./configure --prefix=/usr \ --enable-charset && make
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:
convert-mans ISO-8859-1 UTF-8 lib/mc.hint{,.es,.it,.nl} && convert-mans ISO-8859-2 UTF-8 lib/mc.hint{.cs,.hu,.pl} && convert-mans ISO-8859-5 UTF-8 lib/mc.hint.sr && convert-mans KOI8-R UTF-8 lib/mc.hint.ru && convert-mans KOI8-U UTF-8 lib/mc.hint.uk && convert-mans BIG5 UTF-8 lib/mc.hint.zh && convert-mans ISO-8859-1 UTF-8 doc/{es,it}/mc.hlp.* && convert-mans ISO-8859-2 UTF-8 doc/{hu,pl}/mc.hlp.* && convert-mans ISO-8859-5 UTF-8 doc/sr/mc.hlp.sr && convert-mans KOI8-R UTF-8 doc/ru/mc.hlp.ru
This package does not come with a test suite.
Now, as the root
user:
make install && chmod 1755 /usr/lib/mc/cons.saver
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-screen=(slang|mcslang|ncurses)
:
This parameter selects the screen library used by
MC. NCurses support is currently buggy (MC
does not handle mouse events in xterm correctly). UTF-8
support in the Debian patch is functional only when external
S-Lang-2.1.3 is used as a screen library
(this is the default).
--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).
Last updated on 2007-08-05 17:14:40 -0500
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.
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
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/sysstat
Install Sysstat by running the following commands:
make config && make
This package does not come with a test suite.
Now, as the root
user:
make install
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.
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.
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.
# 8am-7pm activity reports every 10 minutes during weekdays
0 8-18 * * 1-5 /usr/lib/sa/sa1 600 6 &
# 7pm-8am activity reports every hour during weekdays
0 19-7 * * 1-5 /usr/lib/sa/sa1 &
# Activity reports every hour on Saturday and Sunday
0 * * * 0,6 /usr/lib/sa/sa1 &
# Daily summary prepared at 19:05
5 19 * * * /usr/lib/sa/sa2 -A &
Ensure you submit the revised crontab to the cron daemon.
At system startup, a LINUX RESTART message must be inserted
in the daily data file to reinitialize the kernel counters.
This can be automated by installing the /etc/rc.d/init.d/sysstat
init script
included in the blfs-bootscripts-20080816 package
using the following command as the root
user:
make install-sysstat
reports CPU statistics and input/output statistics for devices and partitions. |
|
reports individual or combined processor related statistics. |
|
collects, reports and saves system activity information. |
|
collects and stores binary data in the system
activity daily data file. It is a front end to
|
|
writes a summarized daily activity report. It is a front end to sar designed to be run from cron. |
|
is the system activity data collector, used as a backend for sar. |
|
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. |
Last updated on 2007-04-04 14:42:53 -0500
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.
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
JDK-6 Update 5 and JUnit-4.3.1
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/apache-ant
You may need additional libraries to satisfy the build requirements of various packages installed using Apache Ant. Review the table at http://ant.apache.org/manual/install.html#librarydependencies for any prerequisite libraries you may need.
Install Apache Ant by running the following commands:
sed -i 's|${dist.dir}/etc|/etc/ant|' build.xml sed -i 's|/etc/ant.conf|/etc/ant/ant.conf|' src/script/ant
The unit regression tests are performed in the build step below.
Now, as the root
user:
./build.sh -Ddist.dir=/opt/ant-1.7.0 dist && ln -v -sf /etc/ant /opt/ant-1.7.0/etc && ln -v -sf ant-1.7.0 /opt/ant
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
.
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.
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
is a Java based build tool used by many packages instead of the conventional make program. |
|
is a support script used to start ant build scripts in a given directory. |
|
is a Perl script that provides similar functionality offered by the antRun script. |
|
is a Perl script that allows Bash to complete an ant command-line. |
|
is a Perl wrapper script used to invoke ant. |
|
is a Python wrapper script used to invoke ant. |
|
files are the Apache Ant Java class libraries. |
|
is a Java class library used by Apache Ant to perform XML parsing. |
|
contains the DOM Java classes required by the Apache Ant XML formatter. |
Last updated on 2008-08-10 16:20:51 -0500
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).
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)
expat-2.0.1 or both pkg-config-0.22 and libxml2-2.6.31
X Window System, Doxygen-1.5.2 (to generate the API documentation), and xmlto (to generate HTML documentation and manuals)
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/dbus
Ensure the following option is enabled in the kernel configuration and recompile the kernel if necessary:
General Setup
System V IPC
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
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.
Now, as the root
user:
make install && install -v -m755 -d /usr/share/doc/dbus-1.0.2 && install -v -m644 doc/{TODO,*.{dtd,xml,xsl,txt,c}} \ /usr/share/doc/dbus-1.0.2
If you built the HTML documentation, install it by issuing
the following commands as the root
user:
install -v -m644 doc/*.html /usr/share/doc/dbus-1.0.2
If you built the API documentation, install it by issuing the
following commands as the root
user:
install -v -m755 -d /usr/share/doc/dbus-1.0.2/api \ /usr/share/man/man3dbus && install -v -m644 doc/api/html/* \ /usr/share/doc/dbus-1.0.2/api && install -v -m644 doc/api/man/man3dbus/* \ /usr/share/man/man3dbus
--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.
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.
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>
<!-- Search for .service files in /usr/local -->
<servicedir>/usr/local/share/dbus-1/services</servicedir>
</busconfig>
EOF
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” 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
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.
is used to clean up leftover sockets in a directory. |
|
is the D-BUS message bus daemon. |
|
is used to start dbus-daemon from a shell script. It would normally be called from a user's login scripts. |
|
is used to monitor messages going through a D-BUS message bus. |
|
is used to send a message to a D-BUS message bus. |
|
is used to generate or read a universally unique ID. |
|
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. |
Last updated on 2007-07-21 17:17:44 -0500
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.
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
Required Hardware Data
Download (HTTP): http://freedesktop.org/~david/dist/hal-info-20070618.tar.gz
Download MD5 sum: c7005ccb1765d8359fd2348350770495
Download size: 118 KB
D-Bus GLib Bindings-0.74 and XML::Parser-2.34
PCI Utilities-2.2.3 (with a current
pci.ids
file) and usbutils-0.72 (with a current
usb.ids
file)
libxml2-2.6.31 and xmlto
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.
sed -i -e 's%, 1.8.6%&, 1.8.7%' \ -e 's% or 1.8.6%/1.8.6 or 1.8.7%' \ -e 's%6))%6) ||\ (major == 1 \&\& minor == 8 \&\& micro == 7))%' \ configure
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/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:
groupadd -g 19 haldaemon && useradd -c "HAL Daemon User" -d /dev/null -u 19 \ -g haldaemon -s /bin/false haldaemon
Install HAL by running the following commands:
./configure --prefix=/usr \ --sysconfdir=/etc \ --libexecdir=/usr/lib/hal \ --localstatedir=/var && make
To test the results, issue make check.
Now, as the root
user:
make install
Install the HAL hardware data with the following commands:
tar -xf ../hal-info-20070618.tar.gz && cd hal-info-20070618 && ./configure --prefix=/usr
Finally, as the root
user:
make install
--libexecdir=/usr/lib/hal
: This
parameter forces the installation of libexec files to
/usr/lib/hal
instead of
/usr/libexec
.
--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.
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).
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:
groupadd -g 61 halusers &&
cat > /etc/dbus-1/system.d/halusers.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>
<!-- 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.
usermod -a -G halusers <username>
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:
cat > /etc/hal/fdi/policy/no-fixed-drives.fdi << "EOF"
<?xml version="1.0" encoding="UTF-8"?> <!-- -*- SGML -*- -->
<!-- Don't allow HAL methods on disks that are not
removable or hotpluggable -->
<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
HAL only provides the methods such as Mount() to act on hardware. In order to take advantage of these, a HAL event handler such as gnome-volume-manager-2.17.0 or Ivman should be installed.
In some cases, it is necessary to specify some default
mount options for filesystems. E.g., in non-English
environments, the iocharset
and codepage
options are
needed for filesystems of Windows origin in order to show
national characters correctly. Also, due to a bug
in the Linux kernel version in LFS (2.6.22.x), you may
want to pass the usefree
option to vfat filesystems in order to reduce the time
needed to determine the amount of free space on the
filesystem.
Google search results for “hal
default mount options” are still full of
recommendations to create *.fdi
files mentioning either
volume.policy
or storage.policy
keys. Such recommendations
worked for HAL-0.4.x only and are invalid now. For
HAL-0.5.9.1, mount options are expected to be handled as
follows:
An event handler from the desktop environment receives an event describing the newly-added storage device.
If the storage device is not already mentioned in
/etc/fstab
, mount
options are fetched from a database of user
preferences, which is specific to the desktop
environment, and passed back to HAL. This process
can be influenced by the filesystem type and
possibly other volume properties available from
HAL.
If the options are in the list of permitted ones, HAL mounts the volume.
The important point above is that the configuration
procedure is desktop-specific. However, as of December,
2007, only GNOME allows the user to set default mount
options on a per-filesystem basis, as described in the
next paragraph. KDE allows the mount options to be set
only on a per-volume basis, not per-filesystem, which is
a bug,
because, 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:
gconftool-2 --type list --list-type=string \ --set /system/storage/default_options/vfat/mount_options \ "[shortname=mixed,uid=,usefree,iocharset=koi8-r,codepage=866]"
See more details in the gnome-mount(1) manual page.
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:
cat > /etc/hal/fdi/policy/user-options.fdi << "EOF"
<?xml version="1.0" encoding="UTF-8"?> <!-- -*- SGML -*- -->
<!--
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>
<!-- this is to be able to mount media in drives we cannot poll,
e.g. IDE Zip Drives and PC style floppy drives -->
<match key="storage.media_check_enabled" bool="false">
<match key="storage.no_partitions_hint" bool="true">
<append key="volume.mount.valid_options" type="strlist">usefree</append>
<!-- Insert other options here -->
</match>
</match>
<match key="volume.fsusage" string="filesystem">
<!-- allow these mount options for vfat -->
<match key="volume.fstype" string="vfat">
<append key="volume.mount.valid_options" type="strlist">usefree</append>
<!-- Insert other options here -->
</match>
</match>
</device>
</deviceinfo>
EOF
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.
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
is used to create, remove or show a HAL device. |
|
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. |
|
can be used to to disable and enable media detection on drives with removable storage. |
|
prints the Unique Device Identifiers for HAL device objects of a given capability. |
|
prints the Unique Device Identifiers for HAL device objects where a given property assumes a given value. |
|
retrieves a property from a device. |
|
attempts to set property for a device. Note that, due to security considerations, it may not be possible to set a property. |
|
determines if a specific caller is locked out of a specific D-Bus interface on a specific device. |
|
is the HAL daemon program. |
|
shows all devices and their properties. If the --monitor option is given then the device list and all devices are monitored for changes. |
|
contains the API functions required by the HAL programs. |
|
contains the API functions required by the HAL storage and volume utility programs. |
Last updated on 2008-08-11 19:15:25 -0500
A base LFS system can be used as a development platform, however the base system only includes language support for C, C++ and Perl. This chapter provides instructions to build many popular programming environments to greatly expand your system's development capabilities.
DejaGnu is a framework for running test suites on GNU tools. It is written in expect, which uses Tcl (Tool command language).
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
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/dejagnu
Install DejaGnu by running the following commands:
./configure --prefix=/usr && make
Now, as the root
user:
make install && make install-doc
To test the installation, issue make check as an unprivileged user.
/usr/share/dejagnu
hierarchy.
Last updated on 2007-04-04 14:42:53 -0500
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.
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)
Qt-3.3.8b, Graphviz-2.12, Python-2.5.2, teTeX-3.0, ESP Ghostscript-8.15.4 or AFPL Ghostscript-8.53
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/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
--with-doxywizard
: Use this
parameter if Qt is installed
and you wish to build the GUI front-end.
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.
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. |
|
is used to generate a tag file and/or a search index for a set of HTML files. |
|
is a GUI front-end for configuring and running doxygen. |
Last updated on 2007-04-19 18:17:33 -0500
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.
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
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/expect
Install Expect by running the following commands:
patch -Np1 -i ../expect-5.43.0-spawn-2.patch && ./configure --prefix=/usr \ --with-tcl=/usr/lib \ --with-tclinclude=/usr/include \ --enable-shared && make
To test the results, issue: make test.
Now, as the root
user:
make install && ln -sf ../libexpect5.43.a /usr/lib/expect5.43
-with-tcl=/usr/lib
:
This parameter is required in some cases to link in the
Tcl library.
--enable-shared
: This
option enables building the shared library.
ln -sf ../libexpect5.43.a /usr/lib/expect5.43: This command creates a required link to the static library.
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.
generates an Expect script from watching a session. |
|
is a wrapper to make passwd(1) be non-interactive. |
|
encrypts all files in a directory. |
|
decrypts all files in a directory. |
|
allows processes to be disconnected and reconnected to a terminal. |
|
is a program that “talks” to other interactive programs according to a script. |
|
retrieves an RFC (or the index) from UUNET. |
|
allows two (or more) people to interact with one shell (or any arbitrary program). |
|
unhangs a printer which claims it is “waiting for lock”. |
|
generates passwords and can apply them automatically to users. |
|
changes a password on multiple machines. |
|
is much like ftp except it
uses |
|
is rlogin except it uses the local current directory as the current working directory on the remote machine. |
|
reads a complete line from stdin and aborts after a given number of seconds. |
|
runs a program for a given amount of time. |
|
disables the output buffering that occurs when program output is redirected. |
|
retrieves a weather report (courtesy University of Michigan) for a given city or geographical area. |
|
is a combination of Expect with Tk and should run any wish or Expect script. |
|
creates multiple xterms that can be driven together or separately. |
|
pops up a window when there is unread news in your favorite newsgroups and removes the window after you've read the news. |
|
is a script to change passwords using expectk. |
|
allows users in separate xterms to share one shell (or any program that runs in an xterm). |
|
is a script that acts as a front-end for xpilot. |
|
contains functions that allow Expect to be used as a Tcl extension or to be used directly from C or C++ (without Tcl). |
Last updated on 2007-04-04 14:42:53 -0500
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.
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
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/gc
Install GC by running the following commands:
sed -i "s|\$(datadir)/@PACKAGE@|&-6.8|" doc/Makefile.in && ./configure --prefix=/usr \ --datadir=/usr/share/doc --enable-cplusplus && make
To test the results, issue: make check.
Now, as the root
user:
make install && install -v -m644 doc/gc.man /usr/share/man/man3/gc_malloc.3 && ln -v -s gc_malloc.3 /usr/share/man/man3/gc.3
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.
Last updated on 2007-07-14 18:27:07 -0500
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.
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.
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)
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
.
Download (HTTP): https://libre.adacore.com/dynamic/download_page
Download MD5 sum: 659b7f57e00b73ecaa4863dabea5e0e2
Download size: 44.6 MB
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/gcc
Install GNAT by running the
following command as the root
user:
make ins-all prefix=/opt/gnat
The GNAT compiler can be
invoked by executing the gcc binary installed in
/opt/gnat/bin
.
You may now remove the GNAT source directory:
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
Install GCC by running the following commands:
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).
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
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.
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.
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.
emulates some of the functionality of addr2line. |
|
is an archive tool for Java archives. |
|
is an ahead-of-time compiler for the Java language. |
|
is a tool for creating and manipulating class file mapping databases. |
|
generates header files from Java class files. |
|
is the Fortran compiler invoked by gcc. |
|
is the GNU interpreter for Java bytecode. |
|
is used to generate JNI header files from class files. Running it is equivalent to running gcjh -jni. |
|
is the Ada compiler invoked by gcc. |
|
is used to bind compiled objects. |
|
is the Ada linker. |
|
is useful for renaming files to meet the standard Ada default file naming conventions. |
|
is used to remove files associated with a GNAT project. |
|
is the GNAT definition/use finder. |
|
is used to determine the crunched name for a given file, when crunched to a specified maximum length. |
|
is used to link programs and build an executable file. |
|
is the compiled unit browser. |
|
is an automatic make facility. |
|
will list the files associated with a GNAT project. |
|
is the GNAT external preprocessor. |
|
is the GNAT cross-referencer. |
|
is a tool used to create |
|
searches |
|
generates stubs for Remote Method Invocation. |
|
starts a remote object registry on the current host. |
|
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. |
|
prints information about Java class files. |
|
converts files from one encoding to another. |
|
prints information about Java source files. |
Last updated on 2008-03-12 11:05:41 -0500
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.
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)
DejaGnu-1.4.4 (required to run the full test suite)
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/gcc3
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
Now, as the root
user:
make install && mv -v /opt/gcc-3.3.6/lib/libstdc++.so.5* /usr/lib && ln -v -sf /usr/lib/libstdc++.so.5.0.7 /opt/gcc-3.3.6/lib && ln -v -sf libstdc++.so.5.0.7 /opt/gcc-3.3.6/lib/libstdc++.so.5 && chown -v -R root:root \ /opt/gcc-3.3.6/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/include
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
.
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.
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.
Last updated on 2007-04-04 14:42:53 -0500
The Guile package contains the Project GNU's extension language library. Guile also contains a stand alone Scheme interpreter.
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)
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/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 ./configure --prefix=/usr && make
If you have teTeX-3.0 installed and wish to build alternate formats of the documentation, issue the following commands:
for DIRNAME in goops r5rs ref tutorial do make -k -C doc/$DIRNAME pdf ps html done && makeinfo --plaintext -o doc/goops/goops.txt doc/goops/goops.texi && makeinfo --plaintext -o doc/r5rs/r5rs.txt doc/r5rs/r5rs.texi && makeinfo --plaintext -o doc/ref/guile.txt doc/ref/guile.texi && makeinfo --plaintext -o doc/tutorial/guile-tut.txt \ doc/tutorial/guile-tut.texi && unset DIRNAME
To test the results, issue: make check.
Now, as the root
user:
make install && find examples -name "Makefile*" -exec rm {} \; && install -v -m755 -d /usr/share/doc/guile-1.8.2 && cp -v -R examples /usr/share/doc/guile-1.8.2
If you built the alternate formats of the documentation,
install them using the following commands issued by the
root
user:
for DIRNAME in goops r5rs ref tutorial do install -v -m755 -d /usr/share/doc/guile-1.8.2/$DIRNAME/html install -v -m644 doc/$DIRNAME/*.{pdf,ps,dvi,txt} \ /usr/share/doc/guile-1.8.2/$DIRNAME if [ -d doc/$DIRNAME/$DIRNAME.html ]; then install -v -m644 doc/$DIRNAME/$DIRNAME.html/* \ /usr/share/doc/guile-1.8.2/$DIRNAME/html fi done && install -v -m644 doc/goops/hierarchy.{eps,png} \ /usr/share/doc/guile-1.8.2/goops && install -v -m644 doc/ref/guile.html/* \ /usr/share/doc/guile-1.8.2/ref/html && install -v -m644 doc/tutorial/guile-tut.html/* \ /usr/share/doc/guile-1.8.2/tutorial/html
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.
is a stand-alone Scheme interpreter for Guile. |
|
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. |
|
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. |
|
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. |
Last updated on 2007-08-03 06:50:56 -0500
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.
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.
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
ALSA Library-1.0.13, CUPS-1.2.12, and GTK+-2.10.13
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/jdk
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
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.
Now, as the root
user:
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
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.
As the root
user, create a
symlink to the installation directory:
ln -v -nsf jdk-6u5 /opt/jdk
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.
Add the following jdk.sh
shell startup file to the /etc/profile.d
directory with the
following commands as the root
user:
cat > /etc/profile.d/jdk.sh << "EOF"
# Begin /etc/profile.d/jdk.sh
# Set JAVA_HOME directory
JAVA_HOME=/opt/jdk
# Adjust PATH
pathappend ${JAVA_HOME}/bin PATH
# Auto Java CLASSPATH
# Copy jar files to, or create symlinks in this directory
AUTO_CLASSPATH_DIR=/usr/lib/classpath
pathprepend . CLASSPATH
for dir in `find ${AUTO_CLASSPATH_DIR} -type d 2>/dev/null`; do
pathappend $dir CLASSPATH
done
export JAVA_HOME CLASSPATH
unset AUTO_CLASSPATH_DIR
unset dir
# 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.
The plugin must be a symlink for it to work. If not, the browsers will crash when you attempt to load a Java application.
$JAVA_HOME
/lib/*, $JAVA_HOME
/jre/lib/*, and
libjavaplugin_oji.so
runs Java applets outside of the context of a browser. |
|
is an annotation processing tool. |
|
checks a specified jar file for title and version conflicts with any extensions installed in the JDK software. |
|
adds Java auto download to html and asp pages. |
|
generates Java bindings from a given IDL file. |
|
combines multiple files into a single jar archive. |
|
signs jar files and verifies the signatures and integrity of a signed jar file. |
|
launches a Java application by starting a Java runtime environment, loading a specified class and invoking its main method. |
|
reads class and interface definitions, written in the Java programming language, and compiles them into bytecode class files. |
|
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. |
|
generates C header and source files that are needed to implement native methods. |
|
disassembles a Java class file. |
|
is the Java RMI client. |
|
launches Java application/applets hosted on a network. |
|
is a graphical console tool to monitor and manage both local and remote Java applications and virtual machines. |
|
is a simple command-line debugger for Java classes. |
|
parses a java heap dump file and allows viewing in a webbrowser. |
|
prints Java configuration information for a given Java process, core file, or a remote debug server. |
|
prints shared object memory maps or heap memory details of a given process, core file, or a remote debug server. |
|
lists the instrumented JVMs on the target system. |
|
is a command line script shell. |
|
attaches to a Java process or core file and acts as a debug server. |
|
prints Java stack traces of Java threads for a given Java process, core file, or a remote debug server. |
|
displays performance statistics for an instrumented JVM. |
|
is an RMI server application that monitors for the creation and termination of instrumented JVMs. |
|
is a key and certificate management utility. |
|
converts files that contain non-supported character encoding into files containing Latin-1 or Unicode-encoded characters. |
|
is used to enable clients to transparently locate and invoke persistent objects on servers in the CORBA environment. |
|
is a Java application that transforms a jar file into a compressed pack200 file using the Java gzip compressor. |
|
creates and manages a policy file graphically. |
|
generates stub and skeleton class files for remote objects from the names of compiled Java classes that contain remote object implementations. |
|
starts the activation system daemon. |
|
creates and starts a remote object registry on the specified port on the current host. |
|
is a Java XML binding schema generator. |
|
returns the serialVersionUID for one or more classes in a form suitable for copying into an evolving class. |
|
provides an ease-of-use interface for application programmers to register, unregister, startup and shutdown a server. |
|
starts the Java IDL name server. |
|
is a native implementation that transforms a packed file produced by pack200 into a jar file. |
|
generates JAX-WS portable artifacts used in JAX-WS web services. |
|
generates JAX-WS portable artifacts. |
|
is a Java XML binding compiler. |
Last updated on 2008-08-10 15:33:05 -0500
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.
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
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/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
Last updated on 2007-07-16 08:54:37 -0500
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.
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
GMP-4.2.2
and GCC-4.1.2 (build Java so that libffi
is built)
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/librep
Install librep by running the following commands:
./configure --prefix=/usr --libexecdir=/usr/lib && make
Now, as the root
user:
make install
--libexecdir=/usr/lib
: This
parameter installs files to /usr/lib/rep
instead of /usr/libexec/rep
.
Last updated on 2007-04-04 14:42:53 -0500
NASM (Netwide Assembler) is an 80x86 assembler designed for portability and modularity. It includes a disassembler as well.
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
Required patch to fix a buffer overrun vulnerability: http://www.linuxfromscratch.org/patches/blfs/6.3/nasm-0.98.39-security_fix-1.patch
teTeX-3.0, and ESP Ghostscript-8.15.4 or AFPL Ghostscript-8.53
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/nasm
Install NASM by running the following commands:
patch -Np1 -i ../nasm-0.98.39-security_fix-1.patch && ./configure --prefix=/usr && make && make -C rdoff/doc && make -C rdoff/doc html
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:
sed -i -e "s/dvips \$</& -o rdoff.ps/" rdoff/doc/Makefile && make -C rdoff/doc ps
To build the RDOFF PDF documentation, ensure you have Ghostscript installed and issue:
make -C rdoff/doc pdf
This package does not come with a test suite.
Now, as the root
user:
make install && make install_rdf && install -v -m644 rdoff/doc/rdoff.info /usr/share/info && install -v -m755 -d /usr/share/doc/nasm/html && install -v -m644 rdoff/doc/v1-v2.txt /usr/share/doc/nasm && cp -v -R rdoff/doc/rdoff /usr/share/doc/nasm/html
If you built the Ghostscript
generated documentation, install it using the following
commands as the root
user:
make install_doc && install -v -m644 rdoff/doc/rdoff.pdf /usr/share/doc/nasm
Lastly, if you built the RDOFF Postscript documentation,
install it using the following command as the root
user:
install -v -m644 rdoff/doc/rdoff.ps /usr/share/doc/nasm
Last updated on 2007-04-04 14:42:53 -0500
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.
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 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.
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).
The Inline::Pdlpp module allows you to define fast PP code inline in your scripts.
perldl is a simple shell (written in Perl) which allows interactive use of PDL.
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)
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.
The PDL::Graphics::PLPLOT module is a simple interface to the PLplot plotting library.
The PDL::Graphics::IIS module provides an interface to any image display “device” which supports the “IIS protocol”.
The PDL::Graphics::Karma module is an interface to Karma visualisation applications.
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
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
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.
The PDL::GSL module is an interface to the functions provided by the Gnu Scientific Library.
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).
The PDL::IO::Browser module is a 2D cursor terminal data browser for piddles.
There is no additional software required to use the module. However, the default is to not install the module because some platforms don't provide a curses compatible library. To enable the module, issue the following command:
sed -i -e "s/WITH_IO_BROWSER => 0/WITH_IO_BROWSER => 1/" \ perldl.conf
The PDL::IO::NDF module adds the ability to read and write Starlink N-dimensional data files as N-dimensional piddles.
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/pdl
Install PDL (and all the dependency Perl modules) by running the following commands:
sed -i 's/\(dirname);\)/\1\nuse blib;/' Demos/BAD*demo.pm.PL && perl Makefile.PL && make && make test
Now, as the root
user:
make install
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.
See http://pdl.sourceforge.net/PDLdocs/perldl.html#the startup file ~/.perldlrc for information about configuring perldl to suit your needs.
Last updated on 2007-08-05 17:14:40 -0500
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/
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.
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.
Test::Pod-1.26 (optionally used during the tests)
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.
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.
sed -i -e "s|BUILD_ZLIB\s*= True|BUILD_ZLIB = False|" \ -e "s|INCLUDE\s*= ./zlib-src|INCLUDE = /usr/include|" \ -e "s|LIB\s*= ./zlib-src|LIB = /usr/lib|" \ config.in
Compress-Zlib-2.005 (uses the standard build and installation instructions)
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 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.
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.
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.
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.
Test::Pod-1.26 (optionally used during the tests)
libwww-perl-5.806 (run-time requirement for the included HTML::HeadParser module)
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.
Test::Pod-1.26 (optionally used during the tests)
Test::Pod::Coverage-1.08 (optionally used during the tests)
The libwww-perl (LWP) collection is a set of Perl modules which provide a simple and consistent application programming interface to the World-Wide Web. The main focus of the library is to provide classes and functions that allow you to write WWW clients. The library also contains modules that are of more general use and even classes that help you implement simple HTTP servers. The LWP collection and all its Perl module dependencies are installed using the standard Perl module build and installation instructions.
Crypt-SSLeay-0.56 (optional, for HTTPS support)
A “testcover”
Makefile
target is created (which creates a
/usr/bin/testcover
script) if the
Extutils::MakeMaker::Coverage module is
installed.
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.
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)
perl Build.PL && ./Build && ./Build test
Now, as the root
user:
./Build install
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.
version-0.74 (optionally used during the tests)
Module::Build-0.2808 (optional)
Test::Pod-1.26 (optionally used during the tests)
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.
Test::Pod::Coverage-1.08 (optionally used during the tests)
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.
IO-Socket-INET6-2.51 (required for IPv6 support)
Test::Pod-1.26 (optional, only used during the test suite)
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.
Test::Pod::Coverage-1.08 (optionally used during the tests, and is a circular dependency)
Test::Pod-1.26 (optionally used during the tests)
Module::Build-0.2808 (optional)
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.
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
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.
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.
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. 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 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.
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.
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.
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.
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::Build-0.2808 (optional)
Test::Pod-1.26 (optionally used during the tests)
Test::Pod::Coverage-1.08 (optionally used during the tests)
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.
libwww-perl-5.806 (optionally used during the tests)
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.
One of the following four modules must be installed:
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.
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):
For Spiffy: sed -i 's,\xc3\xb6,o,' lib/Spiffy.pm
For Test::Base: sed -i 's,\xc3\xb6,o,' \
lib/Test/Base{,/Filter}.pm \
lib/Module/Install/TestBase.pm
For YAML: sed -i 's,\xc3\xb6,o,' \
ysh \
lib{,/Test}/YAML.pm \
lib/YAML/{Types,Node,Error,Marshall,Tag,Base}.pm \
lib/YAML/{Loader,Dumper}{,/Base}.pm
Test-Base-0.54 (optionally used during the tests)
Text::Diff-0.35 (optionally used during the tests)
Test::Simple-0.70 (optionally used during the tests)
Install Perl modules by running the following commands:
perl Makefile.PL && make && make test
Now, as the root
user:
make install
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:
make install UNINST=1
There is an alternate way of installing the modules using the cpan shell install command. The command automatically downloads the source from the CPAN archive, extracts it, runs the compilation, testing and installation commands mentioned above, and removes the build source tree. You may still need to install dependent library packages before running the automated installation method.
The first time you run cpan, you'll be prompted to
enter some information regarding download locations and
methods. This information is retained in files located in
~/.cpan
. Start the cpan shell by issuing
'cpan' as the
root
user. Any module may now
be installed from the cpan>
prompt with the
command:
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:
cpan -i <Module1::Name> <Module2::Name>
Review the cpan.1
man page for
additional parameters you can pass to cpan on the command line.
Last updated on 2008-05-10 17:10:49 -0500
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.
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)
Pre-built documentation (optional): http://www.php.net/download-docs.php
libxslt-1.1.22, GMP-4.2.2, PCRE-7.6, Aspell-0.60.5, pkg-config-0.22, Recode-3.6, expat-2.0.1 (deprecated alternative to libxml2-2.6.31), OSSP mm, Net-SNMP, Pth-2.0.7, re2c, XMLRPC-EPI, Dmalloc, and an MTA (that provides a sendmail command)
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
OpenLDAP-2.3.39, GDBM-1.8.3, MySQL-5.0.41, PostgreSQL-8.2.4, unixODBC-2.2.12, QDBM, cdb, SQLite, Mini SQL, Empress, Birdstep, DBMaker, Adabas, FrontBase, and Monetra
PHP also provides support for many commercial database tools such as Oracle, SAP and ODBC Router.
OpenSSL-0.9.8g, Cyrus SASL-2.1.22, MIT Kerberos V5-1.6 or Heimdal-1.1, libmcrypt, and mhash
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/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.
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.
Install PHP by running the following commands:
sed -i 's/const char \*errpfx,/const DB_ENV *dbenv, & const/' \ ext/dba/dba_db4.c && ./configure --prefix=/usr \ --sysconfdir=/etc \ --with-apxs2 \ --enable-force-cgi-redirect \ --enable-discard-path \ --with-config-file-path=/etc \ --with-zlib \ --enable-bcmath \ --with-bz2 \ --enable-calendar \ --enable-dba \ --enable-exif \ --enable-ftp \ --with-gettext \ --enable-mbstring \ --with-ncurses \ --with-readline && make
To test the results, issue: make test. Some of the tests are known to fail.
Now, as the root
user:
make install && install -v -m644 php.ini-recommended /etc/php.ini && install -v -m755 -d /usr/share/doc/php-5.2.3 && install -v -m644 CODING_STANDARDS EXTENSIONS INSTALL NEWS \ README* TODO* UPGRADING php.gif \ /usr/share/doc/php-5.2.3 && ln -v -s /usr/lib/php/doc/Archive_Tar/docs/Archive_Tar.txt \ /usr/share/doc/php-5.2.3
The pre-built HTML documentation is packaged in two forms: a
tarball containing many individual files, useful for quick
loading into your browser, and one large individual file,
which is useful for using the search utility of your browser.
If you downloaded either, or both, of the documentation
files, issue the following commands as the root
user to install them (note these
instructions assume English docs, modify the tarball names
below if necessary).
For the “Single HTML” file:
install -v -m644 ../php_manual_en.html.gz \ /usr/share/doc/php-5.2.3 && gunzip -v /usr/share/doc/php-5.2.3/php_manual_en.html.gz
For the “Many HTML files” tarball:
tar -xvf ../php_manual_en.tar.gz -C /usr/share/doc/php-5.2.3 && chown -v -R root:root /usr/share/doc/php-5.2.3/html
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.
--with-readline
: This
parameter enables command line Readline support.
--disable-libxml
:
This parameter allows building PHP without libxml2 installed.
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:
You may want to add: /usr/lib/php to your php.ini include_path
If desired, add the entry using the following command as
the root
user:
sed -i 's@php/includes"@&\ninclude_path = ".:/usr/lib/php"@' \ /etc/php.ini
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:
LoadModule php5_module lib/apache/libphp5.so
AddType application/x-httpd-php .php
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:
AddType application/x-httpd-php-source .phps
You'll need to restart the Apache web server after making any
modifications to the httpd.conf
file.
Last updated on 2007-08-15 18:06:57 -0500
The Python package contains the Python development environment. This is useful for object-oriented programming, writing scripts, prototyping large programs or developing entire applications.
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)
OpenSSL-0.9.8g, Tk-8.4.18, GDBM-1.8.3, and SQLite 3
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/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.
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:
install -v -m755 -d /usr/share/doc/Python-2.5.2/html && tar --strip-components=1 \ --no-same-owner \ --no-same-permissions \ -C /usr/share/doc/Python-2.5.2/html \ -xvf ../html-2.5.tar.bz2
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
Last updated on 2008-08-11 15:13:59 -0500
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.
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.
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
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/pyxml
Install PyXML by running the following commands:
python setup.py build
Now, as the root
user:
python setup.py install && install -v -m644 doc/man/xmlproc_*.1 /usr/share/man/man1 && install -v -m755 -d /usr/share/doc/PyXML-0.8.4 && cp -v -R doc demo test /usr/share/doc/PyXML-0.8.4 && install -v -m644 README* /usr/share/doc/PyXML-0.8.4
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 ..
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.
Pycairo provides Python bindings to Cairo.
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
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/pycairo
Install Pycairo by running the following commands:
./configure --prefix=/usr && make
Now, as the root
user:
make install
To run the regression tests, the package must first be installed. Then, as an unprivileged user, issue the following commands:
(cd test && python test.py)
PyGObject provides Python bindings to the GObject class from GLib.
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
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/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
--disable-docs
: This
option disables the rebuilding of the html documentation if
libxslt-1.1.22 is installed.
PyGTK lets you to easily create programs with a graphical user interface using the Python programming language.
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
Pycairo-1.4.0 and Pango-1.16.4
Pycairo-1.4.0 and GTK+-2.10.13
Pycairo-1.4.0 and libglade-2.6.1
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/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
--enable-docs
: This
option enables rebuilding the html documentation if libxslt-1.1.22 is installed.
This is a Python language binding for the ORBit2 CORBA implementation.
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
Python-2.5.2 and ORBit2-2.14.7
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/pyorbit
Install PyORBit 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
Gnome-Python provides Python modules for various GNOME libraries.
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
PyGTK-2.10.6 and libgnome-2.18.0
PyORBit-2.14.3 and libgnomeui-2.18.1
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/gnome-python
Install Gnome-Python 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
Gnome-Python-Desktop provides additional Python modules for GNOME libraries.
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
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/gnome-python-desktop
Install Gnome-Python-Desktop 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
--enable-metacity
:
This option enables building the metacity module if Metacity-2.18.5 is installed.
Last updated on 2008-03-17 13:11:35 -0500
The Ruby package contains the Ruby development environment. This is useful for object-oriented scripting.
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
OpenSSL-0.9.8g, Tk-8.4.18, and GDBM-1.8.3
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/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
--enable-shared
: This
parameter builds the libruby
shared library.
--enable-pthread
:
This parameter links the threading library into the
Ruby build.
/usr/lib/ruby
hierarchy.
is an interpreted scripting language for quick and easy object-oriented programming. |
|
is the interactive interface for Ruby. |
|
is Tiny eRuby. It interprets a Ruby code embedded text file. |
|
displays documentation from a database on Ruby classes, modules and methods. |
|
contains the API functions required by Ruby. |
Last updated on 2007-12-22 14:27:55 -0600
The Tcl package contains the Tool Command Language, a robust general-purpose scripting language.
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)
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/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
To test the results, issue: make test.
Now, as the root
user:
make install && make install-private-headers && ln -v -sf tclsh8.4 /usr/bin/tclsh
--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.
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.
Last updated on 2008-04-09 14:15:48 -0500
The Tk package contains a TCL GUI Toolkit.
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
X Window System and Tcl-8.4.18
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/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:
make install && make install-private-headers && ln -v -sf wish8.4 /usr/bin/wish
--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.
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.
Last updated on 2008-05-09 08:00:42 -0500
This section is provided to show you some additional programming tools for which instructions have not yet been created in the book or for those that are not appropriate for the book. Note that these packages may not have been tested by the BLFS team, but their mention here is meant to be a convenient source of additional information.
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/OtherProgrammingTools
A+ is a powerful and efficient programming language. It is freely available under the GNU General Public License. It embodies a rich set of functions and operators, a modern graphical user interface with many widgets and automatic synchronization of widgets and variables, asynchronous execution of functions associated with variables and events, dynamic loading of user compiled subroutines, and many other features. Execution is by a rather efficient interpreter. A+ was created at Morgan Stanley. Primarily used in a computationally-intensive business environment, many critical applications written in A+ have withstood the demands of real world developers over many years. Written in an interpreted language, A+ applications tend to be portable.
Project Home Page: http://www.aplusdev.org/
Download Location: http://www.aplusdev.org/Download/index.html
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 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 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 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 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 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> 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 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/
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 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 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 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 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
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 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 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 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 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 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 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 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 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 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 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 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 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 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 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/.
Project Home Page: http://www.forth.org/
Download Location: http://www.forth.org/compilers.html
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 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:
The HLA language was developed as a tool to help teach assembly language programming and machine organization to University students at the University of California, Riverside. The basic idea was to teach students assembly language programming by leveraging their knowledge of high level languages like C/C++ and Pascal/Delphi. At the same time, HLA was designed to allow advanced assembly language programmers write more readable and more powerful assembly language code.
Project Home Page: http://webster.cs.ucr.edu/AsmTools/HLA/
Download Location: http://webster.cs.ucr.edu/AsmTools/HLA/dnld.html
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 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/
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, 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 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 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 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
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 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 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 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/
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 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
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
OO2C is an Oberon-2 development platform. It consists of an optimizing compiler, a number of related tools, a set of standard library modules and a reference manual. Oberon-2 is a general-purpose programming language in the tradition of Pascal and Modula-2. Its most important features are block structure, modularity, separate compilation, static typing with strong type checking (also across module boundaries) and type extension with type-bound procedures. Type extension makes Oberon-2 an object-oriented language.
Project Home Page: http://ooc.sourceforge.net/
Download Location: http://downloads.sourceforge.net/ooc/
OGDL is a structured textual format that represents information in the form of graphs, where the nodes are strings and the arcs or edges are spaces or indentation.
Project Home Page: http://ogdl.sourceforge.net/
Download Location: http://downloads.sourceforge.net/ogdl/
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 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 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 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 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 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 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/
SDCC is a Freeware, retargetable, optimizing ANSI-C compiler that targets the Intel 8051, Maxim 80DS390 and the Zilog Z80 based MCUs. Work is in progress on supporting the Motorola 68HC08 as well as Microchip PIC16 and PIC18 series. The entire source code for the compiler is distributed under GPL.
Project Home Page: http://sdcc.sourceforge.net/
Download Location: http://sdcc.sourceforge.net/snap.php#Source
SmartEiffel claims to be “the fastest and the slimmest multi-platform Eiffel compiler on Earth”. Eiffel is an object-oriented programming language which emphasizes the production of robust software. Its syntax is keyword-oriented in the ALGOL and Pascal tradition. Eiffel is strongly statically typed, with automatic memory management (typically implemented by garbage collection). Distinguishing characteristics of Eiffel include Design by contract (DbC), liberal use of inheritance including multiple inheritance, a type system handling both value and reference semantics, and generic classes. Eiffel has a unified type system—all types in Eiffel are classes, so it is possible to create subclasses of the basic classes such as INTEGER. Eiffel has operator overloading, including the ability to define new operators, but does not have method overloading.
Project Home Page: http://smarteiffel.loria.fr/
Download Location: ftp://ftp.loria.fr/pub/loria/SmartEiffel/
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 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
Download Location: ftp://ftp.cs.arizona.edu/sr/
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:
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/
SBCL is an open source (free software) compiler and runtime system for ANSI Common Lisp. It provides an interactive environment including an integrated native compiler, a debugger, and many extensions. SBCL runs on a number of platforms.
Project Home Page: http://www.sbcl.org/
Download Location: http://downloads.sourceforge.net/sbcl/
Tiny C Compiler is a small C compiler that can be used to compile and execute C code everywhere, for example on rescue disks (about 100KB for x86 TCC executable, including C preprocessor, C compiler, assembler and linker). TCC is fast. It generates optimized x86 code, has no byte code overhead and compiles, assembles and links several times faster than GCC. TCC is versatile, any C dynamic library can be used directly. It is heading toward full ISOC99 compliance and can compile itself. The compiler is safe as it includes an optional memory and bound checker. Bound checked code can be mixed freely with standard code. TCC compiles and executes C source directly. No linking or assembly necessary. A full C preprocessor and GNU-like assembler is included. It is C script supported; just add “#!/usr/local/bin/tcc -run” on the first line of your C source, and execute it directly from the command line. With libtcc, you can use TCC as a backend for dynamic code generation.
Project Home Page: http://www.tinycc.org/
Download Location: http://fabrice.bellard.free.fr/tcc/
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 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, 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 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
Boost provides free peer-reviewed portable C++ source libraries. The emphasis is on libraries which work well with the C++ Standard Library. The libraries are intended to be widely useful, and are in regular use by thousands of programmers across a broad spectrum of applications, platforms and programming environments.
Project Home Page: http://www.boost.org/
Download Location: http://downloads.sourceforge.net/boost/
BECL is intended to give
users a convenient possibility to analyze, create, and
manipulate (binary) Java class files (those ending with
.class
). Classes are
represented by objects which contain all the symbolic
information of the given class: methods, fields and byte
code instructions, in particular. Such objects can be read
from an existing file, be transformed by a program (e.g., a
class loader at run-time) and dumped to a file again. An
even more interesting application is the creation of
classes from scratch at run-time. The Byte Code Engineering
Library may be also useful if you want to learn about the
Java Virtual Machine (JVM) and the format of Java
.class
files. BCEL is already being used
successfully in several projects such as compilers,
optimizers, obsfuscators, code generators and analysis
tools.
Project Home Page: http://jakarta.apache.org/bcel/index.html
Download Location: http://jakarta.apache.org/site/downloads/downloads_bcel.cgi/
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/
Download Location: http://choco.sourceforge.net/download.html
FFTW is a C subroutine library for computing the discrete Fourier transform (DFT) in one or more dimensions, of arbitrary input size, and of both real and complex data (as well as of even/odd data, i.e., the discrete cosine/sine transforms or DCT/DST).
Project Home Page: http://www.fftw.org/
Download Location: http://www.fftw.org/download.html
GOB (GOB2 anyway) is a preprocessor for making GObjects with inline C code so that generated files are not edited. Syntax is inspired by Java and Yacc or Lex. The implementation is intentionally kept simple, and no C actual code parsing is done.
Project Home Page: http://www.5z.com/jirka/gob.html
Download Location: http://ftp.5z.com/pub/gob/
GTK+/GNOME language bindings allow GTK+ to be used from other programming languages, in the style of those languages.
Project Home Page: http://www.gtk.org/bindings.html
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 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 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
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
KDE and most KDE applications are implemented using the C++ programming language, however there are number of bindings to other languages are available. These include scripting languages like Perl, Python and Ruby, and systems programming languages such as Java and C#.
Project Home Page: http://developer.kde.org/language-bindings/
Numerical Python adds a fast array facility to the Python language.
Project Home Page: http://numeric.scipy.org/
Download Location: http://downloads.sourceforge.net/numpy/
There are many Perl scripts and additional modules located on the Comprehensive Perl Archive Network (CPAN) web site. Here you will find “All Things Perl”.
Project Home Page: http://cpan.org/
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/
A-A-P makes it easy to locate, download, build and install software. It also supports browsing source code, developing programs, managing different versions and distribution of software and documentation. This means that A-A-P is useful both for users and for developers.
Project Home Page: http://www.a-a-p.org/index.html
Download Location: http://www.a-a-p.org/download.html
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 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/
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
cachecc1 is a GCC cache. It can be compared with the well known ccache package. It has some unique features including the use of an LD_PRELOADed shared object to catch invocations to cc1, cc1plus and as, it transparently supports all build methods, it can cache GCC bootstraps and it can be combined with distcc to transparently distribute compilations.
Project Home Page: http://cachecc1.sourceforge.net/
Download Location: http://downloads.sourceforge.net/cachecc1
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/
GNU DDD is a graphical front-end for command-line debuggers such as GDB, DBX, WDB, Ladebug, JDB, XDB, the Perl debugger, the Bash debugger, or the Python debugger. Besides “usual” front-end features such as viewing source texts, DDD has an interactive graphical data display, where data structures are displayed as graphs..
Project Home Page: http://www.gnu.org/software/ddd/
Download Location: http://ftp.gnu.org/gnu/ddd/
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 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/
GDB is the GNU Project debugger. It allows you to see what is going on “inside” another program while it executes. It also allows you to see what another program was doing at the moment it crashed.
Project Home Page: http://www.gnu.org/software/gdb/
Download Location: ftp://ftp.gnu.org/gnu/gdb/
User Notes and Installation Instructions: http://wiki.linuxfromscratch.org/blfs/wiki/OtherProgrammingTools
ccache is a clone of ccache, with the goal of supporting compilers other than GCC and adding additional features. Embedded compilers will especially be in focus.
Project Home Page: http://sourceforge.net/projects/gocache/
Download Location: http://downloads.sourceforge.net/gocache/
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 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 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 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 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
Last updated on 2007-04-04 14:42:53 -0500
The LFS book covers setting up networking by connecting to a LAN with a static IP address. There are other methods used to obtain an IP address and connect to a LAN and other networks (such as the Internet). The most popular methods (DHCP and PPP) are covered in this chapter.
DHCP stands for Dynamic Host Configuration Protocol. It is a protocol used by many sites to automatically provide information such as IP addresses, subnet masks and routing information to computers. If your network uses DHCP, you will need a DHCP client in order to connect to it.
PPP stands for Potint-to-Point Protocol. It is data link protocol commonly used for establishing an authenticated IP connections over a phone line with a modem, or over radio waves with a cellular phone. There is also a variant (PPPoE) that works over Ethernet and is used by cable providers to authenticate the Internet connections.
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.
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
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)
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/PPP
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
make
install-etcppp: This command puts example
configuration files in /etc/ppp
.
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.
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:
usermod -a -G pppusers <username>
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.
Passwords are stored in /etc/ppp/pap-secrets
and /etc/ppp/chap-secrets
files, depending
on the authentication method used by the ISP. If in
doubt, place the password into both files. E.g., if the
username given by the ISP is “jdoe”, the password is
“guessit”, the ISP
uses PAP and the user wants to name this account
“dialup” in order
to distinguish it from other PPP accounts, the following
file has to be created:
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
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.
cat >/etc/ppp/ip-up <<"EOF"
#!/bin/sh
if [ "$USEPEERDNS" = "1" ] && [ -s /etc/ppp/resolv.conf ]
then
install -m 644 /etc/ppp/resolv.conf /etc/resolv.conf
fi
EOF
chmod 755 /etc/ppp/ip-up
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.
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:
cat >/etc/ppp/dialup.chat <<"EOF"ABORT BUSY ABORT 'NO CARRIER' ABORT VOICE ABORT 'NO DIALTONE' ABORT 'NO DIAL TONE' ABORT 'NO ANSWER' ABORT DELAYED ABORT ERROR ABORT BLACKLISTED TIMEOUT 5 '' AT # \T is the phone number, passed from /etc/ppp/peers/
EOF cat >/etc/ppp/peers/dialup
OK-+++\dATH0-OK ATD\T TIMEOUT 75 CONNECT \d\cdialup
<<"EOF"# Your username at the ISP user "
EOFjdoe
" # What should be in the second column in /etc/ppp/*-secrets remotename "dialup
" # ReplaceTTTTTTT
with the ISP phone number connect "/usr/sbin/chat -TTTTTTTT
-f /etc/ppp/dialup.chat" # Specify your modem serial port and speed below/dev/ttyS0
115200
# The settings below usually don't need to be changed updetach noauth hide-password debug lock defaultroute noipdefault usepeerdns
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.
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.
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:
cat >/etc/ppp/gprs.chat <<"EOF"ABORT BUSY ABORT 'NO CARRIER' ABORT VOICE ABORT 'NO DIALTONE' ABORT 'NO DIAL TONE' ABORT 'NO ANSWER' ABORT DELAYED ABORT ERROR ABORT BLACKLISTED TIMEOUT 5 '' AT OK-+++\dATH0-OK ATZ # \T is the APN, passed from /etc/ppp/peers/
EOF cat >/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\cgprs
<<"EOF"# Replace
EOFinet.example.com
with the proper APN for your provider connect "/usr/sbin/chat -Tinet.example.com
-f /etc/ppp/gprs.chat" # Specify your cellphone serial port and speed below # Note: you must manually send some vendor-specific AT commands # to certain old cellular phones (such as Sony-Ericsson T200) # in order to achieve connection speed more than 9600 bits ber second./dev/ttyS1
115200
# The settings below usually don't need to be changed noccp noauth updetach debug lock defaultroute noipdefault usepeerdns
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
EOFeth0
# 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
" # The settings below usually don't need to be changed noauth hide-password updetach debug defaultroute noipdefault usepeerdns
In order to establish a PPP connection described by the
/etc/ppp/peers/
file,
run, as root or as a member of the peername
pppusers
group:
pon peername
In order to tear the connection down, run:
poff peername
If your service provider does not charge by the minute, it is usually good to have a bootscript handle the connection for you. You can, of course, choose not to install the following script, and start your connection manually with the pon command, as described above. If you wish your PPPoE connection to be brought up at boot time, run:
make install-service-pppoe
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:
pppd call pppoe ${1} linkname ${1} ${PPP_OPTS}
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:
install -v -d /etc/sysconfig/network-devices/ifconfig.eth0 &&
cat > /etc/sysconfig/network-devices/ifconfig.eth0/pppoe << "EOF"
ONBOOT="yes"
SERVICE="pppoe"
PPP_OPTS="user jdoe
remotename adsl
"
EOF
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.
/usr/lib/pppd/2.4.4
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. |
|
is the script that establishes a PPP connection |
|
is the script that tears a PPP connection down. |
|
is a script that prints the tail of the PPP log. |
|
is the Point to Point Protocol daemon. |
|
is used to convert PPP record files to a readable format. |
|
is used to print PPP statistics. |
Last updated on 2008-06-09 09:48:57 -0500
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.
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
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/dhcpcd
Install dhcpcd by running the following commands:
make
This package does not come with a test suite.
Now, as the root
user:
make install
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.
Finally,
as the root
user create the
/etc/sysconfig/network-devices/ifconfig.eth0/dhcpcd
configuration file using the following commands. Adjust
appropriately for additional interfaces:
install -v -d /etc/sysconfig/network-devices/ifconfig.eth0 &&
cat > /etc/sysconfig/network-devices/ifconfig.eth0/dhcpcd << "EOF"
ONBOOT="yes"
SERVICE="dhcpcd"
DHCP_START="<insert appropriate start options here>
"
DHCP_STOP="-k <insert additional stop options here>
"
# Set PRINTIP="yes" to have the script print
# the DHCP assigned IP address
PRINTIP="no"
# Set PRINTALL="yes" to print the DHCP assigned values for
# IP, SM, DG, and 1st NS. This requires PRINTIP="yes".
PRINTALL="no"
EOF
For more information on the appropriate DHCP_START
and DHCP_STOP
values, examine the man page for
dhcpcd.
Last updated on 2008-03-18 10:49:58 -0500
The DHCP package comes with both a client (dhclient) and a server program for using DHCP. If you want to install this package, the instructions can be found at DHCP-3.0.6. Note that if you only want to use the client, you do not need to run the server and so do not need the startup script and links provided for the server daemon. You only need to run the DHCP server if you're providing this service to a network, and it's likely that you'll know if that's the case; if it isn't, don't run the server! Once you have installed the package, return here for information on how to configure the client (dhclient).
To
configure dhclient, you need to first
install the network service script, /etc/sysconfig/network-devices/services/dhclient
included in the blfs-bootscripts-20080816 package (as
root
):
make install-service-dhclient
Next,
create the /etc/sysconfig/network-devices/ifconfig.eth0/dhclient
configuration file with the following commands as the
root
user. Adjust as
necessary for additional interfaces:
install -v -d /etc/sysconfig/network-devices/ifconfig.eth0 &&
cat > /etc/sysconfig/network-devices/ifconfig.eth0/dhclient << "EOF"
ONBOOT="yes"
SERVICE="dhclient"
DHCP_START="-q <add additional start parameters here>
"
DHCP_STOP="-q -r <add additional stop parameters here>
"
# Set PRINTIP="yes" to have the script print
# the DHCP assigned IP address
PRINTIP="no"
# Set PRINTALL="yes" to print the DHCP assigned values for
# IP, SM, DG, and 1st NS. This requires PRINTIP="yes".
PRINTALL="no"
EOF
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:
You'll need to add a second interface definition to the file if you have more than one interface.
cat > /etc/dhclient.conf << "EOF"
# dhclient.conf
interface "eth0"{
prepend domain-name-servers 127.0.0.1;
request subnet-mask, broadcast-address, time-offset, routers,
domain-name, domain-name-servers, host-name;
require subnet-mask, domain-name-servers;
}
# end dhclient.conf
EOF
Last updated on 2008-04-11 13:53:54 -0500
These applications are support libraries for other applications in the book. It is unlikely that you would just install these libraries, you will generally find that you will be referred to this chapter to satisfy a dependency of other applications.
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.
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)
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
Stunnel-4.21 (for the HTTPS and FTPS tests)
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/curl
Install cURL by running the following commands:
./configure --prefix=/usr && make
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:
make install && find docs -name "Makefile*" -o -name "*.1" -o -name "*.3" | xargs rm && install -v -d -m755 /usr/share/doc/curl-7.16.3 && cp -v -R docs/* /usr/share/doc/curl-7.16.3
--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.
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. |
|
prints information about the last compile, like libraries linked to and prefix setting. |
|
provides the API functions required by curl and other programs. |
Last updated on 2007-08-16 17:34:29 -0500
The GNet package contains a simple network library. This is useful for supporting TCP sockets, UDP and IP multicast, asynchronous DNS lookup, and more.
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
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/gnet
Install GNet 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
Last updated on 2007-04-04 14:42:53 -0500
The libsoup package contains an HTTP library implementation in C. This is useful for accessing HTTP servers in a completely asynchronous mode.
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
GLib-2.12.12 and libxml2-2.6.31
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
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/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
--enable-gtk-doc
: Use this
parameter if GTK-Doc is
installed and you wish to rebuild the API documentation.
Last updated on 2007-08-16 17:34:29 -0500
libpcap provides functions for user-level packet capture, used in low-level network monitoring.
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
Software distribution for the DAG and Septel range of passive network monitoring cards.
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/libpcap
Install libpcap 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/libpcap-0.9.6 && install -v -m644 doc/* /usr/share/doc/libpcap-0.9.6
Last updated on 2008-08-24 12:50:26 -0500
People who are new to Unix-based systems tend to ask the question "Why on earth would I want a text-mode browser? I'm going to compile X and use Konqueror/Mozilla/Whatever!". Those who have been around systems for a while know that when (not if) you manage to mess up your graphical browser install and you need to look up some information on the web, a console based browser will save you. Also, there are quite a few people who prefer to use one of these browsers as their principle method of browsing; either to avoid the clutter and bandwidth which accompanies images or because they may use a text-to-speech synthesizer which can read the page to them (of use for instance to partially sighted or blind users). In this chapter you will find installation instructions for three console web browsers:
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.
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
In text mode, unpatched Links cannot be configured to use UTF-8 or other multibyte encodings for the terminal input/output. This limitation renders Links useless as a text-based browser in multibyte locales. See general discussion of this type of issue in the Needed Encoding Not a Valid Option section on the Locale Related Issues page.
The patch adds the “UTF-8 I/O” configuration option. With this option enabled, Links first renders the page using an 8-bit character set configured by the user, and then converts from this character set to UTF-8. The opposite conversion is applied to user input. This approach works if there is an 8-bit character set that contains all the characters that the user considers to be important. Such character set does not exist, e.g., for Chinese hieroglyphs, or when it is required to display both Cyrillic and Greek characters.
In graphical mode, Links displays text correctly even in UTF-8 locales, if all characters exist in the built-in font used by Links. This font contains Basic Latin, Latin-1 Supplement (without superscripts and vulgar fractions), Latin Extended-A, Latin Extended-B (partially), Greek, Cyrillic and Hebrew characters. Form submission in non-ISO-8859-1 locales is handled correctly when running in X11-based graphical mode. Input handlers for other graphics drivers (fb, directfb, svgalib) either misinterpret non-ASCII characters, or don't allow them at all.
The patch has no effect on Links behavior in graphical mode.
GPM-1.20.1 (if mouse support is desired) and OpenSSL-0.9.8g
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
For decoding various image formats Links can utilize libpng-1.2.29, libjpeg-6b, and LibTIFF-3.8.2
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/LinksBrowser
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
./gen-intl && ./synclang: These commands regenerate the language table.
--enable-graphics
: This switch
enables support for graphics mode.
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.
Last updated on 2008-05-09 08:00:42 -0500
Lynx is a text based web browser.
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
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)
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/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
--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.
--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.
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.
Last updated on 2008-04-09 10:40:36 -0500
w3m is primarily a pager but it can also be used as a text-mode WWW browser.
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
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
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/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
Last updated on 2007-12-17 10:49:08 -0600
These applications are generally client applications used to access the appropriate server across the building or across the world. Tcpwrappers and portmap are support programs for daemons that you may have running on your machine.
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.
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)
Recommended patch: http://www.linuxfromscratch.org/patches/blfs/6.3/cvs-1.11.22-zlib-1.patch
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=
parameter to the configure script.
<desired text
editor>
Pine-4.64 (for Pico)
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/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:
patch -Np1 -i ../cvs-1.11.22-zlib-1.patch
Install CVS by running the following commands:
./configure --prefix=/usr && make
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:
make -C doc html txt dvi ps
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
Now, as the root
user:
make install && install -v -m755 -d /usr/share/doc/cvs-1.11.22 && install -v -m644 FAQ README /usr/share/doc/cvs-1.11.22 && install -v -m644 doc/*.pdf /usr/share/doc/cvs-1.11.22
If you created any additional documentation, install it by
issuing the following commands as the root
user:
install -v -m644 doc/*.{ps,dvi,txt} /usr/share/doc/cvs-1.11.22 && install -v -m755 -d /usr/share/doc/cvs-1.11.22/html/cvs{,client} && install -v -m644 doc/cvs.html/* \ /usr/share/doc/cvs-1.11.22/html/cvs && install -v -m644 doc/cvsclient.html/* \ /usr/share/doc/cvs-1.11.22/html/cvsclient
~/.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.
Last updated on 2007-04-04 14:42:53 -0500
The Inetutils package contains network clients and servers.
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
Linux-PAM-0.99.10.0, TCP Wrapper-7.6, krb4, and Heimdal-1.1 or MIT Kerberos V5-1.6
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/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
--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.
--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.
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.
is a DARPA Internet File Transfer Protocol Server. |
|
is an Internet super-server. Note that the xinetd-2.3.14 package provides a much better server that does the same thing. |
|
is a remote execution server. |
|
is a remote login server. |
|
is a remote shell server. |
|
is a remote user communication server. |
|
is a DARPA TELNET protocol server. |
|
is an Internet Trivial File Transfer Protocol server. |
|
is a server for supporting UUCP connections over networks. |
|
is a client for the whois directory service. Note that the Whois-4.7.26 package provides a much better client. |
Last updated on 2007-06-30 08:30:48 -0500
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.
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
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/ncftp
There are two ways to build NcFTP. The first (and optimal) way
builds most of the functionality as a shared library and then
builds and installs the program linked against this library.
The second method simply links all of the functionality into
the binary statically. This doesn't make the dynamic library
available for linking by other applications. You need to
choose which method best suits you. Note that the second
method does not create
an entirely statically linked binary; only the libncftp
parts are statically linked in, in
this case. Be aware that building and using the shared
library is covered by the Clarified Artistic License;
however, developing applications that utilize the shared
library is subject to a different license.
To install NcFTP using the first (and optimal) method, run the following commands:
./configure --prefix=/usr && make -C libncftp shared && make
This package does not come with a test suite.
Now, as the root
user:
make -C libncftp soinstall && make install
To install NcFTP using the
second method (with the libncftp
functionality linked in
statically) run the following commands:
./configure --prefix=/usr && make
This package does not come with a test suite.
Now, as the root
user:
make install
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.
Most NcFTP configuration
is done while in the program, and the configuration files
are dealt with automatically. One exception to this is
~/.ncftp/prefs_v3
. There are
various options to alter in there, including:
yes-i-know-about-NcFTPd=yes
This disables the splash screen advertising the NcFTPd server.
There are other options in the prefs_v3
file. Most of these are
self-explanatory. Global defaults can be set in
/etc/ncftp.prefs_v3
.
is a browser program for File Transfer Protocol. |
|
is an individual batch FTP job processor. |
|
is the NcFTP Bookmark Editor (NCurses-based). |
|
is an internet file transfer program for scripts used to retrieve files. |
|
is an internet file transfer program for scripts used to list files. |
|
is an internet file transfer program for scripts used to transfer files. |
|
is a global batch FTP job processor daemon. |
Last updated on 2007-08-02 16:49:44 -0500
The Net-tools package is a collection of programs for controlling the network subsystem of the Linux kernel.
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
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/net-tools
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
This package does not come with a test suite.
Now, as the root
user:
make update
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.
is used to manipulate the kernel's ARP cache, usually to add or delete an entry, or to dump the entire cache. |
|
reports the system's DNS domain name. |
|
reports or sets the system's NIS/YP domain name. |
|
reports or sets the name of the current host system. |
|
is the main utility for configuring network interfaces. |
|
adds, deletes and shows an interface's multicast addresses. |
|
adds, changes, deletes and shows an interface's tunnels. |
|
checks or sets the status of a network interface's Media Independent Interface (MII) unit. |
|
names network interfaces based on MAC addresses. |
|
is used to report network connections, routing tables, and interface statistics. |
|
does the same as domainname. |
|
is used to fine tune the PLIP device parameters, to improve its performance. |
|
is used to manipulate the kernel's RARP table. |
|
is used to manipulate the IP routing table. |
|
attaches a network interface to a serial line. This allows you to use normal terminal lines for point-to-point links to other computers. |
|
does the same as domainname. |
Last updated on 2008-08-10 16:51:25 -0500
The NFS Utilities package provides NFS server functionality as well as client software such as mount.nfs or umount.nfs. If you want to install it, the instructions can be found in Chapter 19 – NFS Utilities-1.1.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!).
Last updated on 2008-03-20 09:38:21 -0500
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.
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
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/ntp
Install NTP by running the following commands:
./configure --prefix=/usr --sysconfdir=/etc \ --with-binsubdir=sbin && make
To test the results, issue: make check.
Now, as the root
user:
make install && install -v -m755 -d /usr/share/doc/ntp-4.2.4p0 && cp -v -R html/* /usr/share/doc/ntp-4.2.4p0/
--with-binsubdir=sbin
: This
parameter places the administrative programs in /usr/sbin
.
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.
cat > /etc/ntp.conf << "EOF"
# Africa
server tock.nml.csir.co.za
# 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
There are two options. Option one is to run ntpd continuously and allow it to synchronize the time in a gradual manner. The other option is to run ntpd periodically (using cron) and update the time each time ntpd is scheduled.
If you choose Option one, then install the /etc/rc.d/init.d/ntp
init script included
in the blfs-bootscripts-20080816 package.
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:
ln -v -sf ../init.d/setclock /etc/rc.d/rc0.d/K46setclock && ln -v -sf ../init.d/setclock /etc/rc.d/rc6.d/K46setclock
The other way around is already set up by LFS.
generates cryptographic data files used by the NTPv4 authentication and identification schemes. |
|
is useful at boot time, to delay the boot sequence until ntpd has set the time. |
|
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. |
|
is a client program that sets the date and time based on the response from an NTP server. This command is deprecated. |
|
is used to query the NTP daemon about its current state and to request changes in that state. |
|
is an utility program used to monitor ntpd operations and determine performance. |
|
reads and displays time-related kernel variables. |
|
traces a chain of NTP servers back to the primary source. |
|
is a Simple Network Time Protocol (SNTP) client. |
|
reads, and optionally modifies, several timekeeping-related variables in older kernels that do not have support for precision timekeeping. |
Last updated on 2008-03-12 16:56:11 -0500
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!).
Last updated on 2007-04-04 14:42:53 -0500
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.
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
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/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
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.
Install the /etc/rc.d/init.d/portmap
init script
included in the blfs-bootscripts-20080816 package.
make install-portmap
Last updated on 2008-03-08 04:05:42 -0600
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!).
Last updated on 2007-04-04 14:42:53 -0500
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.
Last updated on 2007-04-04 14:42:53 -0500
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.
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)
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.
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)
SWIG**, Python-2.5.2, and Ruby-1.8.6-p111
** The configure script will issue warnings if the installed version of SWIG is greater than 1.3.29, but will attempt to use it anyway if you build the SWIG bindings. Versions of SWIG up to 1.3.31 are known to work.
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/subversion
Install Subversion by running the following commands:
sed -i 's/@SVN_APR_INCLUDES@/& @CPPFLAGS@/' \ subversion/bindings/swig/perl/native/Makefile.PL.in ./configure --prefix=/usr && make
If you have Doxygen-1.5.2 installed and you wish to build the API documentation, issue: doxygen doc/doxygen.conf.
If you passed the --enable-javahl
parameter to configure and wish to build
the Java bindings, issue the following command:
make javahl
If you have the necessary dependencies installed and you wish to build the Perl, Python and/or Ruby bindings, issue any or all of the following commands:
make swig-pl && make swig-py && make swig-rb
To test the results, issue: make check.
To test the results of the Java bindings build, issue make check-javahl. Note you must have the JUnit testing framework installed.
To test the results of any or all of the SWIG bindings, you can use the following commands:
make check-swig-pl && make check-swig-py && make check-swig-rb
Now, as the root
user:
make install && install -v -m755 -d /usr/share/doc/subversion-1.4.4 && cp -v -R doc/* /usr/share/doc/subversion-1.4.4
If you built the Java bindings, issue the following command
as the root
user to install
them:
make install-javahl
If you built any of the SWIG
bindings, issue any or all of the following commands as the
root
user to install them:
make install-swig-pl && make install-swig-py && echo /usr/lib/svn-python \ > /usr/lib/python2.5/site-packages/subversion.pth && make install-swig-rb
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=
: This
option should be used if you wish to use a system-installed
version of neon.
<prefix>
--with-apr=
: These
options should be used if you wish to use the
system-installed version of the APR. Ensure you identify the correct
installation prefix.
<prefix>
--with-apr-util=<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
.
/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
.
is a command-line client program used to access Subversion repositories. |
|
is a tool for creating, tweaking or repairing a Subversion repository. |
|
is a program for filtering Subversion repository dumpfile format streams. |
|
is a tool for inspecting a Subversion repository. |
|
is a custom standalone server program, able to run as a daemon process or invoked by SSH. |
|
is used to report the version number and state of a working Subversion repository copy. |
|
is a script which provides information about an installed copy of the neon library. |
|
are the support libraries used by the Subversion programs. |
|
is used as a high-level interface to common HTTP and WebDAV methods. |
|
is a plug-in module for the Apache HTTP server, used to authenticate users to a Subversion repository over the Internet or an intranet. |
|
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. |
Last updated on 2008-03-17 13:11:35 -0500
The TCP Wrapper package provides daemon wrapper programs that report the name of the client requesting network services and the requested service.
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
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
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/tcpwrappers
Install TCP Wrapper with the following commands:
patch -Np1 -i ../tcp_wrappers-7.6-shared_lib_plus_plus-1.patch && sed -i -e "s,^extern char \*malloc();,/* & */," scaffold.c && make REAL_DAEMON_DIR=/usr/sbin STYLE=-DPROCESS_OPTIONS linux
This package does not come with a test suite.
Now, as the root
user:
make install
sed -i -e ... scaffold.c: This command removes an obsolete C declaration which causes the build to fail if using GCC >= 3.4.x.
/etc/hosts.allow
and
/etc/hosts.deny
File protections: the wrapper, all files used by the wrapper, and all directories in the path leading to those files, should be accessible but not writable for unprivileged users (mode 755 or mode 555). Do not install the wrapper set-uid.
As the root
user, perform
the following edits on the /etc/inetd.conf
configuration file:
finger stream tcp nowait nobody /usr/sbin/in.fingerd in.fingerd
becomes:
finger stream tcp nowait nobody /usr/sbin/tcpd in.fingerd
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.
is the main access control daemon for all Internet services, which inetd or xinetd will run instead of running the requested service daemon. |
|
is a tool to examine a tcpd wrapper configuration and report problems with it. |
|
is used to predict how the TCP wrapper would handle a specific request for a service. |
|
can be called via a remote shell command to find out if the host name and address are properly recognized. |
|
is a wrapper for the finger utility, to provide automatic reverse name lookups. |
|
contains the API functions required by the TCP Wrapper programs as well as other programs to become “TCP Wrapper-aware”. |
Last updated on 2007-04-04 14:42:53 -0500
The Wget package contains a utility useful for non-interactive downloading of files from the Web.
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
OpenSSL-0.9.8g and Dante
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/wget
Install Wget 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
--sysconfdir=/etc
:
This relocates the configuration file from /usr/etc
to /etc
.
Last updated on 2007-04-04 14:42:53 -0500
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.
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
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/WirelessTools
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
.
To install Wireless Tools, use the following commands:
make
This package does not come with a test suite.
Now, as the root
user:
make PREFIX=/usr install
renames network interfaces based on various static criteria. |
|
configures a wireless network interface. |
|
displays wireless events generated by drivers and setting changes. |
|
reports ESSID, NWID or AP/Cell Address of wireless networks. |
|
gets detailed wireless information from a wireless interface. |
|
configures optional (private) parameters of a wireless network interface. |
|
gets wireless statistics from specific node. |
|
contains functions required by the wireless programs and provides an API for other programs. |
Last updated on 2007-04-04 14:42:53 -0500
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/othernetprogs
NCPFS contains client and administration tools for use with Novell networks. See the User Notes for details.
Last updated on 2007-04-04 14:42:53 -0500
This chapter contains some tools that come in handy when the network needs investigating.
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/basicnetworkingutilities
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.
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
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/traceroute
Install Traceroute by running the following commands:
sed -i -e 's/-o bin/-o root/' Makefile.in && ./configure --prefix=/usr && make
Now, as the root
user:
make install && make install-man
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:
chmod -v 0755 /usr/sbin/traceroute
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
This ensures that the binary is in the path for non-root users.
Last updated on 2007-04-04 14:42:53 -0500
Nmap is a utility for network exploration and security auditing. It supports ping scanning, port scanning and TCP/IP fingerprinting.
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
OpenSSL-0.9.8g, PCRE-7.6, libpcap-0.9.6, GTK+-2.10.13 (for building the graphical front-end), and libdnet
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/nmap
Install Nmap 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
Last updated on 2008-05-10 18:53:20 -0500
Whois is a client-side application which queries the whois directory service for information pertaining to a particular domain name.
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
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/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:
make prefix=/usr install
Last updated on 2008-08-11 09:47:45 -0500
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.
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
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/bind-utils
Install BIND Utilities by running the following commands:
./configure --prefix=/usr && make -C lib/dns && make -C lib/isc && make -C lib/bind9 && make -C lib/isccfg && make -C lib/lwres && make -C bin/dig
This portion of the package does not come with a test suite.
Now, as the root
user:
make -C bin/dig install
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.
See the program descriptions in the BIND-9.4.1-P1 section.
Last updated on 2008-05-09 08:00:42 -0500
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.
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 Documentation: http://www.wireshark.org/docs/
From this page you can download many different docs in a variety of formats.
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.
libpcap-0.9.6 (required to capture data)
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
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/wireshark
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.
Install Wireshark by running the following commands:
./configure --prefix=/usr \ --sysconfdir=/etc \ --enable-threads && make
This package does not come with a test suite.
Now, as the root
user:
make install && install -v -m755 -d /usr/share/doc/wireshark-0.99.6 && install -v -m644 FAQ README{,.linux} doc/README.* doc/*.{pod,txt} \ /usr/share/doc/wireshark-0.99.6 && pushd /usr/share/doc/wireshark-0.99.6 && for FILENAME in ../../wireshark/*.html; do \ ln -s -v $FILENAME . done && popd && install -v -m644 -D wireshark.desktop \ /usr/share/applications/wireshark.desktop && install -v -m644 -D image/wsicon48.png \ /usr/share/pixmaps/wireshark.png && install -v -m755 -d /usr/share/pixmaps/wireshark && install -v -m644 image/*.{png,ico,xpm,bmp} \ /usr/share/pixmaps/wireshark
If you downloaded any of the documentation files from the
page listed in the 'Additional Downloads', install them by
issuing the following commands as the root
user:
install -v -m644 <Downloaded_Files>
/usr/share/doc/wireshark-0.99.6
--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.
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.
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.
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. |
|
is a display-filter-compiler test program. |
|
is a network traffic dump tool. It lets you capture packet data from a live network and write the packets to a file. |
|
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. |
|
takes a user specified CORBA IDL file and generates “C” source code that can be used to create an Wireshark plugin. |
|
combines multiple saved capture files into a single output file. |
|
creates random-packet capture files. |
|
reads in an ASCII hex dump and writes the data described into a libpcap-style capture file. |
|
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. |
|
is a GUI network protocol analyzer. It lets you interactively browse packet data from a live network or from a previously saved capture file. |
|
contains functions used by the Wireshark programs to perform filtering and packet capturing. |
|
is a library being developed as a future
replacement for |
Last updated on 2008-05-10 18:53:20 -0500
Mail Clients help you retrieve (Fetchmail), sort (Procmail), read and compose responses (Heirloom mailx, Mutt, Pine, Kmail, Balsa, Evolution, SeaMonkey) to email.
News clients also help you retrieve, sort, read and compose responses, but these messages travel through USENET (a worldwide bulletin board system) using the Network News Transfer Protocol (NNTP).
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.
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
OpenSSL-0.9.8g or NSS-3.11.7, Heimdal-1.1 or MIT Kerberos V5-1.6 (for IMAP GSSAPI authentication), and an MTA
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/mailx
Install Heirloom mailx by running the following commands.
make SENDMAIL=/usr/sbin/sendmail
This package does not come with a test suite.
Now, as the root
user:
make PREFIX=/usr UCBINSTALL=/usr/bin/install install && ln -v -sf mailx /usr/bin/mail && ln -v -sf mailx /usr/bin/nail && install -v -m755 -d /usr/share/doc/mailx-12.2 && install -v -m644 README mailx.1.html /usr/share/doc/mailx-12.2
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
.
Last updated on 2007-04-04 14:42:53 -0500
The Procmail package contains an autonomous mail processor. This is useful for filtering and sorting incoming mail.
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
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/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
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.
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.
is a filter that can be used to format mail into mailbox format. |
|
is a utility that can lock a file for single use interactively or in a script. |
|
prints a summary report of mail that has been filtered by procmail since the last time mailstat was ran. |
|
is an autonomous mail processor. It performs all the functions of an MDA (Mail Delivery Agent). |
Last updated on 2007-12-27 19:14:39 -0600
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.
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
OpenSSL-0.9.8g and a local MDA (Procmail-3.22)
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/fetchmail
Install Fetchmail by running the following commands:
patch -Np1 -i ../fetchmail-6.3.8-security_fixes-1.patch && ./configure --prefix=/usr --with-ssl --enable-fallback=procmail && make
This package does not come with a test suite.
Now, as the root
user:
make install
--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.
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
chmod -v 0600 ~/.fetchmailrc
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.
Last updated on 2008-07-12 16:51:48 -0500
The Mutt package contains a Mail User Agent. This is useful for reading, writing, replying to, saving, and deleting your email.
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
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
libxslt-1.1.22 and either Lynx-2.8.6rel.5, w3m or ELinks
JadeTeX-3.13 and DocBook DSSSL Stylesheets-1.79
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/mutt
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.
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
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:
chgrp -v mail /var/mail
Install Mutt by running the following commands:
./configure --prefix=/usr --sysconfdir=/etc \ --with-docdir=/usr/share/doc/mutt-1.5.17 \ --enable-pop --enable-imap \ --enable-hcache --without-qdbm \ --without-gdbm --with-bdb && make
If you have the necessary dependencies installed and would like to rebuild the HTML documentation, issue the following commands:
make -C doc clean && make -C doc
To generate the PDF manual with JadeTeX-3.13, run the following command:
make -C doc manual.pdf
This package does not come with a test suite.
Now, as the root
user:
make install
If you generated the PDF manual, install it and the source
TeX file by issuing the following command as the root
user:
install -v -m644 doc/manual.{pdf,tex} \ /usr/share/doc/mutt-1.5.17
--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.
--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.
is a bug submitter for Mutt. |
|
is a Mail User Agent (MUA) which enables you to read, write and delete your email. |
|
implements the mail spool file lock. |
|
is a script that executes flea. |
|
prepares a command line for the GnuPG-1.4.7 utilities. |
|
is a key ring dumper for PGP. It is not needed for GnuPG-1.4.7. |
|
manages a keystore for S/MIME certificates. |
Last updated on 2008-05-09 08:00:42 -0500
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.
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
Recommended Patch: http://www.linuxfromscratch.org/patches/blfs/6.3/pine-4.64-utf8-1.patch
OpenLDAP-2.3.39 and MIT Kerberos V5-1.6
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/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
patch -Np1 -i ../pine-4.64-utf8-1.patch: This patch enables Pine UTF-8 and charset conversion.
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.
is the IMAP server daemon. |
|
is an IMAP to POP2 conversion server. |
|
is an IMAP to POP3 conversion server. |
|
is a minimal IMAP mail user agent, used for debugging. |
|
is a stand-alone editor, similar to the Pine internal message composer. |
|
is a file and directory navigator and browser. |
|
is the Pine mail user agent. |
|
is used to copy data from remote Pine configuration files or address books into a local file. |
|
is the Pine remote data utility, used to convert local Pine configuration files or address books into remote configurations or address books. |
Last updated on 2007-04-04 14:42:53 -0500
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.
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
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
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/Tin
Install TIN by running the following commands:
./configure --prefix=/usr --with-screen=ncursesw \ --enable-nntp-only --disable-printing && make build
This package does not come with a test suite.
Now, as the root
user:
make install && make install_sysdefs && rm -vf doc/*.? && install -v -m755 -d /usr/share/doc/tin-1.8.3 && install -v -m644 doc/* /usr/share/doc/tin-1.8.3
--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.
--with-editor
: This
switch sets the default editor used by TIN. The default is vi.
/etc/tin/tinrc
, ~/.tin/tinrc
, ~/.newsrc
, /etc/tin/tin.defaults
, /etc/tin/mime.types
, /etc/tin/keymap
and /etc/mailcap
Set some global defaults for TIN by running the following commands
as the root
user:
cat > /etc/tin/tinrc << "EOF" use_mouse=ON getart_limit=100 translit=ON EOF
Now, as an unprivileged user, subscribe to some newsgroups, specify the news server, and run tin:
cat >> ~/.newsrc << "EOF" gmane.linux.lfs.devel: gmane.linux.lfs.beyond.devel: EOF export NNTPSERVER=news.gmane.org tin -Q
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.
Last updated on 2008-03-11 11:31:08 -0500
Pan-0.14.2 is a GTK2 based newsreader program.
knode is a Qt based newsreader program from kdepim-3.5.9.
kmail is a Qt based mail client from kdepim-3.5.9.
Balsa-2.3.22 is a GTK2 based mail client.
SeaMonkey-1.1.9 includes both a mail client and newsreader in its installation.
Thunderbird-2.0.0.12 is a mail/news client based on the Mozilla code base.
Evolution-2.10.3 includes a GTK2 based mail client.
Last updated on 2007-04-04 14:42:53 -0500
Major servers are the programs that provide content or services to users or other programs.
The Apache package contains an open-source HTTP server. It is useful for creating local intranet web sites or running huge web serving operations.
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
OpenSSL-0.9.8g, OpenLDAP-2.3.39, PCRE-7.6, APR, APR-util, and distcache
pkg-config-0.22, expat-2.0.1, GDBM-1.8.3, PostgreSQL-8.2.4, and SQLite
Though you can install APR and APR-util as separate components, it is recommended to use the bundled versions that come with the Apache HTTPD tarball.
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/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
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
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.
Build and install Apache by running the following commands:
./configure --enable-layout=FHS --enable-mods-shared=all && make
This package does not come with a test suite.
Now, as the root
user:
make install && chown -v root:root /usr/lib/apache/httpd.exp \ /usr/sbin/{apxs,apachectl,dbmmanage,envvars{,-std}} \ /usr/share/man/man1/{dbmmanage,ht{dbm,digest,passwd}}.1 \ /usr/share/man/man8/{ab,apachectl,apxs,htcacheclean,httpd}.8 \ /usr/share/man/man8/{logresolve,rotatelogs,suexec}.8 && chown -v -R apache:apache /srv/www
--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.
The main configuration file is named /etc/apache/httpd.conf
. Modify it so that
the HTTP server runs as the dedicated user and group:
sed -i -e "s/User daemon/User apache/" \ -e "s/Group daemon/Group apache/" \ /etc/apache/httpd.conf
See http://httpd.apache.org/docs-2.2/configuring.html for detailed instructions on customizing your Apache HTTP server configuration file.
There's a problem with the ISAPI DSO module caused from compiling with GCC-4.1.2. If you included the parameter to build the module, comment out the module's load command in the configuration file with the following command:
sed -i "s/^LoadModule isapi_module/# &/" \ /etc/apache/httpd.conf
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
is a tool for benchmarking your Apache HTTP server. |
|
is a front end to the Apache HTTP server which is designed to help the administrator control the functioning of the Apache httpd daemon. |
|
is a tool for building and installing extension modules for the Apache HTTP server. |
|
is used to create and update the DBM format files used to store usernames and passwords for basic authentication of HTTP users. |
|
is used to create and update the flat-files used to store usernames, realms and passwords for digest authentication of HTTP users. |
|
is used to create and update the flat-files used to store usernames and passwords for basic authentication of HTTP users. |
|
is the Apache HTTP server program. |
|
is a script which installs Apache DSO modules. |
|
is a post-processing program to resolve IP-addresses in Apache's access log files. |
|
is a simple program for use in conjunction with Apache's piped log file feature. |
Last updated on 2008-03-22 21:40:43 -0500
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.
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)
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
Net-DNS-0.57 and Net-tools-1.60 (you may omit net-tools by using the optional patch to utilize iproute2)
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/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 "s@198.32.64.12@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
Now run the test suite as an unprivileged user:
make check 2>&1 | tee check.log
Again as root
, clean up the
test interfaces:
bin/tests/system/ifconfig.sh down
Issue the following command to check that all 148 tests ran successfully:
grep "R:PASS" check.log | wc -l
Finally, install the package as the root
user:
make install && chmod 755 /usr/lib/lib{bind9,isc{,cc,cfg},lwres,dns}.so.*.?.? && 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
--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 "s@198.32.64.12@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.
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.
Create the unprivileged user and group named
:
groupadd -g 20 named && useradd -c "BIND Owner" -g named -s /bin/false -u 20 named && install -d -m770 -o named -g named /srv/named
Set up some files, directories and devices needed by BIND:
cd /srv/named && mkdir -p dev etc/namedb/slave var/run && mknod /srv/named/dev/null c 1 3 && mknod /srv/named/dev/random c 1 8 && chmod 666 /srv/named/dev/{null,random} && mkdir /srv/named/etc/namedb/pz && cp /etc/localtime /srv/named/etc
Then, generate a key for use in the named.conf
and rdnc.conf
files using the rndc-confgen command:
rndc-confgen -r /dev/urandom -b 512 | \ grep -m 1 "secret" | cut -d '"' -f 2
Create the named.conf
file
from which named will read the
location of zone files, root name servers and secure DNS
keys:
cat > /srv/named/etc/named.conf << "EOF"
options {
directory "/etc/namedb";
pid-file "/var/run/named.pid";
statistics-file "/var/run/named.stats";
};
controls {
inet 127.0.0.1 allow { localhost; } keys { rndc_key; };
};
key "rndc_key" {
algorithm hmac-md5;
secret "<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";
};
// Bind 9 now logs by default through syslog (except debug).
// These are the default logging rules.
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
Create the rndc.conf
file
with the following commands:
cat > /etc/rndc.conf << "EOF"
key rndc_key {
algorithm "hmac-md5";
secret
"<Insert secret from rndc-confgen's output here>
";
};
options {
default-server localhost;
default-key rndc_key;
};
EOF
The rndc.conf
file contains
information for controlling named operations with the
rndc utility.
Create a zone file with the following contents:
cat > /srv/named/etc/namedb/pz/127.0.0 << "EOF"
$TTL 3D
@ IN SOA ns.local.domain. hostmaster.local.domain. (
1 ; Serial
8H ; Refresh
2H ; Retry
4W ; Expire
1D) ; Minimum TTL
NS ns.local.domain.
1 PTR localhost.
EOF
Create the root.hints
file
with the following commands:
Caution must be used to ensure there are no leading spaces in this file.
cat > /srv/named/etc/namedb/root.hints << "EOF"
. 6D IN NS A.ROOT-SERVERS.NET.
. 6D IN NS B.ROOT-SERVERS.NET.
. 6D IN NS C.ROOT-SERVERS.NET.
. 6D IN NS D.ROOT-SERVERS.NET.
. 6D IN NS E.ROOT-SERVERS.NET.
. 6D IN NS F.ROOT-SERVERS.NET.
. 6D IN NS G.ROOT-SERVERS.NET.
. 6D IN NS H.ROOT-SERVERS.NET.
. 6D IN NS I.ROOT-SERVERS.NET.
. 6D IN NS J.ROOT-SERVERS.NET.
. 6D IN NS K.ROOT-SERVERS.NET.
. 6D IN NS L.ROOT-SERVERS.NET.
. 6D IN NS M.ROOT-SERVERS.NET.
A.ROOT-SERVERS.NET. 6D IN A 198.41.0.4
B.ROOT-SERVERS.NET. 6D IN A 192.228.79.201
C.ROOT-SERVERS.NET. 6D IN A 192.33.4.12
D.ROOT-SERVERS.NET. 6D IN A 128.8.10.90
E.ROOT-SERVERS.NET. 6D IN A 192.203.230.10
F.ROOT-SERVERS.NET. 6D IN A 192.5.5.241
G.ROOT-SERVERS.NET. 6D IN A 192.112.36.4
H.ROOT-SERVERS.NET. 6D IN A 128.63.2.53
I.ROOT-SERVERS.NET. 6D IN A 192.36.148.17
J.ROOT-SERVERS.NET. 6D IN A 192.58.128.30
K.ROOT-SERVERS.NET. 6D IN A 193.0.14.129
L.ROOT-SERVERS.NET. 6D IN A 199.7.83.42
M.ROOT-SERVERS.NET. 6D IN A 202.12.27.33
EOF
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:
Replace <yourdomain.com>
with your own valid domain name.
cp /etc/resolv.conf /etc/resolv.conf.bak &&
cat > /etc/resolv.conf << "EOF"
search <yourdomain.com>
nameserver 127.0.0.1
EOF
Set permissions on the chroot jail with the following command:
chown -R named.named /srv/named
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
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.
interrogates DNS servers. |
|
is a key generator for secure DNS. |
|
generates signed versions of zone files. |
|
is a utility for DNS lookups. |
|
is a caching-only name server for local process use. |
|
is the name server daemon. |
|
checks the syntax of |
|
checks zone file validity. |
|
is a program used to query Internet domain nameservers. |
|
is used to submit DNS update requests. |
|
controls the operation of BIND. |
|
generates |
Last updated on 2008-05-09 07:42:27 -0500
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.
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
portmap-6.0 (Runtime dependency)
pkg-config-0.22, libevent, and libnsfidmap
pkg-config-0.22, MIT Kerberos V5-1.6 or Heimdal-1.1 or libgssapi, and librpcsecgss
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/nfs-utils
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.
Before you compile the program, ensure that the nobody
user and nogroup
group have been created. You can
add them by running the following commands as the
root
user:
groupadd -g 99 nogroup && useradd -c "Unprivileged Nobody" -d /dev/null -g nogroup \ -s /bin/false -u 99 nobody
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.
Install NFS Utilities by running the following commands:
./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.
Now, as the root
user:
make install
--disable-nfsv4
:
Disables support for NFS version 4.
--disable-gss
:
Disables support for RPCSEC GSS (RPC Security).
/etc/exports
contains the
exported directories on NFS servers. Refer to the
exports.5
manual page for the
syntax of this file. Also refer to the "NFS HowTo"
available at http://nfs.sourceforge.net/nfs-howto/
for information on how to configure the servers and clients
in a secure manner. For example, for sharing the
/home
directory over the
local network, the following line may be added:
/home <192.168.0.0/255.255.255.0>
(rw,subtree_check,anonuid=99,anongid=99)
Install the /etc/rc.d/init.d/nfs-server
init script
included in the blfs-bootscripts-20080816
package to start the server at boot.
make install-nfs-server
Now create the /etc/sysconfig/nfs-server
configuration
file:
cat > /etc/sysconfig/nfs-server << "EOF"
PORT="2049"
PROCESSES="8"
QUOTAS="no"
KILLDELAY="10"
EOF
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.
/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
:
<server-name>
:/home /home nfs rw,_netdev,rsize=8192,wsize=8192 0 0<server-name>
:/usr /usr nfs ro,_netdev,rsize=8192 0 0
Install the /etc/rc.d/init.d/nfs-client
init script
included in the blfs-bootscripts-20080816
package to start the client services at boot.
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.
maintains a list of NFS exported file systems. |
|
Used to mount a network share using NFS |
|
Used to mount a network share using NFSv4 |
|
prints NFS statistics. |
|
implements the NFS mount protocol on an NFS server. |
|
implements the user level part of the NFS service on the server. |
|
is used by the NFS file locking service. Run on both sides, client as well as server, when you want file locking enabled. |
|
sets or clears the kernel's NFS client and server debug flags. |
|
displays mount information for an NFS server. |
|
is used to send Network Status Monitor reboot messages. |
|
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. |
|
Used to unmount a network share using NFS |
|
Used to unmount a network share using NFSv4 |
Last updated on 2008-05-09 08:00:42 -0500
The OpenSSH package contains ssh clients and the sshd daemon. This is useful for encrypting authentication and subsequent traffic over a network.
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)
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
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/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
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
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.
~/.ssh/*
, /etc/ssh/ssh_config
, and /etc/ssh/sshd_config
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:
echo "PermitRootLogin no" >> /etc/ssh/sshd_config
If you added LinuxPAM
support, then you will need to add a configuration file for
sshd. Issue the following
commands as the root
user:
sed 's@d/login@d/sshd@g' /etc/pam.d/login > /etc/pam.d/sshd && chmod 644 /etc/pam.d/sshd
Additional configuration information can be found in the man pages for sshd, ssh and ssh-agent.
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
is a file copy program that acts like rcp except it uses an encrypted protocol. |
|
is an FTP-like program that works over SSH1 and SSH2 protocols. |
|
is an SFTP server subsystem. This program is not normally called directly by the user. |
|
is a symlink to ssh. |
|
is an rlogin/rsh-like client program except it uses an encrypted protocol. |
|
is a daemon that listens for ssh login requests. |
|
is a tool which adds keys to the ssh-agent. |
|
is an authentication agent that can store private keys. |
|
is a key generation tool. |
|
is a utility for gathering public host keys from a number of hosts. |
|
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. |
Last updated on 2008-05-09 08:00:42 -0500
The ProFTPD package contains a secure and highly configurable FTP daemon. This is useful for serving large file archives over a network.
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
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/proftpd
For security reasons, you should install ProFTPD using an unprivileged user and
group. As the root
user:
groupadd -g 46 proftpd && useradd -c proftpd -d /srv/ftp -g proftpd \ -s /usr/bin/proftpdshell -u 46 proftpd && install -v -d -m775 -o proftpd -g proftpd /srv/ftp && ln -v -s /bin/false /usr/bin/proftpdshell && echo /usr/bin/proftpdshell >> /etc/shells
Install ProFTPD as an unprivileged user by running the following commands:
./configure --prefix=/usr --sysconfdir=/etc \ --localstatedir=/var/run && make
Now, as the root
user:
make install
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.
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.
--sysconfdir=/etc
:
This prevents the configuration files from going to
/usr/etc
.
--localstatedir=/var/run
: This
uses /var/run
instead of
/usr/var
for lock files.
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.
cat > /etc/proftpd.conf << "EOF"
# This is a basic ProFTPD configuration file
# It establishes a single server and a single anonymous login.
ServerName "ProFTPD Default Installation"
ServerType standalone
DefaultServer on
# Port 21 is the standard FTP port.
Port 21
# Umask 022 is a good standard umask to prevent new dirs and files
# from being group and world writable.
Umask 022
# To prevent DoS attacks, set the maximum number of child processes
# to 30. If you need to allow more than 30 concurrent connections
# at once, simply increase this value. Note that this ONLY works
# in standalone mode, in inetd mode you should use an inetd server
# that allows you to limit maximum number of processes per service
# (such as xinetd)
MaxInstances 30
# Set the user and group that the server normally runs at.
User proftpd
Group proftpd
# Normally, files should be overwritable.
<Directory /*>
AllowOverwrite on
</Directory>
# A basic anonymous configuration, no upload directories.
<Anonymous ~proftpd>
User proftpd
Group proftpd
# Clients should be able to login with "anonymous" as well as "proftpd"
UserAlias anonymous proftpd
# Limit the maximum number of anonymous logins
MaxClients 10
# 'welcome.msg' should be displayed at login, and '.message' displayed
# in each newly chdired directory.
DisplayLogin welcome.msg
DisplayFirstChdir .message
# Limit WRITE everywhere in the anonymous chroot
<Limit WRITE>
DenyAll
</Limit>
</Anonymous>
EOF
Install the /etc/rc.d/init.d/proftpd
init script
included in the blfs-bootscripts-20080816 package.
make install-proftpd
Last updated on 2007-07-06 16:22:19 -0500
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).
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)
popt-1.10.4, Linux-PAM-0.99.10.0, CUPS-1.2.12, OpenLDAP-2.3.39, Gamin-0.1.9, Heimdal-1.1 or MIT Kerberos V5-1.6, Python-2.5.2 (to build Samba API bindings for the Python installation), libacl (requires libattr), and Valgrind (optionally used by the test suite)
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/samba3
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.
Install Samba by running the following commands:
cd source && ./configure \ --prefix=/usr \ --sysconfdir=/etc \ --localstatedir=/var \ --with-piddir=/var/run \ --with-pammodulesdir=/lib/security \ --with-fhs \ --with-smbmount && make
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 && chmod -v 644 /usr/include/lib{smbclient,msrpc}.h && install -v -m755 nsswitch/libnss_win{s,bind}.so /lib && ln -v -sf libnss_winbind.so /lib/libnss_winbind.so.2 && ln -v -sf libnss_wins.so /lib/libnss_wins.so.2 && install -v -m644 ../examples/smb.conf.default /etc/samba && install -v -m755 -d /usr/share/doc/samba-3.0.30 && install -v -m644 ../docs/*.pdf /usr/share/doc/samba-3.0.30 && ln -v -s ../../samba/swat /usr/share/doc/samba-3.0.30
If you passed the --with-python
option to the configure script, issue the
following command as the root
user to install the Python
extensions:
make python_install
--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.so
module 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.
If it is desired for unprivileged users to directly mount
(and unmount) SMB and CIFS shares, the smbmnt, smbumount, mount.cifs and
umount.cifs
commands must be setuid root
. Note that users can only mount
SMB/CIFS shares on a mount point owned by that user
(requires write access also). If desired, change these
programs to setuid root
by
issuing the following command as the root
user:
chmod -v 4755 /usr/bin/smb{mnt,umount} \ /usr/sbin/{,u}mount.cifs
If you use CUPS for print
services, and you wish to print to a printer attached to an
SMB client, you need to create an SMB backend device. To
create the device, issue the following command as the
root
user:
ln -v -sf /usr/bin/smbspool /usr/lib/cups/backend/smb
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.
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).
Choose this variant if you only want to transfer files using smbclient, mount Windows shares and print to Windows printers, and don't want to share your files and printers to Windows machines.
A /etc/samba/smb.conf
file
with the following three parameters is sufficient:
[global]
workgroup = MYGROUP
dos charset = cp850
unix charset = ISO-8859-1
The values in this example specify that the computer
belongs to a Windows workgroup named “MYGROUP
”,
uses the “cp850
”
character set on the wire when talking to MS-DOS and MS
Windows 9x, and that the filenames are stored in the
“ISO-8859-1
”
encoding on the disk. Adjust these values appropriately
for your installation. The “unix charset” value must be the same
as the output of locale
charmap when executed with the
LANG
variable set to your
preferred locale, otherwise the ls command may not
display correct filenames of downloaded files.
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.
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:
Using Samba, 2nd Edition; a popular book published by O'Reilly file:///usr/share/samba/swat/using_samba/toc.html
The Official Samba HOWTO and Reference Guide file:///usr/share/samba/swat/help/Samba-HOWTO-Collection/index.html
Samba-3 by Example file:///usr/share/samba/swat/help/Samba-Guide/index.html
The Samba-3 man Pages file:///usr/share/samba/swat/help/samba.7.html
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:
echo "swat 904/tcp" >> /etc/services && echo "swat_tunnel 905/tcp" >> /etc/services
If inetd is
used, the following command will add the swat_tunnel
entry to /etc/inetd.conf
(as user root
):
echo "swat_tunnel stream tcp nowait.400 root /usr/sbin/swat swat" \ >> /etc/inetd.conf
Issue a killall -HUP
inetd to reread the changed inetd.conf
file.
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]):
cat >> /etc/xinetd.d/swat_tunnel << "EOF"
# Begin /etc/xinetd.d/swat_tunnel
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
Issue a killall -HUP
xinetd to read the new /etc/xinetd.d/swat_tunnel
file.
Next, you must add an entry for the swat service to the
/etc/stunnel/stunnel.conf
file (as user root
):
cat >> /etc/stunnel/stunnel.conf << "EOF"
[swat]
accept = 904
connect = 905
TIMEOUTclose = 1
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://
.
Substitute the hostname listed in the DN field of the CA
certificate used with Stunnel for <CA_DN_field>
:904<CA_DN_field>
.
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:
echo "swat 904/tcp" >> /etc/services
If inetd is
used, the following command issued as the root
user will add a swat entry to
the /etc/inetd.conf
file:
echo "swat stream tcp nowait.400 root /usr/sbin/swat swat" \ >> /etc/inetd.conf
Issue a killall -HUP
inetd to reread the changed inetd.conf
file.
If xinetd
is used, the following command issued as the root
user will create an /etc/xinetd.d/swat
file:
cat >> /etc/xinetd.d/swat << "EOF"
# Begin /etc/xinetd.d/swat
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
Issue a killall -HUP
xinetd to read the new /etc/xinetd.d/swat
file.
SWAT can be launched by pointing your web browser to http://localhost:904.
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:
groupadd -g 99 nogroup && useradd -c "Unprivileged Nobody" -d /dev/null -g nogroup \ -s /bin/false -u 99 nobody
Install the samba
script with
the following command issued as the root
user:
make install-samba
If you also need the winbind
script:
make install-winbind
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
|
|
lists information about machines that respond to SMB name queries on a subnet. |
|
mounts a Linux CIFS filesystem. It is usually
invoked indirectly by the mount command
when using the |
|
is a symlink to smbmount which provides /bin/mount with a way to mount remote Windows (or Samba) fileshares. |
|
is a tool for administration of Samba and remote CIFS servers, similar to the net utility for DOS/Windows. |
|
is the Samba NetBIOS name server. |
|
is used to query NetBIOS names and map them to IP addresses. |
|
is a tool to allow external access to Winbind's NTLM authentication function. |
|
is a tool used to manage the SAM database. |
|
is a utility that reports and changes SIDs in Windows registry files. It currently only supports Windows NT. |
|
is used to execute MS-RPC client side functions. |
|
is used to manipulate Windows NT access control lists. |
|
is a SMB/CIFS access utility, similar to FTP. |
|
is used to control running smbd, nmbd and winbindd daemons. |
|
is used to manipulate Windows NT quotas on SMB file shares. |
|
is the main Samba daemon which provides SMB/CIFS services to clients. |
|
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. |
|
is a helper application used by the smbmount program
to do the actual mounting of SMB shares. It can be
installed setuid |
|
is usually invoked as mount.smbfs by
the mount command
when using the |
|
changes a user's Samba password. |
|
sends a print job to an SMB printer. |
|
reports current Samba connections. |
|
is a shell script used for backing up SMB/CIFS shares directly to Linux tape drives or a file. |
|
is a text-based SMB network browser. |
|
is used by unprivileged users to unmount SMB filesystems, provided that it is setuid root. |
|
is the Samba Web Administration Tool. |
|
is a tool for backing up or validating the
integrity of Samba
|
|
is a tool used to print the contents of a
Samba |
|
is a tool which allows simple database manipulation from the command line. |
|
checks an |
|
is used by normal, non- |
|
queries a running winbindd daemon. |
|
resolves names from Windows NT servers. |
Last updated on 2008-06-07 02:22:19 -0500
The vsftpd package contains a very secure and very small FTP daemon. This is useful for serving files over a network.
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
Linux-PAM-0.99.10.0, OpenSSL-0.9.8g, TCP Wrapper-7.6, and libcap
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/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
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
).
/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
.
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.
cat >> /etc/vsftpd.conf << "EOF"
background=YES
listen=YES
nopriv_user=vsftpd
secure_chroot_dir=/var/ftp/empty
EOF
Install the /etc/rc.d/init.d/vsftpd
init script
included in the blfs-bootscripts-20080816 package.
make install-vsftpd
Last updated on 2007-04-04 14:42:53 -0500
xinetd is the eXtended InterNET services daemon, a secure replacement for inetd.
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
TCP Wrapper-7.6 and Avahi
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/xinetd
Install xinetd by running the following commands:
./configure --prefix=/usr --with-loadavg && make
This package does not come with a test suite.
Now, as the root
user:
make install
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:
cat > /etc/xinetd.conf << "EOF"
# Begin /etc/xinetd
# Configuration file for xinetd
#
defaults
{
instances = 60
log_type = SYSLOG daemon
log_on_success = HOST PID USERID
log_on_failure = HOST USERID
cps = 25 30
}
# All service files are stored in the /etc/xinetd.d directory
#
includedir /etc/xinetd.d
# End /etc/xinetd
EOF
All of the following files have the statement, "disable = yes". To activate any of the services, this statement will need to be changed to "disable = no".
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.
install -v -d -m755 /etc/xinetd.d && cat > /etc/xinetd.d/login << "EOF" &&# Begin /etc/xinetd.d/login service login { disable = yes socket_type = stream protocol = tcp wait = no user = root server = /usr/sbin/in.rlogind log_type = SYSLOG local4 info } # 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 } # 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 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" &&# 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 cat > /etc/xinetd.d/echo << "EOF" &&# Begin /etc/xinetd.d/echo 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 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 } 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 } # 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 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.
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.
Last updated on 2007-07-14 18:27:07 -0500
MTAs are the programs which transport mail from one machine to the other. The traditional MTA is Sendmail, however there are several other choices.
As well as SMTP servers there is a POP server (qpopper) and an IMAP server (Courier-IMAP).
The Exim package contains a Mail Transport Agent written by the University of Cambridge, released under the GNU Public License.
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 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.
Berkeley DB-4.5.20 (built in LFS) or GDBM-1.8.3 or TDB
X Window System, OpenLDAP-2.3.39, OpenSSL-0.9.8g or GnuTLS-1.6.3, Cyrus SASL-2.1.22, MySQL-5.0.41, PostgreSQL-8.2.4, SQLite, TCP Wrapper-7.6, and Linux-PAM-0.99.10.0
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/exim
Before building Exim, as the
root
user you should create
the group and user exim
which
will run the exim daemon:
groupadd -g 31 exim && useradd -d /dev/null -c "Exim Daemon" -g exim -s /bin/false -u 31 exim
Install Exim with the following commands:
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
This package does not come with a test suite.
Now, as the root
user:
make install && install -v -m644 doc/exim.8 /usr/share/man/man8 && install -v -d -m755 /usr/share/doc/exim-4.67 && install -v -m644 doc/* /usr/share/doc/exim-4.67 && ln -sv exim /usr/sbin/sendmail
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.
To utilize some or all of the dependency packages, you'll
need to modify Local/Makefile
to include the appropriate directives and parameters to link
additional libraries before you build Exim. Local/Makefile
is heavily commented with
instructions on how to do this. Listed below is additional
information to help you link these dependency packages or add
additional functionality.
If you wish to build and install the .info
documentation, refer to
http://exim.org/exim-html-4.67/doc/html/spec_html/ch04.html#SECTinsinfdoc.
If you wish to build in Exim's interfaces for calling virus
and spam scanning software directly from access control
lists, uncomment the WITH_CONTENT_SCAN=yes
parameter and review
the information found at
http://exim.org/exim-html-4.67/doc/html/spec_html/ch41.html.
To use a backend database other than Berkeley DB, see the instructions at http://exim.org/exim-html-4.67/doc/html/spec_html/ch04.html#SECTdb.
For SSL functionality, see the instructions at http://exim.org/exim-html-4.67/doc/html/spec_html/ch04.html#SECTinctlsssl and http://exim.org/exim-html-4.67/doc/html/spec_html/ch39.html.
For tcpwrappers functionality, see the instructions at http://exim.org/exim-html-4.67/doc/html/spec_html/ch04.html#SECID27.
For information about adding authentication mechanisms to the build, see chapters 33-37 of http://exim.org/exim-html-4.67/doc/html/spec_html/index.html.
For information about linking Linux-PAM, refer to the instructions http://exim.org/exim-html-4.67/doc/html/spec_html/ch11.html#SECTexpcond.
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.
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
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.
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
parameter in <time
interval>
/etc/rc.d/init.d/exim
, if necessary for
your installation.
cycles Exim log files. |
|
searches Exim log files. |
|
is a symlink to the exim-4.43-2 MTA daemon. |
|
is the Exim mail transport agent daemon. |
|
states whether a given recipient address from a given host is acceptable or not. |
|
creates and rebuilds Exim databases. |
|
writes the contents of Exim databases to the standard output. |
|
modifies data in Exim databases. |
|
locks a mailbox file. |
|
removes old records from Exim databases. |
|
generates mail statistics from Exim log files. |
|
queries remote host retry times. |
|
selects messages based on various criteria. |
|
is a utility for selective queue listing. |
|
produces a summary of the messages in the mail queue. |
|
queries running Exim processes. |
|
is a start-up shell script for eximon.bin used to set the required environment variables before running the program. |
|
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. |
Last updated on 2008-08-24 11:52:33 -0500
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).
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
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
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/postfix
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'
To use PCRE with Postfix, use the following arguments:
CCARGS='-DHAS_PCRE -I/usr/include'
AUXLIBS='-L/usr/lib -lpcre'
To use Cyrus-SASL with Postfix, use the following arguments:
CCARGS='-DUSE_SASL_AUTH -DUSE_CYRUS_SASL -I/usr/include/sasl'
AUXLIBS='-L/usr/lib -lsasl2'
To use Berkely DB with Postfix, use the following arguments:
CCARGS='-DHAS_DB -I/usr/include'
AUXLIBS='-L/usr/lib -ldb'
To use OpenLDAP with Postfix, use the following arguments:
CCARGS='-DHAS_LDAP -I/usr/include'
AUXLIBS='-L/usr/lib -lldap -llber'
To use MySQL with Postfix, use the following arguments:
CCARGS='-DHAS_MYSQL -I/usr/include/mysql'
AUXLIBS='-L/usr/lib -lmysqlclient -lz -lm'
To use PostgreSQL with Postfix, use the following arguments:
CCARGS='-DHAS_PGSQL -I/usr/include/postgresql'
AUXLIBS='-L/usr/lib -lpq -lz -lm'
To use CDB or TinyCDB with Postfix, use the following arguments:
CCARGS='-DHAS_CDB'
AUXLIBS='</path/to/CDB>
/libcdb.a'
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
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.
cat >> /etc/aliases << "EOF"
# Begin /etc/aliases
MAILER-DAEMON: postmaster
postmaster: root
root: LOGIN
# End /etc/aliases
EOF
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.
sed -i "s/LOGIN/<user>
/" /etc/aliases && sed -i "s/#myhostname = host.domain.tld/myhostname = \<localhost.localdomain>
/" /etc/postfix/main.cf && /usr/bin/newaliases
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:
/usr/sbin/postfix check && /usr/sbin/postfix start
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
Provides connection and rate request limiting. |
|
A daemon that maintains per-message log files with non-delivery status information. |
|
A daemon that processes inbound mail, inserts it into the incoming mail queue, and informs the queue manager of its arrival. |
|
Processes delivery requests from the queue manager that cannot be delivered to the recipient. |
|
A daemon that processes non-delivery requests from the queue manager. |
|
A daemon that maintains a record of deferred mail by destination. |
|
A daemon that processes message delivery requests from the queue manager. |
|
A daemon that processes delivery requests from the queue manager to deliver mail to local recipients. |
|
A symlink to |
|
The resident process that runs Postfix daemons on demand. |
|
A symlink to |
|
A daemon that awaits the arrival of incoming mail and arranges for its delivery. |
|
The old style queue manager. This will be removed soon. |
|
A daemon that waits for hints that new mail has been dropped into the maildrop directory, and feeds it into the cleanup daemon. |
|
A daemon that processes requests from the queue manager to deliver messages to external commands. |
|
Creates or queries one or more Postfix alias databases, or updates an existing one. |
|
Prints the contents of the named files in human readable format. |
|
Displays or changes the value of Postfix configuration parameters. |
|
Creates a file in the maildrop directory and copies it's standard input to the file. |
|
Controls the operation of the Postfix mail system. |
|
Sends requests to the specified service over a local transport channel. |
|
Locks a mail folder for exclusive use, and executes commands passed to it. |
|
A Postfix-compatible logging interface for use in, for example, shell scripts. |
|
Creates or queries one or more Postfix lookup tables, or updates an existing one. |
|
The Postfix user interface for queue management. |
|
The Postfix user interface for superuser queue management. |
|
Provides read-only table lookup services to other Postfix processes. |
|
A daemon that awaits the arrival of incoming mail and arranges for its delivery. |
|
A daemon that receives one message per connection, and pipes it through the cleanup daemon, and places it into the incoming queue. |
|
Maintains a connection cache used for sharing a connection multiple times. |
|
The Postfix to Sendmail compatibility interface. |
|
A daemon that reports the Postfix mail queue status. |
|
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. |
|
Accepts network connection requests and performs zero or more SMTP transactions per connection. |
|
Listens on a port as specified in the Postfix |
|
Maintains the TLS session cache and acts as the PRNG manager. |
|
A daemon that rewrites addresses to standard form. |
|
Maintains a record of what recipient addresses are known to be deliverable or undeliverable. |
|
Delivers mail to virtual user's mail directories. |
Last updated on 2008-05-09 08:00:42 -0500
The Qpopper package contains a POP3 mail server.
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
An MTA
OpenSSL-0.9.8g, GDBM-1.8.3, Linux-PAM-0.99.10.0, and MIT Kerberos V5-1.6 or Heimdal-1.1
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/qpopper
Install Qpopper with the following commands:
./configure --prefix=/usr --enable-standalone && make
Now, as the root
user:
make install && install -D -m644 GUIDE.pdf /usr/share/doc/qpopper-4.0.9/GUIDE.pdf
--enable-standalone
: This option
gives the flexibility to run Qpopper in standalone mode.
Update the Syslog configuration file and force the syslogd daemon to reread the new file so that Qpopper events are logged:
echo "local0.notice;local0.debug /var/log/POP.log" >> \ /etc/syslog.conf && killall -HUP syslogd
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
set debug = false
set spool-dir = /var/spool/mail/
set temp-dir = /var/spool/mail/
set downcase-user = true
set trim-domain = true
set statistics = true
# 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.
Last updated on 2007-04-04 14:42:53 -0500
The Sendmail package contains a Mail Transport Agent (MTA).
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
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)
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/sendmail
Before building Sendmail,
create the required user, group and directory with the
following commands issued as the root
user:
groupadd -g 26 smmsp && useradd -c "Sendmail Daemon" -g smmsp -d /dev/null \ -s /bin/false -u 26 smmsp && chmod -v 1777 /var/mail && install -v -m700 -d /var/spool/mqueue
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.
cat >> devtools/Site/site.config.m4 << "EOF"
APPENDDEF(`confENVDEF',`-DSTARTTLS -DTCPWRAPPERS -DSASL -DLDAPMAP')
APPENDDEF(`confLIBS', `-lssl -lcrypto -lwrap -lsasl2 -lldap -llber')
APPENDDEF(`confINCDIRS', `-I/usr/include/sasl')
EOF
Install Sendmail with the following commands:
cat >> devtools/Site/site.config.m4 << "EOF"
define(`confMANGRP',`root')
define(`confMANOWN',`root')
define(`confSBINGRP',`root')
define(`confUBINGRP',`root')
define(`confUBINOWN',`root')
EOF
cd sendmail &&
sh Build &&
cd ../cf/cf &&
cp generic-linux.mc sendmail.mc &&
sh Build sendmail.cf
This package does not come with a test suite.
Now, as the root
user:
install -v -d -m755 /etc/mail && sh Build install-cf && cd ../.. && sh Build install && install -v -m644 cf/cf/{submit,sendmail}.mc /etc/mail && cp -v -R cf/* /etc/mail && install -v -m755 -d /usr/share/doc/sendmail-8.14.1/{cf,sendmail} && install -v -m644 \ CACerts FAQ KNOWNBUGS LICENSE PGPKEYS README RELEASE_NOTES \ /usr/share/doc/sendmail-8.14.1 && install -v -m644 sendmail/{README,SECURITY,TRACEFLAGS,TUNING} \ /usr/share/doc/sendmail-8.14.1/sendmail && install -v -m644 cf/README /usr/share/doc/sendmail-8.14.1/cf && for manpage in sendmail editmap mailstats makemap praliases smrsh do install -v -m444 $manpage/$manpage.8 /usr/share/man/man8 done && install -v -m444 sendmail/aliases.5 /usr/share/man/man5 && install -v -m444 sendmail/mailq.1 /usr/share/man/man1 && install -v -m444 sendmail/newaliases.1 /usr/share/man/man1 && install -v -m444 vacation/vacation.1 /usr/share/man/man1
Install the Sendmail Installation and Operations Guide with the following commands:
cd doc/op && sed -i 's/groff/GROFF_NO_SGR=1 groff/' Makefile && make op.txt op.pdf
Now, as the root
user:
install -v -d -m755 /usr/share/doc/sendmail-8.14.1 && install -v -m644 op.ps op.txt op.pdf /usr/share/doc/sendmail-8.14.1 && cd ../..
Note: remove
op.pdf
from the make and install commands if you
don't have Ghostscript
installed.
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 Makefile
s.
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.
Create the /etc/mail/local-host-names
and
/etc/mail/aliases
files using
the following commands as the root
user:
echo $(hostname) > /etc/mail/local-host-names
cat > /etc/mail/aliases << "EOF"
postmaster: root
MAILER-DAEMON: root
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:
m4 m4/cf.m4 sendmail.mc > sendmail.cf
A full explanation of the files to modify, and the
available parameters can be found in /etc/mail/README
.
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
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.
queries and edits Sendmail map files. |
|
prints Sendmail's persistent host status. |
|
displays Sendmail statistics. |
|
prints a summary of outbound mail messages waiting for delivery. |
|
creates Sendmail map files. |
|
rebuilds |
|
displays current Sendmail aliases. |
|
causes Sendmail to clear (purge) all its host-status information. |
|
is the Sendmail mail transport agent. |
|
is a restricted shell for Sendmail. |
|
is an email auto responder. |
Last updated on 2007-07-10 18:20:04 -0500
This chapter includes databases that range from single-user read/write to industrial database servers with transaction support. Generally, you will be sent here to satisfy dependencies to other applications although building a SQL server on a base LFS system is entirely possible.
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.
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)
Tcl-8.4.18, JDK-6 Update 5, and sharutils (for the uudecode command)
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/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:
patch -Np0 -i ../patch.4.5.20.1 && patch -Np0 -i ../patch.4.5.20.2 && cd build_unix && ../dist/configure --prefix=/usr \ --enable-test \ --enable-tcl \ --with-tcl=/usr/lib && make
To test the results, start tclsh:
tclsh
From the tclsh
prompt (%
), run:
source ../test/test.tcl run_parallel 5 run_std exit
Clean up the source tree with the following command:
make realclean && cd ..
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.
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.
uudecode="no" ../dist/configure --(use the parameters shown below)
Install Berkeley DB by running the following commands:
patch -Np0 -i ../patch.4.5.20.1 && patch -Np0 -i ../patch.4.5.20.2 && cd build_unix && ../dist/configure --prefix=/usr \ --enable-compat185 \ --enable-cxx && make
Now, as the root
user:
make docdir=/usr/share/doc/db-4.5.20 install && chown -v -R root:root \ /usr/bin/berkeley_db_svc \ /usr/bin/db_* \ /usr/include/db{,_185,_cxx}.h \ /usr/lib/libdb{{,_cxx}.a,{,_cxx,_java,_tcl}-4.5.{so,a,la}} \ /usr/share/doc/db-4.5.20
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.
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.
Last updated on 2008-03-24 23:00:38 -0500
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.
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)
OpenSSL-0.9.8g and TCP Wrapper-7.6
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/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
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:
make testdir=/tmp/mysql install && rm -rf /tmp/mysql && cd /usr/lib && ln -v -sf mysql/libmysqlclient{,_r}.so* .
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/.
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.
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:
install -v -m644 /usr/share/mysql/my-medium.cnf /etc/my.cnf
You can now install a database and change the ownership to
the unprivileged user and group (perform as the
root
user):
mysql_install_db --user=mysql && chgrp -v mysql /srv/mysql{,/test,/mysql}
Further configuration requires that the MySQL server is running. Start the
server using the following commands as the root
user:
install -v -m755 -o mysql -g mysql -d /var/run/mysql && mysqld_safe --user=mysql 2>&1 >/dev/null &
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.
mysqladmin -u root password <new-password>
Configuration of the server is now finished. Shut the
server down using the following command as the root
user:
mysqladmin -p shutdown
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
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.
Last updated on 2008-05-10 18:53:20 -0500
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.
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
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
DocBook SGML DTD-4.5, DocBook DSSSL Stylesheets-1.79, OpenJade-1.3.2, and SGMLSpm-1.03ii
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/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
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')
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.
$PGDATA/pg_ident.con
,
$PGDATA/pg_hba.conf
and
$PGDATA/postgresql.conf
The PGDATA
environment variable
is used to distinguish database clusters from one another
by setting it to the value of the directory which contains
the cluster desired. The three configuration files exist in
every PGDATA/
directory.
Details on the format of the files and the options that can
be set in each can be found in file:///usr/share/doc/postgresql/html/index.html.
Install the /etc/rc.d/init.d/postgresql
init script
included in the blfs-bootscripts-20080816 package.
make install-postgresql
is a utility for reclustering tables in a PostgreSQL database. |
|
creates a new PostgreSQL database. |
|
defines a new PostgreSQL procedural language. |
|
defines a new PostgreSQL user account. |
|
removes a PostgreSQL database. |
|
removes a PostgreSQL procedural language. |
|
removes a PostgreSQL user account. |
|
is the embedded SQL preprocessor. |
|
creates a new database cluster. |
|
removes shared memory and semaphores left over by an aborted database server. |
|
retrieves PostgreSQL version information. |
|
returns information initialized during initdb, such as the catalog version and server locale. |
|
controls stopping and starting the database server. |
|
dumps database data and metadata into scripts which are used to recreate the database. |
|
recursively calls pg_dump for each database in a cluster. |
|
clears the write-ahead log and optionally resets
some fields in the |
|
creates databases from dump files created by pg_dump. |
|
is a support script used to delete a module from a PL/Tcl table. The command requires the Pgtcl package to be installed also. |
|
is a support script used to list the modules in a PL/Tcl table. The command requires the Pgtcl package to be installed also. |
|
is a support script used to load a module into a PL/Tcl table. The command requires the Pgtcl package to be installed also. |
|
is a single user database server, generally used for debugging. |
|
is a multi-user database daemon. |
|
is a console based database shell. |
|
is a utility for rebuilding indexes in a database. |
|
compacts databases and generates statistics for the query analyzer. |
Last updated on 2008-05-10 18:53:20 -0500
Here you will find many ways to share your machine with the rest of the world or your local network. Before installing any packages in this chapter, you need to be sure you understand what the package does and how to set it up correctly. It might also be helpful to learn about the consequences of an improper setup so that you can analyze the risks.
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.
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
Net-tools-1.60 (you may omit net-tools by using the optional patch to utilize iproute2.
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/dhcp
You must have Packet Socket support (Device Drivers ⇒ Networking Support ⇒ Networking Options ⇒ Packet Socket) compiled into the kernel.
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
LIBDIR=/usr/lib
INCDIR=/usr/include
: This command installs the
library and include files in /usr
instead of /usr/local
.
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;
subnet <192.168.5.0>
netmask <255.255.255.0>
{
range <192.168.5.10> <192.168.5.240>
;
option broadcast-address <192.168.5.255>
;
option routers <192.168.5.1>
;
}
EOF
All addresses should be changed to meet your circumstance.
is the implementation of the DHCP client. |
|
implements Dynamic Host Configuration Protocol (DHCP) and Internet Bootstrap Protocol (BOOTP) requests for network addresses. |
|
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. |
|
provides an interactive way to connect to, query, and possibly change, the ISC DHCP Server's state via OMAPI, the Object Management API. |
Last updated on 2008-05-09 08:00:42 -0500
Leafnode is an NNTP server designed for small sites to provide a local USENET spool.
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
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/leafnode
As the root
user, create the
group and user news
, if not
present:
groupadd -g 36 news && useradd -c "Leafnode News Server" -d /var/spool/news -g news \ -u 36 news
Install Leafnode by running the following commands:
./configure --prefix=/usr \ --localstatedir=/var --sysconfdir=/etc/leafnode \ --with-lockfile=/var/lock/leafnode/fetchnews.lck && make
To test the results, issue: make check.
Now, as the root
user:
make install
--localstatedir=/var
:
Change the default spool directory of /usr/var
.
--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.
/etc/leafnode/config
,
/etc/nntpserver
, /etc/sysconfig/createfiles
/etc/inetd.conf
or /etc/xinetd.conf
or /etc/xinetd.d/nntp
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 =
entry to reflect your news provider.
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:
cat > /etc/nntpserver << "EOF"
127.0.0.1
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:
/var/lock/leafnode dir 2775 news news
Leafnode may be configured
to use inetd
by adding an entry to the /etc/inetd.conf
file with the following
command:
echo "nntp stream tcp nowait news /usr/sbin/tcpd /usr/sbin/leafnode" \ >> /etc/inetd.conf
Issue a killall -HUP
inetd to reread the changed inetd.conf
file.
If you use xinetd, the following
command will create the Leafnode file as /etc/xinetd.d/nntp
:
cat >> /etc/xinetd.d/nntp << "EOF"
# Begin /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
Issue a killall -HUP
xinetd to reread the changed xinetd.conf
file.
Add entries to the root
or
news
user's crontab to run
the fetchnews
and texpire
commands at the desired time intervals.
filters newsgroup articles according to regular expressions. |
|
inserts newsgroup titles into the newsgroup database. |
|
sends posted articles to and retrieves new articles from an upstream news server. |
|
is an NNTP server daemon. |
|
prints the Leafnode version. |
|
shows articles waiting to be sent upstream. |
|
expires old articles and unread groups. |
Last updated on 2007-04-04 14:42:53 -0500
The OpenLDAP package provides an open source implementation of the Lightweight Directory Access Protocol.
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)
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/.
Berkeley DB-4.5.20 is recommended (built in LFS) or GDBM-1.8.3
Cyrus SASL-2.1.22 and OpenSSL-0.9.8g
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
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/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 && for LINK in lber ldap ldap_r; do chmod -v 0755 /usr/lib/$(readlink /usr/lib/lib${LINK}.so) done && install -v -m755 -d /usr/share/doc/openldap-2.3.39/{drafts,guide,rfc} && install -v -m644 doc/drafts/* /usr/share/doc/openldap-2.3.39/drafts && install -v -m644 doc/rfc/* /usr/share/doc/openldap-2.3.39/rfc && cp -v -R doc/guide/* /usr/share/doc/openldap-2.3.39/guide
--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.
--enable-backends
:
This parameter enables all available backends.
--enable-overlays
:
This parameter enables all available overlays.
--disable-sql
: This
parameter explicity disables the sql backend. Omit this
switch if a SQL server is installed.
--disable-bdb --disable-hdb
--with-ldbm-api=gdbm
: Pass these parameters to the
configure
command if you wish to use GDBM instead of Berkeley DB as the primary backend
database.
chmod -v 0755 ...: This command adds the executable bit to the shared libraries.
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 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/
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
.
By default, LDAPv2 support is disabled in the slapd.conf
file. Once the database is
properly set up and Mozilla is configured to use the
directory, you must add allow
bind_v2
to the slapd.conf
file.
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
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
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.
Start the LDAP server using the init script:
/etc/rc.d/init.d/openldap start
Verify access to the LDAP server with the following command:
ldapsearch -x -b '' -s base '(objectclass=*)' namingContexts
The expected result is:
# extended LDIF
#
# LDAPv3
# base <> with scope base
# filter: (objectclass=*)
# requesting: namingContexts
#
#
dn:
namingContexts: dc=my-domain,dc=com
# search result
search: 2
result: 0 Success
# numResponses: 2
# numEntries: 1
opens a connection to an LDAP server, binds and adds entries. |
|
opens a connection to an LDAP server, binds and performs a compare using specified parameters. |
|
opens a connection to an LDAP server, binds and deletes one or more entries. |
|
opens a connection to an LDAP server, binds and modifies entries. |
|
opens a connection to an LDAP server, binds and modifies the RDN of entries. |
|
is a tool to set the password of an LDAP user. |
|
opens a connection to an LDAP server, binds and performs a search using specified parameters. |
|
opens a connection to an LDAP server, binds and displays whoami information. |
|
is used to add entries specified in LDAP Directory Interchange Format (LDIF) to an LDAP database. |
|
is used to generate an LDAP LDIF output based upon the contents of a slapd database. |
|
is the stand-alone LDAP server. |
|
checks a list of string-represented DNs based on schema syntax. |
|
is used to regenerate slapd indices based upon the current contents of a database. |
|
is an OpenLDAP password utility. |
|
checks the sanity of the |
|
is the stand-alone LDAP replication server. |
|
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. |
|
supports the LDAP programs and provide functionality for other programs interacting with LDAP. |
|
contains the functions required by the LDAP programs to produce the results from LDAP requests. |
Last updated on 2008-05-10 09:35:39 -0500
The rsync package contains the rsync utility. This is useful for synchronizing large file archives over a network.
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
popt-1.10.4, libattr, and libacl
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/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
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
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.
motd file = /home/rsync/welcome.msg
use chroot = yes
[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.
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
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. |
Last updated on 2008-08-11 09:59:17 -0500
This section will describe how to set up, administer and secure a CVS server.
A CVS server will be set up using OpenSSH as the remote access method. Other access methods, including :pserver: and :server: will not be used for write access to the CVS repository. The :pserver: method sends clear text passwords over the network and the :server: method is not supported in all CVS ports. Instructions for anonymous, read only CVS access using :pserver: can be found at the end of this section.
Configuration of the CVS server consists of four steps:
Create a new CVS repository with the following commands:
mkdir /srv/cvsroot && chmod 1777 /srv/cvsroot && export CVSROOT=/srv/cvsroot && cvs init
Import a source module into the repository with the following commands, issued from a user account on the same machine as the CVS repository:
cd<sourcedir>
&& cvs import -m "<repository test>
"<cvstest>
<vendortag>
<releasetag>
Test access to the CVS repository from the same user account with the following command:
cvs co cvstest
Test access to the CVS repository from a remote machine using a user account that has ssh access to the CVS server with the following commands:
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.
export CVS_RSH=/usr/bin/ssh &&
cvs -d:ext:<servername>
:/srv/cvsroot co cvstest
CVS can be set up to allow anonymous read only access using
the :pserver: method by logging on as root
and executing the following
commands:
(grep anonymous /etc/passwd || useradd anonymous -s /bin/false -u 98) && echo anonymous: > /srv/cvsroot/CVSROOT/passwd && echo anonymous > /srv/cvsroot/CVSROOT/readers
If you use inetd, the following
command will add the CVS
entry to /etc/inetd.conf
:
echo "2401 stream tcp nowait root /usr/bin/cvs cvs -f \ --allow-root=/srv/cvsroot pserver" >> /etc/inetd.conf
Issue a killall -HUP
inetd to reread the changed inetd.conf
file.
If you use xinetd, the following
command will create the CVS file as /etc/xinetd.d/cvspserver
:
cat >> /etc/xinetd.d/cvspserver << "EOF"
# Begin /etc/xinetd.d/cvspserver
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
Replace <servername>
with the
IP address or hostname of the CVS server.
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.
Last updated on 2007-04-04 14:42:53 -0500
This section will describe how to set up, administer and secure a Subversion server.
The following instructions will install a Subversion server, which will be set up to use OpenSSH as the secure remote access method, with svnserve available for anonymous access.
Configuration of the Subversion server consists of the following steps:
You'll need to be user root
for the initial portion of configuration. Create the
svn
user and group with the
following commands:
groupadd -g 56 svn && useradd -c "SVN Owner" -d /home/svn -m -g svn -s /bin/false -u 56 svn
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:
groupadd -g 57 svntest && usermod -G svntest -a svn
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:
mv /usr/bin/svn /usr/bin/svn.orig && mv /usr/bin/svnserve /usr/bin/svnserve.orig && cat >> /usr/bin/svn << "EOF"#!/bin/sh umask 002 /usr/bin/svn.orig "$@"
EOF cat >> /usr/bin/svnserve << "EOF"#!/bin/sh umask 002 /usr/bin/svnserve.orig "$@"
EOF chmod 0755 /usr/bin/svn{,serve}
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.
With subversion-1.1.0 and greater, a new type of repository data-store is available, FSFS. There is a tradeoff for speed with the new backend, however, the repository can now be placed on a network mount, and any corruption does not require an admin to recover the repository. For more information and comparison between FSFS and BDB, see http://svnbook.red-bean.com/svnbook-1.1/ch05.html#svn-ch-5-sect-1.2.A.
Create a new Subversion repository with the following commands:
install -v -m 0755 -d /srv && install -v -m 0755 -o svn -g svn -d /srv/svn/repositories && svnadmin create --fs-type fsfs /srv/svn/repositories/svntest
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:
svntest/ # The name of the repository
trunk/ # Contains the existing source tree
BOOK/
bootscripts/
edguide/
patches/
scripts/
branches/ # Needed for additional branches
tags/ # Needed for tagging release points
Once you've created your directory layout as shown above, you are ready to do the initial import:
svn import -m "Initial import." \
</path/to/source/tree>
\
file:///srv/svn/repositories/svntest
Now change owner and group information on the repository,
and add an unprivileged user to the svn
and svntest
groups:
chown -R svn:svntest /srv/svn/repositories/svntest &&
chmod -R g+w /srv/svn/repositories/svntest &&
chmod g+s /srv/svn/repositories/svntest/db &&
usermod -G svn,svntest -a <username>
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.
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:
svnlook tree /srv/svn/repositories/svntest/
You may need to log out and back in again to refresh your
group memberships. 'su
<username>
'
should work as well.
As mentioned previously, these instructions will configure the server to use only ssh for write access to the repository and to provide anonymous access using svnserve. There are several other ways to provide access to the repository. These additional configurations are best explained at http://svnbook.red-bean.com/.
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.
There are a couple of ways to start svnserve. The most common way is to start it as an inetd or xinetd process. Alternately, you can use a bootscript to start the service at startup.
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:
cat >> /etc/inetd.conf << "EOF"
svn stream tcp nowait svn /usr/bin/svnserve svnserve -i
EOF
If you use xinetd, the following
command will create the Subversion server file as /etc/xinetd.d/svn
:
cat >> /etc/xinetd.d/svn << "EOF"
# Begin /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
Last updated on 2008-04-01 15:41:23 -0500
This chapter contains instructions to build and configure a graphical user environment.
Xorg-7.2 introduces a completely autotooled build system which means that the packages build and install using the conventional configure, make and make install commands, but it requires installing more than 100 different packages. Most large commercial distributions have decided to use the Xorg package.
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).
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/Xorg7
Xorg-7.0.0 introduced a completely auto-tooled, modular build system. With the new modular build system, it is no longer possible to download the entire package in a single file. In fact, there may be as many as 293 files that need to be fetched from the download location. To assist with such a large task, installing Wget-1.10.2 is strongly recommended for downloading the needed files. A complete wget file list is provided for each section that includes multiple packages.
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.
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.
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 # download and check packages grep -v '^#' ../${section}-${version}.wget | wget -i- -c \ -B http://xorg.freedesktop.org/releases/individual/${section}/ md5sum -c ../${section}-${version}.md5 # 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.
First, you'll need to create a working directory:
mkdir xc && cd xc
As with previous releases of the X Window System, it may be
desirable to install Xorg
into an alternate prefix. This is no longer common practice
among Linux distributions. The common installation prefix for
Xorg on Linux is
/usr
. There is no standard
alternate prefix, nor is there any exception in the current
revision of the Filesystem Hierarchy Standard for Release 7
of the X Window System. Alan Coopersmith of Sun Microsystems,
has recently stated "At Sun, we were using /usr/X11
and plan to stick with it." Only
the /opt/*
prefix or the
/usr
prefix adhere to the
current FHS guidelines.
Choose your installation prefix, and set the XORG_PREFIX
variable with the following
command:
export XORG_PREFIX="<PREFIX>
"
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:
export XORG_CONFIG="--prefix=$XORG_PREFIX --sysconfdir=/etc \ --mandir=$XORG_PREFIX/share/man --localstatedir=/var"
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} && install -v -m755 -d $XORG_PREFIX/lib/X11 && for link in \ /etc/X11/{app-defaults,fs,twm,xdm,xinit,xkb,xsm} do ln -sv $link $XORG_PREFIX/lib/X11 done
Last updated on 2008-08-10 15:33:05 -0500
The Xorg protocol headers provide the header files required to build the system, and to allow other applications to build against the installed X Window system.
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
Required download list: http://anduin.linuxfromscratch.org/files/BLFS/6.3/xorg/proto-7.2.wget
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/Xorg7ProtocolHeaders
To download the needed files using wget, use the following commands:
mkdir proto && cd proto && grep -v '^#' ../proto-7.2.wget | wget -i- -c \ -B http://xorg.freedesktop.org/releases/individual/proto/ && md5sum -c ../proto-7.2.md5
Install the Xorg protocol headers by running the following commands for each package to be installed.
./configure $XORG_CONFIG
These packages do not provide test suites.
Now as the root
user:
make install
$XORG_PREFIX
/: include/X11,
include/GL, and lib/pkgconfig
Last updated on 2007-07-21 11:50:32 -0500
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.
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
Required download list: http://anduin.linuxfromscratch.org/files/BLFS/6.3/xorg/util-7.2.wget
pkg-config-0.22 and Xorg Protocol Headers
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/Xorg7Utilities
To download the needed files using wget, use the following commands:
mkdir util && cd util && grep -v '^#' ../util-7.2.wget | wget -i- -c \ -B http://xorg.freedesktop.org/releases/individual/util/ && md5sum -c ../util-7.2.md5
Install the Xorg utilities by running the following commands for each package:
./configure $XORG_CONFIG && make
These packages do not provide test suites.
Now as the root
user:
make install
$XORG_PREFIX
/: bin,
lib/X11/config, share/aclocal, and share/man
creates dependencies in makefiles using a C compiler. |
|
removes dangling symbolic links and empty directories. |
|
creates dependencies in makefiles using gcc -M. |
|
is a C preprocessor interface to the make utility. |
|
creates a shadow directory of symbolic links to another directory tree. |
|
creates dependencies in makefiles. |
|
makes a debuggable executable. |
|
merges one library into another. |
|
makes a directory hierarchy. |
|
generates index files for HTML man pages. |
|
generates a relative path that can be used to undo a changedirectory. |
|
creates a Makefile from an Imakefile. |
Last updated on 2007-07-21 11:50:32 -0500
The libXau package contains a library implementing the X11 Authorization Protocol. This is useful for restricting client access to the display.
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
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/libXau
Install libXau by running the following commands:
./configure $XORG_CONFIG && make
To test the results, issue: make check.
Now, as the root
user:
make install
Last updated on 2007-07-09 23:30:55 -0500
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.
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
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/libXdmcp
Install libXdmcp by running the following commands:
./configure $XORG_CONFIG && make
This package does not come with a test suite.
Now, as the root
user:
make install
Last updated on 2007-07-09 23:30:55 -0500
The xcb-proto package provides the XML-XCB protocol descriptions that libxcb uses to generate the majority of its code and API.
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
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/xcb-proto
Install xcb-proto by running the following commands:
./configure $XORG_CONFIG && make
To test the results, issue: make check.
Now, as the root
user:
make install && install -dv -m755 ${XORG_PREFIX}/share/doc/xcb-proto-1.0 && install -v -m644 doc/* ${XORG_PREFIX}/share/doc/xcb-proto-1.0
$XORG_PREFIX
/share/xcb
Last updated on 2008-08-11 10:11:37 -0500
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.
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
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
libXau-1.0.3, libXdmcp-1.0.2, libpthread-stubs-0.1, xcb-proto-1.0, and libxslt-1.1.22
Doxygen-1.5.2 (to generate API documentation) and Check (to run tests)
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/libxcb
Install libxcb by running the following commands:
patch -Np1 -i ../libxcb-1.0-sloppy_lock-1.patch && ./configure $XORG_CONFIG --docdir='${datadir}'/doc/libxcb-1.0 && make
To test the results, issue: make check.
Now, as the root
user:
make install
--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.
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:
xcb_xlib_lock: Assertion `!c->xlib.lock' failed.
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
$XORG_PREFIX
/include/xcb and $XORG_PREFIX
/share/doc/libxcb-1.0
Last updated on 2008-08-11 10:11:37 -0500
The Xorg libraries provide library routines that are used within all X Window applications.
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
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
Ed-0.8, Fontconfig-2.4.2, pkg-config-0.22, Xorg Protocol Headers, and libXdmcp-1.0.2
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/Xorg7Libraries
To download the needed files using wget, use the following commands:
mkdir lib && cd lib && grep -v '^#' ../lib-7.2.wget | wget -i- -c \ -B http://xorg.freedesktop.org/releases/individual/lib/ && md5sum -c ../lib-7.2.md5
Install the libraries by running the following commands for each package:
case $(basename "$PWD") in libX11-1.1.2 ) patch -Np1 -i ../../libX11-1.1.2-badargs-1.patch && sed -i 's/_XGet/XGet/' modules/im/ximcp/imDefLkup.c ;; libXfont-1.2.8 ) patch -Np1 -i ../../libXfont-1.2.8-pcf_parser-1.patch && sed -i 's/(ft_isdigit/(isdigit/' src/FreeType/fttools.c ;; esac && ./configure $XORG_CONFIG && make
These packages do not provide test suites.
Now as the root
user:
make install && ldconfig
--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.
sed -i 's/_XGet/XGet/' modules/im/ximcp/imDefLkup.c: This command fixes a locking bug 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.
If you've chosen to install Xorg into /usr
, then no further configuration is
necessary and you can skip the rest of this section. If
you've opted for an alternate prefix, you should create two
symlinks to satisfy the expected environment of several
packages. Execute the following commands as the root user:
ln -sv $XORG_PREFIX/lib/X11 /usr/lib/X11 && ln -sv $XORG_PREFIX/include/X11 /usr/include/X11
checks the format of an XPM file. |
|
makes string table C source and header(s). |
|
shows an XPM file and/or converts XPM 1 or 2 files to XPM 3. |
|
reports Xft version, compiler, linker, and/or installation directory information. |
|
is the Apple rootless window management extension. |
|
is the X Window System DMX (Distributed Multihead X) extension library. |
|
is the X11 font encoding library. |
|
is the library interface to the X Font Server. |
|
is the X Inter Client Exchange Library. |
|
is the interface library to X10 routines. |
|
is the X Session Management Library. |
|
is the WindowsWM Library based on AppleWM. |
|
is the Xlib Library. |
|
is the X Athena Widgets Library, version 6. |
|
is the X Athena Widgets Library, version 7. |
|
is the X Athena Widgets Library, version 8. |
|
are symbolic links to the current X Athena Widgets Library, version 8. |
|
is the X Composite Library. |
|
is the X Cursor management library. |
|
is the X Damage Library. |
|
is the X Event Interception Extension (XEvIE) Library. |
|
is the Misc X Extension Library. |
|
a library to provide augmented versions of core protocol requests. |
|
is the X-TrueType font cache extension client library. |
|
is the X font library. |
|
is the X FreeType interface library. |
|
is the Xinerama Library. |
|
is the X Input Extension Library. |
|
is the xkbfile Library. |
|
is the xkbui Library. |
|
is the X interface library for miscellaneous utilities not part of the Xlib standard. |
|
is the Mini Xmu Library. |
|
is the X Pixmap Library. |
|
is the XprintAppUtil Library. |
|
is the XprintUtil Library. |
|
is the X Print Client Library. |
|
is the X Resize, Rotate and Reflection extension library. |
|
is the X Render Library. |
|
is the X-Resource extension client library. |
|
is the X11 Screen Saver extension client library. |
|
is the X Trap Library. |
|
is the X Toolkit Library. |
|
is the Xtst Library. |
|
is the X-Video Motion Compensation Library. |
|
is the XvMC Wrapper including the Nonstandard VLD extension. |
|
is the X Window System video extension library. |
|
is the client library for the XFree86-DGA extension. |
|
is the client library for the XFree86-Misc X extension. |
|
is the client library for the XFree86-VidMode X extension. |
Last updated on 2008-06-19 19:28:34 -0500
Xbitmaps provides static graphics needed by Xorg applications to draw screen elements.
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
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/xbitmaps
First, configure the Xbitmaps package by running the following command:
./configure $XORG_CONFIG
This package does not come with a test suite.
Now install as the root
user:
make install
$XORG_PREFIX
/include/X11/bitmaps
Last updated on 2007-05-25 17:09:39 -0500
The Xorg applications provide the expected applications available in previous X Window implementations.
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
Required download list: http://anduin.linuxfromscratch.org/files/BLFS/6.3/xorg/app-7.2.wget
xbitmaps-1.0.1, libpng-1.2.29, and Xorg Libraries
Linux-PAM-0.99.10.0 (only used by XDM)
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/Xorg7Applications
To download the needed files using wget, use the following commands:
mkdir app && cd app && grep -v '^#' ../app-7.2.wget | wget -i- -c \ -B http://xorg.freedesktop.org/releases/individual/app/ && md5sum -c ../app-7.2.md5
Install the applications by running the following commands for each package:
./configure $XORG_CONFIG && make
These packages do not provide test suites.
Now as the root
user:
make install
lists the X application resource database. |
|
is a bitmap converter utility for the X Window System. |
|
converts an X font from Bitmap Distribution Format to Portable Compiled Format. |
|
is a screensaver. |
|
is a bitmap editor utility for the X Window System. |
|
is a bitmap converter utility for the X Window System. |
|
is a test program for the XFree86-DGA extension. |
|
is a dynamic resource editor for X Toolkit applications. |
|
is a script used to generate the FONT properties. |
|
is a script used to generate the various XLFD font properties given an XLFD-style font name. |
|
wraps a bitmap font in a sfnt (TrueType) wrapper. |
|
lists fonts served by X font server. |
|
generates a BDF font from X font server. |
|
is the ICE authority file utility. |
|
animates an icosahedron or other polyhedron. |
|
lists resources in widgets. |
|
creates summaries of font metric files in CID font directories. |
|
creates an index of X font files in a directory. |
|
creates an index of scalable font files for X. |
|
is a round X clock. |
|
is a sample implementation of a Remote Start client. |
|
is a sample implementation of a Remote Start rsh helper. |
|
manages utmp/wtmp entries for non-init clients. |
|
sets the keyboard using the X Keyboard Extension. |
|
is a font dumper for X font server. |
|
uncompiles an rgb color-name database. |
|
is the Session Manager Proxy. |
|
initializes an X session. |
|
is the Tab Window Manager for the X Window System. |
|
is a graphical class browser for Xt. |
|
is an X11 server performance test program. |
|
is an X11 server performance comparison program. |
|
is the X authority file utility. |
|
switches the current Xserver's authentification to SUN-DES-1. |
|
is a mailbox flag for X. |
|
is a scientific calculator for X. |
|
is an X clipboard client. |
|
is an analog/digital clock for X. |
|
is the Device Color Characterization utility for the X Color Management System. |
|
monitors system console messages with X. |
|
creates an X cursor file from a collection of PNG images. |
|
interchanges between cut buffer and selection. |
|
is a demo of DBE creating a double buffered spinning scene. |
|
displays ditroff output. |
|
is the X Display Manager with support for XDMCP and a host chooser. |
|
is a simple program for running xdm from login. |
|
dumps an X window directly to a printer. |
|
is a display information utility for X. |
|
queries configuration information of DRI drivers. |
|
is a simple text editor for X. |
|
prints contents of X events. |
|
is a a follow the mouse X demo. |
|
displays all the characters in an X font. |
|
provides point and click selection of X11 font names. |
|
is the X font server. |
|
is the X font server information utility. |
|
alters a monitor's gamma correction through the X server. |
|
is an X graphics demo. |
|
is a server access control program for X. |
|
is the X Window System initializer. |
|
is an XKB utility program that raises a bell event. |
|
compiles an XKB keyboard description. |
|
is the XKB event daemon. |
|
prints an XKB keyboard description. |
|
shows the XKB status of keyboard LEDs. |
|
monitors modifier keys and LEDs. |
|
kills a client by its X resource. |
|
is a system load average display for X. |
|
is the X Window System logo. |
|
lists interned atoms defined on the server. |
|
lists client applications running on a display. |
|
is a server font list displayer for X. |
|
magnifies parts of the screen. |
|
is a manual page display program for the X Window System. |
|
displays a message or query in a window. |
|
sends and reads mail with an X interface to MH. |
|
is a utility for modifying keymaps and pointer button mappings in X. |
|
is a plain text display program for the X Window System. |
|
starts an X program on a remote machine. |
|
sends a test page to an Xprint printer. |
|
shows a list of Xprint printers and their attributes. |
|
prints an X window dump. |
|
recomputes the list of available printers. |
|
is a property displayer for X. |
|
is a "Hello World"-like Xprint sample utility based on plain X11 rendering calls. |
|
is a "Hello World"-like Xprint sample utility based on the Xt toolkit. |
|
is a primitive command line interface to RandR extension. |
|
is the X server resource database utility. |
|
refreshes all or part of an X screen. |
|
is the user preference utility for X. |
|
sets the mode for an X Input device. |
|
sets an X Input device as the main pointer. |
|
is the root window parameter setting utility for X. |
|
is the X Session Manager. |
|
is the X standard colormap utility. |
|
parses ANSI character sequences to synthesize input events to X Window servers using the XTrap server extension. |
|
tests the input transport to the XTrap server extension. |
|
displays general XTrap configuration information. |
|
tests the output transport from the XTrap extension to the XTrap client library. |
|
tests the XTrap protocol between a client and server. |
|
queries the XTrap extension. |
|
configures XTrap to collect usage statistics on all core input events and requests. |
|
is the video mode tuner for Xorg. |
|
prints out X-Video extension adaptor information. |
|
dumps an image of an X window. |
|
is a window information utility for X. |
|
is an image displayer for X. |
Last updated on 2008-05-24 00:27:25 -0500
The xcursor-themes package contains the redglass and whiteglass animated cursor themes.
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
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/xcursor-themes
Install xcursor-themes by running the following commands:
./configure $XORG_CONFIG && make
This package does not come with a test suite.
Now, as the root
user:
make install
Last updated on 2008-06-25 01:20:31 -0500
The Xorg font packages provide needed fonts to the Xorg applications.
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
Required download list: http://anduin.linuxfromscratch.org/files/BLFS/6.3/xorg/font-7.2.wget
Xorg Applications and xcursor-themes-1.0.1
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/Xorg7Fonts
To download the needed files using wget, use the following commands:
mkdir font && cd font && grep -v '^#' ../font-7.2.wget | wget -i- -c \ -B http://xorg.freedesktop.org/releases/individual/font/ && md5sum -c ../font-7.2.md5
Run the following commands for each package:
./configure $XORG_CONFIG && make
These packages do not provide test suites.
Now as the root
user:
make install
When all of the fonts have been installed, the system must be
configured so that Fontconfig can find the TrueType fonts
since they are outside of the default search path of
/usr/share/fonts
. Make symlinks
to the Xorg TrueType font
directories by running the following commands as the
root
user:
install -v -d -m755 /usr/share/fonts && ln -svn $XORG_PREFIX/lib/X11/fonts/OTF /usr/share/fonts/X11-OTF && ln -svn $XORG_PREFIX/lib/X11/fonts/TTF /usr/share/fonts/X11-TTF
$XORG_PREFIX
/fonts and
/usr/share/fonts/X11-{TTF,OTF}
Last updated on 2008-06-25 01:19:48 -0500
The XKeyboardConfig package contains the keyboard configuration database for the X Window System.
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
Xorg Applications and XML::Parser-2.34
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/xkeyboard-config
Install XKeyboardConfig by running the following commands:
./configure $XORG_CONFIG --with-xkb-rules-symlink=xorg && make
This package does not come with a test suite.
Now, as the root
user:
make install && install -dv -m755 $XORG_PREFIX/share/doc/xkeyboard-config-1.2 && install -v -m644 docs/{README,HOWTO}* \ $XORG_PREFIX/share/doc/xkeyboard-config-1.2
--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.
$XORG_PREFIX
/share/X11/xkb, $XORG_PREFIX
/share/doc/xkeyboard-config-1.2
Last updated on 2008-04-25 01:13:38 -0500
Luit provides a filter for displaying and converting UTF-8 characters in text console windows.
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
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/Luit
Install luit with the following commands:
./configure $XORG_CONFIG \ --with-localealiasfile=$XORG_PREFIX/share/X11/locale/locale.alias && make
This package does not come with a test suite.
Now as the root
user:
make install
--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.
Last updated on 2008-02-05 11:44:55 -0600
The Xorg Server is the core of the X Window system.
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
Xorg Fonts and xkeyboard-config-1.2
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/Xorg7Server
If you intend to build with Mesa, you must have the Mesa source directory available when building the Xorg-server.
Multiple security vulnerabilities have been identified in the xorg-server package. Apply a patch to fix these vulnerabilities with the following command:
patch -Np1 -i ../xorg-server-1.2.0-security-1.patch
Install the server by running the following commands:
./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.
Now as the root
user:
make install
--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.
$XORG_PREFIX
/: include/xorg,
include/X11/pixmaps, lib/X11/{getconfig,modules} and
lib/xserver
calculates VESA CVT mode lines. |
|
adds an input device to an Xdmx server. |
|
adds a screen to an Xdmx server. |
|
refreshes the screen attributes in an Xdmx server. |
|
resizes an Xdmx desktop. |
|
removes an input device from an Xdmx server. |
|
removes a screen from an Xdmx server. |
|
is a dmx configuration file parser and printer. |
|
queries a window's attributes on an Xdmx server. |
|
a wrapper script around getconfig.pl. |
|
gets configuration information for the Xorg server. |
|
calculates VESA GTF mode lines. |
|
is a symbolic link to ioport. |
|
is a symbolic link to ioport. |
|
is a symbolic link to ioport. |
|
sets input and output ports for the X server. |
|
is a symbolic link to ioport. |
|
is a symbolic link to ioport. |
|
is a symbolic link to ioport. |
|
reads or writes the PCI config space. |
|
scans and probes the PCI buses. |
|
is a VDL format dmx configuration file parser and printer. |
|
is a symbolic link to Xorg. |
|
is the Distributed Multi-head X server. |
|
prints information about the Xdmx server. |
|
is a graphical configuration tool for Xdmx configuration files. |
|
is a nested X server. |
|
is the X11R7 X Server. |
|
is a graphical configuration tool for Xorg. |
|
generates an xorg.conf file. |
|
is the virtual framebuffer X server for X Version 11. |
Last updated on 2008-04-22 09:28:24 -0500
The Xorg drivers provide the means for the xserver to take advantage of installed hardware.
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
Required download list: http://anduin.linuxfromscratch.org/files/BLFS/6.3/xorg/driver-7.2.wget
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/Xorg7Drivers
To download the needed files using wget, use the following commands:
mkdir driver && cd driver && grep -v '^#' ../driver-7.2.wget | wget -i- -c \ -B http://xorg.freedesktop.org/releases/individual/driver/ && md5sum -c ../driver-7.2.md5
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.
Install the drivers by running the following commands for each package:
case $(basename "$PWD") in xf86-input-evdev-[0-9]* | xf86-video-ati-[0-9]* | \ xf86-video-fbdev-[0-9]* | xf86-video-glint-[0-9]* | \ xf86-video-newport-[0-9]* ) sed -i -e "s/\xc3\xb8/\\\\[\/o]/" \ -e "s/\xc3\xa4/\\\\[:a]/" \ -e "s/\xc3\x9c/\\\\[:U]/" man/*.man ;; esac && ./configure $XORG_CONFIG \ --with-xorg-module-dir=$XORG_PREFIX/lib/X11/modules && make
These packages do not provide test suites.
Now as the root
user:
make install
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.
$XORG_PREFIX
/lib/X11/modules/{drivers,input}
Last updated on 2007-07-21 11:50:32 -0500
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/XWindowSystemComponents
Until recently (relatively speaking) almost every
X Window installation you
performed or came across was installed in the /usr/X11R6
directory. That was the standard
for years. Developers picked up on this and wrote their
package installation scripts looking for X in the standard location. Things have
changed and the trend is to now install X in /usr
.
Some people want to install it in a custom location.
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
If you've installed the X Window System in any prefix other
than /usr
, become the
root
user and update the
library linker's cache by adding /usr/X11R6/lib
to /etc/ld.so.conf
and running ldconfig.
Additionally, while still the root
user, ensure /usr/X11R6/bin
and /usr/X11R6/lib/pkgconfig
are added to the
PATH
and PKG_CONFIG_PATH
environment variables,
respectively. Instructions for doing this are described in
the section The Bash Shell Startup
Files.
Ensure you replace /usr/X11R6
with $XORG_PREFIX
in the previous
two paragraphs if you did not create the compatibility
symlink in the previous step.
As the root
user create a
basic X Window System configuration file with the following
command:
cd ~ && Xorg -configure
The screen will go black and you may hear some clicking of
the monitor. This command will create a file in your home
directory, xorg.conf.new
for
Xorg, or XF86Config.new
for XFree86.
Edit the newly created configuration file to suit your
system. The details of the files are located in the
xorg.conf.5x
man page. Some
things you may want to do are:
Section "Files". Change the order of the font paths searched. You may want to put 100dpi fonts ahead of 75dpi fonts if your system normally comes up closer to 100 dots per inch. You may want to remove some font directories completely.
Section "Module". If you are going to install NVIDIA drivers, remove the "dri" line.
Sections "InputDevice". You may want to change the
keyboard autorepeat rate by adding Option "Autorepeat" "250 30"
.
Section "Monitor". Specify the VertRefresh
and HorizSync
values if the system does not
automatically detect the monitor and its values.
Section "Device". You may want to set some of the options available for your selected video driver. A description of the driver parameters is in the man page for your driver.
Section "Screen". Add a DefaultDepth statement such as:
DefaultDepth 24
. In the
SubSection for your default depth, add a modes line
such as: Modes "1600x1200"
"1280x1024" "1024x768"
. The first mode listed
will normally be the starting resolution.
Test the system with the following command:
X -config ~/xorg.conf.new
You will only get a gray background with an X-shaped mouse
cursor, but it confirms the system is working. Exit with
Control+Alt+Backspace. If
the system does not work, take a look at /var/log/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:
install -v -m644 -D ~/xorg.conf.new /etc/X11/xorg.conf
As the root
user, create
.xinitrc
:
cat > ~/.xinitrc << "EOF"
# Begin .xinitrc file
xterm -g 80x40+0+0 &
xclock -g 100x100-0+0 &
twm
EOF
This provides an initial screen with a small clock that is managed by a simple window manager, Tab Window Manager. For details of twm, see the man page.
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.
cat >> /etc/sysconfig/createfiles << "EOF" /tmp/.ICE-unix dir 1777 root root EOF
Start X with:
startx
and a basic functional X Window System should be displayed.
DRI is a framework for allowing software to access graphics
hardware in a safe and efficient manner. It is installed in
X by default if you have a
supported video card. To enable direct rendering using the
OpenGL implementation from MesaLib-6.5.2 (built separately
with Xorg-7.2 ), the "glx" and
"dri" modules must be loaded. Additionally, the created
device nodes in /dev/dri
must
have proper permissions for your users. A sample xorg.conf
file might look like this:
Section "Module"
...
Load "glx"
Load "dri"
...
EndSection
...
Section "DRI"
Group "video"
Mode 0660
EndSection
The DRI devices are not accessible for any user except
root
and members of the
video
group. Add any users
that might use X to that group:
usermod -a -G video <username>
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.
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.
The core X font protocol finds fonts from the server
configuration file (xorg.conf
). If no font paths exist in the
configuration file, the server will fall back to an
internal hard-coded path. Assuming the prefix for your
X installation is
/usr/X11R6
, the core fonts
will reside in subdirectories of /usr/X11R6/lib/X11/fonts
. For each
directory in the path, the server reads three files:
fonts.dir
- maps font
files to font names; updated with mkfontdir
fonts.alias
- defines
aliases (such as "9x18") for existing fonts
fonts.scale
- lists
scalable fonts; updated with mkfontscale
The core X fonts protocol uses names such as -misc-fixed-medium-r-normal--13-120-75-75-c-80-iso8859-1
.
These fonts are rendered by the X server without antialiasing. The
server itself uses the "cursor" font for painting the mouse
cursor, and the protocol specification requires the font
"fixed" to be available.
Scalable fonts, such as Type1 and TrueType, are read from
fonts.scale
files by the
server. The core X font system uses the "freetype" module
for non-antialiased rendering of these fonts. Ensure that
the "freetype" module is loaded in the xorg.conf
file by adding it to the
"Module" section:
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>
:
sed -i 's,iso8859-1\( \|$\),iso8859-<X>
\1,g' \
/usr/lib/X11/fonts/{75dpi,100dpi,misc}/fonts.alias
Users of Cyrillic fonts have properly defined aliases in
/usr/lib/X11/fonts/cyrillic/fonts.alias
.
However, this file will not be used unless the /usr/lib/X11/fonts/cyrillic
directory is
first in the font search path. Otherwise, the /usr/lib/X11/fonts/misc/fonts.alias
file
will be used.
Xft provides antialiased font rendering through
Freetype, and fonts are
controlled from the client side using Fontconfig. The default search path is
/usr/share/fonts
and
~/.fonts
. Fontconfig searches directories in its
path recursively and maintains a cache of the font
characteristics in fonts.cache-1
files in each directory. If
the cache appears to be out of date, it is ignored, and
information is (slowly) fetched from the fonts themselves.
This cache can be regenerated using the fc-cache command at any
time. You can see the list of fonts known by Fontconfig by running the command
fc-list.
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:
install -v -d -m755 /usr/share/fonts/dejavu && install -v -m644 *.ttf /usr/share/fonts/dejavu && fc-cache -v /usr/share/fonts/dejavu
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.
xdm provides a
graphical logon capability and is normally set up in
/etc/inittab
. Most of the
information you need to customize xdm is found in its man
page. To execute xdm during bootup, change
the initdefault level to 5 and add the following lines to
/etc/inittab
:
# Run xdm as a separate service
x:5:respawn:/usr/X11R6/bin/xdm -nodaemon
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
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
More specific resource variables will override less specific names.
Resource definitions can be found in the man pages for each respective client.
In order to load your resources, the xrdb program must be called with the appropriate parameters. Typically, the first time resources are loaded, you use:
xrdb -load <filename>
To add resources to X's database in memory, use:
xrdb -merge <filename>
The xrdb
instruction is usually placed in ~/.xinitrc
or ~/.xsession
. To get more information, see
the xrdb man
page.
Last updated on 2008-05-09 08:00:42 -0500
Below you will find information on fine tuning the components
of the X Window System. The
documentation links are specifically for XFree86, which has been retired in BLFS,
however, the information contained in those documents usually
pertains to Xorg as well.
Detailed descriptions are also located in the xorg.conf
man page.
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/XInputDevices
The following external links provide a good introduction to setting up various keyboards.
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:
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/xdisplay
One or more monitor sections specify the characteristics of
your monitor(s). Usually, the setup program can probe your
monitor and setup a monitor properly, however, this does
not always work. The most common entries that need to be
updated are HorizSync
and
VertRefresh
. If the
configuration program does not set these properly, you will
notice a resolution much lower than desired. The default
HorizSync
setting is 28-33kHz
which is very conservative. The default VertRefresh
is 43-72Hz. Consult your
monitor documentation or search online for the proper
settings for your monitor.
It is also possible to control many detailed timing
characteristics of a monitor with a Modeline
setting. Most users will not need
to do this, but details are in the man page referenced
above.
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
This section basically controls your video card. The key
entry is the Driver
setting.
This can be a driver from the X distribution you are using, from the
kernel source, or a proprietary driver for devices such as
a Nvidia graphics adaptor. The driver often is a kernel
module or built into the kernel itself, but there are also
separate non-kernel components usually found in the
/usr/X11R6/lib/modules/drivers/
directory. These were either built with the X server or installed via external
(i.e., proprietary) programs.
There are many options for device drivers and most are specific to the driver being used. Documentation for many drivers can be found at the XFree86 Driver Manual Pages.
A typical Device section will look like:
Section "Device"
Identifier "Videocard0"
Driver "radeon"
VendorName "Videocard vendor"
BoardName "ATI Radeon 7500"
EndSection
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/xlayouts
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:
startx -- -layout layout2
Last updated on 2008-05-03 00:18:57 -0500
This chapter does not contain libraries that are required to run X. It does contain libraries that enhance X. In some cases the enhancement is as simple as font support. In others it is as complex as libraries that sit between X and applications that run on X whose purpose is to standardize the look and feel and inter-process communications for different applications. They also assist programmers by supplying common elements.
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.
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)
Note: if for whatever reason you do not have the recommended
libraries installed on your system, you must remove the
corresponding -system-
and <library>
-plugin-imgfmt-
parameters from the configure commands shown in
the instructions below.
<library>
NAS-1.9, CUPS-1.2.12, MySQL-5.0.41, PostgreSQL-8.2.4, unixODBC-2.2.12, SQLite and Firebird
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/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.
Building Qt in a chroot environment may fail.
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
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.
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.
sed -i '/QMAKE_RPATH/d' mkspecs/linux*/qmake.conf && bash export PATH=$PWD/bin:$PATH && export LD_LIBRARY_PATH=$PWD/lib:$LD_LIBRARY_PATH && ./configure -prefix /usr \ -docdir /usr/share/doc/qt \ -headerdir /usr/include/qt \ -plugindir /usr/lib/qt/plugins \ -datadir /usr/share/qt \ -translationdir /usr/share/qt/translations \ -sysconfdir /etc/qt \ -qt-gif \ -system-zlib \ -system-libpng \ -system-libjpeg \ -system-libmng \ -plugin-imgfmt-png \ -plugin-imgfmt-jpeg \ -plugin-imgfmt-mng \ -no-exceptions \ -thread \ -tablet && make && exit
This package does not come with a test suite.
Now, as the root
user:
make install && ln -v -sf libqt-mt.so /usr/lib/libqt.so && ln -v -snf ../../bin /usr/share/qt/bin && ln -v -snf ../../include/qt /usr/share/qt/include && ln -v -snf ../../lib /usr/share/qt/lib && cp -v -r doc/man /usr/share && cp -v -r examples /usr/share/doc/qt
This is the method recommended by the Qt developers. 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 Qt developers use a
default location of /usr/local/qt/
, however this procedure
puts the files in /opt/qt-3.3.8b/
and then creates a
symbolic link to /opt/qt/
.
bash export QTDIR=$PWD && export LD_LIBRARY_PATH=$PWD/lib:$LD_LIBRARY_PATH && export PATH=$PWD/bin:$PATH && ./configure -prefix /opt/qt-3.3.8b \ -sysconfdir /etc/qt \ -qt-gif \ -system-zlib \ -system-libpng \ -system-libjpeg \ -system-libmng \ -plugin-imgfmt-png \ -plugin-imgfmt-jpeg \ -plugin-imgfmt-mng \ -no-exceptions \ -thread \ -tablet && make && exit
This package does not come with a test suite.
Now, as the root
user:
make install && ln -v -sfn qt-3.3.8b /opt/qt && ln -v -s libqt-mt.so /opt/qt/lib/libqt.so && cp -v -r doc/man examples /opt/qt/doc
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-
or
<driver>
-qt-sql-
switch
to the configure command, you must
also pass <driver>
-I
so make can
find the appropriate header files. For instance, building in
MySQL support (as opposed to
building the plugin) will need to use </path/to/sql/headers>
-I/usr/include/mysql -qt-sql-mysql
.
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.
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.
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 # End qt addition to man_db.conf
EOF
Update the PKG_CONFIG_PATH
environment variable in your ~/.bash_profile
or /etc/profile
with the following:
PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/opt/qt/lib/pkgconfig
If you want the Qt
executables in your shell search path, update the
PATH
environment variable in
your ~/.bash_profile
or
/etc/profile
to include
/opt/qt/bin
.
As with most libraries, there is no explicit configuration
to do. After updating /etc/ld.so.conf
as explained above, run
/sbin/ldconfig so that
ldd can find
the shared libraries.
is a tool for presenting on-line documentation. |
|
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. |
|
provides support for translating applications into local languages. |
|
is a simple command line tool. It reads a Qt project file and produces message files used by the application. |
|
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. |
|
generates Qt meta object support code. |
|
is a tool for converting Qt message file formats. |
|
qmake uses information stored in project files to determine what should go in the makefiles it generates. |
|
is used to customize the appearance of Qt applications. |
|
is a Qt user interface compiler. |
Last updated on 2008-05-06 16:29:57 -0500
The Qt4 package contains several C++ libraries with both GUI and non-GUI components. One of the major users of Qt4 is KDE4.
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)
libjpeg-6b, libmng-1.0.9, LibTIFF-3.8.2, and libpng-1.2.29
NAS-1.9, D-BUS-1.0.2, GLib-2.12.12, OpenSSL-0.9.8g, CUPS-1.2.12, MySQL-5.0.41, PostgreSQL-8.2.4, unixODBC-2.2.12, and SQLite
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/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.
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.
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/
.
Install Qt4 by running the following commands:
./configure -prefix /opt/qt-4.3.4 \ -release \ -nomake examples \ -nomake demos \ -no-separate-debug-info && make
This package does not come with a test suite.
Now, as the root
user:
make install
If you installed Qt4 in the
/opt directory, again as the root
user issue:
ln -v -sfn qt-4.3.4 /opt/qt
-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-
or
<driver>
-qt-sql-
:
These switches build SQL support into the Qt4 libraries.
<driver>
To check if mysql is autotetected properly, examine the output of ./configure -qt-sql-mysql -help. Other database support will require similar configure parameters.
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 # End qt addition to man_db.conf
EOF
Update the PKG_CONFIG_PATH
environment variable in your ~/.bash_profile
or /etc/profile
with the following:
PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/opt/qt/lib/pkgconfig
If you want the Qt4
executables in your shell search path, update the
PATH
environment variable in
your ~/.bash_profile
or
/etc/profile
to include
/opt/qt/bin
.
As with most libraries, there is no explicit configuration
to do. After updating /etc/ld.so.conf
as explained above, run
/sbin/ldconfig so that
ldd can find
the shared libraries.
is a tool for presenting on-line documentation. |
|
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. |
|
provides support for translating applications into local languages. |
|
is a simple command line tool. It reads a Qt project file and produces message files used by the application. |
|
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. |
|
generates Qt meta object support code. |
|
is a desktop magnifier and as you move your mouse around the screen it will show the magnified contents in its window. |
|
qmake uses information stored in project files to determine what should go in the makefiles it generates. |
|
qt3to4 is a tool to help update Qt3 code to Qt4. |
|
is used to customize the appearance of Qt applications. |
|
is a portal into various demonstrations of Qt applications. |
|
is a resource compiler used in conjucntion with designer. |
|
is a Qt user interface compiler. |
|
is a tool to generate Qt4 code out of user interface files generated by the Qt3 version of designer. |
Last updated on 2008-05-09 08:00:42 -0500
The GTK+ package contains GTK+ Libraries. This is useful for creating graphical user interfaces for applications.
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
GLib-1.2.10, and X Window System
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/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
--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.
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+. |
|
(GIMP Tool Kit) is a library for creating graphical user interfaces similar to the Motif “look and feel”. |
|
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. |
Last updated on 2007-04-04 14:42:53 -0500
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.).
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)
X Window System and pkg-config-0.22
glitz, DirectFB, Open Quartz, libxcb-1.0 (also requires xcb-util), and GTK-Doc-1.8
GTK+-2.10.13 (for testing the PDF backend), Poppler-0.5.4 (for testing the PDF backend), librsvg-2.16.1 (for testing the SVG backend).
Note that the GTK, Poppler and librsvg packages are circular in that using them for test suite coverage requires installing cairo first, then installing the desired package(s), then installing cairo again.
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/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
--enable-gtk-doc
: Use this
parameter if GTK-Doc is
installed and you wish to rebuild the API documentation.
Last updated on 2008-05-09 08:00:42 -0500
The Pango package contains
the libpango
libraries. These
are useful for the layout and rendering of text.
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
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.
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/pango
Install Pango by running the following commands:
./configure --prefix=/usr --sysconfdir=/etc && make
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
--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.
/etc/pango/pangorc
,
~/.pangorc
, and the file
specified in the environment variable PANGO_RC_FILE
Last updated on 2007-07-16 14:53:12 -0500
The ATK package contains the ATK libraries. They are useful for allowing accessibility solutions to be available for all GTK2 applications.
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
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/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
--enable-gtk-doc
: Use this
parameter if GTK-Doc is
installed and you wish to rebuild the API documentation.
Last updated on 2007-04-04 14:42:53 -0500
The GTK+ package contains GTK+ libraries. These are useful for creating graphical user interfaces for applications.
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)
cairo-1.4.14, Pango-1.16.4, and ATK-1.18.0
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.
CUPS-1.2.12, GTK-Doc-1.8, and DocBook-utils-0.6.14
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/gtk+2
Install GTK+ by running the following commands:
./configure --prefix=/usr --sysconfdir=/etc && make
To test the results, issue: make check. Note that you must run the tests from a session with X Window Display capability (i.e., not a text-based terminal/console) as the tests attempt to open an X window.
Now, as the root
user:
make install && install -v -m755 -d /usr/share/doc/gtk+-2.10.13/{faq,tutorial} && cp -v -R docs/faq/html/* /usr/share/doc/gtk+-2.10.13/faq && cp -v -R docs/tutorial/html/* /usr/share/doc/gtk+-2.10.13/tutorial && install -v -m644 docs/*.txt /usr/share/doc/gtk+-2.10.13
--sysconfdir=/etc
:
This switch installs the configuration files into
/etc
instead of /usr/etc
.
--enable-gtk-doc
: This switch
will rebuild the API documentation during the make command. 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.
generates C code containing images, useful for compiling images directly into programs. |
|
collects information about loadable modules for gdk-pixbuf and writes it to standard output. |
|
collects information about loadable input method modules for GTK+ and writes it to standard output. |
|
creates mmap()able cache files for icon themes. |
|
provide an API to implement graphical user interfaces. |
Last updated on 2007-06-30 10:54:25 -0500
The LessTif package contains an Open Source version of OSF/Motif®.
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)
Lynx-2.8.6rel.5 or Links-2.1pre33 (used
to generate the INSTALL
documentation file) and Dmalloc
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/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 && patch -Np1 -i ../lesstif-0.95.0-testsuite_fix-1.patch && ./configure --prefix=/usr \ --sysconfdir=/etc/X11 \ --disable-debug \ --enable-production \ --with-xdnd && sed -i "s@libdir)/X11/mwm@sysconfdir)/mwm@" clients/Motif-2.1/mwm/Makefile && make rootdir=/usr/share/doc/lesstif-0.95.0
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.
Now, as the root
user:
make rootdir=/usr/share/doc/lesstif-0.95.0 install && ldconfig
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
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.
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.
is used to find out configuration information for packages needing to link to the LessTif libraries. |
|
is a window manager that adheres largely to the Motif mwm specification. |
|
is the LessTif
version of xmkmf which
creates a |
|
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. |
|
configures the virtual key bindings of LessTif applications. |
|
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. |
Last updated on 2008-05-09 08:00:42 -0500
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.
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
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/startup-notification
Install startup-notification 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 doc/startup-notification.txt \ /usr/share/doc/startup-notification-0.9/startup-notification.txt
Last updated on 2007-04-19 12:54:29 -0500
The libwnck package contains a Window Navigator Construction Kit.
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
GTK+-2.10.13 and XML::Parser-2.34
startup-notification-0.9, intltool-0.35.5, and GTK-Doc-1.8
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/libwnck
Install libwnck 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
--enable-gtk-doc
: Use this
parameter if GTK-Doc is
installed and you wish to rebuild the API documentation.
Last updated on 2007-07-21 13:46:45 -0500
The shared-mime-info package contains a MIME database. This allows central updates of MIME information for all supporting applications.
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
GLib-2.12.12, libxml2-2.6.31, and XML::Parser-2.34
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/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
Last updated on 2007-07-18 14:57:57 -0500
The hicolor-icon-theme package contains a default fallback theme for implementations of the icon theme specification.
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
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/hicolor-icon-theme
Install hicolor-icon-theme by running the following commands:
./configure --prefix=/usr
This package does not come with a test suite.
Now, as the root
user:
make install
Last updated on 2007-07-14 18:27:07 -0500
The libxklavier package contains a utility library for X keyboard.
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
GLib-2.12.12, X Window System, and libxml2-2.6.31
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/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
--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.
Last updated on 2008-05-07 00:07:59 -0500
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.
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
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/freeglut
Install freeglut 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/freeglut-2.4.0 && install -v -m644 doc/freeglut_user_interface.html \ /usr/share/doc/freeglut-2.4.0
Last updated on 2007-08-11 09:51:20 -0500
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.
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
libgsf-1.14.7, Pango-1.16.4, PCRE-7.6, and which-2.19
libglade-2.6.1 and libgnomeprint-2.18.0
Note: not installing the recommended dependencies can render
the GOffice package
incapable of supporting applications which depend on it. If,
for whatever reason, you elect not to install the recommended
dependencies, you must add the --without-gtk
parameter to the configure command in the
instructions below.
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)
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/goffice
Install GOffice by running the following commands:
patch -Np1 -i ../goffice-0.6.1-gtkdoc_rebase-1.patch &&
./configure --prefix=/usr && make
This package does not come with a test suite.
Now, as the root
user:
make install
--enable-gtk-doc
: Use this
parameter if GTK-Doc is
installed and you wish to rebuild the API documentation.
Last updated on 2008-03-16 17:30:00 -0500
Mesa is an OpenGL compatible 3-D graphics library.
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
Recommended demonstration and diagnostic utilities for verifying OpenGL operation
Download (HTTP): http://downloads.sourceforge.net/mesa3d/MesaDemos-6.5.2.tar.bz2
Download MD5 sum: e870efe98d3a50be01ab211b9b2e25d9
Download size: 1.3 MB
Optional GLUT library (see also freeglut-2.4.0)
Download (HTTP): http://downloads.sourceforge.net/mesa3d/MesaGLUT-6.5.2.tar.bz2
Download MD5 sum: e84edbb11c69c8e408dfadd2ed08e95b
Download size: 306 KB
Xorg Libraries, Xorg Utilities, libdrm-2.3.0, and expat-2.0.1
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/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:
make linux-dri-x86 OPT_FLAGS="-O2 -fno-strict-aliasing" \ DRI_DRIVER_INSTALL_DIR=${XORG_PREFIX}/lib/X11/modules/dri \ X11_INCLUDES=-I${XORG_PREFIX}/include \ EXTRA_LIB_PATH=-L${XORG_PREFIX}/lib
If you downloaded and extracted the Demos package, build the programs with the following commands:
sed -i 's@-l$(GLUT_LIB)@@g' configs/default && make -C progs/xdemos PROGS='glxinfo glxgears'
This package does not come with a test suite.
Now, as the root
user:
make install INSTALL_DIR=${XORG_PREFIX} \ DRI_DRIVER_INSTALL_DIR=${XORG_PREFIX}/lib/X11/modules/dri && install -dv ${XORG_PREFIX}/share/doc/MesaLib-6.5.2 && install -v -m644 docs/* ${XORG_PREFIX}/share/doc/MesaLib-6.5.2
If you built the demo programs, install them using the
following command as the root
user:
install -v -m755 progs/xdemos/glx{info,gears} ${XORG_PREFIX}/bin
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
Do not remove the Mesa source tree yet, it will be required to build the Xorg-Server-1.2.0.
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.
$XORG_PREFIX
/lib/modules/dri and
$XORG_PREFIX
/share/doc/MesaLib-6.5.2
is a GL demo useful for troubleshooting graphics problems. |
|
is a diagnostic program that displays information about the graphics hardware and installed GL libraries. |
|
is the main OpenGL library. |
|
is the OpenGL Utility library. |
|
is the Xt/Motif OpenGL drawing area widget library. |
|
is the OpenGL Utility Toolkit (GLUT) library. |
Last updated on 2008-05-03 00:18:57 -0500
Window Managers and Desktop Environments are the primary user interfaces into the X Window System. A window manager is a program that controls the appearance of windows and provides the means by which the user can interact with them. A Desktop Environment provides a more complete interface to the operating system, and provides a range of integrated utilities and applications.
There are many Window Managers available. Some of the more well known ones include fvwm2, Window Maker, AfterStep, Enlightenment, Sawfish, and Blackbox.
The Desktop Environments available for Linux are GNOME, KDE, and XFce.
Choosing a Window Manager or Desktop Environment is highly subjective. The choice depends on the look and feel of the packages, the resources (RAM, disk space) required, and the utilities included. One web site that provides a very good summary of what is available, screenshots, and their respective features is Window Managers for X.
In this chapter, the installation instructions of several Window Managers and one lightweight Desktop Environment are presented. Later in the book, both KDE and GNOME have their own sections.
Last updated on 2007-12-07 10:32:27 -0600
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.
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
rep-gtk-0.18 and EsounD-0.2.37
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/sawfish
Install sawfish by running the following commands:
./configure --prefix=/usr --libexec=/usr/sbin \ --infodir=/usr/share/info --disable-themer && make
Now, as the root
user:
make install
--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.
Last updated on 2007-04-04 14:42:53 -0500
The Fluxbox package contains a window manager.
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
Imlib2-1.4.0 Image display library
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/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
--enable-imlib2
: Use this option
if you wish to use other image formats in addition to xpm.
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
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.
is a window manager for X11 based on Blackbox 0.61.0. |
|
is a utility that sets the background image. It requires which to find one of: display, Esetroot, wmsetbg, xv, qiv or xsri. |
|
is a utility to change root window appearance based on the Blackbox application bsetroot. |
|
is a utility that generates a menu by scanning your
|
|
is a session startup script that allows for command executions prior to fluxbox starting. |
|
displays a run dialog window. |
Last updated on 2007-04-04 14:42:53 -0500
The Metacity package contains a window manager. This is useful for organizing and displaying windows.
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
GTK+-2.10.13 and XML::Parser-2.34
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
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/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
--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.
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:
cat >> ~/.xinitrc << "EOF"
xterm &
exec metacity
EOF
is a window manager used mainly by GNOME. |
|
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. |
|
demonstrates various kinds of windows that window managers and window manager themes should handle. |
Last updated on 2008-05-09 07:42:27 -0500
twm is the Tab Window Manager. This is the default window manager installed by the X Window System packages.
mwm is the Motif® Window Manager. It is an OSF/Motif® clone packaged and installed with LessTif-0.95.0.
Last updated on 2007-04-04 14:42:53 -0500
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.
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.
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.
Based on your preference, set KDE_PREFIX
.
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
A method of building multiple versions installs KDE in the /opt
hierarchy:
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.
Add to your system or personal profile:
export PATH=$PATH:/opt/kde-3.5.9/bin
export PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/opt/kde-3.5.9/lib/pkgconfig
Add to your /etc/ld.so.conf
:
cat >> /etc/ld.so.conf << "EOF"
# Begin kde addition to /etc/ld.so.conf
/opt/kde-3.5.9/lib
# End kde addition
EOF
Add to your /etc/man_db.conf
:
cat >> /etc/man_db.conf << "EOF"
# Begin kde addition to man_db.conf
MANDATORY_MANPATH /opt/kde-3.5.9/man
# End kde addition to man_db.conf
EOF
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
.
ln -v -sf kde-3.5.9 /opt/kde
Last updated on 2007-04-04 14:42:53 -0500
The Analog Real-time Synthesizer (aRts) provides sound support for KDE and necessary libraries for kdelibs.
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
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
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/arts
Install aRts by running the following commands:
./configure --prefix=$KDE_PREFIX --disable-debug \ --disable-dependency-tracking && make
This package does not come with a test suite that works with GCC-4.1.2.
Now, as the root
user:
make install
--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.
is a daemon that provides access to the sound hardware resources. |
|
is a small wrapper program which simply sets
real-time priority (running as |
|
is intended as a utility to perform miscellaneous functions related to the sound server. |
|
is a simple utility to play a sound file. |
|
provides an interim solution that allows most of legacy sound applications to run unchanged. |
|
is a simple utility to send raw audio data to the sound server. |
|
is a graphical utility for performing a number of tasks related to the sound server. |
|
is a utility to assist developers using the aRts C API. |
|
is the Interface Definition Language (IDL) file compiler for MCOP, the Multimedia Communication Protocol used by aRts. |
|
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.
Last updated on 2008-03-10 21:37:42 -0500
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.
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)
aRts-1.5.9, libjpeg-6b, libart_lgpl-2.3.19, libxml2-2.6.31, libxslt-1.1.22, PCRE-7.6, Gamin-0.1.9, OpenSSL-0.9.8g, and libidn-0.6.14
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
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/kdelibs
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.
Install kdelibs with:
./configure --prefix=$KDE_PREFIX \ --sysconfdir=/etc/kde \ --disable-debug \ --disable-dependency-tracking && LD_LIBRARY_PATH="$QTDIR/lib" make
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
--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.
are essential support programs needed by other KDE applications. |
|
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.
Last updated on 2008-05-09 08:00:42 -0500
kdebase is the last mandatory package required for the K Desktop Environment. It provides various applications, infrastructure files and libraries.
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)
libjpeg-6b, libart_lgpl-2.3.19, libxml2-2.6.31, OpenSSL-0.9.8g, and JDK-6 Update 5
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
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/kdebase
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.
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
.
This package does not come with a test suite.
Install kdebase with:
./configure --prefix=$KDE_PREFIX --sysconfdir=/etc/kde \ --disable-debug --disable-dependency-tracking && LD_LIBRARY_PATH="$KDE_PREFIX/lib" make
If you wish to create the API documentation and you have Doxygen and Graphviz installed, make apidox must be done before make install.
Now, as the root
user:
make install
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.
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”.
is a programmer's text editor for KDE. |
|
is the KDE Control Center. |
|
is a dialog box for managing diagnostic messages at runtime. |
|
is a graphical front end for the Unix su command. |
|
is the KDE display manager (a replacement for xdm). |
|
is a utility to find files. |
|
is the KDE help tool. |
|
is the KDE control panel. |
|
provides a centralized and convenient overview of your KDE and system settings. |
|
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. |
|
is a clipboard utility. |
|
is a utility to rearrange or add items to the K-menu. |
|
is a filesystem and web browser. |
|
is a highly configurable X terminal emulator. |
|
provides a thumbnail view of all virtual desktops. |
|
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. |
|
is a splash screen that shows the progress of an application that is loading. |
|
is a network enabled task manager and system monitor application, with the additional functionality of top. |
|
is a text editor for KDE. |
|
is a keyboard layout switching utility based on the X11 xkb extension. |
Last updated on 2008-05-09 08:00:42 -0500
Back up your existing ~/.xinitrc
file and create a new .xinitrc
file to start KDE:
echo "exec startkde" > ~/.xinitrc
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:
echo "exec dbus-launch --exit-with-session startkde" >> ~/.xinitrc
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
Ensure all libraries can be found with (as root
):
ldconfig
At this point you can bring up KDE with:
startx
Last updated on 2007-04-04 14:42:53 -0500
Each of the packages in this chapter depend on the base KDE installation procedures, but each is an independent group of programs that can be optionally installed. Few users will want to install every package, but instead review and install only the ones desired.
Kdeadmin provides several KDE clients useful for managing a system. Clients include programs for managing users, initialization files, cron, and network connections.
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
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/kdeadmin
kcron requires a cron implementation, such as Vixie Cron, at run time. It is not compatible with Fcron-3.0.3.
Install kdeadmin 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
Last updated on 2008-03-31 19:54:49 -0500
Kdenetwork provides several KDE applications useful in a networking environment. Applications include clients for chat, PPP, news, instant messages, and similar programs.
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
libjpeg-6b, libxml2-2.6.31, libxslt-1.1.22, and OpenSSL-0.9.8g
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
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/kdenetwork
Install kdenetwork with:
./configure --prefix=$KDE_PREFIX --disable-debug \ --disable-dependency-tracking && make
If you wish to create the API documentation and you have Doxygen and Graphviz installed, make apidox must be done before make install.
This package does not come with a test suite.
Now, as the root
user:
make install
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.
is a graphical client for the Dictionary Server Protocol (DICT). |
|
allows you to group downloads. |
|
is a news applet for the KDE Application Launcher Panel. |
|
is KDE's multi-protocol instant messenger client. |
|
allows you to share files over a network. |
|
is a dial-up utility. |
|
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. |
|
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. |
|
is a chat client. |
|
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. |
|
is used to configure and monitor wireless LAN cards. |
|
is intended to provide a kind of network neighborhood, but only relying on the TCP/IP protocol stack. |
Last updated on 2008-05-06 21:45:37 -0500
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.
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)
libjpeg-6b, libxml2-2.6.31, GnuPG-1.4.7 or GnuPG-2.0.8, and OpenSSL-0.9.8g
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
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/kdepim
Install kdepim with:
./configure --prefix=$KDE_PREFIX --disable-debug \ --disable-dependency-tracking && sed -i "s@ \*/@&\n#define HAVE_FOPENCOOKIE@" \ libkdenetwork/libgpgme-copy/{assuan,gpgme}/funopen.c && make
If you wish to create the API documentation and you have Doxygen and Graphviz installed, make apidox must be done before make install.
This package does not come with a test suite.
Now, as the root
user:
make install
is a program to read RSS and other online news feeds. |
|
is the KDE address book. |
|
is a system to provide reminder messages. |
|
is a program to synchronize mobile phone numbers. |
|
is a personal time tracker. |
|
is the universal syncing tool and framework for kde. |
|
is a tool for managing X.509 certificates in a GpgSM keybox and for retrieving certificates from LDAP servers. |
|
is KDE's email client. |
|
is the KDE newsreader. |
|
is a popup notes utility. |
|
is a command line interface to KDE calendars. |
|
is the integrated solution to personal information management (PIM) needs. |
|
is a personal calendar/todo system. |
|
is a KDE mail checker that has the capabilities to dock itself to kicker. |
|
is a program to synchronize a Palm-Pilot. |
|
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. |
|
is simpleGnuPG log viewer. |
Last updated on 2008-03-31 19:54:49 -0500
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.
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/kdemultimedia
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
Reqiured patch (for FFmpeg support): http://www.linuxfromscratch.org/patches/blfs/6.3/akode-2.0.2-FFmpeg_fixes-1.patch
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)
Install Akode by issuing the following commands:
./configure --prefix=$KDE_PREFIX --without-ffmpeg \ --disable-debug --disable-dependency-tracking && make
This package does not come with a test suite.
Now, as the root
user:
make install
--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:
patch -Np1 -i ../akode-2.0.2-FFmpeg_fixes-1.patch
Download (HTTP): http://mirrors.isc.org/pub/kde/stable/3.5.9/src/kdemultimedia-3.5.9.tar.bz2
Download (FTP): ftp://ftp.kde.org/pub/kde/stable/3.5.9/src/kdemultimedia-3.5.9.tar.bz2
Download MD5 sum: fdfafe38d2c7e3019dafc80c177add15
Download size: 6.1 MB
Estimated disk space required: 125 MB (additional 1 MB for API docs)
Estimated build time: 9.8 SBU (additional 0.2 SBU for API docs)
libjpeg-6b, libxml2-2.6.31, and ALSA-1.0.13
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
Install kdemultimedia with:
./configure --prefix=$KDE_PREFIX --sysconfdir=/etc/kde \ --disable-debug --disable-dependency-tracking && make
If you wish to create the API documentation and you have Doxygen and Graphviz installed, make apidox must be done before make install.
Now, as the root
user:
make install
is a tool to create new structures of small connected aRts modules. |
|
is a jukebox, tagger, and music collection manager. |
|
is a multimedia player. |
|
is a front-end tool for ripping audio CDs and encoding the wav files. |
|
is a midi/karaoke player. |
|
is a sound mixer. |
|
is a recording frontend for aRts. |
|
is a CD player. |
|
is another multimedia player. |
Last updated on 2008-05-16 10:27:16 -0500
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.
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)
libjpeg-6b, libxml2-2.6.31, and libart_lgpl-2.3.19
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
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/kdegraphics
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.
Install kdegraphics with:
./configure --prefix=$KDE_PREFIX --disable-debug \ --disable-dependency-tracking && make
If you wish to create the API documentation and you have Doxygen and Graphviz installed, make apidox must be done before make install.
This package does not come with a test suite.
Now, as the root
user:
make install
is a color chooser for a given pallette. |
|
is a color pallette editor. |
|
is a DVI viewer. |
|
is a FAX viewer. |
|
is a FAX previewer used with kviewshell. |
|
is a PS/PDF viewer. |
|
is an icon editor. |
|
is a paint program. |
|
is a raster image scan program. |
|
is a PDF viewer. |
|
is a graphical 3D modeler, which can generate scenes for POV-Ray. |
|
is a screen ruler. |
|
is a screen capture program. |
|
is an image viewer. |
|
is another image viewer. |
|
is a generic framework for the KDE viewer applications. |
|
is a simple tool for monitor gamma correction. |
|
is an ioslave that allows you to view and download
images from a digital camera using the
|
Last updated on 2008-05-09 08:00:42 -0500
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.
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)
libjpeg-6b, libxml2-2.6.31, and GMP-4.2.2 (required for KCalc)
Net-SNMP, tpctl (for Thinkpad support), Python-2.5.2, XMMS-1.2.10, Graphviz-2.12, and Doxygen-1.5.2
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/kdeutils
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.
Install kdeutils with:
./configure --prefix=$KDE_PREFIX --disable-debug \ --disable-dependency-tracking && make
If you wish to create the API documentation and you have Doxygen and Graphviz installed, make apidox must be done before make install.
This package does not come with a test suite.
Now, as the root
user:
make install
is an archiving tool. |
|
is the infrastructure for KDE's Infrared Remote Control functionality; irkick is the server component of that infrastructure. |
|
is a scientific calculator. |
|
is a character selector applet. |
|
is a graphical interface to OpenSSH-4.7p1 |
|
is a disk usage viewer. |
|
is a text editor. |
|
is a floppy formatter. |
|
a simple graphical interface for GnuPG-1.4.7. |
|
is a binary editor. |
|
is a note taker. |
|
is an editor for editing regular expressions in a graphical style (in contrast to the ASCII syntax). |
|
is a task scheduler. |
|
provides a secure way to manage passwords. |
|
is a tool to create interactive widgets on a KDE desktop. |
Last updated on 2008-05-09 08:00:42 -0500
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.
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
libusb-0.1.12, Boost.Python, OCaml, and FaCiLe module for OCaml.
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/kdeedu
Install kdeedu 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
is a program which shows you the Periodic System of Elements. |
|
is a small program to generate tasks with fractions. |
|
is flash card application, which allows you to make interactive form based tests.. |
|
is the classical hangman game for children, adapted for KDE. |
|
is a KDE application for Interactive Geometry. |
|
is a Japanese reference/study tool for KDE. |
|
is an alphabet tutor (French). |
|
is a simple mind-training word game. |
|
is a mathematical function plotter for KDE. |
|
is a small math application that will help pupils to improve their skills in calculating percentages. |
|
is a desktop planetarium. |
|
is a touch typing tutor. |
|
is an application specially designed to study Spanish verb forms. |
|
is a vocabulary trainer. |
Last updated on 2008-05-09 08:00:42 -0500
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.
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
libjpeg-6b, libxml2-2.6.31, and ALSA-1.0.13
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/kdeaccessibility
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.
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
Last updated on 2008-05-09 08:00:42 -0500
Kdetoys includes KDE applications for a world clock, an applet showing the phases of the moon, and the ability to track weather stations.
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
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/kdetoys
Install kdetoys 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
Amusing Misuse of Resources. |
|
is a Moon phase indicator. |
|
measures your desktop mileage. |
|
times your tea brewing. |
|
small Tux crossing stars. |
|
shows which parts of the world are currently experiencing daylight, and which parts are currently in night. It also shows the current time in a range of cities around the world. |
Last updated on 2008-03-10 21:37:42 -0500
Kdegames provides many interesting games.
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)
Graphviz-2.12 and Doxygen-1.5.2
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/kdegames
Install kdegames with:
./configure --prefix=$KDE_PREFIX --disable-debug \ --disable-dependency-tracking && make
If you wish to create the API documentation and you have Doxygen and Graphviz installed, make apidox must be done before make install.
This package does not come with a test suite.
Now, as the root
user:
make install
Last updated on 2008-03-10 21:37:42 -0500
Kdeartwork provides additional KDE themes, screensavers, sounds, wallpapers, widget styles, and window styles.
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
libjpeg-6b, libxml2-2.6.31, and libart_lgpl-2.3.19
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/kdeartwork
Install kdeartwork 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
Last updated on 2008-03-10 21:37:42 -0500
Kdeaddons provides additional plugins for konqueror, kate, and kicker.
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
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
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/kdeaddons
Install kdeaddons 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
Last updated on 2008-03-10 21:37:42 -0500
Kde-i18n is a set of internationalization packages to customize KDE for different languages and locales around the world.
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
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.
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/kde-i18n
Install kde-i18n with:
./configure --prefix=$KDE_PREFIX && make
Now, as the root
user:
make install
Last updated on 2007-04-04 14:42:53 -0500
These KDE applications are generally of interest to software or WEB developers. General users can skip them without a loss of functionality.
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.
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
libjpeg-6b, Subversion-1.4.4, libxml2-2.6.31, and libxslt-1.1.22
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/kdesdk
Valgrind and CVS-1.11.22 are needed at run time for there respective frontends, kcachegrind and cervisia
Install kdesdk 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
provides a graphical view of CVS. |
|
is a suite of an advanced PO file editor comprising kbabel, a multi functional catalogmanager and a dictionary for translators kbabeldict. |
|
is a KDE frontend for cachegrind, part of Valgrind. |
|
is a program to view the differences between files. |
|
is a UML modelling diagram tool. |
Last updated on 2008-05-09 08:00:42 -0500
Kdevelop provides an Integrated Development Environment (IDE) to be used for a wide variety of programming tasks.
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)
libjpeg-6b, kdesdk-3.5.9, libxml2-2.6.31, and the apidox from kdelibs-3.5.9 (if building API documentation).
Python-2.5.2, DocBase, Graphviz-2.12, and Doxygen-1.5.2
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/kdevelop
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.
Install kdevelop with:
sed -i -e 's/ kdevutil$//' buildtools/lib/widgets/Makefile.in && ./configure --prefix=$KDE_PREFIX --disable-debug \ --disable-dependency-tracking && make
If you wish to create the API documentation and you have Doxygen and Graphviz installed, make apidox must be done before make install.
This package does not come with a test suite.
Now, as the root
user:
make install && chown -v -R root:root $KDE_PREFIX/kdevbdb
If you created the API documentation, install it with:
make install-apidox
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.
Last updated on 2008-03-31 19:54:49 -0500
Kdewebdev includes KDE based programmers' utilities to generate GUI dialogs, a Web IDE, a stylesheet debugger, and a utility to search and replace strings.
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
libjpeg-6b, libxml2-2.6.31, and libxslt-1.1.22
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/kdewebdev
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.
Install kdewebdev 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
Last updated on 2008-03-31 19:54:49 -0500
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/
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
libjpeg-6b, libxml2-2.6.31, and libxslt-1.1.22
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
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/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
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.
Last updated on 2008-05-09 08:00:42 -0500
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.
As was previously mentioned, building a GNOME desktop from sources is a significant project. Some may find it too tedious or time-consuming to perform a full installation following the BLFS book. You may wish to review the automated methods mentioned in the GNOME-2.18 Release Notes (they are a bit dated). Note that using any other method to install GNOME-2.18.3 other than using the BLFS instructions cannot be supported by the BLFS team. Alternate methods are only mentioned as a courtesy to builders who would like to build GNOME from sources but do not have the time/desire/patience/whatever to follow the BLFS book.
This section contains required elements of the GNOME environment to display a functional desktop. The packages are separated into “Platform” and “Desktop” sections in the same manner as the sources are distributed on the GNOME download mirrors.
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.
Set an environment variable to resolve the prefix destination.
If GNOME is your desktop of choice:
export GNOME_PREFIX=/usr
If you want to try-out GNOME, or install it in an easy-to-remove location:
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:
install -v -m755 -d /opt/gnome-2.18.3 && ln -v -s gnome-2.18.3 /opt/gnome
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:
Add to your system or personal profile:
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
Add to your /etc/ld.so.conf
:
cat >> /etc/ld.so.conf << "EOF"
# Begin gnome addition to /etc/ld.so.conf
/opt/gnome-2.18.3/lib
# End gnome addition
EOF
Add to your /etc/man_db.conf
:
cat >> /etc/man_db.conf << "EOF"
# Begin gnome addition to man_db.conf
MANDATORY_MANPATH /opt/gnome-2.18.3/share/man
# End gnome addition to man_db.conf
EOF
Remember to execute ldconfig as the
root
user after installation
of libraries to update the linker's library cache.
Last updated on 2007-07-25 09:48:30 -0500
The ORBit2 package contains a high-performance CORBA Object Request Broker. This allows programs to send requests and receive replies from other programs.
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
GTK-Doc-1.8 and OpenSSL-0.9.8g
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/orbit2
Install ORBit2 by running the following commands:
./configure --prefix=$GNOME_PREFIX \ --sysconfdir=/etc/gnome/2.18.3 && make
To test the results, issue: make check.
Now, as the root
user:
make install
--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.
$GNOME_PREFIX
/:
include/orbit-2.0, lib/orbit-2.0 and
share/{gtk-doc/html/ORBit2, idl/orbit-2.0}
Last updated on 2007-07-25 09:48:30 -0500
The libbonobo package
contains libbonobo
libraries.
This is a component and compound document system for
GNOME-2.
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
ORBit2-2.14.7, libxml2-2.6.31, popt-1.10.4, and XML::Parser-2.34
X Window System, intltool-0.35.5, and GTK-Doc-1.8
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/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
--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/bonobo
: This
parameter causes the libexec files to be installed in the
preferred location of $GNOME_PREFIX/lib/bonobo
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.
$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}
Last updated on 2007-07-25 09:48:30 -0500
The GConf package contains a configuration database system.
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
ORBit2-2.14.7 and libxml2-2.6.31
GTK+-2.10.13, OpenLDAP-2.3.39, intltool-0.35.5, and GTK-Doc-1.8
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/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
--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.
--libexecdir=$(pkg-config
--variable=prefix ORBit-2.0)/lib/GConf
: This
parameter causes the libexec files to be installed in the
preferred location of $GNOME_PREFIX/lib/GConf
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.
$GNOME_PREFIX
/: include/gconf, lib/GConf
and share/{GConf, gtk-doc/html/gconf, sgml/gconf}
Last updated on 2007-07-25 09:48:30 -0500
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.
Last updated on 2007-07-25 09:48:30 -0500
The GNOME MIME Data package contains the base set of file types and applications for GNOME-2.
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
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/gnome-mime-data
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
).
Install GNOME MIME Data by running the following commands:
./configure --prefix=$(pkg-config --variable=prefix ORBit-2.0) \ --sysconfdir=/etc/gnome/2.18.3 \ --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 && install -v -m644 -D man/gnome-vfs-mime.5 \ $(pkg-config \ --variable=prefix ORBit-2.0)/share/man/man5/gnome-vfs-mime.5
--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.
--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)
.
$GNOME_PREFIX
/share/{application-registry,
share/mime-info}
Last updated on 2007-07-25 09:48:30 -0500
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.
Last updated on 2007-07-20 07:13:32 -0500
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.
Last updated on 2007-07-25 09:48:30 -0500
The GNOME Virtual File System package contains virtual file system libraries. This is used as one of the foundations of the Nautilus file manager.
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
D-Bus GLib Bindings-0.74, GConf-2.18.0.1, and GNOME MIME Data-2.4.3
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.
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/gnome-vfs
Install GNOME Virtual File System 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/gnome-vfs-2.0 && make
To test the results, issue: make check.
Now, as the root
user:
make install
--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-vfs-2.0
:
This parameter causes the libexec files to be installed in
the preferred location of $GNOME_PREFIX/lib/gnome-vfs-2.0
instead of
$GNOME_PREFIX/libexec
.
--with-dbus-service-dir=/usr/share/dbus-1/services
:
Use this parameter if you linked HAL into the build and you want the
gnome-vfs-daemon.service
file
installed in the default D-Bus location instead of in
. See
the information in the configuration section below if you
don't use this parameter.
GNOME_PREFIX
/share/dbus-1/services
--with-hal-eject=PROGRAM
: This
parameter does not need to be passed if you have Eject
or gnome-mount-0.6 installed, as the
eject program
is used if gnome-mount is
not installed.
--enable-gtk-doc
: Use this
parameter if GTK-Doc is
installed and you wish to rebuild the API documentation.
If HAL was linked into the
build and GNOME is being installed in any location other
than /usr
, you should create
a local D-Bus session
configuration file so that the installed gnome-vfs-daemon.service
file can be
discovered by D-Bus. You
should reference the information on the D-Bus page for instructions on how to
create a D-Bus custom services
directory.
$GNOME_PREFIX
/:
include/gnome-vfs-{,module-}2.0, lib/gnome-vfs{,-2.0},
share/gtk-doc/html/gnome-vfs-2.0
Last updated on 2007-08-16 17:34:29 -0500
The GNOME VFS Monikers package contains Bonobo monikers that were pulled out of the GNOME VFS package during the Bonobo to D-Bus conversion. This package is required so that the GNOME VFS API/ABI remains stable.
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
libbonobo-2.18.0 and GNOME Virtual File System-2.18.1
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/gnome-vfs-monikers
Install GNOME VFS Monikers by running the following commands:
./configure --prefix=$(pkg-config --variable=prefix ORBit-2.0) && make
This package does not come with a test suite.
Now, as the root
user:
make install
--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.
Last updated on 2007-07-19 17:16:31 -0500
The libgnome package
contains the libgnome
library.
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
libbonobo-2.18.0 and GNOME Virtual File System-2.18.1
GTK-Doc-1.8 and intltool-0.35.5
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/libgnome
Install libgnome 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 \ --disable-esd && make
This package does not come with a test suite.
Now, as the root
user:
make install
--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 sets LIBGNOME_LOCALSTATEDIR
to /var/lib
instead of $GNOME_PREFIX/var
to synchronize with the
GNOME Games installation and
properly record high scores in /var/lib/games
.
--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-esd
: This
parameter is required if EsounD-0.2.37 is not installed.
Remove it if the package is installed.
--enable-gtk-doc
: Use this
parameter if GTK-Doc is
installed and you wish to rebuild the API documentation.
$GNOME_PREFIX
/: include/libgnome-2.0,
share/gtk-doc/html/libgnome
Last updated on 2008-03-26 12:02:13 -0500
The libgnomecanvas package contains the GNOME canvas library. It is an engine for structured graphics and one of the essential GNOME libraries.
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
libglade-2.6.1 and libart_lgpl-2.3.19
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/libgnomecanvas
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
).
Install libgnomecanvas 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
--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.
$GNOME_PREFIX
/:
include/libgnomecanvas-2.0, lib/libglade and
share/gtk-doc/html/libgnomecanvas
Last updated on 2007-07-25 19:31:00 -0500
The libbonoboui package
contains libbonoboui
libraries.
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
libgnome-2.18.0 and libgnomecanvas-2.14.0
GTK-Doc-1.8 and intltool-0.35.5
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/libbonoboui
Install libbonoboui 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 && install -v -m755 -d $(pkg-config \ --variable=prefix ORBit-2.0)/share/doc/libbonoboui-2.18.0 && install -v -m644 doc/*.{dtd,txt,xml,html} $(pkg-config \ --variable=prefix ORBit-2.0)/share/doc/libbonoboui-2.18.0
--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.
$GNOME_PREFIX
/:
include/libbonoboui-2.0, share/{doc/libbonoboui-2.18.0,
gnome-2.0, gtk-doc/html/libbonoboui}
Last updated on 2007-07-25 09:48:30 -0500
The gnome-keyring package contains a daemon that keeps passwords and other secrets for users.
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
GTK+-2.10.13 and XML::Parser-2.34
D-BUS-1.0.2 and intltool-0.35.5
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/gnome-keyring
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
).
Install gnome-keyring by running the following commands:
./configure --prefix=$(pkg-config --variable=prefix ORBit-2.0) \ --libexecdir=$(pkg-config \ --variable=prefix ORBit-2.0)/lib/gnome-keyring && make
This package does not come with a test suite.
Now, as the root
user:
make install && install -v -m755 -d $(pkg-config \ --variable=prefix ORBit-2.0)/share/doc/gnome-keyring-0.8.1 && install -v -m644 *.txt $(pkg-config \ --variable=prefix ORBit-2.0)/share/doc/gnome-keyring-0.8.1
--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
.
$GNOME_PREFIX
/:
include/gnome-keyring-1, lib/gnome-keyring and
share/doc/gnome-keyring-0.8.1
Last updated on 2007-07-25 09:48:30 -0500
The GNOME Icon Theme package contains an assortment of scalable and non-scalable icons of different sizes and themes.
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
icon-naming-utils-0.8.2 and XML::Parser-2.34
intltool-0.35.5 and pkg-config-0.22
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/gnome-icon-theme
Install GNOME Icon Theme 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
Last updated on 2007-07-25 09:48:30 -0500
The libgnomeui package
contains libgnomeui
libraries.
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
libbonoboui-2.18.0 and gnome-keyring-0.8.1
libjpeg-6b, EsounD-0.2.37, intltool-0.35.5, and GTK-Doc-1.8
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/libgnomeui
Install libgnomeui by running the following commands:
./configure --prefix=$(pkg-config --variable=prefix ORBit-2.0) \ --libexecdir=$(pkg-config \ --variable=prefix ORBit-2.0)/lib/libgnomeui && make
This package does not come with a test suite.
Now, as the root
user:
make install && if [ $(pkg-config --variable=prefix ORBit-2.0) != "/usr" ]; then ln -v -s $(pkg-config --variable=prefix \ ORBit-2.0)/lib/gtk-2.0/2.10.0/filesystems \ /usr/lib/gtk-2.0/2.10.0 fi
--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/libgnomeui
: This
parameter causes the libexec files to be installed in the
preferred location of $GNOME_PREFIX/lib/libgnomeui
instead of
$GNOME_PREFIX/libexec
.
--with-kde-datadir=$KDE_PREFIX/share
: Use
this parameter if you have KDE 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.
if [ ... != "/usr" ]; then ...;
fi: This command is used to create a symbolic
link in instances where the GNOME installation prefix is anything
other than /usr
.
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
$GNOME_PREFIX
/:
include/libgnomeui-2.0, lib/{gtk-2.0/2.10.0/filesystems,
libgnomeui} and share/gtk-doc/html/libgnomeui
Last updated on 2007-08-08 10:33:15 -0500
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.
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
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/gail
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
).
Install GAIL by running the following commands:
./configure --prefix=$(pkg-config --variable=prefix ORBit-2.0) && make
This package does not come with a test suite.
Now, as the root
user:
make install && if [ $(pkg-config --variable=prefix ORBit-2.0) != "/usr" ]; then ln -v -s $(pkg-config --variable=prefix \ ORBit-2.0)/lib/gtk-2.0/modules \ /usr/lib/gtk-2.0 fi
--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.
$GNOME_PREFIX
/:
include/gail-1.0, lib/gtk-2.0/modules and
share/gtk-doc/html/gail-libgail-util
Last updated on 2007-08-08 09:57:59 -0500
The GTK Engines package contains eight themes/engines and two additional engines for GTK2.
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)
GTK+-2.10.13 and XML::Parser-2.34
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/gtk-engines
Install GTK Engines by running the following commands:
./configure --prefix=/usr && make
To test the results, issue: make check. This takes quite a while.
Now, as the root
user:
make install
Last updated on 2007-08-08 10:33:15 -0500
The GNOME Themes package contains several more theme sets.
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
icon-naming-utils-0.8.2 and GTK Engines-2.10.2
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/gnome-themes
Install GNOME Themes by running the following commands:
./configure --prefix=/usr --enable-all-themes && make
This package does not come with a test suite.
Now, as the root
user:
make install
--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.
Last updated on 2007-07-25 09:48:30 -0500
The GNOME Doc Utils package is a collection of documentation utilities for the GNOME project. Notably, it contains utilities for building documentation and all auxiliary files in your source tree, and it contains the DocBook XSLT stylesheets that were once distributed with Yelp. Starting with GNOME 2.8, Yelp requires GNOME Doc Utils for the XSLT. Starting with GNOME 2.12, many of the core GNOME packages require GNOME Doc Utils.
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
libxslt-1.1.22, which-2.19, and XML::Parser-2.34
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.
pkg-config-0.22 and intltool-0.35.5
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/gnome-doc-utils
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
).
Install GNOME Doc Utils by running the following commands:
./configure --prefix=$(pkg-config --variable=prefix ORBit-2.0) \ --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
--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)
.
$GNOME_PREFIX
/share/:
gnome-doc-utils, gnome/help/gnome-doc-{make,xslt},
omf/gnome-doc-{make,xslt}, xml/gnome and xml2po}
Last updated on 2008-03-10 16:14:10 -0500
The GNOME Desktop package
contains the gnome-about program, the
libgnome-desktop-2
library and
GNOME's core graphics files
and icons.
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
libgnomeui-2.18.1 and GNOME Doc Utils-0.10.3
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/gnome-desktop
Install GNOME Desktop 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
--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-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.
$GNOME_PREFIX
/:
include/gnome-desktop-2.0, share/{gnome-about,
{gnome/help,omf}/{fdl,gnome-feedback,gpl,lgpl},
gtk-doc/html/gnome-desktop}
Last updated on 2007-07-25 09:48:30 -0500
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.
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
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/gnome-backgrounds
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
).
Install gnome-backgrounds by running the following commands:
./configure --prefix=$(pkg-config --variable=prefix ORBit-2.0) && make
This package does not come with a test suite.
Now, as the root
user:
make install
--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.
$GNOME_PREFIX
/share/{gnome-background-properties,
pixmaps/backgrounds}
Last updated on 2007-07-25 09:48:30 -0500
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.
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
GLib-2.12.12 and XML::Parser-2.34
Python-2.5.2, Gamin-0.1.9, and intltool-0.35.5
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/gnome-menus
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
).
Install gnome-menus by running the following commands:
./configure --prefix=$(pkg-config --variable=prefix ORBit-2.0) \ --sysconfdir=/etc/gnome/2.18.3 \ --enable-inotify && make
This package does not come with a test suite.
Now, as the root
user:
make install
--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.
--enable-inotify
:
This parameter is used so that file polling is accomplished
using the kernel inotify calls, instead of using other
polling methods. Remove this parameter if you wish to fall
back to Gamin as the file
polling method.
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
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
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:
export PYTHONPATH=$PYTHONPATH:$(pkg-config --variable=prefix \
ORBit-2.0)/lib/python2.5/site-packages:$(pkg-config \
--variable=prefix \
ORBit-2.0)/lib/python2.5/site-packages/GMenuSimpleEditor
$GNOME_PREFIX
/: include/gnome-menus,
lib/python2.5/site-packages/GMenuSimpleEditor,
share/{desktop-directories, gnome-menus}
Last updated on 2008-03-17 13:11:35 -0500
The GNOME Panel package contains hooks to the menu sub-system and the applet sub-system.
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
GNOME Desktop-2.18.3, libwnck-2.18.3, and gnome-menus-2.18.3
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
The libxml2 Python module must have been built during the installation of libxml2 else the GNOME Panel build will fail.
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/gnome-panel
Install GNOME Panel by running the following commands:
./configure --prefix=$(pkg-config --variable=prefix ORBit-2.0) \ --sysconfdir=/etc/gnome/2.18.3 \ --localstatedir=/var/lib \ --libexecdir=$(pkg-config \ --variable=prefix ORBit-2.0)/lib/gnome-panel \ --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
--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.
$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}}
Last updated on 2007-07-25 09:48:30 -0500
The VTE package contains a termcap file implementation for terminal emulators.
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
GTK+-2.10.13 and XML::Parser-2.34
GTK-Doc-1.8, intltool-0.35.5, and PyGTK-2.10.6 (including the gtk module)
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/vte
Install VTE by running the following commands:
sed -i 's%\\177:%&kh=\\EOH:@7=\\EOF:%' termcaps/xterm && ./configure --prefix=/usr \ --libexecdir=/usr/lib/vte && make
This package does not come with a test suite.
Now, as the root
user:
make install
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.
Last updated on 2007-08-12 11:35:36 -0500
The GNOME Terminal package contains the console. This is useful for executing programs from a command prompt.
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
libgnomeui-2.18.1, GNOME Doc Utils-0.10.3, VTE-0.16.6, and startup-notification-0.9
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/gnome-terminal
Install GNOME Terminal 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
--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
.
$GNOME_PREFIX
/share/{,gnome/help/,omf/}gnome-terminal
Last updated on 2007-07-25 09:48:30 -0500
The LibGTop package contains the GNOME top libraries.
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
GDBM-1.8.3, GTK-Doc-1.8, and X Window System
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/libgtop
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
).
Install LibGTop by running the following commands:
./configure --prefix=$(pkg-config --variable=prefix ORBit-2.0) \ --infodir=$(pkg-config \ --variable=prefix ORBit-2.0)/share/info && make
This package does not come with a test suite.
Now, as the root
user:
make install
If you passed --with-libgtop-examples
to the configure script to build
the example programs, install them using the following
commands as the root
user:
install -v -m755 -d $(pkg-config \ --variable=prefix ORBit-2.0)/lib/libgtop/examples && install -v -m755 examples/.libs/* \ $(pkg-config --variable=prefix ORBit-2.0)/lib/libgtop/examples
--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.
$GNOME_PREFIX
/:
include/libgtop-2.0 and lib/libgtop/examples
Last updated on 2007-07-25 19:31:00 -0500
The libgnomekbd package contains xkb hooks used by the GNOME desktop.
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
libxklavier-3.2 and libgnomeui-2.18.1
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/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
--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.
$GNOME_PREFIX
:
/include/libgnomekbd and /share/libgnomekbd
Last updated on 2007-07-27 13:49:21 -0500
The EEL package contains the Eazel Extensions Library. This is a collection of widgets and extensions to the GNOME platform.
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
GNOME Desktop-2.18.3, gnome-menus-2.18.3, and GAIL-1.18.0
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/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
--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.
$GNOME_PREFIX
/include/eel-2
Last updated on 2007-07-25 09:48:30 -0500
The Nautilus package contains the GNOME shell and file manager.
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
EEL-2.18.3, EsounD-0.2.37, libexif-0.6.16, and librsvg-2.16.1
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
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/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
--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.
$GNOME_PREFIX
/:
include/nautilus, share/{doc/nautilus-2.18.3,
{,pixmaps}nautilus}
Last updated on 2007-08-05 17:14:40 -0500
The Control Center package contains the GNOME settings managers.
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
GStreamer Base Plug-ins-0.10.13, libgnomekbd-2.18.2, Metacity-2.18.5, and Nautilus-2.18.3
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.
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/control-center
Install Control Center by running the following commands:
./configure --prefix=$(pkg-config --variable=prefix ORBit-2.0) \ --sysconfdir=/etc/gnome/2.18.3 \ --localstatedir=/var/lib \ --libexecdir=$(pkg-config \ --variable=prefix ORBit-2.0)/lib/control-center && make
This package does not come with a test suite.
Now, as the root
user:
make install
--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/control-center
:
This parameter causes the libexec files to be installed in
the preferred location of $GNOME_PREFIX/lib/control-center
instead of
$GNOME_PREFIX/libexec
.
--enable-aboutme
: Enables
building the gnome-about-me capplet.
Evolution Data Server must
be installed to use this parameter.
If HAL was linked into the
build and GNOME is being installed in any location other
than /usr
, you should create
a local D-Bus session
configuration file so that the installed org.gnome.SettingsDaemon.service
file can
be discovered by D-Bus.
You should reference the information on the D-Bus page for instructions on how to
create a D-Bus custom services
directory. You may disregard this if you already
created the local D-Bus
session configuration file during the GNOME VFS installation.
$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}}
Last updated on 2007-07-25 09:48:30 -0500
The GNOME Applets package contains small applications which generally run in the background and display their output to the GNOME panel.
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
ScrollKeeper-0.3.14, GAIL-1.18.0, GNOME Icon Theme-2.18.0, GNOME Panel-2.18.3
PyGTK-2.10.6 (including the gtk and gtk.libglade modules) and Gnome-Python-Desktop-2.18.0 (including the gnomeapplet module)
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
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/gnome-applets
Install GNOME Applets by running the following commands:
./configure --prefix=$(pkg-config --variable=prefix ORBit-2.0) \ --sysconfdir=/etc/gnome/2.18.3 \ --localstatedir=/var/lib \ --libexecdir=$(pkg-config \ --variable=prefix ORBit-2.0)/lib/gnome-applets \ --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 && make -C man install-man
--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.
$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}
Last updated on 2007-08-12 11:35:36 -0500
The GNOME Session package contains the GNOME session manager.
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
GNOME Desktop-2.18.3 and Control Center-2.18.1
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/gnome-session
Install GNOME Session by running the following commands:
./configure --prefix=$(pkg-config --variable=prefix ORBit-2.0) \ --sysconfdir=/etc/gnome/2.18.3 \ --mandir=$(pkg-config \ --variable=prefix ORBit-2.0)/share/man \ --with-at-spi-registryd-directory=$(pkg-config \ --variable=prefix ORBit-2.0)/lib/at-spi make
This package does not come with a test suite.
Now, as the root
user:
make install
--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.
--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-at-spi-registryd-directory=...
:
This parameter is used to identify where the AT-SPI Registry
daemon is located, as the default is $GNOME_PREFIX
/libexec.
$GNOME_PREFIX
/share/pixmaps/splash
starts up the GNOME desktop. |
|
session utilities includes a configuration program and other session management related utilities. |
|
uses the |
Last updated on 2007-08-24 21:22:20 -0500
The Yelp package contains the help browser. This is useful for viewing help files.
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
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)
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.
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/yelp
Install Yelp by running the following commands:
./configure --prefix=$(pkg-config --variable=prefix ORBit-2.0) \ --sysconfdir=/etc/gnome/2.18.3 \ --localstatedir=/var/lib \ --enable-cpp-rtti && make
This package does not come with a test suite.
Now, as the root
user:
make install
--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
.
$GNOME_PREFIX
/share/yelp
Last updated on 2007-07-27 13:49:21 -0500
The GNOME User Docs package contains documentation for GNOME.
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
GNOME Doc Utils-0.10.3 and which-2.19
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/gnome-user-docs
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
).
Install GNOME User Docs by running the following commands:
./configure --prefix=$(pkg-config --variable=prefix ORBit-2.0) \ --localstatedir=/var/lib && make
This package does not come with a test suite.
Now, as the root
user:
make install
--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
.
$GNOME_PREFIX
/share/{gnome/help/{gnome-access-guide,
system-admin-guide, user-guide},
omf/{gnome-user-docs,user-guide}}
Last updated on 2007-07-25 09:48:30 -0500
Create (or append to) a ~/.xinitrc
file to start GNOME:
echo "exec gnome-session" >> ~/.xinitrc
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:
echo "exec dbus-launch --exit-with-session gnome-session" >> ~/.xinitrc
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 the MIME-type application database (as root
):
update-desktop-database
At this point you can bring up GNOME with startx.
Last updated on 2007-07-25 09:48:30 -0500
These packages are modular and add desktop applications and assorted utilities to the GNOME environment. Feel free to install them on an as needed or as desired basis.
The Evolution Data Server package provides a unified backend for programs that work with contacts, tasks, and calendar information. It was originally developed for Evolution (hence the name), but is now used by other packages as well.
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)
libgnomeui-2.18.1 and libsoup-2.2.100
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.
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
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/evolution-data-server
Install Evolution Data Server by running the following commands:
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
./configure --prefix=$(pkg-config --variable=prefix ORBit-2.0) \ --libexecdir=$(pkg-config --variable=prefix \ ORBit-2.0)/lib/evolution-data-server-1.2 \ --enable-nntp \ --enable-gnome-keyring \ --enable-nss \ --enable-smime && make
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
--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.
To enable many of the optional dependencies, review the information from ./configure --help for the necessary parameters you must pass to the configure script.
$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}
Last updated on 2007-07-25 09:54:33 -0500
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.
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
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/gnome-audio
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
).
Install gnome-audio by
running the following command as the root
user:
make prefix=$(pkg-config --variable=prefix ORBit-2.0) install
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.
$GNOME_PREFIX
/share/sounds
Last updated on 2007-10-16 06:56:37 -0500
The GtkHTML package contains a lightweight HTML rendering/printing/editing engine.
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
libgnomeui-2.18.1, GAIL-1.18.0, GNOME Icon Theme-2.18.0, and libgnomeprintui-2.18.0
libsoup-2.2.100 and intltool-0.35.5
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/gtkhtml
Install GtkHTML by running the following commands:
./configure --prefix=$(pkg-config --variable=prefix ORBit-2.0) \ --libexecdir=$(pkg-config \ --variable=prefix ORBit-2.0)/lib/gtkhtml && make
This package does not come with a test suite.
Now, as the root
user:
make install
--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
.
$GNOME_PREFIX
/:
include/libgtkhtml-3.14, lib/gtkhtml, and
share/gtkhtml-3.14
Last updated on 2007-07-25 19:31:00 -0500
The gtksourceview package
contains libgtksourceview
libraries. This is useful for extending the GTK text functions to include syntax
highlighting.
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
GTK+-2.10.13 and XML::Parser-2.34
GNOME Virtual File System-2.18.1 and libgnomeprintui-2.18.0
GTK-Doc-1.8 and intltool-0.35.5
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/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
--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.
$GNOME_PREFIX
/:
include/gtksourceview-1.0,
share/{gtk-doc/html/gtksourceview,
gtksourceview-1.0}
Last updated on 2007-07-25 09:54:33 -0500
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.
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
CUPS-1.2.12, GLib-2.12.12, and XML::Parser-2.34
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/libgnomecups
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
).
Install libgnomecups by running the following commands:
./configure --prefix=$(pkg-config --variable=prefix ORBit-2.0) && make
This package does not come with a test suite.
Now, as the root
user:
make install
--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.
$GNOME_PREFIX
/include/libgnomecups-1
Last updated on 2007-04-04 14:42:53 -0500
The libgnomeprint package
contains libgnomeprint
libraries.
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
Pango-1.16.4, libart_lgpl-2.3.19, popt-1.10.4, libxml2-2.6.31, and XML::Parser-2.34
libgnomecups-0.2.2, GTK-Doc-1.8, and DocBook-utils-0.6.14
If you have CUPS-1.2.12 installed, you must also have
libgnomecups-0.2.2 installed or pass
--without-cups
to the
configure
command in the instructions below.
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/libgnomeprint
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
).
Install libgnomeprint by running the following commands:
./configure --prefix=$(pkg-config --variable=prefix ORBit-2.0) \ --disable-gtk-doc && make
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
--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.
$GNOME_PREFIX
/:
include/libgnomeprint-2.2, lib/libgnomeprint,
share/{,gtk-doc/html/}libgnomeprint
Last updated on 2007-10-16 06:56:37 -0500
The libgnomeprintui package
contains the libgnomeprintui
library.
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
libgnomecanvas-2.14.0, GNOME Icon Theme-2.18.0, and libgnomeprint-2.18.0
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/libgnomeprintui
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
).
Install libgnomeprintui by running the following commands:
./configure --prefix=$(pkg-config --variable=prefix ORBit-2.0) && make
This package does not come with a test suite.
Now, as the root
user:
make install
--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 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.
$GNOME_PREFIX
/:
include/libgnomeprintui-2.2 and
share/{,gtk-doc/html/}libgnomeprintui
Last updated on 2007-07-25 09:54:33 -0500
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.
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
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/system-tools-backends
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
).
Install system-tools-backends 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
--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.
$GNOME_PREFIX
/share/setup-tool-backends
Last updated on 2007-08-25 06:12:47 -0500
The bug-buddy package contains a graphical bug reporting tool. This can extract debugging information from a core file or crashed application.
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
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
NetworkManager (download), and intltool-0.35.5
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/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
--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)
.
$GNOME_PREFIX
/share/{,gnome/help/
,omf/}bug-buddy
Last updated on 2007-07-25 10:05:53 -0500
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.
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
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)
intltool-0.35.5, GNOME Doc Utils-0.10.3, SDL-1.2.11 (required for full-screen video), and Avahi
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/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.
--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
.
$GNOME_PREFIX
/share/{gnome/help/, omf/,
pixmaps/, sounds/}ekiga
Last updated on 2008-03-14 18:44:40 -0500
The EOG package contains Eye of GNOME. This is useful for viewing and cataloging image files.
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
GNOME Desktop-2.18.3 and GNOME Icon Theme-2.18.0
intltool-0.35.5, libexif-0.6.16, and little cms-1.16
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/eog
Install EOG 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
--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
.
$GNOME_PREFIX
/share/{,gnome/help/ ,omf/
,pixmaps/}eog
Last updated on 2007-09-12 06:46:11 -0500
Epiphany is a simple yet powerful GNOME web browser targeted at non-technical users. Its principles are simplicity and standards compliance.
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
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)
PyGTK-2.10.6 (including the gtk module) and Gnome-Python-2.18.2
Enchant, intltool-0.35.5, and GTK-Doc-1.8
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/epiphany
Install Epiphany 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
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.
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
--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)
.
$GNOME_PREFIX
/:
include/epiphany-2.14, lib/epiphany, share/{,gnome/help/,
gtk-doc/html/, omf/}epiphany
Last updated on 2008-03-14 10:09:03 -0500
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.
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
libgnomeui-2.18.1, GNOME Icon Theme-2.18.0, and GNOME Doc Utils-0.10.3
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)
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/evince
Install Evince 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 \ --disable-ps \ --enable-pixbuf && make
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.
Now, as the root
user:
make install
--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.
$GNOME_PREFIX
/share/{,gnome/help/
,omf/}evince
Last updated on 2008-05-09 08:00:42 -0500
File Roller is an archive manager for GNOME with support for tar, bzip2, gzip, zip, jar, compress, lzop and many other archive formats.
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
libgnomeui-2.18.1 and GNOME Doc Utils-0.10.3
intltool-0.35.5 and Nautilus-2.18.3
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/file-roller
Install File Roller by running the following commands:
./configure --prefix=$(pkg-config --variable=prefix ORBit-2.0) \ --libexecdir=$(pkg-config \ --variable=prefix ORBit-2.0)/lib \ --sysconfdir=/etc/gnome/2.18.3 \ --localstatedir=/var/lib \ --disable-nautilus-actions && make
This package does not come with a test suite.
Now, as the root
user:
make install
--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-nautilus-actions
:
This parameter is required if Nautilus is not installed. Remove the
parameter if Nautilus is
installed.
$GNOME_PREFIX
/lib/file-roller,
$GNOME_PREFIX
/share/{,gnome/help/
,omf/}file-roller
Last updated on 2008-03-13 19:38:41 -0500
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.
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
libgnomeui-2.18.1 and GNOME Doc Utils-0.10.3
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/gcalctool
Install gcalctool 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
--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)
.
$GNOME_PREFIX
/share/{gnome/help/,
omf/}gcalctool
Last updated on 2008-03-13 19:38:41 -0500
The GConf Editor package contains a GUI editor for the GConf configuration database.
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
libgnomeui-2.18.1 and GNOME Doc Utils-0.10.3
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/gconf-editor
Install GConf Editor 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
--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
.
$GNOME_PREFIX
/share/{gnome/help, omf,
pixmaps}/gconf-editor
Last updated on 2007-08-11 16:21:32 -0500
The GDM package contains GNOME's Display Manager daemon. This is useful for allowing configurable graphical logins.
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
libgnomecanvas-2.14.0, GNOME Doc Utils-0.10.3, and librsvg-2.16.1
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.
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/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:
groupadd -g 21 gdm && useradd -c "GDM Daemon Owner" -d /dev/null \ -g gdm -s /bin/bash -u 21 gdm
Install GDM by running the following commands as an unprivileged user:
./configure --prefix=$(pkg-config --variable=prefix ORBit-2.0) \ --sysconfdir=/etc/gnome/2.18.3 \ --localstatedir=/var/lib \ --libexecdir=$(pkg-config \ --variable=prefix ORBit-2.0)/lib/gdm \ --mandir=$(pkg-config \ --variable=prefix ORBit-2.0)/share/man \ --with-pam-prefix=/etc && make
This package does not come with a test suite.
Now, as the root
user:
make install
--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
.
Starting with the 2.14.x version of GNOME, the default
configuration parameters are stored in a static file
(
).
This file is not intended to be edited. If modification of
the configuration is necessary, you should add parameters
to the $GNOME_PREFIX
/share/gdm/defaults.conf/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:
install -v -m755 -d /var/log/gdm && sed -i.orig "/\[daemon\]/ a LogDir=/var/log/gdm" \ /etc/gnome/2.18.3/gdm/custom.conf && rmdir -v /var/lib/log/gdm && rmdir -v /var/lib/log
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:
cat > /etc/pam.d/gdm << "EOF"auth required pam_unix.so auth requisite pam_nologin.so account required pam_unix.so password required pam_unix.so session required pam_unix.so
EOF cat > /etc/pam.d/gdm-autologin << "EOF"auth required pam_env.so auth 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.
cat > $GNOME_PREFIX/share/xsessions/gnome-dbus.desktop << "EOF"
[Desktop Entry]
Encoding=UTF-8
Name=GNOME with D-BUS
Comment=GNOME Desktop with D-BUS support
Exec=dbus-launch --exit-with-session gnome-session
TryExec=/usr/bin/dbus-launch
Icon=
Type=Application
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.
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.
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
Now edit /etc/inittab
so that
the line containing:
id:3:initdefault:
is changed to:
id:5:initdefault:
$GNOME_PREFIX
/:
share/{,gnome/help/ ,omf/}gdm
is a wrapper script to execute the GDM binary, the configurable GNOME based login prompt. |
|
sends the HUP signal to the GDM daemon so that it restarts. It's used after the config file is edited |
|
sends the USR1 signal to the GDM daemon so that it restarts. It's used after the config file is edited. |
|
is a graphical interface to edit the |
Last updated on 2007-07-26 13:58:49 -0500
The gedit package contains a lightweight UTF-8 text editor for the GNOME desktop.
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)
libgnomeui-2.18.1, libgnomeprintui-2.18.0, GNOME Doc Utils-0.10.3, gtksourceview-1.8.5, and which-2.19
ISO Codes-1.2 and Enchant*
PyGTK-2.10.6 (including the gtk, pango and gtk.libglade modules) and Gnome-Python-Desktop-2.18.0 (including the gtksourceview module)
intltool-0.35.5, GTK-Doc-1.8, libattr
* 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.
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/gedit
Install gedit by running the following commands:
./configure --prefix=$(pkg-config --variable=prefix ORBit-2.0) \ --sysconfdir=/etc/gnome/2.18.3 \ --localstatedir=/var/lib \ --disable-spell && make
This package does not come with a test suite.
Now, as the root
user:
make install
--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.
$GNOME_PREFIX
/:
include/gedit-2.16, lib/gedit-2, share/{gedit-2,
{gnome/help, omf}/gedit}
Last updated on 2007-08-12 11:35:36 -0500
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/.
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
libgnomeui-2.18.1, GNOME Doc Utils-0.10.3, Gnome-Python-Desktop-2.18.0, and librsvg-2.16.1
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.
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/gnome-games
Some of the GNOME Games game
binaries need to be setgid to track high scores. Create a
separate user and group for games. See the README
file in the source directory for
more information:
install -v -m755 -d /var/lib/games && groupadd -g 60 games && useradd -c 'Games High Score Owner' -d /var/lib/games \ -g games -s /bin/false -u 60 games && chown -v games:games /var/lib/games
Install GNOME Games by running the following commands:
./configure --prefix=$(pkg-config --variable=prefix ORBit-2.0) \ --sysconfdir=/etc/gnome/2.18.3 \ --localstatedir=/var/lib && make
To test the results, issue make check.
Now, as the root
user:
make install
--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.
$GNOME_PREFIX
/: share/{{many
game names}, {,omf/}gnome-games,
{,help,pixmaps,sound}/{game names}, /var/lib/games
See the README
file in the
source tree for a description of each game.
Last updated on 2008-05-09 07:42:27 -0500
The GNOME Keyring Manager package contains a keyring management program for the GNOME Desktop. This is useful for maintenance of a keyring database using a graphical user interface.
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
libgnomeui-2.18.1 and GNOME Doc Utils-0.10.3
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/gnome-keyring-manager
Install GNOME Keyring Manager 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
--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)
.
$GNOME_PREFIX
/share/{,gnome/help/
,omf/}gnome-keyring-manager
Last updated on 2008-03-13 19:38:41 -0500
The GNOME Media package contains GNOME's media applications.
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
ScrollKeeper-0.3.14, EsounD-0.2.37, and libgnomeui-2.18.1
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
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/gnome-media
Install GNOME Media by running the following commands:
./configure --prefix=$(pkg-config --variable=prefix ORBit-2.0) \ --sysconfdir=/etc/gnome/2.18.3 \ --localstatedir=/var/lib \ --libexecdir=$(pkg-config \ --variable=prefix ORBit-2.0)/lib/gnome-media && make
This package does not come with a test suite.
Now, as the root
user:
make install
--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-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
.
$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}}
Last updated on 2007-10-16 06:56:37 -0500
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.
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-keyring-0.8.1 and HAL-0.5.9.1
Nautilus-2.18.3, libnotify, and intltool-0.35.5
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/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
--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.
$GNOME_PREFIX
/share/gnome-mount
is used to automatically mount storage media and other removable media. |
|
is a symbolic link to gnome-mount used to automatically unmount storage media and other removable media. |
|
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. |
Last updated on 2007-07-25 10:05:53 -0500
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.
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
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/gnome-netstatus
Install GNOME Netstatus by running the following commands:
./configure --prefix=$(pkg-config --variable=prefix ORBit-2.0) \ --sysconfdir=/etc/gnome/2.18.3 \ --localstatedir=/var/lib \ --libexecdir=$(pkg-config \ --variable=prefix ORBit-2.0)/lib/gnome-netstatus && make
This package does not come with a test suite.
Now, as the root
user:
make install
--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-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
.
$GNOME_PREFIX
/share/{,gnome/help/
,omf/}gnome-netstatus
Last updated on 2008-03-13 19:38:41 -0500
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.
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
libgnomeui-2.18.1 and gnome-menus-2.18.3
intltool-0.35.5, libexif-0.6.16, Linux-PAM-0.99.10.0, libgnomekbd-2.18.2, XScreenSaver-5.03 (and libxslt-1.1.22), GDM-2.18.3, and xmlto
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/gnome-screensaver
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
Also add the following parameter to the configure script below:
--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
Install gnome-screensaver by running the following commands:
sed -i 's|etc/pam\.d"|etc"|' data/Makefile.in && ./configure --prefix=$(pkg-config --variable=prefix ORBit-2.0) \ --sysconfdir=/etc/gnome/2.18.3 \ --libexecdir=$(pkg-config \ --variable=prefix ORBit-2.0)/lib/gnome-screensaver \ --with-pam-prefix=/etc && make
If you have XScreenSaver
installed and wish to import any or all of the
“hacks” into
gnome-screensaver themes,
you'll need to identify which “hacks” you wish to import. The commands
below will import all of them. If you want to import less
than all of them, modify the setting of the XSAVERLIST
environment variable below (listing
the desired hacks by filename without the extension, space
delimited) and issue the following commands:
mkdir xscreensavers && cd xscreensavers && XSAVERLIST="*" && for SAVERLIST in $(ls ${XSAVERDIR}/${XSAVERLIST}.xml); do ../data/migrate-xscreensaver-config.sh $SAVERLIST done && 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" && install -v -m644 -D doc/gnome-screensaver.html \ ${GNOMEDOCDIR}/gnome-screensaver.html && unset GNOMEDOCDIR
If you identified some, or all, XScreenSaver hacks to be imported into
gnome-screensaver, install
them by issuing the following commands as the root
user:
install -v -m755 -d $(pkg-config --variable=prefix \ ORBit-2.0)/share/gnome-screensaver/themes/xscreensaver && install -v -m644 xscreensavers/*.desktop \ $(pkg-config --variable=prefix \ ORBit-2.0)/share/gnome-screensaver/themes/xscreensaver
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.
Most of the gnome-screensaver configuration parameters can be modified using the menu item from the — drop-down menu. Some of the fine-tuning parameters are only available using GConf Editor-2.18.0.
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:
cat > /etc/pam.d/gnome-screensaver << "EOF"
# File: /etc/pam.d/gnome-screensaver
auth required pam_unix.so
account required pam_unix.so
session required pam_unix.so
password required pam_unix.so
EOF
chmod -v 644 /etc/pam.d/gnome-screensaver
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.
$GNOME_PREFIX
/share/{doc/gnome-screensaver-2.18.2,
gnome-screensaver, pixmaps/backgrounds/cosmos}
Last updated on 2007-07-27 13:49:21 -0500
The GNOME System Monitor package contains gnome-system-monitor, GNOME's replacement for gtop.
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
GNOME Virtual File System-2.18.1, GNOME Icon Theme-2.18.0, GNOME Doc Utils-0.10.3, libwnck-2.18.3, and LibGTop-2.14.9
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/gnome-system-monitor
Install GNOME System Monitor 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
--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
.
$GNOME_PREFIX
/share/{gnome/help,
omf}/gnome-system-monitor
Last updated on 2008-03-13 19:38:41 -0500
The GNOME Utilities package contains a collection of small applications designed to make your life a little easier.
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
GNOME Panel-2.18.3, libgnomeprintui-2.18.0, and LibGTop-2.14.9
intltool-0.35.5, Linux-PAM-0.99.10.0 (only if consolehelper is also installed), and HAL-0.5.9.1
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/gnome-utils
Install GNOME Utilities by running the following commands:
./configure --prefix=$(pkg-config --variable=prefix ORBit-2.0) \ --sysconfdir=/etc/gnome/2.18.3 \ --localstatedir=/var/lib \ --libexecdir=$(pkg-config \ --variable=prefix ORBit-2.0)/lib/gnome-utils \ --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
--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/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
.
$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}
formats floppy disks under Linux. |
|
allows you to look up definitions and spelling of words. |
|
is used to capture the contents of the current desktop as a graphics formatted file. |
|
allows you to search for files on your system using simple and advanced search options. |
|
allows you to monitor and view system log files. |
Last updated on 2007-07-26 13:58:49 -0500
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.
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
libgnomeui-2.18.1 and HAL-0.5.9.1
intltool-0.35.5, Nautilus-2.18.3, and libnotify
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/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
--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.
--disable-multiuser
:
Without this parameter, gnome-volume-manager will only allow the
user who is at the active console to manage volumes. This is
determined through the Linux-PAM-0.99.10.0 module
pam_console.
If your system is configured to use pam_console,
you can drop this parameter.
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.
$GNOME_PREFIX
/share/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. |
|
is a control panel applet for gnome-volume-manager. It is also provides a graphical configuration interface. |
Last updated on 2007-07-25 17:49:11 -0500
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.
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
GTK+-2.10.13 and XML::Parser-2.34
GNOME Doc Utils-0.10.3 (to build the user manual), libgnomeui-2.18.1, and intltool-0.35.5
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/gucharmap
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
).
Install gucharmap by running the following commands:
./configure --prefix=$(pkg-config --variable=prefix ORBit-2.0) \ --localstatedir=/var/lib && make
This package does not come with a test suite.
Now, as the root
user:
make install
--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
.
$GNOME_PREFIX
/:
include/gucharmap and
share/{gnome/help/,omf/}/gucharmap
Last updated on 2007-07-25 10:05:53 -0500
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.
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
Nautilus-2.18.3 and HAL-0.5.9.1
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.
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/NautilusCdBurner
Install Nautilus CD Burner 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/nautilus-cd-burner && make
This package does not come with a test suite.
Now, as the root
user:
make install
--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/nautilus-cd-burner
: This parameter
causes the libexec files to be installed in the preferred
location of $GNOME_PREFIX/lib/nautilus-cd-burner
instead of $GNOME_PREFIX/libexec
.
$GNOME_PREFIX
/:
include/libnautilus-burn, lib/nautilus-cd-burner and
share/nautilus-cd-burner
Last updated on 2007-07-25 10:05:53 -0500
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.
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
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
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
GStreamer Ugly Plug-ins-0.10.6 (for the lame plugin)
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:
gst-inspect | grep cdparanoiasrc
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/sound-juicer
Install Sound_Juicer 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
--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
.
$GNOME_PREFIX
/share/{,gnome/help/
,omf/}sound-juicer
Last updated on 2007-09-12 06:22:54 -0500
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.
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
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.
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
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/totem
Install Totem by running the following commands:
./configure --prefix=$(pkg-config --variable=prefix ORBit-2.0) \ --sysconfdir=/etc/gnome/2.18.3 \ --localstatedir=/var/lib \ --libexecdir=$(pkg-config \ --variable=prefix ORBit-2.0)/lib/totem \ --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
--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)
.
$GNOME_PREFIX
/: include/totem,
lib/totem, share/{,gnome/help/ ,omf/}totem
Last updated on 2007-09-11 08:13:41 -0500
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.
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
libgnomecanvas-2.14.0 and GNOME Doc Utils-0.10.3
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/zenity
Install Zenity by running the following commands:
./configure --prefix=$(pkg-config --variable=prefix ORBit-2.0) \ --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
--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
.
--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)
.
$GNOME_PREFIX
/share/{,gnome/help/
,omf/}zenity
Last updated on 2007-07-26 13:58:49 -0500
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.
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
GAIL-1.18.0 and libbonobo-2.18.0
intltool-0.35.5 and GTK-Doc-1.8
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/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
--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.
$GNOME_PREFIX
/:
include/at-spi-1.0, lib/at-spi,
share/{gtk-doc/html/at-spi-cspi, idl/at-spi-1.0}
Last updated on 2007-08-08 11:49:50 -0500
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.
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
GNOME Desktop-2.18.3, colorblind, PyGTK-2.10.6 (including the gtk and gtk.libglade modules), PyORBit-2.14.3, Gnome-Python-2.18.2 (including the gnome.ui module), and Gnome-Python-Desktop-2.18.0 (including the gnomeapplet module)
intltool-0.35.5 and Doxygen-1.5.2
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/gnome-mag
If Doxygen-1.5.2 is installed, the reference documentation is automatically generated. Install GNOME Magnifier 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
For full functionality of this package, you should install the libgail-gnome-1.18.0 package.
--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.
$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}
Last updated on 2008-05-09 08:00:42 -0500
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.
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
Java Access Bridge-1.18.0, FreeTTS-1.2.1, DECtalk, eSpeak, Festival, Loquendo, Speech Dispatcher, Speechworks ETI Eloquence, Swift, Theta, and ViaVoice
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/gnome-speech
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.
Install GNOME Speech by running the following commands:
./configure --prefix=$(pkg-config --variable=prefix ORBit-2.0) && make
This package does not come with a test suite.
Now, as the root
user:
make install && install -v -m644 -D doc/gnome-speech.html \ $(pkg-config --variable=prefix \ ORBit-2.0)/share/doc/gnome-speech-0.4.16/gnome-speech.html
--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.
You can test all the available backend drivers, voices and audio hardware using the test-speech command. Invoking test-speech produces a menu allowing you to select a backend driver and the desired voice, then prompts you (with on-screen prompts and text-to-speech audio) for additional information.
If you are using the FreeTTS
backend and you do not hear any audio, you may need to use
the streaming audio method instead of the clip audio method.
As the root
user, modify the
freetts-synthesis-driver
script:
sed -i "s/clip/streaming/" $GNOME_PREFIX
/bin/freetts-synthesis-driver
$GNOME_PREFIX
/:
include/gnome-speech-1.0, share/{doc/gnome-speech-0.4.16,
gnome-speech, idl/gnome-speech-1.0}
Last updated on 2007-08-08 11:49:50 -0500
GOK is a dynamic onscreen keyboard. It features Direct Selection, Dwell Selection, Automatic Scanning and Inverse Scanning access methods and includes word completion.
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
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
libusb-0.1.12, intltool-0.35.5, and GTK-Doc-1.8
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/gok
Install GOK by running the following commands:
./configure --prefix=$(pkg-config --variable=prefix ORBit-2.0) \ --sysconfdir=/etc/gnome/2.18.3 \ --localstatedir=/var/lib && make
To test the results, issue: make check.
Now, as the root
user:
make install && chmod -v 644 $(pkg-config --variable=prefix ORBit-2.0)/share/gnome/help/gok/C/legal.xml
For full functionality of this package, you should install the libgail-gnome-1.18.0 package.
--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
.
--enable-gtk-doc
: Use this
parameter if GTK-Doc is
installed and you wish to rebuild the API documentation.
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.
$GNOME_PREFIX
/:
share/{,gnome/help/ ,gtk-doc/html ,omf}gok
Last updated on 2007-08-08 11:49:50 -0500
The Java Access Bridge package contains Java components which connect the built-in accessibility support in Java Swing applications to the GNOME Accessibility framework, specifically the Assistive Technology Service Provider Interface (AT-SPI).
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
AT SPI-1.18.1 and JDK-6 Update 5
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/java-access-bridge
Install Java Access Bridge by running the following commands:
./configure --prefix=$(pkg-config --variable=prefix ORBit-2.0) && make
This package does not come with a test suite.
Now, as the root
user:
make install && cat $(pkg-config --variable=prefix \ ORBit-2.0)/share/jar/accessibility.properties \ >> $JAVA_HOME/jre/lib/accessibility.properties && chmod -v 644 $JAVA_HOME/jre/lib/accessibility.properties && ln -v -sf $(pkg-config --variable=prefix \ ORBit-2.0)/share/jar/gnome-java-bridge.jar \ $JAVA_HOME/jre/lib/ext
--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.
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.
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:
cat >> ~/.orbitrc << "EOF"
ORBIIOPIPv4=1
EOF
$GNOME_PREFIX
/share/jar
Last updated on 2007-08-08 11:49:50 -0500
The libgail-gnome package contains the GNOME Accessibility Implementation library additions which implement ATK interfaces for libbonoboui and libgnomeui widgets.
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
GNOME Panel-2.18.3 and AT SPI-1.18.1
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/libgail-gnome
Install libgail-gnome by running the following commands:
./configure --prefix=$(pkg-config --variable=prefix ORBit-2.0) && make
This package does not come with a test suite.
Now, as the root
user:
make install
--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.
Last updated on 2007-08-08 11:49:50 -0500
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.
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
AT SPI-1.18.1, PyORBit-2.14.3, and Gnome-Python-2.18.2
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)
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/orca
Install Orca by running the following commands:
if [ $(pkg-config --variable=prefix ORBit-2.0) != "/usr" ]; then sed -i "s|PATH=\"|&$(pkg-config \ --variable=prefix ORBit-2.0)/bin:|" \ src/orca/orca.in fi ./configure --prefix=/usr \ --enable-pydoc && make
This package does not come with a test suite.
Now, as the root
user:
make install && install -v -m755 -d /usr/share/doc/orca-2.18.1 && install -v -m644 docs/pydoc/*.html \ /usr/share/doc/orca-2.18.1
For full functionality of this package, you should install the libgail-gnome-1.18.0 package.
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).
Last updated on 2008-03-17 13:11:35 -0500
This chapter is a collection of independent projects that can be installed based on specific needs. Together, they create a respectable office suite. While they may be lacking in user interface consistency, they excel in doing one thing and doing it well.
The AbiWord package contains a word processing application. This is useful for writing reports, letters and other formatted documents.
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)
FriBidi-0.10.8 and libgnomeprintui-2.18.0
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).
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/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 && ./configure --prefix=/usr --without-inter7eps && make && cd ..
If you wish to create the API documentation, Doxygen-1.5.2 must be installed and issue the following commands:
pushd abi && doxygen && popd
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:
pushd abi && make check && popd
Now, as the root
user:
cd abi && make install && install -v -m755 -d /usr/share/doc/abiword-2.4.6 && install -v -m644 docs/*.* \ /usr/share/doc/abiword-2.4.6 && 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:
pushd abiword-docs && ./make-html.sh && cd ..
Then as the root
user,
install the help files:
install -v -m644 man/abiword.1 /usr/share/man/man1 && install -v -m644 Manual/en/Abiword_Manual.abw \ /usr/share/doc/abiword-2.4.6 && cp -v -Rf help /usr/share/AbiSuite-2.4/AbiWord && find /usr/share/AbiSuite-2.4/AbiWord/help \ -type d -exec chmod -v 755 {} \;
If you have a GNOME
installation, issue the following commands as the
root
user to install the
AbiWord Bonobo component
description file:
install -v -m644 abidistfiles/GNOME_AbiWord_Control_2_4.server \ $(pkg-config --variable=prefix ORBit-2.0)/lib/bonobo/servers && if [ $(pkg-config --variable=prefix ORBit-2.0) != "/usr" ]; then rmdir -v /usr/lib/{bonobo/servers,bonobo} fi
If you built the API documentation, install it by issuing the
following commands as the root
user:
install -v -m755 -d /usr/share/doc/abiword-2.4.6/api && for FILENAME in $(ls abi/docs/dox/html); do install -v -m644 abi/docs/dox/html/${FILENAME} \ /usr/share/doc/abiword-2.4.6/api done
--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
.
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
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.
Last updated on 2008-05-09 08:00:42 -0500
The Gnumeric package contains a spreadsheet program. This is useful for mathematical analysis.
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)
libgnomeprintui-2.18.0 and GOffice-0.6.1
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).
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.
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/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.
Now, as the root
user:
make install &&
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:
install -v -m755 -d /usr/share/doc/gnumeric-1.8.2/figures/icons && install -v -m644 doc/C/figures/*.png \ /usr/share/doc/gnumeric-1.8.2/figures && install -v -m644 doc/C/figures/icons/*.png \ /usr/share/doc/gnumeric-1.8.2/figures/icons && install -v -m644 doc/C/html/* \ /usr/share/doc/gnumeric-1.8.2 && 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:
install -v -m755 -d /usr/share/doc/gnumeric-1.8.2/developer && install -v -m644 doc/developer/* \ /usr/share/doc/gnumeric-1.8.2/developer && rm -v /usr/share/doc/gnumeric-1.8.2/developer/Makefile*
--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 Makefile
s with the same
prefix used in the GNOME Doc
Utils installation.
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.
Last updated on 2008-05-09 08:00:42 -0500
GnuCash is a personal finance manager.
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)
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)
Guile-1.8.2, SLIB-3a4, GOffice-0.6.1, and GtkHTML-3.14.3
PostgreSQL-8.2.4, Guile-www, and Electric Fence
ScrollKeeper-0.3.14 and Yelp-2.18.1 (run-time requirement to view the Help documents)
LibOFX (requires OpenSP-1.5.2 and cURL-7.16.3), KtoBlzCheck, and AqBanking (requires Gwenhywfar and libchipcard3)
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/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
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).
Now, as the root
user:
make install && mv -v /usr/share/gnucash/doc /usr/share/doc/gnucash-2.2.4 && ln -v -s ../doc/gnucash-2.2.4 /usr/share/gnucash/doc && for FILENAME in doc/{misc*,gnome*,generic*,build*}.txt \ doc/{gtkrc*,TRANSLATION_HOWTO,README.translator.txt} \ doc/README.{build-system,OFX,HBCI} do install -v -m644 ${FILENAME} /usr/share/doc/gnucash-2.2.4 done && install -v -m755 -d /usr/share/doc/gnucash-2.2.4/api/engine && install -v -m644 src/doc/{TODO*,*.txt,*.html} \ /usr/share/doc/gnucash-2.2.4/api && install -v -m644 src/engine/*.txt \ /usr/share/doc/gnucash-2.2.4/api/engine
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:
install -v -m755 -d /usr/share/doc/gnucash-2.2.4/{design,api}/html && install -v -m644 src/doc/design/gnucash-design.html/* \ /usr/share/doc/gnucash-2.2.4/design/html && install -v -m644 src/doc/design/gnucash-design.{pdf,ps,dvi} \ /usr/share/doc/gnucash-2.2.4/design && install -v -m644 src/doc/html/* \ /usr/share/doc/gnucash-2.2.4/api/html
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
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 -C help html && make -C guide html && make -C guide pdf
Now, as the root
user:
make install
If you built the Help Manual or Users Guide, install them
using the following commands as the root
user (modify as necessary):
install -v -m755 -d /usr/share/doc/gnucash-2.2.0/{users_guide,help} && cp -v -R help/C/gnucash-help/* \ /usr/share/doc/gnucash-2.2.0/help && cp -v -R guide/C/gnucash-guide/* \ /usr/share/doc/gnucash-2.2.0/users_guide && install -v -m644 guide/C/gnucash-guide.pdf \ /usr/share/doc/gnucash-2.2.0
Note that you must have Yelp-2.18.1 installed in order to view the Help documents using the default GnuCash method.
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
(rendering the
$sysconfdir
/gconf--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
.
--sysconfdir=/etc
:
This installs configuration files in /etc/gnucash
instead of /usr/etc/gnucash
.
--with-gconf-schema-file-dir=/etc/gnome/2.18.3/gconf/schemas
:
This parameter ensures that the GConf schema files are installed in the
proper location instead of /etc/gconf
.
mv -v /usr/share/gnucash/doc /usr/share/doc/gnucash-2.2.4 and ln -v -s ../doc/gnucash-2.2.4 /usr/share/gnucash/doc: These commands are used to relocate the documentation files to the customary location and create a symbolic link to the original 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
.
--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.
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, and Finance::Quote-1.13.
Alternatively, you can run the /usr/bin/gnc-fq-update
script as the root
user.
/usr/lib/gnucash
Last updated on 2008-04-15 03:34:07 -0500
The GIMP package contains the GNU Image Manipulation Program. This is useful for photo retouching, image composition and image authoring.
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)
Help System
Optional help files: ftp://anduin.linuxfromscratch.org/BLFS/svn/g/gimp-help-2-0.12.tar.gz
Download MD5 sum: fc1e2153eafa04fa701b23818029c3e1
Download size: 59.8 MB
GTK+-2.10.13, libart_lgpl-2.3.19, and XML::Parser-2.34
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.
libmng-1.0.9, librsvg-2.16.1, AAlib-1.4rc5, little cms-1.16, libexif-0.6.16, libxslt-1.1.22, ALSA-1.0.13, libgtkhtml-2.11.1 (required to build the help system browser plugin), libwmf, PyGTK-2.10.6 (including the gtk and pango modules), Gimp-Print version 4.2.7, an MTA (that provides a sendmail program), and GTK-Doc-1.8
libxslt-1.1.22, DocBook XML DTD-4.5, and DocBook XSL Stylesheets-1.71.1
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/gimp
Install GIMP by running the following commands:
./configure --prefix=/usr \ --sysconfdir=/etc \ --disable-print && make
To test the results, issue: make check.
Now, as the root
user:
make install && install -v -m755 -d /usr/share/doc/gimp-2.2.17 && install -v -m644 docs/{Wilber*,keybindings.txt,quick_reference.ps} \ /usr/share/doc/gimp-2.2.17
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
Now, as the root
user:
make install
-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.
GIMP executes a configuration wizard for each user upon their initial use of the program.
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:
echo '(web-browser "<browser>
%s")' >> /etc/gimp/2.0/gimprc
is a symbolic link to gimp-2.2. |
|
is an image manipulation program. It works with a variety of image formats and provides a large selection of tools. |
|
is a symbolic link to gimp-remote-2.2. |
|
is a small utility that tells a running GIMP to open a local or remote image file. |
|
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. |
|
provides C bindings for GIMP's Procedural Database (PDB) which offers an interface to core functions and to functionality provided by plug-ins. |
|
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. |
|
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. |
|
contains C functions which provide mathematical definitions and macros, manipulate 3x3 transformation matrices, set up and manipulate vectors and the MD5 message-digest algorithm. |
|
provides the C functions which implements module loading using GModule and keeps a list of GimpModule's found in a given searchpath. |
|
provides the C functions for handling GIMP's thumbnail objects. |
|
contains the GIMP common user interface functions. |
|
contains GIMP and GTK widget creation and manipulation functions. |
Last updated on 2008-04-10 07:56:53 -0500
The Evolution package contains an integrated mail, calendar and address book suite designed for the GNOME-2 environment.
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
GtkHTML-3.14.3, GNOME Doc Utils-0.10.3, and Evolution Data Server-1.10.3
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.
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
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/evolution
Install Evolution by running the following commands:
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
./configure --prefix=$(pkg-config --variable=prefix ORBit-2.0) \ --sysconfdir=/etc/gnome/2.18.3 \ --localstatedir=/var/lib \ --libexecdir=$(pkg-config \ --variable=prefix ORBit-2.0)/lib \ --enable-nntp \ --enable-nss \ --enable-smime && make
This package does not come with a test suite.
Now, as the root
user:
make install && ln -v -s evolution-2.10 \ $(pkg-config --variable=prefix ORBit-2.0)/bin/evolution
--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
.
--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=
:
Use this parameter if you wnat the installation process to
create a <$KDE_PREFIX/share/applnk>
.desktop
file in the
KDE global desktop file directory.
$GNOME_PREFIX
/:
include/evolution-2.10, lib/evolution,
share/{{,omf/}evolution,
{gnome/help,idl}/evolution-2.10}
Last updated on 2007-07-25 15:19:43 -0500
This chapter contains applications that bundle all the essential needs of everyday office workers into one neat 'little' package. The benefits are a consistent user interface and cooperation between applications.
KOffice is the integrated office suite for KDE. It provides native OASIS OpenDocument format support.
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)
KOffice has many
localization packages in the form of: koffice-l10n-
.
The <xx>
-1.6.3.tar.bz2<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
libjpeg-6b, libart_lgpl-2.3.19, libxml2-2.6.31, and libxslt-1.1.22
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)
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/koffice
Install KOffice with the following commands:
./configure --prefix=$(kde-config --prefix) --disable-debug \ --disable-dependency-tracking && make
If you wish to create the API documentation and you have Doxygen and Graphviz installed, make apidox must be done before make install.
This package does not come with a test suite.
Now, as the root
user:
make install
is a chart drawing application. |
|
is an integrated data management application. |
|
is a formula editor. |
|
is a flowchart program. |
|
is a project management application. |
|
is a presentation builder/display program. |
|
is a painting and image editing application for KOffice.. |
|
is a scriptable spreadsheet program. |
|
is a tool for creating reports. |
|
is a framemaker-like word processing and desktop publishing program. |
Last updated on 2008-03-11 13:57:01 -0500
OpenOffice is an office suite, the open source sibling of StarOffice.
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)
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
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
libart_lgpl-2.3.19 and libxslt-1.1.22
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
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/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.
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:
umask 0022 && unset LANG LC_ALL
Install OpenOffice by running the following commands:
patch -Np1 -i ../OOo_2.3.1-use_bin_hsqldb-1.patch && sed -i 's@..$/dist$/configure@uudecode="no" &@' \ berkeleydb/makefile.mk && pushd config_office && ./configure --prefix=/opt/openoffice-2.3.1 \ --enable-libart \ --disable-fontooo \ --disable-gnome-vfs \ --without-fonts \ --without-system-jars \ --without-pam \ --with-system-stdlibs \ --with-system-freetype \ --with-system-expat \ --with-system-libxml \ --with-system-libxslt \ --with-system-zlib \ --enable-cairo \ --enable-build-mozilla \ --with-build-version=BLFS \ --with-package-format=native \ --disable-binfilter \ --disable-odk \ --disable-qadevooo \ --with-use-shell=bash && popd && ./bootstrap && source LinuxX86Env.Set.sh && dmake
This package does not come with a test suite.
Now, as the root
user:
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 && pushd sysui/desktop/icons && install -v -m755 -d /usr/share/icons/{HighContrast,hicolor,locolor} && cp -r -v HighContrast/*x* /usr/share/icons/HighContrast && cp -r -v hicolor/*x* /usr/share/icons/hicolor && cp -r -v locolor/*x* /usr/share/icons/locolor && popd
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:
install -v -d -m755 /usr/share/applications && pushd /opt/openoffice-2.3.1/share/xdg/ && for appl in *.desktop do sed -i '/Exec/d' $appl && echo "Exec=/usr/bin/s`echo $appl | sed 's/.desktop//'`" >> $appl && sed -i '/Icon/d' $appl && echo "Icon=`echo $appl | sed 's/.desktop//'`" >> $appl done && sed -i 's@bin/sprinteradmin@bin/spadmin@' printeradmin.desktop && cp -v *.desktop /usr/share/applications && update-desktop-database && popd
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.
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.
--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=
:
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.
<type>
--disable-cups
:
Disable the use of CUPS for
printing.
--with-lang=
:
Allows the use of additional languages in OpenOffice. US English (ENUS) is the
default.
<LANG>
--with-dict=
:
Allows the use of alternate dictionaries in OpenOffice. US English (ENUS) is the
default.
<LANG>
--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.
is a database application. |
|
is a spreadsheet application. |
|
is a drawing application. |
|
is a presentation application. |
|
is a mathematical formula editor. |
|
opens a base window with access to all OpenOffice applications. |
|
is the OpenOffice printer configuration utility. |
|
is a word processing application. |
Last updated on 2008-05-09 08:00:42 -0500
This chapter contains a wonderful selection of browsers. We hope you can find one you enjoy using or give them each a trial run.
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:
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
GTK+-2.10.13, libIDL-0.8.8, and Zip-2.32
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.
NSS-3.11.7 (if you will be installing any other package that utilizes NSS/NSPR, such as Firefox, Thunderbird, Evolution, or OpenOffice)
UnZip-5.52 and libgnomeui-2.18.1 (to build the gnomevfs extension)
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/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:
cat > .mozconfig << "EOF"
# This file contains the options used in the SeaMonkey build. You may
# need to specify additional options for your specific build needs.
# Use the information provided by running './configure --help' to
# help you determine if you need to add any additional options.
# Some additional options can be added by uncommenting the examples
# in this file or adding options by inserting a line containing
# 'ac_add_options --some-option-you-need'.
# Create an object directory and specify to build the package in that
# directory. If desired, modify the location of the object directory
# to a directory inside the source tree by removing '../' from the
# line below.
mk_add_options MOZ_OBJDIR=@TOPSRCDIR@/../seamonkey-build
# This option is used to specify that the SeaMonkey suite is
# being built and to use all the default options for SeaMonkey.
ac_add_options --enable-application=suite
# Specify the installation prefix. If you would prefer SeaMonkey
# installed in a different prefix, modify the line below to fit
# your needs. You'll also need to modify some of the instructions in
# the BLFS book to point to your desired prefix.
ac_add_options --prefix=/usr
# 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
# This option specifies to include support for rendering the HTML
# <canvas></canvas> tag in the SeaMonkey browser.
ac_add_options --enable-canvas
# 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 added so that the Mozilla Installer program is not
# built or installed. The program is not required for a BLFS
# installation of SeaMonkey.
ac_add_options --disable-installer
# This option is used to disable the a11y support in the SeaMonkey
# binaries. Comment out this option if you require a11y support.
ac_add_options --disable-accessibility
# This option is used to enable support for rendering SVG files in the
# SeaMonkey browser.
ac_add_options --enable-svg
# This option is used to enable source tree included LDAP support in
# the SeaMonkey binaries.
ac_add_options --enable-ldap
# These two options enable support for building SeaMonkey with
# system-installed versions of the Network Security Services (NSS)
# and Netscape Portable Runtime (NSPR) libraries. Uncomment both
# lines to enable support for system-installed NSS/NSPR.
#ac_add_options --with-system-nspr
#ac_add_options --with-system-nss
# Uncomment this option if you desire support for dual-monitor
# display of SeaMonkey using the X-Window Xinerama libraries.
#ac_add_options --enable-xinerama
# 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
# This option identifies the default binary directory of the SeaMonkey
# installation and is used to locate SeaMonkey's installed files. This
# 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
Compile SeaMonkey by running the following commands:
cat >> layout/build/Makefile.in << "EOF" ifdef MOZ_ENABLE_CANVAS EXTRA_DSO_LDOPTS += $(XLDFLAGS) -lX11 -lXrender endif EOF make -f client.mk build
If you're building the SeaMonkey mail/newsgroup client and plan to install the Enigmail extension, issue the following commands:
tar -xf ../enigmail-0.95.6.tar.gz -C mailnews/extensions && ( cd mailnews/extensions/enigmail && ./makemake -r ) && make -C ../seamonkey-build/mailnews/extensions/enigmail && make -C ../seamonkey-build/mailnews/extensions/enigmail \ XPIFILE=enigmail-0.95.6.xpi xpi
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
.
Install SeaMonkey by issuing
the following commands as the root
user:
make -f client.mk install && install -v -m644 ../seamonkey-build/dist/public/ldap-private/* \ /usr/include/seamonkey-1.1.9/ldap && install -v -m644 ../seamonkey-build/dist/bin/isp/movemail.rdf \ /usr/lib/seamonkey-1.1.9/isp
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:
ln -v -sf nss.pc /usr/lib/pkgconfig/seamonkey-nss.pc && ln -v -sf nspr.pc /usr/lib/pkgconfig/seamonkey-nspr.pc
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.
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.
Information about some of the additional options which can be
added to the .mozconfig
configuration file is shown below. Note that this is just a
few of the options. You may wish to run ./configure --help and
review each of the listed options to discover what affect
they have on the build. Feel free to add or remove options to
tailor the build to your desires. Listed below are some
common options not in the default .mozconfig
file but can be added in order
to have the described effect on the SeaMonkey compile.
ac_add_options
--enable-elf-dynstr-gc
: Removes un-referenced strings
from ELF shared objects generated during the build. Note that
this option breaks the build on alpha.
ac_add_options
--disable-mailnews
: Disables the mail and news
clients.
ac_add_options --disable-ldap
:
Disables LDAP support, recommended if mail is disabled.
ac_add_options
--enable-xterm-updates
: Displays the current command
in the xterm
window title during the compilation.
ac_add_options
--enable-plaintext-editor-only
: Disables support for
HTML editing. Do not use this switch if you are building the
mail-news component.
To simplify reading the options below, they are labeled
without ac_add_options
inserted at the
beginning of the option. These options are also described in
the .mozconfig
file created
earlier.
mk_add_options
MOZ_OBJDIR=@TOPSRCDIR@/../seamonkey-build
:
Creates an object directory and specifies to build the
package in that directory. If desired, modify the location of
the object directory to a directory inside the source tree by
removing “../” from
the line.
--enable-application=suite
:
Identifies the build as a SeaMonkey suite build.
--with-system-zlib
--with-system-png --with-system-jpeg
--enable-system-cairo
: Uses the system-installed
versions of these packages.
--enable-xinerama
--enable-reorder --enable-strip --enable-cpp-rtti
--disable-accessibility --disable-tests --disable-logging
--disable-pedantic --disable-installer
: Various
options that affect what components are built and some
optimization options. You can pick and choose from these
options. More information on them, and many other available
options, can be found by running ./configure --help.
'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 Makefile
s 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.
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).
ln -v -sf seamonkey /usr/bin/netscape
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.
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.
/usr/lib/seamonkey-1.1.9
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. |
Last updated on 2008-04-21 21:28:52 -0500
Firefox is a stand-alone browser based on the Mozilla codebase.
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
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.
NSS-3.11.7(if you will be installing any other package that utilizes NSS/NSPR, such as Thunderbird, SeaMonkey, Evolution, or OpenOffice)
UnZip-5.52 and libgnomeui-2.18.1 (to build the gnomevfs extension)
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/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
# help you determine if you need to add any additional options.
# Some additional options can be added by uncommenting the examples
# in this file or adding options by inserting a line containing
# 'ac_add_options --some-option-you-need'.
# Use the default settings specified in the source tree
. $topsrcdir/browser/config/mozconfig
# Create an object directory and specify to build the package in that
# directory. If desired, modify the location of the object directory
# to a directory inside the source tree by removing '../' from the
# line below.
mk_add_options MOZ_OBJDIR=@TOPSRCDIR@/../firefox-build
# Specify the installation prefix. If you would prefer Firefox
# installed in a different prefix, modify the line below to fit
# your needs. You'll also need to modify some of the instructions in
# the BLFS book to point to your desired prefix.
ac_add_options --prefix=/usr
# 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 causes the installed binaries to have the official
# Firefox name embedded in them. Due to license restrictions, you
# may not distribute binaries created using this option.
ac_add_options --enable-official-branding
# 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.
ac_add_options --disable-tests
# This option is added so that the Mozilla Installer program is not
# built or installed. The program is not required for a BLFS
# installation of Firefox.
ac_add_options --disable-installer
# This option is used to disable the a11y support in the Firefox
# binaries. Comment out this option if you require a11y support.
ac_add_options --disable-accessibility
# This option is used to enable source tree included LDAP support in
# the Firefox binaries.
###################################################################
#
# NOTE: You must uncomment this option if there is any chance of
# compiling the OpenOffice package from source code using this copy
# of Firefox for your Mozilla support.
#
###################################################################
#ac_add_options --enable-ldap
# Uncomment this option if you desire support for dual-monitor
# display of Firefox using the X-Window Xinerama libraries.
#ac_add_options --enable-xinerama
# These two options enable support for building Firefox with
# system-installed versions of the Network Security Services (NSS)
# and Netscape Portable Runtime (NSPR) libraries. Uncomment both
# lines to enable support for system-installed NSS/NSPR.
#ac_add_options --with-system-nss
#ac_add_options --with-system-nspr
# 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
# This option identifies the default binary directory of the Firefox
# installation and is used to locate Firefox's installed files. This
# 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/firefox-2.0.0.15
EOF
Compile Firefox by issuing the following commands:
cat >> layout/build/Makefile.in << "EOF" && ifdef MOZ_ENABLE_CANVAS EXTRA_DSO_LDOPTS += $(XLDFLAGS) -lX11 -lXrender endif EOF sed -i "s/^ enum$/& xptinfo_enum_1/" \ xpcom/reflect/xptinfo/public/xptinfo.h && make -f client.mk build
This package does not come with a test suite.
Now, as the root
user,
install the package:
make -f client.mk install && install -v -m755 -d /usr/lib/firefox-2.0.0.15/chrome/icons/default && ln -v -s ../../../icons/default.xpm \ /usr/lib/firefox-2.0.0.15/chrome/icons/default && chown -v -R root:root \ /usr/lib/firefox-2.0.0.15/extensions/inspector@mozilla.org/*
If you enabled LDAP support in the Firefox build, install some additional
interface headers as the root
user:
install -v -m644 ../firefox-build/dist/public/ldap-private/* \ /usr/include/firefox-2.0.0.15/ldap
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:
ln -v -sf nss.pc /usr/lib/pkgconfig/firefox-nss.pc && ln -v -sf nspr.pc /usr/lib/pkgconfig/firefox-nspr.pc
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:
install -v -m755 -d /usr/include/firefox-2.0.0.15/nss && cp -v -Lf ../firefox-build/dist/{private,public}/nss/*.h \ /usr/include/firefox-2.0.0.15/nss
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.
'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.
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
.
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).
ln -v -sf firefox /usr/bin/netscape
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
/usr/lib/firefox-2.0.0.15
Last updated on 2008-07-12 17:31:53 -0500
konqueror is the default graphical web browser for the KDE desktop environment. It is packaged and installed with kdebase-3.5.9.
Last updated on 2007-04-04 14:42:53 -0500
The Internet isn't just about browsing. Here are more graphical applications that utilize other areas of the Internet.
Thunderbird is a stand-alone mail/news client based on the Mozilla codebase.
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
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.
NSS-3.11.7 (if you will be installing any other package that utilizes NSS/NSPR, such as Firefox, SeaMonkey, Evolution, or OpenOffice)
UnZip-5.52 and libgnomeui-2.18.1 (to build the gnomevfs extension)
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/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 instead of
creating it by typing or cut-and-pasting, you can find it at
http://anduin.linuxfromscratch.org/files/BLFS/6.3/thunderbird-2.0.0.12-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 Thunderbird build. You may
# need to specify additional options for your specific build needs.
# Use the information provided by running './configure --help' to
# help you determine if you need to add any additional options.
# Some additional options can be added by uncommenting the examples
# in this file or adding options by inserting a line containing
# 'ac_add_options --some-option-you-need'.
# Use the default settings specified in the source tree
. $topsrcdir/mail/config/mozconfig
# Create an object directory and specify to build the package in that
# directory. If desired, modify the location of the object directory
# to a directory inside the source tree by removing '../' from the
# line below.
mk_add_options MOZ_OBJDIR=@TOPSRCDIR@/../thunderbird-build
# Specify the installation prefix. If you would prefer Thunderbird
# installed in a different prefix, modify the line below to fit
# your needs. You'll also need to modify some of the instructions in
# the BLFS book to point to your desired prefix.
ac_add_options --prefix=/usr
# 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 causes the installed binaries to have the official
# Thunderbird name embedded in them. Due to license restrictions, you
# may not distribute binaries created using this option.
ac_add_options --enable-official-branding
# This option specifies to include support for rendering the HTML
# <canvas></canvas> tag in the Thunderbird mail client.
#ac_add_options --enable-canvas
# 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 added so that the Mozilla Installer program is not
# built or installed. The program is not required for a BLFS
# installation of Thunderbird.
ac_add_options --disable-installer
# This option is used to disable the a11y support in the Thunderbird
# binaries. Comment out this option if you require a11y support.
ac_add_options --disable-accessibility
# This option is used to enable source tree included LDAP support in
# the Thunderbird binaries.
ac_add_options --enable-ldap
# 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
# Uncomment this option if you desire support for dual-monitor
# display of Thunderbird using the X-Window Xinerama libraries.
#ac_add_options --enable-xinerama
# Complex scripts such as Thai can only be rendered in Thunderbird with
# the help of Pango. This option significantly slows rendering, so only
# use it if necessary.
#ac_add_options --enable-pango
# These two options enable support for building Thunderbird with
# system-installed versions of the Network Security Services (NSS)
# and Netscape Portable Runtime (NSPR) libraries. Uncomment both
# lines to enable support for system-installed NSS/NSPR.
#ac_add_options --with-system-nss
#ac_add_options --with-system-nspr
# This option identifies the default binary directory of the Thunderbird
# installation and is used to locate Thunderbird's installed files. This
# option is not required for end-user use, and is only used for
# development purposes. Due to PDF line length limitations, the command
# 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
Compile Thunderbird by issuing the following commands:
cat >> layout/build/Makefile.in << "EOF" && ifdef MOZ_ENABLE_CANVAS EXTRA_DSO_LDOPTS += $(XLDFLAGS) -lX11 -lXrender endif EOF sed -i "s/^ enum$/& xptinfo_enum_1/" \ xpcom/reflect/xptinfo/public/xptinfo.h && make -f client.mk build
This package does not come with a test suite.
If you're building the Enigmail extension, issue the following commands:
tar -xf ../enigmail-0.95.6.tar.gz -C mailnews/extensions && ( cd mailnews/extensions/enigmail && ./makemake -r ) && make -C ../thunderbird-build/mailnews/extensions/enigmail && make -C ../thunderbird-build/mailnews/extensions/enigmail \ XPIFILE=enigmail-0.95.6.xpi xpi
Install Thunderbird by
running the following commands as the root
user:
make -f client.mk install && install -v -m644 ../thunderbird-build/dist/public/ldap-private/* \ /usr/include/thunderbird-2.0.0.12/ldap && install -v -m644 ../thunderbird-build/dist/bin/isp/{movemail,rss}.rdf \ /usr/lib/thunderbird-2.0.0.12/isp && rm -rvf /usr/lib/thunderbird-2.0.0.12/defaults/isp
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:
ln -v -sf nss.pc /usr/lib/pkgconfig/thunderbird-nss.pc && ln -v -sf nspr.pc /usr/lib/pkgconfig/thunderbird-nspr.pc
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.
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.
'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 Makefile
s 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.
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.
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
.
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.
/usr/lib/thunderbird-2.0.0.12
Last updated on 2008-08-11 19:15:25 -0500
The Pan package contains a graphical newsreader. This is useful for reading and writing news, threading articles and replying via email.
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
GTK+-2.10.13, GNet-2.0.7, intltool-0.35.5 and libxml2-2.6.31
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/pan
Install Pan 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
Last updated on 2007-04-04 14:42:53 -0500
The Balsa package contains a GNOME-2 based mail client.
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
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)
libESMTP-1.0.4 (required for outgoing SMTP service) and PCRE-7.6
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)
GPGME (requires GnuPG-2.0.8)
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/balsa
Install Balsa by running the following commands:
./configure --prefix=$(pkg-config --variable=prefix ORBit-2.0) \ --sysconfdir=/etc/gnome/2.18.3 \ --localstatedir=/var/lib \ --with-rubrica \ --with-gtkhtml=no && make
This package does not come with a test suite.
Now, as the root
user:
make install
--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.
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.
$GNOME_PREFIX
/share/:
{gnome/help, omf, sounds}/balsa
Last updated on 2008-03-07 16:50:38 -0600
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!.
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
GLib-2.12.12, libxml2-2.6.31, and XML::Parser-2.34
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.
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)
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)
Mono (experimental), Tcl-8.4.18, and Tk-8.4.18
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/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
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
--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.
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.
Last updated on 2007-08-16 17:34:29 -0500
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.
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
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.
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/xchat
Install XChat by running the following commands:
patch -Np1 -i ../xc284-scrollbmkdir.diff && ./configure --prefix=/usr \ --sysconfdir=/etc/gnome/2.18.3 \ --enable-shm && make
This package does not come with a test suite.
Now, as the root
user:
make install && install -v -m755 -d /usr/share/doc/xchat-2.8.4 && install -v -m644 README faq.html \ /usr/share/doc/xchat-2.8.4
--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.
Last updated on 2007-08-08 13:50:38 -0500
Many multimedia programs require libraries and/or drivers in order to function properly. The packages in this section fall into this category. Generally you only need to install these if you are installing a program which has the library listed as either a requirement, or as an option to enable it to support certain functionality.
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.
Last updated on 2007-04-04 14:42:53 -0500
The ALSA Library package contains the ALSA library. This is used by programs (including ALSA Utilities) requiring access to the ALSA sound interface.
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)
Doxygen-1.5.2 and resmgr
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/alsa-lib
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.
Install ALSA Library by running the following commands:
./configure --enable-static && make
This package does not come with a test suite.
Now, as the root
user:
make install && install -v -m644 -D doc/asoundrc.txt \ /usr/share/doc/alsa-lib-1.0.13/asoundrc.txt
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
Now, as the root
user:
install -v -d -m755 /usr/share/doc/alsa-1.0.13/html && install -v -m644 doc/doxygen/html/* /usr/share/doc/alsa-1.0.13/html
--enable-static
: This
switch is used to enable building the static library as some
programs link against it.
~/.asoundrc
, /etc/asound.conf
, /usr/share/alsa/alsa.conf
, and
/usr/share/alsa/{cards,pcm}/*.conf
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.
Last updated on 2007-04-04 14:42:53 -0500
The ALSA Plugins package contains plugins for various audio libraries and sound servers.
The ALSA Plugins package has not been tested by the BLFS editors.
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
pkg-config-0.22 and ALSA Library-1.0.13
FFmpeg-svn_20070606, JACK, PulseAudio, Secret Rabbit Code (a.k.a. libsamplerate)
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/alsa-plugins
Install ALSA Plugins by running the following commands:
./configure && make
This package does not come with a test suite.
Now, as the root
user:
make install && install -v -m755 -d /usr/share/doc/alsa-plugins-1.0.13 && install -v -m644 doc/{README*,*.txt} \ /usr/share/doc/alsa-plugins-1.0.13
<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*
Allows native ALSA applications to run on OSS. |
|
Allows upmixing sound to 4 or 6 channels. |
|
Allows downmixing sound from 4-6 channels to 2 channel stereo output. |
|
Allows native ALSA applications to work with jackd. |
|
Allows native ALSA applications to access a PulseAudio sound daemon. |
|
Converts S16 linear sound format to A52 compressed format and sends it to an SPDIF output. |
|
Provides an external rate converter through
|
Last updated on 2007-04-04 14:42:53 -0500
The ALSA Utilities package contains various utilities which are useful for controlling your sound card.
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
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/alsa-utils
Install ALSA Utilities by running the following commands:
./configure && make
This package does not come with a test suite.
Now, as the root
user:
make install
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.
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:
touch /etc/asound.state && alsactl store
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:
cat > /etc/udev/rules.d/40-alsa.rules << "EOF" # /etc/udev/rules.d/40-alsa.rules # When a sound device is detected, restore the volume settings KERNEL=="controlC[0-9]*", ACTION=="add", RUN+="/usr/sbin/alsactl restore %n" EOF chmod -v 644 /etc/udev/rules.d/40-alsa.rules
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:
usermod -a -G audio <username>
You may need to log out and back in again to refresh your
group memberships. 'su
<username>
'
should work as well.
is a utility for connecting and disconnecting two existing ports in the ALSA sequencer system. |
|
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. |
|
is used to control advanced settings for the ALSA sound card drivers. |
|
is an ncurses-based mixer program for use with the ALSA sound card drivers. |
|
is used to read from and write to ALSA RawMIDI ports. |
|
allows command-line control of the mixers for the ALSA sound card drivers. |
|
is a command-line soundfile player for the ALSA sound card drivers. |
|
is a command-line utility that plays the specified MIDI file(s) to one or more ALSA sequencer ports. |
|
is a command-line soundfile recorder for the ALSA sound card drivers. |
|
is a command-line utility that records a standard MIDI file from one or more ALSA sequencer ports. |
|
is a command-line utility that prints the sequencer events it receives as text. |
|
is an ALSA sequencer client which sends and receives event packets over a network. |
|
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. |
|
is a command-line speaker test tone generator for ALSA. |
Last updated on 2008-05-09 08:00:42 -0500
The ALSA Tools package contains advanced tools for certain sound cards.
The ALSA Tools package has not been tested by the BLFS editors.
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
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).
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/alsa-tools
The ALSA Tools package is only needed by those with advanced requirements for their sound card. The tools are not all built together, instead you need to cd into the directory of each tool you wish to compile and run the following commands:
./configure --prefix=/usr && make
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.
Now, as the root
user:
make install
is a free AC-3 stream decoder. |
|
will take an MPEG-2 stream and produce AC-3 audio to stdout if it exists. |
|
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. |
|
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. |
|
is a control tool for Envy24 (ice1712) based sound cards. |
|
is a GUI to control the Hammerfall HDSP Alsa Settings. Up to four hdsp cards are supported. |
|
is used to load the firmware required by the Hammerfall HDSP sound cards. |
|
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. |
|
is the server of a EMU10K{1,2} patch loader for ALSA. |
|
is the client of a EMU10K{1,2} patch loader for ALSA. |
|
loads config dumps generated by lo10k1 and ld10k1. |
|
is an init script for the ld10k1 patch loader. |
|
is a Qt GUI for the ld10k1 patch loader. |
|
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. |
|
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. |
|
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. |
|
is an SB16/AWE32 Creative Signal Processor (ASP/CSP) control program. |
|
is an OPL2/3 FM instrument loader for the ALSA sequencer. |
|
is an ALSA SoundScape control utility. |
|
is a Tascam US-428 control program. |
|
is a helper program to load the 2nd Phase firmware binaries onto the Tascam USX2Y USB sound cards. It has proven to work so far for the US122, US224 and US428. The snd-usb-usx2y module requires this program. |
|
is a helper program to load the firmware binaries onto the Digigram's VX-board sound drivers. The following modules require this program: snd-vx222, snd-vxpocket, snd-vxp440. These drivers don't work properly at all until the certain firmwares are loaded, i.e. no PCM nor mixer devices will appear. |
Last updated on 2007-04-04 14:42:53 -0500
The ALSA Firmware package contains firmware for certain sound cards.
The ALSA Firmware package has not been tested by the BLFS editors.
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
AS31 (for rebuilding the firmware from source)
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/alsa-firmware
The ALSA Firmware package is only needed by those with advanced requirements for their sound card. See the README for configure options.
Install ALSA Firmware 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
Last updated on 2007-04-04 14:42:53 -0500
The ALSA OSS package contains the ALSA OSS compatibility library. This is used by programs which wish to use the ALSA OSS sound interface.
The ALSA OSS package has not been tested by the BLFS editors.
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
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/alsa-oss
Install ALSA OSS by running the following commands:
./configure && make
This package does not come with a test suite.
Now, as the root
user:
make install
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
.
Last updated on 2007-04-04 14:42:53 -0500
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.
Last updated on 2007-04-04 14:42:53 -0500
The Audio File package contains the audio file libraries and two sound file support programs. These are useful to support basic sound file formats.
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
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/audiofile
Install Audio File by running the following commands:
./configure --prefix=/usr && make
To test the results, issue: make check.
Now, as the root
user:
make install
is used during the compile process by programs linking to this library. |
|
displays the sound file format, audio encoding, sampling rate and duration for audio formats supported by this library. |
|
converts sound file formats where the original format and destination format are supported by this library. |
|
contains functions used by programs to support AIFF, AIFF-compressed, Sun/NeXT, WAV and BIC audio formats. |
Last updated on 2007-04-04 14:42:53 -0500
The EsounD package contains the Enlightened Sound Daemon. This is useful for mixing together several digitized audio streams for playback by a single device.
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
ALSA-1.0.13, aRts-1.5.9, TCP Wrapper-7.6, and DocBook-utils-0.6.14
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/esound
Install EsounD by running the following commands:
sed -i 's@doc/esound@&-0.2.37@' configure && ./configure --prefix=/usr --sysconfdir=/etc && make
This package does not come with a test suite.
Now, as the root
user:
make install && chown -v root:root /usr/share/doc/esound-0.2.37/html/*
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
.
is the Enlightened Sound Daemon. |
|
is used by configure to determine the compiler and linker flags that should be used to compile and link programs that use EsounD. |
|
plays a RAW audio stream through the daemon. |
|
controls certain aspects of the sound daemon. |
|
is an EsoundD filter. |
|
is test scaffolding for sample cache, loop and free. |
|
outputs the mixed stream from the daemon. |
|
plays the named file on EsoundD. |
|
outputs from the sound device's current input. |
|
is test scaffolding for sample cache, playback, and free. |
|
contains functions used by the EsounD programs as well as other programs to read, write and play various sound format files. |
Last updated on 2007-04-19 15:33:29 -0500
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.
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
ALSA-1.0.13, EsounD-0.2.37, aRts-1.5.9, NAS-1.9, NASM-0.98.39, X Window System, AAlib-1.4rc5, DirectFB, SVGAlib, Pth-2.0.7, and PicoGUI
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/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:
./configure --prefix=/usr && make
Now, as the root
user:
make install && install -v -m755 -d /usr/share/doc/SDL-1.2.11/html && install -v -m644 docs/html/*.html /usr/share/doc/SDL-1.2.11/html
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
You'll need to manually run all the test programs.
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
.
Last updated on 2007-08-15 18:06:57 -0500
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).
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
X Window System, EsounD-0.2.37, ALSA-1.0.13, aRts-1.5.9, NAS-1.9, and PulseAudio (requires atomic_ops)
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/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
Last updated on 2007-07-19 11:54:05 -0500
The libogg package contains the Ogg file structure. This is useful for creating (encoding) or playing (decoding) a single physical bit stream.
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
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/libogg
Install libogg by running the following commands:
./configure --prefix=/usr && make
To test the results, issue: make check.
Now, as the root
user:
make install
Last updated on 2007-04-04 14:42:53 -0500
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.
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
pkg-config-0.22, and libxslt-1.1.22 and PassiveTeX (to build the PDF documentation)
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/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
--enable-docs
: This switch
enables building the documentation.
Last updated on 2008-07-09 14:08:43 -0500
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.
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
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).
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/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:
./frontend/faac -o Front_Left.mp4 /usr/share/sounds/alsa/Front_Left.wav
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
./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.
The quality of FAAC is not up to par with the best AAC encoders currently available. Also, it only supports AAC and not High Efficiency AAC (also known as aacPlus), which provides better quality at low bitrates by means of using the “spectral band replication” technology. There are the following alternative programs for producing AAC and HE-AAC streams:
Nero AAC Codec: available only in the binary form, the command-line AAC and HE-AAC encoders for Linux are in the same archive as the Windows application.
3GPP
Enhanced aacPlus general audio codec: available in
the source form, can encode only HE-AAC up to 48 kbps
out of the box, but the maximum bitrate can be changed
by editing the tuning table in the FloatFR_sbrenclib/src/sbr_main.c
file.
Note, however, that iPod supports only Low Complexity AAC profile, which is the default in FAAC, but may not be the default in Nero AAC Encoder and is completely unavailable in the 3GPP encoder.
Last updated on 2008-05-09 07:42:27 -0500
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).
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)
Sample AAC file: http://www.nch.com.au/acm/sample.aac (7 KB)
XMMS-1.2.10 and mpeg4ip (both are untested, and both projects are dead).
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/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 |
---------------------
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
./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.
Last updated on 2008-05-09 07:42:27 -0500
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.
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
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/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
xmkmf; make World: These commands use the standard for compiling X based applications.
Create the NAS configuration file using the following command:
install -v -m644 /etc/nas/nasd.conf.eg /etc/nas/nasd.conf
Edit the new configuration file to suit your network and system needs.
Install the /etc/rc.d/init.d/nas
init script included
in the blfs-bootscripts-20080816 package.
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.
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. |
|
plays a sound file when the user receives mail. |
|
checks if a file is in a recognized audio file format. |
|
is the Network Audio System server daemon. |
|
plays, or creates, the bucket corresponding to the specified file. |
|
converts a sound file to a C language header file. |
|
contains API functions to read and write audio files. |
Last updated on 2008-05-10 18:53:20 -0500
LibMPEG3 supports advanced editing and manipulation of MPEG streams.
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
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/libmpeg3
Install LibMPEG3 by running the following commands:
patch -Np1 -i ../libmpeg3-1.7-makefile_mods-1.patch && ./configure && make
This package does not come with a test suite.
Now, as the root
user:
make install
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.
concatenates elementary streams or demultiplexes a program stream (separates components of the stream). |
|
dumps information or extracts audio to a 24 bit PCM file. |
|
prints the byte offset of a given frame. It only works for video and requires a table of contents. |
|
creates a table of contents for a DVD or MPEG stream. |
|
decodes several MPEG standards into uncompressed data suitable for editing and playback. |
Last updated on 2007-08-17 11:34:55 -0500
libmad is a high-quality MPEG audio decoder capable of 24-bit output.
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
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/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
Last updated on 2007-04-04 14:42:53 -0500
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.
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)
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
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/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
is a graphical front end to examine and configure the available libquicktime audio and video codecs. |
|
is a simple program used to query the libquicktime installation settings and plugin information. |
|
is a command-line program used to encode video and/or audio files from one format to another. |
|
is a simple Quicktime movie player for X11. |
|
can take movies containing rgb frames and write them out as ppm images. |
|
concatenates input frames into a Quicktime movie. |
|
is used to write a YUV4 encoded movie as a planar YUV 4:2:0 file. |
|
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. |
Last updated on 2008-01-21 09:56:41 -0600
libFAME is a fast (real-time) MPEG-1 as well as MPEG-4 rectangular and arbitrary shaped video encoding library.
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
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/libfame
Install libFAME by running the following commands:
patch -Np1 -i ../libfame-0.9.1-gcc34-1.patch && sed -i 's/$CC --version/$CC -dumpversion/' configure && ./configure --prefix=/usr && make
This package does not come with a test suite.
Now, as the root
user:
make install
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 Makefile
s.
--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.
Last updated on 2007-07-14 18:27:07 -0500
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.
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
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/speex
Install Speex 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
Last updated on 2007-07-19 03:40:08 -0500
id3lib is a library for reading, writing and manipulating ID3v1 and ID3v2 tags.
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
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/id3lib
Install id3lib by running the following commands:
patch -Np1 -i ../id3lib-3.8.3-test_suite-1.patch && ./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/id3lib-3.8.3 && install -v -m644 doc/*.{gif,jpg,png,ico,css,txt,php,html} \ /usr/share/doc/id3lib-3.8.3
Last updated on 2007-04-04 14:42:53 -0500
FLAC is an audio CODEC similar to MP3, but lossless, meaning that audio is compressed without losing any 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)
libogg-1.1.3, XMMS-1.2.10, NASM-0.98.39, DocBook-utils-0.6.14, Doxygen-1.5.2 and Valgrind
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/flac
Install FLAC by running the following commands:
./configure --prefix=/usr --disable-thorough-tests && make
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
--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.
Last updated on 2007-12-13 05:04:40 -0600
libdvdcss is a simple library designed for accessing DVDs as a block device without having to bother about the decryption.
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
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/libdvdcss
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:
echo "INPUT_ENCODING = ISO-8859-1" >>doc/doxygen.cfg
Now either resume the build, or start over. Disregard this note if you do not have a LaTeX package or Doxygen installed.
Install libdvdcss by running the following commands:
./configure --prefix=/usr && make
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 -C doc/latex pdf
This package does not come with a test suite.
Now, as the root
user:
make install
If you have Doxygen and
teTeX installed, install the
documentation using the following commands as the
root
user:
install -v -m755 -d /usr/share/doc/libdvdcss-1.2.9/html && install -v -m644 doc/html/* /usr/share/doc/libdvdcss-1.2.9/html && install -v -m644 doc/latex/*.{pdf,ps,dvi} \ /usr/share/doc/libdvdcss-1.2.9
Last updated on 2007-07-19 15:56:20 -0500
libdvdread is a library which provides a simple foundation for reading DVDs.
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
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/libdvdread
Install libdvdread 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
--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.
Last updated on 2007-07-19 16:07:28 -0500
The Quasar DV Codec (libdv) is a software CODEC for DV video, the encoding format used by most digital camcorders.
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
popt-1.10.4, pkg-config-0.22, SDL-1.2.11, GTK+-1.2.10, and X Window System
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/libdv
Install libdv 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/libdv-1.0.0 && install -v -m644 README* /usr/share/doc/libdv-1.0.0
inserts audio into a digital video stream. |
|
is a small utility to send or capture raw data from and to the camcorder. |
|
encodes a series of images to a digital video stream. |
|
displays digital video streams on the screen. |
|
provides functions for programs interacting with the Quasar DV CODEC. |
Last updated on 2007-07-18 18:44:46 -0500
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.
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
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/liba52
Install liba52 by running the following commands:
./configure --prefix=/usr --enable-shared && make
To test the results, issue: make check.
Now, as the root
user:
make install && install -v -m644 -D doc/liba52.txt \ /usr/share/doc/liba52-0.7.4/liba52.txt
Last updated on 2007-04-04 14:42:53 -0500
XviD is an MPEG-4 compliant video CODEC.
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
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/xvid
Install XviD by running the following commands:
cd build/generic && ./configure --prefix=/usr && make
This package does not come with a test suite.
Now, as the root
user:
make install && chmod -v 755 /usr/lib/libxvidcore.so.4.1 && ln -v -sf libxvidcore.so.4.1 /usr/lib/libxvidcore.so.4 && ln -v -sf libxvidcore.so.4 /usr/lib/libxvidcore.so && install -v -m755 -d /usr/share/doc/xvidcore-1.1.3/examples && install -v -m644 ../../doc/* /usr/share/doc/xvidcore-1.1.3 && install -v -m644 ../../examples/* \ /usr/share/doc/xvidcore-1.1.3/examples
ln -v -sf libxvidcore.so.4
/usr/lib/libxvidcore.so: This command makes
applications linked against .so
names, link to .so.
. This
ensures better binary compatibility, as XviD developers take care not changing
the <MAJOR>
<MAJOR>
number until there is an incompatible ABI change.
Last updated on 2007-08-12 15:47:46 -0500
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.
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
X Window System and EsounD-0.2.37 or OSS or ALSA-1.0.13 or aRts-1.5.9 or PulseAudio or JACK
pkg-config-0.22 and FFmpeg-svn_20070606
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.
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/xine-lib
Install xine Libraries by running the following commands:
./configure --prefix=/usr --enable-static --with-external-ffmpeg \ --docdir=/usr/share/doc/xine-lib-1.1.12 && make
This package does not come with a test suite.
Now, as the root
user:
make install
--enable-static
: This switch is
used to enable building the static library as some programs
link against it.
--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
.
Last updated on 2008-05-09 08:00:42 -0500
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.
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
Recommended Patch: http://mikmod.raphnet.net/files/libmikmod-3.1.11-a.diff
ALSA-1.0.13, EsounD-0.2.37, libGUS, AFlib and SAM9407 driver
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/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
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.
autoconf: This
generates a new configure script, required
because of the changes to configure.in
.
Last updated on 2007-07-14 18:27:07 -0500
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.
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)
GLib-2.12.12 and libxml2-2.6.31
Check (required to run the unit regression tests), and Valgrind (optionally used during the unit regression tests)
libxslt-1.1.22, teTeX-3.0, AFPL Ghostscript-8.53 or ESP Ghostscript-8.15.4, DocBook-utils-0.6.14, Transfig, and Netpbm
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/gstreamer
Install GStreamer by running the following commands:
./configure --prefix=/usr && make
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.
Now, as the root
user:
make install && install -v -m755 -d /usr/share/doc/gstreamer-0.10/design && install -v -m644 docs/design/*.txt \ /usr/share/doc/gstreamer-0.10/design && if [ -d /usr/share/doc/gstreamer-0.10/faq/html ]; then chown -v -R root:root \ /usr/share/doc/gstreamer-0.10/*/html fi
To test the functionality of the GStreamer installation, you can run a
simple test as an unprivileged user (you may have to run
ldconfig as
the root
user before
attempting the test).
gst-launch -v fakesrc num_buffers=5 ! fakesink
If the command outputs a series of messages from fakesrc and fakesink, everything is okay.
--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.
generates debug info for GStreamer bug reports. |
|
prints information about a GStreamer plugin or element. |
|
is a tool that builds and runs basic GStreamer pipelines. |
|
uses the GStreamer type finding system to determine the relevant GStreamer plugin to parse or decode a file, and determine the corresponding MIME type. |
|
prints information about a GStreamer plugin or element in XML document format. |
|
is used to build and run a basic GStreamer pipeline, loading it from an XML description. |
Last updated on 2007-07-18 13:28:44 -0500
The GStreamer Base Plug-ins is a well-groomed and well-maintained collection of GStreamer plug-ins and elements, spanning the range of possible types of elements one would want to write for GStreamer. It also contains helper libraries and base classes useful for writing elements. A wide range of video and audio decoders, encoders, and filters are included. Also see 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.
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)
ALSA-1.0.13, libogg-1.1.3, libvorbis-1.2.0, Theora, CDParanoia-III-9.8, FreeType-2.3.7, Pango-1.16.4, GTK+-2.10.13 (required to build the examples), X Window System, GNOME Virtual File System-2.18.1, libvisual, Check (required to run the unit regression tests), and Valgrind (optionally used during the unit regression tests)
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/gst-plugins-base
Install GStreamer Base Plug-ins by running the following commands:
./configure --prefix=/usr && make
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.
Now, as the root
user:
make install
Last updated on 2007-07-18 17:20:52 -0500
The GStreamer Good Plug-ins is a set of plug-ins considered by the GStreamer developers to have good quality code, correct functionality, and the preferred license (LGPL for the plug-in code, LGPL or LGPL-compatible for the supporting library). A wide range of video and audio decoders, encoders, and filters are included. Also see the GStreamer Ugly Plug-ins-0.10.6, GStreamer Bad Plug-ins and GStreamer FFmpeg plug-in packages.
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
GStreamer Base Plug-ins-0.10.13
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)
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/gst-plugins-good
Install GStreamer Good Plug-ins by running the following commands:
./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.
Now, as the root
user:
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:
make -C docs/plugins install-data
--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.
Last updated on 2007-09-09 22:23:37 -0500
The GStreamer Ugly Plug-ins is a set of plug-ins considered by the GStreamer developers to have good quality and correct functionality, but distributing them might pose problems. The license on either the plug-ins or the supporting libraries might not be how the GStreamer developers would like. The code might be widely known to present patent problems. Also see the GStreamer Good Plug-ins-0.10.6, GStreamer Bad Plug-ins and GStreamer FFmpeg plug-in packages.
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
GStreamer Base Plug-ins-0.10.13
LAME-3.97, liba52-0.7.4, libamrnb, libdvdnav, libdvdread-0.9.7, libmad-0.15.1b (and libid3tag), libmpeg2-0.4.1, and libsidplay
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/gst-plugins-ugly
Install GStreamer Ugly Plug-ins by running the following commands:
./configure --prefix=/usr && make
To test the results, issue: make check.
Now, as the root
user:
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:
make -C docs/plugins install-data
Last updated on 2007-07-22 11:15:36 -0500
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.
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
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/libmusicbrainz
Install libmusicbrainz by running the following commands:
./configure --prefix=/usr && make
If Python is installed, build the bindings with the following commands:
(cd python && python setup.py build)
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:
make install && install -v -m644 -D docs/mb_howto.txt \ /usr/share/doc/libmusicbrainz-2.1.5/mb_howto.txt
To test the Python bindings, issue the following: (cd python && python setup.py test).
If you built the Python bindings, issue the following
commands as the root
user to
install them:
(cd python && python setup.py install)
Last updated on 2007-08-12 19:29:41 -0500
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.
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
X Window System and SDL-1.2.11
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/libmpeg2
Install libmpeg2 by running the following commands:
./configure --prefix=/usr --enable-shared && make
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:
make install && install -v -m755 -d /usr/share/doc/mpeg2dec-0.4.1 && install -v -m644 README doc/libmpeg2.txt \ /usr/share/doc/mpeg2dec-0.4.1
--enable-shared
: This
parameter forces building shared versions of the libraries as
well as the static versions.
Last updated on 2007-07-19 16:21:53 -0500
This chapter contains programs involved with audio file manipulation; that is to say playing, recording, ripping and the other common things which people want to do. It also includes a package used to render text to speech using your system's audio hardware. To use much of this software, you will need to have the kernel sound drivers installed.
The mpg123 package contains a console-based MP3 player. It claims to be the fastest MP3 decoder for Unix.
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
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/mpg123
Install mpg123 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
Last updated on 2008-04-23 23:09:25 -0500
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.
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
cURL-7.16.3, FLAC-1.2.1, and Speex-1.0.5
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/vorbistools
Install Vorbis Tools by running the following commands:
./configure --prefix=/usr \ --enable-vcut \ --without-curl && make
This package does not come with a test suite.
Now, as the root
user:
make install
--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.
is a command-line audio player for Ogg Vorbis streams. |
|
is a simple decoder which converts Ogg Vorbis files into PCM audio files (WAV or raw). |
|
is an encoder that turns raw, WAV or AIFF files into an Ogg Vorbis stream. |
|
prints information stored in an audio file. |
|
will split a file into two files at a designated cut point. |
|
is an editor that changes information in the audio file metadata tags. |
Last updated on 2008-05-09 08:00:42 -0500
XMMS is an audio player for the X Window System.
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
ALSA-1.0.13, EsounD-0.2.37, libvorbis-1.2.0 and libmikmod-3.1.11
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/XMMS
Install XMMS by running the following commands:
patch -Np1 -i ../xmms-1.2.10-gcc4-1.patch && ./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/xmms-1.2.10 && install -v -m644 FAQ README /usr/share/doc/xmms-1.2.10
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.
(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. |
|
is used by other programs which need to link with xmms to retrieve the library and include paths. |
|
is a dock applet for the Window Maker window manager. From the applet you can start and control xmms. |
|
contains graphics and playback functions used by xmms. These functions can also be utilized by other packages. |
Last updated on 2007-07-14 18:27:07 -0500
The LAME package contains an MP3 encoder and optionally, an MP3 frame analyzer. This is useful for creating and analyzing compressed audio files.
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
GTK+-1.2.10, NASM-0.98.39, libsndfile (support is currently broken), Electric Fence and Dmalloc
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/lame
Install LAME by running the following commands:
./configure --prefix=/usr --enable-mp3rtp && make
To test the results, issue: make test.
Now, as the root
user:
make install
--enable-mp3rtp
:
Builds the encode-to-RTP program.
--enable-mp3x
: Builds the
mp3x frame
analyzer program (requires GTK+).
creates MP3 audio files from raw PCM or
|
|
is used to encode MP3 with RTP streaming of the output. |
|
is a GTK based graphical MP3 frame analyzer used for debugging, development and studying MP3 frames produced by any encoder. |
|
libraries provide the functions necessary to convert raw PCM and WAV files to MP3 files. |
Last updated on 2007-07-19 12:43:42 -0500
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.
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
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/cdparanoia
Install CDParanoia by running the following commands:
sed -i '/default:/a break;' interface/utils.h && ./configure --prefix=/usr && make
This package does not come with a test suite.
Now, as the root
user:
make install && chmod -v 755 /usr/lib/libcdda_*.so.0.9.8
sed -i '/default:/a break;' interface/utils.h: This command enables the code to be compiled with a recent version of gcc.
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
.
is used for 'ripping' an audio-cd. Ripping is the process of digitally extracting music from an audio-cd. |
|
contains functions used by cdparanoia, as well as other packages, which can automatically identify if a CD device is CDDA compatible. |
|
contains functions used by cdparanoia, as well as other packages, which provide data verification, synchronization, error handling and scratch reconstruction capability. |
Last updated on 2007-04-04 14:42:53 -0500
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.
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
Test suite: http://downloads.sourceforge.net/freetts/freetts-1.2.1-tst.zip
Download MD5 sum: 8e461701ee94b3942cc37783f6de4128
Download size: 3.9 MB
Apache Ant-1.7.0, Sharutils (for the uudecode program), and working audio hardware/software.
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/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:
unzip -q freetts-1.2.1-src.zip -x META-INF/* && unzip -q freetts-1.2.1-tst.zip \ -x {META-INF/*,freetts-1.2.1/{acknowledgments.txt,license.terms}}
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.
Install FreeTTS by running the following commands:
cd lib && sh jsapi.sh && cd .. && ant
To test the results, issue:
ant junit && cd tests && sh regression.sh && cd ..
Now, as the root
user:
install -v -m755 -d /opt/freetts-1.2.1/{lib,docs/{audio,images}} && install -v -m644 lib/*.jar /opt/freetts-1.2.1/lib && install -v -m644 *.txt RELEASE_NOTES license.terms \ docs/*.{pdf,html,txt,sx{w,d}} \ /opt/freetts-1.2.1/docs && install -v -m644 docs/audio/* /opt/freetts-1.2.1/docs/audio && install -v -m644 docs/images/* /opt/freetts-1.2.1/docs/images && cp -v -R javadoc /opt/freetts-1.2.1 && ln -v -s freetts-1.2.1 /opt/freetts
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):
cp -v -R bin /opt/freetts-1.2.1 && install -v -m644 speech.properties $JAVA_HOME/jre/lib && cp -v -R tools /opt/freetts-1.2.1 && cp -v -R mbrola /opt/freetts-1.2.1 && cp -v -R demo /opt/freetts-1.2.1
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.
For additional information and documentation about the FreeTTS project, visit the main web page at http://freetts.sourceforge.net.
Test the installation using the following command:
java -jar /opt/freetts/lib/freetts.jar \ -text "This is a test of the FreeTTS speech synthesis system"
Depending on the setup of your audio drivers and software,
you may have to add the -streaming
switch to the command as shown
below:
java -jar /opt/freetts/lib/freetts.jar -streaming \ -text "This is a test of the FreeTTS speech synthesis system"
Last updated on 2007-07-22 22:06:16 -0500
Audacious is a Gtk+-2 based audio player.
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
Required
Plugins: http://distfiles.atheme.org/audacious-plugins-1.3.5.tgz
Md5 sum: ff6b5901367337f8149e15c8fb1fdf95
Size: 2.9 MB
Optional
Ugly Plugins: http://distfiles.atheme.org/audacious-plugins-ugly-1.3.0.tgz
Md5 sum: 3c6274c334c60e092135202a37c61dc2
Size: 438 KB
Additional plugins can be downloaded from http://audacious-media-player.org/index.php?title=Plugins. Note that these third-party plugins are not supported by the Audacious development team.
PCRE-7.6 or Oniguruma, Secret Rabbit Code (a.k.a. libsamplerate), and GTK-Doc-1.8
AdPlug, ALSA-1.0.13, aRts-1.5.9, cURL-7.16.3, EsounD-0.2.37, JACK, LAME-3.97, libmad-0.15.1b, libmpcdec (requires libmms, libsndfile, libvorbis-1.2.0, LIRC, projectM, PulseAudio, rocklight (only for IBM Thinkpads), SDL-1.2.11, TagLib), and WavPack
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/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
--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.
Install the required plugins package by unpacking the tarball, changing into the newly created directory, and issuing the following commands:
./configure --prefix=/usr && make
This package does not come with a test suite.
Now, as the root
user:
make install
If desired, repeat this procedure for the optional plugins package.
Last updated on 2008-03-16 06:14:39 -0500
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.
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
kdelibs-3.5.9, Ruby-1.8.6-p111, and TagLib
kdebase-3.5.9 and xine Libraries-1.1.12
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)
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/amarok
Install Amarok by running the following commands:
./configure --prefix=$(kde-config --prefix) \ --sysconfdir=/etc/kde \ --disable-debug \ --disable-dependency-tracking && make
This package does not come with a test suite.
Now, as the root
user:
make install
--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.
--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.
$KDE_PREFIX
/share/apps/amarok and
$KDE_PREFIX
/share/doc/HTML/*/amarok
is a wrapper for amarokapp to speed up command line argument passing |
|
is the Amarok audio player |
|
is used to scan a directory structure and build a collection |
|
is a DAAP server for Amarok |
|
is a proxy server for DAAP and Last.fm |
Last updated on 2008-05-09 08:00:42 -0500
This chapter always seems to be the favorite chapter. It's probably because there is a lot of satisfaction in playing your first video when you have spent so much time getting to that point. All those libraries, all the configurations and your reward is that you finally get to watch a movie. Not to worry though, there is always one more CODEC to install.
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.
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
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)
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/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.
Install FFmpeg by running the following commands:
./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
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:
make install && install -v -m755 -d /usr/share/doc/ffmpeg-svn_20070606 && install -v -m644 doc/*.txt /usr/share/doc/ffmpeg-svn_20070606 && texi2html --version >/dev/null 2>&1 || make install-man
If you created additional formats of the documentation,
install it by issuing the following commands as the
root
user:
install -v -m644 doc/*.{html,dvi,pdf,ps} \ /usr/share/doc/ffmpeg-svn_20070606
If you created the API documentation, install it by issuing
the following commands as the root
user:
install -v -m755 -d /usr/share/doc/ffmpeg-svn_20070606/api && cp -v doxy/* /usr/share/doc/ffmpeg-svn_20070606/api
--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-
: 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
<codec>
--enable-gpl
to the configure script.
--enable-pp
: This
switch enables postprocessing support.
--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.
/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).
is a command-line tool to convert video files, network streams and input from a TV card to several video formats. |
|
is a very simple and portable media player using
the |
|
is a streaming server for everything that ffmpeg could use as input (files, streams, TV card input, webcam, etc.). |
|
is a library containing the FFmpeg codecs (both encoding and decoding). |
|
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. |
Last updated on 2008-05-09 08:00:42 -0500
The Avifile package contains an AVI video file player, tools and support libraries. This is useful for viewing and editing AVI files.
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
Patches
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
Qt-3.3.8b and SDL-1.2.11
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
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/avifile
Install the required CODECs as the root
user using the following commands:
install -v -d -m755 /usr/lib/avifile-0.7/win32 && tar -xvf ../binaries-011002.tgz -C /usr/lib/avifile-0.7
Install Avifile by running the following commands:
patch -Np1 -i ../avifile-0.7-0.7.45-gcc41-1.patch && ./configure --prefix=/usr \ --with-win32-path=/usr/lib/avifile-0.7/win32 && make
This package does not come with a test suite.
Now, as the root
user:
make install
performs a measurement of the AVI file support library's performance for a file. |
|
is a widget that displays acquired video from a Video For Windows (VFW) compatible device, like a webcam or a TV-tuner. |
|
takes a set of AVI files and combines them into a single file. |
|
is a script used to get information about the installed version of Avifile. |
|
takes a set of JPG images and creates a movie. |
|
manages the input formats, the CODECs and the output formats to display AVI video files on your screen. |
|
is a command-line video recording tool. |
|
is a widget that takes an input file of one CODEC type and converts it into a video file of another CODEC. |
|
will read and display AVI file header information. |
|
is a small tool which tells video4linux about the current video mode. |
|
libraries contain the functions required by the various Avifile programs for encoding, decoding and to interface with the various plugins and video extensions. |
Last updated on 2008-01-19 03:34:06 -0600
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.
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)
Patches
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.
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
ALSA-1.0.13, aRts-1.5.9, EsounD-0.2.37, JACK, LADSPA, NAS-1.9, OpenAL, PulseAudio, SDL-1.2.11 (also used for video output), and XMMS-1.2.10
AAlib-1.4rc5, DirectFB, Enca, Fontconfig-2.4.2, FreeType-2.3.7, FriBidi-0.10.8, GGI, giflib-4.1.4, GTK+-2.10.13 or GTK+-1.2.10, libcaca, libjpeg-6b, libpng-1.2.29, maemo, VIDIX, and X Window System
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
There is hardware specific packages (or vendor supplied software) you can install to improve the performance of your video card when using MPlayer. Some of the packages and/or vendor supplied software and the MPlayer specific driver created if it is found is shown here.
mga: Matrox G200/G400/G450/G550 hardware YUV overlay via the mga_vid device
xmga: Matrox G200/G400/G450/G550 overlay (mga_vid) in X11 window
syncfb: Matrox G400 YUV support on framebuffer
3dfx: Voodoo 3/Banshee hardware YUV support (/dev/3dfx)
tdfxfb: Voodoo 3/Banshee hardware YUV support on tdfx framebuffer
mpegpes: support for Siemens DVB hardware MPEG-1/2 decoder boards (or MPEG-PES file output)
dxr2: support for DXR2 hardware MPEG-1/2 decoder boards Dxr2
dxr3: support for DXR3/Hollywood+ hardware MPEG-1/2 decoder boards libdxr3
zr: support for Zoran360[56]7 based hardware MJPEG cards
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/mplayer
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
If you installed any CODECs, ensure you add --with-codecsdir=/usr/lib/mplayer/codecs
to
the configure
script.
To enable building the GUI version of MPlayer (requires GTK+-2.10.13 or
GTK+-1.2.10), add --enable-gui
to the configure script. You'll
also need to extract at least one skin. Extract the desired
skin and create the default location (as the root
user):
install -v -d -m755 /usr/share/mplayer/Skin && tar -xvf ../Blue-1.7.tar.bz2 \ -C /usr/share/mplayer/Skin && chown -v -R root:root /usr/share/mplayer/Skin/Blue && chmod -v 755 /usr/share/mplayer/Skin/Blue{,/icons} && ln -sfv Blue /usr/share/mplayer/Skin/default
To enable OSD (On Screen Display) and subtitles support,
add --enable-menu
to the
configure
script. You'll also need to set up at least one font (see
font installation instructions a little later).
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.
Install MPlayer by running the following commands:
patch -Np0 -i ../asmrules_fix_20061231.diff && patch -Np0 -i ../cddb_fix_20070605.diff && patch -Np1 -i ../MPlayer-1.0rc1-ext_ffmpeg-1.patch && ./configure --prefix=/usr \ --confdir=/etc/mplayer \ --enable-largefiles \ --enable-dynamic-plugins && make
This package does not come with a test suite.
Now, as the root
user:
make install && install -v -m755 -d /usr/share/doc/mplayer-1.0rc1 && cp -v -R DOCS/* /usr/share/doc/mplayer-1.0rc1
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.
install -m644 etc/codecs.conf /etc/mplayer
You may also want to copy all the default configuration
files to /etc/mplayer
for
future reference or more customization ability.
install -m644 etc/*.conf /etc/mplayer
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
:
echo "dev.rtc.max-user-freq=1024" >> /etc/sysctl.conf
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:
install -v -m750 -d ~/.mplayer && ln -v -sf /usr/share/fonts/X11-TTF/luxisri.ttf \ ~/.mplayer/subfont.ttf
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.
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.
is a symlink to mplayer which brings up the graphical user interface component of 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 |
|
is used to encode any MPlayer playable movie to
DivX4, XviD or any
CODEC in Example:
rm frameno.avi
mencoder -dvd 1 -aid 128 -ovc frameno -oac mp3lame \
-lameopts vbr=3 -o frameno.avi
|
|
contains functions used by the MPlayer programs. |
|
is a post-processing filter library used by the MPlayer programs and other packages. |
Last updated on 2008-05-10 18:53:20 -0500
The xine User Interface package contains a multimedia player. It plays back CDs, DVDs and VCDs. It also decodes multimedia files like AVI, MOV, WMV, MPEG and MP3 from local disk drives, and displays multimedia streamed over the Internet.
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
pkg-config-0.22, cURL-7.16.3, AAlib-1.4rc5, LIRC and libcaca
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/xine-ui
Install xine User Interface by running the following commands:
./configure --prefix=/usr && make
This package does not come with a test suite.
Now, as the root
user:
make docsdir=/usr/share/doc/xine-ui-0.99.5 install
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
.
is an ASCII art video player which utilizes AAlib as the frontend for the xine Libraries. |
|
is a color ASCII art video player which utilizes CACA as the frontend for the xine Libraries. |
|
is a frame buffer interface to the xine Libraries. |
|
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). |
|
produces a terse system description and guides you through the process of reporting a bug. |
|
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. |
|
is a tool to connect to a xine remote control server. |
Last updated on 2008-05-09 08:00:42 -0500
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/.
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
FFmpeg-svn_20070606 and libmpeg2-0.4.1
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
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/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
--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.
indicates or changes the FOURCC CODEC flag in an AVI file. |
|
dumps audio or video stream of a given AVI file to stdout (for AVI conversion or extraction of audio streams). |
|
fixes the header of an AVI file. |
|
writes a text file describing the index of an AVI file. |
|
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!). |
|
splits AVI files into multiple files. |
|
can shift audio in AVI files for better synchronizing of the audio and video data signal. |
|
concatenates input files using the input plugins of Transcode. |
|
is used to decode input files to raw video and PCM audio streams. |
|
demultiplexes (separates) audio/video input that contains multiple streams, e.g., VOB files. |
|
grabs single streams from a file containing multiple streams. |
|
processes single video frames for different color encodings (RGB >-< YUV or similar). |
|
loads a supplied Transcode filter module and prints its parameters. |
|
is a tool which can cut MP3 streams at milliseconds positions. |
|
prints information about the input file format. |
|
is a tool which can requantize an MPEG-2 elementary stream. |
|
performs several measurements on the given input data. |
|
checks information in a SMIL input file. |
|
is the encoder's user interface that handles the plugins and other programs, being the glue between the modules. There are several well documented usage examples on both the homepage and the documentation included in the package. |
|
is used to interface with the |
|
is a support module used to decode |
|
— depending on the external libraries that are used, there are a great number of plugins to convert audio and video input to raw format, process raw video and audio and convert raw audio and video to other formats to be written into a file type of choice. Read the documentation for complete information. |
Last updated on 2007-08-17 16:59:22 -0500
This chapter contains information on CD/DVD-writing utilities in Linux.
Additional sources of information include:
The Cdrtools package contains CD recording utilities. These are useful for reading, creating or writing (burning) Compact Discs.
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
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
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/Cdrtools
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:
patch -Np1 -i ../cdrtools-2.01-mkisofs_iconv-1.patch
The cdrecord program has hard-coded non-ASCII characters in its messages. Since these characters are part of the ISO-8859-1 character set, they will not be displayed correctly in locales that use a different character set, such as UTF-8. The following patch converts these characters to ASCII approximations:
patch -Np1 -i ../cdrtools-2.01-ascii-2.patch
Install Cdrtools by running the following commands:
make INS_BASE=/usr DEFINSUSR=root DEFINSGRP=root
This package does not come with a test suite.
Now, as the root
user:
make INS_BASE=/usr DEFINSUSR=root DEFINSGRP=root install && install -v -m755 -d /usr/share/doc/cdrtools-2.01 && install -v -m644 README* ABOUT doc/*.ps \ /usr/share/doc/cdrtools-2.01
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.
converts Compact Disc audio into WAV sound files. |
|
records audio or data Compact Discs. |
|
is a diagnostic program used to dump an ISO-9660 device or file in hex. |
|
is used to display the command-line parameters used to create an ISO-9660 image. |
|
is a diagnostic program used to dump a device or file based on ISO-9660. |
|
is used to analyze or list an ISO-9660 image. |
|
is used to verify an ISO-9660 image. |
|
is a symbolic link to mkisofs used to create ISO-9660/HFS hybrid filesystem images. |
|
is used to create ISO-9660/JOLIET/HFS filesystem images, optionally with Rock Ridge attributes. |
|
reads or writes Compact Discs. |
|
is a remote SCSI manager. |
|
is used to check and verify the Application Binary
Interface of |
|
is a highly portable SCSI transport library. |
Last updated on 2007-04-04 14:42:53 -0500
The Cdrdao package contains CD recording utilities. These are useful for burning a CD in disk-at-once mode.
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)
libao-0.8.8, libvorbis-1.2.0, libmad-0.15.1b, and LAME-3.97 (required to build toc2mp3)
Note that the following packages must be built in the order listed. Use the current “stable” version of each package.
libgnomeui-2.18.1, libsigc++, glibmm, gtkmm, libglademm, libgnomecanvasmm, gconfmm, gnome-vfsmm, libgnomemm, and libgnomeuimm
There are two additional optional dependencies that can be used by the Cdrdao build: Cdrtools-2.01 and PCCTS. The pieces of these two packages required to build Cdrdao are also included in the source tree and are used by default.
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/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
records audio or data CD-Rs in disk-at-once (DAO) mode based on a textual description of the CD contents. |
|
converts CUE to TOC format for audio CDs. |
|
is a graphical front end to cdrdao for composing audio CDs. |
|
converts a Cdrdao TOC file into a cddb file and prints it to stdout. |
|
converts TOC to CUE format for audio CDs. |
|
converts an audio CD disk image ( |
Last updated on 2007-08-13 14:20:47 -0500
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.
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
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/udftools
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
Recompile and install the new kernel.
Install UDFtools by running the following commands:
bzcat ../udftools-1.0.0b3.patch.bz2 | patch -Np1 && sed -i -e 's/(char\*)spm +=/spm = (char\*)spm +/' wrudf/wrudf.c && ./configure --prefix=/usr && make
Now, as the root
user:
make install
sed -i -e 's/(char\*)spm +=/spm = (char\*)spm +/' wrudf/wrudf.c: This change is required to compile with recent compilers.
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. |
|
is used to create new UDF file systems. It can be used on hard disks and CD-Rs as well as CD-RWs. |
|
is used to establish and break down associations between the kernel packet driver and a physical drive. Example: pktsetup /dev/pktcdvd0 /dev/scd0 mount /dev/pktcdvd0 /mnt/cdrom -t udf -o rw,noatime
associates the physical device |
|
is used to check the integrity and correct errors on UDF filesystems. |
|
is used to maintain a UDF filesystem. |
|
contains functions used by the UDFtools programs. |
Last updated on 2007-04-04 14:42:53 -0500
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.
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
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.
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/dvd+rw-tools
Install dvd+rw-tools by running the following commands:
make all rpl8 btcflash
This package does not come with a test suite.
Now, as the root
user:
make prefix=/usr install && install -v -m644 -D index.html \ /usr/share/doc/dvd+rw-tools-7.0/index.html
make all rpl8 btcflash: This command uses additional targets so that all the utilities are built.
Last updated on 2007-07-15 18:38:01 -0500
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.
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
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.
kdebase-3.5.9, libjpeg-6b, kdemultimedia-3.5.9 (required for a working audio player)
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.
Transcode-1.0.3, XviD-1.1.3, libdvdread-0.9.7, and libdvdcss-1.2.9
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/k3b
Install K3b by running the following commands:
./configure --prefix=$(kde-config --prefix) \ --sysconfdir=/etc/kde \ --disable-debug \ --disable-dependency-tracking && make
This package does not come with a test suite.
Now, as the root
user:
make install
--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.
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.
$KDE_PREFIX
/share/:
applnk/Settings/System, apps/k3b, doc/HTML/en/k3b
Last updated on 2008-04-23 01:10:40 -0500
This chapter contains spooling printer management systems and ghostscript applications to render PostScript for display on terminals or paper.
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.
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
libjpeg-6b, libpng-1.2.29, and LibTIFF-3.8.2
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)
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/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
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 && ln -v -s accept.8 /usr/share/man/man8/reject.8 && ln -v -s cupsenable.8 /usr/share/man/man8/cupsdisable.8
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
.
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.
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.
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
instructs the printing system to accept print jobs to the specified destinations. |
|
cancels existing print jobs from the print queues. |
|
is a CUPS program configuration utility. |
|
exports printers to the Samba software for use with Windows clients. |
|
is the scheduler for the Common Unix Printing System. |
|
tests the conformance of PPD files. |
|
stops the named printers or classes. |
|
starts the named printers or classes. |
|
submits files for printing or alters a pending job. |
|
configures printer and class queues provided by CUPS. |
|
provides limited control over printer and class queues provided by CUPS. |
|
lists the available devices or drivers known to the CUPS server. |
|
moves the specified job to a new destination. |
|
displays or sets printer options and defaults. |
|
adds, changes or deletes passwords in the
CUPS digest
password file |
|
shows the current print queue status on the named printer. |
|
submits files for printing. |
|
cancels print jobs that have been queued for printing. |
|
displays status information about the current classes, jobs, and printers. |
|
instructs the printing system to reject print jobs to the specified destinations. |
Last updated on 2008-05-09 07:42:27 -0500
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.
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
OpenSSL-0.9.8g, TCP Wrapper-7.6, MIT Kerberos V5-1.6, and krb4
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/lprng
Install LPRng by running the following commands:
sed -i 's@CLEAR,0@CLEAR,CLEAR,NULL@' src/common/lpq.c && sed -i 's@ fd, l@ fd, (char*) l@' src/common/krb5_auth.c && sed -i -e 's@\(fi\|done\) \\@\1; \\@' \ -e 's/^SHELL/#&/' Makefile.in && ./configure --prefix=/usr \ --libexecdir=/usr/lib/lprng \ --sysconfdir=/etc \ --enable-shared && make
This package does not come with a test suite.
Now, as the root
user:
make install && install -v -m755 -d /usr/share/doc/lprng-3.8.28 && cp -v -R DOCS/* PrintingCookbook \ /usr/share/doc/lprng-3.8.28
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.
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
.
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
You may also want to remove the lpd script that was
installed in /etc/rc.d/init.d
.
is a symlink to lprm used to send cancel requests to an LPRng print service. |
|
checks out the printcap database. |
|
is a symlink to lpr used to send requests to an LPRng print service. |
|
is a control program for the lpd daemon. |
|
is the print queueing daemon. |
|
is a status monitoring program. |
|
is a print job spooler program. |
|
is a print job removal program. |
|
is a program used to manage SSL certificates for the LPRng software. |
|
creates a set of index files in the LPRng signing certificate directory. |
|
is a print job status reporting program. |
|
contains the API functions used by the LPRng programs. |
Last updated on 2008-05-10 18:53:20 -0500
Ghostscript is a versatile processor for PostScript data with the ability to render PostScript to different targets.
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)
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
libjpeg-6b, libpng-1.2.29, GTK+-1.2.10, and X Window System
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.
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/gs
Install Ghostscript 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
To install the shared library libgs.so
, run the following additional
command as an unprivileged user:
make so
And again, 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
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:
tar -xvf ../<font-tarball>
-C /usr/share/ghostscript &&
chown -v -R root:root /usr/share/ghostscript/fonts
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.
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.
Last updated on 2008-08-11 11:25:52 -0500
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.
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)
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
CUPS-1.2.12, libjpeg-6b, libpng-1.2.29, X Window System, and GTK+-2.10.13 or GTK+-1.2.10
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/espgs
Install ESP Ghostscript by running the following commands:
patch -Np1 -i ../espgs-8.15.4-bov_fix-1.patch && sed -i "s/bbox.dev$/x11.dev/" Makefile.in && ./configure --prefix=/usr \ --enable-threads \ --without-omni && make
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/*
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.
invokes Ghostscript, an interpreter of Adobe Systems' PostScript(tm) and Portable Document Format (PDF) languages. |
|
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.
Last updated on 2008-08-11 11:25:52 -0500
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.
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
CUPS-1.2.12, Foomatic, IJS, GIMP-2.2.17, GTK+-1.2.10, and GTK+-2.10.13
ImageMagick-6.3.5-10, teTeX-3.0, Doxygen-1.5.2, and DocBook-utils-0.6.14
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/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:
make install && install -v -m755 -d /usr/share/doc/gutenprint-5.0.1/api/gutenprint{,ui2} && install -v -m644 doc/gutenprint/html/* \ /usr/share/doc/gutenprint-5.0.1/api/gutenprint && install -v -m644 doc/gutenprintui2/html/* \ /usr/share/doc/gutenprint-5.0.1/api/gutenprintui2
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
.
--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.
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.
Last updated on 2007-08-09 06:36:59 -0500
This chapter contains scanning applications which allow you to convert printed documents into formatted documents readable by other applications.
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.
Download (HTTP): http://alioth.debian.org/download.php/1347/sane-backends-1.0.18.tar.gz
Download (FTP): ftp://ftp2.sane-project.org/pub/sane/old-versions/sane-backends-1.0.18/sane-backends-1.0.18.tar.gz
Download MD5 sum: 7ca7e2908e24721471de92cf40c75e60
Download size: 3.7 MB
Estimated disk space required: 67 MB
Estimated build time: 1.4 SBU
Download (HTTP): http://alioth.debian.org/download.php/1140/sane-frontends-1.0.14.tar.gz
Download (FTP): ftp://ftp2.sane-project.org/pub/sane/sane-frontends-1.0.14/sane-frontends-1.0.14.tar.gz
Downlaod MD5 sum: c63bf7b0bb5f530cf3c08715db721cd3
Download size: 231 KB
Estimated disk space required: 3.0 MB
Estimated build time: less than 0.1 SBU
libjpeg-6b, LibTIFF-3.8.2, libusb-0.1.12, libieee1284, libgphoto2, and teTeX-3.0
X Window System, GTK+-2.10.13, and GIMP-2.2.17
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/sane
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.
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
The SANE-frontends package includes the graphical frontends xscanimage and xcam, and a command-line frontend scanadf. You don't need this package if you intend to use one of the more advanced graphical frontends like XSane-0.994. For a list of frontend packages, see http://www.sane-project.org/sane-frontends.html.
To install SANE-frontends, use 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 doc/sane.png xscanimage-icon-48x48-2.png \ /usr/share/sane
If GIMP was linked into
the build and you wish GIMP to use xscanimage as a scanning
plugin, issue the following command as the root
user:
ln -v -s ../../../../bin/xscanimage /usr/lib/gimp/2.0/plug-ins
--sysconfdir=/etc
:
This switch installs the configuration files in /etc/sane.d
instead of /usr/etc/sane.d
.
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.
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.
The saned
daemon is not meant to be used for untrusted clients. You
should provide TCP Wrapper-7.6 and/or Firewalling
protection to ensure only trusted clients access the
daemon. Due to the complex security requirements to
ensure only trusted clients access the daemon, BLFS does
not provide instructions to configure the saned daemon. If you
desire to make the daemon available, ensure you provide
adequate security, configure your [x]inetd.conf
file and send a
SIGHUP
to
the [x]inetd daemon. Some good information for setting up
and securing the saned daemon can be
found at http://penguin-breeder.org/sane/saned/.
creates a gamma table in the format expected by scanimage. |
|
is a tool used to determine the compiler and linker flags that should be used to compile and link SANE. |
|
is the SANE daemon that allows remote clients to access image acquisition devices available on the local host. |
|
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. |
|
is a command-line interface to control image acquisition devices which are equipped with an automatic document feeder (ADF). |
|
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. |
|
is a graphical camera front end for SANE. |
|
is a graphical user interface for scanning. |
|
is the application programming interface that is used to communicate between frontends and backends. |
|
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. |
Last updated on 2008-05-10 18:53:20 -0500
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.
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
GTK+-2.10.13 or GTK+-1.2.10 and SANE-1.0.18 (back ends)
LibTIFF-3.8.2, libjpeg-6b, little cms-1.16, and GIMP-2.2.17
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/xsane
Install XSane by running the following commands:
./configure --prefix=/usr && make
This package does not come with a test suite.
Now, as the root
user:
make xsanedocdir=/usr/share/doc/xsane-0.994 install && ln -v -s ../../doc/xsane-0.994 \ /usr/share/sane/xsane/doc
If GIMP is installed, issue
the following command as the root
user:
ln -v -s /usr/bin/xsane /usr/lib/gimp/2.0/plug-ins/
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.
ln -v -s /usr/bin/xsane
/usr/lib/gimp/2.0/plug-ins/: This creates a
link in the system-wide GIMP
plug-ins
directory so that
users can access XSane
directly from GIMP.
GIMP must be available
before building XSane for
this to work. Alternatively, create the link in ~/.gimp-2.0/plug-ins/
to provide individual
user access. man
xsane for additional information.
Last updated on 2007-07-27 13:15:57 -0500
This chapter contains DocBook SGML document type definitions (DTDs), DocBook DSSSL Stylesheets and DocBook tools to validate, transform, format and publish DocBook documents.
The SGML Common package contains install-catalog. This is useful for creating and maintaining centralized SGML catalogs.
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
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/sgml-common
Instead of the normal convention of including the autotools
files in the package, the maintainers included symlinks to
the files in /usr/share/automake
. For previous versions
of Automake this convention
is correct, but recent versions of Automake install the internal files in
version specific directories. This causes the configure script to abort.
To fix this error, the autotools are regenerated. Since the
included Makefile.am
file uses
a syntax not supported by current versions of Automake, a patch is required to fix the
syntax.
patch -Np1 -i ../sgml-common-0.6.3-manpage-1.patch && autoreconf -f -i
Install SGML Common 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-catalog --add /etc/sgml/sgml-ent.cat \ /usr/share/sgml/sgml-iso-entities-8879.1986/catalog && install-catalog --add /etc/sgml/sgml-docbook.cat \ /etc/sgml/sgml-ent.cat
Remove the above catalog items prior to upgrading (as the
root
user) with:
install-catalog --remove /etc/sgml/sgml-ent.cat \ /usr/share/sgml/sgml-iso-entities-8879.1986/catalog && install-catalog --remove /etc/sgml/sgml-docbook.cat \ /etc/sgml/sgml-ent.cat
creates a centralized catalog that maintains
references to catalogs scattered throughout the
|
|
will print to standard output the name of the main configuration file. |
|
contain the basic character entities defined with SDATA entries. |
|
contain the basic character entities defined by a hexadecimal representation of the Unicode character number. |
Last updated on 2007-04-04 14:42:53 -0500
The DocBook SGML DTD package contains document type definitions for verification of SGML data files against the DocBook rule set. These are useful for structuring books and software documentation to a standard allowing you to utilize transformations already written for that standard.
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
SGML Common-0.6.3 and UnZip-5.52
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/sgml-dtd-3
The package source is distributed in zip
format and requires unzip. You should create
a directory and change to that directory before unzipping
the file to ease the removal of the source files after the
package has been installed.
Install DocBook SGML DTD by running the following commands:
sed -i -e '/ISO 8879/d' \ -e 's|DTDDECL "-//OASIS//DTD DocBook V3.1//EN"|SGMLDECL|g' \ docbook.cat
This package does not come with a test suite.
Now, as the root
user:
install -v -d -m755 /usr/share/sgml/docbook/sgml-dtd-3.1 && chown -R root:root . && install -v docbook.cat /usr/share/sgml/docbook/sgml-dtd-3.1/catalog && cp -v -af *.dtd *.mod *.dcl /usr/share/sgml/docbook/sgml-dtd-3.1 && install-catalog --add /etc/sgml/sgml-docbook-dtd-3.1.cat \ /usr/share/sgml/docbook/sgml-dtd-3.1/catalog && install-catalog --add /etc/sgml/sgml-docbook-dtd-3.1.cat \ /etc/sgml/sgml-docbook.cat
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.
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):
cat >> /usr/share/sgml/docbook/sgml-dtd-3.1/catalog << "EOF"
-- Begin Single Major Version catalog changes --
PUBLIC "-//Davenport//DTD DocBook V3.0//EN" "docbook.dtd"
-- End Single Major Version catalog changes --
EOF
Last updated on 2007-04-04 14:42:53 -0500
The DocBook SGML DTD package contains document type definitions for verification of SGML data files against the DocBook rule set. These are useful for structuring books and software documentation to a standard allowing you to utilize transformations already written for that standard.
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
SGML Common-0.6.3 and UnZip-5.52
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/sgml-dtd
The package source is distributed in zip
format and requires unzip. You should create
a directory and change to that directory before unzipping
the file to ease the removal of the source files after the
package has been installed.
Install DocBook SGML DTD by running the following commands:
sed -i -e '/ISO 8879/d' \ -e '/gml/d' docbook.cat
This package does not come with a test suite.
Now, as the root
user:
install -v -d /usr/share/sgml/docbook/sgml-dtd-4.5 && chown -R root:root . && install -v docbook.cat /usr/share/sgml/docbook/sgml-dtd-4.5/catalog && cp -v -af *.dtd *.mod *.dcl /usr/share/sgml/docbook/sgml-dtd-4.5 && install-catalog --add /etc/sgml/sgml-docbook-dtd-4.5.cat \ /usr/share/sgml/docbook/sgml-dtd-4.5/catalog && install-catalog --add /etc/sgml/sgml-docbook-dtd-4.5.cat \ /etc/sgml/sgml-docbook.cat
sed -i -e '/ISO 8879/d' -e '/gml/d' docbook.cat: This command removes the ENT definitions from the catalog file.
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):
cat >> /usr/share/sgml/docbook/sgml-dtd-4.5/catalog << "EOF"
-- Begin Single Major Version catalog changes --
PUBLIC "-//OASIS//DTD DocBook V4.4//EN" "docbook.dtd"
PUBLIC "-//OASIS//DTD DocBook V4.3//EN" "docbook.dtd"
PUBLIC "-//OASIS//DTD DocBook V4.2//EN" "docbook.dtd"
PUBLIC "-//OASIS//DTD DocBook V4.1//EN" "docbook.dtd"
PUBLIC "-//OASIS//DTD DocBook V4.0//EN" "docbook.dtd"
-- End Single Major Version catalog changes --
EOF
Last updated on 2007-04-04 14:42:53 -0500
The OpenSP package contains a C++ library for using SGML/XML files. This is useful for validating, parsing and manipulating SGML and XML documents.
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
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/opensp
Install OpenSP by running the following commands:
sed -i 's:32,:253,:' lib/Syntax.cxx && sed -i 's:LITLEN 240 :LITLEN 8092:' \ unicode/{gensyntax.pl,unicode.syn} && ./configure --prefix=/usr --disable-static --disable-doc-build \ --enable-default-catalog=/etc/sgml/catalog --enable-http \ --enable-default-search-path=/usr/share/sgml && make pkgdatadir=/usr/share/sgml/OpenSP-1.5.2
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:
make pkgdatadir=/usr/share/sgml/OpenSP-1.5.2 install && ln -v -sf onsgmls /usr/bin/nsgmls && ln -v -sf osgmlnorm /usr/bin/sgmlnorm && ln -v -sf ospam /usr/bin/spam && ln -v -sf ospcat /usr/bin/spcat && ln -v -sf ospent /usr/bin/spent && ln -v -sf osx /usr/bin/sx && ln -v -sf osx /usr/bin/sgml2xml && ln -v -sf libosp.so /usr/lib/libsp.so
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.
is used to process SGML files. |
|
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. |
|
is a markup stream editor. |
|
prints effective system identifiers found in the catalogs. |
|
provides access to OpenSP's entity manager. |
|
is an SGML normalizer or used to convert SGML files to XML files. |
|
is a symlink to onsgmls. |
|
is a symlink to osx. |
|
is a symlink to osgmlnorm. |
|
is a symlink to ospam. |
|
is a symlink to ospcat. |
|
is a symlink to ospent. |
|
is a symlink to osx. |
|
contains functions required by the OpenSP programs to parse, validate and manipulate SGML and XML files. |
|
is a symlink to |
Last updated on 2007-07-14 18:27:07 -0500
The OpenJade package contains a DSSSL engine. This is useful for SGML and XML transformations into RTF, TeX, SGML and XML.
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
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/openjade
Install OpenJade by running the following commands:
./configure --prefix=/usr --enable-http --disable-static \ --enable-default-catalog=/etc/sgml/catalog \ --enable-default-search-path=/usr/share/sgml \ --datadir=/usr/share/sgml/openjade-1.3.2 && make
This package does not come with a test suite.
Now, as the root
user:
make install && make install-man && ln -v -sf openjade /usr/bin/jade && ln -v -sf libogrove.so /usr/lib/libgrove.so && ln -v -sf libospgrove.so /usr/lib/libspgrove.so && ln -v -sf libostyle.so /usr/lib/libstyle.so && install -v -m644 dsssl/catalog /usr/share/sgml/openjade-1.3.2/ && install -v -m644 dsssl/*.{dtd,dsl,sgm} \ /usr/share/sgml/openjade-1.3.2 && install-catalog --add /etc/sgml/openjade-1.3.2.cat \ /usr/share/sgml/openjade-1.3.2/catalog && install-catalog --add /etc/sgml/sgml-docbook.cat \ /etc/sgml/openjade-1.3.2.cat
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.
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.
Last updated on 2007-04-04 14:42:53 -0500
The DocBook DSSSL Stylesheets package contains DSSSL stylesheets. These are used by OpenJade or other tools to transform SGML and XML DocBook files.
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
Documentation and test data: http://downloads.sourceforge.net/docbook/docbook-dsssl-doc-1.79.tar.bz2
Download MD5 sum: 9a7b809a21ab7d2749bb328334c380f2
Download size: 142 KB
DocBook SGML DTD-3.1, DocBook SGML DTD-4.5, OpenSP-1.5.2 and OpenJade-1.3.2
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/docbook-dsssl
Ensure you unpack both the source and documentation tarballs before beginning the build.
Install DocBook DSSSL
Stylesheets by running the following commands as the
root
user:
install -v -m755 bin/collateindex.pl /usr/bin && install -v -m644 bin/collateindex.pl.1 /usr/share/man/man1 && install -v -d -m755 /usr/share/sgml/docbook/dsssl-stylesheets-1.79 && cp -v -R * /usr/share/sgml/docbook/dsssl-stylesheets-1.79 && install-catalog --add /etc/sgml/dsssl-docbook-stylesheets.cat \ /usr/share/sgml/docbook/dsssl-stylesheets-1.79/catalog && install-catalog --add /etc/sgml/dsssl-docbook-stylesheets.cat \ /usr/share/sgml/docbook/dsssl-stylesheets-1.79/common/catalog && install-catalog --add /etc/sgml/sgml-docbook.cat \ /etc/sgml/dsssl-docbook-stylesheets.cat
The above commands create an installation script for this package.
The following commands will perform the necessary tests to
confirm that your installed DocBook SGML toolchain will
produce desired results. You must have the DocBook SGML
DTD-3.1, DocBook SGML DTD-4.5, OpenSP-1.5.2
and OpenJade-1.3.2 packages installed and
perform the tests as the root
user.
All tests will be performed from the /usr/share/sgml/docbook/dsssl-stylesheets-1.79/doc/testdata
directory:
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:
openjade -t rtf -d jtest.dsl jtest.sgm
The next test should return only the following line to
stdout: onsgmls:I: "OpenSP"
version "1.5.2"
onsgmls -sv test.sgm
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
Last updated on 2007-07-14 18:27:07 -0500
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.
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
OpenJade-1.3.2, DocBook DSSSL Stylesheets-1.79 and DocBook SGML DTD-3.1
JadeTeX-3.13 (for conversion to DVI, PS and PDF), SGMLSpm-1.03ii (for conversion to man and texinfo), and Lynx-2.8.6rel.5 or Links-2.1pre33 or w3m (for conversion to ASCII text)
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/docbook-utils
Install DocBook-utils by running the following commands:
sed -i 's:/html::' doc/HTML/Makefile.in && ./configure --prefix=/usr && make
This package does not come with a test suite.
Now, as the root
user:
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
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.
sed -i 's:/html::' doc/HTML/Makefile.in: This command changes the installation directory of the HTML documents.
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. |
|
are symlinks pointing at the respectively named docbook2* commands, created to satisfy some program's use of these names. |
|
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. |
|
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. |
Last updated on 2007-04-04 14:42:53 -0500
This chapter contains the DocBook XML document type definition (DTD) and DocBook Stylesheets which are used to validate, transform, format and publish DocBook documents.
The DocBook XML DTD-4.5 package contains document type definitions for verification of XML data files against the DocBook rule set. These are useful for structuring books and software documentation to a standard allowing you to utilize transformations already written for that standard.
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
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/docbook
The package source is distributed in zip
format and requires unzip. You should create
a directory and change to that directory before unzipping
the file to ease the removal of the source files after the
package has been installed.
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" \ /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
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
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):
for DTDVERSION in 4.1.2 4.2 4.3 4.4 do xmlcatalog --noout --add "public" \ "-//OASIS//DTD DocBook XML V$DTDVERSION//EN" \ "http://www.oasis-open.org/docbook/xml/$DTDVERSION/docbookx.dtd" \ /etc/xml/docbook xmlcatalog --noout --add "rewriteSystem" \ "http://www.oasis-open.org/docbook/xml/$DTDVERSION" \ "file:///usr/share/xml/docbook/xml-dtd-4.5" \ /etc/xml/docbook xmlcatalog --noout --add "rewriteURI" \ "http://www.oasis-open.org/docbook/xml/$DTDVERSION" \ "file:///usr/share/xml/docbook/xml-dtd-4.5" \ /etc/xml/docbook xmlcatalog --noout --add "delegateSystem" \ "http://www.oasis-open.org/docbook/xml/$DTDVERSION/" \ "file:///etc/xml/docbook" \ /etc/xml/catalog xmlcatalog --noout --add "delegateURI" \ "http://www.oasis-open.org/docbook/xml/$DTDVERSION/" \ "file:///etc/xml/docbook" \ /etc/xml/catalog done
contain a document type definition which defines
the element types and the attribute lists that can
be used in the corresponding |
|
files contain components of the document type
definition that are sourced into the |
|
files contain lists of named character entities allowed in HTML. |
Last updated on 2007-07-14 18:27:07 -0500
The DocBook XSL Stylesheets package contains XSL stylesheets. These are useful for performing transformations on XML DocBook files.
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
Optional documentation: http://downloads.sourceforge.net/docbook/docbook-xsl-doc-1.71.1.tar.bz2
Download MD5 sum: f7844a751a4612c56acddc0790fbc501
Download size: 1.3 MB
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/docbook-xsl
If you downloaded the optional documentation tarball, unpack
it when you unpack the source tarball. The documentation
tarball unpacks into a doc
subdirectory of the source tree.
BLFS does not install the required packages to run the test suite and provide meaningful results.
Install DocBook XSL
Stylesheets by running the following commands as the
root
user:
install -v -m755 -d /usr/share/xml/docbook/xsl-stylesheets-1.71.1 && cp -v -R VERSION common eclipse extensions fo highlighting html \ htmlhelp images javahelp lib manpages params profiling \ slides template tools website wordml xhtml \ /usr/share/xml/docbook/xsl-stylesheets-1.71.1 && install -v -m644 -D README \ /usr/share/doc/docbook-xsl-1.71.1/README.XSL && install -v -m755 RELEASE-NOTES* NEWS* \ /usr/share/doc/docbook-xsl-1.71.1
If you downloaded the optional documentation tarball, install
the documentation by issuing the following command as the
root
user:
cp -v -R doc/* /usr/share/doc/docbook-xsl-1.71.1
Create (or append) and populate the XML catalog file using
the following commands as the root
user:
if [ ! -d /etc/xml ]; then install -v -m755 -d /etc/xml; fi && if [ ! -f /etc/xml/catalog ]; then xmlcatalog --noout --create /etc/xml/catalog fi && xmlcatalog --noout --add "rewriteSystem" \ "http://docbook.sourceforge.net/release/xsl/1.71.1" \ "/usr/share/xml/docbook/xsl-stylesheets-1.71.1" \ /etc/xml/catalog && xmlcatalog --noout --add "rewriteURI" \ "http://docbook.sourceforge.net/release/xsl/1.71.1" \ "/usr/share/xml/docbook/xsl-stylesheets-1.71.1" \ /etc/xml/catalog && xmlcatalog --noout --add "rewriteSystem" \ "http://docbook.sourceforge.net/release/xsl/current" \ "/usr/share/xml/docbook/xsl-stylesheets-1.71.1" \ /etc/xml/catalog && xmlcatalog --noout --add "rewriteURI" \ "http://docbook.sourceforge.net/release/xsl/current" \ "/usr/share/xml/docbook/xsl-stylesheets-1.71.1" \ /etc/xml/catalog
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>
):
xmlcatalog --noout --add "rewriteSystem" \ "http://docbook.sourceforge.net/release/xsl/<version>
" \ "/usr/share/xml/docbook/xsl-stylesheets-<version>
" \ /etc/xml/catalog && xmlcatalog --noout --add "rewriteURI" \ "http://docbook.sourceforge.net/release/xsl/<version>
" \ "/usr/share/xml/docbook/xsl-stylesheets-<version>
" \ /etc/xml/catalog
Last updated on 2007-09-22 06:31:18 -0500
This chapter includes applications that create, manipulate or view PostScript files and create or view Portable Document Format PDF files.
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”.
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.
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
International fonts: ftp://ftp.enst.fr/pub/unix/a2ps/i18n-fonts-0.1.tar.gz
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)
X Window System, teTeX-3.0, AFPL Ghostscript-8.53 or ESP Ghostscript-8.15.4, libpaper, Adobe Reader, and Ghostview
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/A2PS
Install a2ps by running the following commands:
sed -i 's/+0 -1/-k 1,2/' afm/make_fonts_map.sh && sed -i "s|/usr/local/share|/usr/share|" configure && ./configure --prefix=/usr \ --sysconfdir=/etc/a2ps \ --enable-shared \ --with-medium=letter && make
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:
tar -xf ../i18n-fonts-0.1.tar.gz && cp -v i18n-fonts-0.1/fonts/* /usr/share/a2ps/fonts && cp -v i18n-fonts-0.1/afm/* /usr/share/a2ps/afm && cd /usr/share/a2ps/afm && ./make_fonts_map.sh && mv fonts.map.new fonts.map
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.
is a filter, utilized primarily by printing scripts, that converts standard input or supported files to PostScript. |
|
prints a reference card of a given program's options. |
|
creates a composite font program. |
|
is supposed to fix the problems in the PostScript files generated by the Microsoft PostScript driver under Windows NT (3.5 and 4.0). |
|
tries to fix common PostScript problems that break postprocessing. |
|
provides international support for Postscript by performing various munging of PostScript files related to printing in different languages. |
|
produces a pretty comparison between files. |
|
tries to produce a version of a given PostScript file to print in manual duplex. |
|
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. |
|
compiles Texinfo and LaTeX files to DVI or PDF |
Last updated on 2008-05-09 08:00:42 -0500
Enscript converts ASCII text files to PostScript, HTML, RTF, ANSI and overstrikes.
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.
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
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/Enscript
Install Enscript by running the following commands:
patch -Np1 -i ../enscript-1.6.4-security_fixes-1.patch && ./configure --prefix=/usr \ --sysconfdir=/etc/enscript \ --localstatedir=/var \ --with-media=Letter && make
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:
make -C docs ps && make -C docs pdf && cd docs && texi2html enscript.texi && makeinfo --plaintext -o enscript.txt enscript.texi && cd ..
To test the results, issue: make check.
Now, as the root
user:
make install && install -v -m755 -d /usr/share/doc/enscript-1.6.4 && install -v -m644 README* *.txt docs/FAQ.html \ /usr/share/doc/enscript-1.6.4
If you built any of the alternate forms of documentation,
install it using the following command as the root
user:
install -v -m644 docs/*.{dvi,html,pdf,ps,txt} \ /usr/share/doc/enscript-1.6.4
--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.
converts diff output files to a format suitable to be printed with enscript. |
|
is a filter, used primarily by printing scripts, that converts ASCII text files to PostScript, HTML, RTF, ANSI and overstrikes. |
|
creates a font map from a given file. |
|
is a script which calls enscript and passes the correct parameters to create overstriked fonts. |
|
slices documents with long lines. |
|
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. |
Last updated on 2007-07-14 18:27:07 -0500
PSUtils is a set of utilities to manipulate PostScript files.
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
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/psutils
Install PSUtils by running the following commands:
sed 's@/usr/local@/usr@g' Makefile.unix > Makefile && make
This package does not come with a test suite.
Now, as the root
user:
make install
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.
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>
fits an EPSF file to a given bounding box. |
|
rearranges pages into signatures. |
|
puts multiple pages per physical sheet of paper. |
|
alters the document paper size. |
|
selects pages and page ranges. |
|
performs general page rearrangements and selection. |
|
scripts |
the remaining commands are scripts that perform specific functions described in their respective man pages. |
Last updated on 2007-04-04 14:42:53 -0500
GSview is a viewer for PostScript and PDF using X.
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
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.
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/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
sed 's:/local::' srcunx/unx.mak
> Makefile: This command changes the
default installation directory to /usr
during the creation of the
Makefile
.
Last updated on 2008-08-11 11:14:36 -0500
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.
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
Required patch: ftp://ftp.foolabs.com/pub/xpdf/xpdf-3.02pl2.patch
AFPL Ghostscript-8.53 or ESP Ghostscript-8.15.4 (just the fonts), t1lib, and libpaper
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/Xpdf
Install Xpdf by running the following commands:
patch -Np1 -i ../xpdf-3.02pl2.patch && ./configure --prefix=/usr \ --sysconfdir=/etc \ --with-freetype2-includes=/usr/include/freetype2 \ --enable-opi \ --enable-multithreaded \ --enable-wordlist && make
This package does not come with a test suite.
Now, as the root
user:
make install
--enable-a4-paper
: This switch
must be added to set DIN A4 as the standard paper format.
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
urlCommand "links -g %s"
lists the fonts used in a PDF file along with various information for each font. |
|
saves images from a PDF file as PPM, PBM, or JPEG files. |
|
prints the contents of the 'Info' dictionary (plus some other useful information) from a PDF file. |
|
converts PDF files to PBM, PGM and PPM formats. |
|
converts PDF files to Postscript format. |
|
parses ASCII text from PDF files. |
|
displays files in PDF format. |
Last updated on 2008-03-31 12:02:00 -0500
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.
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
Required packages
Objects for Formatting Objects (OFFO) hyphenation
patterns:
http://downloads.sourceforge.net/offo/offo-hyphenation.zip
0b8c1657ef70285ad7fd514061b08c3e
359 KB
Java Advanced Imaging (JAI) API components:
http://javashoplm.sun.com/ECom/docs/Welcome.jsp?StoreId=22&
PartDetailId=jai-1_1_2_01-oth-JPR&SiteId=JSC&TransactionId=noreg
f2be3619a8d002eff3874355e96327eb
2.6 MB
Choose the “Linux JDK
Install” file after accepting the license
agreement.
JIMI SDK, XMLUnit, and Forrest (only used to rebuild the documentation)
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/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.
Before beginning the build, unpack the FOP source tarball and the hyphenation zipfile from the same directory, then change directories into the root of the FOP source tree. The XML Hyphenation patterns will be copied into the FOP source tree by running the following commands:
cp ../offo-hyphenation/hyph/* hyph && rm -rf ../offo-hyphenation
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
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.
$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.
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
/opt/fop/{build,lib}
; JAI components
include libmlib_jai.so, jai_codec.jar, jai_core.jar, and
mlibwrapper_jai.jar
Last updated on 2008-05-10 18:53:20 -0500
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.
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
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/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
Last updated on 2008-03-10 18:57:16 -0500
kghostview is a Qt based PostScript/PDF viewer from kdegraphics-3.5.9.
Last updated on 2007-04-04 14:42:53 -0500
This chapter includes applications that create output equivalent to typesetting.
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.
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
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:
Download (HTTP): http://anduin.linuxfromscratch.org/sources/BLFS/6.3/t/tetex-cm-super.tar.bz2
Download (FTP): ftp://anduin.linuxfromscratch.org/BLFS/6.3/t/tetex-cm-super.tar.bz2
Download MD5 sum: d7c89fcb35f625b02853a0881a4ec760
Download size: 63.8 MB
libpng-1.2.29, X Window System, Tk-Perl-804.027, t1lib, and GD
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/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:
install -v -d -m755 /usr/share/texmf && gzip -dc ../tetex-texmf-3.0.tar.gz \ | (umask 0; cd /usr/share/texmf; tar -xvf -)
If the optional texmfsrc
source
code TAR ball was downloaded, unpack it now as the
root
user:
gzip -dc ../tetex-texmfsrc-3.0.tar.gz \ | (umask 0; cd /usr/share/texmf; tar -xvf -)
Install teTeX by running the following commands:
./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).
Now, as the root
user:
make install && texconfig-sys dvips paper letter && texconfig-sys font rw
The paper size may be changed to a4, as is used in most countries.
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 && cp -v cm-super/pfb/*.pfb $FONTDIR/fonts/type1/public/cm-super/ && gunzip cm-super/afm/* && cp -v cm-super/afm/*.afm $FONTDIR/fonts/afm/public/cm-super/ && cp -v cm-super/dvips/*.enc $FONTDIR/fonts/enc/dvips/cm-super/ && cp -v cm-super/dvips/*.map $FONTDIR/fonts/map/dvips/cm-super/ && cat >> $FONTDIR/web2c/updmap.cfg << "EOF" && MixedMap cm-super-t1.map MixedMap cm-super-t2a.map MixedMap cm-super-t2b.map MixedMap cm-super-t2c.map MixedMap cm-super-ts1.map MixedMap cm-super-x2.map EOF install -v -m644 -D cm-super/type1ec.sty \ $FONTDIR/tex/latex/cm-super/type1ec.sty && mktexlsr && updmap-sys && unset FONTDIR
--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.
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.
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.
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. |
|
contains functions used by teTeX for searching and cataloging path names. |
Last updated on 2007-07-27 08:42:58 -0500
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.
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
Recommended demo files: http://anduin.linuxfromscratch.org/sources/BLFS/6.3/j/jadetex-3.13-demo.tar.bz2
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/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:
sed -i.orig -e "s/original texmf.cnf/modified texmf.cnf/" \
-e "s/memory hog.../&\npool_size.context = 750000/" \
$(kpsewhich texmf.cnf) &&
cat >> $(kpsewhich texmf.cnf) << "EOF"
% The following 3 sections added for JadeTeX
% 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
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
Install JadeTex using the following commands:
make
Now, as the root
user:
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.
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.
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.
If you need to modify the default JadeTeX macro settings, see the JadeTeX FAQ.
Last updated on 2007-07-14 18:27:07 -0500
Creative Commons Legal Code
Attribution-NonCommercial-ShareAlike 2.0
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.
Definitions
"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.
"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.
"Licensor" means the individual or entity that offers the Work under the terms of this License.
"Original Author" means the individual or entity who created the Work.
"Work" means the copyrightable work of authorship offered under the terms of this License.
"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.
"License Elements" means the following high-level license attributes as selected by Licensor and indicated in the title of this License: Attribution, Noncommercial, ShareAlike.
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.
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:
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;
to create and reproduce Derivative Works;
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;
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).
Restrictions.The license granted in Section 3 above is expressly made subject to and limited by the following restrictions:
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.
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.
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.
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.
For the avoidance of doubt, where the Work is a musical composition:
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.
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.
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.
Representations, Warranties and Disclaimer
UNLESS OTHERWISE MUTUALLY AGREED TO BY THE PARTIES IN WRITING, LICENSOR OFFERS THE WORK AS-IS AND MAKES NO REPRESENTATIONS OR WARRANTIES OF ANY KIND CONCERNING THE WORK, EXPRESS, IMPLIED, STATUTORY OR OTHERWISE, INCLUDING, WITHOUT LIMITATION, WARRANTIES OF TITLE, MERCHANTIBILITY, FITNESS FOR A PARTICULAR PURPOSE, NONINFRINGEMENT, OR THE ABSENCE OF LATENT OR OTHER DEFECTS, ACCURACY, OR THE PRESENCE OF ABSENCE OF ERRORS, WHETHER OR NOT DISCOVERABLE. SOME JURISDICTIONS DO NOT ALLOW THE EXCLUSION OF IMPLIED WARRANTIES, SO SUCH EXCLUSION MAY NOT APPLY TO YOU.
Limitation on Liability. EXCEPT TO THE EXTENT REQUIRED BY APPLICABLE LAW, IN NO EVENT WILL LICENSOR BE LIABLE TO YOU ON ANY LEGAL THEORY FOR ANY SPECIAL, INCIDENTAL, CONSEQUENTIAL, PUNITIVE OR EXEMPLARY DAMAGES ARISING OUT OF THIS LICENSE OR THE USE OF THE WORK, EVEN IF LICENSOR HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
Termination
This License and the rights granted hereunder will terminate automatically upon any breach by You of the terms of this License. Individuals or entities who have received Derivative Works or Collective Works from You under this License, however, will not have their licenses terminated provided such individuals or entities remain in full compliance with those licenses. Sections 1, 2, 5, 6, 7, and 8 will survive any termination of this License.
Subject to the above terms and conditions, the license granted here is perpetual (for the duration of the applicable copyright in the Work). Notwithstanding the above, Licensor reserves the right to release the Work under different license terms or to stop distributing the Work at any time; provided, however that any such election will not serve to withdraw this License (or any other license that has been, or is required to be, granted under the terms of this License), and this License will continue in full force and effect unless terminated as stated above.
Miscellaneous
Each time You distribute or publicly digitally perform the Work or a Collective Work, the Licensor offers to the recipient a license to the Work on the same terms and conditions as the license granted to You under this License.
Each time You distribute or publicly digitally perform a Derivative Work, Licensor offers to the recipient a license to the original Work on the same terms and conditions as the license granted to You under this License.
If any provision of this License is invalid or unenforceable under applicable law, it shall not affect the validity or enforceability of the remainder of the terms of this License, and without further action by the parties to this agreement, such provision shall be reformed to the minimum extent necessary to make such provision valid and enforceable.
No term or provision of this License shall be deemed waived and no breach consented to unless such waiver or consent shall be in writing and signed by the party to be charged with such waiver or consent.
This License constitutes the entire agreement between the parties with respect to the Work licensed here. There are no understandings, agreements or representations with respect to the Work not specified here. Licensor shall not be bound by any additional provisions that may appear in any communication from You. This License may not be modified without the mutual written agreement of the Licensor and You.
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/.
This Academic Free License (the "License") applies to any original work of authorship (the "Original Work") whose owner (the "Licensor") has placed the following notice immediately following the copyright notice for the Original Work:
Licensed under the Academic Free License version 2.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.
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.
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.
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.
This section intentionally omitted.
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.
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 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.
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.
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.
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.
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.
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.
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.
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.
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.
UNIS/Composer 669 Module
Application Binary Interface
Asymmetric Digital Subscriber Line
Andrew File System
Audio Interchange File Format
Advanced Linux Sound Architecture
American National Standards Institute
Application Programming Interface
Apache Portable Runtime
Address Resolution Protocol
American Standard Code for Information Interchange
Abstract Syntax Notation
Advanced Streaming Format
AT-Attached
Advanced Television Systems Committee
Accessibility ToolKit
Audio Video Interleave
Abstract Window Toolkit
Basic Encoding Rules
Berkeley/IRCAM/CARL
Berkeley Internet Name Domain
Basic Input/Output System
Beyond Linux From Scratch
Bit MaP
Compact Disk
Compact Disc Digital Audio
Common Internet File System
See Also SMB .
Cryptographic Message Syntax
COmpression/DECompression module
Common Object Request Broker Architecture
Central Processing Unit
Color Rendering Dictionary
Color Space Array
Contents Scrambling System
Cascading Style Sheets
Common Unix Printing System
Concurrent Versions System
Disc At Once
Directory Address Resolution Protocol Allocation
Digital Equipment Corporation
Distinguished Encoding Rules
Data Encryption Standard
Dynamic Host Configuration Protocol
Dictionary Server Protocol (RFC 2229)
German Industrial Norm
Domain Name Service
Disk Operating System
Direct Rendering Infrastructure
Document Structuring Conventions
Dynamic Shared Objects
Document Style Semantics and Specification Language
Digital Video
Digital Versatile Disk (also Digital Video Disk)
DeVice Independent
Executable and Linking Format
Enhanced Parallel Port
Encapsulated PostScript
Enlighten Sound Daemon
Extended Simple Mail Transfer Protocol
File Alteration Monitor
Fast Assembly Mpeg Encoder
Frequently Asked Questions
Facsimile
Frame Buffer
File Hierarchy Standard
Free Lossless Audio CODEC
Formatted Objects
FOUR Character Code
File Transfer Protocol
GNU Compiler Collection
GNU DataBase Manager
GTK+ Drawing Kit
GNOME Display Manager
Group IDentity
Graphics Interchange Format
OpenGL Utility Toolkit
GNU Multiple Precision Arithmetic
GNU NYU Ada 9x Translator
GNU Network Object Model Environment
GNU's Not Unix
General Public License
General Purpose Mouse
Generic Security Service
Generic Security Service Application Programming Interface
GIMP ToolKit
Graphical User Interface
Hierarchical File System
HyperText Markup Language
HyperText Transfer Protocol
HyperText Transfer Protocol Secured
Hang UP
Internet Assigned Numbers Authority
International Color Consortium
Internet Control Message Protocol
Integrated Drive Electronics
Integrated Development Environment
Interface Definition Language
Ink Jet Systems
Internet Location Server
Internet Message Access Protocol
Inode MONitor
Internet Protocol
See Also TCP .
Internetwork Packet eXchange
Internet Relay Chat
Infrared Data Association
Integrated Services Digital Network
International Standards Organisation
Internet Service Provider
ImpulseTracker Module
Java Advanced Imaging
Java ARchive
Java Development Kit
JPEG File Interchange Format
Joint Photographic Experts Group
Key Distribution Center
KDesktop Environment
Lame Ain't an MP3 Encoder
Local Area Network
Lightweight Directory Access Protocol
Lightweight Data Interchange Format
Linux From Scratch
Library General Public License
Line PRinter
Lempel-Ziv-Oberhumer
Lempel-Ziv-Welch
Media Access Control
Multimedia COmmunication Protocol
Multipoint Control Unit
Message-Digest
Mail Delivery Agent
MED/OctaMED Module
Musical Instrument Digital Interface
Maker Interchange Format
Media Independent Interface
Multipurpose Internet Mail Extensions
Massachusetts Institute of Technology
Multiple-image Network Graphics
ProTracker Module
MPEG-1 audio layer 3
Moving Picture Experts Group
Magick Scripting Language
Mail Transport Agent
MultiTracker Module
Mail User Agent
Netwide ASseMbler
Network News Transfer Protocol
Network File System
Network Information Service
Native Posix Thread Library
Netscape Portable Runtime
Network Security Services
Network Time Protocol
Object Activation Framework
Open DataBase Connectivity
Open Metadata Framework
Object Request Broker
See Also CORBA .
Object Relational Database Management System
Operating System
Open Software Foundation
Open Sound System
Pluggable authentication Modules
Portable BitMap
Peripheral Component Interconnect
Printer Control Language
Pulse Code Modulation
Primary Domain Controller
Portable Document Format
PHP Extension and Application Repository
Portable Grey Map
Pretty Good Privacy
PHP Hypertext Preprocessor
Personal Information Manager
Parallel Line Internet Protocol
Portable Network Graphics
Portable Object
Plain Old Documentation
Post Office Protocol
PostScript Printer Description
Portable Pixel Map
Point to Point Protocol
Point to Point Protocol over Ethernet
PostScript
Random Access Memory
Reverse Address Resolution Protocol
Revision Control System
Request For Comments
Red Green Blue
Red Green Blue Alpha
Read-Only Memory
Roaring Penguin
Remote Procedure Call
Real Time Clock
Real Time Protocol
Read Write
ScreamTracker Version 3 Module
Secure/MIME
Scanner Access Now Easy
Simple Authentication and Security Layer
Static Binutils Units
Source Code Control System
Small Computer System Interface
Software Development Kit
Standard Generalized Markup Language
Server Message Block
Synchronized Multimedia Integration Language
Simple Mail Transfer Protocol
Simple Object Access Protocol
Structured Query Language
Secure SHell
Secure Sockets Layer
Set User IDentity
Scalable Vector Graphics
Super Video Graphics Array
Tool Command Language
Transmission Control Protocol
Ticket-Granting Ticket
Tag(ged) Image File Format
Transport Layer Security
TrueType Font
Text To Speech
Universal Character Set
Universal Disk Format
User IDentity
User Datagram Protocol
User Interface
Unified Modelling Language
Uniform Resource Locator
Universal Serial Bus
Upstream Ready
UCS Transformation Format
Unix-to-Unix Copy Protocol
Video Compact Disk
Video Electronics Standards Association
Video Graphics Array
Virtual Network Computer
Video OBject
Voice Over IP
World Wide Web Consortium
Waveform Audio
World Wide Web
XDisplay Manager Control Protocol
FastTracker Module
eXtensible Markup Language
eXtensible Style Language
eXtensible Style Language Transformation
X/Open System Management
XMultiMedia System
Yellow Pages
Luminance-Bandwidth-Chrominance