Copyright © 2001-2014 The BLFS Development Team
Copyright © 2001-2014, The BLFS Development Team
All rights reserved.
This book is licensed under a Creative Commons License.
Computer instructions may be extracted from the book under the MIT License.
Linux® is a registered trademark of Linus Torvalds.
2014-09-23
Revision History | ||
---|---|---|
Revision 7.6 | 2014-09-23 | Tenth Release |
Revision 7.5 | 2014-03-05 | Ninth release |
Revision 7.4 | 2013-09-14 | Eighth release |
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–January 2011)
This is the development version of the BLFS book. This version of the book is intended to be used when building on top of a system built using the LFS development book as well as the current stable version of LFS. Though this version of the book is development in nature, every effort has been made to ensure accuracy and reliability of the instructions. Many people find that using the instructions in this book after building the current stable or development version of LFS provides a stable and very modern Linux system.
Enjoy!
Randy McMurchy
August 24th, 2008
Last updated on 2012-08-22 06:45:43 -0700
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!
Last updated on 2012-08-22 06:45:43 -0700
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 are also covered here.
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.
Xfce is a lightweight alternative to GNOME and KDE.
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 texlive.
The Appendices cover information which doesn't belong in the main book; they are mainly there as a reference.
Last updated on 2014-08-06 17:44:46 -0700
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.
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 attempts 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 and Disk Management), 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 13, 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 Networking part. It deals with connecting to the Internet or your LAN (Chapter 14, Connecting to a Network) using a variety of methods such as DHCP and PPP, and with items such as Networking Libraries (Chapter 17, 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 25, 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.28 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 2012-12-19 11:57:20 -0800
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 12:42:53 -0700
This is BLFS-BOOK version 7.6 dated September 23rd, 2014. This is the development branch of the BLFS book, currently targeting the LFS development book. If this version (7.6) is older than a month, it's likely that your mirror hasn't been synchronized recently and a newer version is probably available for download or viewing. Check one of the mirror sites at http://www.linuxfromscratch.org/mirrors.html for an updated version.
Last updated on 2008-05-10 18:20:50 -0700
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 12:42:53 -0700
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, please do not 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 2012-12-19 11:57:20 -0800
Current release: 7.6 – September 23rd, 2014
Changelog Entries:
September 23rd, 2014
[bdubbs] - Release of BLFS-7.6.
September 21st, 2014
[fernando] - Pidgin-2.10.9 and LXDM-0.5.0: fixes.
[pierre] - Update to thunderbird-31.1.1. Fixes #5461.
September 20th, 2014
September 19th, 2014
[bdubbs] - Update to wireshark-1.12.1. Fixes #5523.
[bdubbs] - Update to seamonkey-2.29. Fixes #5484.
[fernando] - Fixes and tweaks: Avahi-0.6.31, lxde-common-0.5.6, LXSession-0.4.9.2, Brasero-3.10.0 and gnome-nettool-3.8.1.
[fernando] - Update to gnome-calculator-3.12.4. Fixes #5516.
[bdubbs] - Update haveged bootscript.
September 18th, 2014
September 17th, 2014
[bdubbs] - Update to kde-4.14.1. Fixes #5519.
[bdubbs] - Update to colord-1.2.3. Fixes #5505.
[ken] - Update to dbus-1.8.8. Fixes #5524.
[fernando] - Fixes and tweaks: GPicView-0.2.4, LXDM-0.5.0, PCManFM-1.2.2, and Vim-7.4.
[fernando] - Update to lxinput-0.3.3. Fixes #5529.
[fernando] - Update to lxtask-0.1.5. Fixes #5528.
[fernando] - Update to lxappearance-obconf-0.2.2. Fixes #5527.
[fernando] - gnome-icon-theme-3.12.0: remove dependency XML::Simple-2.20, because it is required by icon-naming-utils-0.8.90, which is required by gnome-icon-theme.
[pierre] - Use the same upstream GCC patch in BLFS as in LFS. Tag all three GCC pages.
September 16th, 2014
September 15th, 2014
[bdubbs] - Change libdbusmenu-qt prefix to /usr. Partially fixes #5238.
[bdubbs] - Change grantlee prefix to /usr. Partially fixes #5238.
[bdubbs] - Change qjson prefix to /usr. Partially fixes #5238.
[bdubbs] - Change qca prefix to /usr. Partially fixes #5238.
[ken] - Clarify install-tl-unx runtime dependencies. Fixes #5502.
[bdubbs] - Update to lxrandr-0.2.0. Fixes #5517.
September 14th, 2014
[fernando] - Revert 'add optional instructions for sqlite-tcl to SQLite-3.8.6'. Fixes #5512.
[fernando] - ICU-53.1: not anymore broken with clang++.
September 14th, 2014
[fernando] - Update to whois_5.2.0. Fixes #5510.
[fernando] - Add optional instructions for sqlite-tcl to SQLite-3.8.6. Fixes #5512.
[fernando] - tcl-8.6.2: fixes for the build instructions. Fixes #5511.
[bdubbs] - Update to valgrind-3.10.0. Fixes #5506.
[bdubbs] - Update to lxmenu-data-0.1.4. Fixes #5489.
[bdubbs] - Update to lxde-icon-theme-0.5.1. Fixes #5509.
September 13th, 2014
[pierre] - Update to Xorg Nouveau Driver-1.0.11. Fixes #5469.
September 12th, 2014
September 11th, 2014
[ken] - asy from the binary install-tl-unx now requires libfftw3.so.3 and libreadline.so.5, at least on i686.
[bdubbs] - Update to xf86-video-intel-2.99.916. Fixes #5493.
September 10th, 2014
September 9th, 2014
[igor] - Update to mesa-10.2.7. Fixes #5477.
September 8th, 2014
[fernando] - MesaLib-10.2.6: fix build with LLVM-3.5.0. Thanks ojab. Partially fixes #5475.
September 7th, 2014
September 6th, 2014
September 5th, 2014
[pierre] - Update to icedtea-2.5.2. Fixes #5450.
[fernando] - Update to pango-1.36.7. Fixes #5472.
[fernando] - Update to sysstat-11.1.1. Fixes #5471.
[fernando] - Update to libwnck 3.4.9. Fixes #5467.
[fernando] - Update to libpcap-1.6.2. Fixes #5468.
[fernando] - Update to LVM2.2.02.111. Fixes #5456.
September 4th, 2014
[fernando] - Update to gimp-help-2.8.2. Fixes #5466.
September 3rd, 2014
[igor] - Update to php-5.6.0. Fixes #5444.
[ken] - add run-parts script (from Slackware) to the libpaper page - thanks to akhiezer for his help.
[fernando] - LXDM-0.5.0 fixes: typo and some rewriting. Fix again localization, Thanks Armin K.
September 2nd, 2014
[fernando] - LXDM-0.5.0 fixes: typo in configure, localization and starting.
[fernando] - Update to appstream-glib-0.3.0. Fixes #5465.
[fernando] - Update to iso-codes-3.56. Fixes #5463.
[fernando] - Update to lxde-common-0.5.6. Fixes #5462.
[fernando] - Update to libunistring-0.9.4. Fixes #5458.
[fernando] - Update to exempi-2.2.2. Fixes #5457.
September 1st, 2014
[fernando] - Update to appdata-tools-0.1.8. Thanks Christopher G. for reporting. Fixes #5452.
[fernando] - Add appstream-glib-0.2.5, copied, modified, from BLFS systemd branch. Thanks Christopher G. Fixes #5451.
[pierre] - Add Icedtea-Sound-1.0.1. Fixes #5217.
[pierre] - Add basic configuration instructions to PulseAudio. Fixes #5455.
[fernando] - Add LXDM-0.5.0, copied, modified, from BLFS systemd branch. Fixes #5459.
August 31st, 2014
August 30th, 2014
August 29th, 2014
[ken] - Added biblatex-biber-1.8 and its multitudinous perl-module dependencies. Fixes #5228.
[fernando] - LibreOffice-4.3.0: add three new optional dependencies. Thanks Wayne B.
[fernando] - Git-2.1.0: fix AsciiDoc/xmlto documentaion install. Thanks Alex L.
[fernando] - webkitgtk-2.4.5: tidy up xml.
[igor] - Update to scons-2.3.3. Fixes #5428.
August 28th, 2014
[ken] - Added instructions to build xindy in texlive. Fixes #4719.
[ken] - Added clisp-2.49. Fixes #5441.
[ken] - Added libsigsegv-2.10. Fixes #5442.
[fernando] - LibreOffice-4.3.0 - fix broken symbolic links. Thanks Wayne B.
[fernando] - Fix Tk-8.6.2 md5sum that changed overnight. Thanks Wayne B.
[fernando] - Remove WebKitGTK+1.10.x, consequently, fix Midori-0.5.8 and Gimp-2.8.14 (remove broken ftp link from the latter). Fixes #5434.
[fernando] - Update to webkitgtk-2.4.5. Fixes #5426.
[ken] - Added libpaper-1.1.24+nmu3. Fixes #5440.
[igor] - Update to gimp-2.8.14. Fixes #5432.
August 27th, 2014
[fernando] - Update to menu-cache-0.6.1. Fixes #5438.
[fernando] - Update to tk8.6.2. Fixes #5437.
[fernando] - Update to tcl8.6.2. Fixes #5436.
[fernando] - Update to LVM2.2.02.110. Fixes #5435
[fernando] - Cyrus-sasl-2.1.26: Various package fixes, including autotools fixes, plugin fixes, security fixes, parallel build fixes. Thanks to Armin K and Christopher G, from systemd branch. Fixes #5380.
[bdubbs] - Update to acpid-2.0.23. Fixes #5419.
[bdubbs] - Remove no longer needed xulrunner. Fixes #5433.
[bdubbs] - Fix typo in bind random device. Fixes #5378.
[bdubbs] - Fix potential error in dhclient shutdown. Fixes #5416.
[ken] - Update to libwww-perl-6.08 and URI-1.64.
[igor] - Update to nmap-6.47. Fixes #5417.
August 26th, 2014
[fernando] - Minor fixes to libtasn1-4.1 and Gvfs-1.20.3 (reordered externa/internal optional dependencies, for the latter).
[fernando] - Update to grilo-plugins-0.2.13. Fixes #5431.
[fernando] - Update to grilo-0.2.11. Fixes #5430.
[fernando] - Update to libfm-1.2.2.1. Fixes #5429.
[fernando] - Update to gnutls-3.3.7. Fixes #5427
[fernando] - Brasero-3.10.0: fix cdrtools link. Thanks to Christopher G, from systemd branch. Fixes #5425.
[fernando] - Cdrdao-1.2.3: remove instructions for gcdmaster build. Thanks to Christopher G, from systemd branch. Fixes #5424.
August 25th, 2014
[fernando] - Update to libtasn1-4.1. Fixes #5423.
[fernando] - Update to pcmanfm-1.2.2. Fixes #5422.
[fernando] - Update to libfm-1.2.2. Fixes #5421.
[fernando] - Update to gvfs-1.20.3. Fixes #5420.
[fernando] - OpenJDK-1.7.0.65/IcedTea-2.5.1: fix desktop file instructions, hopefully. Sorry for the mess.
August 24th, 2014
[fernando] - LibreOffice-4.3.0: reorder some dependencies; add comment about the two SBUs and buildsizes, thanks to Christopher G, from systemd branch, for noticing.
[fernando] - OpenJDK-1.7.0.65/IcedTea-2.5.1: fix man pages and add a desktop file.
[fernando] - Update to icedtea-web-1.5.1, reorder some dependencies and add a desktop file. Replace Xulrunner-31.0 dependency by NPAPI-SDK-0.27.2, thanks to Armin K, from systemd branch for remembering (I had asked about this in one list some time ago, but forgot to check). Fixes #5389.
[fernando] - Update to libpng-1.6.13. Fixes #5418.
[ken] - Make TeX Live use system gc for asymptote.
August 23rd, 2014
August 22nd, 2014
[fernando] - Update to libwebp-0.4.18. Fixes #5415.
[fernando] - Update to php-5.5.16. Fixes #5414.
[fernando] - Update to xine-ui-0.99.9. Fixes #5413.
[fernando] - Update to lxpanel-0.7.0. Fixes #5412.
[fernando] - Update to doxygen-1.8.8. Fixes #5411.
[fernando] - Update to poppler-0.26.4. Fixes #5410.
[fernando] - Update to libreoffice-4.3.0. Patch sent by Christopher G, from systemd branch, thank you very much. Some fixes from Armin K, from systemd branch, thanks. Fixes #5311.
[ken] - Update to mdadm-3.3.2. Fixes #5409.
[igor] - Use ssh-copy-id shell wrapper for copying OpenSSH public key. Fixes #5368.
August 21st, 2014
August 20th, 2014
[fernando] - Update to nss-3.16.4. Fixes #5404.
[fernando] - Update to MesaLib-10.2.6. Fixes #5401.
[fernando] - Update to nspr-4.10.7. Fixes #5400.
[fernando] - Update to x264-20140818-2245. Fixes #5376.
[fernando] - Update to ImageMagick-6.8.9-7. Fixes #5375.
[ken] - Update to xf86-video-intel-2.99.914 from the systemd branch.
August 19th, 2014
[fernando] - Grilo-Plugins-0.2.12: reorder interna/external optional dependencies.
[fernando] - Update to totem-3.12.2. Fixes #5398.
[fernando] - Update to colord-1.2.2. Fixes #5397.
[fernando] - Update to librsvg-2.40.3. Fixes #5396.
[ken] - archive glamor-egl in favour of xorg-server's glamor. Fixes #5347.
[igor] - Update to dhcp-4.3.1. Fixes #5359.
August 18th, 2014
August 17th, 2014
[fernando] - Fix URL: avahi, libasyncns (at pulseaudio page), libatasmart, libcanberra, libdaemon and mod_dnssd.
[fernando] - FontForge-2.0.20140101: reorder external/internal optional requirements.
[fernando] - Merge ImageMagick-6.8.9-1 from systemd.
[fernando] - MIT Kerberos V5-1.12.2: fix 'import the public key'. Thanks to Armin K. for reporting.
[fernando] - Update to pango-1.36.6. Fixes #5393.
[rthomsen] - Update to akonadi-1.13.0. Fixes #5351 and #5362.
[igor] - Update to subversion-1.8.10. Fixes #5356.
August 16th, 2014
[fernando] - Samba-4.1.11: promote libxslt-1.1.28 to Recommended. Fixes #5392.
[fernando] - MIT Kerberos V5-1.12.2: update gpg2, fix configure, install instructions and other parts. Fixes #5390.
[fernando] - Update to git-2.1.0. Modified docs and man instructions. Fixes #5388.
[fernando] - Update to SQLite-3.8.6. Fixes #5387.
[fernando] - Parted-3.2 fails to build with --disable-device-mapper. Reported and fixed by Ken M. Fixes #5386.
[igor] - Update to mariadb-10.0.13. Fixes #5355.
August 15th, 2014
August 14th, 2014
[fernando] - Update to harfbuzz-0.9.35. Fixes #5374.
[fernando] - Update to cups-filters-1.0.56. Fixes #5373.
[fernando] - Update to clutter-1.18.4. Fixes #5372.
[fernando] - Update to poppler-data-0.4.7. Fixes #5371.
[fernando] - Update to p11-kit-0.20.4. Fixes #5370.
[fernando] - Update to krb5-1.12.2. Fixes #5369.
[igor] - Update to ffmpeg-2.3.2. Fixes #5354.
August 13th, 2014
August 12th, 2014
[fernando] - gnupg-2.0.25: fix import filter and add kbnode_t. Fixes #5364.
[fernando] - Change URL for psutils-p17. Fixes #5363.
[fernando] - Update to exim-4.84. Fixes #5361.
[fernando] - Update to serf-1.3.7. Fixes #5360.
[fernando] - Update to yasm-1.3.0. Fixes #5358.
[fernando] - Update to at_3.1.15. Fixes #5357.
[fernando] - bluez-5.22: /etc/sysconfig/bluetooth is installed with blfs-bootscripts-20140810; my earlier version of the bootscripts didn't have it. Fixes #5341.
[fernando] - libassuan-2.1.1: fix docs build. Fixes #5346.
[igor] - Update to boost-1.56.0. Fixes #5344.
August 11th, 2014
August 10th, 2014
August 9th, 2014
August 8th, 2014
[ken] - Apply upstream fix to libsigc++-2.3.2.
August 7th, 2014
[igor] - Update to qemu-2.1.0. Fixes #5318.
August 6th, 2014
[fernando] - Create a standard for packages with problems introduced by gcc-4.9.0. Modified: mdadm-3.3.1, gst-plugins-base-0.10.36, LAME-3.99.5 and LibreOffice-4.2.5. Thanks Christopher G., from systemd branch, for pointing that out, and Akhiezer and Armin K. for discussions.
[fernando] - Exim-4.83: fix exim daemon version in 'Short Descriptions'. Thanks Denis M.
[fernando] - GCC-4.9.1: as in LFS, use sed to fix a problem identified upstream.
[fernando] - FLTK-1.3.2: fix output of fltk-config --version. Thanks Jeremy H.
[igor] - Update to libxcb-1.11. Fixes #5323.
[igor] - Update to xcb-proto-1.11. Fixes #5322.
August 5th, 2014
August 4th, 2014
[fernando] - Update to menu-cache-0.6.0. Fixes #5332.
[fernando] - Revert uneeded revision 13824 (FreeType-2.5.3 ...). Thanks Armin K., from systemd branch.
[fernando] - Fix FreeType-2.5.3 for first installation without Harfbuzz-0.9.34 that I forgot to make explicit (only talked about), when updating. Thanks Christopher G., from systemd branch.
[igor] - Update to ffmpeg-2.3.1. Fixes #5312.
August 3rd, 2014
August 2nd, 2014
August 1st, 2014
July 31st, 2014
[fernando] - Update to cups-1.7.5 and separate internal from external optional dependencies. Fixes #5316.
[fernando] - Update to dhcpcd-6.4.3. Fixes #5315.
[fernando] - Update to gpgme-1.5.1. Fixes #5314.
[fernando] - Update to libndp-1.4. Fixes #5309.
[fernando] - Update to gdb-7.8. Fixes #5308.
[fernando] - parted-3.2: remove test t0251-gpt-unicode.sh. Fixes hopefully #5307.
July 29th, 2014
July 28th, 2014
[ken] - Patch nfs-utils-1.3.0 to avoid segfault with gcc-4.9.1 reported by The Lightning Stalker.
[fernando] - Update to cups-filters-1.0.55. Fixes #5305.
[fernando] - Update to xterm-310. Fixes #5303.
[fernando] - libpcap-1.6.1 doesn't build with bluez-5.21. Thanks Wayne B. Fixes #5302.
[igor] - Update to libdrm-2.4.55. Fixes #5300.
July 27th, 2014
[fernando] - Thunderbird 31.0 and Python-2.7.8: Python2 needs to be built after openssl for this version of thunderbird.
[fernando] - Update to postgresql-9.3.5. Fixes #5299.
[fernando] - Update to php-5.5.15. Fixes #5298.
[fernando] - Update to LVM2.2.02.108. Fixes #5297.
[fernando] - Update to exim-4.83. Fixes #5293.
[fernando] - Fix vala-0.24.0 (for at least Gucharmap-3.12.1). #5301.
[bdubbs] - Separate libvdpau-va-gl to its own section. Fixes #5290.
[igor] - Update to libXext-1.3.3. Fixes #5294.
July 25th, 2014
[fernando] - Updates to gstreamer-1.4.0 and plugins, including gst-libav. Fixes #5283.
July 24th, 2014
[ken] - Update to firefox/xulrunner 31.0. Fixes #5287 - Python2 needs to be built after openssl for this version of firefox.
[fernando] - Update to poppler-0.26.3. Fixes #5284.
[fernando] - Update to audacious-3.5.1. Fixes #5289.
[fernando] - Update to gnutls-3.3.6. Fixes #5296.
[fernando] - Update to thunderbird-31.0. Fixes #5288.
[igor] - Update to ffmpeg-2.3. Fixes #5265.
[Chris] - Removed libxml2 dependency from MesaLib - it's no longer needed.
July 23rd, 2014
[pierre] - Icedtea-2.5.1/OpenJDK-1.7.0_65. Fixes #5270.
[fernando] - SBC-1.2: add switch to configure. Fixes #5291.
[fernando] - cURL-7.37.1: typo. Thanks Denis MUGNIER.
[fernando] - Update to httpd-2.4.10. Fixes #5286.
[fernando] - Update to libpcap-1.6.1. Fixes #5285.
[fernando] - Update to libXfont-1.5.0. Fixes #5282.
July 22nd, 2014
July 19th, 2014
July 18th, 2014
July 17th, 2014
July 16th, 2014
July 15th, 2014
July 14th, 2014
[fernando] - Update to xterm-309. Fixes #5261.
July 13th, 2014
July 12th, 2014
[fernando] - Update to cifs-utils-6.4. Fixes #5259.
July 11th, 2014
July 10th, 2014
July 9th, 2014
July 8th, 2014
July 7th, 2014
[fernando] - Update to fcron-3.2.0. Fixes #5248.
[fernando] - Update to vlc-2.1.5. Reorder and separate internal and external dependencies. Fixes #5247.
[fernando] - Update to cogl-1.18.2. Fixes #5241.
[fernando] - Update to pixman-0.32.6. Fixes #5245.
[fernando] - Update to p11-kit-0.20.3. Fixes #5243.
[fernando] - Change title of libnewt-0.52.17 to newt-0.52.17. Thanks Bruce D.
July 6th, 2014
[bdubbs] - Update to bluez-5.21. Fixes #5242.
[pierre] - Add a missing switch for GCC-Java.
July 5th, 2014
July 4th, 2014
[bdubbs] - Add logrotate-3.8.7. Fixes #5229.
July 3rd, 2014
July 2nd, 2014
July 1st, 2014
[fernando] - Update to transmission-2.84. Fixes #5226.
[fernando] - Update to gnupg-2.0.25. Fixes #5225.
[fernando] - Update to Python-2.7.8. Fixes #5224.
[fernando] - Update to libburn-1.3.8. Fixes #5220.
[fernando] - Update to libisoburn-1.3.8. Fixes #5219.
[fernando] - Update to libisofs-1.3.8. Fixes #5218.
[fernando] - Update to Qt-5.3.1. Fixes #5206.
June 30th, 2014
[igor] - Update to xf86-video-ati-7.4.0. Fixes #5208.
June 29th, 2014
[fernando] - MPlayer-1.1.1:
Fix building with new versions of giflib.
Reorder dependencies to separate internal and external ones.
[fernando] - polkit-gnome-0.105: fix directory of polkit-gnome-authentication-agent-1.
[igor] - Update to xorg-server-1.15.2. Fixes #5212.
June 28th, 2014
June 27th, 2014
June 26th, 2014
[igor] - Update to MesaLib-10.2.2. Fixes #5205.
June 25th, 2014
June 24th, 2014
[fernando] - Update to pango-1.36.4. Fixes #5202.
[fernando] - Update to gtk+-2.24.24. Fixes #5201.
[fernando] - Update to vte-0.36.3. Fixes #5200.
[fernando] - Update to gnome-terminal-3.12.3. Fixes #5199.
[igor] - Update to rsync-3.1.1. Fixes #5195.
[fernando] - Update to samba-4.1.9. Fixes #5197.
[fernando] - Update to inkscape-0.48.5. Fixes #5196.
June 23rd, 2014
[fernando] - Update to libreoffice-4.2.5.2. Fixes #5194.
[bdubbs] - Update to phonon-backend-vlc-0.7.2. Fixes #5192.
[bdubbs] - Update to phonon-backend-gstreamer-4.7.2. Fixes #5191.
[bdubbs] - Update to phonon-4.7.2. Fixes #5190.
[bdubbs] - Update to bluez-5.20. Fixes #5193.
[krejzi] - Added FontForge-2.0.20140101.
June 21st, 2014
[pierre] - Slightly reword the paragraph about adding a user and a group in D-Bus (as proposed by B. Dubbs).
June 20th, 2014
June 18th, 2014
June 16th, 2014
June 16th, 2014
June 15th, 2014
[fernando] - seamonkey-2.26.1. Fixes #5178.
[fernando] - libpng-1.6.12. Fixes #5177.
[fernando] - gc-7.4.2. Fixes #5176.
[fernando] - traceroute-2.0.20. Fixes #5175.
[fernando] - dhcpcd-6.4.0. Fixes #5174.
[bdubbs] - Update to libusb-1.0.19. Fixes #5172.
[bdubbs] - Update to xcb-util-renderutil-0.3.9. Fixes #5171.
[bdubbs] - Update to sg3_utils-1.39. Fixes #5168.
[fernando] - Fix Net-DNS-0.76 md5sum, thanks Wayne B.
Promote '--enable-tee' to parameter in Cairo-1.12.16 and 'ac_add_options --enable-system-cairo' in Xulrunner-30.0, Firefox-30.0 and Thunderbird-24.6.0, thanks Armin K.
Replace sentence '... do not touch ...' by 'The BLFS editors recommend not changing anything below this line' (Xulrunner, Firefox and Thunderbird), thanks Bruce D.
June 14th, 2014
[bdubbs] - Add tigervnc-1.3.1. Fixes #3903.
June 13th, 2014
[fernando] - bind-9.10.0-P2/bind-utilities-9.10.0-P2. Fixes #5166.
[fernando] - Net::DNS-0.76. Fixes #5169.
[fernando] - wireshark-1.10.8. Fixes #5167.
[fernando] - unrar-5.1.6. Fixes #5165.
[fernando] - Modify build instructions for firefox-30.0 and thunderbird-24.6.0. Uncoment 'ac_add_options --enable-system-cairo' in xulrunner/firefox-30.0 and thunderbird-24.6.0. Thanks Armin K.
[bdubbs] - Add fltk-1.3.2 to support tigervnc.
June 12th, 2014
June 11th, 2014
June 10th, 2014
[fernando] - cmake-3.0.0. Fixes #5159.
[fernando] - gnumeric-1.12.17. Fixes #5157.
[fernando] - goffice-0.10.17. Fixes #5156.
[fernando] - Remove all explicit eudev version references from Udev Extras. Fixes #5154.
[fernando] - xscreensaver-5.29. Fixes #5153.
[bdubbs] - Update to autofs-5.1.0. Fixes #5138.
[igor] - Update to serf-1.3.6. Fixes #5158.
June 9th, 2014
June 8th, 2014
[fernando] - MariaDB-10.0.11: move switch -DWITH_EMBEDDED_SERVER=ON to parameter.
[fernando] - nspr-4.10.6. Fixes #5151.
[fernando] - qpdf-5.1.2. Fixes #5150.
[fernando] - MesaLib-10.2.1. Fixes #5148.
[fernando] - libpng-1.6.11. Fixes #5142.
[bdubbs] - Update to kde-4.13.1. Fixes #5067.
[bdubbs] - Archive nepomuk-widgets, nepomuk-core, shared-desktop-ontologies. virtuoso, and soprano. Fixes #4780.
[bdubbs] - Add libkdcraw-4.13.1.
[bdubbs] - Add libraw-0.16.0.
[igor] - Update to libXft-2.3.2. Fixes #5144.
June 6th, 2014
June 5th, 2014
[fernando] - Fix gst-plugins-good-1.2.4: First Optional dependencies are actually Recommended.
[fernando] - Add note for order of installation in gst plugins.
[fernando] - Fix dependencies and build of xdg-utils-1.1.0-rc2.
[fernando] - Fix /etc/xdg/autostart in polkit-gnome-0.105.
[fernando] - openssl-1.0.1h. Fixes #5140.
[fernando] - xscreensaver-5.28. Fixes #5139.
[fernando] - Python-2.7.7. Fixes #5135.
[fernando] - xterm-306. Fixes #5134.
[fernando] - gnupg-2.0.23. Fixes #5133.
[igor] - Update to sqlite-3.8.5. Fixes #5136.
[pierre] - SWIG-3.0.2. Fixes #5111.
June 3rd, 2014
June 1st, 2014
May 31st, 2014
May 30th, 2014
[fernando] - harfbuzz-0.9.29. Fixes #5120.
[fernando] - inputproto-2.3.1. Fixes #5118.
[fernando] - exim-4.82.1. Fixes #5116.
[fernando] - gnome-calculator-3.12.2. Fixes #5115.
[fernando] - gedit-3.12.2. Fixes #5114.
[fernando] - xscreensaver-5.27. Fixes #5112.
[bdubbs] - Update to bluz-5.19. Bootscripts updated. Fixes #5083.
May 28th, 2014
[fernando] - Fix transmission-2.83 to build with Qt-4.8.6. Thanks to e5g6s. Final fix to #5080.
[fernando] - xkeyboard-config-2.12. Fixes #5110.
[fernando] - libogg-1.3.2. Fixes #5109.
[fernando] - mpg123-1.20.0. Fixes #5108.
[fernando] - cups-1.7.3. Fixes #5107.
[fernando] - Python-3.4.1. Fixes #5113.
May 27th, 2014
May 26th, 2014
[bdubbs] - Update to sendmail-8.14.9. Fixes Fixes #5095.
[ken] - Update fstab details / explanation for nfs clients. Fixes #5041.
[ken] - Second attempt at fixes for both versions of gst-plugins-base with gcc-4.9.0 on i686. Marked as "nodump" in the xml to avoid using it in other situations. 1.2.4 works, 0.10.36 compiles but I am unable to get sound, only video - the problem might be elsewhere in the 0.10 gstreamer packages.
[ken] - Second attempt at a fix for lame with gcc-4.9.0 on i686. Marked as "nodump" in the xml to avoid using it in other situations.
[fernando] - Fix to Doxygen-1.8.7.
[fernando] - webkitgtk-2.4.3. Fixes #5103.
[fernando] - ImageMagick-6.8.9-1. Fixes #5065.
[fernando] - libtasn1-3.6. Fixes #5102.
May 25th, 2014
[fernando] - Fixes to Gimp-2.8.10 and Transmission-2.83.
[fernando] - curl-7.37.0. Fixes #5094.
[fernando] - gnumeric-1.12.16. Fixes #5101.
[fernando] - goffice-0.10.16. Fixes #5098.
[fernando] - poppler-0.26.1. Fixes #5100.
[fernando] - qt-5.3.0. Fixes #5082.
[pierre] - Update to Mariadb-10.0.11. Fixes #5063.
May 24th, 2014
[fernando] - Fixes to seahorse-3.12.2 (for desktop file) and, thanks to Wayne B., to WebKitGTK+-2.4.2 (gtk+2 dependency).
[fernando] - elfutils-0.159. Fixes #5088.
[fernando] - transmission-2.83. Fixes #5080.
[fernando] - gpgme-1.5.0. Fixes #5097.
[fernando] - colord-1.2.1. Fixes #5099.
[ken] - Update to firefox/xulrunner 29.0.1. Fixes #4886 and #5044.
[pierre] - Update to talloc-2.1.1. Fixes #5089.
May 23rd, 2014
May 21st, 2014
[bdubbs] - Update to xf86-input-synaptics-1.8.0. Fixes #5070.
[bdubbs] - Update to xf86-input-evdev-2.9.0 and add libevdev-1.2.1. Fixes #5086.
[fernando] - SGMLSpm-1.1: Fix URL. Fixes #5090.
[fernando] - webkitgtk-2.4.2. Fixes #5059.
[fernando] - x264-20140519-2245. Fixes #5084.
[fernando] - xdg-utils-1.1.0-rc2. Fixes #4811.
[fernando] - Updates to gnome-desktop-3.12.2, gtksourceview-3.12.2, vte-0.36.2, cheese-3.12.2, eog-3.12.2, epiphany-3.12.1, nautilus-3.12.2, file-roller-3.12.2, gnome-system-monitor-3.12.2, gnome-terminal-3.12.2, gucharmap-3.12.1, and seahorse-3.12.2. Fixes #5060.
[bdubbs] - Update to MesaLib-10.1.4. Fixes #5085.
[pierre] - Vim: remove vim-lang instructions, add multibyte support and GTK+2 as a recommended dependency.
[fernando] - Archive-Zip: Fix URL. Partially fixes #5090.
[fernando] - lm_sensors-3.3.5: Remove ftp URL and add one patch for fancontrol and for sensors.conf.default. Fixes #5091.
[fernando] - Archive (comment out) XML::Parser. Fixes #5092.
[fernando] - Fcron-3.1.3 (remove not working ftp) gegl-0.2.0 and babl-0.1.10 (fix URL's). Fixes #5093.
May 20th, 2014
May 19th, 2014
[pierre] - Fix building of kdelibs with giflib-5.1.0 Fixes #5078.
May 18th, 2014
[fernando] - Fix Polkit-0.112 and Colord-1.2.0 to build without systemd.
[fernando] - gnome-keyring-3.12.2. Partially fixes #5060.
[fernando] - gcr-3.12.2. Partially fixes #5060.
[fernando] - gsettings-desktop-schemas-3.12.2. Partially fixes #5060.
[fernando] - gtk+-3.12.2. Fixes #5061.
[pierre] - Fix imlib2 and libwebp for building with giflib-5.1.0. Fixes #5076 and #5077.
May 17th, 2014
[ken] - Reinstate system boost and icu switches in libreoffice, thanks to Christopher Gregory for noticing.
[fernando] - Revert unnecessary revision 13047 "Help Lua-5.2.3 to find Ncurses-5.9 for Readline-6.3".
[fernando] - libatomic_ops-7.4.2. Fixes #5074.
[fernando] - libffi-3.1. Fixes #5058.
[fernando] - fcron-3.1.3. Fixes #5057.
[fernando] - libXfont-1.4.8. Fixes #5069.
[pierre] - Update to proftpd-1.3.5. Fixes #5071.
[pierre] - Update to giflib-5.1.0. Fixes #5072.
May 16th, 2014
May 15th, 2014
[pierre] - Update to apache-ant-1.9.4 and rearrange java pages. Fixes #5032.
May 14th, 2014
May 13th, 2014
[bdubbs] - Update to libnice-0.1.7. Fixes #4778.
[bdubbs] - Update to nasm-2.11.04. Fixes #5031.
[bdubbs] - Update to xf86-video-intel-2.99.911.
[bdubbs] - Update to xf86-input-evdev-2.8.4. Fixes #5051.
[bdubbs] - Update to xf86-input-synaptics-1.7.6. Fixes #5062.
[bdubbs] - Update to libva-1.3.1/libva-intel-driver-1.3.1. Fixes #5052 and #5053.
May 12th, 2014
May 10th, 2014
[fernando] - Fixes to GCC-4.9.0 (thanks Armin K. for the patch), Grilo-0.2.10, Gedit-3.12.1 and Totem-3.12.1.
[fernando] - qt-4.8.6. Fixes #5010.
[fernando] - ffmpeg-2.2.2. Fixes #5027.
[fernando] - lxpanel-0.6.2. Fixes #5049.
[fernando] - thunderbird-24.5.0. Fixes #5002.
[fernando] - gvfs-1.20.2. Fixes #5050.
[fernando] - ruby-2.1.2. Fixes #5043.
[fernando] - raptor2-2.0.14. Fixes #5033.
May 9th, 2014
May 8th, 2014
[fernando] - Fix DoS vulnerability in the GIF image handler affecting Qt-4.8.5 and Qt-5.2.1 and several previous and more recent versions. Fixes #5040.
[ken] - Patch libreoffice-4.2.3.3 to build against system icu. Fixes #5016.
[ken] - Patch texlive-20130530 to build against poppler-0.26. Fixes #5039.
May 6th, 2014
[ken] - firefox/xulrunner 29.0. Fixes #5001.
May 4th, 2014
[fernando] - Fixes to colord-1.2.0 and ConsoleKit-0.4.6.
[fernando] - libdrm-2.4.54. Fixes #5024.
[fernando] - serf-1.3.5. Fixes #4998.
[fernando] - screen-4.2.1. Fixes #4999.
[fernando] - rxvt-unicode-9.20. Fixes #4995.
[fernando] - xterm-304. Fixes #5026.
[fernando] - whois_5.1.2. Fixes #5025.
[fernando] - mercurial-3.0. Fixes #5018.
[fernando] - openjpeg-1.5.2. Fixes #5009.
[fernando] - iso-codes-3.53. Fixes #5020.
[fernando] - libtasn1-3.5. Fixes #5021.
[fernando] - totem-3.12.1. Fixes #5013.
May 3rd, 2014
May 2nd, 2014
[pierre] - php-5.5.12. Fixes #5019.
[fernando] - Fixes to grilo-plugins-0.2.12, gst-plugins-base-0.10.36 and midori-0.5.8.
[fernando] - libass-0.11.2. Fixes #4994.
[fernando] - gnumeric-1.12.15. Fixes #5012.
[fernando] - goffice-0.10.15. Fixes #5011.
[fernando] - harfbuzz-0.9.28. Fixes #5005.
[fernando] - libgtop-2.30.0. Fixes #5003.
[fernando] - unrar-5.1.4. Fixes #5007.
May 1st, 2014
[pierre] - Patch CUPS in order to remove dependency on Avahi.
April 29th, 2014
[fernando] - Fixes to build lame-3.99.5 and gst-plugins-base-1.2.4 with gcc-4.9.0. Minor fixes to libdvdread-4.9.9 and nautilus-3.12.0.
[fernando] - gnome-terminal-3.12.1. Fixes #4996.
[fernando] - vte-0.36.1. Fixes #4997.
[pierre] - Remove unneeded flags for compiling GCC-4.9.0 and correct test instructions.
[pierre] - Update to GCC-4.9.0. Fixes #4986.
April 28th, 2014
[bdubbs] - Synchronize udev extras with LFS.
[bdubbs] - Add references to dbus-launch to window managers.
[bdubbs] - Remove XML::Parser from perl modules.
[bdubbs] - Archive acl, attr, intltool, expat, gperf.
[bdubbs] - Synchronize libcap with LFS.
[bdubbs] - Synchronize D-Bus with LFS. Also fixes #4977.
April 27th, 2014
[fernando] - cups-filters-1.0.53. Fixes #4993.
[fernando] - Fixes to Inkscape-0.48.4, Cairo-1.12.16, Poppler-0.26.0 and Ruby-2.1.1. Thanks Igor Z and Armin K.
April 24th, 2014
April 24th, 2014
April 22nd, 2014
April 21st, 2014
[fernando] - MesaLib-10.1.1. Fixes #4976.
[fernando] - WebKitGTK+ 2.4.1. Fixes #4956.
[bdubbs] - Updated to doxygen-1.8.7. Fixes #4980
[fernando] - gstreamer-1.2.4 and plugins, including gst-libav-1.2.4. Fixes #4975
[fernando] - gnutls-3.3.1: fixes to build with guile and for the test suite.
[fernando] - gnutls-3.3.1. Fixes #4979.
[fernando] - apr-1.5.1. Fixes #4978.
April 20th, 2014
[rthomsen] - Add Ruby as dependency for Qt 5.
[fernando] - Updated to libreoffice-4.2.3.3. Fixes #4931.
April 19th, 2014
April 18th, 2014
[bdubbs] - Updated to qemu-2.0.0. Fixes #4973.
April 17th, 2014
[bdubbs] - Updated to libiodbc-3.52.9. Fixes #4968.
[bdubbs] - Updated to libdvdread-4.9.9. Fixes #4955.
[bdubbs] - Updated to xine-lib-1.2.5. Fixes #4929.
[bdubbs] - Updated to libjpeg-turbo-1.3.1. Fixes #4970.
[bdubbs] - Updated to libgpg-error-1.13. Fixes #4967.
[bdubbs] - Updated to samba-4.1.7. Fixes #4972.
[fernando] - gnome-system-monitor-3.12.1. Partially fixes #4958.
[fernando] - file-roller-3.12.1. Partially fixes #4958.
[fernando] - evince-3.12.1. Partially fixes #4958.
[fernando] - eog-3.12.1. Partially fixes #4958.
[fernando] - cheese-3.12.1. Partially fixes #4958.
[fernando] - baobab-3.12.1. Partially fixes #4958.
[fernando] - gnome-desktop-3.12.1. Partially fixes #4958.
[fernando] - at-spi2-atk-2.12.1. Fixes #4960.
[fernando] - clutter-1.18.2. Fixes #4961.
[pierre] - Update to Icedtea-web-1.5. Fixes #4923.
[rthomsen] - Updated to akonadi-1.12.1.
[rthomsen] - Updated to KDE-4.13.0. Three new packages were added: kfilemetadata, baloo and baloo-widgets. Fixes #4751.
[rthomsen] - Added xapian-1.2.17. Required dependency of Baloo.
April 16th, 2014
[fernando] - gedit-3.12.1. Partially fixes #4892.
[fernando] - gtksourceview-3.12.1. Partially fixes #4892.
[fernando] - gjs-1.40.1. Fixes #4959.
[fernando] - glib-networking-2.40.1. Fixes #4964.
[fernando] - pygobject-3.12.1. Fixes #4965.
[bdubbs] - Updated to sg3_utils-1.38. Fixes #4894.
[bdubbs] - Updated to acpid-2.0.22. Fixes #4808.
[bdubbs] - Updated to json-c-0.12. Fixes #4938.
[bdubbs] - Updated to autofs-5.0.9. Fixes #4892.
[bdubbs] - Added patch to lxpanel to fix handling of .desktop files. Fixes #4915.
[bdubbs] - Updated to mariadb-10.0.10. Fixes #4883.
[bdubbs] - Archived mysql. Fixes #4899.
April 15th, 2014
[bdubbs] - stunnel-5.00. Fixes #4770.
[fernando] - xvid-1.3.3. Fixes #4948.
[fernando] - graphviz-2.38.0. Fixes #4953.
[fernando] - xorg-server-1.15.1. Fixes #4952.
[fernando] - gtkmm-3.12.0. Fixes #4951.
[fernando] - glibmm-2.40.0. Fixes #4954.
[fernando] - gnumeric-1.12.14. Fixes #4949.
[fernando] - goffice-0.10.14. Fixes #4950.
April 14th, 2014
[bdubbs] - qemu-1.7.1. Fixes #4873.
April 13th, 2014
[fernando] - Add fc-cache to instructions for font install in ghostscript-9.14.
[fernando] - bluez-5.18. Fixes #4946.
[fernando] - gvfs-1.20.1. Fixes #4941.
[fernando] - gtk+-3.12.1. Fixes #4945.
[fernando] - nmap-6.45. Fixes #4943.
[fernando] - ImageMagick-6.8.9-0. Fixes #4942.
[pierre] - Update to Icedtea-2.4.6. Fixes #4897.
[pierre] - Promote avahi to required dependency for CUPS-1.7.2. Fixes #4944.
April 12th, 2014
April 11th, 2014
[fernando] - Remove two items from 'Command Explanations' of Fcron-3.1.2: autoconf and --with-dsssl-dir=/usr/share/sgml/docbook/dsssl-stylesheets-1.79.
April 10th, 2014
April 9th, 2014
[ken] - postgresql-9.3.4. Fixes #4840.
[fernando] - xf86-video-vmware-13.0.2. Fixes #4906.
[fernando] - xf86-input-wacom-0.24.0. Fixes #4905.
[fernando] - xrandr-1.4.2. Fixes #4904.
[fernando] - xauth-1.0.9. Fixes #4903.
[fernando] - xtrans-1.3.4. Fixes #4902.
[fernando] - shared-mime-info-1.3. Fixes #4930.
April 8th, 2014
April 7th, 2014
April 6th, 2014
April 5th, 2014
April 4th, 2014
April 3rd, 2014
[fernando] - Update to gnome-terminal-3.12.0. Partially fixes #4862.
[fernando] - Update to nautilus-3.12.0. Partially fixes #4862.
[fernando] - Update to gnome-screenshot-3.12.0. Partially fixes #4862.
[fernando] - Update to gnome-calculator-3.12.0. Partially fixes #4862.
[fernando] - Update to file-roller-3.12.0. Partially fixes #4862.
[fernando] - Update to evince-3.12.0. Partially fixes #4862.
[fernando] - Update to epiphany-3.12.0. Partially fixes #4862.
[fernando] - Update to cheese-3.12.0. Partially fixes #4862.
[fernando] - Update to baobab-3.12.0. Partially fixes #4862.
[fernando] - Archive gnome-power-manager-3.10.1. Fixes #4888.
[fernando] - Add new package appdata-tools-0.1.7. Fixes #4887.
April 2nd, 2014
[fernando] - Update to Gucharmap-3.12.0. Partially fixes #4862.
[fernando] - Update to gnome-icon-theme-extras-3.12.0. Partially fixes #4862.
[fernando] - Update to gnome-themes-standard-3.12.0. Partially fixes #4862.
[fernando] - Update to gnome-icon-theme-symbolic-3.12.0. Partially fixes #4862.
[fernando] - Update to vte-0.36.0. Fixes #4865.
[fernando] - Update to dconf-0.20.0. Fixes #4864.
[fernando] - GLibmm-2.38.1 depends on GnuTLS. Thanks sor__. Fixes #4885.
March 31st, 2014
[fernando] - Update to eog-3.12.0. Partially fixes #4862.
[fernando] - Update to gnome-desktop-3.12.0. Partially fixes #4862.
[fernando] - Update to gnome-icon-theme-3.12.0. Partially fixes #4862.
[fernando] - Update to libpeas-1.10.0. Fixes #4882.
[fernando] - Update to gjs-1.40.0. Fixes #4879.
[fernando] - Python-2.7.6 fails to build readline module with Readline version 6.3. Thanks Igor Živković. Fixes #4880.
[fernando] - Fix Poppler-0.24.5 to build both, qt4 and 5 libraries. Fixes #4880.
[fernando] - Add new package Mozilla JS-24.2.0. Fixes #4500.
March 30th, 2014
[fernando] - Update to libva-intel-driver-1.3.0. Fixes #4857.
[fernando] - Update to libva-1.3.0. Fixes #4856.
[fernando] - Update to ghostscript-9.14. Thanks Armin K. for fixing to build with system zlib. Fixes #4867.
[fernando] - Add patch to BlueZ-5.17. Thanks Armin K. Fixes to work properly with gnome-bluetooth and_or kde bluedevil. Fixes #3759.
March 29th, 2014
[fernando] - Update to BlueZ-5.17. Patch from Armin K, thanks. Fixes #3759.
[pierre] - Make the Java Binary page versioned, and closer to the layout of other pages.
[pierre] - Use the fastCGI process manager for PHP. Fixes #4844.
[fernando] - LibreOffice-4.2.2 additional dependencies. Thanks Wayne B. Fixes #4877.
March 28th, 2014
[fernando] - Update to gedit-3.12.0. Partially fixes #4862.
[fernando] - Update to vala-0.24.0. Fixes #4875.
[fernando] - Update to gtksourceview-3.12.0. Partially fixes #4862.
[fernando] - Update to yelp-xsl-3.12.0. Partially fixes #4862.
[fernando] - Update to gtk+-3.12.0. Fixes #4861.
[fernando] - Update to gdk-pixbuf-2.30.7. Fixes #4869.
[fernando] - Update to json-glib-1.0.0. Fixes #4872.
[fernando] - Update to at-spi2-atk-2.12.0. Fixes #4860.
[fernando] - Update to at-spi2-core-2.12.0. Fixes #4859.
[fernando] - Update to atk-2.12.0. Fixes #4858.
[fernando] - Archive PyAtSpi2-2.10.0. Fixes #4853.
[fernando] - Update to pygobject-3.12.0. Fixes #4852.
March 27th, 2014
[fernando] - Update to totem-pl-parser-3.10.2. Fixes #4863.
[fernando] - Update to libsoup-2.46.0. Fixes #4855.
[fernando] - Update to glib-networking-2.40.0. Fixes #4854.
[fernando] - Update to gsettings-desktop-schemas-3.12.0. Partially fixes #4862.
[fernando] - Update to gobject-introspection-1.40.0. Fixes #4871.
[fernando] - Fix pycairo-1.10.0 to build with python-3.4. Thanks to Wayne B. Fixes #4868.
[fernando] - Update to curl-7.36.0. Fixes #4874.
[fernando] - Update to cups-filters-1.0.49. Fixes #4866.
March 25th, 2014
March 24th, 2014
March 23nd, 2014
[fernando] - Update to gvfs-1.20.0. Fixes #4843.
March 22nd, 2014
March 21st, 2014
[pierre] - Fix some Icedtea-Openjdk dependencies, addressing #4839. Thanks to Fernando.
March 20th, 2014
[fernando] - Update to seamonkey-2.25. Fixes #4833.
[fernando] - Update to grilo-plugins-0.2.12. Fixes #4838.
[fernando] - Update to grilo-0.2.10. Fixes #4837.
[fernando] - Update to libgsf-1.14.30. Fixes #4835.
[fernando] - Update to sudo-1.8.10p2. Fixes #4834.
[fernando] - Fix icedtea dependencies. Fixes #4839.
[fernando] - Update to webkitgtk-2.2.6. Fixes #4829.
March 19th, 2014
[fernando] - Parted 3.1 fails to build with Readline 6.3. Thanks Armin K. Fixes #4832.
[fernando] - Update to gnumeric-1.12.13. Fixes #4821.
[fernando] - Update to goffice-0.10.13. Fixes #4823.
[fernando] - Update to guile-2.0.10. Fixes #4825.
[fernando] - Update to gtk+-2.24.23. Fixes #4827.
[fernando] - Update to librsvg-2.40.2. Fixes #4831.
[fernando] - Update to pango-1.36.3. Fixes #4828.
[fernando] - Update to harfbuzz-0.9.27. Fixes #4830.
[fernando] - Update to unrar-5.1.1. Fixes #4824.
[fernando] - Update to Git-1.9.1. Fixes #4820.
[ken] - minor re-ordering of firefox and xulrunner mozconfigs to put the new pulse option above the 'recommended not to touch anything below this' line.
March 18th, 2014
March 17th, 2014
[fernando] - Several small fixes to Apr-Util-1.5.3, UPower-0.9.23 and Avahi-0.6.3 (thanks Armin K. for discussions).
[fernando] - Update to x264-20140316-2245. Fixes #4732.
[fernando] - Update to libFS-1.0.6. Fixes #4817.
[fernando] - Update to lcms2-2.6. Fixes #4816.
[fernando] - Update to Python-3.4.0. Fixes #4815. Thanks Armin K. for discussions.
[fernando] - Update to httpd-2.4.9. Fixes #4814.
March 16th, 2014
[fernando] - Update to libatomic_ops-7.4.0. Fixes #4812.
[fernando] - Ruby-2.1.1 fails to build with Readline-6.3. Thanks Armin K. Fixes #4810.
[fernando] - Update to ssh-askpass-6.6p1. Fixes #4809.
[fernando] - Update to openssh-6.6p1. Fixes #4807.
[fernando] - Update to sudo-1.8.10p1. Fixes #4806.
[bdubbs] - Add haveged. Fixes #4682.
[pierre] - Add Pax-070715. Fixes #4736.
[fernando] - Update to MariaDB-10.0.9. Fixes #4779.
[fernando] - PCRE-8.34: build and security fixes for MariaDB-10.0.9. Thanks Bruce Dubbs.
March 15th, 2014
[ken] - mutt-1.5.23. Fixes #4795.
[bdubbs] - Added valgrind-3.9.0. Fixes #4724.
[fernando] - Ristretto-0.6.3, Thunar-1.6.3 and xfce4-power-manager-1.2.0: include some dependencies.
[fernando] - Update to xf86-input-synaptics-1.7.4. Fixes #4802.
[fernando] - Update to PulseAudio 5.0. Fixes #4667.
[fernando] - Update to tumbler-0.1.30. Fixes #4786.
[fernando] - Update to garcon-0.3.0. Fixes #4785.
[fernando] - Update to dhcpcd-6.3.2. Fixes #4805.
March 14th, 2014
[fernando] - Update to mtdev-1.1.5. Fixes #4774.
[fernando] - Update to udisks-1.0.5. Fixes #4775.
[fernando] - Update to PHP 5.5.10. Fixes #4757.
[fernando] - Update to xcb-util-wm-0.4.1. Fixes #4728.
[fernando] - Update to scons-2.3.1. Fixes #4777.
[fernando] - Update to libreoffice-4.2.2.1. Fixes #4804. Fix typo, thanks stoat, #4796.
March 13th, 2014
March 12th, 2014
[fernando] - Archive LXShortcut-0.1.2. Fixes #4793.
[fernando] - Update to Samba 4.1.6. Fixes #4792.
[fernando] - Update to pcmanfm-1.2.0. Fixes #4705.
[fernando] - Update to libfm-1.2.0. Fixes #4704.
[fernando] - Update to cups-filters-1.0.48. Fixes #4791.
[fernando] - Update to mpg123-1.19.0. Fixes #4789.
[fernando] - Update to gnome-video-effects-0.4.1. Fixes #4784.
[fernando] - Update to libsecret-0.18. Fixes #4783.
March 11th, 2014
[pierre] - Add the time utility, as required by the LSB. Partially fulfills #4736.
[fernando] - Update to udisks-2.1.3. Fixes #4776.
[fernando] - Update to gmime-2.6.20. Fixes #4773.
[fernando] - Update to ed-1.10. Fixes #4772.
[fernando] - Update to sudo-1.8.10. Fixes #4771.
[fernando] - Update to sqlite-3.8.4. Fixes #4768.
March 10th, 2014
[fernando] - Update to samba-4.1.5. Fixes #4730.
[fernando] - Update to MesaLib-10.1.0. Fixes #4753.
[fernando] - Update to Python-3.3.5. Fixes #4766.
[fernando] - Update to Lynx 2.8.8rel.2. Fixes #4765.
[bdubbs] - Update to gptfdisk-10.8.10. Fixes #4716.
[fernando] - Update to libreoffice-4.2.1. Fixes #4717.
[bdubbs] - Changed the location of Certificate Authority Certificates to an automated location on a LFS/BLFS server. Fixes #4758.
March 9th, 2014
[fernando] - Update to libisoburn-1.3.6. Fixes #4756.
[fernando] - Update to libburn-1.3.6. Fixes #4755.
[fernando] - Update to libisofs-1.3.6. Fixes #4754.
[fernando] - Update to Berkeley DB 6.0.30. Fixes #4763.
[fernando] - Update to mercurial-2.9.1. Fixes #4762.
[rthomsen] - Update to NTFS-3g 2014.2.15. Fixes #4747.
[fernando] - Update to WebKitGTK+ 2.2.5. Fixes #4703.
March 8th, 2014
[fernando] - Update to dhcpcd-6.3.1. Fixes #4741.
[fernando] - Update to keyutils-1.5.9. Fixes #4746.
[fernando] - Update to libass-0.11.1. Fixes #4712.
[fernando] - Update to rasqal-0.9.32. Fixes #4742.
[fernando] - Update to xterm-303. Fixes #4752.
[fernando] - Update to freetype-2.5.3. Fixes #4759.
[fernando] - Update to ffmpeg-2.1.4. Fixes #4738.
[fernando] - Update to grilo-plugins-0.2.11. Fixes #4701.
[fernando] - Update to grilo-0.2.9. Fixes #4700.
[fernando] - Update to totem-pl-parser-3.10.1. Fixes #4702.
March 7th, 2014
[fernando] - Update to wireshark-1.10.6. Fixes #4761.
[fernando] - Update to nasm-2.11.02. Fixes #4715.
[fernando] - Update to Subversion 1.8.8. Fixes #4729.
[fernando] - Update to ruby-2.1.1. Fixes #4739.
[fernando] - Update to vlc-2.1.4. Fixes #4734.
[fernando] - Update to mpg123-1.18.1. Fixes #4709.
[fernando] - Update to hicolor-icon-theme-0.13. Fixes #4707.
[fernando] - Update to gparted-0.18.0. Fixes #4713.
[fernando] - Update to cups-filters-1.0.46. Fixes #4735.
[fernando] - Update to yelp-3.10.2. Fixes #4750.
[ken] - Reinstate CFLAGS in cyrus-sasl so that it will build on x86_64.
March 6th, 2014
March 5th, 2014
[ken] - gnutls-3.2.12.1. Fixes #4748.
[bdubbs] - Release of BLFS-7.5.
Last updated on 2014-09-22 16:47:23 -0700
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 12:42:53 -0700
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 12:42:53 -0700
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 usermod -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 7.6),
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 2009-09-24 22:43:37 -0700
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.
Fernando de Oliveira
Bruce Dubbs
Ken Moffat
Ragnar Thomsen
Igor Živković
The list of contributors is far too large to provide detailed information about the contributions for each contributor. Over the years, the following individuals have provided significant inputs to the book:
Timothy Bauscher
Daniel Bauman
Jeff Bauman
Andy Benton
Wayne Blaszczyk
Paul Campbell
Nathan Coulson
Jeroen Coumans
Guy Dalziel
Robert Daniels
Richard Downing
Manuel Canales Esparcia
Jim Gifford
Manfred Glombowski
Ag Hatzimanikas
Mark Hymers
James Iwanek
David Jensen
Jeremy Jones
Seth Klein
Alex Kloss
Eric Konopka
Larry Lawrence
DJ Lucas
Chris Lynn
Randy McMurchy
Andrew McMurry
Denis Mugnier
Billy O'Connor
Alexander Patrakov
Olivier Peres
Andreas Pedersen
Henning Rohde
Matt Rogers
James Robertson
Henning Rohde
Chris Staub
Jesse Tie-Ten-Quee
Thomas Trepl
Tushar Teredesai
Jeremy Utley
Zack Winkles
Christian Wurst
Fernando Arbeiza
Miguel Bazdresch
Gerard Beekmans
Oliver Brakmann
Jeremy Byron
Ian Chilton
David Ciecierski
Jim Harris
Lee Harris
Marc Heerdink
Steffen Knollmann
Eric Konopka
Scot McPherson
Ted Riley
Last updated on 2014-08-16 10:01:22 -0700
Please direct your emails to one of the BLFS mailing lists. See Mailing lists for more information on the available mailing lists.
Last updated on 2012-02-05 21:15:51 -0800
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. Some of that information is repeated here for those new to building their own software.
Each set of installation instructions contains a URL from which you can download the package. The patches; however, are stored on the LFS servers and are 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
the 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. The instructions in the book assume these packages are installed. Some changes or workarounds may be required if these packages are not installed.
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.
On occasion you may run into a situation in the book when a package will not build or work properly. Though the Editors attempt to ensure that every package in the book builds and works properly, sometimes a package has been overlooked or was not tested with this particular version of BLFS.
If you discover that a package will not build or work properly, you should see if there is a more current version of the package. Typically this means you go to the maintainer's web site and download the most current tarball and attempt to build the package. If you cannot determine the maintainer's web site by looking at the download URLs, use Google and query the package's name. For example, in the Google search bar type: 'package_name download' (omit the quotes) or something similar. Sometimes typing: 'package_name home page' will result in you finding the maintainer's web site.
In LFS, stripping of debugging symbols was discussed a couple of times. When building BLFS packages, there are generally no special instructions that discuss stripping again. It is probably not a good idea to strip an executable or a library while it is in use, so exiting any windowing environment is a good idea. Then you can do:
find /{,usr/}{bin,lib,sbin} -type f -exec strip --strip-unneeded {} \;
If you install programs in other directories such as /opt or /usr/local, you may want to strip the files there too.
For more information on stripping, see http://www.technovelty.org/linux/stripping-shared-libraries.html.
One of the side effects of packages that use Autotools, including libtool, is that they create many files with an .la extension. These files are not needed in an LFS environment. If there are conflicts with pkgconfig entries, they can actually prevent successful builds. You may want to consider removing these files periodically:
find /lib /usr/lib -not -path "*Image*" -a -name \*.la -delete
The above command removes all .la files with the exception of those that have "Image" as a part of the path. These .la files are used by the ImageMagick programs. There may be other exceptions by packages not in BLFS.
Last updated on 2014-08-24 10:00:46 -0700
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 12:42:53 -0700
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 12:42:53 -0700
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/7.6/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 12:42:53 -0700
The original libraries were simply an archive of routines from which the required routines were extracted and linked into the executable program. These are described as static libraries (libfoo.a). On some old operating systems they are the only type available.
On almost all Linux platforms there are also shared libraries (libfoo.so) - one copy of the library is loaded into virtual memory, and shared by all the programs which call any of its functions. This is space efficient.
In the past, essential programs such as a shell were often
linked statically so that some form of minimal recovery
system would exist even if shared libraries, such as libc.so,
became damaged (e.g. moved to lost+found
after fsck following an unclean
shutdown). Nowadays, most people use an alternative system
install or a Live CD if they have to recover. Journaling
filesystems also reduce the likelihood of this sort of
problem.
Developers, at least while they are developing, often prefer to use static versions of the libraries which their code links to.
Within the book, there are various places where configure switches such as --disable-static are employed, and other places where the possibility of using system versions of libraries instead of the versions included within another package is discussed. The main reason for this is to simplify updates of libraries.
If a package is linked to a dynamic library, updating to a newer library version is automatic once the newer library is installed and the program is (re)started (provided the library major version is unchanged, e.g. going from libfoo.so.2.0 to libfoo.so.2.1. Going to libfoo.so.3 will require recompilation - ldd can be used to find which programs use the old version). If a program is linked to a static library, the program always has to be recompiled. If you know which programs are linked to a particular static library, this is merely an annoyance. But usually you will not know which programs to recompile.
Most libraries are shared, but if you do something unusual,
such as moving a shared library to /lib
accidentally breaking the .so
symlink in /usr/lib
while keeping the static library
in /lib
, the static library
will be silently linked into the programs which need it.
One way to identify when a static library is used, is to deal
with it at the end of the installation of every package.
Write a script to find all the static libraries in
/usr/lib
or wherever you are
installing to, and either move them to another directory so
that they are no longer found by the linker, or rename them
so that libfoo.a becomes e.g. libfoo.a.hidden. The static
library can then be temporarily restored if it is ever
needed, and the package needing it can be identified. You may
choose to exclude some of the static libraries from glibc if
you do this (libc_nonshared.a, libg.a,
libieee.a, libm.a, libpthread_nonshared.a, librpcsvc.a,
libsupc++.a
) to simplify compilation.
If you use this approach, you may discover that more packages than you were expecting use a static library. That was the case with nettle-2.4 in its default static-only configuration: It was required by GnuTLS-3.0.19, but also linked into package(s) which used GnuTLS, such as glib-networking-2.32.3.
Many packages put some of their common functions into a static library which is only used by the programs within the package and, crucially, the library is not installed as a standalone library. These internal libraries are not a problem - if the package has to be rebuilt to fix a bug or vulnerability, nothing else is linked to them.
When BLFS mentions system libraries, it means shared versions of libraries. Some packages such as Firefox-32.0.1 and ghostscript-9.14 include many other libraries. When they link to them, they link statically so this also makes the programs bigger. The version they ship is often older than the version used in the system, so it may contain bugs - sometimes developers go to the trouble of fixing bugs in their included libraries, other times they do not.
Sometimes, deciding to use system libraries is an easy decision. Other times it may require you to alter the system version (e.g. for libpng-1.6.13 if used for Firefox-32.0.1). Occasionally, a package ships an old library and can no longer link to the current version, but can link to an older version. In this case, BLFS will usually just use the shipped version. Sometimes the included library is no longer developed separately, or its upstream is now the same as the package's upstream and you have no other packages which will use it. In those cases, you might decide to use the included static library even if you usually prefer to use system libraries.
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/libraries
Last updated on 2013-02-11 10:51:17 -0800
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.6, the -input-charset
option in unpatched Cdrtools,
and the character sets offered for display in the menu of
Links-2.8. 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 or to find a replacement.
Severity: High for non-text documents, low for text documents
Some programs, nano-2.3.6 or JOE-3.7 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.3.6, JOE-3.7, and all media players except Audacious-3.5.1.
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.
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.40.0 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-3.0 and UnZip-6.0 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.
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., OpenSSH-6.6p1). 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-ui-0.99.9 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
# Found a 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 2013-02-11 10:51:17 -0800
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 Freecode
for it at http://freecode.com/. 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. Often, a distribution will have already solved the problem (many of them use development versions of packages, so they see the changes sooner than those of us who normally use stable released versions). But be cautious - all builders tend to carry patches which are no longer necessary, and to have fixes which are only required because of their particular choices in how they build a package. You may have to search deeply to find a fix for the package version you are trying to use, or even to find the package (names are sometimes not what you might expect, e.g. ghostscript often has a prefix or a suffix in its name), but the following notes might help:
Arch http://www.archlinux.org/packages/
- enter the package name in the 'Keywords' box,
select the package name, select one of the 'SVN
Entries' fields, then select the PKGBUILD
to see how they build
this package, or look at any patches.
Debian ftp://ftp.uk.debian.org/debian/pool
(use your country's version if there is one) - the
source will be in .tar.gz tarballs (either the
original upstream .orig
source, or else a
dfsg
containing those
parts which comply with debian's free software
guidelines) accompanied by versioned .diff.gz or
.tar.gz additions. These additions often show how
the package is built, and may contain patches. In
the .diff.gz versions, any patches create files in
debian/patches
.
Fedora http://pkgs.fedoraproject.org/cgit/ - this site is still occasionally overloaded, but it is an easy way of looking at .spec files and patches. If you know their name for the package (e.g. mesa.git) you can append that to the URI to get to it. If not, use the search box. If the site is unavailable, try looking for a local mirror of ftp.fedora.com (the primary site is usually unavailable if fedora cgit is not responding) and download a source rpm to see what they do.
Gentoo - the mirrors for ebuilds and patches seem
to be well-hidden, and they change frequently.
Also, if you have found a mirror, you need to know
which directory the application has been assigned
to. The ebuilds themselves can be found at
http://packages.gentoo.org/
- use the search field. If there are any patches, a
mirror will have them in the files/
directory. Depending on
your browser, or the mirror, you might need to
download the ebuild to be able to read it. Treat
the ebuild as a sort of pseudo-code / shell
combination - look in particular for sed commands and
patches, or hazard a guess at the meanings of the
functions such as dodoc.
openSUSE http://download.opensuse.org/factory/repo/src-oss/suse/src/ - source only seems to be available in source rpms.
Slackware - the official package browser is
currently broken. The site at http://slackbuilds.org/
has current and previous versions in their
unofficial repository with links to homepages,
downloads, and some individual files, particularly
the .SlackBuild
files.
Ubuntu ftp://ftp.ubuntu.com/ubuntu/pool/ - see the debian notes above.
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.
You may also find an rpm2cpio script useful. The Perl version in the linux kernel archives at http://lkml.indiana.edu/hypermail/linux/kernel/0210.2/att-0093/01-rpm2cpio works for most source rpms. The rpm2targz script will use an rpm2cpio script or binary if one is on your path. Note that rpm2cpio will unpack a source rpm in the current directory, giving a tarball, a spec file, and perhaps patches or other files.
Last updated on 2013-08-26 08:43:33 -0700
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, Autofs-5.1.0, 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, a rescue device was thought to be 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, is no longer capable of building an entire LFS/BLFS system, but is still a good rescue CD-ROM. If you download the ISO image, use xorriso to copy the image to a CD-ROM.
The instructions for using GRUB2 to make a custom rescue CD-ROM are also available in LFS Chapter 8.
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 2014-01-19 04:43:46 -0800
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 06:49:09 -0700
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 1000. 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 | |
adm | 16 | |
atd | 17 | 17 |
messagebus | 18 | 18 |
lpadmin | 19 | |
named | 20 | 20 |
gdm | 21 | 21 |
fcron | 22 | 22 |
systemd-journal | 23 | |
apache | 25 | 25 |
smmsp | 26 | 26 |
polkitd | 27 | 27 |
exim | 31 | 31 |
postfix | 32 | 32 |
postdrop | 33 | |
sendmail | 34 | |
34 | ||
vmailman | 35 | 35 |
news | 36 | 36 |
kdm | 37 | 37 |
mysql | 40 | 40 |
postgres | 41 | 41 |
dovecot | 42 | 42 |
dovenull | 43 | 43 |
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 |
kvm | 61 | |
wireshark | 62 | |
lightdm | 63 | 63 |
scanner | 70 | |
colord | 71 | 71 |
systemd-bus-proxy | 72 | 72 |
systemd-journal-gateway | 73 | 73 |
systemd-journal-remote | 74 | 74 |
systemd-journal-upload | 75 | 75 |
systemd-network | 76 | 76 |
systemd-resolve | 77 | 77 |
systemd-timesync | 78 | 78 |
ldap | 83 | 83 |
avahi | 84 | 84 |
avahi-autoipd | 85 | 85 |
netdev | 86 | |
ntp | 87 | 87 |
unbound | 88 | 88 |
plugdev | 90 | |
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.
Last updated on 2014-09-22 15:13:35 -0700
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/grub.cfg
. 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
USB devices usually have two kinds of device nodes associated with them.
The first kind is created by device-specific drivers (e.g., usb_storage/sd_mod or usblp) in the kernel. For example, a USB mass storage device would be /dev/sdb, and a USB printer would be /dev/usb/lp0. These device nodes exist only when the device-specific driver is loaded.
The second kind of device nodes (/dev/bus/usb/BBB/DDD, where BBB is the bus number and DDD is the device number) are created even if the device doesn't have a kernel driver. By using these "raw" USB device nodes, an application can exchange arbitrary USB packets with the device, i.e., bypass the possibly-existing kernel driver.
Access to raw USB device nodes is needed when a userspace program is acting as a device driver. However, for the program to open the device successfully, the permissions have to be set correctly. By default, due to security concerns, all raw USB devices are owned by user root and group usb, and have 0664 permissions (the read access is needed, e.g., for lsusb to work and for programs to access USB hubs). Packages (such as SANE and libgphoto2) containing userspace USB device drivers also ship udev rules that change the permissions of the controlled raw USB devices. That is, rules installed by SANE change permissions for known scanners, but not printers. If a package maintainer forgot to write a rule for your device, report a bug to both BLFS (if the package is there) and upstream, and you will need to write your own rule.
There is one situation when such fine-grained access control with pre-generated udev rules doesn't work. Namely, PC emulators such as KVM, QEMU and VirtualBox use raw USB device nodes to present arbitrary USB devices to the guest operating system (note: patches are needed in order to get this to work without the obsolete /proc/bus/usb mount point described below). Obviously, maintainers of these packages cannot know which USB devices are going to be connected to the guest operating system. You can either write separate udev rules for all needed USB devices yourself, or use the default catch-all "usb" group, members of which can send arbitrary commands to all USB devices.
Before Linux-2.6.15, raw USB device access was performed not with /dev/bus/usb/BBB/DDD device nodes, but with /proc/bus/usb/BBB/DDD pseudofiles. Some applications (e.g., VMware Workstation) still use only this deprecated technique and can't use the new device nodes. For them to work, use the "usb" group, but remember that members will have unrestricted access to all USB devices. To create the fstab entry for the obsolete usbfs filesystem:
usbfs /proc/bus/usb usbfs devgid=14,devmode=0660 0 0
Adding users to the "usb" group is inherently insecure, as they can bypass access restrictions imposed through the driver-specific USB device nodes. For instance, they can read sensitive data from USB hard drives without being in the "disk" group. Avoid adding users to this group, if you can.
Fine-tuning of device attributes such as group name and
permissions is possible by creating extra udev rules, matching on something like
this. The vendor and product can be found by searching the
/sys/devices
directory entries
or using udevadm
info 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:="0660"
The above line is used for descriptive purposes only. The scanner udev rules are put into place when installing SANE-1.0.24.
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/rcS.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/rcS.d/{S10udev,S50udev_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/rcS.d/{S10udev,S50udev_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 2012-03-13 11:19:34 -0700
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 <[email protected]>
# modifications by Dagmar d'Surreal <[email protected]>
# 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"
}
export -f pathremove pathprepend pathappend
# 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"
# Set some defaults for graphical systems
export XDG_DATA_DIRS=/usr/share/
export XDG_CONFIG_DIRS=/etc/xdg/
# 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
unset script RED GREEN NORMAL
# 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 and /bin/grep 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'
alias grep='grep --color=auto'
EOF
This script adds some useful paths to the PATH
and can be used to customize other PATH
related environment variables (e.g. LD_LIBRARY_PATH, etc)
that may be needed for all users.
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
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, the umask should be set.
if [ "$(id -gn)" = "$(id -un)" -a $EUID -gt 99 ] ; then
umask 002
else
umask 022
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 <[email protected]>
# updated by Bruce Dubbs <[email protected]>
# 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 colored /bin/ls and /bin/grep commands. Used in conjunction
# with code in /etc/profile.
alias ls='ls --color=auto'
alias grep='grep --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
unset RED GREEN NORMAL
# 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 <[email protected]>
# updated by Bruce Dubbs <[email protected]>
# Personal environment variables and startup programs.
# Personal aliases and functions should go in ~/.bashrc. System wide
# environment variables and startup programs are in /etc/profile.
# System wide aliases and functions are in /etc/bashrc.
if [ -f "$HOME/.bashrc" ] ; then
source $HOME/.bashrc
fi
if [ -d "$HOME/bin" ] ; then
pathprepend $HOME/bin
fi
# Having . in the PATH is dangerous
#if [ $EUID -gt 99 ]; then
# pathappend .
#fi
# 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 <[email protected]>
# 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 <[email protected]>
# 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 2014-09-16 10:29:57 -0700
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 06:02:24 -0700
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 12:42:53 -0700
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 12:42:53 -0700
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-20140919 package.
make install-random
Last updated on 2007-04-04 12:42:53 -0700
The lsb_release script gives information about the Linux Standards Base (LSB) status of the distribution.
This package is known to build and work properly using an LFS-7.6 platform.
Download (HTTP): http://sourceforge.net/projects/lsb/files/lsb_release/1.4/lsb-release-1.4.tar.gz
Download MD5 sum: 30537ef5a01e0ca94b7b8eb6a36bb1e4
Download size: 12 KB
Estimated disk space required: 80 KB
Estimated build time: less than 0.1 SBU
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/lsb_release
First fix a minor display problem:
sed -i "s|n/a|unavailable|" lsb_release
Install lsb_release by running the following commands:
./help2man -N --include ./lsb_release.examples \ --alt_version_key=program_version ./lsb_release > lsb_release.1
Now, as the root
user:
install -v -m 644 lsb_release.1 /usr/share/man/man1/lsb_release.1 && install -v -m 755 lsb_release /usr/bin/lsb_release
The configuration for this package was done in
LFS. The file /etc/lsb-release
should already exist. Be
sure that the DISTRIB_CODENAME entry has been set properly.
Last updated on 2014-09-08 23:39:08 -0700
Security takes many forms in a computing environment. After some initial discussion, 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.
All software has bugs. Sometimes, a bug can be exploited, for example to allow users to gain enhanced privileges (perhaps gaining a root shell, or simply accessing or deleting other user's files), or to allow a remote site to crash an application (denial of service), or for theft of data. These bugs are labelled as vulnerabilities.
The main place where vulnerabilities get logged is cve.mitre.org. Unfortunately, many vulnerability numbers (CVE-yyyy-nnnn) are initially only labelled as "reserved" when distributions start issuing fixes. Also, some vulnerabilities apply to particular combinations of configure options, or only apply to old versions of packages which have long since been updated in BLFS.
BLFS differs from distributions - there is no BLFS security team, and the editors only become aware of vulnerabilities after they are public knowledge. Sometimes, a package with a vulnerability will not be updated in the book for a long time. Issues can be logged in the Trac system, which might speed up resolution.
The normal way for BLFS to fix a vulnerability is, ideally, to update the book to a new fixed release of the package. Sometimes that happens even before the vulnerability is public knowledge, so there is no guarantee that it will be shown as a vulnerability fix in the Changelog. Alternatively, a sed command, or a patch taken from a distribution, may be appropriate.
The bottom line is that you are responsible for your own security, and for assessing the potential impact of any problems.
To keep track of what is being discovered, you may wish to follow the security announcements of one or more distributions. For example, Debian has Debian security. Fedora's links on security are at the Fedora wiki. Details of Gentoo linux security announcements are discussed at Gentoo security. Finally, the Slackware archives of security announcements are at Slackware security.
The most general English source is perhaps the Full Disclosure Mailing List, but please read the comment on that page. If you use other languages you may prefer other sites such as http://www.heise.de/security heise.de (German) or cert.hr (Croatian). These are not linux-specific. There is also a daily update at lwn.net for subscribers (free access to the data after 2 weeks, but their vulnerabilities database at lwn.net/Vulnerabilities is unrestricted).
For some packages, subscribing to their 'announce' lists will provide prompt news of newer versions.
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/vulnerabilities
Last updated on 2013-12-30 02:12:57 -0800
The Public Key Inrastructure is used for many security issues in a Linux system. In order for a certificate to be trusted, it must be signed by a trusted agent called a Certificate Authority (CA). The certificates loaded by this section are from the list on the Mozilla version control system and formats it into a form used by OpenSSL-1.0.1i. The certificates can also be used by other applications either directly of indirectly through openssl.
This package is known to build and work properly using an LFS-7.6 platform.
CA Certificate Download: http://anduin.linuxfromscratch.org/sources/other/certdata.txt
CA Bundle size: 1.2 MB
Estimated disk space required: 1.2 MB
Estimated build time: less than 0.1 SBU
The certfile.txt file above is actually retrieved from https://hg.mozilla.org/releases/mozilla-release/file/default/security/nss/lib/ckfw/builtins/certdata.txt. It is really an HTML file, but the text file can be retrieved indirectly from the HTML file. The Download URL above automates that process and also adds a line where the date can be extracted as a revision number by the scripts below.
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/cacerts
First create a script to reformat a certificate into a form
needed by openssl. As the
root
user:
cat > /usr/bin/make-cert.pl << "EOF"
#!/usr/bin/perl -w
# Used to generate PEM encoded files from Mozilla certdata.txt.
# Run as ./make-cert.pl > certificate.crt
#
# Parts of this script courtesy of RedHat (mkcabundle.pl)
#
# This script modified for use with single file data (tempfile.cer) extracted
# from certdata.txt, taken from the latest version in the Mozilla NSS source.
# mozilla/security/nss/lib/ckfw/builtins/certdata.txt
#
# Authors: DJ Lucas
# Bruce Dubbs
#
# Version 20120211
my $certdata = './tempfile.cer';
open( IN, "cat $certdata|" )
|| die "could not open $certdata";
my $incert = 0;
while ( <IN> )
{
if ( /^CKA_VALUE MULTILINE_OCTAL/ )
{
$incert = 1;
open( OUT, "|openssl x509 -text -inform DER -fingerprint" )
|| die "could not pipe to openssl x509";
}
elsif ( /^END/ && $incert )
{
close( OUT );
$incert = 0;
print "\n\n";
}
elsif ($incert)
{
my @bs = split( /\\/ );
foreach my $b (@bs)
{
chomp $b;
printf( OUT "%c", oct($b) ) unless $b eq '';
}
}
}
EOF
chmod +x /usr/bin/make-cert.pl
The following script creates the certificates and a bundle of
all the certificates. It creates a ./certs
directory and ./BLFS-ca-bundle-${VERSION}.crt
. Again
create this script as the root
user:
cat > /usr/bin/make-ca.sh << "EOF"
#!/bin/sh
# Begin make-ca.sh
# Script to populate OpenSSL's CApath from a bundle of PEM formatted CAs
#
# The file certdata.txt must exist in the local directory
# Version number is obtained from the version of the data.
#
# Authors: DJ Lucas
# Bruce Dubbs
#
# Version 20120211
certdata="certdata.txt"
if [ ! -r $certdata ]; then
echo "$certdata must be in the local directory"
exit 1
fi
REVISION=$(grep CVS_ID $certdata | cut -f4 -d'$')
if [ -z "${REVISION}" ]; then
echo "$certfile has no 'Revision' in CVS_ID"
exit 1
fi
VERSION=$(echo $REVISION | cut -f2 -d" ")
TEMPDIR=$(mktemp -d)
TRUSTATTRIBUTES="CKA_TRUST_SERVER_AUTH"
BUNDLE="BLFS-ca-bundle-${VERSION}.crt"
CONVERTSCRIPT="/usr/bin/make-cert.pl"
SSLDIR="/etc/ssl"
mkdir "${TEMPDIR}/certs"
# Get a list of starting lines for each cert
CERTBEGINLIST=$(grep -n "^# Certificate" "${certdata}" | cut -d ":" -f1)
# Get a list of ending lines for each cert
CERTENDLIST=`grep -n "^CKA_TRUST_STEP_UP_APPROVED" "${certdata}" | cut -d ":" -f 1`
# Start a loop
for certbegin in ${CERTBEGINLIST}; do
for certend in ${CERTENDLIST}; do
if test "${certend}" -gt "${certbegin}"; then
break
fi
done
# Dump to a temp file with the name of the file as the beginning line number
sed -n "${certbegin},${certend}p" "${certdata}" > "${TEMPDIR}/certs/${certbegin}.tmp"
done
unset CERTBEGINLIST CERTDATA CERTENDLIST certbegin certend
mkdir -p certs
rm -f certs/* # Make sure the directory is clean
for tempfile in ${TEMPDIR}/certs/*.tmp; do
# Make sure that the cert is trusted...
grep "CKA_TRUST_SERVER_AUTH" "${tempfile}" | \
egrep "TRUST_UNKNOWN|NOT_TRUSTED" > /dev/null
if test "${?}" = "0"; then
# Throw a meaningful error and remove the file
cp "${tempfile}" tempfile.cer
perl ${CONVERTSCRIPT} > tempfile.crt
keyhash=$(openssl x509 -noout -in tempfile.crt -hash)
echo "Certificate ${keyhash} is not trusted! Removing..."
rm -f tempfile.cer tempfile.crt "${tempfile}"
continue
fi
# If execution made it to here in the loop, the temp cert is trusted
# Find the cert data and generate a cert file for it
cp "${tempfile}" tempfile.cer
perl ${CONVERTSCRIPT} > tempfile.crt
keyhash=$(openssl x509 -noout -in tempfile.crt -hash)
mv tempfile.crt "certs/${keyhash}.pem"
rm -f tempfile.cer "${tempfile}"
echo "Created ${keyhash}.pem"
done
# Remove blacklisted files
# MD5 Collision Proof of Concept CA
if test -f certs/8f111d69.pem; then
echo "Certificate 8f111d69 is not trusted! Removing..."
rm -f certs/8f111d69.pem
fi
# Finally, generate the bundle and clean up.
cat certs/*.pem > ${BUNDLE}
rm -r "${TEMPDIR}"
EOF
chmod +x /usr/bin/make-ca.sh
Add a short script to remove expired certificates from a
directory. Again create this script as the root
user:
cat > /usr/bin/remove-expired-certs.sh << "EOF"
#!/bin/sh
# Begin /usr/bin/remove-expired-certs.sh
#
# Version 20120211
# Make sure the date is parsed correctly on all systems
mydate()
{
local y=$( echo $1 | cut -d" " -f4 )
local M=$( echo $1 | cut -d" " -f1 )
local d=$( echo $1 | cut -d" " -f2 )
local m
if [ ${d} -lt 10 ]; then d="0${d}"; fi
case $M in
Jan) m="01";;
Feb) m="02";;
Mar) m="03";;
Apr) m="04";;
May) m="05";;
Jun) m="06";;
Jul) m="07";;
Aug) m="08";;
Sep) m="09";;
Oct) m="10";;
Nov) m="11";;
Dec) m="12";;
esac
certdate="${y}${m}${d}"
}
OPENSSL=/usr/bin/openssl
DIR=/etc/ssl/certs
if [ $# -gt 0 ]; then
DIR="$1"
fi
certs=$( find ${DIR} -type f -name "*.pem" -o -name "*.crt" )
today=$( date +%Y%m%d )
for cert in $certs; do
notafter=$( $OPENSSL x509 -enddate -in "${cert}" -noout )
date=$( echo ${notafter} | sed 's/^notAfter=//' )
mydate "$date"
if [ ${certdate} -lt ${today} ]; then
echo "${cert} expired on ${certdate}! Removing..."
rm -f "${cert}"
fi
done
EOF
chmod +x /usr/bin/remove-expired-certs.sh
The following commands will fetch the certificates and
convert them to the correct format. If desired, a web browser
may be used instead of wget
but the file will need to be saved with the name certdata.txt
. These commands can be
repeated as necessary to update the CA Certificates.
URL=http://anduin.linuxfromscratch.org/sources/other/certdata.txt && rm -f certdata.txt && wget $URL && make-ca.sh && remove-expired-certs.sh certs && unset URL
Now, as the root
user:
SSLDIR=/etc/ssl && install -d ${SSLDIR}/certs && cp -v certs/*.pem ${SSLDIR}/certs && c_rehash && install BLFS-ca-bundle*.crt ${SSLDIR}/ca-bundle.crt && ln -sfv ../ca-bundle.crt ${SSLDIR}/certs/ca-certificates.crt && unset SSLDIR
Finally, clean up the current directory:
rm -r certs BLFS-ca-bundle*
After installing or updating certificates, if OpenJDK is installed, update the certificates for Java using the procedures at the section called “Install or update the JRE Certificate Authority Certificates (cacerts) file”.
is a shell script that reformats the |
|
is a utility perl script that converts a single binary certificate (.der format) into .pem format. |
|
is a utility perl
script that removes expired certificates from a
directory. The default directory is |
Last updated on 2014-09-11 23:27:59 -0700
The ConsoleKit package is a framework for keeping track of the various users, sessions, and seats present on a system. It provides a mechanism for software to react to changes of any of these items or of any of the metadata associated with them.
This package is known to build and work properly using an LFS-7.6 platform.
Download (HTTP): http://anduin.linuxfromscratch.org/sources/BLFS/svn/c/ConsoleKit-0.4.6.tar.xz
Download MD5 sum: 6aaadf5627d2f7587aa116727e2fc1da
Download size: 356 KB
Estimated disk space required: 8.0 MB
Estimated build time: 0.3 SBU
dbus-glib-0.102 and Xorg Libraries
Linux-PAM-1.1.8 and Polkit-0.112
If you intend NOT to install polkit, you will need to manually edit the ConsoleKit.conf file to lock down the service. Failure to do so may be a huge SECURITY HOLE.
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/consolekit
Install ConsoleKit by running the following commands:
./configure --prefix=/usr \ --sysconfdir=/etc \ --localstatedir=/var \ --enable-udev-acl \ --enable-pam-module \ --with-systemdsystemunitdir=no && make
This package does not come with a test suite.
Now, as the root
user:
make install
--enable-udev-acl
: This switch
enables building of the udev-acl tool, which is
used to allow normal users to access device nodes normally
only accessible to root
.
--enable-pam-module
: This switch
enables building of the ConsoleKit PAM module which is needed for
ConsoleKit to work correctly
with PAM. Remove if
Linux PAM is NOT installed.
--enable-docbook-docs
: Use this
switch if xmlto is installed
and you wish to build the API documentation.
--with-systemdsystemunitdir=no
:
Disable attempting to build with systemd libraries.
If you use Linux PAM you
need to configure Linux
PAM to activate ConsoleKit upon user login. This can
be achieved by editing the /etc/pam.d/system-session
file as the
root
user:
cat >> /etc/pam.d/system-session << "EOF" # Begin ConsoleKit addition session optional pam_loginuid.so session optional pam_ck_connector.so nox11 # End ConsoleKit addition EOF
You will also need a helper script that creates a file in
/var/run/console
named as the
currently logged in user and that contains the D-Bus address of the session. You can
create the script by running the following commands as the
root
user:
cat > /usr/lib/ConsoleKit/run-session.d/pam-foreground-compat.ck << "EOF" #!/bin/sh TAGDIR=/var/run/console [ -n "$CK_SESSION_USER_UID" ] || exit 1 [ "$CK_SESSION_IS_LOCAL" = "true" ] || exit 0 TAGFILE="$TAGDIR/`getent passwd $CK_SESSION_USER_UID | cut -f 1 -d:`" if [ "$1" = "session_added" ]; then mkdir -p "$TAGDIR" echo "$CK_SESSION_ID" >> "$TAGFILE" fi if [ "$1" = "session_removed" ] && [ -e "$TAGFILE" ]; then sed -i "\%^$CK_SESSION_ID\$%d" "$TAGFILE" [ -s "$TAGFILE" ] || rm -f "$TAGFILE" fi EOF chmod -v 755 /usr/lib/ConsoleKit/run-session.d/pam-foreground-compat.ck
See /usr/share/doc/ConsoleKit/spec/ConsoleKit.html for more configuration.
Last updated on 2014-09-14 14:01:57 -0700
The CrackLib package contains a library used to enforce strong passwords by comparing user selected passwords to words in chosen word lists.
This package is known to build and work properly using an LFS-7.6 platform.
Download (HTTP): http://downloads.sourceforge.net/cracklib/cracklib-2.9.1.tar.gz
Download MD5 sum: 90536219c520add2ceb3c26f0d7da404
Download size: 624 KB
Estimated disk space required: 24 MB
Estimated build time: 0.1 SBU
Recommended word list for English-speaking countries (size: 4.5 MB; md5sum: 7fa6ba0cd50e7f9ccaf4707c810b14f1): http://downloads.sourceforge.net/cracklib/cracklib-words-20080507.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 \ --disable-static && make
Now, as the root
user:
make install && mv -v /usr/lib/libcrack.so.* /lib && ln -sfv ../../lib/$(readlink /usr/lib/libcrack.so) /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-20080507.gz \ /usr/share/dict/cracklib-words.gz && gunzip -v /usr/share/dict/cracklib-words.gz && ln -v -sf 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 issuing the following command:
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.2.1 if you wish to provide strong password support on your system. If you are now going to install the Linux-PAM-1.1.8 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.
--disable-static
:
This switch prevents installation of static versions of the
libraries.
mv -v /usr/lib/libcrack.so.2*
/lib and ln -v
-sf ../../lib/libcrack.so.2.8.1 ...: These
two commands move the libcrack.so.2.8.1
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 2014-09-10 06:19:10 -0700
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.
This package is known to build and work properly using an LFS-7.6 platform.
Download (FTP): ftp://ftp.cyrusimap.org/cyrus-sasl/cyrus-sasl-2.1.26.tar.gz
Download MD5 sum: a7f4e5e559a0e37b3ffc438c9456e425
Download size: 5.0 MB
Estimated disk space required: 30 MB
Estimated build time: 0.5 SBU
Linux-PAM-1.1.8, MIT Kerberos V5-1.12.2, MariaDB-10.0.13 or MySQL, OpenJDK-1.7.0.65/IcedTea-2.5.2, OpenLDAP-2.4.39, PostgreSQL-9.3.5, SQLite-3.8.6, krb4 and Dmalloc
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/cyrus-sasl
Install Cyrus SASL by running the following commands:
patch -Np1 -i ../cyrus-sasl-2.1.26-fixes-3.patch && autoreconf -fi && ./configure --prefix=/usr \ --sysconfdir=/etc \ --enable-auth-sasldb \ --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 -dm755 /usr/share/doc/cyrus-sasl-2.1.26 && install -v -m644 doc/{*.{html,txt,fig},ONEWS,TODO} \ saslauthd/LDAP_SASLAUTHD /usr/share/doc/cyrus-sasl-2.1.26 && install -v -dm700 /var/lib/sasl
--with-dbpath=/var/lib/sasl/sasldb2
:
This switch forces the sasldb database to be
created in /var/lib/sasl
instead of /etc
.
--with-saslauthd=/var/run/saslauthd
:
This switch forces saslauthd to use the FHS
compliant directory /var/run/saslauthd
for variable run-time
data.
--enable-auth-sasldb
:
This switch enables SASLDB authentication backend.
--with-dblib=gdbm
:
This switch forces GDBM to
be used instead of Berkeley
DB.
--with-ldap
: This switch enables
the OpenLDAP support.
--enable-ldapdb
: This switch
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.
--enable-java
: This switch
enables compiling of the Java support libraries.
--enable-login
: This option
enables unsupported LOGIN authentication.
--enable-ntlm
: This option
enables unsupported NTLM authentication.
install -v -m644 ...: These commands install documentation which is not installed by the make install command.
install -v -m700 -d /var/lib/sasl: This directory 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.26/sysadmin.html for information on what to include in the application configuration files.
See file:///usr/share/doc/cyrus-sasl-2.1.26/LDAP_SASLAUTHD for configuring saslauthd with OpenLDAP.
See file:///usr/share/doc/cyrus-sasl-2.1.26/gssapi.html for configuring saslauthd with Kerberos.
If you need to run the saslauthd daemon at
system startup, install the /etc/rc.d/init.d/saslauthd
init script
included in the blfs-bootscripts-20140919 package
using the following command:
make install-saslauthd
You'll need to modify /etc/sysconfig/saslauthd and
replace the
parameter
with your desired authentication mechanism.
AUTHMECH
is used to list loadable SASL plugins and their properties. |
|
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 test utility for the SASL authentication server. |
|
is a general purpose authentication library for server and client applications. |
Last updated on 2014-09-17 11:48:47 -0700
The GnuPG 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.
This package is known to build and work properly using an LFS-7.6 platform.
Download (FTP): ftp://ftp.gnupg.org/gcrypt/gnupg/gnupg-2.0.26.tar.bz2
Download MD5 sum: fa7e704aad33eb114d1840164455aec1
Download size: 4.2 MB
Estimated disk space required: 68 MB
Estimated build time: 0.6 SBU (additional 0.5 SBU for the tests)
Pth-2.0.7, Libassuan-2.1.2, libgcrypt-1.6.2, and Libksba-1.3.0
PIN-Entry-0.8.3 (Run-time requirement for most of the package's functionality)
OpenLDAP-2.4.39, libusb-compat-0.1.5, cURL-7.37.1, GNU adns, and an MTA
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/gnupg2
Install GnuPG by running the following commands:
./configure --prefix=/usr \ --enable-symcryptrun \ --docdir=/usr/share/doc/gnupg-2.0.26 && make && makeinfo --html --no-split -o doc/gnupg_nochunks.html doc/gnupg.texi && makeinfo --plaintext -o doc/gnupg.txt doc/gnupg.texi
If you have texlive-20140525 installed and you wish to create documentation in alternate formats, issue the following commands:
make -C doc pdf ps html
To test the results, issue: make check.
Note that if you have already installed GnuPG, the instructions below will
overwrite /usr/share/man/man1/gpg-zip.1
. Now, as the
root
user:
make install && install -v -m755 -d /usr/share/doc/gnupg-2.0.26/html && install -v -m644 doc/gnupg_nochunks.html \ /usr/share/doc/gnupg-2.0.26/gnupg.html && install -v -m644 doc/*.texi doc/gnupg.txt \ /usr/share/doc/gnupg-2.0.26
We recommend the creation of symlinks for compatibility with
the first version of GnuPG, because some programs or scripts
need them. Issue, as root
user:
for f in gpg gpgv do ln -svf ${f}2.1 /usr/share/man/man1/$f.1 && ln -svf ${f}2 /usr/bin/$f done unset f
If you created alternate formats of the documentation,
install it using the following command as the root
user:
install -v -m644 doc/gnupg.html/* \ /usr/share/doc/gnupg-2.0.26/html && install -v -m644 doc/gnupg.{pdf,dvi,ps} \ /usr/share/doc/gnupg-2.0.26
--docdir=/usr/share/doc/gnupg-2.0.26
:
This switch changes the default docdir to /usr/share/doc/gnupg-2.0.26
.
--enable-symcryptrun
:
This switch enables building the symcryptrun program.
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 gpg2 and gpgsm as well as for a couple of other utilities. |
|
is a utility used to communicate with a running gpg-agent. |
|
(optional) is a symlink to gpg2 for compatibility with the first version of GnuPG. |
|
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 gpg2 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 interactively generate a certificate request which will be printed to stdout. |
|
(optional) is a symlink to gpgv2 for compatibility with the first version of GnuPG. |
|
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 2014-09-17 11:48:47 -0700
The GnuTLS package contains libraries 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.
This package is known to build and work properly using an LFS-7.6 platform.
Download (FTP): ftp://ftp.gnutls.org/gcrypt/gnutls/v3.3/gnutls-3.3.7.tar.xz
Download MD5 sum: a7a73cfa883cd106d70b15300552a5b5
Download size: 5.8 MB
Estimated disk space required: 104 MB (additional 8 MB for the tests)
Estimated build time: 0.9 SBU (additional 1.8 SBU for the tests)
Certificate Authority Certificates and libtasn1-4.1
GTK-Doc-1.20, Guile-2.0.11, libidn-1.29, p11-kit-0.20.6, Unbound-1.4.22 (to build the DANE library), Valgrind-3.10.0 (used during the test suite), autogen, and Trousers (Trusted Platform Module support)
Note that if you do not install libtasn1-4.1, an older version shipped in the GnuTLS tarball will be used instead.
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/gnutls
First fix a bug in one of the libraries:
sed -i -e '201 i#ifdef ENABLE_PKCS11' \ -e '213 i#endif' \ lib/gnutls_privkey.c
Install GnuTLS by running the following commands:
./configure --prefix=/usr \ --with-default-trust-store-file=/etc/ssl/ca-bundle.crt && make
To test the results, issue: make check.
Now, as the root
user:
make install
If you did not pass the --enable-gtk-doc
parameter to the
configure
script, you can install the API documentation to the
/usr/share/gtk-doc/html/gnutls
directory using the following command as the root
user:
make -C doc/reference install-data-local
--with-default-trust-store-file=/etc/ssl/ca-bundle.crt
:
This switch tells configure where to find the
CA Certificates.
--enable-gtk-doc
: Use this
parameter if GTK-Doc is
installed and you wish to rebuild and install the API
documentation.
is used to generate X.509 certificates, certificate requests, and private keys. |
|
is a simple wrapper that waits for TLS/SSL connections, and proxies them to an unencrypted location. Only installed if libidn-1.29 is present. |
|
is a tool used to generate and check DNS resource records for the DANE protocol. |
|
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 program that can parse and print information about OCSP requests/responses, generate requests and verify responses. |
|
is a program that allows handling data from PKCS #11 smart cards and security modules. |
|
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 GnuTLS. |
|
contains the core API functions and X.509 certificate API functions. |
Last updated on 2014-09-10 06:19:10 -0700
The GPGME package is a C language library that allows to add support for cryptography to a program. It is designed to make access to public key crypto engines like GnuPG or GpgSM easier for applications. GPGME provides a high-level crypto API for encryption, decryption, signing, signature verification and key management.
This package is known to build and work properly using an LFS-7.6 platform.
Download (FTP): ftp://ftp.gnupg.org/gcrypt/gpgme/gpgme-1.5.1.tar.bz2
Download MD5 sum: 8fb46b336200807a12a12a5760b4a39d
Download size: 944 KB
Estimated disk space required: 17 MB (additional 1 MB for the tests)
Estimated build time: 0.2 SBU (additional 0.1 SBU for the tests)
GnuPG-2.0.26 (used during the testsuite)
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/gpgme
Install GPGME by running the following commands:
./configure --prefix=/usr \ --disable-fd-passing \ --disable-gpgsm-test && make
To test the results, issue: make check.
Now, as the root
user:
make install
--disable-fd-passing
: This option
disables a problem causing a hang for some operations on some
systems.
--disable-gpgsm-test
: This option
disables a test with gpgsm in some systems breaking make.
Last updated on 2014-09-17 11:48:47 -0700
The Haveged package contains a daemon that generates an unpredictable stream of random numbers and feeds the /dev/random device.
This package is known to build and work properly using an LFS-7.6 platform.
Download (HTTP): http://www.issihosts.com/haveged/haveged-1.9.1.tar.gz
Download MD5 sum: 015ff58cd10607db0e0de60aeca2f5f8
Download size: 468 KB
Estimated disk space required: 4.8 MB
Estimated build time: 0.2 SBU
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/haveged
Install Haveged by running the following commands:
./configure --prefix=/usr && make
To test the results, issue: make check.
Now, as the root
user:
make install && mkdir -pv /usr/share/doc/haveged-1.9.1 && cp -v README /usr/share/doc/haveged-1.9.1
If you want the Haveged
daemon to start automatically when the system is booted,
install the /etc/rc.d/init.d/haveged
init script
included in the blfs-bootscripts-20140919 package.
make install-haveged
Last updated on 2014-09-19 13:27:36 -0700
The next part of this chapter deals with firewalls. The principal firewall tool for Linux is Iptables. You will need to install Iptables if you intend on using any form of a firewall.
This package is known to build and work properly using an LFS-7.6 platform.
Download (HTTP): http://www.netfilter.org/projects/iptables/files/iptables-1.4.21.tar.bz2
Download (FTP): ftp://ftp.netfilter.org/pub/iptables/iptables-1.4.21.tar.bz2
Download MD5 sum: 536d048c8e8eeebcd9757d0863ebb0c0
Download size: 536 KB
Estimated disk space required: 15 MB
Estimated build time: 0.2 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 Support ⇒ Networking Options ⇒ Network Packet Filtering Framework.
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:
./configure --prefix=/usr \ --sbindir=/sbin \ --with-xtlibdir=/lib/xtables \ --enable-libipq && make
This package does not come with a test suite.
Now, as the root
user:
make install && ln -sfv ../../sbin/xtables-multi /usr/bin/iptables-xml && for file in ip4tc ip6tc ipq iptc xtables do mv -v /usr/lib/lib${file}.so.* /lib && ln -sfv ../../lib/$(readlink /usr/lib/lib${file}.so) /usr/lib/lib${file}.so done
--with-xtlibdir=/lib/xtables
:
Ensure all Iptables modules
are installed in the /lib/xtables
directory.
--enable-libipq
: This switch
enables building of libipq.so
which can be used by some packages outside of BLFS.
--enable-nfsynproxy
: This switch
enables installation of nfsynproxy SYNPROXY configuration tool.
ln -sfv ../../sbin/xtables-multi /usr/bin/iptables-xml: Ensure the symbolic link for iptables-xml is relative.
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-20140919 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 |
|
are a set of commands for IPV6 that parallel the iptables commands above. |
|
(optional) configuration tool. SYNPROXY target makes handling of large SYN floods possible without the large performance penalties imposed by the connection tracking in such cases. |
Last updated on 2014-09-19 13:27:36 -0700
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.iptables
# Insert connection-tracking modules
# (not needed if built into the kernel)
modprobe nf_conntrack
modprobe xt_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
echo 0 > /proc/sys/net/ipv4/conf/default/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/default/accept_redirects
# Do not send Redirect Messages
echo 0 > /proc/sys/net/ipv4/conf/all/send_redirects
echo 0 > /proc/sys/net/ipv4/conf/default/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
echo 1 > /proc/sys/net/ipv4/conf/default/rp_filter
# Log packets with impossible addresses.
echo 1 > /proc/sys/net/ipv4/conf/all/log_martians
echo 1 > /proc/sys/net/ipv4/conf/default/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 conntrack --ctstate 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.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 nf_conntrack
modprobe nf_conntrack_ftp
modprobe xt_conntrack
modprobe xt_LOG
modprobe xt_state
# 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/default/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/default/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 conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
iptables -A FORWARD ! -i ppp+ -m conntrack --ctstate 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 conntrack --ctstate 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 conntrack --ctstate 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) insert these rules at the top of the chain:
iptables -I INPUT 0 -p tcp -m conntrack --ctstate INVALID \
-j LOG --log-prefix "FIREWALL:INVALID "
iptables -I INPUT 1 -p tcp -m conntrack --ctstate 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 2014-08-10 11:18:14 -0700
The libcap package was installed in LFS, but if PAM support is desired, it needs to be reinstalled after PAM is built.
This package is known to build and work properly using an LFS-7.6 platform.
Download (HTTP): https://www.kernel.org/pub/linux/libs/security/linux-privs/libcap2/libcap-2.24.tar.xz
Download (FTP): ftp://ftp.kernel.org/pub/linux/libs/security/linux-privs/libcap2/libcap-2.24.tar.xz
Download MD5 sum: d43ab9f680435a7fff35b4ace8d45b80
Download size: 62 KB
Estimated disk space required: 1.5 MB
Estimated build time: 0.1 SBU
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/libcap
Install libcap by running the following commands:
sed -i 's:LIBDIR:PAM_&:g' pam_cap/Makefile && make
This package does not come with a test suite.
If you want to disable installing the static library, use this sed:
sed -i '/install.*STALIBNAME/ s/^/#/' libcap/Makefile
Now, as the root
user:
make prefix=/usr \ SBINDIR=/sbin \ PAM_LIBDIR=/lib \ RAISE_SETFCAP=no install
Still as the root
user, clean
up some library locations and permissions:
chmod -v 755 /usr/lib/libcap.so && mv -v /usr/lib/libcap.so.* /lib && ln -sfv ../../lib/libcap.so.2 /usr/lib/libcap.so
sed -i '...',
PAM_LIBDIR=/lib
:
These correct PAM module install location.
RAISE_SETFCAP=no
:
This parameter skips trying to use setcap on itself. This avoids an
installation error if the kernel or file system do not
support extended capabilities.
Last updated on 2014-09-10 06:19:10 -0700
The Linux PAM package contains Pluggable Authentication Modules used to enable the local system administrator to choose how applications authenticate users.
This package is known to build and work properly using an LFS-7.6 platform.
Download (HTTP): http://linux-pam.org/library/Linux-PAM-1.1.8.tar.bz2
Download MD5 sum: 35b6091af95981b1b2cd60d813b5e4ee
Download size: 1.1 MB
Estimated disk space required: 22 MB
Estimated build time: 0.3 SBU
Optional Documentation
Download (HTTP): http://linux-pam.org/documentation/Linux-PAM-1.1.8-docs.tar.bz2
Download MD5 sum: 730895d1c6e1c706dc5ffe2419f9b3f5
Download size 148 KB
Berkeley DB-6.1.19, CrackLib-2.9.1, libtirpc-0.2.5 and Prelude
docbook-xml-4.5, docbook-xsl-1.78.1, fop-1.1, libxslt-1.1.28 and w3m-0.5.3
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/linux-pam
If you downloaded the documentation, unpack the tarball by issuing the following command.
tar -xf ../Linux-PAM-1.1.8-docs.tar.bz2 --strip-components=1
Install Linux PAM by running the following commands:
./configure --prefix=/usr \ --sysconfdir=/etc \ --libdir=/usr/lib \ --enable-securedir=/lib/security \ --docdir=/usr/share/doc/Linux-PAM-1.1.8 && make
To test the results, a suitable /etc/pam.d/other
configuration file must
exist.
If you have a system with Linux PAM installed and working,
be careful when modifying the files in /etc/pam.d
, since your system may become
totally unusable. If you want to run the tests, you do not
need to create another /etc/pam.d/other
file. The installed one
can be used for that purpose.
You should also be aware that make install overwrites
the configuration files in /etc/security
as well as /etc/environment
. In case you have
modified those files, be sure to backup them.
For a first installation, create the configuration file by
issuing the following commands as the root
user:
install -v -m755 -d /etc/pam.d && cat > /etc/pam.d/other << "EOF" auth required pam_deny.so account required pam_deny.so password required pam_deny.so session required pam_deny.so EOF
Now run the tests by issuing make check. Ensure there are no errors produced by the tests before continuing the installation.
Only in case of a first installation, remove the
configuration file created earlier by issuing the following
command as the root
user:
rm -rfv /etc/pam.d
Now, as the root
user:
make install && chmod -v 4755 /sbin/unix_chkpwd && for file in pam pam_misc pamc do mv -v /usr/lib/lib${file}.so.* /lib && ln -sfv ../../lib/$(readlink /usr/lib/lib${file}.so) /usr/lib/lib${file}.so done
--enable-securedir=/lib/security
:
This switch sets install location for the PAM modules.
chmod -v 4755
/sbin/unix_chkpwd: The unix_chkpwd helper program
must be setuid so that non-root
processes can access the shadow
file.
Configuration information is placed in /etc/pam.d/
. Below is an example file:
# 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
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://debian.securedservers.com/kernel/pub/linux/libs/pam/modules.html for a list of various third-party modules available.
You should now reinstall the Shadow-4.2.1 package.
is a helper binary that creates home directories. |
|
is used to interrogate and manipulate the login counter file. |
|
is used to interrogate and manipulate the login counter file, but does not have some limitations that pam_tally does. |
|
is used to check if the default timestamp is valid |
|
is a helper binary that verifies the password of the current user. |
|
is a helper binary that updates the password of a given user. |
|
provides the interfaces between applications and the PAM modules. |
Last updated on 2014-09-10 06:19:10 -0700
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.
This package is known to build and work properly using an LFS-7.6 platform.
Download (HTTP): http://web.mit.edu/kerberos/www/dist/krb5/1.12/krb5-1.12.2-signed.tar
Download MD5 sum: 357f1312b7720a0a591e22db0f7829fe
Download size: 12 MB
Estimated disk space required: 120 MB (Additional 25 MB if running the testsuite)
Estimated build time: 1.0 SBU (additional 4.4 SBU if running the testsuite)
DejaGnu-1.5.1 (for full test coverage), GnuPG-2.0.26 (to authenticate the package), keyutils-1.5.9, OpenLDAP-2.4.39, Python-2.7.8 (used during the testsuite) and rpcbind-0.2.1 (used during the testsuite)
Some sort of time synchronization facility on your system (like ntp-4.2.6p5) 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-2.0.26 installed, you can
authenticate the package. First, check the contents of the
file krb5-1.12.2.tar.gz.asc
.
gpg2 --verify krb5-1.12.2.tar.gz.asc krb5-1.12.2.tar.gz
You will probably see output similar to:
gpg: Signature made Mon Aug 11 22:53:10 2014 GMT using RSA key ID 749D7889
gpg: Can't check signature: No public key
You can import the public key with:
gpg2 --pgp2 --keyserver pgp.mit.edu --recv-keys 0x749D7889
Now re-verify the package with the first command above. You should get a indication of a good signature, but the key will still not be certified with a trusted signature. Trusting the downloaded key is a separate operation but it is up to you to determine the level of trust.
Build MIT Kerberos V5 by running the following commands:
cd src && sed -e "[email protected]/Python.h@& python2.7/Python.h@g" \ -e "[email protected]]@&,\n AC_CHECK_LIB(python2.7,main,[PYTHON_LIB=-lpython2.7])@g" \ -i configure.in && sed -e 's@\^u}@^u cols 300}@' \ -i tests/dejagnu/config/default.exp && autoconf && ./configure --prefix=/usr \ --sysconfdir=/etc \ --localstatedir=/var/lib \ --with-system-et \ --with-system-ss \ --with-system-verto=no \ --enable-dns-for-realm && make
To test the build, issue: make check. You need at least Tcl-8.6.2, which is used to drive the testsuite. Furthermore, DejaGnu-1.5.1 must be available for some of the tests to run. If you have a former version of MIT Kerberos V5 installed, it may happen that the test suite pick up the installed versions of the libraries, rather than the newly built ones. If so, it is better to run the tests after the installation.
Now, as the root
user:
make install && for LIBRARY in gssapi_krb5 gssrpc k5crypto kadm5clnt kadm5srv \ kdb5 kdb_ldap krad krb5 krb5support verto ; do chmod -v 755 /usr/lib/lib$LIBRARY.so done && 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 && mv -v /usr/bin/ksu /bin && chmod -v 755 /bin/ksu && install -v -dm755 /usr/share/doc/krb5-1.12.2 && cp -vfr ../doc/* /usr/share/doc/krb5-1.12.2 && unset LIBRARY
sed -e ...: The first sed fixes Python detection. The second one increases the width of the virtual terminal used for some tests, to prevent some spurious characters to be echoed, which is taken as a failure.
--localstatedir=/var/lib
: This
parameter is used so that the Kerberos variable run-time data
is located in /var/lib
instead
of /usr/var
.
--with-system-et
:
This switch causes the build to use the system-installed
versions of the error-table support software.
--with-system-ss
:
This switch causes the build to use the system-installed
versions of the subsystem command-line interface software.
--with-system-verto=no
: This
switch fixes a bug in the package: it does not recognize its
own verto library installed previously. This is not a
problem, if reinstalling the same version, but if you are
updating, the old library is used as system's one, instead of
installing the new version.
--enable-dns-for-realm
: This
switch allows realms to be resolved using the DNS server.
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.
--with-ldap
: Use this switch if
you want to compile OpenLDAP
database backend module.
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.9.1 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:
cat > /etc/krb5.conf << "EOF"
# Begin /etc/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.conf
EOF
You will need to substitute your domain and proper
hostname for the occurrences 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 principals
(users). For now, just use your regular login name or
root
.
kadmin.localkadmin.local:
add_policy dict-onlykadmin.local:
addprinc -policy dict-only<loginname>
The KDC server and any machine running kerberized server daemons must have a host key installed:
kadmin.local:
addprinc -randkey host/<belgarath.lfs.org>
After choosing the defaults when prompted, you will have to export the data to a keytab file:
kadmin.local:
ktadd host/<belgarath.lfs.org>
This should have created a file in /etc
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.
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.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.
For additional information consult the documentation for krb5-1.12.2 on which the above instructions are based.
If you want to start Kerberos services at boot, install the
/etc/rc.d/init.d/krb5
init
script included in the blfs-bootscripts-20140919
package using the following command:
make install-krb5
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 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 the Kerberos 5 server. |
|
is the super user program using Kerberos protocol.
Requires a properly configured |
|
makes the specified credential cache the primary cache for the collection, if a cache collection is available. |
|
is a program for managing Kerberos keytabs. |
|
prints keyversion numbers of Kerberos principals. |
|
used to contact a sample server and authenticate to it using Kerberos 5 tickets, then display the server's response. |
|
is the sample Kerberos 5 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. |
|
contains the internal support library for RADIUS functionality. |
|
is an all-purpose Kerberos 5 library. |
Last updated on 2014-09-19 13:27:36 -0700
The Nettle package contains the low-level cryptographic library that is designed to fit easily in many contexts.
This package is known to build and work properly using an LFS-7.6 platform.
Download (HTTP): http://ftp.gnu.org/gnu/nettle/nettle-2.7.1.tar.gz
Download (FTP): ftp://ftp.gnu.org/gnu/nettle/nettle-2.7.1.tar.gz
Download MD5 sum: 003d5147911317931dd453520eb234a5
Download size: 1.5 MB
Estimated disk space required: 94 MB
Estimated build time: 0.6 SBU
OpenSSL-1.0.1i (for examples)
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/nettle
Install Nettle by running the following commands:
./configure --prefix=/usr && make
To test the results, issue: make check.
If you want to disable installing the static library, use this sed:
sed -i '/^install-here/ s/install-static//' Makefile
Now, as the root
user:
make install && chmod -v 755 /usr/lib/libhogweed.so.2.5 /usr/lib/libnettle.so.4.7 && install -v -m755 -d /usr/share/doc/nettle-2.7.1 && install -v -m644 nettle.html /usr/share/doc/nettle-2.7.1
calulates a hash value using a specified algorithm. |
|
outputs a sequence of pseudorandom (non-cryptographic) bytes, using Knuth's lagged fibonacci generator. The stream is useful for testing, but should not be used to generate cryptographic keys or anything else that needs real randomness. |
|
converts private and public RSA keys from PKCS #1 format to sexp format. |
|
converts an s-expression to a different encoding. |
Last updated on 2014-09-10 06:19:10 -0700
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.
This package is known to build and work properly using an LFS-7.6 platform.
Download (HTTP): http://ftp.mozilla.org/pub/mozilla.org/security/nss/releases/NSS_3_17_RTM/src/nss-3.17.tar.gz
Download (FTP): ftp://ftp.mozilla.org/pub/mozilla.org/security/nss/releases/NSS_3_17_RTM/src/nss-3.17.tar.gz
Download MD5 sum: 081dd99afa12af589c09e2d7cb5f5c6d
Download size: 6.2 MB
Estimated disk space required: 79 MB
Estimated build time: 0.7 SBU
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/nss
This package does not support parallel build.
Install NSS by running the following commands:
patch -Np1 -i ../nss-3.17-standalone-1.patch && cd nss && make BUILD_OPT=1 \ NSPR_INCLUDE_DIR=/usr/include/nspr \ USE_SYSTEM_ZLIB=1 \ ZLIB_LIBS=-lz \ $([ $(uname -m) = x86_64 ] && echo USE_64=1) \ $([ -f /usr/include/sqlite3.h ] && echo NSS_USE_SYSTEM_SQLITE=1) -j1
This package does not come with a test suite.
Now, as the root
user:
cd ../dist && install -v -m755 Linux*/lib/*.so /usr/lib && install -v -m644 Linux*/lib/{*.chk,libcrmf.a} /usr/lib && install -v -m755 -d /usr/include/nss && cp -v -RL {public,private}/nss/* /usr/include/nss && chmod -v 644 /usr/include/nss/* && install -v -m755 Linux*/bin/{certutil,nss-config,pk12util} /usr/bin && install -v -m644 Linux*/lib/pkgconfig/nss.pc /usr/lib/pkgconfig
BUILD_OPT=1
: This
option is passed to make so that the build is
performed with no debugging symbols built into the binaries
and the default compiler optimizations are used.
NSPR_INCLUDE_DIR=/usr/include/nspr
:
This option sets the location of the nspr headers.
USE_SYSTEM_ZLIB=1
:
This option is passed to make to ensure that the
libssl3.so
library is linked to
the system installed zlib
instead of the in-tree version.
ZLIB_LIBS=-lz
: This
option provides the linker flags needed to link to the system
zlib.
$([ $(uname -m) = x86_64 ]
&& echo USE_64=1): The USE_64=1
option is required on x86_64, otherwise
make will try
(and fail) to create 32-bit objects. The [ $(uname -m) =
x86_64 ] test ensures it has no effect on a 32 bit system.
([ -f /usr/include/sqlite3.h ]
&& echo NSS_USE_SYSTEM_SQLITE=1):
This tests if sqlite is
installed and if so it echos the option
NSS_USE_SYSTEM_SQLITE=1 to make so that libsoftokn3.so
will link against the system
version of sqlite.
is the Mozilla Certificate Database Tool. It is a command-line utility that can create and modify the Netscape Communicator cert8.db and key3.db database files. It can also list, generate, modify, or delete certificates within the cert8.db file and create or change the password, generate new public and private key pairs, display the contents of the key database, or delete key pairs within the key3.db file. |
|
is used to determine the NSS library settings of the installed NSS libraries. |
|
is a tool for importing certificates and keys from pkcs #12 files into NSS or exporting them. It can also list certificates and keys in such files. |
Last updated on 2014-09-15 22:13:43 -0700
The OpenSSH package contains ssh clients and the sshd daemon. This is useful for encrypting authentication and subsequent traffic over a network. The ssh and scp commands are secure implementions of telnet and rcp respectively.
This package is known to build and work properly using an LFS-7.6 platform.
Download (HTTP): http://ftp.openbsd.org/pub/OpenBSD/OpenSSH/portable/openssh-6.6p1.tar.gz
Download (FTP): ftp://ftp.openbsd.org/pub/OpenBSD/OpenSSH/portable/openssh-6.6p1.tar.gz
Download MD5 sum: 3e9800e6bca1fbac0eea4d41baa7f239
Download size: 1.3 MB
Estimated disk space required: 32 MB (additional 2 MB if running the tests)
Estimated build time: 0.5 SBU (running the tests takes at least 10 minutes, irrespective of processor speed)
Linux-PAM-1.1.8, X Window System, MIT Kerberos V5-1.12.2, libedit, OpenSC, and libsectok
OpenJDK-1.7.0.65/IcedTea-2.5.2, Net-tools-CVS_20101030, and Sysstat-11.1.1
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
Install OpenSSH by running the following commands:
./configure --prefix=/usr \ --sysconfdir=/etc/ssh \ --with-md5-passwords \ --with-privsep-path=/var/lib/sshd && make
The testsuite requires an installed copy of scp to complete the
multiplexing tests. To run the test suite, first copy the
scp program to
/usr/bin
, making sure that you
back up any existing copy first.
To test the results, issue: make tests.
Now, as the root
user:
make install && install -v -m755 contrib/ssh-copy-id /usr/bin && install -v -m644 contrib/ssh-copy-id.1 /usr/share/man/man1 && install -v -m755 -d /usr/share/doc/openssh-6.6p1 && install -v -m644 INSTALL LICENCE OVERVIEW README* /usr/share/doc/openssh-6.6p1
--sysconfdir=/etc/ssh
: This
prevents the configuration files from being installed in
/usr/etc
.
--with-md5-passwords
:
This enables the use of MD5 passwords.
--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.
--with-kerberos5=/usr
: This
option is used to include Kerberos 5 support in the build.
--with-libedit
: This
option enables line editing and history features for
sftp.
~/.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 want to be able to log in without typing in your password, first create ~/.ssh/id_rsa and ~/.ssh/id_rsa.pub with ssh-keygen and then copy ~/.ssh/id_rsa.pub to ~/.ssh/authorized_keys on the remote computer that you want to log into. You'll need to change REMOTE_USERNAME and REMOTE_HOSTNAME for the username and hostname of the remote computer and you'll also need to enter your password for the ssh-copy-id command to succeed:
ssh-keygen && ssh-copy-id -i ~/.ssh/id_rsa.pubREMOTE_USERNAME
@REMOTE_HOSTNAME
Once you've got passwordless logins working it's actually
more secure than logging in with a password (as the private
key is much longer than most people's passwords). If you
would like to now disable password logins, as the
root
user:
echo "PasswordAuthentication no" >> /etc/ssh/sshd_config && echo "ChallengeResponseAuthentication no" >> /etc/ssh/sshd_config
If you added LinuxPAM
support and you want ssh to use it then you will need to
add a configuration file for sshd and enable use of LinuxPAM. Note, ssh only uses PAM to
check passwords, if you've disabled password logins these
commands are not needed. If you want to use PAM 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 && echo "UsePAM yes" >> /etc/ssh/sshd_config
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-20140919
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 the 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 script that enables logins on remote machine using local 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. |
|
is a ssh-agent helper program for PKCS#11 support. |
Last updated on 2014-09-08 23:39:08 -0700
The OpenSSL package contains management tools and libraries relating to cryptography. These are useful for providing cryptography functions to other packages, such as OpenSSH, email applications and web browsers (for accessing HTTPS sites).
This package is known to build and work properly using an LFS-7.6 platform.
Download (HTTP): http://www.openssl.org/source/openssl-1.0.1i.tar.gz
Download (FTP): ftp://ftp.openssl.org/source/openssl-1.0.1i.tar.gz
Download MD5 sum: c8dc151a671b9b92ff3e4c118b174972
Download size: 4.2 MB
Estimated disk space required: 55 MB (additional 1 MB for the tests)
Estimated build time: 1.1 SBU (additional 0.4 SBU for the tests)
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/OpenSSL
Install OpenSSL with the following commands:
patch -Np1 -i ../openssl-1.0.1i-fix_parallel_build-1.patch && ./config --prefix=/usr \ --openssldir=/etc/ssl \ --libdir=lib \ shared \ zlib-dynamic && make
To test the results, issue: make test.
If you want to disable installing the static libraries, use this sed:
sed -i 's# libcrypto.a##;s# libssl.a##' Makefile
Now, as the root
user:
make MANDIR=/usr/share/man MANSUFFIX=ssl install && install -dv -m755 /usr/share/doc/openssl-1.0.1i && cp -vfr doc/* /usr/share/doc/openssl-1.0.1i
shared
: This
parameter forces the creation of shared libraries along with
the static libraries.
zlib-dynamic
: This
parameter adds compression/decompression functionality using
the libz
library.
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.
make MANDIR=/usr/share/man
MANSUFFIX=ssl install: This command installs
OpenSSL with the man pages
in /usr/share/man
instead of
/etc/ssl/man
and appends "ssl"
suffix to the manual page names to avoid conflicts with
manual pages installed by other packages.
Most users will want to install Certificate Authority Certificates for validation of downloaded certificates. For example, these certificates can be used by git-2.1.0, cURL-7.37.1 or Wget-1.15 when accessing secure (https protocol) sites. To do this, follow the instructions from the Certificate Authority Certificates page.
Users who just want to use OpenSSL for providing functions to
other programs such as OpenSSH and web browsers do not need
to worry about additional configuration. This is an
advanced topic and so those who do need it would normally
be expected to either know how to properly update
/etc/ssl/openssl.cnf
or 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 2014-09-08 23:39:08 -0700
The p11-kit package Provides a way to load and enumerate PKCS #11 (a Cryptographic Token Interface Standard) modules.
This package is known to build and work properly using an LFS-7.6 platform.
Download (HTTP): http://p11-glue.freedesktop.org/releases/p11-kit-0.20.6.tar.gz
Download MD5 sum: 2f65624f321c0821b216aaf0ddefa89d
Download size: 964 KB
Estimated disk space required: 70 MB (additional 6 MB for tests)
Estimated build time: 0.4 SBU
Certificate Authority Certificates, libtasn1-4.1, and libffi-3.1
NSS-3.17, GTK-Doc-1.20 and libxslt-1.1.28
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/p11-kit
Install p11-kit by running the following commands:
./configure --prefix=/usr --sysconfdir=/etc && make
To test the results, issue: make check. The test-token test is known to fail.
Now, as the root
user:
make install
--with-hash-impl=freebl
: Use this
switch if you want to use Freebl library from NSS for SHA1 and MD5 hashing.
--enable-doc
: Use this switch if
you have installed GTK-Doc-1.20 and libxslt-1.1.28 and wish
to rebuild the documentation and generate manual pages.
Last updated on 2014-09-16 10:29:57 -0700
Polkit is a toolkit for defining and handling authorizations. It is used for allowing unprivileged processes to communicate with privileged processes.
This package is known to build and work properly using an LFS-7.6 platform.
Download (HTTP): http://www.freedesktop.org/software/polkit/releases/polkit-0.112.tar.gz
Download MD5 sum: b0f2fa00a55f47c6a5d88e9b73f80127
Download size: 1.4 MB
Estimated disk space required: 17 MB
Estimated build time: 0.2 SBU
GLib-2.40.0, and JS-17.0.0
docbook-xml-4.5, docbook-xsl-1.78.1, GTK-Doc-1.20, libxslt-1.1.28 and Linux-PAM-1.1.8
If libxslt-1.1.28 is installed, then
docbook-xml-4.5 and docbook-xsl-1.78.1 are required.
If you have installed libxslt-1.1.28, but you do not
want to install any of the DocBook packages mentioned, you
will need to use --disable-man-pages
in the instructions
below.
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/polkit
There should be a dedicated user and group to take control of
the polkitd
daemon after it is started. Issue the following commands as
the root
user:
groupadd -fg 27 polkitd && useradd -c "PolicyKit Daemon Owner" -d /etc/polkit-1 -u 27 \ -g polkitd -s /bin/false polkitd
Install Polkit by running the following commands:
./configure --prefix=/usr \ --sysconfdir=/etc \ --localstatedir=/var \ --disable-static \ --enable-libsystemd-login=no \ --with-authfw=shadow && make
To test the results, issue: make check. Note that system D-Bus daemon must be running for the testsuite to complete. There is also a warning about ConsoleKit database not present, but that one can be safely ignored.
Now, as the root
user:
make install
--enable-libsystemd-login=no
:
This parameter fixes building without systemd, which is not part of LFS/BLFS.
If you use systemd, replace
"no" by "yes".
--with-authfw=shadow
:
This parameter configures the package to use the Shadow rather than the Linux PAM Authentication framework.
Remove it if you would like to use Linux PAM.
--disable-static
:
This switch prevents installation of static versions of the
libraries.
--enable-gtk-doc
: Use this
parameter if GTK-Doc is
installed and you wish to rebuild and install the API
documentation.
If you did not build Polkit with Linux PAM support, you can skip this section.
If you have built Polkit
with Linux PAM support,
you need to modify the default PAM configuration file which
was installed by default to get Polkit to work correctly with BLFS.
Issue the following commands as the root
user to create the configuration
file for Linux PAM:
cat > /etc/pam.d/polkit-1 << "EOF"
# Begin /etc/pam.d/polkit-1
auth include system-auth
account include system-account
password include system-password
session include system-session
# End /etc/pam.d/polkit-1
EOF
is used to obtain information about registered PolicyKit actions. |
|
is used to check whether a process is authorized for action. |
|
allows an authorized user to execute a command as another user. |
|
is used to start a textual authentication agent for the subject. |
|
provides the org.freedesktop.PolicyKit1 D-Bus service on the system message bus. |
|
contains the Polkit authentication agent API functions. |
|
contains the Polkit authorization API functions. |
Last updated on 2014-09-09 12:00:35 -0700
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.
This package is known to build and work properly using an LFS-7.6 platform.
Download (HTTP): http://pkg-shadow.alioth.debian.org/releases/shadow-4.2.1.tar.xz
Download MD5 sum: 2bfafe7d4962682d31b5eba65dba4fc8
Download size: 1.5 MB
Estimated disk space required: 53 MB
Estimated build time: 0.2 SBU
Linux-PAM-1.1.8 or CrackLib-2.9.1
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/shadow
The installation commands shown below are for installations 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 using the CrackLib
library without using Linux-PAM, ensure you add the
--with-libcrack
parameter to the configure script below
and also issue the following command:
sed -i 's@DICTPATH.*@DICTPATH\t/lib/cracklib/pw_dict@' etc/login.defs
Reinstall Shadow by running the following commands:
sed -i 's/groups$(EXEEXT) //' src/Makefile.in && find man -name Makefile.in -exec sed -i 's/groups\.1 / /' {} \; && sed -i -e 's@#ENCRYPT_METHOD DES@ENCRYPT_METHOD SHA512@' \ -e 's@/var/spool/mail@/var/mail@' etc/login.defs && sed -i 's/1000/999/' etc/useradd && ./configure --sysconfdir=/etc --with-group-name-max-length=32 && make
This package does not come with a test suite.
Now, as the root
user:
make install && mv -v /usr/bin/passwd /bin
sed -i 's/groups$(EXEEXT) //' src/Makefile.in: This sed 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.in -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 's@#ENCRYPT_METHOD
DES@ENCRYPT_METHOD SHA512@' -e 's@/var/spool/mail@/var/mail@'
etc/login.defs: Instead of using the default
'DES' method, this command modifies the installation to use
the more secure 'SHA512' method of hashing passwords, which
also allows passwords longer than eight characters. It also
changes the obsolete /var/spool/mail
location for user mailboxes
that Shadow uses by default
to the /var/mail
location.
sed -i 's/1000/999/' etc/useradd: Make a minor change to make the default useradd consistent with the LFS groups file.
--with-group-name-max-length=32
:
The maximum user name is 32 characters. Make the maximum
group name the same.
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.
Shadow's stock configuration
for the useradd
utility may not be desirable for your installation. One
default parameter causes useradd to create a mailbox
file for any newly created user. useradd will make the group
ownership of this file to the mail
group with 0660 permissions. If you
would prefer that these mailbox files are not created by
useradd, issue
the following command as the root
user:
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-1.1.8 page for further configuration information. For information specific to integrating Shadow, Linux-PAM and CrackLib, you can visit the following link:
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 FAIL_DELAY \ FAILLOG_ENAB \ LASTLOG_ENAB \ MAIL_CHECK_ENAB \ OBSCURE_CHECKS_ENAB \ PORTTIME_CHECKS_ENAB \ QUOTAS_ENAB \ CONSOLE MOTD_FILE \ FTMP_FILE NOLOGINS_FILE \ ENV_HZ PASS_MIN_LEN \ SU_WHEEL_ONLY \ CRACKLIB_DICTPATH \ PASS_CHANGE_TRIES \ PASS_ALWAYS_WARN \ CHFN_AUTH ENCRYPT_METHOD \ ENVIRON_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, replace
the following Linux-PAM
configuration files in the /etc/pam.d/
directory (or add the
contents to the /etc/pam.conf
file) using the following
commands:
cat > /etc/pam.d/system-account << "EOF"
# Begin /etc/pam.d/system-account
account required pam_unix.so
# End /etc/pam.d/system-account
EOF
cat > /etc/pam.d/system-auth << "EOF"
# Begin /etc/pam.d/system-auth
auth required pam_unix.so
# End /etc/pam.d/system-auth
EOF
cat > /etc/pam.d/system-password << "EOF"
# Begin /etc/pam.d/system-password
# check new passwords for strength (man pam_cracklib)
password required pam_cracklib.so type=Linux retry=3 difok=5 \
difignore=23 minlen=9 dcredit=1 \
ucredit=1 lcredit=1 ocredit=1 \
dictpath=/lib/cracklib/pw_dict
# use sha512 hash for encryption, use shadow, and use the
# authentication token (chosen password) set by pam_cracklib
# above (or any previous modules)
password required pam_unix.so sha512 shadow use_authtok
# End /etc/pam.d/system-password
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/system-password << "EOF"
# Begin /etc/pam.d/system-password
# use sha512 hash for encryption, use shadow, and try to use any previously
# defined authentication token (chosen password) set by any prior module
password required pam_unix.so sha512 shadow try_first_pass
# End /etc/pam.d/system-password
EOF
cat > /etc/pam.d/system-session << "EOF"
# Begin /etc/pam.d/system-session
session required pam_unix.so
# End /etc/pam.d/system-session
EOF
cat > /etc/pam.d/login << "EOF"
# Begin /etc/pam.d/login
# Set failure delay before next prompt to 3 seconds
auth optional pam_faildelay.so delay=3000000
# Check to make sure that the user is allowed to login
auth requisite pam_nologin.so
# Check to make sure that root is allowed to login
# Disabled by default. You will need to create /etc/securetty
# file for this module to function. See man 5 securetty.
#auth required pam_securetty.so
# Additional group memberships - disabled by default
#auth optional pam_group.so
# include the default auth settings
auth include system-auth
# check access for the user
account required pam_access.so
# include the default account settings
account include system-account
# Set default environment variables for the user
session required pam_env.so
# Set resource limits for the user
session required pam_limits.so
# Display date of last login - Disabled by default
#session optional pam_lastlog.so
# Display the message of the day - Disabled by default
#session optional pam_motd.so
# Check user's mail - Disabled by default
#session optional pam_mail.so standard quiet
# include the default session and password settings
session include system-session
password include system-password
# End /etc/pam.d/login
EOF
cat > /etc/pam.d/passwd << "EOF"
# Begin /etc/pam.d/passwd
password include system-password
# End /etc/pam.d/passwd
EOF
cat > /etc/pam.d/su << "EOF"
# Begin /etc/pam.d/su
# always allow root
auth sufficient pam_rootok.so
auth include system-auth
# include the default account settings
account include system-account
# Set default environment variables for the service user
session required pam_env.so
# include system session defaults
session include system-session
# End /etc/pam.d/su
EOF
cat > /etc/pam.d/chage << "EOF"
#Begin /etc/pam.d/chage
# always allow root
auth sufficient pam_rootok.so
# include system defaults for auth account and session
auth include system-auth
account include system-account
session include system-session
# Always permit for authentication updates
password required pam_permit.so
# End /etc/pam.d/chage
EOF
for PROGRAM in chfn chgpasswd chpasswd chsh 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_warn.so
auth required pam_deny.so
account required pam_warn.so
account required pam_deny.so
password required pam_warn.so
password required pam_deny.so
session required pam_warn.so
session required pam_deny.so
# End /etc/pam.d/other
EOF
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:
[ -f /etc/login.access ] && mv -v /etc/login.access{,.NOUSE}
A list of the installed files, along with their short descriptions can be found at http://www.linuxfromscratch.org/lfs/view/7.6/chapter06/shadow.html#contents-shadow.
Last updated on 2014-09-10 06:19:10 -0700
The ssh-askpass is a generic executable name for many packages, with similar names, that provide a interactive X service to grab password for packages requiring administrative privileges to be run. It prompts the user with a window box where the necessary password can be inserted. Here, we choose Damien Miller's package distributed in the OpenSSH tarball.
This package is known to build and work properly using an LFS-7.6 platform.
Download (HTTP): http://ftp.openbsd.org/pub/OpenBSD/OpenSSH/portable/openssh-6.6p1.tar.gz
Download (FTP): ftp://ftp.openbsd.org/pub/OpenBSD/OpenSSH/portable/openssh-6.6p1.tar.gz
Download MD5 sum: 3e9800e6bca1fbac0eea4d41baa7f239
Download size: 1.3 MB
Estimated disk space required: 6.4 MB
Estimated build time: Less than 0.1 SBU
GTK+-2.24.24, Sudo-1.8.10p3 (runtime), Xorg Libraries, and X Window System (runtime)
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/ssh-askpass
Install ssh-askpass by running the following commands:
cd contrib && make gnome-ssh-askpass2
Now, as the root
user:
install -v -d -m755 /usr/libexec/openssh/contrib && install -v -m755 gnome-ssh-askpass2 /usr/libexec/openssh/contrib && ln -sv -f contrib/gnome-ssh-askpass2 /usr/libexec/openssh/ssh-askpass
The use of /usr/libexec/openssh/contrib and a symlink is justified by the eventual necessity of a different program for that service.
As the root
user, configure
Sudo-1.8.10p3 to use ssh-askpass:
cat >> /etc/sudo.conf << "EOF" &&
# Path to askpass helper program
Path askpass /usr/libexec/openssh/ssh-askpass
EOF
chmod -v 0644 /etc/sudo.conf
If a given graphical <application> requires administrative privileges, use sudo -A <application> from an x-terminal, from a Window Manager menu and/or replace "Exec=<application> ..." by "Exec=sudo -A <application> ..." in the <application>.desktop file.
Last updated on 2014-09-19 13:27:36 -0700
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.
This package is known to build and work properly using an LFS-7.6 platform.
Download (HTTP): http://mirrors.zerg.biz/stunnel/stunnel-5.03.tar.gz
Download (FTP): ftp://ftp.stunnel.org/stunnel/stunnel-5.03.tar.gz
Download MD5 sum: ee43ef72038e0437400f712837cefee4
Download size: 580 KB
Estimated disk space required: 5.7 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. Further
below, after make ...
install, we include instructions to
generate them. However, 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). The
.pem
file must be formatted
as shown below:
-----BEGIN PRIVATE KEY-----
<many encrypted lines of private key>
-----END PRIVATE KEY-----
-----BEGIN CERTIFICATE-----
<many encrypted lines of certificate>
-----END CERTIFICATE-----
-----BEGIN DH PARAMETERS-----
<encrypted lines of dh parms>
-----END DH PARAMETERS-----
Install stunnel by running the following commands:
./configure --prefix=/usr \ --sysconfdir=/etc \ --localstatedir=/var && make
This package does not come with a test suite.
Now, as the root
user:
make docdir=/usr/share/doc/stunnel-5.03 install
To create the stunnel.pem
in
the /etc/stunnel
directory, you
need to create one. The following command prompts you for the
necessary information. 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).
To generate a certificate, as the root
user, run:
make cert
make docdir=... install: This command installs the package, changes the documentation installation directory to standard naming conventions.
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 && chown stunnel:stunnel /var/lib/stunnel
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
; Note: The pid and output locations are relative to the chroot location.
pid = /run/stunnel.pid
chroot = /var/lib/stunnel
client = no
setuid = stunnel
setgid = stunnel
cert = /etc/stunnel/stunnel.pem
;debug = 7
;output = stunnel.log
;[https]
;accept = 443
;connect = 80
;; "TIMEOUTclose = 0" is a workaround for a design flaw in Microsoft SSL
;; Microsoft implementations do not use SSL close-notify alert and thus
;; they are vulnerable to truncation attacks
;TIMEOUTclose = 0
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 automatically start the stunnel daemon when the
system is rebooted, install the /etc/rc.d/init.d/stunnel
bootscript from
the blfs-bootscripts-20140919 package.
make install-stunnel
Last updated on 2014-09-19 13:27:36 -0700
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.
This package is known to build and work properly using an LFS-7.6 platform.
Download (HTTP): http://www.sudo.ws/sudo/dist/sudo-1.8.10p3.tar.gz
Download (FTP): ftp://ftp.sudo.ws/pub/sudo/sudo-1.8.10p3.tar.gz
Download MD5 sum: fcd8d0d9f9f0397d076ee901e242ed39
Download size: 2.2 MB
Estimated disk space required: 32 MB (additional 1 MB for tests)
Estimated build time: 0.6 SBU
AFS, FWTK, Linux-PAM-1.1.8, MIT Kerberos V5-1.12.2, an MTA (that provides a sendmail command), OpenLDAP-2.4.39, Opie and SecurID
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/sudo
Install Sudo by running the following commands:
./configure --prefix=/usr \ --libexecdir=/usr/lib \ --with-all-insults \ --with-env-editor \ --docdir=/usr/share/doc/sudo-1.8.10p3 \ --with-passprompt="[sudo] password for %p" && make
To test the results, issue: env LC_ALL=C make check.
Now, as the root
user:
make install
--libexecdir=/usr/lib
: This
switch controls where private programs are installed.
Everything in that directory is a library, so they belong
under /usr/lib
instead of
/usr/libexec
.
--with-all-insults
:
This switch includes all the sudo insult sets.
--with-env-editor
:
This switch enables use of the environment variable EDITOR
for visudo.
--with-passprompt
:
This switch sets the prompt.
--without-pam
: Avoids to build
PAM support when
PAM is installed on the
system.
--disable-static
:
This switch prevents installation of static versions of the
libraries.
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 PAM is installed on the
system, Sudo is built with
PAM support. In that case,
issue the following command as the root
user to create the PAM configuration file:
cat > /etc/pam.d/sudo << "EOF"
# Begin /etc/pam.d/sudo
# include the default auth settings
auth include system-auth
# include the default account settings
account include system-account
# Set default environment variables for the service user
session required pam_env.so
# include system session defaults
session include system-session
# End /etc/pam.d/sudo
EOF
chmod 644 /etc/pam.d/sudo
Last updated on 2014-09-08 23:39:08 -0700
The Tripwire package contains programs used to verify the integrity of the files on a given system.
This package is known to build and work properly using an LFS-7.6 platform.
Download (HTTP): http://downloads.sourceforge.net/tripwire/tripwire-2.4.2.2-src.tar.bz2
Download MD5 sum: 2462ea16fb0b5ae810471011ad2f2dd6
Download size: 704 KB
Estimated disk space required: 31 MB
Estimated build time: 1.3 SBU (includes interactive time during install)
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 && sed -i -e 's/!Equal/!this->Equal/' src/cryptlib/algebra.h && sed -i -e '/stdtwadmin.h/i#include <unistd.h>' src/twadmin/twadmincl.cpp && sed -i -e '/TWMAN/ s|${prefix}|/usr/share|' \ -e '/TWDOCS/s|${prefix}|/usr/share|' install/install.cfg && sed -i -e 's/eArchiveOpen e\([^)]*)\)/throw ( eArchiveOpen\1 )/' \ -e '/throw e;/d' src/core/archive.cpp && ./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/share/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
.
sed ... src/cryptlib/algebra.h: Fix a compilation issue with gcc-4.7.
sed ... src/twadmin/twadmincl.cpp: Fix a compilation issue with gcc-4.7.
sed ... install/install.cfg: Fix the location of the man and doc directories.
sed ... src/core/archive.cpp: Fix compilation with gcc-4.9.
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/
.
During make install, several questions are asked, including passwords. If you want to make a script, you have to apply a sed before running make install:
sed -i -e
's@install/install.sh@& -n -s<site-password>
-l<local-password>
@'
Makefile
Of course, you should do this with dummy passwords and change them later.
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/share/doc/tripwire/
.
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/share/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
) user:
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.
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 2014-09-19 13:27:36 -0700
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 other journaling file systems you can use instead of the default LFS extended file system (ext2/3/4). It also provides introductory material on managing disk arrays.
The only purpose of an initramfs is to mount the root filesystem. The initramfs is a complete set of directories that you would find on a normal root filesystem. It is bundled into a single cpio archive and compressed with one of several compression algorithms.
At boot time, the boot loader loads the kernel and the initramfs image into memory and starts the kernel. The kernel checks for the presence of the initramfs and, if found, mounts it as / and runs /init. The init program is typically a shell script. Note that the boot process takes longer, possibly significantly longer, if an initramfs is used.
For most distributions, kernel modules are the biggest reason to have an initramfs. In a general distribution, there are many unknowns such as file system types and disk layouts. In a way, this is the opposite of LFS where the system capabilities and layout are known and a custom kernel is normally built. In this situation, an initramfs is rarely needed.
There are only four primary reasons to have an initramfs in the LFS environment: loading the rootfs from a network, loading it from an LVM logical volume, having an encrypted rootfs where a password is required, or for the convenience of specifying the rootfs as a LABEL or UUID. Anything else usually means that the kernel was not configured properly.
If you do decide to build an initramfs, the following scripts will provide a basis to do it. The scripts will allow specifying a rootfs via partition UUID or partition LABEL or a rootfs on an LVM logical volume. They do not support an encrypted root file system or mounting the rootfs over a network card. For a more complete capability see the LFS Hints or dracut.
To install these scripts, run the following commands as the
root
user:
cat > /sbin/mkinitramfs << "EOF"
#!/bin/bash
# This file based in part on the mkinitrafms script for the LFS LiveCD
# written by Alexander E. Patrakov and Jeremy Huntwork.
copy()
{
local file
if [ "$2" == "lib" ]; then
file=$(PATH=/lib:/usr/lib type -p $1)
else
file=$(type -p $1)
fi
if [ -n $file ] ; then
cp $file $WDIR/$2
else
echo "Missing required file: $1 for directory $2"
rm -rf $WDIR
exit 1
fi
}
if [ -z $1 ] ; then
INITRAMFS_FILE=initrd.img-no-kmods
else
KERNEL_VERSION=$1
INITRAMFS_FILE=initrd.img-$KERNEL_VERSION
fi
if [ -n "$KERNEL_VERSION" ] && [ ! -d "/lib/modules/$1" ] ; then
echo "No modules directory named $1"
exit 1
fi
printf "Creating $INITRAMFS_FILE... "
binfiles="sh cat cp dd killall ls mkdir mknod mount "
binfiles="$binfiles umount sed sleep ln rm uname"
# Systemd installs udevadm in /bin. Other udev implementations have it in /sbin
if [ -x /bin/udevadm ] ; then binfiles="$binfiles udevadm"; fi
sbinfiles="modprobe blkid switch_root"
#Optional files and locations
for f in mdadm udevd udevadm; do
if [ -x /sbin/$f ] ; then sbinfiles="$sbinfiles $f"; fi
done
unsorted=$(mktemp /tmp/unsorted.XXXXXXXXXX)
DATADIR=/usr/share/mkinitramfs
INITIN=init.in
# Create a temporrary working directory
WDIR=$(mktemp -d /tmp/initrd-work.XXXXXXXXXX)
# Create base directory structure
mkdir -p $WDIR/{bin,dev,lib/firmware,run,sbin,sys,proc}
mkdir -p $WDIR/etc/{modprobe.d,udev/rules.d}
touch $WDIR/etc/modprobe.d/modprobe.conf
ln -s lib $WDIR/lib64
# Create necessary device nodes
mknod -m 640 $WDIR/dev/console c 5 1
mknod -m 664 $WDIR/dev/null c 1 3
# Install the udev configuration files
if [ -f /etc/udev/udev.conf ]; then
cp /etc/udev/udev.conf $WDIR/etc/udev/udev.conf
fi
for file in $(find /etc/udev/rules.d/ -type f) ; do
cp $file $WDIR/etc/udev/rules.d
done
# Install any firmware present
cp -a /lib/firmware $WDIR/lib
# Copy the RAID configuration file if present
if [ -f /etc/mdadm.conf ] ; then
cp /etc/mdadm.conf $WDIR/etc
fi
# Install the init file
install -m0755 $DATADIR/$INITIN $WDIR/init
if [ -n "$KERNEL_VERSION" ] ; then
if [ -x /bin/kmod ] ; then
binfiles="$binfiles kmod"
else
binfiles="$binfiles lsmod"
sbinfiles="$sbinfiles insmod"
fi
fi
# Install basic binaries
for f in $binfiles ; do
ldd /bin/$f | sed "s/\t//" | cut -d " " -f1 >> $unsorted
copy $f bin
done
# Add lvm if present
if [ -x /sbin/lvm ] ; then sbinfiles="$sbinfiles lvm dmsetup"; fi
for f in $sbinfiles ; do
ldd /sbin/$f | sed "s/\t//" | cut -d " " -f1 >> $unsorted
copy $f sbin
done
# Add udevd libraries if not in /sbin
if [ -x /lib/udev/udevd ] ; then
ldd /lib/udev/udevd | sed "s/\t//" | cut -d " " -f1 >> $unsorted
elif [ -x /lib/systemd/systemd-udevd ] ; then
ldd /lib/systemd/systemd-udevd | sed "s/\t//" | cut -d " " -f1 >> $unsorted
fi
# Add module symlinks if appropriate
if [ -n "$KERNEL_VERSION" ] && [ -x /bin/kmod ] ; then
ln -s kmod $WDIR/bin/lsmod
ln -s kmod $WDIR/bin/insmod
fi
# Add lvm symlinks if appropriate
# Also copy the lvm.conf file
if [ -x /sbin/lvm ] ; then
ln -s lvm $WDIR/sbin/lvchange
ln -s lvm $WDIR/sbin/lvrename
ln -s lvm $WDIR/sbin/lvextend
ln -s lvm $WDIR/sbin/lvcreate
ln -s lvm $WDIR/sbin/lvdisplay
ln -s lvm $WDIR/sbin/lvscan
ln -s lvm $WDIR/sbin/pvchange
ln -s lvm $WDIR/sbin/pvck
ln -s lvm $WDIR/sbin/pvcreate
ln -s lvm $WDIR/sbin/pvdisplay
ln -s lvm $WDIR/sbin/pvscan
ln -s lvm $WDIR/sbin/vgchange
ln -s lvm $WDIR/sbin/vgcreate
ln -s lvm $WDIR/sbin/vgscan
ln -s lvm $WDIR/sbin/vgrename
ln -s lvm $WDIR/sbin/vgck
# Conf file(s)
cp -a /etc/lvm $WDIR/etc
fi
# Install libraries
sort $unsorted | uniq | while read library ; do
if [ "$library" == "linux-vdso.so.1" ] ||
[ "$library" == "linux-gate.so.1" ]; then
continue
fi
copy $library lib
done
if [ -d /lib/udev ]; then
cp -a /lib/udev $WDIR/lib
fi
if [ -d /lib/systemd ]; then
cp -a /lib/systemd $WDIR/lib
fi
# Install the kernel modules if requested
if [ -n "$KERNEL_VERSION" ]; then
find \
/lib/modules/$KERNEL_VERSION/kernel/{crypto,fs,lib} \
/lib/modules/$KERNEL_VERSION/kernel/drivers/{block,ata,md,firewire} \
/lib/modules/$KERNEL_VERSION/kernel/drivers/{scsi,message,pcmcia,virtio} \
/lib/modules/$KERNEL_VERSION/kernel/drivers/usb/{host,storage} \
-type f 2> /dev/null | cpio --make-directories -p --quiet $WDIR
cp /lib/modules/$KERNEL_VERSION/modules.{builtin,order} \
$WDIR/lib/modules/$KERNEL_VERSION
depmod -b $WDIR $KERNEL_VERSION
fi
( cd $WDIR ; find . | cpio -o -H newc --quiet | gzip -9 ) > $INITRAMFS_FILE
# Remove the temporary directory and file
rm -rf $WDIR $unsorted
printf "done.\n"
EOF
chmod 0755 /sbin/mkinitramfs
mkdir -p /usr/share/mkinitramfs && cat > /usr/share/mkinitramfs/init.in << "EOF" #!/bin/sh PATH=/bin:/usr/bin:/sbin:/usr/sbin export PATH problem() { printf "Encountered a problem!\n\nDropping you to a shell.\n\n" sh } no_device() { printf "The device %s, which is supposed to contain the\n" $1 printf "root file system, does not exist.\n" printf "Please fix this problem and exit this shell.\n\n" } no_mount() { printf "Could not mount device %s\n" $1 printf "Sleeping forever. Please reboot and fix the kernel command line.\n\n" printf "Maybe the device is formatted with an unsupported file system?\n\n" printf "Or maybe filesystem type autodetection went wrong, in which case\n" printf "you should add the rootfstype=... parameter to the kernel command line.\n\n" printf "Available partitions:\n" } do_mount_root() { mkdir /.root [ -n "$rootflags" ] && rootflags="$rootflags," rootflags="$rootflags$ro" case "$root" in /dev/* ) device=$root ;; UUID=* ) eval $root; device="/dev/disk/by-uuid/$UUID" ;; LABEL=*) eval $root; device="/dev/disk/by-label/$LABEL" ;; "" ) echo "No root device specified." ; problem ;; esac while [ ! -b "$device" ] ; do no_device $device problem done if ! mount -n -t "$rootfstype" -o "$rootflags" "$device" /.root ; then no_mount $device cat /proc/partitions while true ; do sleep 10000 ; done else echo "Successfully mounted device $root" fi } init=/sbin/init root= rootdelay= rootfstype=auto ro="ro" rootflags= device= mount -n -t devtmpfs devtmpfs /dev mount -n -t proc proc /proc mount -n -t sysfs sysfs /sys mount -n -t tmpfs tmpfs /run read -r cmdline < /proc/cmdline for param in $cmdline ; do case $param in init=* ) init=${param#init=} ;; root=* ) root=${param#root=} ;; rootdelay=* ) rootdelay=${param#rootdelay=} ;; rootfstype=*) rootfstype=${param#rootfstype=} ;; rootflags=* ) rootflags=${param#rootflags=} ;; ro ) ro="ro" ;; rw ) ro="rw" ;; esac done # udevd location depends on version if [ -x /sbin/udevd ]; then UDEVD=/sbin/udevd elif [ -x /lib/udev/udevd ]; then UDEVD=/lib/udev/udevd elif [ -x /lib/systemd/systemd-udevd ]; then UDEVD=/lib/systemd/systemd-udevd else echo "Cannot find udevd nor systemd-udevd" problem fi ${UDEVD} --daemon --resolve-names=never udevadm trigger udevadm settle if [ -f /etc/mdadm.conf ] ; then mdadm -As ; fi if [ -x /sbin/vgchange ] ; then /sbin/vgchange -a y > /dev/null ; fi if [ -n "$rootdelay" ] ; then sleep "$rootdelay" ; fi do_mount_root killall -w ${UDEVD##*/} exec switch_root /.root "$init" "$@" EOF
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/initramfs
To build an initramfs, run the following as the root
user:
mkinitramfs [KERNEL VERSION]
The optional argument is the directory where the appropriate
kernel modules are located. This must be a subdirectory of
/lib/modules
. If no modules are
specified, then the initramfs is named initrd.img-no-kmods. If a kernel
version is specified, the initrd is named initrd.img-$KERNEL_VERSION and is
only appropriate for the specific kernel specified. The
output file will be placed in the current directory.
After generating the initrd, copy it to the /boot
directory.
Now edit /boot/grub/grub.cfg
and add a new menuentry. Below are several examples.
# Generic initramfs and root fs identified by UUID menuentry "LFS Dev (LFS-7.0-Feb14) initrd, Linux 3.0.4" { linux /vmlinuz-3.0.4-lfs-20120214 root=UUID=54b934a9-302d-415e-ac11-4988408eb0a8 ro initrd /initrd.img-no-kmods }
# Generic initramfs and root fs on LVM partition menuentry "LFS Dev (LFS-7.0-Feb18) initrd lvm, Linux 3.0.4" { linux /vmlinuz-3.0.4-lfs-20120218 root=/dev/mapper/myroot ro initrd /initrd.img-no-kmods }
# Specific initramfs and root fs identified by LABEL menuentry "LFS Dev (LFS-7.1-Feb20) initrd label, Linux 3.2.6" { linux /vmlinuz-3.2.6-lfs71-120220 root=LABEL=lfs71 ro initrd /initrd.img-3.2.6-lfs71-120220 }
Finally, reboot the system and select the desired system.
Last updated on 2014-06-09 07:57:13 -0700
FUSE (Filesystem in Userspace) is a simple interface for userspace programs to export a virtual filesystem to the Linux kernel. Fuse also aims to provide a secure method for non privileged users to create and mount their own filesystem implementations.
This package is known to build and work properly using an LFS-7.6 platform.
Download (HTTP): http://downloads.sourceforge.net/fuse/fuse-2.9.3.tar.gz
Download MD5 sum: 33cae22ca50311446400daf8a6255c6a
Download size: 564 KB
Estimated disk space required: 9.5 MB
Estimated build time: 0.1 SBU
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/fuse
Enable the following options in the kernel configuration and recompile the kernel if necessary:
File systems --->
[*] FUSE (Filesystem in Userspace) support
After the configure script has finished you will see a warning shown below. You can safely disregard this warning.
configure: WARNING:
******************************************************************
* Please install util-linux version 2.18 or later which supports *
* --fake and --no-canonicalize options in mount and umount *
******************************************************************
Install Fuse by running the following commands:
./configure --prefix=/usr --disable-static INIT_D_PATH=/tmp/init.d && make
If you have Doxygen-1.8.8 installed and wish to build the API documentation, issue doxygen doc/Doxyfile.
This package does not come with a test suite.
Now, as the root
user:
make install && mv -v /usr/lib/libfuse.so.* /lib && ln -sfv ../../lib/libfuse.so.2.9.3 /usr/lib/libfuse.so && rm -rf /tmp/init.d && install -v -m755 -d /usr/share/doc/fuse-2.9.3 && install -v -m644 doc/{how-fuse-works,kernel.txt} \ /usr/share/doc/fuse-2.9.3
If you built the API documentation, install it as the
root
user by issuing the
following commands:
install -v -m755 -d /usr/share/doc/fuse-2.9.3/api && install -v -m644 doc/html/* \ /usr/share/doc/fuse-2.9.3/api
--disable-static
:
This switch prevents installation of static versions of the
libraries.
INIT_D_PATH=/tmp/init.d
: This
parameter installs the bootscript into /tmp/init.d
as a bootscript is not
required.
mv -v /usr/lib/libfuse.so.*
/lib: This moves the FUSE library to the root filesystem so
that it is available early in the boot process in case
/usr
is mounted on a separate
partition and ntfs-3g-2014.2.15 is built with a
system-installed version of FUSE.
rm -rf /tmp/init.d: This removes the unneeded bootscript.
Some options regarding mount policy can be set in the file
/etc/fuse.conf
. To install
the file run the following command as the root
user:
cat > /etc/fuse.conf << "EOF" # Set the maximum number of FUSE mounts allowed to non-root users. # The default is 1000. # #mount_max = 1000 # Allow non-root users to specify the 'allow_other' or 'allow_root' # mount options. # #user_allow_other EOF
Additional information about the meaning of the configuration options are found in the man page.
Last updated on 2014-09-14 12:09:32 -0700
The jfsutils package contains administration and debugging tools for the jfs file system.
This package is known to build and work properly using an LFS-7.6 platform.
Download (HTTP): http://jfs.sourceforge.net/project/pub/jfsutils-1.1.15.tar.gz
Download MD5 sum: 8809465cd48a202895bc2a12e1923b5d
Download size: 532 KB
Estimated disk space required: 8.9 MB
Estimated build time: 0.1 SBU
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/jfs
Enable the following option in the kernel configuration and recompile the kernel:
File Systems:
JFS filesystem support: M or Y
Install jfsutils by running the following commands:
sed "s@<unistd.h>@&\n#include <sys/types.h>@g" -i fscklog/extract.c && ./configure && make
This package does not come with a test suite.
Now, as the root
user:
make install
sed "s@<unistd.h>@&\n#include <sys/types.h>@g" -i fscklog/extract.c: Fixes building with Glibc 2.17.
is used to replay the JFS transaction log, check a JFS formatted device for errors, and fix any errors found. |
|
is a hard link to fsck.jfs. |
|
constructs an JFS file system. |
|
is a hard link to mkfs.jfs. |
|
is a program which can be used to perform various low-level actions on a JFS formatted device. |
|
extracts a JFS fsck service log into a file and/or formats and displays the extracted file. |
|
dumps the contents of the journal log from the specified JFS formatted device into output file ./jfslog.dmp. |
|
adjusts tunable file system parameters on JFS file systems. |
Last updated on 2014-09-19 13:27:36 -0700
The LVM2 package is a package that manages logical partitions. It allows spanning of file systems across multiple physical disks and disk partitions and provides for dynamic growing or shrinking of logical partitions.
This package is known to build and work properly using an LFS-7.6 platform.
Download (FTP): ftp://sources.redhat.com/pub/lvm2/LVM2.2.02.111.tgz
Download MD5 sum: 02487ab2a9e02d1ee76fe217183df28a
Download size: 1.5 MB
Estimated disk space required: 27 MB (additional 8 MB to run the test suite)
Estimated build time: 0.4 SBU (additional 5.4 SBU to run the test suite)
mdadm-3.3.2 (for checks) and xfsprogs-3.2.1 (for checks)
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/lvm2
Enable the following option in the kernel configuration and recompile the kernel:
There are several other Device Mapper options in the kernel beyond those listed below. In order to get reasonable results if running the regression tests, all must be enabled either internally or as a module.
Device Drivers --->
Multiple devices driver support (RAID and LVM): Y
Device mapper support: Y or M
Crypt target support: (optional)
Snapshot target: (optional)
Mirror target: (optional)
Install LVM2 by running the following commands:
./configure --prefix=/usr \ --exec-prefix= \ --with-confdir=/etc \ --enable-applib \ --enable-cmdlib \ --enable-pkgconfig \ --enable-udev_sync && make
The check command must be run as the root
user. Also the tests are known to
hang if at least one partition on a hard drive is not set up
as a Linux LVM partition (type 8e00). To test the results,
issue: make
check as the root
user.
Now, as the root
user:
make install
--enable-applib
: This
switch enables building of the shared application library.
--enable-cmdlib
: This
switch enables building of the shared command library. It is
required when building the event daemon.
--enable-pkgconfig
:
This switch enables installation of pkg-config support files.
--enable-udev_sync
:
This switch enables synchronisation with Udev processing.
--enable-dmeventd
: This switch
enables building of the Device
Mapper event daemon.
utility to deactivate block device. |
|
(optional) is the Device Mapper event daemon. |
|
is a low level logical volume management tool. |
|
is an utility used to resize or check filesystem on a device. |
|
provides the command-line tools for LVM2. Commands are implemented via sympolic links to this program to manage physical devices (pv*), volume groups (vg*) and logical volumes (lv*). |
|
is a script that modifies the locking configuration in the LVM2 configuration file. |
|
is a tool used to dump various information concerning LVM2. |
|
is used to import a duplicated VG (e.g. hardware snapshot). |
|
contains the Device Mapper API functions. |
Last updated on 2014-09-10 06:19:10 -0700
LVM manages disk drives. It allows multiple drives and partitions to be combined into larger volume groups, assists in making backups through a snapshot, and allows for dynamic volume resizing. It can also provide mirroring similar to a RAID 1 array.
A complete discussion of LVM is beyond the scope of this introduction, but basic concepts are presented below.
To run any of the commands presented here, the LVM2-2.02.111 package
must be installed. All commands must be run as the root
user.
Management of disks with lvm is accomplished using the following concepts:
These are physical disks or partitions such as /dev/sda3 or /dev/sdb.
These are named groups of physical volumes that can be manipulated by the administrator. The number of physical volumes that make up a volume group is arbitrary. Physical volumes can be dynamically added or removed from a volume group.
Volume groups may be subdivided into logical volumes. Each logical volume can then be individually formatted as if it were a regular Linux partition. Logical volumes may be dynamically resized by the administrator according to need.
To give a concrete example, suppose that you have two 2 TB
disks. Also suppose a really large amount of space is required
for a very large database, mounted on /srv/mysql
. This is what the initial set of
partitions would look like:
Partition Use Size Partition Type
/dev/sda1 /boot 100MB 83 (Linux)
/dev/sda2 / 10GB 83 (Linux)
/dev/sda3 swap 2GB 82 (Swap)
/dev/sda4 LVM remainder 8e (LVM)
/dev/sdb1 swap 2GB 82 (Swap)
/dev/sdb2 LVM remainder 8e (LVM)
First initialize the physical volumes:
pvcreate /dev/sda4 /dev/sdb2
Next create a volume group named lfs-lvm:
vgcreate lfs-lvm /dev/sda4 /dev/sdb2
The status of the volume group can be checked by running the command vgscan. Now create the logical volumes. Since there is about 3900 GB available, leave about 900 GB free for expansion. Note that the logical volume named mysql is larger than any physical disk.
lvcreate --name mysql --size 2500G lfs-lvm lvcreate --name home --size 500G lfs-lvm
Finally the logical volumes can be formatted and mounted. In this example, the jfs file system (jfsutils-1.1.15) is used for demonstration purposes.
mkfs -t ext4 /dev/lfs-lvm/home mkfs -t jfs /dev/lfs-lvm/mysql mount /dev/lfs-lvm/home /home mkdir -p /srv/mysql mount /dev/lfs-lvm/mysql /srv/mysql
The LFS boot scripts automatically make these file systems
available to the system in the checkfs script. Edit the
/etc/fstab
file as required to
automatically mount them.
A LVM logical volume can host a root filesystem, but requires the use of an initramfs (initial RAM file system) and is not discussed here.
For a more information about LVM, see the LVM HOWTO and the lvm man pages.
Last updated on 2013-02-11 10:51:17 -0800
The storage technology known as RAID (Redundant Array of Independent Disks) combines multiple physical disks into a logical unit. The drives can generally be combined to provide data redundancy or to extend the size of logical units beyond the capability of the physical disks or both. The technology also allows for providing hardware maintenance without powering down the system.
The types of RAID organization are described in the RAID Wiki.
Note that while RAID provides protection against disk failures, it is not a substitute for backups. A file deleted is still deleted on all the disks of a RAID array. Modern backups are generally done via rsync-3.1.1.
There are three major types of RAID implementation: Hardware RAID, BIOS-based RAID, and Software RAID.
Hardware based RAID provides capability through proprietary hardware and data layouts. The control and configuration is generally done via firmware in conjunction with executable programs made available by the device manufacturer. The capabilities are generally supplied via a PCI card, although there are some instances of RAID components integrated in to the motherboard. Hardware RAID may also be available in a stand-alone enclosure.
One advantage of hardware-based RAID is that the drives are offered to the operating system as a logical drive and no operating system dependent configuration is needed.
Disadvantages include difficulties in transferring drives from one system to another, updating firmware, or replacing failed RAID hardware.
Some computers offter a hardware-like RAID implementation in the system BIOS. Sometime this is referred to as 'fake' RAID as the capabilites are generally incorporated into firmware without any hardware acceleration.
The advantages and disadvantages of BIOS-based RAID are generally the same as hardware RAID with the additional disadvantage that there is no hardware acceleration.
In some cases, BIOS-based RAID firmware is enabled by default (e.g. some DELL systems). If software RAID is desired, this option must be explicitly disabled in the BIOS.
Software based RAID is the most flexible form of RAID. It is easy to install and update and provides full capability on all or part of any drives available to the system. In BLFS, the RAID software is found in mdadm-3.3.2.
Configuring a RAID device is straight forward using
mdadm. Generally devices are
created in the /dev
directory
as /dev/mdx
where x is an integer.
The first step in creating a RAID array is to use
partitioning software such as fdisk
or parted-3.2 to define
the partitions needed for the array. Usually, there will be
one partition on each drive participating in the RAID array,
but that is not strictly necessary. For this example, there
will be four disk drives: /dev/sda
, /dev/sdb
, /dev/sdc
, and /dev/sdd
. They will be partitioned as
follows:
Partition Size Type Use
sda1: 100 MB fd Linux raid auto /boot (RAID 1) /dev/md0
sda2: 10 GB fd Linux raid auto / (RAID 1) /dev/md1
sda3: 2 GB 83 Linux swap swap
sda4 300 GB fd Linux raid auto /home (RAID 5) /dev/md2
sdb1: 100 MB fd Linux raid auto /boot (RAID 1) /dev/md0
sdb2: 10 GB fd Linux raid auto / (RAID 1) /dev/md1
sdb3: 2 GB 83 Linux swap swap
sdb4 300 GB fd Linux raid auto /home (RAID 5) /dev/md2
sdc1: 12 GB fd Linux raid auto /usr/src (RAID 0) /dev/md3
sdc2: 300 GB fd Linux raid auto /home (RAID 5) /dev/md2
sdd1: 12 GB fd Linux raid auto /usr/src (RAID 0) /dev/md3
sdd2: 300 GB fd Linux raid auto /home (RAID 5) /dev/md2
Is this arrangement, a separate boot partition is created as
the first small RAID array and a root filesystem as the
secong RAID array, both mirrored. The third partition is a
large (about 1TB) array for the /home
directory. This provides an ability
to stripe data across multiple devices, improving speed for
botih reading and writing large files. Finally, a fourth
array is created that concatenates two partitions into a
larger device.
All mdadm commands must be
run as the root
user.
To create these RAID arrays the commands are:
/sbin/mdadm -Cv /dev/md0 --level=1 --raid-devices=2 /dev/sda1 /dev/sdb1 /sbin/mdadm -Cv /dev/md1 --level=1 --raid-devices=2 /dev/sda2 /dev/sdb2 /sbin/mdadm -Cv /dev/md3 --level=0 --raid-devices=2 /dev/sdc1 /dev/sdd1 /sbin/mdadm -Cv /dev/md2 --level=5 --raid-devices=4 \ /dev/sda4 /dev/sdb4 /dev/sdc2 /dev/sdd2
The devices created can be examined by device. For example,
to see the details of /dev/md1
,
use /sbin/mdadm --detail
/dev/md1
:
Version : 1.2
Creation Time : Tue Feb 7 17:08:45 2012
Raid Level : raid1
Array Size : 10484664 (10.00 GiB 10.74 GB)
Used Dev Size : 10484664 (10.00 GiB 10.74 GB)
Raid Devices : 2
Total Devices : 2
Persistence : Superblock is persistent
Update Time : Tue Feb 7 23:11:53 2012
State : clean
Active Devices : 2
Working Devices : 2
Failed Devices : 0
Spare Devices : 0
Name : core2-blfs:0 (local to host core2-blfs)
UUID : fcb944a4:9054aeb2:d987d8fe:a89121f8
Events : 17
Number Major Minor RaidDevice State
0 8 1 0 active sync /dev/sda1
1 8 17 1 active sync /dev/sdb1
From this point, the partitions can be formated with the
filesystem of choice (e.g. ext3, ext4, xfsprogs-3.2.1,
reiserfsprogs-3.6.24, etc). The
formatted partitions can then be mounted. The /etc/fstab
ifile can use the devices
created for mounting at boot time and the linux command line
in /boot/grub/grub.cfg
can
specify root=/dev/md1
.
The swap devices should be specified in the /etc/fstab
file as normal. The kernel
normally stripes swap data across multiple swap files and
should not be made part of a RAID array.
For further options and management details of RAID devices,
refer to man
mdadm
.
Additional details for monitoring RAID arrays and dealing with problems can be found at the Linux RAID Wiki.
Last updated on 2013-02-11 10:51:17 -0800
The mdadm package contains administration tools for software RAID.
This package is known to build and work properly using an LFS-7.6 platform.
Download (HTTP): http://www.kernel.org/pub/linux/utils/raid/mdadm/mdadm-3.3.2.tar.xz
Download MD5 sum: 44698d351501cac6a89072dc877eb220
Download size: 402 KB
Estimated disk space required: 8.3 MB
Estimated build time: less than 0.1 SBU
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/mdadm
Enable the following options in the kernel configuration and recompile the kernel, if necessary. Only the RAID types desired are required.
File Systems:
Device Drivers:
Multiple devices driver support (RAID and LVM): Y
RAID support: Y or M
Autodetect RAID arrays during kernel boot: Y
Linear (append) mode: Y or M
RAID-0 (striping) mode : Y or M
RAID-1 (mirroring) mode : Y or M
RAID-10 (mirrored striping) mode: Y or M
RAID-4/RAID-5/RAID-6 mode : Y or M
First, fix a problem inroduced by gcc-4.9.0:
sed -i 's/Wall -Werror/Wall/' Makefile
Install mdadm by running the following commands:
make
If you wish to run the tests, ensure that your kernel
supports RAID and that a version of mdadm is not already
running, and issue: make
test and then, as the root
user: ./test
Now, as the root
user:
make install
make everything
: This target
creates extra programs, particularly a statically-linked
version of mdadm and also versions of
mdassemble.
These all need to be manually installed.
Last updated on 2014-09-17 11:48:47 -0700
The Ntfs-3g package contains a stable, read-write open source driver for NTFS partitions. NTFS partitions are used by newer Microsoft operating systems. Ntfs-3g enables you to mount NTFS partitions in read-write mode from your Linux system. It uses the FUSE kernel module to be able to implement NTFS support in user space.
This package contains both the NTFS-3g driver itself and various utilities useful for manipulating NTFS partitions.
This package is known to build and work properly using an LFS-7.6 platform.
Download (HTTP): http://tuxera.com/opensource/ntfs-3g_ntfsprogs-2014.2.15.tgz
Download MD5 sum: f11d563816249d730a00498983485f3a
Download size: 1.1 MB
Estimated disk space required: 24 MB
Estimated build time: 0.4 SBU
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/ntfs-3g
Enable the following options in the kernel configuration and recompile the kernel if necessary:
File systems --->
[*] FUSE (Filesystem in Userspace) support
Install Ntfs-3g by running the following commands:
./configure --prefix=/usr --disable-static && make
This package does not come with a test suite.
Now, as the root
user:
make install && ln -sv ../bin/ntfs-3g /sbin/mount.ntfs && ln -sv /usr/share/man/man8/{ntfs-3g,mount.ntfs}.8
If you want ordinary users to be able to mount NTFS
partitions you'll need to set mount.ntfs with the root user
ID. Note: it is probably unsafe to do this on a computer that
needs to be secure (like a server). As the root
user:
chmod -v 4755 /sbin/mount.ntfs
--disable-static
:
This switch prevents installation of static versions of the
libraries.
--with-fuse=external
: Ntfs-3g
comes with a version of Fuse which it statically compiles
into lowntfs-3g
and ntfs-3g. If
you have installed Fuse-2.9.3 use this option to dynamically
link lowntfs-3g
and ntfs-3g to
libfuse.
--disable-ntfsprogs
: Disables
installation of various utilities used to manipulate NTFS
partitions.
ln -sv ../bin/ntfs-3g /sbin/mount.ntfs: Creating /sbin/mount.ntfs makes mount default to using Ntfs-3g to mount NTFS partitions.
chmod -v 4755 /sbin/mount.ntfs: Making mount.ntfs setuid root allows non root users to mount NTFS partitions.
To mount a Windows partition at boot time, put a line like this in /etc/fstab:
/dev/sda1 /mnt/windows auto defaults 0 0
To allow users to mount a usb stick with an NTFS filesystem on it, put a line similar this (change sdc1 to whatever a usb stick would be on your system) in /etc/fstab:
/dev/sdc1 /mnt/usb auto user,noauto,umask=0,utf8 0 0
For a user to be able to mount the usb stick they will need
to be able to write to /mnt/usb
, so as the root
user:
chmod -v 777 /mnt/usb
is similar to ntfs-3g but uses the Fuse low-level interface. |
|
is a symlink to mkntfs. |
|
creates an NTFS file system. |
|
is a symlink to lowntfs-3g. |
|
mounts an NTFS filesystem. |
|
is a symbolic link to ntfs-3g. |
|
is an NTFS driver, which can create, remove, rename, move files, directories, hard links, and streams; it can read and write files, including streams, sparse files and transparently compressed files; it can handle special files like symbolic links, devices, and FIFOs; moreover it provides standard management of file ownership and permissions, including POSIX ACLs. |
|
tests if an NTFS volume is mountable read only or read-write, and exits with a status value accordingly. The volume can be a block device or image file. |
|
audits NTFS Security Data. |
|
creates the file defining the mapping of Windows accounts to Linux logins for users who owns files which should be visible from both Windows and Linux. |
|
identifies files in a specified region of an NTFS volume |
|
copies a file to an NTFS volume. |
|
fixes common errors and forces Windows to check an NTFS partition. |
|
lists directory contents on an NTFS filesystem. |
|
prints NTFS files and streams on the standard output. |
|
clones an NTFS filesystem. |
|
compares two NTFS filesystems and tells the differences. |
|
dumps a file's attributes. |
|
displays or changes the label on an ntfs file system. |
|
resizes an NTFS filesystem without data loss. |
|
recovers a deleted file from an NTFS volume. |
|
contains the Ntfs-3g API functions. |
Last updated on 2014-09-13 17:48:40 -0700
The gptfdisk package is a set of programs for creation and maintenance of GUID Partition Table (GPT) disk drives. A GPT partitioned disk is required for drives greater than 2 TB and is a modern replacement for legacy PC-BIOS partitioned disk drives that use a Master Boot Record (MBR). The main program, gdisk, has an inteface similar to the classic fdisk program.
This package is known to build and work properly using an LFS-7.6 platform.
Download (HTTP): http://downloads.sourceforge.net/project/gptfdisk/gptfdisk/0.8.10/gptfdisk-0.8.10.tar.gz
Download MD5 sum: 9cf4246c181c324bdbd553fe9b348373
Download size: 192 KB
Estimated disk space required: 2.9 MB
Estimated build time: less than 0.1 SBU
popt-1.16 (required to build sgdisk) and ICU-53.1 (for Unicode partition names)
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/gptdisk
The gptfdisk package comes
with a rudimentary Makefile
.
First we update it to provide a simple build and install
interface. Install gptfdisk
by running the following commands:
patch -Np1 -i ../gptfdisk-0.8.10-convenience-1.patch && make
This package does not come with a test suite.
Now, as the root
user:
make install
ICU=1
: Adding this option to the
make command
allows use of Unicode characters in partition names.
POPT=1
: Adding this option to the
make command is
required to build sgdisk. If used, this
option needs to be on both the make and the make install line.
Last updated on 2014-09-09 14:11:38 -0700
The Parted package is a disk partitioning and partition resizing tool.
This package is known to build and work properly using an LFS-7.6 platform.
Download (HTTP): http://ftp.gnu.org/gnu/parted/parted-3.2.tar.xz
Download MD5 sum: 0247b6a7b314f8edeb618159fa95f9cb
Download size: 1.6 MB
Estimated disk space required: 27 MB (additional 2 MB for the tests and additional 1 MB for optional PDF and Postscript documentation)
Estimated build time: 0.4 SBU (additional 0.6 SBU for the tests)
Optional, to fix build without device mapper support: http://www.linuxfromscratch.org/patches/blfs/7.6/parted-3.2-devmapper-1.patch
LVM2-2.02.111 (device-mapper, required if building udisks)
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/parted
If you want to build without device mapper support, a fix is necessary:
patch -Np1 -i ../parted-3.2-devmapper-1.patch
Install Parted by running the following commands:
./configure --prefix=/usr --disable-static && make && make -C doc html && makeinfo --html -o doc/html doc/parted.texi && makeinfo --plaintext -o doc/parted.txt doc/parted.texi
If you have texlive-20140525 installed and wish to create PDF and Postcript documentation issue the following commands:
texi2pdf -o doc/parted.pdf doc/parted.texi && texi2dvi -o doc/parted.dvi doc/parted.texi && dvips -o doc/parted.ps doc/parted.dvi
If you wish to run the test suite, first remove a test that normally fails in BLFS, because it needs a locale C.UTF-8:
sed -i '/t0251-gpt-unicode.sh/d' tests/Makefile
To test the results, issue: make check. Note that many
tests are skipped if not run as the root
user.
Now, as the root
user:
make install && install -v -m755 -d /usr/share/doc/parted-3.2/html && install -v -m644 doc/html/* \ /usr/share/doc/parted-3.2/html && install -v -m644 doc/{FAT,API,parted.{txt,html}} \ /usr/share/doc/parted-3.2
Install the optional PDF and Postscript documentation by
issuing the following command as the root
user:
install -v -m644 doc/FAT doc/API doc/parted.{pdf,ps,dvi} \ /usr/share/doc/parted-3.2
--disable-static
:
This switch prevents installation of static versions of the
libraries.
--disable-device-mapper
: This
option disables device mapper support. Add this parameter if
you have not installed LVM2.
Last updated on 2014-09-17 11:48:47 -0700
The reiserfsprogs package contains various utilities for use with the Reiser file system.
This package is known to build and work properly using an LFS-7.6 platform.
Download (HTTP): http://ftp.kernel.org/pub/linux/kernel/people/jeffm/reiserfsprogs/v3.6.24/reiserfsprogs-3.6.24.tar.xz
Download MD5 sum: 66787380fb418ff7d88a23e47cda7af6
Download size: 316 KB
Estimated disk space required: 13 MB
Estimated build time: 0.1 SBU
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/reiser
Enable the following option in the kernel configuration and recompile the kernel:
File Systems:
Reiserfs support: M or Y
Install reiserfsprogs 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
--sbindir=/sbin
: This
ensures that the reiserfsprogs utilities are installed in
/sbin
.
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 2014-09-19 13:27:36 -0700
The Sshfs Fuse package contains a filesystem client based on the SSH File Transfer Protocol. This is useful for mounting a remote computer that you have ssh access to as a local filesystem. This allows you to drag and drop files or run shell commands on the remote files as if they were on your local computer.
This package is known to build and work properly using an LFS-7.6 platform.
Download (HTTP): http://downloads.sourceforge.net/fuse/sshfs-fuse-2.5.tar.gz
Download MD5 sum: 17494910db8383a366b1301e5f5148a9
Download size: 136 KB
Estimated disk space required: 1.8 MB
Estimated build time: less than 0.1 SBU
Fuse-2.9.3, GLib-2.40.0, and OpenSSH-6.6p1.
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/sshfs-fuse
Install Sshfs Fuse 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 mount an ssh server you need to be able to log into the server. For example, to mount your home folder on the computer called THINGY on the folder ~/MOUNTPATH (the directory must exist and you must have permissions to write to it):
sshfs THINGY:~ ~/MOUNTPATH
When you've finished work and want to unmount it again:
fusermount -u ~/MOUNTPATH
Last updated on 2014-09-14 12:09:32 -0700
The xfsprogs package contains administration and debugging tools for the XFS file system.
This package is known to build and work properly using an LFS-7.6 platform.
Download (FTP): ftp://oss.sgi.com/projects/xfs/cmd_tars/xfsprogs-3.2.1.tar.gz
Download MD5 sum: 5c6905932029c8f9207fe5a0a8aac24b
Download size: 1.5 MB
Estimated disk space required: 45 MB
Estimated build time: 0.6 SBU
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/xfs
Enable the following options in the kernel configuration and recompile the kernel:
File Systems:
XFS filesystem support: M or Y
Install xfsprogs by running the following commands:
make DEBUG=-DNDEBUG \ INSTALL_USER=root \ INSTALL_GROUP=root \ LOCAL_CONFIGURE_OPTIONS="--enable-readline"
This package does not come with a test suite.
Now, as the root
user:
make install && make install-dev && rm -rfv /lib/libhandle.{a,la,so} && ln -sfv ../../lib/libhandle.so.1 /usr/lib/libhandle.so && sed -i "s@libdir='/lib@libdir='/usr/lib@g" /usr/lib/libhandle.la
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
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.
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. |
|
copies the contents of an XFS file system to one or more targets in parallel. |
|
for each directory argument, estimates the space that directory would take if it were copied to an XFS filesystem (does not cross mount points). |
|
is used to debug an XFS file system. |
|
suspends access to an XFS file system. |
|
applicable only to XFS filesystems, improves the organization of mounted filesystems, the reorganization algorithm operates on one file at a time, compacting or othewise improving the layout of the file extents (contiguous blocks of file data). |
|
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 2014-09-17 11:48:47 -0700
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.
Bluefish is a GTK+ text editor targeted towards programmers and web designers, with many options to write websites, scripts and programming code. Bluefish supports many programming and markup languages, and it focuses on editing dynamic and interactive websites.
This package is known to build and work properly using an LFS-7.6 platform.
Download (HTTP): http://www.bennewitz.com/bluefish/stable/source/bluefish-2.2.6.tar.bz2
Download MD5 sum: f15919e6a7b012a16e6b1f49d9db2b33
Download size: 3.7 MB
Estimated disk space required: 72 MB
Estimated build time: 0.4 SBU
GTK+-2.24.24 or GTK+-3.12.2. If both are installed, configure defaults to using GTK+ 3.
enchant-1.6.0 (for spell checking), Gucharmap-3.12.1, Jing and PCRE-8.35
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/bluefish
Install Bluefish by running the following commands:
./configure --prefix=/usr --docdir=/usr/share/doc/bluefish-2.2.6 && make
This package does not come with a test suite.
Now, as the root
user:
make install
Last updated on 2014-09-19 13:27:36 -0700
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.
This package is known to build and work properly using an LFS-7.6 platform.
Download (HTTP): http://ftp.gnu.org/pub/gnu/ed/ed-1.10.tar.lz
Download (FTP): ftp://ftp.gnu.org/pub/gnu/ed/ed-1.10.tar.lz
Download MD5 sum: d1e51bb6e78417af8fb12684c31fd9eb
Download size: 64 KB
Estimated disk space required: 1.4 MB
Estimated build time: less than 0.1 SBU
libarchive-3.1.2 (for bsdtar)
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/ed
Install Ed by running the following commands:
./configure --prefix=/usr --bindir=/bin && make
To test the results, issue: make check.
Now, as the root
user:
make install
Last updated on 2014-09-19 13:27:36 -0700
The Emacs package contains an extensible, customizable, self-documenting real-time display editor.
This package is known to build and work properly using an LFS-7.6 platform.
Download (HTTP): http://ftp.gnu.org/pub/gnu/emacs/emacs-24.3.tar.xz
Download (FTP): ftp://ftp.gnu.org/pub/gnu/emacs/emacs-24.3.tar.xz
Download MD5 sum: ea9ed000ca165280265aabb55b9afbd7
Download size: 34 MB
Estimated disk space required: 458 MB
Estimated build time: 6.8 SBU
X Window System, alsa-lib-1.0.28, D-Bus-1.8.8, GnuTLS-3.3.7, gobject-introspection-1.40.0, GPM-1.20.7, GTK+-2.24.24 or GTK+-3.12.2, ImageMagick-6.8.9-7, libjpeg-turbo-1.3.1, libpng-1.6.13, librsvg-2.40.3, LibTIFF-4.0.3, and libungif
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/emacs
Install Emacs by running the following commands:
./configure --prefix=/usr \ --with-gif=no \ --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/24.3
If you have GTK+-2.24.24 or GTK+-3.12.2 installed, run,
as root
user:
gtk-update-icon-cache -qf /usr/share/icons/hicolor
--with-gif=no
: This option is
required if libungif is not
installed.
--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
.
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 2014-09-19 13:27:36 -0700
JOE (Joe's own editor) is a small text editor capable of emulating WordStar, Pico, and Emacs.
This package is known to build and work properly using an LFS-7.6 platform.
Download (HTTP): http://downloads.sourceforge.net/joe-editor/joe-3.7.tar.gz
Download (FTP): ftp://mirror.ovh.net/gentoo-distfiles/distfiles/joe-3.7.tar.gz
Download MD5 sum: 66de1b073e869ba12abbfcde3885c577
Download size: 680 KB
Estimated disk space required: 9 MB
Estimated build time: 0.2 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 2014-09-19 13:27:36 -0700
The Nano package contains a small, simple text editor which aims to replace Pico, the default editor in the Pine package.
This package is known to build and work properly using an LFS-7.6 platform.
Download (HTTP): http://ftp.gnu.org/gnu/nano/nano-2.3.6.tar.gz
Download (FTP): ftp://ftp.gnu.org/gnu/nano/nano-2.3.6.tar.gz
Download MD5 sum: df3d201aecb3155a80633990cc467831
Download size: 1.8 MB
Estimated disk space required: 11 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 \ --enable-utf8 \ --docdir=/usr/share/doc/nano-2.3.6 && make
This package does not come with a test suite.
Now, as the root
user:
make install && install -v -m644 doc/nanorc.sample /etc && install -v -m644 doc/texinfo/nano.html /usr/share/doc/nano-2.3.6
--enable-utf8
: This
switch enables unicode support in Nano.
--with-slang
: This forces
Nano to use S-Lang. Use this if installed.
Example configuration (create as a system-wide /etc/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
directory. It includes color
configurations and has some documentation included in the
comments.
Last updated on 2014-09-19 13:27:36 -0700
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.
This package is known to build and work properly using an LFS-7.6 platform.
Download (FTP): ftp://ftp.vim.org/pub/vim/unix/vim-7.4.tar.bz2
Download MD5 sum: 607e135c559be642f210094ad023dc65
Download size: 9.4 MB
Estimated disk space required: 90 MB
Estimated build time: 1.7 SBU
X Window System and GTK+-2.24.24
LessTif, Python-2.7.8, Tcl-8.6.2, Ruby-2.1.2, and GPM-1.20.7
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
.
Install Vim by running the following commands:
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.4
, making it
consistent with the location of documentation for other
packages:
ln -snfv ../vim/vim74/doc /usr/share/doc/vim-7.4
If you wish to update the runtime files, issue the following command (requires rsync-3.1.1):
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.4" -c ":q"
--with-features=huge
:
This switch enables all the additional features available in
Vim, including support for
multibyte characters.
--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.
If desired, create a menu entry for graphical vim,
gvim.desktop
, as the
root
user
cat > /usr/share/applications/gvim.desktop << "EOF"
[Desktop Entry]
Name=GVim Text Editor
Comment=Edit text files
Comment[pt_BR]=Edite arquivos de texto
TryExec=gvim
Exec=gvim -f %F
Terminal=false
Type=Application
Icon=gvim.png
Categories=Utility;TextEditor;
StartupNotify=true
MimeType=text/plain;
EOF
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/vim74/spell/
.
To find out what's new in Vim-7.4 issue the following command:
:help version-7.4
For additional information on setting up Vim configuration files, see The vimrc Files and http://vim.wikia.com/wiki/Example_vimrc.
A list of the reinstalled files, along with their short descriptions can be found in the LFS Vim Installation Instructions
Last updated on 2014-09-17 15:52:31 -0700
pico is a text editor installed as a part of Re-alpine-2.03.
mcedit is a text editor installed as part of MC-4.8.13.
Last updated on 2012-04-17 10:53:55 -0700
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.
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.
This package is known to build and work properly using an LFS-7.6 platform.
Download (HTTP): http://gondor.apana.org.au/~herbert/dash/files/dash-0.5.7.tar.gz
Download MD5 sum: f6cedb10ae7258adb5ab17a10ae80d51
Download size: 224 KB
Estimated disk space required: 3.5 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:
If you create the symbolic link from dash to sh, you will need to reset the link to bash to build LFS.
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 2014-09-19 13:27:36 -0700
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.
This package is known to build and work properly using an LFS-7.6 platform.
Download (HTTP): http://www.sfr-fresh.com/unix/misc/tcsh-6.18.01.tar.gz
Download (FTP): ftp://ftp.astron.com/pub/tcsh/tcsh-6.18.01.tar.gz
Download MD5 sum: 6eed09dbd4223ab5b6955378450d228a
Download size: 912 KB
Estimated disk space required: 12.6 MB
Estimated build time: 0.2 SBU
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/tcsh
Install Tcsh by running the following commands:
sed -i -e 's|\$\*|#&|' -e 's|fR/g|&m|' tcsh.man2html && ./configure --prefix=/usr --bindir=/bin && make && sh ./tcsh.man2html
To test the results, issue: make check.
Now, as the root
user:
make install install.man && ln -v -sf tcsh /bin/csh && ln -v -sf tcsh.1 /usr/share/man/man1/csh.1 && install -v -m755 -d /usr/share/doc/tcsh-6.18.01/html && install -v -m644 tcsh.html/* /usr/share/doc/tcsh-6.18.01/html && install -v -m644 FAQ /usr/share/doc/tcsh-6.18.01
sed -i -e 's|\$\*|#&|' -e 's|fR/g|&m|' tcsh.man2html: This updates some deprecated Perl code.
--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 2014-09-19 13:27:36 -0700
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 package is known to build and work properly using an LFS-7.6 platform.
Download (HTTP): http://www.zsh.org/pub/zsh-5.0.6.tar.bz2
Download MD5 sum: 7150a6abc2aa1a79d81ed9a282594225
Download size: 3.1 MB
Estimated disk space required: 64 MB (includes installing documentation - additional 2 MB for PDF documentation)
Estimated build time: 0.9 SBU (additional less than 0.1 SBU for PDF documentation and additional 0.2 SBU for the tests)
Optional Documentation: http://www.zsh.org/pub/zsh-5.0.6-doc.tar.bz2
Documentation MD5 sum: 3333759b5ae9710ceed11b02645a0049
Documentation download size: 2.9 MB
libcap-2.24 with PAM, PCRE-8.35, and Valgrind-3.10.0,
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-5.0.6-doc.tar.bz2
Install zsh by running the following commands:
sed -e '/attr.mdh/ d' -e '/attr.pro/ d' \ -e '/include <sys\/xattr.h>/ a\\n#include "attr.mdh"\n#include "attr.pro"' \ -i Src/Modules/attr.c && ./configure --prefix=/usr \ --bindir=/bin \ --sysconfdir=/etc/zsh \ --enable-etcdir=/etc/zsh && make && makeinfo Doc/zsh.texi --html -o Doc/html && makeinfo Doc/zsh.texi --html --no-split --no-headers \ -o Doc/zsh.html && makeinfo Doc/zsh.texi --plaintext -o Doc/zsh.txt
If you have texlive-20140525 installed, you can build PDF format of the documentation by issuing the following command:
texi2pdf Doc/zsh.texi -o Doc/zsh.pdf
To test the results, issue: make check.
Now, as the root
user:
make install && make infodir=/usr/share/info install.info install -v -m755 -d /usr/share/doc/zsh-5.0.6/html && install -v -m644 Doc/html/* \ /usr/share/doc/zsh-5.0.6/html && install -v -m644 Doc/zsh.{html,txt} \ /usr/share/doc/zsh-5.0.6
If you downloaded the optional documentation, install it by
issuing the following commands as the root
user:
make htmldir=/usr/share/doc/zsh-5.0.6/html install.html && install -v -m644 Doc/zsh.dvi /usr/share/doc/zsh-5.0.6
If you built the PDF format of the documentation, install it
by issuing the following command as the root
user:
install -v -m644 Doc/zsh.pdf \ /usr/share/doc/zsh-5.0.6
sed ... Src/Modules/attr.c: Fix zsh-5.0.6 to build with libcap-2.x (x > 23).
--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 option enables
POSIX capabilities.
--disable-gdbm
: This option
disables the use of the GDBM
library.
--enable-pcre
: This option allows
zsh to use the PCRE regular
expression library in shell builtins.
Linking zsh dynamically
against pcre and/or
gdbm produces runtime
dependencies on libpcre.so
and/or libgdbm.so
respectively, which both reside in /usr
hierarchy. If /usr
is a separate mount point and
zsh needs to be available
in boot time, then its supporting libraries should be in
/lib
too. You can move the
libraries as follows:
mv -v /usr/lib/libpcre.so.* /lib && ln -v -sf ../../lib/libpcre.so.0 /usr/lib/libpcre.so mv -v /usr/lib/libgdbm.so.* /lib && ln -v -sf ../../lib/libgdbm.so.3 /usr/lib/libgdbm.so
Alternatively you can statically link zsh against pcre and gdbm if you modify the config.modules
file (you need first to
run configure to generate it).
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.
The first time zsh is executed, you will be prompted by
messages asking several questions. The answers will be used
to create a ~/.zshrc
file. If
you wish to run these questions again, run zsh
/usr/share/zsh/5.0.6/functions/zsh-newuser-install
-f.
There are several built-in advanced prompts. In the
zsh shell,
start advanced prompt support with autoload -U promptinit,
then promptinit. Available
prompt names are listed with prompt -l. Select a
particular one with prompt
<prompt-name>
.
Display all available prompts with prompt -p. Except for the
list and display commands above, you can insert the other
ones in ~/.zshrc
to be
automatically executed at shell start, with the prompt you
chose.
Last updated on 2014-09-19 13:27:36 -0700
Virtualization allows running a complete operating system, or virtual machine (VM), within another operating environment as a task. There are several commercial and open source environments that either emulate another processor or utilize the hardware virtualization features of the host processor.
qemu is a full virtualization solution for Linux on x86 hardware containing virtualization extensions (Intel VT or AMD-V).
This package is known to build and work properly using an LFS-7.6 platform.
Download (HTTP): http://wiki.qemu.org/download/qemu-2.1.0.tar.bz2
Download MD5 sum: 6726977292b448cbc7f89998fac6983b
Download size: 23 MB
Estimated disk space required: 287 MB
Estimated build time: 1.4 SBU
GLib-2.40.0, Python-2.7.8, and X Window System
ALSA-1.0.28, Check-0.9.14, cURL-7.37.1, MesaLib-10.2.7, and Cyrus SASL-2.1.26
This optional dependencies list is not comprehensive. See the output of ./configure --help for a more complete list.
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/qemu
Before building qemu, check to see if your processor supports Virtualization Technology (VT):
egrep '^flags.*(vmx|svm)' /proc/cpuinfo
If you get any output, you have VT technology (vmx for Intel processors and svm for AMD processors). You then need to go into your system BIOS and ensure it is enabled. After enabing, reboot back to your LFS instance.
Enable the following options in the kernel configuration and recompile the kernel if necessary:
Virtualization: --->
Kernel-based Virtual Machine (KVM) support: Y or M
KVM for Intel processors support: Y or M
KVM for AMD processors support: Y or M
The Intel or AMD settings are not both required, but the one matching your system processor is required.
For networking, check that bridge-utils-1.5 is installed and the following options in the kernel configuration are enabled:
Networking support --->
Networking options --->
802.1d Ethernet Bridging: Y or M
Device Drivers --->
Network device support --->
Universal TUN/TAP device driver support: Y or M
Install qemu by running the following commands:
sed -e '/#include <sys\/capability.h>/ d' \ -e '/#include "virtio-9p-marshal.h"/ i#include <sys\/capability.h>' \ -i fsdev/virtfs-proxy-helper.c && ./configure --prefix=/usr \ --sysconfdir=/etc \ --docdir=/usr/share/doc/qemu-2.1.0 \ --target-list=x86_64-softmmu && make
To run the built in tests, run make V=1 check.
Now, as the root
user:
make install && [ -e /usr/lib/libcacard.so ] && chmod -v 755 /usr/lib/libcacard.so
You will need a dedicated group that will contain users
(other than root) allowed to access the KVM device. Add the
group by running the following command as the root
user:
groupadd -g 61 kvm
Add any users that might use the KVM device to that group:
usermod -a -G kvm <username>
You will also need to add a Udev rule so that the KVM device gets correct permissions:
cat > /lib/udev/rules.d/65-kvm.rules << "EOF"
KERNEL=="kvm", GROUP="kvm", MODE="0660"
EOF
For convenience you may want to create a symbolic link to run qemu-system-x86_64:
ln -sv qemu-system-x86_64 /usr/bin/qemu
sed -e '/#include ... fsdev/virtfs-proxy-helper.c: Fixes qemu-2.1.0 to build with libcap-2.24.
--target-list=x86_64-softmmu
:
This switch limits the build target to the x86_64
architecture. For other hardware emulation see the
--target-list list in configure's help output.
Omitting this option will build all architectures.
--audio-drv-list=alsa
: This
switch sets the audio driver to ALSA. For other drivers see
the --audio-drv-list list in configure's help output.
The default audio driver is OSS.
To generate an image, run:
qemu-img create -f qcow2 vdisk.img 10G
Adjust the virtual disk size and image filename as desired. The actual size of the file will be less than specified, but will expand as it is used.
The following instructions assume you have created the
optional symbolic link, qemu
. Additionally, you
must run qemu
from an X Window
System based terminal.
To install an operating system, download an iso of your
choice or use a pre-installed cdrom device. For the purposes
of this example, use Fedora 16 that is downloaded as
Fedora-16-x86_64-Live-LXDE.iso
in the current directory. Run the following:
qemu -enable-kvm -hda vdisk.img \ -cdrom Fedora-16-x86_64-Live-LXDE.iso \ -boot d \ -m 384
Follow the normal installation procedures for the chosen distribution. The -boot option specifies the boot order of drives as a string of drive letters. Valid drive letters are: a, b (floppy 1 and 2), c (first hard disk), d (first CD-ROM). The -m option is the amount of memory to use for the virtual machine. If you have sufficient memory (2G or more), 1G is a reasonable value. For computers with 512MB of RAM it's safe to use -m 192, or even -m 128 (the default). The -enable-kvm option allows for hardware acceleeration. Without this switch, the emulation is relatively slow.
To run the newly installed operating system, run:
qemu -enable-kvm vdisk.img -m 384
To add networking to the instance add "-net nic -net user" to the command above. qemu provides a DHCP server for the VM and, depending on the client system, sets up networking though the host.
One problem with the above networking solution is that it
does not provide the ability to connect with the local
network. To do that, there are several additional steps that
need to be done, all as the root
user:
Set up bridging with bridge-utils-1.5.
Allow the host system to forward IP packets.
sysctl -w net.ipv4.ip_forward=1
To make this permanent, add the command to /etc/syssysctl.conf:
cat >> /etc/sysctl.conf << EOF net.ipv4.ip_forward=1 EOF
Create scripts for qemu to attach the client network device, usually visible as tap0, to the host bridge.
cat > /etc/qemu-ifup << EOF #!/bin/bash switch=br0 if [ -n "\$1" ]; then # Add new tap0 interface to bridge /sbin/ip link set \$1 up sleep 0.5s /usr/sbin/brctl addif \$switch \$1 else echo "Error: no interface specified" exit 1 fi exit 0 EOF chmod +x /etc/qemu-ifup
cat > /etc/qemu-ifdown << EOF #!/bin/bash switch=br0 if [ -n "\$1" ]; then # Remove tap0 interface from bridge /usr/sbin/brctl delif \$switch \$1 else echo "Error: no interface specified" exit 1 fi exit 0 EOF chmod +x /etc/qemu-ifdown
The backslashes in the above script are for convenience for cut/paste operations. The backslashes should not appear in the final scripts.
Start qemu with "-net nic -net tap" options.
If a connection, such as ssh, from the local network to the client VM is desired, the client should probably be configured with a static IP address.
implements support for QMP (QEMU Monitor Protocol) commands and events that terminate and originate respectively within the guest using an agent built as part of QEMU. |
|
provides commands to manage QEMU disk images. |
|
is a diagnostic and manipulation program for (virtual) memory media. It is still at an early stage of development. |
|
exports Qemu disk images using the QEMU Disk Network Block Device (NBD) protocol. |
|
is the QEMU PC System emulator. |
|
is the Virtual Smart Card Emulator library. |
Last updated on 2014-09-19 13:27:36 -0700
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 these and some others are listed and it is explained why you may want to install them.
The Apache Portable Runtime (APR) is a supporting library for the Apache web server. It provides a set of application programming interfaces (APIs) that map to the underlying Operating System (OS). Where the OS doesn't support a particular function, APR will provide an emulation. Thus programmers can use the APR to make a program portable across different platforms.
This package is known to build and work properly using an LFS-7.6 platform.
Download (HTTP): http://archive.apache.org/dist/apr/apr-1.5.1.tar.bz2
Download (FTP): ftp://ftp.mirrorservice.org/sites/ftp.apache.org/apr/apr-1.5.1.tar.bz2
Download MD5 sum: 5486180ec5a23efb5cae6d4292b300ab
Download size: 800 KB
Estimated disk space required: 12 MB (additional 2 MB for the tests)
Estimated build time: 0.3 SBU (1.1 with tests)
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/apr
Install Apr by running the following commands:
./configure --prefix=/usr \ --disable-static \ --with-installbuilddir=/usr/share/apr-1/build && make
To test the results, issue: make test.
Now, as the root
user:
make install
--disable-static
:
This switch prevents installation of static versions of the
libraries.
Last updated on 2014-09-10 06:19:10 -0700
The Apache Portable Runtime Utility Library provides a predictable and consistent interface to underlying client library interfaces. This application programming interface assures predictable if not identical behaviour regardless of which libraries are available on a given platform.
This package is known to build and work properly using an LFS-7.6 platform.
Download (HTTP): http://archive.apache.org/dist/apr/apr-util-1.5.3.tar.bz2
Download (FTP): ftp://ftp.mirrorservice.org/sites/ftp.apache.org/apr/apr-util-1.5.3.tar.bz2
Download MD5 sum: 6f3417691c7a27090f36e7cf4d94b36e
Download size: 680 KB
Estimated disk space required: 11 MB
Estimated build time: 0.2 SBU
Berkeley DB-6.1.19, FreeTDS, MariaDB-10.0.13 or MySQL, OpenLDAP-2.4.39, PostgreSQL-9.3.5, SQLite-3.8.6 and unixODBC-2.3.2
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/apr-util
Install Apr Util by running the following commands:
./configure --prefix=/usr \ --with-apr=/usr \ --with-gdbm=/usr \ --with-openssl=/usr \ --with-crypto && make
To test the results, issue: make test.
Now, as the root
user:
make install
--with-gdbm=/usr
:
This switch enables the apr_dbm_gdbm-1.so
plugin.
--with-openssl=/usr
--with-crypto
: These switches enable the
apr_crypto_openssl-1.so
plugin.
Remove them if you have not installed OpenSSL-1.0.1i.
--with-berkeley-db=/usr
: If you
have installed Berkeley DB-6.1.19, use this switch
to compile the apr_dbm_db-1.so
plugin.
--with-ldap
: If you have
installed OpenLDAP-2.4.39, use this switch to
compile the apr_ldap.so
plugin.
Last updated on 2014-09-10 06:19:10 -0700
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.
This package is known to build and work properly using an LFS-7.6 platform.
Download (HTTP): http://ftp.gnu.org/gnu/aspell/aspell-0.60.6.1.tar.gz
Download (FTP): ftp://ftp.gnu.org/gnu/aspell/aspell-0.60.6.1.tar.gz
Download MD5 sum: e66a9c9af6a60dc46134fdacf6ce97d7
Download size: 1.8 MB
Estimated disk space required: 58 MB (Additional 8 MB for EN dictionary)
Estimated build time: 0.5 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
Which-2.20 (for the dictionaries)
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.6.1/aspell{,-dev}.html && install -v -m644 manual/aspell.html/* \ /usr/share/doc/aspell-0.60.6.1/aspell.html && install -v -m644 manual/aspell-dev.html/* \ /usr/share/doc/aspell-0.60.6.1/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 2014-09-14 13:18:45 -0700
Boost provides a set of free peer-reviewed portable C++ source libraries. It includes libraries for linear algebra, pseudorandom number generation, multithreading, image processing, regular expressions and unit testing.
This package is known to build and work properly using an LFS-7.6 platform.
Download (HTTP): http://downloads.sourceforge.net/boost/boost_1_56_0.tar.bz2
Download MD5 sum: a744cf167b05d72335f27c88115f211d
Download size: 90 MB
Estimated disk space required: 955 MB
Estimated build time: 7.1 SBU
ICU-53.1 and Python-2.7.8
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/boost
Install Boost by running the following commands:
./bootstrap.sh --prefix=/usr && ./b2 stage threading=multi link=shared
This package does not come with a test suite.
Now, as the root
user:
./b2 install threading=multi link=shared
threading=multi
: This
parameter ensures that Boost
is built with multithreading support.
link=shared
: This
parameter ensures that only shared libraries are created,
except for libboost_exception and libboost_test_exec_monitor
which are created as static. Most people will not need the
static libraries, indeed most programs using Boost only use the headers, but omit
this parameter if you do need them.
Last updated on 2014-09-13 22:25:33 -0700
CLucene is a C++ version of Lucene, a high performance text search engine.
This package is known to build and work properly using an LFS-7.6 platform.
Download (HTTP): http://downloads.sourceforge.net/clucene/clucene-core-2.3.3.4.tar.gz
Download MD5 sum: 48d647fbd8ef8889e5a7f422c1bfda94
Download size: 2.2 MB
Estimated disk space required: 78 MB
Estimated build time: 0.8 SBU
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/clucene
Install CLucene by running the following commands:
patch -Np1 -i ../clucene-2.3.3.4-contribs_lib-1.patch && mkdir build && cd build && cmake -DCMAKE_INSTALL_PREFIX=/usr \ -DBUILD_CONTRIBS_LIB=ON .. && make
Now, as the root
user:
make install
-DBUILD_CONTRIBS_LIB=ON
: This
cmake variable enables building the CLucene contribs library
necessary for running applications that use language specific
text analyzers like LibreOffice for example.
Last updated on 2014-09-20 21:51:52 -0700
The D-Bus GLib package contains GLib interfaces to the D-Bus API.
This package is known to build and work properly using an LFS-7.6 platform.
Download (HTTP): http://dbus.freedesktop.org/releases/dbus-glib/dbus-glib-0.102.tar.gz
Download MD5 sum: f76b8558fd575d0106c3a556eaa49184
Download size: 768 KB
Estimated disk space required: 9.9 MB
Estimated build time: 0.1 SBU
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/dbus-glib
Install D-Bus GLib by running the following commands:
./configure --prefix=/usr \ --sysconfdir=/etc \ --disable-static && make
To test the results, issue: make check. Note that more comprehensive tests can be run by following the same method used in D-Bus instructions, which requires building the package twice.
Now, as the root
user:
make install
--disable-static
:
This switch prevents installation of static versions of the
libraries.
--enable-gtk-doc
: Use this
parameter if GTK-Doc is
installed and you wish to rebuild and install the API
documentation.
Last updated on 2014-09-12 09:27:12 -0700
The enchant package provide a generic interface into various existing spell checking libraries.
This package is known to build and work properly using an LFS-7.6 platform.
Download (HTTP): http://www.abisource.com/downloads/enchant/1.6.0/enchant-1.6.0.tar.gz
Download (FTP): ftp://ftp.netbsd.org/pub/pkgsrc/distfiles/enchant-1.6.0.tar.gz
Download MD5 sum: de11011aff801dc61042828041fb59c7
Download size: 593 KB
Estimated disk space required: 17 MB
Estimated build time: 0.3 SBU
dbus-glib-0.102, Hspell, Hunspell, and Voikko
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/enchant
Install enchant 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 2014-09-16 13:49:04 -0700
Exempi is an implementation of XMP (Adobe's Extensible Metadata Platform).
This package is known to build and work properly using an LFS-7.6 platform.
Download (HTTP): http://libopenraw.freedesktop.org/download/exempi-2.2.2.tar.bz2
Download MD5 sum: b55db1031a3b4609c2241f7fc870ce32
Download size: 3.3 MB
Estimated disk space required: 123 MB (additional 13 MB for the tests)
Estimated build time: less than 1.0 SBU (additional 0,3 SBU for the tests)
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/exempi
Install Exempi by running the following commands:
./configure --prefix=/usr --disable-static && make
To test the results, issue: make check.
Now, as the root
user:
make install
--disable-static
:
This switch prevents installation of static versions of the
libraries.
Last updated on 2014-09-19 13:13:19 -0700
The GLib package contains a low-level libraries 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.
This package is known to build and work properly using an LFS-7.6 platform.
Download (HTTP): http://ftp.gnome.org/pub/gnome/sources/glib/2.40/glib-2.40.0.tar.xz
Download (FTP): ftp://ftp.gnome.org/pub/gnome/sources/glib/2.40/glib-2.40.0.tar.xz
Download MD5 sum: 05fb7cb17eacbc718e90366a1eae60d9
Download size: 6.5 MB
Estimated disk space required: 161 MB (additional 54 MB to run the test suite)
Estimated build time: 0.9 SBU (additional 3.4 SBU to run the test suite)
PCRE-8.35 (built with Unicode properties)
D-Bus-1.8.8 (required to run the tests), elfutils-0.160, FAM library, and GTK-Doc-1.20
Quoted directly from the INSTALL
file: “Some of the mimetype-related functionality in GIO
requires the update-mime-database and
update-desktop-database
utilities”, which are part of shared-mime-info-1.3 and desktop-file-utils-0.22,
respectively.
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/glib2
Install GLib by running the following commands:
./configure --prefix=/usr --with-pcre=system && make
The GLib test suite requires desktop-file-utils in order to run. However, desktop-file-utils requires GLib in order to compile; therefore, you must first install GLib and then run the test suite.
Now, as the root
user:
make install
You should now install desktop-file-utils-0.22 and proceed to run the test suite.
To test the results, after installed the package, issue: make -k check. The tests need to be run in a graphical environment. Some tests may fail, for unknown reasons. One test (regex) fails when using the system pcre package.
--with-pcre=system
:
This switch causes the build to use a system-provided version
of the PCRE library instead
of an internal version.
--enable-gtk-doc
: Use this
parameter if GTK-Doc is
installed and you wish to rebuild and install the API
documentation.
is a simple tool used for working with D-Bus objects. |
|
is used to generate code and/or documentation for one or more D-Bus interfaces. |
|
is used to create a giomodule.cache file in the listed directories. This file lists the implemented extension points for each module that has been found. |
|
is used to read the resource description from file and the files that it references to create a binary resource bundle that is suitable for use with the GResource API. |
|
is used to compile all the GSettings XML schema files in directory into a binary file with the name gschemas.compiled that can be used by GSettings. |
|
is a C code marshaller generation utility for GLib closures. |
|
is a variant of the gettext internationalization utility. |
|
is a C language enum description generation utility. |
|
is a small utility that draws a tree of types. |
|
offers a simple commandline interface to GResource. |
|
offers a simple commandline interface to GSettings. |
|
is a test running utility. |
|
is a test report formatting utility. |
|
contain a low-level core libraries for the GIMP Toolkit. |
Last updated on 2014-09-09 12:00:35 -0700
The GLibmm package is a set of C++ bindings for GLib.
This package is known to build and work properly using an LFS-7.6 platform.
Download (HTTP): http://ftp.gnome.org/pub/gnome/sources/glibmm/2.40/glibmm-2.40.0.tar.xz
Download (FTP): ftp://ftp.gnome.org/pub/gnome/sources/glibmm/2.40/glibmm-2.40.0.tar.xz
Download MD5 sum: f62754f4f5c9030f8ff43c7ed20556c2
Download size: 5.4 MB
Estimated disk space required: 153 MB (additional 18 MB to run the test suite)
Estimated build time: 1.0 SBU (additional 0.3 SBU to run the test suite)
GLib-2.40.0, GnuTLS-3.3.7 (for the tests), and libsigc++-2.3.2
Doxygen-1.8.8 and libxslt-1.1.28
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/glibmm
Install GLibmm 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 2014-09-14 13:18:45 -0700
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.
This package is known to build and work properly using an LFS-7.6 platform.
Download (HTTP): http://ftp.gnome.org/pub/gnome/sources/gmime/2.6/gmime-2.6.20.tar.xz
Download (FTP): ftp://ftp.gnome.org/pub/gnome/sources/gmime/2.6/gmime-2.6.20.tar.xz
Download MD5 sum: 82612c42f39f6e75273a92e6de44554f
Download size: 724 KB
Estimated disk space required: 19 MB (additional 1 MB for the tests)
Estimated build time: 0.3 SBU
GLib-2.40.0 and libgpg-error-1.13
gobject-introspection-1.40.0 and Vala-0.24.0
DocBook-utils-0.6.14, GPGME-1.5.1, GTK-Doc-1.20 and Gtk# (requires Mono)
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/gmime
Install GMime by running the following commands:
./configure --prefix=/usr --disable-static && make
To test the results, issue: make check.
Now, as the root
user:
make install
--disable-static
:
This switch prevents installation of static versions of the
libraries.
--enable-smime
: Use this switch
if you have installed GPGME-1.5.1 and wish to enable S/MIME
support in GMime.
--enable-gtk-doc
: Use this
parameter if GTK-Doc is
installed and you wish to rebuild and install the API
documentation.
Last updated on 2014-09-18 14:33:53 -0700
The GObject Introspection is used to describe the program APIs and collect them in a uniform, machine readable format.
This package is known to build and work properly using an LFS-7.6 platform.
Download (HTTP): http://ftp.gnome.org/pub/gnome/sources/gobject-introspection/1.40/gobject-introspection-1.40.0.tar.xz
Download (FTP): ftp://ftp.gnome.org/pub/gnome/sources/gobject-introspection/1.40/gobject-introspection-1.40.0.tar.xz
Download MD5 sum: bbb103b5d88dbf2a257b7a26ae9bc666
Download size: 1.3 MB
Estimated disk space required: 45 MB (additional 5 MB for the tests)
Estimated build time: 0.3 SBU (additional 0.2 SBU for the tests)
Cairo-1.12.16 (required for the tests), GTK-Doc-1.20 and Mako
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/gobject-introspection
Install GObject Introspection by running the following commands:
./configure --prefix=/usr --disable-static && make
To test the results, issue: make check.
Now, as the root
user:
make install
--disable-static
:
This switch prevents installation of static versions of the
libraries.
--enable-gtk-doc
: Use this
parameter if GTK-Doc is
installed and you wish to rebuild and install the API
documentation.
Last updated on 2014-09-09 12:00:35 -0700
Grantlee is a set of free software libraries written using the Qt framework. Currently two libraries are shipped with Grantlee: Grantlee Templates and Grantlee TextDocument. The goal of Grantlee Templates is to make it easier for application developers to separate the structure of documents from the data they contain, opening the door for theming.
This package is known to build and work properly using an LFS-7.6 platform.
Download (HTTP): http://downloads.grantlee.org/grantlee-0.4.0.tar.gz
Download MD5 sum: fa8a2e9be7be7e3a89e700679e6f3014
Download size: 1.1 MB
Estimated disk space required: 31 MB
Estimated build time: 0.8 SBU
CMake-3.0.1 and Qt-4.8.6
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/grantlee
Install Grantlee by running the following commands:
mkdir build && cd build && cmake -DCMAKE_INSTALL_PREFIX=/usr \ -DCMAKE_BUILD_TYPE=Release \ .. && make
This package does not come with a test suite.
Now, as the root
user:
make install
Last updated on 2013-08-04 11:28:54 -0500
The GNU Scientific Library (GSL) is a numerical library for C and C++ programmers. It provides a wide range of mathematical routines such as random number generators, special functions and least-squares fitting.
This package is known to build and work properly using an LFS-7.6 platform.
Download (HTTP): http://ftp.gnu.org/pub/gnu/gsl/gsl-1.16.tar.gz
Download (FTP): ftp://ftp.gnu.org/pub/gnu/gsl/gsl-1.16.tar.gz
Download MD5 sum: e49a664db13d81c968415cd53f62bc8b
Download size: 3.4 MB
Estimated disk space required: 208 MB
Estimated build time: 2.2 SBU
Install Gsl by running the following commands:
./configure --prefix=/usr --disable-static && make && make html
To test the results, issue: make check.
Now, as the root
user:
make install && mkdir /usr/share/doc/gsl-1.16 && cp doc/gsl-ref.html/* /usr/share/doc/gsl-1.16
--disable-static
:
This switch prevents installation of static versions of the
libraries.
is a shell script to get the version number and compiler flags of the installed Gsl library. |
|
is a demonstration program for the GNU Scientific Library that computes a histogram from data taken from stdin. |
|
is a demonstration program for the GNU Scientific Library that generates random samples from various distributions. |
|
contains functions that implement a C interface to Basic Linear Algebra Subprograms. |
|
contains functions that provide a collection of numerical routines for scientific computing. |
Last updated on 2014-09-14 13:18:45 -0700
The International Components for Unicode (ICU) package is a mature, widely used set of C/C++ libraries providing Unicode and Globalization support for software applications. ICU is widely portable and gives applications the same results on all platforms.
This package is known to build and work properly using an LFS-7.6 platform.
Download (HTTP): http://download.icu-project.org/files/icu4c/53.1/icu4c-53_1-src.tgz
Download MD5 sum: b73baa6fbdfef197608d1f69300919b9
Download size: 23 MB
Estimated disk space required: 294 MB (additional 25 MB for the tests)
Estimated build time: 1.2 SBU (additional 1.5 SBU for the tests)
LLVM-3.5.0 (with Clang)
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/icu
Install ICU by running the following commands:
cd source && ./configure --prefix=/usr && make
To test the results, issue: make check.
Now, as the root
user:
make install
CXX=g++
: If you prefer, this
environment variable, used in the configure line, forces use
of g++ compiler
insted of clang++, if the latter is
installed.
disassembles a resource bundle. |
|
compiles ICU break iteration rules source files into binary data files. |
|
generates C or platform specific assembly code from an ICU data file. |
|
reads in Unicode confusable character definitions and writes out the binary data. |
|
generates an ICU memory-mappable data file. |
|
compiles the converter's aliases file. |
|
compiles word list into ICU string trie dictionary. |
|
compiles a resource bundle. |
|
compiles StringPrep data from filtered RFC 3454 files. |
|
outputs ICU build options. |
|
outputs configuration information about the current ICU. |
|
extracts or modifies an ICU .dat archive. |
|
compiles a converter table. |
|
packages data for use by ICU. |
|
converts data from one encoding to another. |
|
is the data library. |
|
is the internationalization (i18n) library. |
|
is the ICU I/O (unicode stdio) library. |
|
is the layout engine. |
|
is the layout extensions engine. |
|
is the test library. |
|
is the tool utility library. |
|
is the common library. |
Last updated on 2014-09-15 12:23:10 -0700
JS is Mozilla's JavaScript engine written in C/C++.
This package is known to build and work properly using an LFS-7.6 platform.
Download (HTTP): http://ftp.mozilla.org/pub/mozilla.org/js/mozjs17.0.0.tar.gz
Download (FTP): ftp://ftp.mozilla.org/pub/mozilla.org/js/mozjs17.0.0.tar.gz
Download MD5 sum: 20b6f8f1140ef6e47daa3b16965c9202
Download size: 6.5 MB
Estimated disk space required: 1.2 GB
Estimated build time: 2.0 SBU
libffi-3.1, NSPR-4.10.7, Python-2.7.8 and Zip-3.0
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/JS
Install JS by running the following commands:
cd js/src && ./configure --prefix=/usr \ --enable-readline \ --enable-threadsafe \ --with-system-ffi \ --with-system-nspr && make
To test the results, issue: make check.
Now, as the root
user:
make install && find /usr/include/js-17.0/ \ /usr/lib/libmozjs-17.0.a \ /usr/lib/pkgconfig/mozjs-17.0.pc \ -type f -exec chmod -v 644 {} \;
--enable-threadsafe
: This switch
enables support for multiple threads.
--enable-readline
: This switch
enables Readline support in
JS shell.
--with-system-ffi
: This switch
forces the package to link to the system version of
libffi instead of using its
included, and now old, version.
--with-system-nspr
: This switch
forces the package to link to the system version of
NSPR instead of using its
included, and now old, version.
Last updated on 2014-09-09 12:00:35 -0700
JS is Mozilla's JavaScript engine written in C/C++.
This package is known to build and work properly using an LFS-7.6 platform.
Download (HTTP): http://ftp.mozilla.org/pub/mozilla.org/js/mozjs-24.2.0.tar.bz2
Download (FTP): ftp://ftp.mozilla.org/pub/mozilla.org/js/mozjs-24.2.0.tar.bz2
Download MD5 sum: 5db79c10e049a2dc117a6e6a3bc78a8e
Download size: 15 MB
Estimated disk space required: 1.8 GB
Estimated build time: 4.2 SBU (additional 1.6 SBU for the tests)
libffi-3.1, NSPR-4.10.7, Python-2.7.8 and Zip-3.0
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/JS2
This package can be installed without problems, if you have installed JS-17.0.0. It is necessary to set SHELL=/bin/bash if you are working in chroot.
Install JS by running the following commands:
cd js/src && ./configure --prefix=/usr \ --enable-readline \ --enable-threadsafe \ --with-system-ffi \ --with-system-nspr && make
To test the results, issue: make check.
Now, as the root
user:
make install && find /usr/include/mozjs-24/ \ /usr/lib/libmozjs-24.a \ /usr/lib/pkgconfig/mozjs-24.pc \ -type f -exec chmod -v 644 {} \;
--enable-threadsafe
: This switch
enables support for multiple threads.
--enable-readline
: This switch
enables Readline support in
JS shell.
--with-system-ffi
: This switch
forces the package to link to the system version of
libffi instead of using its
included, and now old, version.
--with-system-nspr
: This switch
forces the package to link to the system version of
NSPR instead of using its
included, and now old, version.
Last updated on 2014-09-21 16:43:46 -0700
The JSON-C implements a reference counting object model that allows you to easily construct JSON objects in C, output them as JSON formatted strings and parse JSON formatted strings back into the C representation of JSON objects.
This package is known to build and work properly using an LFS-7.6 platform.
Download (HTTP): https://s3.amazonaws.com/json-c_releases/releases/json-c-0.12.tar.gz
Download MD5 sum: 3ca4bbb881dfc4017e8021b5e0a8c491
Download size: 496 KB
Estimated disk space required: 6.7 MB
Estimated build time: less than 0.1 SBU (add 1.0 SBU for tests)
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/json-c
This package does not support parallel build.
Install JSON-C by running the following commands:
sed -i s/-Werror// Makefile.in && ./configure --prefix=/usr --disable-static && make -j1
To test the results, issue: make check.
Now, as the root
user:
make install
sed ...
: This
instruction removes a flag that prevents one file from
compiling.
--disable-static
:
This switch prevents installation of static versions of the
libraries.
Last updated on 2014-09-16 13:49:04 -0700
The JSON GLib package is a library providing serialization and deserialization support for the JavaScript Object Notation (JSON) format described by RFC 4627.
This package is known to build and work properly using an LFS-7.6 platform.
Download (HTTP): http://ftp.gnome.org/pub/gnome/sources/json-glib/1.0/json-glib-1.0.2.tar.xz
Download (FTP): ftp://ftp.gnome.org/pub/gnome/sources/json-glib/1.0/json-glib-1.0.2.tar.xz
Download MD5 sum: e43efaf6852958207982e79141bf371e
Download size: 540 KB
Estimated disk space required: 11 MB (additional 2 MB for the tests)
Estimated build time: 0.1 SBU
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/json-glib
Install JSON 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 and install the API
documentation.
Last updated on 2014-09-18 14:33:53 -0700
Keyutils is a set of utilities for managing the key retention facility in the kernel, which can be used by filesystems, block devices and more to gain and retain the authorization and encryption keys required to perform secure operations.
This package is known to build and work properly using an LFS-7.6 platform.
Download (HTTP): http://people.redhat.com/~dhowells/keyutils/keyutils-1.5.9.tar.bz2
Download MD5 sum: 7f8ac985c45086b5fbcd12cecd23cf07
Download size: 76 KB
Estimated disk space required: 1.7 MB
Estimated build time: less than 0.1 SBU
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/keyutils
Install keyutils by running the following commands:
make
This package does not come with a test suite.
Now, as the root
user:
make NO_ARLIB=1 install
NO_ARLIB=1
: This make
flag disables installing the static library.
Last updated on 2014-09-17 11:48:47 -0700
The libarchive library provides a single interface for reading/writing various compression formats.
This package is known to build and work properly using an LFS-7.6 platform.
Download (HTTP): http://www.libarchive.org/downloads/libarchive-3.1.2.tar.gz
Download MD5 sum: efad5a503f66329bb9d2f4308b5de98a
Download size: 4.4 MB
Estimated disk space required: 60 MB
Estimated build time: 0.5 SBU
libxml2-2.9.1, LZO-2.08, and Nettle-2.7.1 or OpenSSL-1.0.1i
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/libarchive
Install libarchive by running the following commands:
./configure --prefix=/usr --disable-static && make
To test the results, issue: make check.
Now, as the root
user:
make install
--disable-static
:
This switch prevents installation of static versions of the
libraries.
--without-xml2
: This switch sets
expat for xar archive format support instead of preferred
libxml2 if both packages are installed.
--without-nettle
: This switch
sets OpenSSL for crypto support instead of preferred Nettle
if both packages are installed.
Last updated on 2014-09-10 09:45:01 -0700
The libassuan package contains an inter process communication 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.
This package is known to build and work properly using an LFS-7.6 platform.
Download (FTP): ftp://ftp.gnupg.org/gcrypt/libassuan/libassuan-2.1.2.tar.bz2
Download MD5 sum: 1dc4c3e1dbfb3939bfa2d72db8e136ba
Download size: 504 KB
Estimated disk space required: 5.6 MB (additional 0.1 MB for the tests and 2.1 MB to build and install documentation)
Estimated build time: less than 0.1 SBU
Optional, to fix the docummentation build: http://www.linuxfromscratch.org/patches/blfs/7.6/libassuan-2.1.2-fix_doc_build-1.patch
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/libassuan
Install libassuan by running the following commands:
./configure --prefix=/usr && make
If you wish to build documentation, you must have texlive-20140525 installed and issue the following commands:
patch -Np1 -i ../libassuan-2.1.2-fix_doc_build-1.patch && make -C doc pdf ps
To test the results, issue: make check.
Now, as the root
user:
make install
If you built the documentation, install it by running the
following commands as the root
user:
install -v -dm755 /usr/share/doc/libassuan-2.1.2 && install -v -m644 doc/assuan.{pdf,ps,dvi} \ /usr/share/doc/libassuan-2.1.2
Last updated on 2014-09-21 04:01:10 -0700
The libatasmart package is a disk reporting library. It only supports a subset of the ATA S.M.A.R.T. functionality.
This package is known to build and work properly using an LFS-7.6 platform.
Download (HTTP): http://pkgs.fedoraproject.org/repo/pkgs/libatasmart/libatasmart-0.19.tar.xz/53afe2b155c36f658e121fe6def33e77/libatasmart-0.19.tar.xz
Download MD5 sum: 53afe2b155c36f658e121fe6def33e77
Download size: 248 KB
Estimated disk space required: 3 MB
Estimated build time: less than 0.1 SBU
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/libatasmart
Install libatasmart by running the following commands:
./configure --prefix=/usr --disable-static && make
This package does not come with a test suite.
Now, as the root
user:
make docdir=/usr/share/doc/libatasmart-0.19 install
--disable-static
:
This switch prevents installation of static versions of the
libraries.
Last updated on 2014-09-17 04:20:33 -0700
libatomic_ops provides implementations for atomic memory update operations on a number of architectures. This allows direct use of these in reasonably portable code. Unlike earlier similar packages, this one explicitly considers memory barrier semantics, and allows the construction of code that involves minimum overhead across a variety of architectures.
This package is known to build and work properly using an LFS-7.6 platform.
Download (HTTP): http://www.ivmaisoft.com/_bin/atomic_ops//libatomic_ops-7.4.2.tar.gz
Download MD5 sum: 1d6538604b314d2fccdf86915e5c0857
Download size: 456 KB
Estimated disk space required: 5.3 MB (additional 1.9 MB for tests)
Estimated build time: less than 0.1 SBU (additional less than 0.1 SBU for tests)
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/libatomic_ops
Install libatomic_ops by running the following commands:
sed -i 's#pkgdata#doc#' doc/Makefile.am && autoreconf -fi && ./configure --prefix=/usr \ --enable-shared \ --disable-static \ --docdir=/usr/share/doc/libatomic_ops-7.4.2 && make
To check the results, issue LD_LIBRARY_PATH=../src/.libs make check.
Now, as the root
user:
make install && mv -v /usr/share/libatomic_ops/* \ /usr/share/doc/libatomic_ops-7.4.2 && rm -vrf /usr/share/libatomic_ops
sed -i ...: This sed makes the docs to be installed in an appropriate directory.
autoreconf -fi:
This regenerates the configure script and the
Makefile.in
.
--enable-shared
: This
switch enables building of the libatomic_ops
shared libraries.
--disable-static
:
This switch prevents installation of static versions of the
libraries.
Last updated on 2014-09-13 17:48:40 -0700
The libcroco package contains a standalone CSS2 parsing and manipulation library.
This package is known to build and work properly using an LFS-7.6 platform.
Download (HTTP): http://ftp.gnome.org/pub/gnome/sources/libcroco/0.6/libcroco-0.6.8.tar.xz
Download (FTP): ftp://ftp.gnome.org/pub/gnome/sources/libcroco/0.6/libcroco-0.6.8.tar.xz
Download MD5 sum: 767e73c4174f75b99695d4530fd9bb80
Download size: 456 KB
Estimated disk space required: 11 MB
Estimated build time: 0.1 SBU
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/libcroco
Install libcroco by running the following commands:
./configure --prefix=/usr --disable-static && make
To run the test suite, run LD_LIBRARY_PATH=$(pwd)/src/.libs make test.
Now, as the root
user:
make install
--disable-static
:
This switch prevents installation of static versions of the
libraries.
--enable-gtk-doc
: Use this
parameter if GTK-Doc is
installed and you wish to rebuild and install the API
documentation.
Last updated on 2014-09-13 17:48:40 -0700
The libdaemon package is a lightweight C library that eases the writing of UNIX daemons.
This package is known to build and work properly using an LFS-7.6 platform.
Download (HTTP): http://pkgs.fedoraproject.org/repo/pkgs/libdaemon/libdaemon-0.14.tar.gz/509dc27107c21bcd9fbf2f95f5669563/libdaemon-0.14.tar.gz
Download MD5 sum: 509dc27107c21bcd9fbf2f95f5669563
Download size: 332 KB
Estimated disk space required: 3 MB
Estimated build time: 0.1 SBU
Doxygen-1.8.8 and Lynx-2.8.8rel.2
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/libdaemon
Install libdaemon by running the following commands:
./configure --prefix=/usr --disable-static && make
If you have Doxygen installed and wish to build the API documentation, issue the following command:
make -C doc doxygen
This package does not come with a test suite.
Now, as the root
user:
make docdir=/usr/share/doc/libdaemon-0.14 install
If you built the API documentation, install it using the
following commands as the root
user:
install -v -m755 -d /usr/share/doc/libdaemon-0.14/api && install -v -m644 doc/reference/html/* /usr/share/doc/libdaemon-0.14/api && install -v -m644 doc/reference/man/man3/* /usr/share/man/man3
--disable-static
:
This switch prevents installation of static versions of the
libraries.
Last updated on 2014-09-17 11:48:47 -0700
This library provides a Qt implementation of the DBusMenu specs, which goal is to expose menus on DBus.
This package is known to build and work properly using an LFS-7.6 platform.
Download (HTTP): http://launchpad.net/libdbusmenu-qt/trunk/0.9.2/+download/libdbusmenu-qt-0.9.2.tar.bz2
Download MD5 sum: 9a49484927669cd2ec91b3bf9ba8b79e
Download size: 37 KB
Estimated disk space required: 3.8 MB
Estimated build time: 0.3 SBU
QJson-0.8.1 (for building the test suite) and Doxygen-1.8.8 (for building the API documentation)
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/libdbusmenu-qt
Install libdbusmenu-qt by running the following commands:
mkdir build && cd build && cmake -DCMAKE_INSTALL_PREFIX=/usr \ -DCMAKE_BUILD_TYPE=Release \ -DWITH_DOC=OFF .. && make
To test the results (QJson must be installed), issue: make -k check.
Now, as the root
user:
make install
-DCMAKE_BUILD_TYPE=Release
: This
switch is used to build without debugging symbols and apply a
higher level of compiler optimizations.
-DWITH_DOC=OFF
: This option is
set to avoid building the API documentation. Omit it if you
have doxygen installed and
want the documentation.
Last updated on 2014-09-15 22:13:43 -0700
The libESMTP package contains the libESMTP libraries which are used by some programs to manage email submission to a mail transport layer.
This package is known to build and work properly using an LFS-7.6 platform.
Download (HTTP): http://www.stafford.uklinux.net/libesmtp/libesmtp-1.0.6.tar.bz2
Download (FTP): ftp://mirror.ovh.net/gentoo-distfiles/distfiles/libesmtp-1.0.6.tar.bz2
Download MD5 sum: bf3915e627fd8f35524a8fdfeed979c8
Download size: 364 KB
Estimated disk space required: 7.1 MB
Estimated build time: 0.1 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 2014-09-20 21:51:52 -0700
The libffi library provides a portable, high level programming interface to various calling conventions. This allows a programmer to call any function specified by a call interface description at run time.
This package is known to build and work properly using an LFS-7.6 platform.
Download (FTP): ftp://sourceware.org/pub/libffi/libffi-3.1.tar.gz
Download MD5 sum: f5898b29bbfd70502831a212d9249d10
Download size: 916 KB
Estimated disk space required: 6.5 MB (additional 1.7 MB for the tests)
Estimated build time: less than 0.1 SBU (additional 0.6 SBU for the tests)
DejaGnu-1.5.1 (required to run the testsuite)
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/libffi
Install libffi by running the following commands:
sed -e '/^includesdir/ s:$(libdir)/@PACKAGE_NAME@-@PACKAGE_VERSION@/include:$(includedir):' \ -i include/Makefile.in && sed -e '/^includedir/ s:${libdir}/@PACKAGE_NAME@-@PACKAGE_VERSION@/include:@includedir@:' \ -e 's/^Cflags: -I${includedir}/Cflags:/' \ -i libffi.pc.in && ./configure --prefix=/usr --disable-static && make
To test the results, issue: make check.
Now, as the root
user:
make install
sed ... include/Makefile.in and sed ... libffi.pc.in: Make package install headers into /usr/include instead of /usr/lib/libffi-3.1/include.
--disable-static
:
This switch prevents installation of static versions of the
libraries.
Last updated on 2014-09-09 12:00:35 -0700
The libgee package is a collection library providing GObject based interfaces and classes for commonly used data structures.
This package is known to build and work properly using an LFS-7.6 platform.
Download (HTTP): http://ftp.gnome.org/pub/gnome/sources/libgee/0.6/libgee-0.6.8.tar.xz
Download (FTP): ftp://ftp.gnome.org/pub/gnome/sources/libgee/0.6/libgee-0.6.8.tar.xz
Download MD5 sum: 2688c24f9a12e7616ee808f9092d0afe
Download size: 433 KB
Estimated disk space required: 21 MB
Estimated build time: 0.2 SBU
gobject-introspection-1.40.0 and Vala-0.24.0
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/libgee
Install libgee 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 2014-09-13 22:25:33 -0700
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.
This package is known to build and work properly using an LFS-7.6 platform.
Download (FTP): ftp://ftp.gnupg.org/gcrypt/libgcrypt/libgcrypt-1.6.2.tar.bz2
Download MD5 sum: b54395a93cb1e57619943c082da09d5f
Download size: 2.4 MB
Estimated disk space required: 38 MB (additional 7 MB SBU for docs)
Estimated build time: 0.3 SBU (additional 0.1 SBU for docs and 0.8 SBU for tests)
libcap-2.24 with PAM and Pth-2.0.7
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 texlive-20140525 installed to build the PDF and PostScript documentation), 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 -dm755 /usr/share/doc/libgcrypt-1.6.2 && install -v -m644 README doc/{README.apichanges,fips*,libgcrypt*} \ /usr/share/doc/libgcrypt-1.6.2
If you built the additional documentation, install it by
issuing the following commands as the root
user:
install -v -dm755 /usr/share/doc/libgcrypt-1.6.2/html && install -v -m644 doc/gcrypt.html/* \ /usr/share/doc/libgcrypt-1.6.2/html && install -v -m644 doc/gcrypt_nochunks.html \ /usr/share/doc/libgcrypt-1.6.2 && install -v -m644 doc/gcrypt.{pdf,ps,dvi,txt,texi} \ /usr/share/doc/libgcrypt-1.6.2
--with-capabilities
: This option
enables libcap2 support.
Last updated on 2014-09-10 06:19:10 -0700
The libgpg-error package contains a library that defines common error values for all GnuPG components. .
This package is known to build and work properly using an LFS-7.6 platform.
Download (FTP): ftp://ftp.gnupg.org/gcrypt/libgpg-error/libgpg-error-1.13.tar.bz2
Download MD5 sum: fe0cfa7e15262ef8fdeee366109e9ff6
Download size: 484 KB
Estimated disk space required: 6.9 MB
Estimated build time: less than 0.1 SBU
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/libgpg-error
Install libgpg-error by running the following commands:
./configure --prefix=/usr --disable-static && 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.13/README
--disable-static
:
This switch prevents installation of static versions of the
libraries.
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 2014-09-10 06:19:10 -0700
The libgsf package contains the library used for providing an extensible input/output abstraction layer for structured file formats.
This package is known to build and work properly using an LFS-7.6 platform.
Download (HTTP): http://ftp.gnome.org/pub/gnome/sources/libgsf/1.14/libgsf-1.14.30.tar.xz
Download (FTP): ftp://ftp.gnome.org/pub/gnome/sources/libgsf/1.14/libgsf-1.14.30.tar.xz
Download MD5 sum: e7b672ef37ef6a853ce149c03e4d3a63
Download size: 572 KB
Estimated disk space required: 14 MB (additional 2 MB for tests)
Estimated build time: 0.2 SBU (additional 0.1 SBU for tests)
gdk-pixbuf-2.30.8 (To build gsf-office-thumbnailer)
gobject-introspection-1.40.0 and GTK-Doc-1.20
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/libgsf
Install libgsf by running the following commands:
./configure --prefix=/usr --disable-static && make
To test the results, issue: make check.
Now, as the root
user:
make install
--disable-static
:
This switch prevents installation of static versions of the
libraries.
--enable-gtk-doc
: Use this
parameter if GTK-Doc is
installed and you wish to rebuild and install the API
documentation.
is a simple archive utility, somewhat similar to tar(1). |
|
is used internally by GNOME applications such as Nautilus to generate thumbnails of several types of office application files. |
|
is used to extract Visual Basic for Applications macros from files. |
|
contains the libgsf API functions. |
Last updated on 2014-09-19 13:13:19 -0700
The libgusb package contains the GObject wrappers for libusb-1.0 that makes it easy to do asynchronous control, bulk and interrupt transfers with proper cancellation and integration into a mainloop.
This package is known to build and work properly using an LFS-7.6 platform.
Download (HTTP): http://people.freedesktop.org/~hughsient/releases/libgusb-0.1.6.tar.xz
Download MD5 sum: 672058e7a49a38259ab6ea01470c2fa2
Download size: 260 KB
Estimated disk space required: 4.2 MB
Estimated build time: 0.1 SBU
libusb-1.0.19 and udev-extras (from eudev) (for GUdev)
gobject-introspection-1.40.0 and Vala-0.24.0
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/libgusb
Install libgusb by running the following commands:
./configure --prefix=/usr --disable-static && make
To test the results, issue: make check.
Now, as the root
user:
make install
--disable-static
:
This switch prevents installation of static versions of the
libraries.
--enable-gtk-doc
: Use this
parameter if GTK-Doc is
installed and you wish to rebuild and install the API
documentation.
Last updated on 2014-09-17 21:56:07 -0700
The libical package contains an implementation of the iCalendar protocols and data formats.
This package is known to build and work properly using an LFS-7.6 platform.
Download (HTTP): http://downloads.sourceforge.net/freeassociation/libical-1.0.tar.gz
Download MD5 sum: 4438c31d00ec434f02867a267a92f8a1
Download size: 1.2 MB
Estimated disk space required: 20 MB
Estimated build time: 0.4 SBU
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/libical
Install libical by running the following commands:
mkdir build && cd build && cmake -DCMAKE_INSTALL_PREFIX=/usr \ -DCMAKE_BUILD_TYPE=Release \ .. && make
To test the results, issue: make test.
Now, as the root
user:
make install
-DCMAKE_BUILD_TYPE=Release
:
This switch is used to apply higher level of the compiler
optimizations.
Last updated on 2014-09-12 09:27:12 -0700
libidn is a package designed for internationalized string handling based on the Stringprep, Punycode and IDNA 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.
This package is known to build and work properly using an LFS-7.6 platform.
Download (HTTP): http://ftp.gnu.org/gnu/libidn/libidn-1.29.tar.gz
Download (FTP): ftp://ftp.gnu.org/gnu/libidn/libidn-1.29.tar.gz
Download MD5 sum: 2b67bb507207af379f9461e1307dc84b
Download size: 3.3 MB
Estimated disk space required: 23 MB
Estimated build time: 0.2 SBU
Pth-2.0.7, Emacs-24.3, GTK-Doc-1.20, OpenJDK-1.7.0.65/IcedTea-2.5.2, DotGNU Portable.NET or Mono, and Valgrind-3.10.0
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/libidn
Install libidn by running the following commands:
./configure --prefix=/usr --disable-static && make
To test the results, issue: make check.
Now, as the root
user:
make install && find doc -name "Makefile*" -delete && rm -rf -v doc/{gdoc,idn.1,stamp-vti,man,texi} && mkdir -v /usr/share/doc/libidn-1.29 && cp -r -v doc/* /usr/share/doc/libidn-1.29
--disable-static
:
This switch prevents installation of static versions of the
libraries.
--enable-gtk-doc
: Use this
parameter if GTK-Doc is
installed and you wish to rebuild and install 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 2014-09-14 12:09:32 -0700
libiodbc is an API to ODBC compatible databases.
This package is known to build and work properly using an LFS-7.6 platform.
Download (HTTP): http://downloads.sourceforge.net/project/iodbc/iodbc/3.52.9/libiodbc-3.52.9.tar.gz
Download MD5 sum: 98a681e06a1df809af9ff9a16951b8b6
Download size: 1.0 MB
Estimated disk space required: 28 MB
Estimated build time: 0.3 SBU
GTK+-2.24.24 (to create the GUI admin tool)
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/libiodbc
Install libiodbc by running the following commands:
./configure --prefix=/usr \ --with-iodbc-inidir=/etc/iodbc \ --includedir=/usr/include/iodbc \ --disable-libodbc \ --disable-static && make
This package does not come with a test suite.
Now, as the root
user:
make install
--with-iodbc-inidir=/etc/iodbc
:
libiodbc will install
configuration files in this directory.
--includedir=/usr/include/iodbc
:
This installs the interface headers to a private directory to
avoid a conflict with headers installed by unixODBC.
--disable-libodbc
:
This prevents the installation of the libodbc.so
symbolic link to avoid a
conflict with unixODBC.
--disable-static
:
This switch prevents installation of static versions of the
libraries.
Last updated on 2014-09-20 21:51:52 -0700
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.
This package is known to build and work properly using an LFS-7.6 platform.
Download (FTP): ftp://ftp.gnupg.org/gcrypt/libksba/libksba-1.3.0.tar.bz2
Download MD5 sum: cd86fad9c9d360b2cf80449f8a4a4075
Download size: 616 KB
Estimated disk space required: 9.1 MB
Estimated build time: 0.1 SBU
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/libksba
Install Libksba by running the following commands:
./configure --prefix=/usr && make
To test the results, issue: make check.
Now, as the root
user:
make install
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 2014-09-17 11:48:47 -0700
This package provides a library for learning linear classifiers for large scale applications. It supports Support Vector Machines (SVM) with L2 and L1 loss, logistic regression, multi class classification and also Linear Programming Machines (L1-regularized SVMs). Its computational complexity scales linearly with the number of training examples making it one of the fastest SVM solvers around.
This package is known to build and work properly using an LFS-7.6 platform.
Download (HTTP): http://www.csie.ntu.edu.tw/~cjlin/liblinear/oldfiles/liblinear-1.94.tar.gz
Download MD5 sum: f52e1f2dd6bccb58977a334bba0bbf90
Download size: 328 KB
Estimated disk space required: 1.1 MB
Estimated build time: 0.1 SBU
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/liblinear
Install liblinear by running the following commands:
make lib
This package does not come with a test suite.
Now, as the root
user:
install -vm644 linear.h /usr/include && install -vm755 liblinear.so.1 /usr/lib && ln -sfv liblinear.so.1 /usr/lib/liblinear.so
Last updated on 2014-09-14 12:09:32 -0700
This package is intended to provide a simple way for applications to take actions based on a system or user-specified paper size.
This package is known to build and work properly using an LFS-7.6 platform.
Download (HTTP): http://ftp.debian.org/debian/pool/main/libp/libpaper/libpaper_1.1.24+nmu3.tar.gz
Download (FTP): ftp://ftp.debian.org/debian/pool/main/libp/libpaper/libpaper_1.1.24+nmu3.tar.gz
Download MD5 sum: 2d7239e4e7cb295aff54814f0d97992d
Download size: 361 KB
Estimated disk space required: 2.6 MB
Estimated build time: less than 0.1 SBU
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/libpaper
Install libpaper by running the following commands:
./configure --prefix=/usr \ --sysconfdir=/etc \ --disable-static && make
This package does not come with a test suite.
Now, as the root
user:
make install && mkdir -vp /etc/libpaper.d && cat > /usr/bin/run-parts << "EOF" #!/bin/sh # run-parts: Runs all the scripts found in a directory. # from Slackware, by Patrick J. Volkerding with ideas borrowed # from the Red Hat and Debian versions of this utility. # keep going when something fails set +e if [ $# -lt 1 ]; then echo "Usage: run-parts <directory>" exit 1 fi if [ ! -d $1 ]; then echo "Not a directory: $1" echo "Usage: run-parts <directory>" exit 1 fi # There are several types of files that we would like to # ignore automatically, as they are likely to be backups # of other scripts: IGNORE_SUFFIXES="~ ^ , .bak .new .rpmsave .rpmorig .rpmnew .swp" # Main loop: for SCRIPT in $1/* ; do # If this is not a regular file, skip it: if [ ! -f $SCRIPT ]; then continue fi # Determine if this file should be skipped by suffix: SKIP=false for SUFFIX in $IGNORE_SUFFIXES ; do if [ ! "$(basename $SCRIPT $SUFFIX)" = "$(basename $SCRIPT)" ]; then SKIP=true break fi done if [ "$SKIP" = "true" ]; then continue fi # If we've made it this far, then run the script if it's executable: if [ -x $SCRIPT ]; then $SCRIPT || echo "$SCRIPT failed." fi done exit 0 EOF chmod -v 755 /usr/bin/run-parts
--disable-static
:
This switch prevents installation of static versions of the
libraries.
mkdir -pv /etc/libpaper.d: libpaper expects that packages will install files into this directory.
cat > /usr/bin/run-parts
<< "EOF" : paperconfig
is a script which will invoke
run-parts if
/etc/libpaper.d
exists. No
other BLFS package installs this, so we create it here.
Last updated on 2014-09-17 21:56:07 -0700
The libsigc++ package implements a typesafe callback system for standard C++.
This package is known to build and work properly using an LFS-7.6 platform.
Download (HTTP): http://ftp.gnome.org/pub/gnome/sources/libsigc++/2.3/libsigc++-2.3.2.tar.xz
Download (FTP): ftp://ftp.gnome.org/pub/gnome/sources/libsigc++/2.3/libsigc++-2.3.2.tar.xz
Download MD5 sum: e75fbd6f5cc34d058a9dabec96245dc8
Download size: 3.5 MB
Estimated disk space required: 34 MB (additional 12 MB for the tests)
Estimated build time: less than 0.1 SBU (additional 0.1 SBU for the tests)
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/libsigc++
Install libsigc++ by running the following commands:
sed -i '/type_traits.h/i\#include <sigc++/visit_each.h>' \ sigc++/macros/limit_reference.h.m4 && ./configure --prefix=/usr && make
To test the results, issue: make check.
Now, as the root
user:
make install
sed -i '/type_traits.h/i\#include <sigc++/visit_each.h>' sigc++/macros/limit_reference.h.m4: This sed fixes a bug which prevents inkscape compiling.
Last updated on 2014-09-14 13:18:45 -0700
This is a library for handling page faults in user mode. A page fault occurs when a program tries to access to a region of memory that is currently not available. Catching and handling a page fault is a useful technique for implementing pageable virtual memory, memory-mapped access to persistent databases, generational garbage collectors, stack overflow handlers, and distributed shared memory.
This package is known to build and work properly using an LFS-7.6 platform.
Download (HTTP): http://ftp.gnu.org/gnu/libsigsegv/libsigsegv-2.10.tar.gz
Download (FTP): ftp://ftp.gnu.org/gnu/libsigsegv/libsigsegv-2.10.tar.gz
Download MD5 sum: 7f96fb1f65b3b8cbc1582fb7be774f0f
Download size: 393 KB
Estimated disk space required: 3.2 MB
Estimated build time: less than 0.1 SBU
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/libsigsegv
Install libsigsegv by running the following commands:
./configure --prefix=/usr \ --enable-shared \ --disable-static && make
To test the results, issue: make check.
Now, as the root
user:
make install
--enable-shared
: This switch
ensures that shared libraries are compiled.
--disable-static
:
This switch prevents installation of static versions of the
libraries.
Last updated on 2014-09-12 22:13:42 -0700
libtasn1 is a highly portable C library that encodes and decodes DER/BER data following an ASN.1 schema.
This package is known to build and work properly using an LFS-7.6 platform.
Download (HTTP): http://ftp.gnu.org/gnu/libtasn1/libtasn1-4.1.tar.gz
Download (FTP): ftp://ftp.gnu.org/gnu/libtasn1/libtasn1-4.1.tar.gz
Download MD5 sum: f9b37df3c2c9c6439d8bf427bfbfc521
Download size: 1.8 MB
Estimated disk space required: 11 MB
Estimated build time: 0.2 SBU (additional 0.1 SBU for the tests)
GTK-Doc-1.20 and Valgrind-3.10.0
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/libtasn1
Install libtasn1 by running the following commands:
./configure --prefix=/usr --disable-static && make
To test the results, issue: make check.
Now, as the root
user:
make install
If you did not pass the --enable-gtk-doc
parameter to the
configure
script, you can install the API documentation using the
following command as the root
user:
make -C doc/reference install-data-local
--disable-static
:
This switch prevents installation of static versions of the
libraries.
--enable-gtk-doc
: Use this
parameter if GTK-Doc is
installed and you wish to rebuild and install the API
documentation.
Last updated on 2014-09-10 06:19:10 -0700
libunistring is a library that provides functions for manipulating Unicode strings and for manipulating C strings according to the Unicode standard.
This package is known to build and work properly using an LFS-7.6 platform.
Download (HTTP): http://ftp.gnu.org/gnu/libunistring/libunistring-0.9.4.tar.gz
Download (FTP): ftp://ftp.gnu.org/gnu/libunistring/libunistring-0.9.4.tar.gz
Download MD5 sum: c24a6a3838d9ad4a41a62549312c4226
Download size: 2.9 MB
Estimated disk space required: 53 MB
Estimated build time: 1 SBU
texlive-20140525 (to rebuild the documentation)
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/libunistring
Install libunistring 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 2014-09-13 22:25:33 -0700
The libusb package contains a library used by some applications for USB device access.
This package is known to build and work properly using an LFS-7.6 platform.
Download (HTTP): http://downloads.sourceforge.net/libusb/libusb-1.0.19.tar.bz2
Download MD5 sum: f9e2bb5879968467e5ca756cb4e1fa7e
Download size: 512 KB
Estimated disk space required: 7.3 MB (additional 2.8 MB for API documentation)
Estimated build time: less than 0.1 SBU
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/libusb
Install libusb by running the following commands:
./configure --prefix=/usr --disable-static && make
If Doxygen is installed and you wish to build the API documentation, issue the following command:
make -C doc docs
This package does not come with a test suite.
Now, as the root
user:
make install
If you built the API documentation, install it using the
following commands as the root
user:
install -v -d -m755 /usr/share/doc/libusb-1.0.19/apidocs && install -v -m644 doc/html/* \ /usr/share/doc/libusb-1.0.19/apidocs
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.
For more details on setting up USB devices, see the section called “USB Device Issues”.
Last updated on 2014-09-13 17:48:40 -0700
The libusb-compat package aims to look, feel and behave exactly like libusb-0.1. It is a compatibility layer needed by packages that have not been upgraded to the libusb-1.0 API.
This package is known to build and work properly using an LFS-7.6 platform.
Download (HTTP): http://downloads.sourceforge.net/libusb/libusb-compat-0.1.5.tar.bz2
Download MD5 sum: 2780b6a758a1e2c2943bdbf7faf740e4
Download size: 276 KB
Estimated disk space required: 2.4 MB
Estimated build time: less than 0.1 SBU
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/libusb-compat
Install libusb-compat by running the following commands:
./configure --prefix=/usr --disable-static && make
This package does not come with a test suite.
Now, as the root
user:
make install
Last updated on 2014-09-17 11:48:47 -0700
The libxml2 package contains libraries and utilities used for parsing XML files.
This package is known to build and work properly using an LFS-7.6 platform.
Download (HTTP): http://xmlsoft.org/sources/libxml2-2.9.1.tar.gz
Download (FTP): ftp://xmlsoft.org/libxml2/libxml2-2.9.1.tar.gz
Download MD5 sum: 9c0cfef285d5c4a5c80d00904ddab380
Download size: 5.0 MB
Estimated disk space required: 100 MB
Estimated build time: 0.6 SBU
Optional Testsuite: http://www.w3.org/XML/Test/xmlts20130923.tar.gz - This enables make check to do complete testing.
Python-2.7.8 (to build and install a Python library module, additionally it is required to run the full suite of tests)
Some packages which utilize libxml2 (such as GNOME Doc Utils) need the Python module installed to function properly and some packages will not build properly if the Python module is not available.
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/libxml2
If you downloaded the testsuite, issue the following command:
tar xf ../xmlts20130923.tar.gz
Install libxml2 by running the following commands:
./configure --prefix=/usr --disable-static --with-history && make
To test the results, issue: make check.
Now, as the root
user:
make install
--disable-static
:
This switch prevents installation of static versions of the
libraries.
--with-history
: This switch
enables Readline support
when running xmlcatalog or xmllint in shell mode.
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. |
|
provides functions for programs to parse files that use the XML format. |
Last updated on 2014-09-10 06:19:10 -0700
The libxslt package contains
XSLT libraries used for extending libxml2
libraries to support XSLT files.
This package is known to build and work properly using an LFS-7.6 platform.
Download (HTTP): http://xmlsoft.org/sources/libxslt-1.1.28.tar.gz
Download (FTP): ftp://xmlsoft.org/libxslt/libxslt-1.1.28.tar.gz
Download MD5 sum: 9667bf6f9310b957254fdcf6596600b7
Download size: 3.3 MB
Estimated disk space required: 40 MB
Estimated build time: 0.3 SBU
docbook-xml-4.5 and docbook-xsl-1.78.1
libgcrypt-1.6.2 and Python-2.7.8
Although it is not a direct dependency, many applications using libxslt will expect docbook-xml-4.5 and docbook-xsl-1.78.1 to be present.
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/libxslt
Install libxslt by running the following commands:
./configure --prefix=/usr --disable-static && make
To test the results, issue: make check.
Now, as the root
user:
make install
--disable-static
:
This switch prevents installation of static versions of the
libraries.
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. |
|
is used to provide extensions to XSLT functions. |
|
provides extensions to the |
Last updated on 2014-09-10 06:19:10 -0700
The libzeitgeist package contains a client library used to access and manage the Zeitgeist event log from languages such as C and Vala. Zeitgeist is a service which logs the user's activities and events (files opened, websites visited, conversations hold with other people, etc.) and makes the relevant information available to other applications.
This package is known to build and work properly using an LFS-7.6 platform.
Download (HTTP): https://launchpad.net/libzeitgeist/0.3/0.3.18/+download/libzeitgeist-0.3.18.tar.gz
Download MD5 sum: d63a37295d01a58086d0d4ae26e604c2
Download size: 516 KB
Estimated disk space required: 7.0 MB
Estimated build time: 0.1 SBU
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/libzeitgeist
Install libzeitgeist by running the following commands:
./configure --prefix=/usr --disable-static && make
This package does not have a working testsuite.
Now, as the root
user:
make install
--disable-static
:
This switch prevents installation of static versions of the
libraries.
--enable-gtk-doc
: Use this
parameter if GTK-Doc is
installed and you wish to rebuild and install the API
documentation.
Last updated on 2014-09-15 22:13:43 -0700
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.
This package is known to build and work properly using an LFS-7.6 platform.
Download (HTTP): http://www.oberhumer.com/opensource/lzo/download/lzo-2.08.tar.gz
Download MD5 sum: fcec64c26a0f4f4901468f360029678f
Download size: 575 KB
Estimated disk space required: 8.4 MB
Estimated build time: 0.3 SBU (additional 0.3 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 \ --disable-static \ --docdir=/usr/share/doc/lzo-2.08 && 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
--disable-static
:
This switch prevents installation of static versions of the
libraries.
Last updated on 2014-09-11 23:27:59 -0700
The mtdev package contains Multitouch Protocol Translation Library which is used to transform all variants of kernel MT (Multitouch) events to the slotted type B protocol.
This package is known to build and work properly using an LFS-7.6 platform.
Download (HTTP): http://bitmath.org/code/mtdev/mtdev-1.1.5.tar.bz2
Download MD5 sum: 52c9610b6002f71d1642dc1a1cca5ec1
Download size: 268 KB
Estimated disk space required: 2.4 MB
Estimated build time: less than 0.1 SBU
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/mtdev
Install mtdev by running the following commands:
./configure --prefix=/usr --disable-static && make
This package does not come with a test suite.
Now, as the root
user:
make install
--disable-static
:
This switch prevents installation of static versions of the
libraries.
Last updated on 2014-09-10 06:19:10 -0700
Netscape Portable Runtime (NSPR) provides a platform-neutral API for system level and libc like functions.
This package is known to build and work properly using an LFS-7.6 platform.
Download (HTTP): http://ftp.mozilla.org/pub/mozilla.org/nspr/releases/v4.10.7/src/nspr-4.10.7.tar.gz
Download (FTP): ftp://ftp.mozilla.org/pub/mozilla.org/nspr/releases/v4.10.7/src/nspr-4.10.7.tar.gz
Download MD5 sum: 6e06919e4b56efed501e05d8b45ec10e
Download size: 1.1 MB
Estimated disk space required: 11 MB
Estimated build time: less than 0.1 SBU
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/nspr
Install NSPR by running the following commands:
cd nspr && sed -ri 's#^(RELEASE_BINS =).*#\1#' pr/src/misc/Makefile.in && sed -i 's#$(LIBRARY) ##' config/rules.mk && ./configure --prefix=/usr \ --with-mozilla \ --with-pthreads \ $([ $(uname -m) = x86_64 ] && echo --enable-64bit) && make
This package does not come with a test suite.
Now, as the root
user:
make install
sed -ri 's#^(RELEASE_BINS =).*#\1#' pr/src/misc/Makefile.in: This sed disables installing two unneeded scripts.
sed -i 's#$(LIBRARY) ##' config/rules.mk: This sed disables installing the static libraries.
--with-mozilla
: This
parameter adds Mozilla support to the libraries (required if
you want to build any other Mozilla products and link them to
these libraries).
--with-pthreads
: This
parameter forces use of the system pthread library.
$([ $(uname -m) = x86_64 ]
&& echo --enable-64bit)
: The
--enable-64bit parameter is required on an x86_64 system to
prevent configure failing with a
claim that this is a system without pthread support. The [
$(uname -m) = x86_64 ] test ensures it has no effect on a 32
bit system.
provides compiler and linker options to other packages that use NSPR. |
|
contains functions that provide platform independence for non-GUI operating system facilities such as threads, thread synchronization, normal file and network I/O, interval timing and calendar time, basic memory management and shared library linking. |
|
contains functions that implement many of the features offered by libnspr4 |
|
contains functions that provide data structures. |
Last updated on 2014-09-09 12:00:35 -0700
The OpenOBEX package contains a library that implements Object Exchange Protocol used for binary file transfers between devices.
This package is known to build and work properly using an LFS-7.6 platform.
Download (HTTP): http://downloads.sourceforge.net/openobex/openobex-1.7.1-Source.tar.gz
Download MD5 sum: 3181bfed9cb7db591605391068cb0085
Download size: 136 KB
Estimated disk space required: 3.6 MB
Estimated build time: less than 0.1 SBU
Doxygen-1.8.8, libxslt-1.1.28, OpenJDK-1.7.0.65/IcedTea-2.5.2, and xmlto-0.0.26
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/openobex
OpenOBEX installs a udev
rule that requires a group named plugdev. Create that group
as the root
user:
groupadd -g 90 plugdev
Install OpenOBEX by running the following commands:
mkdir build && cd build && cmake -DCMAKE_INSTALL_PREFIX=/usr \ -DCMAKE_INSTALL_LIBDIR=lib \ -DCMAKE_BUILD_TYPE=Release \ .. && make
This package does not come with a test suite.
Now, as the root
user:
make install
-DCMAKE_BUILD_TYPE=Release
:
This switch is used to apply higher level of the compiler
optimizations.
Last updated on 2014-09-22 15:13:35 -0700
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.
This package is known to build and work properly using an LFS-7.6 platform.
Download (HTTP): http://downloads.sourceforge.net/pcre/pcre-8.35.tar.bz2
Download (FTP): ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/pcre-8.35.tar.bz2
Download MD5 sum: 6aacb23986adccd9b3bc626c00979958
Download size: 1.5 MB
Estimated disk space required: 21 MB (additional 1 MB for the tests)
Estimated build time: 0.3 SBU
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/pcre
Install PCRE by running the following commands:
./configure --prefix=/usr \ --docdir=/usr/share/doc/pcre-8.35 \ --enable-unicode-properties \ --enable-pcre16 \ --enable-pcre32 \ --enable-pcregrep-libz \ --enable-pcregrep-libbz2 \ --enable-pcretest-libreadline \ --disable-static && make
To test the results, issue: make check.
Now, as the root
user:
make install && mv -v /usr/lib/libpcre.so.* /lib && ln -sfv ../../lib/$(readlink /usr/lib/libpcre.so) /usr/lib/libpcre.so
--enable-unicode-properties
:
This switch enables Unicode properties support and includes
the code for handling UTF-8/16/32 character strings in the
library. You need this switch if you are going to build
GLib-2.40.0 with the --with-pcre=system
switch.
--enable-pcre16
: This
switch enables 16 bit character support.
--enable-pcre32
: This
switch enables 32 bit character 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.
--enable-pcretest-libreadline
:
This switch adds line editing and history features to
pcretest
program.
--disable-static
:
This switch prevents installation of static versions of the
libraries.
mv -v /usr/lib/libpcre.so.* /lib: Moves the PCRE library on the root filesystem so that it is available in case grep gets reinstalled with PCRE support.
Last updated on 2014-09-09 12:00:35 -0700
The popt package contains the popt libraries which are used by some programs to parse command-line options.
This package is known to build and work properly using an LFS-7.6 platform.
Download (HTTP): http://rpm5.org/files/popt/popt-1.16.tar.gz
Download (FTP): ftp://anduin.linuxfromscratch.org/BLFS/svn/p/popt-1.16.tar.gz
Download MD5 sum: 3743beefa3dd6247a73f8f7a32c14c33
Download size: 702 kB
Estimated disk space required: 8 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:
./configure --prefix=/usr --disable-static && make
If you have Doxygen-1.8.8 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.16 && install -v -m644 doxygen/html/* /usr/share/doc/popt-1.16
--disable-static
:
This switch prevents installation of static versions of the
libraries.
Last updated on 2014-09-09 16:09:42 -0700
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.
This package is known to build and work properly using an LFS-7.6 platform.
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:
sed -i 's#$(LOBJS): Makefile#$(LOBJS): pth_p.h Makefile#' Makefile.in && ./configure --prefix=/usr \ --disable-static \ --mandir=/usr/share/man && make
To test the results, issue: make test.
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
sed -i 's#$(LOBJS)
...: This sed fixes a race condition
in the Makefile
. It allows you
to run make
with multiple jobs (e.g., make
-j4) .
--disable-static
: This option
stops it compiling a static version of the library.
--mandir=/usr/share/man
: This
option puts the man pages in /usr/share/man
and not /usr/man
.
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 2014-09-12 12:02:55 -0700
The Ptlib (Portable Tools Library) package contains a class library that has its genesis many years ago as PWLib (portable Windows Library), a method to produce applications to run on various platforms.
This package is known to build and work properly using an LFS-7.6 platform.
Download (HTTP): http://ftp.gnome.org/pub/gnome/sources/ptlib/2.10/ptlib-2.10.10.tar.xz
Download (FTP): ftp://ftp.gnome.org/pub/gnome/sources/ptlib/2.10/ptlib-2.10.10.tar.xz
Download MD5 sum: 1fd609e25f101393bb7e42fbf874c174
Download size: 2.5 MB
Estimated disk space required: 105 MB
Estimated build time: 1.0 SBU
alsa-lib-1.0.28 and OpenSSL-1.0.1i
Cyrus SASL-2.1.26, libdc1394, libraw1394, Lua-5.2.3, OpenLDAP-2.4.39, PulseAudio-5.0, SDL-1.2.15, unixODBC-2.3.2, and Video4Linux
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/ptlib
Install Ptlib by running the following commands:
patch -Np1 -i ../ptlib-2.10.10-bison_fixes-1.patch && ./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/libpt.so.2.10.10
Last updated on 2014-09-18 14:33:53 -0700
Qca aims to provide a straightforward and cross-platform crypto API, using Qt datatypes and conventions. Qca separates the API from the implementation, using plugins known as Providers.
This package is known to build and work properly using an LFS-7.6 platform.
Download (HTTP): http://delta.affinix.com/download/qca/2.0/qca-2.0.3.tar.bz2
Download MD5 sum: fc15bd4da22b8096c51fcfe52d2fa309
Download size: 4.3 MB
Estimated disk space required: 110 MB
Estimated build time: 2.2 SBU
Qt-4.8.6 and Which-2.20
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/qca
Install Qca by running the following commands:
sed -i '217s@set@this->set@' src/botantools/botan/botan/secmem.h && ./configure --prefix=/usr \ --no-separate-debug-info \ --certstore-path=/etc/ssl/ca-bundle.crt && make
To test the results, issue make test.
Now, as the root
user:
make install
sed -i '217s@set@...: This sed fixes compiling with GCC 4.7 and newer. It is safe to omit when compiling with older GCC versions.
--certstore-path=/etc/ssl/ca-bundle.crt
:
Causes the build to use the system-installed CA Certificates
instead of a bundled copy.
--no-separate-debug-info
:
Prevents installation of a separate library and program file
with debug information.
Last updated on 2014-09-15 22:13:43 -0700
QJson is a Qt-based library that maps JSON data to QVariant objects and vice versa.
This package is known to build and work properly using an LFS-7.6 platform.
Download (HTTP): http://downloads.sourceforge.net/qjson/qjson-0.8.1.tar.bz2
Download MD5 sum: 323fbac54a5a20c0b8fe45c1ced03e2d
Download size: 64 KB
Estimated disk space required: 1.4 MB
Estimated build time: less than 0.1 SBU
Qt-4.8.6 and CMake-3.0.1
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/qjson
Install QJson by running the following commands:
mkdir build && cd build && cmake -DCMAKE_INSTALL_PREFIX=/usr \ -DCMAKE_BUILD_TYPE=Release \ .. && make
This package does not contain a test suite.
Now, as the root
user:
make install
-DCMAKE_BUILD_TYPE=Release
: This
switch is used to build without debugging symbols and apply a
higher level of compiler optimizations.
Last updated on 2014-09-15 22:13:43 -0700
Talloc provides a hierarchical, reference counted memory pool system with destructors. It is the core memory allocator used in Samba.
This package is known to build and work properly using an LFS-7.6 platform.
Download (HTTP): http://samba.org/ftp/talloc/talloc-2.1.1.tar.gz
Download (FTP): ftp://samba.org/pub/talloc/talloc-2.1.1.tar.gz
Download MD5 sum: 5dffb86414218a91864ed4453ba9be07
Download size: 409 KB
Estimated disk space required: 6.4 MB
Estimated build time: 0.3 SBU
docbook-xml-4.5, docbook-xsl-1.78.1 and libxslt-1.1.28 (To generate man pages) and Python-2.7.8 (To build Python module).
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/talloc
Install Talloc by running the following commands:
./configure --prefix=/usr && make
To check the results, issue make check.
Now, as the root
user:
make install
Last updated on 2014-09-20 19:22:09 -0700
This package contains tools for reading information from an MS Word document.
This package is known to build and work properly using an LFS-7.6 platform.
Download (HTTP): http://www.abisource.com/downloads/wv/1.2.9/wv-1.2.9.tar.gz
Download MD5 sum: dbccf2e9f747e50c913b7e3d126b73f7
Download size: 608 KB
Estimated disk space required: 25 MB
Estimated build time: 0.4 SBU
libgsf-1.14.30 and libpng-1.6.13
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/wv
Install wv by running the following commands:
./configure --prefix=/usr && make
This package does not have a testsuite.
Now, as the root
user:
make install
--disable-static
:
This switch prevents installation of static versions of the
libraries.
Last updated on 2014-09-22 11:20:08 -0700
Xapian is an open source search engine library.
This package is known to build and work properly using an LFS-7.6 platform.
Download (HTTP): http://oligarchy.co.uk/xapian/1.2.17/xapian-core-1.2.17.tar.xz
Download MD5 sum: 493117bf45e5471e86b4fc5d6d8069dc
Download size: 3.0 MB
Estimated disk space required: 45 MB (Additioansl 220 MB for tests)
Estimated build time: 1.5 SBU (Additioanl 22 SBU for tsts)
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/xapian
Install Xapian by running the following commands:
./configure --prefix=/usr \ --disable-static && make
To run the test suite, issue: make check.
Now, as the root
user:
make install
Last updated on 2014-09-17 11:48:47 -0700
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.
AAlib is a library to render any graphic into ASCII Art.
This package is known to build and work properly using an LFS-7.6 platform.
Download (HTTP): http://downloads.sourceforge.net/aa-project/aalib-1.4rc5.tar.gz
Download MD5 sum: 9801095c42bba12edebd1902bcf0a990
Download size: 388 KB
Estimated disk space required: 6.5 MB
Estimated build time: 0.1 SBU
X Window System, S-Lang-2.2.4, and GPM-1.20.7
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/aalib
Fix a minor problem with the included m4 file:
sed -i -e '/AM_PATH_AALIB,/s/AM_PATH_AALIB/[&]/' aalib.m4
Install AAlib by running the following commands:
./configure --prefix=/usr \ --infodir=/usr/share/info \ --mandir=/usr/share/man \ --disable-static && 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 2014-09-11 23:27:59 -0700
The Babl package is a dynamic, any to any, pixel format translation library.
This package is known to build and work properly using an LFS-7.6 platform.
Download (HTTP): http://download.gimp.org/pub/babl/0.1/babl-0.1.10.tar.bz2
Download MD5 sum: 9e1542ab5c0b12ea3af076a9a2f02d79
Download size: 440 KB
Estimated disk space required: 12 MB
Estimated build time: 0.2 SBU
gobject-introspection-1.40.0 and Vala-0.24.0
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/babl
Install Babl 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/gtk-doc/html/babl/graphics && install -v -m644 docs/*.{css,html} /usr/share/gtk-doc/html/babl && install -v -m644 docs/graphics/*.{html,png,svg} /usr/share/gtk-doc/html/babl/graphics
install -v -m755 -d
/usr/share/gtk-doc/html/babl/graphics
: This and
the subsequent commands install the library html
documentation under /usr/share/gtk-doc/html
where other gtk
packages put the programmer-oriented documentation.
--with-vala
: Use vapigen so that
vala programs can use this
application - not enabled by default, may cause breakage when
building gegl.
Last updated on 2014-09-13 17:48:40 -0700
Exiv2 is a C++ library and a command line utility for managing image metadata.
This package is known to build and work properly using an LFS-7.6 platform.
Download (HTTP): http://www.exiv2.org/exiv2-0.24.tar.gz
Download MD5 sum: b8a23dc56a98ede85c00718a97a8d6fc
Download size: 4.5 MB
Estimated disk space required: 36 MB
Estimated build time: 0.9 SBU
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/exiv2
Install Exiv2 by running the following commands:
./configure --prefix=/usr --disable-static && make
This package does not come with a test suite.
Now, as the root
user:
make install && chmod -v 755 /usr/lib/libexiv2.so
--disable-static
:
This switch prevents installation of static versions of the
libraries.
Last updated on 2014-09-17 11:48:47 -0700
The FreeType2 package contains a library which allows applications to properly render TrueType fonts.
This package is known to build and work properly using an LFS-7.6 platform.
Download (HTTP): http://downloads.sourceforge.net/freetype/freetype-2.5.3.tar.bz2
Download MD5 sum: d6b60f06bfc046e43ab2a6cbfd171d65
Download size: 1.7 MB
Estimated disk space required: 28 MB (includes installing additional documentation)
Estimated build time: 0.2 SBU
Additional Documentation
Download (HTTP): http://downloads.sourceforge.net/freetype/freetype-doc-2.5.3.tar.bz2
Download MD5 sum: e192ef88e84ddf10665f34cf418652fb
Download size: 108 KB
Which-2.20, Harfbuzz-0.9.35, (first, install without it, after it is installed, reinstall FreeType-2.5.3), and libpng-1.6.13
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.5.3.tar.bz2 --strip-components=2 -C docs
Install FreeType2 by running the following commands:
sed -i -e "/AUX.*.gxvalid/s@^# @@" \ -e "/AUX.*.otvalid/s@^# @@" \ modules.cfg && sed -ri -e 's:.*(#.*SUBPIXEL.*) .*:\1:' \ include/config/ftoption.h && ./configure --prefix=/usr --disable-static && 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.5.3 && cp -v -R docs/* /usr/share/doc/freetype-2.5.3
sed -e ...:
First command enables GX/AAT and OpenType table validation
and second command enables Subpixel Rendering and Subpixel
Hinting in order to improve font rendering. Note that
Subpixel Rendering may have patent issues. Be sure to read
the 'Other patent issues'
part
of http://www.freetype.org/patents.html
before enabling this option.
--disable-static
:
This switch prevents installation of static versions of the
libraries.
Last updated on 2014-09-10 06:19:10 -0700
The Fontconfig package contains a library and support programs used for configuring and customizing font access.
This package is known to build and work properly using an LFS-7.6 platform.
Download (HTTP): http://www.freedesktop.org/software/fontconfig/release/fontconfig-2.11.1.tar.bz2
Download MD5 sum: 824d000eb737af6e16c826dd3b2d6c90
Download size: 1.5 MB
Estimated disk space required: 17 MB
Estimated build time: 0.2 SBU
DocBook-utils-0.6.14 and libxml2-2.9.1
If you have DocBook Utils
installed and you remove the --disable-docs
parameter from
the configure
command below, you must have SGMLSpm-1.1 and
texlive-20140525 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 \ --docdir=/usr/share/doc/fontconfig-2.11.1 && make
To test the results, issue: make check.
Now, as the root
user:
make install
If you did not remove the --disable-docs
parameter from
the configure
command, you can install the pre-generated documentation by
using the following commands as the root
user:
install -v -dm755 \ /usr/share/{man/man{3,5},doc/fontconfig-2.11.1/fontconfig-devel} && install -v -m644 fc-*/*.1 /usr/share/man/man1 && install -v -m644 doc/*.3 /usr/share/man/man3 && install -v -m644 doc/fonts-conf.5 /usr/share/man/man5 && install -v -m644 doc/fontconfig-devel/* \ /usr/share/doc/fontconfig-2.11.1/fontconfig-devel && install -v -m644 doc/*.{pdf,sgml,txt,html} \ /usr/share/doc/fontconfig-2.11.1
--disable-docs
: This switch
avoids building the documentation (the release tarball
includes pre-generated documentation).
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 /usr/share/fontconfig/conf.avail
directory. Symlinking specific files to /etc/fonts/conf.d
will enable them. The
default setup is generally good enough for most users. See
/etc/fonts/conf.d/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.11.1/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. |
|
is used to parse pattern (empty pattern by default) and show the parsed result. |
|
is used to query fonts files and print resulting patterns. |
|
is used to scan font files and directories, and print resulting patterns. |
|
is used to validate font files. |
|
contains functions used by the Fontconfig programs and also by other programs to configure or customize font access. |
Last updated on 2014-09-10 06:19:10 -0700
The FriBidi package is an implementation of the Unicode Bidirectional Algorithm (BIDI). This is useful for supporting Arabic and Hebrew alphabets in other packages.
This package is known to build and work properly using an LFS-7.6 platform.
Download (HTTP): http://fribidi.org/download/fribidi-0.19.6.tar.bz2
Download MD5 sum: ce93d862344991173dabb609bf93ca1d
Download size: 625 KB
Estimated disk space required: 6.5 MB
Estimated build time: 0.1 SBU
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/fribidi
Install FriBidi by running the following commands:
sed -i "s|glib/gstrfuncs\.h|glib.h|" charset/fribidi-char-sets.c && sed -i "s|glib/gmem\.h|glib.h|" lib/mem.h && ./configure --prefix=/usr && make
To test the results, issue: make check.
Now, as the root
user:
make install
sed -i ...: These commands fix two header files if GLib-2 is linked into the build.
is a command-line interface to the |
|
contains functions used to implement the Unicode Bidirectional Algorithm. |
Last updated on 2014-09-11 23:27:59 -0700
This package provides the GEneric Graphics Library, which is a graph based image processing format.
This package is known to build and work properly using an LFS-7.6 platform.
Download (HTTP): http://download.gimp.org/pub/gegl/0.2/gegl-0.2.0.tar.bz2
Download MD5 sum: 32b00002f1f1e316115c4ed922e1dec8
Download size: 7.2 MB
Estimated disk space required: 50 MB
Estimated build time: 0.9 SBU
AsciiDoc, Cairo-1.12.16, Enscript-1.6.6, Exiv2-0.24, FFmpeg-2.3.3, gdk-pixbuf-2.30.8, Graphviz-2.38.0, lensfun, libjpeg-turbo-1.3.1, libopenraw, libpng-1.6.13, librsvg-2.40.3, libspiro, Lua-5.2.3, OpenEXR, Pango-1.36.7, Python-2.7.8, Ruby-2.1.2, SDL-1.2.15, gobject-introspection-1.40.0, Vala-0.24.0, w3m-0.5.3 and libumfpack
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/gegl
Install gegl by running the following commands:
patch -Np1 -i ../gegl-0.2.0-ffmpeg2-1.patch && ./configure --prefix=/usr && LC_ALL=en_US make
To test the results, issue: make check.
Now, as the root
user:
make install && install -v -m644 docs/*.{css,html} /usr/share/gtk-doc/html/gegl && install -d -v -m755 /usr/share/gtk-doc/html/gegl/images && install -v -m644 docs/images/* /usr/share/gtk-doc/html/gegl/images
install -v
-m644/docs/*/{css,html} ...
: This and the
subsequent commands install all the provided documentation
instead of only operations.html
and the stylesheet gegl.css
.
--without-vala
: Do not create a
vala API - use this if
vapigen breaks
the build.
--enable-gtk-doc
: Use this
parameter if GTK-Doc is
installed and you wish to rebuild and install the API
documentation.
LC_ALL=en_US
: In some locales with
Ruby-2.1.2 installed, one build component
fails and prevents completion of the procedure. Using this
variable avoids the problem.
Last updated on 2014-09-13 17:48:40 -0700
The giflib package contains libraries for reading and writing GIFs as well as programs for converting and working with GIF files.
This package is known to build and work properly using an LFS-7.6 platform.
Download (HTTP): http://downloads.sourceforge.net/giflib/giflib-5.1.0.tar.bz2
Download (HTTP) MD5 sum: c7e9f1c10b755ab955156d4c1ac7fc5d
Download (HTTP) size: 607 KB
Estimated disk space required: 6.5 MB (with generated html documentation; additional 0.7 MB for the tests)
Estimated build time: 0.2 SBU (with generated html documentation)
xmlto-0.0.26 (for html documentation)
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/giflib
Install giflib by running the following commands:
./configure --prefix=/usr --disable-static && make
To test the results, issue: make check. The test
results are in test.sh.log
.
Now, as the root
user:
make install
If you generated html documentation, install it as the
root
user:
install -v -dm755 /usr/share/doc/giflib-5.1.0/html && install -v -m644 doc/*.html /usr/share/doc/giflib-5.1.0/html
--disable-static
:
This switch prevents installation of static versions of the
libraries.
converts images saved as GIF to 24-bit RGB images. |
|
dumps GIF data in a textual format, or undumps it to a GIF. |
|
modifies GIF image colormaps. |
|
generates a GIF from ASCII text. |
|
clumsily attempts to fix truncated GIF images. |
|
is an end-of-pipe fitting for GIF-processing pipelines. |
|
prints (text only) general information about a GIF file. |
|
is a GIF transformation tool. |
|
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 2014-09-14 14:01:57 -0700
Graphite2 is a rendering engine for graphite fonts. These are TrueType fonts with additional tables containing smart rendering information and were originally developed to support complex non-Roman writing systems. They may contain rules for e.g. ligatures, glyph substitution, kerning, justification - this can make them useful even on text written in Roman writing systems such as English. Note that firefox provides an internal copy of the graphite engine and cannot use a system version, but it too should benefit from the availability of graphite fonts.
This package is known to build and work properly using an LFS-7.6 platform.
Download (HTTP): http://downloads.sourceforge.net/silgraphite/graphite2-1.2.4.tgz
Download MD5 sum: 2ef839348fe28e3b923bf8cced440227
Download size: 6.7 MB
Estimated disk space required: 44 MB
Estimated build time: 0.2 SBU
FreeType-2.5.3, Python-2.7.8, and silgraphite to build the comparerender test and benchmarking tool, and if that is present, Harfbuzz-0.9.35 to add more functionality to it (this is a circular dependency, you would need to first build graphite2 without harfbuzz).
To build the documentation, which is reported to be broken, would require all of AsciiDoc, Doxygen-1.8.8 and texlive-20140525.
You will need at least one suitable graphite font for the package to be useful.
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/graphite2
Install Graphite2 by running the following commands:
mkdir build && cd build && cmake -DCMAKE_INSTALL_PREFIX=/usr .. && make
To test the results, issue: make test.
Now, as the root
user:
make install
Last updated on 2014-09-10 09:45:01 -0700
The Harfbuzz package contains an OpenType text shaping engine.
This package is known to build and work properly using an LFS-7.6 platform.
Download (HTTP): http://www.freedesktop.org/software/harfbuzz/release/harfbuzz-0.9.35.tar.bz2
Download MD5 sum: 531ee8650626ecddcd90b2a4637e31d4
Download size: 1.2 MB
Estimated disk space required: 25 MB (additional 2 MB for the API documentation and additional 2 MB for the tests)
Estimated build time: 0.3 SBU
GLib-2.40.0, ICU-53.1 and FreeType-2.5.3 (after Harfbuzz-0.9.35 is installed, reinstall FreeType-2.5.3)
Cairo-1.12.16, gobject-introspection-1.40.0, GTK-Doc-1.20, and Graphite2-1.2.4
Recommended dependencies are not strictly required to build the package. However, you might not get expected results at runtime if you don't install them. Please do not report bugs with this package if you have not installed the recommended dependencies.
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/harfbuzz
If you wish to run the test suite, run the following commands, to disable a test that fails:
sed -i '/arabic-fallback-shaping.tests/d' test/shaping/Makefile.am && autoreconf -f -i
Install Harfbuzz by running the following commands:
./configure --prefix=/usr --with-gobject && make
To test the results, issue: make check.
Now, as the root
user:
make install
--with-gobject
: This
switch enables building of the Harfbuzz GObject wrapper. Remove it if
you did not install GLib.
--with-graphite2
: This switch
enables Graphite2 support.
--enable-gtk-doc
: Use this
parameter if GTK-Doc is
installed and you wish to rebuild and install the API
documentation.
Last updated on 2014-09-10 06:19:10 -0700
The IJS package contains a library which implements a protocol for transmission of raster page images.
This package is known to build and work properly using an LFS-7.6 platform.
Download (HTTP): http://www.openprinting.org/download/ijs/download/ijs-0.35.tar.bz2
Download MD5 sum: 896fdcb7a01c586ba6eb81398ea3f6e9
Download size: 252 KB
Estimated disk space required: 2.2 MB
Estimated build time: less than 0.1 SBU
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/ijs
Install IJS by running the following commands:
./configure --prefix=/usr \ --mandir=/usr/share/man \ --enable-shared \ --disable-static && make
This package does not come with a test suite.
Now, as the root
user:
make install
--disable-static
:
This switch prevents installation of static versions of the
libraries.
Last updated on 2014-09-17 04:20:33 -0700
The JasPer Project is an open-source initiative to provide a free software-based reference implementation of the JPEG-2000 codec.
This package is known to build and work properly using an LFS-7.6 platform.
Download (HTTP): http://www.ece.uvic.ca/~mdadams/jasper/software/jasper-1.900.1.zip
Download MD5 sum: a342b2b4495b3e1394e161eb5d85d754
Download size: 1.4 MB
Estimated disk space required: 11.1 MB (without the static library)
Estimated build time: 0.3 SBU
Freeglut-2.8.1 (required for jiv)
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/jasper
The package source is distributed in .zip
format and requires unzip, but it has been
correctly packaged and will create the jasper-1.900.1
directory when you unzip it.
patch -Np1 -i ../jasper-1.900.1-security_fixes-1.patch && ./configure --prefix=/usr \ --enable-shared \ --disable-static \ --mandir=/usr/share/man && make
This package does not come with a testsuite.
Now, as the root
user:
make install
If you wish to install the PDF files for the Reference Manual
and a tutorial on the JPEG-2000 standard, run the following
commands as the root
user:
install -v -m755 -d /usr/share/doc/jasper-1.900.1 && install -v -m644 doc/*.pdf /usr/share/doc/jasper-1.900.1
--enable-shared
: This
command causes the shared library to be built.
--disable-static
:
This switch prevents installation of static versions of the
libraries.
--x-includes=DIR
--x-libraries=DIR
: These tell the configure script where to
find Xorg if it is not in
/usr/X11
, /usr/X11R6
, or /usr
.
compares two images of the same geometry. |
|
displays information about an image. |
|
converts images between formats (BMP, JPS, JPC, JPG, PGX, PNM, MIF, and RAS). |
|
displays images. |
|
is a timer demonstration program. |
|
a library used by programs for reading and writing JPEG2000 format files. |
Last updated on 2014-09-16 13:49:04 -0700
The Little CMS library is used by other programs to provide color management facilities.
This package is known to build and work properly using an LFS-7.6 platform.
Download (HTTP): http://downloads.sourceforge.net/lcms/lcms-1.19.tar.gz
Download MD5 sum: 8af94611baf20d9646c7c2c285859818
Download size: 927 KB
Estimated disk space required: 27 MB
Estimated build time: 0.5 SBU
LibTIFF-4.0.3, libjpeg-turbo-1.3.1, and Python-2.7.8 (with SWIG-3.0.2 also)
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/lcms
Install Little CMS by running the following commands:
./configure --prefix=/usr --disable-static && make
To test the results, issue: make check.
Now, as the root
user:
make install && install -v -m755 -d /usr/share/doc/lcms-1.19 && install -v -m644 README.1ST doc/* \ /usr/share/doc/lcms-1.19
--disable-static
:
This switch prevents installation of static versions of the
libraries.
--with-python
: Use this parameter
if Python and SWIG are installed.
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. |
|
A TIFF compare utility |
|
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 2014-09-11 23:27:59 -0700
The Little Color Management System is a small-footprint color management engine, with special focus on accuracy and performance. It uses the International Color Consortium standard (ICC), which is the modern standard for color management.
This package is known to build and work properly using an LFS-7.6 platform.
Download (HTTP): http://downloads.sourceforge.net/lcms/lcms2-2.6.tar.gz
Download MD5 sum: f4c08d38ceade4a664ebff7228910a33
Download size: 4.4 MB
Estimated disk space required: 15 MB (additional 1 MB for the tests)
Estimated build time: 0.1 SBU (additional 0.1 SBU for the tests)
libjpeg-turbo-1.3.1 and LibTIFF-4.0.3
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/lcms2
Install Little CMS2 by running the following commands:
./configure --prefix=/usr --disable-static && make
To test the results, issue: make check.
Now, as the root
user:
make install
--disable-static
:
This switch prevents installation of static versions of the
libraries.
Last updated on 2014-09-11 23:27:59 -0700
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.
This package is known to build and work properly using an LFS-7.6 platform.
Download (HTTP): http://downloads.sourceforge.net/libexif/libexif-0.6.21.tar.bz2
Download MD5 sum: 27339b89850f28c8f1c237f233e05b27
Download size: 1.4 MB
Estimated disk space required: 17 MB
Estimated build time: 0.2 SBU
Doxygen-1.8.8 and Graphviz-2.38.0
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.21 \ --disable-static && 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.21.
--disable-static
:
This switch prevents installation of static versions of the
libraries.
Last updated on 2014-09-12 12:02:55 -0700
libjpeg-turbo is a fork of the original IJG libjpeg which uses SIMD to accelerate baseline JPEG compression and decompression. libjpeg is a library that implements JPEG image encoding, decoding and transcoding.
This package is known to build and work properly using an LFS-7.6 platform.
Download (HTTP): http://downloads.sourceforge.net/libjpeg-turbo/libjpeg-turbo-1.3.1.tar.gz
Download MD5 sum: 2c3a68129dac443a72815ff5bb374b05
Download size: 1.3 MB
Estimated disk space required: 14 MB
Estimated build time: 0.3 SBU
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/libjpeg-turbo
Install libjpeg-turbo by running the following commands:
sed -i -e '/^docdir/ s:$:/libjpeg-turbo-1.3.1:' \ -e '/^exampledir/ s:$:/libjpeg-turbo-1.3.1:' Makefile.in && ./configure --prefix=/usr \ --mandir=/usr/share/man \ --with-jpeg8 \ --disable-static && make
To test the results, issue: make test.
Now, as the root
user:
make install
sed -i -e ... This command fixes Makefile.in to install documentation and examples in a version specific directory.
--with-jpeg8
: This
switch enables compatibility with libjpeg version 8.
--disable-static
:
This switch prevents installation of static versions of the
libraries.
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. |
|
is used to benchmark the performance of libjpeg-turbo. |
|
inserts text comments into a JPEG file. |
|
contains functions used for reading and writing JPEG images. |
Last updated on 2014-09-10 09:45:01 -0700
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.
This package is known to build and work properly using an LFS-7.6 platform.
Download (HTTP): http://downloads.sourceforge.net/libmng/libmng-2.0.2.tar.xz
Download MD5 sum: 3804bf2523af9b4e0670b5982b3bf984
Download size: 932 KB
Estimated disk space required: 15 MB
Estimated build time: 0.2 SBU
libjpeg-turbo-1.3.1 and Little CMS-2.6
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/libmng
Install libmng by running the following commands:
sed -i "s:#include <jpeg:#include <stdio.h>\n&:" libmng_types.h && ./configure --prefix=/usr --disable-static && make
This package does not come with a test suite.
Now, as the root
user:
make install && install -v -m755 -d /usr/share/doc/libmng-2.0.2 && install -v -m644 doc/*.txt /usr/share/doc/libmng-2.0.2
sed -i "..." libmng_types.h: This command adds a missing header which would cause other apps that link to this package fail to compile.
--disable-static
:
This switch prevents installation of static versions of the
libraries.
Last updated on 2014-09-12 12:02:55 -0700
The libpng package contains libraries used by other programs for reading and writing PNG 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.
This package is known to build and work properly using an LFS-7.6 platform.
Download (HTTP): http://downloads.sourceforge.net/libpng/libpng-1.6.13.tar.xz
Download MD5 sum: 9822c25466f060142359f80ed142c9e5
Download size: 884 KB
Estimated disk space required: 12 MB (additional 1 MB for the tests)
Estimated build time: 0.1 SBU (additional 0.3 SBU for the tests)
Optional patch to include animated png functionality in libpng (required to use the system libpng in Firefox): http://downloads.sourceforge.net/libpng-apng/libpng-1.6.13-apng.patch.gz
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/libpng
If you want to patch libpng to support apng files, apply the patch:
gzip -cd ../libpng-1.6.13-apng.patch.gz | patch -p1
Install libpng by running the following commands:
./configure --prefix=/usr --disable-static && make
To test the results, issue: make check.
Now, as the root
user:
make install && mkdir -v /usr/share/doc/libpng-1.6.13 && cp -v README libpng-manual.txt /usr/share/doc/libpng-1.6.13
--disable-static
:
This switch prevents installation of static versions of the
libraries.
tests, optimizes and optionally fixes the zlib header in PNG files. Optionally, when fixing, strips ancillary chunks from the file. |
|
fixes PNG files that have an incorrect length field in the iTXt chunks. |
|
is a shell script that provides configuration information for applications wanting to use libpng. |
|
contain routines used to create and manipulate PNG format graphics files. |
Last updated on 2014-09-10 06:19:10 -0700
Libraw is a library for reading RAW files obtained from digital photo cameras (CRW/CR2, NEF, RAF, DNG, and others).
This package is known to build and work properly using an LFS-7.6 platform.
Download (HTTP): http://www.libraw.org/data/LibRaw-0.16.0.tar.gz
Download MD5 sum: 21f569be043057b754d87e3062e2345a
Download size: 1.4 MB
Estimated disk space required: 21 MB
Estimated build time: 0.4 SBU
libjpeg-turbo-1.3.1, JasPer-1.900.1, and Little CMS-2.6
LibRaw-demosaic-pack-GPL2 and LibRaw-demosaic-pack-GPL3
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/libraw
Install libraw by running the following commands:
./configure --prefix=/usr \ --enable-jpeg \ --enable-jasper \ --enable-lcms \ --disable-static \ --docdir=/usr/share/doc/libraw-0.16.0 && make
This package does not come with a test suite.
Now, as the root
user:
make install
--enable-jpeg
: This switch
enables support for jpeg. Remove if you don't have libjpeg-turbo-1.3.1 installed.
--enable-jasper
: This switch
enables support for jasper. Remove if you don't have
JasPer-1.900.1 installed.
--enable-lcms
: This switch
enables support for Little CMS2. Remove if you don't have
Little
CMS-2.6 installed.
--disable-static
:
This switch prevents installation of static versions of the
libraries.
Last updated on 2014-02-20 08:45:35 -0600
The librsvg package contains a library and tools used to manipulate, convert and view Scalable Vector Graphic (SVG) images.
This package is known to build and work properly using an LFS-7.6 platform.
Download (HTTP): http://ftp.gnome.org/pub/gnome/sources/librsvg/2.40/librsvg-2.40.3.tar.xz
Download (FTP): ftp://ftp.gnome.org/pub/gnome/sources/librsvg/2.40/librsvg-2.40.3.tar.xz
Download MD5 sum: 33d5c3811c915a5e29a219824249e265
Download size: 500 KB
Estimated disk space required: 11 MB
Estimated build time: 0.2 SBU
gdk-pixbuf-2.30.8, libcroco-0.6.8 and Pango-1.36.7
GTK+-3.12.2 (For the rsvg-view-3)
gobject-introspection-1.40.0 and Vala-0.24.0
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/librsvg
Install librsvg by running the following commands:
./configure --prefix=/usr \ --enable-vala \ --disable-static && make
To test the results, issue: make check.
Now, as the root
user:
make install
--enable-vala
: This switch
enables building of the Vala bindings. Remove if you don't
have Vala-0.24.0 installed.
--disable-static
:
This switch prevents installation of static versions of the
libraries.
--disable-introspection
: Use this
switch if you have not installed Gobject Introspection.
--enable-gtk-doc
: Use this
parameter if GTK-Doc is
installed and you wish to rebuild and install the API
documentation.
is used to convert images into PNG, PDF, PS, SVG and other formats. |
|
is a simple GTK+ 3 application that can be used to view an SVG file. |
|
provides the functions to render Scalable Vector Graphics. |
|
is the Gdk Pixbuf plugin that allows GTK+ applications to render Scalable Vector Graphics images. |
Last updated on 2014-09-14 14:01:57 -0700
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 used for general work with TIFF files.
This package is known to build and work properly using an LFS-7.6 platform.
Download (HTTP): http://download.osgeo.org/libtiff/tiff-4.0.3.tar.gz
Download (FTP): ftp://ftp.remotesensing.org/libtiff/tiff-4.0.3.tar.gz
Download MD5 sum: 051c1068e6a0627f461948c365290410
Download size: 2.0 MB
Estimated disk space required: 27 MB
Estimated build time: 0.3 SBU
libjpeg-turbo-1.3.1, Freeglut-2.8.1 (required for tiffgt), and JBIG-KIT
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/libtiff
Install LibTIFF by running the following commands:
sed -i '/glDrawPixels/a glFlush();' tools/tiffgt.c && ./configure --prefix=/usr --disable-static && make
To test the results, issue: make check.
Now, as the root
user:
make install
sed -i ...: This command fixes a bug which is causing tiffgt to open blank windows in some cases.
--disable-static
:
This switch prevents installation of static versions of the
libraries.
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. |
|
selects, copies, crops, converts, extracts and/or processes one or more TIFF files. |
|
converts a grayscale image to bilevel using dithering. |
|
prints verbatim information about TIFF files. |
|
displays an image stored in a TIFF file. |
|
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 2014-09-17 04:20:33 -0700
The libwebp package contains a library and support programs to encode and decode images in WebP format.
This package is known to build and work properly using an LFS-7.6 platform.
Download (HTTP): http://downloads.webmproject.org/releases/webp/libwebp-0.4.1.tar.gz
Download MD5 sum: 42bc79613ec5ee5b0e68ba97839c981e
Download size: 944 KB
Estimated disk space required: 14 MB
Estimated build time: 0.2 SBU
libjpeg-turbo-1.3.1, libpng-1.6.13 and LibTIFF-4.0.3
Freeglut-2.8.1 and giflib-5.1.0
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/libwebp
Install libwebp by running the following commands:
./configure --prefix=/usr --disable-static && make
This package does not come with a test suite.
Now, as the root
user:
make install
--disable-static
:
This switch prevents installation of static versions of the
libraries.
Last updated on 2014-09-16 13:49:04 -0700
Newt is a programming library for color text mode, widget based user interfaces. It can be used to add stacked windows, entry widgets, checkboxes, radio buttons, labels, plain text fields, scrollbars, etc., to text mode user interfaces. Newt is based on the S-Lang library.
This package is known to build and work properly using an LFS-7.6 platform.
Download (HTTP): http://fedorahosted.org/releases/n/e/newt/newt-0.52.17.tar.gz
Download MD5 sum: f36d4d908965a0c89fd6fd8b61a6118b
Download size: 176 KB
Estimated disk space required: 5.1 MB
Estimated build time: less than 0.1 SBU
GPM-1.20.7 (runtime)
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/newt
Install newt by running the following command:
sed -e 's/^LIBNEWT =/#&/' \ -e '/install -m 644 $(LIBNEWT)/ s/^/#/' \ -e 's/$(LIBNEWT)/$(LIBNEWTSONAME)/g' \ -i Makefile.in && ./configure --prefix=/usr --with-gpm-support && make
This package does not come with a test suite.
Now, as the root
user:
make install
sed -e ... -i Makefile.in: Disables installation of an static library.
Last updated on 2014-09-17 21:56:07 -0700
OpenJPEG is an open-source implementation of the JPEG-2000 standard. OpenJPEG fully respects the JPEG-2000 specifications and can compress/decompress lossless 16-bit images.
This package is known to build and work properly using an LFS-7.6 platform.
Download (HTTP): http://downloads.sourceforge.net/project/openjpeg.mirror/1.5.2/openjpeg-1.5.2.tar.gz
Download MD5 sum: c41772c30fb1c272358b3707233134a1
Download size: 1.4 MB
Estimated disk space required: 16 MB
Estimated build time: 0.2 SBU
Little CMS-2.6, libpng-1.6.13, LibTIFF-4.0.3 and Doxygen-1.8.8 (to build the API documentation)
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/openjpeg
autoreconf -f -i && ./configure --prefix=/usr --disable-static && make
This package does not come with a testsuite.
Now, as the root
user:
make install
--disable-static
: This prevents
the static library from being built.
Last updated on 2014-09-11 23:27:59 -0700
The Pixman package contains a library that provides low-level pixel manipulation features such as image compositing and trapezoid rasterization.
This package is known to build and work properly using an LFS-7.6 platform.
Download (HTTP): http://cairographics.org/releases/pixman-0.32.6.tar.gz
Download MD5 sum: 3a30859719a41bd0f5cccffbfefdd4c2
Download size: 800 KB
Estimated disk space required: 32 MB (additional 3 MB for tests)
Estimated build time: 0.4 SBU (additional 0.8 SBU for tests)
GTK+-2.24.24 and libpng-1.6.13 (for tests and demos)
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/pixman
Install Pixman by running the following commands:
./configure --prefix=/usr --disable-static && make
To test the results, issue: make check.
Now, as the root
user:
make install
--disable-static
:
This switch prevents installation of static versions of the
libraries.
Last updated on 2014-09-10 06:19:10 -0700
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.
This package is known to build and work properly using an LFS-7.6 platform.
Download (HTTP): http://poppler.freedesktop.org/poppler-0.26.4.tar.xz
Download MD5 sum: e58cdddfc7dc01f00bf7394e0e4f21ce
Download size: 1.6 MB
Estimated disk space required: 145 MB (building Qt4 and Qt5 libraries, additional 46 MB for the test suite and 24 MB for poppler-data)
Estimated build time: 1.7 SBU (building Qt4 and Qt5 libraries, additional 0.2 SBU for the test suite for each Qt)
Poppler Encoding Data
Download (HTTP): http://poppler.freedesktop.org/poppler-data-0.4.7.tar.gz
Download MD5 sum: 636a8f2b9f6df9e7ced8ec0946961eaf
Download size: 4.0 MB
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.
Cairo-1.12.16, libjpeg-turbo-1.3.1, and libpng-1.6.13
cURL-7.37.1, gobject-introspection-1.40.0,
GTK+-2.24.24, Little CMS-1.19 or Little
CMS-2.6, LibTIFF-4.0.3, OpenJPEG-1.5.2,
Qt-4.8.6
(the libpoppler-qt4.so
library
is needed for PDF support in Okular), and Qt-5.3.1
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/poppler
In order to optionally run the test suite, additional download of about 9 MB, using git-2.1.0, is necessary. Make sure that you do not have the directory ../test.
git clone git://git.freedesktop.org/git/poppler/test ../test
If you are not building both Qt libraries, jump to the following paragraph. In order to build both Qt4 and Qt5 libraries, you need to run the install commands twice, because although both are detected, only wrapper for the first Qt version in PATH is built. Either can be built first, but to facilitate the explanation, we choose first the Qt4 library. You can do this using source setqt4 (script from Qt-4.8.6).
Install Poppler by running the following commands:
./configure --prefix=/usr \ --sysconfdir=/etc \ --disable-static \ --enable-xpdf-headers && make
To test the results, issue: make check.
Now, as the root
user:
make install
If you are not building both Qt libraries, jump to the following paragraph. If you want to build both Qt libraries, first switch back to unpriviledged user, run source setqt5, from Qt-5.3.1, and repeat the instructions from configuration until install. After that, proceed to install the documents until the end.
The documents are installed using the following commands:
install -v -m755 -d /usr/share/doc/poppler-0.26.4 && install -v -m644 README* /usr/share/doc/poppler-0.26.4
If you downloaded the additional encoding data package,
install it by issuing the following commands as the
root
user:
tar -xf ../poppler-data-0.4.7.tar.gz && cd poppler-data-0.4.7
Now, as the root
user:
make prefix=/usr install
--disable-static
:
This switch prevents installation of static versions of the
libraries.
--enable-xpdf-headers
: Install
some old Xpdf headers
required by certain programs (e.g. Okular, LibreOffice and Inkscape).
--enable-libcurl
: Use libcurl for
HTTP support.
lists or extracts embedded files from PDF files. |
|
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. |
|
extracts single pages from a PDF file. |
|
converts a PDF file to one of several formats (PNG, JPEG, PDF, PS, EPS, SVG) using the cairo output device of the poppler library. |
|
converts a PDF file to HTML. |
|
converts PDF files to PBM, PGM and PPM formats. |
|
converts PDF files to Postscript format. |
|
converts PDF files to plain text. |
|
merges several PDF files, in the order of their occurrence on the command line, to one PDF output file. |
|
is a tool to demonstrate the API, and for use when debugging and testing Poppler. |
|
contains the API functions to render PDF files. |
|
is a C++ backend for rendering PDF files. |
|
is a wrapper library used to interface the PDF rendering functions with GTK+. |
|
is a wrapper library used to interface the PDF rendering functions with Qt4. |
|
is a wrapper library used to interface the PDF rendering functions with Qt5. |
Last updated on 2014-09-13 17:48:40 -0700
The Qpdf package contains command-line programs and library that do structural, content-preserving transformations on PDF files.
This package is known to build and work properly using an LFS-7.6 platform.
Download (HTTP): http://downloads.sourceforge.net/qpdf/qpdf-5.1.2.tar.gz
Download MD5 sum: 0bd15ef5eea5f628951ab456c84e78ec
Download size: 7.4 MB
Estimated disk space required: 67 MB (76 MB, running the tests)
Estimated build time: 0.5 SBU (plus 0.4 for the tests)
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/qpdf
Install Qpdf by running the following commands:
./configure --prefix=/usr \ --disable-static \ --docdir=/usr/share/doc/qpdf-5.1.2 && make
To test the results, issue: make check.
Now, as the root
user:
make install
--disable-static
:
This switch prevents installation of static versions of the
libraries.
Last updated on 2014-09-13 17:48:40 -0700
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 appdata-tools is used to validate AppData files to conform to standard specification.
This package is known to build and work properly using an LFS-7.6 platform.
Download (HTTP): http://people.freedesktop.org/~hughsient/releases/appdata-tools-0.1.8.tar.xz
Download MD5 sum: 47d8500b7b96fac6667c3173c77c1e66
Download size: 248 KB
Estimated disk space required: 2.3 MB
Estimated build time: less than 0.1 SBU
libxml2-2.9.1, libxslt-1.1.28, docbook-xml-4.5, docbook-xsl-1.78.1, trang, and lxml
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/appdata-tools
Install appdata-tools 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 2014-09-19 13:13:19 -0700
The appstream-glib provides GObjects and helper methods to make it easy to read and write AppStream metadata. It also provides a simple DOM implementation that makes it easy to edit nodes and convert to and from the standardized XML representation.
This package is known to build and work properly using an LFS-7.6 platform.
Download (HTTP): http://people.freedesktop.org/~hughsient/appstream-glib/releases/appstream-glib-0.3.0.tar.xz
Download MD5 sum: f4be91093be4d43856258766684e7744
Download size: 1.6 MB
Estimated disk space required: 14 MB (additional 1 MB for the tests)
Estimated build time: 0.3 SBU
gdk-pixbuf-2.30.8, libarchive-3.1.2 libsoup-2.46.0, and Pango-1.36.7
docbook-xml-4.5, docbook-xsl-1.78.1, GTK-Doc-1.20, libxslt-1.1.28, and yaml
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/appstream-glib
Install appstream-glib by running the following commands:
./configure --prefix=/usr \ --disable-static \ --disable-dep11 && make
To test the results, issue: make -k check. One test fails, if yaml is not installed.
Now, as the root
user:
make install
--disable-static
:
This switch prevents installation of static versions of the
libraries.
--enable-gtk-doc
: Use this
parameter if GTK-Doc is
installed and you wish to rebuild and install the API
documentation.
--disable-dep11
:
Remove this witch, if you have yaml installed.
Last updated on 2014-09-19 13:13:19 -0700
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.
This package is known to build and work properly using an LFS-7.6 platform.
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 --mandir=/usr/share/man && 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 2014-09-20 19:22:09 -0700
The Desktop File Utils package contains command line utilities for working with Desktop entries. These utilities are used by Desktop Environments and other applications to manipulate the MIME-types application databases and help adhere to the Desktop Entry Specification.
This package is known to build and work properly using an LFS-7.6 platform.
Download (HTTP): http://freedesktop.org/software/desktop-file-utils/releases/desktop-file-utils-0.22.tar.xz
Download MD5 sum: c6b9f9aac1ea143091178c23437e6cd0
Download size: 128 KB
Estimated disk space required: 2.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 these
settings.
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 2014-09-10 09:45:01 -0700
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.
This package is known to build and work properly using an LFS-7.6 platform.
Download (HTTP): http://graphviz.org/pub/graphviz/stable/SOURCES/graphviz-2.38.0.tar.gz
Download MD5 sum: 5b6a829b2ac94efcd5fa3c223ed6d3ae
Download size: 25 MB
Estimated disk space required: 350 MB
Estimated build time: 1.6 SBU
FreeType-2.5.3, Fontconfig-2.11.1, Freeglut-2.8.1, gdk-pixbuf-2.30.8, libjpeg-turbo-1.3.1, libpng-1.6.13, librsvg-2.40.3, Pango-1.36.7 and Xorg Libraries
DevIL, Electric Fence, libglade-2.6.4, libLASi, GD Library, glitz, ghostscript-9.14, GTK+-2.24.24 and Qt-4.8.6
SWIG-3.0.2 (SWIG must be installed or no bindings will be built), Guile-2.0.11, OpenJDK-1.7.0.65/IcedTea-2.5.2, Io, Lua-5.2.3, Mono, OCaml, PHP-5.6.0, Python-2.7.8, R, Ruby-2.1.2, Tcl-8.6.2 and Tk-8.6.2
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/graphviz
Install Graphviz by running the following commands:
./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.38.0
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
-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. |
|
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. |
|
takes as input a graph in DOT format, finds node clusters and augments the graph with this information. |
|
(needs GD Library) generates an image where each pixel is the difference between the corresponding pixel in each of the two source images. |
|
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 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. |
|
edge coloring to disambiguate crossing edges. |
|
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. |
|
converts a graph specified in the GML format to a graph in the GV (formerly DOT) format. |
|
converts between graphs represented in GXL and in the GV language. |
|
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. |
|
provides a simple graph editor and viewer. It allows many graphs to be viewed at the same time. The text of each graph is displayed in its own text window. |
|
generates a variety of simple, regularly-structured abstract graphs. |
|
takes as input a graph in DOT format, finds node clusters and produces a rendering of the graph as a geographic-style map, with clusters highlighted, in xdot format. |
|
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. |
|
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. |
|
converts a sparse matrix of the Matrix Market format to a graph in the GV (formerly DOT) format. |
|
draws undirected graphs using “spring” models. Input files must be formatted in the dot attributed graph language. By default, the output of neato is the input graph with layout coordinates appended. |
|
reads a stream of graphs and prints each in pretty-printed (canonical) format on stdout. If no files are given, it reads from stdin. |
|
draws clustered graphs. As input, it takes any graph in the DOT format. |
|
draws clustered graphs using a squarified treemap layout. As input, it takes any graph in the DOT format. |
|
reads directed graphs in the same format used by dot and removes subgraphs rooted at nodes specified on the command line via options. |
|
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 stdout. |
|
draws undirected graphs using the “spring” model, but it uses a multi-scale approach to produce layouts of large graphs in a reasonably short time. |
|
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. |
|
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. |
|
is a simple script which launches the gvim or vim editor along with a GUI window showing the dot output of the edited file. |
|
manages run-time dictionaries using standard container data types: unordered set/multiset, ordered set/multiset, list, stack, and queue. |
|
supports graph programming by maintaining graphs in memory and reading and writing graph files. Graphs are composed of nodes, edges, and nested subgraphs. |
|
provides a context for applications wishing to manipulate and render graphs. It provides a command line parsing, common rendering code, and a plugin mechanism for renderers. |
|
contains functions to find the shortest path between two points in a simple polygon. |
|
provides support for parsing and deparsing graphical operations specificed by the xdot language. |
Last updated on 2014-09-17 21:56:07 -0700
The GTK-Doc package contains a code documenter. 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.
This package is known to build and work properly using an LFS-7.6 platform.
Download (HTTP): http://ftp.gnome.org/pub/gnome/sources/gtk-doc/1.20/gtk-doc-1.20.tar.xz
Download (FTP): ftp://ftp.gnome.org/pub/gnome/sources/gtk-doc/1.20/gtk-doc-1.20.tar.xz
Download MD5 sum: 58532fed036f72fc3bfd4fe79473247b
Download size: 632 KB
Estimated disk space required: 13 MB (additional 2 MB for the tests)
Estimated build time: 0.1 SBU (additional 0.2 SBU for the tests)
docbook-xml-4.5, docbook-xsl-1.78.1, Itstool-2.0.2 and libxslt-1.1.28
dblatex or fop-1.1 (XML PDF support), GLib-2.40.0 (for the test suite), GNOME Doc Utils and Which-2.20 (required for the test suite and gtk-doc documentation), OpenJade-1.3.2 with docbook-4.5 and docbook-dsssl-1.79 (SGML support, not actively maintained any more), Python-2.7.8 (builds gtkdoc-depscan), and Rarian-0.8.1
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/gtk-doc
Install GTK-Doc 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 2014-09-12 12:02:55 -0700
The hd2u package contains an any to any text format converter.
This package is known to build and work properly using an LFS-7.6 platform.
Download (HTTP): http://hany.sk/~hany/_data/hd2u/hd2u-1.0.3.tgz
Download MD5 sum: 8f6668fafb279aa19f956ec0515717b6
Download size: 64 KB
Estimated disk space required: 380 KB
Estimated build time: less than 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 2014-09-20 21:51:52 -0700
The hicolor-icon-theme package contains a default fallback theme for implementations of the icon theme specification.
This package is known to build and work properly using an LFS-7.6 platform.
Download (HTTP): http://icon-theme.freedesktop.org/releases/hicolor-icon-theme-0.13.tar.gz
Download MD5 sum: 21d0f50aa6b8eef02846cda9e5e9324c
Download size: 40 KB
Estimated disk space required: 1.6 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 2014-09-10 09:45:01 -0700
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.
This package is known to build and work properly using an LFS-7.6 platform.
Download (HTTP): http://tango.freedesktop.org/releases/icon-naming-utils-0.8.90.tar.bz2
Download MD5 sum: dd8108b56130b9eedc4042df634efa66
Download size: 57 KB
Estimated disk space required: 440 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 && make
This package does not come with a test suite.
Now, as the root
user:
make install
--libexecdir=/usr/lib/icon-naming-utils
: This
option installs icon-name-mapping into
/usr/lib/icon-naming-utils
instead of /usr/libexec
in
accordance with the old version of the FHS used before
LFS-7.5
Last updated on 2014-09-10 09:45:01 -0700
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 for Perl and C++ are also available.
This package is known to build and work properly using an LFS-7.6 platform.
Download (FTP): ftp://ftp.imagemagick.org/pub/ImageMagick/ImageMagick-6.8.9-7.tar.xz
Download MD5 sum: 763db53af657867e067cc74d6a532f49
Download size: 7.3 MB
Estimated disk space required: 148 MB (with typical dependencies, additional 29 MB to run the test suite, reputedly 450 MB with all dependencies)
Estimated build time: 2.4 SBU (typical build - additional 5.4 SBU to run the test suite and 12.6 SBU to run the validation 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, or from the legacy/
directory at ftp.ImageMagick.org/pub/ImageMagick
you
can download it from the BLFS package server at
http://anduin.linuxfromscratch.org/sources/BLFS/svn/i/ImageMagick-6.8.9-7.tar.xz.
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.
Cups-1.7.5, cURL-7.37.1, FFmpeg-2.3.3, p7zip-9.20.1
(LZMA), SANE-1.0.24, Wget-1.15, xdg-utils-1.1.0-rc2, xterm-310,
Dmalloc,
Electric Fence, FFTW, PGP or
GnuPG-2.0.26 (you'll have to do some
hacking to use GnuPG),
Profiles, and ufraw (for raw formats
listed in www/formats.html
)
JasPer-1.900.1, Little CMS-1.19 or Little CMS-2.6, libexif-0.6.21, libjpeg-turbo-1.3.1, libpng-1.6.13, librsvg-2.40.3, LibTIFF-4.0.3, libwebp-0.4.1, Pango-1.36.7, DjVuLibre, FlashPIX (libfpx), JBIG-KIT, libgxps, Liquid Rescale, OpenEXR, OpenJPEG 2, and RALCGM (or ralcgm)
ghostscript-9.14, Gimp-2.8.14, Graphviz-2.38.0, Inkscape-0.48.5, Blender, corefonts, DejaVu fonts, GhostPCL, Gnuplot, POV-Ray, and Radiance
Enscript-1.6.6, texlive-20140525, AutoTrace, GeoExpress Command Line Utilities, AKA MrSID Utilities (binary package), hp2xx, html2ps, libwmf, UniConvertor, and Utah Raster Toolkit (or URT-3.1b)
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/imagemagick
Install ImageMagick by running the following commands:
./configure --prefix=/usr \ --sysconfdir=/etc \ --enable-hdri \ --with-modules \ --with-perl \ --disable-static && make
Now, as the root
user:
make install
To test the installation, issue: make check. For a more comprehensive test, run the ImageMagick validation suite, also after the package is installed. Note that the EPS, PS, and PDF tests require a working Ghostscript. One test needs "Helvetica" from "Standard Fonts" which are optionally installed in ghostscript-9.14.
--enable-hdri
:
Enables building of a high dynamic range version of
ImageMagick.
--with-modules
:
Enables support for dynamically loadable modules.
--with-perl
: Enables
building and installing of PerlMagick.
--disable-static
:
Prevents the static libraries being built and installed.
--with-gslib
: Enables support to
use the Ghostscript shared
library.
--with-rsvg
: Enables support to
use the librsvg library.
--with-autotrace
: Enables support
to use the Autotrace
library.
--with-wmf
: Enables support to
use the libwmf library.
--with-gvc
: Enables support to
use GraphViz.
--with-windows-font-dir=
:
This option specifies the directory where the Windows
CoreFonts are installed.
<Some/Directory>
--with-dejavu-font-dir=
:
This option specifies the directory where the DejaVu fonts
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 the ImageMagick libraries. |
|
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 2014-09-17 21:56:07 -0700
The ISO Codes package contains a list of country, language and currency names and it is used as a central database for accessing this data.
This package is known to build and work properly using an LFS-7.6 platform.
Download (HTTP): http://pkg-isocodes.alioth.debian.org/downloads/iso-codes-3.56.tar.xz
Download MD5 sum: d032b2f9750bd59d350e0ccb060c8710
Download size: 3.7 MB
Estimated disk space required: 110 MB
Estimated build time: 0.2 SBU (additional less than 0.1 SBU for the tests)
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/iso-codes
Install ISO Codes 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 2014-09-10 09:45:01 -0700
The lsof package is useful to LiSt Open Files for a given running application or process.
This package is known to build and work properly using an LFS-7.6 platform.
Download (FTP): ftp://sunsite.ualberta.ca/pub/Mirror/lsof/lsof_4.87.tar.bz2
Download MD5 sum: 80e2a76d0e05826db910ec88e631296c
Download size: 756 KB
Estimated disk space required: 9.6 MB
Estimated build time: less than 0.1 SBU
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/lsof
The lsof tarball includes several files, between them, another tarball with the source code, which needs, in turn, to be unpacked. Install lsof by running the following commands:
tar -xf lsof_4.87_src.tar && cd lsof_4.87_src && ./Configure -n linux && make CFGL="-L./lib -ltirpc"
This package does not come with a working test suite.
Now, as the root
user:
install -v -m0755 -o root -g root lsof /usr/bin && install -v lsof.8 /usr/share/man/man8
./Configure -n linux: Avoid AFS, customization, and inventory checks, and use target-dialect Linux.
make CFGL="-L./lib -ltirpc": Instruct the libtirpc libraries location to make command.
Last updated on 2014-09-17 15:52:31 -0700
The PIN-Entry package contains a collection of simple PIN or pass-phrase entry dialogs which utilize the Assuan protocol as described by the Ägypten 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, Qt3, and Qt4.
This package is known to build and work properly using an LFS-7.6 platform.
Download (FTP): ftp://ftp.gnupg.org/gcrypt/pinentry/pinentry-0.8.3.tar.bz2
Download MD5 sum: 2ae681cbca0d9fb774b2c90b11ebf56c
Download size: 424 KB
Estimated disk space required: 12 MB
Estimated build time: 0.2 SBU
GTK+-2.24.24, libcap-2.24 with PAM and Qt-4.8.6
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/pinentry
Install PIN-Entry 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 2014-09-17 11:48:47 -0700
The Rarian package is a documentation metadata library based on the proposed Freedesktop.org spec. Rarian is designed to be a replacement for ScrollKeeper.
This package is known to build and work properly using an LFS-7.6 platform.
Download (HTTP): http://ftp.gnome.org/pub/gnome/sources/rarian/0.8/rarian-0.8.1.tar.bz2
Download (FTP): ftp://ftp.gnome.org/pub/gnome/sources/rarian/0.8/rarian-0.8.1.tar.bz2
Download MD5 sum: 75091185e13da67a0ff4279de1757b94
Download size: 317 KB
Estimated disk space required: 6 MB
Estimated build time: 0.2 SBU
libxslt-1.1.28 (rarian-sk-extract will not be built without this) and docbook-xml-4.5 (without this, Rarian scripts source DTDs from the net)
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/rarian
Install Rarian by running the following commands:
./configure --prefix=/usr \ --localstatedir=/var && make
This package does not come with a test suite.
Now, as the root
user:
make install
prints a nice list of all available documents found by the library. |
|
emulates scrollkeeper-config. |
|
is a wrapper around xsltproc to mimic scrollkeeper-extract. |
|
generates a unique (random) uuid. |
|
gets a content list (category tree). |
|
is a simple wrapper to make calling scrollkeeper-get-cl easier. |
|
is a simple wrapper to make calling scrollkeeper-get-cl (extended) easier. |
|
emulates scrollkeeper-get-index-from-index-from-docpath, scrollkeeper-get-toc-from-docpath, and scrollkeeper-get-toc-from-id. |
|
emulates scrollkeeper-install and scrollkeeper-uninstall. |
|
takes in a directory full of omf's, reads and parses them and spews out an equivalent scroll file. |
|
creates the omf file by reading an existing omf file and replacing the url for a resource with the url. |
|
is a simple wrapper script to emulate scrollkeeper-rebuilddb. |
|
is compatible with the scrollkeeper-update script that's required to be run when installing new omf files. It converts the omf files into new-style scrolls. |
|
is the API to build a list of available meta data files and allows access to these. |
Last updated on 2014-09-12 12:02:55 -0700
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.
This package is known to build and work properly using an LFS-7.6 platform.
Download (HTTP): http://download.tuxfamily.org/librep/rep-gtk/rep-gtk-0.90.8.1.tar.xz
Download MD5 sum: 00c1d9d7fe1c4d8851a59efa0e5a0645
Download size: 252 KB
Estimated disk space required: 23 MB
Estimated build time: 0.2 SBU
libglade-2.6.4 and librep-0.92.3
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/rep-gtk
Install rep-gtk 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 2014-09-20 21:51:52 -0700
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.
This package is known to build and work properly using an LFS-7.6 platform.
Download (HTTP): http://ftp.gnu.org/gnu/screen/screen-4.2.1.tar.gz
Download (FTP): ftp://ftp.gnu.org/gnu/screen/screen-4.2.1.tar.gz
Download MD5 sum: 419a0594e2b25039239af8b90eda7d92
Download size: 1.1 MB
Estimated disk space required: 8.2 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 \ --infodir=/usr/share/info \ --mandir=/usr/share/man \ --with-socket-dir=/run/screen \ --with-pty-group=5 \ --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=/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
.
--with-pty-group=5
:
This option sets the gid to the value used by LFS.
Older versions of LFS use the value 4 for the tty group. If you are using LFS version 7.1 or older, change the pty-group option to 4.
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 2014-09-20 21:51:52 -0700
The Shared Mime Info package contains a MIME database. This allows central updates of MIME information for all supporting applications.
This package is known to build and work properly using an LFS-7.6 platform.
Download (HTTP): http://freedesktop.org/~hadess/shared-mime-info-1.3.tar.xz
Download MD5 sum: 743720bc4803dd69f55449013d350f31
Download size: 508 KB
Estimated disk space required: 17 MB
Estimated build time: 0.1 SBU
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/shared-mime-info
This package does not support parallel build.
Install Shared Mime Info by running the following commands:
./configure --prefix=/usr && make -j1
To test the results, issue: make check.
Now, as the root
user:
make install
Last updated on 2014-09-10 09:45:01 -0700
The Sharutils package contains utilities that can create 'shell' archives.
This package is known to build and work properly using an LFS-7.6 platform.
Download (HTTP): http://ftp.gnu.org/gnu/sharutils/sharutils-4.14.tar.xz
Download (FTP): ftp://ftp.gnu.org/gnu/sharutils/sharutils-4.14.tar.xz
Download MD5 sum: 77ede22951bdb67279c6e78e79a04784
Download size: 1.1 MB
Estimated disk space required: 21 MB
Estimated build time: 0.8 SBU
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/sharutils
Install Sharutils by running the following commands:
./configure --prefix=/usr && make
To test the results, issue make check.
Now, as the root
user:
make install
creates "shell archives" (or shar files) which are in text format and can be mailed. |
|
unpacks a shar file. |
|
reads a file (or by default the standard input) and writes an encoded version to the standard output. The encoding uses only printing ASCII characters. |
|
reads a file (or by default the standard input) and decodes the uuencoded version to the standard output. |
Last updated on 2014-09-15 14:09:24 -0700
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.
This package is known to build and work properly using an LFS-7.6 platform.
Download (HTTP): http://anduin.linuxfromscratch.org/sources/BLFS/svn/t/tidy-cvs_20101110.tar.bz2
Download MD5 sum: dd1fe109b4259ad3f364b175787ad5e9
Download size: 807 KB
Estimated disk space required: 12 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, then generating the autotool components and documentation. 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 --disable-static && make
This package does not come with a test suite.
Now, as the root
user:
make install && install -v -m644 -D htmldoc/tidy.1 \ /usr/share/man/man1/tidy.1 && install -v -m755 -d /usr/share/doc/tidy-cvs_20101110 && install -v -m644 htmldoc/*.{html,gif,css} \ /usr/share/doc/tidy-cvs_20101110
If you wish to install the API documentation you must have
Doxygen-1.8.8 installed, then change
directories into the htmldoc
of
the source tree and issue the command doxygen. Then as the
root
user copy the
api
directory to /usr/share/doc/tidy-cvs_20101110.
--disable-static
:
This switch prevents installation of static versions of the
libraries.
Last updated on 2014-09-10 06:19:10 -0700
The time utility is a program that measures many of the CPU resources, such as time and memory, that other programs use. The GNU version can format the output in arbitrary ways by using a printf-style format string to include various resource measurements.
Although the shell has a builtin command providing similar functionalities, this utility is reuired by the LSB.
This package is known to build and work properly using an LFS-7.6 platform.
Download (HTTP): http://ftp.gnu.org/gnu/time/time-1.7.tar.gz
Download (FTP): ftp://ftp.gnu.org/gnu/time/time-1.7.tar.gz
Download MD5 sum: e38d2b8b34b1ca259cf7b053caac32b3
Download size: 101 KB
Estimated disk space required: 640 KB
Estimated build time: Less than 0.1 SBU
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/time
Install Time by running the following commands:
sed -i 's/$(ACLOCAL)//' Makefile.in && sed -i 's/lu", ptok ((UL) resp->ru.ru_maxrss)/ld", resp->ru.ru_maxrss/' time.c && ./configure --prefix=/usr --infodir=/usr/share/info && make
This package does not come with a test suite.
Now, as the root
user:
make install
Last updated on 2014-09-20 21:51:52 -0700
The tree application, as the name suggests, is useful to display, in a terminal, directory contents, including directories, files, links.
This package is known to build and work properly using an LFS-7.6 platform.
Download (HTTP): http://mama.indstate.edu/users/ice/tree/src/tree-1.7.0.tgz
Download (FTP): ftp://mama.indstate.edu/linux/tree/tree-1.7.0.tgz
Download MD5 sum: abe3e03e469c542d8e157cdd93f4d8a6
Download size: 48 KB
Estimated disk space required: 656 KB
Estimated build time: less than 0.1 SBU
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/tree
Install tree by running the following commands:
make
This package does not come with a test suite.
Now, as the root
user:
make MANDIR=/usr/share/man/man1 install
Last updated on 2014-09-17 15:52:31 -0700
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 optional 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.
This package is known to build and work properly using an LFS-7.6 platform.
Download (HTTP): http://www.unixodbc.org/unixODBC-2.3.2.tar.gz
Download (FTP): ftp://mirror.ovh.net/gentoo-distfiles/distfiles/unixODBC-2.3.2.tar.gz
Download MD5 sum: 5e4528851eda5d3d4aed249b669bd05b
Download size: 1.8 MB
Estimated disk space required: 33 MB
Estimated build time: 0.4 SBU
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/unixodbc
Install unixODBC by running the following commands:
./configure --prefix=/usr \ --sysconfdir=/etc/unixODBC && make
This package does not come with a test suite.
Now, as the root
user:
make install && find doc -name "Makefile*" -delete && chmod 644 doc/{lst,ProgrammerManual/Tutorial}/* && install -v -m755 -d /usr/share/doc/unixODBC-2.3.2 && cp -v -R doc/* /usr/share/doc/unixODBC-2.3.2
--enable-drivers
: This parameter
enables building the drivers that were installed by default
in previous versions.
--enable-drivers-conf
: This
parameter enables building the driver configuration libraries
that were installed by default in previous versions.
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 many man or any 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.3.2
, 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 -?
for syntax and
usage information. Lastly, the unixODBC web site at http://www.unixodbc.org/ has
very good information.
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 an 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 an utility created for install script/RPM
writers. It is a command line interface to key
functionality in the |
Last updated on 2014-09-15 22:13:43 -0700
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.
This package is known to build and work properly using an LFS-7.6 platform.
Download (HTTP): http://www.jwz.org/xscreensaver/xscreensaver-5.30.tar.gz
Download MD5 sum: b71e3a78db1ae14291cc9ff4c5e10911
Download size: 9.1 MB
Estimated disk space required: 230 MB
Estimated build time: 0.9 SBU
libglade-2.6.4 and Xorg Applications
GDM, GLE and Linux-PAM-1.1.8
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/xscreensaver
Install XScreenSaver 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-setuid-hacks
: This switch
allows some demos to be installed setuid root
which is needed in order to ping
other hosts.
--libexecdir=/usr/lib
: This
option will put the individual screensaver programs into
/usr/lib/xscreensaver
instead
of /usr/libexec/xscreensaver
in
accordance with the old version of the FHS used before
LFS-7.5.
If you have built XScreenSaver with Linux PAM support, you need to create PAM configuration file to get XScreenSaver to work correctly with BLFS.
Issue the following commands as the root
user to create the configuration
file for Linux PAM:
cat > /etc/pam.d/xscreensaver << "EOF"
# Begin /etc/pam.d/xscreensaver
auth include system-auth
account include system-account
# End /etc/pam.d/xscreensaver
EOF
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 2014-09-16 14:37:50 -0700
This chapter contains mainly hardware utilities. It also contains some applications used by other applications in the book for installation or configuration purposes.
The acpid (Advanced Configuration and Power Interface event daemon) is a completely flexible, totally extensible daemon for delivering ACPI events. It listens on netlink interface and when an event occurs, executes programs to handle the event. The programs it executes are configured through a set of configuration files, which can be dropped into place by packages or by the user.
This package is known to build and work properly using an LFS-7.6 platform.
Download (HTTP): http://downloads.sourceforge.net/acpid2/acpid-2.0.23.tar.xz
Download MD5 sum: d7bcdcdefcd53b03730e50ba842554ea
Download size: 156 KB
Estimated disk space required: 2.6 MB
Estimated build time: less than 0.1 SBU
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/acpid
Install acpid by running the following commands:
./configure --prefix=/usr --docdir=/usr/share/doc/acpid-2.0.23 && make
This package does not come with a test suite.
Now, as the root
user:
make install && install -v -m755 -d /etc/acpi/events && cp -r samples /usr/share/doc/acpid-2.0.23
acpid is configured by user
defined events. Place event files under /etc/acpi/events
directory. If an event
occurs, acpid
recurses through the event files in order to see if the regex
defined after "event" matches. If they do, action is
executed.
The following brief example will suspend the system when the laptop lid is closed (it requires pm-utils-1.4.1):
cat > /etc/acpi/events/lid << "EOF"event=button/lid action=/etc/acpi/lid.sh
EOF cat > /etc/acpi/lid.sh << "EOF"#!/bin/sh /bin/grep -q open /proc/acpi/button/lid/LID/state && exit 0 /usr/sbin/pm-suspend
EOF chmod +x /etc/acpi/lid.sh
Unfortunately, not every computer labels ACPI events in the same way. To determine how your buttons are recognized, use the acpi_listen tool. Also, look in package documentation's samples directory for more examples.
To automatically start acpid when the system is
rebooted, install the /etc/rc.d/init.d/acpid
boot script from
the blfs-bootscripts-20140919 package.
make install-acpid
is a program that listens for ACPI events and executes the rules that match the received event. |
|
is a simple tool which connects to acpid and listens for events. |
|
is a monitor program that connects to three sources of ACPI events (events file, netlink and input layer) and then reports on what it sees while it is connected. |
Last updated on 2014-09-20 21:51:52 -0700
The at package provide delayed job execution and batch processing. It is required for Linux Standards Base (LSB) conformance.
This package is known to build and work properly using an LFS-7.6 platform.
Download (HTTP): http://ftp.de.debian.org/debian/pool/main/a/at/at_3.1.15.orig.tar.gz
Download (FTP): ftp://ftp.de.debian.org/debian/pool/main/a/at/at_3.1.15.orig.tar.gz
Download MD5 sum: f0f96db22e3a174b53ce4beeeb848839
Download size: 124 KB
Estimated disk space required: 1.5 MB
Estimated build time: less than 0.1 SBU
An MTA
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/at
This package does not support parallel build.
Before building at, as the
root
user you should create
the group and user atd
which
will run the atd daemon. Also ensure the
working directory for the daemon exists:
groupadd -g 17 atd && useradd -d /dev/null -c "atd daemon" -g atd -s /bin/false -u 17 atd && mkdir -p /var/spool/cron
Fix Makefile.in
so that the
documentation directory is installed in the specified docdir:
sed -i '/docdir/s/=.*/= @docdir@/' Makefile.in
Install at with the following commands:
./configure --docdir=/usr/share/doc/at-3.1.15 \ --with-daemon_username=atd \ --with-daemon_groupname=atd \ SENDMAIL=/usr/sbin/sendmail && make -j1
This package does not come with a test suite.
Now, as the root
user:
make install
Install the /etc/init.d/atd
init script from the blfs-bootscripts-20140919
package.
make install-atd
queues, examines or deletes jobs for later execution. |
|
is the daemon that runs jobs queued for later execution. |
|
lists the user's pending jobs, or all jobs, if superuser. |
|
deletes jobs, identified by their job number. |
|
runs jobs queued for later execution. |
|
is a script that executes commands when system load levels permit. |
Last updated on 2014-09-22 00:10:59 -0700
Autofs controls the operation of the automount daemons. The automount daemons automatically mount filesystems when they are accessed and unmount them after a period of inactivity. This is done based on a set of pre-configured maps.
This package is known to build and work properly using an LFS-7.6 platform.
Download (HTTP): http://www.kernel.org/pub/linux/daemons/autofs/v5/autofs-5.1.0.tar.xz
Download (FTP): ftp://ftp.kernel.org/pub/linux/daemons/autofs/v5/autofs-5.1.0.tar.xz
Download MD5 sum: 4c34cacea07db3681b0da1befa229ec4
Download size: 284 KB
Estimated disk space required: 9.7 MB
Estimated build time: 0.1 SBU
libtirpc-0.2.5, nfs-utils-1.3.0, libxml2-2.9.1, MIT Kerberos V5-1.12.2, OpenLDAP-2.4.39 (client only), and Cyrus SASL-2.1.26
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/autofs
Verify that automounter kernel support has been enabled:
File systems --->
Kernel automounter version 4 support (also supports v3): Y or M
Optionally, enable the following options in the kernel configuration:
File systems --->
Network File Systems --->
NFS client support: Y or M
CIFS support (advanced network filesystem, SMBFS successor): Y or M
Recompile and install the new kernel, if necessary.
Install Autofs by running the following commands:
sed -i -e '/include.*config.h/ i #include <stdarg.h>' lib/defaults.c && ./configure --prefix=/ \ --without-openldap \ --mandir=/usr/share/man && make
This package does not come with a test suite.
Now, as the root
user:
make install
sed ... lib/defaults.c: Fix a build problem with current headers.
--with-libtirpc
: This switch
enables libtirpc support if available.
--without-openldap
: This switch
disables openldap if found. If openldap is desired, omit this
switch. Note that openldap support in autofs requires
MIT Kerberos V5-1.12.2.
The installation process creates auto.master
, auto.misc
, auto.smb
, and auto.net
. Replace the auto.master
file with the following
commands as the root
user:
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.
autofs installs its own boot script, but it has no capability for logging or visual conformance with other BLFS scripts.
Install the /etc/init.d/autofs
mount script included
with the blfs-bootscripts-20140919 package.
make install-autofs
The time-out variable is set in /etc/sysconfig/autofs.conf
. The installed
file sets a default of 60 seconds of inactivity before
unmounting the device. A much shorter time may be necessary
to protect buffer writing to a floppy if users tend to
remove the media prior to the timeout setting.
Last updated on 2014-09-22 00:10:59 -0700
The BlueZ package contains the Bluetooth protocol stack for Linux.
This package is known to build and work properly using an LFS-7.6 platform.
Download (HTTP): http://www.kernel.org/pub/linux/bluetooth/bluez-5.23.tar.xz
Download (FTP): ftp://ftp.kernel.org/pub/linux/bluetooth/bluez-5.23.tar.xz
Download MD5 sum: b6ebf545d496087f3bc2b4aa86f89eb4
Download size: 1.4 MB
Estimated disk space required: 72 MB (additional 1 MB for the API docs)
Estimated build time: 0.6 SBU
Optional patch (required to work properly with gnome-bluetooth and/or kde bluedevil): http://www.linuxfromscratch.org/patches/blfs/7.6/bluez-5.23-obexd_without_systemd-1.patch
D-Bus-1.8.8, GLib-2.40.0, and libical-1.0
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/bluez
Enable the following options in the kernel configuration and recompile the kernel if necessary:
[*] Networking support ---> [CONFIG_NET]
<*> or <M> Bluetooth subsystem support ---> [CONFIG_BT]
<*> or <M> RFCOMM protocol support [CONFIG_BT_RFCOMM]
[*] RFCOMM TTY support [CONFIG_BT_RFCOMM_TTY]
<*> or <M> BNEP protocol support [CONFIG_BT_BNEP]
[*] Multicast filter support [CONFIG_BT_BNEP_MC_FILTER]
[*] Protocol filter support [CONFIG_BT_BNEP_PROTO_FILTER]
<*> or <M> HIDP protocol support [CONFIG_BT_HIDP]
Bluetooth device drivers --->
<*> or <M> RF switch subsystem support
Select the appropriate drivers for your Bluetooth hardware.
If you are going to use BlueZ with gnome-bluetooth and/or kde bluedevil, apply the following patch:
patch -Np1 -i ../bluez-5.23-obexd_without_systemd-1.patch
Install BlueZ by running the following commands:
./configure --prefix=/usr \ --sysconfdir=/etc \ --localstatedir=/var \ --enable-library \ --disable-systemd && make
To test the results, issue: make check
.
Now, as the root
user:
make install && ln -svf ../libexec/bluetooth/bluetoothd /usr/sbin
Install the main configuration file as the root
user:
install -v -dm755 /etc/bluetooth && install -v -m644 src/main.conf /etc/bluetooth/main.conf
If desired, install the API documentation as the root
user:
install -v -dm755 /usr/share/doc/bluez-5.23 && install -v -m644 doc/*.txt /usr/share/doc/bluez-5.23
--enable-library
:
This switch enables building of the BlueZ 4 compatibility library which is
required by some applications.
--disable-systemd
:
This switch is needed because systemd is not part of LFS/BLFS. If you
are using systemd, remove this switch.
ln -svf ../libexec/bluetooth/bluetoothd /usr/sbin: This command makes access to the bluetooth daemon more convenient.
/etc/bluetooth/main.conf
is
installed automatically during the install. Additionally,
there are three supplementary configuration files.
/etc/sysconfig/bluetooth is installed as a part of the boot
script below. In addition, you optionally can install the
following, as the root
user:
cat > /etc/bluetooth/rfcomm.conf << "EOF"
# rfcomm.conf
# Set up the RFCOMM configuration of the Bluetooth subsystem in the Linux kernel.
# Use one line per command
# See the rfcomm man page for options
# End of rfcomm.conf
EOF
cat > /etc/bluetooth/uart.conf << "EOF"
#uart.conf
# Attach serial devices via UART HCI to BlueZ stack
# Use one line per device
# See the hciattach man page for options
# End of uart.conf
EOF
To automatically start the bluetoothd daemon when
the system is rebooted, install the /etc/rc.d/init.d/bluetooth
bootscript
from the blfs-bootscripts-20140919 package.
make install-bluetooth
is used to issue BlueCore commands to Cambridge Silicon Radio devices. |
|
is the Bluetooth daemon. |
|
is used to set up, maintain, and inspect the CIP configuration of the Bluetooth subsystem in the Linux kernel. |
|
is used to attach a serial UART to the Bluetooth stack as HCI transport interface. |
|
is used to configure Bluetooth devices. |
|
is used to configure Bluetooth connections and send some special command to Bluetooth devices. |
|
is used to set up switch supported Bluetooth devices into the HCI mode and back. |
|
is used to send a L2CAP echo request to the Bluetooth MAC address given in dotted hex notation. |
|
is used to test RFCOMM communications on the Bluetooth stack. |
|
is used to set up, maintain, and inspect the RFCOMM configuration of the Bluetooth subsystem in the Linux kernel. |
|
is used to perform SDP queries on Bluetooth devices. |
|
contains the BlueZ 4 API functions. |
Last updated on 2014-09-12 09:27:12 -0700
Colord is a system activated daemon that maps devices to color profiles. It is used by GNOME Color Manager for system integration and use when there are no users logged in.
This package is known to build and work properly using an LFS-7.6 platform.
Download (HTTP): http://www.freedesktop.org/software/colord/releases/colord-1.2.3.tar.xz
Download MD5 sum: f1d25333716d4705f6aeb7452aa25b86
Download size: 1.1 MB
Estimated disk space required: 38 MB (additional 4 MB to build and install the API documentation, and 4 MB for the tests)
Estimated build time: 0.4 SBU (additional 0.1 SBU for the tests)
D-Bus-1.8.8, GLib-2.40.0, Little CMS-2.6, and SQLite-3.8.6
libgusb-0.1.6, gobject-introspection-1.40.0, Polkit-0.112, udev-extras (from eudev) (for GUdev), and Vala-0.24.0
gnome-desktop-3.12.2 and colord-gtk (to build the example tools), DocBook-utils-0.6.14, GTK-Doc-1.20, libxslt-1.1.28, SANE-1.0.24, Valgrind-3.10.0 (required for the tests), and Bash Completion,
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/colord
There should be a dedicated user and group to take control of
the colord
daemon after it is started. Issue the following commands as
the root
user:
groupadd -g 71 colord && useradd -c "Color Daemon Owner" -d /var/lib/colord -u 71 \ -g colord -s /bin/false colord
Install Colord by running the following commands:
./configure --prefix=/usr \ --sysconfdir=/etc \ --localstatedir=/var \ --with-daemon-user=colord \ --enable-vala \ --enable-systemd-login=no \ --disable-bash-completion \ --disable-static \ --with-systemdsystemunitdir=no && make
Now, as the root
user:
make install
To test the results, issue: make -k check. For unknown reasons, some tests may fail. Note that system-wide D-Bus daemon must be running or the tests will fail.
--enable-libsystemd-login=no
:
This parameter fixes building without systemd, which is not part of LFS/BLFS.
If you use systemd, replace
"no" by "yes".
--with-daemon-user=colord
: This
switch is used so the colord daemon will run as
an unprivileged user instead of root
user.
--enable-vala
: This
switch enables building of the Vala bindings. Remove if you
don't have Vala-0.24.0 installed.
--disable-bash-completion
: This
switch disables Bash
Completion support for Colord apps.
--disable-systemd-login
: This
switch prevents configure to look for
Systemd libraries.
--with-systemdsystemunitdir=no
:
Disable attempting to build with systemd libraries.
--disable-static
:
This switch prevents installation of static versions of the
libraries.
--enable-gtk-doc
: Use this switch
if GTK-Doc is installed and
you wish to build and install the API documentation.
--disable-gusb
: Use this switch
if you don't have libgusb
installed.
--disable-gudev
: Use this switch
if you don't have GUdev installed.
--disable-polkit
: Use this switch
if you don't have Polkit
installed.
Last updated on 2014-09-17 21:56:07 -0700
The cpio package contains tools for archiving.
This package is known to build and work properly using an LFS-7.6 platform.
Download (HTTP): http://ftp.gnu.org/pub/gnu/cpio/cpio-2.11.tar.bz2
Download (FTP): ftp://ftp.gnu.org/pub/gnu/cpio/cpio-2.11.tar.bz2
Download MD5 sum: 20fc912915c629e809f80b96b2e75d7d
Download size: 1 MB
Estimated disk space required: 13 MB
Estimated build time: 0.3 SBU
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/cpio
Install cpio by running the following commands:
sed -i -e '/gets is a/d' gnu/stdio.in.h && ./configure --prefix=/usr \ --bindir=/bin \ --enable-mt \ --with-rmt=/usr/libexec/rmt && make && makeinfo --html -o doc/html doc/cpio.texi && makeinfo --html --no-split -o doc/cpio.html doc/cpio.texi && makeinfo --plaintext -o doc/cpio.txt doc/cpio.texi
If you have texlive-20140525 installed and wish to create PDF or Postscript documentation, issue one or both of the following commands:
make -C doc pdf && make -C doc ps
To test the results, issue: make check.
Now, as the root
user:
make install && install -v -m755 -d /usr/share/doc/cpio-2.11/html && install -v -m644 doc/html/* \ /usr/share/doc/cpio-2.11/html && install -v -m644 doc/cpio.{html,txt} \ /usr/share/doc/cpio-2.11
If you built PDF or Postscript documentation, install it by
issuing the following commands as the root
user:
install -v -m644 doc/cpio.{pdf,ps,dvi} \ /usr/share/doc/cpio-2.11
sed -i -e '/gets is a/d'
gnu/stdio.in.h &&
: This fixes an
incompatibility with glibc-2.16.0.
--bindir=/bin
: This
parameter installs cpio to /bin
instead of /usr/bin
as recommended by the FHS
guidelines.
--enable-mt
: This
parameter forces the building and installation of the
mt program.
--with-rmt=/usr/libexec/rmt
:
This parameter inhibits building the rmt program as it is
already installed by the Tar
package in LFS.
Last updated on 2014-09-09 14:11:38 -0700
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).
This package is known to build and work properly using an LFS-7.6 platform.
Download (HTTP): http://dbus.freedesktop.org/releases/dbus/dbus-1.8.8.tar.gz
Download MD5 sum: b9f4a18ee3faa1e07c04aa1d83239c43
Download size: 1.8 MB
Estimated disk space required: 37 MB (additional 62 MB for tests)
Estimated build time: 0.4 SBU (additional 1.6 SBU for tests)
Xorg Libraries (for dbus-launch program)
For the tests: dbus-glib-0.102, D-Bus Python-1.2.0, and PyGObject-2.28.6; for the API documentation: Doxygen-1.8.8; for man pages and XML/HTML documentation: xmlto-0.0.26
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/dbus
If they do not already exist, 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 /var/run/dbus \ -u 18 -g messagebus -s /bin/false messagebus
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 \ --with-console-auth-dir=/run/console/ \ --without-systemdsystemunitdir \ --disable-systemd \ --disable-static && make
See below for test instructions.
Now, as the root
user:
make install && mv -v /usr/share/doc/dbus /usr/share/doc/dbus-1.8.8
If you are still building your system in chroot or you did
not start the daemon yet, but you want to compile some
packages that require D-Bus,
generate D-Bus UUID to avoid
warnings when compiling some packages with the following
command as the root
user:
dbus-uuidgen --ensure
The dbus tests cannot be run until after dbus-glib-0.102
has been installed. They must be run as an unprivileged user
from a local session. Tests fail through ssh. If you want to
run only the unit tests, replace, below, --enable-tests
by --enable-embedded-tests
,
otherwise, D-Bus Python-1.2.0 has to be installed,
before. The tests require 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. If you would like
to run the tests, issue the following commands:
make distclean && ./configure --enable-tests --enable-asserts && make && make check
If run-test.sh fails, it can be disabled with the following sed, before running the commands for the tests:
sed -i -e 's:run-test.sh:$(NULL):g' test/name-test/Makefile.in
Note there has been a report that the tests may fail if running inside a Midnight Commander shell. You may get out-of-memory error messages when running the tests. These are normal and can be safely ignored.
--with-console-auth-dir=/run/console/
:
This parameter specifies location of the ConsoleKit auth dir.
--without-systemdsystemunitdir
:
This switch prevents installation of systemd unit files.
--disable-systemd
:
This switch disables systemd support in D-Bus
--disable-static
:
This switch prevents installation of static versions of the
libraries.
--enable-tests
: Build
extra parts of the code to support all tests. Configure will
end with a NOTE warning about increased size of libraries and
decreased security.
--enable-embedded-tests
: Build
extra parts of the code to support only unit tests. Configure
will end with a NOTE warning about increased size of
libraries and decreased security.
--enable-asserts
:
Enable debugging code to run assertions for statements
normally assumed to be true. This prevents a warning that
'--enable-tests
' on
its own is only useful for profiling and might not give true
results for all tests, but adds its own NOTE that this should
not be used in a production build.
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-20140919 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.
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.
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 be 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. |
|
start a process as a new D-Bus session. |
|
is used to send a message to a D-Bus message bus. |
|
is used to generate 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 2014-09-17 19:44:41 -0700
The Fcron package contains a periodical command scheduler which aims at replacing Vixie Cron.
This package is known to build and work properly using an LFS-7.6 platform.
Download (HTTP): http://fcron.free.fr/archives/fcron-3.2.0.src.tar.gz
Download MD5 sum: 4b031c2fba32a98fa814d1557158b0e9
Download size: 584 KB
Estimated disk space required: 5.1 MB
Estimated build time: 0.1 SBU
An MTA, text editor (default is vi from the Vim-7.4 package), Linux-PAM-1.1.8, and 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 \ --with-systemdsystemunitdir=no && make
This package does not come with a test suite.
Now, as the root
user:
make install
DESTDIR install must be done as root
user.
--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-systemdsystemunitdir=no|yes|DIR
:
Use no, if you use sysvint; yes, if you use systemd, or
specify the directory DIR for the systemd units.
--with-editor=
:
This switch allows you to set the default text editor.
</path/to/editor>
--with-dsssl-dir=
:
May be used if you have DocBook-utils-0.6.14
installed. Currently, the dsssl stylesheets are located at
</path/to/dsssl-stylesheets>
/usr/share/sgml/docbook/dsssl-stylesheets-1.79
.
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 existing
/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-20140919 package.
make install-fcron
Last updated on 2014-09-09 16:09:42 -0700
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!
This package is known to build and work properly using an LFS-7.6 platform.
Download (HTTP): http://www.nico.schottelius.org/software/gpm/archives/gpm-1.20.7.tar.bz2
Download MD5 sum: bf84143905a6a903dbd4d4b911a2a2b8
Download size: 820 KB
Estimated disk space required: 7.4 MB
Estimated build time: 0.1 SBU
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/GPM
Install GPM by running the following commands:
./autogen.sh && ./configure --prefix=/usr --sysconfdir=/etc && make
This package does not come with a test suite.
Now, as the root
user:
make install && install-info --dir-file=/usr/share/info/dir \ /usr/share/info/gpm.info && ln -sfv libgpm.so.2.1.0 /usr/lib/libgpm.so && install -v -m644 conf/gpm-root.conf /etc && install -v -m755 -d /usr/share/doc/gpm-1.20.7/support && install -v -m644 doc/support/* \ /usr/share/doc/gpm-1.20.7/support && install -v -m644 doc/{FAQ,HACK_GPM,README*} \ /usr/share/doc/gpm-1.20.7
./autogen.sh: This command creates the missing configure script.
install-info
...: This package installs an .info
file, but does not update the system
dir
file. This command makes
the update.
ln -v -sfn libgpm.so.2.1.0
/usr/lib/libgpm.so: This command is used to
create (or update) the .so
symlink to the library.
Install the /etc/rc.d/init.d/gpm
init script included
in the blfs-bootscripts-20140919 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 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 simple program that reports the mouse buttons being pressed and released. |
|
is a simple program that reports the mouse coordinates. |
|
is used to report the GPM library and server versions. |
|
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 2014-09-09 12:00:35 -0700
The Hdparm package contains an utility that is useful for controlling ATA/IDE controllers and hard drives both to increase performance and sometimes to increase stability.
This package is known to build and work properly using an LFS-7.6 platform.
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-9.43.tar.gz
Download MD5 sum: f73233be118d86c779a8463d8b6a3cdb
Download size: 132 KB
Estimated disk space required: 1.1 MB
Estimated build time: less than 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 2014-09-20 21:51:52 -0700
The initd-tools package contains programs to install and remove LSB based bootscripts.
This package is known to build and work properly using an LFS-7.6 platform.
Download (HTTP): http://people.freedesktop.org/~dbn/initd-tools/releases/initd-tools-0.1.3.tar.gz
Download MD5 sum: ab6377700ace81ec5a556ebdbae1d8d9
Download size: 291 KB
Estimated disk space required: 2.6 MB
Estimated build time: less than 0.1 SBU
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/initd_tools
Install initd-tools 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 2014-09-21 06:12:54 -0700
The lm_sensors package provides user-space support for the hardware monitoring drivers in the Linux kernel. This is useful for monitoring the temperature of the CPU and adjusting the performance of some hardware (such as cooling fans).
This package is known to build and work properly using an LFS-7.6 platform.
Download (HTTP): http://dl.lm-sensors.org/lm-sensors/releases/lm_sensors-3.3.5.tar.bz2
Download MD5 sum: da506dedceb41822e64865f6ba34828a
Download size: 172 KB
Estimated disk space required: 2.3 MB
Estimated build time: less than 0.1 SBU
RRDtool (required to build the sensord program)
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/lm_sensors
Getting your kernel config right is an iterative process that may require that you recompile your kernel a couple of times. The simplest way to go about it is to start by enabling modules and then compile everything that may be needed by Lm Sensors as a module:
Top level
[*] Enable loadable module support --->
Bus options (PCI etc.) --->
[*] PCI support
Device Drivers --->
[*] I2C support
[*] I2C device interface
I2C Algorithms --->
<M> (configure all of them as modules)
I2C Hardware Bus support --->
<M> (configure all of them as modules)
[*] Hardware Monitoring support --->
<M> (configure all of them as modules)
Recompile your kernel and reboot into the new kernel. Don't forget to make modules_install We will come back to the kernel in the Configuring section below.
Install lm_sensors by running the following commands:
patch -Np1 -i ../lm_sensors-3.3.5-upstream_fixes-1.patch && make PREFIX=/usr \ BUILD_STATIC_LIB=0 \ MANDIR=/usr/share/man
This package does not come with a test suite.
Now, as the root
user:
make PREFIX=/usr \ BUILD_STATIC_LIB=0 \ MANDIR=/usr/share/man install && install -v -m755 -d /usr/share/doc/lm_sensors-3.3.5 && cp -rv README INSTALL doc/* \ /usr/share/doc/lm_sensors-3.3.5
BUILD_STATIC_LIB=0
:
This parameter disables compiling and installing the static
version of libsensors
.
PROG_EXTRA=sensord
:
This parameter enables compiling sensord, a daemon that can
monitor your system at regular intervals. Compiling
sensord
requires RRDtool. Compiling
RRDtool 1.4.6 requires a sed: sed -i '/ sv_undef/d'
bindings/perl-shared/RRDs.xs.
To find out what hardware sensors your system has, issue
the following command as the root
user:
sensors-detect
The appropriate modules should have been loaded and a summary is displayed at the end. Now you know what is needed and you can recompile your kernel to enable just the options you need (i.e., don't enable the modules you cannot use).
is a shell script for use with lm_sensors. It reads its configuration from a file, then calculates fan speeds from temperatures and sets the corresponding PWM outputs to the computed values. |
|
is a small helper program to examine registers visible through the ISA bus. It is intended to probe any chip that lives on the ISA bus working with an address register and a data register (I2C-like access) or a flat range (of up to 256 bytes). |
|
is a small helper program to set registers visible through the ISA bus. |
|
tests the pulse width modulation (PWM) outputs of sensors and configures fancontrol. |
|
prints the current readings of all sensor chips. |
|
is a Perl script to convert lm-sensors version 2 configuration files to work with version 3. |
|
is a Perl script
that will walk you through the process of scanning
your system for various hardware monitoring chips
(sensors) supported by |
|
contains the lm_sensors API functions. |
Last updated on 2014-09-09 14:11:38 -0700
The logrotate package allows automatic rotation, compression, removal, and mailing of log files.
This package is known to build and work properly using an LFS-7.6 platform.
Download (HTTP): http://fedorahosted.org/releases/l/o/logrotate/logrotate-3.8.7.tar.gz
Download MD5 sum: 99e08503ef24c3e2e3ff74cc5f3be213
Download size: 64 KB
Estimated disk space required: 1.3 MB
Estimated build time: less than 0.1 SBU
Fcron-3.2.0 (runtime)
An MTA (runtime)
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/logrotate
Install logrotate by running the following command:
make
To test the results, issue: make test.
Now, as the root
user:
make MANDIR=/usr/share/man install
MANDIR=/usr/share/man
: Ensure the
man pages are installed in the correct location.
Logrotate needs a
configuration file, which must be passed as an argument to
the command when executed. Create the file as the
root
user:
cat > /etc/logrotate.conf << EOF # Begin of /etc/logrotate.conf # Rotate log files weekly weekly # Don't mail logs to anybody nomail # If the log file is empty, it will not be rotated notifempty # Number of backups that will be kept # This will keep the 2 newest backups only rotate 2 # Create new empty files after rotating old ones # This will create empty log files, with owner # set to root, group set to sys, and permissions 644 create 0664 root sys # Compress the backups with gzip compress # No packages own lastlog or wtmp -- rotate them here /var/log/wtmp { monthly create 0664 root utmp rotate 1 } /var/log/lastlog { monthly rotate 1 } # Some packages drop log rotation info in this directory # so we include any file in it. include /etc/logrotate.d # End of /etc/logrotate.conf EOF chmod -v 0644 /etc/logrotate.conf
Now create the /etc/logrotate.d
directory as the root
user:
mkdir -p /etc/logrotate.d
At this point additional log rotation commands can be
entered, typically in the /etc/logrotate.d
directory. For example:
cat > /etc/logrotate.d/sys.log << EOF /var/log/sys.log { # If the log file is larger than 100kb, rotate it size 100k rotate 5 weekly postrotate /bin/killall -HUP syslogd endscript } EOF chmod -v 0644 /etc/logrotate.d/sys.log
You can designate multiple files in one entry:
cat > /etc/logrotate.d/example.log << EOF file1 file2 file3 { ... postrotate ... endscript } EOF chmod -v 0644 /etc/logrotate.d/example.log
You can use in the same line the list of files: file1 file2 file3. See the logrotate man page or http://www.techrepublic.com/article/manage-linux-log-files-with-logrotate/ for more examples.
The command logrotate
/etc/logrotate.conf can be run manually,
however, the command should be run daily. Other useful
commands are logrotate -d
/etc/logrotate.conf for debugging purposes
and logrotate -f
/etc/logrotate.conf forcing the logrotate
commands to be run immediately. Combining the previous
options -df
, you can debug the
effect of the force command. When debugging, the command is
only simulated, not really run, thus, eventual non-existing
errors appear, when some intermediate files are expected,
because they are not actually created.
To set up Fcron-3.2.0 to run logrotate ... at 3AM daily, root's crontab should be edited to add:
0 3 * * * /usr/sbin/logrotate /etc/logrotate.conf
Last updated on 2014-09-16 16:24:33 -0700
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.
This package is known to build and work properly using an LFS-7.6 platform.
Download (HTTP): http://ftp.midnight-commander.org/mc-4.8.13.tar.xz
Download (FTP): ftp://ftp.osuosl.org/pub/midnightcommander/mc-4.8.13.tar.xz
Download MD5 sum: d967caa12765eb86e52a6a63ca202500
Download size: 2.2 MB
Estimated disk space required: 71 MB (119 MB, running the test suite)
Estimated build time: 0.7 SBU (additional 0.1 SBU, running the test suite)
GLib-2.40.0 and PCRE-8.35
Doxygen-1.8.8, GPM-1.20.7, Samba-4.1.11, UnZip-6.0, X Window System, and Zip-3.0
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/MC
Install MC by running the following commands:
./configure --prefix=/usr \ --sysconfdir=/etc \ --enable-charset && make
To test the results, issue: make check.
Now, as the root
user:
make install && cp -v doc/keybind-migration.txt /usr/share/mc
--sysconfdir=/etc
:
This switch places the global configureation directory in
/etc
.
--enable-charset
:
This switch adds support to mcedit for editing files in
encodings different from the one implied by the current
locale.
The ~/.config/mc
directory
and its contents are created when you start mc for the first time.
Then you can edit the main ~/.config/mc/ini
configuration file
manually or through the MC
shell. Consult the mc(1) man page for details.
On 8.x versions of mc,
keybind names used in mc.keymap.* files are changed. This
is described in keybind-migration.txt
.
Last updated on 2014-09-21 14:28:22 -0700
OBEX Data Server package contains D-Bus service providing high-level OBEX client and server side functionality.
This package is known to build and work properly using an LFS-7.6 platform.
Download (HTTP): http://tadas.dailyda.com/software/obex-data-server-0.4.6.tar.gz
Download MD5 sum: 961ca5db6fe9c97024e133cc6203cc4d
Download size: 196 KB
Estimated disk space required: 2.2 MB
Estimated build time: less than 0.1 SBU
BlueZ-5.23, dbus-glib-0.102, ImageMagick-6.8.9-7 or gdk-pixbuf-2.30.8, libusb-compat-0.1.5, and OpenOBEX-1.7.1
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/obex-data-server
Install OBEX Data Server by running the following commands:
patch -Np1 -i ../obex-data-server-0.4.6-build-fixes-1.patch && ./configure --prefix=/usr --sysconfdir=/etc && make
This package does not come with a test suite.
Now, as the root
user:
make install
Last updated on 2014-09-21 16:43:46 -0700
p7zip is the Unix command-line port of 7-Zip, a file archiver that archives with high compression ratios. It handles 7z, ZIP, GZIP, BZIP2, XZ, TAR, APM, ARJ, CAB, CHM, CPIO, CramFS, DEB, DMG, FAT, HFS, ISO, LZH, LZMA, LZMA2, MBR, MSI, MSLZ, NSIS, NTFS, RAR RPM, SquashFS, UDF, VHD, WIM, XAR and Z formats.
This package is known to build and work properly using an LFS-7.6 platform.
Download (HTTP): http://downloads.sourceforge.net/p7zip/p7zip_9.20.1_src_all.tar.bz2
Download MD5 sum: bd6caaea567dc0d995c990c5cc883c89
Download size: 3.7 MB
Estimated disk space required: 42 MB
Estimated build time: 0.8 SBU
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/p7zip
Install p7zip by running the following commands:
sed -i -e 's/chmod 555/chmod 755/' -e 's/chmod 444/chmod 644/' install.sh && make all3
To test the results, issue: make test.
Now, as the root
user:
make DEST_HOME=/usr \ DEST_MAN=/usr/share/man \ DEST_SHARE_DOC=/usr/share/doc/p7zip-9.20.1 install
Last updated on 2014-09-21 14:28:22 -0700
pax is an archiving utility created by POSIX and defined by the POSIX.1-2001 standard. Rather than sort out the incompatible options that have crept up between tar and cpio, along with their implementations across various versions of UNIX, the IEEE designed a new archive utility. The name “pax” is an acronym for portable archive exchange. Furthermore, “pax” means “peace” in Latin, so its name implies that it shall create peace between the tar and cpio format supporters. The command invocation and command structure is somewhat a unification of both tar and cpio.
pax has been required to be present in LSB conformant systems since LSB version 3.0.
This package is known to build and work properly using an LFS-7.6 platform.
Download (HTTP): http://downloads.sourceforge.net/heirloom/heirloom-070715.tar.bz2
Download MD5 sum: d846be4b268b1d55b6ffcef847f09979
Download size: 977 KB
Estimated disk space required: 9.2 MB
Estimated build time: less than 0.1 SBU
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/pax
This package has somewhat unusual installation instructions, because pax is part of a larger set of utilities included in the same tarball. Issue the following commands:
sed -i build/mk.config \ -e '/LIBZ/s@ -Wl[^ ]*@@g' \ -e '/LIBBZ2/{s@^#@@;s@ -Wl[^ ]*@@g}' \ -e '/BZLIB/s@0@1@' && make makefiles && make -C libcommon && make -C libuxre && make -C cpio
Now, as the root
user:
install -v -m755 cpio/pax_su3 /usr/bin/pax && install -v -m644 cpio/pax.1 /usr/share/man/man1
sed ...: This
changes the configuration file build/mk.config
so that the system zlib and
libbz2 are used and linked as shared libraries.
make makefiles: This command builds all the makefiles.
make -C lib...: First builds the necessary libraries.
make -C cpio: Then builds the archive utilities.
Last updated on 2014-09-21 06:12:54 -0700
The PCI Utils package contains a set of programs for listing PCI devices, inspecting their status and setting their configuration registers.
This package is known to build and work properly using an LFS-7.6 platform.
Download (HTTP): http://ftp.kernel.org/pub/software/utils/pciutils/pciutils-3.2.1.tar.xz
Download (FTP): ftp://ftp.kernel.org/pub/software/utils/pciutils/pciutils-3.2.1.tar.xz
Download MD5 sum: fe7806d075994db0e28894e42668a02a
Download size: 276 KB
Estimated disk space required: 3.0 MB
Estimated build time: 0.1 SBU
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/pciutils
Install PCI Utils by running the following commands:
make PREFIX=/usr \ SHAREDIR=/usr/share/misc \ SHARED=yes
This package does not come with a test suite.
Now, as the root
user:
make PREFIX=/usr \ SHAREDIR=/usr/share/misc \ SHARED=yes \ install install-lib && chmod -v 755 /usr/lib/libpci.so
SHARED=yes
: This
parameter enables building of shared library instead of
static one.
ZLIB=no
: This option prevents
compression of the pci.ids
file.
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.20 script or
program to find cURL-7.37.1, Lynx-2.8.8rel.2 or Wget-1.15 which are
used to download the most current file, and then replace the
existing file in /usr/share/misc
.
You may wish to add an entry to root
's (or any other user who has write
privilege to /usr/share/misc
)
crontab to automatically update the pci.ids
file periodically.
is an utility for displaying information about all PCI buses in the system and all devices connected to them. |
|
is an utility for querying and configuring PCI devices. |
|
fetches the current version of the PCI ID list. Requires cURL-7.37.1, Lynx-2.8.8rel.2 or Wget-1.15. |
|
is library that allows applications to access the PCI subsystem. |
Last updated on 2014-09-09 14:11:38 -0700
The Power Management Utilities is a small collection of scripts to suspend and hibernate computer that can be used to run user supplied scripts on suspend and resume.
This package is known to build and work properly using an LFS-7.6 platform.
Download (HTTP): http://pm-utils.freedesktop.org/releases/pm-utils-1.4.1.tar.gz
Download MD5 sum: 1742a556089c36c3a89eb1b957da5a60
Download size: 204 KB
Estimated disk space required: 1.6 MB
Estimated build time: 0.1 SBU
xmlto-0.0.26 (to generate man pages)
Hdparm-9.43, Wireless Tools-29, ethtool and vbetool
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/pm-utils
Install Power Management Utilities by running the following commands:
./configure --prefix=/usr \ --sysconfdir=/etc \ --docdir=/usr/share/doc/pm-utils-1.4.1 && make
This package does not come with a test suite.
Now, as the root
user:
make install
If you don't have xmlto-0.0.26 installed, copy pregenerated man pages:
install -v -m644 man/*.1 /usr/share/man/man1 && install -v -m644 man/*.8 /usr/share/man/man8 && ln -sv pm-action.8 /usr/share/man/man8/pm-suspend.8 && ln -sv pm-action.8 /usr/share/man/man8/pm-hibernate.8 && ln -sv pm-action.8 /usr/share/man/man8/pm-suspend-hybrid.8
Suspend or resume functionality can be easily modified by
installing files into the /etc/pm/sleep.d
directory. These files,
known as hooks, are run when the system is put into a sleep
state or resumed. Default hooks are located in /usr/lib/pm-utils/sleep.d
, and user hooks
should be put in /etc/pm/sleep.d
. See the pm-action(8) man
page for more information.
In order to use hibernation with GRUB and a swap partition, you need to
add kernel parameter resume=
(i.e.
swap_partition
resume=/dev/sda1
) to the kernel
line in the /boot/grub/grub.cfg
configuration file.
is a script that determines whether the system is running on AC power (rather than a battery). |
|
is a symlink to pm-action script that puts the computer into hibernate mode (the system is fully powered off and system state is saved to disk). |
|
is a script that checks whether power management features such as suspend and hibernate are supported. |
|
is a script that puts the computer into powersaving (low power) mode. |
|
is a symlink to pm-action script that puts the computer into suspend mode (most devices are shut down and system state is saved in RAM). |
|
is a symlink to pm-action script that puts the computer into hybrid-suspend mode (the system does everything it needs to hibernate, but suspends instead of shutting down). |
Last updated on 2013-07-10 14:18:46 +0200
Raptor is a C library that provides a set of parsers and serializers that generate Resource Description Framework (RDF) triples.
This package is known to build and work properly using an LFS-7.6 platform.
Download (HTTP): http://download.librdf.org/source/raptor2-2.0.14.tar.gz
Download MD5 sum: d3e0b43866197a5367b781b25510f728
Download size: 1.8 MB
Estimated disk space required: 27 MB (additional 2 MB for the tests)
Estimated build time: 0.2 SBU (additional 0.5 SBU for the tests)
cURL-7.37.1 and libxslt-1.1.28
GTK-Doc-1.20, ICU-53.1 and libyajl
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/raptor
Install Raptor by running the following commands:
./configure --prefix=/usr --disable-static && make
To test the results, issue: make check.
Now, as the root
user:
make install
--disable-static
:
This switch prevents installation of static versions of the
libraries.
--with-icu-config=/usr/bin/icu-config
: Use
this switch if you have installed ICU-53.1 and wish to build Raptor with its support.
Last updated on 2014-09-20 21:51:52 -0700
Rasqal is a C library that handles Resource Description Framework (RDF) query language syntaxes, query construction and execution of queries returning results as bindings, boolean, RDF graphs/triples or syntaxes. It is required by Soprano to build Nepomuk.
This package is known to build and work properly using an LFS-7.6 platform.
Download (HTTP): http://download.librdf.org/source/rasqal-0.9.32.tar.gz
Download MD5 sum: dc7c6107de00c47f85f6ab7db164a136
Download size: 1.5 MB
Estimated disk space required: 22 MB (additional 4 MB for the tests)
Estimated build time: 0.2 SBU
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/rasqal
Install Rasqal by running the following commands:
./configure --prefix=/usr --disable-static && make
To test the results, issue: make check.
Now, as the root
user:
make install
--disable-static
:
This switch prevents installation of static versions of the
libraries.
Last updated on 2014-09-20 21:51:52 -0700
Redland is a set of free software C libraries that provide support for the Resource Description Framework (RDF).
This package is known to build and work properly using an LFS-7.6 platform.
Download (HTTP): http://download.librdf.org/source/redland-1.0.17.tar.gz
Download MD5 sum: e5be03eda13ef68aabab6e42aa67715e
Download size: 1.6 MB
Estimated disk space required: 18 MB
Estimated build time: 0.2 SBU
Berkeley DB-6.1.19, libiodbc-3.52.9, SQLite-3.8.6, MariaDB-10.0.13 or MySQL, PostgreSQL-9.3.5, virtuoso, and 3store
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/redland
Install Redland by running the following commands:
./configure --prefix=/usr --disable-static && make
To test the results, issue make check.
Now, as the root
user:
make install
--disable-static
:
This switch prevents installation of static versions of the
libraries.
Last updated on 2014-09-22 11:20:08 -0700
The sg3_utils package contains low level utilities for devices that use a SCSI command set. Apart from SCSI parallel interface (SPI) devices, the SCSI command set is used by ATAPI devices (CD/DVDs and tapes), USB mass storage devices, Fibre Channel disks, IEEE 1394 storage devices (that use the "SBP" protocol), SAS, iSCSI and FCoE devices (amongst others).
This package is known to build and work properly using an LFS-7.6 platform.
Download (HTTP): http://sg.danny.cz/sg/p/sg3_utils-1.39.tar.xz
Download MD5 sum: 01d9a5421d778d2707f90461836c3d11
Download size: 700 KB
Estimated disk space required: 23 MB
Estimated build time: 0.3 SBU
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/sg3_utils
Install sg3_utils by running the following commands:
./configure --prefix=/usr --disable-static && make
This package does not come with a test suite.
Now, as the root
user:
make install
--disable-static
:
This switch prevents installation of static versions of the
libraries.
sends the SCSI COMPARE AND WRITE command to device. |
|
sends the SCSI RECEIVE COPY RESULTS command (XCOPY related). |
|
copies data to and from files and devices. Specialised for devices that understand the SCSI command set. |
|
takes SCSI sense data in binary or as a sequence of ASCII hexadecimal bytes and decodes it. |
|
changes ownership of a LUN from another Service-Processor to this one. |
|
format or resize a SCSI disk (perhaps change its block size). |
|
sends a SCSI GET CONFIGURATION command (MMC-4 +). |
|
sends the SCSI GET LBA STATUS command. |
|
sends a SCSI REPORT or SET IDENTIFYING INFORMATION command. |
|
access mode page information for a SCSI (or ATAPI) device. |
|
sends a SCSI INQUIRY or ATA IDENTIFY (PACKET) DEVICE command and outputs the response. |
|
access log pages with SCSI LOG SENSE command. |
|
sends the SCSI REPORT LUNS command. |
|
displays mapping between linux sg and other SCSI devices. |
|
maps a special file to a SCSI generic (sg) device (or vice versa). |
|
copies data to and from files and devices. Specialized for devices that understand the SCSI command set and does memory mapped transfers from sg devices. |
|
reads mode pages with SCSI MODE SENSE command. |
|
reports information on supported SCSI commands or task management functions. |
|
copies data to and from files and devices. Specialized for devices that understand the SCSI command set. |
|
sends a SCSI PERSISTENT RESERVE (IN or OUT) command to manipulate registrations and reservations. |
|
sends a SCSI PREVENT ALLOW MEDIUM REMOVAL command. |
|
sends an arbitrary SCSI command to a device. |
|
reads data using SCSI READ BUFFER command. |
|
Display or Modify RDAC Redundant Controller Page. |
|
read blocks of data continually from same offset. |
|
sends a SCSI READ BLOCK LIMITS command. |
|
sends a SCSI READ BUFFER command. |
|
sends a SCSI READ CAPACITY command. |
|
sends a SCSI READ LONG command. |
|
sends a SCSI REASSIGN BLOCKS command. |
|
sends the SCSI REPORT REFERRALS command. |
|
sends one or more SCSI REQUEST SENSE commands. |
|
sends SCSI device, target, bus or host reset; or checks reset state. |
|
sends a SCSI READ MEDIA SERIAL NUMBER command. |
|
sends a SCSI REPORT TARGET PORT GROUPS command. |
|
fetch status from a SCSI Accessed Fault-Tolerant Enclosure (SAF-TE) device. |
|
sends a SCSI SANITIZE command. |
|
sends a ATA IDENTIFY (PACKET) DEVICE command via a SCSI to ATA Translation (SAT) layer. |
|
sends an ATA READ LOG EXT command via a SAT pass through to fetch log page 11h which contains SATA phy event counters. |
|
sends a ATA SET FEATURES command via a SCSI to ATA Translation (SAT) layer. |
|
does a scan of sg devices (or given SCSI/ATAPI/ATA devices) and prints the results. |
|
performs a SCSI SEND DIAGNOSTIC command. |
|
sends controls and fetch status from a SCSI Enclosure Services (SES) device. |
|
sends SCSI START STOP UNIT command to start, stop, load or eject medium. |
|
sends a SCSI SET TARGET PORT GROUPS command. |
|
sends the scsi command synchronize cache. |
|
tests the SCSI host adapter by issuing write and read operations on a device's buffer and calculating checksums. |
|
sends one or more SCSI TEST UNIT READY commands. |
|
sends a SCSI UNMAP command. |
|
invoke SCSI VERIFY command(s) on a block device. |
|
fetches Vital Product Data (VPD) pages using a SCSI INQUIRY command. |
|
sends a SCSI WRITE BUFFER command. |
|
sends the SCSI WRITE LONG command. |
|
sends the SCSI WRITE SAME command. |
|
writes mode page. |
|
copies data to and from files and devices using SCSI EXTENDED COPY (XCOPY). |
|
contains the sg3_utils API functions. |
Last updated on 2014-09-17 11:48:47 -0700
Strigi is a program for fast indexing and searching of personal data. It can gather and index information from files in the filesystem even if they are hidden in emails or archives.
This package is known to build and work properly using an LFS-7.6 platform.
Download (HTTP): http://www.vandenoever.info/software/strigi/strigi-0.7.8.tar.bz2
Download MD5 sum: d69443234f4286d71997db9de543331a
Download size: 811 KB
Estimated disk space required: 52 MB
Estimated build time: 1.2 SBU
D-Bus-1.8.8 and Qt-4.8.6
FFmpeg-2.3.3, Exiv2-0.24, libxml2-2.9.1, CLucene version 0.9x , and log4cxx
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/strigi
Install strigi by running the following commands:
sed -i "s/BufferedStream :/STREAMS_EXPORT &/" libstreams/include/strigi/bufferedstream.h && mkdir build && cd build && cmake -DCMAKE_INSTALL_PREFIX=/usr \ -DCMAKE_INSTALL_LIBDIR=lib \ -DCMAKE_BUILD_TYPE=Release \ -DENABLE_CLUCENE=OFF \ -DENABLE_CLUCENE_NG=OFF \ .. && make
To test the results, issue make test.
Now, as the root
user:
make install
sed -i "...": This command fixes the build with recent GCC versions.
-DCMAKE_INSTALL_LIBDIR=lib
:
This switch is used so the package doesn't write over the
lib64 symlink on 64 bit systems.
-DCMAKE_BUILD_TYPE=Release
:
This switch is used to apply higher level of the compiler
optimizations.
-DENABLE_DBUS=OFF
: Use this
cmake variable
if you don't have D-Bus
installed.
-DENABLE_QT4=OFF
: Use this
cmake variable
if you don't have Qt4
installed or if you compiled Qt4 without D-Bus support.
-DENABLE_CLUCENE*=OFF
: These
statements disable the package from trying to use CLucene-2.3.3.4 (current stable
version).
is a utility for searching for filenames in compressed archives like tar, cpio, and zip |
|
is a utility for searching compressed archives like tar, cpio, and zip |
|
manages and performs indexing of the RDF data for entities present on your site |
|
is a Qt4 client (GUI) for the Strigi Desktop Search software |
|
is a program for creating and querying indices |
|
is a daemon program for maintaining indices |
|
indexes XML documents |
Last updated on 2014-09-17 11:48:47 -0700
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.
This package is known to build and work properly using an LFS-7.6 platform.
Download (HTTP): http://perso.wanadoo.fr/sebastien.godard/sysstat-11.1.1.tar.xz
Download MD5 sum: 24241596a7f0f5819a43386f2ccca0cc
Download size: 292 KB
Estimated disk space required: 6.5 MB
Estimated build time: less than 0.1 SBU
There are no build-time requirements for this package; however, it is designed to be controlled by a cron daemon such as Fcron-3.2.0.
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/sysstat
Install Sysstat by running the following commands:
sa_lib_dir=/usr/lib/sa \ sa_dir=/var/log/sa \ conf_dir=/etc/sysconfig \ ./configure --prefix=/usr \ --disable-man-group && make
This package does not come with a test suite.
Now, as the root
user:
make install
sa_lib_dir
: This environment
variable specifies the location of the package-specific
library directory.
sa_dir
: This environment variable
specifies the location of the directory containing the data
files.
conf_dir
: This environment
variable specifies the location of the system configuration
directory.
--disable-man-group
:
This parameter causes the installation to ignore the man
group variable resulting in the man files having root
:root
ownership.
Run ./configure
--help to see other influential environment
variables you can pass to configure. You may want
to use the history
and
compressafter
variables to
customize the amount of data files kept on the system.
To begin gathering Sysstat
history information, you must add to, or create a
privileged user's crontab. The 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-20140919 package
using the following command as the root
user:
make install-sysstat
displays statistics about read and write operations on CIFS filesystems. |
|
reports CPU statistics and input/output statistics for devices and partitions. |
|
writes activities for each available processor. |
|
displays statistics about read and write operations on NFS filesystems. |
|
is used for monitoring individual tasks currently being managed by the Linux kernel. |
|
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. |
|
is used for displaying the contents of elected cumulative activity counters in the operating system. |
Last updated on 2014-09-21 14:28:22 -0700
Eudev was indeed installed in LFS and there is no reason to reinstall it unless the user is going to install a package such as UPower that needs libgudev. These instructions enable building libgudev and also optionally create gir data for Eudev.
Unlike other packages in BLFS, there is no set version of Eudev in this page's title and no set version specified for download. Version updates to Eudev makes it possible that the user's system may have an Eudev version different from the one in the current LFS book. Therefore, users should use the version of Eudev their computer currently uses. With few exceptions, the BLFS team has no experience updating (or reverting to an older version) the Eudev package “on the fly”.
This package is known to build and work properly using an LFS-7.6 platform.
If you are using a version of BLFS different from your currently installed base LFS system, you should use the Eudev source from your LFS build. Newer versions of Eudev may occasionally be incompatible with former ones, either because they require some new options to be enabled in the kernel or because they change the way rules are parsed. For in-system updates to Eudev, you may want to consult the Gentoo page about upgrading Udev.
Download (HTTP): http://dev.gentoo.org/~blueness/eudev
gobject-introspection-1.40.0 (for gir-data, needed for Gnome), docbook-xsl-1.78.1 and libxslt-1.1.28 (to build man pages, which are not shipped with the package), and GTK-Doc-1.20 (to rebuild the documentation)
pciutils-3.2.1 and usbutils-007
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/udev-extras
First, re-build eudev:
sed -r -i 's|/usr(/bin/test)|\1|' test/udev-test.pl && ./configure --prefix=/usr \ --bindir=/sbin \ --sbindir=/sbin \ --libdir=/usr/lib \ --sysconfdir=/etc \ --libexecdir=/lib \ --with-rootprefix= \ --with-rootlibdir=/lib \ --enable-split-usr \ --enable-libkmod \ --enable-rule_generator \ --enable-keymap \ --disable-introspection \ --disable-gtk-doc-html \ --with-firmware-path=/lib/firmware && make
To test the results, issue: make check.
Now re-install as the root
user:
make install
--disable-introspection
: This
prevents the gir-data instructions from running. Remove this
option if the optional gobject-introspection-1.40.0
package is installed.
--disable-gtk-doc-html
: This
prevents the building of the html data. Remove this option if
the optional GTK-Doc-1.20 package is installed.
Last updated on 2014-09-09 12:00:35 -0700
The UDisks package provides a storage daemon that implements well-defined D-Bus interfaces that can be used to query and manipulate storage devices.
This package is known to build and work properly using an LFS-7.6 platform.
Download (HTTP): http://hal.freedesktop.org/releases/udisks-1.0.5.tar.gz
Download MD5 sum: 70d48dcfe523a74cd7c7fbbc2847fcdd
Download size: 720 KB
Estimated disk space required: 12 MB
Estimated build time: 0.1 SBU
dbus-glib-0.102, libatasmart-0.19, LVM2-2.02.111, parted-3.2, Polkit-0.112, sg3_utils-1.39, and udev-extras (from eudev) (for gudev)
GTK-Doc-1.20, libxslt-1.1.28 and Sudo-1.8.10p3 (to run the test)
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/udisks
Install UDisks by running the following commands:
./configure --prefix=/usr \ --sysconfdir=/etc \ --localstatedir=/var && make
To test the results, issue: make check.
Now, as the root
user:
make profiledir=/etc/bash_completion.d install
--enable-gtk-doc
: Use this
parameter if GTK-Doc is
installed and you wish to rebuild and install the API
documentation.
Last updated on 2014-09-17 11:48:47 -0700
The UDisks package provides a daemon, tools and libraries to access and manipulate disks and storage devices.
This package is known to build and work properly using an LFS-7.6 platform.
Download (HTTP): http://udisks.freedesktop.org/releases/udisks-2.1.3.tar.bz2
Download MD5 sum: f2c793f839058371d1e93a654199438d
Download size: 892 KB
Estimated disk space required: 40 MB (additional 1 MB for the tests and 46 MB for docs creation)
Estimated build time: 0.3 SBU (additional 0.1 SBU for docs creation)
libatasmart-0.19, libxslt-1.1.28, Polkit-0.112, and udev-extras (from eudev) (for GUdev)
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/udisks2
Install UDisks by running the following commands:
./configure --prefix=/usr \ --sysconfdir=/etc \ --localstatedir=/var \ --disable-static && make
To test the results, issue: make check.
Now, as the root
user:
make install
--disable-static
:
This switch prevents installation of static versions of the
libraries.
--enable-gtk-doc
: Use this
parameter if GTK-Doc is
installed and you wish to rebuild and install the API
documentation.
Last updated on 2014-09-17 04:20:33 -0700
The UnRar package contains a
RAR
extraction utility used for
extracting files from RAR
archives. RAR
archives are
usually created with WinRAR,
primarily in a Windows environment.
This package is known to build and work properly using an LFS-7.6 platform.
Download (HTTP): http://www.rarlab.com/rar/unrarsrc-5.1.7.tar.gz
Download MD5 sum: af571529a358c972872b91792ffc0a80
Download size: 211 KB
Estimated disk space required: 2.4 MB
Estimated build time: 0.1 SBU
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/unrar
Install UnRar by running the following commands:
make -f makefile
This package does not come with a test suite.
Now, as the root
user:
install -v -m755 unrar /usr/bin
Last updated on 2014-09-14 12:09:32 -0700
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.
This package is known to build and work properly using an LFS-7.6 platform.
The previous version of the UnZip package had some locale related issues. Currently there are no BLFS editors capable of testing these local issues. Therefore, the locale related information is left on this page, but has not been tested. 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/unzip60.tar.gz
Download MD5 sum: 62b490407489521db863b523a7f86375
Download size: 1.3 MB
Estimated disk space required: 9 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>
case `uname -m` in i?86) sed -i -e 's/DASM_CRC"/DASM_CRC -DNO_LCHMOD"/' unix/Makefile make -f unix/Makefile linux ;; *) sed -i -e 's/CFLAGS="-O -Wall/& -DNO_LCHMOD/' unix/Makefile make -f unix/Makefile linux_noasm ;; esac
To test the results, issue: make check.
Now, as the root
user:
make prefix=/usr MANDIR=/usr/share/man/man1 install
sed ...: This command ensures an obsolete system call is not made.
linux, linux_noasm
:
The linux target in the Makefile
makes assumptions that are useful
for a Linux system when compiling the executables, but also
uses some 32-bit x86 assembler code. The linux_noasm target
will build on all linux hosts. To obtain alternatives to
these targets, use make -f
unix/Makefile list
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
|
Last updated on 2014-09-09 12:00:35 -0700
The UPower package provides an interface to enumerating power devices, listening to device events and querying history and statistics. Any application or service on the system can access the org.freedesktop.UPower service via the system message bus.
This package is known to build and work properly using an LFS-7.6 platform.
Download (HTTP): http://upower.freedesktop.org/releases/upower-0.9.23.tar.xz
Download MD5 sum: 39cfd97bfaf7d30908f20cf937a57634
Download size: 416 KB
Estimated disk space required: 10 MB
Estimated build time: 0.2 SBU
dbus-glib-0.102, libusb-1.0.19, Polkit-0.112, and udev-extras (from eudev) (for GUdev)
GTK-Doc-1.20 and Python-3.4.1 (used only in the testsuite).
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/upower
Install UPower by running the following commands:
./configure --prefix=/usr \ --sysconfdir=/etc \ --localstatedir=/var \ --enable-deprecated \ --disable-static && make
To test the results, issue: make check. Some checks may not pass due to missing files. Test suite should be run from a local GUI session started with dbus-launch.
Now, as the root
user:
make install
--enable-deprecated
: This switch
enables deprecated functionality which is still needed by
some applications.
--disable-static
:
This switch prevents installation of static versions of the
libraries.
--enable-gtk-doc
: Use this
parameter if GTK-Doc is
installed and you wish to rebuild and install the API
documentation.
To use the command upower -w for information about processor wakeups (this command is used by gnome-power-manager) you need to enable CONFIG_TIMER_STATS. This is achieved in make menuconfig by going to the 'kernel-hacking' menu and selecting 'Collect kernel timers statistics'.
Last updated on 2014-09-20 21:51:52 -0700
The USB Utils package contains an utility used to display information about USB buses in the system and the devices connected to them.
This package is known to build and work properly using an LFS-7.6 platform.
Download (HTTP): http://ftp.kernel.org/pub/linux/utils/usb/usbutils/usbutils-007.tar.xz
Download (FTP): ftp://ftp.kernel.org/pub/linux/utils/usb/usbutils/usbutils-007.tar.xz
Download MD5 sum: c9df5107ae9d26b10a1736a261250139
Download size: 416 KB
Estimated disk space required: 4.8 MB
Estimated build time: less than 0.1 SBU
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/usbutils
Install USB Utils by running the following commands:
./configure --prefix=/usr \ --disable-zlib \ --datadir=/usr/share/misc && make
This package does not come with a test suite.
Now, as the root
user:
make install && mv -v /usr/sbin/update-usbids.sh /usr/sbin/update-usbids
--disable-zlib
: This stops
USB Utils from installing a
compressed usb.ids
alongside
the uncompressed one.
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.20 script or
program to find Lynx-2.8.8rel.2 or Wget-1.15 which are used
to download the most current file, and replace the existing
file in /usr/share/misc
.
You may wish to add an entry to root
's (or any other user who has write
privilege to /usr/share/misc
)
crontab to automatically update the usb.ids
file periodically.
is an 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 Lynx-2.8.8rel.2 or Wget-1.15. |
|
is a shell script that displays details of USB buses and devices connected to them. It is designed to be used if /proc/bus/usb/devices is not available on your system. |
|
is used to dump report descriptors and streams from HID (human interface device) interfaces of USB devices. |
Last updated on 2014-09-14 12:09:32 -0700
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.
This package is known to build and work properly using an LFS-7.6 platform.
Download (HTTP): http:/ftp.gnu.org/gnu/which/which-2.20.tar.gz
Download (FTP): ftp://ftp.gnu.org/gnu/which/which-2.20.tar.gz
Download MD5 sum: 95be0501a466e515422cde4af46b2744
Download size: 135 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 2014-09-08 23:39:08 -0700
The Zip package contains
Zip utilities. These are
useful for compressing files into ZIP
archives.
This package is known to build and work properly using an LFS-7.6 platform.
Download (HTTP): http://downloads.sourceforge.net/infozip/zip30.tar.gz
Download (FTP): ftp://ftp.info-zip.org/pub/infozip/src/zip30.tgz
Download MD5 sum: 7b74551e63f8ee6aab6fbc86676c0d37
Download size: 1.1 MB
Estimated disk space required: 6.4 MB
Estimated build time: 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 MANDIR=/usr/share/man/man1 -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 2014-09-09 12:00:35 -0700
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.
Bazaar is a version control system that helps track project history over time and collaborate with others.
This package is known to build and work properly using an LFS-7.6 platform.
Download (HTTP): https://launchpad.net/bzr/2.5/2.5.1/+download/bzr-2.5.1.tar.gz
Download MD5 sum: ac5079858364a046071000d5cdccb67b
Download size: 10 MB
Estimated disk space required: 69 MB
Estimated build time: 0.2 SBU
Certificate Authority Certificates, paramiko with OpenSSH-6.6p1 or PyCrypto (to access branches over SSH), and BzrTools (for rsync support and other extra functionality)
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/bazaar
Install Bazaar by running the following commands:
sed -i -e 's|man/man1|share/&|' setup.py && python setup.py build
This package does not come with a test suite.
Now, as the root
user:
python setup.py install
Last updated on 2014-09-12 22:13:42 -0700
Check is a unit testing framework for C. It was installed by LFS in the temporary /tools directory. These instructions install it permanently.
This package is known to build and work properly using an LFS-7.6 platform.
Download (HTTP): http://downloads.sourceforge.net/check/check-0.9.14.tar.gz
Download MD5 sum: 38263d115d784c17aa3b959ce94be8b8
Download size: 744 KB
Estimated disk space required: 7.8 MB (additional 0.4 MB for the tests)
Estimated build time: 0.1 SBU (additional 2.1 SBU for the tests)
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/check
Install Check by running the following commands:
./configure --prefix=/usr --disable-static && make
To test the installation, issue make check.
Now, as the root
user:
make docdir=/usr/share/doc/check-0.9.14 install
--disable-static
:
This switch prevents installation of static versions of the
libraries.
Last updated on 2014-09-12 12:02:55 -0700
GNU Clisp is a Common Lisp implementation which includes an interpreter, compiler, debugger, and many extensions.
This package is known to build and work properly using an LFS-7.6 platform.
Download (HTTP): http://ftp.gnu.org/pub/gnu/clisp/latest/clisp-2.49.tar.bz2
Download (FTP): ftp://ftp.gnu.org/pub/gnu/clisp/latest/clisp-2.49.tar.bz2
Download MD5 sum: 1962b99d5e530390ec3829236d168649
Download size: 7.8 MB
Estimated disk space required: 163 MB
Estimated build time: 0.9 SBU
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/clisp
This package does not support parallel build.
Install Clisp by running the following commands:
mkdir build && cd build && ../configure --srcdir=../ \ --prefix=/usr \ --docdir=/usr/share/doc/clisp-2.49 \ --with-libsigsegv-prefix=/usr && ulimit -s 16384 && make -j1
For reasons which are not understood, the testsuite for this package fails.
Now, as the root
user:
make install
uimit -s 16384: this increases the maximum stack size, as recommended by the configure.
/usr/lib/clisp-$clisp-version;/base/
Last updated on 2014-09-18 12:44:10 -0700
The CMake package contains a modern toolset used for generating Makefiles. It is a successor of the auto-generated configure script and aims to be platform- and compiler-independent. A significant user of CMake is KDE since version 4.
This package is known to build and work properly using an LFS-7.6 platform.
Download (HTTP): http://www.cmake.org/files/v3.0/cmake-3.0.1.tar.gz
Download MD5 sum: e2e05d84cb44a42f1371d9995631dcf5
Download size: 5.3 MB
Estimated disk space required: 237 MB (additional 195 MB for tests)
Estimated build time: 1.8 SBU (additional 4.4 SBU for tests)
cURL-7.37.1 and libarchive-3.1.2
Qt-4.8.6 or Qt-5.3.1 (for the Qt-based GUI), Subversion-1.8.10 (for testing), and Sphinx (for building documents)
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/cmake
If Qt4 and Qt5 are installed in /opt
, use source setqt4 or
source setqt5
to choose which one will be used to build the Qt-based GUI.
Install CMake by running the following commands:
./bootstrap --prefix=/usr \ --system-libs \ --mandir=/share/man \ --docdir=/share/doc/cmake-3.0.1 && make
To test the results, issue: bin/ctest. If you want to investigate a problem with a given "problem1-test", use bin/ctest -R "problem1-test" and, to omit it, use bin/ctest -E "problem1-test". These options can be used together: bin/ctest -R "problem1-test" -E "problem2-test". Option -N can be used to display all available tests, and you can run bin/ctest for a sub-set of tests by using separated by spaces names or numbers as options. Option --help can be used to show all options.
Now, as the root
user:
make install
--system-libs
: This
switch forces the build system to link against Zlib, Bzip2, cURL, Expat and libarchive installed on the system.
--qt-gui
: This switch enables
building of the Qt-based GUI
for CMake.
Last updated on 2014-09-10 09:45:01 -0700
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.
This package is known to build and work properly using an LFS-7.6 platform.
Download (HTTP): http://ftp.gnu.org/non-gnu/cvs/source/stable/1.11.23/cvs-1.11.23.tar.bz2
Download (FTP): ftp://ftp.gnu.org/non-gnu/cvs/source/stable/1.11.23/cvs-1.11.23.tar.bz2
Download MD5 sum: 0213ea514e231559d6ff8f80a34117f0
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/7.6/cvs-1.11.23-zlib-1.patch
Tcsh-6.18.01, OpenSSH-6.6p1, krb4, MIT Kerberos V5-1.12.2 (for the GSSAPI libraries), ghostscript-9.14, 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 repository.
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>
Re-alpine-2.03 (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.23-zlib-1.patch
Now fix some conflicts with newer libraries and programs:
sed -i -e 's/getline /get_line /' lib/getline.{c,h} && sed -i -e 's/^@sp$/& 1/' doc/cvs.texinfo && touch doc/*.pdf
Install CVS by running the following commands:
./configure --prefix=/usr --docdir=/usr/share/doc/cvs-1.11.23 && make
If you wish to create HTML or text docs from the documentation source files, issue the following command:
make -C doc html txt
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 && make -C doc install-pdf && install -v -m644 FAQ README /usr/share/doc/cvs-1.11.23
If you created any additional documentation, install it by
issuing the following commands as the root
user:
install -v -m644 doc/*.txt /usr/share/doc/cvs-1.11.23 && install -v -m755 -d /usr/share/doc/cvs-1.11.23/html/cvs{,client} && install -v -m644 doc/cvs.html/* \ /usr/share/doc/cvs-1.11.23/html/cvs && install -v -m644 doc/cvsclient.html/* \ /usr/share/doc/cvs-1.11.23/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 2014-09-21 01:03:52 -0700
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
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 2013-02-11 10:51:17 -0800
DejaGnu is a framework for
running test suites on GNU tools. It is written in
expect, which
uses Tcl (Tool command
language). It was installed by LFS in the temporary
/tools
directory. These
instructions install it permanently.
This package is known to build and work properly using an LFS-7.6 platform.
Download (HTTP): http://ftp.gnu.org/pub/gnu/dejagnu/dejagnu-1.5.1.tar.gz
Download (FTP): ftp://ftp.gnu.org/pub/gnu/dejagnu/dejagnu-1.5.1.tar.gz
Download MD5 sum: 8386e04e362345f50ad169f052f4c4ab
Download size: 568 KB
Estimated disk space required: 5.0 MB
Estimated build time: less than 0.1 SBU
DocBook-utils-0.6.14 and docbook2X (both looked for by the configure script but not used in the build)
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/dejagnu
Install DejaGnu by running the following commands:
./configure --prefix=/usr && makeinfo --html --no-split -o doc/dejagnu.html doc/dejagnu.texi && makeinfo --plaintext -o doc/dejagnu.txt doc/dejagnu.texi
To test the results, issue make check.
Now, as the root
user:
make install && install -v -dm755 /usr/share/doc/dejagnu-1.5.1 && install -v -m644 doc/dejagnu.{html,txt} \ /usr/share/doc/dejagnu-1.5.1
Last updated on 2014-09-14 12:09:32 -0700
The Doxygen package contains a documentation system for C++, C, Java, Objective-C, Corba IDL and to some extent PHP, C# and D. It 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.
This package is known to build and work properly using an LFS-7.6 platform.
Download (HTTP): http://ftp.stack.nl/pub/doxygen/doxygen-1.8.8.src.tar.gz
Download (FTP): ftp://ftp.stack.nl/pub/doxygen/doxygen-1.8.8.src.tar.gz
Download MD5 sum: 0cbe6912fcac302a984bfcfb9231fec9
Download size: 4.8 MB
Estimated disk space required: 111 MB
Estimated build time: 1.3 SBU
Graphviz-2.38.0, ghostscript-9.14, Python-2.7.8, Qt-4.8.6 (for doxywizard) and texlive-20140525
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/doxygen
Install Doxygen by running the following commands:
./configure --prefix /usr \ --docdir /usr/share/doc/doxygen-1.8.8 && make
This package does not come with a test suite.
Now, as the root
user:
make MAN1DIR=share/man/man1 install
If you wish to generate and install the package documentation
(note that man pages have already been installed), you must
have Python, TeX Live (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 Qt4 is
installed and you wish to build the GUI front-end. If both
Qt4 and Qt5 are installed, use source setqt4. If
Qt4 is installed in
/opt
, issue export QTDIR=$QT4DIR.
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.7.8 installed. If you require formulas to create PDF documentation, then you must have texlive-20140525 installed. If you require formulas to convert PostScript files to bitmaps, then you must have ghostscript-9.14 installed.
Last updated on 2014-09-17 21:56:07 -0700
The elfutils package contains set of utilities and libraries for handling ELF (Executable and Linkable Format) files.
This package is known to build and work properly using an LFS-7.6 platform.
Download (HTTP): https://fedorahosted.org/releases/e/l/elfutils/0.160/elfutils-0.160.tar.bz2
Download MD5 sum: 7527f22dff8b1ac8c122cfc4d3d3bb1e
Download size: 5.2 MB
Estimated disk space required: 72 MB (additional 3 MB for the tests)
Estimated build time: 0.7 SBU (additional 0.2 SBU for the tests)
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/elfutils
Install elfutils by running the following commands:
./configure --prefix=/usr --program-prefix="eu-" && make
If you wish to run the test suite, first fix it to skip two failing tests:
sed -i '/srcdir/ iexit 77\n' \ tests/run-backtrace-native.sh \ tests/run-backtrace-native-core.sh
To test the results, issue: make check.
Now, as the root
user:
make install
--program-prefix="eu-"
: This
switch renames installed programs to avoid conflict with
Binutils programs installed
in LFS.
Last updated on 2014-09-10 06:19:10 -0700
The Expect package was installed in the LFS temporary tools directory for testing other packages. These procedures install it in a prmanent location. It 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.
This package is known to build and work properly using an LFS-7.6 platform.
Download (HTTP): http://prdownloads.sourceforge.net/expect/expect5.45.tar.gz
Download MD5 sum: 44e1a4f4c877e9ddc5a542dfa7ecc92b
Download size: 620 KB
Estimated disk space required: 4.1 MB
Estimated build time: 0.2 SBU
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/expect
Install Expect by running the following commands:
./configure --prefix=/usr \ --with-tcl=/usr/lib \ --enable-shared \ --mandir=/usr/share/man \ --with-tclinclude=/usr/include && make
To test the results, issue: make test.
Now, as the root
user:
make install && ln -svf expect5.45/libexpect5.45.so /usr/lib
-with-tcl=/usr/lib
:
This parameter is used to tell the configure script where the
tclConfig.sh is
located.
--enable-shared
: This
option enables building the shared library.
ln -sf ...: This command creates a required link to the shared 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. |
|
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 expect and Tk. |
|
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 2014-09-13 22:25:33 -0700
The GCC package contains the GNU Compiler Collection. This page describes the installation of compilers for the following languages: C, C++, Fortran, Objective C, Objective C++, and Go. Two additional languages , Ada and Java are available in the collection. They have specific requirements, so they are described in separate pages (GCC-Ada-4.9.1 and GCC-Java-4.9.1). Since C and C++ are installed in LFS, this page is either for upgrading C and C++, or for installing additional compilers.
This package is known to build and work properly using an LFS-7.6 platform.
If you are upgrading GCC from any other version prior to 4.9.1, then you must be careful compiling 3rd party kernel modules. You should ensure that the kernel and all its native modules are also compiled using the same version of GCC that you use to build the 3rd party module. This issue does not affect native kernel (and kernel modules) updates, as the instructions below are a complete reinstallation of GCC. If you have existing 3rd party modules installed, ensure they are recompiled using the updated version of GCC. As always, never update the kernel headers from the ones used when Glibc was compiled during LFS.
Download (HTTP): http://ftp.gnu.org/gnu/gcc/gcc-4.9.1/gcc-4.9.1.tar.bz2
Download (FTP): ftp://ftp.gnu.org/gnu/gcc/gcc-4.9.1/gcc-4.9.1.tar.bz2
Download MD5 sum: fddf71348546af523353bd43d34919c1
Download size: 86 MB
Estimated disk space required: 5.1 GB
Estimated build time: 145 SBU
DejaGnu-1.5.1, for tests
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/gcc
Even if you specify only languages other than C and C++ to the ./configure command below, the installation process will overwrite your existing GCC C and C++ compilers and libraries. Having the Tcl, Expect and DejaGnu packages installed before beginning the build is highly recommended 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/. You may also want to refer to the information found in the GCC section of Chapter 6 in the LFS book (../../../../lfs/view/7.6/chapter06/gcc.html).
The instructions below are intentionally performing a
“bootstrap” process.
Bootstrapping is needed for robustness and is highly
recommended when upgrading the compilers version. To disable
bootstrap anyways, add --disable-bootstrap
to the
./configure
options below.
As in LFS, fix a problem identified upstream:
sed -i 's/if \((code.*))\)/if (\1 \&\& \!DEBUG_INSN_P (insn))/' gcc/sched-deps.c
Install GCC by running the following commands:
patch -Np1 -i ../gcc-4.9.1-upstream_fixes-1.patch && mkdir ../gcc-build && cd ../gcc-build && ../gcc-4.9.1/configure \ --prefix=/usr \ --libdir=/usr/lib \ --enable-shared \ --enable-threads=posix \ --enable-__cxa_atexit \ --enable-clocale=gnu \ --disable-multilib \ --with-system-zlib \ --enable-languages=c,c++,fortran,go,objc,obj-c++ && make
If you have installed additional packages such as Valgrind and GDB, the GCC part of the testsuite will run more tests than in LFS. Some of those will report FAIL and others XPASS (pass when expected to FAIL). To run the tests, issue:
ulimit -s 32768 && make -k check
The tests are very long, and the results may be hard to find in the logs, specially if you use parallel jobs with make. You can get a summary of the tests with:
../gcc-4.9.1/contrib/test_summary
Now, as the root
user:
make install && mkdir -pv /usr/share/gdb/auto-load/usr/lib && mv -v /usr/lib/*gdb.py /usr/share/gdb/auto-load/usr/lib && chown -v -R root:root \ /usr/lib/gcc/*linux-gnu/4.9.1/include{,-fixed}
Some packages expect to find the C preprocessor in
/lib
or may refer to the C
compiler under the name cc. The following symbolic
links are not needed if you have followed the LFS
instructions, since they have been already created. If you do
not have them on your system, issue as the root
user:
ln -v -sf ../usr/bin/cpp /lib && ln -v -sf gcc /usr/bin/cc
patch ... gcc-4.9.1-upstream_fixes-1.patch: This patch corrects bugs in the C++ compiler, which lead to segmentation faults in some cases.
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 parameter is a failsafe for incomplete locale data.
--disable-multilib
:
This parameter ensures that files are created for the
specific architecture of your computer.
--with-system-zlib
:
Uses the system zlib instead
of the bundled one. zlib is
used for compressing and uncompressing GCC's intermediate language in LTO (Link
Time Optimization) object files.
--enable-languages=c,c++,fortran,go,objc,obj-c++
:
This command identifies which languages to build. You may
modify this command to remove undesired languages.
ulimit -s 32768: This command prevents several tests from running out of stack space.
make -k check: This command runs the test suite without stopping if any errors are encountered.
../gcc-4.9.1/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.
mv -v /usr/lib/*gdb.py
...: The installation stage puts some files
used by gdb under the
/usr/lib
directory. This
generates spurious error messages when performing
ldconfig. This
command moves the files to another location.
chown -v -R root:root
/usr/lib/gcc/*linux-gnu/...: If the package
is built by a user other than root, the ownership of the
installed include
directory
(and its content) will be incorrect. This command changes the
ownership to the root
user
and group.
Some program and library names and descriptions are not listed here, but can be found at ../../../../lfs/view/7.6/chapter06/gcc.html#contents-gcc as they were initially installed during the building of LFS.
/usr/lib/gcc
and /usr/libexec/gcc
Last updated on 2014-09-17 04:10:41 -0700
Ada is a modern programming language designed for large, long-lived applications — and embedded systems in particular — where reliability and efficiency are essential. It has a set of unique technical features that make it highly effective for use in large, complex and safety-critical projects.
The compiler and associated tools on this page are known as the GNAT technology, developed by the Adacore company, using the GCC backend. Since parts of the Ada compiler are written in Ada, there is a circular dependency on an Ada compiler. The instructions below first install a binary compiler.
This package is known to build and work properly using an LFS-7.6 platform.
Using the instructions on this page will have the effect that the C and C++ compiler and libraries will be reinstalled, overwriting the ones on your system. This may lead to some issues. Please read the notes and caution on the GCC-4.9.1 page.
Download (HTTP): http://ftp.gnu.org/gnu/gcc/gcc-4.9.1/gcc-4.9.1.tar.bz2
Download (FTP): ftp://ftp.gnu.org/gnu/gcc/gcc-4.9.1/gcc-4.9.1.tar.bz2
Download MD5 sum: fddf71348546af523353bd43d34919c1
Download size: 86 MB
Estimated disk space required: 4.8 GB (0.7 GB added if GNAT install dir is not removed)
Estimated build time: 133 SBU
You will need to install GNAT temporarily to satisfy the circular dependency. You may point your browser to the AdaCore download page, choose your platform and 2014, then select the file to download. Alternatively, direct links to the 64 bit and 32 bit linux versions are given below.
GNAT 64 bit binary: http://mirrors.cdn.adacore.com/art/7427735035ecc98968ebfcee17494161b0de28ef
GNAT 64 bit MD5 sum: c0863ed75109b5aa737becfd5a6ec038
GNAT 64 bit size: 225 MB
GNAT 32 bit binary: http://mirrors.cdn.adacore.com/art/3fc05fc61cbc7ab4f291ed19ea4cb269fffd17bd
GNAT 32 bit MD5 sum: 69423c7ad8d9759377d4fff71a78992d
GNAT 32 bit size: 222 MB
Required patch: http://www.linuxfromscratch.org/patches/blfs/7.6/gcc-4.9.1-upstream_fixes-1.patch
DejaGnu-1.5.1, for tests
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/gcc-ada
Before unpacking and changing into the GCC source directory,
first unpack the GNAT
tarball, and change to the GNAT directory. Then, install the
GNAT binary 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 if desired.
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
Doing so has the drawback that the GCC and Binutils executables are taken from the
just installed GNAT package,
but the versions of those executables are outdated compared
to those installed in LFS. This is not important for the
GCC compilers, since they
recompile themselves during the bootstrap process. On the
other hand, the outdated ld and as tools are used all
along. In order to use the LFS tools, issue as the
root
user:
find /opt/gnat -name ld -exec mv -v {} {}.old \; find /opt/gnat -name as -exec mv -v {} {}.old \;
As in LFS, fix a problem identified upstream:
sed -i 's/if \((code.*))\)/if (\1 \&\& \!DEBUG_INSN_P (insn))/' gcc/sched-deps.c
Install GCC Ada by running the following commands:
patch -Np1 -i ../gcc-4.9.1-upstream_fixes-1.patch && mkdir ../gcc-build && cd ../gcc-build && ../gcc-4.9.1/configure \ --prefix=/usr \ --libdir=/usr/lib \ --enable-shared \ --enable-threads=posix \ --enable-__cxa_atexit \ --enable-clocale=gnu \ --disable-multilib \ --with-system-zlib \ --enable-languages=ada && make
If you have installed additional packages such as Valgrind and GDB, the GCC part of the testsuite will run more tests than in LFS. Some of those will report FAIL and others XPASS (pass when expected to FAIL). To run the tests, issue:
ulimit -s 32768 && make -k check
The tests are very long, and the results may be hard to find in the logs, specially if you use parallel jobs with make. You can get a summary of the tests with:
../gcc-4.9.1/contrib/test_summary
Now, as the root
user:
make install && mkdir -pv /usr/share/gdb/auto-load/usr/lib && mv -v /usr/lib/*gdb.py /usr/share/gdb/auto-load/usr/lib && chown -v -R root:root \ /usr/lib/gcc/*linux-gnu/4.9.1/include{,-fixed} \ /usr/lib/gcc/*linux-gnu/4.9.1/ada{lib,include}
You should now remove the GNAT installation and perform other cleanups:
rm -rf /opt/gnat && export PATH=$PATH_HOLD && unset PATH_HOLD
patch ... gcc-4.9.1-upstream_fixes-1.patch: This patch corrects bugs in the C++ compiler, which lead to segmentation faults in some cases.
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 parameter is a failsafe for incomplete locale data.
--disable-multilib
:
This parameter ensures that files are created for the
specific architecture of your computer.
--with-system-zlib
:
Uses the system zlib instead
of the bundled one. zlib is
used for compressing and uncompressing GCC's intermediate language in LTO (Link
Time Optimization) object files.
--enable-languages=ada
:
Instructs the build system to build the Ada tools and
compiler. It is unavoidable that the C and C++ compilers be built too.
ulimit -s 32768: This command prevents several tests from running out of stack space.
make -k check: This command runs the test suite without stopping if any errors are encountered.
../gcc-4.9.1/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.
chown -v -R root:root
/usr/lib/gcc/*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.
/usr/libexec/<arch-triplet>/4.9.1
/usr/lib/gcc/<arch-triplet>/4.9.1/adalib
Only the Ada specific files are listed here. Others can be found at ../../../../lfs/view/7.6/chapter06/gcc.html#contents-gcc as they were initially installed during the building of LFS.
is a wrapper that accepts a number of commands and calls the corresponding tool from the list below. |
|
is used to bind compiled objects. |
|
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 intended for locating definition and/or references to specified entities in a GNAT project. |
|
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 the Ada compiler, which performs compilaton, binding and linking. |
|
will list the files associated with a GNAT project. |
|
is the GNAT external preprocessor. |
|
is similar to gnatfind, but generates a full report of all cross-references. |
Last updated on 2014-09-17 04:10:41 -0700
See the introduction to the Java language and system at Java-1.7.0.65. The GNU Compiler Collection (GCC) contains a Java compiler to native code. Together with the ecj Java compiler from Eclipse (to bytecode), it provides a way to build an acceptable JVM from source. However, since the release of OpenJDK, the development of GCC-Java has almost stopped, and the built JVM is an old version. One reason to build this system is that it can be used to bootstrap OpenJDK-1.7.0.65/IcedTea-2.5.2, without the need for downloading a Java binary.
This package is known to build and work properly using an LFS-7.6 platform.
Using the instructions on this page will have the effect that the C and C++ compiler and libraries will be reinstalled, overwriting the ones on your system. This may lead to some issues. Please read the note and caution on the GCC-4.9.1 page.
Download (HTTP): http://ftp.gnu.org/gnu/gcc/gcc-4.9.1/gcc-4.9.1.tar.bz2
Download (FTP): ftp://ftp.gnu.org/gnu/gcc/gcc-4.9.1/gcc-4.9.1.tar.bz2
Download MD5 sum: fddf71348546af523353bd43d34919c1
Download size: 86 MB
Estimated disk space required: 2.7 GB
Estimated build time: 94 SBU
Eclipse Java compiler: ftp://sourceware.org/pub/java/ecj-latest.jar
ANTLR binary, for building gjdoc (optional): http://www.antlr.org/download/antlr-4.2.2-complete.jar
Required patch: http://www.linuxfromscratch.org/patches/blfs/7.6/gcc-4.9.1-upstream_fixes-1.patch
Zip-3.0, UnZip-6.0, and Which-2.20
DejaGnu-1.5.1, for tests
GTK+-2.24.24 and Libart for building the AWT peer
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/gcc-java
The instructions below assume that the C and C++ compilers
have the same version as the one you are installing, so that
a “bootstrap” is not
necessary. If you are upgrading the GCC version, then remove
the --disable-bootstrap
from the
./configure
options below.
As in LFS, fix a problem identified upstream:
sed -i 's/if \((code.*))\)/if (\1 \&\& \!DEBUG_INSN_P (insn))/' gcc/sched-deps.c
Install GCC Java by running the following commands:
sed -i 's/\(install.*:\) install-.*recursive/\1/' libffi/Makefile.in && sed -i 's/\(install-data-am:\).*/\1/' libffi/include/Makefile.in && patch -Np1 -i ../gcc-4.9.1-upstream_fixes-1.patch && cp ../ecj-latest.jar ./ecj.jar && mkdir ../gcc-build && cd ../gcc-build && ../gcc-4.9.1/configure \ --prefix=/usr \ --libdir=/usr/lib \ --enable-shared \ --enable-threads=posix \ --enable-__cxa_atexit \ --enable-clocale=gnu \ --disable-multilib \ --with-system-zlib \ --disable-bootstrap \ --enable-java-home \ --with-jvm-root-dir=/opt/gcj \ --with-antlr-jar=$(pwd)/../antlr-4.2.2-complete.jar \ --enable-languages=java && make
If you have installed additional packages such as Valgrind and GDB, the GCC part of the testsuite will run more tests than in LFS. Some of those will report FAIL and others XPASS (pass when expected to FAIL). To run the tests, issue:
ulimit -s 32768 && make -k check
The tests are very long, and the results may be hard to find in the logs, specially if you use job control with make. You can get a summary of the tests with:
../gcc-4.9.1/contrib/test_summary
Now, as the root
user:
make install && mkdir -pv /usr/share/gdb/auto-load/usr/lib && mv -v /usr/lib/*gdb.py /usr/share/gdb/auto-load/usr/lib && chown -v -R root:root \ /usr/lib/gcc/*linux-gnu/4.9.1/include{,-fixed} && gcj -o ecj ../ecj-latest.jar \ --main=org.eclipse.jdt.internal.compiler.batch.Main && mv ecj /usr/bin && ln -sfv ../../../usr/bin/ecj /opt/gcj/bin/javac
The two sed commands prevent the installation of the libffi library bundled with GCC, since it is outdated compared to libffi-3.1.
patch ... gcc-4.9.1-upstream_fixes-1.patch: This patch corrects bugs in the C++ compiler, which lead to segmentation faults in some cases.
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 parameter is a failsafe for incomplete locale data.
--disable-multilib
:
This parameter ensures that files are created for the
specific architecture of your computer.
--with-system-zlib
:
Uses the system zlib instead
of the bundled one.
--disable-bootstrap
:
Prevents the C and C++ compilers to recompile themselves. You
should use this switch only if the installed C and C++
compilers are the same version as the ones you install.
--enable-java-home
:
Creates a directory layout similar to that of a JVM.
--with-jvm-root-dir=/opt/gcj
:
Installs the JVM in the specified location.
--with-antlr-jar=...
:
Specifies the location of ANTLR, which is needed to build
gjdoc. Remove
if you have not downloaded antlr.
--enable-languages=java
: This
command identifies which language to build. Note it is
unavoidable that the C and
C++ compilers be built too.
--enable-java-awt=gtk
: Allows to
build the Java AWT GTK+2
peer. Needed to have a fully functional JVM.
ulimit -s 32768: This command prevents several tests from running out of stack space.
make -k check: This command runs the test suite without stopping if any errors are encountered.
../gcc-4.9.1/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.
chown -v -R root:root
/usr/lib/gcc/*linux-gnu/...: If the package
is built by a user other than root, the ownership of the
installed include
directory
(and its content) will be incorrect. This commands changes
the ownership to the root
user and group.
gcj -o ecj ...: compiles the eclipse compiler to native code, which is much faster than bytecode. This compiler is then used as a javac replacement in the JVM.
The configuration is the same as for OpenJDK-1.7.0.65/IcedTea-2.5.2,
replacing /opt/jdk
with
/opt/gcj
.
/opt/gcj/bin
/usr/lib/gcc
and /usr/libexec/gcc
Some program and library names and descriptions are not listed here, but can be found at ../../../../lfs/view/7.6/chapter06/gcc.html#contents-gcc as they were initially installed during the building of LFS.
searches a directory for Java bytecode and uses gcj to compile it to native code. |
|
is the eclipse compiler. |
|
loads and run a Java applet. |
|
analyzes garbage collector (GC) memory dumps from Java code. |
|
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 GNU interpreter for Java bytecode. |
|
is an (partial) implementation of the jar utility that comes with Sun's JDK. |
|
is a Java ARchive (JAR) file signing and verification tool. |
|
generates header files from Java class files. |
|
is a documentation tool similar to javadoc. |
|
manages private keys and public certificates in a Java environment. |
|
is an encoding converter for Java. |
|
is an object request broker daemon. |
|
generates stubs for Remote Method Invocation. |
|
RMI activation system daemon. |
|
starts a remote object registry on the current host. |
|
prints the serialVersionUID of the specified class. |
|
starts a naming service. |
|
prints information about Java class files. |
|
converts files from one encoding to another. |
|
Merge the per-solib databases made by aot-compile into one system-wide database. |
Last updated on 2014-09-17 04:10:41 -0700
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.
This package is known to build and work properly using an LFS-7.6 platform.
Download (HTTP): http://www.hboehm.info/gc/gc_source/gc-7.4.2.tar.gz
Download MD5 sum: 12c05fd2811d989341d8c6d81f66af87
Download size: 1.1 MB
Estimated disk space required: 9.7 MB (additional 2.3 MB for the tests)
Estimated build time: 0.2 SBU (additional 0.2 SBU for the tests)
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/gc
Install GC by running the following commands:
sed -i 's#pkgdata#doc#' doc/doc.am && autoreconf -fi && ./configure --prefix=/usr \ --enable-cplusplus \ --disable-static \ --docdir=/usr/share/doc/gc-7.4.2 && 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 -sfv gc_malloc.3 /usr/share/man/man3/gc.3
sed -i 's#pkgdata#doc#'
doc/doc.am and --docdir=/usr/share/doc/gc-7.4.2
: These
commands are used so the package will install the
documentation in a versioned directory.
autoreconf -fi:
This regenerates the configure script and the
Makefile.in
files.
--enable-cplusplus
:
This parameter enables the building and installing the C++
library along with the standard C library.
--disable-static
:
This switch prevents installation of static versions of the
libraries.
Last updated on 2014-09-13 17:48:40 -0700
GDB, the GNU Project debugger, allows you to see what is going on “inside” another program while it executes -- or what another program was doing at the moment it crashed. Note that GDB is most effective when tracing programs and libraries that were built with debugging symbols and not stripped.
This package is known to build and work properly using an LFS-7.6 platform.
Download (HTTP): http://ftp.gnu.org/gnu/gdb/gdb-7.8.tar.xz
Download (FTP): ftp://ftp.gnu.org/gnu/gdb/gdb-7.8.tar.xz
Download MD5 sum: bd958fe9019d7c7896f29f6724a764ed
Download size: 17 MB
Estimated disk space required: 326 MB (405 MB with checks)
Estimated build time: 2.2 SBU (56 SBU with checks)
DejaGnu-1.5.1 (for tests), Guile-2.0.11 and Python-2.7.8
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/gdb
Install GDB by running the following commands:
./configure --prefix=/usr --with-system-readline && make
To test the results, issue: make -k check. There are many problems with the test suite. Depends on installed compilers, there are differences if run locally or remotely, a large number of timeouts (there is a variable that can be set to increase time for timeout, but changing it, apparently the total number of tests is not conserved), there are failures associated with system readline 6.x, between others. Unexpected failures are of the order of 2.5%.
Now, as the root
user:
make -C gdb install
generates a core dump of a running program. |
|
is the GNU Debugger. |
|
is a remote server for the GNU debugger (it allows programs to be debugged from a different machine). |
|
contains functions for the in-process tracing agent. The agent allows for installing fast tracepoints, listing static tracepoint markers, probing static tracepoints markers, and starting trace monitoring. |
Last updated on 2014-09-13 22:25:33 -0700
Git is a free and open source, distributed version control system designed to handle everything from small to very large projects with speed and efficiency. Every Git clone is a full-fledged repository with complete history and full revision tracking capabilities, not dependent on network access or a central server. Branching and merging are fast and easy to do. Git is used for version control of files, much like tools such as Mercurial, Bazaar, Subversion-1.8.10, CVS-1.11.23, Perforce, and Team Foundation Server.
This package is known to build and work properly using an LFS-7.6 platform.
Download (HTTP): https://www.kernel.org/pub/software/scm/git/git-2.1.0.tar.xz
Download (FTP): ftp://ftp.kernel.org/pub/software/scm/git/git-2.1.0.tar.xz
Download MD5 sum: 47b1f55d9a16be112f7ae2c778a9b30c
Download size: 3.4 MB
Estimated disk space required: 208 MB (additional 14 MB for downloaded docs and man pages, or 27 MB building docs and man pages)
Estimated build time: 0.7 SBU (additional 9.6 SBU for tests or 2.8 SBU for docs and man build)
https://www.kernel.org/pub/software/scm/git/git-manpages-2.1.0.tar.xz (if you prefer the original, not needed if you've installed asciidoc and xmlto and prefer to build them).
https://www.kernel.org/pub/software/scm/git/git-htmldocs-2.1.0.tar.xz and other docs (if you prefer the original, not needed if you've installed asciidoc and prefer to build them).
cURL-7.37.1 (needed to use Git over http, https, ftp or ftps), OpenSSL-1.0.1i, and Python-2.7.8
PCRE-8.35, Subversion-1.8.10 with Perl bindings (for git svn), and Tk-8.6.2 (gitk, a simple Git repository viewer, uses Tk at runtime)
xmlto-0.0.26 and AsciiDoc
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/git
Install Git by running the following commands:
./configure --prefix=/usr \ --with-gitconfig=/etc/gitconfig && make
You can build the man pages and/or html docs, or use downloaded ones. If you choose to build them, use next two following instructions.
If you have installed AsciiDoc you can create the html version of the man pages and other docs:
make html
If you have installed AsciiDoc and xmlto-0.0.26 you can create the man pages:
make man
The test suite can be run in parallel mode. Many tests cannot find GnuPG2, if the compatibility symlinks, recommended in GnuPG-2.0.26, are not installed. To run the test suite, issue: make test.
Now, as the root
user:
make install
Install the man pages as root
user:
make install-man
Install the html docs as root
user:
make htmldir=/usr/share/doc/git-2.1.0 install-html
If you downloaded the man pages untar them as the
root
user:
tar -xf ../git-manpages-2.1.0.tar.xz \ -C /usr/share/man --no-same-owner --no-overwrite-dir
If you downloaded the html docs untar them as the
root
user:
tar -xf ../git-htmldocs-2.1.0.tar.xz \ -C /usr/share/doc/git-2.1.0 --no-same-owner --no-overwrite-dir && find /usr/share/doc/git-2.1.0 -type d -exec chmod 755 {} \; && find /usr/share/doc/git-2.1.0 -type f -exec chmod 644 {} \;
For both methods, reorganize the files, as root
user:
mkdir -p /usr/share/doc/git-2.1.0/man-pages/{html,text} && mv /usr/share/doc/git-2.1.0/{git*.txt,man-pages/text} && mv /usr/share/doc/git-2.1.0/{git*.,index.,man-pages/}html && mkdir /usr/share/doc/git-2.1.0/technical/{html,text} && mv /usr/share/doc/git-2.1.0/technical/{*.txt,text} && mv /usr/share/doc/git-2.1.0/technical/{*.,}html && mkdir /usr/share/doc/git-2.1.0/howto/{html,text} && mv /usr/share/doc/git-2.1.0/howto/{*.txt,text} && mv /usr/share/doc/git-2.1.0/howto/{*.,}html
--with-gitconfig=/etc/gitconfig
:
This sets /etc/gitconfig
as the
file that stores the default, system wide, Git settings.
--without-python
: Use this switch
if Python is not installed.
--with-libpcre
: Use this switch
if PCRE is installed.
tar -xf
../git-manpages-2.1.0.tar.gz -C /usr/share/man
--no-same-owner: This untars git-manpages-2.1.0.tar.gz
. The -C
option makes tar change directory to
/usr/share/man
before it starts
to decompress the docs. The --no-same-owner
option stops tar from
preserving the user and group details of the files. This is
useful as that user or group may not exist on your system;
this could (potentially) be a security risk.
mv /usr/share/doc/git-2.1.0 ...: These commands move some of the files into subfolders to make it easier to sort through the docs and find what you're looking for.
find ... chmod ...: These commands correct the permissions in the shipped documentation tar file.
is the stupid content tracker. |
|
is a CVS server emulator for Git. |
|
is a graphical Git repository browser (needs Tk-8.6.2). |
|
is invoked by git send-pack and updates the repository with the information fed from the remote end. |
|
is a login shell for SSH accounts to provide restricted Git access. |
|
is invoked by git archive --remote and sends a generated archive to the other end over the git protocol. |
|
is invoked by git fetch-pack, it discovers what objects the other side is missing, and sends them after packing. |
Last updated on 2014-09-09 14:11:38 -0700
The Guile package contains the Project GNU's extension language library. Guile also contains a stand alone Scheme interpreter.
This package is known to build and work properly using an LFS-7.6 platform.
Download (HTTP): http://ftp.gnu.org/pub/gnu/guile/guile-2.0.11.tar.xz
Download (FTP): ftp://ftp.gnu.org/pub/gnu/guile/guile-2.0.11.tar.xz
Download MD5 sum: 03f1bce1a4983076d955003472306a13
Download size: 4.5 MB
Estimated disk space required: 109 MB (additional 4 MB for the tests)
Estimated build time: 8.0 SBU (additional 0.7 SBU for the tests)
GC-7.4.2, libffi-3.1 and libunistring-0.9.4
Emacs-24.3 and GDB-7.8
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/guile
Install Guile by running the following commands:
./configure --prefix=/usr \ --disable-static \ --docdir=/usr/share/doc/guile-2.0.11 && make && make html && makeinfo --plaintext -o doc/r5rs/r5rs.txt doc/r5rs/r5rs.texi && makeinfo --plaintext -o doc/ref/guile.txt doc/ref/guile.texi
To test the results, issue: make check.
Now, as the root
user:
make install && make install-html && mv /usr/share/doc/guile-2.0.11/{guile.html,ref} && mv /usr/share/doc/guile-2.0.11/r5rs{.html,} && find examples -name "Makefile*" -delete && cp -vR examples /usr/share/doc/guile-2.0.11 && for DIRNAME in r5rs ref; do install -v -m644 doc/${DIRNAME}/*.txt \ /usr/share/doc/guile-2.0.11/${DIRNAME} done && unset DIRNAME
--disable-static
:
This switch prevents installation of static versions of the
libraries.
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 PkgConfig does. |
|
is a script to parse declarations in your C code for Scheme visible C functions. |
|
is a wrapper program installed along with guile, which knows where a particular module is installed and calls it, passing its arguments to the program. |
|
is a symlink to guild. |
Last updated on 2014-09-13 22:25:33 -0700
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.
This package is known to build and work properly using an LFS-7.6 platform.
Download (HTTP): http://download.tuxfamily.org/librep/librep-0.92.3.tar.xz
Download MD5 sum: c82744fb45022e8a06e488e4a7513558
Download size: 600 KB
Estimated disk space required: 16 MB
Estimated build time: 0.5 SBU
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/librep
Install librep by running the following commands:
./configure --prefix=/usr --disable-static && make
This package does not come with a test suite.
Now, as the root
user:
make install
- -libexecdir=/usr/lib
: This
option installs the package's private programs to
/usr/lib/rep
instead of
/usr/libexec/rep
in accordance
with the old version of the FHS used before LFS-7.5.
Last updated on 2014-09-20 21:51:52 -0700
The LLVM package contains a collection of modular and reusable compiler and toolchain technologies. The Low Level Virtual Machine (LLVM) Core libraries provide a modern source and target-independent optimizer, along with code generation support for many popular CPUs (as well as some less common ones!). These libraries are built around a well specified code representation known as the LLVM intermediate representation ("LLVM IR").
The optional Clang and Compiler RT packages provide a new C, C++, Objective C and Objective C++ front-ends and runtime libraries for the LLVM.
This package is known to build and work properly using an LFS-7.6 platform.
Download (HTTP): http://llvm.org/releases/3.5.0/llvm-3.5.0.src.tar.xz
Download MD5 sum: d6987305a1a0e58e128c1374cd3b8fef
Download size: 12 MB
Estimated disk space required: 618 MB (1.3 GB with Clang) and 78 MB for the tests
Estimated build time: 20 SBU (38 SBU with Clang) and 0.3 for tests
Download: http://llvm.org/releases/3.5.0/cfe-3.5.0.src.tar.xz
Download MD5 sum: 27718dd13c7df83e15f997116bbb4aef
Download size: 7.9 MB
Download: http://llvm.org/releases/3.5.0/compiler-rt-3.5.0.src.tar.xz
Download MD5 sum: 02624d2a9144278c3808c00dbbab56c8
Download size: 1.1 MB
CMake-3.0.1, Doxygen-1.8.8, Graphviz-2.38.0, libxml2-2.9.1, texlive-20140525, Valgrind-3.10.0, Zip-3.0, OCaml, and Sphinx
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/llvm
If you have downloaded the optional packages, install them into the source tree by running the following commands:
tar -xf ../cfe-3.5.0.src.tar.xz -C tools && tar -xf ../compiler-rt-3.5.0.src.tar.xz -C projects && mv tools/cfe-3.5.0.src tools/clang && mv projects/compiler-rt-3.5.0.src projects/compiler-rt
Install LLVM by running the following commands:
sed -e "s:/docs/llvm:/share/doc/llvm-3.5.0:" \ -i Makefile.config.in && CC=gcc CXX=g++ \ ./configure --prefix=/usr \ --sysconfdir=/etc \ --enable-libffi \ --enable-optimized \ --enable-shared \ --disable-assertions && make
If you have installed Sphinx and wish to generate manual pages, issue the following command:
make -C docs -f Makefile.sphinx man
To test the results, issue: make check.
Now, as the root
user:
make install && for file in /usr/lib/lib{clang,LLVM,LTO}*.a do test -f $file && chmod -v 644 $file done
If you had Python-2.7.8 installed and you have built
Clang, install the
Clang Analyzer by running
the following command as the root
user:
install -v -dm755 /usr/lib/clang-analyzer && for prog in scan-build scan-view do cp -rfv tools/clang/tools/$prog /usr/lib/clang-analyzer/ ln -sfv ../lib/clang-analyzer/$prog/$prog /usr/bin/ done && ln -sfv /usr/bin/clang /usr/lib/clang-analyzer/scan-build/ && mv -v /usr/lib/clang-analyzer/scan-build/scan-build.1 /usr/share/man/man1/
If you have built manual pages, install them by running the
following command as the root
user:
install -v -m644 docs/_build/man/* /usr/share/man/man1/
sed -e ... Makefile.config.in: This sed fixes location of the installed documentation.
--enable-libffi
: This
switch enables LLVM to use
libffi. Remove if you did
not install libffi.
--enable-optimized
:
This switch enables compiler optimizations in order to speed
up the code and reduce its size.
--enable-shared
: This
switch enables building of the LLVM shared library which contains all
of static libraries linked into single library.
--disable-assertions
:
Disable some compile checks, not necessary on a production
system.
is the automatic test case reduction tool. |
|
is the Clang C, C++, and Objective-C compiler. |
|
is the LLVM static compiler. |
|
is used to directly execute programs from LLVM bitcode. |
|
is the LLVM archiver. |
|
is the LLVM assembler. |
|
is the LLVM bitcode analyzer. |
|
Prints LLVM compilation options. |
|
is used to emit coverage information. |
|
is the LLVM structural 'diff'. |
|
is the LLVM disassembler. |
|
is used to extract a function from an LLVM module. |
|
is the LLVM linker. |
|
is used to list LLVM bitcode and object file's symbol table. |
|
is used to generate index for LLVM archive. |
|
is used to generate random |
|
is the LLVM Target Description To C++ Code Generator. |
|
is the LLVM optimizer. |
|
is a Perl script that invokes the Clang static analyzer. |
|
contains the LLVM API functions. |
Last updated on 2014-09-14 14:54:13 -0700
Lua is a powerful light-weight programming language designed for extending applications. It is also frequently used as a general-purpose, stand-alone language. 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.
This package is known to build and work properly using an LFS-7.6 platform.
Download (HTTP): http://www.lua.org/ftp/lua-5.2.3.tar.gz
Download MD5 sum: dc7f94ec6ff15c985d2d6ad0f1b35654
Download size: 248 KB
Estimated disk space required: 3.5 MB
Estimated build time: Less than 0.1 SBU
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/lua
Install Lua by running the following commands:
patch -Np1 -i ../lua-5.2.3-shared_library-1.patch && sed -i '/#define LUA_ROOT/s:/usr/local/:/usr/:' src/luaconf.h && make linux
To test the results, issue: make test.
Now, as the root
user:
make INSTALL_TOP=/usr TO_LIB="liblua.so liblua.so.5.2 liblua.so.5.2.3" \ INSTALL_DATA="cp -d" INSTALL_MAN=/usr/share/man/man1 install && mkdir -pv /usr/share/doc/lua-5.2.3 && cp -v doc/*.{html,css,gif,png} /usr/share/doc/lua-5.2.3
Some packages check for the pkg-config file for Lua. As the root
user:
cat > /usr/lib/pkgconfig/lua.pc << "EOF"
V=5.2
R=5.2.3
prefix=/usr
INSTALL_BIN=${prefix}/bin
INSTALL_INC=${prefix}/include
INSTALL_LIB=${prefix}/lib
INSTALL_MAN=${prefix}/man/man1
INSTALL_LMOD=${prefix}/share/lua/${V}
INSTALL_CMOD=${prefix}/lib/lua/${V}
exec_prefix=${prefix}
libdir=${exec_prefix}/lib
includedir=${prefix}/include
Name: Lua
Description: An Extensible Extension Language
Version: ${R}
Requires:
Libs: -L${libdir} -llua -lm
Cflags: -I${includedir}
EOF
sed -i ... src/luaconf.h: This command changes Lua search path to match the install paths.
Last updated on 2014-09-17 11:48:47 -0700
Mercurial is a distributed source control management tool similar to Git and Bazaar. Mercurial is written in Python and is used by projects such as Mozilla and Vim.
This package is known to build and work properly using an LFS-7.6 platform.
Download (HTTP): http://mercurial.selenic.com/release/mercurial-3.1.1.tar.gz
Download MD5 sum: 5a530bb472b3cb306b757c8f5df91358
Download size: 3.8 MB
Estimated disk space required: 31 MB (additional 250 MB for the tests and 2 MB for docs generation)
Estimated build time: 0.1 SBU (additional 8.8 SBU for tests)
Bazaar-2.5.1, CVS-1.11.23, git-2.1.0, GnuPG-2.0.26 (gpg2 with Python bindings), Subversion-1.8.10 (with Python bindings), Docutils (required to build the documentation), pyflakes, pygments, and pyOpenSSL
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/mercurial
Build Mercurial by issuing the following command:
make build
To build the documentation (requires Docutils), issue:
make doc
Running the test suite is optional. Failure of test-patchbomb
is expected with Python-2.7.x (x > 7). To test the
results in the subdiretory tests/tmp
, skipping the failing test,
issue:
cat > tests/blacklists/test-failed << "EOF"
# Failure with Python-2.7.8
test-patchbomb.t
EOF
rm -rf tests/tmp &&
TESTFLAGS="--tmpdir tmp --blacklist blacklists/test-failed" \
make check
Tests may be run in parallel, just add “-j$(getconf _NPROCESSORS_ONLN)” to TESTFLAGS.
Install Mercurial by running
the following command (as root
):
make PREFIX=/usr install-bin
If you built the documentation, install it by running the
following command (as root
):
make PREFIX=/usr install-doc
After installed, two very quick and simple tests should run correctly. First one needs some configuration:
cat >> ~/.hgrc << "EOF"
[ui]
username = <user_name> <your@mail>
EOF
where you must replace <user_name> and <your@mail> (mail is optional and can be omitted). With the user identity defined, run hg debuginstall and several lines will be displayed, the last one reading "no problems detected". Another quick and simple test is just hg, which should output basic commands that can be used with hg.
/etc/mercurial/hgrc
If you have installed the Certificate
Authority Certificates and you want Mercurial to use them, as the
root
user:
install -v -d -m755 /etc/mercurial &&
cat > /etc/mercurial/hgrc << "EOF"
[web]
cacerts = /etc/ssl/ca-bundle.crt
EOF
Last updated on 2014-09-21 01:03:52 -0700
NASM (Netwide Assembler) is an 80x86 assembler designed for portability and modularity. It includes a disassembler as well.
This package is known to build and work properly using an LFS-7.6 platform.
Download (HTTP): http://www.nasm.us/pub/nasm/releasebuilds/2.11.05/nasm-2.11.05.tar.xz
Download MD5 sum: 3544d7068206b583915394693c0e933c
Download size: 727 KB
Estimated disk space required: 25 MB
Estimated build time: 0.2 SBU
Optional documentation: http://www.nasm.us/pub/nasm/releasebuilds/2.11.05/nasm-2.11.05-xdoc.tar.xz
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/nasm
If you downloaded the optional documentation, put it into the source tree:
tar -xf ../nasm-2.11.05-xdoc.tar.xz --strip-components=1
Install NASM 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
If you downloaded the optional documentation, install it with
the following instructions as the root
user:
install -m755 -d /usr/share/doc/nasm-2.11.05/html && cp -v doc/html/*.html /usr/share/doc/nasm-2.11.05/html && cp -v doc/*.{txt,ps,pdf} /usr/share/doc/nasm-2.11.05 && cp -v doc/info/* /usr/share/info && install-info /usr/share/info/nasm.info /usr/share/info/dir
Last updated on 2014-09-12 09:27:12 -0700
NPAPI-SDK is a bundle of Netscape Plugin Application Programming Interface headers by Mozilla. This package provides a clear way to install those headers and depend on them.
This package is known to build and work properly using an LFS-7.6 platform.
Download (HTTP): https://bitbucket.org/mgorny/npapi-sdk/downloads/npapi-sdk-0.27.2.tar.bz2
Download MD5 sum: e81db61e206cd615cf56c4a9f301e636
Download size: 65 KB
Estimated disk space required: 520 KB
Estimated build time: 0.1 SBU
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/NPAPI-SDK
Install NPAPI-SDK 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 2014-09-21 01:03:52 -0700
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 dependencies in the order listed. The Perl Module standard build and installation instructions are shown at the bottom of this page.
The Archive::Zip module allows a Perl program to create, manipulate, read, and write Zip archive files. This module uses the standard build and installation instructions.
This package is known to build and work properly using an LFS-7.6 platform.
Archive::Zip-1.37
http://cpan.metacpan.org/authors/id/P/PH/PHRED/Archive-Zip-1.37.tar.gz
MD5 sum: e804985def2c1f0ed640ab4ca6aa85a1
The autovivification module allows you to lexically disable autovivification. This module uses the standard build and installation instructions.
This package is known to build and work properly using an LFS-7.6 platform.
autovivification-0.12
http://www.cpan.org/authors/id/V/VP/VPIT/autovification-0.12.tar.gz
MD5 sum: 871ce0e9b93ef616da7cfa91dbd2772e
The Business::ISBN module is for work with International Standard Book Numbers. This module and its dependency use the standard build and installation instructions.
This package is known to build and work properly using an LFS-7.6 platform.
Business::ISBN-2.07
http://www.cpan.org/authors/id/B/BD/BDFOY/Business-ISBN-2.07.tar.gz
MD5 sum: c0049fb576b9fc3b2603bf7e9b3e91af
Business::ISBN::Data
(http://search.cpan.org/~bdfoy/Business-ISBN-Data/)
The Business::ISMN module is for work with International Standard Music Numbers. This module uses the standard build and installation instructions.
This package is known to build and work properly using an LFS-7.6 platform.
Business::ISMN-1.11
http://www.cpan.org/authors/id/B/BD/BDFOY/Business-ISMN-1.11.tar.gz
MD5 sum: b8228688f2cfa0c629c8d0cbf88421ff
Tie::Cycle
(http://search.cpan.org/~bdfoy/Tie-Cycle/)
The Business::ISSN module is for work with International Standard Serial Numbers. This module uses the standard build and installation instructions.
This package is known to build and work properly using an LFS-7.6 platform.
Business::ISSN-0.91
http://www.cpan.org/authors/id/B/BD/BDFOY/Business-ISSN-0.91.tar.gz
MD5 sum: d1f609422d3a0ad5e301ae694d142fe4
The Data::Compare module compares two perl data structures. This module and its dependencies use the standard build and installation instructions.
This package is known to build and work properly using an LFS-7.6 platform.
Data::Compare-1.24
http://www.cpan.org/authors/id/D/DC/DCANTRELL/Data-Compare-1.24.tar.gz
MD5 sum: 45d56aa548581d7e4406f665c417d31e
File::Find::Rule
(http://search.cpan.org/~rclamp/File-Find-Rule/)
Number::Compare
(http://search.cpan.org/dist/Number::Compare/)
Text::Glob
(http://search.cpan.org/dist/Text::Glob/)
Date::Simple provides a simple date object. This module uses the standard build and installation instructions.
This package is known to build and work properly using an LFS-7.6 platform.
Date::Simple-3.03
http://www.cpan.org/authors/id/I/IZ/IZUT/Date-Simple-3.03.tar.gz
MD5 sum: 436049dc2c7dfd8423d8bcc807248b31
Encode::EUCJPASCII provides an eucJP-open mapping. This module uses the standard build and installation instructions.
This package is known to build and work properly using an LFS-7.6 platform.
Encode-EUCJPASCII-0.03
http://www.cpan.org/authors/id/N/NE/NEZUMI/Encode-EUCJPASCII-0.03.tar.gz
MD5 sum: 5daa65f55b7c2050bb0713d9e95f239d
The Encode::HanExtra module provides extra sets of Chinese Encodings. This module uses the standard build and installation instructions.
This package is known to build and work properly using an LFS-7.6 platform.
Encode::HanExtra-0.23
http://www.cpan.org/authors/id/A/AU/AUDREYT/Encode-HanExtra-0.91.tar.gz
MD5 sum: e1d3bc32c1c8ee304235a06fbcd5d5a4
The Encode::JIS2K module provides JIS X 0212 (aka JIS 2000) Encodings. This module uses the standard build and installation instructions.
This package is known to build and work properly using an LFS-7.6 platform.
Encode::JIS2K-0.02
http://www.cpan.org/authors/id/D/DA/DANKOGAI/Encode-JIS2K-0.91.tar.gz
MD5 sum: 00e73ee943fb2f882b00b7b61e4c9db1
The File::Slurp module provides Simple and Efficient Reading/Writing/Modifying of Complete Files. This module uses the standard build and installation instructions.
This package is known to build and work properly using an LFS-7.6 platform.
File::Slurp-9999.19
http://www.cpan.org/authors/id/U/UR/URI/File-Slurp-0.91.tar.gz
MD5 sum: 7d584cd15c4f8b9547765eff8c4ef078
File::Which provides a portable implementation of the 'which' utility. This module and its dependencies use the standard build and installation instructions.
This package is known to build and work properly using an LFS-7.6 platform.
File::Which-1.09
http://www.cpan.org/authors/id/A/AD/ADAMK/File-Which-1.09.tar.gz
MD5 sum: b9429edaad7f45caafa4d458afcfd8af
Test::Script
(http://search.cpan.org/dist/Test-Script/)
Probe-Perl
(http://search.cpan.org/dist/Probe-Perl/
The HTML::Parser distribution is a collection of modules that parse and extract information from HTML documents. This module and the dependency modules use the standard build and installation instructions.
This package is known to build and work properly using an LFS-7.6 platform.
HTML::Parser-3.71
http://www.cpan.org/authors/id/G/GA/GAAS/HTML-Parser-3.71.tar.gz
MD5 sum: 9128a45893097dfa3bf03301b19c5efe
HTML::Tagset
(http://search.cpan.org/~petdance/HTML-Tagset/)
libwww-perl-6.08 (circular; howevever, it can be installed after HTML::Parser as it is only a run-time requirement for the included HTML::HeadParser module)
The IPC::Run3 module is used to run a subprocess with input/ouput redirection. This module uses the standard build and installation instructions.
This package is known to build and work properly using an LFS-7.6 platform.
IPC-Run3-0.048
http://www.cpan.org/authors/id/R/RJ/RJBS/IPC-Run3-0.91.tar.gz
MD5 sum: 5a8cec571c51a118b265cf6e24e55761
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 dependency modules use the standard build and installation instructions. The dependencies should be installed in the order listed below. Ensure you install the dependency chain for each module before installing the modules.
This package is known to build and work properly using an LFS-7.6 platform.
libwww-perl-6.08
http://cpan.org/authors/id/M/MS/MSCHILLI/libwww-perl-6.08.tar.gz
MD5 sum: 28e5005609af16c1fa297d12e0312f86
Encode::Locale
(http://search.cpan.org/~gaas/Encode-Locale/)
HTML::Form
(http://search.cpan.org/~gaas/HTML-Form/)
HTTP::Message
(http://search.cpan.org/~gaas/HTTP-Message/)
HTTP::Date
(http://search.cpan.org/~gaas/HTTP-Date/)
IO::HTML
(http://search.cpan.org/~cjm/IO-HTML/)
LWP::MediaTypes
(http://search.cpan.org/~gaas/LWP-MediaTypes/")
HTTP::Cookies
(http://search.cpan.org/~gaas/HTTP-Cookies/)
HTTP::Negotiate
(http://search.cpan.org/~gaas/HTTP-Negotiate/)
Net::HTTP
(http://search.cpan.org/~gaas/Net-HTTP/)
WWW::RobotRules
(http://search.cpan.org/~gaas/WWW-RobotRules/)
HTTP::Daemon
(http://search.cpan.org/~gaas/HTTP-Daemon/)
File::Listing
(http://search.cpan.org/~gaas/File-Listing/)
After the LWP installation, if you want HTTPS protocol support, install the following (application and modules):
LWP::Protocol::https
(http://search.cpan.org/~gaas/LWP-Protocol-https/)
IO::Socket::SSL
(http://search.cpan.org/~behroozi/IO-Socket-SSL/)
Net::SSLeay
(http://search.cpan.org/dist/Net-SSLeay/)
Mozilla::CA
(http://search.cpan.org/~abh/Mozilla-CA/)
The List::Allutils module combines List::Util and List::MoreUtils in one bite-sized package. This module and its dependencies use the standard build and installation instructions.
This package will fail (tests, but not for any obvious reason, and at runtime) if the core module List::Util is older than 1.31, as happens with e.g. with perl-5.18.2 from LFS-7.5. To test the version, you can run the following command
strings /usr/lib/perl5/5.*/*/auto/List/Util/Util.so | grep v5 -A 1 | tail -n 1
and if necessary install Scalar::List::Utils (http://search.cpan.org/dist/Scalar-List-Utils/) to get a newer version of that module without updating all of perl.
This package is known to build and work properly using an LFS-7.6 platform.
List::AllUtils-0.08
http://www.cpan.org/authors/id/D/DR/DROLSKY/List-AllUtils-0.08.tar.gz
MD5 sum: 0becef45aaf3556685ab798a132c014e
Number::Compare
(http://search.cpan.org/dist/Number::Compare/)
Text::Glob
(http://search.cpan.org/dist/Text::Glob/)
Log-Log4perl provides a Log4j implementation for perl. This module uses the standard build and installation instructions.
This package is known to build and work properly using an LFS-7.6 platform.
Log-Log4perl-1.44
http://www.cpan.org/authors/id/M/MS/MSCHILLI/Log-Log4perl-1.44.tar.gz
MD5 sum: 4065a8b123badf07a3d6f57b48a0aa5c
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 build and installation instructions.
This package is known to build and work properly using an LFS-7.6 platform.
Net::DNS-0.76
http://www.cpan.org/authors/id/N/NL/NLNETLABS/Net-DNS-0.76.tar.gz
MD5 sum: 219dada09d01b7233f82fd1c32ddad39
Digest::HMAC
(http://search.cpan.org/~gaas/Digest-HMAC/)
IO::Socket::INET6
(http://search.cpan.org/~shlomif/IO-Socket-INET6-2.72/)
IO::Socket::INET
(http://search.cpan.org/~gbarr/IO/lib/IO/Socket/INET.pm) (required for IPv6 support)
Socket6
(http://search.cpan.org/~umemoto/Socket6/)
The Readonly::XS module is a companion module for Readonly.pm, to speed up read-only scalar variables. This module uses the standard build and installation instructions.
This package is known to build and work properly using an LFS-7.6 platform.
Readonly::XS-1.05
http://www.cpan.org/authors/id/R/RO/ROODE/Readonly-XS-1.05.tar.gz
MD5 sum: df71f29abfcbd14c963f912d6d6ded6b
Readonly
(http://search.cpan.org/dist/Readonly/)
this uses the instructions for packages using Build.PL
Regexp::Common provides commonly requested regular expressions. This module uses the standard build and installation instructions.
This package is known to build and work properly using an LFS-7.6 platform.
Regexp-Common-2013031301
http://www.cpan.org/authors/id/A/AB/ABIGAIL/Regexp-Common-2013031301.tar.gz
MD5 sum: 2b9c335312dcfd9980ff7acbad0e5905
The SGMLSpm module is a Perl library used for parsing the output from James Clark's SGMLS and NSGMLS parsers. This modules uses the standard build and installation instructions.
This package is known to build and work properly using an LFS-7.6 platform.
Before beginning the build, issue the following command to prevent an error:
chmod -v 644 MYMETA.yml
After installed, as the root
user:
ln -sv sgmlspl.pl /usr/bin/sgmlspl
SGMLSpm-1.1
http://anduin.linuxfromscratch.org/sources/BLFS/conglomeration/perl-modules/SGMLSpm-1.1.tar.gz
MD5 sum: 746c74ae969992cedb1a2879b4168090
Text::BibTeX provides an interface to read and parse BibTeX files. This module uses the instructions for packages using Build.PL, but except where noted, its dependencies are installed using the standard build and installation instructions.
This package is known to build and work properly using an LFS-7.6 platform.
Text::BibTeX-0.69
http://www.cpan.org/authors/id/A/AM/AMBS/Text/Text-BibTeX-0.69.tar.gz
MD5 sum: 2b83fd66f252f4c11d1f49b4ea638ea3
Config::AutoConf
(http://search.cpan.org/dist/Config-AutoConf/)
Capture=Tiny
(http://search.cpan.org/dist/Capture-Tiny/
ExtUtils-LibBuilder
(http://search.cpan.org/dist/LibBuilder/)
this uses the instructions for packages using Build.PL
Unicode::Collate provides a Unicode collation algorithm. This module uses the standard build and installation instructions.
This package is known to build and work properly using an LFS-7.6 platform.
Unicode-Collate-1.07
http://www.cpan.org/authors/id/S/SA/SADAHIRO/Unicode-Collate-1.07.tar.gz
MD5 sum: 80b9d8452be51a638268fffd129d2480
Unicode::LineBreak provides a UAX #14 Unicode Line Breaking Algorithm. This module and its dependencies use the standard build and installation instructions.
This package is known to build and work properly using an LFS-7.6 platform.
Unicode::LineBreak-2014.06
http://www.cpan.org/authors/id/N/NE/NEZUMI/Unicode-LineBreak-2014.06.tar.gz
MD5 sum: c908890e6a00f4203da5d4a5d6060586
MIME::Charset
(http://search.cpan.org/dist/MIME-Charset/)
Encode-JISX0213
(http://search.cpan.org/dist/Encode-JISX0213/
Encode-ISO2022
(http://search.cpan.org/dist/Encode-ISO2022/>)
This module implements the URI class. Objects of this class represent "Uniform Resource Identifier references" as specified in RFC 2396 (and updated by RFC 2732). A Uniform Resource Identifier is a compact string of characters that identifies an abstract or physical resource. A Uniform Resource Identifier can be further classified as either a Uniform Resource Locator (URL) or a Uniform Resource Name (URN). The distinction between URL and URN does not matter to the URI class interface. A "URI-reference" is a URI that may have additional information attached in the form of a fragment identifier. This module uses the standard build and installation instructions.
This package is known to build and work properly using an LFS-7.6 platform.
URI-1.64
http://www.cpan.org/authors/id/E/ET/ETHER/URI-1.64.tar.gz
MD5 sum: 975b2282bc8f0fd72a6dae5cefc33824
The XML::LibXML::Simple module is a rewrite of XML::Simple to use the XML::LibXML parser for XML structures,instead of the plain Perl or SAX parsers. This module and all dependency modules use the standard build and installation instructions.
This package is known to build and work properly using an LFS-7.6 platform.
XML::LibXML::Simple-0.94
http://cpan.org/authors/id/M/MA/MARKOV/XML-LibXML-Simple-0.94.tar.gz
MD5 sum: 5be6726d9972be9f55bd646a464988d6
File::Slurp::Tiny
(http://search.cpan.org/dist/File-Slurp-Tiny/)
The XML::LibXSLT module provides an interface to libxslt. This module uses the standard build and installation instructions.
This package is known to build and work properly using an LFS-7.6 platform.
XML::LibXSLT-1.92
http://www.cpan.org/authors/id/S/SH/SHLOMIF/XML-LibXSLT-1.92.tar.gz
MD5 sum: e543d54493c8be6d4fb26595593818d1
The XML::Simple module is a Perl extension that provides an easy API to read and write XML (especially config files). This module and all dependency modules use the standard build and installation instructions.
This package is known to build and work properly using an LFS-7.6 platform.
XML::Simple-2.20
http://cpan.org/authors/id/G/GR/GRANTM/XML-Simple-2.20.tar.gz
MD5 sum: 4d10964e123b76eca36678464daa63cd
XML::SAX
(http://search.cpan.org/~grantm/XML-SAX/)
(Note: this package does not support parallel build)
XML::NamespaceSupport
(http://search.cpan.org/~perigrin/XML-NamespaceSupport/)
XML::SAX::Base
(http://search.cpan.org/~grantm/XML-SAX-Base/)
XML::SAX::Expat
(http://search.cpan.org/~bjoern/XML-SAX-Expat/)
(Note: this package does not support parallel build)
XML::LibXML
(http://search.cpan.org/~shlomif/XML-LibXML/)
(recommended for faster parsing)
Tie::IxHash
(http://search.cpan.org/~chorny/Tie-IxHash/)
(optionally used in the test suite)
XML::Writer provides a Perl extension for writing XML documents. This module uses the standard build and installation instructions.
This package is known to build and work properly using an LFS-7.6 platform.
XML::Writer-0.625
http://www.cpan.org/authors/id/J/JO/JOSEPHW/XML-Writer-0.625.tar.gz
MD5 sum: b9c2420c243c6a36ce45a008740fcede
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
Install Perl modules which use Build.PL by running the following commands:
perl Build.PL && ./Build && ./Build test
Now, as the root
user:
./Build install
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 2014-09-12 22:13:42 -0700
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. It is also useful as a general purpose scripting language.
This package is known to build and work properly using an LFS-7.6 platform.
Download (HTTP): http://us2.php.net/distributions/php-5.6.0.tar.bz2
Download (FTP): ftp://ftp.isu.edu.tw/pub/Unix/Web/PHP/distributions/php-5.6.0.tar.bz2
Download MD5 sum: 1f889357528809a6675e2f23995832d7
Download size: 13 MB
Estimated disk space required: 442 MB (additional 1 MB to run the test suite and 102 MB for documentation)
Estimated build time: 4 SBU (additional 1.9 SBU to run the test suite)
Pre-built documentation (optional): http://www.php.net/download-docs.php
Apache-2.4.10 and libxml2-2.9.1
libxslt-1.1.28, PCRE-8.35, Aspell-0.60.6.1, enchant-1.6.0, Pth-2.0.7, an MTA (that provides a sendmail command) OSSP mm, Net-SNMP, re2c, XMLRPC-EPI, and Dmalloc
libjpeg-turbo-1.3.1, LibTIFF-4.0.3, libpng-1.6.13, libexif-0.6.21, FreeType-2.5.3, X Window System, ClibPDF, GD, t1lib, and FDF Toolkit
cURL-7.37.1, HTML Tidy-cvs_20101110, mnoGoSearch, Hyperwave, Roxen WebServer, Caudium, and WDDX
OpenLDAP-2.4.39, Berkeley DB-6.1.19, MariaDB-10.0.13 or MySQL, PostgreSQL-9.3.5, unixODBC-2.3.2, SQLite-3.8.6, QDBM, cdb, 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-1.0.1i, Cyrus SASL-2.1.26, MIT Kerberos V5-1.12.2, 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/svn/php_configure.txt.
If, for whatever reason, you don't have libxml2-2.9.1
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:
./configure --prefix=/usr \ --sysconfdir=/etc \ --localstatedir=/var \ --datadir=/usr/share/php \ --mandir=/usr/share/man \ --enable-fpm \ --with-fpm-user=apache \ --with-fpm-group=apache \ --with-config-file-path=/etc \ --with-zlib \ --enable-bcmath \ --with-bz2 \ --enable-calendar \ --enable-dba=shared \ --with-gdbm \ --with-gmp \ --enable-ftp \ --with-gettext \ --enable-mbstring \ --with-readline && make
To test the results, issue: make test. A few tests may fail, in which case you are asked whether you want to send the report to the PHP developpers. If you want to automate the test, you may prefix the command with yes "n" | .
Now, as the root
user:
make install && install -v -m644 php.ini-production /etc/php.ini && mv -v /etc/php-fpm.conf{.default,} && install -v -m755 -d /usr/share/doc/php-5.6.0 && install -v -m644 CODING_STANDARDS EXTENSIONS INSTALL NEWS README* UPGRADING* php.gif \ /usr/share/doc/php-5.6.0 && ln -v -sfn /usr/lib/php/doc/Archive_Tar/docs/Archive_Tar.txt \ /usr/share/doc/php-5.6.0 && ln -v -sfn /usr/lib/php/doc/Structures_Graph/docs \ /usr/share/doc/php-5.6.0
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.6.0 && gunzip -v /usr/share/doc/php-5.6.0/php_manual_en.html.gz
For the “Many HTML files” tarball:
tar -xvf ../php_manual_en.tar.gz \ -C /usr/share/doc/php-5.6.0 --no-same-owner
--with-datadir=/usr/share/php
:
This works around a bug in the build machinery, which
installs some data to a wrong location.
--enable-fpm
: This
parameter allows building the fastCGI Process Manager.
--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=shared
:
This parameter enables support for database (dbm-style)
abstraction layer functions.
--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-readline
: This
parameter enables command line Readline support.
--with-mysql
: This option
includes MariaDB/MySQL
support.
--disable-libxml
: This option
allows building PHP without libxml2 installed.
--with-apxs2
: Instead of building
the fastCGI process manager, it is possible to build an
apache module. This has some
performance penalty for heavy loaded servers, but may be
easier to set up. This switch is incompatible with the
--enable-fpm
and
--with-fpm-...
switches.
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 fastCGI support in the Apache web server, two LoadModule
directives must be added to the httpd.conf
file. They are commented out,
so just issue the following command as root
user:
sed -i -e '/proxy_module/s/^#//' \ -e '/proxy_fcgi_module/s/^#//' \ /etc/httpd/httpd.conf
Those modules accept various ProxyPass directives. One
possibility is (as the root
user):
echo \ 'ProxyPassMatch ^/(.*\.php)$ fcgi://127.0.0.1:9000/srv/www/$1' >> \ /etc/httpd/httpd.conf
Additionally, it may 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.
To automatically start the php-fpm daemon when the
system is rebooted, install the /etc/rc.d/init.d/php
bootscript from the
blfs-bootscripts-20140919 package
as the root
user:
make install-php
Last updated on 2014-09-21 01:03:52 -0700
The Python 2 package contains the Python development environment. It is useful for object-oriented programming, writing scripts, prototyping large programs or developing entire applications. This version is for backward compatibility with other dependent packages.
This package is known to build and work properly using an LFS-7.6 platform.
Download (HTTP): http://www.python.org/ftp/python/2.7.8/Python-2.7.8.tar.xz
Download MD5 sum: d235bdfa75b8396942e360a70487ee00
Download size: 11 MB
Estimated disk space required: 222 MB (additional 18 MB for the tests)
Estimated build time: 1.0 SBU (additional 4.8 SBU for tests)
Required patch if you wish to run the test suite: http://www.linuxfromscratch.org/patches/blfs/7.6/Python-2.7.8-skip_test_gdb-1.patch
Optional HTML Documentation
Download (HTTP): http://docs.python.org/ftp/python/doc/2.7.8/python-2.7.8-docs-html.tar.bz2
Download MD5 sum: 2cf9ba96b2723a5268cd14432b15fdcf
Download size: 4.4 MB
Berkeley DB-6.1.19, OpenSSL-1.0.1i, SQLite-3.8.6 and Tk-8.6.2
If you are building Thunderbird-31.1.1 or Firefox-32.0.1 you must install openssl before you build Python 2.
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/Python
Install Python 2 by running the following commands:
./configure --prefix=/usr \ --enable-shared \ --with-system-expat \ --with-system-ffi \ --enable-unicode=ucs4 && make
If you wish to run the test suite, disable a test that fails:
patch -Np1 -i ../Python-2.7.8-skip_test_gdb-1.patch
To test the results, issue: make test.
Now, as the root
user:
make install && chmod -v 755 /usr/lib/libpython2.7.so.1.0
Since Python 2 is in
maintenance mode, and Python
3 is recommended by upstream for development, you
probably do not need to install the documentation. However,
if you still want to install documentation for both
Python versions, be sure to
define the PYTHONDOCS
variable for
the version you want to use, each time you need to consult
the documentation. If you have downloaded the preformatted
documentation from http://docs.python.org/download.html,
install it as the root
user:
install -v -dm755 /usr/share/doc/python-2.7.8 && tar --strip-components=1 -C /usr/share/doc/python-2.7.8 \ --no-same-owner -xvf ../python-2.7.8-docs-html.tar.bz2 && find /usr/share/doc/python-2.7.8 -type d -exec chmod 0755 {} \; && find /usr/share/doc/python-2.7.8 -type f -exec chmod 0644 {} \;
--with-system-expat
: This switch
enables linking against system version of Expat.
--with-system-ffi
: This switch
enables linking against system version of libffi. Remove if you have not installed
libffi-3.1.
--enable-unicode=ucs4
: This
switch enables 32bit Unicode support in Python.
--with-dbmliborder=bdb:gdbm:ndbm
:
Use this switch if you want to build Python DBM Module against Berkeley DB instead of GDBM.
chmod ...: Fix permissions for libraries to be consistent with other libraries.
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.7.8
is a Python program that reads Python 2.x source code and applies a series of fixers to transform it into valid Python 3.x code. |
|
is a wrapper script that opens a Python aware GUI editor. For this script to run, you must have installed Tk before Python so that the Tkinter Python module is built. |
|
is the Python documentation tool. |
|
is an interpreted, interactive, object-oriented programming language. |
|
is a version-specific name for the python program. |
|
is an SMTP proxy implemented in Python. |
Last updated on 2014-09-09 12:00:35 -0700
The Python 3 package contains the Python development environment. This is useful for object-oriented programming, writing scripts, prototyping large programs or developing entire applications.
This package is known to build and work properly using an LFS-7.6 platform.
Download (HTTP): http://www.python.org/ftp/python/3.4.1/Python-3.4.1.tar.xz
Download MD5 sum: 6cafc183b4106476dd73d5738d7f616a
Download size: 14 MB
Estimated disk space required: 266 MB (additional 38 MB for the docs and 37 MB for the tests)
Estimated build time: 1.1 SBU (additional 0.1 SBU for the tests)
Optional HTML Documentation
Download (HTTP): http://docs.python.org/3/archives/python-3.4.1-docs-html.tar.bz2
Download MD5 sum: e5662b53413b0dd05d1ee1a075956370
Download size: 5.2 MB
BlueZ-5.23, GDB-7.8 (required for some tests), and Valgrind-3.10.0
Berkeley DB-6.1.19, OpenSSL-1.0.1i, SQLite-3.8.6 and Tk-8.6.2
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/Python3
Install Python 3 by running the following commands:
CXX="/usr/bin/g++" \ ./configure --prefix=/usr \ --enable-shared \ --with-system-expat \ --with-system-ffi \ --without-ensurepip && make
The test suite must be run separately, using an X terminal (see below).
Now, as the root
user:
make install && chmod -v 755 /usr/lib/libpython3.4m.so && chmod -v 755 /usr/lib/libpython3.so
If you have downloaded the preformatted documentation from
http://docs.python.org/download.html,
install it as the root
user:
install -v -dm755 /usr/share/doc/python-3.4.1/html && tar --strip-components=1 \ --no-same-owner \ --no-same-permissions \ -C /usr/share/doc/python-3.4.1/html \ -xvf ../python-3.4.1-docs-html.tar.bz2
The test suite must be run separately from the build, either before or after the package is built and installed. Do not run make install, after running the test suite. To build and install the package, you need to start with a fresh or clean source tree. For the test, you also need a clean source code, so either start by removing the source code directory and starting over, by uncompressing the source tarball or by running make clean. Then configure again, adding “--with-pydebug” to the configure switches above, run make, then make test. Remember that some tests fail, if not run in an X terminal.
CXX="/usr/bin/g++" ./configure ...: Avoid an annoying message during configuration.
--with-system-expat
: This switch
enables linking against system version of Expat.
--with-system-ffi
: This switch
enables linking against system version of libffi. Remove if you have not installed
recommended dependency libffi-3.1.
--with-dbmliborder=bdb:gdbm:ndbm
:
Use this switch if you want to build Python DBM Module against Berkeley DB instead of GDBM.
--without-ensurepip
:
This switch disables building pip and setuptools packaging
programs.
chmod ...: Fix permissions for shared libraries to be consistent with other libraries.
In order for python3 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-3.4.1/html
is a wrapper script that opens a Python aware GUI editor. For this script to run, you must have installed Tk before Python so that the Tkinter Python module is built. |
|
is the Python documentation tool. |
|
is an interpreted, interactive, object-oriented programming language. |
|
is a version-specific name for the python program. |
|
creates virtual Python environments in one or more target directories. |
Last updated on 2014-09-14 12:09:32 -0700
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.
D-Bus Python provides Python bindings to the D-Bus.
This package is known to build and work properly using an LFS-7.6 platform.
Download (HTTP): http://dbus.freedesktop.org/releases/dbus-python/dbus-python-1.2.0.tar.gz
Download MD5 sum: b09cd2d1a057cc432ce944de3fc06bf7
Download size: 592 KB
Estimated disk space required: 11 MB
Estimated build time: 0.3 SBU
dbus-glib-0.102 and Python-2.7.8 and/or Python-3.4.1
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/dbus-python
Both Python 2 and Python 3 modules can be built and installed without any conflicts.
To build D-Bus Python as the Python 2 module, run the following commands:
mkdir python2 && pushd python2 && PYTHON=/usr/bin/python \ ../configure --prefix=/usr --docdir=/usr/share/doc/dbus-python-1.2.0 && make && popd
To test the results, issue: make -C python2 check.
To build D-Bus Python as the Python 3 module, run the following commands:
mkdir python3 && pushd python3 && PYTHON=/usr/bin/python3 \ ../configure --prefix=/usr --docdir=/usr/share/doc/dbus-python-1.2.0 && make && popd
To test the results, issue: make -C python3 check.
To install the Python 2
module, run the following command as the root
user:
make -C python2 install
To install the Python 3
module, run the following command as the root
user:
make -C python3 install
Py2cairo provides Python 2 bindings to Cairo.
This package is known to build and work properly using an LFS-7.6 platform.
Download (HTTP): http://cairographics.org/releases/py2cairo-1.10.0.tar.bz2
Download MD5 sum: 20337132c4ab06c1146ad384d55372c5
Download size: 400 KB
Estimated disk space required: 3.6 MB
Estimated build time: less than 0.1 SBU
Python-2.7.8 and Cairo-1.12.16
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/py2cairo
Install Py2cairo by running the following commands:
./waf configure --prefix=/usr && ./waf build
The test suite must be run after the package is installed.
Now, as the root
user:
./waf install
The test suite requires the optional pytest package. If installed, it is
run by changing to the test
directory and running py.test as an
unprivileged user.
PyCairo provides Python 3 bindings to Cairo.
This package is known to build and work properly using an LFS-7.6 platform.
Download (HTTP): http://cairographics.org/releases/pycairo-1.10.0.tar.bz2
Download MD5 sum: e6fd3f2f1e6a72e0db0868c4985669c5
Download size: 244 KB
Estimated disk space required: 3.0 MB
Estimated build time: less than 0.1 SBU
Cairo-1.12.16 and Python-3.4.1
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/pycairo
Install PyCairo by running the following commands:
patch -Np1 -i ../pycairo-1.10.0-waf_unpack-1.patch && wafdir=$(./waf unpack) && pushd $wafdir && patch -Np1 -i ../../pycairo-1.10.0-waf_python_3_4-1.patch && popd && unset wafdir && PYTHON=/usr/bin/python3 ./waf configure --prefix=/usr && ./waf build
This package does not come with a test suite.
Now, as the root
user:
./waf install
PyGObject-2.28.6 provides Python 2 bindings to the GObject class from GLib.
This package is known to build and work properly using an LFS-7.6 platform.
Download (HTTP): http://ftp.gnome.org/pub/gnome/sources/pygobject/2.28/pygobject-2.28.6.tar.xz
Download (FTP): ftp://ftp.gnome.org/pub/gnome/sources/pygobject/2.28/pygobject-2.28.6.tar.xz
Download MD5 sum: 9415cb7f2b3a847f2310ccea258b101e
Download size: 732 KB
Estimated disk space required: 24 MB
Estimated build time: 0.2 SBU
GLib-2.40.0 and Py2cairo-1.10.0
gobject-introspection-1.40.0 and libxslt-1.1.28 (to Build Documentation)
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/pygobject2
Install PyGObject by running the following commands:
patch -Np1 -i ../pygobject-2.28.6-fixes-1.patch && ./configure --prefix=/usr --disable-introspection && make
This package does not have a working testsuite.
Now, as the root
user:
make install
--disable-introspection
: Omit
this switch if you have installed gobject-introspection-1.40.0.
Note that it conflicts with PyGObject-3.12.2.
--disable-docs
: This option
disables the rebuilding of the html documentation if
libxslt-1.1.28 is installed.
PyGObject3 provides Python bindings to the GObject class from GLib.
This package is known to build and work properly using an LFS-7.6 platform.
Download (HTTP): http://ftp.gnome.org/pub/gnome/sources/pygobject/3.12/pygobject-3.12.2.tar.xz
Download (FTP): ftp://ftp.gnome.org/pub/gnome/sources/pygobject/3.12/pygobject-3.12.2.tar.xz
Download MD5 sum: fd9b1e956ee2e2dae544e57b1858596b
Download size: 688 KB
Estimated disk space required: 21 MB (additional 3 MB for the tests)
Estimated build time: 0.3 SBU (additional 0.2 SBU for the tests)
gobject-introspection-1.40.0 and Py2cairo-1.10.0 (for Python 2 bindings) and/or PyCairo-1.10.0 (for Python 3 bindings)
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/pygobject3
Both Python 2 and Python 3 modules can be built and installed without any conflicts.
If you wish to run the test suite, optionally use the following command so that one test is marked as "expected failure":
sed -i '/test_out_glist/ i\ @unittest.expectedFailure' \ tests/test_atoms.py
To build PyGObject3 as the Python 2 module, run the following commands:
mkdir python2 && pushd python2 && ../configure --prefix=/usr --with-python=/usr/bin/python && make && popd
To test the results, issue: make -C python2 check. An already active graphical session with bus address is necessary to run the tests.
To build PyGObject3 as the Python 3 module, run the following commands:
mkdir python3 && pushd python3 && ../configure --prefix=/usr --with-python=/usr/bin/python3 && make && popd
To test the results, issue: make -C python3 -k check. An already active graphical session with bus address is necessary to run the tests. Some tests fail for unknown reasons.
To install the Python 2
module, run the following command as the root
user:
make -C python2 install
To install the Python 3
module, run the following command as the root
user:
make -C python3 install
PyGTK lets you to easily create programs with a graphical user interface using the Python programming language.
This package is known to build and work properly using an LFS-7.6 platform.
Download (HTTP): http://ftp.gnome.org/pub/gnome/sources/pygtk/2.24/pygtk-2.24.0.tar.bz2
Download (FTP): ftp://ftp.gnome.org/pub/gnome/sources/pygtk/2.24/pygtk-2.24.0.tar.bz2
Download MD5 sum: a1051d5794fd7696d3c1af6422d17a49
Download size: 2.2 MB
Estimated disk space required: 83 MB
Estimated build time: 0.7 SBU
Py2cairo-1.10.0 and Pango-1.36.7
Py2cairo-1.10.0 and GTK+-2.24.24.
Py2cairo-1.10.0 and libglade-2.6.4.
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.28 is installed.
PyXDG is a Python library to access freedesktop.org standards.
This package is known to build and work properly using an LFS-7.6 platform.
Download (HTTP): http://people.freedesktop.org/~takluyver/pyxdg-0.25.tar.gz
Download MD5 sum: bedcdb3a0ed85986d40044c87f23477c
Download size: 48 KB
Estimated disk space required: 800 KB
Estimated build time: less than 0.1 SBU
Python-2.7.8 and/or Python-3.4.1
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/pyxdg
Both Python 2 and Python 3 modules can be built and installed without any conflicts.
To install the Python 2
module, run the following command as the root
user:
python setup.py install --optimize=1
To install the Python 3
module, run the following command as the root
user:
python3 setup.py install --optimize=1
Last updated on 2014-03-28 03:10:16 -0700
The Ruby package contains the Ruby development environment. This is useful for object-oriented scripting.
This package is known to build and work properly using an LFS-7.6 platform.
Download (HTTP): http://cache.ruby-lang.org/pub/ruby/2.1/ruby-2.1.2.tar.bz2
Download MD5 sum: ed9b8565bdeccb401d628ec8d54a0774
Download size: 12 MB
Estimated disk space required: 909 MB
Estimated build time: 3.5 SBU (additional 0.3 SBU for tests)
Berkeley DB-6.1.19, Doxygen-1.8.8, Graphviz-2.38.0, libyaml, OpenSSL-1.0.1i, and Tk-8.6.2
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/ruby
Install Ruby by running the following commands:
./configure --prefix=/usr \ --enable-shared \ --docdir=/usr/share/doc/ruby-2.1.2 && make
To test the results, issue: make test.
Now, as the root
user:
make install
--enable-shared
: This
switch enables building of the libruby
shared library.
/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 2014-09-14 12:09:32 -0700
SCons is a tool for building software (and other files) implemented in Python.
This package is known to build and work properly using an LFS-7.6 platform.
Download (HTTP): http://downloads.sourceforge.net/scons/scons-2.3.3.tar.gz
Download MD5 sum: 5956570178fed902219ac72f1169e94a
Download size: 608 KB
Estimated disk space required: 12 MB
Estimated build time: 0.1 SBU
docbook-xsl-1.78.1, libxml2-2.9.1, and libxslt-1.1.28
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/scons
Install SCons by running the
following commands as the root
user:
python setup.py install --prefix=/usr \ --standard-lib \ --optimize=1 \ --install-data=/usr/share
Last updated on 2014-09-10 09:10:33 -0700
S-Lang is an interpreted language that may be embedded into an application to make the application extensible. It provides facilities required by interactive applications such as display/screen management, keyboard input and keymaps.
This package is known to build and work properly using an LFS-7.6 platform.
Download (FTP): ftp://space.mit.edu/pub/davis/slang/v2.2/slang-2.2.4.tar.bz2
Download MD5 sum: 7fcfd447e378f07dd0c0bae671fe6487
Download size: 1.4 MB
Estimated disk space required: 9.4 MB
Estimated build time: 0.4 SBU
libpng-1.6.13, PCRE-8.35, and Oniguruma
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/slang
This package does not support parallel build.
Install S-Lang by running the following commands:
./configure --prefix=/usr \ --sysconfdir=/etc \ --with-readline=gnu && make -j1
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.2.4 \ SLSH_DOC_DIR=/usr/share/doc/slang-2.2.4/slsh \ install-all && chmod -v 755 /usr/lib/libslang.so.2.2.4 \ /usr/lib/slang/v2/modules/*.so
--with-readline=gnu
:
This parameter sets GNU Readline to be used by the parser
interface instead of the S-Lang internal version.
make install_doc_dir=/usr/share/doc/slang-2.2.4 SLSH_DOC_DIR=/usr/share/doc/slang-2.2.4/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.
Last updated on 2014-09-11 23:27:59 -0700
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.
This package is known to build and work properly using an LFS-7.6 platform.
Download (HTTP): http://www.apache.org/dist/subversion/subversion-1.8.10.tar.bz2
Download MD5 sum: 3068256761b40863df96128834d6b71b
Download size: 6.6 MB
Estimated disk space required: 143 MB (284 MB with all bindings and API documentation built; additional 968 MB for tests)
Estimated build time: 0.9 SBU (2.5 SBU with all bindings and API documentation built; additional 12.6 SBU for tests)
Apr-Util-1.5.3 and SQLite-3.8.6
OpenSSL-1.0.1i and Serf-1.3.7 (for handling http:// and https:// URLs)
Apache-2.4.10, Cyrus SASL-2.1.26, D-Bus-1.8.8, kdelibs-4.14.1 (for KWallet support), Python-2.7.8 (with sqlite support for the tests), Ruby-2.1.2, and SWIG-3.0.2 (for building Perl, Python and Ruby bindings)
One of OpenJDK-1.7.0.65/IcedTea-2.5.2, Dante or Jikes, and JUnit-4.11 (to test the Java bindings)
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/subversion
Install Subversion by running the following commands:
./configure --prefix=/usr \ --disable-static \ --with-apache-libexecdir && make
If you have Doxygen-1.8.8 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 a multi core CPU and normally run make with multiple jobs (eg
make -j4) then
a bug in the Makefile
will
prevent the Perl bindings
compiling correctly. Fix the Makefile
with:
sed -i 's#Makefile.PL.in$#& libsvn_swig_perl#' Makefile.in
If you want to compile Perl, Python2, or Ruby bindings, issue any of the following command:
make swig-pl # for Perl make swig-py \ swig_pydir=/usr/lib/python2.7/site-packages/libsvn \ swig_pydir_extra=/usr/lib/python2.7/site-packages/svn # for Python make swig-rb # for Ruby
To test the results, issue: make -k check. One test (wc-queries-test) is known to fail with recent versions of SQLite.
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 of the SWIG bindings, you can use any of the following commands: make check-swig-pl, make check-swig-py, or make check-swig-rb.
Now, as the root
user:
make -j1 install && install -v -m755 -d /usr/share/doc/subversion-1.8.10 && cp -v -R doc/* \ /usr/share/doc/subversion-1.8.10
If you built the Java bindings, issue the following command
as the root
user to install
them:
make install-javahl
If you built the Perl,
Python2, or Ruby bindings, issue any of the
following commands as the root
user to install them:
make install-swig-pl make install-swig-py \ swig_pydir=/usr/lib/python2.7/site-packages/libsvn \ swig_pydir_extra=/usr/lib/python2.7/site-packages/svn make install-swig-rb
--disable-static
:
This switch prevents installation of static versions of the
libraries.
--with-apache-libexecdir
: If
Apache-2.4.10 is installed, the shared
Apache modules are built.
This switch allows to have those modules installed to
Apache's configured module
dir instead of /usr/libexec
. It
has no effect if Apache is
not installed.
/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 Multiple URL Command Client for Subversion. |
|
is a tool for dumping or loading a remote Subversion repository. |
|
is a custom standalone server program, able to run as a daemon process or invoked by SSH. |
|
is a Subversion repository synchronisation tool. |
|
is used to report the version number and state of a working Subversion repository copy. |
|
are the support libraries used by the Subversion programs. |
|
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 2014-09-10 06:19:10 -0700
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/svn && 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.
To start the server at boot time, install the svn bootscript included in the blfs-bootscripts-20140919 package.
make install-svn
Last updated on 2013-12-15 12:59:51 -0800
SWIG (Simplified Wrapper and Interface Generator) is a compiler that integrates C and C++ with languages including Perl, Python, Tcl, Ruby, PHP, Java, C#, D, Go, Lua, Octave, R, Scheme, Ocaml, Modula-3, Common Lisp, and Pike. SWIG can also export its parse tree into Lisp s-expressions and XML.
SWIG reads annotated C/C++ header files and creates wrapper code (glue code) in order to make the corresponding C/C++ libraries available to the listed languages, or to extend C/C++ programs with a scripting language.
This package is known to build and work properly using an LFS-7.6 platform.
Download (HTTP): http://downloads.sourceforge.net/swig/swig-3.0.2.tar.gz
Download MD5 sum: 62f9b0d010cef36a13a010dc530d0d41
Download size: 5.42 MB
Estimated disk space required: 77 MB (up to 1.1 GB for tests)
Estimated build time: 0.4 SBU (24 SBU for tests of Guile, Go, Java, Lua, Perl, PHP, Python, Ruby, and tcl)
Boost-1.56.0 for tests, and any of the languages mentionned in the introduction, as run-time dependencies
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/swig
Install SWIG by running the following commands:
./configure --prefix=/usr && make
To test the results, issue: make -k check. According to SWIG's documentation, the failure of some tests should not be considered harmful.
Now, as the root
user:
make install && install -v -m755 -d /usr/share/doc/swig-3.0.2 && cp -v -R Doc/* /usr/share/doc/swig-3.0.2
--without-<language>
:
allows disabling the building of tests and examples for
<language>, but all the languages capabilities of
SWIG are always built.
Last updated on 2014-09-21 01:03:52 -0700
The Tcl package contains the Tool Command Language, a robust general-purpose scripting language.
This package is known to build and work properly using an LFS-7.6 platform.
Download (HTTP): http://downloads.sourceforge.net/tcl/tcl8.6.2-src.tar.gz
Download MD5 sum: 8103eaf6d71acb716a64224492f09d5f
Download size: 8.5 MB
Estimated disk space required: 79 MB (includes documentation installation)
Estimated build time: 0.9 SBU (adittional 1.5 SBU for the tests)
Optional Documentation
Download (HTTP): http://downloads.sourceforge.net/tcl/tcl8.6.2-html.tar.gz
Download MD5 sum: 75019542fa735eb0c26e385b1a41296c
Download size: 1.2 MB
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.
If you downloaded the optional documentation, unpack the tarball by issuing the following command:
tar -xf ../tcl8.6.2-html.tar.gz --strip-components=1
Install Tcl by running the following commands:
export SRCDIR=`pwd` && cd unix && ./configure --prefix=/usr \ --without-tzdata \ --mandir=/usr/share/man \ $([ $(uname -m) = x86_64 ] && echo --enable-64bit) && make && sed -e "s#$SRCDIR/unix#/usr/lib#" \ -e "s#$SRCDIR#/usr/include#" \ -i tclConfig.sh && sed -e "s#$SRCDIR/unix/pkgs/tdbc1.0.1#/usr/lib/tdbc1.0.0#" \ -e "s#$SRCDIR/pkgs/tdbc1.0.1/generic#/usr/include#" \ -e "s#$SRCDIR/pkgs/tdbc1.0.1/library#/usr/lib/tcl8.6#" \ -e "s#$SRCDIR/pkgs/tdbc1.0.1#/usr/include#" \ -i pkgs/tdbc1.0.1/tdbcConfig.sh && sed -e "s#$SRCDIR/unix/pkgs/itcl4.0.1#/usr/lib/itcl4.0.0#" \ -e "s#$SRCDIR/pkgs/itcl4.0.1/generic#/usr/include#" \ -e "s#$SRCDIR/pkgs/itcl4.0.1#/usr/include#" \ -i pkgs/itcl4.0.1/itclConfig.sh && unset SRCDIR
To test the results, issue: make test.
Now, as the root
user:
make install && make install-private-headers && ln -v -sf tclsh8.6 /usr/bin/tclsh && chmod -v 755 /usr/lib/libtcl8.6.so
If you downloaded the optional documentation, install it by
issuing the following commands as the root
user:
mkdir -v -p /usr/share/doc/tcl-8.6.2 && cp -v -r ../html/* /usr/share/doc/tcl-8.6.2
--without-tzdata
: This switch
prevents installation of the shipped timezone data which are
older than the ones provided in LFS.
$([ $(uname -m) = x86_64 ]
&& echo --enable-64bit)
: This switch is
used to enable 64 bit support in Tcl on 64 bit operating systems.
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.6 /usr/bin/tclsh: This command is used to create a compatibility symbolic link to the tclsh8.6 file as many packages expect a file named tclsh.
sed -e ...: The Tcl package expects that its source tree is preserved so that packages depending on it for their compilation can utilize it. These sed remove the references to the build directory and replace them with saner system-wide locations.
Last updated on 2014-09-15 12:23:10 -0700
The Tk package contains a TCL GUI Toolkit.
This package is known to build and work properly using an LFS-7.6 platform.
Download (HTTP): http://downloads.sourceforge.net/tcl/tk8.6.2-src.tar.gz
Download MD5 sum: a719038d2df12ffd41dda4a255da5e09
Download size: 4.1 MB
Estimated disk space required: 24 MB
Estimated build time: 0.3 SBU
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/tk
Install Tk by running the following commands:
cd unix && ./configure --prefix=/usr \ --mandir=/usr/share/man \ $([ $(uname -m) = x86_64 ] && echo --enable-64bit) && make && sed -e "s@^\(TK_SRC_DIR='\).*@\1/usr/include'@" \ -e "/TK_B/s@='\(-L\)\?.*unix@='\1/usr/lib@" \ -i tkConfig.sh
Running the tests is not recommended. Failures will occur in the tests, depending on the screen resolution/capabilities, fonts installed and other X related parameters. 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, but even so, tests may hang.
Now, as the root
user:
make install && make install-private-headers && ln -v -sf wish8.6 /usr/bin/wish && chmod -v 755 /usr/lib/libtk8.6.so
$([ $(uname -m) = x86_64 ]
&& echo --enable-64bit)
: This switch is
used to enable 64 bit support in Tk on 64 bit operating systems.
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.6 /usr/bin/wish: This command is used to create a compatibility symbolic link to the wish8.6 file as many packages expect a file named wish.
sed -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 2014-09-13 22:25:33 -0700
Vala is a new programming language that aims to bring modern programming language features to GNOME developers without imposing any additional runtime requirements and without using a different ABI compared to applications and libraries written in C.
This package is known to build and work properly using an LFS-7.6 platform.
Download (HTTP): http://ftp.gnome.org/pub/gnome/sources/vala/0.24/vala-0.24.0.tar.xz
Download (FTP): ftp://ftp.gnome.org/pub/gnome/sources/vala/0.24/vala-0.24.0.tar.xz
Download MD5 sum: beddeff9c06d3c278988b237da0e7401
Download size: 2.6 MB
Estimated disk space required: 126 MB (additional 2 MB to run the test suite)
Estimated build time: 0.8 SBU (additional 0.1 SBU to run the test suite)
D-Bus-1.8.8 (Required for the tests) and libxslt-1.1.28 (Required for generating the documentation)
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/vala
Install Vala by running the following commands:
patch -Np1 -i ../vala-0.24.0-upstream_fixes-2.patch && ./configure --prefix=/usr && make
To test the results, issue: make check. Note that a D-Bus session daemon must be running for the tests to succeed.
Now, as the root
user:
make install
Last updated on 2014-09-12 12:02:55 -0700
Valgrind is an instrumentation framework for building dynamic analysis tools. There are Valgrind tools that can automatically detect many memory management and threading bugs, and profile programs in detail. Valgrind can also be used to build new tools.
This package is known to build and work properly using an LFS-7.6 platform.
Download (HTTP): http://valgrind.org/downloads/valgrind-3.10.0.tar.bz2
Download MD5 sum: 7c311a72a20388aceced1aa5573ce970
Download size: 10.4 MB
Estimated disk space required: 672 MB
Estimated build time: 1.3 SBU and an additional 4.5 SBU for tests
Boost-1.56.0, LLVM-3.5.0 (with Clang), GDB-7.8 (for tests), and OpenMP
libxslt-1.1.28 and texlive-20140525
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/valgrind
Install Valgrind by running the following commands:
sed -i 's|/doc/valgrind||' docs/Makefile.in && ./configure --prefix=/usr \ --datadir=/usr/share/doc/valgrind-3.10.0 && make
To test the results, issue: make regtest.
If you wish to regenerate the documentation, run:
pushd docs && make download-docs && popd
Now, as the root
user:
make install
sed s|/doc/valgrind|| ... : This sed provides for installing the documentation in a versioned directory.
is a program for debugging and profiling Linux executables. |
|
takes an output file produced by the Valgrind tool Callgrind and prints the information in an easy-to-read form. |
|
controls programs being run by the Valgrind tool Callgrind. |
|
is a post-processing tool for the Valgrind tool Cachegrind. |
|
compares two Cachegrind output files. |
|
merges multiple Cachegrind output files into one. |
|
takes an output file produced by the Valgrind tool Massif and prints the information in an easy-to-read form. |
|
is a server that reads debuginfo from objects stored on a different machine. |
|
listens on a socket for Valgrind commentary. |
|
is an intermediary between Valgrind and GDB or a shell. |
Last updated on 2014-09-13 22:25:33 -0700
Yasm is a complete rewrite of the NASM-2.11.05 assembler. It supports the x86 and AMD64 instruction sets, accepts NASM and GAS assembler syntaxes and outputs binary, ELF32 and ELF64 object formats.
This package is known to build and work properly using an LFS-7.6 platform.
Download (HTTP): http://www.tortall.net/projects/yasm/releases/yasm-1.3.0.tar.gz
Download MD5 sum: fc9e586751ff789b34b1f21d572d96af
Download size: 1.5 MB
Estimated disk space required: 27 MB (additional 12 MB for the tests)
Estimated build time: 0.1 SBU (additional 0.1 SBU for the tests)
Python-2.7.8 or Python-3.4.1, and Cython
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/yasm
Install yasm by running the following commands:
sed -i 's#) ytasm.*#)#' Makefile.in && ./configure --prefix=/usr && make
To test the results, issue: make check.
Now, as the root
user:
make install
sed -i 's#) ytasm.*#)#' Makefile.in: This sed prevents it compiling 2 programs (vsyasm and ytasm) that are only of use on Microsoft Windows.
is a portable, retargetable assembler that supports the x86 and AMD64 instruction sets, accepts NASM and GAS assembler syntaxes and outputs binaries in ELF32 and ELF64 object formats. |
|
provides all of the core functionality of yasm, for manipulating machine instructions and object file constructs. |
Last updated on 2014-09-10 09:45:01 -0700
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/
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://wiki.clean.cs.ru.nl/Clean
Download Location: http://wiki.clean.cs.ru.nl/Download_Clean
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://cyclone.thelanguage.org/
Download Location: http://cyclone.thelanguage.org/wiki/Download/
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.gnu.org/software/dotgnu/
Download Location: http://www.gnu.org/software/dotgnu/pnet-packages.html
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.opendylan.org/
Download Location: http://opendylan.org/download/index.html
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, ...), extensible 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 X Window System 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 existing 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-lang.org/$/usr/local/lib/felix/tarballs
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/manual/html_node/Overview.html for a more detailed explanation of GNU Smalltalk.
Project Home Page: http://smalltalk.gnu.org/
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://www.plantation-productions.com/Webster/HighLevelAsm/index.html
Download Location: http://www.plantation-productions.com/Webster/HighLevelAsm/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://iolanguage.org
Download Location: http://iobin.suspended-chord.info/
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/stable.htm
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://judoscript.org/jamaica.html
Download Location: http://judoscript.org/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.
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://judoscript.org/judo.html
Download Location: http://judoscript.org/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 analysers 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://mathias.tripod.com/IavaHomepage.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://mercurylang.org/
Download Location: http://mercurylang.org/download.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://ftp.novell.com/pub/mono/archive/
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/About
Download Location: http://nemerle.org/Downloads
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.gnu.org/software/octave/
Download Location: http://www.gnu.org/software/octave/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://sourceforge.net/projects/ooc/
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.ewing/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
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: https://gforge.inria.fr/frs/?group_id=184
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/
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://bellard.org/tcc/
Download Location: http://download.savannah.gnu.org/releases-noredirect/tinycc/
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://sourceforge.net/projects/tiny-cobol/
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: http://yorick.sourceforge.net/index.php
Download Location: http://sourceforge.net/projects/yorick/files/
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
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, obfuscators, code generators and analysis
tools.
Project Home Page: http://jakarta.apache.org/bcel/index.html
Download Location: http://archive.apache.org/dist/jakarta/bcel/
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://sourceforge.net/projects/choco/
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/language-bindings.php
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/4.0/
Download Location: http://java-gnome.sourceforge.net/4.0/get/
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
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://techbase.kde.org/Development/Languages
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/
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://projects.gnome.org/anjuta/index.shtml
Download Location: http://projects.gnome.org/anjuta/downloads.html
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://mozart.github.io/
Download Location: https://github.com/mozart/mozart2#downloads
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/
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/
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://sourceforge.net/projects/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 2013-12-14 15:44:45 -0800
Java is different from most of the packages in LFS and BLFS. It is a programming language that works with files of byte codes to obtain instructions and executes then in a Java Virtual Machine (JVM). An introductory java program looks like:
public class HelloWorld
{
public static void main(String[] args)
{
System.out.println("Hello, World");
}
}
This program is saved as HelloWorld.java
. The file name,
HelloWorld, must match
the class name. It is then converted into byte code with
javac
HelloWorld.java. The output file is
HelloWorld.class
. The program
is executed with java
HelloWorld. This creates a JVM and runs the
code. The 'class' extension must not be specified.
Several class files can be combined into one file with the jar command. This is similar to the standard tar command. For instance, the command jar cf myjar.jar *.class will combine all class files in a directory into one jar file. These act as library files.
The JVM can search for and use classes in jar files
automatically. It uses the CLASSPATH
environment variable to search for
jar files. This is a standard list of colon-separated
directory names similar to the PATH
environment variable.
Creating a JVM from source requires a set of circular dependencies. The first thing that's needed is a set of programs called a Java Development Kit (JDK). This set of programs includes java, javac, jar, and several others. It also includes several base jar files.
To start, we set up a binary installation of the JDK created
by the BLFS editors. It is installed in the /opt
directory to allow for multiple
installations, including a source based version.
This package is known to build and work properly using an LFS-7.6 platform.
Binary download (x86): http://anduin.linuxfromscratch.org/files/BLFS/OpenJDK-1.7.0.65/OpenJDK-1.7.0.65-i686-bin.tar.xz
Download MD5 sum: 0dffb64ec1f7bf53e0c51824e6b7ce3e
Download size (binary): 165 MB
Estimated disk space required: 503 MB
Binary download (x86_64): http://anduin.linuxfromscratch.org/files/BLFS/OpenJDK-1.7.0.65/OpenJDK-1.7.0.65-x86_64-bin.tar.xz
Download MD5 sum: 7da9576cdc154a819a7b6702b67d94b2
Download size (binary): 142 MB
Estimated disk space required: 399 MB
alsa-lib-1.0.28, ATK-2.12.0, Cairo-1.12.16, Cups-1.7.5, gdk-pixbuf-2.30.8, giflib-5.1.0, GTK+-2.24.24, Little CMS-2.6, and Xorg Libraries
Begin by extracting the appropriate binary tarball for your
architecture and changing to the extracted directory. Install
the binary OpenJDK with the
following commands as the root
user:
install -vdm755 /opt/OpenJDK-1.7.0.65-bin && mv -v * /opt/OpenJDK-1.7.0.65-bin && chown -R root:root /opt/OpenJDK-1.7.0.65-bin
Configure the temporary OpenJDK installation by issuing the following commands (note that if you logout and login back before having definitely configured OpenJDK-1.7.0.65/IcedTea-2.5.2, you'll have to issue them again):
export CLASSPATH=.:/usr/share/java && export JAVA_HOME=/opt/OpenJDK-1.7.0.65-bin && export PATH="$PATH:/opt/OpenJDK-1.7.0.65-bin/bin"
You may also include those instructions into a file in the
/etc/profile.d
directory. Do
not forget to logout and login back, or to source the profile
file after modification.
The binary version is now installed. If you don't want to compile the sources, skip ahead to the Configuring OpenJDK section. Otherwise, continue to the apache-ant-1.9.4, JUnit-4.11, and OpenJDK-1.7.0.65/IcedTea-2.5.2 sections.
Last updated on 2014-09-18 22:41:15 -0700
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 that 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 that executes various tasks. Each task is run by an object that implements a particular task interface.
This package is known to build and work properly using an LFS-7.6 platform.
Download (HTTP): http://archive.apache.org/dist/ant/source/apache-ant-1.9.4-src.tar.bz2
Download MD5 sum: 7a7253ec047195d755c5318a4de8a3a4
Download size: 3.6 MB
Estimated disk space required: 108 MB
Estimated build time: 0.3 SBU
Required file: http://anduin.linuxfromscratch.org/sources/other/junit-4.11.jar
Required file: http://hamcrest.googlecode.com/files/hamcrest-1.3.tgz
Optional documentation: https://archive.apache.org/dist/ant/manual/apache-ant-1.9.4-manual.tar.bz2
A JDK (Java Binary or OpenJDK-1.7.0.65/IcedTea-2.5.2) and GLib-2.40.0
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. Place any
needed libraries in lib/optional
.
Unpack and copy the junit and hamcrest jar files to the local directory tree.
tar -xvf ../hamcrest-1.3.tgz && cp -v ../junit-4.11.jar \ hamcrest-1.3/hamcrest-core-1.3.jar lib/optional
If you wish to install the documentation, unpack it:
tar -xvf ../apache-ant-1.9.4-manual.tar.bz2
Install Apache Ant by running the following commands:
The unit regression tests are performed during the build step
below unless JUnit is not
installed. Now, as the root
user:
./build.sh -Ddist.dir=/opt/ant-1.9.4 dist && ln -v -sfn ant-1.9.4 /opt/ant
Make sure the JAVA_HOME environment variable is set for the
root
user.
Install the documentation as the root
user:
install -m755 -d /opt/ant-1.9.4/docs && cp -Rv apache-ant-1.9.4/* /opt/ant-1.9.4/docs
cp -v ... lib/optional: This command copies the JUnit and hamcrest jar files into the directory where Apache Ant will look for it.
./build.sh
-Ddist.dir=/opt/ant-1.9.4 dist: This command
does everything. It builds, tests, then installs the package
into /opt/ant-1.9.4
.
ln -v -sfn ant-1.9.4 /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. |
Last updated on 2014-09-18 22:41:15 -0700
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.
This package is known to build and work properly using an LFS-7.6 platform.
Download (HTTP): https://launchpad.net/debian/+archive/primary/+files/junit4_4.11.orig.tar.gz
Download MD5 sum: b4d163832583dcec8bedb5427c795cc4
Download size: 1.7 MB
Estimated disk space required: 34 MB
Estimated build time: 0.1 SBU
Required file: http://hamcrest.googlecode.com/files/hamcrest-1.3.tgz
apache-ant-1.9.4 and UnZip-6.0
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/junit
Place the required hamcrest jar files where needed and build the package:
tar -xf ../hamcrest-1.3.tgz && cp -v hamcrest-1.3/hamcrest-core-1.3{,-sources}.jar lib/ && ant dist
Testing is automatically done as a part of the build step.
Install the files in the final location as the root
user:
install -v -m755 -d /usr/share/{doc,java}/junit-4.11 && chown -R root:root . && cp -v -R junit*/javadoc/* /usr/share/doc/junit-4.11 && cp -v junit*/junit*.jar /usr/share/java/junit-4.11 && cp -v hamcrest-1.3/hamcrest-core*.jar /usr/share/java/junit-4.11
Finally, update the CLASSPATH
variable:
export CLASSPATH=$CLASSPATH:/usr/share/java/junit-4.11
Last updated on 2014-09-18 22:41:15 -0700
IcedTea provides a build harness for the OpenJDK package, Oracle's open-sourced Java development environment. In order to provide a completely free runtime environment, similar to Oracle's closed distribution, the IcedTea build harness also provides free, and arguably better versions of parts of the JDK which have not been open-sourced to date. OpenJDK is useful for developing Java programs and provides a complete runtime environment to run Java programs.
This package is known to build and work properly using an LFS-7.6 platform.
The browser plugin and webstart implementation have been split off into a separate project. To provide a complete implementation, you will need to later install IcedTea-Web-1.5.1.
OpenJDK is GPL'd code, however, it should be explained that there has been a special exception made for non-free projects to use these classes in their proprietary products. In similar fashion to the LGPL, which allows non-free programs to link to libraries provided by free software, the GNU General Public License, version 2, with the Classpath Exception allows third party programs to use classes provided by free software without the requirement that the third party software also be free. As with the LGPL, any modifications made to the free software portions of a third party application, must also be made freely available.
The IcedTea build environment includes a very thorough, open source test suite titled JTreg. JTreg is intended to test the just built JDK for reasonable compatibility with the closed Oracle JDK. However, in order for an independent implementation to claim compatibility, including the Oracle sponsored OpenJDK project, it must pass a closed JCK/TCK test suite. No claims of compatibility, even partial compatibility, may be made without passing an approved test suite.
Oracle does provide free community access, on a case by case basis, to a closed toolkit to ensure 100% compatibility with its proprietary JDK. The binary version provided here has not been tested against the TCK. Any version that is built using the instructions given, cannot claim to be compatible with the proprietary JDK, without the user applying for, and completing the compatibility tests themselves.
With that in mind, the binaries produced using this build method are regularly tested against the TCK by the members listed on the site above. In addition to the community license above, an educational, non-commercial license for the TCK can be obtained from here.
IcedTea Source Package
Download:
http://icedtea.classpath.org/download/source/icedtea-2.5.2.tar.xz
Download MD5 sum:
6c57b54ab8b7916425d567dbb478ad73
Download Size: 1.9 MB
The following may be downladed separately or be done as a part of the make process. For convenience the BLFS editors have made the files available in an LFS website. The files are not distributed with versions, but extracted from the OpenJDK version control system at specified (tagged) points.
Corba Source
Download:
http://anduin.linuxfromscratch.org/files/BLFS/OpenJDK-1.7.0.65-2.5.2/corba.tar.bz2
Download MD5 sum:
86cf23060d726aa55d77bffedb8b6a99
Download Size: 1.0 MB
Hotspot Source
Download:
http://anduin.linuxfromscratch.org/files/BLFS/OpenJDK-1.7.0.65-2.5.2/hotspot.tar.bz2
Download MD5 sum:
026bb8ca9e764fe53b8a19f1ddad1479
Download Size: 7.4 MB
IcedTea Build Source
Download:
http://anduin.linuxfromscratch.org/files/BLFS/OpenJDK-1.7.0.65-2.5.2/openjdk.tar.bz2
Download MD5 sum:
f48d6f8b748f869a5624d2c44998d54c
Download Size: 122 KB
JAXP Source
Download:
http://anduin.linuxfromscratch.org/files/BLFS/OpenJDK-1.7.0.65-2.5.2/jaxp.tar.bz2
Download MD5 sum:
cbd3226b916fe9e6c7e9f1cd15e54d55
Download Size: 2.6 MB
JAXWS Source
Download:
http://anduin.linuxfromscratch.org/files/BLFS/OpenJDK-1.7.0.65-2.5.2/jaxws.tar.bz2
Download MD5 sum:
84b921fc3e328eea770dc1a092e240dc
Download Size: 1.9 MB
Langtools Source
Download:
http://anduin.linuxfromscratch.org/files/BLFS/OpenJDK-1.7.0.65-2.5.2/langtools.tar.bz2
Download MD5 sum:
e104e60e44aba0a8bc60c48df1d859b9
Download Size: 1.6 MB
OpenJDK Source
Download:
http://anduin.linuxfromscratch.org/files/BLFS/OpenJDK-1.7.0.65-2.5.2/jdk.tar.bz2
Download MD5 sum:
b5a4703501bf4a6adeaa614e6d2345b3
Download Size: 30.2 MB
Estimated disk space required: 8-10 GB
Estimated build time: 28-36 SBU (an additional 100 SBU for testsuite)
http://www.linuxfromscratch.org/patches/blfs/7.6/icedtea-2.5.2-add_cacerts-1.patch
http://www.linuxfromscratch.org/patches/blfs/7.6/icedtea-2.5.2-fixed_paths-1.patch
http://www.linuxfromscratch.org/patches/blfs/7.6/icedtea-2.5.2-fix_new_giflib-1.patch
http://www.linuxfromscratch.org/patches/blfs/7.6/icedtea-2.5.2-fix_tests-1.patch
Rhino Java Script
Download:
https://github.com/downloads/mozilla/rhino/rhino1_7R4.zip
Download MD5 sum:
ad67a3dff135e3a70f0c3528a2d6edf2
Download Size: 6.2 MB
openjdk-7-policytool.desktop
file)
An existing binary ( Java-1.7.0.65 or an earlier built version of this package), alsa-lib-1.0.28, apache-ant-1.9.4, Certificate Authority Certificates, cpio-2.11, Cups-1.7.5, GTK+-2.24.24, giflib-5.1.0, UnZip-6.0, Wget-1.15, Which-2.20, Xorg Libraries, and Zip-3.0
JUnit-4.11 and NSS-3.17
libxslt-1.1.28, lsb_release-1.4, Mercurial-3.1.1, MIT Kerberos V5-1.12.2, and Xorg-Server-1.16.0 (for the tests)
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/openjdk
The source build of OpenJDK requires apache-ant-1.9.4. You'll need to build that first to satisfy the circular dependency, and return to this section to continue building OpenJDK.
Unlike other packages in BLFS, the OpenJDK source packages are distributed in multiple downloads. Since the IcedTea build harness will be used to build OpenJDK, begin by extracting the IcedTea package and changing into the extracted directory.
The IcedTea OpenJDK
distribution requires that js.jar
(from the Rhino package) be in place
in order to provide a java-script implementation for the free
JDK. If you have not installed the js.jar file in another
way, do so with the following commands as the root
user:
unzip ../rhino1_7R4.zip && install -v -d -m755 /usr/share/java && install -v -m755 rhino1_7R4/*.jar /usr/share/java
As mentioned previously, OpenJDK is composed of several individual projects of the proprietary JDK that have been relicensed under an open source license. If you have already downloaded all of the individual components, place them into the source tree with the following commands:
cp -v ../corba.tar.bz2 . && cp -v ../hotspot.tar.bz2 . && cp -v ../jaxp.tar.bz2 . && cp -v ../jaxws.tar.bz2 . && cp -v ../jdk.tar.bz2 . && cp -v ../langtools.tar.bz2 . && cp -v ../openjdk.tar.bz2 .
Apply a patch to generate a valid cacerts file using the system CA certificates:
patch -Np1 -i ../icedtea-2.5.2-add_cacerts-1.patch
Apply a patch to replace fixed paths with ones appropriate for BLFS:
patch -Np1 -i ../icedtea-2.5.2-fixed_paths-1.patch
Apply a patch to adapt the code to the new giflib API:
patch -Np1 -i ../icedtea-2.5.2-fix_new_giflib-1.patch
Apply a patch to exclude known broken tests from the test suite:
patch -Np1 -i ../icedtea-2.5.2-fix_tests-1.patch
Before proceeding, you should ensure that your environment
is properly set for building OpenJDK. First, review the content of
the ANT_HOME
variable. Second,
the PATH
variable should contain
the paths to the java and ant executables. Last,
the CLASSPATH
variable should be
set as explained on the Java-1.7.0.65 and JUnit-4.11 pages.
Configure and build the package with the following commands (--with-pkgversion and --with-version-suffix values can be modified to fit user preferences):
unset JAVA_HOME && ./autogen.sh && ./configure --with-jdk-home=/opt/OpenJDK-1.7.0.65-bin \ --with-version-suffix=BLFS \ --enable-nss \ --disable-system-kerberos \ --with-parallel-jobs && make
If you have not installed the tarballs specified above, they will be automatically downloaded here.
To test the results, issue: make jtregcheck. The
included version of jtreg is
old, and the test suite is also very dependent on the host
system and the environment that it is run in. You should
expect to see anywhere between 40 and 100 failures in jdk
with up to 10 errors in the tests themselves. The majority of
the 6000+ tests should pass. The reason for the greatly
varying results is due to how stringent the testing
environment must be. Varying architectures, different
versions of dependent libraries, unexpected X Window
environment and window managers, the CA certificates used to
generate the cacerts
file, and
even any user input or power management or screen saver
interruptions during the testing can lead to various
failures. While the known broken tests have been removed,
with the fix_tests patch above, the graphics tests failures
cannot be pre-determined (short of removing them all). The
best bet for the minimal number of failures is to run the
test suite in a framebuffer on a different screen (Xvfb).
Even still, disk I/O can cause failures.
export DISPLAY=:20 && Xvfb :20 -screen 0 1x1x24 -ac& echo $!> Xvfb.pid && make -k jtregcheck && kill -9 `cat Xvfb.pid` && unset DISPLAY && rm -f Xvfb.pid
Install the package with the following commands as the
root
user:
chmod 0644 openjdk.build/j2sdk-image/lib/sa-jdi.jar && cp -R openjdk.build/j2sdk-image /opt/OpenJDK-1.7.0.65 && chown -R root:root /opt/OpenJDK-1.7.0.65
If desired, you may install a .desktop file corresponding to an entry in a desktop menu for policytool. First, you need to obtain an icon from IcedTea-Web-1.5.1:
tar -xf ../icedtea-web-1.5.1.tar.gz \ icedtea-web-1.5.1/javaws.png \ --strip-components=1
Now, as root
user:
mkdir -pv /usr/share/applications &&
cat > /usr/share/applications/openjdk-7-policytool.desktop << "EOF" &&
[Desktop Entry]
Name=OpenJDK Java 7 Policy Tool
Name[pt_BR]=OpenJDK Java 7 - Ferramenta de Política
Comment=OpenJDK Java 7 Policy Tool
Comment[pt_BR]=OpenJDK Java 7 - Ferramenta de Política
Exec=/opt/jdk/bin/policytool
Terminal=false
Type=Application
Icon=javaws
Categories=Settings;
EOF
install -v -Dm0644 javaws.png /usr/share/pixmaps/javaws.png
The choice of pt_BR is just an example. You can add any translation by adding lines corresponding to your locale, e.g. for fr_FR, “Name[fr_FR]=” and “Comment[fr_FR]=” with the appropriate text as values.
./autogen.sh:
This command forces rebuilding of auto-generated files to
account for new options added to configure
.
--with-jdk-home
: This
switch provides the location of the temporary JDK.
--with-pkgversion
: This switch
can be used to modify the version string in addition to
"IcedTea".
--with-version-suffix
: This
switch appends the given text to the JDK version string.
--enable-nss
: Enable
inclusion of NSS security provider.
--disable-system-kerberos
:
Remove this switch, if MIT Kerberos V5-1.12.2 is
installed.
--with-parallel-jobs
:
Allows to set the number of jobs for make equal to the number of
processors plus one. Note that the default is 2 if this
option is not specified. You have to explicitely set
--with-parallel-jobs=1
to disable
parallel jobs. The SBU given above are with parallel jobs
disabled.
chmod -v 0644 ...sa-jdi.jar: Fix permissions in a generated file so all users can access it.
There are now two OpenJDK
SDKs installed in /opt
. You
should decide on which one you would like to use as the
default. For example if you decide to use the precompiled
OpenJDK, do the following
as the root
user:
ln -v -nsf OpenJDK-1.7.0.65-bin /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 openjdk.sh
shell startup file to the /etc/profile.d
directory with the
following commands as the root
user:
cat > /etc/profile.d/openjdk.sh << "EOF"
# Begin /etc/profile.d/openjdk.sh
# Set JAVA_HOME directory
JAVA_HOME=/opt/jdk
# Set ANT_HOME directory
ANT_HOME=/opt/ant
# Adjust PATH
pathappend $JAVA_HOME/bin PATH
pathappend $ANT_HOME/bin PATH
# Auto Java CLASSPATH
# Copy jar files to, or create symlinks in this directory
AUTO_CLASSPATH_DIR=/usr/share/java
pathprepend . CLASSPATH
for dir in `find ${AUTO_CLASSPATH_DIR} -type d 2>/dev/null`; do
pathappend $dir CLASSPATH
done
for jar in `find ${AUTO_CLASSPATH_DIR} -name "*.jar" 2>/dev/null`; do
pathappend $jar CLASSPATH
done
export JAVA_HOME ANT_HOME CLASSPATH
unset AUTO_CLASSPATH_DIR dir jar
# End /etc/profile.d/openjdk.sh
EOF
Finally, add the man pages to man_db's configuration. As the
root
user:
cat >> /etc/profile.d/extrapaths.sh << "EOF" && # Begin Java additionpathappend /opt/jdk/man MANPATH # End Java addition
EOF cat >> /etc/man_db.conf << "EOF" &&# Begin Java addition MANDATORY_MANPATH /opt/jdk/man MANPATH_MAP /opt/jdk/bin /opt/jdk/man MANDB_MAP /opt/jdk/man /var/cache/man/jdk # End Java addition
EOF mandb -c /opt/jdk/man
To test if the man pages are correctly installed, issue source /etc/profile and man java to display the respective man page.
Use the following procedure to check if the cacerts
file was successfully installed
during the OpenJDK build. Also, if the Certificate Authority
Certificates have been updated, the following
instructions will generate a new JRE cacerts
file. First, check if the
cacerts
have been
successfully installed:
cd /opt/jdk bin/keytool -list -keystore jre/lib/security/cacerts
At the prompt "Enter keystore password:", press the "Enter"
key if there is no keystore password defined. If the
cacerts
were installed
correctly, you will see a list of the certificates with
related information for each one. If not, you need to
manually install them. First, generate the mkcacerts script as the
root
user:
cat > /opt/jdk/bin/mkcacerts << "EOF"
#!/bin/sh
# Simple script to extract x509 certificates and create a JRE cacerts file.
function get_args()
{
if test -z "${1}" ; then
showhelp
exit 1
fi
while test -n "${1}" ; do
case "${1}" in
-f | --cafile)
check_arg $1 $2
CAFILE="${2}"
shift 2
;;
-d | --cadir)
check_arg $1 $2
CADIR="${2}"
shift 2
;;
-o | --outfile)
check_arg $1 $2
OUTFILE="${2}"
shift 2
;;
-k | --keytool)
check_arg $1 $2
KEYTOOL="${2}"
shift 2
;;
-s | --openssl)
check_arg $1 $2
OPENSSL="${2}"
shift 2
;;
-h | --help)
showhelp
exit 0
;;
*)
showhelp
exit 1
;;
esac
done
}
function check_arg()
{
echo "${2}" | grep -v "^-" > /dev/null
if [ -z "$?" -o ! -n "$2" ]; then
echo "Error: $1 requires a valid argument."
exit 1
fi
}
# The date binary is not reliable on 32bit systems for dates after 2038
function mydate()
{
local y=$( echo $1 | cut -d" " -f4 )
local M=$( echo $1 | cut -d" " -f1 )
local d=$( echo $1 | cut -d" " -f2 )
local m
if [ ${d} -lt 10 ]; then d="0${d}"; fi
case $M in
Jan) m="01";;
Feb) m="02";;
Mar) m="03";;
Apr) m="04";;
May) m="05";;
Jun) m="06";;
Jul) m="07";;
Aug) m="08";;
Sep) m="09";;
Oct) m="10";;
Nov) m="11";;
Dec) m="12";;
esac
certdate="${y}${m}${d}"
}
function showhelp()
{
echo "`basename ${0}` creates a valid cacerts file for use with IcedTea."
echo ""
echo " -f --cafile The path to a file containing PEM"
echo " formated CA certificates. May not be"
echo " used with -d/--cadir."
echo ""
echo " -d --cadir The path to a directory of PEM formatted"
echo " CA certificates. May not be used with"
echo " -f/--cafile."
echo ""
echo " -o --outfile The path to the output file."
echo ""
echo " -k --keytool The path to the java keytool utility."
echo ""
echo " -s --openssl The path to the openssl utility."
echo ""
echo " -h --help Show this help message and exit."
echo ""
echo ""
}
# Initialize empty variables so that the shell does not pollute the script
CAFILE=""
CADIR=""
OUTFILE=""
OPENSSL=""
KEYTOOL=""
certdate=""
date=""
today=$( date +%Y%m%d )
# Process command line arguments
get_args ${@}
# Handle common errors
if test "${CAFILE}x" == "x" -a "${CADIR}x" == "x" ; then
echo "ERROR! You must provide an x509 certificate store!"
echo "\'$(basename ${0}) --help\' for more info."
echo ""
exit 1
fi
if test "${CAFILE}x" != "x" -a "${CADIR}x" != "x" ; then
echo "ERROR! You cannot provide two x509 certificate stores!"
echo "\'$(basename ${0}) --help\' for more info."
echo ""
exit 1
fi
if test "${KEYTOOL}x" == "x" ; then
echo "ERROR! You must provide a valid keytool program!"
echo "\'$(basename ${0}) --help\' for more info."
echo ""
exit 1
fi
if test "${OPENSSL}x" == "x" ; then
echo "ERROR! You must provide a valid path to openssl!"
echo "\'$(basename ${0}) --help\' for more info."
echo ""
exit 1
fi
if test "${OUTFILE}x" == "x" ; then
echo "ERROR! You must provide a valid output file!"
echo "\'$(basename ${0}) --help\' for more info."
echo ""
exit 1
fi
# Get on with the work
# If using a CAFILE, split it into individual files in a temp directory
if test "${CAFILE}x" != "x" ; then
TEMPDIR=`mktemp -d`
CADIR="${TEMPDIR}"
# Get a list of staring lines for each cert
CERTLIST=`grep -n "^-----BEGIN" "${CAFILE}" | cut -d ":" -f 1`
# Get a list of ending lines for each cert
ENDCERTLIST=`grep -n "^-----END" "${CAFILE}" | cut -d ":" -f 1`
# Start a loop
for certbegin in `echo "${CERTLIST}"` ; do
for certend in `echo "${ENDCERTLIST}"` ; do
if test "${certend}" -gt "${certbegin}"; then
break
fi
done
sed -n "${certbegin},${certend}p" "${CAFILE}" > "${CADIR}/${certbegin}.pem"
keyhash=`${OPENSSL} x509 -noout -in "${CADIR}/${certbegin}.pem" -hash`
echo "Generated PEM file with hash: ${keyhash}."
done
fi
# Write the output file
for cert in `find "${CADIR}" -type f -name "*.pem" -o -name "*.crt"`
do
# Make sure the certificate date is valid...
date=$( ${OPENSSL} x509 -enddate -in "${cert}" -noout | sed 's/^notAfter=//' )
mydate "${date}"
if test "${certdate}" -lt "${today}" ; then
echo "${cert} expired on ${certdate}! Skipping..."
unset date certdate
continue
fi
unset date certdate
ls "${cert}"
tempfile=`mktemp`
certbegin=`grep -n "^-----BEGIN" "${cert}" | cut -d ":" -f 1`
certend=`grep -n "^-----END" "${cert}" | cut -d ":" -f 1`
sed -n "${certbegin},${certend}p" "${cert}" > "${tempfile}"
echo yes | env LC_ALL=C "${KEYTOOL}" -import \
-alias `basename "${cert}"` \
-keystore "${OUTFILE}" \
-storepass 'changeit' \
-file "${tempfile}"
rm "${tempfile}"
done
if test "${TEMPDIR}x" != "x" ; then
rm -rf "${TEMPDIR}"
fi
exit 0
EOF
chmod -c 0755 /opt/jdk/bin/mkcacerts
Doing a very large copy/paste directly to a terminal may result in a corrupted file. Copying to an editor may overcome this issue.
If you need to generate a cacerts
file, and there is already one in
/opt/jdk/jre/lib/security
, it
is better to make a backup. Then, you can create a new one,
as the root
user:
/opt/jdk/bin/mkcacerts \ -d "/etc/ssl/certs/" \ -k "/opt/jdk/bin/keytool" \ -s "/usr/bin/openssl" \ -o "/opt/jdk/jre/lib/security/cacerts"
allows you to run applets outside of a web browser. |
|
is an annotation processing tool. |
|
checks a specified jar file for title and version conflicts with any extensions installed in the OpenJDK software. |
|
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. |
|
is a utility to send diagnostic command requests to a running Java Virtual Machine. |
|
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 web browser. |
|
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. |
|
is a simple script to extract x509 certificates and create a JRE cacerts file using keytool. |
|
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 2014-09-21 01:03:52 -0700
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 Point-to-Point Protocol. It is a data link protocol commonly used for establishing 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.
dhcpcd is an implementation of the DHCP client specified in RFC2131. A DHCP client is useful for connecting your computer to a network which uses DHCP to assign network addresses. dhcpcd strives to be a fully featured, yet very lightweight DHCP client.
This package is known to build and work properly using an LFS-7.6 platform.
Download (HTTP): http://roy.marples.name/downloads/dhcpcd/dhcpcd-6.4.3.tar.bz2
Download MD5 sum: b22005c131e7108ecf598b6a4ac091eb
Download size: 148 KB
Estimated disk space required: 2.2 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:
./configure --libexecdir=/lib/dhcpcd \ --dbdir=/var/tmp && make
This package does not come with a test suite.
Now, as the root
user:
make install
--libexecdir=/lib/dhcpcd
: The
default /libexec
is not
FHS-compliant. Since this directory may need to be available
early in the boot, /usr/libexec
cannot be used either.
--dbdir=/var/tmp
: The
default /var/lib
is not
FHS-compliant
--with-hook=...
: You can
optionally install more hooks, for example to install some
configuration files such as ntp.conf
. The set of hooks is in the
dhcpcd-hooks
directory in the
build tree.
To configure dhcpcd, you need to first
install the network service script, /lib/services/dhcpcd
included in the
blfs-bootscripts-20140919 package
(as user root
):
make install-service-dhcpcd
Whenever dhcpcd configures or shuts down a network interface, it executes hook scripts. For more details about those scripts, see the dhcpcd-run-hooks and dhcpcd man pages.
Finally,
as the root
user create the
/etc/sysconfig/ifconfig.eth0
configuration file using the following commands. Adjust
appropriately for additional interfaces:
cat > /etc/sysconfig/ifconfig.eth0 << "EOF"
ONBOOT="yes"
IFACE="eth0"
SERVICE="dhcpcd"
DHCP_START="-b -q <insert appropriate start options here>
"
DHCP_STOP="-k <insert additional stop options here>
"
EOF
For more information on the appropriate DHCP_START
and DHCP_STOP
values, examine the man page for
dhcpcd.
The
default behavior of dhcpcd sets the
hostname and mtu settings. It also overwrites
/etc/resolv.conf
and
/etc/ntp.conf
. These
modifications to system files and settings on system
configuration files are done by hooks which are stored in
/lib/dhcpcd/dhcpcd-hooks
.
Setup dhcpcd by removing or
adding hooks from/to that directory. The execution of
hooks can be disabled by using the --nohook
(-C
)
command line option or by the nohook
option in the /etc/dhcpcd.conf
file.
Review the dhcpcd man page for
switches to add to the DHCP_START
value.
Although
not usual, it is possible that you need to configure
dhcpcd to use a fixed ip.
Here, we give an example. As the root
user create the /etc/sysconfig/ifconfig.eth0
configuration file using the following commands. Adjust
appropriately for additional interfaces and for the actual
ip and router you need:
cat > /etc/sysconfig/ifconfig.eth0 << "EOF"
ONBOOT="yes"
IFACE="eth0"
SERVICE="dhcpcd"
DHCP_START="-b -q -S ip_address=192.168.0.10/24 -S routers=192.168.0.1"
DHCP_STOP="-k"
EOF
You can either use DNS servers in /etc/resolv.conf
from another system,
your preferred servers, or just the example /etc/resolv.conf.head
file below as is:
cat > /etc/resolv.conf.head << "EOF"
# OpenDNS servers
nameserver 208.67.222.222
nameserver 208.67.220.220
EOF
Last updated on 2014-09-17 21:56:07 -0700
The ISC DHCP package contains both the client and server programs for DHCP. dhclient (the client) is used for connecting to a network which uses DHCP to assign network addresses. dhcpd (the server) is used for assigning network addresses on private networks.
This package is known to build and work properly using an LFS-7.6 platform.
Download (FTP): ftp://ftp.isc.org/isc/dhcp/4.3.1/dhcp-4.3.1.tar.gz
Download MD5 sum: b3a42ece3c7f2cd2e74a3e12ca881d20
Download size: 8.6 MB
Estimated disk space required: 109 MB
Estimated build time: 0.4 SBU
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/dhcp
You must have Packet Socket support (Networking Support ⇒ Networking Options ⇒ Packet Socket) compiled into the kernel. If you do not have IPv6 support (Networking Support ⇒ Networking Options ⇒ The IPv6 Protocol) compiled in, then you must use the missing_ipv6 patch.
If you have not compiled IPv6 support into the kernel, apply the missing_ipv6 patch:
patch -Np1 -i ../dhcp-4.3.1-missing_ipv6-1.patch
Be careful with the instructions below. The single and double quotes are important beecause the defined variables are used verbatim in the code.
Install ISC DHCP by running the following commands:
patch -Np1 -i ../dhcp-4.3.1-client_script-1.patch && CFLAGS="-D_PATH_DHCLIENT_SCRIPT='\"/sbin/dhclient-script\"' \ -D_PATH_DHCPD_CONF='\"/etc/dhcp/dhcpd.conf\"' \ -D_PATH_DHCLIENT_CONF='\"/etc/dhcp/dhclient.conf\"'" \ ./configure --prefix=/usr \ --sysconfdir=/etc/dhcp \ --localstatedir=/var \ --with-srv-lease-file=/var/lib/dhcpd/dhcpd.leases \ --with-srv6-lease-file=/var/lib/dhcpd/dhcpd6.leases \ --with-cli-lease-file=/var/lib/dhclient/dhclient.leases \ --with-cli6-lease-file=/var/lib/dhclient/dhclient6.leases && make
To test the results, issue: make check
If you only want to install the ISC
DHCP client, issue the following commands as the
root
user:
make -C client install && mv -v /usr/sbin/dhclient /sbin && install -v -m755 client/scripts/linux /sbin/dhclient-script
Skip to the section called “Client Configuration” in order to configure the client
If you only want to install the ISC
DHCP server, issue the following command as the
root
user:
make -C server install
Skip to the section called “Server Configuration” in order to configure the server.
Alternatively, you can install whole package which includes
the client, server, relay, static libraries and development
headers by running the following commands as the root
user:
make install && mv -v /usr/sbin/dhclient /sbin && install -v -m755 client/scripts/linux /sbin/dhclient-script
Create basic /etc/dhcp/dhclient.conf
by running the
following command as the root
user:
cat > /etc/dhcp/dhclient.conf << "EOF"
# Begin /etc/dhcp/dhclient.conf
#
# Basic dhclient.conf(5)
#prepend domain-name-servers 127.0.0.1;
request subnet-mask, broadcast-address, time-offset, routers,
domain-name, domain-name-servers, domain-search, host-name,
netbios-name-servers, netbios-scope, interface-mtu,
ntp-servers;
require subnet-mask, domain-name-servers;
#timeout 60;
#retry 60;
#reboot 10;
#select-timeout 5;
#initial-interval 2;
# End /etc/dhcp/dhclient.conf
EOF
See man 5 dhclient.conf for additional options.
Now create the /var/lib/dhclient
directory which will
contain DHCP Client leases by running the following command
as the root
user:
install -v -dm 755 /var/lib/dhclient
At this point you can test if dhclient is behaving as
expected by running the following command as the
root
user:
dhclient <eth0>
Replace <eth0>
with your
desired interface. If you want more verbose output, add the
-v parameter
to the command above.
If
you want to configure network interfaces at boot using
dhclient, you
need to install the /lib/services/dhclient
script included in
blfs-bootscripts-20140919 package:
make install-service-dhclient
Next, create the /etc/sysconfig/ifconfig.eth0
configuration file with the following commands as the
root
user:
cat > /etc/sysconfig/ifconfig.eth0 << "EOF"
ONBOOT="yes"
IFACE="eth0"
SERVICE="dhclient"
DHCP_START=""
DHCP_STOP=""
# 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
Adjust the file to suit your needs.
For more information on the appropriate DHCP_START
and DHCP_STOP
values see man 8 dhclient.
Note that you only need the DHCP server if you want to issue LAN addresses over your network. The DHCP client doesn't need the server in order to function properly.
Start with creating /etc/dhcp/dhcpd.conf
by running the
following command as the root
user:
cat > /etc/dhcp/dhcpd.conf << "EOF"
# Begin /etc/dhcp/dhcpd.conf
#
# Example dhcpd.conf(5)
# Use this to enble / disable dynamic dns updates globally.
ddns-update-style none;
# option definitions common to all supported networks...
option domain-name "example.org";
option domain-name-servers ns1.example.org, ns2.example.org;
default-lease-time 600;
max-lease-time 7200;
# This is a very basic subnet declaration.
subnet 10.254.239.0 netmask 255.255.255.224 {
range 10.254.239.10 10.254.239.20;
option routers rtr-239-0-1.example.org, rtr-239-0-2.example.org;
}
# End /etc/dhcp/dhcpd.conf
EOF
Adjust the file to suit your needs. See man 5 dhcpd.conf for additional options.
Now create the /var/lib/dhcpd
directory which will contain DHCP Server leases by running
the following command as the root
user:
install -v -dm 755 /var/lib/dhcpd
If you want to start the DHCP Server at boot, install the
/etc/rc.d/init.d/dhcpd
init
script included in the blfs-bootscripts-20140919
package:
make install-dhcpd
You will need to edit the /etc/sysconfig/dhcpd
in order to set the
interface on which dhcpd will serve the DHCP
requests.
is the implementation of the DHCP client. |
|
is used by dhclient to (re)configure interfaces. It can make extra changes by invoking custom dhclient-{entry,exit}-hooks. |
|
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 2014-09-20 19:22:09 -0700
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.
The bridge-utils package contains a utility needed to create and manage bridge devices. This is useful in setting up networks for a hosted virtual machine (VM).
This package is known to build and work properly using an LFS-7.6 platform.
Download (HTTP): http://sourceforge.net/projects/bridge/files/bridge/bridge-utils-1.5.tar.gz
Download MD5 sum: ec7b381160b340648dede58c31bb2238
Download size: 36 KB
Estimated disk space required: 1 MB
Estimated build time: less than 0.1 SBU
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/bridge
Enable the following options in the kernel configuration and recompile the kernel if necessary:
Networking support: Y
Networking options:
802.1d Ethernet Bridging: M or Y [CONFIG_BRIDGE]
Install bridge-utils by running the following commands:
patch -Np1 -i ../bridge-utils-1.5-linux_3.8_fix-1.patch && autoconf -o configure configure.in && ./configure --prefix=/usr && make
Testing the results requires running the six shell scripts in
the tools/
directory. Two of
the tests require two ethernet ports. Some tests will not
preserve the current network configuration. See tests/README
for details.
Now, as the root
user:
make install
To automate bridge creation and configuration, install the
/lib/services/etc/bridge
service script included in the blfs-bootscripts-20140919 package.
make install-service-bridge
The bridge
script depends
on the commands /sbin/ifup and
/sbin/ifdown and the
service script ipv4-static from the
LFS bootscripts
dated January 27, 2012 or later.
The following configuration file will create a bridge device at boot time and attach the eth0 device to it. If more than one device is desired, use a space separated list of INTERFACE_COMPONENTS. This configuration is useful when planning to run a virtual machine such as kvm/qemu.
Other SERVICE combinations are possible, for example, SERVICES="bridge dhcp". In that case, the address parameters are not needed, but do not interfere if present. The bridge service may also be used alone, but will require additional subsequent configuration.
Do not run a parallel configuration for a device in the
INTERFACE_COMPONENTS list. For instance, in the example
below, do not configure /etc/sysconfig/ifconfig.eth0
to run at
boot time. The command ifdown br0 followed by
command ifup
eth0 will work, but don't try to have
both up at the same time.
cat > /etc/sysconfig/ifconfig.br0 << "EOF"
ONBOOT=yes
IFACE=br0
SERVICE="bridge ipv4-static" # Space separated
IP=192.168.1.32
GATEWAY=192.168.1.1
PREFIX=24
BROADCAST=192.168.1.255
CHECK_LINK=no # Don't check before bridge is created
STP=no # Spanning tree protocol, default no
INTERFACE_COMPONENTS="eth0" # Add to IFACE, space separated devices
IP_FORWARD=true
EOF
All addresses should be changed to meet your circumstance.
Last updated on 2014-09-20 19:22:09 -0700
The cifs-utils provides a means for mounting SMB/CIFS shares on a Linux system.
This package is known to build and work properly using an LFS-7.6 platform.
Download (HTTP): http://ftp.samba.org/pub/linux-cifs/cifs-utils/cifs-utils-6.4.tar.bz2
Download (FTP): ftp://ftp.samba.org/pub/linux-cifs/cifs-utils/cifs-utils-6.4.tar.bz2
Download MD5 sum: b7d75b67fd3987952896d27256c7293d
Download size: 384 KB
Estimated disk space required: 3.1 MB
Estimated build time: less than 0.1 SBU
keyutils-1.5.9, Linux-PAM-1.1.8, MIT Kerberos V5-1.12.2, Talloc-2.1.1, Samba-4.1.11, and libcap-ng or libcap-2.24 with PAM
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/cifsutils
Enable the following options in the kernel configuration and recompile the kernel if necessary:
File systems --->
Network File Systems --->
CIFS support (advanced network filesystem, SMBFS successor): Y or M [CONFIG_CIFS]
Install cifs-utils by running the following commands:
./configure --prefix=/usr \ --disable-pam \ --disable-systemd && make
This package does not come with a test suite.
Now, as the root
user:
make install
--disable-pam
: Do not
build PAM support. Remove it and use --with-pamdir
(see below), if Linux-PAM-1.1.8
is installed and you wish PAM support.
--disable-systemd
:
Disable systemd specific behavior for mount.cifs. Remove it for
systems running with systemd.
--with-pamdir=/lib/security
:
Install the PAM module in /lib/security
.
is a userspace helper program for the linux CIFS client filesystem. There are a number of activities that the kernel cannot easily do itself. This program is a callout program that does these things for the kernel and then returns the result. It is not intended to be run from the command-line. |
|
is a userspace helper program for the linux CIFS client filesystem. It is intended to be run when the kernel calls request-key for a particular key type. It is not intended to be run from the command-line. |
|
is a tool for managing credentials (username and password) for the purpose of establishing sessions in multiuser mounts. |
|
is a userspace helper to display an ACL in a security descriptor for Common Internet File System (CIFS). |
|
mounts a Linux CIFS filesystem. It is usually invoked indirectly by the mount(8) command when using the "-t cifs" option. |
|
is intended to alter an ACL of a security descriptor for a file system object. |
Last updated on 2014-09-20 19:22:09 -0700
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.
This package is known to build and work properly using an LFS-7.6 platform.
Download (FTP): ftp://ftp.ncftp.com/ncftp/ncftp-3.2.5-src.tar.bz2
Download MD5 sum: b05c7a6d5269c04891f02f43d4312b30
Download size: 452 KB
Estimated disk space required: 6.4 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 --sysconfdir=/etc && 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 --sysconfdir=/etc && 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 2014-09-20 19:22:09 -0700
The Net-tools package is a collection of programs for controlling the network subsystem of the Linux kernel.
This package is known to build and work properly using an LFS-7.6 platform.
Download (HTTP): http://anduin.linuxfromscratch.org/sources/BLFS/svn/n/net-tools-CVS_20101030.tar.gz
Download (FTP): ftp://anduin.linuxfromscratch.org/BLFS/svn/n/net-tools-CVS_20101030.tar.gz
Download MD5 sum: 6be14ed473cacdd68edeaa9605adc469
Download size: 222 KB
Estimated disk space required: 7.0 MB
Estimated build time: less than 0.1 SBU
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/net-tools
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.
This package has several unneeded protocols and hardware device specific functions that are obsolete. To only build the minimum needed for your system, skip the yes command and answer each question interactively. The minimum needed options are 'UNIX protocol family' and 'INET (TCP/IP) protocol family'.
The patch below cleans up the installation so that it does not overwrite the ifconfig and hostname programs that were installed in LFS.
Install Net-tools by running the following commands:
patch -Np1 -i ../net-tools-CVS_20101030-remove_dups-1.patch && yes "" | make config && 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.
is used to manipulate the kernel's ARP cache, usually to add or delete an entry, or to dump the entire cache. |
|
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. |
|
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. |
Last updated on 2014-09-19 13:13:19 -0700
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.
This package is known to build and work properly using an LFS-7.6 platform.
Download (HTTP): http://downloads.sourceforge.net/nfs/nfs-utils-1.3.0.tar.bz2
Download MD5 sum: 3ac3726eda563946d1f44ac3e5b61d56
Download size: 763 KB
Estimated disk space required: 16 MB
Estimated build time: 0.2 SBU
libevent-2.0.21, SQLite-3.8.6 and libnfsidmap (for NFSv4 support), MIT Kerberos V5-1.12.2 or libgssapi, and librpcsecgss (for GSS and RPC security support) and libcap-2.24 with PAM
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 client support: Y or M
NFS server support: Y or M
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:
patch -Np1 -i ../nfs-utils-1.3.0-gcc_4_9-1.patch && ./configure --prefix=/usr \ --sysconfdir=/etc \ --without-tcp-wrappers \ --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.
To test the results, issue: make check.
Now, as the root
user:
make install
--without-tcp-wrappers
: This
option is needed because TCP Wrappers is not in BLFS.
--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/24>
(rw,subtree_check,anonuid=99,anongid=99)
Install the /etc/rc.d/init.d/nfs-server
init script
included in the blfs-bootscripts-20140919
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
The above parameters may be optionally placed in
/etc/sysconfig/rc.site
.
/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 0 0<server-name>
:/usr /usr nfs ro,_netdev 0 0
The options which can be used are specified in man 5 nfs. If both the
client and server are running recent versions of linux,
most of the options will be negotiated. You can specify
either rw
or ro
, _netdev
if the filesystem is to be automatically mounted at boot,
or noauto
(and perhaps
user
) for other filesystems.
If the fileserver is not running a recent version of linux, you may need to specifiy other options.
If you are using systemd, you may need to enable autofs v4
in your kernel, and add the option comment=systemd.automount
. Some machines
need this, because systemd tries to mount the external fs's
before the network is up, others do not need it. An
alternative is for root
to
run mount -a.
The following boot script is not required if the nfs-server script is installed.
Install the /etc/rc.d/init.d/nfs-client
init script
included in the blfs-bootscripts-20140919
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. |
|
displays NFS client per-mount statistics. |
|
Used to mount a network share using NFS |
|
Used to mount a network share using NFSv4 |
|
Report input/output statistics for network filesystems. |
|
displays statistics kept about NFS client and server activity. |
|
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 2014-09-09 14:11:38 -0700
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-20140919 package.
make install-netfs
Last updated on 2011-11-03 16:05:47 -0700
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.
This package is known to build and work properly using an LFS-7.6 platform.
Download (HTTP): http://www.eecis.udel.edu/~ntp/ntp_spool/ntp4/ntp-4.2/ntp-4.2.6p5.tar.gz
Download (FTP): ftp://mirror.ovh.net/gentoo-distfiles/distfiles/ntp-4.2.6p5.tar.gz
Download MD5 sum: 00df80a84ec9528fcfb09498075525bc
Download size: 4.1 MB
Estimated disk space required: 48 MB
Estimated build time: 0.5 SBU
libcap-2.24 with PAM, OpenSSL-1.0.1i, and libedit
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/ntp
There should be a dedicated user and group to take control of
the ntpd daemon
after it is started. Issue the following commands as the
root
user:
groupadd -g 87 ntp && useradd -c "Network Time Protocol" -d /var/lib/ntp -u 87 \ -g ntp -s /bin/false ntp
Install ntp by running the following commands:
./configure --prefix=/usr \ --sysconfdir=/etc \ --enable-linuxcaps \ --with-binsubdir=sbin \ --with-lineeditlibs=readline && make
To test the results, issue: make check.
Now, as the root
user:
make install && install -v -o ntp -g ntp -d /var/lib/ntp && install -v -m755 -d /usr/share/doc/ntp-4.2.6p5 && cp -v -R html/* /usr/share/doc/ntp-4.2.6p5/
--with-binsubdir=sbin
: This
parameter places the administrative programs in /usr/sbin
.
--enable-linuxcaps
:
ntpd is run as user ntp, so use Linux capabilities for
non-root clock control.
--with-lineeditlibs=readline
:
This option enables Readline
support for ntpdc and ntpq programs. If omitted,
libedit will be used if
installed, otherwise no readline capabilites will be
compiled.
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"
# 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/lib/ntp/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-20140919 package.
make install-ntpd
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 2014-09-09 14:11:38 -0700
The rpcbind program is a replacement for portmap. It is required for import or export of Network File System (NFS) shared directories.
This package is known to build and work properly using an LFS-7.6 platform.
Download (HTTP): http://downloads.sourceforge.net/rpcbind/rpcbind-0.2.1.tar.bz2
Download MD5 sum: 0a5f9c2142af814c55d957aaab3bcc68
Download size: 109 KB
Estimated disk space required: 1.9 MB
Estimated build time: less than 0.1 SBU
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/rpcbind
In order to get rpcbind to work properly, first fix the package to use correct service name:
sed -i "/servname/s:rpcbind:sunrpc:" src/rpcbind.c && sed -i "/error = getaddrinfo/s:rpcbind:sunrpc:" src/rpcinfo.c
Install rpcbind by running the following commands:
./configure --prefix=/usr --bindir=/sbin --with-rpcuser=root && make
This package does not come with a test suite.
Now, as the root
user:
make install
--with-rpcuser=root: This works around an error in the configure script.
Install the /etc/rc.d/init.d/rpcbind
init script
included in the blfs-bootscripts-20140919 package.
make install-rpcbind
Last updated on 2014-09-09 14:11:38 -0700
The rsync package contains the rsync utility. This is useful for synchronizing large file archives over a network.
This package is known to build and work properly using an LFS-7.6 platform.
Download (HTTP): http://samba.org/ftp/rsync/src/rsync-3.1.1.tar.gz
Download (FTP): ftp://ftp.samba.org/pub/rsync/src/rsync-3.1.1.tar.gz
Download MD5 sum: 43bd6676f0b404326eee2d63be3cdcfe
Download size: 869 KB
Estimated disk space required: 9.0 MB
Estimated build time: 0.3 SBU
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 --without-included-zlib && make
If you have Doxygen-1.8.8 installed and wish to build HTML API documentation, issue doxygen.
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.1.1/api && install -v -m644 dox/html/* /usr/share/doc/rsync-3.1.1/api
--without-included-zlib
: This
switch enables compilation with system-installed zlib
library.
For client access to remote files, you may need to install the OpenSSH-6.6p1 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-20140919 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 2014-09-09 16:09:42 -0700
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 Domain Controller replacement, a file/print server acting as a member of a Windows Active Directory domain and a NetBIOS (rfc1001/1002) nameserver (which among other things provides LAN browsing support).
This package is known to build and work properly using an LFS-7.6 platform.
Download (HTTP): http://ftp.samba.org/pub/samba/stable/samba-4.1.11.tar.gz
Download (FTP): ftp://ftp.samba.org/pub/samba/stable/samba-4.1.11.tar.gz
Download MD5 sum: d7377e7247ad16f6b15363727b91b761
Download size: 19 MB
Estimated disk space required: 415 MB (additional 396 MB for the quicktest, reputedly up to 500 MB additional for all tests)
Estimated build time: 6 SBU (additional 4.3 SBU for the quicktest, reputedly up to 110 SBU to run all tests)
libxslt-1.1.28 (for documentation)
Avahi-0.6.31, Cups-1.7.5, libcap-2.24 with PAM, Linux-PAM-1.1.8, MIT Kerberos V5-1.12.2, OpenLDAP-2.4.39, popt-1.16, Valgrind-3.10.0 (optionally used by the test suite), xfsprogs-3.2.1, Gamin, ctdb, libunwind, OpenAFS, and tdb
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/samba4
If you wish to run the test suite after the binaries are
built, you must add the --enable-socket-wrapper
and --enable-selftest
parameters 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:
./configure \ --prefix=/usr \ --sysconfdir=/etc \ --localstatedir=/var \ --with-piddir=/run/samba \ --with-pammodulesdir=/lib/security \ --without-systemd \ --enable-fhs \ --enable-nss-wrapper && make
According to Samba
developers, the limitation to 108 characters of the path
length of a unix named pipe socket may be the cause of
errors, so that over 1/3 of the tests might fail. For this
reason, the switch --with-selftest-prefix=/tmp/quick
(or another
path with small number of characters) can be used with
configure. Even so, the “samba3.raw.eas
”
test may fail, apparently for the same reason. If one
quicktest fails, it can be disabled. For example,
“samba3.raw.eas
”
may be disabled with the following command:
sed -i "/samba3.blackbox.failure.failure/i \^samba3.raw.eas" selftest/knownfail
To test the results, as the root
user, issue: make quicktest. There are
other targets (test, subunit-test) available, but take a very
long time (over 100 SBU).
Now, as the root
user:
make install && mv -v /usr/lib/libnss_win{s,bind}.so* /lib && ln -v -sf ../../lib/libnss_winbind.so.2 /usr/lib/libnss_winbind.so && ln -v -sf ../../lib/libnss_wins.so.2 /usr/lib/libnss_wins.so && install -v -m644 examples/smb.conf.default /etc/samba && mkdir -pv /etc/openldap/schema && install -v -m644 examples/LDAP/README \ /etc/openldap/schema/README.LDAP && install -v -m644 examples/LDAP/samba* \ /etc/openldap/schema && install -v -m755 examples/LDAP/{get*,ol*} \ /etc/openldap/schema && install -v -m755 -d /usr/share/doc/samba-4.1.11 && install -v -m644 lib/ntdb/doc/design.pdf \ /usr/share/doc/samba-4.1.11
--enable-fhs
: Assigns
all other file paths in a manner compliant with the
Filesystem Hierarchy Standard (FHS).
--enable-nss-wrapper
:
Builds the nss-wrapper library.
--without-systemd
:
Disable systemd integration,
which is not part of LFS/BLFS. If you use systemd, replace by --with-systemd
.
--enable-socket-wrapper
and
--enable-selftest
: These options
are required to run the test suite.
--with-selftest-prefix=SELFTEST_PREFIX
: This
option specify the test suite work directory (default=./st).
mv -v /usr/lib/libnss_win{s,bind}.so* /lib: The nss libraries are installed in /usr/lib by default. Move them to /lib.
ln -v -sf ../../lib/libnss_winbind.so.2 /usr/lib/libnss_winbind.so and ln -v -sf ../../lib/libnss_wins.so.2 /usr/lib/libnss_wins.so: These symlinks are required when applicates build against these libraries.
install -v -m644
examples/LDAP/* /etc/openldap/schema: These
commands are used to copy sample Samba schemas to the
OpenLDAP schema
directory.
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 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. For
security reasons, you may wish to define path =
/home/alice/shared-files
, assuming your user
name is alice
and you only want to share the files in that directory,
instead of your entire home. Then, replace homes
by shared-files
and change
also the “comment
” if used the
configuration file below or the /etc/samba/smb.conf.default
to create
yours.
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. 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. Such setups are advanced topics and cannot be adequately covered in BLFS. Many complete books have been written on these topics alone. Note that 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 http://www.samba.org/samba/docs/using_samba/toc.html
The Official Samba HOWTO and Reference Guide http://www.samba.org/samba/docs/man/Samba-HOWTO-Collection/
Samba-3 by Example http://www.samba.org/samba/docs/man/Samba-Guide/
For your convenience, boot scripts have been provided for
Samba. There are two
included in the blfs-bootscripts-20140919
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 winbindd
script to resolve names from
Windows clients, run:
make install-winbindd
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
|
|
is a command-line utility for adding records to an LDB database. |
|
is a command-line program for deleting LDB database records. |
|
allows you to edit LDB databases using your preferred editor. |
|
allows you to modify records in an LDB database. |
|
allows you to edit LDB databases using your preferred editor. |
|
searches an LDB database for records matching a specified expression. |
|
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. |
|
manipulates share ACL permissions on SMB file shares. |
|
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. |
|
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 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 |
|
queries a running winbindd daemon. |
|
resolves names from Windows NT servers. |
|
provides Name Service Switch API functions for resolving names from NT servers. |
|
provides API functions for Samba's implementation of the Windows Internet Naming Service. |
|
provides the API functions for the administration tools used for Samba and remote CIFS servers. |
|
provides the API functions for the Samba SMB client tools. |
|
provides API functions for accessing SMB share modes (locks etc.) |
|
provides API functions for Windows domain client services. |
Last updated on 2014-09-20 19:22:09 -0700
The Wget package contains a utility useful for non-interactive downloading of files from the Web.
This package is known to build and work properly using an LFS-7.6 platform.
Download (HTTP): http://ftp.gnu.org/gnu/wget/wget-1.15.tar.xz
Download (FTP): ftp://ftp.gnu.org/gnu/wget/wget-1.15.tar.xz
Download MD5 sum: 7a279d5ac5594919124d5526e7143e28
Download size: 1.7 MB
Estimated disk space required: 22 MB (additional 2 MB for the tests)
Estimated build time: 0.4 SBU (additional 0.1 SBU for the tests)
OpenSSL-1.0.1i or GnuTLS-3.3.7
libidn-1.29, PCRE-8.35, libwww-perl-6.08 (required for the majority of the test suite), and Dante
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/wget
Install Wget by running the following commands:
./configure --prefix=/usr \ --sysconfdir=/etc \ --with-ssl=openssl && make
To test the results, issue: make check.
Now, as the root
user:
make install
--sysconfdir=/etc
:
This relocates the configuration file from /usr/etc
to /etc
.
--with-ssl=openssl
:
This allows the program to work with OpenSSL-1.0.1i. It can
be omitted if GnuTLS-3.3.7 is found or the HTTPS
protocol is not needed.
/etc/wgetrc
and ~/.wgetrc
If you have installed the Certificate
Authority Certificates and you want Wget to use them, as the root
user:
echo ca-directory=/etc/ssl/certs >> /etc/wgetrc
Last updated on 2014-09-08 23:39:08 -0700
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.
This package is known to build and work properly using an LFS-7.6 platform.
Download (HTTP): http://www.hpl.hp.com/personal/Jean_Tourrilhes/Linux/wireless_tools.29.tar.gz
Download MD5 sum: e06c222e186f7cc013fd272d023710cb
Download size: 288 KB
Estimated disk space required: 2.0 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_MAN=/usr/share/man install
INSTALL_MAN=/usr/share/man: Install manual pages in /usr/share/man instead of /usr/man
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 2014-09-12 12:02:55 -0700
WPA Supplicant is a Wi-Fi Protected Access (WPA) client and IEEE 802.1X supplicant. It implements WPA key negotiation with a WPA Authenticator and Extensible Authentication Protocol (EAP) authentication with an Authentication Server. In addition, it controls the roaming and IEEE 802.11 authentication/association of the wireless LAN driver. This is useful for connecting to a password protected wireless access point.
This package is known to build and work properly using an LFS-7.6 platform.
Download (HTTP): http://hostap.epitest.fi/releases/wpa_supplicant-2.2.tar.gz
Download MD5 sum: 238e8e888bbd558e1a57e3eb28d1dd07
Download size: 2.3 MB
Estimated disk space required: 26 MB
Estimated build time: 0.2 SBU
libnl-3.2.25 and OpenSSL-1.0.1i
D-Bus-1.8.8, libxml2-2.9.1, and Qt-4.8.6
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/wpa_supplicant
Enable the following options in the kernel configuration as well as specific device drivers for your hardware and recompile the kernel if necessary:
Networking support --->
Wireless --->
cfg80211 - wireless configuration API: Y or M
cfg80211 wireless extensions compatibility: Y
Generic IEEE 802.11 Networking Stack (mac80211): Y or M
Device Drivers --->
Network device support --->
Wireless LAN --->
Select the options that support your hardware: lspci from pciutils-3.2.1 can be used to view your hardware configuration.
First you will need to create an initial configuration file
for the build process. You can read wpa_supplicant/README
and wpa_supplicant/defconfig
for the
explanation of the following options as well as other options
that can be used. Create a build configuration file that
should work for standard WiFi setups by running the following
command:
cat > wpa_supplicant/.config << "EOF"
CONFIG_BACKEND=file
CONFIG_CTRL_IFACE=y
CONFIG_DEBUG_FILE=y
CONFIG_DEBUG_SYSLOG=y
CONFIG_DEBUG_SYSLOG_FACILITY=LOG_DAEMON
CONFIG_DRIVER_NL80211=y
CONFIG_DRIVER_WEXT=y
CONFIG_DRIVER_WIRED=y
CONFIG_EAP_GTC=y
CONFIG_EAP_LEAP=y
CONFIG_EAP_MD5=y
CONFIG_EAP_MSCHAPV2=y
CONFIG_EAP_OTP=y
CONFIG_EAP_PEAP=y
CONFIG_EAP_TLS=y
CONFIG_EAP_TTLS=y
CONFIG_IEEE8021X_EAPOL=y
CONFIG_IPV6=y
CONFIG_LIBNL32=y
CONFIG_PEERKEY=y
CONFIG_PKCS12=y
CONFIG_READLINE=y
CONFIG_SMARTCARD=y
CONFIG_WPS=y
CFLAGS += -I/usr/include/libnl3
EOF
If you wish to use WPA Supplicant with NetworkManager-0.9.10.0, make sure that you have installed D-Bus-1.8.8 and libxml2-2.9.1, then add the following options to the WPA Supplicant build configuration file by running the following command:
cat >> wpa_supplicant/.config << "EOF"
CONFIG_CTRL_IFACE_DBUS=y
CONFIG_CTRL_IFACE_DBUS_NEW=y
CONFIG_CTRL_IFACE_DBUS_INTRO=y
EOF
Install WPA Supplicant by running the following commands:
cd wpa_supplicant && make BINDIR=/sbin LIBDIR=/lib
If you have installed Qt-4.8.6 and wish to build the WPA Supplicant GUI program, run the following commands:
pushd wpa_gui-qt4 && qmake wpa_gui.pro && make && popd
This package does not come with a test suite.
Now, as the root
user:
install -v -m755 wpa_{cli,passphrase,supplicant} /sbin/ && install -v -m644 doc/docbook/wpa_supplicant.conf.5 /usr/share/man/man5/ && install -v -m644 doc/docbook/wpa_{cli,passphrase,supplicant}.8 /usr/share/man/man8/
If you have built WPA
Supplicant with D-Bus
support, you will need to install D-Bus configuration files. Install them
by running the following commands as the root
user:
install -v -m644 dbus/fi.{epitest.hostap.WPASupplicant,w1.wpa_supplicant1}.service \ /usr/share/dbus-1/system-services/ && install -v -m644 dbus/dbus-wpa_supplicant.conf \ /etc/dbus-1/system.d/wpa_supplicant.conf
If you have built the WPA
Supplicant GUI program, install it by running the
following commands as the root
user:
install -v -m755 wpa_gui-qt4/wpa_gui /usr/bin/ && install -v -m644 doc/docbook/wpa_gui.8 /usr/share/man/man8/ && install -v -m644 wpa_gui-qt4/wpa_gui.desktop /usr/share/applications/ && install -v -m644 wpa_gui-qt4/icons/wpa_gui.svg /usr/share/pixmaps/
You will need to restart the system D-Bus daemon before you can use the WPA Supplicant D-Bus interface.
This package installs desktop files into the /usr/share/applications
hierarchy and you
can improve system performance and memory usage by updating
/usr/share/applications/mimeinfo.cache
.
To perform the update you must have desktop-file-utils-0.22
installed and issue the following command as the
root
user:
update-desktop-database
To connect to an access point that uses a password, you
need to put the pre-shared key in /etc/sysconfig/wpa_supplicant-
. SSID is
the string that the access point/router transmits to
identify itself. Run the following command as the
wifi0
.confroot
user:
wpa_passphraseSSID
SECRET_PASSWORD
> /etc/sysconfig/wpa_supplicant-wifi0
.conf
/etc/sysconfig/wpa_supplicant-
can hold
the details of several access points. When wpa_supplicant is
started, it will scan for the SSIDs it can see and choose
the appropriate password to connect.
wifi0
.conf
If you want to connect to an access point that isn't
password protected, put an entry like this in /etc/sysconfig/wpa_supplicant-
. Replace
"Some-SSID" with the SSID of the access point/router.
wifi0
.conf
network={
ssid="Some-SSID
"
key_mgmt=NONE
}
There are many options that you could use to tweak how you
connect to each access point. They are described in some
detail in the wpa_supplicant/wpa_supplicant.conf
file
in the source tree.
If you want to
configure network interfaces at boot using wpa_supplicant, you need
to install the /lib/services/wpa
script included in
blfs-bootscripts-20140919 package:
make install-service-wpa
If your router/access point uses DHCP to allocate IP
addresses, you can install DHCP-4.3.1 client and use it to
automatically obtain network addresses. Create the
/etc/sysconfig/ifconfig-
by running the
following command as the wifi0
root
user:
cat > /etc/sysconfig/ifconfig.wifi0
<< "EOF"ONBOOT="yes" IFACE="
EOFwlan0
" SERVICE="wpa" # Additional arguments to wpa_supplicant WPA_ARGS="" WPA_SERVICE="dhclient" DHCP_START="" DHCP_STOP="" # 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"
If you prefer dhcpcd-6.4.3 instead of DHCP-4.3.1 client, then
create the /etc/sysconfig/ifconfig-
by running the
following command as the wifi0
root
user:
cat > /etc/sysconfig/ifconfig.wifi0
<< "EOF"ONBOOT="yes" IFACE="
EOFwlan0
" SERVICE="wpa" # Additional arguments to wpa_supplicant WPA_ARGS="" WPA_SERVICE="dhcpcd" DHCP_START="-b -q<insert appropriate start options here>
" DHCP_STOP="-k<insert additional stop options here>
"
Alternatively, if you use static addresses on your local
network, then create the /etc/sysconfig/ifconfig-
by running the
following command as the wifi0
root
user:
cat > /etc/sysconfig/ifconfig.wifi0
<< "EOF"ONBOOT="yes" IFACE="
EOFwlan0
" SERVICE="wpa" # Additional arguments to wpa_supplicant WPA_ARGS="" WPA_SERVICE="ipv4-static" IP="192.168.1.1" GATEWAY="192.168.1.2" PREFIX="24" BROADCAST="192.168.1.255"
You can connect to the wireless access point by running the
following command as the root
user:
ifup wifi0
Replace wlan0
with the correct wireless interface and wifi0
with desired name for
the configuration file. Please note that wpa_supplicant-*.conf
and ifconfig.*
configuration files need to
have identical names, ie both contain wifi0
in their name.
is a graphical frontend program for interacting with wpa_supplicant. |
|
is a daemon that can connect to a password protected wireless access point. |
|
takes an SSID and a password and generates a simple configuration that wpa_supplicant can understand. |
|
is a command line interface used to control a running wpa_supplicant daemon. |
Last updated on 2014-09-17 21:56:07 -0700
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 12:42:53 -0700
This chapter contains some tools that come in handy when the network needs investigating.
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/basicnetworkingutilities
The Avahi package is a system which facilitates service discovery on a local network.
This package is known to build and work properly using an LFS-7.6 platform.
Download (HTTP): http://pkgs.fedoraproject.org/repo/pkgs/avahi/avahi-0.6.31.tar.gz/2f22745b8f7368ad5a0a3fddac343f2d/avahi-0.6.31.tar.gz
Download MD5 sum: 2f22745b8f7368ad5a0a3fddac343f2d
Download size: 1.3 MB
Estimated disk space required: 23 MB
Estimated build time: 0.4 SBU
gobject-introspection-1.40.0, GTK+-2.24.24, GTK+-3.12.2, libdaemon-0.14 and libglade-2.6.4
D-Bus Python-1.2.0, PyGTK-2.24.0 and Qt-4.8.6
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/avahi
There should be a dedicated user and group to take control of
the avahi-daemon daemon after
it is started. Issue the following commands as the
root
user:
groupadd -fg 84 avahi && useradd -c "Avahi Daemon Owner" -d /var/run/avahi-daemon -u 84 \ -g avahi -s /bin/false avahi
There should also be a dedicated priviliged access group for
Avahi clients. Issue the
following command as the root
user:
groupadd -fg 86 netdev
Install Avahi by running the following commands:
sed -i 's/\(CFLAGS=.*\)-Werror \(.*\)/\1\2/' configure && sed -i -e 's/-DG_DISABLE_DEPRECATED=1//' \ -e '/-DGDK_DISABLE_DEPRECATED/d' avahi-ui/Makefile.in && ./configure --prefix=/usr \ --sysconfdir=/etc \ --localstatedir=/var \ --disable-static \ --disable-mono \ --disable-monodoc \ --disable-python \ --disable-qt3 \ --disable-qt4 \ --enable-core-docs \ --with-distro=none \ --with-systemdsystemunitdir=no && make
This package does not come with a test suite.
Now, as the root
user:
make install
sed -i ...:
These seds allow the package to build after the deprecation
of symbols in gtkstock.h
by
current gtk+-3 by removing
-Werror
and by removing the
defines for G{,DK,TK}_DISABLE_DEPRECATED.
--disable-static
:
This switch prevents installation of static versions of the
libraries.
--disable-mono
: This
parameter disables the Mono
bindings.
--disable-monodoc
:
This parameter disables documentation for the Mono bindings.
--disable-python
:
This parameter disables the scripts that depend on
Python. It also allows a
regular install to complete successfully.
--disable-qt3
: This
parameter disables the building of Qt3 mainloop integration.
--disable-qt4
: This
parameter disables the building of Qt4Core mainloop integration. Omit this
if you have installed Qt4.
--enable-core-docs
:
This parameter enables the building of documentation.
--with-distro=none
:
There is an obsolete boot script in the distribution for LFS.
This option disables it.
--with-systemdsystemunitdir=no
:
Without it, the daemon fails to start in BLFS, which does not
support systemd.
--disable-dbus
: This parameter
disables the use of D-Bus.
--disable-gtk
: This parameter
disables the use of GTK+2.
--disable-gtk3
: This parameter
disables the use of GTK+3.
--disable-libdaemon
: This
parameter disables the use of libdaemon. If you use this option,
avahi-daemon
won't be built.
--enable-tests
: This option
enables the building of tests and examples.
--enable-compat-howl
: This option
enables the compatibility layer for HOWL.
--enable-compat-libdns_sd
: This
option enables the compatibility layer for libdns_sd.
To automatically start the avahi-daemon when the
system is rebooted, install the /etc/rc.d/init.d/avahi
bootscript from
the blfs-bootscripts-20140919 package.
make install-avahi
is a IPv4LL network address configuration daemon. |
|
is a Web service showing mDNS/DNS-SD announced HTTP services using the Avahi daemon. |
|
browses for mDNS/DNS-SD services using the Avahi daemon. |
|
browses for mDNS/DNS-SD services using the Avahi daemon. |
|
is the Avahi mDNS/DNS-SD daemon. |
|
browses for mDNS/DNS-SD services using the Avahi daemon. |
|
browses for mDNS/DNS-SD services using the Avahi daemon. |
|
is a Unicast DNS server from mDNS/DNS-SD configuration daemon. |
|
registers a mDNS/DNS-SD service or host name or address mapping using the Avahi daemon. |
|
registers a mDNS/DNS-SD service or host name or address mapping using the Avahi daemon. |
|
registers a mDNS/DNS-SD service or host name or address mapping using the Avahi daemon. |
|
resolves one or more mDNS/DNS host name(s) to IP address(es) (and vice versa) using the Avahi daemon. |
|
resolves one or more mDNS/DNS host name(s) to IP address(es) (and vice versa) using the Avahi daemon. |
|
resolves one or more mDNS/DNS host name(s) to IP address(es) (and vice versa) using the Avahi daemon. |
|
changes the mDNS host name. |
|
browses for SSH servers on the local network. |
|
browses for VNC servers on the local network. |
Last updated on 2014-09-19 14:39:35 -0700
BIND Utilities is not a separate package, it is a collection of the client side programs that are included with BIND-9.10.0-P2. 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.
This package is known to build and work properly using an LFS-7.6 platform.
Download (FTP): ftp://ftp.isc.org/isc/bind9/9.10.0-P2/bind-9.10.0-P2.tar.gz
Download MD5 sum: 85f5bbd655f7fbb946fe128c5adcc9ca
Download size: 8.0 MB
Estimated disk space required: 107 MB
Estimated build time: 0.8 SBU
libcap-2.24 with PAM, libxml2-2.9.1, and OpenSSL-1.0.1i
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.10.0-P2 section.
Last updated on 2014-09-20 19:22:09 -0700
The mod_dnssd package is an Apache HTTPD module which adds Zeroconf support via DNS-SD using Avahi. This allows Apache to advertise itself and the websites available to clients compatible with the protocol.
This package is known to build and work properly using an LFS-7.6 platform.
Download (HTTP): http://pkgs.fedoraproject.org/repo/pkgs/mod_dnssd/mod_dnssd-0.6.tar.gz/bed3d95a98168bf0515922d1c05020c5/mod_dnssd-0.6.tar.gz
Download MD5 sum: bed3d95a98168bf0515922d1c05020c5
Download size: 84 KB
Estimated disk space required: 1 MB
Estimated build time: less than 0.1 SBU
Apache-2.4.10 and Avahi-0.6.31
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/mod_dnssd
Install mod_dnssd by running the following commands:
sed -i 's/unixd_setup_child/ap_&/' src/mod_dnssd.c && ./configure --prefix=/usr \ --disable-lynx && make
This package does not come with a test suite.
Now, as the root
user:
make install sed -i 's| usr| /usr|' /etc/httpd/httpd.conf
sed ... src/mod_dnssd.c: Fix an external function call that has been updated since this package was released.
--disable-lynx
: This parameter
turns off Lynx usage for
documentation generation. Remove it if you have Lynx installed.
sed ... /etc/httpd/httpd.conf: Fix a directory path that the intallation procedure incorrectly puts in the httpd configuration file.
Last updated on 2014-09-20 19:22:09 -0700
NetworkManager is a set of co-operative tools that make networking simple and straightforward. Whether WiFi, wired, 3G, or Bluetooth, NetworkManager allows you to quickly move from one network to another: Once a network has been configured and joined once, it can be detected and re-joined automatically the next time it's available.
This package is known to build and work properly using an LFS-7.6 platform.
Download (HTTP): http://ftp.gnome.org/pub/gnome/sources/NetworkManager/0.9/NetworkManager-0.9.10.0.tar.xz
Download (FTP): ftp://ftp.gnome.org/pub/gnome/sources/NetworkManager/0.9/NetworkManager-0.9.10.0.tar.xz
Download MD5 sum: 21b9051dbbd6434df4624a90ca9d71b6
Download size: 2.5 MB
Estimated disk space required: 127 MB (additional 10 MB for the tests)
Estimated build time: 1.5 SBU
dbus-glib-0.102, libndp-1.4, libnl-3.2.25, NSS-3.17, (or GnuTLS-3.3.7), and udev-extras (from eudev) (for GUdev)
ConsoleKit-0.4.6, dhcpcd-6.4.3 or DHCP-4.3.1 (client only), gobject-introspection-1.40.0, Iptables-1.4.21, libsoup-2.46.0, newt-0.52.17 (for nmtui), Polkit-0.112, UPower-0.9.23, and Vala-0.24.0
GTK-Doc-1.20, Qt-4.8.6, Valgrind-3.10.0, wpa_supplicant-2.2 (built with D-Bus support), libteam, and ModemManager,
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/NetworkManager
If Qt-4.8.6 and Qt-5.3.1 are installed, you need to choose Qt4 with source setqt4, before starting. Install NetworkManager by running the following commands:
./configure --prefix=/usr \ --sysconfdir=/etc \ --localstatedir=/var \ --with-nmtui \ --disable-ppp \ --with-systemdsystemunitdir=no && make
An already active graphical session with bus address is necessary to run the tests. To test the results, issue: make check.
Now, as the root
user:
make install
--with-nmtui
: This
parameter enables build of nmtui.
--with-systemdsystemunitdir=no
:
This parameter is used for sysv init systems. If you use
systemd, replace "no" by the proper directory.
--disable-ppp
: This
parameter disables parameteral PPP support in NetworkManager.
--enable-gtk-doc
: Use this switch
if you have installed GTK-Doc-1.20 and wish to build the API
manuals.
--without-iptables
: Use this
switch if you don't have Iptables installed.
For NetworkManager to
work, at least minimal configuration file must be present.
Such file is not installed with make install. Issue
following command as the root
user to create minimal
NetworkManager.conf
file:
cat >> /etc/NetworkManager/NetworkManager.conf << "EOF"
[main]
plugins=keyfile
EOF
You can add dns=none
to
suppress changes to /etc/resolv.conf
. See man 5 NetworkManager.conf
for any additional options.
To automatically start the NetworkManager daemon
when the system is rebooted, install the /etc/rc.d/init.d/networkmanager
bootscript from the blfs-bootscripts-20140919
package.
make install-networkmanager
is a command-line tool for controlling NetworkManager and getting its status. |
|
is a utility to find out whether you are online. |
|
interactive ncurses based interface for nmcli. |
|
interactive ncurses based interface connection activate/deactivate. |
|
interactive ncurses based interface connection editor. |
|
interactive ncurses based interface hostname editor. |
|
is the network management daemon. |
|
contains functions used by NetworkManager. |
|
contains functions used by NetworkManager VPN plugins. |
|
contains functions used by NetworkManager utils. |
Last updated on 2014-09-17 21:56:07 -0700
Nmap is a utility for network exploration and security auditing. It supports ping scanning, port scanning and TCP/IP fingerprinting.
This package is known to build and work properly using an LFS-7.6 platform.
Download (HTTP): http://nmap.org/dist/nmap-6.47.tar.bz2
Download MD5 sum: edfe81f6763223c0a29bfa15a8526e2a
Download size: 7.5 MB
Estimated disk space required: 133 MB (additional 1 MB for the tests)
Estimated build time: 1.3 SBU (additional 0.1 SBU for the tests)
These packages are recommended because if they're not installed, the build process will compile and link against its own (often older) version.
libpcap-1.6.2, Lua-5.2.3, PCRE-8.35, and liblinear-1.94
OpenSSL-1.0.1i, PyGTK-2.24.0 (required for zenmap), Python-2.7.8 (required for ndiff) and Subversion-1.8.10 (required for nmap-update)
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/nmap
This package does not support parallel build.
Install Nmap by running the following commands:
./configure --prefix=/usr && make -j1
If you wish to run the test suite, run the following command:
sed -i 's/lib./lib/' zenmap/test/run_tests.py
To test the results, issue: make check as the
root
user. Tests need a
graphical session.
Now, as the root
user:
make install
is a utility for reading and writing data across networks from the command line. |
|
is a tool to aid in the comparison of Nmap scans. |
|
is a utility for network exploration and security auditing. It supports ping scanning, port scanning and TCP/IP fingerprinting. |
|
is a symbolic link to zenmap. |
|
is an updater for Nmap architecture-independent files. |
|
is a symbolic link to zenmap. |
|
is a Python based graphical nmap frontend viewer. |
Last updated on 2014-09-19 13:13:19 -0700
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.
This package overwrites the version of traceroute that was installed in the inetutils package in LFS. This version is more powerful and allows many more options than the standard version.
This package is known to build and work properly using an LFS-7.6 platform.
Download (HTTP): http://downloads.sourceforge.net/traceroute/traceroute-2.0.20.tar.gz
Download MD5 sum: 559f104e155e0e14ee0c717776a745fa
Download size: 68 KB
Estimated disk space required: 648 KB
Estimated build time: Less than 0.1 SBU
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/traceroute
Install Traceroute by running the following commands:
make
This package does not come with a test suite.
Now, as the root
user:
make prefix=/usr install && mv /usr/bin/traceroute /bin && ln -sv -f traceroute /bin/traceroute6 && ln -sv -f traceroute.8 /usr/share/man/man8/traceroute6.8
Use man 8 traceroute and/or man 8 traceroute6, because man traceroute refer to the overwritten version installed in LFS by inetutils.
Last updated on 2014-09-19 13:13:19 -0700
Whois is a client-side application which queries the whois directory service for information pertaining to a particular domain name. This package by default will install two programs: whois and mkpasswd. The mkpasswd command is also installed by the Expect-5.45 package.
This package is known to build and work properly using an LFS-7.6 platform.
Download (HTTP): http://ftp.debian.org/debian/pool/main/w/whois/whois_5.2.0.tar.xz
Download (FTP): ftp://ftp.debian.org/debian/pool/main/w/whois/whois_5.2.0.tar.xz
Download MD5 sum: 0e5966b051735fff91792fa40c3d030f
Download size: 80 KB
Estimated disk space required: 1.4 MB
Estimated build time: less than 0.1 SBU
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/whois
Build the application with:
make
You can install the whois program, the
mkpasswd
program, and the locale files independently. Control your
choice of what is installed with the following commands
issued as the root
user:
Installing this version of mkpasswd will overwrite the same command installed by Expect-5.45.
make prefix=/usr install-whois make prefix=/usr install-mkpasswd make prefix=/usr install-pos
HAVE_LIBIDN=1
: This make variable
adds internationalized string handling support to
whois.
Last updated on 2014-09-14 11:55:14 -0700
Wicd is a network manager written in Python. It simplifies network setup by automatically detecting and connecting to wireless and wired networks. Wicd includes support for WPA authentication and DHCP configuration. It provides Curses- and GTK-based graphical frontends for user-friendly control. An excellent KDE-based frontend is also available here.
This package is known to build and work properly using an LFS-7.6 platform.
Download (HTTP): http://launchpad.net/wicd/1.7/1.7.2.4/+download/wicd-1.7.2.4.tar.gz
Download MD5 sum: c2435ddfdef0b9898852d72a85a45f0f
Download size: 429 KB
Estimated disk space required: 4.2 MB
Estimated build time: less than 0.1 SBU
Wicd uses ifconfig to activate
network connections. ifconfig is provided by
both the Inetutils and Net-tools packages. The Inetutils
package is part of LFS, but the ifconfig command is not
installed by the LFS instructions. If you choose to install
the Inetutils version of ifconfig
, you need to reinstall the package
and configure it without the --disable-ifconfig
switch.
Python-2.7.8, D-Bus Python-1.2.0, Wireless Tools-29, and Net-tools-CVS_20101030 (Wicd needs ifconfig and mii-tool from this package)
PyGTK-2.24.0 (for the GTK frontend), wpa_supplicant-2.2 (for WPA support), and dhcpcd-6.4.3 or DHCP-4.3.1 (for DHCP support)
pm-utils-1.4.1 (for suspend/resume integration), Urwid (for the Curses-based frontend), and Babel (for internationalization)
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/wicd
Install Wicd by running the following commands:
sed -i '/wpath.logrotate\|wpath.systemd/d' setup.py && rm po/*.po && python setup.py configure --no-install-kde \ --no-install-acpi \ --no-install-pmutils \ --no-install-init
This package does not come with a test suite.
Now, as the root
user,
install the package:
python setup.py install
rm po/*.po: This command removes the international messages associated with this package. The command is required unless Babel is installed. If it is installed, po/ast.po still needs to be removed in order for the build to complete.
sed -i '/wpath...: This sed prevents installation of logrotate and systemd configuration files. You may omit it if you use these utilities.
--no-install-kde
: Prevent
installation of an autostart desktop file for KDE. If you use
KDE, you should instead install the
Wicd KDE Client.
--no-install-acpi
: Prevent
installation of suspend and resume scripts for acpid.
Omit this option if you use acpid.
--no-install-pmutils
: Prevent
installation of hooks for pm-utils. Omit this option if you
use pm-utils.
--no-install-init
: Prevent
installation of any init scripts, as a bootscript is
installed later in the instructions.
--wicdgroup=
: The
group that will have permission to use the Wicd client
(default is the <group>
users
group).
/etc/wicd/manager-settings.conf
,
/etc/wicd/wired-settings.conf
and /etc/wicd/wireless-settings.conf
To automatically start Wicd at boot time, you need to first
install the Wicd bootscript, /etc/rc.d/init.d/wicd
, included in the
blfs-bootscripts-20140919 package
(as user root
):
make install-wicd
Since Wicd will now handle all configuration of network
devices, the network bootscript installed by LFS should be
disabled. This can be achieved by either removing any
S*network
and K*network
symlinks in the /etc/rc*.d
directories or by setting
ONBOOT=no
in any /etc/sysconfig/ifconfig.*
files.
No manual configuration of Wicd is needed if you use the
graphical frontends. If you are only going to use Wicd from
command-line, you can configure it using the configuration
files in /etc/wicd
. For a
list of available options, look at the man-pages for:
wicd-manager-settings.conf, wicd-wired-settings.conf and
wicd-wireless-settings.conf.
Be sure to add all users who are to have rights to open and
close network connections with Wicd to the users
group (or the group specified
with the --wicdgroup
configuration option).
is the wicd daemon. |
|
is a command line interface for configuring the wicd daemon. |
|
is the wicd client. This script attempts to automatically choose the relevant configuration interface. |
|
is a curses interface for configuring the wicd daemon. |
|
is a GTK interface for configuring the wicd daemon |
Last updated on 2014-09-20 19:22:09 -0700
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 a 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.
This package is known to build and work properly using an LFS-7.6 platform.
Download (HTTP): http://www.wireshark.org/download/src/all-versions/wireshark-1.12.1.tar.bz2
Download MD5 sum: 14b3e3d8979d1eb27ff085bb5f400e67
Download size: 28 MB
Estimated disk space required: 1.4 GB
Estimated build time: 6.2 SBU
Additional Documentation: http://www.wireshark.org/download/docs/
From this page you can download many different docs in a variety of formats.
GLib-2.40.0 (to build the TTY-mode front-end only)
Note that you need Gtk+ or
Qt4 installed, otherwise,
pass --disable-wireshark
to the
configure
command. SBU and disk space required are larger for the Qt
GUI.
GTK+-3.12.2 (to build the Gtk+3 GUI) and libpcap-1.6.2 (required to capture data)
GnuTLS-3.3.7, libgcrypt-1.6.2, Lua-5.2.3, MIT Kerberos V5-1.12.2, OpenSSL-1.0.1i, adns, GeoIP, and PortAudio
GTK+-2.24.24, Qt-4.8.6, or Qt-5.3.1
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.
Networking support: Y
Networking options:
Packet: sockets monitoring interface: M or Y
If built as a module, the name is af_packet.ko
.
Optionally, fix the description of the program in the title. The first change overwrites the default "SVN Unknown" in the title and the second overwrites a utility script that resets the version to "unknown".
cat > svnversion.h << "EOF" #define SVNVERSION "BLFS" #define SVNPATH "source" EOF cat > make-version.pl << "EOF" #!/usr/bin/perl EOF
Wireshark is a very large
and complex application. These instructions provide
additional security measures to ensure that only trusted
users are allowed to view network traffic. First, set up a
system group for wireshark. As the root
user:
groupadd -g 62 wireshark
If you want an unpriviledged user to execute wireshark, run the following command as
the root
user:
usermod -a -G wireshark <username>
If you have GTK+2 and 3, and Qt4 and 5, one GUI linked to GTK+3 and another one linked to Qt5 are built, by default. Instead, we chose to only build the GTK+3 GUI, as the BLFS default. If you prefer otherwise, some modifications are mecessary. For modifications in the configure switches, see "Command Explanations".
If you want to build a Qt GUI and have both Qt4 and 5 installed, issue either:
source setqt5
if you want the Qt5 GUI built, or:
source setqt4 && sed -i 's/Qt5 Qt/Qt/' configure
if you want the Qt4 GUI built.
Continue to install Wireshark by running the following commands:
./configure --prefix=/usr \ --with-gtk3=yes \ --with-qt=no \ --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/wireshark-1.12.1 && install -v -m755 -d /usr/share/pixmaps/wireshark && install -v -m644 README{,.linux} doc/README.* doc/*.{pod,txt} \ /usr/share/doc/wireshark-1.12.1 && pushd /usr/share/doc/wireshark-1.12.1 && for FILENAME in ../../wireshark/*.html; do ln -s -v -f $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 -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-1.12.1
Now, set ownership and permissions of sensitive applications
to only allow authorized users. As the root
user:
chown -v root:wireshark /usr/bin/{tshark,dumpcap} && chmod -v 6550 /usr/bin/{tshark,dumpcap}
Finally, add any users to the wireshark group (as root user):
usermod -a -G wireshark <username>
sed -i 's/Qt5 Qt/Qt/' ...: This command is required because, without it, libraries and includes from Qt5 are found and used first, if both versions are installed, when trying to build with Qt4, and make does not complete.
--disable-wireshark
: This option
is required if you have GTK+
installed but do not want to build the GTK+ and Qt GUIs.
--with-gtk3=yes
: This
switch is required to use GTK+3 for the GUI, if you are using
--with-qt=no
. Change
gtk3 by gtk2,to use GTK+3
for the GUI.
--with-qt=no
: This
switch disables build of the Qt GUI. Replace "no" by "yes",
if you want it to be built.
--with-gtk2=yes
: This option is
required if you want to use GTK+2, instead of 3, for the GUI. Notice
that the GUI for only one GTK+ version (either 2 or 3) can be
built.
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 interfaces.
If Qt GUI was built and you wish an entry in the desktop menu, there are two possibilities (instructions must be run as root).
If only the Qt GUI was built:
mv -v /usr/share/applications/wireshark.desktop \ /usr/share/applications/wireshark-qt.desktop
If both, GTK+ and Qt GUIs were built:
cp -v /usr/share/applications/wireshark.desktop \ /usr/share/applications/wireshark-qt.desktop
Now, fix it for wireshark-qt:
sed -e 's/ireshark/&-qt/' \ -e 's/^\(Icon=wireshark\)-qt/\1/' \ -i /usr/share/applications/wireshark-qt.desktop
If you want to look at packets, make sure you don't filter them out with Iptables-1.4.21. 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. |
|
prints the file types of capture files. |
|
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. |
|
combines multiple saved capture files into a single output file. |
|
creates random-packet capture files. |
|
dump and analyze raw libpcap data. |
|
reorder timestamps of input file frames into output file. |
|
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 the GTK+ GUI network protocol analyzer. It lets you interactively browse packet data from a live network or from a previously saved capture file. |
|
is the Qt 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 2014-09-19 21:15:05 -0700
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 a utility and a library used for transferring files with URL syntax to any of the following protocols: FTP, FTPS, HTTP, HTTPS, SCP, SFTP, TFTP, TELNET, DICT, LDAP, LDAPS and FILE. Its ability to both download and upload files can be incorporated into other programs to support functions like streaming media.
This package is known to build and work properly using an LFS-7.6 platform.
Download (HTTP): http://curl.haxx.se/download/curl-7.37.1.tar.bz2
Download MD5 sum: 95c627abcf6494f5abe55effe7cd6a57
Download size: 3.1 MB
Estimated disk space required: 40 MB (additional 7 MB for tests)
Estimated build time: 0.4 SBU (additional 8.2 SBU for tests)
Certificate Authority Certificates and OpenSSL-1.0.1i or GnuTLS-3.3.7
libidn-1.29, MIT Kerberos V5-1.12.2, OpenLDAP-2.4.39, c-ares, libmetalink, libssh2, and SPNEGO
stunnel-5.03 (for the HTTPS and FTPS tests) and Valgrind-3.10.0
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/curl
Install cURL by running the following commands:
./configure --prefix=/usr \ --disable-static \ --enable-threaded-resolver && make
To test the results, issue: make test. Tests need many conditions to run successfully, and some may fail. Usually, each failed test takes a long time. If you wish to disable some tests, include them in the appropriate file and run the tests again:
cat >> tests/data/DISABLED << "EOF"
numb1
...
numbN
...
EOF
Now, as the root
user:
make install && find docs \( -name "Makefile*" -o -name "*.1" -o -name "*.3" \) -exec rm {} \; && install -v -d -m755 /usr/share/doc/curl-7.37.1 && cp -v -R docs/* /usr/share/doc/curl-7.37.1
--disable-static
:
This switch prevents installation of static versions of the
libraries.
--enable-threaded-resolver
:
This switch enables cURL's
builtin threaded DNS resolver.
--with-gssapi
: This parameter
adds Kerberos 5 support to
libcurl
.
--without-ssl --with-gnutls
: Use
to build with GnuTLS support
instead of OpenSSL for
SSL/TLS.
find docs \( -name "Makefile*"
-o -name "*.1" -o -name "*.3" \) -exec rm {}
\;: This command removes Makefiles
and man files from the
documentation directory that would otherwise be installed by
the commands that follow.
Last updated on 2014-09-11 23:27:59 -0700
GeoClue is a modular geoinformation service built on top of the D-Bus messaging system. The goal of the GeoClue project is to make creating location-aware applications as simple as possible.
This package is known to build and work properly using an LFS-7.6 platform.
Download (HTTP): https://launchpad.net/geoclue/trunk/0.12/+download/geoclue-0.12.0.tar.gz
Download MD5 sum: 33af8307f332e0065af056ecba65fec2
Download size: 556 KB
Estimated disk space required: 11 MB
Estimated build time: 0.1 SBU
Required patch (if GPSD is installed): http://www.linuxfromscratch.org/patches/blfs/7.6/geoclue-0.12.0-gpsd_fix-1.patch
dbus-glib-0.102, GConf-3.2.6 and libxslt-1.1.28
libsoup-2.46.0 and NetworkManager-0.9.10.0
GPSD, GTK+-2.24.24 and oFono
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/geoclue
Install GeoClue by running the following commands:
patch -Np1 -i ../geoclue-0.12.0-gpsd_fix-1.patch && sed -i "s@ -Werror@@" configure && sed -i "s@libnm_glib@libnm-glib@g" configure && sed -i "s@geoclue/libgeoclue.la@& -lgthread-2.0@g" \ providers/skyhook/Makefile.in && ./configure --prefix=/usr && make
This package does not come with a test suite.
Now, as the root
user:
make install
sed -i "s@ -Werror@@"
configure: This sed removes -Werror
from the CFLAGS
variable, otherwise the build will fail
with gcc-4.7.
sed -i "s@libnm_glib@libnm-glib@g" configure: This sed fixes detection of NetworkManager libraries.
sed -i "s@geoclue/libgeoclue.la@& -lgthread-2.0@g" .. : This sed fixes building GeoClue with recent binutils.
--libexecdir=/usr/lib/geoclue
:
This option installs GeoClue's private executables into
/usr/lib/geoclue
in accordance
with the old version of the FHS used before LFS-7.5.
Last updated on 2014-09-16 13:49:04 -0700
The GLib Networking package contains Network related gio modules for GLib.
This package is known to build and work properly using an LFS-7.6 platform.
Download (HTTP): http://ftp.gnome.org/pub/gnome/sources/glib-networking/2.40/glib-networking-2.40.1.tar.xz
Download (FTP): ftp://ftp.gnome.org/pub/gnome/sources/glib-networking/2.40/glib-networking-2.40.1.tar.xz
Download MD5 sum: 505f8a40fad96944b292d1c48f4e5569
Download size: 360 KB
Estimated disk space required: 7.5 MB (additional 1.4 MB for the tests) MB
Estimated build time: 0.1 SBU (additional less than 0.1 SBU for the tests)
GnuTLS-3.3.7 and gsettings-desktop-schemas-3.12.2
Certificate Authority Certificates and p11-kit-0.20.6
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/glib-networking
Install GLib Networking by running the following commands:
./configure --prefix=/usr \ --with-ca-certificates=/etc/ssl/ca-bundle.crt \ --disable-static && make
To test the results, issue: make check.
Now, as the root
user:
make install
--with-ca-certificates=/etc/ssl/ca-bundle.crt
:
This parameter specifies where the trusted root certificates
are located.
--disable-static
:
This switch prevents installation of static versions of the
libraries.
Last updated on 2014-09-13 17:48:40 -0700
ldns is a fast DNS library with the goal to simplify DNS programming and to allow developers to easily create software conforming to current RFCs and Internet drafts. This packages also includes the drill tool.
This package is known to build and work properly using an LFS-7.6 platform.
Download (HTTP): http://www.nlnetlabs.nl/downloads/ldns/ldns-1.6.17.tar.gz
Download MD5 sum: a79423bcc4129e6d59b616b1cae11e5e
Download size: 1.3 MB
Estimated disk space required: 18 MB
Estimated build time: 0.2 SBU
Certificate Authority Certificates and libpcap-1.6.2 (for example programs), Python-2.7.8 and SWIG-3.0.2 (for Python bindings), and Doxygen-1.8.8 (for html documentation)
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/ldns
Install ldns by running the following commands:
./configure --prefix=/usr \ --sysconfdir=/etc \ --disable-static \ --with-drill && make
If you have Doxygen-1.8.8 installed and want to build html documentation, run the following command:
make doc
This package does not come with a working test suite.
Now, as the root
user:
make install
If you built html documentation, install it by running the
following commands as the root
user:
install -v -m755 -d /usr/share/doc/ldns-1.6.17 && install -v -m644 doc/html/* /usr/share/doc/ldns-1.6.17
--disable-static
:
This switch prevents installation of static versions of the
libraries.
--with-drill
: This
option enables building of the drill tool.
--with-examples
: This option
enables building of the example programs.
--with-pyldns
: This option
enables building of the Python bindings.
is a tool like dig from BIND Utilities-9.10.0-P2 designed to get all sorts of information out of the DNS. |
|
shows compiler and linker flags for ldns usage. |
|
provides the ldns API functions to programs. |
Last updated on 2014-09-20 19:22:09 -0700
libevent is an asynchronous event notification software library. The libevent API provides a mechanism to execute a callback function when a specific event occurs on a file descriptor or after a timeout has been reached. Furthermore, libevent also supports callbacks due to signals or regular timeouts.
This package is known to build and work properly using an LFS-7.6 platform.
Download (HTTP): https://github.com/downloads/libevent/libevent/libevent-2.0.21-stable.tar.gz
Download MD5 sum: b2405cc9ebf264aa47ff615d9de527a2
Download size: 832 KB
Estimated disk space required: 21 MB
Estimated build time: 0.2 SBU
Doxygen-1.8.8 (for API documentation)
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/libevent
Install libevent by running the following commands:
./configure --prefix=/usr --disable-static && make
If you have Doxygen-1.8.8 installed and wish to build API documentation, issue doxygen Doxyfile.
To test the results, issue: make check.
Now, as the root
user:
make install
If you built the API documentation, install it by issuing the
following commands as the root
user:
install -v -m755 -d /usr/share/doc/libevent-2.0.21/api && cp -v -R doxygen/html/* \ /usr/share/doc/libevent-2.0.21/api
--disable-static
:
This switch prevents installation of static versions of the
libraries.
Last updated on 2014-09-10 09:45:01 -0700
The libnice package is an implementation of the IETF's draft Interactive Connectivity Establishment standard (ICE). It provides GLib-based library, libnice and GStreamer, elements.
This package is known to build and work properly using an LFS-7.6 platform.
Download (HTTP): http://nice.freedesktop.org/releases/libnice-0.1.7.tar.gz
Download MD5 sum: ed74abea19b3f049baf095f137388f2a
Download size: 808 KB
Estimated disk space required: 35 MB
Estimated build time: 1.6 SBU
gst-plugins-base-0.10.36, GTK-Doc-1.20, and gupnp-igd
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/libnice
Install libnice by running the following commands:
./configure --prefix=/usr \ --disable-static \ --without-gstreamer-0.10 && make
To test the results, issue: make check. Note that two tests, test-io-stream-thread and test-io-stream-pollable, may fail due to test harness timing issues.
Now, as the root
user:
make install
--disable-static
:
This switch prevents installation of static versions of the
libraries.
--without-gstreamer-0.10
: This
switch disables building of the GStreamer 0.10 plugins which are not
necessary for anything in BLFS. Remove it if you have
installed gst-plugins-base-0.10.36.
--enable-gtk-doc
: Use this
parameter if GTK-Doc is
installed and you wish to rebuild and install the API
documentation.
Last updated on 2014-09-20 19:22:09 -0700
The libnl suite is a collection of libraries providing APIs to netlink protocol based Linux kernel interfaces.
This package is known to build and work properly using an LFS-7.6 platform.
Download (HTTP): http://www.carisma.slowglass.com/~tgr/libnl/files/libnl-3.2.25.tar.gz
Download MD5 sum: 03f74d0cd5037cadc8cdfa313bbd195c
Download size: 816 KB
Estimated disk space required: 22 MB (additional 1 MB for the tests and 37MB for the API documentation)
Estimated build time: 0.4 SBU
Download (HTTP): http://www.carisma.slowglass.com/~tgr/libnl/files/libnl-doc-3.2.25.tar.gz
Download MD5 sum: 641f73052d9f54e720efe1a476a20237
Download size: 15 MB
Check-0.9.14 (for tests)
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/libnl
Install libnl by running the following commands:
./configure --prefix=/usr \ --sysconfdir=/etc \ --disable-static && make
To test the results, issue: make check.
Now, as the root
user:
make install
If you wish to install the API docummentation, as the
root
user:
mkdir -vp /usr/share/doc/libnl-3.2.25 && tar -xf ../libnl-doc-3.2.25.tar.gz --strip-components=1 --no-same-owner \ -C /usr/share/doc/libnl-3.2.25
--disable-static
:
This switch prevents installation of static versions of the
libraries.
--disable-cli
: Use this parameter
if you don't want to install cli tools provided by the
package.
Last updated on 2014-09-17 21:56:07 -0700
libpcap provides functions for user-level packet capture, used in low-level network monitoring.
This package is known to build and work properly using an LFS-7.6 platform.
Download (HTTP): http://www.tcpdump.org/release/libpcap-1.6.2.tar.gz
Download MD5 sum: 5f14191c1a684a75532c739c2c4059fa
Download size: 636 KB
Estimated disk space required: 7.1 MB
Estimated build time: less than 0.1 SBU
Recommended patch: http://www.linuxfromscratch.org/patches/blfs/7.6/libpcap-1.6.2-enable_bluetooth-1.patch (Needed for bluez-5.21)
BlueZ-5.23, libnl-3.2.25, libusb-1.0.19, 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:
patch -Np1 -i ../libpcap-1.6.2-enable_bluetooth-1.patch && ./configure --prefix=/usr && make
This package does not come with a test suite.
If you want to disable installing the static library, use this sed:
sed -i '/INSTALL_DATA.*libpcap.a\|RANLIB.*libpcap.a/ s/^/#/' Makefile
Now, as the root
user:
make install
--enable-bluetooth=no
:
Necessary, if the recommended patch is not applied, because
since 1.6.1 this application needs a fix, in order to build
with bluez-5.21.
Last updated on 2014-09-14 12:09:32 -0700
The libndp package provides a wrapper for IPv6 Neighbor Discovery Protocol. It also provides a tool named ndptool for sending and receiving NDP messages.
This package is known to build and work properly using an LFS-7.6 platform.
Download (HTTP): http://libndp.org/files/libndp-1.4.tar.gz
Download MD5 sum: 52c708d4b8729ae6e3781b3737a85e16
Download size: 332 KB
Estimated disk space required: 2.4 MB
Estimated build time: less than 0.1 SBU
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/libndp
Install libndp by running the following command:
./configure --prefix=/usr \ --sysconfdir=/etc \ --localstatedir=/var \ --disable-static && make
This package does not come with a test suite.
Now, as the root
user:
make install
Last updated on 2014-09-17 21:56:07 -0700
The libsoup is HTTP client/server library for GNOME. It uses GObject and the GLib main loop to integrate with GNOME applications and it also has an asynchronous API for use in threaded applications.
This package is known to build and work properly using an LFS-7.6 platform.
Download (HTTP): http://ftp.gnome.org/pub/gnome/sources/libsoup/2.46/libsoup-2.46.0.tar.xz
Download (FTP): ftp://ftp.gnome.org/pub/gnome/sources/libsoup/2.46/libsoup-2.46.0.tar.xz
Download MD5 sum: 86765c0093efaf3006fa2960d170d097
Download size: 1.7 MB
Estimated disk space required: 24 MB (additional 10 MB to run the test suite)
Estimated build time: 0.2 SBU (additional 0.3 SBU to run the test suite)
glib-networking-2.40.1, libxml2-2.9.1 and SQLite-3.8.6
Apache-2.4.10 (required to run the test suite), cURL-7.37.1 (required to run the test suite), GTK-Doc-1.20, PHP-5.6.0 compiled with XMLRPC-EPI support (only used for the XMLRPC regression tests) and Samba-4.1.11 (ntlm_auth is required to run the test suite).
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/libsoup
Install libsoup by running the following commands:
./configure --prefix=/usr --disable-static && make
To test the results, issue: make check.
Now, as the root
user:
make install
--disable-static
:
This switch prevents installation of static versions of the
libraries.
--enable-gtk-doc
: Use this
parameter if GTK-Doc is
installed and you wish to rebuild and install the API
documentation.
Last updated on 2014-09-16 13:49:04 -0700
The libtirpc package contains libraries that support programs that use the Remote Procedure Call (RPC) API. It replaces the RPC, but not the NIS library entries that used to be in glibc.
This package is known to build and work properly using an LFS-7.6 platform.
Download (HTTP): http://downloads.sourceforge.net/project/libtirpc/libtirpc/0.2.5/libtirpc-0.2.5.tar.bz2
Download MD5 sum: 8cd41a5ef5a9b50d0fb6abb98af15368
Download size: 452 KB
Estimated disk space required: 6.4 MB
Estimated build time: less than 0.1 SBU
MIT Kerberos V5-1.12.2 for the GSSAPI
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/libtirpc
Install libtirpc by running the following commands:
./configure --prefix=/usr \ --sysconfdir=/etc \ --disable-static \ --disable-gssapi && make
This package does not come with a test suite.
Now, as the root
user:
make install && mv -v /usr/lib/libtirpc.so.* /lib && ln -sfv ../../lib/libtirpc.so.1.0.10 /usr/lib/libtirpc.so
--disable-static
:
This switch prevents installation of static versions of the
libraries.
--disable-gssapi
:
This switch is needed if no GSSAPI is installed. Remove this
switch if you have one installed (for example MIT Kerberos
V5-1.12.2) and you wish to use it.
mv -v /usr/lib/libtirpc.so.* ...: Move shared libraries into /lib so they are available before /usr is mounted.
Last updated on 2014-09-09 14:11:38 -0700
neon is an HTTP and WebDAV client library, with a C interface.
This package is known to build and work properly using an LFS-7.6 platform.
Download (HTTP): http://www.webdav.org/neon/neon-0.30.0.tar.gz
Download MD5 sum: fb60b3a124eeec441937a812c456fd94
Download size: 892 KB
Estimated disk space required: 28 MB
Estimated build time: 0.1 SBU
OpenSSL-1.0.1i or GnuTLS-3.3.7
libproxy, MIT Kerberos V5-1.12.2, pakchois, and libxml2-2.9.1
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/neon
Install neon by running the following commands:
./configure --prefix=/usr --enable-shared --with-ssl --disable-static && make
To test the results, issue: make -k check. Some tests are known to fail.
Now, as the root
user:
make install
--with-ssl
: This switch enables
SSL support using OpenSSL or
GnuTLS respectively. Remove
it if you don't have any of these installed. To force
GnuTLS usage when both are
present, simply pass --with-ssl=gnutls
to the
configure
script.
--disable-static
:
This switch prevents installation of static versions of the
libraries.
--with-libxml2
: This switch
forces the use of libxml2
instead of Expat.
Last updated on 2014-09-13 17:48:40 -0700
The Serf package contains a C-based HTTP client library built upon the Apache Portable Runtime (APR) library. It multiplexes connections, running the read/write communication asynchronously. Memory copies and transformations are kept to a minimum to provide high performance operation.
This package is known to build and work properly using an LFS-7.6 platform.
Download (HTTP): http://serf.googlecode.com/svn/src_releases/serf-1.3.7.tar.bz2
Download MD5 sum: 0a6fa745df4517dd8f79c75c538919bc
Download size: 140 KB
Estimated disk space required: 2.6 MB (additional 2.1 MB for the tests)
Estimated build time: less than 0.1 SBU (additional 0.3 SBU for the tests)
Apr-Util-1.5.3, OpenSSL-1.0.1i, and SCons-2.3.3
MIT Kerberos V5-1.12.2, for the GSSAPI
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/serf
Install Serf by running the following commands:
sed -i "/Append/s:RPATH=libdir,::" SConstruct && sed -i "/Default/s:lib_static,::" SConstruct && sed -i "/Alias/s:install_static,::" SConstruct && scons PREFIX=/usr
To test the results, issue: scons check.
Now, as the root
user:
scons PREFIX=/usr install
sed -i "...": The first command removes the runtime path from a shared library and the next two commands disable building and installing of the static library.
GSSAPI=/usr
: Use this switch if
you have installed a GSSAPI library and you want serf to use it.
Last updated on 2014-09-10 06:19:10 -0700
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.
This package is known to build and work properly using an LFS-7.6 platform.
Download (HTTP): http://links.twibright.com/download/links-2.8.tar.bz2
Download (FTP): ftp://mirror.ovh.net/gentoo-distfiles/distfiles/links-2.8.tar.bz2
Download MD5 sum: d5fb7c45ca41dad2b20f5c056498ea07
Download size: 4 MB
Estimated disk space required: 31 MB
Estimated build time: 0.3 SBU
GPM-1.20.7 (if mouse support is desired) and OpenSSL-1.0.1i
Support for graphical mode requires at least one of GPM-1.20.7 (to be used with a framebuffer-based console), SVGAlib, DirectFB, and X Window System
For decoding various image formats Links can utilize libpng-1.6.13, libjpeg-turbo-1.3.1, and LibTIFF-4.0.3
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/LinksBrowser
Install Links by running the following commands:
./configure --prefix=/usr --mandir=/usr/share/man && 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.8 && install -v -m644 doc/links_cal/* KEYS BRAILLE_HOWTO \ /usr/share/doc/links-2.8
--enable-graphics
: This switch
enables support for graphics mode.
Last updated on 2014-09-09 14:11:38 -0700
Lynx is a text based web browser.
This package is known to build and work properly using an LFS-7.6 platform.
Download (HTTP): http://lynx.isc.org/current/lynx2.8.8rel.2.tar.bz2
Download (FTP): ftp://lynx.isc.org/current/lynx2.8.8rel.2.tar.bz2
Download MD5 sum: b231c2aa34dfe7ca25681ef4e55ee7e8
Download size: 2.5 MB
Estimated disk space required: 31 MB
Estimated build time: 0.3 SBU
OpenSSL-1.0.1i or GnuTLS-3.3.7 (experimental), Zip-3.0, UnZip-6.0, an MTA (that provides a sendmail command), and Sharutils-4.14 (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.8rel.2 \ --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.8rel.2/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.8rel.2
:
This parameter is used so that the documentation files are
installed into /usr/share/doc/lynx-2.8.8rel.2
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.8rel.2/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. As
the root
user, 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).
Still as the root
user:
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”, “nano”, “pico”, “rjoe”, “vi” (but not “vim”: in order to position the cursor in Vim-7.4, set this option to “vi”).
By default, Lynx doesn't
save cookies between sessions. Again as the root
user, 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 2014-09-10 06:19:10 -0700
w3m is primarily a pager but it can also be used as a text-mode WWW browser.
This package is known to build and work properly using an LFS-7.6 platform.
Download (HTTP): http://downloads.sourceforge.net/w3m/w3m-0.5.3.tar.gz
Download MD5 sum: 1b845a983a50b8dec0169ac48479eacc
Download size: 2.1 MB
Estimated disk space required: 26 MB
Estimated build time: 0.3 SBU
GPM-1.20.7, OpenSSL-1.0.1i, Imlib2-1.4.6, GTK+-2.24.24, Imlib (not recommended: obsolete, abandoned upstream, buggy, and gives no additional functionality as compared to other image loading libraries), gdk-pixbuf-2.30.8, Compface-1.5.2, and 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:
patch -Np1 -i ../w3m-0.5.3-bdwgc72-1.patch && sed -i 's/file_handle/file_foo/' istream.{c,h} && sed -i 's#gdk-pixbuf-xlib-2.0#& x11#' configure && ./configure --prefix=/usr --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.3 && install -v -m644 doc/{HISTORY,READ*,keymap.*,menu.*,*.html} \ /usr/share/doc/w3m-0.5.3
patch -p1 < ../w3m-0.5.3-bdwgc72-1.patch: This patch fixes compiling w3m with GC-7.2 installed.
sed -i 's/file_handle/file_foo/' istream.{c,h}: This sed renames the file_handle function to avoid a clash with a glibc function that has the same name, defined in /usr/include/bits/fcntl.h.
sed -i 's#gdk-pixbuf-xlib-2.0#& x11#' configure: This sed fixes compiling w3m using GTK+-2.24.24 as its image library. It has no impact if GTK+-2.24.24 is not installed.
--sysconfdir=/etc
: This option
puts the configuration files in /etc.
Last updated on 2014-09-20 19:22:09 -0700
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 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.
This package is known to build and work properly using an LFS-7.6 platform.
Download (FTP): ftp://ftp.at.gnucash.org/pub/infosys/mail/fetchmail/fetchmail-6.3.26.tar.xz
Download MD5 sum: 61b66faad044afa26e142bb1791aa2b3
Download size: 1.2 MB
Estimated disk space required: 14 MB
Estimated build time: 0.1 SBU
OpenSSL-1.0.1i and a local MDA (Procmail-3.22)
Python-2.7.8 and Tk-8.6.2
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/fetchmail
Install Fetchmail by running the following commands:
./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 configuration options once you get used to it.
Last updated on 2014-09-20 19:22:09 -0700
The Heirloom mailx package (formerly known as the Nail package) contains mailx, a command-line Mail User Agent derived from Berkeley Mail. It 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.
This package is known to build and work properly using an LFS-7.6 platform.
Download (HTTP): http://downloads.sourceforge.net/heirloom/mailx-12.4.tar.bz2
Download MD5 sum: 0c93759e34200eb56a0e7c464680a54a
Download size: 265 KB
Estimated disk space required: 3.6 MB
Estimated build time: less than 0.1 SBU
Required patch: http://www.linuxfromscratch.org/patches/blfs/7.6/mailx-12.4-openssl_1.0.0_build_fix-1.patch (if you intend to link this package against openssl)
OpenSSL-1.0.1i or NSS-3.17, MIT Kerberos V5-1.12.2 (for IMAP GSSAPI authentication), and an MTA
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/mailx
This package does not support parallel build.
Install Heirloom mailx by running the following commands.
patch -Np1 -i ../mailx-12.4-openssl_1.0.0_build_fix-1.patch && make SENDMAIL=/usr/sbin/sendmail -j1
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.4 && install -v -m644 README mailx.1.html /usr/share/doc/mailx-12.4
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 2014-09-20 19:22:09 -0700
The Mutt package contains a Mail User Agent. This is useful for reading, writing, replying to, saving, and deleting your email.
This package is known to build and work properly using an LFS-7.6 platform.
Download (FTP): ftp://ftp.mutt.org/mutt/mutt-1.5.23.tar.gz
Download MD5 sum: 11f5b6a3eeba1afa1257fe93c9f26bff
Download size: 3.7 MB
Estimated disk space required: 36 MB (plus a further 8MB for the PDF manual)
Estimated build time: 0.7 SBU (plus a further 0.2SBU to regenerate the html if the required dependencies are present, and 0.2 SBU to build the PDF manual)
Aspell-0.60.6.1, Cyrus SASL-2.1.26, GDB-7.8, GnuPG-2.0.26, GPGME-1.5.1, libgssapi, libidn-1.29, MIT Kerberos V5-1.12.2, Mixmaster, an MTA (that provides a sendmail command), S-Lang-2.2.4, OpenSSL-1.0.1i or GnuTLS-3.3.7, Berkeley DB-6.1.19 or QDBM or Tokyo Cabinet
libxslt-1.1.28 and either Lynx-2.8.8rel.2, w3m-0.5.3, or ELinks
docbook-dsssl-1.79, OpenJade-1.3.2, and texlive-20140525
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 recent versions of GCC. To find the current stable release, please refer to the Mutt home page.
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,
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.23 \ --enable-pop \ --enable-imap \ --enable-hcache \ --without-qdbm \ --with-gdbm \ --without-bdb \ --without-tokyocabinet && make
To generate the PDF manual with texlive-20140525, 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.23
--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-tokyocabinet
: This
switch disables Tokyo
Cabinet as the header cache backend.
--with-gdbm
: This
switch enables GDBM as the
header cache backend.
--without-bdb
: This
switch disables 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-1.0.1i in POP3/IMAP/SMTP if they
are enabled.
--with-sasl
: This parameter adds
authentication support from Cyrus SASL-2.1.26
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.
--with-slang
: Use S-Lang instead of Ncurses.
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-2.0.26 utilities. |
|
is a key ring dumper for PGP. It is not needed for GnuPG-2.0.26. |
|
manages a keystore for S/MIME certificates. |
Last updated on 2014-09-20 19:22:09 -0700
The Procmail package contains an autonomous mail processor. This is useful for filtering and sorting incoming mail.
This package is known to build and work properly using an LFS-7.6 platform.
Download (HTTP): http://www.ring.gr.jp/archives/net/mail/procmail/procmail-3.22.tar.gz
Download (FTP): ftp://ftp.ucsb.edu/pub/mirrors/procmail/procmail-3.22.tar.gz
Download MD5 sum: 1678ea99b973eb77eda4ecf6acae53f1
Download size: 226 KB
Estimated disk space required: 1.7 MB
Estimated build time: less than 0.1 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:
sed -i 's/getline/get_line/' src/*.[ch] && make LOCKINGTEST=/tmp install && make install-suid
sed -i 's/getline/get_line/' src/*.[ch]: This renames procmail's getline function to avoid conflict with the getline function from glibc.
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 ~/.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/.
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 2014-09-20 19:22:09 -0700
Re-alpine is the continuation of Alpine; a text-based email client developed by the University of Washington.
This package is known to build and work properly using an LFS-7.6 platform.
Download (HTTP): http://sourceforge.net/projects/re-alpine/files/re-alpine-2.03.tar.bz2
Download MD5 sum: 566d269d4bd43aba68f377110a6295d5
Download size: 5.1 MB
Estimated disk space required: 122 MB
Estimated build time: 1.0 SBU
OpenLDAP-2.4.39, MIT Kerberos V5-1.12.2, Aspell-0.60.6.1, Tcl-8.6.2, and Linux-PAM-1.1.8
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/re-alpine
Install Re-alpine by running the following commands:
./configure --prefix=/usr \ --sysconfdir=/etc \ --without-ldap \ --without-krb5 \ --with-ssl-dir=/usr \ --with-passfile=.pine-passfile && make
This package does not come with a test suite.
Now, as the root
user:
make install
--without-ldap
:
Disables LDAP support.
--without-krb5
:
Disables Kerberos support.
--with-ssl-dir=/usr
:
Sets the root path to OpenSSL libraries and include files.
--with-passfile=.pine-passfile
:
Sets the password cache file.
--without-ssl
: Disables OpenSSL
support.
is the Alpine mailer. |
|
is a standalone text editor similar to the Alpine message composer. |
|
is a standalone file system navigator. |
|
is an utility for downloading a pinerc or address book to the local machine. |
|
is an utility for uploading a local pinerc or address book to an IMAP server. |
Last updated on 2014-09-20 19:22:09 -0700
Balsa-2.5.1 is a GTK2 based mail client.
SeaMonkey-2.29 includes both a mail client and newsreader in its installation.
Thunderbird-31.1.1 is a mail/news client based on the Mozilla code base.
Last updated on 2013-06-01 05:20:39 -0700
Major servers are the programs that provide content or services to users or other programs.
The Apache HTTPD package contains an open-source HTTP server. It is useful for creating local intranet web sites or running huge web serving operations.
This package is known to build and work properly using an LFS-7.6 platform.
Download (HTTP): http://archive.apache.org/dist/httpd/httpd-2.4.10.tar.bz2
Download MD5 sum: 44543dff14a4ebc1e9e2d86780507156
Download size: 4.9 MB
Estimated disk space required: 94 MB
Estimated build time: 0.7 SBU
Berkeley DB-6.1.19, Doxygen-1.8.8, libxml2-2.9.1, Lynx-2.8.8rel.2, OpenLDAP-2.4.39 (Apr-Util-1.5.3 needs to be installed with ldap suport), rsync-3.1.1, Distcache, and Lua-5.2.3
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 /srv/www -g apache \ -s /bin/false -u 25 apache
Build and install Apache HTTPD by running the following commands:
patch -Np1 -i ../httpd-2.4.10-blfs_layout-1.patch && sed '/dir.*CFG_PREFIX/s@^@#@' -i support/apxs.in && ./configure --enable-authnz-fcgi \ --enable-layout=BLFS \ --enable-mods-shared="all cgi" \ --enable-mpms-shared=all \ --enable-suexec=shared \ --with-apr=/usr/bin/apr-1-config \ --with-apr-util=/usr/bin/apu-1-config \ --with-suexec-bin=/usr/lib/httpd/suexec \ --with-suexec-caller=apache \ --with-suexec-docroot=/srv/www \ --with-suexec-logfile=/var/log/httpd/suexec.log \ --with-suexec-uidmin=100 \ --with-suexec-userdir=public_html && make
This package does not come with a test suite.
Now, as the root
user (notice
that DESTDIR does not work properly as unpriviledged user):
make install && mv -v /usr/sbin/suexec /usr/lib/httpd/suexec && chgrp apache /usr/lib/httpd/suexec && chmod 4754 /usr/lib/httpd/suexec && chown -v -R apache:apache /srv/www
sed '/dir.*CFG_PREFIX/s@^@#@'...: Forces the apxs utility to use absolute pathnames for modules, when instructed to do so.
--enable-authnz-fcgi
:
Build FastCGI authorizer-based authentication and
authorization (mod_authnz_fcgi.so fast CGI module).
--enable-mods-shared="all
cgi"
: 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-mpm-shared=all
: This
switch ensures that all MPM (Multi Processing Modules) are
built as Dynamic Shared Objects (DSOs), so the user can
choose which one to use at runtime.
--enable-suexec
: This
switch enables building of the Apache suEXEC module which can be used
to allow users to run CGI and SSI scripts under user IDs
different from the user ID of the calling web server.
--with-suexec-*
:
These switches control suEXEC module behavior, such as
default document root, minimal UID that can be used to run
the script under the suEXEC. Please note that with minimal
UID 100, you can't run CGI or SSI scripts under suEXEC as the
apache
user.
...
/usr/lib/httpd/suexec: These commands put
suexec wrapper
into proper location, since it is not meant to be run
directly. They also adjust proper permissions of the binary,
making it setgid apache
.
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.
See file:///usr/share/httpd/manual/configuring.html for detailed instructions on customising your Apache HTTP server configuration file.
If you want the Apache
server to start automatically when the system is booted,
install the /etc/rc.d/init.d/httpd
init script
included in the blfs-bootscripts-20140919 package.
make install-httpd
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 a program that checks whether it can setgid to the group specified. This is to see if it is a valid group for Apache2 to use at runtime. If the user (should be run as superuser) is in that group, or can setgid to it, it will return 0. |
|
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 clean up the disk cache. |
|
is used to manipulate the DBM password databases. |
|
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 used to generate DBM files from text, for use in RewriteMap. |
|
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 2014-09-20 19:22:09 -0700
The BIND package provides a DNS server and client utilities. If you are only interested in the utilities, refer to the BIND Utilities-9.10.0-P2.
This package is known to build and work properly using an LFS-7.6 platform.
Download (FTP): ftp://ftp.isc.org/isc/bind9/9.10.0-P2/bind-9.10.0-P2.tar.gz
Download MD5 sum: 85f5bbd655f7fbb946fe128c5adcc9ca
Download size: 8.0 MB
Estimated disk space required: 101 MB (additional 54 MB to run the test suite)
Estimated build time: 1.6 SBU (additional 24 minutes, processor independent, to run the complete test suite)
Optional patch (if net-tools is not installed): http://www.linuxfromscratch.org/patches/blfs/7.6/bind-9.10.0-P2-use_iproute2-1.patch
libcap-2.24 with PAM, libxml2-2.9.1, MIT Kerberos V5-1.12.2, and OpenSSL-1.0.1i
PostgreSQL-9.3.5, MariaDB-10.0.13 or MySQL, Berkeley DB-6.1.19, OpenLDAP-2.4.39, and unixODBC-2.3.2
Net::DNS-0.76 and Net-tools-CVS_20101030 (you may omit net-tools by using the optional patch to utilize iproute2, but the IPv6 tests will fail)
Doxygen-1.8.8, texlive-20140525, and libxslt-1.1.28
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.10.0-P2-use_iproute2-1.patch
Install BIND by running the following commands:
sed -e 's/resolver //' \ -e 's/rpz //' \ -e 's/statistics //' \ -e 's/xfer //' \ -i bin/tests/system/conf.sh.in && ./configure --prefix=/usr \ --sysconfdir=/etc \ --localstatedir=/var \ --mandir=/usr/share/man \ --enable-threads \ --with-libtool \ --disable-static \ --with-randomdev=/dev/urandom && 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 tests that ran successfully:
grep "R:PASS" check.log | wc -l
and the following command check tests that failed:
grep -A1 "R:FAIL" check.log
Finally, install the package as the root
user:
make install && chmod -v 0755 /usr/lib/lib{bind9,dns,isc{,cc,cfg},lwres}.so && install -v -m755 -d /usr/share/doc/bind-9.10.0-P2/{arm,misc} && install -v -m644 doc/arm/*.html \ /usr/share/doc/bind-9.10.0-P2/arm && install -v -m644 \ doc/misc/{dnssec,ipv6,migrat*,options,rfc-compliance,roadmap,sdb} \ /usr/share/doc/bind-9.10.0-P2/misc
sed ... bin/tests/system/conf.sh.in: This command removes tests that fail (some for unknown reasons).
--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.
--with-randomdev=/dev/urandom
:
This parameter specifes a non-blocking random device for use
with digital signatures.
--disable-static
:
This switch prevents installation of static versions of the
libraries.
chmod 0755 /usr/lib/{lib{bind9,dns,isc{,cc,cfg},lwres}.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,pz} usr/lib/engines var/run/named && mknod /srv/named/dev/null c 1 3 && mknod /srv/named/dev/urandom c 1 9 && chmod 666 /srv/named/dev/{null,urandom} && cp /etc/localtime etc && touch /srv/named/managed-keys.bind && cp /usr/lib/engines/libgost.so usr/lib/engines && [ $(uname -m) = x86_64 ] && ln -sv lib usr/lib64
The rndc.conf
file contains
information for controlling named operations with the
rndc utility.
Generate a key for use in the named.conf
and rdnc.conf
with the rndc-confgen command:
rndc-confgen -r /dev/urandom -b 512 > /etc/rndc.conf && sed '/conf/d;/^#/!d;s:^# ::' /etc/rndc.conf > /srv/named/etc/named.conf
Complete 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";
};
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 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 199.7.91.13
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-20140919 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 2014-09-19 13:13:19 -0700
The ProFTPD package contains a secure and highly configurable FTP daemon. This is useful for serving large file archives over a network.
This package is known to build and work properly using an LFS-7.6 platform.
Download (FTP): ftp://ftp.proftpd.org/distrib/source/proftpd-1.3.5.tar.gz
Download MD5 sum: aff1bff40e675244d72c4667f203e5bb
Download size: 7.2 MB
Estimated disk space required: 34 MB
Estimated build time: 0.3 SBU
libcap-2.24 with PAM, Linux-PAM-1.1.8, MariaDB-10.0.13 or MySQL, OpenSSL-1.0.1i, PCRE-8.35, PostgreSQL-9.3.5 and to run tests: Check-0.9.14 and Test::Unit-0.14
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
The tests for this package require a very old (2001) version
of the Perl Module Test::Unit. Even when using that version
of Test::Unit, there are many failures (41/1397) although the
program appears to run well. The tests take a long time (45
minutes, not CPU dependent) and are not recommended. To test
the results anyway, add the switch: --enable-tests
to the
configure, and
issue: make
check. If the tests are run with root
privileges, more tests are run, but there are more failures.
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.
Support for most of the dependency packages requires using options passed to the configure script. View the output from ./configure --help for complete information about enabling dependency packages.
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
MaxInstances 30
# Set the user and group that the server normally runs at.
User proftpd
Group proftpd
# To cause every FTP user to be "jailed" (chrooted) into their home
# directory, uncomment this line.
#DefaultRoot ~
# 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
DisplayChdir .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-20140919 package.
make install-proftpd
is the FTP daemon. |
|
shows the current number of connections. |
|
is used to control the proftpd daemon while it is running. |
|
is a Perl script designed to create and manage AuthUserFiles and AuthGroupFiles of the correct format for proftpd. |
|
is a Perl script for sending email based on the proftpd TransferLog. |
|
is a Perl script designed to create and manage limits and tally files for the mod_quotatab + mod_quotatab_file module combination for proftpd. |
|
provides a way to scrub the scoreboard file on demand. |
|
shuts down all proftpd servers at a given time. |
|
displays running status on connections. |
|
shows current process information for each session. |
Last updated on 2014-09-21 12:24:38 -0700
The vsftpd package contains a very secure and very small FTP daemon. This is useful for serving files over a network.
This package is known to build and work properly using an LFS-7.6 platform.
Download (FTP): https://security.appspot.com/downloads/vsftpd-3.0.2.tar.gz
Download MD5 sum: 8b00c749719089401315bd3c44dddbb2
Download size: 196 KB
Estimated disk space required: 1.8 MB
Estimated build time: less than 0.1 SBU
libcap-2.24 with PAM, Linux-PAM-1.1.8, and OpenSSL-1.0.1i
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 /usr/share/vsftpd/empty && install -v -d -m 0755 /home/ftp && groupadd -g 47 vsftpd && groupadd -g 45 ftp && useradd -c "vsftpd User" -d /dev/null -g vsftpd -s /bin/false -u 47 vsftpd && useradd -c anonymous_user -d /home/ftp -g ftp -s /bin/false -u 45 ftp
If you did not install the optional libcap2 package, run the following to avoid a build error:
sed -i -e 's|#define VSF_SYSDEP_HAVE_LIBCAP|//&|' sysdeputil.c
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 (/usr/share/vsftpd/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. 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=/usr/share/vsftpd/empty
EOF
Install the /etc/rc.d/init.d/vsftpd
init script
included in the blfs-bootscripts-20140919 package.
make install-vsftpd
Last updated on 2014-09-21 12:24:38 -0700
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).
Dovecot is an Internet Message Access Protocol (IMAP) and Post Office Protocol (POP) server, written primarily with security in mind. Dovecot aims to be lightweight, fast and easy to set up as well as highly configurable and easily extensible with plugins.
This package is known to build and work properly using an LFS-7.6 platform.
Download (HTTP): http://www.dovecot.org/releases/2.2/dovecot-2.2.13.tar.gz
Download MD5 sum: a3eb1c0b1822c4f2b0fe9247776baa71
Download size: 4.4 MB
Estimated disk space required: 203 MB
Estimated build time: 1.6 SBU
libcap-2.24 with PAM, OpenSSL-1.0.1i, MIT Kerberos V5-1.12.2 (for GSSAPI support), Linux-PAM-1.1.8, OpenLDAP-2.4.39, PostgreSQL-9.3.5, MariaDB-10.0.13 or MySQL, SQLite-3.8.6, and CLucene-2.3.3.4
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/dovecot
There should be dedicated users and groups for unprivileged
Dovecot processes and for processing users' logins. Issue the
following commands as the root
user:
groupadd -g 42 dovecot && useradd -c "Dovecot unprivileged user" -d /dev/null -u 42 \ -g dovecot -s /bin/false dovecot && groupadd -g 43 dovenull && useradd -c "Dovecot login user" -d /dev/null -u 43 \ -g dovenull -s /bin/false dovenull
Install Dovecot by running the following commands:
./configure --prefix=/usr \ --sysconfdir=/etc \ --localstatedir=/var \ --docdir=/usr/share/doc/dovecot-2.2.13 \ --disable-static && make
To test the results, issue make check.
Now, as the root
user:
make install
--disable-static
:
This switch prevents installation of static versions of the
libraries.
--with-ldap
: This switch enables
OpenLDAP authentication
support.
--with-pgsql
: This switch enables
PostgreSQL authentication
support.
--with-mysql
: This switch enables
MySQL authentication
support.
--with-sqlite
: This switch
enables SQLite
authentication support.
--with-lucene
: This switch
enables CLucene full text
search support.
--with-krb5
: This switch enables
GSSAPI authentication support.
Copy an example configuration, which you can use as a starting point:
cp -rv /usr/share/doc/dovecot-2.2.13/example-config/* /etc/dovecot
The following configuration is a simple proof of concept
with IMAP service using local users for authentication and
mailbox location. Reading files from the conf.d
directory is commented out since
the included example configuration requires OpenSSL and Linux PAM.
sed -i '/^\!include / s/^/#/' /etc/dovecot/dovecot.conf &&
chmod -v 1777 /var/mail &&
cat > /etc/dovecot/local.conf << "EOF"
protocols = imap
ssl = no
# The next line is only needed if you have no IPv6 network interfaces
listen = *
mail_location = mbox:~/Mail:INBOX=/var/mail/%u
userdb {
driver = passwd
}
passdb {
driver = shadow
}
EOF
You will definitely want to read the official documentation at http://wiki2.dovecot.org/ if you plan to use Dovecot in production environment.
If you want the Dovecot
server to start automatically when the system is booted,
install the /etc/rc.d/init.d/dovecot
init script
included in the blfs-bootscripts-20140919 package.
make install-dovecot
Last updated on 2014-09-21 16:43:46 -0700
The Exim package contains a Mail Transport Agent written by the University of Cambridge, released under the GNU Public License.
This package is known to build and work properly using an LFS-7.6 platform.
Download (HTTP): http://ftp.exim.org/pub/exim/exim4/exim-4.84.tar.bz2
Download (FTP): ftp://ftp.exim.org/pub/exim/exim4/exim-4.84.tar.bz2
Download MD5 sum: 3d14522e604b687b9e515f5aa739b2c0
Download size: 1.7 MB
Estimated disk space required: 17 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-6.1.19 or TDB (as an alternative to GDBM, built in LFS), X Window System, OpenLDAP-2.4.39, OpenSSL-1.0.1i or GnuTLS-3.3.7, Cyrus SASL-2.1.26, MariaDB-10.0.13 or MySQL, PostgreSQL-9.3.5, SQLite-3.8.6, Linux-PAM-1.1.8, and OpenDMARC
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 && echo -e "USE_GDBM = yes\nDBMLIB = -lgdbm" >> 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.84 && install -v -m644 doc/* /usr/share/doc/exim-4.84 && ln -sfv 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.
echo -e ... > Local/Makefile: Setting those variables allows to use GDBM instead of the default Berkeley DB. Remove this command if you have installed Berkeley DB-6.1.19.
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 -sfv 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.84/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.84/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.84/doc/html/spec_html/ch04.html#SECTdb.
For SSL functionality, see the instructions at http://exim.org/exim-html-4.84/doc/html/spec_html/ch04.html#SECTinctlsssl and http://exim.org/exim-html-4.84/doc/html/spec_html/ch39.html.
For tcpwrappers functionality, see the instructions at http://exim.org/exim-html-4.84/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.84/doc/html/spec_html/index.html.
For information about linking Linux-PAM, refer to the instructions http://exim.org/exim-html-4.84/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.84/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.84/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.84/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-20140919 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.84-3 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 2014-09-21 16:43:46 -0700
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.
This package is known to build and work properly using an LFS-7.6 platform.
Download (FTP): ftp://ftp.porcupine.org/mirrors/postfix-release/official/postfix-2.11.1.tar.gz
Download MD5 sum: 56ac1f1a79737c4ac1e24535a122a4a6
Download size: 3.9 MB
Estimated disk space required: 170 MB
Estimated build time: 0.4 SBU
Cyrus SASL-2.1.26 and OpenSSL-1.0.1i
MariaDB-10.0.13 or MySQL, OpenLDAP-2.4.39, PCRE-8.35, PostgreSQL-9.3.5, SQLite-3.8.6, and CDB or TinyCDB
Note that SQLite, MySQL, PostgreSQL and CDB are only useful if there is a known need for them.
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/postfix
Before you compile the program, you need to create users
and groups that will be expected to be in place during the
installation. Add the users and groups with the following
commands issued by the root
user:
groupadd -g 32 postfix && groupadd -g 33 postdrop && useradd -c "Postfix Daemon User" -d /var/spool/postfix -g postfix \ -s /bin/false -u 32 postfix && chown -v postfix:postfix /var/mail
Run the following command to enable Postfix to compile against the current version of BerkeleyDB:
sed -i "s/DB_VERSION_MAJOR == 5/DB_VERSION_MAJOR >= 5/" src/util/dict_db.c
The README files are formatted to be read with a pager like Less or More. If you want to read them in a text editor, make them legible with a sed:
sed -i 's/.\x08//g' README_FILES/*
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.
For more details read the readme files.
To use Cyrus-SASL with Postfix, use the following arguments:
CCARGS='-DUSE_SASL_AUTH -DUSE_CYRUS_SASL -I/usr/include/sasl'
AUXLIBS='-lsasl2'
To use OpenLDAP with Postfix, use the following arguments:
CCARGS='-DHAS_LDAP'
AUXLIBS='-lldap -llber'
To use Sqlite with Postfix, use the following arguments:
CCARGS='-DHAS_SQLITE'
AUXLIBS='-lsqlite3 -lpthread'
To use MySQL with Postfix, use the following arguments:
CCARGS='-DHAS_MYSQL -I/usr/include/mysql'
AUXLIBS='-lmysqlclient -lz -lm'
To use PostgreSQL with Postfix, use the following arguments:
CCARGS='-DHAS_PGSQL -I/usr/include/postgresql'
AUXLIBS='-lpq -lz -lm'
To use CDB or TinyCDB with Postfix, use the following arguments:
CCARGS='-DHAS_CDB'
AUXLIBS='</path/to/CDB>
/libcdb.a'
If you have Cyrus SASL and OpenSSL installed, install Postfix by running the following commands:
make CCARGS="-DUSE_TLS -I/usr/include/openssl/ \ -DUSE_SASL_AUTH -DUSE_CYRUS_SASL -I/usr/include/sasl" \ AUXLIBS="-lssl -lcrypto -lsasl2" \ makefiles && make
This package does not come with a useful test suite.
Now, as the root
user:
sh postfix-install -non-interactive \ daemon_directory=/usr/lib/postfix \ manpage_directory=/usr/share/man \ html_directory=/usr/share/doc/postfix-2.11.1/html \ readme_directory=/usr/share/doc/postfix-2.11.1/readme
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. If the
html_directory
and readme_directory
options are not set then the
documentation will not be installed.
Create (or append to an existing) /etc/aliases
with the following command.
Change <LOGIN>
for your
non-root login identity so mail addressed to root
can be forwarded to you. As the
root
user:
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/postfix/main.cf
and /etc/postfix/master.cf
files must be personalized for your system. The
main.cf
file needs your
fully qualified hostname. You will find that main.cf
is self documenting, so load it
into your editor to make the changes you need for your
situation.
Postfix can also be set
up to run in a chroot jail. See the file in the source
examples/chroot-setup/LINUX2
for
details.
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-20140919
package.
make install-postfix
A symlink to |
|
A symlink to |
|
is a utility for Postfix alias database maintenance |
|
Prints the contents of files from the Postfix queue in human readable format. |
|
Displays or changes the value of Postfix configuration parameters. |
|
Creates a file in the maildrop directory and copies its standard input to the file. |
|
is the Postfix control program. |
|
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. |
|
is the Postfix multi-instance manager. It allows a system administrator to manage multiple Postfix instances on a single host. |
|
The Postfix user interface for queue management. |
|
The Postfix user interface for superuser queue management. |
|
is the Postfix to Sendmail compatibility interface. |
Last updated on 2014-09-09 14:11:38 -0700
The sendmail package contains a Mail Transport Agent (MTA).
This package is known to build and work properly using an LFS-7.6 platform.
Download (FTP): ftp://ftp.sendmail.org/pub/sendmail/sendmail.8.14.9.tar.gz
Download MD5 sum: 6a3bdceffa592316f830be289a4bd783
Download size: 2.0 MB
Estimated disk space required: 16 MB
Estimated build time: 0.3 SBU
OpenLDAP-2.4.39 (client)
OpenSSL-1.0.1i and Cyrus SASL-2.1.26
Procmail-3.22, nph, and ghostscript-9.14 (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
See the source tree sendmail/README
file for information on
linking optional packages into the build. Use the example
below, which adds support for 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 -DSASL -DLDAPMAP')
APPENDDEF(`confLIBS', `-lssl -lcrypto -lsasl2 -lldap -llber -ldb')
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
sed -i 's|/usr/man/man|/usr/share/man/man|' \
devtools/OS/Linux &&
sed -i -r "s/^# if (DB.*)$/# if (\1) || DB_VERSION_MAJOR >= 5/" \
include/sm/bdb.h &&
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.9/{cf,sendmail} && install -v -m644 CACerts FAQ KNOWNBUGS LICENSE PGPKEYS README RELEASE_NOTES \ /usr/share/doc/sendmail-8.14.9 && install -v -m644 sendmail/{README,SECURITY,TRACEFLAGS,TUNING} \ /usr/share/doc/sendmail-8.14.9/sendmail && install -v -m644 cf/README /usr/share/doc/sendmail-8.14.9/cf && for manpage in sendmail editmap mailstats makemap praliases smrsh do install -v -m644 $manpage/$manpage.8 /usr/share/man/man8 done && install -v -m644 sendmail/aliases.5 /usr/share/man/man5 && install -v -m644 sendmail/mailq.1 /usr/share/man/man1 && install -v -m644 sendmail/newaliases.1 /usr/share/man/man1 && install -v -m644 vacation/vacation.1 /usr/share/man/man1
Install the sendmail Installation and Operations Guide with the following commands:
Remove op.pdf
from the
make and
install
commands below if you don't have Ghostscript installed.
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.9 && install -v -m644 op.ps op.txt op.pdf /usr/share/doc/sendmail-8.14.9 && cd ../..
cat > devtools/Site/site.config.m4 << "EOF": This creates a configuration file changing some of the default settings.
sed ... devtools/OS/Linux: The site.config.m4 does not honor a change to the man directory, so fix it in the OS definitions.
sed ... include/sm/bdb.h: This allows sendmail to build properly with Berkeley DB-6.1.19 versions 5 and above.
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
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:
cd /etc/mail && 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-20140919 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 2014-09-21 16:43:46 -0700
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 known to build and work properly using an LFS-7.6 platform.
Download (HTTP): http://download.oracle.com/berkeley-db/db-6.1.19.tar.gz
Download MD5 sum: bfea581b42dc0fc247041e7d48cfd7fb
Download size: 36 MB
Estimated disk space required: 300 MB with Java and Tcl supports
Estimated build time: 0.8 SBU
Tcl-8.6.2, OpenJDK-1.7.0.65/IcedTea-2.5.2, and Sharutils-4.14 (for the uudecode command)
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/db
Install Berkeley DB by running the following commands:
cd build_unix && ../dist/configure --prefix=/usr \ --enable-compat185 \ --enable-dbm \ --disable-static \ --enable-cxx && make
Now, as the root
user:
make docdir=/usr/share/doc/db-6.1.19 install && chown -v -R root:root \ /usr/bin/db_* \ /usr/include/db{,_185,_cxx}.h \ /usr/lib/libdb*.{so,la} \ /usr/share/doc/db-6.1.19
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-dbm
: Enables legacy
interface support needed by some older packages.
make
docdir=/usr/share/doc/db-6.1.19 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.
--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.
prints the pathnames of log files that are no longer in use. |
|
is a daemon process used to monitor and checkpoint database logs. |
|
is used to abort lock requests when deadlocks are detected. |
|
converts database files to a flat file format readable by db_load. |
|
creates "hot backup" or "hot failover" snapshots of Berkeley DB databases. |
|
is used to create database files from flat files created with db_dump. |
|
verifies the log files of a database. |
|
converts database log files to human readable text. |
|
is used to restore a database to a consistent state after a failure. |
|
is a daemon process that provides replication/HA services on a transactional environment. |
|
displays database environment statistics. |
|
analyzes the data in a btree database, and suggests a page size that is likely to deliver optimal operation. |
|
is used to upgrade database files to a newer version of Berkeley DB. |
|
is used to run consistency checks on database files. |
Last updated on 2014-09-15 22:13:43 -0700
MariaDB is a community-developed fork and a drop-in replacement for the MySQL relational database management system.
This package is known to build and work properly using an LFS-7.6 platform.
Download (HTTP): https://downloads.mariadb.org/interstitial/mariadb-10.0.13/source/mariadb-10.0.13.tar.gz
Download (FTP): ftp://mirrors.fe.up.pt/pub/mariadb/mariadb-10.0.13/source/mariadb-10.0.13.tar.gz
Download MD5 sum: 7b2e88864b51d7d0607dc37abb8a0adb
Download size: 49 MB
Estimated disk space required: 1.4 GB
Estimated build time: 9.4 SBU (additional 0.4 SBU for the tests)
The installed size of MariaDB is 297 MB, but this can be reduced by about 160 MB, if desired, by removing the /usr/share/mysql/test directory after installation.
CMake-3.0.1 and OpenSSL-1.0.1i
Boost-1.56.0, libxml2-2.9.1, Linux-PAM-1.1.8, PCRE-8.35, unixODBC-2.3.2, Valgrind-3.10.0, libaio, Judy, Sphinx, and TokuDB
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/mariadb
MariaDB and MySQL cannot be installed on the same system without extensive changes to the build configuration of one of the two applications.
For security reasons, running the server as an unprivileged
user and group is strongly encouraged. Issue the following
(as root
) to create the user
and group:
groupadd -g 40 mysql && useradd -c "MySQL Server" -d /srv/mysql -g mysql -s /bin/false -u 40 mysql
Install MariaDB by running the following commands:
sed -i "s@data/test@\${INSTALL_MYSQLTESTDIR}@g" sql/CMakeLists.txt && sed -i "s/srv_buf_size/srv_sort_buf_size/" storage/innobase/row/row0log.cc && mkdir build && cd build && cmake -DCMAKE_BUILD_TYPE=Release \ -DCMAKE_INSTALL_PREFIX=/usr \ -DINSTALL_DOCDIR=share/doc/mysql \ -DINSTALL_DOCREADMEDIR=share/doc/mysql \ -DINSTALL_MANDIR=share/man \ -DINSTALL_MYSQLSHAREDIR=share/mysql \ -DINSTALL_MYSQLTESTDIR=share/mysql/test \ -DINSTALL_PLUGINDIR=lib/mysql/plugin \ -DINSTALL_SBINDIR=sbin \ -DINSTALL_SCRIPTDIR=bin \ -DINSTALL_SQLBENCHDIR=share/mysql/bench \ -DINSTALL_SUPPORTFILESDIR=share/mysql \ -DMYSQL_DATADIR=/srv/mysql \ -DMYSQL_UNIX_ADDR=/run/mysqld/mysqld.sock \ -DWITH_EXTRA_CHARSETS=complex \ -DWITH_EMBEDDED_SERVER=ON \ -DTOKUDB_OK=0 \ .. && make
To test the results, issue: make test.
Now, as the root
user:
make install
sed -i ...: First sed sets correct installation directory for some components. Second sed fixes a bug in the code.
-DWITH_EMBEDDED_SERVER=ON
: This
switch enables compiling the embedded server library needed
by certain applications, such as Amarok..
-DWITH_EXTRA_CHARSETS=complex
:
This switch enables support for the complex character sets.
-DWITHOUT_SERVER=ON
-DWITH_UNIT_TESTS=OFF
: Use these switches if you don't
want the server and would like to build the client only.
There are numerous options available to cmake. Check the output of the cmake . -LH for additional customization options.
Create basic /etc/mysql/my.cnf
using the following
command as the root
user:
install -v -dm 755 /etc/mysql &&
cat > /etc/mysql/my.cnf << "EOF"
# Begin /etc/mysql/my.cnf
# The following options will be passed to all MySQL clients
[client]
#password = your_password
port = 3306
socket = /run/mysqld/mysqld.sock
# The MySQL server
[mysqld]
port = 3306
socket = /run/mysqld/mysqld.sock
datadir = /srv/mysql
skip-external-locking
key_buffer_size = 16M
max_allowed_packet = 1M
sort_buffer_size = 512K
net_buffer_length = 16K
myisam_sort_buffer_size = 8M
# Don't listen on a TCP/IP port at all.
skip-networking
# required unique id between 1 and 2^32 - 1
server-id = 1
# Uncomment the following if you are using BDB tables
#bdb_cache_size = 4M
#bdb_max_lock = 10000
# Uncomment the following if you are using InnoDB tables
#innodb_data_home_dir = /srv/mysql
#innodb_data_file_path = ibdata1:10M:autoextend
#innodb_log_group_home_dir = /srv/mysql
# You can set .._buffer_pool_size up to 50 - 80 %
# of RAM but beware of setting memory usage too high
#innodb_buffer_pool_size = 16M
#innodb_additional_mem_pool_size = 2M
# Set .._log_file_size to 25 % of buffer pool size
#innodb_log_file_size = 5M
#innodb_log_buffer_size = 8M
#innodb_flush_log_at_trx_commit = 1
#innodb_lock_wait_timeout = 50
[mysqldump]
quick
max_allowed_packet = 16M
[mysql]
no-auto-rehash
# Remove the next comment character if you are not familiar with SQL
#safe-updates
[isamchk]
key_buffer = 20M
sort_buffer_size = 20M
read_buffer = 2M
write_buffer = 2M
[myisamchk]
key_buffer_size = 20M
sort_buffer_size = 20M
read_buffer = 2M
write_buffer = 2M
[mysqlhotcopy]
interactive-timeout
# End /etc/mysql/my.cnf
EOF
You can now install a database and change the ownership to
the unprivileged user and group (perform as the
root
user):
mysql_install_db --basedir=/usr --datadir=/srv/mysql --user=mysql && chown -R mysql:mysql /srv/mysql
Further configuration requires that the MariaDB server is running. Start the
server using the following commands as the root
user:
install -v -m755 -o mysql -g mysql -d /run/mysqld && 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.
mysqladmin -u root 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-20140919 package
as the root
user to start
the MariaDB server during
system boot-up.
make install-mysql
Descriptions of all the programs and libraries would be several pages long. Instead, consult the man pages or the online documentation at https://mariadb.com/kb/en/mariadb-documentation/.
The Perl DBI modules must be installed for some of the MariaDB support programs to function properly.
Last updated on 2014-09-15 22:13:43 -0700
PostgreSQL is an advanced object-relational database management system (ORDBMS), derived from the Berkeley Postgres database management system.
This package is known to build and work properly using an LFS-7.6 platform.
Download (HTTP): http://ftp.postgresql.org/pub/source/v9.3.5/postgresql-9.3.5.tar.bz2
Download (FTP): ftp://ftp.postgresql.org/pub/source/v9.3.5/postgresql-9.3.5.tar.bz2
Download MD5 sum: 5059857c7d7e6ad83b6d55893a121b59
Download size: 16 MB
Estimated disk space required: 183 MB (additional 168 MB to run the testsuite)
Estimated build time: 1.6 SBU (additional 0.3 SBU to run the testsuite)
Python-2.7.8, Tcl-8.6.2, OpenSSL-1.0.1i, libxml2-2.9.1, libxslt-1.1.28, OpenLDAP-2.4.39, Linux-PAM-1.1.8, MIT Kerberos V5-1.12.2 and Bonjour
docbook-4.5, docbook-dsssl-1.79, OpenJade-1.3.2, and SGMLSpm-1.1
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/postgresql
Install PostgreSQL with the following commands:
sed -i '/DEFAULT_PGSOCKET_DIR/s@/tmp@/run/postgresql@' src/include/pg_config_manual.h && ./configure --prefix=/usr \ --enable-thread-safety \ --docdir=/usr/share/doc/postgresql-9.3.5 && make
There are a number of programs in the contrib/
directory. If you are going to run
this installation as a server and wish to build some of them,
enter make -C
contrib or make
-C contrib/<SUBDIR-NAME>
for each subdirectory.
Now, as the root
user:
make install && make install-docs
If you made any of the contrib/
programs, as the root
user:
make -C contrib/<SUBDIR-NAME>
install
This package contains a known security hole that allows other users on the same machine to gain access to an operating system account while it is doing "make check": CVE-2014-0067. Tests must be run after install, with postgresql server down, as unprivileged user.
To test the results, issue: make check.
If you only intend to use PostgreSQL as a client to connect to a server on another machine, your installation is complete and you should not run the remaining commands.
Initialize a database cluster with the following commands
issued by the root
user:
install -v -dm700 /srv/pgsql/data && install -v -dm755 /run/postgresql && groupadd -g 41 postgres && useradd -c "PostgreSQL Server" -g postgres -d /srv/pgsql/data \ -u 41 postgres && chown -Rv postgres:postgres /srv/pgsql /run/postgresql && 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 ...:
This sed changes server socket location from /tmp
to /run/postgresql
.
--docdir=/usr/share/doc/postgresql-9.3.5
:
This switch puts the documentation in a versioned directory.
--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.
--with-openssl
: build with
support for OpenSSL
encrypted connections.
--with-perl
: build the PL/Perl
server-side language.
--with-python
: build the
PL/Python server-side language.
--with-tcl
: build the PL/Tcl
server-side language.
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-9.3.5/html/index.html.
Install the /etc/rc.d/init.d/postgresql
init script
included in the blfs-bootscripts-20140919 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. |
|
resolves OIDs (Object IDs) and file nodes in a PostgreSQL data directory. |
|
clean up PostgreSQL WAL (write-ahead log) archive files. |
|
takes base backups of a running PostgreSQL cluster. |
|
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. |
|
check the connection status of a PostgreSQL server. |
|
clears the write-ahead log and optionally resets
some fields in the |
|
creates databases from dump files created by pg_dump. |
|
supports the creation of a PostgreSQL warm standby server. |
|
determine fastest wal_sync method for PostgreSQL. |
|
measure timing overhead. |
|
upgrade a PostgreSQL server instance. |
|
display a human-readable rendering of the write-ahead log of a PostgreSQL database cluster. |
|
run a benchmark test on PostgreSQL. |
|
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. |
|
(a symlink to postgres) 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. |
|
remove orphaned large objects from a PostgreSQL database. |
|
contains functions to support embedded SQL in C programs. |
|
is the ecpg compatibility library. |
|
is the port-specific subsystem of the Postgres backend. |
|
contains functions for dealing with Postgres data types. |
|
is the C programmer's API to Postgres. |
Last updated on 2014-09-21 12:24:38 -0700
The SQLite package is a software library that implements a self-contained, serverless, zero-configuration, transactional SQL database engine.
This package is known to build and work properly using an LFS-7.6 platform.
Download (HTTP): http://sqlite.org/2014/sqlite-autoconf-3080600.tar.gz
Download MD5 sum: f7e4a156b583abeba349629e2364224b
Download size: 1.9 MB
Estimated disk space required: 16 MB (additional 24 MB for the Optional Documentation)
Estimated build time: 0.2 SBU
Optional Documentation
Download (HTTP): http://sqlite.org/2014/sqlite-doc-3080600.zip
Download MD5 sum: e65b1a9569d3e3129538942255db0af1
Download size: 4.6 MB
UnZip-6.0 (required to unzip the documentation)
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/sqlite
If you downloaded the optional documentation, issue the following command to install the documentation into the source tree:
unzip -q ../sqlite-doc-3080600.zip
Install SQLite by running the following commands:
./configure --prefix=/usr --disable-static \ CFLAGS="-g -O2 -DSQLITE_ENABLE_FTS3=1 \ -DSQLITE_ENABLE_COLUMN_METADATA=1 \ -DSQLITE_ENABLE_UNLOCK_NOTIFY=1 \ -DSQLITE_SECURE_DELETE=1" && make
This package does not come with a test suite.
Now, as the root
user:
make install
If you downloaded the optional documentation, issue the
following commands as the root
user to install it:
install -v -m755 -d /usr/share/doc/sqlite-3.8.6 && cp -v -R sqlite-doc-3080600/* /usr/share/doc/sqlite-3.8.6
--disable-static
:
This switch prevents installation of static versions of the
libraries.
CFLAGS="-g -O2
-DSQLITE_ENABLE_FTS3=1 -DSQLITE_ENABLE_COLUMN_METADATA=1
-DSQLITE_SECURE_DELETE
-DSQLITE_ENABLE_UNLOCK_NOTIFY=1"
: Applications
such as Firefox require
secure delete and enable unlock notify to be turned on. The
only way to do this is to include them in the CFLAGS. By
default, these are set to "-g
-O2"
so we specify that to preserve those settings.
You may, of course, wish to omit the '-g'
if you do not wish to create debugging
information. For further information on what can be specified
see http://www.sqlite.org/compile.html.
Last updated on 2014-09-15 12:23:10 -0700
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 OpenLDAP package provides an open source implementation of the Lightweight Directory Access Protocol.
This package is known to build and work properly using an LFS-7.6 platform.
Download (FTP): ftp://ftp.openldap.org/pub/OpenLDAP/openldap-release/openldap-2.4.39.tgz
Download MD5 sum: b0d5ee4b252c841dec6b332d679cf943
Download size: 5.3 MB
Estimated disk space required: 48 MB (client) 103 MB (server)
Estimated build time: 0.9 SBU (client) 1.8 SBU (server)
Berkeley DB-6.1.19 (only if building server)
Cyrus SASL-2.1.26 and OpenSSL-1.0.1i
ICU-53.1, MariaDB-10.0.13 or MySQL or PostgreSQL-9.3.5, OpenSLP, Pth-2.0.7 and unixODBC-2.3.2
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/openldap
If you only need to install the client side ldap* binaries, corresponding man pages, libraries and header files (referred to as a “client-only” install), issue these commands instead of the following ones (no test suite available):
patch -Np1 -i ../openldap-2.4.39-blfs_paths-1.patch && patch -Np1 -i ../openldap-2.4.39-symbol_versions-1.patch && autoconf && ./configure --prefix=/usr \ --sysconfdir=/etc \ --disable-static \ --enable-dynamic \ --disable-debug \ --disable-slapd && make depend && make
Then, as the root
user:
make install
There should be a dedicated user and group to take control of
the slapd
daemon after it is started. Issue the following commands as
the root
user:
groupadd -g 83 ldap && useradd -c "OpenLDAP Daemon Owner" -d /var/lib/openldap -u 83 \ -g ldap -s /bin/false ldap
Install OpenLDAP by running the following commands:
patch -Np1 -i ../openldap-2.4.39-blfs_paths-1.patch && patch -Np1 -i ../openldap-2.4.39-symbol_versions-1.patch && autoconf && ./configure --prefix=/usr \ --sysconfdir=/etc \ --localstatedir=/var \ --libexecdir=/usr/lib \ --disable-static \ --disable-debug \ --enable-dynamic \ --enable-crypt \ --enable-spasswd \ --enable-modules \ --enable-rlookups \ --enable-backends=mod \ --enable-overlays=mod \ --disable-ndb \ --disable-sql && make depend && make
To test the results, issue: make test. Tests may fail after a long time (~ 5 SBU).
Now, as the root
user:
make install && chmod -v 700 /var/lib/openldap && chown -v -R root:ldap /var/lib/openldap && chmod -v 640 /etc/openldap/{slapd.{conf,ldif},DB_CONFIG.example} && chown -v root:ldap /etc/openldap/{slapd.{conf,ldif},DB_CONFIG.example} && install -v -dm700 -o ldap -g ldap /etc/openldap/slapd.d && install -v -dm755 /usr/share/doc/openldap-2.4.39 && cp -vfr doc/drafts /usr/share/doc/openldap-2.4.39 && cp -vfr doc/rfc /usr/share/doc/openldap-2.4.39 && cp -vfr doc/guide /usr/share/doc/openldap-2.4.39
Having slapd configuration files and ldap databases in /var/lib/openldap readable by anyone is a SECURITY ISSUE, especially since a file stores admin password in PLAIN TEXT. That's why mode 640 and root:ldap ownership were used. Owner is root, so only root can modify the file, and group is ldap, so that the group which owns slapd daemon could read but not modify the file in case of a security breach.
--disable-static
:
This switch prevents installation of static versions of the
libraries.
--disable-debug
: This
switch disables the debugging code in OpenLDAP.
--enable-dynamic
:
This switch forces the OpenLDAP libraries to be dynamically
linked to the executable programs.
--enable-crypt
: This
switch enables using of crypt(3) passwords.
--enable-spasswd
:
This switch enables SASL
password verification.
--enable-modules
:
This switch enables dynamic module support.
--enable-rlookups
:
This switch enables reverse lookups of client hostnames.
--enable-backends
:
This switch enables all available backends.
--enable-overlays
:
This switch enables all available overlays.
--disable-ndb
: This
switch disables MySQL NDB
Cluster backend which causes configure to fail if
MySQL is present.
--disable-sql
: This
switch explicitly disables the SQL backend. Omit this switch
if a SQL server is installed and you are going to use a SQL
backend.
--libexecdir=/usr/lib
: This
switch controls where the /usr/lib/openldap
directory is installed.
Everything in that directory is a library, so it belongs
under /usr/lib
instead of
/usr/libexec
.
--enable-slp
: This switch enables
SLPv2 support. Use it if you have installed OpenSLP.
You can run ./configure --help to see if there are other switch you can pass to the configure command to enable other options or dependency packages.
Configuring the slapd 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.4
Administrator's Guide (also installed locally in
/usr/share/doc/openldap-2.4.39/guide/admin
).
Documents located at http://www.openldap.org/pub/.
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/slapd
init script
included in the blfs-bootscripts-20140919 package
using the following command:
make install-slapd
You'll need to modify the /etc/sysconfig/slapd
to include the
parameters needed for your specific configuration. See
the slapd
man page for parameter information.
Start the LDAP server using the init script:
/etc/rc.d/init.d/slapd 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. |
|
issues the LDAP extended operation specified by oid or one of the special keywords whoami, cancel, or refresh. |
|
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 used to set the password of an LDAP user. |
|
opens a connection to an LDAP server, binds and performs a search using specified parameters. |
|
is a command that allows to either compose or decompose LDAP URIs. |
|
opens a connection to an LDAP server, binds and displays whoami information. |
|
is used to check the behavior of slapd by verifying access to directory data according to the access control list directives defined in its configuration. |
|
is used to add entries specified in LDAP Directory Interchange Format (LDIF) to an LDAP database. |
|
is used to check the behavior of the slapd in mapping identities for authentication and authorization purposes, as specified in slapd.conf. |
|
is used to generate an LDAP LDIF output based upon the contents of a slapd database. |
|
is the standalone LDAP server. |
|
checks a list of string-represented DNs based on schema syntax. |
|
is used to regenerate slapd indexes based upon the current contents of a database. |
|
is an OpenLDAP password utility. |
|
is used to check schema compliance of the contents of a slapd database. |
|
checks the sanity of the |
|
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 2014-09-21 12:24:38 -0700
Unbound is a validating, recursive, and caching DNS resolver. It is designed as a set of modular components that incorporate modern features, such as enhanced security (DNSSEC) validation, Internet Protocol Version 6 (IPv6), and a client resolver library API as an integral part of the architecture.
This package is known to build and work properly using an LFS-7.6 platform.
Download (HTTP): http://www.unbound.net/downloads/unbound-1.4.22.tar.gz
Download MD5 sum: 59728c74fef8783f8bad1d7451eba97f
Download size: 4.6 MB
Estimated disk space required: 42 MB (additional 70 MB for docs and 5 MB for tests)
Estimated build time: 0.6 SBU (additional less than 0.1 SBU for docs and 0.2 SBU for tests)
ldns-1.6.17 and OpenSSL-1.0.1i
libevent-2.0.21, Python-2.7.8, SWIG-3.0.2 (for Python bindings), and Doxygen-1.8.8 (for html documentation)
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/unbound
There should be a dedicated user and group to take control of
the unbound
daemon after it is started. Issue the following commands as
the root
user:
groupadd -g 88 unbound && useradd -c "Unbound DNS resolver" -d /var/lib/unbound -u 88 \ -g unbound -s /bin/false unbound
Install Unbound by running the following commands:
./configure --prefix=/usr \ --sysconfdir=/etc \ --disable-static \ --with-pidfile=/run/unbound.pid && make
If you have Doxygen-1.8.8 package installed and want to build html documentation, run the following command:
make doc
To test the results, issue make check.
Now, as the root
user:
make install && mv -v /usr/sbin/unbound-host /usr/bin/
If you built html documentation, install it by running the
following commands as the root
user:
install -v -m755 -d /usr/share/doc/unbound-1.4.22 && install -v -m644 doc/html/* /usr/share/doc/unbound-1.4.22
--disable-static
:
This switch prevents installation of static versions of the
libraries.
--with-libevent
: This option
enables libevent support allowing use of large outgoing port
ranges.
--with-pyunbound
: This option
enables building of the Python bindings.
In the default configuration, unbound will bind to
localhost (127.0.0.1 IP address) and allow recursive
queries only from localhost clients. If you want to use
unbound for
local DNS resolution, run the following command as the
root
user:
echo "nameserver 127.0.0.1" > /etc/resolv.conf
If you are using a DHCP client for connecting to a network,
/etc/resolv.conf
gets
overwritten with values provided by DHCP server. You can
override this, for example in DHCP-4.3.1, by running the following
command:
sed -i '/request /i\supersede domain-name-servers 127.0.0.1;' \ /etc/dhcp/dhclient.conf
For advanced configuration see /etc/unbound/unbound.conf
file and the
documentation.
If you want the Unbound
server to start automatically when the system is booted,
install the /etc/rc.d/init.d/unbound
init script
included in the blfs-bootscripts-20140919 package.
make install-unbound
is a DNS resolver daemon. |
|
performs setup or update of the root trust anchor for DNSSEC validation. |
|
checks unbound configuration file for syntax and other errors. |
|
performs remote administration on the unbound DNS resolver. |
|
generates self-signed certificate and private keys for the server and client. |
|
is a DNS lookup utility similar to host from BIND Utilities-9.10.0-P2. |
|
provides the Unbound API functions to programs. |
Last updated on 2013-07-21 21:06:50 +0200
xinetd is the eXtended InterNET services daemon, a secure replacement for inetd.
This package is known to build and work properly using an LFS-7.6 platform.
Download (FTP): ftp://anduin.linuxfromscratch.org/BLFS/svn/x/xinetd-2.3.15.tar.gz
Download MD5 sum: 77358478fd58efa6366accae99b8b04c
Download size: 308 KB
Estimated disk space required: 5.0 MB
Estimated build time: less than 0.1 SBU
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/xinetd
Install xinetd by running the following commands:
sed -i -e "s/exec_server/child_process/" xinetd/builtins.c && sed -i -e "/register unsigned count/s/register//" xinetd/itox.c && ./configure --prefix=/usr --mandir=/usr/share/man --with-loadavg && make
This package does not come with a test suite.
Now, as the root
user:
make install
sed ... xinetd/builtins.c: This command fixes a security issue.
sed ... xinetd/itox.c: This command fixes some compiler warnings.
Ensure the path to all daemons is /usr/sbin
, rather than the default path
of /usr/bin
, 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 several xinetd applications. In many cases, these applications are not needed. Some classic 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/systat << "EOF" &&# Begin /etc/xinetd.d/systat service systat { disable = yes socket_type = stream wait = no user = nobody server = /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/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
The format of the /etc/xinetd.conf
is documented in the
xinetd.conf.5
man page.
As the root
user, install
the /etc/rc.d/init.d/xinetd
init script included in the blfs-bootscripts-20140919 package.
make install-xinetd
As the root
user, use the
new boot script to start xinetd:
/etc/rc.d/init.d/xinetd start
Check the /var/log/daemon.log
to ensure the appropriate services are started. If no
services are enabled, the program will not start without
the -stayalive
option.
Last updated on 2014-09-21 12:24:38 -0700
This chapter contains instructions to build and configure a graphical user environment.
Xorg, in addition to clearing up some licensing issues with XFree86, introduced a completely auto-tooled build for the X Window system. This means that the packages build and install using the conventional configure, make and make install commands, as opposed to a proprietary build system that required hand editing of configuration parameters in a C-like syntax.
Xorg also brought with it a modular build system. While this separation into modules resulted in full control of the features available to the X server on any given installation, it also made the installation more tedious as it requires installing more than 100 different packages to obtain a functional X Window environment. Most large commercial distributions have elected to use Xorg over the XFree86 distribution due to both licensing issues and the increased functionality provided by it over XFree86. With the modular build system, also came incremental updates to individual packages. The distribution of Xorg is given a release number by the developers, in this case Xorg-7.7, and is referred to as the "katamari" by the upstream developers.
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 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 will be well over 100 packages that need to be fetched from the download location. To assist with such a large task, installing Wget-1.15 is strongly recommended for downloading the needed files. A complete wget file list is provided for each page 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.
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.
Instructions have been given that utilize the Sudo-1.8.10p3 package.
It is recommended that you use the :NOPASSWD
configuration option
for the user that will be building the xorg packages.
The following instructions assume that the shell startup files have been set up as described in The Bash Shell Startup Files.
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 \ --localstatedir=/var --disable-static"
Create an /etc/profile.d/xorg.sh
configuration file
containing these variables as the root
user:
cat > /etc/profile.d/xorg.sh << "EOF"
XORG_PREFIX="<PREFIX>
"
XORG_CONFIG="--prefix=$XORG_PREFIX --sysconfdir=/etc --localstatedir=/var --disable-static"
export XORG_PREFIX XORG_CONFIG
EOF
chmod 644 /etc/profile.d/xorg.sh
If you've decided to use the standard /usr
prefix, you can omit the remainder
of this page and continue at util-macros-1.19.0.
If you've decided to not use the standard prefix, be
sure to add $XORG_PREFIX/bin
to
your PATH
environment variable,
and $XORG_PREFIX/lib/pkgconfig
and $XORG_PREFIX/share/pkgconfig
to your
PKG_CONFIG_PATH
variable. It is
also helpful to specify additional search paths for
gcc and an
include directory for the aclocal program. Issue the
following commands as the root
user:
cat >> /etc/profile.d/xorg.sh << "EOF" pathappend $XORG_PREFIX/bin PATH pathappend $XORG_PREFIX/lib/pkgconfig PKG_CONFIG_PATH pathappend $XORG_PREFIX/share/pkgconfig PKG_CONFIG_PATH pathappend $XORG_PREFIX/lib LIBRARY_PATH pathappend $XORG_PREFIX/include C_INCLUDE_PATH pathappend $XORG_PREFIX/include CPLUS_INCLUDE_PATH ACLOCAL='aclocal -I $XORG_PREFIX/share/aclocal' export PATH PKG_CONFIG_PATH ACLOCAL LIBRARY_PATH C_INCLUDE_PATH CPLUS_INCLUDE_PATH EOF
You should also add $XORG_PREFIX/lib
to the /etc/ld.so.conf
file. Again, as the
root
user, issue the
following command:
echo "$XORG_PREFIX/lib" >> /etc/ld.so.conf
You should also modify /etc/man_db.conf
, adding appropriate
MANDATORY_MANPATH, MANPATH_MAP, and MANDB_MAP entries
following the examples for /usr/X11R6
. Issue the following command as
the root
user:
sed "s@/usr/X11R6@$XORG_PREFIX
@g" -i /etc/man_db.conf
Some applications look for shared files in /usr/share/X11
. Create a symbolic link to
the proper location as the root
user:
ln -s $XORG_PREFIX/share/X11 /usr/share/X11
Finally, if building on x86_64, you will need to create the
$XORG_PREFIX/lib
directory and
the $XORG_PREFIX/lib64
symlink.
Again, as the root
user,
issue the following commands:
install -v -m755 -d $XORG_PREFIX && install -v -m755 -d $XORG_PREFIX/lib && ln -s lib $XORG_PREFIX/lib64
Last updated on 2014-08-17 11:21:21 -0700
The util-macros package contains the m4 macros used by all of the Xorg packages.
This package is known to build and work properly using an LFS-7.6 platform.
Download (HTTP): http://xorg.freedesktop.org/releases/individual/util/util-macros-1.19.0.tar.bz2
Download (FTP): ftp://ftp.x.org/pub/individual/util/util-macros-1.19.0.tar.bz2
Download MD5 sum: 1cf984125e75f8204938d998a8b6c1e1
Download size: 80 KB
Estimated disk space required: 500 KB
Estimated build time: less than 0.1 SBU
Xorg build environment (should be set for the following instructions to work)
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/util-macros
Install util-macros by running the following commands:
./configure $XORG_CONFIG
This package does not come with a test suite.
Now, as the root
user:
make install
$XORG_PREFIX
/share/pkgconfig and
$XORG_PREFIX
/share/util-macros
Last updated on 2014-09-10 06:19:10 -0700
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.
This package is known to build and work properly using an LFS-7.6 platform.
Download (HTTP): http://xorg.freedesktop.org/releases/individual/proto/
Download (FTP): ftp://ftp.x.org/pub/individual/proto/
Download size: 3.3 MB
Estimated disk space required: 26 MB
Estimated build time: 0.8 SBU
fop-1.1, libxslt-1.1.28, xmlto-0.0.26 and AsciiDoc (to build additional documentation)
There is a reciprocal dependency with fop-1.1. If you wish to build the documentation, you'll need to re-install the Protocol Headers after the installation is complete and fop-1.1 has been installed.
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/Xorg7ProtocolHeaders
First, create a list of files to be downloaded. This file will also be used to verify the integrity of the downloads when complete:
cat > proto-7.7.md5 << "EOF"
1a05fb01fa1d5198894c931cf925c025 bigreqsproto-1.1.2.tar.bz2
98482f65ba1e74a08bf5b056a4031ef0 compositeproto-0.4.2.tar.bz2
998e5904764b82642cc63d97b4ba9e95 damageproto-1.2.1.tar.bz2
4ee175bbd44d05c34d43bb129be5098a dmxproto-2.3.1.tar.bz2
b2721d5d24c04d9980a0c6540cb5396a dri2proto-2.8.tar.bz2
a3d2cbe60a9ca1bf3aea6c93c817fee3 dri3proto-1.0.tar.bz2
e7431ab84d37b2678af71e29355e101d fixesproto-5.0.tar.bz2
36934d00b00555eaacde9f091f392f97 fontsproto-2.1.3.tar.bz2
5565f1b0facf4a59c2778229c1f70d10 glproto-1.4.17.tar.bz2
6caebead4b779ba031727f66a7ffa358 inputproto-2.3.1.tar.bz2
677ea8523eec6caca86121ad2dca0b71 kbproto-1.0.6.tar.bz2
2d569c75884455c7148d133d341e8fd6 presentproto-1.0.tar.bz2
ce4d0b05675968e4c83e003cc809660d randrproto-1.4.0.tar.bz2
1b4e5dede5ea51906f1530ca1e21d216 recordproto-1.14.2.tar.bz2
a914ccc1de66ddeb4b611c6b0686e274 renderproto-0.11.1.tar.bz2
cfdb57dae221b71b2703f8e2980eaaf4 resourceproto-1.2.0.tar.bz2
edd8a73775e8ece1d69515dd17767bfb scrnsaverproto-1.2.2.tar.bz2
e658641595327d3990eab70fdb55ca8b videoproto-2.3.2.tar.bz2
5f4847c78e41b801982c8a5e06365b24 xcmiscproto-1.2.2.tar.bz2
70c90f313b4b0851758ef77b95019584 xextproto-7.3.0.tar.bz2
120e226ede5a4687b25dd357cc9b8efe xf86bigfontproto-1.2.0.tar.bz2
a036dc2fcbf052ec10621fd48b68dbb1 xf86dgaproto-2.1.tar.bz2
1d716d0dac3b664e5ee20c69d34bc10e xf86driproto-2.1.1.tar.bz2
e793ecefeaecfeabd1aed6a01095174e xf86vidmodeproto-2.3.1.tar.bz2
9959fe0bfb22a0e7260433b8d199590a xineramaproto-1.2.1.tar.bz2
4dc2464bfeade23dab5de38da0f6b1b5 xproto-7.0.26.tar.bz2
EOF
To download the needed files using wget, use the following commands:
mkdir proto && cd proto && grep -v '^#' ../proto-7.7.md5 | awk '{print $2}' | wget -i- -c \ -B http://xorg.freedesktop.org/releases/individual/proto/ && md5sum -c ../proto-7.7.md5
When installing multiple packages in a script, the installation needs to be done as the root user. There are three general options that can be used to do this:
Run the entire script as the root user (not recommended).
Use the sudo command from the Sudo-1.8.10p3 package.
Use su -c "command arguments" (quotes required) which will ask for the root password for every iteration of the loop.
One way to handle this situation is to create a short bash function that automatically selects the appropriate method. Once the command is set in the environment, it does not need to be set again.
as_root() { if [ $EUID = 0 ]; then $* elif [ -x /usr/bin/sudo ]; then sudo $* else su -c \\"$*\\" fi } export -f as_root
First, start a subshell that will exit on error:
bash -e
Install all of the packages by running the following commands:
for package in $(grep -v '^#' ../proto-7.7.md5 | awk '{print $2}') do packagedir=${package%.tar.bz2} tar -xf $package pushd $packagedir ./configure $XORG_CONFIG as_root make install popd rm -rf $packagedir done
Finally, exit the shell that was started earlier:
exit
bash -e: This command starts a subshell that will exit if any command returns a value other than 0, causing the for loop to exit immediately if an error occurs. This also eliminates the need for the && construct used elsewhere in the book.
$XORG_PREFIX
/include/GL, $XORG_PREFIX
/include/X11, $XORG_PREFIX
/share/doc/bigreqsproto,
$XORG_PREFIX
/share/doc/compositeproto,
$XORG_PREFIX
/share/doc/damageproto,
$XORG_PREFIX
/share/doc/dri2proto,
$XORG_PREFIX
/share/doc/dri3proto,
$XORG_PREFIX
/share/doc/fixesproto,
$XORG_PREFIX
/share/doc/fontsproto,
$XORG_PREFIX
/share/doc/kbproto,
$XORG_PREFIX
/share/doc/presentproto,
$XORG_PREFIX
/share/doc/randrproto,
$XORG_PREFIX
/share/doc/recordproto,
$XORG_PREFIX
/share/doc/renderproto,
$XORG_PREFIX
/share/doc/resourceproto,
$XORG_PREFIX
/share/doc/scrnsaverproto,
$XORG_PREFIX
/share/doc/videoproto,
$XORG_PREFIX
/share/doc/xcmiscproto,
$XORG_PREFIX
/share/doc/xextproto and
$XORG_PREFIX
/share/doc/xproto
Last updated on 2014-09-10 06:19:10 -0700
The libXau package contains a library implementing the X11 Authorization Protocol. This is useful for restricting client access to the display.
This package is known to build and work properly using an LFS-7.6 platform.
Download (HTTP): http://xorg.freedesktop.org/releases/individual/lib/libXau-1.0.8.tar.bz2
Download (FTP): ftp://ftp.x.org/pub/individual/lib/libXau-1.0.8.tar.bz2
Download MD5 sum: 685f8abbffa6d145c0f930f00703b21b
Download size: 289 KB
Estimated disk space required: 2.6 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 2014-09-10 06:19:10 -0700
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.
This package is known to build and work properly using an LFS-7.6 platform.
Download (HTTP): http://xorg.freedesktop.org/releases/individual/lib/libXdmcp-1.1.1.tar.bz2
Download (FTP): ftp://ftp.x.org/pub/individual/lib/libXdmcp-1.1.1.tar.bz2
Download MD5 sum: b94af6cef211cf3ee256f7e81f70fcd9
Download size: 304 KB
Estimated disk space required: 2.6 MB
Estimated build time: less than 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
$XORG_PREFIX
/share/doc/libXdmcp
Last updated on 2014-09-10 06:19:10 -0700
The xcb-proto package provides the XML-XCB protocol descriptions that libxcb uses to generate the majority of its code and API.
This package is known to build and work properly using an LFS-7.6 platform.
Download (HTTP): http://xcb.freedesktop.org/dist/xcb-proto-1.11.tar.bz2
Download MD5 sum: 6bf2797445dc6d43e9e4707c082eff9c
Download size: 136 KB
Estimated disk space required: 2.1 MB
Estimated build time: 0.1 SBU
Python-2.7.8 or Python-3.4.1, and Xorg build environment (should be set for the following instructions to work)
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/xcb-proto
Install xcb-proto by running the following commands:
./configure $XORG_CONFIG
To test the results, issue: make check.
Now, as the root
user:
make install
$XORG_PREFIX
/share/xcb and $XORG_PREFIX
/lib/python2.7/site-packages/xcbgen
or $XORG_PREFIX
/lib/python3.4/site-packages/xcbgen
Last updated on 2014-09-10 06:19:10 -0700
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.
This package is known to build and work properly using an LFS-7.6 platform.
Download (HTTP): http://xcb.freedesktop.org/dist/libxcb-1.11.tar.bz2
Download MD5 sum: 5a873ebd383d1a60612dd6ec6b42c781
Download size: 506 KB
Estimated disk space required: 41 MB (124 MB with doxygen generated documentation)
Estimated build time: 0.2 SBU (additional 0.1 to generate API documentation)
libXau-1.0.8 and xcb-proto-1.11
Doxygen-1.8.8 (to generate API documentation) Check-0.9.14 (to run tests) and libxslt-1.1.28
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/libxcb
Install libxcb by running the following commands:
sed "s/pthread-stubs//" -i configure && ./configure $XORG_CONFIG \ --enable-xinput \ --docdir='${datadir}'/doc/libxcb-1.11 && make
To test the results, issue: make check.
Now, as the root
user:
make install
sed "s/pthread-stubs//" -i configure: This sed removes dependency on libpthread-stubs package which is useless on Linux.
--enable-xinput
: This
switch enables XCB Xinput extension.
--without-doxygen
: This switch
can be used to disable the API documentation if Doxygen-1.8.8 is installed.
$XORG_PREFIX
/include/xcb and $XORG_PREFIX
/share/doc/libxcb-1.11
Last updated on 2014-09-10 06:19:10 -0700
The Xorg libraries provide library routines that are used within all X Window applications.
This package is known to build and work properly using an LFS-7.6 platform.
Download (HTTP): http://xorg.freedesktop.org/releases/individual/lib/
Download (FTP): ftp://ftp.x.org/pub/individual/lib/
Download size: 13 MB
Estimated disk space required: 275 MB
Estimated build time: 3.1 SBU
Fontconfig-2.11.1 and libxcb-1.11
xmlto-0.0.26 with one or more of the following: fop-1.1, Links-2.8, Lynx-2.8.8rel.2, and w3m-0.5.3 (to generate additional PDF or text documentation for the libXfont package).
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/Xorg7Libraries
First, create a list of files to be downloaded. This file will also be used to verify the integrity of the downloads when complete:
cat > lib-7.7.md5 << "EOF"
a615e17d9fee6f097fc3b716eacb3dca xtrans-1.3.4.tar.bz2
c35d6ad95b06635a524579e88622fdb5 libX11-1.6.2.tar.bz2
52df7c4c1f0badd9f82ab124fb32eb97 libXext-1.3.3.tar.bz2
a8a0dbd2299b2568d8c919883f5c8501 libFS-1.0.6.tar.bz2
addfb1e897ca8079531669c7c7711726 libICE-1.0.9.tar.bz2
499a7773c65aba513609fe651853c5f3 libSM-1.2.2.tar.bz2
7a773b16165e39e938650bcc9027c1d5 libXScrnSaver-1.2.2.tar.bz2
03149823ae57bb02d0cec90d5b97d56c libXt-1.1.4.tar.bz2
41d92ab627dfa06568076043f3e089e4 libXmu-1.1.2.tar.bz2
769ee12a43611cdebd38094eaf83f3f0 libXpm-3.5.11.tar.bz2
7446f5fba888672aad068b29c0928ba3 libXaw-1.0.12.tar.bz2
b985b85f8b9386c85ddcfe1073906b4d libXfixes-5.0.1.tar.bz2
f7a218dcbf6f0848599c6c36fc65c51a libXcomposite-0.4.4.tar.bz2
2bd9a15fcf64d216e63b8d129e4f1f1c libXrender-0.9.8.tar.bz2
1e7c17afbbce83e2215917047c57d1b3 libXcursor-1.1.14.tar.bz2
0cf292de2a9fa2e9a939aefde68fd34f libXdamage-1.1.4.tar.bz2
ad2919764933e075bb0361ad5caa3d19 libfontenc-1.1.2.tar.bz2
664629bfa7cdf8b984155019fd395dcb libXfont-1.5.0.tar.bz2
331b3a2a3a1a78b5b44cfbd43f86fcfe libXft-2.3.2.tar.bz2
9c4a69c34b19ec1e4212e849549544cb libXi-1.7.4.tar.bz2
9336dc46ae3bf5f81c247f7131461efd libXinerama-1.1.3.tar.bz2
210ed9499a3d9c96e3a221629b7d39b0 libXrandr-1.4.2.tar.bz2
45ef29206a6b58254c81bea28ec6c95f libXres-1.0.7.tar.bz2
25c6b366ac3dc7a12c5d79816ce96a59 libXtst-1.2.2.tar.bz2
e0af49d7d758b990e6fef629722d4aca libXv-1.0.10.tar.bz2
2e4014e9d55c430e307999a6b3dd256d libXvMC-1.0.8.tar.bz2
d7dd9b9df336b7dd4028b6b56542ff2c libXxf86dga-1.1.4.tar.bz2
e46f6ee4f4567349a3189044fe1bb712 libXxf86vm-1.1.3.tar.bz2
ba983eba5a9f05d152a0725b8e863151 libdmx-1.1.3.tar.bz2
b7c0d3afce14eedca57312a3141ec13a libpciaccess-0.13.2.tar.bz2
19e6533ae64abba0773816a23f2b9507 libxkbfile-1.0.8.tar.bz2
2dd10448c1166e71a176206a8dfabe6d libxshmfence-1.1.tar.bz2
EOF
To download the needed files using wget, use the following commands:
mkdir lib && cd lib && grep -v '^#' ../lib-7.7.md5 | awk '{print $2}' | wget -i- -c \ -B http://xorg.freedesktop.org/releases/individual/lib/ && md5sum -c ../lib-7.7.md5
When installing multiple packages in a script, the installation needs to be done as the root user. There are three general options that can be used to do this:
Run the entire script as the root user (not recommended).
Use the sudo command from the Sudo-1.8.10p3 package.
Use su -c "command arguments" (quotes required) which will ask for the root password for every iteration of the loop.
One way to handle this situation is to create a short bash function that automatically selects the appropriate method. Once the command is set in the environment, it does not need to be set again.
as_root() { if [ $EUID = 0 ]; then $* elif [ -x /usr/bin/sudo ]; then sudo $* else su -c \\"$*\\" fi } export -f as_root
First, start a subshell that will exit on error:
bash -e
Install all of the packages by running the following commands:
for package in $(grep -v '^#' ../lib-7.7.md5 | awk '{print $2}') do packagedir=${package%.tar.bz2} tar -xf $package pushd $packagedir case $packagedir in libXfont-[0-9]* ) ./configure $XORG_CONFIG --disable-devel-docs ;; libXt-[0-9]* ) ./configure $XORG_CONFIG \ --with-appdefaultdir=/etc/X11/app-defaults ;; * ) ./configure $XORG_CONFIG ;; esac make as_root make install popd rm -rf $packagedir as_root /sbin/ldconfig done
Finally, exit the shell that was started earlier:
exit
--with-fop
: Use
fop-1.1 to
generate PDF documentation (only for the libXfont package).
--disable-devel-docs
:
Disable generation of text documentation in the libXfont
package if xmlto-0.0.26 is installed without a text
browser. Omit this parameter (or the entire case statement) if a text
browser is installed.
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 three
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
$XORG_PREFIX
/include/X11/fonts,
$XORG_PREFIX
/include/X11/Xtrans,
$XORG_PREFIX
/share/doc/libFS,
$XORG_PREFIX
/share/doc/libICE,
$XORG_PREFIX
/share/doc/libSM,
$XORG_PREFIX
/share/doc/libX11,
$XORG_PREFIX
/share/doc/libXaw,
$XORG_PREFIX
/share/doc/libXext,
$XORG_PREFIX
/share/doc/libXi,
$XORG_PREFIX
/share/doc/libXmu,
$XORG_PREFIX
/share/doc/libXrender,
$XORG_PREFIX
/share/doc/libXt,
$XORG_PREFIX
/share/doc/libXtst,
$XORG_PREFIX
/share/doc/libXvMC,
$XORG_PREFIX
/share/doc/xtrans
and $XORG_PREFIX
/share/X11/locale
checks the format of an XPM file. |
|
shows an XPM file and/or converts XPM 1 or 2 files to XPM 3. |
|
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 generic PCI Access library for X. |
|
is the X Session Management Library. |
|
is the Xlib Library. |
|
is the X Athena Widgets Library, version 6. |
|
is the X Athena Widgets Library, version 7. |
|
are symbolic links to the current X Athena Widgets Library, version 7. |
|
is the X Composite Library. |
|
is the X Cursor management library. |
|
is the X Damage Library. |
|
is the Misc X Extension Library. |
|
provides augmented versions of core protocol requests. |
|
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 X interface library for miscellaneous utilities not part of the Xlib standard. |
|
is the Mini Xmu Library. |
|
is the X Pixmap Library. |
|
is the X Resize, Rotate and Reflection extension library. |
|
is the X Render Library. |
|
is the X-Resource extension client library. |
|
exposes an event API on top of Linux futexes. |
|
is the X11 Screen Saver extension client 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-VidMode X extension. |
Last updated on 2014-09-10 06:19:10 -0700
The xcb-util package provides additional extensions to the XCB library, many that were previously found in Xlib, but are not part of core X protocol.
This package is known to build and work properly using an LFS-7.6 platform.
Download (HTTP): http://xcb.freedesktop.org/dist/xcb-util-0.3.9.tar.bz2
Download MD5 sum: 01dcc7a16d5020530552712710646ea2
Download size: 284 KB
Estimated disk space required: 2.5 MB
Estimated build time: less than 0.1 SBU
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/xcb-util
Install xcb-util 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 2014-09-10 06:19:10 -0700
The xcb-util-image package provides additional extensions to the XCB library.
This package is known to build and work properly using an LFS-7.6 platform.
Download (HTTP): http://xcb.freedesktop.org/dist/xcb-util-image-0.3.9.tar.bz2
Download MD5 sum: fabb80b36490b00fc91289e2c7f66770
Download size: 311 KB
Estimated disk space required: 2.8 MB
Estimated build time: less than 0.1 SBU
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/xcb-util-image
Install xcb-util-image by running the following commands:
./configure $XORG_CONFIG && make
To test the results, issue: LD_LIBRARY_PATH=$XORG_PREFIX/lib make check.
Now, as the root
user:
make install
Last updated on 2014-09-10 06:19:10 -0700
The xcb-util-keysyms package contains a library for handling standard X key constants and conversion to/from keycodes.
This package is known to build and work properly using an LFS-7.6 platform.
Download (HTTP): http://xcb.freedesktop.org/dist/xcb-util-keysyms-0.3.9.tar.bz2
Download MD5 sum: 64e4aad2d48cd4a92e2da13b9f35bfd2
Download size: 280 KB
Estimated disk space required: 2.2 MB
Estimated build time: less than 0.1 SBU
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/xcb-util-keysyms
Install xcb-util-keysyms by running the following commands:
./configure $XORG_CONFIG && make
To test the results, issue: LD_LIBRARY_PATH=$XORG_PREFIX/lib make check.
Now, as the root
user:
make install
Last updated on 2014-09-11 15:53:52 -0700
The xcb-util-renderutil package provides additional extensions to the XCB library.
This package is known to build and work properly using an LFS-7.6 platform.
Download (HTTP): http://xcb.freedesktop.org/dist/xcb-util-renderutil-0.3.9.tar.bz2
Download MD5 sum: 468b119c94da910e1291f3ffab91019a
Download size: 288 KB
Estimated disk space required: 2.4 MB
Estimated build time: less than 0.1 SBU
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/xcb-util-renderutil
Install xcb-util-renderutil 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 2014-09-11 15:53:52 -0700
The xcb-util-wm package contains libraries which provide client and window-manager helpers for EWMH and ICCCM.
This package is known to build and work properly using an LFS-7.6 platform.
Download (HTTP): http://xcb.freedesktop.org/dist/xcb-util-wm-0.4.1.tar.bz2
Download MD5 sum: 87b19a1cd7bfcb65a24e36c300e03129
Download size: 316 KB
Estimated disk space required: 3.3 MB
Estimated build time: less than 0.1 SBU
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/xcb-util-wm
Install xcb-util-wm by running the following commands:
./configure $XORG_CONFIG && make
To test the results, issue: LD_LIBRARY_PATH=$XORG_PREFIX/lib make check.
Now, as the root
user:
make install
Last updated on 2014-09-11 15:53:52 -0700
Mesa is an OpenGL compatible 3D graphics library.
This package is known to build and work properly using an LFS-7.6 platform.
Download (FTP): ftp://ftp.freedesktop.org/pub/mesa/10.2.7/MesaLib-10.2.7.tar.bz2
Download MD5 sum: b54b793d5b60b9da31ba1f86a6f82bf8
Download size: 6.8 MB
Estimated disk space required: 297 MB (additional 2 MB for the docs)
Estimated build time: 4.3 SBU
Xorg Libraries, libdrm-2.4.56, and Python-2.7.8
elfutils-0.160 (required for radeon 3d drivers), libvdpau-0.8 (to build VDPAU drivers), LLVM-3.5.0 (required for radeon 3d drivers and also for llvmpipe which is intended to be the fastest of the three sw rasterizers, see http://www.mesa3d.org/faq.html#part3 )
mesa-demos
provides more than 300 extra demos to test MesaLib; two of them overwrites the ones
included by MesaLib-10.2.7-add_xdemos-1.patch
; to avoid
that, install in a different prefix or add, e.g. --program-prefix=md
to configure, and
Wayland
The instructions below assume that elfutils and LLVM are installed. You will need to modify the instructions if you choose not to install them. Please note that elfutils and LLVM are required for Radeon 3D drivers. For an explanation of gallium please see https://en.wikipedia.org/wiki/Gallium3D.
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/mesalib
Unlike other packages, the MesaLib-10.2.7.tar.bz2
archive will
extract to the Mesa-10.2.7
directory.
If you have downloaded the xdemos patch (needed if testing the Xorg installation per BLFS instructions), apply it by running the following command:
patch -Np1 -i ../MesaLib-10.2.7-add_xdemos-1.patch
Install MesaLib by running the following commands:
patch -Np1 -i ../MesaLib-10.2.7-upstream_fixes-1.patch && ./autogen.sh CFLAGS="-O2" CXXFLAGS="-O2" \ --prefix=$XORG_PREFIX \ --sysconfdir=/etc \ --enable-texture-float \ --enable-gles1 \ --enable-gles2 \ --enable-openvg \ --enable-osmesa \ --enable-xa \ --enable-gbm \ --enable-gallium-egl \ --enable-gallium-gbm \ --enable-glx-tls \ --with-egl-platforms="drm,x11" \ --with-gallium-drivers="nouveau,r300,r600,radeonsi,svga,swrast" && make
If you have applied the xdemos patch, build the demo programs by running the following command:
make -C xdemos DEMOS_PREFIX=$XORG_PREFIX
This package does not come with a test suite.
Now, as the root
user:
make install
If you have built the demo programs, install them by running
the following command as the root
user:
make -C xdemos DEMOS_PREFIX=$XORG_PREFIX install
If desired, install the optional documentation by running the
following commands as the root
user:
install -v -dm755 /usr/share/doc/MesaLib-10.2.7 && cp -rfv docs/* /usr/share/doc/MesaLib-10.2.7
patch -Np1...: Fix various problems introduced with LLVM-3.5.0.
CFLAGS="-O2"
CXXFLAGS="-O2"
: By default, Autoconf sets CFLAGS and CXXFLAGS to "-g
-O2". That results in binaries and libraries being built with
debugging symbols which make them bigger. Override the
default flags to omit -g compiler flag so the final libraries
are smaller.
--enable-texture-float
: This
switch enables floating-point textures and render buffers.
Please consult docs/patents.txt
to see if there are any legal issues if you use this feature.
--enable-gles1
: This
switch enables support for OpenGL ES 1.x API.
--enable-gles2
: This
switch enables support for OpenGL ES 2.x API.
--enable-openvg
: This
switch enables support for OpenVG API.
--enable-osmesa
: This
switch enables building of the libOSMesa
library.
--enable-xa
: This
switch enables building of the XA X Acceleration API
(Required for VMware 3D Driver).
--enable-gbm
: This
switch enables building of the Mesa Graphics Buffer Manager library.
--enable-gallium-egl
:
This switch enables optional EGL state tracker for Gallium.
--enable-gallium-gbm
:
This switch enables optional GBM state tracker for Gallium.
--enable-glx-tls
:
This switch enables TLS (Thread Local Storage) support in
GLX.
--with-egl-platforms="..."
:
This parameter controls for which platforms EGL should be
built. Available platforms are drm, x11 and wayland.
--with-gallium-drivers="..."
:
This parameter controls which Gallium drivers should be
built. Available drivers are: i915, ilo, nouveau, r300, r600,
radeonsi, svga and swrast. You will need to remove r300, r600
and radeonsi from the list if you did not install
elfutils and LLVM.
--enable-r600-llvm-compiler
: Use
this switch to enable experimental R600 LLVM backend for graphics shaders which
claims to speed up the driver.
is a GL demo useful for troubleshooting graphics problems. |
|
is a diagnostic program that displays information about the graphics hardware and installed GL libraries. |
|
provides a native platform graphics interface as defined by the EGL-1.4 specification. |
|
is the Mesa Graphics Buffer Manager library. |
|
is the Mesa OpenGL ES 1.1 library. |
|
is the Mesa OpenGL ES 2.0 library. |
|
is the main Mesa OpenGL library. |
|
is the Mesa OpenVG 1.0 library. |
|
is the Mesa Off-screen Rendering library. |
|
is the Xorg Gallium3D acceleration library. |
Last updated on 2014-09-17 07:41:00 -0700
The xbitmaps package contains bitmap images used by multiple applications built in Xorg chapter.
This package is known to build and work properly using an LFS-7.6 platform.
Download (HTTP): http://xorg.freedesktop.org/archive/individual/data/xbitmaps-1.1.1.tar.bz2
Download (FTP): ftp://ftp.x.org/pub/individual/data/xbitmaps-1.1.1.tar.bz2
Download MD5 sum: 7444bbbd999b53bec6a60608a5301f4c
Download size: 116 KB
Estimated disk space required: 855 KB
Estimated build time: less than 0.1 SBU
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/xbitmaps
Install xbitmaps by running the following commands:
./configure $XORG_CONFIG
This package does not come with a test suite.
Now, as the root
user:
make install
$XORG_PREFIX
/include/X11/bitmaps
Last updated on 2014-09-10 06:19:10 -0700
The Xorg applications provide the expected applications available in previous X Window implementations.
This package is known to build and work properly using an LFS-7.6 platform.
Download (HTTP): http://xorg.freedesktop.org/releases/individual/app/
Download (FTP): ftp://ftp.x.org/pub/individual/app/
Download size: 4.9 MB
Estimated disk space required: 51 MB
Estimated build time: 1.9 SBU
libpng-1.6.13, MesaLib-10.2.7, xbitmaps-1.1.1, and xcb-util-0.3.9
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/Xorg7Applications
First, create a list of files to be downloaded. This file will also be used to verify the integrity of the downloads when complete:
cat > app-7.7.md5 << "EOF"
96a648a332160a7482885800f7a506fa bdftopcf-1.0.4.tar.bz2
2527344acc60741a709f4858564c5ae6 iceauth-1.0.6.tar.bz2
c4a3664e08e5a47c120ff9263ee2f20c luit-1.1.1.tar.bz2
18c429148c96c2079edda922a2b67632 mkfontdir-1.0.7.tar.bz2
03de3f15db678e277f5ef9c013aca1ad mkfontscale-1.1.1.tar.bz2
f548e389ff68424947b87785df6a321b sessreg-1.0.8.tar.bz2
1001771344608e120e943a396317c33a setxkbmap-1.3.0.tar.bz2
edce41bd7562dcdfb813e05dbeede8ac smproxy-1.0.5.tar.bz2
5c3c7431a38775caaea6051312a49bc9 x11perf-1.5.4.tar.bz2
7d6003f32838d5b688e2c8a131083271 xauth-1.0.9.tar.bz2
0066f23f69ca3ef62dcaeb74a87fdc48 xbacklight-1.2.1.tar.bz2
5812be48cbbec1068e7b718eec801766 xcmsdb-1.0.4.tar.bz2
b58a87e6cd7145c70346adad551dba48 xcursorgen-1.0.6.tar.bz2
cacc0733f16e4f2a97a5c430fcc4420e xdpyinfo-1.3.1.tar.bz2
3d3cad4d754e10e325438193433d59fd xdriinfo-1.0.4.tar.bz2
5b0a0b6f589441d546da21739fa75634 xev-1.2.1.tar.bz2
c06067f572bc4a5298f324f27340da95 xgamma-1.0.5.tar.bz2
f1669af1fe0554e876f03319c678e79d xhost-1.0.6.tar.bz2
305980ac78a6954e306a14d80a54c441 xinput-1.6.1.tar.bz2
a0fc1ac3fc4fe479ade09674347c5aa0 xkbcomp-1.2.4.tar.bz2
37ed71525c63a9acd42e7cde211dcc5b xkbevd-1.1.3.tar.bz2
502b14843f610af977dffc6cbf2102d5 xkbutils-1.0.4.tar.bz2
0ae6bc2a8d3af68e9c76b1a6ca5f7a78 xkill-1.0.4.tar.bz2
9d0e16d116d1c89e6b668c1b2672eb57 xlsatoms-1.1.1.tar.bz2
9fbf6b174a5138a61738a42e707ad8f5 xlsclients-1.1.3.tar.bz2
2dd5ae46fa18abc9331bc26250a25005 xmessage-1.0.4.tar.bz2
5511da3361eea4eaa21427652c559e1c xmodmap-1.0.8.tar.bz2
6101f04731ffd40803df80eca274ec4b xpr-1.0.4.tar.bz2
fae3d2fda07684027a643ca783d595cc xprop-1.2.2.tar.bz2
441fdb98d2abc6051108b7075d948fc7 xrandr-1.4.3.tar.bz2
b54c7e3e53b4f332d41ed435433fbda0 xrdb-1.1.0.tar.bz2
a896382bc53ef3e149eaf9b13bc81d42 xrefresh-1.0.5.tar.bz2
dcd227388b57487d543cab2fd7a602d7 xset-1.2.3.tar.bz2
7211b31ec70631829ebae9460999aa0b xsetroot-1.1.1.tar.bz2
1fbd65e81323a8c0a4b5e24db0058405 xvinfo-1.1.2.tar.bz2
6b5d48464c5f366e91efd08b62b12d94 xwd-1.0.6.tar.bz2
b777bafb674555e48fd8437618270931 xwininfo-1.1.3.tar.bz2
3025b152b4f13fdffd0c46d0be587be6 xwud-1.0.4.tar.bz2
EOF
To download the needed files using wget, use the following commands:
mkdir app && cd app && grep -v '^#' ../app-7.7.md5 | awk '{print $2}' | wget -i- -c \ -B http://xorg.freedesktop.org/releases/individual/app/ && md5sum -c ../app-7.7.md5
When installing multiple packages in a script, the installation needs to be done as the root user. There are three general options that can be used to do this:
Run the entire script as the root user (not recommended).
Use the sudo command from the Sudo-1.8.10p3 package.
Use su -c "command arguments" (quotes required) which will ask for the root password for every iteration of the loop.
One way to handle this situation is to create a short bash function that automatically selects the appropriate method. Once the command is set in the environment, it does not need to be set again.
as_root() { if [ $EUID = 0 ]; then $* elif [ -x /usr/bin/sudo ]; then sudo $* else su -c \\"$*\\" fi } export -f as_root
First, start a subshell that will exit on error:
bash -e
Install all of the packages by running the following commands:
for package in $(grep -v '^#' ../app-7.7.md5 | awk '{print $2}') do packagedir=${package%.tar.bz2} tar -xf $package pushd $packagedir case $packagedir in luit-[0-9]* ) line1="#ifdef _XOPEN_SOURCE" line2="# undef _XOPEN_SOURCE" line3="# define _XOPEN_SOURCE 600" line4="#endif" sed -i -e "s@#ifdef HAVE_CONFIG_H@$line1\n$line2\n$line3\n$line4\n\n&@" sys.c unset line1 line2 line3 line4 ;; esac ./configure $XORG_CONFIG make as_root make install popd rm -rf $packagedir done
Finally, exit the shell that was started earlier:
exit
converts an X font from Bitmap Distribution Format to Portable Compiled Format. |
|
is the ICE authority file utility. |
|
provides locale and ISO 2022 support for Unicode terminals. |
|
creates an index of X font files in a directory. |
|
creates an index of scalable font files for X. |
|
manages utmp/wtmp entries for non-init clients. |
|
sets the keyboard using the X Keyboard Extension. |
|
is the Session Manager Proxy. |
|
is an X11 server performance test program. |
|
is an X11 server performance comparison program. |
|
is the X authority file utility. |
|
adjusts backlight brightness using RandR extension. |
|
is the Device Color Characterization utility for the X Color Management System. |
|
creates an X cursor file from a collection of PNG images. |
|
dumps an X window directly to a printer. |
|
is a display information utility for X. |
|
queries configuration information of DRI drivers. |
|
prints contents of X events. |
|
alters a monitor's gamma correction through the X server. |
|
is a server access control program for X. |
|
is a utility to configure and test X input devices. |
|
is an XKB utility program that raises a bell event. |
|
compiles an XKB keyboard description. |
|
is the XKB event daemon. |
|
shows the XKB status of keyboard LEDs. |
|
monitors modifier keys and LEDs. |
|
kills a client by its X resource. |
|
lists interned atoms defined on the server. |
|
lists client applications running on a display. |
|
displays a message or query in a window. |
|
is a utility for modifying keymaps and pointer button mappings in X. |
|
prints an X window dump. |
|
is a property displayer for X. |
|
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. |
|
is the root window parameter setting utility for X. |
|
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 2014-09-11 15:53:52 -0700
The xcursor-themes package contains the redglass and whiteglass animated cursor themes.
This package is known to build and work properly using an LFS-7.6 platform.
Download (HTTP): http://xorg.freedesktop.org/archive/individual/data/xcursor-themes-1.0.4.tar.bz2
Download (FTP): ftp://ftp.x.org/pub/individual/data/xcursor-themes-1.0.4.tar.bz2
Download MD5 sum: fdfb0ad9cfceed60e3bfe9f18765aa0d
Download size: 2.3 MB
Estimated disk space required: 12.3 MB
Estimated build time: less than 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
$XORG_PREFIX
/share/icons/handhelds,
$XORG_PREFIX
/share/icons/redglass and
$XORG_PREFIX
/share/icons/whiteglass
Last updated on 2014-09-10 06:19:10 -0700
The Xorg font packages provide needed fonts to the Xorg applications.
This package is known to build and work properly using an LFS-7.6 platform.
Download (HTTP): http://xorg.freedesktop.org/releases/individual/font/
Download (FTP): ftp://ftp.x.org/pub/individual/font/
Download size: 15.0 MB
Estimated disk space required: 278 MB
Estimated build time: 2.3 SBU
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/Xorg7Fonts
First, create a list of files to be downloaded. This file will also be used to verify the integrity of the downloads when complete:
cat > font-7.7.md5 << "EOF"
ddfc8a89d597651408369d940d03d06b font-util-1.3.0.tar.bz2
0f2d6546d514c5cc4ecf78a60657a5c1 encodings-1.0.4.tar.bz2
1347c3031b74c9e91dc4dfa53b12f143 font-adobe-100dpi-1.0.3.tar.bz2
6c9f26c92393c0756f3e8d614713495b font-adobe-75dpi-1.0.3.tar.bz2
66fb6de561648a6dce2755621d6aea17 font-adobe-utopia-100dpi-1.0.4.tar.bz2
e99276db3e7cef6dccc8a57bc68aeba7 font-adobe-utopia-75dpi-1.0.4.tar.bz2
fcf24554c348df3c689b91596d7f9971 font-adobe-utopia-type1-1.0.4.tar.bz2
6d25f64796fef34b53b439c2e9efa562 font-alias-1.0.3.tar.bz2
cc0726e4a277d6ed93b8e09c1f195470 font-arabic-misc-1.0.3.tar.bz2
9f11ade089d689b9d59e0f47d26f39cd font-bh-100dpi-1.0.3.tar.bz2
565494fc3b6ac08010201d79c677a7a7 font-bh-75dpi-1.0.3.tar.bz2
c8b73a53dcefe3e8d3907d3500e484a9 font-bh-lucidatypewriter-100dpi-1.0.3.tar.bz2
f6d65758ac9eb576ae49ab24c5e9019a font-bh-lucidatypewriter-75dpi-1.0.3.tar.bz2
e8ca58ea0d3726b94fe9f2c17344be60 font-bh-ttf-1.0.3.tar.bz2
53ed9a42388b7ebb689bdfc374f96a22 font-bh-type1-1.0.3.tar.bz2
6b223a54b15ecbd5a1bc52312ad790d8 font-bitstream-100dpi-1.0.3.tar.bz2
d7c0588c26fac055c0dd683fdd65ac34 font-bitstream-75dpi-1.0.3.tar.bz2
5e0c9895d69d2632e2170114f8283c11 font-bitstream-type1-1.0.3.tar.bz2
e452b94b59b9cfd49110bb49b6267fba font-cronyx-cyrillic-1.0.3.tar.bz2
3e0069d4f178a399cffe56daa95c2b63 font-cursor-misc-1.0.3.tar.bz2
0571bf77f8fab465a5454569d9989506 font-daewoo-misc-1.0.3.tar.bz2
6e7c5108f1b16d7a1c7b2c9760edd6e5 font-dec-misc-1.0.3.tar.bz2
bfb2593d2102585f45daa960f43cb3c4 font-ibm-type1-1.0.3.tar.bz2
a2401caccbdcf5698e001784dbd43f1a font-isas-misc-1.0.3.tar.bz2
cb7b57d7800fd9e28ec35d85761ed278 font-jis-misc-1.0.3.tar.bz2
143c228286fe9c920ab60e47c1b60b67 font-micro-misc-1.0.3.tar.bz2
96109d0890ad2b6b0e948525ebb0aba8 font-misc-cyrillic-1.0.3.tar.bz2
6306c808f7d7e7d660dfb3859f9091d2 font-misc-ethiopic-1.0.3.tar.bz2
e3e7b0fda650adc7eb6964ff3c486b1c font-misc-meltho-1.0.3.tar.bz2
c88eb44b3b903d79fb44b860a213e623 font-misc-misc-1.1.2.tar.bz2
56b0296e8862fc1df5cdbb4efe604e86 font-mutt-misc-1.0.3.tar.bz2
e805feb7c4f20e6bfb1118d19d972219 font-schumacher-misc-1.1.2.tar.bz2
6f3fdcf2454bf08128a651914b7948ca font-screen-cyrillic-1.0.4.tar.bz2
beef61a9b0762aba8af7b736bb961f86 font-sony-misc-1.0.3.tar.bz2
948f2e07810b4f31195185921470f68d font-sun-misc-1.0.3.tar.bz2
829a3159389b7f96f629e5388bfee67b font-winitzki-cyrillic-1.0.3.tar.bz2
3eeb3fb44690b477d510bbd8f86cf5aa font-xfree86-type1-1.0.4.tar.bz2
EOF
To download the needed files using wget, use the following commands:
mkdir font && cd font && grep -v '^#' ../font-7.7.md5 | awk '{print $2}' | wget -i- -c \ -B http://xorg.freedesktop.org/releases/individual/font/ && md5sum -c ../font-7.7.md5
When installing multiple packages in a script, the installation needs to be done as the root user. There are three general options that can be used to do this:
Run the entire script as the root user (not recommended).
Use the sudo command from the Sudo-1.8.10p3 package.
Use su -c "command arguments" (quotes required) which will ask for the root password for every iteration of the loop.
One way to handle this situation is to create a short bash function that automatically selects the appropriate method. Once the command is set in the environment, it does not need to be set again.
as_root() { if [ $EUID = 0 ]; then $* elif [ -x /usr/bin/sudo ]; then sudo $* else su -c \\"$*\\" fi } export -f as_root
First, start a subshell that will exit on error:
bash -e
Install all of the packages by running the following commands:
for package in $(grep -v '^#' ../font-7.7.md5 | awk '{print $2}') do packagedir=${package%.tar.bz2} tar -xf $package pushd $packagedir ./configure $XORG_CONFIG make as_root make install popd as_root rm -rf $packagedir done
Finally, exit the shell that was started earlier:
exit
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 -svfn $XORG_PREFIX/share/fonts/X11/OTF /usr/share/fonts/X11-OTF && ln -svfn $XORG_PREFIX/share/fonts/X11/TTF /usr/share/fonts/X11-TTF
$XORG_PREFIX
/share/fonts
Last updated on 2014-09-10 06:19:10 -0700
The XKeyboardConfig package contains the keyboard configuration database for the X Window System.
This package is known to build and work properly using an LFS-7.6 platform.
Download (HTTP): http://xorg.freedesktop.org/archive/individual/data/xkeyboard-config/xkeyboard-config-2.12.tar.bz2
Download (FTP): ftp://ftp.x.org/pub/individual/data/xkeyboard-config/xkeyboard-config-2.12.tar.bz2
Download MD5 sum: 1fd54ceb9092d1dbcaabaf03653092bc
Download size: 916 KB
Estimated disk space required: 19 MB
Estimated build time: less than 0.1 SBU
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
--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
Last updated on 2014-09-10 06:19:10 -0700
The Xorg Server is the core of the X Window system.
This package is known to build and work properly using an LFS-7.6 platform.
Download (HTTP): http://xorg.freedesktop.org/archive/individual/xserver/xorg-server-1.16.0.tar.bz2
Download (FTP): ftp://ftp.x.org/pub/individual/xserver/xorg-server-1.16.0.tar.bz2
Download MD5 sum: 8a9ff6ee9907360f09b5bdabb8089502
Download size: 5.6 MB
Estimated disk space required: 434 MB
Estimated build time: 1.6 SBU
OpenSSL-1.0.1i or Nettle-2.7.1 or libgcrypt-1.6.2, Pixman-0.32.6, Xorg Fonts, and xkeyboard-config-2.12
libepoxy-1.2 (required for glamor, see command explanations below)
acpid-2.0.23 (runtime), Doxygen-1.8.8 (to build API documentation), fop-1.1, (to build documentation), ghostscript-9.14 (to build documentation), and xmlto-0.0.26, (to build documentation)
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/Xorg7Server
If you are enabling glamor, apply the recommended patch by running the following command:
patch -Np1 -i ../xorg-server-1.16.0-upstream_glamor_fix-1.patch
If you have downloaded the optional patch, apply it by running the following command:
patch -Np1 -i ../xorg-server-1.16.0-add_prime_support-1.patch
Install the server by running the following commands:
sed -i "/scrnintstr/i #include <xorg-server.h>" exa/exa.h glamor/glamor.h && ./configure $XORG_CONFIG \ --with-xkb-output=/var/lib/xkb \ --enable-dmx \ --enable-glamor \ --enable-install-setuid \ --enable-suid-wrapper && make
To test the results, issue: make check.
Now as the root
user:
make install &&
mkdir -pv /etc/X11/xorg.conf.d &&
cat >> /etc/sysconfig/createfiles << "EOF"
/tmp/.ICE-unix dir 1777 root root
/tmp/.X11-unix dir 1777 root root
EOF
sed -i ...: This sed fixes two header files that are broken with Glibc 2.20 so the drivers using them wouldn't fail to build.
--enable-dmx
: Build
DMX (Distributed Multihead X) server.
--enable-glamor
:
Build the Glamor DIX (Device Independent X) module which is
currently required for Southern Islands and Sea Islands
radeon video chipsets, optional for some other radeons, and
also optional for the intel driver.
--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.
--enable-suid-wrapper
: Build
suid-root wrapper for legacy driver support on rootless
xserver systems.
cat >>
/etc/sysconfig/createfiles...: This command
creates the /tmp/.ICE-unix
and
/tmp/.X11-unix
directories at
startup, and ensures that the permissions and ownership are
correct as required by the server.
calculates VESA CVT mode lines. |
|
are various tools used for manipulating the dmx server. |
|
calculates VESA GTF mode lines. |
|
is a tool used to convert VDL config files to DMX config files. |
|
is a symbolic link to Xorg. |
|
is a nested X server. |
|
is the X11R7 X Server. |
|
is the virtual framebuffer X server for X Version 11. |
|
is a graphical configuration utility for the dmx server. |
Last updated on 2014-09-11 19:58:21 -0700
The Xorg Drivers page contains the instructions for building Xorg drivers that are necessary in order for Xorg Server to take the advantage of the hardware that it is running on. At least one input and one video driver is required for Xorg Server to start.
If you are unsure which video hardware you have, you can use lspci from pciutils-3.2.1 to find out which video hardware you have and then look at the descriptions of the packages in order to find out which driver you need.
The Libevdev package contains common functions for Xorg input drivers.
This package is known to build and work properly using an LFS-7.6 platform.
Download (HTTP): http://www.freedesktop.org/software/libevdev/libevdev-1.2.2.tar.xz
Download MD5 sum: 7c1ee9c2069489b2a25dfde6f8e2ff6a
Download size: 380 KB
Estimated disk space required: 8.2 MB
Estimated build time: 0.1 SBU (0.3 SBU with all tests)
Check-0.9.14, Doxygen-1.8.8, and Valgrind-3.10.0
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/libevdev
Enable the following options in the kernel configuration and recompile the kernel if necessary:
Device Drivers --->
Input device support --->
Event interface: Y or M
Miscellaneous devices --->
User level driver support: Y or M
If Valgrind-3.10.0 is installed and tests are going to be run, fix a testing problem:
cat >> test/valgrind.suppressions << "EOF" { <timer_create@@GLIBC_2.3.3-2> Memcheck:Param timer_create(evp) fun:timer_create@@GLIBC_2.3.3 fun:check_get_clockid fun:srunner_run fun:main } EOF
Install Libevdev by running the following commands:
./configure $XORG_CONFIG && make
If you have the optional Check-0.9.14 package installed,
the regression tests can be run as the root
user with make check
.
Now, as the root
user:
make install
The Xorg Evdev Driver package contains Generic Linux input driver for the Xorg X server. It handles keyboard, mouse, touchpads and wacom devices, though for touchpad and wacom advanced handling, additional drivers are required.
This package is known to build and work properly using an LFS-7.6 platform.
Download (HTTP): http://xorg.freedesktop.org/archive/individual/driver/xf86-input-evdev-2.9.0.tar.bz2
Download (FTP): ftp://ftp.x.org/pub/individual/driver/xf86-input-evdev-2.9.0.tar.bz2
Download MD5 sum: 9076ae2646f7aeb30963056e0bbfccf0
Download size: 364 KB
Estimated disk space required: 3.8 MB
Estimated build time: less than 0.1 SBU
Libevdev-1.2.2 and Xorg-Server-1.16.0
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/xorg-evdev-driver
Install Xorg Evdev Driver 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
The Xorg Synaptics Driver package contains the X.Org Input Driver, support programs and SDK for Synaptics touchpads. Even though the evdev driver can handle touchpads very well, this driver is required if you want to use advanced features like multi tapping, scrolling with touchpad, turning the touchpad off while typing, etc.
This package is known to build and work properly using an LFS-7.6 platform.
Download (HTTP): http://xorg.freedesktop.org/archive/individual/driver/xf86-input-synaptics-1.8.0.tar.bz2
Download (FTP): ftp://ftp.x.org/pub/individual/driver/xf86-input-synaptics-1.8.0.tar.bz2
Download MD5 sum: 27a3f2b31606a13dd6b58d419978d64f
Download size: 440 KB
Estimated disk space required: 4.8 MB
Estimated build time: less than 0.1 SBU
Libevdev-1.2.2 and Xorg-Server-1.16.0
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/xorg-synaptics-driver
Install Xorg Synaptics Driver by running the following commands:
sed -i '/_H_/ a#include <xorg-server.h>' src/{eventcomm,ps2comm,synproto}.h && ./configure $XORG_CONFIG && make
This package does not come with a test suite.
Now, as the root
user:
make install
The Xorg VMMouse Driver package contains the VMMouse input driver for the Xorg X server. The VMMouse driver enables support for the special VMMouse protocol that is provided by VMware virtual machines to give absolute pointer positioning.
This package is known to build using an LFS 7.6 platform but has not been tested.
Download (HTTP): http://xorg.freedesktop.org/archive/individual/driver/xf86-input-vmmouse-13.0.0.tar.bz2
Download (FTP): ftp://ftp.x.org/pub/individual/driver/xf86-input-vmmouse-13.0.0.tar.bz2
Download MD5 sum: 34f9f64ee6a1a51fc8266a9af24e1e07
Download size: 308 KB
Estimated disk space required: 2.9 MB
Estimated build time: less than 0.1 SBU
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/xorg-vmmouse-driver
Install Xorg VMMouse Driver by running the following commands:
patch -Np1 -i ../xf86-input-vmmouse-13.0.0-build_fix-1.patch && ./configure $XORG_CONFIG \ --without-hal-fdi-dir \ --without-hal-callouts-dir \ --with-udev-rules-dir=/lib/udev/rules.d && make
This package does not come with a test suite.
Now, as the root
user:
make install
--with-udev-rules-dir=/lib/udev/rules.d
:
This switch specifies where udev rules should be installed.
--without-hal-*-dir
: These
switches disable installation of the HAL components which are not needed on
Linux.
The Xorg Wacom Driver package contains the X.Org X11 driver and SDK for Wacom and Wacom-like tablets. It is not required to use a Wacom tablet, the xf86-input-evdev driver can handle these devices without problems.
This package is known to build using an LFS 7.6 platform but has not been tested.
Download (HTTP): http://downloads.sourceforge.net/linuxwacom/xf86-input-wacom-0.25.0.tar.bz2
Download MD5 sum: 2cf57400fbd9e35eb16b50ad9fe32de1
Download size: 576 KB
Estimated disk space required: 8.2 MB (additional 2 MB for the tests)
Estimated build time: 0.1 SBU
Doxygen-1.8.8 and Graphviz-2.38.0
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/xorg-wacom-driver
To use a Wacom tablet, enable the following options in your kernel configuration and recompile:
Device Drivers --->
Input device support --->
[*] Tablets --->
Wacom Intuos/Graphire tablet support (USB): Y or M
Install Xorg Wacom Driver by running the following commands:
./configure $XORG_CONFIG --with-systemd-unit-dir=no && make
To test the results, issue: make check.
Now, as the root
user:
make install
The Xorg ATI Driver package contains the X.Org Video Driver for ATI Radeon video cards including all chipsets ranging from R100 to R900 and the newer RAxx chipsets.
This package is known to build and work properly using an LFS-7.6 platform.
For Direct Rendering to work with newer Radeon Cards (R300 and later chipsets), you need to enable the r300, r600 and radeonsi Gallium drivers at MesaLib-10.2.7 build time. Also, some cards require Firmware to be available when the kernel driver is loaded. Firmware can be obtained from this site. See "Kernel Configuration for additional firmware" below.
Download (HTTP): http://xorg.freedesktop.org/archive/individual/driver/xf86-video-ati-7.4.0.tar.bz2
Download (FTP): ftp://ftp.x.org/pub/individual/driver/xf86-video-ati-7.4.0.tar.bz2
Download MD5 sum: 8ee095009e927d61be522f392bdb843e
Download size: 813 KB
Estimated disk space required: 17 MB
Estimated build time: 0.2 SBU
Xorg-Server-1.16.0 (recommended to be built with glamor enabled)
Glamor is required for "Southern Islands" and later GPUs but optional for R300 to R700, Evergreen and "Northern Islands" GPUs - see the link under "Glamor Acceleration" below.
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/xorg-ati-driver
Enable the following options in the kernel configuration and recompile the kernel if necessary:
Device Drivers --->
Graphics support --->
ATI Radeon: Y or M
If you need to add firmware, install the file(s) and then
point to them in the kernel configuration and recompile the
kernel if necessary. To find out which firmware you need,
consult the
Decoder ring for engineering vs marketing names.
Download any firmware for your card which is named like:
,
etc. Note that for R600 and R700 family, generic
<ENGINEERING_NAME>
_rlc.binR600_rlc.bin
and R700_rlc.bin
are necessary in adition to
the model specific firmware, while for later generations
(Evergreen, "Northern Islands" and probably "Southern
Islands") you need the BTC_rlc.bin
in adition to the model
specific firmware. Below is an example for Radeon HD6470,
which is "Northern Islands" GPU with a network card that
also requires the firmware:
CONFIG_EXTRA_FIRMWARE="radeon/BTC_rlc.bin radeon/CAICOS_mc.bin radeon/CAICOS_me.bin
radeon/CAICOS_pfp.bin radeon/CAICOS_smc.bin rtl_nic/rtl8168e-3.fw"
CONFIG_EXTRA_FIRMWARE_DIR="/lib/firmware"
CONFIG_EXTRA_FIRMWARE should all be on one line. It is shown above as two lines for presentation only.
You can check dmesg output after boot to see which firmware is missing.
Install Xorg ATI Driver by running the following commands:
sed -i -e '/ac_cv_header_glamor/s/\$ac_includes_default/#include \\"xorg-server.h\\"/' \ -e '/GLAMOR_NO_DRI3/s/\(#include \)/\1\\"xorg-server.h\\"\n\1/' configure && ./configure $XORG_CONFIG && make
This package does not come with a test suite.
Now, as the root
user:
make install
sed -i -e
'/ac_cv_header_glamor/s/\$ac_includes_default/#include
\\"xorg-server.h\\"/' -e '/GLAMOR_NO_DRI3/s/\(#include
\)/\1\\"xorg-server.h\\"\n\1/' configure
: this
fixes compilation with glamor (the default) from
xorg-server with recent glibc.
Glamor is an acceleration library which uses cards' 3D capabilities to accelerate 2D rendering. Glamor acceleration is required for Radeon "Southern Islands" GPUs which use "radeonsi" Gallium3D driver from MesaLib-10.2.7. To see which cards fall under "Southern Islands" category, read the Decoder ring for engineering vs marketing names. Please note that Glamor acceleration can be used with other chips as well, from the R300 onwards, but it has not been tested recently.
Glamor acceleration is not enabled by default for chipsets
that don't use "radeonsi" Gallium3D driver. You have to use
a xorg.conf
file to enable
it. To enable Glamor for cards other than "Southern
Islands" and later, create the following /etc/X11/xorg.conf
as the root
user:
cat >> /etc/X11/xorg.conf << "EOF"
Section "Module"
Load "dri2"
Load "glamoregl"
EndSection
Section "Device"
Identifier "radeon"
Driver "radeon"
Option "AccelMethod" "glamor"
EndSection
EOF
The Xorg Cirrus Driver package contains the X.Org Video Driver for Cirrus Logic video chips. Qemu uses this driver for its virtual GPU.
This package is known to build and work properly using an LFS-7.6 platform.
Download (HTTP): http://xorg.freedesktop.org/archive/individual/driver/xf86-video-cirrus-1.5.2.tar.bz2
Download (FTP): ftp://ftp.x.org/pub/individual/driver/xf86-video-cirrus-1.5.2.tar.bz2
Download MD5 sum: 91fd6b677d62027cd3001debb587a6a6
Download size: 320 KB
Estimated disk space required: 4.3 MB
Estimated build time: 0.1 SBU
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/xorg-cirrus-driver
Enable the following options in the kernel configuration and recompile the kernel if necessary:
Device Drivers --->
Graphics support --->
Cirrus driver for QEMU emulated device: Y or M
Install Xorg Cirrus Driver 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
The Xorg Fbdev Driver package contains the X.Org Video Driver for framebuffer devices. This driver is often used as fallback driver if the hardware specific and VESA drivers fail to load or are not present. If this driver is not installed, Xorg Server will print a warning on startup, but it can be safely ignored if hardware specific driver works well.
This package is known to build and work properly using an LFS-7.6 platform.
Download (HTTP): http://xorg.freedesktop.org/archive/individual/driver/xf86-video-fbdev-0.4.4.tar.bz2
Download (FTP): ftp://ftp.x.org/pub/individual/driver/xf86-video-fbdev-0.4.4.tar.bz2
Download MD5 sum: 3931c0e19d441cc576dc088f9eb9fd73
Download size: 287 KB
Estimated disk space required: 2.5 MB
Estimated build time: 0.1 SBU
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/xorg-fbdev-driver
Install Xorg Fbdev Driver 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
The Xorg Intel Driver package contains the X.Org Video Driver for Intel integrated video cards including 8xx, 9xx, Gxx, Qxx and HD graphics processors (SandyBridge, IvyBridge and Haswell).
This package is known to build and work properly using an LFS-7.6 platform.
This is a development version of the Intel driver which is needed to work properly with the latest hardware.
Download (HTTP): http://xorg.freedesktop.org/archive/individual/driver/xf86-video-intel-2.99.916.tar.bz2
Download (FTP): ftp://ftp.x.org/pub/individual/driver/xf86-video-intel-2.99.916.tar.bz2
Download MD5 sum: 7e24551eae0b952f4d795e791e88ebe5
Download size: 2.1 MB
Estimated disk space required: 71 MB
Estimated build time: 0.6 SBU
xcb-util-0.3.9 and Xorg-Server-1.16.0
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/xorg-intel-driver
Enable the following options in the kernel configuration and recompile the kernel if necessary:
Device Drivers --->
Graphics support --->
Intel I810: Y or M
Intel 8xx/9xx/G3x/G4x/HD Graphics: Y or M
Enable modesetting on intel by default: Y
Install Xorg Intel Driver by running the following commands:
./configure $XORG_CONFIG \ --enable-kms-only \ --enable-uxa \ --enable-glamor && make
This package does not come with a test suite.
Now, as the root
user:
make install
--enable-kms-only
:
This switch omits the UMS (User Mode Setting) code.
--enable-uxa
: This
switch enables Unified Acceleration Architecture (UXA) and
is required for Glamor acceleration.
--enable-glamor
: This switch
enables new GL-based 2D acceleration. As well as specifying
this in the build, it needs to be enabled at run time (see
below).
Glamor is an acceleration library which uses cards' 3D
capabilities to accelerate 2D rendering. Glamor
acceleration is not enabled by default. You have to use a
xorg.conf
file to enable it.
To enable Glamor, create the following /etc/X11/xorg.conf
as the root
user:
cat >> /etc/X11/xorg.conf << "EOF"
Section "Module"
Load "dri2"
Load "glamoregl"
EndSection
Section "Device"
Identifier "intel"
Driver "intel"
Option "AccelMethod" "glamor"
EndSection
EOF
The Xorg Mach64 Driver package contains the X.Org Video Driver for ATI video adapters based on the Mach64 chipsets.
This package is known to build using an LFS 7.6 platform but has not been tested.
Download (HTTP): http://xorg.freedesktop.org/archive/individual/driver/xf86-video-mach64-6.9.4.tar.bz2
Download (FTP): ftp://ftp.x.org/pub/individual/driver/xf86-video-mach64-6.9.4.tar.bz2
Download MD5 sum: d645197cbf238ac0427c3904eafdce2f
Download size: 508 KB
Estimated disk space required: 13 MB
Estimated build time: 0.1 SBU
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/xorg-mach64-driver
Install Xorg Mach64 Driver 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
The Xorg MGA Driver package contains the X.Org Video Driver for Matrox video cards including Millennium G2xx, G4xx, G5xx, Millennium II and Mystique G200 chipsets.
This package is known to build using an LFS 7.6 platform but has not been tested.
Download (HTTP): http://xorg.freedesktop.org/archive/individual/driver/xf86-video-mga-1.6.3.tar.bz2
Download (FTP): ftp://ftp.x.org/pub/individual/driver/xf86-video-mga-1.6.3.tar.bz2
Download MD5 sum: a53b5ce166e31c181aaa4c3816d8babb
Download size: 445 KB
Estimated disk space required: 7.4 MB
Estimated build time: 0.2 SBU
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/xorg-mga-driver
Enable the following options in the kernel configuration and recompile the kernel if necessary:
Device Drivers --->
Graphics support --->
Matrox g200/g400: Y or M
Install Xorg MGA Driver 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
The Xorg Nouveau Driver package contains the X.Org Video Driver for NVidia Cards including RIVA TNT, RIVA TNT2, GeForce 256, QUADRO, GeForce2, QUADRO2, GeForce3, QUADRO DDC, nForce, nForce2, GeForce4, QUADRO4, GeForce FX, QUADRO FX, GeForce 6XXX and GeForce 7xxx chipsets.
This package is known to build and work properly using an LFS-7.6 platform.
Download (HTTP): http://xorg.freedesktop.org/archive/individual/driver/xf86-video-nouveau-1.0.11.tar.bz2
Download (FTP): ftp://ftp.x.org/pub/individual/driver/xf86-video-nouveau-1.0.11.tar.bz2
Download MD5 sum: a0d2932d84ba10c4933c8332c9afe157
Download size: 569 KB
Estimated disk space required: 14 MB
Estimated build time: 0.1 SBU
Xorg-Server-1.16.0 (recommended to be built with glamor enabled)
The new “Maxwell” GPU requires Glamor to be built with the Xorg server. Note that the BLFS editors have not tested that hardware.
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/xorg-nouveau-driver
Enable the following options in the kernel configuration and recompile the kernel if necessary:
Device Drivers --->
Graphics support --->
Nouveau (nVidia) cards: Y or M
Support for backlight control: Y
Install Xorg Nouveau Driver 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
Glamor is an acceleration library which uses cards' 3D capabilities to accelerate 2D rendering. Glamor acceleration is enabled by default for the new “Maxwell” GPU's. According to the documentation, Glamor acceleration can be used with other chips as well, but that does not seem functional yet.
To enable Glamor for GPU's other than the new
“Maxwell” ones,
create the following file as the root
user:
cat >> /etc/X11/xorg.conf.d/nvidia.conf << "EOF"
Section "Device"
Identifier "nvidia"
Driver "nouveau"
Option "AccelMethod" "glamor"
EndSection
EOF
The Xorg OpenChrome Driver package contains the X.Org Video Driver for Via integrated video cards including Unichrome, Unichrome Pro and Chrome9 series.
This package is known to build using an LFS 7.6 platform but has not been tested.
Download (HTTP): http://xorg.freedesktop.org/archive/individual/driver/xf86-video-openchrome-0.3.3.tar.bz2
Download (FTP): ftp://ftp.x.org/pub/individual/driver/xf86-video-openchrome-0.3.3.tar.bz2
Download MD5 sum: f21abcdf87f73b5b547491281e894c87
Download size: 507 KB
Estimated disk space required: 14 MB
Estimated build time: 0.1 SBU
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/xorg-openchrome-driver
Enable the following options in the kernel configuration and recompile the kernel if necessary:
Device Drivers --->
Graphics support --->
Via unichrome video cards: Y or M
Install Xorg OpenChrome Driver by running the following commands:
sed -i "/via_3d.h/i #include <xorg-server.h>" src/via_3d.c && ./configure $XORG_CONFIG && make
This package does not come with a test suite.
Now, as the root
user:
make install
The Xorg R128 Driver package contains the X.Org Video Driver for ATI Rage 128 based video cards.
This package is known to build and work properly using an LFS-7.6 platform.
Download (HTTP): http://xorg.freedesktop.org/archive/individual/driver/xf86-video-r128-6.9.2.tar.bz2
Download (FTP): ftp://ftp.x.org/pub/individual/driver/xf86-video-r128-6.9.2.tar.bz2
Download MD5 sum: 2e906d856a1c477bde000254b142445c
Download size: 452 KB
Estimated disk space required: 5.7 MB
Estimated build time: 0.1 SBU
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/xorg-r128-driver
Enable the following options in the kernel configuration and recompile the kernel if necessary:
Device Drivers --->
Graphics support --->
ATI Rage 128: Y or M
Install Xorg R128 Driver 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
The Xorg Savage Driver package contains the X.Org Video Driver for the S3 Savage family video accelerator chips including Savage3D, Savage4, Savage/MX, Savage/IX, SuperSavage/MX, SuperSavage/IX, ProSavage PM133, ProSavage KM133, Twister, TwisterK, ProSavage DDR and ProSavage DDR-K series.
This package is known to build using an LFS 7.6 platform but has not been tested.
Download (HTTP): http://xorg.freedesktop.org/archive/individual/driver/xf86-video-savage-2.3.7.tar.bz2
Download (FTP): ftp://ftp.x.org/pub/individual/driver/xf86-video-savage-2.3.7.tar.bz2
Download MD5 sum: e813271ab43cc6a95ac0ab252b90a885
Download size: 386 KB
Estimated disk space required: 6.6 MB
Estimated build time: 0.1 SBU
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/xorg-savage-driver
Enable the following options in the kernel configuration and recompile the kernel if necessary:
Device Drivers --->
Graphics support --->
Savage video cards: Y or M
Install Xorg Savage Driver 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
The Xorg SiS Driver package contains the X.Org Video Driver for SiS (Silicon Integrated Systems) and XGI video cards including SiS5597/5598, SiS530/620, SiS6326/AGP/DVD, SiS300/305, SiS540, SiS630/730, SiS315/E/H/PRO, SiS550/551/552, SiS650/651/661/741, SiS330 (Xabre), SiS760/761, XGI Volari V3/V5/V8 and XGI Volari Z7 chipsets.
This package is known to build using an LFS 7.6 platform but has not been tested.
Download (HTTP): http://xorg.freedesktop.org/archive/individual/driver/xf86-video-sis-0.10.7.tar.bz2
Download (FTP): ftp://ftp.x.org/pub/individual/driver/xf86-video-sis-0.10.7.tar.bz2
Download MD5 sum: f01e5e20e37342acf1983d269886171b
Download size: 684 KB
Estimated disk space required: 16 MB
Estimated build time: 0.2 SBU
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/xorg-sis-driver
Enable the following options in the kernel configuration and recompile the kernel if necessary:
Device Drivers --->
Graphics support --->
SiS video cards: Y or M
Install Xorg SiS Driver by running the following commands:
patch -Np1 -i ../xf86-video-sis-0.10.7-upstream_fixes-1.patch && ./configure $XORG_CONFIG && make
This package does not come with a test suite.
Now, as the root
user:
make install
The Xorg 3Dfx Driver package contains the X.Org Video Driver for 3Dfx video cards including Voodoo Banshee, Voodoo3, Voodoo4 and Voodoo5 chipsets.
This package is known to build using an LFS 7.6 platform but has not been tested.
Download (HTTP): http://xorg.freedesktop.org/archive/individual/driver/xf86-video-tdfx-1.4.5.tar.bz2
Download (FTP): ftp://ftp.x.org/pub/individual/driver/xf86-video-tdfx-1.4.5.tar.bz2
Download MD5 sum: 1b4a7815a604b3764900b520336a75ea
Download size: 332 KB
Estimated disk space required: 4.5 MB
Estimated build time: less than 0.1 SBU
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/xorg-tdfx-driver
Enable the following options in the kernel configuration and recompile the kernel if necessary:
Device Drivers --->
Graphics support --->
3dfx Banshee/Voodoo3+: Y or M
Install Xorg 3Dfx Driver by running the following commands:
sed -i -e "/mibstore.h/d" -e "/miInitializeBackingStore/d" src/tdfx_driver.c && ./configure $XORG_CONFIG && make
This package does not come with a test suite.
Now, as the root
user:
make install
The Xorg VESA Driver contains the Generic VESA video driver for the Xorg X server. This driver is often used as fallback driver if the hardware specific driver fails to load or is not present. If this driver is not installed, Xorg Server will print a warning on startup, but it can be safely ignored if hardware specific driver works well.
This package is known to build and work properly using an LFS-7.6 platform.
Download (HTTP): http://xorg.freedesktop.org/archive/individual/driver/xf86-video-vesa-2.3.3.tar.bz2
Download (FTP): ftp://ftp.x.org/pub/individual/driver/xf86-video-vesa-2.3.3.tar.bz2
Download MD5 sum: 3690a5356ed121b1a7dfb59a6dcf4bf9
Download size: 300 KB
Estimated disk space required: 2.6 MB
Estimated build time: less than 0.1 SBU
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/xorg-vesa-driver
Enable the following options in the kernel configuration and recompile the kernel if necessary:
Device Drivers --->
Graphics support --->
-*- Support for frame buffer devices --->
VESA VGA graphics support: Y
Install Xorg VESA Driver 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
The Xorg VMware Driver package contains the X.Org Video Driver for VMware SVGA virtual video cards.
This package is known to build and work properly using an LFS-7.6 platform.
Download (HTTP): http://xorg.freedesktop.org/archive/individual/driver/xf86-video-vmware-13.0.2.tar.bz2
Download (FTP): ftp://ftp.x.org/pub/individual/driver/xf86-video-vmware-13.0.2.tar.bz2
Download MD5 sum: 91d1d7d33181766714405ab013d31244
Download size: 432 KB
Estimated disk space required: 9.1 MB
Estimated build time: 0.1 SBU
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/xorg-vmware-driver
Enable the following options in the kernel configuration and recompile the kernel if necessary:
Device Drivers --->
Graphics support --->
Direct Rendering Manager --->
DRM driver for VMware Virtual GPU: Y or M
Enable framebuffer console under vmwgfx by default: Y
Install Xorg VMware Driver by running the following commands:
sed -i "/xf86xv.h/i #include <xorg-server.h>" vmwgfx/vmwgfx_overlay.c && ./configure $XORG_CONFIG && make
This package does not come with a test suite.
Now, as the root
user:
make install
The libva package contains a library which provides access to hardware accelerated video processing, using hardware to accelerate video processing in order to offload the central processing unit (CPU) to decode and encode compressed digital video. VA API video decode/encode interface is platform and window system independent targeted at Direct Rendering Infrastructure (DRI) in the X Window System however it can potentially also be used with direct framebuffer and graphics sub-systems for video output. Accelerated processing includes support for video decoding, video encoding, subpicture blending, and rendering.
This package is known to build and work properly using an LFS-7.6 platform.
Download (HTTP): http://www.freedesktop.org/software/vaapi/releases/libva/libva-1.3.1.tar.bz2
Download MD5 sum: eb4db967f068854444b597071c66b480
Download size: 744 KB
Estimated disk space required: 18 MB
Estimated build time: 0.3 SBU
Intel Driver Download (HTTP): http://www.freedesktop.org/software/vaapi/releases/libva-intel-driver/libva-intel-driver-1.3.2.tar.bz2
Intel Driver Download MD5 sum: 3f4f08f1d42ee451b2fb9c239ee0b8d7
Intel Driver Download size: 936 KB
Estimated disk space required: 29 MB
Estimated build time: 0.2 SBU
Doxygen-1.8.8 and Wayland
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/libva
Install libva by running the following commands:
mkdir -p m4 && autoreconf -f && ./configure $XORG_CONFIG && make
This package does not come with a test suite.
Now, as the root
user:
make install
The libva-intel-driver is designed specifically for video cards based on an Intel GPU. Install the driver by running the following commands:
mkdir -p m4 && autoreconf -f && ./configure $XORG_CONFIG && make
This package does not come with a test suite.
Now, as the root
user:
make install
mkdir -p m4: This command prevents an error that may occur when running autoreconf.
autoreconf -f: This command regenerates the configure script to prevent a mandatory test for wayland-scanner when configuring.
The libvdpau package contains a library which implements the VDPAU library.
VDPAU (Video Decode and Presentation API for Unix) is an open source library (libvdpau) and API originally designed by Nvidia for its GeForce 8 series and later GPU hardware targeted at the X Window System This VDPAU API allows video programs to offload portions of the video decoding process and video post-processing to the GPU video-hardware.
Currently, the portions capable of being offloaded by VDPAU onto the GPU are motion compensation (mo comp), inverse discrete cosine transform (iDCT), VLD (variable-length decoding) and deblocking for MPEG-1, MPEG-2, MPEG-4 ASP (MPEG-4 Part 2), H.264/MPEG-4 AVC and VC-1, WMV3/WMV9 encoded videos. Which specific codecs of these that can be offloaded to the GPU depends on the version of the GPU hardware; specifically, to also decode MPEG-4 ASP (MPEG-4 Part 2), Xvid/OpenDivX (DivX 4), and DivX 5 formats, a GeForce 200M (2xxM) Series (the eleventh generation of Nvidia's GeForce graphics processing units) or newer GPU hardware is required.
This package is known to build and work properly using an LFS-7.6 platform.
Download (HTTP): http://people.freedesktop.org/~aplattner/vdpau/libvdpau-0.8.tar.gz
Download MD5 sum: acf68adc8b8ff4f72be6e8679abc284e
Download size: 476 KB
Estimated disk space required: 8.9 MB
Estimated build time: 0.1 SBU
Doxygen-1.8.8, Graphviz-2.38.0, and texlive-20140525
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/libvdpau
Install libvdpau by running the following commands:
./configure $XORG_CONFIG && make
To test the results, issue: make check.
Now, as the root
user:
make install
The libvdpau-va-gl package contains a library which implements the VDPAU library. Libvdpau_va_gl uses OpenGL under the hood to accelerate drawing and scaling and the VA-API (if available) to accelerate video decoding. For now VA-API is available on some Intel chips, and on some AMD video adapters with the help of the libvdpau driver.
This package is known to build and work properly using an LFS-7.6 platform.
Libvdpau-va-gl Driver Download (HTTP): https://github.com/i-rinat/libvdpau-va-gl/archive/v0.3.4.tar.gz
Libvdpau-va-gl Driver Download MD5 sum: 09ceb2f75eafccc9b002d35ede0de6a5
Libvdpau-va-gl Driver Download size: 100 KB
Estimated disk space required: 4.0 MB
Estimated build time: less than 0.1 SBU
The tarball name for libvdpau-va-gl does not include the file name, although it does expand to libvdpau-va-gl-0.3.4. The file should be renamed after downloading:
mv v0.3.4.tar.gz libvdpau-va-gl-0.3.4.tar.gz
CMake-3.0.1, FFmpeg-2.3.3, GLU-9.0.0, libvdpau-0.8, and libva-1.3.1
Doxygen-1.8.8, Graphviz-2.38.0, and texlive-20140525
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/libvdpau
Install libvdpau-va-gl by running the following commands:
mkdir build && cd build && cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=$XORG_PREFIX .. && make
To test the results, issue: make check. The tests must be run from an Xorg environment.
Now, as the root
user:
make install
To allow libvdpau to find libvdpau-va-gl, set an
environment variable. As the root
user:
echo "export VDPAU_DRIVER=va_gl" >> /etc/profile.d/xorg.sh
Last updated on 2014-08-19 09:58:12 -0700
The twm package contains a very minimal window manager.
This package is not a part of the Xorg katamari and is provided only as a dependency to other packages or for testing the completed Xorg installation.
This package is known to build and work properly using an LFS-7.6 platform.
Download (HTTP): http://xorg.freedesktop.org/releases/individual/app/twm-1.0.8.tar.bz2
Download (FTP): ftp://ftp.x.org/pub/individual/app/twm-1.0.8.tar.bz2
Download MD5 sum: 4b28317d4a9f7ca61bef8462e132bd4c
Download size: 269 KB
Estimated disk space required: 4.6 MB
Estimated build time: less than 0.1 SBU
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/twm
Install twm by running the following commands:
sed -i -e '/^rcdir =/s,^\(rcdir = \).*,\1/etc/X11/app-defaults,' src/Makefile.in && ./configure $XORG_CONFIG && make
This package does not come with a test suite.
Now, as the root
user:
make install
sed -i -e '/^rcdir =/s...: This command ensures the twm configuration file gets installed in the proper location.
Last updated on 2014-09-10 06:19:10 -0700
xterm is a terminal emulator for the X Window System.
This package is not a part of the Xorg katamari and is provided only as a dependency to other packages or for testing the completed Xorg installation.
This package is known to build and work properly using an LFS-7.6 platform.
Download (FTP): ftp://invisible-island.net/xterm/xterm-310.tgz
Download MD5 sum: 6bada32548b66a805e9c4475a6736b43
Download size: 1.2 MB
Estimated disk space required: 12 MB
Estimated build time: 0.2 SBU
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/Xterm
Install xterm by running the following commands:
sed -i '/v0/{n;s/new:/new:kb=^?:/}' termcap && printf '\tkbs=\\177,\n' >> terminfo && TERMINFO=/usr/share/terminfo \ ./configure $XORG_CONFIG \ --with-app-defaults=/etc/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, printf ... >> 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/share/terminfo
:
This ensures that the xterm terminfo files are
installed to the system terminfo database.
--with-app-defaults=...
: Sets
the location for the app-defaults
directory.
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 >> /etc/X11/app-defaults/XTerm << "EOF"
*VT100*locale: true
*VT100*faceName: Monospace
*VT100*faceSize: 10
*backarrowKeyIsErase: true
*ptyInitialErase: true
EOF
is a wrapper script to set up xterm with a KOI8-R locale. |
|
prints a shell command for setting the TERM and TERMCAP environment variables to indicate the current size of xterm window. |
|
is a wrapper script that modifies the current locale to use UTF-8 and starts xterm with the proper settings. |
|
is a terminal emulator for the X Window System. |
Last updated on 2014-09-10 06:19:10 -0700
The xclock package contains a simple clock application which is used in the default xinit configuration.
This package is not a part of the Xorg katamari and is provided only as a dependency to other packages or for testing the completed Xorg installation.
This package is known to build and work properly using an LFS-7.6 platform.
Download (HTTP): http://xorg.freedesktop.org/releases/individual/app/xclock-1.0.7.tar.bz2
Download (FTP): ftp://ftp.x.org/pub/individual/app/xclock-1.0.7.tar.bz2
Download MD5 sum: 6f150d063b20d08030b98c45b9bee7af
Download size: 161 KB
Estimated disk space required: 1.5 MB
Estimated build time: less than 0.1 SBU
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/xclock
Install xclock 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 2014-09-10 06:19:10 -0700
The xinit package contains a usable script to start the xserver.
This package is not a part of the Xorg katamari and is provided only as a dependency to other packages or for testing the completed Xorg installation.
This package is known to build and work properly using an LFS-7.6 platform.
Download (HTTP): http://xorg.freedesktop.org/releases/individual/app/xinit-1.3.3.tar.bz2
Download (FTP): ftp://ftp.x.org/pub/individual/app/xinit-1.3.3.tar.bz2
Download MD5 sum: 3b8da0e6237aee9828cc809c647510a7
Download size: 161 KB
Estimated disk space required: 1.6 MB
Estimated build time: 0.1 SBU
twm-1.0.8, xclock-1.0.7, and xterm-310
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/xinit
Install xinit by running the following commands:
./configure $XORG_CONFIG \ --with-xinitdir=/etc/X11/app-defaults && make
This package does not come with a test suite.
Now, as the root
user:
make install
Last updated on 2014-09-10 06:19:10 -0700
To test the Xorg
installation, issue startx
. This command brings
up a rudimentary window manager called twm with three xterm windows and
one xclock window. The xterm window in the upper left is a
login terminal and running exit from this terminal will exit
the X Window session. The
third xterm window may be obscured on your system by the
other two xterms.
Generally, there is no specific configuration required for Xorg, but customization is possible. For details see the section called “Setting up Xorg Devices” below.
DRI is a framework for allowing software to access graphics hardware in a safe and efficient manner. It is installed in X by default (using MesaLib) if you have a supported video card.
To check if DRI drivers are installed properly, check the log
file /var/log/Xorg.0.log
for
statements such as:
(II) intel(0): direct rendering: DRI2 Enabled
or
(II) NOUVEAU(0): Loaded DRI module
DRI configuration may differ if you are using alternate drivers, such as those from NVIDIA or ATI.
Although all users can use software acceleration, any
hardware acceleration (DRI2) is only available to
root
and members of the
video
group.
If your driver is supported, add any users that might use X to that group:
usermod -a -G video <username>
Another way to determine if DRI is working properly is to use one of the two optionally installed OpenGL demo programs in MesaLib-10.2.7. From an X terminal, run glxinfo and look for the phrase:
name of display: :0
display: :0 screen: 0
direct rendering: Yes
If direct rendering is 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.
To confirm that DRI2 hardware acceleration is working, you
can (still in the X terminal) run the command glxinfo | egrep "(OpenGL vendor|OpenGL
renderer|OpenGL version)". If that reports
something other than
Software Rasterizer
then you
have working acceleration for the user who ran the command.
If your hardware does not have any DRI2 driver available, it will use a Software Rasterizer for Direct Rendering. In such cases, you can use a new, LLVM-accelerated, Software Rasterizer called LLVMPipe. In order to build LLVMPipe just make sure that LLVM-3.5.0 is present at MesaLib build time. Note that all decoding is done on the CPU instead of the GPU, so the display will run slower than with hardware acceleration. To check if you are using LLVMpipe, review the output ot the glxinfo command above. An example of the output using the Software Rasterizer is shown below:
OpenGL vendor string: VMware, Inc.
OpenGL renderer string: Gallium 0.4 on llvmpipe (LLVM 3.2, 256 bits)
OpenGL version string: 2.1 Mesa 9.1-devel (git-cb3b172)
You can also force LLVMPipe by exporting the LIBGL_ALWAYS_SOFTWARE=1
environment variable
when starting Xorg.
Again, if you have built the Mesa OpenGL demos, you can also run the test program glxgears. This program brings up a window with three gears turning. The X terminal will display how many frames were drawn every five seconds, so this will give a rough benchmark. The window is scalable, and the frames drawn per second is highly dependent on the size of the window. On some hardware, glxgears will run synchronized with the vertical refresh signal and the frame rate will be approximately the same as the monitor refresh rate.
Hybrid Graphics is still in experimental state for Linux. Xorg Developers have developed a technology called PRIME that can be used for switching between integrated and muxless discrete GPU at will. Automatic switching is not possible at the moment.
In order to use PRIME for GPU switching, make sure that you are using Linux Kernel 3.4 or later (recommended). You will need latest DRI and DDX drivers for your hardware and Xorg Server 1.13 or later with an optional patch applied.
Xorg Server should load both
GPU drivers automaticaly. In order to run a GLX application
on a discrete GPU, you will need to export the DRI_PRIME=1
environment variable. For example,
DRI_PRIME=1 glxinfo | egrep "(OpenGL vendor|OpenGL renderer|OpenGL version)"
will show OpenGL vendor, renderer and version for the discrete GPU.
If the last command reports same OpenGL renderer with and
without DRI_PRIME=1
, you will need
to check your installation.
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.
If you've installed Xorg in
any prefix other than /usr
, 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.
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 aliases in the /etc/fonts/conf.d
directory by
default.
Firefly New Sung font - This font provides Chinese
coverage. This font is listed in the aliases in the the
/etc/fonts/conf.d
directory by default.
Arphic
fonts - A similar set of Chinese fonts to the
Firefly New Sung font. These fonts are listed in the
aliases in the /etc/fonts/conf.d
directory by
default.
Kochi fonts
- These provide Japanese characters, and are listed in
the aliases in the /etc/fonts/conf.d
directory by
default.
Baekmuk fonts -
These fonts provide Korean coverage, and are listed in
the aliases in the /etc/fonts/conf.d
directory by
default.
Cantarell fonts - The Cantarell typeface family provides a contemporary Humanist sans serif. It is particularly optimised for legibility at small sizes and is the preferred font family for the GNOME-3 user interface.
The list above will not provide complete Unicode coverage. For more information, please visit the Unicode Font Guide.
Rendered examples of many of the above fonts can be found at this font analysis site.
As a font installation 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
For most hardware configurations, modern Xorg will automatically get the server configuration correct without any user intervention. There are, however, some cases where auto-configuration will be incorrect. Following are some example manual configuration items that may be of use in these instances.
For most input devices, no additional configuration will be necessary. This section is provided for informational purposes only.
A sample default XKB setup could look like the following
(executed as the root
user):
cat > /etc/X11/xorg.conf.d/xkb-defaults.conf << "EOF" Section "InputClass" Identifier "XKB Defaults" MatchIsKeyboard "yes" Option "XkbOptions" "terminate:ctrl_alt_bksp" EndSection EOF
Again, with modern Xorg, little or no additional
configuration is necessary. If you should need extra
options passed to your video driver, for instance, you
could use something like the following (again, executed as
the root
user):
cat > /etc/X11/xorg.conf.d/videocard-0.conf << "EOF" Section "Device" Identifier "Videocard0" Driver "radeon" VendorName "Videocard vendor" BoardName "ATI Radeon 7500" Option "NoAccel" "true" EndSection EOF
Another common setup is having multiple server layouts for use in different environments. Though the server will automatically detect the presence of another monitor, it may get the order incorrect:
cat > /etc/X11/xorg.conf.d/server-layout.conf << "EOF" Section "ServerLayout" Identifier "DefaultLayout" Screen 0 "Screen0" 0 0 Screen 1 "Screen1" LeftOf "Screen0" Option "Xinerama" EndSection EOF
Last updated on 2013-05-05 11:02:40 -0700
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 Anti-Grain Geometry (AGG) package contains a general purpose C++ graphical toolkit. It can be used in many areas of computer programming where high quality 2D graphics is an essential part of the project.
This package is known to build and work properly using an LFS-7.6 platform.
Download (HTTP): http://pkgs.fedoraproject.org/repo/pkgs/agg/agg-2.5.tar.gz/0229a488bc47be10a2fee6cf0b2febd6/agg-2.5.tar.gz
Download MD5 sum: 0229a488bc47be10a2fee6cf0b2febd6
Download size: 552 KB
Estimated disk space required: 122 MB
Estimated build time: 1.2 SBU
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/agg
Install agg by running the following commands:
sed -i 's: -L@x_libraries@::' src/platform/X11/Makefile.am && sed -i '/^AM_C_PROTOTYPES/d' configure.in && bash autogen.sh --prefix=/usr --disable-static && make
This package does not come with a test suite.
Now, as the root
user:
make install
sed -i 's: -L@x_libraries@::' src/platform/X11/Makefile.am: This fixes compiling with the current Xorg Libraries.
sed -i '/^AM_C_PROTOTYPES/d' configure.in: this fixes reconfiguring with the current version of automake.
bash autogen.sh: This script uses autotools to create the configure script, then it runs configure with the given arguments.
--disable-static
:
This switch prevents installation of static versions of the
libraries.
Last updated on 2014-09-21 12:24:38 -0700
ATK provides the set of accessibility interfaces that are implemented by other toolkits and applications. Using the ATK interfaces, accessibility tools have full access to view and control running applications.
This package is known to build and work properly using an LFS-7.6 platform.
Download (HTTP): http://ftp.gnome.org/pub/gnome/sources/atk/2.12/atk-2.12.0.tar.xz
Download (FTP): ftp://ftp.gnome.org/pub/gnome/sources/atk/2.12/atk-2.12.0.tar.xz
Download MD5 sum: 930238dec55fdbf8eda9975b44f07b76
Download size: 676 KB
Estimated disk space required: 15 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 testsuite.
Now, as the root
user:
make install
--enable-gtk-doc
: Use this
parameter if GTK-Doc is
installed and you wish to rebuild and install the API
documentation.
Last updated on 2014-09-10 09:45:01 -0700
Atkmm is the official C++ interface for the ATK accessibility toolkit library.
This package is known to build and work properly using an LFS-7.6 platform.
Download (HTTP): http://ftp.gnome.org/pub/gnome/sources/atkmm/2.22/atkmm-2.22.7.tar.xz
Download (FTP): ftp://ftp.gnome.org/pub/gnome/sources/atkmm/2.22/atkmm-2.22.7.tar.xz
Download MD5 sum: fec7db3fc47ba2e0c95d130ec865a236
Download size: 388 KB
Estimated disk space required: 17 MB
Estimated build time: 0.2 SBU
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/atkmm
Install Atkmm by running the following commands:
./configure --prefix=/usr && make
This package does not come with a testsuite.
Now, as the root
user:
make install
Last updated on 2014-09-14 13:18:45 -0700
The At-Spi2 Core package is a part of the GNOME Accessibility Project. It provides a Service Provider Interface for the Assistive Technologies available on the GNOME platform and a library against which applications can be linked.
This package is known to build and work properly using an LFS-7.6 platform.
Download (HTTP): http://ftp.gnome.org/pub/gnome/sources/at-spi2-core/2.12/at-spi2-core-2.12.0.tar.xz
Download (FTP): ftp://ftp.gnome.org/pub/gnome/sources/at-spi2-core/2.12/at-spi2-core-2.12.0.tar.xz
Download MD5 sum: b12ad0e0924706f5e7f51216241068ef
Download size: 448 KB
Estimated disk space required: 13 MB
Estimated build time: 0.2 SBU
D-Bus-1.8.8, GLib-2.40.0, and Xorg Libraries
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/at-spi2-core
Install At-Spi2 Core by running the following commands:
./configure --prefix=/usr \ --sysconfdir=/etc && make
A session bus address is necessary to run the tests. 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 and install the API
documentation.
Last updated on 2014-09-12 12:02:55 -0700
The At-Spi2 Atk package contains a library that bridges ATK to At-Spi2 D-Bus service.
This package is known to build and work properly using an LFS-7.6 platform.
Download (HTTP): http://ftp.gnome.org/pub/gnome/sources/at-spi2-atk/2.12/at-spi2-atk-2.12.1.tar.xz
Download (FTP): ftp://ftp.gnome.org/pub/gnome/sources/at-spi2-atk/2.12/at-spi2-atk-2.12.1.tar.xz
Download MD5 sum: ae11df528f1f038987797f39c8357f81
Download size: 276 KB
Estimated disk space required: 6.2 MB (additional 0.1 MB for the tests)
Estimated build time: 0.1 SBU
at-spi2-core-2.12.0 and ATK-2.12.0
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/at-spi2-atk
Install At-Spi2 Atk by running the following commands:
./configure --prefix=/usr && make
To test the results, issue: make check. An already active graphical session with bus address is necessary to run the tests.
Now, as the root
user:
make install
If you installed the package to your system using a
“DESTDIR” method,
/usr/share/glib-2.0/schemas/gschemas.compiled
was not updated/created. Create (or update) the file using
the following command as the root
user:
glib-compile-schemas /usr/share/glib-2.0/schemas
Last updated on 2014-09-12 12:02:55 -0700
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, 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.).
This package is known to build and work properly using an LFS-7.6 platform.
Download (HTTP): http://cairographics.org/releases/cairo-1.12.16.tar.xz
Download MD5 sum: a1304edcdc99282f478b995ee5f8f854
Download size: 35 MB
Estimated disk space required: 158 MB
Estimated build time: 1.0 SBU
libpng-1.6.13, GLib-2.40.0 and Pixman-0.32.6
Fontconfig-2.11.1 and Xorg Libraries
Cogl-1.18.2, DirectFB, GTK-Doc-1.20, libdrm-2.4.56, LZO-2.08, MesaLib-10.2.7, Qt-4.8.6, Skia, and Valgrind-3.10.0
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/cairo
Install Cairo by running the following commands:
CFLAGS="$CFLAGS -ffat-lto-objects" \ ./configure --prefix=/usr \ --disable-static \ --enable-tee && make
This package does not have a working testsuite.
Now, as the root
user:
make install
CFLAGS="$CFLAGS -ffat-lto-objects": Fixes building with GCC 4.9.
--enable-tee
: This
switch enables experimental tee surface backend which is
required if using system-installed Cairo with Mozilla applications.
--disable-static
:
This switch prevents installation of static versions of the
libraries.
--enable-xlib-xcb
: This switch
enables experimental Xlib/XCB functions used by some window
managers.
--enable-gl
: This switch enables
Cairo's experimental
OpenGL surface which is
required for Wayland
compositor and some other packages that are not part of BLFS.
--enable-gtk-doc
: Use this
parameter if GTK-Doc is
installed and you wish to rebuild and install the API
documentation.
generates a log of all calls made by an application to Cairo. |
|
contains the 2D graphics functions required for rendering to the various output targets. |
|
contains functions that integrate Cairo with GLib-2.40.0's GObject type system. |
|
contains the script interpreter functions for executing and manipulating Cairo execution traces. |
Last updated on 2014-09-10 09:45:01 -0700
The Cairomm package provides a C++ interface to Cairo.
This package is known to build and work properly using an LFS-7.6 platform.
Download (HTTP): http://cairographics.org/releases/cairomm-1.10.0.tar.gz
Download MD5 sum: 9c63fb1c04c8ecd3c5e6473075b8c39f
Download size: 1.1 MB
Estimated disk space required: 13 MB
Estimated build time: 0.1 SBU
Cairo-1.12.16 and libsigc++-2.3.2
Boost-1.56.0 and Doxygen-1.8.8
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/cairomm
Install Cairomm 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 2014-09-14 13:18:45 -0700
Cogl is a modern 3D graphics API with associated utility APIs designed to expose the features of 3D graphics hardware using a direct state access API design, as opposed to the state-machine style of OpenGL.
This package is known to build and work properly using an LFS-7.6 platform.
Download (HTTP): http://ftp.gnome.org/pub/gnome/sources/cogl/1.18/cogl-1.18.2.tar.xz
Download (FTP): ftp://ftp.gnome.org/pub/gnome/sources/cogl/1.18/cogl-1.18.2.tar.xz
Download MD5 sum: 952155d526d35f297737266408e842b5
Download size: 1.6 MB
Estimated disk space required: 50 MB
Estimated build time: 0.7 SBU
gdk-pixbuf-2.30.8, MesaLib-10.2.7, and Pango-1.36.7
gst-plugins-base-1.4.1, GTK-Doc-1.20, SDL-1.2.15, SDL2, and Wayland
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/cogl
Install Cogl by running the following commands:
./configure --prefix=/usr --enable-gles1 --enable-gles2 && make
To test the results, issue: make check. The tests should be run from an X terminal on the hardware accelerated Xorg Server.
Now, as the root
user:
make install
--enable-gles1
: This
switch enables support for OpenGL ES 1.1.
--enable-gles2
: This
switch enables support for OpenGL ES 2.0.
--enable-cogl-gst
: This switch
enables gstreamer support.
--enable-gtk-doc
: Use this
parameter if GTK-Doc is
installed and you wish to rebuild and install the API
documentation.
Last updated on 2014-09-19 13:13:19 -0700
The Clutter package contains an open source software library used for creating fast, visually rich and animated graphical user interfaces.
This package is known to build and work properly using an LFS-7.6 platform.
Anything built with this toolkit needs hardware 3D acceleration from the graphics driver at runtime. This is provided by MesaLib (or by proprietary graphics drivers), but is not available for every graphics card nor for all virtual machines. You may wish to review Checking the DRI installation.
Download (HTTP): http://ftp.gnome.org/pub/gnome/sources/clutter/1.18/clutter-1.18.4.tar.xz
Download (FTP): ftp://ftp.gnome.org/pub/gnome/sources/clutter/1.18/clutter-1.18.4.tar.xz
Download MD5 sum: f4f37216a9278defb50b721c8f8ff583
Download size: 5.0 MB
Estimated disk space required: 85 MB (additional 7 MB for docs creation and 11 MB for tests)
Estimated build time: 0.8 SBU (additional 2.1 SBU for docs creation and 0.6 SBU for tests)
ATK-2.12.0, Cogl-1.18.2, and JSON-GLib-1.0.2
gobject-introspection-1.40.0 and GTK+-3.12.2
GTK-Doc-1.20, udev-extras (from eudev) (for GUdev), libevdev, libxkbcommon, Tslib, and Wayland
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/clutter
Install Clutter by running the following commands:
./configure --prefix=/usr --sysconfdir=/etc --enable-egl-backend && make
To test the results, issue: make check (you must be in an xterm or similar to do this, because it launches some windows). Two tests have been observed to fail.
Now, as the root
user:
make install
--enable-egl-backend
:
This switch enables the experimental EGL windowing backend.
--enable-gtk-doc
: Use this
parameter if GTK-Doc is
installed and you wish to rebuild and install the API
documentation.
Last updated on 2014-09-22 15:13:35 -0700
The Clutter Gst is an integration library for using GStreamer with Clutter. Its purpose is to implement the ClutterMedia interface using GStreamer.
This package is known to build and work properly using an LFS-7.6 platform.
Download (HTTP): http://ftp.gnome.org/pub/gnome/sources/clutter-gst/2.0/clutter-gst-2.0.12.tar.xz
Download (FTP): ftp://ftp.gnome.org/pub/gnome/sources/clutter-gst/2.0/clutter-gst-2.0.12.tar.xz
Download MD5 sum: 3e845093843166001e65e1e4971c1588
Download size: 348 KB
Estimated disk space required: 6.4 MB
Estimated build time: 0.2 SBU
Clutter-1.18.4 and gst-plugins-base-1.4.1
gobject-introspection-1.40.0 and gst-plugins-bad-1.4.1
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/clutter-gst2
Install Clutter Gst by running the following commands:
This package fails to build over an ssh session.
./configure --prefix=/usr && make
This package does not come with a testsuite.
Now, as the root
user:
make install
Last updated on 2014-09-19 13:49:16 -0700
The Clutter Gtk package is a library providing facilities to integrate Clutter into GTK+ applications.
This package is known to build and work properly using an LFS-7.6 platform.
Download (HTTP): http://ftp.gnome.org/pub/gnome/sources/clutter-gtk/1.4/clutter-gtk-1.4.4.tar.xz
Download (FTP): ftp://ftp.gnome.org/pub/gnome/sources/clutter-gtk/1.4/clutter-gtk-1.4.4.tar.xz
Download MD5 sum: ef50b52ffc2a18704eb62f13dd8d6198
Download size: 304 KB
Estimated disk space required: 7.0 MB
Estimated build time: 0.2 SBU
Clutter-1.18.4 and GTK+-3.12.2
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/clutter-gtk
Install Clutter Gtk 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 and install the API
documentation.
Last updated on 2014-09-19 13:13:19 -0700
FLTK (pronounced "fulltick") is a cross-platform C++ GUI toolkit. FLTK provides modern GUI functionality and supports 3D graphics via OpenGL and its built-in GLUT emulation libraries used for creating graphical user interfaces for applications.
This package is known to build and work properly using an LFS-7.6 platform.
Download (HTTP): http://fltk.org/pub/fltk/1.3.2/fltk-1.3.2-source.tar.gz
Download MD5 sum: 9f7e707d4fb7a5a76f0f9b73ff70623d
Download size: 4.1 MB
Estimated disk space required: 75 MB
Estimated build time: 1.0 SBU
GLU-9.0.0 MesaLib-10.2.7, and Xorg Libraries,
desktop-file-utils-0.22, hicolor-icon-theme-0.13, and libjpeg-turbo-1.3.1,
alsa-lib-1.0.28, Doxygen-1.8.8, and texlive-20140525,
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/fltk
The tar extraction directory is fltk-1.3.2 and not fltk-1.3.2-source as indicated by the tarball name.
Install FLTK by running the following commands:
patch -Np1 -i ../fltk-1.3.2-tigervnc-1.patch && patch -Np1 -i ../fltk-1.3.2-dynamic_libs-1.patch && sed -i -e '/FL_PATCH_VERSION=/ s/1/2/' configure && sed -i -e '/cat./d' documentation/Makefile && ./configure --prefix=/usr \ --enable-threads \ --enable-xft \ --enable-shared && make
If you wish to create the api documentation, issue:
make -C documentation html
The tests for the package are interactive. To execute the
tests, run test/unittests. In
addition, there are 70 other executable test programs in the
test
directory that can be run
individually.
Now, as the root
user:
make docdir=/usr/share/doc/fltk-1.3.2 install
If desired, install some example games built as a part of the
tests, extra documentation and example programs. As the
root
user:
make -C test install-linux && make -C documentation install-linux
patch ...tigervnc-1.patch: Install patches to make the libraries compatible with tigervnc.
patch ...dynamic_libs-1.patch: Allow building dynamic libraries.
sed ... configure: configure: Fix output of fltk-config --version.
sed ...
documentation/Makefile: Avoid installing
pages in /usr/share/man/cat*
.
Last updated on 2014-05-18 18:40:17 -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.
This package is known to build and work properly using an LFS-7.6 platform.
Download (HTTP): http://downloads.sourceforge.net/freeglut/freeglut-2.8.1.tar.gz
Download MD5 sum: 918ffbddcffbac83c218bc52355b6d5a
Download size: 984 KB
Estimated disk space required: 11 MB
Estimated build time: 0.1 SBU
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/freeglut
Install Freeglut by running the following commands:
./configure --prefix=/usr --disable-static && make
This package does not come with a test suite.
Now, as the root
user:
make install
--disable-static
:
This switch prevents installation of static versions of the
libraries.
Last updated on 2014-09-16 10:29:57 -0700
The Gdk Pixbuf is a toolkit for image loading and pixel buffer manipulation. It is used by GTK+ 2 and GTK+ 3 to load and manipulate images. In the past it was distributed as part of GTK+ 2 but it was split off into a separate package in preparation for the change to GTK+ 3.
This package is known to build and work properly using an LFS-7.6 platform.
Download (HTTP): http://ftp.gnome.org/pub/gnome/sources/gdk-pixbuf/2.30/gdk-pixbuf-2.30.8.tar.xz
Download (FTP): ftp://ftp.gnome.org/pub/gnome/sources/gdk-pixbuf/2.30/gdk-pixbuf-2.30.8.tar.xz
Download MD5 sum: 4fed0d54432f1b69fc6e66e608bd5542
Download size: 1.3 MB
Estimated disk space required: 25 MB (additional 1 MB for the tests and 1 MB to rebuild and install the API documentation)
Estimated build time: 0.2 SBU (additional 0.2 SBU to run the test suite and less than 0.1 SBU to rebuild and install the API documentation)
GLib-2.40.0, libjpeg-turbo-1.3.1, libpng-1.6.13 and LibTIFF-4.0.3
Xorg Libraries (Many GTK+ applications require gdk-pixbuf-xlib).
JasPer-1.900.1 and GTK-Doc-1.20
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/gdk-pixbuf
Install Gdk Pixbuf by running the following commands:
./configure --prefix=/usr --with-x11 && make
Now, as the root
user:
make install
To test the results, issue: make check, after the package is installed.
If you installed the package on to your system using a
“DESTDIR” method, an
important file was not installed and should be copied
and/or generated. Generate it using the following command
as the root
user:
gdk-pixbuf-query-loaders --update-cache
--with-x11
: This switch enables
building of the Gdk Pixbuf
X11 library which is needed
for many packages.
--with-libjasper
: If you've
installed JasPer-1.900.1 and you want Gdk Pixbuf to use it to compile a
JPEG2000 image loader, pass this switch to configure.
--enable-gtk-doc
: Use this
parameter if GTK-Doc is
installed and you wish to rebuild and install the API
documentation.
is a small utility that generates C code containing images, used for compiling images directly into programs. |
|
collects information about loadable modules for Gdk Pixbuf and writes it to the default cache file location, or to stdout. |
|
contains functions used to load and render images. |
|
contains functions used to manipulate images and interfaces with Xlib. |
Last updated on 2014-09-10 09:45:01 -0700
This package provides the Mesa OpenGL Utility library.
This package is known to build and work properly using an LFS-7.6 platform.
GLU Download (FTP): ftp://ftp.freedesktop.org/pub/mesa/glu/glu-9.0.0.tar.bz2
GLU Download MD5 sum: be9249132ff49275461cf92039083030
GLU Download size: 484 KB
Estimated GLU disk space required: 13 MB
Estimated GLU build time: 0.2 SBU
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/glu
Install GLU by running the following commands:
./configure --prefix=$XORG_PREFIX --disable-static && make
This package does not come with a test suite.
Now, as the root
user:
make install
--disable-static
:
This switch prevents installation of static versions of the
libraries.
Last updated on 2014-09-15 18:44:41 -0700
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.
This package is known to build and work properly using an LFS-7.6 platform.
Download (HTTP): http://ftp.gnome.org/pub/gnome/sources/goffice/0.10/goffice-0.10.17.tar.xz
Download (FTP): ftp://ftp.gnome.org/pub/gnome/sources/goffice/0.10/goffice-0.10.17.tar.xz
Download MD5 sum: fd5635aeb808ebebaf87124440a9fbdb
Download size: 2.2 MB
Estimated disk space required: 83 MB (additional 1 MB for the tests)
Estimated build time: 0.9 SBU (additional less than 0.1 SBU for the tests)
GTK+-3.12.2, libgsf-1.14.30, librsvg-2.40.3, and Which-2.20
Lasem, libspectre, ghostscript-9.14, gobject-introspection-1.40.0, and GTK-Doc-1.20
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/goffice010
Install GOffice by running the following commands:
./configure --prefix=/usr && make
If you wish to run the tests, 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 and install the API
documentation.
Last updated on 2014-09-21 14:28:22 -0700
The GTK+ 2 package contains libraries used for creating graphical user interfaces for applications.
This package is known to build and work properly using an LFS-7.6 platform.
Download (HTTP): http://ftp.gnome.org/pub/gnome/sources/gtk+/2.24/gtk+-2.24.24.tar.xz
Download (FTP): ftp://ftp.gnome.org/pub/gnome/sources/gtk+/2.24/gtk+-2.24.24.tar.xz
Download MD5 sum: f80ac8aa95ea8482ad89656d0370752e
Download size: 13 MB
Estimated disk space required: 318 MB (additional 1 MB for the tests)
Estimated build time: 3.2 SBU (additional 0.1 SBU for the tests)
ATK-2.12.0, gdk-pixbuf-2.30.8 and Pango-1.36.7
Cups-1.7.5, DocBook-utils-0.6.14, gobject-introspection-1.40.0 and GTK-Doc-1.20
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/gtk+2
Install GTK+ 2 by running the following commands:
sed -i 's#l \(gtk-.*\).sgml#& -o \1#' docs/{faq,tutorial}/Makefile.in && sed -i 's#.*@man_#man_#' docs/reference/gtk/Makefile.in && sed -i -e 's#pltcheck.sh#$(NULL)#g' gtk/Makefile.in && ./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, and the tests can take an excessively long time. Using an X Window, the tests should take less than 0.3 SBU.
Now, as the root
user:
make install
If you installed the package on to your system using a
“DESTDIR” method, an
important file was not installed and must be copied and/or
generated. Generate it using the following command as the
root
user:
gtk-query-immodules-2.0 --update-cache
sed -i 's#l
\(gtk-.*\).sgml#& -o \1#'
docs/{faq,tutorial}/Makefile.in: If you have
DocBook-utils-0.6.14 installed
(specifically, if configure finds db2html) then it will try
to use it to rebuild some of its HTML documentation and fail
due to bugs in some of the Makefile
s. This sed fixes the Makefile
s.
sed -i 's#.*@man_#man_#'
docs/reference/gtk/Makefile.in: This
sed fixes one
of the Makefile
s so it installs
the man pages for gtk-builder-convert,
gtk-query-immodules-2.0,
and gtk-update-icon-cache.
sed -i -e 's#pltcheck.sh#$(NULL)#g' gtk/Makefile.in: This sed disables one test known to fail. Not necessary, if not running the tests.
--enable-gtk-doc
: Use this
parameter if GTK-Doc is
installed and you wish to rebuild and install the API
documentation.
GTK+ 2 themes change the
way a GTK+ 2 application
looks. A GTK+ 2 icon theme
can be used to change the icons that appear on the
application's toolbar. If you have installed a GTK+ 2 theme (such as
gnome-themes (requires GTK
Engines-2.20.2)) or a GTK+
2 icon theme (such as gnome-icon-theme-3.12.0) you
can set your preferences in ~/.gtkrc-2.0
:
cat > ~/.gtkrc-2.0 << "EOF" include "/usr/share/themes/Glider
/gtk-2.0/gtkrc" gtk-icon-theme-name = "hicolor
" EOF
There are many more themes available at Gnome-Look.org and other places.
Once you've settled on themes you like, you can (as the
root
user) make them the
default system wide:
cat > /etc/gtk-2.0/gtkrc << "EOF" include "/usr/share/themes/Clearlooks
/gtk-2.0/gtkrc" gtk-icon-theme-name = "elementary
" EOF
LXAppearance-0.5.6 is a GTK+ 2 application that can help you choose the themes you like.
converts glade files into XML files which can be loaded with GtkBuilder. |
|
demonstrates GTK+ 2 functionality and provides code for the examples. |
|
collects information about loadable input method modules for GTK+ 2 and writes it to standard output. |
|
creates mmap()able cache files for icon themes. Starting with gtk+-2.24.24, add the flag “--include-image-data” to this command, if you wish previous behavior, with image data in the cache. |
|
contains functions that act as a wrapper around the low-level drawing and windowing functions provided by the underlying graphics system. |
|
contains functions that provide an API to implement graphical user interfaces. |
Last updated on 2014-09-10 09:45:01 -0700
The GTK+ 3 package contains the libraries used for creating graphical user interfaces for applications.
This package is known to build and work properly using an LFS-7.6 platform.
Download (HTTP): http://ftp.gnome.org/pub/gnome/sources/gtk+/3.12/gtk+-3.12.2.tar.xz
Download (FTP): ftp://ftp.gnome.org/pub/gnome/sources/gtk+/3.12/gtk+-3.12.2.tar.xz
Download MD5 sum: 0d6d8f9f79132b3b47475d047b369b1c
Download size: 15 MB
Estimated disk space required: 368 MB (additional 4 MB for the test suite and 19 MB to rebuild the docs)
Estimated build time: 4.6 SBU (additional 0.4 SBU for the test suite and 3.5 SBU to rebuild the docs)
at-spi2-atk-2.12.1, gdk-pixbuf-2.30.8, and Pango-1.36.7
Colord-1.2.3, Cups-1.7.5, DocBook-utils-0.6.14, GTK-Doc-1.20, JSON-GLib-1.0.2, rest, libxkbcommon, and Wayland
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/gtk3
GTK+ 3 will overwrite
gtk-update-icon-cache
from GTK+-2.24.24 if it is installed. There
is nothing wrong about that assuming that both programs
provide same functionality. If you wish to keep one from
GTK+ 2 you can add
--enable-gtk2-dependency
to the
configure
command.
Install GTK+ 3 by running the following commands:
./configure --prefix=/usr \ --sysconfdir=/etc \ --enable-broadway-backend \ --enable-x11-backend \ --disable-wayland-backend && make
Some tests fail if /usr/share/glib-2.0/schemas/gschemas.compiled
is not found. If you wish to run the test suite, create (or
update) the file using the following command as the
root
user:
glib-compile-schemas /usr/share/glib-2.0/schemas
To test the results, issue make check.
Now, as the root
user:
make install
If you installed the package on to your system using a
“DESTDIR” method, an
important file was not installed and must be copied and/or
generated. Generate it using the following command as the
root
user:
gtk-query-immodules-3.0 --update-cache
If you installed the package to your system using a
“DESTDIR” method,
/usr/share/glib-2.0/schemas/gschemas.compiled
was not updated/created. Create (or update) the file using
the following command as the root
user:
glib-compile-schemas /usr/share/glib-2.0/schemas
--enable-broadway-backend
: switch
enables the HTML5 GTK backend.
--enable-x11-backend
: switch
enables the X11 GDK backend.
--disable-wayland-backend
: switch
disables the Wayland GDK backend because Wayland isn't
available in BLFS.
--enable-gtk-doc
: Use this
parameter if GTK-Doc is
installed and you wish to rebuild and install the API
documentation.
GTK+ 3 themes change the
way a GTK+ 3 application
looks. An icon theme can be used to change the icons that
appear on the application's toolbar. If you have installed
a GTK+ 3 theme (eg
gnome-themes-standard-3.12.0
or an icon theme (such as gnome-icon-theme-3.12.0) you
can set your prefences in ~/.config/gtk-3.0/settings.ini
. Eg:
mkdir -p ~/.config/gtk-3.0 && cat > ~/.config/gtk-3.0/settings.ini << "EOF" [Settings] gtk-theme-name =Adwaita
gtk-fallback-icon-theme =gnome
EOF
There are many more themes available at http://gnome-look.org/ and other places.
Once you've settled on themes you like, you can (as the
root
user) make them the
default system wide:
cat > /etc/gtk-3.0/settings.ini << "EOF" [Settings] gtk-theme-name =Clearwaita
gtk-fallback-icon-theme =elementary
EOF
provides support for displaying GTK+ 3 applications in a web browser, using HTML5 and web sockets. |
|
launches an application using the given name. The
name should match application desktop file name, as
residing in |
|
collects information about loadable input method modules for GTK+ 3 and writes it to the default cache file location, or to standard output. |
|
is an icon theme caching utility that creates mmap()able cache files for icon themes. |
|
is a simple program that demonstrates some of the things that can be done with GTK+ 3 |
|
is a simple GTK+ 3 application. |
|
is a program to view GTK+ 3 themes and widgets. |
|
contains functions that implements the accessibility interfaces defined by the GNOME Accessibility Toolkit. |
|
contains functions that act as a wrapper around the low-level drawing and windowing functions provided by the underlying graphics system. |
|
contains functions that provide an API to implement graphical user interfaces. |
Last updated on 2014-09-14 14:01:57 -0700
The GTK Engines package contains eight themes/engines and two additional engines for GTK2.
This package is known to build and work properly using an LFS-7.6 platform.
Download (HTTP): http://ftp.gnome.org/pub/gnome/sources/gtk-engines/2.20/gtk-engines-2.20.2.tar.bz2
Download (FTP): http://ftp.gnome.org/pub/gnome/sources/gtk-engines/2.20/gtk-engines-2.20.2.tar.bz2
Download MD5 sum: 5deb287bc6075dc21812130604c7dc4f
Download size: 676 KB
Estimated disk space required: 19 MB
Estimated build time: 0.4 SBU
Lua-5.2.3 and Which-2.20 (required for test suite)
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.
Now, as the root
user:
make install
--enable-lua --with-system-lua
:
Use these switches if you installed Lua and want to build Lua theming
engine.
Last updated on 2014-09-21 14:28:22 -0700
The Gtkmm package provides a C++ interface to GTK+ 2. It can be installed alongside Gtkmm-3.12.0 (the GTK+ 3 version) with no namespace conflicts.
This package is known to build and work properly using an LFS-7.6 platform.
Download (HTTP): http://ftp.gnome.org/pub/gnome/sources/gtkmm/2.24/gtkmm-2.24.4.tar.xz
Download (FTP): ftp://ftp.gnome.org/pub/gnome/sources/gtkmm/2.24/gtkmm-2.24.4.tar.xz
Download MD5 sum: b9ac60c90959a71095f07f84dd39961d
Download size: 10 MB
Estimated disk space required: 296 MB
Estimated build time: 3.6 SBU
Atkmm-2.22.7, GTK+-2.24.24 and Pangomm-2.34.0
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/gtkmm2
Install Gtkmm 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 2014-09-14 13:18:45 -0700
The Gtkmm package provides a C++ interface to GTK+ 3.
This package is known to build and work properly using an LFS-7.6 platform.
Download (HTTP): http://ftp.gnome.org/pub/gnome/sources/gtkmm/3.12/gtkmm-3.12.0.tar.xz
Download (FTP): ftp://ftp.gnome.org/pub/gnome/sources/gtkmm/3.12/gtkmm-3.12.0.tar.xz
Download MD5 sum: 526bfbf8705468fa44b4c2a16cb0138e
Download size: 9.7 MB
Estimated disk space required: 388 MB (Additional 15 MB for tests)
Estimated build time: 2.2 SBU (Additional 0.5 SBU for tests)
Atkmm-2.22.7, GTK+-3.12.2, and Pangomm-2.34.0
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/gtkmm3
Install Gtkmm 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 2014-09-21 14:28:22 -0700
Imlib2 is a graphics library for fast file loading, saving, rendering and manipulation.
This package is known to build and work properly using an LFS-7.6 platform.
Download (HTTP): http://downloads.sourceforge.net/enlightenment/imlib2-1.4.6.tar.bz2
Download MD5 sum: 5c7104121ec6db652b37f74a6d7048e2
Download size: 853 KB
Estimated disk space required: 15 MB
Estimated build time: 0.2 SBU
libpng-1.6.13, libjpeg-turbo-1.3.1, LibTIFF-4.0.3, giflib-5.1.0, and libid3tag
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/imlib2
Install Imlib2 by running the following commands:
sed -e '/DGifOpen/s:fd:&, NULL:' \ -e '/DGifCloseFile/s:gif:&, NULL:' \ -i src/modules/loaders/loader_gif.c && sed -i 's/@my_libs@//' imlib2-config.in && ./configure --prefix=/usr --disable-static && 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.6 && install -v -m644 doc/{*.gif,index.html} \ /usr/share/doc/imlib2-1.4.6
sed ...: The first command fix building with recent versions of Giflib and the second one corrects linker flags for libImlib2 usage.
--disable-static
:
This switch prevents installation of static versions of the
libraries.
Last updated on 2014-09-14 14:01:57 -0700
libdrm provides a user space library for accessing the DRM, direct rendering manager, on operating systems that support the ioctl interface. libdrm is a low-level library, typically used by graphics drivers such as the Mesa DRI drivers, the X drivers, libva and similar projects.
This package is known to build and work properly using an LFS-7.6 platform.
Download (HTTP): http://dri.freedesktop.org/libdrm/libdrm-2.4.56.tar.bz2
Download MD5 sum: 93fdb76d392ce27b23561afb8f70db81
Download size: 577 KB
Estimated disk space required: 10 MB (additional 1 MB for the tests)
Estimated build time: 0.2 SBU (additional less than 0.1 SBU for the tests)
Xorg Libraries (for Intel KMS API support required by Mesa)
docbook-xml-4.5, docbook-xsl-1.78.1 and libxslt-1.1.28 (to build manual pages), and Valgrind-3.10.0
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/libdrm
Install libdrm by running the following commands:
sed -e "/pthread-stubs/d" -i configure.ac && autoreconf -fiv && ./configure --prefix=/usr --enable-udev && make
To check the results, issue make check.
Now, as the root
user:
make install
sed -e "/pthread-stubs/d" -i configure.ac: This sed removes dependency on libpthread-stubs package which is useless on Linux.
--enable-udev
: This
parameter enables support for using Udev instead of mknod.
contains the Direct Rendering Manager API functions. |
|
contains the Intel specific Direct Rendering Manager functions. |
|
contains the open source nVidia (Nouveau) specific Direct Rendering Manager functions. |
|
contains the AMD Radeon specific Direct Rendering Manager functions. |
|
contains API functions for kernel mode setting abstraction. |
Last updated on 2014-09-10 06:21:43 -0700
libepoxy is a library for handling OpenGL function pointer management.
This package is known to build and work properly using an LFS-7.6 platform.
Download (HTTP): http://crux.nu/files/libepoxy-1.2.tar.gz
Download MD5 sum: 12d6b7621f086c0c928887c27d90bc30
Download size: 264 KB
Estimated disk space required: 21 MB
Estimated build time: 0.2 SBU
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/libepoxy
Install libepoxy by running the following commands:
./autogen.sh --prefix=/usr && make
To test the results, issue: make -k check. Some test may fail for unknown reasons.
Now, as the root
user:
make install
Last updated on 2014-09-10 06:21:43 -0700
The libglade package
contains libglade
libraries.
These are useful for loading Glade interface files in a
program at runtime.
This package is known to build and work properly using an LFS-7.6 platform.
Download (HTTP): http://ftp.gnome.org/pub/gnome/sources/libglade/2.6/libglade-2.6.4.tar.bz2
Download (FTP): ftp://ftp.gnome.org/pub/gnome/sources/libglade/2.6/libglade-2.6.4.tar.bz2
Download MD5 sum: d1776b40f4e166b5e9c107f1c8fe4139
Download size: 348 KB
Estimated disk space required: 5 MB
Estimated build time: 0.1 SBU
libxml2-2.9.1 and GTK+-2.24.24
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/libglade
Install libglade by running the following commands:
sed -i '/DG_DISABLE_DEPRECATED/d' glade/Makefile.in && ./configure --prefix=/usr --disable-static && make
To test the results, issue: make check. One of the tests, test-convert, is known to fail.
Now, as the root
user:
make install
sed -i '/DG_DISABLE_DEPRECATED/d': Some of the glib functions that libglade uses were declared deprecated in glib-2.30. This sed removes the G_DISABLE_DEPRECATED CFLAG.
--disable-static
:
This switch prevents installation of static versions of the
libraries.
--enable-gtk-doc
: Use this
parameter if GTK-Doc is
installed and you wish to rebuild and install the API
documentation.
Last updated on 2014-09-10 09:45:01 -0700
The libnotify library is used to send desktop notifications to a notification daemon, as defined in the Desktop Notifications spec. These notifications can be used to inform the user about an event or display some form of information without getting in the user's way.
This package is known to build and work properly using an LFS-7.6 platform.
Download (HTTP): http://ftp.gnome.org/pub/gnome/sources/libnotify/0.7/libnotify-0.7.6.tar.xz
Download (FTP): ftp://ftp.gnome.org/pub/gnome/sources/libnotify/0.7/libnotify-0.7.6.tar.xz
Download MD5 sum: a4997019d08f46f3bf57b78e6f795a59
Download size: 276 KB
Estimated disk space required: 4,9 MB
Estimated build time: 0.2 SBU
notification-daemon-0.7.6 or xfce4-notifyd-0.2.4
GNOME Shell and KDE KWin provide their own notification daemons.
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/libnotify
Install libnotify by running the following commands:
./configure --prefix=/usr --disable-static && make
This package does not come with a test suite.
Now, as the root
user:
make install
--disable-static
:
This switch prevents installation of static versions of the
libraries.
--enable-gtk-doc
: Use this
parameter if GTK-Doc is
installed and you wish to rebuild and install the API
documentation.
Last updated on 2014-09-19 13:13:19 -0700
The libxklavier package contains a utility library for X keyboard.
This package is known to build and work properly using an LFS-7.6 platform.
Download (HTTP): http://ftp.gnome.org/pub/gnome/sources/libxklavier/5.3/libxklavier-5.3.tar.xz
Download (FTP): ftp://ftp.gnome.org/pub/gnome/sources/libxklavier/5.3/libxklavier-5.3.tar.xz
Download MD5 sum: 290ea2a8abc40f78a3a16bdae6f02808
Download size: 312 KB
Estimated disk space required: 5.5 MB
Estimated build time: less than 0.1 SBU
GLib-2.40.0, ISO Codes-3.56, libxml2-2.9.1 and Xorg Libraries
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/libxklavier
Install libxklavier by running the following commands:
./configure --prefix=/usr --disable-static && 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 swithc if the $XORG_PREFIX is anything other than
/usr
.
--disable-static
:
This switch prevents installation of static versions of the
libraries.
--enable-gtk-doc
: Use this
parameter if GTK-Doc is
installed and you wish to rebuild and install the API
documentation.
Last updated on 2014-09-21 12:24:38 -0700
Pango is a library for laying out and rendering of text, with an emphasis on internationalization. It can be used anywhere that text layout is needed, though most of the work on Pango so far has been done in the context of the GTK+ widget toolkit.
This package is known to build and work properly using an LFS-7.6 platform.
Download (HTTP): http://ftp.gnome.org/pub/gnome/sources/pango/1.36/pango-1.36.7.tar.xz
Download (FTP): ftp://ftp.gnome.org/pub/gnome/sources/pango/1.36/pango-1.36.7.tar.xz
Download MD5 sum: 5e8057da0e9e1ed0484f50887ac0ae0f
Download size: 1012 KB
Estimated disk space required: 24 MB (additional 2 MB to rebuild and install the API documentation)
Estimated build time: 0.3 SBU (additional 0.1 SBU to rebuild and install the API documentation)
Cairo-1.12.16, Harfbuzz-0.9.35 and Xorg Libraries
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 -k check. One test fails for unknown reasons.
Now, as the root
user:
make install
If you installed the package on to your system using a
“DESTDIR” method, an
important file was not installed and must be copied and/or
generated. Generate it using the following command as the
root
user:
pango-querymodules --update-cache
--enable-gtk-doc
: Use this
parameter if GTK-Doc is
installed and you wish to rebuild and install the API
documentation.
/etc/pango/pangorc
,
~/.pangorc
and the file
specified in the environment variable PANGO_RC_FILE
is a module registration utility that collects information about Pango loadable modules. |
|
renders a given file through Pango for viewing purposes. |
|
contain low level layout rendering routines, a high level driver for laying out entire blocks of text, and routines to assist in editing internationalized text. |
Last updated on 2014-09-10 09:45:01 -0700
The Pangomm package provides a C++ interface to Pango.
This package is known to build and work properly using an LFS-7.6 platform.
Download (HTTP): http://ftp.gnome.org/pub/gnome/sources/pangomm/2.34/pangomm-2.34.0.tar.xz
Download (FTP): ftp://ftp.gnome.org/pub/gnome/sources/pangomm/2.34/pangomm-2.34.0.tar.xz
Download MD5 sum: 2c702caede167323c9ed9eed2b933098
Download size: 508 KB
Estimated disk space required: 21 MB
Estimated build time: 0.2 SBU
Cairomm-1.10.0, GLibmm-2.40.0 and Pango-1.36.7
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/pangomm
Install Pangomm 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 2014-09-14 13:18:45 -0700
Qt is a cross-platform application framework that is widely used for developing application software with a graphical user interface (GUI) (in which cases Qt is classified as a widget toolkit), and also used for developing non-GUI programs such as command-line tools and consoles for servers. One of the major users of Qt is KDE.
This package is known to build and work properly using an LFS-7.6 platform.
Download (HTTP): http://download.qt-project.org/official_releases/qt/4.8/4.8.6/qt-everywhere-opensource-src-4.8.6.tar.gz
Download MD5 sum: 2edbe4d6c2eff33ef91732602f3518eb
Download size: 231 MB
Estimated disk space required: 2.0 GB
Estimated build time: 37 SBU
alsa-lib-1.0.28, MesaLib-10.2.7, Certificate Authority Certificates, D-Bus-1.8.8, GLib-2.40.0, ICU-53.1 (unicode support), libjpeg-turbo-1.3.1, libmng-2.0.2, libpng-1.6.13, LibTIFF-4.0.3, OpenSSL-1.0.1i, and SQLite-3.8.6
Cups-1.7.5, GTK+-2.24.24 (GTK+ 2 theme support), gst-plugins-base-0.10.36 (For QtWebKit HTML5 Video), MariaDB-10.0.13 or MySQL, PostgreSQL-9.3.5, PulseAudio-5.0, and unixODBC-2.3.2
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/qt4
The installation of Qt
presents several challenges and choices. Complicating the Qt
installation is the fact that there are two versions,
Qt4 and Qt5, that have executable programs with
identical names. If both packages are installed on one
system, the only methods to manage which set of programs is
used is to either control the users' PATH
or to rename files either directly or via
symbolic links. Both packages cannot be installed in the same
directory.
If you are only going to install one of the Qt versions, the
choice of installation methods is easier. You can either
install the components in the several directories of the
/usr
hierarchy or install the
entire package in a separate directory of your choice. We
refer to these options below as "Method 1: Installing in
/usr" and "Method 2: Installing in /opt".
If both versions of Qt are to be installed, one or both
versions need to be installed in a separate directory. For
the purposes here we use the /opt
directory. The selection of which
version is being used by individual users on a system is
controlled by the PATH
variable.
Other systems can be designed, but the BLFS editors find the
PATH
method easiest.
The advantage of installing in /usr
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. The
disadvantage for BLFS users is that this Qt instance cannot
be upgraded while it is in use. For instance, it cannot be
upgraded from a running KDE environment. It also precludes
having multiple versions of Qt on your system and does not
allow reverting to an existing, known working instance of Qt.
The advantage of installing Qt in a custom directory such as
/opt/qt-4.8.6
or /opt/qt-5.3.1
or is that it keeps 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 or merely changing the PATH variable. It also allows a
developer to maintain multiple versions of Qt4 or Qt5 for testing.
If you did not install some of the recommended dependencies, examine ./configure --help output to check how to disable them or use internal versions bundled in the source tarball.
If Qt4 is being
reinstalled into the same directory as an existing
instance, run the commands done by root
, such as make install, 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 Qt is quite long. The instructions
below do not build the tutorials and examples. Removing the
-nomake
lines will
create a complete build.
Fix DoS vulnerability in the GIF image handler:
sed -i -e '631a if (image->isNull()) { state = Error; return -1; }' \ src/gui/image/qgifhandler.cpp
Install Qt4 into the
/usr
hierarchy by running the
following commands:
export QT4LINK=/usr sed -i -e "/#if/d" -e "/#error/d" -e "/#endif/d" \ config.tests/unix/libmng/libmng.cpp && sed -i '/CONFIG -/ a\isEmpty(OUTPUT_DIR): OUTPUT_DIR = ../..' \ src/3rdparty/webkit/Source/WebKit2/DerivedSources.pro && ./configure -prefix /usr \ -bindir /usr/bin \ -plugindir /usr/lib/qt4/plugins \ -importdir /usr/lib/qt4/imports \ -headerdir /usr/include/qt4 \ -datadir /usr/share/qt4 \ -sysconfdir /etc/xdg \ -docdir /usr/share/doc/qt4 \ -demosdir /usr/share/doc/qt4/demos \ -examplesdir /usr/share/doc/qt4/examples \ -translationdir /usr/share/qt4/translations \ -confirm-license \ -opensource \ -release \ -dbus-linked \ -openssl-linked \ -system-sqlite \ -no-phonon \ -no-phonon-backend \ -no-nis \ -no-openvg \ -nomake demos \ -nomake examples \ -optimized-qmake && make
This package does not come with a test suite.
Remove references to the build directory from the
.pc
files by running the
following command:
find . -name "*.pc" -exec perl -pi -e "s, -L$PWD/?\S+,,g" {} \;
Now as the root
user:
make install && rm -rf /usr/tests
Remove references to the build directory from installed files
by running the following command as the root
user:
for file in 3Support CLucene Core DBus Declarative DesignerComponents \ Designer Gui Help Multimedia Network OpenGL Script \ ScriptTools Sql Svg Test UiTools WebKit XmlPatterns Xml phonon; do [ -e /usr/lib/libQt${file}.prl ] && sed -r '/^QMAKE_PRL_BUILD_DIR/d;s/(QMAKE_PRL_LIBS =).*/\1/' \ -i /usr/lib/libQt${file}.prl done unset file
This section provides for installing Qt4 almost all of the
files in the /opt
directory.
export QT4DIR=/opt/qt-4.8.6 && export QT4LINK=/opt/qt4 && sed -i -e "/#if/d" -e "/#error/d" -e "/#endif/d" \ config.tests/unix/libmng/libmng.cpp && sed -i '/CONFIG -/ a\isEmpty(OUTPUT_DIR): OUTPUT_DIR = ../..' \ src/3rdparty/webkit/Source/WebKit2/DerivedSources.pro && ./configure -prefix $QT4DIR \ -sysconfdir /etc/xdg \ -confirm-license \ -opensource \ -release \ -dbus-linked \ -openssl-linked \ -system-sqlite \ -plugin-sql-sqlite \ -no-phonon \ -no-phonon-backend \ -no-nis \ -no-openvg \ -nomake demos \ -nomake examples \ -optimized-qmake && make
Now, as the root
user:
make install ln -svfn $QT4DIR /opt/qt4
Remove references to the build directory from installed files
by running the following command as the root
user:
for file in `basename -a -s .prl $QT4DIR/lib/lib*.prl`; do sed -r -e '/^QMAKE_PRL_BUILD_DIR/d' \ -e 's/(QMAKE_PRL_LIBS =).*/\1/' \ -i $QT4DIR/lib/${file}.prl perl -pi -e "s, -L$PWD/?\S+,,g" $QT4DIR/lib/pkgconfig/${file##lib}.pc done unset file
For all methods, install images and create the menu entries
for installed applications. Be sure that the QT4LINK
variable is defined in root's
environment and as the root
user:
install -v -Dm644 src/gui/dialogs/images/qtlogo-64.png \ /usr/share/pixmaps/qt4logo.png && install -v -Dm644 tools/assistant/tools/assistant/images/assistant-128.png \ /usr/share/pixmaps/assistant-qt4.png && install -v -Dm644 tools/designer/src/designer/images/designer.png \ /usr/share/pixmaps/designer-qt4.png && install -v -Dm644 tools/linguist/linguist/images/icons/linguist-128-32.png \ /usr/share/pixmaps/linguist-qt4.png && install -v -Dm644 tools/qdbus/qdbusviewer/images/qdbusviewer-128.png \ /usr/share/pixmaps/qdbusviewer-qt4.png && install -dm755 /usr/share/applications && cat > /usr/share/applications/assistant-qt4.desktop << EOF[Desktop Entry] Name=Qt4 Assistant Comment=Shows Qt4 documentation and examples Exec=$QT4LINK/bin/assistant Icon=assistant-qt4.png Terminal=false Encoding=UTF-8 Type=Application Categories=Qt;Development;Documentation;
EOF cat > /usr/share/applications/designer-qt4.desktop << EOF[Desktop Entry] Name=Qt4 Designer Comment=Design GUIs for Qt4 applications Exec=$QT4LINK/bin/designer Icon=designer-qt4.png MimeType=application/x-designer; Terminal=false Encoding=UTF-8 Type=Application Categories=Qt;Development;
EOF cat > /usr/share/applications/linguist-qt4.desktop << EOF[Desktop Entry] Name=Qt4 Linguist Comment=Add translations to Qt4 applications Exec=$QT4LINK/bin/linguist Icon=linguist-qt4.png MimeType=text/vnd.trolltech.linguist;application/x-linguist; Terminal=false Encoding=UTF-8 Type=Application Categories=Qt;Development;
EOF cat > /usr/share/applications/qdbusviewer-qt4.desktop << EOF[Desktop Entry] Name=Qt4 QDbusViewer GenericName=D-Bus Debugger Comment=Debug D-Bus applications Exec=$QT4LINK/bin/qdbusviewer Icon=qdbusviewer-qt4.png Terminal=false Encoding=UTF-8 Type=Application Categories=Qt;Development;Debugger;
EOF cat > /usr/share/applications/qtconfig-qt4.desktop << EOF[Desktop Entry] Name=Qt4 Config Comment=Configure Qt4 behavior, styles, fonts Exec=$QT4LINK/bin/qtconfig Icon=qt4logo.png Terminal=false Encoding=UTF-8 Type=Application Categories=Qt;Settings;
EOF
sed -i ...: First command fixes detection of libmng 2.0 and second one prevents configure script from writing to the root directory if building as privileged user.
-confirm-license
:
Accept license without prompting user during configuration.
-opensource
: Install
the opensource version of Qt.
-release
: This switch
disables building with debugging symbols.
-nomake examples -nomake
demos
: These switches disable building programs
that are only of interest to a developer using Qt.
-system-sqlite
: This
switch enables use the system version of SQLite.
-no-nis
: This switch
disables support for Network Information Service (NIS) which
has been deprecated in recent versions of Glibc.
-no-phonon
-no-phonon-backend
: These switches disable
building of the bundled Phonon library. Better version is
provided by phonon-4.8.0 package.
-dbus-linked
-openssl-linked
: These switches enable explicit
linking of the D-Bus and
OpenSSL libraries into
Qt libraries instead of
dlopen()-ing
them.
-no-openvg
: This
switch disables OpenVG
support in Qt.
-optimized-qmake
:
This switch enables building of the optimized qmake program.
-no-dbus
: Use this switch if you
don't have D-Bus installed.
If you installed Qt in
/usr, create an environment variable needed by certain
packages. As the root
user:
cat > /etc/profile.d/qt4.sh << EOF
# Begin /etc/profile.d/qt4.sh
QT4DIR=/usr
export QT4DIR
# End /etc/profile.d/qt4.sh
EOF
If you installed Qt in a location other than /usr, you need to update the following configuration files so that Qt is correctly found by other packages and system processes.
As the root
user, update
the /etc/ld.so.conf
file and
the dynamic linker's run-time cache file:
cat >> /etc/ld.so.conf << EOF
# Begin Qt addition
/opt/qt4/lib
# End Qt addition
EOF
ldconfig
As the root
user, create
the /etc/profile.d/qt4.sh
file:
cat > /etc/profile.d/qt4.sh << EOF
# Begin /etc/profile.d/qt4.sh
QT4DIR=/opt/qt4
pathappend /opt/qt4/bin PATH
pathappend /opt/qt4/lib/pkgconfig PKG_CONFIG_PATH
export QT4DIR
# End /etc/profile.d/qt4.sh
EOF
If you install both Qt4 and Qt5, you can use some simple
scripts to select the currently active set of Qt programs.
As the root
user, create
the following scripts:
cat > /usr/bin/setqt4 << 'EOF'
if [ "x$QT5DIR" != "x/usr" ]; then pathremove $QT5DIR/bin; fi
if [ "x$QT4DIR" != "x/usr" ]; then pathprepend $QT4DIR/bin; fi
echo $PATH
EOF
cat > /usr/bin/setqt5 << 'EOF'
if [ "x$QT4DIR" != "x/usr" ]; then pathremove $QT4DIR/bin; fi
if [ "x$QT5DIR" != "x/usr" ]; then pathprepend $QT5DIR/bin; fi
echo $PATH
EOF
You should now be able to use the appropriate Qt version by running source setqt4 or source setqt5 as desired. (Setting the PATH wont work in a subshell.) Another technique that can be used is to create appropriate alias additions to your ~/.bashrc like alias setqt4='source setqt4'.
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. |
|
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 resource compiler used in conjunction 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 2014-09-15 22:13:43 -0700
Qt5 is a cross-platform application framework that is widely used for developing application software with a graphical user interface (GUI) (in which cases Qt5 is classified as a widget toolkit), and also used for developing non-GUI programs such as command-line tools and consoles for servers.
This package is known to build and work properly using an LFS-7.6 platform.
Download (HTTP): http://download.qt-project.org/official_releases/qt/5.3/5.3.1/single/qt-everywhere-opensource-src-5.3.1.tar.xz
Download MD5 sum: f9a24a0d5645efa0715b6ff0fa13d60f
Download size: 169 MB
Estimated disk space required: 2.3 GB (173 MB installed)
Estimated build time: 105 SBU
alsa-lib-1.0.28, MesaLib-10.2.7, xcb-util-image-0.3.9, xcb-util-keysyms-0.3.9, xcb-util-renderutil-0.3.9, and xcb-util-wm-0.4.1
Certificate Authority Certificates, Cups-1.7.5, D-Bus-1.8.8, GLib-2.40.0, gst-plugins-base-0.10.36, ICU-53.1 (required for QtWebKit), libjpeg-turbo-1.3.1, libmng-2.0.2, libpng-1.6.13, LibTIFF-4.0.3, mtdev-1.1.5, OpenSSL-1.0.1i, PCRE-8.35, SQLite-3.8.6 and Ruby-2.1.2 (required for QtWebKit)
GeoClue-0.12.0, gst-plugins-base-1.4.1 (QtWebKit HTML5 Video Support), GTK+-2.24.24 (GTK+ Theme Support), IBus, libxkbcommon, MariaDB-10.0.13 or MySQL, PostgreSQL-9.3.5, PulseAudio-5.0, and unixODBC-2.3.2
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/qt5
The installation of Qt
presents several challenges and choices. Complicating the Qt
installation is the fact that there are two versions,
Qt4 and Qt5, that have executable programs with
identical names. If both packages are installed on one
system, the only methods to manage which set of programs is
used is to either control the users' PATH
or to rename files either directly or via
symbolic links. Both packages cannot be installed in the same
directory.
If you are only going to install one of the Qt versions, the
choice of installation methods is easier. You can either
install the components in the several directories of the
/usr
hierarchy or install the
entire package in a separate directory of your choice. We
refer to these options below as "Method 1: Installing in
/usr" and "Method 2: Installing in /opt".
If both versions of Qt are to be installed, one or both
versions need to be installed in a separate directory. For
the purposes here we use the /opt
directory. The selection of which
version is being used by individual users on a system is
controlled by the PATH
variable.
Other systems can be designed, but the BLFS editors find the
PATH
method easiest.
The advantage of installing in /usr
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. The
disadvantage for BLFS users is that this Qt instance cannot
be upgraded while it is in use. For instance, it cannot be
upgraded from a running KDE environment. It also precludes
having multiple versions of Qt on your system and does not
allow reverting to an existing, known working instance of Qt.
The advantage of installing Qt in a custom directory such as
/opt/qt-4.8.6
or /opt/qt-5.3.1
or is that it keeps 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 or merely changing the PATH variable. It also allows a
developer to maintain multiple versions of Qt4 or Qt5 for testing.
If you did not install some of the recommended dependencies, examine ./configure --help output to check how to disable them or use internal versions bundled in the source tarball.
If Qt5 is being
reinstalled into the same directory as an existing
instance, run the commands done by root
, such as make install, from a
console or non-Qt5 based window manager. It overwrites
Qt5 libraries that should
not be in use during the install process.
Install Qt5 by running the following commands:
export QT5LINK=/usr ./configure -prefix /usr \ -sysconfdir /etc/xdg \ -bindir /usr/bin \ -headerdir /usr/include/qt5 \ -archdatadir /usr/lib/qt5 \ -datadir /usr/share/qt5 \ -docdir /usr/share/doc/qt5 \ -translationdir /usr/share/qt5/translations \ -examplesdir /usr/share/doc/qt5/examples \ -confirm-license \ -opensource \ -dbus-linked \ -openssl-linked \ -system-sqlite \ -no-nis \ -nomake examples \ -optimized-qmake && make
This package does not come with a test suite.
Remove references to the build directory from the
.pc
files by running the
following command:
find . -name "*.pc" -exec perl -pi -e "s, -L$PWD/?\S+,,g" {} \;
Now, as the root
user:
make install
Remove references to the build directory from installed files
by running the following commands as the root
user:
sed -e "s:$PWD/qtbase:/usr/lib/qt5:g" \ -i /usr/lib/qt5/mkspecs/modules/qt_lib_bootstrap_private.pri && find /usr/lib/lib{qgsttools_p,Qt5*}.prl -exec sed -i -r \ '/^QMAKE_PRL_BUILD_DIR/d;s/(QMAKE_PRL_LIBS =).*/\1/' {} \;
This section provides instructions for installing Qt5 in the
/opt
directory.
export QT5DIR=/opt/qt-5.3.1 && export QT5LINK=/opt/qt5 && ./configure -prefix $QT5DIR \ -sysconfdir /etc/xdg \ -confirm-license \ -opensource \ -dbus-linked \ -openssl-linked \ -system-sqlite \ -no-nis \ -nomake examples \ -optimized-qmake && make
Now, as the root
user:
make install && ln -svfn $QT5DIR /opt/qt5
Remove references to the build directory from installed files
by running the following commands as the root
user:
find $QT5DIR -name qt_lib_bootstrap_private.pri \ -exec sed -i -e "s:$PWD/qtbase:/$QT5DIR/lib/:g" {} \; && find $QT5DIR -name \*.prl \ -exec sed -i -e '/^QMAKE_PRL_BUILD_DIR/d' {} \;
For all methods, install images and create the menu entries
for installed applications. Be sure that the QT5LINK
variable is defined in root's
environment and as the root
user:
install -v -dm755 /usr/share/pixmaps/ && install -v -Dm644 qttools/src/assistant/assistant/images/assistant-128.png \ /usr/share/pixmaps/assistant-qt5.png && install -v -Dm644 qttools/src/designer/src/designer/images/designer.png \ /usr/share/pixmaps/designer-qt5.png && install -v -Dm644 qttools/src/linguist/linguist/images/icons/linguist-128-32.png \ /usr/share/pixmaps/linguist-qt5.png && install -v -Dm644 qttools/src/qdbus/qdbusviewer/images/qdbusviewer-128.png \ /usr/share/pixmaps/qdbusviewer-qt5.png && install -dm755 /usr/share/applications && cat > /usr/share/applications/assistant-qt5.desktop << EOF[Desktop Entry] Name=Qt5 Assistant Comment=Shows Qt5 documentation and examples Exec=$QT5LINK/bin/assistant Icon=assistant-qt5.png Terminal=false Encoding=UTF-8 Type=Application Categories=Qt;Development;Documentation;
EOF cat > /usr/share/applications/designer-qt5.desktop << EOF[Desktop Entry] Name=Qt5 Designer GenericName=Interface Designer Comment=Design GUIs for Qt5 applications Exec=$QT5LINK/bin/designer Icon=designer-qt5.png MimeType=application/x-designer; Terminal=false Encoding=UTF-8 Type=Application Categories=Qt;Development;
EOF cat > /usr/share/applications/linguist-qt5.desktop << EOF[Desktop Entry] Name=Qt5 Linguist Comment=Add translations to Qt5 applications Exec=$QT5LINK/bin/linguist Icon=linguist-qt5.png MimeType=text/vnd.trolltech.linguist;application/x-linguist; Terminal=false Encoding=UTF-8 Type=Application Categories=Qt;Development;
EOF cat > /usr/share/applications/qdbusviewer-qt5.desktop << EOF[Desktop Entry] Name=Qt5 QDbusViewer GenericName=D-Bus Debugger Comment=Debug D-Bus applications Exec=$QT5LINK/bin/qdbusviewer Icon=qdbusviewer-qt5.png Terminal=false Encoding=UTF-8 Type=Application Categories=Qt;Development;Debugger;
EOF
sed -e "..." -e "..." -i ...: This command fixes detection of libmng 2.0.
-confirm-license
:
Accept license without prompting user during configuration.
-opensource
: Install
the opensource version of Qt.
-release
: This switch
disables building with debugging symbols.
-nomake examples
:
This switch disables building of the example programs
included in the source tarball. Remove it if you want to
build them.
-system-harfbuzz
:
This switch enables use of the system version of Harfbuzz which fixes some font rendering
issues in Qt5 applications.
-system-sqlite
: This
switch enables use of the system version of SQLite.
-no-nis
: This switch
disables support for Network Information Service (NIS) which
has been removed from recent versions of Glibc.
-dbus-linked
-openssl-linked
: These switches enable explicit
linking of the D-Bus and
OpenSSL libraries into
Qt5 libraries instead of
dlopen()-ing
them.
-optimized-qmake
:
This switch enables building of the optimized qmake program.
Create the menu entries for installed applications by
running the following commands root
user:
If you installed Qt5 in
/usr
, create an environment
variable needed by certain packages. As the root
user:
cat > /etc/profile.d/qt5.sh << EOF
# Begin /etc/profile.d/qt5.sh
QT5DIR=/usr
export QT5DIR
# End /etc/profile.d/qt5.sh
EOF
If you installed Qt5 in a
location other than /usr
, you
need to update the following configuration files so that
Qt5 is correctly found by
other packages and system processes.
As the root
user, update
the /etc/ld.so.conf
file and
the dynamic linker's run-time cache file:
cat >> /etc/ld.so.conf << EOF
# Begin Qt addition
/opt/qt5/lib
# End Qt addition
EOF
ldconfig
As the root
user, create
the /etc/profile.d/qt5.sh
file:
cat > /etc/profile.d/qt5.sh << EOF
# Begin /etc/profile.d/qt5.sh
QT5DIR=/opt/qt5
pathappend /opt/qt5/bin PATH
pathappend /opt/qt5/lib/pkgconfig PKG_CONFIG_PATH
export QT5DIR
# End /etc/profile.d/qt5.sh
EOF
If you install both Qt4 and Qt5, you can use some simple
scripts to select the currently active set of Qt programs.
As the root
user, create
the following scripts:
cat > /usr/bin/setqt4 << 'EOF'
if [ "x$QT5DIR" != "x/usr" ]; then pathremove $QT5DIR/bin; fi
if [ "x$QT4DIR" != "x/usr" ]; then pathprepend $QT4DIR/bin; fi
echo $PATH
EOF
cat > /usr/bin/setqt5 << 'EOF'
if [ "x$QT4DIR" != "x/usr" ]; then pathremove $QT4DIR/bin; fi
if [ "x$QT5DIR" != "x/usr" ]; then pathprepend $QT5DIR/bin; fi
echo $PATH
EOF
You should now be able to use the appropriate Qt version by running source setqt4 or source setqt5 as desired. (Setting the PATH wont work in a subshell.) Another technique that can be used is to create appropriate alias additions to your ~/.bashrc like alias setqt4='source setqt4'.
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. |
|
uses information stored in project files to determine what should go in the makefiles it generates. |
|
is a resource compiler used in conjunction with designer. |
|
is a Qt user interface compiler. |
Last updated on 2014-09-21 14:28:22 -0700
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.
This package is known to build and work properly using an LFS-7.6 platform.
Download (HTTP): http://www.freedesktop.org/software/startup-notification/releases/startup-notification-0.12.tar.gz
Download MD5 sum: 2cd77326d4dcaed9a5a23a1232fb38e9
Download size: 347 KB
Estimated disk space required: 4 MB
Estimated build time: less than 0.1 SBU
Xorg Libraries and xcb-util-0.3.9
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/startup-notification
Install startup-notification by running the following commands:
./configure --prefix=/usr --disable-static && 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.12/startup-notification.txt
--disable-static
:
This switch prevents installation of static versions of the
libraries.
Last updated on 2014-09-10 09:45:01 -0700
The WebKitGTK+ is the port of the portable web rendering engine WebKit to the GTK+ 3 and/or GTK+ 2 platforms.
This package is known to build and work properly using an LFS-7.6 platform.
Download (HTTP): http://webkitgtk.org/releases/webkitgtk-2.4.5.tar.xz
Download MD5 sum: c2e1687bb0314a0948fbf78e2d1e931f
Download size: 9.4 MB
Estimated disk space required: 1.5 GB (both built)
Estimated build time: 138 SBU (both built, webkitgtk-3.0 takes a little longer than webkitgtk-1.0)
gst-plugins-base-1.4.1, GTK+-2.24.24 or GTK+-3.12.2, ICU-53.1, libsecret-0.18, libsoup-2.46.0, libwebp-0.4.1, MesaLib-10.2.7, Ruby-2.1.2, SQLite-3.8.6, udev-extras (from eudev) (for GUdev) and Which-2.20
WebKit2 links againstGTK+ 2 (even if GTK+ 3 is being used), in order to be able to use NPAPI plugins such as Adobe Flash.
enchant-1.6.0, GeoClue-0.12.0, gobject-introspection-1.40.0, hicolor-icon-theme-0.13
GTK-Doc-1.20, Harfbuzz-0.9.35, LLVM-3.5.0, GeoClue2, and MathML
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/webkitgtk
If you have not installed GTK-Doc-1.20, fix a bug that will cause make install to fail:
sed -i '/generate-gtkdoc --rebase/s:^:# :' \ GNUmakefile.in
Upstream standard now is to link this package against GTK+ 3. However, for backward compatibility, manu users need also another instance, linked to GTK+ 2. Both can be installed in the same system, without problem. However, some packages can alternatively be linked to either one. Here, both build methods are presented and recommended to be built, but if you know which one you need, just jump to the respective part.
Install WebKitGTK+ by running the following commands:
mkdir -vp build-3 && cp -a Documentation build-3 && cd build-3 && ../configure --prefix=/usr --enable-introspection && make
This package does not have a working testsuite. However, there are two useable basic graphical web browsers in the build directory, Programs/GtkLauncher and Programs/MiniBrowser. If launching any one fails, there is a problem with the build.
When installing, the Makefile does some additional compiling and linking. If you do not have Xorg in /usr, the LIBRARY_PATH and PKG_CONFIG_PATH variables need to be defined for the root user. If using sudo to assume root, use the -E option to pass your current environment variables for the install process.
Now, as the root
user:
make install
Finally, leave the buid directory:
cd ..
Install WebKitGTK+ by running the following commands:
mkdir -vp build-1
If you have built and installed the package against GTK+ 3. skip the following command, because the previous docummentation also applies here:
cp -a Documentation build-1
Now, change into the build directory and effectively start the build and install:
cd build-1 && ../configure --prefix=/usr --with-gtk=2.0 --disable-webkit2 && make
This package does not have a working testsuite. However, there is one useable basic graphical web browser in the build directory, Programs/GtkLauncher. If launching it fails, there is a problem with the build.
When installing, the Makefile does some additional compiling and linking. If you do not have Xorg in /usr, the LIBRARY_PATH and PKG_CONFIG_PATH variables need to be defined for the root user. If using sudo to assume root, use the -E option to pass your current environment variables for the install process.
Now, as the root
user:
make install
Finally, leave the buid directory:
cd ..
--enable-introspection
: This
switch enables support for Gobject
Introspection and is required for a GNOME Desktop. Remove if you don't have
Gobject Introspection
installed or you don't want to install GNOME.
--disable-geolocation
: Use this
option if you did not install GeoClue-0.12.0 or configure will fail.
--enable-gtk-doc
: Use this
parameter if GTK-Doc is
installed and you wish to rebuild and install the API
documentation.
is a command-line utility that allows you to run JavaScript programs outside of the context of a web browser. |
|
is a command-line utility that allows you to run JavaScript programs outside of the context of a web browser. |
|
contains core JavaScript API functions used by
jsc-1
and |
|
contains core JavaScript API functions used by
jsc-3
and |
|
contains the WebKitGTK+ API functions for GTK+ 2. |
|
contains the WebKitGTK+ API functions for GTK+ 3. |
|
contains the WebKit2 API functions. |
Last updated on 2014-09-16 13:49:04 -0700
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 2013-03-08 15:46:06 -0800
The Fluxbox package contains a window manager.
This package is known to build and work properly using an LFS-7.6 platform.
Download (HTTP): http://downloads.sourceforge.net/fluxbox/fluxbox-1.3.5.tar.bz2
Download (FTP): ftp://ftp.jaist.ac.jp/pub//sourceforge/f/fl/fluxbox/fluxbox/1.3.5/fluxbox-1.3.5.tar.bz2
Download MD5 sum: 9d9e183424a0934e20417ff20775a570
Download size: 787 KB
Estimated disk space required: 150 MB
Estimated build time: 0.9 SBU
D-Bus-1.8.8 (runtime), FriBidi-0.19.6, and Imlib2-1.4.6 (if you wish to use other image formats in addition to XPM)
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/fluxbox
Install Fluxbox by running the following commands:
./configure --prefix=/usr && make
This package does not have a working testsuite.
Now, as the root
user:
make install
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 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
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
To generate the application menu:
cd ~/.fluxbox && fluxbox-generate_menu
Alternately, copy a pregenerated menu:
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 one of: display, Esetroot, wmsetbg, xv, qiv or xsri. It also requires which if Esetroot is found. |
|
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. |
|
provides command line access to key commands for Fluxbox. |
Last updated on 2014-09-10 09:45:01 -0700
IceWM is a window manager with the goals of speed, simplicity, and not getting in the user's way.
This package is known to build and work properly using an LFS-7.6 platform.
Download (HTTP): http://downloads.sourceforge.net/icewm/icewm-1.3.8.tar.gz
Download MD5 sum: 6d61aced3bd20b9e7caeb7e8380368c8
Download size: 888 KB
Estimated disk space required: 33 MB
Estimated build time: 0.3 SBU
X Window System and gdk-pixbuf-2.30.8
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/icewm
This version of IceWM is nominally a development release, but it provides a stable working environment and can be built without using obsolete libraries.
Install IceWM by running the following commands:
sed -i '/^LIBS/s/\(.*\)/\1 -lfontconfig/' src/Makefile.in && ./configure --prefix=/usr && make
This package does not have a working testsuite.
Now, as the root
user:
make install && make install-docs && make install-man && make install-desktop
sed -i '/^LIBS/s/\(.*\)/\1
-lfontconfig/' src/Makefile.in
: this fixes the
build with recent versions of binutils.
~/.icewm/keys
, ~/.icewm/menu
, and ~/.icewm/preferences
, and ~/.icewm/toolbar
, and ~/.icewm/winoptions
. The default versions
are installed in /usr/share/icewm/
and will be used if you
have not copied them to ~/.icewm
.
If IceWM 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 icewm-session > ~/.xinitrc
Now create the IceWM configuration files:
mkdir -v ~/.icewm && cp -v /usr/share/icewm/keys ~/.icewm/keys && cp -v /usr/share/icewm/menu ~/.icewm/menu && cp -v /usr/share/icewm/preferences ~/.icewm/preferences && cp -v /usr/share/icewm/toolbar ~/.icewm/toolbar && cp -v /usr/share/icewm/winoptions ~/.icewm/winoptions
You can now edit these files to meet your requirements. In
particular, review the preferences
file. You can use
Logout ->
Restart-IceWM on the main menu to load your
changed preferences, but changes to the background only
take effect when IceWM is
started.
The syntax of the menus is explained in the help files, which you can access by running help from the menu, but some of the detail is out of date and the default selections in the menus (a few old applications on the main menu, everything else on the Programs menu) will benefit from being updated to meet your needs. The following examples are provided to encourage you to think about how you wish to organise your menus. Please note the following:
If a program listed in the menu has not been installed, it will not appear when the menu is displayed. Similarly, if the program exists but the specified icon does not, no icon will be displayed in the menu.
The icons can be either .xpm
or .png
files, and there is no need to
specify the extension. If the icon is located in the
"library" (/usr/share/icewm/icons
) there is no
need to specifiy the path.
Most programs are in sub-menus, and the main menu
will always append entries for windows, help, settings, logout
at
the bottom.
An icon for firefox
was copied to the library directory and given a
meaningful name. The icon for xine is xine.xpm
which was installed to a
pixmap directory.
The default toolbar is not altered.
It is unlikely that these examples meet your desires, but if you wish to use them run the following commands:
cat > ~/.icewm/menu << "EOF"prog Urxvt xterm urxvt prog GVolWheel /usr/share/pixmaps/gvolwheel/audio-volume-medium gvolwheel separator menufile General folder general menufile Multimedia folder multimedia menufile Tool_bar folder toolbar
EOF && >cat > ~/.icewm/general << "EOF"prog Firefox firefox firefox prog Epiphany /usr/share/icons/gnome/16x16/apps/web-browser epiphany prog Midori /usr/share/icons/hicolor/24x24/apps/midori midori separator prog Gimp /usr/share/icons/hicolor/16x16/apps/gimp gimp separator prog Evince /usr/share/icons/hicolor/16x16/apps/evince evince prog Epdfview /usr/share/epdfview/pixmaps/icon_epdfview-48 epdfview
EOF && >cat > ~/.icewm/multimedia << "EOF"prog Audacious /usr/share/icons/hicolor/48x48/apps/audacious audacious separator prog Parole /usr/share/icons/hicolor/16x16/apps/parole parole prog Totem /usr/share/icons/hicolor/16x16/apps/totem totem prog Vlc /usr/share/icons/hicolor/16x16/apps/vlc vlc prog Xine /usr/share/pixmaps/xine xine
EOF &&
If you wish to put icons on your desktop, you will need to install a program such as Rox-Filer-2.11 which provides a pinboard. If you do that you will no longer be able to access the menu by right-clicking on the desktop, you will have to use the IceWM button. To ensure that the rox pinboard is running, the following commands will put it in the startup file:
cat > ~/.icewm/startup << "EOF"
rox -p Default &
EOF &&
chmod +x ~/.icewm/startup
There are a number of keyboard shortcuts in IceWM:
Ctrl + Alt + FN
: go to
tty
.
N
Ctrl + Alt + N
: go to desktop
number N
Ctrl + Alt + Space : open a box on the taskbar where you can key in the name of an application and run it.
is used to display the html manual. |
|
is a command-line window manager which can be used
in |
|
is the window manager. |
|
runs icewmbg, icewm, icewmtray, startup, shutdown (i.e. startup and shutdown scripts are run if installed). |
|
is a script to set the GNOME to icewm using gconftool. |
|
is used to set the background, according to the
various |
|
is used internally. |
|
provides the tray. |
Last updated on 2014-09-10 09:45:01 -0700
Openbox is a highly configurable desktop window manager with extensive standards support. It allows you to control almost every aspect of how you interact with your desktop.
This package is known to build and work properly using an LFS-7.6 platform.
Download (HTTP): http://openbox.org/dist/openbox/openbox-3.5.2.tar.gz
Download MD5 sum: 93df606606053b7e8578a5c116afb8ec
Download size: 956 KB
Estimated disk space required: 19 MB
Estimated build time: 0.3 SBU
X Window System and Pango-1.36.7 (compiled with support for libXft)
D-Bus-1.8.8 (runtime), Imlib2-1.4.6 (to enable icons in the right click menu), PyXDG-0.25, startup-notification-0.12, and librsvg-2.40.3
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/openbox
If XORG_PREFIX is not /usr
,
tell gcc
about it:
export LIBRARY_PATH=$XORG_PREFIX/lib
Install Openbox by running the following commands:
./configure --prefix=/usr \ --sysconfdir=/etc \ --disable-static \ --docdir=/usr/share/doc/openbox-3.5.2 && make
This package does not come with a test suite.
Now, as the root
user:
make install
--sysconfdir=/etc
: This option
puts Openbox's configuration
files in /etc/xdg/openbox instead of /usr/etc/xdg/openbox.
--docdir=/usr/share/doc/openbox-3.5.2
: this
puts a few files in a versioned directory in /usr/share/doc
.
--disable-static
:
This switch prevents installation of static versions of the
libraries.
/etc/xdg/openbox/autostart, /etc/xdg/openbox/menu.xml, /etc/xdg/openbox/rc.xml, ~/.config/openbox/autostart, ~/.config/openbox/menu.xml and ~/.config/openbox/rc.xml
Openbox's right click menu
can be used to launch programs. The menu itself is
configured with 2 files, /etc/xdg/openbox/menu.xml
and
~/.config/openbox/menu.xml
.
To make changes to the menu, copy /etc/xdg/openbox/menu.xml
to ~/.config/openbox/menu.xml and edit it:
cp -rf /etc/xdg/openbox ~/.config
~/.config/openbox/menu.xml
can be edited with a text editor or you can install
Obmenu (requires
pyxml and
PyGTK-2.24.0).
To have icons in your right click menu requires installing
Imlib2-1.4.6 before you install
Openbox. To set an icon
for an entry in the menu edit ~/.config/openbox/menu.xml
and add an
icon to the <item> tag like this:
<item label="Mplayer" icon="/usr/share/pixmaps/mplayer.png">
Many other aspects of Openbox's behaviour are configured
with ~/.config/openbox/rc.xml
such as what keybindings are used to launch programs or
which mouse button launches the main menu.
Details of the theme that Openbox applies to window decorations
are configured in ~/.config/openbox/rc.xml
. You can get a
list of the available themes with the command:
ls -d /usr/share/themes/*/openbox-3 | sed 's#.*es/##;s#/o.*##'
To automatically start openbox when you start Xorg:
echo openbox > ~/.xinitrc
If you want to set a background image to your desktop you can use display and launch it from ~/.xinitrc just before openbox:
cat > ~/.xinitrc << "EOF"
display -backdrop -window root /path/to/beautiful/picture.jpeg
exec openbox
EOF
Or if you like a bit of variety, put a selection of images in a folder (in this example, the directory ~/.config/backgrounds) and choose one at random each time you xinit:
cat > ~/.xinitrc << "EOF"
# make an array which lists the pictures:
picture_list=(~/.config/backgrounds/*)
# create a random integer between 0 and the number of pictures:
random_number=$(( ${RANDOM} % ${#picture_list[@]} ))
# display the chosen picture:
display -backdrop -window root "${picture_list[${random_number}]}"
exec openbox
EOF
If you like to have the numlock key set whan you start Xorg, install Numlockx and add that to your xinitrc. Another useful application is D-Bus-1.8.8:
cat > ~/.xinitrc << "EOF"
. /etc/profile
picture_list=(~/.config/backgrounds/*)
random_number=$(( ${RANDOM} % ${#picture_list[*]} ))
display -backdrop -window root "${picture_list[${random_number}]}"
numlockx
eval $(dbus-launch --auto-syntax --exit-with-session)
lxpanel &
exec openbox
EOF
is a command line tool to send signals to GDM. |
|
is a command line utility to invoke the Gnome Panel run dialog/menu. |
|
is a tool for displaying the properties on an x window. It has a similar functionality to xprop, but allows you to see UTF-8 strings as text. |
|
is a standards compliant, highly configurable, window manager. |
|
is a script that runs commands and applications at Openbox startup. |
|
is a script that runs xdg autostart .desktop files. |
|
is a script to launch an Gnome session with
Openbox as your
window manager from your |
|
is a script to launch an KDE session with Openbox as your window manager
from your |
|
is a script to launch an Openbox session from your
|
|
contains the functions used by Openbox for theme rendering. |
|
is the Openbox toolkit library. |
Last updated on 2014-09-14 14:01:57 -0700
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.
This package is known to build and work properly using an LFS-7.6 platform.
Download (HTTP): http://download.tuxfamily.org/sawfish/sawfish-1.10.tar.xz
Download MD5 sum: 562814495cc991f29eb4b8e2d8dea05a
Download size: 2.6 MB
Estimated disk space required: 35 MB
Estimated build time: 0.6 SBU
rep-gtk-0.90.8.1 and Which-2.20
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/sawfish
Install sawfish by running the following commands:
./configure --prefix=/usr --with-pango && make
This package does not come with a test suite.
Now, as the root
user:
make install
Last updated on 2014-09-20 21:51:52 -0700
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.
Last updated on 2012-05-06 08:26:39 -0700
KDE Software Compilation 4 is a comprehensive desktop environment with a huge number of applications written for it and a huge amount of users. It is based on the Qt framework.
For more information visit the official KDE project site at http://www.kde.org/.
The core KDE packages are listed in the recommended and tested build order. The additional KDE packages can be built in any order.
Last updated on 2013-02-11 10:51:17 -0800
If you did not install Xorg
in /usr
, some of the
CMake modules in
KDE look for packages at
hard coded locations. To accommodate this issue, create the
following symbolic link (as the root user):
ln -sv $XORG_PREFIX /usr/X11R6
One option is to put KDE
into the /usr
hierarchy. This
creates a simpler setup but makes it 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
If you are not installing KDE in /usr
, you will need to make some additional
configuration changes. Best practice is to add those to your
system or personal profile:
cat > /etc/profile.d/kde.sh << 'EOF'
# Begin /etc/profile.d/kde.sh
KDE_PREFIX=/opt/kde
KDEDIR=$KDE_PREFIX
pathappend $KDE_PREFIX/bin PATH
pathappend $KDE_PREFIX/lib/pkgconfig PKG_CONFIG_PATH
pathappend $KDE_PREFIX/share/pkgconfig PKG_CONFIG_PATH
pathappend $KDE_PREFIX/share XDG_DATA_DIRS
pathappend /etc/kde/xdg XDG_CONFIG_DIRS
export KDE_PREFIX KDEDIR
# End /etc/profile.d/kde.sh
EOF
Add to your /etc/ld.so.conf
:
cat >> /etc/ld.so.conf << EOF
# Begin kde addition
/opt/kde/lib
# End kde addition
EOF
Several KDE packages install files into D-Bus and polkit
directories. When installing KDE in a location other than
/usr
, D-Bus and polkit need to
find these files. The easiest way to achieve this is to
create the following symlinks (as the root
user):
install -d $KDE_PREFIX/share && ln -svf /usr/share/dbus-1 $KDE_PREFIX/share && ln -svf /usr/share/polkit-1 $KDE_PREFIX/share
Sometimes, the installation paths are coded into installed
files. This is the reason why /opt/kde
is used as installation prefix
instead of /opt/kde-4.14.1
.
After installing KDE, you
may rename the directory and create a symlink:
mv /opt/kde{,-4.14.1} && ln -svf kde-4.14.1 /opt/kde
Later on, you may want to install other versions of
KDE. To do that, just
remove the symlink and use /opt/kde
as the prefix again
(KDE must not be started).
Which version of KDE you
use depends only on where the symlink points to. No other
reconfiguration will be needed.
Last updated on 2014-04-30 06:13:07 -0700
Automoc4 is a tool to add rules for generating Qt moc files automatically to projects that use CMake as the buildsystem.
This package is known to build and work properly using an LFS-7.6 platform.
Download (HTTP): http://download.kde.org/stable/automoc4/0.9.88/automoc4-0.9.88.tar.bz2
Download (FTP): ftp://ftp.kde.org/pub/kde/stable/automoc4/0.9.88/automoc4-0.9.88.tar.bz2
Download MD5 sum: 91bf517cb940109180ecd07bc90c69ec
Download size: 0.9 MB
Estimated disk space required: 488 KB
Estimated build time: 0.1 SBU
CMake-3.0.1 and Qt-4.8.6
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/automoc4
Install automoc4 by running the following commands:
mkdir build && cd build && cmake -DCMAKE_INSTALL_PREFIX=$KDE_PREFIX -Wno-dev .. && make
Now, as the root
user:
make install
-Wno-dev
: Suppress warnings that
are meant for the author of the CMakeLists.txt files.
Last updated on 2014-09-17 11:48:47 -0700
Phonon is the multimedia API for KDE4. It replaces the old aRts, that is no longer supported by KDE. Phonon needs either the GStreamer or VLC backend.
This package is known to build and work properly using an LFS-7.6 platform.
Download (HTTP): http://download.kde.org/stable/phonon/4.8.0/phonon-4.8.0.tar.xz
Download (FTP): ftp://ftp.kde.org/pub/kde/stable/phonon/4.8.0/phonon-4.8.0.tar.xz
Download MD5 sum: 30af25af0bf28f3ce462f39b0a6e4081
Download size: 314 KB
Estimated disk space required: 10.5 MB
Estimated build time: 0.5 SBU
automoc4-0.9.88 and GLib-2.40.0
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/phonon
Make sure that Qt-4.8.6 is compiled without the bundled Phonon library. This package provides a better implementation.
If you have both Qt4 and Qt5 installed, be sure to run
source
setqt4
before installing Phonon.
Install Phonon by running the following commands:
mkdir build && cd build && cmake -DCMAKE_INSTALL_PREFIX=$KDE_PREFIX \ -DCMAKE_BUILD_TYPE=Release \ -DCMAKE_INSTALL_LIBDIR=lib \ -DPHONON_INSTALL_QT_EXTENSIONS_INTO_SYSTEM_QT=FALSE \ -DDBUS_INTERFACES_INSTALL_DIR=/usr/share/dbus-1/interfaces \ -Wno-dev .. && make
Now, as the root
user:
make install
-DCMAKE_BUILD_TYPE=Release
:
This switch is used to apply higher level of the compiler
optimizations.
-DPHONON_INSTALL_QT_EXTENSIONS_INTO_SYSTEM_QT=FALSE
:
This switch ensures that the plugins and mkspecs files get
installed in the correct location.
-DDBUS_INTERFACES_INSTALL_DIR=/usr/share/dbus-1/interfaces
:
This switch sets the correct installation path for the
D-Bus interfaces file.
Last updated on 2014-09-10 12:10:00 -0700
This package provides a Phonon backend which utilizes the GStreamer media framework.
This package is known to build and work properly using an LFS-7.6 platform.
Download (HTTP): http://download.kde.org/stable/phonon/phonon-backend-gstreamer/4.8.0/phonon-backend-gstreamer-4.8.0.tar.xz
Download (FTP): ftp://ftp.kde.org/pub/kde/stable/phonon/phonon-backend-gstreamer/4.8.0/phonon-backend-gstreamer-4.8.0.tar.xz
Download MD5 sum: fad1ae2accbc2affee174fb8b52630ed
Download size: 74 KB
Estimated disk space required: 3.5 MB
Estimated build time: 0.3 SBU
phonon-4.8.0 and GStreamer-1.4.1
gst-plugins-base-1.4.1 (needed for output to ALSA), gst-plugins-good-1.4.1 (needed for output to PulseAudio), gst-plugins-bad-1.4.1 (needed for AAC/M4A support) and gst-plugins-ugly-1.4.1 (needed for MP3 support)
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/phonon-backend-gstreamer
Install Phonon-backend-gstreamer by running the following commands:
mkdir build && cd build && cmake -DCMAKE_INSTALL_PREFIX=$KDE_PREFIX \ -DCMAKE_INSTALL_LIBDIR=lib \ -DCMAKE_BUILD_TYPE=Release \ -Wno-dev .. && make
Now, as the root
user:
make install
-DCMAKE_BUILD_TYPE=Release
: This
switch is used to apply higher level of compiler
optimizations.
Last updated on 2014-09-11 08:36:11 -0700
This package provides a Phonon backend which utilizes the VLC media framework.
This package is known to build and work properly using an LFS-7.6 platform.
Download (HTTP): http://download.kde.org/stable/phonon/phonon-backend-vlc/0.8.0/phonon-backend-vlc-0.8.0.tar.xz
Download (FTP): ftp://ftp.kde.org/pub/kde/stable/phonon/phonon-backend-vlc/0.8.0/phonon-backend-vlc-0.8.0.tar.xz
Download MD5 sum: f4c1f5c75d15931f02508cccef107e3d
Download size: 58 KB
Estimated disk space required: 2.9 MB
Estimated build time: 0.2 SBU
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/phonon-backend-vlc
Install Phonon-backend-vlc by running the following commands:
mkdir build && cd build && cmake -DCMAKE_INSTALL_PREFIX=$KDE_PREFIX \ -DCMAKE_INSTALL_LIBDIR=lib \ -DCMAKE_BUILD_TYPE=Release \ -Wno-dev .. && make
Now, as the root
user:
make install
-DCMAKE_BUILD_TYPE=Release
: This
switch is used to apply higher level of compiler
optimizations.
Last updated on 2014-09-11 08:36:11 -0700
Akonadi is an extensible cross-desktop storage service for PIM data and metadata providing concurrent read, write, and query access. It provides unique desktop-wide object identification and retrieval.
This package is known to build and work properly using an LFS-7.6 platform.
Download (HTTP): http://download.kde.org/stable/akonadi/src/akonadi-1.13.0.tar.bz2
Download (FTP): ftp://ftp.kde.org/pub/kde/stable/akonadi/src/akonadi-1.13.0.tar.bz2
Download MD5 sum: 84eb2e471bd6bdfe54a2a2f1d858c07d
Download size: 287 KB
Estimated disk space required: 82 MB
Estimated build time: 1.9 SBU
shared-mime-info-1.3, Boost-1.56.0, and one of: SQLite-3.8.6, MariaDB-10.0.13, MySQL, or PostgreSQL-9.3.5
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/akonadi
Install Akonadi by running the following commands:
mkdir build && cd build && cmake -DCMAKE_INSTALL_PREFIX=$KDE_PREFIX \ -DCMAKE_BUILD_TYPE=Release \ -DINSTALL_QSQLITE_IN_QT_PREFIX=TRUE \ -Wno-dev .. && make
To test the results, issue make test.
Now, as the root
user:
make install
-DCMAKE_BUILD_TYPE=Release
: This
switch is used to apply a higher level of compiler
optimizations.
-DINSTALL_QSQLITE_IN_QT_PREFIX=TRUE
: This
switch ensures that Akonadi
SQLite extension is installed into the Qt plugins directory.
Last updated on 2014-09-17 11:48:47 -0700
Attica is a library to access "Open Collaboration Service" providers.
This package is known to build and work properly using an LFS-7.6 platform.
Download (HTTP): http://download.kde.org/stable/attica/attica-0.4.2.tar.bz2
Download (FTP): ftp://ftp.kde.org/pub/kde/stable/attica/attica-0.4.2.tar.bz2
Download MD5 sum: d62c5c9489a68432e8d990dde7680c24
Download size: 59 KB
Estimated disk space required: 7.5 MB
Estimated build time: 0.5 SBU
CMake-3.0.1 and Qt-4.8.6
Qt-5.3.1 (requires extra-cmake-modules)
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/attica
Install Attica by running the following commands:
mkdir build && cd build && cmake -DCMAKE_INSTALL_PREFIX=$KDE_PREFIX \ -DCMAKE_BUILD_TYPE=Release \ -DQT4_BUILD=ON \ -Wno-dev .. && make
To test the results, issue make test.
Now, as the root
user:
make install
-DCMAKE_BUILD_TYPE=Release
:
This switch is used to apply a higher level of compiler the
optimizations.
-DQT4_BUILD=ON
: This
switch forces the package to build against Qt4 even if Qt5 is present on the system. Remove it
if you want to build the package against Qt5.
Last updated on 2014-09-17 11:48:47 -0700
QImageblitz is a graphical effect and filter library for KDE.
This package is known to build and work properly using an LFS-7.6 platform.
Download (HTTP): http://download.kde.org/stable/qimageblitz/qimageblitz-0.0.6.tar.bz2
Download (FTP): ftp://ftp.kde.org/pub/kde/stable/qimageblitz/qimageblitz-0.0.6.tar.bz2
Download MD5 sum: 0ae2f7d4e0876764a97ca73799f61df4
Download size: 57 KB
Estimated disk space required: 1.4 MB
Estimated build time: 0.1 SBU
Qt-4.8.6 and CMake-3.0.1
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/qimageblitz
Install QImageblitz by running the following commands:
mkdir build && cd build && cmake -DCMAKE_INSTALL_PREFIX=$KDE_PREFIX -Wno-dev .. && make
This package does not come with a test suite.
Now, as the root
user:
make install
Last updated on 2014-09-17 11:48:47 -0700
Polkit-Qt provides an API to polkit in the Qt environment.
This package is known to build and work properly using an LFS-7.6 platform.
Download (HTTP): http://download.kde.org/stable/apps/KDE4.x/admin/polkit-qt-1-0.112.0.tar.bz2
Download (FTP): ftp://ftp.kde.org/pub/kde/stable/apps/KDE4.x/admin/polkit-qt-1-0.112.0.tar.bz2
Download MD5 sum: bee71b71c12797e6fc498540a06c829b
Download size: 68 KB
Estimated disk space required: 4.2 MB
Estimated build time: 0.1 SBU
automoc4-0.9.88 and Polkit-0.112
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/polkit-qt
Install Polkit-Qt by running the following commands:
mkdir build && cd build && cmake -DCMAKE_INSTALL_PREFIX=$KDE_PREFIX \ -DCMAKE_BUILD_TYPE=Release \ -DCMAKE_INSTALL_LIBDIR=lib \ -DUSE_QT4=TRUE \ -Wno-dev .. && make
This package does not come with a test suite.
Now, as the root
user:
make install
-DCMAKE_BUILD_TYPE=Release
:
This switch is used to apply higher level of the compiler
optimizations.
-DCMAKE_INSTALL_LIBDIR=lib
:
This switch is used to get libraries to install to
$KDE_PREFIX/lib
instead of
$KDE_PREFIX/lib64
on a 64 bit
system.
-DUSE_QT4=TRUE
: This
switch is used to ensure that Qt4 version of the library is built even
if Qt5 is present.
Last updated on 2014-09-17 11:48:47 -0700
The Oxygen theme is a photo-realistic icon style, with a high standard of graphics quality.
This package is known to build and work properly using an LFS-7.6 platform.
Download (HTTP): http://download.kde.org/stable/4.14.1/src/oxygen-icons-4.14.1.tar.xz
Download MD5 sum: 7eec6b9fa8be5040550f3441715c1c1c
Download size: 219 MB
Estimated disk space required: 516 MB
Estimated build time: less than 0.1 SBU
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/oxygen-icons
Install Oxygen-icons by running the following commands:
mkdir build && cd build && cmake -DCMAKE_INSTALL_PREFIX=$KDE_PREFIX -Wno-dev ..
This package does not come with a test suite.
Now, as the root
user:
make install
Last updated on 2014-09-17 21:56:07 -0700
This package includes programs and libraries that are central to development and execution of KDE programs.
This package is known to build and work properly using an LFS-7.6 platform.
Download (HTTP): http://download.kde.org/stable/4.14.1/src/kdelibs-4.14.1.tar.xz
Download MD5 sum: 678acc5880ba5da96ae66d383e19a52b
Download size: 11.1 MB
Estimated disk space required: 463 MB
Estimated build time: 17 SBU
Attica-0.4.2, docbook-xml-4.5, docbook-xsl-1.78.1, giflib-5.1.0, libdbusmenu-qt-0.9.2, libjpeg-turbo-1.3.1, libpng-1.6.13, phonon-4.8.0, strigi-0.7.8, and shared-mime-info-1.3
polkit-qt-0.112.0, OpenSSL-1.0.1i, qca-2.0.3, UPower-0.9.23, and UDisks-1.0.5 or UDisks-2.1.3
JasPer-1.900.1, PCRE-8.35, Avahi-0.6.31, Aspell-0.60.6.1, enchant-1.6.0, grantlee-0.4.0, MIT Kerberos V5-1.12.2, soprano, shared-desktop-ontologies, Hspell, FAM, HUPnP, OpenEXR, and media-player-info
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/kdelibs
Fix file conflicts with GNOME Menus by running the following commands:
sed -i "s@{SYSCONF_INSTALL_DIR}/xdg/menus@& RENAME kde-applications.menu@" \ kded/CMakeLists.txt && sed -i "[email protected]@kde-&@" \ kded/kbuildsycoca.cpp
Install Kdelibs by running the following commands:
mkdir build && cd build && cmake -DCMAKE_INSTALL_PREFIX=$KDE_PREFIX \ -DSYSCONF_INSTALL_DIR=/etc \ -DCMAKE_BUILD_TYPE=Release \ -DDOCBOOKXML_CURRENTDTD_DIR=/usr/share/xml/docbook/xml-dtd-4.5 \ -Wno-dev .. && make
The unit regression tests are designed to be run after kdelibs is installed.
Now as the root
user:
make install
To run the unit regression tests, you must have a current KDE session running and issue make test.
-DSYSCONF_INSTALL_DIR=/etc
: This
switch is used to install configuration files in /etc.
-DCMAKE_BUILD_TYPE=Release
: This
switch is used to apply higher level of compiler
optimizations.
-DDOCBOOKXML_CURRENTDTD_DIR=...
:
This switch is used to tell cmake where to find the XML
DTDs.
-DWITH_SOLID_UDISKS2=TRUE
: Use
this switch if you have UDisks2.
is a tool used to check for syntax errors in KDE DocBook XML files. |
|
is used to rebuild the system configuration cache. |
|
is the KDE configuration compiler. |
|
is the KDE HTTP cookie daemon. |
|
is used to print the KDE installation paths. |
|
is the KDE daemon. |
|
is the KDE process launcher. |
|
is the KDE ECMAScript/JavaScript engine. |
|
is a tool used for launching KJSEmbed scripts from the command line. |
|
is the KDE application used to run kross scripts. |
|
is used to build Qt widget plugins from an ini style description file. |
|
is used to convert DocBook files to HTML. |
|
is a script used to extract the text from a tips file. |
Last updated on 2014-09-18 22:41:15 -0700
Kfilemetadata is a framework for searching and managing metadata.
This package is known to build and work properly using an LFS-7.6 platform.
Download (HTTP): http://download.kde.org/stable/4.14.1/src/kfilemetadata-4.14.1.tar.xz
Download MD5 sum: 0faa1b90189c77731c62e63e57f5ba00
Download size: 36 KB
Estimated disk space required: 4.5 MB
Estimated build time: 0.2 SBU
taglib-1.9.1, Poppler-0.26.4, Exiv2-0.24, FFmpeg-2.3.3, libepub and Mobipocket
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/kfilemetadata
Install kfilemetadata by running the following commands:
mkdir build && cd build && cmake -DCMAKE_INSTALL_PREFIX=$KDE_PREFIX \ -DCMAKE_BUILD_TYPE=Release \ -Wno-dev .. && make
To run the test suite, issue: make test.
Now, as the root
user:
make install
Last updated on 2014-09-17 21:56:07 -0700
Kdepimlibs is the common library for KDE PIM applications like kmail, kalarm, etc.
This package is known to build and work properly using an LFS-7.6 platform.
Download (HTTP): http://download.kde.org/stable/4.14.1/src/kdepimlibs-4.14.1.tar.xz
Download MD5 sum: 6e27f79c82a7ca3335a716f4fe66a578
Download size: 2.7 MB
Estimated disk space required: 215 MB
Estimated build time: 8.1 SBU
kdelibs-4.14.1, libxslt-1.1.28, GPGME-1.5.1, libical-1.0, Akonadi-1.13.0, Cyrus SASL-2.1.26, Boost-1.56.0, and QJson-0.8.1
OpenSSL-1.0.1i and prison
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/kdepimlibs
Install kdepimlibs by running the following commands:
mkdir build && cd build && cmake -DCMAKE_INSTALL_PREFIX=$KDE_PREFIX \ -DCMAKE_BUILD_TYPE=Release \ -Wno-dev .. && make
The full test suite for this package is not enabled by default and not tested by the BLFS team.
Now, as the root
user:
make install
Last updated on 2014-09-17 21:56:07 -0700
Baloo is a framework for searching and managing metadata.
This package is known to build and work properly using an LFS-7.6 platform.
Download (HTTP): http://download.kde.org/stable/4.14.1/src/baloo-4.14.1.tar.xz
Download MD5 sum: 20202ce57cf24ef27b70c63fe3419602
Download size: 144 KB
Estimated disk space required: 26 MB
Estimated build time: 1.8 SBU
kdepimlibs-4.14.1, kfilemetadata-4.14.1, and xapian-1.2.17
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/baloo
Install baloo by running the following commands:
mkdir build && cd build && cmake -DCMAKE_INSTALL_PREFIX=$KDE_PREFIX \ -DCMAKE_BUILD_TYPE=Release \ -Wno-dev .. && make
This package does not come with a working test suite.
Now, as the root
user:
make install
Last updated on 2014-09-17 21:56:07 -0700
Baloo-widgets contains widgets for the baloo search framework.
This package is known to build and work properly using an LFS-7.6 platform.
Download (HTTP): http://download.kde.org/stable/4.14.1/src/baloo-widgets-4.14.1.tar.xz
Download MD5 sum: a8b8b96d51b5a6de16f23cda46998a08
Download size: 40 KB
Estimated disk space required: 3.5 MB
Estimated build time: 0.1 SBU
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/baloo-widgets
Install baloo-widgets by running the following commands:
mkdir build && cd build && cmake -DCMAKE_INSTALL_PREFIX=$KDE_PREFIX \ -DCMAKE_BUILD_TYPE=Release \ -Wno-dev .. && make
This package does not come with a working test suite.
Now, as the root
user:
make install
Last updated on 2014-09-17 21:56:07 -0700
Polkit-kde-agent provides a graphical authentication prompt so non-priviledged users can authenticate themselves for performing administrative tasks in KDE.
This package is known to build and work properly using an LFS-7.6 platform.
Download (HTTP): http://download.kde.org/stable/apps/KDE4.x/admin/polkit-kde-agent-1-0.99.0.tar.bz2
Download (FTP): ftp://ftp.kde.org/pub/kde/stable/apps/KDE4.x/admin/polkit-kde-agent-1-0.99.0.tar.bz2
Download MD5 sum: a02d3fddc6270a88bceaf3ba604c92f8
Download size: 34 KB
Estimated disk space required: 6.8 MB
Estimated build time: 0.1 SBU
polkit-qt-0.112.0 and kdelibs-4.14.1
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/polkit-kde-agent
Install polkit-kde-agent by running the following commands:
patch -Np1 -i ../polkit-kde-agent-1-0.99.0-remember_password-1.patch && mkdir build && cd build && cmake -DCMAKE_INSTALL_PREFIX=$KDE_PREFIX -Wno-dev .. && make
This package does not come with a test suite.
Now, as the root
user:
make install
Last updated on 2014-09-17 21:56:07 -0700
This package provides the activitymanager for KDE.
This package is known to build and work properly using an LFS-7.6 platform.
Download (HTTP): http://download.kde.org/stable/4.13.3/src/kactivities-4.13.3.tar.xz
Download (FTP): ftp://ftp.kde.org/pub/kde/stable/4.13.3/src/kactivities-4.13.3.tar.xz
Download MD5 sum: e56a3aead6f418d973c0acd9c889deb8
Download size: 88 KB
Estimated disk space required: 9.2 MB
Estimated build time: 0.8 SBU
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/kactivities
Install Kactivities by running the following commands:
mkdir build && cd build && cmake -DCMAKE_INSTALL_PREFIX=$KDE_PREFIX \ -DCMAKE_BUILD_TYPE=Release \ -Wno-dev .. && make
This package does not ship a default test suite.
Now, as the root
user:
make install
Last updated on 2014-09-17 21:56:07 -0700
Kde-runtime contains runtime applications and libraries essential for KDE.
This package is known to build and work properly using an LFS-7.6 platform.
Download (HTTP): http://download.kde.org/stable/4.14.1/src/kde-runtime-4.14.1.tar.xz
Download MD5 sum: 8748f518157cc9f9b086347730763d4d
Download size: 7.5 MB
Estimated disk space required: 145 MB
Estimated build time: 4.2 SBU
kactivities-4.13.3, kdepimlibs-4.14.1, alsa-lib-1.0.28, libjpeg-turbo-1.3.1, and Exiv2-0.24
PulseAudio-5.0, xine-lib-1.2.6, libcanberra-0.30, Samba-4.1.11, NetworkManager-0.9.10.0, nepomuk-core, OpenSLP, QNtrack, LibSSH, and OpenEXR
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/kde-runtime
Install kde-runtime by running the following commands:
mkdir build && cd build && cmake -DCMAKE_INSTALL_PREFIX=$KDE_PREFIX \ -DSYSCONF_INSTALL_DIR=/etc \ -DCMAKE_BUILD_TYPE=Release \ -DSAMBA_INCLUDE_DIR=/usr/include/samba-4.0 \ -Wno-dev .. && make
To test the results, issue make test.
Now as the root
user:
make install && ln -sfv ../lib/kde4/libexec/kdesu $KDE_PREFIX/bin/kdesu
-DSAMBA_INCLUDE_DIR=/usr/include/samba-4.0
:
This switch is used so that CMake can properly find Samba headers which got moved in version
4.
Last updated on 2014-09-17 21:56:07 -0700
This package provides various applications, such as Dolphin (file manager) and Konqueror (web browser). Infrastructure files and libraries are also provided.
This package is known to build and work properly using an LFS-7.6 platform.
Download (HTTP): http://download.kde.org/stable/4.14.1/src/kde-baseapps-4.14.1.tar.xz
Download MD5 sum: 1b0005c625e6aaecadea022714a9e8e5
Download size: 2.4 MB
Estimated disk space required: 104 MB
Estimated build time: 4.0 SBU
kactivities-4.13.3, kfilemetadata-4.14.1, baloo-4.14.1, and baloo-widgets-4.14.1
HTML Tidy-cvs_20101110 and GLib-2.40.0
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/kde-baseapps
Install Kde-baseapps by running the following commands:
mkdir build && cd build && cmake -DCMAKE_INSTALL_PREFIX=$KDE_PREFIX \ -DCMAKE_BUILD_TYPE=Release \ -Wno-dev .. && make
To test the results, issue make test.
Now as the root
user:
make install
Last updated on 2014-09-17 21:56:07 -0700
This package provides the default splash screen for KDE.
This package is known to build and work properly using an LFS-7.6 platform.
Download (HTTP): http://download.kde.org/stable/4.14.1/src/kde-base-artwork-4.14.1.tar.xz
Download MD5 sum: da4aa24c5b74bd48fb315e650510c46d
Download size: 7.1 MB
Estimated disk space required: 15 MB
Estimated build time: less than 0.1 SBU
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/kde-base-artwork
Install Kde-base-artwork by running the following commands:
mkdir build && cd build && cmake -DCMAKE_INSTALL_PREFIX=$KDE_PREFIX -Wno-dev ..
Now, as the root
user:
make install
Last updated on 2014-09-17 21:56:07 -0700
The Kde-workspace package contains components that are central to providing the KDE desktop environment. Of particular importance are KWin, the KDE window manager, and Plasma, which provides the workspace interface.
This package is known to build and work properly using an LFS-7.6 platform.
Download (HTTP): http://download.kde.org/stable/4.14.1/src/kde-workspace-4.11.12.tar.xz
Download (FTP): ftp://ftp.kde.org/pub/kde/stable/4.14.1/src/kde-workspace-4.11.12.tar.xz
Download MD5 sum: 9968e4388fb4e99596e55982d823aa96
Download size: 12.9 MB
Estimated disk space required: 391 MB
Estimated build time: 12.8 SBU
kactivities-4.13.3, qimageblitz-0.0.6, xcb-util-image-0.3.9, xcb-util-renderutil-0.3.9, xcb-util-keysyms-0.3.9, and xcb-util-wm-0.4.1
kdepimlibs-4.14.1, Boost-1.56.0, FreeType-2.5.3, pciutils-3.2.1, and ConsoleKit-0.4.6
Linux-PAM-1.1.8, libusb-1.0.19, NetworkManager-0.9.10.0, lm_sensors-3.3.5, QJson-0.8.1, PyKDE4, GoogleGadgets, Prison, libraw1394, gpsd, XMMS, libqalculate (wants CLN), and Wayland
Kde-workspace has a run-time dependency called Application menu for Qt that allows the application menubar to be inserted as a single button in the titlebar. It can be found at appmenu-qt.
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/kde-workspace
It is recommended to have a dedicated user and group to take
control of the kdm daemon after it is
started. Issue the following commands as the root
user:
groupadd -g 37 kdm && useradd -c "KDM Daemon Owner" -d /var/lib/kdm -g kdm \ -u 37 -s /bin/false kdm && install -o kdm -g kdm -dm755 /var/lib/kdm
Install Kde-workspace by running the following commands:
mkdir build && cd build && cmake -DCMAKE_INSTALL_PREFIX=$KDE_PREFIX \ -DSYSCONF_INSTALL_DIR=/etc \ -DCMAKE_BUILD_TYPE=Release \ -DINSTALL_PYTHON_FILES_IN_PYTHON_PREFIX=TRUE \ -Wno-dev .. && make
Now, as the root
user:
make install && mkdir -p /usr/share/xsessions && ln -sf $KDE_PREFIX/share/apps/kdm/sessions/kde-plasma.desktop \ /usr/share/xsessions/kde-plasma.desktop
-DINSTALL_PYTHON_FILES_IN_PYTHON_PREFIX=TRUE
:
This option is set to install the KDE Python objects in the
correct place.
If you built KDE Workspace
with Linux PAM support,
create necessary configuration files by running the
following commands as the root
user:
cat >> /etc/pam.d/kde << "EOF" && # Begin /etc/pam.d/kde auth requisite pam_nologin.so auth required pam_env.so auth required pam_succeed_if.so uid >= 1000 quiet auth include system-auth account include system-account password include system-password session include system-session # End /etc/pam.d/kde EOF cat > /etc/pam.d/kde-np << "EOF" && # Begin /etc/pam.d/kde-np auth requisite pam_nologin.so auth required pam_env.so auth required pam_succeed_if.so uid >= 1000 quiet auth required pam_permit.so account include system-account password include system-password session include system-session # End /etc/pam.d/kde-np EOF cat > /etc/pam.d/kscreensaver << "EOF" # Begin /etc/pam.d/kscreensaver auth include system-auth account include system-account # End /etc/pam.d/kscreensaver EOF
Last updated on 2014-09-18 13:07:49 -0700
D-Bus-1.8.8 (runtime)
After Kde-workspace has been installed, the first important milestone has been reached. Now you need to configure your system to start KDE.
To start KDE from the
command prompt, you first need to modify your .xinitrc
file:
cat > ~/.xinitrc << EOF
# Begin .xinitrc
exec ck-launch-session dbus-launch --exit-with-session startkde
# End .xinitrc
EOF
If you are not using ConsoleKit, remove ck-launch-session
.
You can now start KDE using the startx command.
KDE comes with a graphical login interface called KDM (the
KDE Display Manager), which provides a customizable graphical
login at boot. To use KDM, you need to edit your /etc/inittab
file (as the root
user). First, setup run-level 5 to
start KDM (adjust the path to kdm according to your system):
cat >> /etc/inittab << EOF
kd:5:respawn:/opt/kde/bin/kdm
EOF
Additionally, you need to change the default run-level from 3 to 5:
sed -i 's#id:3:initdefault:#id:5:initdefault:#' /etc/inittab
You can now restart your system and see the KDE login screen.
Every subsequent package can be built while having
KDE up and running, but
remember to keep $KDE_PREFIX
and
$QT4DIR
set.
Last updated on 2014-05-22 11:06:16 -0700
This package provides a terminal emulator for KDE.
This package is known to build and work properly using an LFS-7.6 platform.
Download (HTTP): http://download.kde.org/stable/4.14.1/src/konsole-4.14.1.tar.xz
Download MD5 sum: 3ca6bc837854fe0a660b559dbe400de6
Download size: 448 KB
Estimated disk space required: 18 MB
Estimated build time: 0.6 SBU
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/konsole
Install Konsole by running the following commands:
mkdir build && cd build && cmake -DCMAKE_INSTALL_PREFIX=$KDE_PREFIX \ -DCMAKE_BUILD_TYPE=Release \ -Wno-dev .. && make
Now, as the root
user:
make install
Last updated on 2014-09-17 21:56:07 -0700
This package provides two texteditors: Kate and KWrite. Kate is a powerful programmer's text editor with syntax highlighting for many programming and scripting languages. KWrite is the lightweight cousin of Kate.
This package is known to build and work properly using an LFS-7.6 platform.
Download (HTTP): http://download.kde.org/stable/4.14.1/src/kate-4.14.1.tar.xz
Download MD5 sum: f64b74c6cd0b4ce8b35bd6cec8456100
Download size: 2.6 MB
Estimated disk space required: 108 MB
Estimated build time: 2.9 SBU
QJson-0.8.1 and PyKDE4
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/kate
Install Kate by running the following commands:
mkdir build && cd build && cmake -DCMAKE_INSTALL_PREFIX=$KDE_PREFIX \ -DCMAKE_BUILD_TYPE=Release \ -DINSTALL_PYTHON_FILES_IN_PYTHON_PREFIX=TRUE \ -Wno-dev .. && make
Now, as the root
user:
make install
-DINSTALL_PYTHON_FILES_IN_PYTHON_PREFIX=TRUE
:
This option is set to install the KDE Python objects in the
correct place.
Last updated on 2014-09-17 21:56:07 -0700
This package provides an archiving utility for KDE.
This package is known to build and work properly using an LFS-7.6 platform.
Download (HTTP): http://download.kde.org/stable/4.14.1/src/ark-4.14.1.tar.xz
Download MD5 sum: 55fcc756e600e18cdc8bfc5c562657a8
Download size: 232 KB
Estimated disk space required: 12.2 MB
Estimated build time: 0.3 SBU
kde-baseapps-4.14.1 and libarchive-3.1.2
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/ark
Install Ark by running the following commands:
mkdir build && cd build && cmake -DCMAKE_INSTALL_PREFIX=$KDE_PREFIX \ -DCMAKE_BUILD_TYPE=Release \ -Wno-dev .. && make
Now, as the root
user:
make install
Last updated on 2014-09-17 21:56:07 -0700
This packages provides an audio mixer application for KDE.
This package is known to build and work properly using an LFS-7.6 platform.
Download (HTTP): http://download.kde.org/stable/4.14.1/src/kmix-4.14.1.tar.xz
Download MD5 sum: 605fddd898bab343207191aff03c2383
Download size: 372 KB
Estimated disk space required: 14 MB
Estimated build time: 0.9 SBU
PulseAudio-5.0 and libcanberra-0.30
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/kmix
Install Kmix by running the following commands:
mkdir build && cd build && cmake -DCMAKE_INSTALL_PREFIX=$KDE_PREFIX \ -DCMAKE_BUILD_TYPE=Release \ -Wno-dev .. && make
Now, as the root
user:
make install
Last updated on 2014-09-17 21:56:07 -0700
The libkcddb package contains a library used to retrieve audio CD meta data from the internet.
This package is known to build and work properly using an LFS-7.6 platform.
Download (HTTP): http://download.kde.org/stable/4.14.1/src/libkcddb-4.14.1.tar.xz
Download MD5 sum: 39f3f03cff9b712381ec4e582ec3e907
Download size: 156 KB
Estimated disk space required: 10.2 MB
Estimated build time: 0.4 SBU
kdelibs-4.14.1 and libmusicbrainz-5.0.1
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/libkcddb
Install libkcddb by running the following commands:
mkdir build && cd build && cmake -DCMAKE_INSTALL_PREFIX=$KDE_PREFIX \ -DCMAKE_BUILD_TYPE=Release \ -Wno-dev .. && make
Now, as the root
user:
make install
Last updated on 2014-09-17 21:56:07 -0700
This package provides additional resources for Akonadi.
This package is known to build and work properly using an LFS-7.6 platform.
Download (HTTP): http://download.kde.org/stable/4.14.1/src/kdepim-runtime-4.14.1.tar.xz
Download MD5 sum: 2c5c0ad7091f2a86a0aa94d9c77e875a
Download size: 1.1 MB
Estimated disk space required: 141 MB
Estimated build time: 6.3 SBU
KolabLibraries (for Kolab Groupware Resource), libKGAPI (to access Google services), and libKFbAPI (to access Facebook services)
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/kdepim-runtime
Install Kdepim-runtime by running the following commands:
mkdir build && cd build && cmake -DCMAKE_INSTALL_PREFIX=$KDE_PREFIX \ -DCMAKE_BUILD_TYPE=Release \ -Wno-dev .. && make
Now, as the root
user:
make install
Last updated on 2014-09-17 21:56:07 -0700
This package provides several KDE programs for managing personal information. Programs include a contact manager, calendar, mail client, newsreader, X.509 certificate manager and sticky notes.
This package is known to build and work properly using an LFS-7.6 platform.
Download (HTTP): http://download.kde.org/stable/4.14.1/src/kdepim-4.14.1.tar.xz
Download MD5 sum: 133abfa1f06e095a21d60cd4b2066eec
Download size: 13.8 MB
Estimated disk space required: 489 MB
Estimated build time: 20 SBU
grantlee-0.4.0 and kdepim-runtime-4.14.1
Boost-1.56.0, and Libassuan-2.1.2
nepomuk-widgets, Prison, dblatex, and LinkGrammar
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/kdepim
Install Kdepim by running the following commands:
mkdir build && cd build && cmake -DCMAKE_INSTALL_PREFIX=$KDE_PREFIX \ -DSYSCONF_INSTALL_DIR=/etc \ -DCMAKE_BUILD_TYPE=Release \ -Wno-dev .. && make
Now, as the root
user:
make install
Last updated on 2014-09-17 21:56:07 -0700
Libkexiv2 is a KDE wrapper around the Exiv2 library for manipulating image metadata.
This package is known to build and work properly using an LFS-7.6 platform.
Download (HTTP): http://download.kde.org/stable/4.14.1/src/libkexiv2-4.14.1.tar.xz
Download MD5 sum: 69ec5c37992a3530e648bee944b47481
Download size: 136 KB
Estimated disk space required: 12.5 MB
Estimated build time: 0.3 SBU
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/libkexiv2
Install libkexiv2 by running the following commands:
mkdir build && cd build && cmake -DCMAKE_INSTALL_PREFIX=$KDE_PREFIX \ -DCMAKE_BUILD_TYPE=Release \ -Wno-dev .. && make
Now, as the root
user:
make install
Last updated on 2014-09-17 21:56:07 -0700
This package provides extra Plasma applets and engines like lancelot, calculator, wallpapers etc.
This package is known to build and work properly using an LFS-7.6 platform.
Download (HTTP): http://download.kde.org/stable/4.14.1/src/kdeplasma-addons-4.14.1.tar.xz
Download MD5 sum: 6edf192ec28a2464636f1edfdabe1752
Download size: 1.7 MB
Estimated disk space required: 90 MB
Estimated build time: 3.0 SBU
kde-workspace-4.11.12 and kdepimlibs-4.14.1
libkexiv2-4.14.1, QJson-0.8.1, Eigen (for the Mandelbrot wallpaper plugin), IBus, Nepomuk, Marble (for the desktop globe wallpaper),and QOAuth (needed for the Plasma microblog dataengine)
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/kdeplasma-addons
Install Kdeplasma-addons by running the following commands:
mkdir build && cd build && cmake -DCMAKE_INSTALL_PREFIX=$KDE_PREFIX \ -DCMAKE_BUILD_TYPE=Release \ -Wno-dev .. && make
Now, as the root
user:
make install
Last updated on 2014-09-17 21:56:07 -0700
Okular is a document viewer for KDE. It can view documents of many types including PDF, PostScript, TIFF, Microsoft CHM, DjVu, DVI, XPS and ePub.
This package is known to build and work properly using an LFS-7.6 platform.
Download (HTTP): http://download.kde.org/stable/4.14.1/src/okular-4.14.1.tar.xz
Download MD5 sum: 3cc19ac6210cdea3debed8db052b3bea
Download size: 1.5 MB
Estimated disk space required: 50 MB
Estimated build time: 1.3 SBU
kactivities-4.13.3, FreeType-2.5.3, qimageblitz-0.0.6, LibTIFF-4.0.3, libjpeg-turbo-1.3.1, and Poppler-0.26.4 (required for PDF support)
For PDF support in Okular
you need to configure Poppler using --enable-xpdf-headers
.
libkexiv2-4.14.1, ActiveApp (for developing applications for Plasma Active), libspectre (for PostScript support), libchm, DjVuLibre, libepub, and Mobipocket
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/okular
Install Okular by running the following commands:
mkdir build && cd build && cmake -DCMAKE_INSTALL_PREFIX=$KDE_PREFIX \ -DCMAKE_BUILD_TYPE=Release \ -Wno-dev .. && make
Now, as the root
user:
make install
Last updated on 2014-09-17 21:56:07 -0700
Libkdcraw is a C++ interface around the LibRaw library used to decode RAW picture files.
This package is known to build and work properly using an LFS-7.6 platform.
Download (HTTP): http://download.kde.org/stable/4.14.1/src/libkdcraw-4.14.1.tar.xz
Download MD5 sum: d5497ccf5d8ffe89842317bed460b5dd
Download size: 100 KB
Estimated disk space required: 5.7 MB
Estimated build time: 0.1 SBU
kdelibs-4.14.1 and libraw-0.16.0
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/libkdcraw
Install libkdcraw by running the following commands:
mkdir build && cd build && cmake -DCMAKE_INSTALL_PREFIX=$KDE_PREFIX \ -DCMAKE_BUILD_TYPE=Release \ -Wno-dev .. && make
Now, as the root
user:
make install
Last updated on 2014-04-17 04:42:57 -0500
Gwenview is a fast and easy-to-use image viewer for KDE.
This package is known to build and work properly using an LFS-7.6 platform.
Download (HTTP): http://download.kde.org/stable/4.14.1/src/gwenview-4.14.1.tar.xz
Download MD5 sum: fcdcbced6691d42a4480b3fe118bc1d6
Download size: 2.8 MB
Estimated disk space required: 35 MB
Estimated build time: 1.2 SBU
libkdcraw-4.14.1 and kdelibs-4.14.1
kactivities-4.13.3, kde-baseapps-4.14.1, libkexiv2-4.14.1, and libjpeg-turbo-1.3.1
Little CMS-2.6 and Kipi-Plugins (a collection of image manipulation plugins)
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/gwenview
Install Gwenview by running the following commands:
mkdir build && cd build && cmake -DCMAKE_INSTALL_PREFIX=$KDE_PREFIX \ -DCMAKE_BUILD_TYPE=Release \ -Wno-dev .. && make
Now, as the root
user:
make install
Last updated on 2014-09-17 21:56:07 -0700
This section did not provide instructions for all of the available packages in the KDE Software Compilation. The included packages were selected based on what most people would want to use on a standard desktop computer.
For a full list of available packages, have a look on the KDE servers (http or ftp).
Some additional packages worth mentioning are:
Kdeartwork: Collection of wallpapers, icon themes, screensavers, widget styles etc.
Juk: A lightweight music player.
Dragon: A video player.
Kcalc: A scientific calculator.
PyKDE4: Python bindings.
Kaccessible: Accessibility utilities.
Kwalletmanager: Credentials management application.
Marble: A global map program.
Most of these packages can be built with the standard KDE instructions:
mkdir build && cd build && cmake -DCMAKE_INSTALL_PREFIX=$KDE_PREFIX \ -DCMAKE_BUILD_TYPE=Release \ -Wno-dev .. && make
And as the root
user:
make install
Last updated on 2014-04-17 02:42:57 -0700
The objective of this section is not to build a GNOME desktop, because it depends on Systemd, which BLFS doesn't support. Rather, it provides packages required for some platform independent GNOME applications to build and run properly under any Window Manager (e.g. Fluxbox, Icewm, Openbox, Sawfish), or Desktop Environment (e.g. KDE, XFCE, LXDE).
The GSettings Desktop Schemas package contains a collection of GSettings schemas for settings shared by various components of a GNOME Desktop.
This package is known to build and work properly using an LFS-7.6 platform.
Download (HTTP): http://ftp.gnome.org/pub/gnome/sources/gsettings-desktop-schemas/3.12/gsettings-desktop-schemas-3.12.2.tar.xz
Download (FTP): ftp://ftp.gnome.org/pub/gnome/sources/gsettings-desktop-schemas/3.12/gsettings-desktop-schemas-3.12.2.tar.xz
Download MD5 sum: 9f68571f20369a008d14b42a648568b5
Download size: 472 KB
Estimated disk space required: 13 MB
Estimated build time: less than 0.1 SBU
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/gsettings-desktop-schemas
Install GSettings Desktop Schemas 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
If you installed the package to your system using a
“DESTDIR” method,
/usr/share/glib-2.0/schemas/gschemas.compiled
was not updated/created. Create (or update) the file using
the following command as the root
user:
glib-compile-schemas /usr/share/glib-2.0/schemas
Last updated on 2014-09-16 10:29:57 -0700
The Yelp XSL package contains XSL stylesheets that are used by the Yelp help browser to format Docbook and Mallard documents.
This package is known to build and work properly using an LFS-7.6 platform.
Download (HTTP): http://ftp.gnome.org/pub/gnome/sources/yelp-xsl/3.12/yelp-xsl-3.12.0.tar.xz
Download (FTP): ftp://ftp.gnome.org/pub/gnome/sources/yelp-xsl/3.12/yelp-xsl-3.12.0.tar.xz
Download MD5 sum: 662317dc4f6aeafce0d4ffb2b3766115
Download size: 552 KB
Estimated disk space required: 9.5 MB
Estimated build time: less than 0.1 SBU
libxslt-1.1.28 and Itstool-2.0.2
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/yelp-xsl
Install Yelp XSL 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 2014-09-17 21:56:07 -0700
The GConf package contains a configuration database system used by many GNOME applications.
This package is known to build and work properly using an LFS-7.6 platform.
Download (HTTP): http://ftp.gnome.org/pub/gnome/sources/GConf/3.2/GConf-3.2.6.tar.xz
Download (FTP): ftp://ftp.gnome.org/pub/gnome/sources/GConf/3.2/GConf-3.2.6.tar.xz
Download MD5 sum: 2b16996d0e4b112856ee5c59130e822c
Download size: 1.5 MB
Estimated disk space required: 45 MB
Estimated build time: 0.3 SBU
dbus-glib-0.102 and libxml2-2.9.1
gobject-introspection-1.40.0, GTK+-3.12.2 and Polkit-0.112
GTK-Doc-1.20 and OpenLDAP-2.4.39
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/gconf
Install GConf by running the following commands:
./configure --prefix=/usr \ --sysconfdir=/etc \ --disable-orbit \ --disable-static && make
This package does not come with a test suite.
Now, as the root
user:
make install && ln -s gconf.xml.defaults /etc/gconf/gconf.xml.system
--disable-orbit
: This switch is
required if ORBit2 is not
installed. ORBit2 is a
deprecated package.
--disable-static
:
This switch prevents installation of static versions of the
libraries.
--enable-gtk-doc
: Use this
parameter if GTK-Doc is
installed and you wish to rebuild and install the API
documentation.
merges an XML filesystem hierarchy. |
|
is a command line tool used for manipulating the GConf database. |
|
reads values out of the users GConf database and stores them in GSettings. |
|
converts between GConf and GSettings schema file formats. |
|
provides the functions necessary to maintain the configuration database. |
Last updated on 2014-09-16 10:29:57 -0700
The libsecret package contains a GObject based library for accessing the Secret Service API.
This package is known to build and work properly using an LFS-7.6 platform.
Download (HTTP): http://ftp.gnome.org/pub/gnome/sources/libsecret/0.18/libsecret-0.18.tar.xz
Download (FTP): ftp://ftp.gnome.org/pub/gnome/sources/libsecret/0.18/libsecret-0.18.tar.xz
Download MD5 sum: 279d723cd005e80d1d304f74a3488acc
Download size: 472 KB
Estimated disk space required: 14 MB (additional 3 MB for the tests)
Estimated build time: 0.2 SBU (additional 0.1 SBU for the tests)
gobject-introspection-1.40.0, libgcrypt-1.6.2, and Vala-0.24.0
GTK-Doc-1.20 and docbook-xml-4.5, docbook-xsl-1.78.1, and libxslt-1.1.28 (to build manual pages)
D-Bus Python-1.2.0, Gjs-1.40.1, and PyGObject-2.28.6
Any package requiring libsecret, expect GNOME Keyring to be present at runtime.
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/libsecret
Install libsecret by running the following commands:
./configure --prefix=/usr --disable-static && make
Now, as the root
user:
make install
To test the results, issue: make -k check, after the package is installed. Test suite should be run from a local GUI session started with dbus-launch. Some tests might still fail and hang, for unknown reasons.
--disable-static
:
This switch prevents installation of static versions of the
libraries.
--enable-gtk-doc
: Use this
parameter if GTK-Doc is
installed and you wish to rebuild and install the API
documentation.
--disable-manpages
: Use this
switch if you have not installed libxslt-1.1.28 and
DocBook packages.
--disable-gcrypt
: Use this switch
if you have not installed the recommended dependency of
libgcrypt-1.6.2.
Last updated on 2014-09-16 13:49:04 -0700
The Gcr package contains libraries used for displaying certificates and accessing key stores. It also provides the viewer for crypto files on the GNOME Desktop.
This package is known to build and work properly using an LFS-7.6 platform.
Download (HTTP): http://ftp.gnome.org/pub/gnome/sources/gcr/3.12/gcr-3.12.2.tar.xz
Download (FTP): ftp://ftp.gnome.org/pub/gnome/sources/gcr/3.12/gcr-3.12.2.tar.xz
Download MD5 sum: 8d4564abbbd6c4aa03a68a016c692d96
Download size: 1.3 MB
Estimated disk space required: 58 MB (additional 4 MB for tests)
Estimated build time: 0.8 SBU (additional 0.1 SBU for tests)
GLib-2.40.0, libgcrypt-1.6.2, libtasn1-4.1, and p11-kit-0.20.6
GnuPG-2.0.26, gobject-introspection-1.40.0, GTK+-3.12.2, libxslt-1.1.28, and Vala-0.24.0
GTK-Doc-1.20 and Valgrind-3.10.0
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/gcr
Install Gcr by running the following commands:
./configure --prefix=/usr \ --sysconfdir=/etc && make
A session bus address is necessary to run the tests. To test the results, issue: make check.
Now, as the root
user:
make install
--without-gtk
: Use
this switch if you haven't installed GTK+-3.12.2.
--enable-gtk-doc
: Use this
parameter if GTK-Doc is
installed and you wish to rebuild and install the API
documentation.
Last updated on 2014-09-19 13:13:19 -0700
The GNOME Keyring package contains a daemon that keeps passwords and other secrets for users.
This package is known to build and work properly using an LFS-7.6 platform.
Download (HTTP): http://ftp.gnome.org/pub/gnome/sources/gnome-keyring/3.12/gnome-keyring-3.12.2.tar.xz
Download (FTP): ftp://ftp.gnome.org/pub/gnome/sources/gnome-keyring/3.12/gnome-keyring-3.12.2.tar.xz
Download MD5 sum: 63db70619f58e9cbd70c0b7d2285f26f
Download size: 1.2 MB
Estimated disk space required: 92 MB
Estimated build time: 0.7 SBU (additional 0.2 SBU for tests)
Linux-PAM-1.1.8 and libxslt-1.1.28
libcap-ng, GnuPG-2.0.26, OpenSSH-6.6p1 and Valgrind-3.10.0
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/gnome-keyring
Install GNOME Keyring by running the following commands:
./configure --prefix=/usr \ --sysconfdir=/etc \ --with-pam-dir=/lib/security && make
A session bus address is necessary to run the tests. To test the results, issue: make -k check. Some tests fail for unknown reasons.
Now, as the root
user:
make install
--with-pam-dir=/lib/security
:
This switch specifies where the PAM module will be installed.
Last updated on 2014-09-19 13:13:19 -0700
The Gvfs package is a userspace virtual filesystem designed to work with the I/O abstractions of GLib's GIO library.
This package is known to build and work properly using an LFS-7.6 platform.
Download (HTTP): http://ftp.gnome.org/pub/gnome/sources/gvfs/1.20/gvfs-1.20.3.tar.xz
Download (FTP): ftp://ftp.gnome.org/pub/gnome/sources/gvfs/1.20/gvfs-1.20.3.tar.xz
Download MD5 sum: 710f68730d6ad6708f0f1d47976bff58
Download size: 1.5 MB
Estimated disk space required: 56 MB (additional 1 MB for the tests)
Estimated build time: 0.7 SBU (additional 0.1 SBU for the tests)
GTK+-3.12.2, libsecret-0.18, libsoup-2.46.0, udev-extras (from eudev) (for GUdev), and UDisks-2.1.3
Apache-2.4.10, Avahi-0.6.31, BlueZ-5.23, dbus-glib-0.102, Fuse-2.9.3, GTK-Doc-1.20, libarchive-3.1.2, libgcrypt-1.6.2, libxml2-2.9.1, libxslt-1.1.28, OpenSSH-6.6p1, Samba-4.1.11, GNOME Online Accounts, libbluray, libcdio-paranoia, libgphoto2, libimobiledevice, libmtp, and Twisted,
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/gvfs
Install Gvfs by running the following commands:
./configure --prefix=/usr \ --sysconfdir=/etc \ --disable-gphoto2 && make
To test the results, issue: make -k check. Some tests may fail, normally for a missing optional dependency.
Now, as the root
user:
make install
If you installed the package to your system using a
“DESTDIR” method,
/usr/share/glib-2.0/schemas/gschemas.compiled
was not updated/created. Create (or update) the file using
the following command as the root
user:
glib-compile-schemas /usr/share/glib-2.0/schemas
--disable-gphoto2
:
This switch is required if libgphoto2 is not installed. Remove it
if you installed libgphoto2
and wish to use it with Gvfs.
--enable-gtk-doc
: Use this
parameter if GTK-Doc is
installed and you wish to rebuild and install the API
documentation.
concatenates the given files and prints them to the standard output. |
|
copies a file from one URI location to another. |
|
shows information about the given locations. |
|
executes less using the VFS as input preprocesor, so less can access any resource accessible by any of the Gvfs backends. |
|
lists information about the given locations. |
|
is used to query information about applications that are registered to handle a mime-type, or set the default handler for a mime-type. |
|
creates a directory specified by an URI. |
|
prints information about file creation, deletion, file content and attribute changes and mount and unmount operations inside the specified directories. |
|
prints information about creation, deletion, content and attribute changes and mount and unmount operations affecting the monitored files. |
|
provides commandline access to various aspects of GIOs mounting functionality. |
|
moves a file from one URI location to another. |
|
opens files with the default application that is registered to handle files of that type. |
|
changes the name of a file or directory. |
|
removes a file. |
|
reads from the standard input and saves the data to the given location. |
|
allows to set a file attribute on a file. |
|
sends files or directories to the "Trashcan". |
|
lists the contents of the given directories recursively, in a tree-like format. |
|
is the main daemon for the Gvfs virtual filesystem. |
|
maintains a FUSE mount to make Gvfs backends available to POSIX applications. |
|
is a daemon acting as a write serialiser to the internal Gvfs metadata storage. |
|
contains the common API functions used in Gvfs programs. |
Last updated on 2014-09-17 04:20:33 -0700
Gjs is a Javascript binding for GNOME.
This package is known to build and work properly using an LFS-7.6 platform.
Download (HTTP): http://ftp.gnome.org/pub/gnome/sources/gjs/1.40/gjs-1.40.1.tar.xz
Download (FTP): ftp://ftp.gnome.org/pub/gnome/sources/gjs/1.40/gjs-1.40.1.tar.xz
Download MD5 sum: 150580858bc40d0dbc9df43741eb2ad3
Download size: 440 KB
Estimated disk space required: 24 MB (additional 1 MB for the tests)
Estimated build time: 0.3 SBU (additional 0.1 SBU for the tests)
Cairo-1.12.16, gobject-introspection-1.40.0, and JS2-24.2.0
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/gjs
Install Gjs by running the following commands:
./configure --prefix=/usr && make
To test the results, issue: make -k check. Testsuite fails, for unknown reasons.
Now, as the root
user:
make install
--libexecdir=/usr/lib
: This
option will put the package's private programs into
/usr/lib/gjs
instead of
/usr/libexec/gjs
in accordance
with the old version of the FHS used before LFS-7.5..
Last updated on 2014-09-19 13:13:19 -0700
The GNOME Desktop package contains a library that provides an API shared by several applications on the GNOME Desktop.
This package is known to build and work properly using an LFS-7.6 platform.
Download (HTTP): http://ftp.gnome.org/pub/gnome/sources/gnome-desktop/3.12/gnome-desktop-3.12.2.tar.xz
Download (FTP): ftp://ftp.gnome.org/pub/gnome/sources/gnome-desktop/3.12/gnome-desktop-3.12.2.tar.xz
Download MD5 sum: 9f1dd733a19e0bc4e5b923771f826509
Download size: 1.1 MB
Estimated disk space required: 24 MB
Estimated build time: 0.3 SBU
gsettings-desktop-schemas-3.12.2, GTK+-3.12.2, ISO Codes-3.56, xkeyboard-config-2.12, and yelp-xsl-3.12.0
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/gnome-desktop
Install GNOME 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
--with-gnome-distributor="Some
Name"
: Use this parameter to supply a custom name in
the “Distributor:”
field of the “GNOME
About” display window.
--enable-gtk-doc
: Use this
parameter if GTK-Doc is
installed and you wish to rebuild and install the API
documentation.
Last updated on 2014-09-17 21:56:07 -0700
The GNOME Video Effects package contains a collection of GStreamer effects.
This package is known to build and work properly using an LFS-7.6 platform.
Download (HTTP): http://ftp.gnome.org/pub/gnome/sources/gnome-video-effects/0.4/gnome-video-effects-0.4.1.tar.xz
Download (FTP): ftp://ftp.gnome.org/pub/gnome/sources/gnome-video-effects/0.4/gnome-video-effects-0.4.1.tar.xz
Download MD5 sum: aa0838f5be12f524ba5622e1b61d21b1
Download size: 144 KB
Estimated disk space required: 1.9 MB
Estimated build time: less than 0.1 SBU
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/gnome-video-effects
Install GNOME Video Effects by running the following commands:
./configure --prefix=/usr && make
This package does not come with a testsuite.
Now, as the root
user:
make install
Last updated on 2014-09-19 13:13:19 -0700
The GtkSourceView package contains libraries used for extending the GTK+ text functions to include syntax highlighting.
This package is known to build and work properly using an LFS-7.6 platform.
Download (HTTP): http://ftp.gnome.org/pub/gnome/sources/gtksourceview/3.12/gtksourceview-3.12.3.tar.xz
Download (FTP): ftp://ftp.gnome.org/pub/gnome/sources/gtksourceview/3.12/gtksourceview-3.12.3.tar.xz
Download MD5 sum: 6d9aa2cf925751bf708feaf74d3317b0
Download size: 1.2 MB
Estimated disk space required: 38 MB (additional 1 MB for the tests and 2 MB to rebuild and install the API documentation)
Estimated build time: 0.4 SBU (additional less than 0.1 SBU for the tests and less than 0.1 SBU to rebuild and install the API documentation)
Glade and GTK-Doc-1.20
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/gtksourceview
Install GtkSourceView by running the following commands:
./configure --prefix=/usr && make
If the test suite is run before this package is installed, one test may fail.
Now, as the root
user:
make install
To test the results, issue make check. The tests need to be run in a graphical environment.
--enable-gtk-doc
: Use this
parameter if GTK-Doc is
installed and you wish to rebuild and install the API
documentation.
Last updated on 2014-09-19 13:13:19 -0700
The libgtop package contains the GNOME top libraries.
This package is known to build and work properly using an LFS-7.6 platform.
Download (HTTP): http://ftp.gnome.org/pub/gnome/sources/libgtop/2.30/libgtop-2.30.0.tar.xz
Download (FTP): ftp://ftp.gnome.org/pub/gnome/sources/libgtop/2.30/libgtop-2.30.0.tar.xz
Download MD5 sum: ee29a9ef60659ebf4b075ac281f71cb2
Download size: 652 KB
Estimated disk space required: 16 MB
Estimated build time: 0.2 SBU
GLib-2.40.0 and Xorg Libraries
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/libgtop
Install libgtop by running the following commands:
./configure --prefix=/usr --disable-static && make
This package does not come with a test suite.
Now, as the root
user:
make install
--disable-static
:
This switch prevents installation of static versions of the
libraries.
--enable-gtk-doc
: Use this
parameter if GTK-Doc is
installed and you wish to rebuild and install the API
documentation.
Last updated on 2014-09-19 13:13:19 -0700
libpeas is a GObject based plugins engine, and is targeted at giving every application the chance to assume its own extensibility.
This package is known to build and work properly using an LFS-7.6 platform.
Download (HTTP): http://ftp.gnome.org/pub/gnome/sources/libpeas/1.10/libpeas-1.10.1.tar.xz
Download (FTP): ftp://ftp.gnome.org/pub/gnome/sources/libpeas/1.10/libpeas-1.10.1.tar.xz
Download MD5 sum: 62cda826762dd0ec9380f7af6637516a
Download size: 504 KB
Estimated disk space required: 16 MB (additional 6 MB for the tests)
Estimated build time: 0.3 SBU
gobject-introspection-1.40.0 and GTK+-3.12.2
PyGObject-3.12.2 (Python 2 and Python 3 modules)
GDB-7.8, GTK-Doc-1.20, Valgrind-3.10.0, Glade, and Seed
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/libpeas
Install libpeas by running the following commands:
./configure --prefix=/usr && make
To test the results, issue: make check 2>&1 | tee ../libpeas-make-check.log. Check the results with egrep '(FAIL|PASS)' ../libpeas-make-check.log. An active graphical session with bus address is necessary to run the tests.
Now, as the root
user:
make install
--enable-gtk-doc
: Use this
parameter if GTK-Doc is
installed and you wish to rebuild and install the API
documentation.
Last updated on 2014-09-19 13:13:19 -0700
The libwnck package contains the Window Navigator Construction Kit.
This package is known to build and work properly using an LFS-7.6 platform.
Download (HTTP): http://ftp.gnome.org/pub/gnome/sources/libwnck/3.4/libwnck-3.4.9.tar.xz
Download (FTP): ftp://ftp.gnome.org/pub/gnome/sources/libwnck/3.4/libwnck-3.4.9.tar.xz
Download MD5 sum: 5cb080285e8d5d6a70424cfb43bbf440
Download size: 660 KB
Estimated disk space required: 18 MB
Estimated build time: 0.2 SBU
gobject-introspection-1.40.0 and startup-notification-0.12
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 and install the API
documentation.
Last updated on 2014-09-13 22:25:33 -0700
The Totem PL Parser package contains a simple GObject-based library used to parse a host of playlist formats, as well as save those.
This package is known to build and work properly using an LFS-7.6 platform.
Download (HTTP): http://ftp.gnome.org/pub/gnome/sources/totem-pl-parser/3.10/totem-pl-parser-3.10.2.tar.xz
Download (FTP): ftp://ftp.gnome.org/pub/gnome/sources/totem-pl-parser/3.10/totem-pl-parser-3.10.2.tar.xz
Download MD5 sum: 554242a4e3e0864e825cdf0ea3720a6d
Download size: 1.6 MB
Estimated disk space required: 10 MB (additional 3 MB for the tests)
Estimated build time: 0.2 SBU (additional 0.1-0.9 SBU for the tests)
GMime-2.6.20 and libsoup-2.46.0
gobject-introspection-1.40.0, libarchive-3.1.2, and libgcrypt-1.6.2
GTK-Doc-1.20, lcov, and libquvi (version 0.9) and libquvi-scripts - if they are installed, then lua-socket (git) is necessary for the tests
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/totem-pl-parser
Install Totem PL Parser by running the following commands:
./configure --prefix=/usr \ --disable-static && make
To test the results, issue: make check. You will need an active internet connection in order to successfully complete all tests. In a graphical section with gvfs running, test suite take much longer.
Now, as the root
user:
make install
--disable-static
:
This switch prevents installation of static versions of the
libraries.
--enable-gtk-doc
: Use this
parameter if GTK-Doc is
installed and you wish to rebuild and install the API
documentation.
Last updated on 2014-09-18 14:33:53 -0700
The VTE package contains a termcap file implementation for terminal emulators.
This package is known to build and work properly using an LFS-7.6 platform.
Download (HTTP): http://ftp.gnome.org/pub/gnome/sources/vte/0.36/vte-0.36.3.tar.xz
Download (FTP): ftp://ftp.gnome.org/pub/gnome/sources/vte/0.36/vte-0.36.3.tar.xz
Download MD5 sum: 3f9df4c9a67b09bf5c660bf5c3bae109
Download size: 992 KB
Estimated disk space required: 19 MB (additional 3 MB for the tests)
Estimated build time: 0.3 SBU (additional 0.1 SBU for the tests)
Glade and GTK-Doc-1.20
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/vte
Install VTE by running the following commands:
./configure --prefix=/usr \ --sysconfdir=/etc \ --disable-static \ --enable-introspection && make
To test the results, issue make check.
Now, as the root
user:
make install
--enable-introspection
: This
switch enables Gobject
Introspection bindings. Remove if you don't have
gobject-introspection-1.40.0
installed.
--disable-static
:
This switch prevents installation of static versions of the
libraries.
--enable-gtk-doc
: Use this
parameter if GTK-Doc is
installed and you wish to rebuild and install the API
documentation.
--libexecdir=/usr/lib/vte-2.90
:
This option puts the package's private program into
/usr/lib/vte-2.90
instead of
/usr/libexec
in accordance with
the old version of the FHS used before LFS-7.5.
Last updated on 2014-09-19 13:13:19 -0700
The DConf package contains a low-level configuration system. Its main purpose is to provide a backend to GSettings on platforms that don't already have configuration storage systems.
This package is known to build and work properly using an LFS-7.6 platform.
Download (HTTP): http://ftp.gnome.org/pub/gnome/sources/dconf/0.20/dconf-0.20.0.tar.xz
Download (FTP): ftp://ftp.gnome.org/pub/gnome/sources/dconf/0.20/dconf-0.20.0.tar.xz
Download MD5 sum: 542db78e4867ac575ec0f69f79b3eebd
Download size: 384 KB
Estimated disk space required: 15 MB
Estimated build time: 0.2 SBU
D-Bus-1.8.8, GTK+-3.12.2, and libxml2-2.9.1
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/dconf
Install DConf 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
--enable-gtk-doc
: Use this
parameter if GTK-Doc is
installed and you wish to rebuild and install the API
documentation.
is a simple tool for manipulating the DConf database. |
|
is a graphical program for editing settings that are stored in the DConf database. |
|
is the D-Bus service that writes to the DConf database. |
|
contains the DConf client API functions. |
|
contains the DConf client API functions for D-Bus. |
Last updated on 2014-09-14 14:01:57 -0700
The GNOME Icon Theme package contains an assortment of non-scalable icons of different sizes and themes.
This package is known to build and work properly using an LFS-7.6 platform.
Download (HTTP): http://ftp.gnome.org/pub/gnome/sources/gnome-icon-theme/3.12/gnome-icon-theme-3.12.0.tar.xz
Download (FTP): ftp://ftp.gnome.org/pub/gnome/sources/gnome-icon-theme/3.12/gnome-icon-theme-3.12.0.tar.xz
Download MD5 sum: f14bed7f804e843189ffa7021141addd
Download size: 17 MB
Estimated disk space required: 85 MB
Estimated build time: 0.5 SBU
GTK+-3.12.2 or GTK+-2.24.24, hicolor-icon-theme-0.13, and icon-naming-utils-0.8.90
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 2014-09-17 04:20:33 -0700
The GNOME Icon Theme Extras package contains extra icons for the GNOME Desktop.
This package is known to build and work properly using an LFS-7.6 platform.
Download (HTTP): http://ftp.gnome.org/pub/gnome/sources/gnome-icon-theme-extras/3.12/gnome-icon-theme-extras-3.12.0.tar.xz
Download (FTP): ftp://ftp.gnome.org/pub/gnome/sources/gnome-icon-theme-extras/3.12/gnome-icon-theme-extras-3.12.0.tar.xz
Download MD5 sum: 91f8f7e35a3d8d926716d88b8b1e9a29
Download size: 1.7 MB
Estimated disk space required: 12 MB
Estimated build time: less than 0.1 SBU
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/gnome-icon-theme-extras
Install GNOME Icon Theme Extras 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 2014-09-14 14:01:57 -0700
The GNOME Icon Theme Symbolic package contains symbolic icons for the default GNOME icon theme.
This package is known to build and work properly using an LFS-7.6 platform.
Download (HTTP): http://ftp.gnome.org/pub/gnome/sources/gnome-icon-theme-symbolic/3.12/gnome-icon-theme-symbolic-3.12.0.tar.xz
Download (FTP): ftp://ftp.gnome.org/pub/gnome/sources/gnome-icon-theme-symbolic/3.12/gnome-icon-theme-symbolic-3.12.0.tar.xz
Download MD5 sum: 3c9c0e6b9fa04b3cbbb84da825a26fd9
Download size: 228 KB
Estimated disk space required: 6.8 MB
Estimated build time: less than 0.1 SBU
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/gnome-icon-theme-symbolic
Install GNOME Icon Theme Symbolic 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 2014-09-14 14:01:57 -0700
The GNOME Themes Standard package contains various components of the default GNOME theme.
This package is known to build and work properly using an LFS-7.6 platform.
Download (HTTP): http://ftp.gnome.org/pub/gnome/sources/gnome-themes-standard/3.12/gnome-themes-standard-3.12.0.tar.xz
Download (FTP): ftp://ftp.gnome.org/pub/gnome/sources/gnome-themes-standard/3.12/gnome-themes-standard-3.12.0.tar.xz
Download MD5 sum: 5036f65f08bbe305ff82c9ab97b2aa3f
Download size: 5.7 MB
Estimated disk space required: 49 MB
Estimated build time: 0.6 SBU
GTK+-2.24.24 or GTK+-3.12.2 with librsvg-2.40.3 or both
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/gnome-themes-standard
Install GNOME Themes Standard 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
--disable-gtk2-engine
: This
switch disables GTK+-2 theming engine.
--disable-gtk3-engine
: This
switch disables GTK+-3 theming engine.
Last updated on 2014-09-14 14:01:57 -0700
The Notification Daemon package contains a daemon that displays passive pop-up notifications.
This package is known to build and work properly using an LFS-7.6 platform.
Download (HTTP): http://ftp.gnome.org/pub/gnome/sources/notification-daemon/0.7/notification-daemon-0.7.6.tar.xz
Download (FTP): ftp://ftp.gnome.org/pub/gnome/sources/notification-daemon/0.7/notification-daemon-0.7.6.tar.xz
Download MD5 sum: 08c9a6d18ead0aa62d933fc5a4135d38
Download size: 276 KB
Estimated disk space required: 4.8 MB
Estimated build time: 0.1 SBU
GTK+-3.12.2 and libcanberra-0.30 (Built with GTK+-3.12.2 support).
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/notification-daemon
Install Notification Daemon by running the following commands:
./configure --prefix=/usr \ --sysconfdir=/etc \ --disable-static && make
This package does not come with a testsuite.
Now, as the root
user:
make install
Last updated on 2014-09-14 14:01:57 -0700
The Polkit GNOME package provides an Authentication Agent for Polkit that integrates well with the GNOME Desktop environment.
This package is known to build and work properly using an LFS-7.6 platform.
Download (HTTP): http://ftp.gnome.org/pub/gnome/sources/polkit-gnome/0.105/polkit-gnome-0.105.tar.xz
Download (FTP): ftp://ftp.gnome.org/pub/gnome/sources/polkit-gnome/0.105/polkit-gnome-0.105.tar.xz
Download MD5 sum: 50ecad37c8342fb4a52f590db7530621
Download size: 305 KB
Estimated disk space required: 5.0 MB
Estimated build time: 0.1 SBU
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/polkit-gnome
Install Polkit GNOME 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
For the authentification framework to work, polkit-gnome-authentification-agent-1 needs to be started. However, make install did not install a startup file for the Polkit GNOME so you have to create it by yourself.
Issue the following commands as the root
user to create a startup file for
Polkit GNOME:
mkdir -p /etc/xdg/autostart &&
cat > /etc/xdg/autostart/polkit-gnome-authentication-agent-1.desktop << "EOF"
[Desktop Entry]
Name=PolicyKit Authentication Agent
Comment=PolicyKit Authentication Agent
Exec=/usr/libexec/polkit-gnome-authentication-agent-1
Terminal=false
Type=Application
Categories=
NoDisplay=true
OnlyShowIn=GNOME;XFCE;Unity;
AutostartCondition=GNOME3 unless-session gnome
EOF
Last updated on 2014-09-19 13:13:19 -0700
The Yelp package contains the help browser used for viewing help files.
This package is known to build and work properly using an LFS-7.6 platform.
Download (HTTP): http://ftp.gnome.org/pub/gnome/sources/yelp/3.12/yelp-3.12.0.tar.xz
Download (FTP): ftp://ftp.gnome.org/pub/gnome/sources/yelp/3.12/yelp-3.12.0.tar.xz
Download MD5 sum: 02f0383b02960766ea46059b9a02cf85
Download size: 1.4 MB
Estimated disk space required: 25 MB
Estimated build time: 0.2 SBU
WebKitGTK+-2.4.5 and yelp-xsl-3.12.0
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.
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/yelp
Install Yelp by running the following commands:
./configure --prefix=/usr --disable-static && make
To test the results, issue make check.
Now, as the root
user:
make install
--disable-static
:
This switch prevents installation of static versions of the
libraries.
--enable-gtk-doc
: Use this
parameter if GTK-Doc is
installed and you wish to rebuild and install the API
documentation.
Last updated on 2014-09-19 13:13:19 -0700
These packages are desktop applications and assorted utilities from the GNOME project. Feel free to install them on an as needed or as desired basis.
The Baobab package contains a graphical directory tree analyzer.
This package is known to build and work properly using an LFS-7.6 platform.
Download (HTTP): http://ftp.gnome.org/pub/gnome/sources/baobab/3.12/baobab-3.12.1.tar.xz
Download (FTP): ftp://ftp.gnome.org/pub/gnome/sources/baobab/3.12/baobab-3.12.1.tar.xz
Download MD5 sum: 1d265bf555143f7aa0a7d961fd8126c2
Download size: 852 KB
Estimated disk space required: 14 MB
Estimated build time: 0.1 SBU
GTK+-3.12.2, Vala-0.24.0 and yelp-xsl-3.12.0
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/baobab
Install Baobab 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 2014-09-21 14:28:22 -0700
Brasero is an application used to burn CD/DVD on the GNOME Desktop. It is designed to be as simple as possible and has some unique features that enable users to create their discs easily and quickly.
This package is known to build and work properly using an LFS-7.6 platform.
Download (HTTP): http://ftp.gnome.org/pub/gnome/sources/brasero/3.10/brasero-3.10.0.tar.xz
Download (FTP): ftp://ftp.gnome.org/pub/gnome/sources/brasero/3.10/brasero-3.10.0.tar.xz
Download MD5 sum: 3026570f96b2e61ec902a68c4ba83cee
Download size: 3.3 MB
Estimated disk space required: 95 MB (additional 1 MB to rebuild and install the API documentation)
Estimated build time: 1.9 SBU
gst-plugins-base-1.4.1, libcanberra-0.30, libnotify-0.7.6, and yelp-xsl-3.12.0
gobject-introspection-1.40.0, libburn-1.3.8 and libisofs-1.3.8, Nautilus-3.12.2, and totem-pl-parser-3.10.2
GTK-Doc-1.20 and Tracker
dvd+rw-tools-7.1 and Gvfs-1.20.3
Cdrdao-1.2.3, libdvdcss-1.3.0, one of cdrkit or cdrtools (conflict), and VCDImager
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/brasero
Install Brasero by running the following commands:
./configure --prefix=/usr && make
This package does not come with a test suite.
When installing, the Makefile does some additional linking. If you do not have Xorg in /usr, the LIBRARY_PATH variable needs to be defined for the root user. If using sudo to assume root, use the -E option to pass your current environment variables for the install process.
Now, as the root
user:
make install
--enable-gtk-doc
: Use this
parameter if GTK-Doc is
installed and you wish to rebuild and install the API
documentation.
Last updated on 2014-09-19 14:39:35 -0700
Cheese is used to take photos and videos with fun graphical effects.
This package is known to build and work properly using an LFS-7.6 platform.
Download (HTTP): http://ftp.gnome.org/pub/gnome/sources/cheese/3.12/cheese-3.12.2.tar.xz
Download (FTP): ftp://ftp.gnome.org/pub/gnome/sources/cheese/3.12/cheese-3.12.2.tar.xz
Download MD5 sum: fab1e00717d8f3e027b9bb79299e12e8
Download size: 1.7 MB
Estimated disk space required: 22 MB
Estimated build time: 0.4 SBU
clutter-gst-2.0.12, clutter-gtk-1.4.4, gnome-desktop-3.12.2, gnome-video-effects-0.4.1, gst-plugins-bad-1.4.1, gst-plugins-good-1.4.1, libcanberra-0.30, librsvg-2.40.3, udev-extras (from eudev) (for GUdev), and yelp-xsl-3.12.0
appdata-tools-0.1.8, gobject-introspection-1.40.0, and Vala-0.24.0
GTK-Doc-1.20 and Nautilus SendTo
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/cheese
Install Cheese by running the following commands:
./configure --prefix=/usr && make
This package does not have a working testsuite.
Now, as the root
user:
make install
--enable-gtk-doc
: Use this
parameter if GTK-Doc is
installed and you wish to rebuild and install the API
documentation.
Last updated on 2014-09-22 11:20:08 -0700
EOG is an application used for viewing and cataloging image files on the GNOME Desktop.
This package is known to build and work properly using an LFS-7.6 platform.
Download (HTTP): http://ftp.gnome.org/pub/gnome/sources/eog/3.12/eog-3.12.2.tar.xz
Download (FTP): ftp://ftp.gnome.org/pub/gnome/sources/eog/3.12/eog-3.12.2.tar.xz
Download MD5 sum: a47f4a40b34aead0cd3fb3d6f8b4dd75
Download size: 3.8 MB
Estimated disk space required: 56 MB
Estimated build time: 0.6 SBU
gnome-desktop-3.12.2, gnome-icon-theme-3.12.0, libpeas-1.10.1, shared-mime-info-1.3, and yelp-xsl-3.12.0
gobject-introspection-1.40.0 and librsvg-2.40.3
Exempi-2.2.2, GTK-Doc-1.20, Little CMS-2.6, and libexif-0.6.21
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/eog
Install EOG 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 and install the API
documentation.
Last updated on 2014-09-19 13:13:19 -0700
Epiphany is a simple yet powerful GNOME web browser targeted at non-technical users. Its principles are simplicity and standards compliance.
This package is known to build and work properly using an LFS-7.6 platform.
Download (HTTP): http://ftp.gnome.org/pub/gnome/sources/epiphany/3.12/epiphany-3.12.1.tar.xz
Download (FTP): ftp://ftp.gnome.org/pub/gnome/sources/epiphany/3.12/epiphany-3.12.1.tar.xz
Download MD5 sum: 48d1ae142c41c55d62183456d4527d3d
Download size: 2.9 MB
Estimated disk space required: 86 MB
Estimated build time: 0.9 SBU
Avahi-0.6.31, Gcr-3.12.2, gnome-desktop-3.12.2, libnotify-0.7.6, libwnck-3.4.9, and WebKitGTK+-2.4.5
gnome-keyring-3.12.2 (for storing passwords) and Seahorse-3.12.2 (for managing stored passwords)
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/epiphany
Install Epiphany by running the following commands:
./configure --prefix=/usr && make
This package does not come with a testsuite.
Now, as the root
user:
make install
Last updated on 2014-09-19 13:13:19 -0700
Evince is a document viewer for multiple document formats. It supports PDF, Postscript, DjVu, TIFF and DVI. It 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.
This package is known to build and work properly using an LFS-7.6 platform.
Download (HTTP): http://ftp.gnome.org/pub/gnome/sources/evince/3.12/evince-3.12.2.tar.xz
Download (FTP): ftp://ftp.gnome.org/pub/gnome/sources/evince/3.12/evince-3.12.2.tar.xz
Download MD5 sum: f8ea3cb5ba39c75a0b28b34a9c508cd4
Download size: 2.8 MB
Estimated disk space required: 77 MB (additional 5 MB to rebuild and install the API documentation)
Estimated build time: 1.2 SBU
gnome-icon-theme-3.12.0, gsettings-desktop-schemas-3.12.2, GTK+-3.12.2, and yelp-xsl-3.12.0
gobject-introspection-1.40.0, libsecret-0.18, Nautilus-3.12.2, and Poppler-0.26.4
GTK-Doc-1.20, texlive-20140525, DjVuLibre, libgxps, libspectre, and t1lib
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/evince
Install Evince by running the following commands:
./configure --prefix=/usr \ --enable-introspection \ --disable-static && make
This package does not have a working testsuite.
Now, as the root
user:
make install
--enable-introspection
: By
default, the Gobject
Introspection support is turned off, even though that
package is an expected component of the GNOME Desktop.
--disable-static
:
This switch prevents installation of static versions of the
libraries.
--without-keyring
: This switch
disables use of the libsecret. Use this switch if
libsecret is not installed.
--disable-nautilus
: This switch
disables building of the Nautilus Plugin. Use this switch if
Nautilus is not installed.
--enable-gtk-doc
: Use this
parameter if GTK-Doc is
installed and you wish to rebuild and install the API
documentation.
--libexecdir=/usr/lib/evince
:
This option puts the package's private program in an
evince
directory in
/usr/lib
instead of using
/usr/libexec
in accordance with
the old version of the FHS used before LFS-7.5.
Last updated on 2014-09-19 13:13:19 -0700
File Roller is an archive manager for GNOME with support for tar, bzip2, gzip, zip, jar, compress, lzop and many other archive formats.
This package is known to build and work properly using an LFS-7.6 platform.
File Roller is only a graphical interface to archiving utilities such as tar and zip.
Download (HTTP): http://ftp.gnome.org/pub/gnome/sources/file-roller/3.12/file-roller-3.12.2.tar.xz
Download (FTP): ftp://ftp.gnome.org/pub/gnome/sources/file-roller/3.12/file-roller-3.12.2.tar.xz
Download MD5 sum: 408e3bfc9616f6688ac7854c512b7dfa
Download size: 1.4 MB
Estimated disk space required: 25 MB
Estimated build time: 0.3 SBU
GTK+-3.12.2 and yelp-xsl-3.12.0
JSON-GLib-1.0.2, libarchive-3.1.2, libnotify-0.7.6, and Nautilus-3.12.2
UnRar-5.1.7, UnZip-6.0, and Zip-3.0
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/file-roller
Install File Roller by running the following commands:
./configure --prefix=/usr \ --disable-packagekit \ --disable-static && make
This package does not come with a test suite.
Now, as the root
user:
make install && chmod -v 0755 /usr/libexec/file-roller/isoinfo.sh
--disable-packagekit
: This switch
disables use of PackageKit which isn't suitable for BLFS.
--disable-static
:
This switch prevents installation of static versions of the
libraries.
--enable-gtk-doc
: Use this
parameter if GTK-Doc is
installed and you wish to rebuild and install the API
documentation.
--libexecdir=/usr/lib/
: This
option will put the package's private programs in
/usr/lib/file-roller
instead of
/usr/libexec/file-roller
in
accordance with the old version of the FHS used before
LFS-7.5.
Last updated on 2014-09-19 13:13:19 -0700
The Gedit package contains a lightweight UTF-8 text editor for the GNOME Desktop.
This package is known to build and work properly using an LFS-7.6 platform.
Download (HTTP): http://ftp.gnome.org/pub/gnome/sources/gedit/3.12/gedit-3.12.2.tar.xz
Download (FTP): ftp://ftp.gnome.org/pub/gnome/sources/gedit/3.12/gedit-3.12.2.tar.xz
Download MD5 sum: a23644771605c4226059d0b92faf70d2
Download size: 2.8 MB
Estimated disk space required: 87 MB (additional less than 1 MB for tests)
Estimated build time: 1.1 SBU (additional 0.1 SBU for tests)
gsettings-desktop-schemas-3.12.2, gtksourceview-3.12.3, libpeas-1.10.1, and yelp-xsl-3.12.0
enchant-1.6.0, Gvfs-1.20.3 (runtime), ISO Codes-3.56, libsoup-2.46.0, and PyGObject-3.12.2 (Python 3 module)
GTK-Doc-1.20, Vala-0.24.0, and zeitgeist
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/gedit
Install Gedit 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
--disable-spell
: Use this switch
to disable spell-checking capability. It is required if
Enchant is not installed.
--enable-gtk-doc
: Use this
parameter if GTK-Doc is
installed and you wish to rebuild and install the API
documentation.
--libexecdir=/usr/lib
: This
option puts the package's private programs in /usr/lib/gedit
instead of /usr/libexec/gedit
in accordance with the
old version of the FHS used before LFS-7.5.
Last updated on 2014-09-19 13:13:19 -0700
GNOME Calculator 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.
This package is known to build and work properly using an LFS-7.6 platform.
Download (HTTP): http://ftp.gnome.org/pub/gnome/sources/gnome-calculator/3.12/gnome-calculator-3.12.4.tar.xz
Download (FTP): ftp://ftp.gnome.org/pub/gnome/sources/gnome-calculator/3.12/gnome-calculator-3.12.4.tar.xz
Download MD5 sum: d6896ed3a4d86ec18f8056c3c4e33f7a
Download size: 1.2 MB
Estimated disk space required: 41 MB
Estimated build time: 0.3 SBU
GTK+-3.12.2 and yelp-xsl-3.12.0
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/gnome-calculator
Install GNOME Calculator by running the following commands:
./configure --prefix=/usr && make
To test the results, issue: make -k check. Tests may fail for unknown reasons.
Now, as the root
user:
make install
Last updated on 2014-09-19 14:39:35 -0700
The GNOME Nettool package is a network information tool which provides GUI interface for some of the most common command line network tools.
This package is known to build and work properly using an LFS-7.6 platform.
Download (HTTP): http://ftp.gnome.org/pub/gnome/sources/gnome-nettool/3.8/gnome-nettool-3.8.1.tar.xz
Download (FTP): ftp://ftp.gnome.org/pub/gnome/sources/gnome-nettool/3.8/gnome-nettool-3.8.1.tar.xz
Download MD5 sum: d4fc944b7ba8fd5f49f04a73e0d37e80
Download size: 576 KB
Estimated disk space required: 14 MB
Estimated build time: 0.1 SBU
GTK+-3.12.2, libgtop-2.30.0, and yelp-xsl-3.12.0
BIND-9.10.0-P2, Nmap-6.47, Net-tools-CVS_20101030, Traceroute-2.0.20, and Whois-5.2.0
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/gnome-nettool
Install GNOME Nettool 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 2014-09-19 14:39:35 -0700
The GNOME Screenshot is a utility used for taking screenshots of the entire screen, a window or a user- defined area of the screen, with optional beautifying border effects.
This package is known to build and work properly using an LFS-7.6 platform.
Download (HTTP): http://ftp.gnome.org/pub/gnome/sources/gnome-screenshot/3.12/gnome-screenshot-3.12.0.tar.xz
Download (FTP): ftp://ftp.gnome.org/pub/gnome/sources/gnome-screenshot/3.12/gnome-screenshot-3.12.0.tar.xz
Download MD5 sum: d3467ad5bf6a84715a88f5bbc7ef596a
Download size: 256 KB
Estimated disk space required: 6.4 MB
Estimated build time: less than 0.1 SBU
GTK+-3.12.2 and libcanberra-0.30 (Compiled with GTK+3 support).
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/gnome-screenshot
Install GNOME Screenshot 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 2014-09-21 14:28:22 -0700
The GNOME System Monitor package contains GNOME's replacement for gtop.
This package is known to build and work properly using an LFS-7.6 platform.
Download (HTTP): http://ftp.gnome.org/pub/gnome/sources/gnome-system-monitor/3.12/gnome-system-monitor-3.12.2.tar.xz
Download (FTP): ftp://ftp.gnome.org/pub/gnome/sources/gnome-system-monitor/3.12/gnome-system-monitor-3.12.2.tar.xz
Download MD5 sum: dc9f4ffa25ebee2795821251ef0d73db
Download size: 796 KB
Estimated disk space required: 28 MB
Estimated build time: 0.4 SBU
gnome-icon-theme-3.12.0, Gtkmm-3.12.0, libgtop-2.30.0, librsvg-2.40.3, and yelp-xsl-3.12.0
appdata-tools-0.1.8 and libwnck-3.4.9
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/gnome-system-monitor
Install GNOME System Monitor by running the following commands:
./configure --prefix=/usr --enable-wnck && make
This package does not come with a test suite.
Now, as the root
user:
make install
Last updated on 2014-09-19 13:13:19 -0700
The GNOME Terminal package contains the terminal emulator for GNOME Desktop.
This package is known to build and work properly using an LFS-7.6 platform.
Download (HTTP): http://ftp.gnome.org/pub/gnome/sources/gnome-terminal/3.12/gnome-terminal-3.12.3.tar.xz
Download (FTP): ftp://ftp.gnome.org/pub/gnome/sources/gnome-terminal/3.12/gnome-terminal-3.12.3.tar.xz
Download MD5 sum: a3fe2df34f57e8ab0dac00c44cff2552
Download size: 1.7 MB
Estimated disk space required: 41 MB
Estimated build time: 0.3 SBU
appdata-tools-0.1.8, DConf-0.20.0, gsettings-desktop-schemas-3.12.2, VTE-0.36.3, and yelp-xsl-3.12.0
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/gnome-terminal
Install GNOME Terminal by running the following commands:
./configure --prefix=/usr \ --disable-static \ --disable-migration \ --disable-search-provider && make
This package does not come with a test suite.
Now, as the root
user:
make install
--disable-search-provider
: This
switch disables “search
gnome-shell”
provider. Necessary, because gnome-shell is not in BLFS. Remove it,
if you have gnome-shell
installed.
--disable-migration
: This switch
disables building of the GNOME
Terminal GConf
migration tool which is not necessary for BLFS.
--disable-static
:
This switch prevents installation of static versions of the
libraries.
Last updated on 2014-09-19 13:13:19 -0700
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.
This package is known to build and work properly using an LFS-7.6 platform.
Download (HTTP): http://ftp.gnome.org/pub/gnome/sources/gucharmap/3.12/gucharmap-3.12.1.tar.xz
Download (FTP): ftp://ftp.gnome.org/pub/gnome/sources/gucharmap/3.12/gucharmap-3.12.1.tar.xz
Download MD5 sum: 3a39588c963e7848a4850a0b5975211b
Download size: 1.9 MB
Estimated disk space required: 40 MB
Estimated build time: 0.2 SBU
desktop-file-utils-0.22, GTK+-3.12.2 and yelp-xsl-3.12.0
gobject-introspection-1.40.0 and Vala-0.24.0 (compilation with vala is currently broken)
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/gucharmap
Install Gucharmap by running the following commands:
./configure --prefix=/usr --enable-vala && make
This package does not come with a test suite.
Now, as the root
user:
make install
--enable-vala
: This switch
enables building of the Vala bindings. Remove if you don't
have Vala-0.24.0 installed.
--enable-gtk-doc
: Use this
parameter if GTK-Doc is
installed and you wish to rebuild and install the API
documentation.
Last updated on 2014-09-19 13:13:19 -0700
The Nautilus package contains the GNOME file manager.
This package is known to build and work properly using an LFS-7.6 platform.
Download (HTTP): http://ftp.gnome.org/pub/gnome/sources/nautilus/3.12/nautilus-3.12.2.tar.xz
Download (FTP): ftp://ftp.gnome.org/pub/gnome/sources/nautilus/3.12/nautilus-3.12.2.tar.xz
Download MD5 sum: cc802f9b49504b8ca5f5ec11fd4418c6
Download size: 4.8 MB
Estimated disk space required: 114 MB
Estimated build time: 0.7 SBU
gnome-desktop-3.12.2 and libnotify-0.7.6
Exempi-2.2.2, libexif-0.6.21 and gobject-introspection-1.40.0
GTK-Doc-1.20 and Tracker
gnome-icon-theme-symbolic-3.12.0, and Gvfs-1.20.3 (For hotplugging and device mounting to work)
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/nautilus
Install Nautilus by running the following commands:
./configure --prefix=/usr \ --sysconfdir=/etc \ --disable-tracker \ --disable-packagekit && make
This package needs to be installed before its testsuite can be run.
Now, as the root
user:
make install
--disable-packagekit
:
This switch disables use of PackageKit which isn't suitable
for BLFS.
--disable-tracker
:
This switch disables use of Tracker which isn't part of BLFS.
--enable-gtk-doc
: Use this
parameter if GTK-Doc is
installed and you wish to rebuild and install the API
documentation.
--disable-xmp
: Use this switch if
you did not install Exempi.
--disable-libexif
: Use this
switch if you did not install libexif.
Last updated on 2014-09-19 13:13:19 -0700
The NetworkManager Applet provides a tool and a panel applet used to configure wired and wireless network connections through GUI. It's designed for use with any desktop environment that uses GTK+ like Xfce and LXDE.
This package is known to build and work properly using an LFS-7.6 platform.
Download (HTTP): http://ftp.gnome.org/pub/gnome/sources/network-manager-applet/0.9/network-manager-applet-0.9.10.0.tar.xz
Download (FTP): ftp://ftp.gnome.org/pub/gnome/sources/network-manager-applet/0.9/network-manager-applet-0.9.10.0.tar.xz
Download MD5 sum: 6c23e6d208f6e78f2ecb7d0a03ddd03d
Download size: 1.3 MB
Estimated disk space required: 43 MB
Estimated build time: 0.5 SBU
GTK+-3.12.2, ISO Codes-3.56, libsecret-0.18, libnotify-0.7.6, and NetworkManager-0.9.10.0
LXPolkit-0.1.0 or polkit-gnome-0.105
GNOME Bluetooth, mobile-broadband-provider-info (runtime), and ModemManager
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/network-manager-applet
Install NetworkManager Applet by running the following commands:
./configure --prefix=/usr \ --sysconfdir=/etc \ --disable-migration \ --disable-static && make
To test the results, issue: make check.
Now, as the root
user:
make install
--disable-migration
: This switch
disables building of the NetworkManager Applet GConf migration tool which is not
necessary for BLFS.
--disable-static
:
This switch prevents installation of static versions of the
libraries.
Last updated on 2014-09-19 13:13:19 -0700
Seahorse is a graphical interface for managing and using encryption keys. Currently it supports PGP keys (using GPG/GPGME) and SSH keys.
This package is known to build and work properly using an LFS-7.6 platform.
Download (HTTP): http://ftp.gnome.org/pub/gnome/sources/seahorse/3.12/seahorse-3.12.2.tar.xz
Download (FTP): ftp://ftp.gnome.org/pub/gnome/sources/seahorse/3.12/seahorse-3.12.2.tar.xz
Download MD5 sum: 998578f6dbde86037107c137161662f2
Download size: 1.4 MB
Estimated disk space required: 51 MB
Estimated build time: 0.4 SBU
Gcr-3.12.2, GPGME-1.5.1, GnuPG-2.0.26, libsecret-0.18 and yelp-xsl-3.12.0
libsoup-2.46.0, OpenSSH-6.6p1 (for managing SSH keys) and Vala-0.24.0
Avahi-0.6.31 and OpenLDAP-2.4.39
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/seahorse
Install Seahorse by running the following commands:
./configure --prefix=/usr \ --bindir=/usr/bin \ --disable-static && make
This package does not come with a test suite.
Now, as the root
user:
make install
--bindir=/usr/bin
:
Fix desktop file.
--disable-static
:
This switch prevents installation of static versions of the
libraries.
Last updated on 2014-09-19 13:13:19 -0700
Totem package contains the official movie player of the GNOME Desktop based on GStreamer. It features a playlist, a full-screen mode, seek and volume controls, as well as keyboard navigation. This is useful for playing any GStreamer supported file, DVD, VCD or digital CD.
This package is known to build and work properly using an LFS-7.6 platform.
Download (HTTP): http://ftp.gnome.org/pub/gnome/sources/totem/3.12/totem-3.12.2.tar.xz
Download (FTP): ftp://ftp.gnome.org/pub/gnome/sources/totem/3.12/totem-3.12.2.tar.xz
Download MD5 sum: 939272a90d60c075b957a220c87bd680
Download size: 3.2 MB
Estimated disk space required: 68 MB
Estimated build time: 1.6 SBU
clutter-gst-2.0.12, clutter-gtk-1.4.4, gnome-icon-theme-3.12.0, gst-plugins-bad-1.4.1, gst-plugins-good-1.4.1, libpeas-1.10.1, totem-pl-parser-3.10.2, and yelp-xsl-3.12.0
appdata-tools-0.1.8, dbus-glib-0.102, Grilo-Plugins-0.2.13 (Channels), Nautilus-3.12.2, PyGObject-3.12.2, and Vala-0.24.0
Avahi-0.6.31 (if installed at build time, make sure avahi-daemon is running as a system daemon, started by bootscript/systemd unit), GTK-Doc-1.20, LIRC, pylint, and zeitgeist,
gst-libav-1.4.1, gst-plugins-ugly-1.4.1, and libdvdcss-1.3.0
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/totem
Install Totem by running the following commands:
./configure --prefix=/usr --disable-static && make
This package does not come with a testsuite.
Now, as the root
user:
make install
--disable-static
:
This switch prevents installation of static versions of the
libraries.
--enable-gtk-doc
: Use this
parameter if GTK-Doc is
installed and you wish to rebuild and install the API
documentation.
--libexecdir=/usr/lib
: This
option will put the package's private programs into
/usr/lib/totem
instead of
/usr/libexec/totem
in
accordance with the old version of the FHS used before
LFS-7.5.
is a GNOME Desktop movie player based on GStreamer. |
|
is a video thumbnailer for the GNOME Desktop used internally by GNOME applications such as Nautilus to generate PNG thumbnails of video files. While it is possible to invoke it manually, it is usually done automatically by Nautilus. |
|
contains the Totem API functions. |
Last updated on 2014-09-19 13:13:19 -0700
Xfce is a desktop environment that aims to be fast and low on system resources, while still being visually appealing and user friendly.
Xfce embodies the traditional UNIX philosophy of modularity and re-usability. It consists of a number of components that provide the full functionality one can expect of a modern desktop environment. They are packaged separately and you can pick among the available packages to create the optimal personal working environment.
Build Xfce core packages in the order presented in the book for the easiest resolution of dependencies.
The libxfce4util package is a basic utility library for the Xfce desktop environment.
This package is known to build and work properly using an LFS-7.6 platform.
Download (HTTP): http://archive.xfce.org/src/xfce/libxfce4util/4.10/libxfce4util-4.10.1.tar.bz2
Download MD5 sum: 11eec87e8eda2bc62512c2416cb807a1
Download size: 444 KB
Estimated disk space required: 6.2 MB
Estimated build time: 0.1 SBU
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/libxfce4util
Install libxfce4util 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
--enable-gtk-doc
: Use this
parameter if GTK-Doc is
installed and you wish to rebuild and install the API
documentation.
Last updated on 2014-09-13 19:04:15 -0700
Xfconf is the configuration storage system for Xfce.
This package is known to build and work properly using an LFS-7.6 platform.
Download (HTTP): http://archive.xfce.org/src/xfce/xfconf/4.10/xfconf-4.10.0.tar.bz2
Download MD5 sum: 4ed48150a03fb5f42b455494307b7f28
Download size: 508 KB
Estimated disk space required: 8.7 MB
Estimated build time: 0.1 SBU
dbus-glib-0.102 and libxfce4util-4.10.1
GTK-Doc-1.20 and Perl Module Glib (you may want to use build and installation instructions or alternate auto installation instructions)
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/xfconf
Install Xfconf by running the following commands:
./configure --prefix=/usr --disable-static && make
This package does not come with a test suite.
Now, as the root
user:
make install
--disable-static
:
This switch prevents installation of static versions of the
libraries.
--enable-gtk-doc
: Use this
parameter if GTK-Doc is
installed and you wish to rebuild and install the API
documentation.
Last updated on 2014-09-13 19:04:15 -0700
The libxfce4ui package contains GTK+ 2 widgets that are used by other Xfce applications.
This package is known to build and work properly using an LFS-7.6 platform.
Download (HTTP): http://archive.xfce.org/src/xfce/libxfce4ui/4.10/libxfce4ui-4.10.0.tar.bz2
Download MD5 sum: 6df1ce474a3d4885aee31cda9dbc9192
Download size: 536 KB
Estimated disk space required: 9.5 MB
Estimated build time: 0.2 SBU
GTK+-2.24.24 and Xfconf-4.10.0
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/libxfce4ui
Install libxfce4ui 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
--enable-gtk-doc
: Use this
parameter if GTK-Doc is
installed and you wish to rebuild and install the API
documentation.
Last updated on 2014-09-13 19:04:15 -0700
Exo is a support library used in the Xfce desktop. It also has some helper applications that are used throughout Xfce.
This package is known to build and work properly using an LFS-7.6 platform.
Download (HTTP): http://archive.xfce.org/src/xfce/exo/0.10/exo-0.10.2.tar.bz2
Download MD5 sum: c70f2a217811bfba2e62f938d4b8f748
Download size: 1.2 MB
Estimated disk space required: 26 MB
Estimated build time: 0.3 SBU
libxfce4ui-4.10.0, libxfce4util-4.10.1 and URI-1.64
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/exo
Install Exo 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
--enable-gtk-doc
: Use this
parameter if GTK-Doc is
installed and you wish to rebuild and install the API
documentation.
is a small utility that generates C code containing arbitrary data, useful for compiling texts or other data directly into programs. |
|
is a command line utility to create or edit icons on the desktop. |
|
is a command line frontend to the Xfce Preferred Applications framework. It can either be used to open a list of urls with the default URL handler or launch the preferred application for a certain category. |
|
is a command line utility to edit the preferred application that is used to handle a particular type of file or URI. |
|
contains additional widgets, a framework for editable toolbars, light-weight session management support and functions to automatically synchronise object properties (based on GObject Binding Properties). |
Last updated on 2014-09-13 19:04:15 -0700
The Garcon package contains a freedesktop.org compliant menu implementation based on GLib and GIO.
This package is known to build and work properly using an LFS-7.6 platform.
Download (HTTP): http://archive.xfce.org/src/xfce/garcon/0.3/garcon-0.3.0.tar.bz2
Download MD5 sum: 853f13fbad4760374a2a889acaa4a6c1
Download size: 440 KB
Estimated disk space required: 8.2 MB
Estimated build time: 0.1 SBU
libxfce4util-4.10.1 and GTK+-2.24.24
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/garcon
Install Garcon 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
--enable-gtk-doc
: Use this
parameter if GTK-Doc is
installed and you wish to rebuild and install the API
documentation.
Last updated on 2014-09-13 19:04:15 -0700
The GTK Xfce Engine package contains several GTK+ 2 and GTK+ 3 themes and libraries needed to display them. This is useful for customising the appearance of your Xfce desktop.
This package is known to build and work properly using an LFS-7.6 platform.
Download (HTTP): http://archive.xfce.org/src/xfce/gtk-xfce-engine/3.0/gtk-xfce-engine-3.0.1.tar.bz2
Download MD5 sum: 174e774d0debb052ec457640275f065d
Download size: 364 KB
Estimated disk space required: 7.3 MB
Estimated build time: 0.1 SBU
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/gtk-xfce-engine
Install GTK Xfce Engine 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 2014-09-15 14:09:24 -0700
The libwnck package contains a Window Navigator Construction Kit.
This package is known to build and work properly using an LFS-7.6 platform.
Download (HTTP): http://ftp.gnome.org/pub/gnome/sources/libwnck/2.30/libwnck-2.30.7.tar.xz
Download (FTP): ftp://ftp.gnome.org/pub/gnome/sources/libwnck/2.30/libwnck-2.30.7.tar.xz
Download MD5 sum: 3d20f26105a2fd878899d6ecdbe9a082
Download size: 612 KB
Estimated disk space required: 16 MB
Estimated build time: 0.2 SBU
gobject-introspection-1.40.0 and GTK-Doc-1.20
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/libwnck2
Install libwnck by running the following commands:
./configure --prefix=/usr \ --disable-static \ --program-suffix=-1 && make GETTEXT_PACKAGE=libwnck-1
This package does not come with a test suite.
Now, as the root
user:
make GETTEXT_PACKAGE=libwnck-1 install
--disable-static
:
This switch prevents installation of static versions of the
libraries.
--program-suffix=-1
: This option
adds -1 to the end of the names of the installed programs to
avoid overwriting the programs installed by libwnck-3.4.9.
GETTEXT_PACKAGE=libwnck-1
: This
parameter adds -1 to the end of the names of the gettext
files installed by the package to avoid overwriting the files
installed by libwnck-3.4.9.
--enable-gtk-doc
: Use this
parameter if GTK-Doc is
installed and you wish to rebuild and install the API
documentation.
Last updated on 2014-09-13 19:04:15 -0700
The libxfcegui4 package provides the basic GUI functions used by Xfce.
This package is known to build and work properly using an LFS-7.6 platform.
Download (HTTP): http://archive.xfce.org/src/xfce/libxfcegui4/4.10/libxfcegui4-4.10.0.tar.bz2
Download MD5 sum: 4025b9d6811f051c914cdd700d437e61
Download size: 676 KB
Estimated disk space required: 29 MB
Estimated build time: 0.3 SBU
libglade-2.6.4 and libxfce4util-4.10.1
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/libxfcegui4
Install libxfcegui4 by running the following commands:
./configure --prefix=/usr --disable-static && make
This package does not come with a test suite.
Now, as the root
user:
make install
--disable-static
:
This switch prevents installation of static versions of the
libraries.
--enable-gtk-doc
: Use this
parameter if GTK-Doc is
installed and you wish to rebuild and install the API
documentation.
Last updated on 2014-09-15 14:09:24 -0700
The Xfce4 Panel package contains the Xfce4 Panel.
This package is known to build and work properly using an LFS-7.6 platform.
Download (HTTP): http://archive.xfce.org/src/xfce/xfce4-panel/4.10/xfce4-panel-4.10.1.tar.bz2
Download MD5 sum: 8a1f8371fc725ba00f4594c5c0f81c59
Download size: 1.1 MB
Estimated disk space required: 40 MB
Estimated build time: 0.8 SBU
Exo-0.10.2, Garcon-0.3.0, libwnck-2.30.7 and libxfce4ui-4.10.0
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/xfce4-panel
Install Xfce4 Panel 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
--enable-gtk-doc
: Use this
parameter if GTK-Doc is
installed and you wish to rebuild and install the API
documentation.
is the Xfce panel. |
|
is a shell script that uses D-Bus and Xfce Panel to display a popup menu of the installed applications. |
|
is a shell script that uses D-Bus and Xfce Panel to display a popup menu of your home folder and its subdirectories. |
|
is a shell script that uses DBus to display the Xfwm4 a popup menu. |
|
contains the Xfce Panel API functions. |
Last updated on 2014-09-13 19:04:15 -0700
Thunar is the Xfce file manager, a GTK+ 2 GUI to organise the files on your computer.
This package is known to build and work properly using an LFS-7.6 platform.
Download (HTTP): http://archive.xfce.org/src/xfce/thunar/1.6/Thunar-1.6.3.tar.bz2
Download MD5 sum: 4f10d5d5576ce5127308d6badbac3afa
Download size: 1.9 MB
Estimated disk space required: 60 MB
Estimated build time: 0.7 SBU
Exo-0.10.2 and libxfce4ui-4.10.0
libnotify-0.7.6, startup-notification-0.12, udev-extras (from eudev) (for GUdev) and xfce4-panel-4.10.1
libexif-0.6.21 and Tumbler-0.1.30 (runtime)
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/thunar
Install Thunar by running the following commands:
./configure --prefix=/usr \ --sysconfdir=/etc \ --docdir=/usr/share/doc/Thunar-1.6.3 && 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 and install the API
documentation.
Last updated on 2014-09-15 14:09:24 -0700
The Thunar Volume Manager is an extension for the Thunar file manager, which enables automatic management of removable drives and media.
This package is known to build and work properly using an LFS-7.6 platform.
Download (HTTP): http://archive.xfce.org/src/xfce/thunar-volman/0.8/thunar-volman-0.8.0.tar.bz2
Download MD5 sum: 250af757ea629c7c27f554d17119080c
Download size: 404 KB
Estimated disk space required: 6.6 MB
Estimated build time: 0.1 SBU
Exo-0.10.2, libxfce4ui-4.10.0 and udev-extras (from eudev) (for GUdev)
libnotify-0.7.6 and startup-notification-0.12
Gvfs-1.20.3 and polkit-gnome-0.105
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/thunar-volman
Install the Thunar Volume Manager 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 2014-09-15 14:09:24 -0700
The Tumbler package contains a D-Bus thumbnailing service based on the thumbnail management D-Bus specification. This is useful for generating thumbnail images of files.
This package is known to build and work properly using an LFS-7.6 platform.
Download (HTTP): http://archive.xfce.org/src/xfce/tumbler/0.1/tumbler-0.1.30.tar.bz2
Download MD5 sum: 2524e39439c13238565160da0b6fed2d
Download size: 504 KB
Estimated disk space required: 13 MB
Estimated build time: 0.2 SBU
cURL-7.37.1, FFmpegThumbnailer, FreeType-2.5.3, gdk-pixbuf-2.30.8, gst-plugins-base-0.10.36, GTK-Doc-1.20, libjpeg-turbo-1.3.1, libgsf-1.14.30, libopewnraw, libpng-1.6.13 and Poppler-0.26.4
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/tumbler
Install Tumbler 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
Last updated on 2014-09-15 14:09:24 -0700
Xfce4 Appfinder is a tool to find and launch installed applications by searching the .desktop files installed on your system.
This package is known to build and work properly using an LFS-7.6 platform.
Download (HTTP): http://archive.xfce.org/src/xfce/xfce4-appfinder/4.10/xfce4-appfinder-4.10.1.tar.bz2
Download MD5 sum: bea253956638e2df2dd950343b3b1b7b
Download size: 436 KB
Estimated disk space required: 6.6 MB
Estimated build time: 0.1 SBU
Garcon-0.3.0 and libxfce4ui-4.10.0
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/xfce4-appfinder
Install Xfce4 Appfinder 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 2014-09-15 14:09:24 -0700
The Xfce4 Power Manager is a power manager for the Xfce desktop, Xfce power manager manages the power sources on the computer and the devices that can be controlled to reduce their power consumption (such as LCD brightness level, monitor sleep, CPU frequency scaling). In addition, Xfce4 Power Manager provides a set of freedesktop-compliant DBus interfaces to inform other applications about current power level so that they can adjust their power consumption.
This package is known to build and work properly using an LFS-7.6 platform.
Download (HTTP): http://archive.xfce.org/src/xfce/xfce4-power-manager/1.4/xfce4-power-manager-1.4.0.tar.bz2
Download MD5 sum: 39163f026596404a740d85df87cd95dc
Download size: 1.1 MB
Estimated disk space required: 25 MB
Estimated build time: 0.2 SBU
libnotify-0.7.6, UPower-0.9.23, and xfce4-panel-4.10.1
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/xfce4-power-manager
Install Xfce4 Power Manager 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 docdir=/usr/share/doc/xfce4-power-manager-1.4.0 \ imagesdir=/usr/share/doc/xfce4-power-manager-1.4.0/images install
is a GTK+ 2 application that displays information about installed devices. It uses DBus to comunicate with UPower which is required at runtime for xfce4-power-information to give any meaningful output. |
|
is the Xfce Power Manager. |
|
is a utility that comes with the Xfce Power Manager to access/change its configuration. |
|
is a command line utility to get or set the brightness of your screen. |
Last updated on 2014-09-18 13:23:29 -0700
The Xfce4 Settings package contains a collection of programs that are useful for adjusting your Xfce preferences.
This package is known to build and work properly using an LFS-7.6 platform.
Download (HTTP): http://archive.xfce.org/src/xfce/xfce4-settings/4.10/xfce4-settings-4.10.1.tar.bz2
Download MD5 sum: eaa86dd86ef0dad9cf7af1ee2c831972
Download size: 760 KB
Estimated disk space required: 20 MB
Estimated build time: 0.3 SBU
Exo-0.10.2 and libxfce4ui-4.10.0
libcanberra-0.30, libnotify-0.7.6 and libxklavier-5.3
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/xfce4-settings
Install Xfce4 Settings 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
--enable-sound-settings
: Use this
switch to enable sound settings in GUI.
--enable-pluggable-dialogs
: Use
this switch to enable support for embedded settings dialogs.
is a GTK+ 2 GUI to allow you to change some of your keyboard and mouse preferences. |
|
is a GTK+ 2 GUI to allow you to change some of your theme, icon and font preferences. |
|
is a GTK+ 2 GUI to allow you to change some of your screen preferences. |
|
is a GTK+ 2 GUI to allow you to change some of your keyboard preferences. |
|
is a GTK+ 2 GUI to allow you to change which applications are used to handle different mime types. |
|
is a GTK+ 2 GUI to allow you to change some of your mouse preferences. |
|
is a GTK+ 2 GUI to allow you to change your preferences stored in Xfconf. |
|
is a GTK+ 2 GUI to allow you to change many of your Xfce preferences. |
|
is the Xfce settings daemon. |
Last updated on 2014-09-15 14:09:24 -0700
Xfdesktop is a desktop manager for the Xfce Desktop Environment. Xfdesktop sets the background image / color, creates the right click menu and window list and displays the file icons on the desktop using Thunar libraries.
This package is known to build and work properly using an LFS-7.6 platform.
Download (HTTP): http://archive.xfce.org/src/xfce/xfdesktop/4.10/xfdesktop-4.10.2.tar.bz2
Download MD5 sum: 54a84ce63046c279fc3ec3f436d2f1b0
Download size: 1.1 MB
Estimated disk space required: 20 MB
Estimated build time: 0.2 SBU
Exo-0.10.2, libwnck-2.30.7 and libxfce4ui-4.10.0
libnotify-0.7.6, startup-notification-0.12 and Thunar-1.6.3
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/xfdesktop
Install Xfdesktop 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
Last updated on 2014-09-13 19:04:15 -0700
Xfwm4 is the window manager for Xfce.
This package is known to build and work properly using an LFS-7.6 platform.
Download (HTTP): http://archive.xfce.org/src/xfce/xfwm4/4.10/xfwm4-4.10.1.tar.bz2
Download MD5 sum: 10de50c79ed944cbb9c87741062c2a76
Download size: 1.1 MB
Estimated disk space required: 30 MB
Estimated build time: 0.3 SBU
libwnck-2.30.7, libxfce4ui-4.10.0 and libxfce4util-4.10.1
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/xfwm4
Install Xfwm4 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 the Xfce window manager. |
|
is a GTK+ 2 application that allows you to set some preferences such as your theme, keyboard shortcuts and mouse focus behaviour. |
|
is a GTK+ 2 application that allows you to set some more preferences for Xfwm4. |
|
is a GTK+ 2 application that allows you to set your workspace preferences. |
Last updated on 2014-09-13 19:04:15 -0700
Xfce4 Session is a session manager for Xfce. Its task is to save the state of your desktop (opened applications and their location) and restore it during a next startup. You can create several different sessions and choose one of them on startup.
This package is known to build and work properly using an LFS-7.6 platform.
Download (HTTP): http://archive.xfce.org/src/xfce/xfce4-session/4.10/xfce4-session-4.10.1.tar.bz2
Download MD5 sum: 1757657c1d590aa6274b7b7cbba33352
Download size: 1.3 MB
Estimated disk space required: 21 MB
Estimated build time: 0.3 SBU
libwnck-2.30.7, libxfce4ui-4.10.0, and Which-2.20
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/xfce4-session
Install Xfce4 Session by running the following commands:
./configure --prefix=/usr \ --sysconfdir=/etc \ --disable-legacy-sm && make
This package does not come with a test suite.
Now, as the root
user:
make install
--disable-legacy-sm
: This switch
disables legacy session management which isn't necessary on
modern system.
There are several optional run time dependencies for Xfce4: ConsoleKit-0.4.6, D-Bus-1.8.8, GnuPG-2.0.26, hicolor-icon-theme-0.13 and OpenSSH-6.6p1
To launch Xfce4 use the command startxfce4. If you have ConsoleKit-0.4.6 installed, use startxfce4 --with-ck-launch. ConsoleKit is required to perform any task that requires administrative access, including shut down and reboot.
Last updated on 2014-09-14 13:18:45 -0700
This is a small collection of optional applications that add extra capabilities to your Xfce desktop.
Midori is a lightweight web browser that uses WebKitGTK+.
This package is known to build and work properly using an LFS-7.6 platform.
Download (HTTP): http://www.midori-browser.org/downloads/midori_0.5.8_all_.tar.bz2
Download MD5 sum: b89e25e74199d705e74767499a415976
Download size: 1.3 MB
Estimated disk space required: 63 MB (additional 1 MB for the tests)
Estimated build time: 0.5 SBU (additional less than 0.1 SBU for the tests)
CMake-3.0.1, libnotify-0.7.6, WebKitGTK+-2.4.5 (see "Command Explanations"), and Vala-0.24.0
GTK-Doc-1.20 and libzeitgeist-0.3.18
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/midori
The tarball is not compressed from a directory, thus it is better to create a directory to uncompress it:
mkdir -v midori-0.5.8 && tar xf midori_0.5.8_all_.tar.bz2 -C midori-0.5.8 && cd midori-0.5.8
Install Midori by running the following commands:
./configure --prefix=/usr && make
To test the results, issue: make check from an X terminal emulator.
Now, as the root
user:
make install
--enable-gtk3
: Use this switch if
you want to build Midori
with WebKitGTK+ built
against GTK+ 3, because by
default it chooses WebKitGTK+ built against GTK+ 2.
--enable-apidocs
: Use this switch
if GTK-Doc is installed and
you wish to build and install the API documentation.
export NOCOLOR=1: This prevents the build process outputting colored text. Colored text is fine if you're running the commands in a terminal, but if you compile it with a script and pipe the output to a log file the control characters that color the text can makehe log file difficult to read with a text editor.
Last updated on 2014-09-16 13:49:04 -0700
Parole is a DVD/CD/music player for Xfce that uses GStreamer.
This package is known to build and work properly using an LFS-7.6 platform.
Download (HTTP): http://archive.xfce.org/src/apps/parole/0.5/parole-0.5.4.tar.bz2
Download MD5 sum: fa25b069c90bb9d59fef46e77c98f9b0
Download size: 656 KB
Estimated disk space required: 16 MB
Estimated build time: 0.2 SBU
gst-plugins-base-0.10.36 or gst-plugins-base-1.4.1 and libxfce4ui-4.10.0
libnotify-0.7.6 and taglib-1.9.1
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/parole
Install Parole 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-gstreamer=1.0
:
Use this switch if you want to use gst-plugins-base-1.4.1 instead
of gst-plugins-base-0.10.36.
If you have installed Gstreamer Plugins Ugly with support for libdvdnav and libdvdread and would like to use Parole to play a DVD, click Media> Open location and enter dvd:// into the box.
Similarly, to play a CD, click Media> Open location and enter cdda:// into the box.
Last updated on 2014-09-13 19:04:15 -0700
The GtkSourceView package contains libraries used for extending the GTK+ 2 text functions to include syntax highlighting.
This package is known to build and work properly using an LFS-7.6 platform.
Download (HTTP): http://ftp.gnome.org/pub/gnome/sources/gtksourceview/2.10/gtksourceview-2.10.5.tar.gz
Download (FTP): ftp://ftp.gnome.org/pub/gnome/sources/gtksourceview/2.10/gtksourceview-2.10.5.tar.gz
Download MD5 sum: 220db5518e3f7fa06c980f057b22ba62
Download size: 2.0 MB
Estimated disk space required: 31 MB
Estimated build time: 0.3 SBU
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/gtksourceview2
Install GtkSourceView 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 and install the API
documentation.
Last updated on 2014-09-16 10:29:57 -0700
Mousepad is a simple GTK+ 2 text editor for the Xfce desktop environment.
This package is known to build and work properly using an LFS-7.6 platform.
Download (HTTP): http://archive.xfce.org/src/apps/mousepad/0.3/mousepad-0.3.0.tar.bz2
Download MD5 sum: dcfcdfaa8a19c89f35d5f6f64753e6e1
Download size: 472 KB
Estimated disk space required: 9.6 MB
Estimated build time: 0.1 SBU
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/mousepad
Install Mousepad 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 2014-09-16 10:29:57 -0700
Vte is a library (libvte) implementing a terminal emulator widget for GTK+ 2, and a minimal demonstration application (vte) that uses libvte.
This package is known to build and work properly using an LFS-7.6 platform.
Download (HTTP): http://ftp.gnome.org/pub/gnome/sources/vte/0.28/vte-0.28.2.tar.xz
Download (FTP): ftp://ftp.gnome.org/pub/gnome/sources/vte/0.28/vte-0.28.2.tar.xz
Download MD5 sum: 497f26e457308649e6ece32b3bb142ff
Download size: 940 KB
Estimated disk space required: 33 MB
Estimated build time: 0.5 SBU
gobject-introspection-1.40.0, GTK-Doc-1.20 and PyGTK-2.24.0
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/vte2
Install Vte by running the following commands:
./configure --prefix=/usr \ --libexecdir=/usr/lib/vte \ --disable-static && make
To test the results, issue: make check.
Now, as the root
user:
make install
--libexecdir=/usr/lib/vte
:
both this package and VTE-0.36.3 install files of the same name.
This switch ensures that they do not overwrite each other if
both are installed.
--disable-static
:
This switch prevents installation of static versions of the
libraries.
Last updated on 2014-09-13 19:04:15 -0700
Xfce4 Terminal is a GTK+ 2 terminal emulator. This is useful for running commands or programs in the comfort of an Xorg window; you can drag and drop files into the Xfce4 Terminal or copy and paste text with your mouse.
This package is known to build and work properly using an LFS-7.6 platform.
Download (HTTP): http://archive.xfce.org/src/apps/xfce4-terminal/0.6/xfce4-terminal-0.6.3.tar.bz2
Download MD5 sum: 6a2816d8b0933cd707ed456ceb731399
Download size: 800 KB
Estimated disk space required: 14 MB
Estimated build time: 0.1 SBU
libxfce4ui-4.10.0 and Vte-0.28.2
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/xfce4-terminal
Install Xfce4 Terminal 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 2014-09-13 19:04:15 -0700
Xfburn is a GTK+ 2 GUI frontend for Libisoburn. This is useful for creating CDs and DVDs from files on your computer or ISO images downloaded from elsewhere.
This package is known to build and work properly using an LFS-7.6 platform.
Download (HTTP): http://archive.xfce.org/src/apps/xfburn/0.5/xfburn-0.5.2.tar.bz2
Download MD5 sum: 5a277c76ec9f70900b8b98a2cd500a1d
Download size: 744 KB
Estimated disk space required: 17 MB (additional 1 MB for the tests)
Estimated build time: 0.1 SBU (additional 0.1 SBU for the tests)
Exo-0.10.2, libxfce4util-4.10.1, and libisoburn-1.3.8
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/xfburn
Install Xfburn by running the following commands:
./configure --prefix=/usr --disable-static && make
To test the results, issue: make check.
Now, as the root
user:
make install
--disable-static
:
This switch prevents installation of static versions of the
libraries.
Last updated on 2014-09-16 12:59:17 -0700
Ristretto is a fast and lightweight image viewer for the Xfce desktop.
This package is known to build and work properly using an LFS-7.6 platform.
Download (HTTP): http://archive.xfce.org/src/apps/ristretto/0.6/ristretto-0.6.3.tar.bz2
Download MD5 sum: 6b8c9a5d7ed319e4c84a9fefaa18792c
Download size: 488 KB
Estimated disk space required: 11 MB
Estimated build time: 0.2 SBU
libexif-0.6.21 and libxfce4ui-4.10.0
Tumbler-0.1.30 (runtime)
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/ristretto
Install Ristretto 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 2014-09-13 19:04:15 -0700
The libunique package contains a library for writing single instance applications.
This package is known to build and work properly using an LFS-7.6 platform.
Download (HTTP): http://ftp.gnome.org/pub/gnome/sources/libunique/1.1/libunique-1.1.6.tar.bz2
Download (FTP): ftp://ftp.gnome.org/pub/gnome/sources/libunique/1.1/libunique-1.1.6.tar.bz2
Download MD5 sum: 7955769ef31f1bc4f83446dbb3625e6d
Download size: 328 KB
Estimated disk space required: 7.0 MB
Estimated build time: 0.2 SBU
gobject-introspection-1.40.0 and GTK-Doc-1.20
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/libunique
Install libunique by running the following commands:
patch -Np1 -i ../libunique-1.1.6-upstream_fixes-1.patch && autoreconf -fi && ./configure --prefix=/usr \ --disable-dbus \ --disable-static && make
This package does not come with a test suite.
Now, as the root
user:
make install
--disable-dbus
: This switch
disables D-Bus backend in
favor of the GDBus backend.
--disable-static
:
This switch prevents installation of static versions of the
libraries.
--enable-gtk-doc
: Use this
parameter if GTK-Doc is
installed and you wish to rebuild and install the API
documentation.
Last updated on 2014-09-16 10:29:57 -0700
Xfce4 Mixer is a volume control application for the Xfce desktop based on GStreamer.
This package is known to build and work properly using an LFS-7.6 platform.
Download (HTTP): http://archive.xfce.org/src/apps/xfce4-mixer/4.10/xfce4-mixer-4.10.0.tar.bz2
Download MD5 sum: e47d5b3e873fdee3fa80d309a5f53e9c
Download size: 452 KB
Estimated disk space required: 9.3 MB
Estimated build time: 0.2 SBU
gst-plugins-base-0.10.36, libunique-1.1.6 and xfce4-panel-4.10.1
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/xfce4-mixer
Install Xfce4 Mixer 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 2014-09-16 13:49:04 -0700
The Xfce4 Notification Daemon is a small program that implements the "server-side" portion of the Freedesktop desktop notifications specification. Applications that wish to pop up a notification bubble in a standard way can use Xfce4-Notifyd to do so by sending standard messages over D-Bus using the org.freedesktop.Notifications interface.
This package is known to build and work properly using an LFS-7.6 platform.
Download (HTTP): http://archive.xfce.org/src/apps/xfce4-notifyd/0.2/xfce4-notifyd-0.2.4.tar.bz2
Download MD5 sum: 094be6f29206aac8299f27084e284e88
Download size: 356 KB
Estimated disk space required: 5.3 MB
Estimated build time: 0.2 SBU
libnotify-0.7.6 and libxfce4ui-4.10.0
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/xfce4-notifyd
Install the Xfce4 Notification Daemon 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
You can test the notification daemon with the command notify-send:
notify-send -i info Information "Hi ${USER}, This is a Test"
Last updated on 2014-09-16 13:49:04 -0700
LXDE is an extremely fast-performing and energy-saving desktop environment.
LXDE comes with a beautiful interface, multi-language support, standard keyboard shortcuts and additional features like tabbed file browsing. LXDE uses less CPU and less RAM than other environments. It is especially designed for cloud computers with low hardware specifications, such as netbooks, mobile devices (e.g. MIDs) or older computers.
Build LXDE core packages in the order presented in the book for the easiest resolution of dependencies.
The LXMenu Data package provides files required to build freedesktop.org menu spec-compliant desktop menus for LXDE.
This package is known to build and work properly using an LFS-7.6 platform.
Download (HTTP): http://downloads.sourceforge.net/lxde/lxmenu-data-0.1.4.tar.xz
Download MD5 sum: a44bb6214594fee21b8ef3e478b0f0e5
Download size: 176 KB
Estimated disk space required: 3.0 MB
Estimated build time: less than 0.1 SBU
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/lxmenu-data
Install LXMenu Data 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
Last updated on 2014-09-13 22:25:33 -0700
The LXDE Icon Theme package contains nuoveXT 2.2 Icon Theme for LXDE.
This package is known to build and work properly using an LFS-7.6 platform.
Download (HTTP): http://downloads.sourceforge.net/lxde/lxde-icon-theme-0.5.1.tar.xz
Download MD5 sum: 7467133275edbbcc79349379235d4411
Download size: 4.3 MB
Estimated disk space required: 18 MB
Estimated build time: less than 0.1 SBU
GTK+-2.24.24 or GTK+-3.12.2 (for gtk-update-icon-cache command)
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/lxde-icon-theme
Install LXDE 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
If you have installed one of the optional dependencies, run
the following command as the root
user:
gtk-update-icon-cache -qf /usr/share/icons/nuoveXT2
Last updated on 2014-09-13 22:25:33 -0700
The libfm-extra package contains a library and other files required by menu-cache-gen libexec of menu-cache-0.7.0.
This package is known to build and work properly using an LFS-7.6 platform.
Download (HTTP): http://downloads.sourceforge.net/pcmanfm/libfm-1.2.2.1.tar.xz
Download MD5 sum: f898c480b142b56471377ef3a2810f2d
Download size: 876 KB
Estimated disk space required: 11 MB
Estimated build time: less than 0.1 SBU
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/libfm-extra
Install libfm-extra by running the following commands:
./configure --prefix=/usr \ --sysconfdir=/etc \ --with-extra-only \ --with-gtk=no \ --disable-static && make
This package does not come with a test suite.
Now, as the root
user:
make install
--with-extra-only
Disable all components but libfm-extra library.
--with-gtk=no
Gtk is not necessary for
this package.
--disable-static
:
This switch prevents installation of static versions of the
libraries.
Last updated on 2014-09-13 22:25:33 -0700
The Menu Cache package contains a library for creating and utilizing caches to speed up the manipulation for freedesktop.org defined application menus.
This package is known to build and work properly using an LFS-7.6 platform.
Download (HTTP): http://downloads.sourceforge.net/lxde/menu-cache-0.7.0.tar.xz
Download MD5 sum: 515a69ab45bc9963e053756ab7e5b529
Download size: 256 KB
Estimated disk space required: 3.2 MB (additional 0.5 MB to build and install the API documentation)
Estimated build time: less than 0.1 SBU
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/menu-cache
Install Menu Cache by running the following commands:
./configure --prefix=/usr \ --disable-static && make
This package does not come with a test suite.
Now, as the root
user:
make install
--disable-static
:
This switch prevents installation of static versions of the
libraries.
--enable-gtk-doc
: Use this option
if GTK-Doc is installed and
you wish to build and install the API documentation. With
this option enabled, the package doesn't support parallel
build.
Last updated on 2014-09-13 22:25:33 -0700
The libfm package contains a library used to develop file managers providing some file management utilities.
This package is known to build and work properly using an LFS-7.6 platform.
Download (HTTP): http://downloads.sourceforge.net/pcmanfm/libfm-1.2.2.1.tar.xz
Download MD5 sum: f898c480b142b56471377ef3a2810f2d
Download size: 876 KB
Estimated disk space required: 28 MB
Estimated build time: 0.3 SBU
GTK+-2.24.24 and menu-cache-0.7.0
libexif-0.6.21, Vala-0.24.0, and lxmenu-data-0.1.4
dbus-glib-0.102 and UDisks-1.0.5 (for volume management - experimental) or Gvfs-1.20.3 and GTK-Doc-1.20
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/libfm
Install libfm by running the following commands:
./configure --prefix=/usr \ --sysconfdir=/etc \ --disable-static && make
To test the results, issue: make check.
Now, as the root
user:
make install
--disable-static
:
This switch prevents installation of static versions of the
libraries.
--enable-gtk-doc
: Use this
parameter if GTK-Doc is
installed and you wish to rebuild and install the API
documentation.
Last updated on 2014-09-13 22:25:33 -0700
The PCManFM package contains an extremely fast, lightweight, yet feature-rich file manager with tabbed browsing.
This package is known to build and work properly using an LFS-7.6 platform.
Download (HTTP): http://downloads.sourceforge.net/pcmanfm/pcmanfm-1.2.2.tar.xz
Download MD5 sum: ac0ba2f8e2b4d47014a62ccf43388e0f
Download size: 396 KB
Estimated disk space required: 9.2 MB
Estimated build time: less than 0.1 SBU
gnome-icon-theme-3.12.0 or oxygen-icons-4.14.1 or lxde-icon-theme-0.5.1
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/pcmanfm
Install PCManFM 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 && sed -i 's/System;//' /usr/share/applications/pcmanfm.desktop
sed -i ...: Fixes submenu for PCManFM entry.
Last updated on 2014-09-17 15:52:31 -0700
The LXPanel package contains a lightweight X11 desktop panel.
This package is known to build and work properly using an LFS-7.6 platform.
Download (HTTP): http://downloads.sourceforge.net/lxde/lxpanel-0.7.0.tar.xz
Download MD5 sum: 39698de2c5eda2837607762c9f522cd0
Download size: 1.5 MB
Estimated disk space required: 24 MB
Estimated build time: 0.3 SBU
libwnck-2.30.7, lxmenu-data-0.1.4 and menu-cache-0.7.0
alsa-lib-1.0.28 and Wireless Tools-29
libxslt-1.1.28 with docbook-xml-4.5 and docbook-xsl-1.78.1 (to build man pages)
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/lxpanel
Install LXPanel 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-man
: Use this switch if
you have installed optional dependencies and wish to build
the manual pages.
Last updated on 2014-09-13 22:25:33 -0700
The LXAppearance package contains a desktop-independent theme switcher for GTK+.
This package is known to build and work properly using an LFS-7.6 platform.
Download (HTTP): http://downloads.sourceforge.net/lxde/lxappearance-0.5.6.tar.xz
Download MD5 sum: 90bed417817a42b24af368f85cb5fc58
Download size: 160 KB
Estimated disk space required: 4.0 MB
Estimated build time: less than 0.1 SBU
libxslt-1.1.28 with docbook-xml-4.5 and docbook-xsl-1.78.1 (to build man pages)
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/lxappearance
Install LXAppearance by running the following commands:
./configure --prefix=/usr \ --sysconfdir=/etc \ --disable-static \ --enable-dbus && make
This package does not come with a test suite.
Now, as the root
user:
make install
--enable-dbus
: This
switch enables DBus support
in LXAppearance which is
useful for communicating with LXSession. Remove it if you are not
building LXDE or have not
installed dbus-glib-0.102.
--enable-man
: Use this switch if
you have installed optional dependencies and wish to rebuild
the manual pages.
--disable-static
:
This switch prevents installation of static versions of the
libraries.
Last updated on 2014-09-20 10:54:20 -0700
The LXPolkit package contains a simple PolicyKit authentication agent.
This package is known to build and work properly using an LFS-7.6 platform.
Download (HTTP): http://downloads.sourceforge.net/lxde/lxpolkit-0.1.0.tar.gz
Download MD5 sum: 2597b00035fe1d695219e0f9bfa8c26f
Download size: 200 KB
Estimated disk space required: 2.7 MB
Estimated build time: 0.1 SBU
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/lxpolkit
Install LXPolkit 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
Last updated on 2014-09-13 22:25:33 -0700
The LXSession package contains the default session manager for LXDE.
This package is known to build and work properly using an LFS-7.6 platform.
Download (HTTP): http://downloads.sourceforge.net/lxde/lxsession-0.4.9.2.tar.gz
Download MD5 sum: bc3eb71936dbdf813e9ac2f00ab948f0
Download size: 732 KB
Estimated disk space required: 23 MB
Estimated build time: 0.3 SBU
dbus-glib-0.102, GTK+-2.24.24, libgee-0.6.8, lsb_release-1.4 (runtime for lxde-logout do not crash), Polkit-0.112 and Vala-0.24.0
libxslt-1.1.28 with docbook-xml-4.5, docbook-xsl-1.78.1 (to build man pages) and UPower-0.9.23 with pm-utils-1.4.1 (used by lxsession-logout)
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/lxsession
Install LXSession by running the following commands:
./configure --prefix=/usr --disable-man && make
This package does not come with a test suite.
Now, as the root
user:
make install
--disable-man
: This
switch disables building of the manual pages. Remove it if
you have installed optional dependencies and wish to build
the manual pages.
Last updated on 2014-09-19 14:39:35 -0700
The LXDE Common package provides a set of default configuration for LXDE.
This package is known to build and work properly using an LFS-7.6 platform.
Download (HTTP): http://downloads.sourceforge.net/lxde/lxde-common-0.5.6.tar.xz
Download MD5 sum: 259b4a2db50117e632e34912251cfcb9
Download size: 844 KB
Estimated disk space required: 2.4 MB
Estimated build time: less than 0.1 SBU
ConsoleKit-0.4.6, lxde-icon-theme-0.5.1, LXPanel-0.7.0, LXSession-0.4.9.2, openbox-3.5.2 (runtime), and PCManFM-1.2.2
desktop-file-utils-0.22, hicolor-icon-theme-0.13, and shared-mime-info-1.3
D-Bus-1.8.8, a notification daemon such as notification-daemon-0.7.6 or xfce4-notifyd-0.2.4, and a polkit authentication agent such as LXPolkit-0.1.0 or polkit-gnome-0.105
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/lxde-common
Install LXDE 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 && ln -svfn profile/LXDE /etc/xdg/lxpanel/LXDE && install -Dm644 lxde-logout.desktop \ /usr/share/applications/lxde-logout.desktop
If you have installed recommended dependencies, run the
following commands as the root
user:
update-mime-database /usr/share/mime && gtk-update-icon-cache -qf /usr/share/icons/hicolor && update-desktop-database -q
To start LXDE using xinit-1.3.3, run the following commands:
cat > ~/.xinitrc << "EOF" ck-launch-session startlxde EOF startx
ln -svfn profile/LXDE ...: Fixes the wrong path of the default LXPanel profile.
Last updated on 2014-09-19 14:39:35 -0700
This is a small collection of optional applications that add extra capabilities to the LXDE desktop.
The GPicView package contains a lightweight image viewer.
This package is known to build and work properly using an LFS-7.6 platform.
Download (HTTP): http://downloads.sourceforge.net/lxde/gpicview-0.2.4.tar.gz
Download MD5 sum: b209e36531f89c48e3067b389699d4c7
Download size: 480 KB
Estimated disk space required: 6.2 MB
Estimated build time: 0.2 SBU
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/gpicview
Install GPicView 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 && sed -i 's/Utility;//' /usr/share/applications/gpicview.desktop
If you have xdg-utils-1.1.0-rc2 installed, as
the root
user, you should run
the xdg-icon-resource
forceupdate --theme hicolor command, for the
installed icon to be displayed in the menu item.
sed -i ...: Fixes submenu for GPicView.
Last updated on 2014-09-17 15:52:31 -0700
The LXAppearance OBconf package contains a plugin for LXAppearance to configure OpenBox.
This package is known to build and work properly using an LFS-7.6 platform.
Download (HTTP): http://downloads.sourceforge.net/lxde/lxappearance-obconf-0.2.2.tar.xz
Download MD5 sum: d958ac5514ba1707429ff6794ab59abf
Download size: 288 KB
Estimated disk space required: 4.0 MB
Estimated build time: 0.1 SBU
LXAppearance-0.5.6 and openbox-3.5.2
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/lxappearance-obconf
Install LXAppearance OBconf by running the following commands:
./configure --prefix=/usr --disable-static && make
This package does not come with a test suite.
Now, as the root
user:
make install
--disable-static
:
This switch prevents installation of static versions of the
libraries.
Last updated on 2014-09-17 15:52:31 -0700
The LXInput package contains a small program used to configure keyboard and mouse for LXDE.
This package is known to build and work properly using an LFS-7.6 platform.
Download (HTTP): http://downloads.sourceforge.net/lxde/lxinput-0.3.3.tar.xz
Download MD5 sum: d2a6467c5d23f9aa7f65d0d3abacd102
Download size: 144 KB
Estimated disk space required: 2.4 MB
Estimated build time: 0.1 SBU
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/lxinput
Install LXInput 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 2014-09-17 15:52:31 -0700
The LXRandR package contains a monitor configuration tool for LXDE.
This package is known to build and work properly using an LFS-7.6 platform.
Download (HTTP): http://downloads.sourceforge.net/lxde/lxrandr-0.3.0.tar.xz
Download MD5 sum: 250f0ebb09c1e02f430f951911ba1259
Download size: 124 KB
Estimated disk space required: 2.5 MB
Estimated build time: less than 0.1 SBU
GTK+-2.24.24 and Xorg Applications
libxslt-1.1.28 with docbook-xml-4.5 and docbook-xsl-1.78.1 (to build man pages)
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/lxrandr
Install LXRandR 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-man
: Use this switch if
you have installed optional dependencies and wish to build
the manual pages.
Last updated on 2014-09-20 10:54:20 -0700
The LXTask package contains a lightweight and desktop-independent task manager.
This package is known to build and work properly using an LFS-7.6 platform.
Download (HTTP): http://downloads.sourceforge.net/lxde/lxtask-0.1.5.tar.xz
Download MD5 sum: c8b1e9df8cbe41c07ebc3830d4386324
Download size: 136 KB
Estimated disk space required: 3.3 MB
Estimated build time: less than 0.1 SBU
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/lxtask
Install LXTask 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 2014-09-17 15:52:31 -0700
The LXTerminal package contains a VTE-based terminal emulator for LXDE with support for multiple tabs.
This package is known to build and work properly using an LFS-7.6 platform.
Download (HTTP): http://downloads.sourceforge.net/lxde/lxterminal-0.1.11.tar.gz
Download MD5 sum: fd9140b45c0f28d021253c4aeb8c4aea
Download size: 300 KB
Estimated disk space required: 4.2 MB
Estimated build time: 0.1 SBU
libxslt-1.1.28 with docbook-xml-4.5 and docbook-xsl-1.78.1 (to build man pages)
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/lxterminal
Install LXTerminal 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-man
: Use this switch if
you have installed optional dependencies and wish to build
the manual pages.
Last updated on 2014-09-15 14:09:24 -0700
The LXDM is a lightweight Display Manager for the LXDE desktop. It can also be used as an alternative to other Display Managers such as GNOME's GDM or KDE's KDM.
This package is known to build and work properly using an LFS-7.6 platform.
Download (HTTP): http://downloads.sourceforge.net/lxdm/lxdm-0.5.0.tar.xz
Download MD5 sum: a51686720e606ca456d7f56ae4159d1f
Download size: 232 KB
Estimated disk space required: 4.7 MB
Estimated build time: less than 0.1 SBU
GTK+-2.24.24, ISO Codes-3.56 and librsvg-2.40.3 (runtime, for default theme background)
ConsoleKit-0.4.6 and Linux-PAM-1.1.8
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/lxdm
First, some fixes.
cat > pam/lxdm << "EOF" &&
#%PAM-1.0
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
sed -i 's:sysconfig/i18n:profile.d/i18n.sh:g' data/lxdm.in &&
sed -i 's:/etc/xprofile:/etc/profile:g' data/Xsession &&
sed -e 's/^bg/#&/' -e '/reset=1/ s/# //' \
-e 's/logou$/logout/' -i data/lxdm.conf.in
Install LXDM by running the following commands:
./configure --prefix=/usr \ --sysconfdir=/etc \ --with-pam \ --with-systemdsystemunitdir=no && make
This package does not come with a test suite.
Now, as the root
user:
make install
cat > pam/lxdm <<
"EOF" ...: Replace default /etc/pam.d/lxdm
by another one appropriate
for BLFS.
sed -i ... data/lxdm.conf.in: Three modifications in the default configuration: (1) fix the background to the default one; (2) restart X when session is close; and (3) typo.
sed -i ...
data/Xsession: Source /etc/profile
, instead of other file,
according to BLFS standard.
sed -i ... data/lxdm.in: Fix greeter's locale for BLFS specification.
--with-pam
: This option enables
use of pam authentication.
--with-systemdsystemunitdir=no
:
BLFS does not support systemd.
Install the /etc/rc.d/init.d/lxdm
init script from
the blfs-bootscripts-20140919 package.
make install-lxdm
The LXDM daemon configuration /etc/lxdm/lxdm.conf
file options includes
numlock on/off, backgraound image (bg), session, etc. You
can set a default session by uncommenting the line:
session=/usr/bin/startlxde and replacing startlxde with your
session of choice. For GNOME session=/usr/bin/gnome-session.
For OPENBOX
session=/usr/bin/openbox-session and for XFCE session=/usr/bin/startxfce4.
It is also possible to set the preferred session on a per-user basis by editing the ~/.dmrc file for each user and adding:
[Desktop]
Session=xfce
You can replace the default dummy face in the greeting
screen by other image representing your user. For that,
copy or symlink the desired image to your home directory,
with the name .face
.
You can manually start lxdm, e.g, if the
bootscript has been installed, by running, as root
user:
/etc/rc.d/init.d/lxdm start
By definition, X should be executed at runlevel 5,
consequently, the same is true for lxdm. However, BLFS default runlevel
is 3. Changing to runlevel 5, from the terminal, as
root
user, makes the
lxdm
bootscript to be executed, obtaining the greeter screen:
init 5
In order to permanently set the default to 5, obtaining the
lxdm greeter
screen automatically, you can modify /etc/inittab
, as root
user (the instructions below also
make a backup, so you can easily revert the modification):
cp -v /etc/inittab{,-orig} && sed -i '/initdefault/ s/3/5/' /etc/inittab
One important script, executed after login, is /etc/lxdm/Xsession
, which we have fixed
to fit BLFS specifications.
is a script to execute lxdm-binary |
|
is the actual Display Manager; needs to be executed
with option |
|
is a graphical customizing program |
|
is the graphical login greeter, where, between other options, user name is chosen and password is typed (if not in auto login mode) |
|
is a program to set the numlock key, if so defined
in |
Last updated on 2014-09-21 15:00:18 -0700
This chapter is a collection of programs that are useful for viewing or editing office documents. Some specialise in doing one thing (such as word processing or manipulating a spreadsheet). Libre Office is a suite of programs that can manipulate many different formats including powerpoint presentations.
AbiWord is a word processor which is useful for writing reports, letters and other formatted documents.
This package is known to build and work properly using an LFS-7.6 platform.
Download (HTTP): http://www.abisource.com/downloads/abiword/3.0.0/source/abiword-3.0.0.tar.gz
Download MD5 sum: 8d9c41cff3a8fbef8d0c835c65600e65
Download size: 11 MB
Estimated disk space required: 648 MB (84 MB installed)
Estimated build time: 7.3 SBU
AbiWord Docs: http://www.abisource.com/downloads/abiword/3.0.0/source/abiword-docs-3.0.0.tar.gz
AbiWord Docs MD5 sum: 1.5 MB
AbiWord Docs size: ed73d0743a19eb85e46b59464e0ef2bb
Required patch: http://www.linuxfromscratch.org/patches/blfs/svn/abiword-3.0.0-libgcrypt_1_6_0-1.patch
Boost-1.56.0, FriBidi-0.19.6, GOffice-0.10.17, and wv-1.2.9
Aiksaurus, dbus-glib-0.102, Evolution Data Server, gobject-introspection-1.40.0, GtkMathView, libchamplain, libgcrypt-1.6.2, libical-1.0, libsoup-2.46.0, libwmf, libwpd, libwpg, libwps, Link Grammar Parser, Loudmouth, Redland-1.0.17, Telepathy GLib, OTS Psiconv, and Valgrind-3.10.0
To enable many of the optional dependencies, review the information from ./configure --help for the necessary switches you must pass to the configure script.
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/abiword
Install AbiWord by running the following commands:
patch -Np1 -i ../abiword-3.0.0-libgcrypt_1_6_0-1.patch && ./configure --prefix=/usr && make
This program does not come with a functional test suite.
Now, as the root
user:
make install
If you wish to install the local help files, untar and build them first
tar -xf ../abiword-docs-3.0.0.tar.gz && cd abiword-docs-3.0.0 && ./configure --prefix=/usr && make
and then, as the root
user:
make install
--without-evolution-data-server
:
This switch disables AbiWord
Evolution Data Server
support which is known to fail when using recent versions of
Evolution Data Server.
--enable-plugins="collab openxml goffice
grammar"
: Build some or all plugins. The openxml
plugin enables Abiword to
open some .docx files. The grammar plugin requires Link
Grammar Parser
Choose the right template for your language and locale from the list produced by the following command:
ls /usr/share/abiword-3.0/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/abiword-3.0/templates/normal.awt-<lang>
\
~/.AbiSuite/templates/normal.awt
Change <lang>
by the above
command to fit the name of the file you want.
If you are using multiple languages, you may need to edit the template to use a font with greater coverage (e.g. one of the DejaVu fonts), because Abiword does not use fontconfig and can only display glyphs that are provided in the chosen font.
If you have desktop-file-utils-0.22 installed, you should run the update-desktop-database command to update the mimeinfo cache and allow the Help system to work.
If you have xdg-utils-1.1.0-rc2 installed, you should run the xdg-icon-resource forceupdate --theme hicolor command, for the installed icon to be displayed in the menu item.
Last updated on 2014-09-21 14:28:22 -0700
The Gnumeric package contains a spreadsheet program which is useful for mathematical analysis.
This package is known to build and work properly using an LFS-7.6 platform.
Download (HTTP): http://ftp.gnome.org/pub/gnome/sources/gnumeric/1.12/gnumeric-1.12.17.tar.xz
Download (FTP): ftp://ftp.gnome.org/pub/gnome/sources/gnumeric/1.12/gnumeric-1.12.17.tar.xz
Download MD5 sum: 7d488148ca5192178f60d2d33c32c9e7
Download size: 18 MB
Estimated disk space required: 251 MB (additional 2 MB for the tests)
Estimated build time: 1.7 SBU (additional 1.3 SBU for the tests)
GOffice-0.10.17 and Rarian-0.8.1
dblatex (for PDF docs), gobject-introspection-1.40.0, libgda, Mono, pxlib, Psiconv, PyGObject-3.12.2, and Valgrind-3.10.0 (for some tests)
Though only a run-time dependency, if you don't install the Yelp-3.12.0 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:
sed -e "s@zz-application/zz-winassoc-xls;@@" -i gnumeric.desktop.in && ./configure --prefix=/usr && make
This package requires that it is installed before the test suite is run.
Now, as the root
user:
make install
If you wish to test the results, issue make -k check. A few tests fail, some for known reasons.
sed -e "s@zz-application/zz-winassoc-xls;@@" ...: This sed removes invalid mime type from the .desktop file.
--enable-pdfdocs
: Use this switch
if you have installed dblatex and wish to create PDF docs.
is a symlink to gnumeric-1.12.17. |
|
is GNOME's spreadsheet application. |
|
is a command line utility to convert spreadsheet files between various spreadsheet file formats. |
|
is a command line utility to compare two spreadsheets. |
|
is a command line utility to search spreadsheets for strings. |
|
is a command line utility to generate index data for spreadsheet files. |
Last updated on 2014-09-21 14:28:22 -0700
LibreOffice is a full-featured office suite. It is largely compatible with Microsoft Office and is descended from OpenOffice.org.
This package is known to build and work properly using an LFS-7.6 platform.
Core Download: http://download.documentfoundation.org/libreoffice/src/4.3.1/libreoffice-4.3.1.2.tar.xz
Core Download MD5 sum: cf750c01b6cd0b5c6fdd1760672e67d4
Core Download size: 146 MB
Estimated disk space required: 8.1 GB (535 MB installed), with translations
Estimated build time: 200 SBU, with translations
Dictionaries: http://download.documentfoundation.org/libreoffice/src/4.3.1/libreoffice-dictionaries-4.3.1.2.tar.xz
Dictionaries MD5 sum: aae27f6c9db741c42acae48a1dfb0f5e
Dictionaries size: 36 MB
Help Files: http://download.documentfoundation.org/libreoffice/src/4.3.1/libreoffice-help-4.3.1.2.tar.xz
Help Files MD5 sum: 24692bf69bbe877ad2524653c991705a
Help Files size: 1.8 MB
Translations: http://download.documentfoundation.org/libreoffice/src/4.3.1/libreoffice-translations-4.3.1.2.tar.xz
Translations MD5 sum: b8d3445100c10bb4f21f6c8f25c5c600
Translations size: 121 MB
Required patch to fix building with system Boost: http://www.linuxfromscratch.org/patches/blfs/7.6/libreoffice-4.3.1.2-boost_1_56_0-1.patch
Required patch for i686 systems, in order to fix a problem inroduced by gcc-4.9.0: http://www.linuxfromscratch.org/patches/blfs/7.6/libreoffice-4.3.1.2-gcc_4_9_0-1.patch
Archive::Zip-1.37, UnZip-6.0, Wget-1.15, Which-2.20, and Zip-3.0
Most of these packages are recommended because if they're not installed, the build process will compile and install its own (often older) version.
Boost-1.56.0, CLucene-2.3.3.4, Cups-1.7.5, cURL-7.37.1, dbus-glib-0.102, libjpeg-turbo-1.3.1, GLU-9.0.0, Graphite2-1.2.4, gst-plugins-base-0.10.36 or gst-plugins-base-1.4.1, GTK+-2.24.24, Harfbuzz-0.9.35, ICU-53.1, Little CMS-2.6, librsvg-2.40.3, libxml2-2.9.1 and libxslt-1.1.28, MesaLib-10.2.7, neon-0.30.0, NPAPI-SDK-0.27.2, NSS-3.17, OpenLDAP-2.4.39 (client only), OpenSSL-1.0.1i, Poppler-0.26.4, Python-3.4.1 (used to build the translations), Redland-1.0.17, and unixODBC-2.3.2
Avahi-0.6.31, BlueZ-5.23, Doxygen-1.8.8 (not relevant if using --disable-odk), GDB-7.8, GTK+-3.12.2, kdelibs-4.14.1, libatomic_ops-7.4.2, MariaDB-10.0.13 or MySQL, MIT Kerberos V5-1.12.2, OpenJDK-1.7.0.65/IcedTea-2.5.2, PostgreSQL-9.3.5, SANE-1.0.24, VLC-2.1.5, Cppunit, firebird, glew (OpenGL Extension Wrangler Library), Hunspell, Hyphen, libabw, libcdr, libcmis, libebook, libexttextcat, libfreehand, liblangtag, libmspub, libmwaw, libodfgen, librevenge (WordPerfect Document importer), libvisio, libwpd, libwpg, libwps, lp_solve, mdds, MyThes, ogl-math - OpenGL Mathematics (GLM), Orcus, VIGRA, and Zenity
There are many optional dependencies not listed here. They can be found in “download.lst” (source directory).
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/libreoffice
It is recommended to build this package in a graphical environment, because there have been reports of build failures, when using chroot or ssh.
Unlike the other packages, we suppose that you have not yet
unpacked the package. This is so because the --no-overwrite-dir
switch is needed in case
you unpack as the root
user.
tar -xf libreoffice-4.3.1.2.tar.xz --no-overwrite-dir && cd libreoffice-4.3.1.2
Unpack the dictionaries file and create symlinks to tarballs from the source directory so they won't get downloaded again (it is not necessary to unpack the help nor the translations tarballs):
install -dm755 external/tarballs && tar -xf ../libreoffice-dictionaries-4.3.1.2.tar.xz \ --no-overwrite-dir --strip-components=1 && ln -sv ../../../libreoffice-dictionaries-4.3.1.2.tar.xz \ external/tarballs/ && ln -sv ../../../libreoffice-help-4.3.1.2.tar.xz \ external/tarballs/
If you have downloaded the translations tarball, create a symlink:
ln -sv ../../../libreoffice-translations-4.3.1.2.tar.xz \ external/tarballs/
During the build process, some packages will be downloaded (including the ones listed as recommended and optional dependencies) if they are not present on the system. Doing so, build time may be different for everyone.
In the rest of the page, locales "en-US" and "pt-BR" are examples; you can change them to suit your needs - you might want to read the "Command Explanations", further below, before proceeding.
Due to the large size of the package, you may prefer to
install it in /opt
, instead of
/usr
. Depending on your choice,
replace <PREFIX>
by
/usr
or by /opt/libreoffice-4.3.1.2
:
export LO_PREFIX=<PREFIX>
For i686 systems, fix a problem inroduced by gcc-4.9.0:
patch -Np1 -i ../libreoffice-4.3.1.2-gcc_4_9_0-1.patch &&
Prepare LibreOffice for compilation by running the following commands:
patch -Np1 -i ../libreoffice-4.3.1.2-boost_1_56_0-1.patch && sed -e "/gzip -f/d" \ -e "s|.1.gz|.1|g" \ -i bin/distro-install-desktop-integration && sed -e "/distro-install-file-lists/d" -i Makefile.in && chmod -v +x bin/unpack-sources && sed -e "s/target\.mk/langlist\.mk/" \ -e "s/tar -xf/tar -x --strip-components=1 -f/" \ -e "/tar -x/s/lo_src_dir/start_dir/" \ -i bin/unpack-sources && ./autogen.sh --prefix=$LO_PREFIX \ --sysconfdir=/etc \ --with-vendor="BLFS" \ --with-lang="en-US pt-BR" \ --with-help \ --with-alloc=system \ --without-java \ --disable-gconf \ --disable-odk \ --disable-postgresql-sdbc \ --enable-release-build=yes \ --enable-python=system \ --with-system-boost \ --with-system-clucene \ --with-system-cairo \ --with-system-curl \ --with-system-expat \ --with-system-graphite \ --with-system-harfbuzz \ --with-system-icu \ --with-system-jpeg \ --with-system-lcms2 \ --with-system-libpng \ --with-system-libxml \ --with-system-mesa-headers \ --with-system-neon \ --with-system-npapi-headers \ --with-system-nss \ --with-system-odbc \ --with-system-openldap \ --with-system-openssl \ --with-system-poppler \ --with-system-redland \ --with-system-zlib \ --with-parallelism=$(getconf _NPROCESSORS_ONLN)
The instructions below will only build the package without running any unit tests. If you prefer to run the unit tests, replace make build with make.
Build the package:
make build
Now, as the root
user:
make distro-pack-install && install -v -m755 -d $LO_PREFIX/share/appdata && install -v -m644 sysui/desktop/appstream-appdata/*.xml \ $LO_PREFIX/share/appdata
If the dictionaries have been built, again as root
user:
chown -cR 0:0 dictionaries/ && mkdir -pv $LO_PREFIX/lib/libreoffice/share/extensions/dict-en && cp -vR dictionaries/en/* $LO_PREFIX/lib/libreoffice/share/extensions/dict-en && mkdir -pv $LO_PREFIX/lib/libreoffice/share/extensions/dict-pt-BR && cp -vR dictionaries/pt_BR/* $LO_PREFIX/lib/libreoffice/share/extensions/dict-pt-BR
If installed in /opt/libreoffice-4.3.1.2
and the icons in
the new items of the desktop menu are not properly displayed,
optionally run the following commands, as root
user (it may be necessary to logout
the session, before the icons appear):
mkdir -pv /usr/share/pixmaps && for i in writer base calc draw impress math startcenter writer do ln -svf /opt/libreoffice-4.3.1.2/share/icons/hicolor/32x32/apps/libreoffice-$i.png \ /usr/share/pixmaps/ done unset i
sed -e ...: First sed prevents compression of the manual pages, the second one prevents a script that causes install to fail from running, the third one fixes the unpack script.
chmod -v +x ...: Fix the unpack script's permissions.
--with-vendor=BLFS
:
This switch sets BLFS as the vendor which is mentioned when
you click "About" on the toolbar.
--with-lang="en-US
pt-BR"
: This switch sets what languages to
support. To list several languages, separate them with a
space. For all languages, use --with-lang=ALL
.
For a list of the available languages, you can uncompress the translations tarball, tar -xf ../libreoffice-translations-4.3.1.2.tar.xz --no-overwrite-dir -C /tmp, and run ls /tmp/libreoffice-4.3.1.2/translations/source.
--with-help
: Without
this switch, the help files are not built.
--with-alloc=system
:
This switch tells LibreOffice to use system allocator
instead of the internal one.
--without-java
: This
switch disables Java support
in LibreOffice.
--disable-gconf
: This
switch disables compiling LibreOffice with the deprecated
GNOME configuration system
support.
--disable-odk
: This
switch disables installing the office development kit. Remove
if you want to develop a LibreOffice based application.
--disable-postgresql-sdbc
: This
switch disables compiling LibreOffice with the ability to connect
to a PostgreSQL database.
Remove it if you would like LibreOffice to be able to connect to a
PostgreSQL database. If you
have installed PostgreSQL on
your system and would like LibreOffice to use that rather than
compile its own copy, use the --with-system-postgresql
switch.
--enable-release-build=yes
:
This switch enables a Release Build. LibreOffice can be built as a Release
Build or as a Developer Build, because their default
installation paths and user profile paths are different.
Developer Build displays the words "Dev" and "Beta" in
several places (e.g, menu and splash screen).
--enable-python=system
: This
switch tells LibreOffice to
use installed Python 3 to
build the translations instead of the bundled one. If you
don't need to build any translations, you can use
--disable-python
instead.
--with-system-*
:
These switches prevent LibreOffice from trying to compile its
own versions of these dependencies. If you've not installed
some of the dependencies, remove the corresponding switches.
--with-parallelism=$(getconf
_NPROCESSORS_ONLN)
: This switch tells
LibreOffice to use all your
CPUs to compile in parallel and speed up the build.
--disable-cups
: Use this switch
if you don't need printing support.
--disable-dbus
: Use this switch
if you've not installed D-Bus-1.8.0. It also disables
Bluetooth support and font install via PackageKit.
--disable-gstreamer-0-10
: Use
this switch if you've not installed gst-plugins-base-0.10.36.
--enable-gstreamer
: Use this
switch if you want to use gst-plugins-base-1.4.1 instead
of gst-plugins-base-0.10.36 for
the avmedia module.
--enable-gtk3
: Use this switch if
you want to build the GTK+ 3
integration module.
--enable-kde4
: Use this switch if
you want to build the KDE
integration module.
Last updated on 2014-09-22 00:10:59 -0700
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 Firefox-32.0.1 and Thunderbird-31.1.1. Both are based on the Mozilla source code.
This package is known to build and work properly using an LFS-7.6 platform.
Download (HTTP): http://ftp.mozilla.org/pub/mozilla.org/seamonkey/releases/2.29/source/seamonkey-2.29.source.tar.bz2
Download (FTP): ftp://ftp.mozilla.org/pub/mozilla.org/seamonkey/releases/2.29/source/seamonkey-2.29.source.tar.bz2
Download MD5 sum: ffd77471765e1a38c2a00ab3453a96a7
Download size: 166 MB
Estimated disk space required: 2.1 GB (79 MB installed)
Estimated build time: 13 SBU
alsa-lib-1.0.28, GTK+-2.24.24, Zip-3.0, and UnZip-6.0.
yasm-1.3.0 or libvpx-1.3.0 (to allow SeaMonkey to play webm videos).
dbus-glib-0.102, startup-notification-0.12, SQLite-3.8.6, Hunspell, libevent-2.0.21, Doxygen-1.8.8, gst-plugins-base-0.10.36 (with gst-plugins-good-0.10.31 and gst-ffmpeg-0.10.13 at runtime), libnotify-0.7.6, NSPR-4.10.7, NSS-3.17, OpenJDK-1.7.0.65/IcedTea-2.5.2, PulseAudio-5.0, Wireless Tools-29, Valgrind-3.10.0 (only for testing the jemalloc code), and Wget-1.15
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. You may
also wish to review the entire file and uncomment any other
desired options. Create the file by issuing the following
command:
cat > mozconfig << EOF # If you have a multicore machine you can speed up the build by running # several jobs at once, but if you have a single core, delete this line: mk_add_options MOZ_MAKE_FLAGS="-j$(getconf _NPROCESSORS_ONLN)" # If you have installed Yasm delete this option: ac_add_options --disable-webm # If you have installed DBus-Glib delete this option: ac_add_options --disable-dbus # If you have installed wireless-tools delete this option: ac_add_options --disable-necko-wifi # If you have installed libnotify delete this option: ac_add_options --disable-libnotify # Comment out following option if you have PulseAudio installed ac_add_options --disable-pulseaudio # GStreamer is necessary for H.264 video playback in HTML5 Video Player; # to be enabled, also remember to set "media.gstreamer.enabled" to "true" # in about:config. If you have GStreamer 0.x.y, uncomment this line: #ac_add_options --enable-gstreamer # Uncomment these if you have installed them: # ac_add_options --enable-startup-notification # ac_add_options --enable-system-hunspell # ac_add_options --enable-system-sqlite # ac_add_options --with-system-libevent # ac_add_options --with-system-libvpx # ac_add_options --with-system-nspr # ac_add_options --with-system-nss mk_add_options MOZ_OBJDIR=@TOPSRCDIR@/moz-build-dir ac_add_options --disable-crashreporter ac_add_options --disable-debug ac_add_options --disable-debug-symbols ac_add_options --disable-installer ac_add_options --disable-static ac_add_options --disable-tests ac_add_options --disable-updater ac_add_options --enable-application=suite ac_add_options --enable-shared ac_add_options --enable-system-cairo ac_add_options --enable-system-ffi ac_add_options --prefix=/usr ac_add_options --with-pthreads ac_add_options --with-system-jpeg ac_add_options --with-system-png ac_add_options --with-system-zlib EOF
The moz-build-dir directory needs to exist and match the value used in mozconfig (above) for the object directory (MOZ_OBJDIR):
mkdir -vp mozilla/moz-build-dir
Compile SeaMonkey by running the following command:
If you did not install Xorg in /usr, be sure to specify the location with:
export CPLUS_INCLUDE_PATH=$XORG_PREFIX/include export C_INCLUDE_PATH=$XORG_PREFIX/include
make -f client.mk
This package does not come with a test suite. However, if
X is running it can be
launched from the build directory before installing with the
command line: moz-build-dir/mozilla/dist/seamonkey/seamonkey
Install SeaMonkey by issuing
the following commands as the root
user:
make -f client.mk install INSTALL_SDK= && cp -v moz-build-dir/mozilla/dist/man/man1/seamonkey.1 /usr/share/man/man1
If you want to install the full SeaMonkey development environment, as
the root
user:
make -C moz-build-dir install
mkdir -vp mozilla/moz-build-dir: fixes a build failure at the beginning of the build.
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.
If you deleted the --disable-webm
option from your mozconfig
,
your SeaMonkey can play most
youtube videos without the need for the flash plugin. To
enable this, go to http://www.youtube.com/html5
and click on 'Join the HTML5 Trial' (needs cookies enabled).
For installing various SeaMonkey plugins, refer to Mozdev's PluginDoc Project.
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 list of these parameters can be found at http://preferential.mozdev.org/preferences.html.
If you use a desktop environment like Gnome or KDE you may wish to create a
seamonkey.desktop
file so that
SeaMonkey appears in the
panel's menus. If you didn't enable Startup-Notification in your mozconfig
change the StartupNotify line to false. As the root
user:
mkdir -pv /usr/share/{applications,pixmaps} && cat > /usr/share/applications/seamonkey.desktop << "EOF" && [Desktop Entry] Encoding=UTF-8 Type=Application Name=SeaMonkey Comment=The Mozilla Suite Icon=seamonkey Exec=seamonkey Categories=Network;GTK;Application;Email;Browser;WebBrowser;News; StartupNotify=true Terminal=false EOF ln -sfv /usr/lib/seamonkey-2.29/chrome/icons/default/seamonkey.png \ /usr/share/pixmaps
/usr/lib/seamonkey-2.29
Last updated on 2014-09-19 20:27:12 -0700
Firefox is a stand-alone browser based on the Mozilla codebase.
This package is known to build and work properly using an LFS-7.6 platform.
Download (HTTP): http://ftp.mozilla.org/pub/mozilla.org/firefox/releases/32.0.1/source/firefox-32.0.1.source.tar.bz2
Download (FTP): ftp://ftp.mozilla.org/pub/mozilla.org/firefox/releases/32.0.1/source/firefox-32.0.1.source.tar.bz2
Download MD5 sum: 9559f6cef55251bab743e510e1f9b478
Download size: 144 MB
Estimated disk space required: 4.7 GB (66 MB installed)
Estimated build time: 60 SBU
alsa-lib-1.0.28, GTK+-2.24.24, Zip-3.0, and UnZip-6.0
ICU-53.1, libevent-2.0.21, libvpx-1.3.0, NSPR-4.10.7, NSS-3.17, SQLite-3.8.6 and yasm-1.3.0
If you don't install recommended dependencies, then internal copies of those packages will be used. They might be tested to work, but they can be out of date or contain security holes.
With Firefox-31.0 and
later versions, you must have installed Openssl before Python 2 or the build system will
quickly fail with output including "ImportError: cannot
import name HTTPSHandler". If you are in any doubt about
this (e.g. upgrading from an older version of Firefox),
check if /usr/lib/python2.7/lib-dynload/_ssl.so
exists. If it does not, reinstall Python-2.7.8 (after
installing OpenSSL-1.0.1i. The latest version of
any currently
maintained version of Openssl should be
satisfactory if already installed.
cURL-7.37.1, dbus-glib-0.102, Doxygen-1.8.8, gst-plugins-base-0.10.36 (with gst-plugins-good-0.10.31 and gst-ffmpeg-0.10.13 at runtime), or gst-plugins-base-1.4.1 (with gst-plugins-good-1.4.1 and gst-libav-1.4.1 at runtime), Hunspell, libnotify-0.7.6, OpenJDK-1.7.0.65/IcedTea-2.5.2, PulseAudio-5.0, startup-notification-0.12, Wget-1.15, and Wireless Tools-29
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. You may
also wish to review the entire file and uncomment any other
desired options. Create the file by issuing the following
command:
cat > mozconfig << "EOF" # If you have a multicore machine, firefox will now use all the cores by # default. Exceptionally, you can reduce the number of cores, e.g. to 1, # by uncommenting the next line and setting a valid number of CPU cores. #mk_add_options MOZ_MAKE_FLAGS="-j1" # If you have installed DBus-Glib comment out this line: ac_add_options --disable-dbus # If you have installed dbus-glib, and you have installed (or will install) # wireless-tools, and you wish to use geolocation web services, comment out # this line ac_add_options --disable-necko-wifi # If you have installed libnotify comment out this line: ac_add_options --disable-libnotify # GStreamer is necessary for H.264 video playback in HTML5 Video Player; # to be enabled, also remember to set "media.gstreamer.enabled" to "true" # in about:config. If you have GStreamer 0.x.y, uncomment this line: #ac_add_options --enable-gstreamer # or uncomment this line, if you have GStreamer 1.x.y #ac_add_options --enable-gstreamer=1.0 # Uncomment these lines if you have installed optional dependencies: #ac_add_options --enable-system-hunspell #ac_add_options --enable-startup-notification # Comment out following option if you have PulseAudio installed ac_add_options --disable-pulseaudio # If you have not installed Yasm then uncomment this line: #ac_add_options --disable-webm # Comment out following options if you have not installed # recommended dependencies: ac_add_options --enable-system-sqlite ac_add_options --with-system-libevent ac_add_options --with-system-libvpx ac_add_options --with-system-nspr ac_add_options --with-system-nss ac_add_options --with-system-icu # The BLFS editors recommend not changing anything below this line: ac_add_options --prefix=/usr ac_add_options --enable-application=browser ac_add_options --disable-crashreporter ac_add_options --disable-updater ac_add_options --disable-tests ac_add_options --enable-optimize ac_add_options --enable-strip ac_add_options --enable-install-strip ac_add_options --enable-gio ac_add_options --enable-official-branding ac_add_options --enable-safe-browsing ac_add_options --enable-url-classifier ac_add_options --enable-system-cairo ac_add_options --enable-system-ffi ac_add_options --enable-system-pixman ac_add_options --with-pthreads ac_add_options --with-system-bz2 ac_add_options --with-system-jpeg ac_add_options --with-system-png ac_add_options --with-system-zlib mk_add_options MOZ_OBJDIR=@TOPSRCDIR@/firefox-build-dir EOF
Compile Firefox by issuing the following commands:
If you are compiling Firefox in chroot, prepend
SHELL=/bin/sh
to the first make
command below.
test $(uname -m) = "i686" && sed -i 's/enable-optimize/disable-optimize/' mozconfig || true && make -f client.mk
This package does not come with a test suite.
Now, as the root
user:
make -f client.mk install INSTALL_SDK= && mkdir -pv /usr/lib/mozilla/plugins && ln -sfv ../mozilla/plugins /usr/lib/firefox-32.0.1
test $(uname -m) = "i686" && sed ...: On this version of firefox, an old bug has reappeared in 32-bit builds. With optimization, the install fails with a Python error. This command will fix i686 builds and preserve the optimization on x86_64.
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.
make -C firefox-build-dir install: This runs make install in firefox-build-dir.
ln -sfv ...
/usr/bin/firefox: This puts a symbolic link
to the firefox
executable in your PATH
variable.
mkdir -p
/usr/lib/mozilla/plugins: This checks that
/usr/lib/mozilla/plugins
exists.
ln -sv ...
/usr/lib/firefox-32.0.1: This command creates
a symbolic link to /usr/lib/mozilla/plugins
. It's not really
needed, as Firefox checks
/usr/lib/mozilla/plugins
by
default, but the symbolic link is made to keep all the
plugins installed in one folder.
If you deleted the --disable-webm
option from your mozconfig
,
your Firefox can play most
YouTube videos without the need for the flash plugin. To
enable this, go to http://www.youtube.com/html5
and click on 'Join the HTML5 Trial' (needs cookies enabled).
If you use a desktop environment like Gnome or KDE you may like to create a
firefox.desktop
file so that
Firefox appears in the
panel's menus. If you didn't enable startup-notification in
your mozconfig change the StartupNotify line to false. As the
root
user:
mkdir -pv /usr/share/applications &&
mkdir -pv /usr/share/pixmaps &&
cat > /usr/share/applications/firefox.desktop << "EOF" &&
[Desktop Entry]
Encoding=UTF-8
Name=Firefox Web Browser
Comment=Browse the World Wide Web
GenericName=Web Browser
Exec=firefox %u
Terminal=false
Type=Application
Icon=firefox
Categories=GNOME;GTK;Network;WebBrowser;
MimeType=application/xhtml+xml;text/xml;application/xhtml+xml;application/vnd.mozilla.xul+xml;text/mml;x-scheme-handler/http;x-scheme-handler/https;
StartupNotify=true
EOF
ln -sfv /usr/lib/firefox-32.0.1/browser/icons/mozicon128.png \
/usr/share/pixmaps/firefox.png
/usr/lib/firefox-32.0.1
Last updated on 2014-09-18 16:04:08 -0700
These programs use the X Window System and don't fit easily into any of the other chapters.
The Balsa package contains a GNOME-2 based mail client.
This package is known to build and work properly using an LFS-7.6 platform.
Download (HTTP): http://pawsa.fedorapeople.org/balsa/balsa-2.5.1.tar.bz2
Download MD5 sum: afd175b4de2c6cc685ace50dc3ad61ff
Download size: 3.7 MB
Estimated disk space required: 72 MB
Estimated build time: 0.5 SBU
enchant-1.6.0, GMime-2.6.20, libESMTP-1.0.6, Rarian-0.8.1, and Aspell-0.60.6.1 or GtkSpell (GtkSpell provides on-the-fly as you type spell checking)
GtkHTML, gtksourceview-3.12.3, OpenSSL-1.0.1i, OpenLDAP-2.4.39, Compface-1.5.2, MIT Kerberos V5-1.12.2, libnotify-0.7.6, SQLite-3.8.6, and MTA (that provides a sendmail command, note that it is only used if you didn't install the recommended libESMTP package)
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/balsa
Install Balsa by running the following commands:
sed -i "/(HAVE_CONFIG_H)/i \ #include <glib-2.0/glib.h>" src/main-window.c && ./configure --prefix=/usr \ --sysconfdir=/etc/gnome \ --localstatedir=/var/lib \ --with-rubrica \ --without-html-widget \ --without-libnotify \ --without-nm \ --without-gtkspell && make
This package does not come with a test suite.
Now, as the root
user:
make install
--with-rubrica
: This
parameter is used to provide Rubrica2 address book support.
--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.
Last updated on 2014-09-21 16:43:46 -0700
Ekiga is a VoIP, IP Telephony, and Video Conferencing application that allows you to make audio and video calls to remote users with SIP or H.323 compatible hardware and software. It supports many audio and video codecs and all modern VoIP features for both SIP and H.323. Ekiga is the first Open Source application to support both H.323 and SIP, as well as audio and video.
This package is known to build and work properly using an LFS-7.6 platform.
Download (HTTP): http://ftp.gnome.org/pub/gnome/sources/ekiga/4.0/ekiga-4.0.1.tar.xz
Download (FTP): ftp://ftp.gnome.org/pub/gnome/sources/ekiga/4.0/ekiga-4.0.1.tar.xz
Download MD5 sum: 704ba532a8e3e0b5e3e2971dd2db39e4
Download size: 8.0 MB
Estimated disk space required: 315 MB
Estimated build time: 3.5 SBU
Boost-1.56.0, gnome-icon-theme-3.12.0, GTK+-2.24.24 and Opal-3.10.10
dbus-glib-0.102, GConf-3.2.6 and libnotify-0.7.6
Avahi-0.6.31, Evolution Data Server, GNOME Doc Utils and OpenLDAP-2.4.39
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/ekiga
Install Ekiga by running the following commands:
./configure --prefix=/usr \ --sysconfdir=/etc \ --disable-eds \ --disable-gdu \ --disable-ldap \ --disable-scrollkeeper && make
This package does not come with a test suite.
Now, as the root
user:
make install
--disable-eds
: This switch
disables support for the Evolution
Data Server. Remove if you have installed Evolution Data Server.
--disable-gdu
: This switch
disables documentation generation using GNOME Doc Utils. Remove if you have
installed GNOME Doc Utils.
--disable-ldap
: This switch
disables LDAP support in Ekiga. Remove if you have installed
OpenLDAP.
--disable-scrollkeeper
: Use this
parameter if you have installed Rarian but wish to disable the updates
to the Scrollkeeper database.
--disable-dbus
: This switch
disables D-Bus support. Use
if you have not installed D-Bus.
--enable-avahi
: This switch
enables use of the Avahi
with Ekiga. Use if you have
installed Avahi.
If you have not installed recommended dependencies you will need additional switches passed to configure. Examine ./configure --help output to see all available switches.
Last updated on 2014-09-21 14:28:22 -0700
The FontForge package contains an outline font editor that lets you create your own postscript, truetype, opentype, cid-keyed, multi-master, cff, svg and bitmap (bdf, FON, NFNT) fonts, or edit existing ones.
This package is known to build and work properly using an LFS-7.6 platform.
Download (HTTP): http://anduin.linuxfromscratch.org/sources/other/fontforge-2.0.20140101.tar.xz
Download MD5 sum: 024ebb9dca824154fc19310b675f9d50
Download size: 14 MB
Estimated disk space required: 235 MB
Estimated build time: 2.2 SBU
The FontForge tarball specified above was not generated by the FontForge maintainers. It was created by the BLFS team by pulling a Git version and then generating the autotools components and documentation. The BLFS team made no changes to the existing source files.
Cairo-1.12.16, FreeType-2.5.3, libxml2-2.9.1 and Xorg Libraries
giflib-5.1.0, libjpeg-turbo-1.3.1, libpng-1.6.13, LibTIFF-4.0.3, Pango-1.36.7, Python-2.7.8, libspiro, libunicodenames, libuninameslist, and libzmq,
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/fontforge
Fix building with Giflib 5.1.0:
sed "/DGifCloseFile/s:gif:&, NULL:g" -i gutils/gimagereadgif.c
Install FontForge by running the following commands:
./configure --prefix=/usr \ --disable-static \ --docdir=/usr/share/doc/fontforge-2.0.20140101 && make
To test the results, issue: make -k check. Test 32 fails for unknown reasons.
Now, as the root
user:
make install
If desired, install desktop support files as the root
user:
rm -rf desktop/icons/src && cp -rf desktop/icons/* /usr/share/icons/hicolor && install -Dm644 desktop/fontforge.desktop /usr/share/applications/fontforge.desktop && install -Dm644 desktop/fontforge.xml /usr/share/mime/packages/fontforge.xml
Last updated on 2014-09-14 13:18:45 -0700
The Gimp package contains the GNU Image Manipulation Program which is useful for photo retouching, image composition and image authoring.
This package is known to build and work properly using an LFS-7.6 platform.
Download (HTTP): http://download.gimp.org/pub/gimp/v2.8/gimp-2.8.14.tar.bz2
Download MD5 sum: 233c948203383fa078434cc3f8f925cb
Download size: 20 MB
Estimated disk space required: 642 MB (additional 553 MB to run the test suite, the help files add from 307 MB (en only) to reputedly 1.3 GB (all 18 languages), typically increasing by 60 MB per translation)
Estimated build time: 4.2 SBU (additional 0.9 SBU to run the test suite, and for the help files, from 0.6 SBU (en only) to reputedly 19 SBU (all) - typically 1.3 SBU per translation)
Optional help files: http://download.gimp.org/pub/gimp/help/gimp-help-2.8.2.tar.bz2
Download MD5 sum: a591c8974b2f4f584d0a769d52ed6c5b
Download size: 152 MB
Optional patch: http://www.linuxfromscratch.org/patches/blfs/7.6/gimp-2.8.14-device_info-1.patch
PyGTK-2.24.0 (including the gtk and pango modules)
AAlib-1.4rc5, alsa-lib-1.0.28, cURL-7.37.1, dbus-glib-0.102, ghostscript-9.14 (with libgs installed), Gvfs-1.20.3, ISO Codes-3.56, JasPer-1.900.1, Little CMS-1.19 or Little CMS-2.6, libexif-0.6.21, libmng-2.0.2, librsvg-2.40.3, libwmf, Poppler-0.26.4, an MTA (that provides a sendmail program), udev-extras (from eudev) (for GUdev), WebKitGTK+-2.4.5 (required for the help-plugin) and GTK-Doc-1.20
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/gimp
In order to get rid of an annoying message when running from a terminal and/or if you wish to run the test suite, optionally use the following patch:
patch -Np1 -i ../gimp-2.8.14-device_info-1.patch
Install Gimp by running the following commands:
./configure --prefix=/usr --sysconfdir=/etc --without-gvfs && make
To test the results (requires an X-Windowed terminal) issue: make check.
Now, as the root
user:
make install
The gimp-help
tarball contains
images and English text help for help files, together with
translations. It is "work in progress".
If you downloaded the gimp-help
tarball, unpack it and change into the root of the newly
created source tree. Prepare for the build with the following
command:
ALL_LINGUAS="ca da de el en en_GB es fr it ja ko nl nn pt_BR ru sl sv zh_CN" \ ./configure --prefix=/usr &&
Remove from ALL_LINGUAS
the codes
for any languages which you do not wish to install.
Alternatively, remove the line starting with ALL_LINGUAS
, if you wish to build all
languages.
Now build the help files:
make
Issue the following commands as the root
user to install the help files:
make install && chown -R root:root /usr/share/gimp/2.0/help
This package installs icon files into the /usr/share/icons/hicolor
hierarchy and
desktop files into the /usr/share/applications
hierarchy. You
can improve system performance and memory usage by updating
/usr/share/icons/hicolor/index.theme
and
/usr/share/applications/mimeinfo.cache
.
To perform the update you must have GTK+-2.24.24 or GTK+-3.12.2
installed (for the icon cache) and desktop-file-utils-0.22 (for
the desktop cache) and issue the following commands as the
root
user:
gtk-update-icon-cache && update-desktop-database
ALL_LINGUAS="ca da de el en en_GB
..."
: by default, the help files will be rendered in
all the available languages. Remove the codes of any
languages you do not wish to build.
--without-gvfs
: the
choice of the backend to handle URI information, e.g., when
dragging images from a browser into the Gimp, is made at compile time. This
parameter will ensure that cURL is used at run-time, instead of
Gvfs. You can omit this if
you are installing Gvfs AND
will be running gvfsd, e.g., in a
GNOME desktop.
--disable-python
: This option is
necessary if you have not installed PyGTK.
--enable-gtk-doc
: Use this
parameter if GTK-Doc is
installed and you wish to rebuild and install the API
documentation.
The Gimp executes a configuration wizard for each user upon their initial use of the program.
The Gimp executes the
firefox web
browser by default to view the help files. If you do not
have Firefox, 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.8. |
|
is the Gnu Image Manipulation Program. It works with a variety of image formats and provides a large selection of tools. |
|
is a symbolic link to gimp-console-2.8. |
|
is a console program that behaves as if The
Gimp was called
with the |
|
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 The Gimp was compiled with. |
|
provides C bindings for The 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 The 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 for reading and writing config information. |
|
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 The Gimp's thumbnail objects. |
|
contains The Gimp's common user interface functions. |
|
contains The Gimp and GTK's widget creation and manipulation functions. |
Last updated on 2014-09-13 17:48:40 -0700
Gnash is the GNU Flash movie player and browser plugin. This is useful for watching YouTube videos or simple flash animations.
This package is known to build and work properly using an LFS-7.6 platform.
Download (HTTP): http://ftp.gnu.org/pub/gnu/gnash/0.8.10/gnash-0.8.10.tar.bz2
Download (FTP): ftp://ftp.gnu.org/pub/gnu/gnash/0.8.10/gnash-0.8.10.tar.bz2
Download MD5 sum: 63e9f79c41d93d48c5a2fa94856548c4
Download size: 4.1 MB
Estimated disk space required: 758 MB
Estimated build time: 11.1 SBU
agg-2.5, Boost-1.56.0, cURL-7.37.1, gst-ffmpeg-0.10.13, NPAPI-SDK-0.27.2, and giflib-5.1.0
DejaGnu-1.5.1, GConf-3.2.6, git-2.1.0, kdelibs-4.14.1, libogg-1.3.2, libvorbis-1.3.4, Qt-4.8.6, Speex-1.2rc1, Wget-1.15, SWFTools, Swfmill , Mtasc, Netcat, Csound, LibGSM and Libdc1394.
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/gnash
Install gnash by running the following commands:
patch -Np1 -i ../gnash-0.8.10-CVE-2012-1175-1.patch && sed -i '/^LIBS/s/\(.*\)/\1 -lboost_system/' \ gui/Makefile.in utilities/Makefile.in && sed -e '/DGifOpen/s:Data:&, NULL:' \ -e '/DGifCloseFile/s:_gif:&, NULL:' \ -i libbase/GnashImageGif.cpp && sed -i '/#include <csignal>/a\#include <unistd.h>' plugin/klash4/klash_part.cpp && ./configure --prefix=/usr --sysconfdir=/etc \ --with-npapi-incl=/usr/include/npapi-sdk --enable-media=gst \ --with-npapi-plugindir=/usr/lib/mozilla/plugins \ --without-gconf && make
To test the results issue make check.
Now, as the root
user:
make install && make install-plugin
sed -i '/^LIBS/s/\(.*\)/\1 -lboost_system/' ...: This fixes linking to the current boost libraries.
sed -e '/DGifOpen/s:Data:&, NULL:' ...: This sed fixes building with recent versions of Giflib.
sed -i '/#include <csignal>/a\#include <unistd.h>' ...: This fixes building when kdelibs has been installed.
--enable-media=gst
: This tells it
to use Gstreamer for to play video and audio
(--enable-media=ffmpeg is broken with FFmpeg-0.11.1).
--with-npapi-incl=/usr/include/npapi-sdk
:
This option tells it where to find some Mozilla headers that
it needs.
--with-npapi-plugindir=/usr/lib/mozilla/plugins
:
This option tells it to install the Mozilla browser plugin
into /usr/lib/mozilla/plugins.
--without-gconf
: Omit this switch
if you have GConf installed and wish gnash to use it.
make install-plugin: This command installs the Mozilla browser plugin.
Last updated on 2014-09-21 14:28:22 -0700
Gparted is the Gnome Partition Editor, a Gtk 2 GUI for other command line tools that can create, reorganise or delete disk partitions.
This package is known to build and work properly using an LFS-7.6 platform.
Download (HTTP): http://downloads.sourceforge.net/gparted/gparted-0.19.1.tar.bz2
Download MD5 sum: 9aff8cef2c46e5ca4adaab43588c9e64
Download size: 2.0 MB
Estimated disk space required: 77 MB (additional 3 MB, building the optional documentation)
Estimated build time: 0.9 SBU (additional 0.1 SBU, building the optional documentation)
GNOME Doc Utils and Rarian-0.8.1
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/gparted
Install Gparted by running the following commands:
./configure --prefix=/usr \ --disable-doc \ --disable-static && make
This package does not come with a testsuite.
Now, as the root
user:
make install
--disable-static
:
This switch prevents installation of static versions of the
libraries.
--disable-doc
: This switch
disables building of the optional documentation. Remove it if
you have installed GNOME Doc
Utils.
To manipulate file systems Gparted has a run time dependency on various file system tools (you only need to install the tools for file systems you actually use): e2fsprogs (installed as part of LFS), jfsutils-1.1.15, ntfs-3g-2014.2.15, reiserfsprogs-3.6.24, xfsprogs-3.2.1, btrfs-progs, dosfstools, mtools (required to read and write FAT16/32 volume labels and UUIDs), hfsutils, hfsprogs, nilfs-utils and reiser4progs.
Root privileges are required to run Gparted. If you wish to run the application from the menu, further applications and configurations are necessary. Examples of applications that may be used: gksu, kdesudo, or xdg-su. Other solution is to use pkexec, from Polkit-0.112, but some configuration is necessary. Another simple solution is ssh-askpass-6.6p1. Below, we describe these two alternatives: "ssh-askpass" and "pkexec".
To optionally use ssh-askpass-6.6p1 if it is
installed in your system, run the following commands as the
root
user:
cp -v /usr/share/applications/gparted.desktop /usr/share/applications/gparted.desktop.back && sed -i 's/Exec=/Exec=sudo -A /' /usr/share/applications/gparted.desktop &&
Now, clicking in the menu item for Gparted, a dialog appears in the screen, asking for the administrator password.
To optionally use pkexec,
you need polkit-gnome-0.105 or LXPolkit-0.1.0, and ConsoleKit-0.4.6 installed with
support to Linux-PAM-1.1.8 and Polkit-0.112. As
the root
user, configure
Gparted-0.19.1 and Polkit-0.112 with
the following commands:
cp -v /usr/share/applications/gparted.desktop \
/usr/share/applications/gparted.desktop.back &&
sed -i 's:/usr/sbin/gparted:/usr/sbin/gparted_polkit:' \
/usr/share/applications/gparted.desktop &&
cat > /usr/sbin/gparted_polkit << "EOF" &&
#!/bin/bash
pkexec /usr/sbin/gparted $@
EOF
chmod -v 0755 /usr/sbin/gparted_polkit
Still as the root
user,
configure Polkit-0.112 and Gparted-0.19.1 to use
pkexec:
cat > /usr/share/polkit-1/actions/org.gnome.gparted.policy << "EOF"
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE policyconfig PUBLIC
"-//freedesktop//DTD PolicyKit Policy Configuration 1.0//EN"
"http://www.freedesktop.org/standards/PolicyKit/1/policyconfig.dtd">
<policyconfig>
<action id="org.freedesktop.policykit.pkexec.run-gparted">
<description>Run GParted</description>
<message>Authentication is required to run GParted</message>
<defaults>
<allow_any>no</allow_any>
<allow_inactive>no</allow_inactive>
<allow_active>auth_admin_keep</allow_active>
</defaults>
<annotate key="org.freedesktop.policykit.exec.path">/usr/sbin/gparted</annotate>
<annotate key="org.freedesktop.policykit.exec.allow_gui">true</annotate>
</action>
</policyconfig>
EOF
chmod -v 0644 /usr/share/polkit-1/actions/org.gnome.gparted.policy
Now, clicking in the menu item for Gparted, a dialog appears in the screen, asking for the administrator password.
Last updated on 2014-09-21 14:28:22 -0700
The IcedTea-Web package contains both a Java browser plugin, and a new webstart implementation, licensed under GPLV3.
This package is known to build and work properly using an LFS-7.6 platform.
Download (HTTP): http://icedtea.classpath.org/download/source/icedtea-web-1.5.1.tar.gz
Download MD5 sum: ee53fdd19456a59aa9d3a407d35a358c
Download size: 1.6 MB
Estimated disk space required: 30 MB
Estimated build time: 0.2 SBU
NPAPI-SDK-0.27.2, and OpenJDK-1.7.0.65/IcedTea-2.5.2 or Java-1.7.0.65 (remember to configure as described in the OpenJDK-1.7.0.65/IcedTea-2.5.2 page),
Epiphany-3.12.1, Firefox-32.0.1, Midori-0.5.8, SeaMonkey-2.29, Chromium, and Opera
libxslt-1.1.28, Mercurial-3.1.1, EMMA, and JACOCO
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/icedtea-web
Install IcedTea-Web by running the following commands:
./configure --prefix=${JAVA_HOME}/jre \ --with-jdk-home=${JAVA_HOME} \ --disable-docs \ --mandir=${JAVA_HOME}/man && make
This package does not come with a test suite.
Now, as the root
user:
make install && mandb -c /opt/jdk/man
To test the man pages are correctly installed, issue man policyeditor to display the respective man page.
If desired, you may install a .desktop file corresponding to
an entry in a desktop menu for policyeditor, as
root
user:
install -v -Dm0644 itweb-settings.desktop /usr/share/applications/itweb-settings.desktop && install -v -Dm0644 javaws.png /usr/share/pixmaps/javaws.png
--with-jdk-home
: This
switch provides the location of the installed JDK.
--disable-docs
: This
switch disables installation of additional developer-related
documentation. Omit this switch if you would like to do
development work on IcedTea-Web.
As the root
user, create a
symbolic link to the plugin from your browser(s) plugins
directory:
ln -s ${JAVA_HOME}/jre/lib/IcedTeaPlugin.so /usr/lib/mozilla/plugins/
The plugin must be a symlink for it to work. If not, the browsers will crash when you attempt to load a Java application.
allows customization of the browser plugin and javaws. |
|
launches Java application/applets hosted on a network. |
|
view and modify security policy settings, including certificates, for javaws and the browser plugin. |
|
is the Java browser plugin. |
|
contains functions for the about dialog boxes. |
|
contains functions for the IcedTea-Web webstart implementation (NetX). |
|
contains functions for the IcedTea-Web Java plugin. |
Last updated on 2014-09-21 01:03:52 -0700
Inkscape is a what you see is what you get Scalable Vector Graphics editor. It is useful for creating, viewing and changing SVG images.
This package is known to build and work properly using an LFS-7.6 platform.
Download (HTTP): http://downloads.sourceforge.net/inkscape/inkscape-0.48.5.tar.bz2
Download MD5 sum: 431cda5cd40cd4fdf2b89db1bdcce61f
Download size: 19 MB
Estimated disk space required: 1.4 GB
Estimated build time: 12 SBU
Boost-1.56.0, GC-7.4.2, Gsl-1.16, Gtkmm-2.24.4 and libxslt-1.1.28
Aspell-0.60.6.1, Doxygen-1.8.8, ImageMagick-6.8.9-7, libwpg, Poppler-0.26.4 and popt-1.16
XML::XQL and python-lxml
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/inkscape
Install Inkscape by running the following commands:
patch -Np1 -i ../inkscape-0.48.5-gc-1.patch && ./configure --prefix=/usr && make
Now, as the root
user:
make install
This package installs icon files into the /usr/share/icons/hicolor
hierarchy and
desktop files into the /usr/share/applications
hierarchy. You
can improve system performance and memory usage by updating
/usr/share/icons/hicolor/index.theme
and
/usr/share/applications/mimeinfo.cache
.
To perform the update you must have GTK+-2.24.24 or GTK+-3.12.2
installed (for the icon cache) and desktop-file-utils-0.22 (for
the desktop cache) and issue the following commands as the
root
user:
gtk-update-icon-cache && update-desktop-database
Last updated on 2014-09-14 13:18:45 -0700
Pidgin is a Gtk+ 2 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!
This package is known to build and work properly using an LFS-7.6 platform.
Download (HTTP): http://downloads.sourceforge.net/pidgin/pidgin-2.10.9.tar.bz2
Download MD5 sum: 10a4a69d077893f6dd3438cd8af94e81
Download size: 9.7 MB
Estimated disk space required: 238 MB (additional 2MB for the tests and 90 MB for API docs)
Estimated build time: 1.7 SBU (additional 0.1 SBU for API docs)
libgcrypt-1.6.2 and GnuTLS-3.3.7 or NSS-3.17
SSL support is required for the MSN Messenger, Yahoo!, Novel Groupwise and Google Talk protocol plugins. GnuTLS is the preferred method (the Mozilla NSS API is more likely to change and this can cause problems).
Avahi-0.6.31 (required for the Bonjour plugin), Check-0.9.14 (only used during the test suite), Cyrus SASL-2.1.26, D-Bus-1.8.8, GConf-3.2.6, libidn-1.29, NetworkManager-0.9.10.0, GStreamer-0.10.36 (required for audio support), SQLite-3.8.6 (required for the Contact Availability Prediction plugin), startup-notification-0.12, Tcl-8.6.2, Tk-8.6.2, Evolution Data Server, Farstream (Version 0.1) (required for video and voice support), Gtkspell, libgadu, Meanwhile (required for Sametime protocol support), SILC Client, SILC Toolkit, Zephyr, and MIT Kerberos V5-1.12.2 (required for Kerberos support in the Zephyr module),
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/pidgin
Compile Pidgin by running the following commands:
./configure --prefix=/usr \ --sysconfdir=/etc \ --disable-avahi \ --disable-gtkspell \ --disable-gstreamer \ --disable-meanwhile \ --disable-idn \ --disable-nm \ --disable-vv \ --disable-tcl && make
If you have Doxygen-1.8.8 installed (Graphviz-2.38.0 can be used also) and you wish to create the API documentation, issue: make docs
To test the results, issue: make check.
Now, as the root
user:
make install && mkdir -pv /usr/share/doc/pidgin-2.10.9 && cp -v README doc/gtkrc-2.0 /usr/share/doc/pidgin-2.10.9
If you created the API documentation, install it using the
following commands as the root
user:
mkdir -pv /usr/share/doc/pidgin-2.10.9/api && cp -v doc/html/* /usr/share/doc/pidgin-2.10.9/api
This package installs icon files into the /usr/share/icons/hicolor
hierarchy and
desktop files into the /usr/share/applications
hierarchy. You
can improve system performance and memory usage by updating
/usr/share/icons/hicolor/index.theme
and
/usr/share/applications/mimeinfo.cache
.
To perform the update you must have GTK+-2.24.24 or GTK+-3.12.2
installed (for the icon cache) and desktop-file-utils-0.22 (for
the desktop cache) and issue the following commands as the
root
user:
gtk-update-icon-cache && update-desktop-database
--disable-avahi
: Remove this
switch if you've installed Avahi-0.6.31.
--disable-gtkspell
:
Spellchecking. Remove this switch if you've installed
Gtkspell.
--disable-gstreamer
: Sounds.
Remove this switch if you've installed GStreamer-0.10.36.
--disable-meanwhile
: Remove this
switch if you've installed Meanwhile.
--disable-idn
: Remove this switch
if you've installed libidn-1.29.
--disable-nm
: Remove this switch
if you've installed NetworkManager-0.9.10.0.
--disable-vv
: Video and voice.
Remove this switch if you've installed Farstream
(Version 0.1).
--disable-tcl
: Remove this switch
if you've installed Tcl-8.6.2.
--enable-cyrus-sasl
: Use this
switch if you've installed Cyrus SASL-2.1.26 and wish to
build Pidgin with SASL
support.
--disable-gnutls
: Use this switch
if you've got both GnuTLS-3.3.7 and NSS-3.17 installed, but want to
use NSS-3.17
for the SSL support.
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 gtk+-2 theme settings that affect
Pidgin and other Gtk+ 2
applications. 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 2014-09-21 15:00:18 -0700
rox-filer is a fast, lightweight, gtk2 file manager.
This package is known to build and work properly using an LFS-7.6 platform.
Download (HTTP): http://downloads.sourceforge.net/rox/rox-filer-2.11.tar.bz2
Download MD5 sum: 0eebf05a67f7932367750ebf9faf215d
Download size: 1.8 MB
Estimated disk space required: 19 MB
Estimated build time: 0.3 SBU
libglade-2.6.4 and shared-mime-info-1.3
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/rox-filer
If you want rox-filer to be able to update the contents of a directory when changes are made to the files by other applications (eg, if a script is running) you will need to enable dnotify support in your kernel. In make menuconfig:
Filesystems --->
[*] Dnotify support
Save the new .config
and then
compile the kernel.
Compile rox-filer with the following commands:
cd ROX-Filer && sed -i 's:g_strdup(getenv("APP_DIR")):"/usr/share/rox":' src/main.c && mkdir build && pushd build && ../src/configure LIBS="-lm -ldl" && make && popd
Now install it as the root
user:
mkdir -p /usr/share/rox && cp -av Help Messages Options.xml ROX images style.css .DirIcon /usr/share/rox && cp -av ../rox.1 /usr/share/man/man1 && cp -v ROX-Filer /usr/bin/rox && chown -Rv root:root /usr/bin/rox /usr/share/rox && cd /usr/share/rox/ROX/MIME && ln -sv text-x-{diff,patch}.png && ln -sv application-x-font-{afm,type1}.png && ln -sv application-xml{,-dtd}.png && ln -sv application-xml{,-external-parsed-entity}.png && ln -sv application-{,rdf+}xml.png && ln -sv application-x{ml,-xbel}.png && ln -sv application-{x-shell,java}script.png && ln -sv application-x-{bzip,xz}-compressed-tar.png && ln -sv application-x-{bzip,lzma}-compressed-tar.png && ln -sv application-x-{bzip-compressed-tar,lzo}.png && ln -sv application-x-{bzip,xz}.png && ln -sv application-x-{gzip,lzma}.png && ln -sv application-{msword,rtf}.png
sed -i 's:g_strdup(getenv("APP_DIR")):"/usr/share/rox":' src/main.c: This command hard codes /usr/share/rox as the directory for rox-filer's private files. Without this sed rox needs the environment variable ${APP_DIR} to be set.
ln -sv application-...: These commands duplicate the icons for some common mime types. Without these links rox-filer would just display the default "unknown binary blob" icon.
Most of the configuration of rox-filer is achieved by right
clicking on a rox-filer
window and choosing "Options" from the menu. It stores its
settings in ~/.config/rox.sourceforge.net
.
A rox-filer feature is
that if there is an executable file called AppRun
in a directory rox-filer will first run AppRun before it opens
the folder.
As an example of how this may be used, if you have ssh access to another computer (perhaps another computer on you local network) with ssh configured for passwordless logins and you have sshfs-fuse-2.5 installed you can use AppRun to mount the remote computer in a local folder using sshfs. For this example AppRun script to work the folder must have the same name as the hostname of the remote computer:
cat > /path/to/hostname/AppRun << "HERE_DOC" #!/bin/bash MOUNT_PATH="${0%/*}" HOST=${MOUNT_PATH##*/} export MOUNT_PATH HOST sshfs -o nonempty ${HOST}:/ ${MOUNT_PATH} rox -x ${MOUNT_PATH} HERE_DOC chmod 755 /path/to/hostname/AppRun
That works fine for mounting, but to unmount it the command
fusermount -u
${MOUNTPOINT} is ran. You could set that as
your default umount command in your rox preferences, but
you would then be unable to unmount any normal mountpoints
(that need umount). A script is needed that will unmount a
Fuse mountpoint with fusermount -u
${MOUNTPOINT} and everything else with
umount. As
the root
user:
cat > /usr/bin/myumount << "HERE_DOC" && #!/bin/bash sync if mount | grep "${@}" | grep -q fuse then fusermount -u "${@}" else umount "${@}" fi HERE_DOC chmod 755 /usr/bin/myumount
Now, to make Rox use this simple script, open a Rox window, right click on it and choose Options from the menu. In the left hand list choose "Action windows" and then on the right hand side, where it says "Unmount command" change umount to myumount.
If you use a desktop environment like Gnome or KDE you may like to create a
rox.desktop
file so that
rox-filer appears in the
panel's menus. As the root
user:
ln -s ../rox/.DirIcon /usr/share/pixmaps/rox.png && mkdir -p /usr/share/applications && cat > /usr/share/applications/rox.desktop << "HERE_DOC" [Desktop Entry] Encoding=UTF-8 Type=Application Name=Rox Comment=The Rox File Manager Icon=rox Exec=rox Categories=GTK;Utility;Application;System;Core; StartupNotify=true Terminal=false HERE_DOC
Last updated on
rxvt-unicode is a clone of the terminal emulator rxvt, an X Window System terminal emulator which includes support for XFT and Unicode.
This package is known to build and work properly using an LFS-7.6 platform.
Download (HTTP): http://dist.schmorp.de/rxvt-unicode/Attic/rxvt-unicode-9.20.tar.bz2
Download MD5 sum: 4a5b823f08d21036f94a6c51e94d025b
Download size: 896 KB
Estimated disk space required: 25 MB
Estimated build time: 0.2 SBU
gdk-pixbuf-2.30.8 (for background images) and startup-notification-0.12
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/rxvt-unicode
Install rxvt-unicode by running the following commands:
./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 2014-09-10 09:45:01 -0700
Thunderbird is a stand-alone mail/news client based on the Mozilla codebase. It uses the Gecko rendering engine to enable it to display and compose HTML emails.
This package is known to build and work properly using an LFS-7.6 platform.
Download (HTTP): http://ftp.mozilla.org/pub/mozilla.org/thunderbird/releases/31.1.1/source/thunderbird-31.1.1.source.tar.bz2
Download (FTP): ftp://ftp.mozilla.org/pub/mozilla.org/thunderbird/releases/31.1.1/source/thunderbird-31.1.1.source.tar.bz2
Download MD5 sum: 92a36f2e4916529c1226aa283dc160a6
Download size: 163 MB
Estimated disk space required: 4.6 GB (62 MB installed)
Estimated build time: 50 SBU
alsa-lib-1.0.28, GTK+-2.24.24, Zip-3.0 and UnZip-6.0
libevent-2.0.21, libvpx-1.3.0, NSPR-4.10.7, NSS-3.17, SQLite-3.8.6 and yasm-1.3.0
If you don't install recommended dependencies, then internal copies of those packages will be used. They might be tested to work, but they can be out of date or contain security holes.
With Thunderbird-31.0 and
later versions, you must have installed Openssl before Python 2, or the build system will
quickly fail with output including "ImportError: cannot
import name HTTPSHandler". If you are in any doubt about
this (e.g. upgrading from an older version of Thunderbird),
check if /usr/lib/python2.7/lib-dynload/_ssl.so
exists. If it does not, reinstall Python-2.7.8 (after
installing OpenSSL-1.0.1i - the latest version of
any currently
maintained version of Openssl should be
satisfactory if already installed - if that package has not
already been installed).
cURL-7.37.1, Cyrus SASL-2.1.26, dbus-glib-0.102, Doxygen-1.8.8, gst-plugins-good-0.10.31 and gst-ffmpeg-0.10.13, libnotify-0.7.6, OpenJDK-1.7.0.65/IcedTea-2.5.2, PulseAudio-5.0, startup-notification-0.12, Wget-1.15, Wireless Tools-29, and Hunspell
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 a brief
description of each), issue mozilla/configure --help.
Create the file with the following command:
cat > mozconfig << "EOF"
# If you have a multicore machine, the build may be faster if using parallel
# jobs. The build system automatically adds -jN to the "make" flags, where N
# is the number of CPU cores. The option below is therefore useless, unless
# you want to use a smaller number of jobs:
#mk_add_options MOZ_MAKE_FLAGS="-j1"
# If you have installed DBus-Glib comment out this line:
ac_add_options --disable-dbus
# If you have installed wireless-tools comment out this line:
ac_add_options --disable-necko-wifi
# If you have installed libnotify comment out this line:
ac_add_options --disable-libnotify
# GStreamer is necessary for H.264 video playback in HTML5 Video Player;
# to be enabled, also remember to set "media.gstreamer.enabled" to "true"
# in about:config. If you have installed GStreamer comment out this line:
ac_add_options --disable-gstreamer
# Uncomment these lines if you have installed optional dependencies:
#ac_add_options --enable-system-hunspell
#ac_add_options --enable-startup-notification
# Comment out following option if you have PulseAudio installed
ac_add_options --disable-pulseaudio
# If you have not installed Yasm then uncomment this line:
#ac_add_options --disable-webm
# If you want to compile the Mozilla Calendar, uncomment this line:
#ac_add_options --enable-calendar
# Comment out following options if you have not installed
# recommended dependencies:
ac_add_options --enable-system-sqlite
ac_add_options --with-system-libevent
ac_add_options --with-system-libvpx
ac_add_options --with-system-nspr
ac_add_options --with-system-nss
ac_add_options --with-system-icu
# The BLFS editors recommend not changing anything below this line:
ac_add_options --prefix=/usr
ac_add_options --disable-crashreporter
ac_add_options --disable-installer
ac_add_options --disable-updater
ac_add_options --disable-debug
ac_add_options --disable-tests
ac_add_options --enable-optimize
ac_add_options --enable-strip
ac_add_options --enable-install-strip
ac_add_options --enable-gio
ac_add_options --enable-official-branding
ac_add_options --enable-safe-browsing
ac_add_options --enable-url-classifier
ac_add_options --enable-system-cairo
ac_add_options --enable-system-ffi
ac_add_options --enable-system-pixman
ac_add_options --with-pthreads
ac_add_options --with-system-bz2
ac_add_options --with-system-jpeg
ac_add_options --with-system-png
ac_add_options --with-system-zlib
mk_add_options MOZ_OBJDIR=@TOPSRCDIR@/thunderbuild
EOF
First, a bug needs to be fixed. Notice that thunderbuild needs to match the value used in mozconfig (above) for the object directory (MOZ_OBJDIR):
mkdir -vp mozilla/thunderbuild
Compile Thunderbird by issuing the following commands:
If you are compiling Thunderbird in chroot, prepend
SHELL=/bin/sh
to the make
command below.
make -f client.mk
This package does not come with a test suite.
Install Thunderbird by
running the following commands as the root
user:
make -f client.mk install INSTALL_SDK=
The above instruction just installs the parts you need to run
Thunderbird. Alternatively,
if you want to install the full Thunderbird development environment, run
the following command as the root
user:
make -C thunderbuild install
mkdir -vp mozilla/thunderbuild: fixes a build failure of Makefile at the beginning of build, where a file cannot be found.
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.
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, but not so up-to-date list of these parameters can be found at http://preferential.mozdev.org/preferences.html.
If you use a desktop environment like GNOME or KDE you may wish to create a
thunderbird.desktop
file so
that Thunderbird appears
in the panel's menus. If you didn't enable startup-notification in your mozconfig
then change the StartupNotify line to false. Run the
following commands as the root
user:
mkdir -pv /usr/share/applications &&
mkdir -pv /usr/share/pixmaps &&
cat > /usr/share/applications/thunderbird.desktop << "EOF" &&
[Desktop Entry]
Encoding=UTF-8
Name=Thunderbird Mail
Comment=Send and receive mail with Thunderbird
GenericName=Mail Client
Exec=thunderbird %u
Terminal=false
Type=Application
Icon=thunderbird
Categories=Application;Network;Email;
MimeType=application/xhtml+xml;text/xml;application/xhtml+xml;application/xml;application/rss+xml;x-scheme-handler/mailto;
StartupNotify=true
EOF
ln -sfv /usr/lib/thunderbird-31.1.1/chrome/icons/default/default256.png \
/usr/share/pixmaps/thunderbird.png
Last updated on 2014-09-22 01:43:56 -0700
Tigervnc is an advanced VNC (Virtual Network Computing) implementation. It allows creation of an Xorg server not tied to a physical console and also provides a client for viewing of the remote graphical desktop.
This package is known to build and work properly using an LFS-7.6 platform.
Download (FTP): http://downloads.sourceforge.net/project/tigervnc/tigervnc/1.3.1/tigervnc-1.3.1.tar.gz
Download MD5 sum: e80b16aa74f1d8e89f284a6aef99955d
Download size: 6.6 MB
Estimated disk space required: 168 MB
Estimated build time: 1.7 SBU
Required file: ftp://ftp.x.org/pub/individual/xserver/xorg-server-1.15.0.tar.bz2
Required patch: http://www.linuxfromscratch.org/patches/blfs/7.6/tigervnc-1.3.1-gethomedir-1.patch
Required patch: http://www.linuxfromscratch.org/patches/blfs/7.6/tigervnc-1.3.1-getmaster-1.patch
Required patch: http://www.linuxfromscratch.org/patches/blfs/7.6/tigervnc-1.3.1-xorg115-1.patch
The version of Xorg is a few versions out of date, but is required for the customizations needed for this package.
CMake-3.0.1, FLTK-1.3.2, GnuTLS-3.3.7, libgcrypt-1.6.2, libjpeg-turbo-1.3.1, NASM-2.11.05, Pixman-0.32.6, and Xorg Applications
ImageMagick-6.8.9-7 and Linux-PAM-1.1.8
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/tigervnc
Install tigervnc by running the following commands:
tar -xf ../xorg-server-1.15.0.tar.bz2 -C unix/xserver --strip-components=1 && patch -Np1 -i ../tigervnc-1.3.1-gethomedir-1.patch && patch -Np1 -i ../tigervnc-1.3.1-getmaster-1.patch && patch -Np1 -i ../tigervnc-1.3.1-xorg115-1.patch && cmake -G "Unix Makefiles" -DCMAKE_INSTALL_PREFIX=/usr && make && pushd unix/xserver && patch -Np1 -i ../xserver114.patch && autoreconf -fiv && ./configure $XORG_CONFIG \ --disable-present --disable-dri3 --disable-dmx \ --disable-static --disable-xinerama --disable-dri \ --disable-xorg --disable-xnest --disable-xvfb \ --disable-xwin --disable-xephyr --disable-kdrive \ --disable-config-dbus --disable-config-hal --disable-config-udev \ --disable-unit-tests --disable-selective-werror \ --without-dtrace --enable-dri2 --enable-glx \ --enable-glx-tls --with-pic && make && popd
This package does not come with a test suite.
Now, as the root
user:
make install && cd unix/xserver/hw/vnc && make install && sed -i 's/iconic/nowin/' /usr/bin/vncserver && [ -e /usr/bin/Xvnc ] || ln -svf $XORG_PREFIX/bin/Xvnc /usr/bin/Xvnc
Finally, create a menu entry. As the root
user:
cat > /usr/share/applications/vncviewer.desktop << "EOF"
[Desktop Entry]
Type=Application
Name=TigerVNC Viewer
Comment=VNC client
Exec=/usr/bin/vncviewer
Icon=tigervnc
Terminal=false
StartupNotify=false
Categories=Network;RemoteAccess;
EOF
tar .. xorg-server...: This command extracts the standard Xorg packages into the tree in a location needed for modification.
patch ...: This set of patches modifies the standard Xorg server so that the Xvnc command can be built.
--disable ...
: Most options that
are usually needed for the standard Xorg server are not
needed fror the Xvnc instance being built.
[ -e /usr/bin/Xvnc ] || ln ...
Xvnc: If the Xvnc server is not installed in
the /usr/bin
directory, then
create a link so the vncserver script can find
it.
The user specific configuration files of vncserver resides in
the .vnc
directory in the
user's home directory. The xstartup
file in that directory is a script
specifying what commands to be run when a VNC desktop is
started. If no xstartup
file
exists, vncserver will try to start
an xterm in a twm session. An example xstartup
would be:
#!/bin/sh [ -x /etc/vnc/xstartup ] && exec /etc/vnc/xstartup [ -r $HOME/.Xresources ] && xrdb $HOME/.Xresources startlxde &
is a X VNC (Virtual Network Computing) server. It is based on a standard X server, but it has a "virtual" screen rather than a physical one. |
|
is a program to configure and control a VNC server. |
|
is a perl script used to start or stop a VNC server. |
|
is a client used to access VNC desktops. |
|
is a program to make an X display onm a physical terminal accessible via TigerVNC or compatible viewers. |
Last updated on 2014-03-01 00:00:12 -0600
Transmission is a cross-platform, open source BitTorrent client. This is useful for downloading large files (such as Linux ISOs) and reduces the need for the distributors to provide server bandwidth.
This package is known to build and work properly using an LFS-7.6 platform.
Download (HTTP): http://download.transmissionbt.com/files/transmission-2.84.tar.xz
Download MD5 sum: 411aec1c418c14f6765710d89743ae42
Download size: 3 MB
Estimated disk space required: 230 MB
Estimated build time: 1.1 SBU
cURL-7.37.1, libevent-2.0.21, and OpenSSL-1.0.1i
GTK+-3.12.2 and either Qt-4.8.6 or Qt-5.3.1
Doxygen-1.8.8 and GDB-7.8
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/transmission
Install Transmission by running the following commands:
./configure --prefix=/usr && make
The following commands are used if you have installed Qt and
would like to compile the Qt GUI. If Qt4 and Qt5 are installed in /opt
, use source setqt4 or
source setqt5
to choose which one will be used to build the Qt GUI. For
Qt4, first fix the code
with:
sed -i '/^CONFIG/aQMAKE_CXXFLAGS += -std=c++11' qt/qtr.pro
Now, compile the Qt GUI, with the following commands:
pushd qt && qmake qtr.pro && make && popd
This package does not come with a test suite.
Now, as the root
user:
make install
If you compiled the Qt GUI, install it by running the
following commands as the root
user:
make INSTALL_ROOT=/usr -C qt install && install -m644 qt/transmission-qt.desktop /usr/share/applications/transmission-qt.desktop && install -m644 qt/icons/transmission.png /usr/share/pixmaps/transmission-qt.png
--without-gtk
: This switch
disables building of the GTK+ interface if GTK+ is present on the system (useful
for Qt5 or cli only builds).
is a lightweight, command-line BitTorrent client with scripting capabilities. |
|
is a command line tool used to create .torrent files. |
|
is a daemon-based Transmission session that can be controlled via RPC commands from transmission's web interface or transmission-remote. |
|
is a command-line utility to modify .torrent files' announce URLs. |
|
is a GTK+ bittorrent client. |
|
is a Qt bittorrent client. |
|
is a remote control utility for transmission-daemon and transmission. |
|
is a command line tool to display bittorrent .torrent file metadata. |
Last updated on 2014-09-21 14:28:22 -0700
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.
This package is known to build and work properly using an LFS-7.6 platform.
Download (HTTP): http://www.xchat.org/files/source/2.8/xchat-2.8.8.tar.bz2
Download (FTP): ftp://mirror.ovh.net/gentoo-distfiles/distfiles/xchat-2.8.8.tar.bz2
Download MD5 sum: 6775c44f38e84d06c06c336b32c4a452
Download size: 1.4 MB
Estimated disk space required: 40 MB
Estimated build time: 0.4 SBU
enchant-1.6.0 (runtime), dbus-glib-0.102, GConf-3.2.6, OpenSSL-1.0.1i, Python-2.7.8, and Tcl-8.6.2
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/xchat
Install XChat by running the following commands:
patch -Np1 -i ../xchat-2.8.8-glib-2.31-1.patch && LIBS+="-lgmodule-2.0" \ ./configure --prefix=/usr \ --sysconfdir=/etc \ --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.8 && install -v -m644 README faq.html \ /usr/share/doc/xchat-2.8.8
--sysconfdir=
: Setting the
sysconfdir using this parameter will ensure that the
sysconfdir is consistent with the installation environment
and the package will be installed in the correct location.
$GNOME_SYSCONFDIR
--enable-shm
: This
parameter is used to enable XShm for fast tinting.
--enable-ipv6
: Enable
IPv6 support in xchat.
Last updated on 2014-09-21 16:43:46 -0700
xdg-utils is a a set of command line tools that assist applications with a variety of desktop integration tasks. It is required for Linux Standards Base (LSB) conformance.
This package is known to build and work properly using an LFS-7.6 platform.
Download (HTTP): http://people.freedesktop.org/~rdieter/xdg-utils/xdg-utils-1.1.0-rc2.tar.gz
Download MD5 sum: 38b6f1d38cb02297ddbf64dba0a907a4
Download size: 340 KB
Estimated disk space required: 2.1 MB
Estimated build time: less than 0.1 SBU
xmlto-0.0.26 with one of Lynx-2.8.8rel.2, w3m-0.5.3, Links-2.8, or fop-1.1
Compile xdg-utils with the following commands:
./configure --prefix=/usr --mandir=/usr/share/man && make
The tests for the scripts must be made from a X-Window
based session. There are several run-time requirements to
run the tests including a broswer and an MTA. Running the
tests as root
usr is not
recommended.
To run the tests, issue: make test.
Now install it as the root
user:
make install
is a command line tool for (un)installing desktop menu items. |
|
is a command line tool for (un)installing icons to the desktop. |
|
is a command line tool for querying information about file type handling and adding descriptions for new file types. |
|
is a command line tool for (un)installing icon resources. |
|
opens a file or URL in the user's preferred application. |
|
opens the user's preferred e-mail composer in order to send a mail message. |
|
is a command line tool for controlling the screensaver. |
|
is a command line tool for managing various settings from the desktop environment. |
Last updated on
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 2012-01-23 19:05:41 -0800
The ALSA Library package contains the ALSA library used by programs (including ALSA Utilities) requiring access to the ALSA sound interface.
This package is known to build and work properly using an LFS-7.6 platform.
Download (HTTP): http://alsa.cybermirror.org/lib/alsa-lib-1.0.28.tar.bz2
Download (FTP): ftp://ftp.alsa-project.org/pub/lib/alsa-lib-1.0.28.tar.bz2
Download MD5 sum: c9e21b88a2b3e6e12ea7ba0f3b271fc3
Download size: 884 KB
Estimated disk space required: 16 MB (additional 1 MB for the tests and 26 MB for the docs)
Estimated build time: 0.2 SBU
Doxygen-1.8.8 and Python-2.7.8
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/alsa-lib
If needed, enable the following options in the kernel configuration and recompile the kernel:
Device Drivers --->
<y/m> Sound card support --->
<y/m> Advanced Linux Sound Architecture --->
Select settings and drivers appropriate for your hardware.
< > Open Sound System (unselected)
In the Device Drivers ⇒ Sound card support ⇒ 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 card support ⇒ Open Sound System is not selected. If necessary, recompile and install your new kernel.
Install ALSA Library by running the following commands:
./configure && make
To test the results, issue: make check.
Now, as the root
user:
make install
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
To install the API documentation, run the following command
as the root
user:
install -v -d -m755 /usr/share/doc/alsa-lib-1.0.28/html/search && install -v -m644 doc/doxygen/html/*.* \ /usr/share/doc/alsa-lib-1.0.28/html && install -v -m644 doc/doxygen/html/search/* \ /usr/share/doc/alsa-lib-1.0.28/html/search
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/main/index.php/Asoundrc.
Last updated on 2014-09-18 05:17:47 -0700
The ALSA Plugins package contains plugins for various audio libraries and sound servers.
This package is known to build and work properly using an LFS-7.6 platform.
Download (HTTP): http://alsa.cybermirror.org/plugins/alsa-plugins-1.0.28.tar.bz2
Download (FTP): ftp://ftp.alsa-project.org/pub/plugins/alsa-plugins-1.0.28.tar.bz2
Download MD5 sum: 6fcbbb31e96f8ebc5fb926184a717aa4
Download size: 360 KB
Estimated disk space required: 4.4 MB
Estimated build time: less than 0.1 SBU
FFmpeg-2.3.3, JACK, libsamplerate-0.1.8, PulseAudio-5.0 and Speex-1.2rc1
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
<module>
.so
modules including ctl_oss, ctl_pulse, pcm_a52, pcm_jack,
pcm_oss, pcm_pulse, pcm_upmix, pcm_usb_stream,
pcm_vdownmix, rate_samplerate* and rate_speexrate*
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 2014-09-22 11:20:08 -0700
The ALSA Utilities package contains various utilities which are useful for controlling your sound card.
This package is known to build and work properly using an LFS-7.6 platform.
Download (HTTP): http://alsa.cybermirror.org/utils/alsa-utils-1.0.28.tar.bz2
Download (FTP): ftp://ftp.alsa-project.org/pub/utils/alsa-utils-1.0.28.tar.bz2
Download MD5 sum: 361552d5b1cacd0a1e7ba09e69990211
Download size: 1.1 MB
Estimated disk space required: 11 MB
Estimated build time: 0.1 SBU
libsamplerate-0.1.8, xmlto-0.0.26 and Dialog
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/alsa-utils
Install ALSA Utilities by running the following commands:
./configure --disable-alsaconf --disable-xmlto && make
This package does not come with a test suite.
Now, as the root
user:
make install
--disable-alsaconf
: This switch
disables building the alsaconf configuration tool
which is incompatible with Udev.
--disable-xmlto
: Omit this switch
if you have installed xmlto-0.0.26 and don't wish to install
pregenerated man pages.
Note that all channels of your sound card are muted by default. You can use the alsamixer program to change this. Use speaker-test to check that your settings have been applied correctly. You should hear “pink noise” on your speakers.
The alsactl
program is
normally run from a standard udev rule. The first time it is run,
it will complain that there is no state in /var/lib/alsa/asound.state
. You can
prevent this by running the following commands as the
root
user:
touch /var/lib/alsa/asound.state && alsactl store
The volume settings should be restored from the saved state by Udev when the device is detected (during boot or when plugged in for USB devices).
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.
To automatically store and restore volume settings (if udev
rule doesn't work for you) when the system is rebooted,
install the /etc/rc.d/init.d/alsa
boot script from
the blfs-bootscripts-20140919 package.
make install-alsa
is a utility for connecting and disconnecting two existing ports in the ALSA sequencer system. |
|
is used to control advanced settings for the ALSA sound card drivers. |
|
allows creation of a PCM loopback between a PCM capture device and a PCM playback device. |
|
is an Ncurses based mixer program for use with the ALSA sound card drivers. |
|
allows applications to access the hardware in an abstracted manner |
|
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 2014-09-09 14:11:38 -0700
The ALSA Tools package contains advanced tools for certain sound cards.
This package is known to build using an LFS 7.6 platform but has not been tested.
Download (HTTP): http://alsa.cybermirror.org/tools/alsa-tools-1.0.28.tar.bz2
Download (FTP): ftp://ftp.alsa-project.org/pub/tools/alsa-tools-1.0.28.tar.bz2
Download MD5 sum: e6c929175d8ee729c06d49b51439bad6
Download size: 1.7 MB
Estimated disk space required: 24 MB
Estimated build time: 0.5 SBU
GTK+-2.24.24 (to build echomixer, envy24control and rmedigicontrol), GTK+-3.12.2 (to build hdajackretask) and FLTK-1.3.2 (to build hdspconf and hdspmixer)
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/alsa-tools
When installing multiple packages in a script, the installation needs to be done as the root user. There are three general options that can be used to do this:
Run the entire script as the root user (not recommended).
Use the sudo command from the Sudo-1.8.10p3 package.
Use su -c "command arguments" (quotes required) which will ask for the root password for every iteration of the loop.
One way to handle this situation is to create a short bash function that automatically selects the appropriate method. Once the command is set in the environment, it does not need to be set again.
as_root() { if [ $EUID = 0 ]; then $* elif [ -x /usr/bin/sudo ]; then sudo $* else su -c \\"$*\\" fi } export -f as_root
First, start a subshell that will exit on error:
bash -e
Now, remove a tool that needs Qt2 or 3 and two unneed files (for the BLFS instructions below):
rm -rf qlo10k1 Makefile gitcompile
The ALSA Tools package is only needed by those with advanced requirements for their sound card. The tools can be built all together at once, but if only a subset is needed, you need to cd into the directory of each tool you wish to compile and run the commands. Here, we present instructions to build all tools.
Install all ALSA Tools by running the following commands:
for tool in * do case $tool in seq ) tool_dir=seq/sbiload ;; * ) tool_dir=$tool ;; esac pushd $tool_dir ./configure --prefix=/usr make as_root make install as_root /sbin/ldconfig popd done unset tool tool_dir
Finally, exit the shell that was started earlier:
exit
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 an SB16/AWE32 Creative Signal Processor (ASP/CSP) control program. |
|
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 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 2014-09-18 14:33:53 -0700
The ALSA Firmware package contains firmware for certain sound cards.
This package is known to build using an LFS 7.6 platform but has not been tested.
Download (HTTP): http://alsa.cybermirror.org/firmware/alsa-firmware-1.0.28.tar.bz2
Download (FTP): ftp://ftp.alsa-project.org/pub/firmware/alsa-firmware-1.0.28.tar.bz2
Download MD5 sum: 0615aedafe8251fdf835b68ea3463559
Download size: 3.8 MB
Estimated disk space required: 34 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 2014-09-18 14:33:53 -0700
The ALSA OSS package contains the ALSA OSS compatibility library. This is used by programs which wish to use the ALSA OSS sound interface.
This package is known to build using an LFS 7.6 platform but has not been tested.
Download (HTTP): http://alsa.cybermirror.org/oss-lib/alsa-oss-1.0.28.tar.bz2
Download (FTP): ftp://ftp.alsa-project.org/pub/oss-lib/alsa-oss-1.0.28.tar.bz2
Download MD5 sum: 91f57e8cee1ad4cc956caa8b62ac5d43
Download size: 288 KB
Estimated disk space required: 2.8 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 --disable-static && make
This package does not come with a test suite.
Now, as the root
user:
make install
--disable-static
:
This switch prevents installation of static versions of the
libraries.
Last updated on 2014-09-18 14:33:53 -0700
The AudioFile package contains the audio file libraries and two sound file support programs useful to support basic sound file formats.
This package is known to build and work properly using an LFS-7.6 platform.
Download (HTTP): http://ftp.gnome.org/pub/gnome/sources/audiofile/0.3/audiofile-0.3.6.tar.xz
Download (FTP): ftp://ftp.gnome.org/pub/gnome/sources/audiofile/0.3/audiofile-0.3.6.tar.xz
Download MD5 sum: 235dde14742317328f0109e9866a8008
Download size: 520 KB
Estimated disk space required: 18 MB
Estimated build time: 0.6 SBU
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/audiofile
Install AudioFile by running the following commands:
./configure --prefix=/usr && make
To test the results, issue: make check. Note that the tests will fail if the --disable-static option is used.
Now, as the root
user:
make install
--disable-static
:
This switch prevents installation of static versions of the
libraries.
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 2014-09-18 14:33:53 -0700
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.
This package is known to build and work properly using an LFS-7.6 platform.
Download (HTTP): http://downloads.sourceforge.net/faac/faac-1.28.tar.bz2
Download MD5 sum: c5dde68840cefe46532089c9392d1df0
Download size: 519 KB
Estimated disk space required: 20 MB
Estimated build time: 0.4 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:
patch -Np1 -i ../faac-1.28-glibc_fixes-1.patch && sed -i -e '/obj-type/d' -e '/Long Term/d' frontend/main.c && ./configure --prefix=/usr --disable-static && 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-utils-1.0.28 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.7 package and play back the decoded file (requires the aplay program from the alsa-utils-1.0.28 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
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.28 due
to sound quality issues with object types other than
“Low Complexity”.
--disable-static
:
This switch prevents installation of static versions of the
libraries.
--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.7, 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 2014-09-11 23:27:59 -0700
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).
This package is known to build and work properly using an LFS-7.6 platform.
Download (HTTP): http://downloads.sourceforge.net/faac/faad2-2.7.tar.bz2
Download MD5 sum: 4c332fa23febc0e4648064685a3d4332
Download size: 880 KB
Estimated disk space required: 12 MB (without media player plugins)
Estimated build time: 0.2 SBU (without media player plugins)
Required patch: http://www.linuxfromscratch.org/patches/blfs/7.6/faad2-2.7-mp4ff-1.patch
Sample AAC file: http://www.nch.com.au/acm/sample.aac (7 KB)
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/faad2
Install FAAD2 by running the following commands:
patch -Np1 -i ../faad2-2.7-mp4ff-1.patch && sed -i "s:AM_CONFIG_HEADER:AC_CONFIG_HEADERS:g" configure.in && sed -i "s:man_MANS:man1_MANS:g" frontend/Makefile.am && autoreconf -fi && ./configure --prefix=/usr --disable-static && 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-utils-1.0.28 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
sed -i ...: First command fixes autotools scripts to be compatible with latest version of Automake and second command fixes manual page install location.
--disable-static
:
This switch prevents installation of static versions of the
libraries.
--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 2014-09-11 23:27:59 -0700
fdk-aac package provides the Fraunhofer FDK AAC library, which is purported to be a high quality Advanced Audio Coding implementation.
This package is known to build and work properly using an LFS-7.6 platform.
Download (HTTP): http://downloads.sourceforge.net/opencore-amr/fdk-aac-0.1.3.tar.gz
Download MD5 sum: 6b3b70faa3108b7a00f7740b3de38b83
Download size: 1.9 MB
Estimated disk space required: 26 MB
Estimated build time: 0.3 SBU
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/fdk-aac
Install fdk-aac by running the following commands:
./configure --prefix=/usr --disable-static && make
This package does not come with a test suite.
Now, as the root
user:
make install
--disable-static
:
This switch prevents installation of static versions of the
libraries.
Last updated on 2014-09-11 23:27:59 -0700
FLAC is an audio CODEC similar to MP3, but lossless, meaning that audio is compressed without losing any information.
This package is known to build and work properly using an LFS-7.6 platform.
Download (HTTP): http://downloads.xiph.org/releases/flac/flac-1.3.0.tar.xz
Download (FTP): ftp://downloads.xiph.org/pub/xiph/releases/flac/flac-1.3.0.tar.xz
Download MD5 sum: 13b5c214cee8373464d3d65dee362cdd
Download size: 1.1 MB
Estimated disk space required: 22 MB (additional 77 MB to run the test suite)
Estimated build time: 0.3 SBU (additional 0.9 SBU to run the test suite)
libogg-1.3.2, NASM-2.11.05, DocBook-utils-0.6.14, Doxygen-1.8.8 and Valgrind-3.10.0
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 2014-09-11 23:27:59 -0700
Grilo is a framework focused on making media discovery and browsing easy for applications and application developers.
This package is known to build and work properly using an LFS-7.6 platform.
Download (HTTP): http://ftp.gnome.org/pub/gnome/sources/grilo/0.2/grilo-0.2.11.tar.xz
Download (FTP): ftp://ftp.gnome.org/pub/gnome/sources/grilo/0.2/grilo-0.2.11.tar.xz
Download MD5 sum: 65ac9100dab7f93c4df41cfad58dccba
Download size: 600 KB
Estimated disk space required: 14 MB
Estimated build time: 0.2 SBU
libsoup-2.46.0, gobject-introspection-1.40.0, Grilo-Plugins-0.2.13 (runtime), and Vala-0.24.0
Avahi-0.6.31 (if installed at build time, make sure avahi-daemon is running as a system daemon, started by bootscript/systemd unit), DocBook-utils-0.6.14, and liboauth (to configure flickr personal accounts)
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/grilo
Install Grilo by running the following commands:
./configure --prefix=/usr \ --disable-static && make
This package does not have a testsuite.
Now, as the root
user:
make install
--disable-static
:
This switch prevents installation of static versions of the
libraries.
--enable-gtk-doc
: Use this
parameter if GTK-Doc is
installed and you wish to rebuild and install the API
documentation.
is a simple playground application that you can use to test the framework and its plugins. |
|
is a tool that prints out information on available Grilo sources. |
|
is a tool to run Grilo operations from command line. |
|
provides the Grilo framework. |
|
provides Grilo networking helpers for plug-ins. |
|
provides playlist handling functions. |
Last updated on 2014-09-18 14:33:53 -0700
Grilo-Plugins is a collection of plugins (Apple Trailers, Blip.tv, Bookmarks, Filesystem, Flickr, Jamendo, Magnatune, Rai.tv, Tracker, Youtube, between others) to make media discovery and browsing easy for applications that support Grilo framework, such as Totem (some plugins are disabled in Totem).
This package is known to build and work properly using an LFS-7.6 platform.
Download (HTTP): http://ftp.gnome.org/pub/gnome/sources/grilo-plugins/0.2/grilo-plugins-0.2.13.tar.xz
Download (FTP): ftp://ftp.gnome.org/pub/gnome/sources/grilo-plugins/0.2/grilo-plugins-0.2.13.tar.xz
Download MD5 sum: 45030aab3f21b561b1c899ebb7dce54d
Download size: 980 KB
Estimated disk space required: 24 MB (all plugins)
Estimated build time: 0.3 SBU
libsoup-2.46.0, gobject-introspection-1.40.0 and totem-pl-parser-3.10.2
Avahi-0.6.31, GMime-2.6.20 (Podcasts), JSON-GLib-1.0.2 (TMDB), Lua-5.2.3 (Lua Factory), gnome-online-accounts (Flickr, Pocket), gom (Bookmarks), libdmapsharing (DMAP), libgdata (YouTube), libquvi (version 0.9) (YouTube), liboauth (to configure Flickr personal accounts), MEDIAART (local-art), python-dbusmock (dLeyna runtime tests), and tracker (Tracker)
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/grilo-plugins
Install Grilo-Plugins by running the following commands:
./configure --prefix=/usr && make
To test the results, issue: make check 2>&1 | tee check.log. A summary can be obtained with grep -E 'PASS|FAIL' check.log.
Now, as the root
user:
make install
To test which plugins are installed and that Grilo-0.2.11 is working, issue grl-inspect-0.2 or grilo-test-ui-0.2 (the latter, from an X terminal).
Last updated on 2013-10-21 18:39:03 -0300
GStreamer is 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 gst-plugins-bad-0.10.23, gst-plugins-good-0.10.31, gst-plugins-ugly-0.10.19 and gst-ffmpeg-0.10.13 packages.
This package is known to build and work properly using an LFS-7.6 platform.
GStreamer 1.0 series is not API or ABI compatible with GStreamer 0.10 series and both can be installed on the same system.
Download (HTTP): http://ftp.gnome.org/pub/gnome/sources/gstreamer/0.10/gstreamer-0.10.36.tar.xz
Download (FTP): ftp://ftp.gnome.org/pub/gnome/sources/gstreamer/0.10/gstreamer-0.10.36.tar.xz
Download MD5 sum: 15389c73e091b1dda915279c388b9cb2
Download size: 2.9 MB
Estimated disk space required: 90 MB
Estimated build time: 1.2 SBU
Gsl-1.16, Valgrind-3.10.0 (optionally used during the unit regression tests)
DocBook-utils-0.6.14, ghostscript-9.14 libxslt-1.1.28 and texlive-20140525
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/gstreamer
Install GStreamer by running the following commands:
sed -i -e '/YYLEX_PARAM/d' \ -e '/parse-param.*scanner/i %lex-param { void *scanner }' \ gst/parse/grammar.y && ./configure --prefix=/usr \ --disable-static && 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.
sed ... gst/parse/grammar.y: This command corrects a problem caused by the most recent version of Bison.
--disable-static
:
This switch prevents installation of static versions of the
libraries.
--enable-gtk-doc
: Use this
parameter if GTK-Doc is
installed and you wish to rebuild and install 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 the ownership of the user who untarred and built the package. This command changes the ownership of the installed documentation files to root:root, and is only executed if the documentation files were built and installed.
--libexecdir=/usr/lib
: This
option puts the internal support programs into /usr/lib/gstreamer-0.10
instead of
/usr/libexec/gstreamer-0.10.
in
accordance with the old version of the FHS used before
LFS-7.5.
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 2014-09-13 17:48:40 -0700
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 gst-plugins-bad-0.10.23, gst-plugins-good-0.10.31, gst-plugins-ugly-0.10.19, and gst-ffmpeg-0.10.13 packages.
This package is known to build and work properly using an LFS-7.6 platform.
GStreamer 1.0 series is not API or ABI compatible with GStreamer 0.10 series and both can be installed on the same system.
Download (HTTP): http://ftp.gnome.org/pub/gnome/sources/gst-plugins-base/0.10/gst-plugins-base-0.10.36.tar.xz
Download (FTP): ftp://ftp.gnome.org/pub/gnome/sources/gst-plugins-base/0.10/gst-plugins-base-0.10.36.tar.xz
Download MD5 sum: 3d2337841b132fe996e5eb2396ac9438
Download size: 2.3 MB
Estimated disk space required: 105 MB
Estimated build time: 1.7 SBU
GStreamer-0.10.36 and Pango-1.36.7
alsa-lib-1.0.28, libogg-1.3.2, libtheora-1.1.1, libvorbis-1.3.4, udev-extras (from eudev) (for gudev), and Xorg Libraries
CDParanoia-III-10.2, GTK+-3.12.2 (required to build the examples), libvisual, ORC, Check-0.9.14 (required to run the unit regression tests), and Valgrind-3.10.0 (optionaly used during the unit regression tests)
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/gst-plugins-base
If you need a plugin for a given dependency, that dependency needs to be installed before this application.
First, if you are using i686, fix a compile problem inroduced by gcc-4.9.0:
patch -Np1 -i ../gst-plugins-base-0.10.36-gcc_4_9_0_i686-1.patch
Install GStreamer Base Plug-ins by running the following commands:
./configure --prefix=/usr --disable-static && make
To run the unit regression tests, 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
--disable-static
:
This switch prevents installation of static versions of the
libraries.
--enable-gtk-doc
: Use this
parameter if GTK-Doc is
installed and you wish to rebuild and install the API
documentation.
Last updated on 2014-09-13 17:48:40 -0700
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 gst-plugins-ugly-0.10.19, gst-plugins-bad-0.10.23 and gst-ffmpeg-0.10.13 packages.
This package is known to build and work properly using an LFS-7.6 platform.
GStreamer 1.0 series is not API or ABI compatible with GStreamer 0.10 series and both can be installed on the same system.
Download (HTTP): http://ftp.gnome.org/pub/gnome/sources/gst-plugins-good/0.10/gst-plugins-good-0.10.31.tar.xz
Download (FTP): ftp://ftp.gnome.org/pub/gnome/sources/gst-plugins-good/0.10/gst-plugins-good-0.10.31.tar.xz
Download MD5 sum: 555845ceab722e517040bab57f9ace95
Download size: 2.6 MB
Estimated disk space required: 110 MB
Estimated build time: 1.2 SBU
Cairo-1.12.16, FLAC-1.3.0, libjpeg-turbo-1.3.1, libpng-1.6.13 and Xorg Libraries
GConf-3.2.6 and libsoup-2.46.0
AAlib-1.4rc5, GTK+-3.12.2 (required to build the examples), libdv-1.0.0, PulseAudio-5.0, Speex-1.2rc1, taglib-1.9.1, JACK, libavc1394 (requires libraw1394), libcaca, libcdio, libiec61883, libshout, ORC, Video4Linux and WavPack
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/gst-plugins-good
If you need a plugin for a given dependency, that dependency needs to be installed before this application.
Install GStreamer Good Plug-ins by running the following commands:
sed -i -e "/input:/d" sys/v4l2/gstv4l2bufferpool.c && sed -i -e "/case V4L2_CID_HCENTER/d" -e "/case V4L2_CID_VCENTER/d" sys/v4l2/v4l2_calls.c && ./configure --prefix=/usr \ --sysconfdir=/etc \ --with-gtk=3.0 && make
To run the unit regression tests, 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
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
sed -i -e "...": These sed commands fix building with recent kernels.
--enable-gtk-doc
: Use this
parameter if GTK-Doc is
installed and you wish to rebuild and install the API
documentation.
Last updated on 2014-09-22 11:20:08 -0700
The GStreamer Bad Plug-ins package contains a set a set of plug-ins that aren't up to par compared to the rest. They might be close to being good quality, but they're missing something - be it a good code review, some documentation, a set of tests, a real live maintainer, or some actual wide use. Also see the gst-plugins-good-0.10.31, gst-plugins-ugly-0.10.19 and gst-ffmpeg-0.10.13 packages.
This package is known to build and work properly using an LFS-7.6 platform.
GStreamer 1.0 series is not API or ABI compatible with GStreamer 0.10 series and both can be installed on the same system.
Download (HTTP): http://gstreamer.freedesktop.org/src/gst-plugins-bad/gst-plugins-bad-0.10.23.tar.xz
Download MD5 sum: e4822fa2cc933768e2998311a1565979
Download size: 3.1 MB
Estimated disk space required: 140 MB (depending on which optional dependencies are fulfilled)
Estimated build time: 2.0 SBU
FAAC-1.28, libpng-1.6.13, libvpx-1.3.0, OpenSSL-1.0.1i and XviD-1.3.3
cURL-7.37.1, FAAD2-2.7, JasPer-1.900.1, libass-0.11.2, libmusicbrainz-2.1.5, librsvg-2.40.3, libsndfile-1.0.25, libvdpau-0.8, neon-0.30.0, SDL-1.2.15, SoundTouch-1.8.0 celt, Dirac, DirectFB, Flite, Game Music Emu, GSM, LADSPA, libcdaudio, libdc1394, libdca, libiptcdata, libkate, libmimic, libmms, libmodplug, libmpcdec, libofa, MJPEG Tools, OpenAL, ORC, rtmpdump, Schroedinger, SpanDSP, VO AACENC, VO AMRWBENC, WildMidi, ZBAR and ZVBI
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/gst-plugins-bad
If you need a plugin for a given dependency, that dependency needs to be installed before this application.
Install Gstreamer Bad Plug-ins by running the following commands:
./configure --prefix=/usr --with-gtk=3.0 --disable-examples && make
To test the results, issue: make check. Note that tests for some of the items may fail.
Now, as the root
user:
make install
--with-gtk=3.0
: Build
against GTK+ 3 instead of
the default GTK+ 2;
recommended for a GNOME
Desktop.
--disable-examples
:
If the dependencies for the camera driver have been
satisfied, the associated example code fails to build.
Last updated on 2014-09-22 11:20:08 -0700
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 gst-plugins-bad-0.10.23, gst-plugins-good-0.10.31 and gst-ffmpeg-0.10.13 packages.
This package is known to build and work properly using an LFS-7.6 platform.
GStreamer 1.0 series is not API or ABI compatible with GStreamer 0.10 series and both can be installed on the same system.
Download (HTTP): http://gstreamer.freedesktop.org/src/gst-plugins-ugly/gst-plugins-ugly-0.10.19.tar.xz
Download MD5 sum: ba26045c8c8c91f0d48d327ccf53ac0c
Download size: 864 KB
Estimated disk space required: 20 MB
Estimated build time: 0.3 SBU
LAME-3.99.5, libdvdnav-5.0.1 and libdvdread-5.0.0
liba52-0.7.4, libcdio, libmad-0.15.1b, libmpeg2-0.5.1, libsidplay, OpenCore AMR, ORC, TwoLAME and x264-20140818-2245
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/gst-plugins-ugly
If you need a plugin for a given dependency, that dependency needs to be installed before this application.
Install GStreamer Ugly Plug-ins by running the following commands:
patch -Np1 -i ../gst-plugins-ugly-0.10.19-libcdio_fixes-1.patch && ./configure --prefix=/usr && make
To run the unit regression tests, 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
--enable-gtk-doc
: Use this
parameter if GTK-Doc is
installed and you wish to rebuild and install the API
documentation.
Last updated on 2014-09-13 17:48:40 -0700
The Gst FFMpeg contains GStreamer plugins for FFMpeg.
This package is known to build and work properly using an LFS-7.6 platform.
GStreamer 1.0 series is not API or ABI compatible with GStreamer 0.10 series and both can be installed on the same system.
Download (HTTP): http://gstreamer.freedesktop.org/src/gst-ffmpeg/gst-ffmpeg-0.10.13.tar.bz2
Download MD5 sum: 7f5beacaf1312db2db30a026b36888c4
Download size: 4.6 MB
Estimated disk space required: 272 MB
Estimated build time: 2.9 SBU
gst-plugins-base-0.10.36 and yasm-1.3.0
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/gst-ffmpeg
Install Gst FFMpeg by running the following commands:
patch -p1 < ../gst-ffmpeg-0.10.13-gcc-4.7-1.patch && ./configure --prefix=/usr && make
To test the results, issue: make check.
Now, as the root
user:
make install
Last updated on 2014-09-13 17:48:40 -0700
GStreamer is a streaming media framework that enables applications to share a common set of plugins for things like video encoding and decoding, audio encoding and decoding, audio and video filters, audio visualisation, web streaming and anything else that streams in real-time or otherwise. This package only provides base functionality and libraries. You may need at least gst-plugins-base-1.4.1 and one of Good, Bad, Ugly or Libav plugins.
This package is known to build and work properly using an LFS-7.6 platform.
GStreamer 1.0 series is not API or ABI compatible with GStreamer 0.10 series and both can be installed on the same system.
Download (HTTP): http://gstreamer.freedesktop.org/src/gstreamer/gstreamer-1.4.1.tar.xz
Download MD5 sum: bd0938d680d657249b885162f310702d
Download size: 3.2 MB
Estimated disk space required: 77 MB (additional 19 MB to run the test suite)
Estimated build time: 0.7 SBU (additional 0.8 SBU to run the test suite)
Gsl-1.16, GTK-Doc-1.20, and Valgrind-3.10.0
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/gstreamer10
Install GStreamer by running the following commands:
./configure --prefix=/usr \ --with-package-name="GStreamer 1.4.1 BLFS" \ --with-package-origin="http://www.linuxfromscratch.org/blfs/view/svn/" && make
To test the results, issue: make check.
Now, as the root
user:
make install
is a tool that prints out information on available GStreamer plugins, information about a particular plugin, or information about a particular 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 file, and the corresponding MIME type. |
|
provides some base classes to be extended by elements and utillity classes that are most useful for plugin developers. |
|
provides functionality for writing unit tests that use the check framework. |
|
provides functionality to animate element properties over time. |
|
provides network elements and objects. |
|
provides all the core GStreamer services, including initialization, plugin management and types, as well as the object hierarchy that defines elements and bins, along with some more specialized elements. |
Last updated on 2014-09-10 09:45:01 -0700
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. You will need at least one of Good, Bad, Ugly or Libav plugins for GStreamer applications to function properly.
This package is known to build and work properly using an LFS-7.6 platform.
GStreamer 1.0 series is not API or ABI compatible with GStreamer 0.10 series and both can be installed on the same system.
Download (HTTP): http://gstreamer.freedesktop.org/src/gst-plugins-base/gst-plugins-base-1.4.1.tar.xz
Download MD5 sum: a825628225bd0a58c0df87cdd2a5db91
Download size: 2.5 MB
Estimated disk space required: 94 MB (additional 13 MB to run the test suite)
Estimated build time: 1.1 SBU (additional 0.7 SBU to run the test suite)
alsa-lib-1.0.28, gobject-introspection-1.40.0, ISO Codes-3.56, libogg-1.3.2, libtheora-1.1.1, libvorbis-1.3.4, and Xorg Libraries
CDParanoia-III-10.2, GTK+-3.12.2, GTK-Doc-1.20, Qt-4.8.6, Valgrind-3.10.0, libvisual, ORC, and Tremor
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/gst10-plugins-base
If you need a plugin for a given dependency, that dependency needs to be installed before this application.
Install GStreamer Base Plug-ins by running the following commands:
./configure --prefix=/usr \ --with-package-name="GStreamer Base Plugins 1.4.1 BLFS" \ --with-package-origin="http://www.linuxfromscratch.org/blfs/view/svn/" && make
To test the results, issue: make check.
When installing, the Makefile does some additional linking. If you do not have Xorg in /usr, the LIBRARY_PATH variable needs to be defined for the root user. If using sudo to assume root, use the -E option to pass your current environment variables for the install process.
Now, as the root
user:
make install
Last updated on 2014-09-10 09:45:01 -0700
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.
This package is known to build and work properly using an LFS-7.6 platform.
GStreamer 1.0 series is not API or ABI compatible with GStreamer 0.10 series and both can be installed on the same system.
Download (HTTP): http://gstreamer.freedesktop.org/src/gst-plugins-good/gst-plugins-good-1.4.1.tar.xz
Download MD5 sum: eb3a3296b2f6009def1f5a09590ce767
Download size: 2.9 MB
Estimated disk space required: 106 MB (additional 11 MB to run the test suite)
Estimated build time: 1.2 SBU (additional 0.9 SBU to run the test suite)
Cairo-1.12.16, FLAC-1.3.0, gdk-pixbuf-2.30.8, libjpeg-turbo-1.3.1, libpng-1.6.13, libsoup-2.46.0, libvpx-1.3.0, and Xorg Libraries
AAlib-1.4rc5, GTK+-3.12.2, GTK-Doc-1.20, libdv-1.0.0, PulseAudio-5.0, Speex-1.2rc1, taglib-1.9.1, udev-extras (from eudev) (for GUdev), Valgrind-3.10.0, JACK, libcaca, libiec61883, libraw1394, libshout, ORC, Video4Linux, and WavPack
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/gst10-plugins-good
If you need a plugin for a given dependency, that dependency needs to be installed before this application.
Install GStreamer Good Plug-ins by running the following commands:
./configure --prefix=/usr \ --with-package-name="GStreamer Good Plugins 1.4.1 BLFS" \ --with-package-origin="http://www.linuxfromscratch.org/blfs/view/svn/" && make
To test the results, issue: make -k check. Some tests are known to fail.
Now, as the root
user:
make install
Last updated on 2014-09-13 17:48:40 -0700
The GStreamer Bad Plug-ins package contains a set a set of plug-ins that aren't up to par compared to the rest. They might be close to being good quality, but they're missing something - be it a good code review, some documentation, a set of tests, a real live maintainer, or some actual wide use.
This package is known to build and work properly using an LFS-7.6 platform.
GStreamer 1.0 series is not API or ABI compatible with GStreamer 0.10 series and both can be installed on the same system.
Download (HTTP): http://gstreamer.freedesktop.org/src/gst-plugins-bad/gst-plugins-bad-1.4.1.tar.xz
Download MD5 sum: 20cb190b18dc63017326321cdb7c91e5
Download size: 3.7 MB
Estimated disk space required: 139 MB (additional 7 MB to run the test suite)
Estimated build time: 1.6 SBU (additional 1.1 SBU to run the test suite)
libdvdread-5.0.0, libdvdnav-5.0.1, and SoundTouch-1.8.0
BlueZ-5.23, cURL-7.37.1, FAAC-1.28, FAAD2-2.7, GnuTLS-3.3.7, GTK-Doc-1.20, GTK+-2.24.24 or GTK+-3.12.2, libass-0.11.2, libexif-0.6.21, libgcrypt-1.6.2, libmpeg2-0.5.1, libvdpau-0.8, MesaLib-10.2.7, mpg123-1.20.1, neon-0.30.0, OpenJPEG-1.5.2, OpenSSL-1.0.1i, SDL-1.2.15, Valgrind-3.10.0, Xorg Libraries, Celt, Flite, Game Music Emu, GSM, libdca, libmimic, libmms, libofa, MJPEG Tools, OpenAL, ORC, RTMPDUMP, Schroedinger, VO AAC, VO AMRWB, Wayland, and ZBAR
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/gst10-plugins-bad
If you need a plugin for a given dependency, that dependency needs to be installed before this application.
Install GStreamer Bad Plug-ins by running the following commands:
./configure --prefix=/usr \ --with-package-name="GStreamer Bad Plugins 1.4.1 BLFS" \ --with-package-origin="http://www.linuxfromscratch.org/blfs/view/svn/" && make
To test the results, issue: make check. One test (camerabin) needs hardware with a camera. A couple of tests need a terminal emulator in a graphical session.
Now, as the root
user:
make install
Last updated on 2014-09-13 17:48:40 -0700
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.
This package is known to build and work properly using an LFS-7.6 platform.
GStreamer 1.0 series is not API or ABI compatible with GStreamer 0.10 series and both can be installed on the same system.
Download (HTTP): http://gstreamer.freedesktop.org/src/gst-plugins-ugly/gst-plugins-ugly-1.4.1.tar.xz
Download MD5 sum: 316974af949ca4654efee704a0164076
Download size: 828 KB
Estimated disk space required: 17 MB
Estimated build time: 0.2 SBU
LAME-3.99.5, libdvdread-5.0.0, and x264-20140818-2245
liba52-0.7.4, libmad-0.15.1b, libmpeg2-0.5.1, libcdio, libsidplay, OpenCore AMR, ORC, and TwoLame
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/gst10-plugins-ugly
If you need a plugin for a given dependency, that dependency needs to be installed before this application.
Install GStreamer Ugly Plug-ins by running the following commands:
./configure --prefix=/usr \ --with-package-name="GStreamer Ugly Plugins 1.4.1 BLFS" \ --with-package-origin="http://www.linuxfromscratch.org/blfs/view/svn/" && make
To test the results, issue: make check.
Now, as the root
user:
make install
Last updated on 2014-09-13 17:48:40 -0700
The GStreamer Libav package contains GStreamer plugins for Libav (a fork of FFmpeg).
This package is known to build and work properly using an LFS-7.6 platform.
GStreamer 1.0 series is not API or ABI compatible with GStreamer 0.10 series and both can be installed on the same system.
Download (HTTP): http://gstreamer.freedesktop.org/src/gst-libav/gst-libav-1.4.1.tar.xz
Download MD5 sum: ea2d636c24d7c5ae123967ef22e37c07
Download size: 5 MB
Estimated disk space required: 249 MB (adittional 1 MB for the tests)
Estimated build time: 2.3 SBU
Valgrind-3.10.0 and ORC
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/gst10-libav
Install GStreamer Libav by running the following commands:
./configure --prefix=/usr \ --with-package-name="GStreamer Libav Plugins 1.4.1 BLFS" \ --with-package-origin="http://www.linuxfromscratch.org/blfs/view/svn/" && make
To test the results, issue: make check.
Now, as the root
user:
make install
--with-libav-extra-configure="--disable-yasm"
:
Use this switch if you don't have yasm installed.
Last updated on 2014-09-13 17:48:40 -0700
The IcedTea-Sound package contains the PulseAudio-5.0 provider which was removed from IcedTea itself from version 2.5.0 onwards. More providers may be included in the future.
Because of pulseaudio real-time capabilities, the pulseaudio provider is said to provide smoother sound than the default alsa provider.
This package is known to build and work properly using an LFS-7.6 platform.
Download (HTTP): http://icedtea.classpath.org/download/source/icedtea-sound-1.0.1.tar.xz
Download MD5 sum: e4d8013735ae517c015327924dabf3ed
Download size: 1.44 MB
Estimated disk space required: 4.4 MB
Estimated build time: 0.1 SBU
OpenJDK-1.7.0.65/IcedTea-2.5.2 or Java-1.7.0.65 (remember to configure as described in the OpenJDK-1.7.0.65/IcedTea-2.5.2 page), and PulseAudio-5.0
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/icedtea-sound
Install IcedTea-Sound by running the following commands:
./configure --with-jdk-home=${JAVA_HOME} --disable-docs && make
This package does not come with a working test suite.
Now, as the root
user:
case $(uname -m) in i?86 ) ARCH=i386 ;; x86_64 ) ARCH=amd64 ;; esac && install icedtea-sound.jar ${JAVA_HOME}/jre/lib/ext && install build/native/libicedtea-sound.so ${JAVA_HOME}/jre/lib/$ARCH && unset ARCH
--with-jdk-home=...
:
This parameter specifies the location of your JDK.
--disable-docs
:
Disable building the documentation.
The default installation of OpenJDK uses the ALSA provider.
You have to specify the PulseAudio provider in the
sound.properties
file, as the
root
user:
cat >> ${JAVA_HOME}/jre/lib/sound.properties << "EOF"
# Begin PulseAudio provider additions:
javax.sound.sampled.Clip=org.classpath.icedtea.pulseaudio.PulseAudioClip
javax.sound.sampled.SourceDataLine=org.classpath.icedtea.pulseaudio.PulseAudioSourceDataLine
javax.sound.sampled.TargetDataLine=org.classpath.icedtea.pulseaudio.PulseAudioTargetDataLine
# End PulseAudio provider additions
EOF
Last updated on 2014-09-18 22:41:15 -0700
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.
This package is known to build and work properly using an LFS-7.6 platform.
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 \ --mandir=/usr/share/man \ --enable-shared \ --disable-static \ CFLAGS="-g -O2 $([ $(uname -m) = x86_64 ] && echo -fPIC)" && make
To test the results, issue: make check.
Now, as the root
user:
make install && cp liba52/a52_internal.h /usr/include/a52dec && install -v -m644 -D doc/liba52.txt \ /usr/share/doc/liba52-0.7.4/liba52.txt
CFLAGS="-g -O2 ...
:
This sets CFLAGS to -g -O2 (which is the default) but then on
x86_64 adds -fPIC. This is needed to compile liba52 on x86_64.
--disable-static
: This option
stops it installing the static version of the library.
cp liba52/a52_internal.h ...: Copying this header file into /usr/include/a52dec allows some other programs (such as xine-lib) to compile and link against a system installed liba52.
Last updated on 2014-09-16 13:49:04 -0700
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).
This package is known to build and work properly using an LFS-7.6 platform.
Download (HTTP): http://downloads.xiph.org/releases/ao/libao-1.2.0.tar.gz
Download MD5 sum: 9f5dd20d7e95fd0dd72df5353829f097
Download size: 456 KB
Estimated disk space required: 3.9 MB
Estimated build time: less than 0.1 SBU
X Window System, ALSA-1.0.28, and PulseAudio-5.0
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-1.2.0
Last updated on 2014-09-18 14:33:53 -0700
libass is a portable subtitle renderer for the ASS/SSA (Advanced Substation Alpha/Substation Alpha) subtitle format that allows for more advanced subtitles than the conventional SRT and similar formats.
This package is known to build and work properly using an LFS-7.6 platform.
Download (HTTP): https://github.com/libass/libass/releases/download/0.11.2/libass-0.11.2.tar.xz
Download MD5 sum: 701b761934de0eff7d45f58d7d13eaf6
Download size: 292 KB
Estimated disk space required: 4.1 MB
Estimated build time: less 0.1 SBU
FreeType-2.5.3 and FriBidi-0.19.6
Harfbuzz-0.9.35 and Enca
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/libass
Install libass by running the following commands:
./configure --prefix=/usr --disable-static && make
This package does not come with a test suite.
Now, as the root
user:
make install
--disable-static
:
This switch prevents installation of static versions of the
libraries.
--disable-fontconfig
: Use this
switch if you didn't install Fontconfig.
Last updated on 2014-09-11 23:27:59 -0700
libcanberra is an implementation of the XDG Sound Theme and Name Specifications, for generating event sounds on free desktops, such as GNOME.
This package is known to build and work properly using an LFS-7.6 platform.
Download (HTTP): http://pkgs.fedoraproject.org/repo/pkgs/libcanberra/libcanberra-0.30.tar.xz/34cb7e4430afaf6f447c4ebdb9b42072/libcanberra-0.30.tar.xz
Download MD5 sum: 34cb7e4430afaf6f447c4ebdb9b42072
Download size: 312 KB
Estimated disk space required: 7.5 MB
Estimated build time: 0.1 SBU
alsa-lib-1.0.28, GStreamer-1.4.1 and GTK+-3.12.2
GTK+-2.24.24, GTK-Doc-1.20, PulseAudio-5.0 and tdb
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/libcanberra
Install libcanberra by running the following commands:
./configure --prefix=/usr --disable-oss && make
This package does not come with a test suite.
Now, as the root
user:
make docdir=/usr/share/doc/libcanberra-0.30 install
--enable-gtk-doc
: Use this
parameter if GTK-Doc is
installed and you wish to rebuild and install the API
documentation.
Last updated on 2014-09-14 14:01:57 -0700
The libdiscid package contains a library for creating MusicBrainz DiscIDs from audio CDs. It reads a CD's table of contents (TOC) and generates an identifier which can be used to lookup the CD at MusicBrainz (http://musicbrainz.org). Additionally, it provides a submission URL for adding the DiscID to the database.
This package is known to build and work properly using an LFS-7.6 platform.
Download (HTTP): http://ftp.musicbrainz.org/pub/musicbrainz/libdiscid/libdiscid-0.6.1.tar.gz
Download (FTP): ftp://ftp.musicbrainz.org/pub/musicbrainz/libdiscid/libdiscid-0.6.1.tar.gz
Download MD5 sum: 98c4b281780707e6b446cc526a825e7a
Download size: 358 KB
Estimated disk space required: 2.7 MB
Estimated build time: 0.1 SBU
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/libdiscid
Install libdiscid by running the following commands:
./configure --prefix=/usr --disable-static && make
To test the results, issue: make check.
Now, as the root
user:
make install
--disable-static
:
This switch prevents installation of static versions of the
libraries.
Last updated on 2014-09-18 14:33:53 -0700
libdvdcss is a simple library designed for accessing DVDs as a block device without having to bother about the decryption.
This package is known to build and work properly using an LFS-7.6 platform.
Download (HTTP): http://www.videolan.org/pub/libdvdcss/1.3.0/libdvdcss-1.3.0.tar.bz2
Download MD5 sum: 7f0fdb3ff91d638f5e45ed7536f7eb67
Download size: 348 KB
Estimated disk space required: 3.6 MB
Estimated build time: less than 0.1 SBU
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/libdvdcss
Install libdvdcss by running the following commands:
./configure --prefix=/usr \ --disable-static \ --docdir=/usr/share/doc/libdvdcss-1.3.0 && make
This package does not come with a test suite.
Now, as the root
user:
make install
--disable-static
:
This switch prevents installation of static versions of the
libraries.
Last updated on 2014-09-17 11:48:47 -0700
libdvdread is a library which provides a simple foundation for reading DVDs.
This package is known to build and work properly using an LFS-7.6 platform.
Download (HTTP): http://download.videolan.org/pub/videolan/libdvdread/5.0.0/libdvdread-5.0.0.tar.bz2
Download MD5 sum: 20b964a3fb290b8df45c6b25d37411de
Download size: 372 KB
Estimated disk space required: 4.9 MB
Estimated build time: less than 0.1 SBU
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/libdvdread
Install libdvdread by running the following commands:
./configure --prefix=/usr \ --disable-static \ --docdir=/usr/share/doc/libdvdread-5.0.0 && make
This package does not come with a test suite.
Now, as the root
user:
make install
Last updated on 2014-09-15 22:13:43 -0700
libdvdnav is a library that allows easy use of sophisticated DVD navigation features such as DVD menus, multiangle playback and even interactive DVD games.
This package is known to build and work properly using an LFS-7.6 platform.
Download (HTTP): http://download.videolan.org/pub/videolan/libdvdnav/5.0.1/libdvdnav-5.0.1.tar.bz2
Download MD5 sum: 81e30fb57eaf9f61aa6513a7bd85bd74
Download size: 348 KB
Estimated disk space required: 7.2 MB
Estimated build time: less than 0.1 SBU
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/libdvdnav
Install libdvdnav by running the following commands:
./configure --prefix=/usr --docdir=/usr/share/doc/libdvdnav-5.0.1 && make
This package does not come with a test suite.
Now, as the root
user:
make install
Last updated on 2014-09-16 10:29:57 -0700
The Quasar DV Codec (libdv) is a software CODEC for DV video, the encoding format used by most digital camcorders. It can be used to copy videos from camcorders using a firewire (IEEE 1394) connection.
This package is known to build and work properly using an LFS-7.6 platform.
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: 6.0 MB
Estimated build time: 0.2 SBU
popt-1.16, SDL-1.2.15, and X Window System
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/libdv
Install libdv by running the following commands:
./configure --prefix=/usr \ --disable-xv \ --disable-static && 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
--disable-xv
: This
parameter is required if an X
Window System is not installed. It also prevents
configure
testing for libXv
which is only
used for an obsolete program playdv that will not be
built with current linux
headers and would also need other obsolete dependencies.
--disable-static
: This switch
prevents the static libraries being installed.
Last updated on 2014-09-16 13:49:04 -0700
libmad is a high-quality MPEG audio decoder capable of 24-bit output.
This package is known to build and work properly using an LFS-7.6 platform.
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: 491 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:
patch -Np1 -i ../libmad-0.15.1b-fixes-1.patch && sed "s@AM_CONFIG_HEADER@AC_CONFIG_HEADERS@g" -i configure.ac && touch NEWS AUTHORS ChangeLog && autoreconf -fi && ./configure --prefix=/usr --disable-static && 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
touch NEWS AUTHORS ChangeLog: Prevent autoreconf from returning an error.
--disable-static
:
This switch prevents installation of static versions of the
libraries.
Last updated on 2014-09-16 13:49:04 -0700
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.
This package is known to build and work properly using an LFS-7.6 platform.
Download (HTTP): http://libmpeg2.sourceforge.net/files/libmpeg2-0.5.1.tar.gz
Download (FTP): ftp://mirror.ovh.net/gentoo-distfiles/distfiles/libmpeg2-0.5.1.tar.gz
Download MD5 sum: 0f92c7454e58379b4a5a378485bbd8ef
Download size: 513 KB
Estimated disk space required: 6 MB
Estimated build time: 0.1 SBU
X Window System and SDL-1.2.15
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/libmpeg2
Install libmpeg2 by running the following commands:
sed -i 's/static const/static/' libmpeg2/idct_mmx.c && ./configure --prefix=/usr && 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.5.1 && install -v -m644 README doc/libmpeg2.txt \ /usr/share/doc/mpeg2dec-0.5.1
sed -i ...: This sed fixes problems with recent GCC compilers.
Last updated on 2014-09-16 13:49:04 -0700
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.
This package is known to build and work properly using an LFS-7.6 platform.
Download (HTTP): http://ftp.musicbrainz.org/pub/musicbrainz/historical/libmusicbrainz-2.1.5.tar.gz
Download (FTP): ftp://ftp.musicbrainz.org/pub/musicbrainz/historical/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:
patch -Np1 -i ../libmusicbrainz-2.1.5-missing-includes-1.patch && ./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 2014-09-16 13:49:04 -0700
The libmusicbrainz package contains a library which allows you to access the data held on the MusicBrainz server.
This package is known to build and work properly using an LFS-7.6 platform.
Download (HTTP): https://github.com/downloads/metabrainz/libmusicbrainz/libmusicbrainz-5.0.1.tar.gz
Download MD5 sum: a0406b94c341c2b52ec0fe98f57cadf3
Download size: 108 KB
Estimated disk space required: 7.0 MB
Estimated build time: 0.2 SBU
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/libmusicbrainz5
Install libmusicbrainz by running the following commands:
patch -Np1 -i ../libmusicbrainz-5.0.1-build_system-1.patch && mkdir build && cd build && cmake -DCMAKE_INSTALL_PREFIX=/usr .. && make
This package does not come with a test suite.
Now, as the root
user:
make install
Last updated on 2014-09-17 21:56:07 -0700
The libogg package contains the Ogg file structure. This is useful for creating (encoding) or playing (decoding) a single physical bit stream.
This package is known to build and work properly using an LFS-7.6 platform.
Download (HTTP): http://downloads.xiph.org/releases/ogg/libogg-1.3.2.tar.xz
Download (FTP): ftp://downloads.xiph.org/pub/xiph/releases/ogg/libogg-1.3.2.tar.xz
Download MD5 sum: 5c3a34309d8b98640827e5d0991a4015
Download size: 400 KB
Estimated disk space required: 4 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 --docdir=/usr/share/doc/libogg-1.3.2 --disable-static && make
To test the results, issue: make check.
Now, as the root
user:
make install
--disable-static
:
This switch prevents installation of static versions of the
libraries.
Last updated on 2014-09-10 09:45:01 -0700
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.
This package is known to build and work properly using an LFS-7.6 platform.
Download (HTTP): http://downloads.sourceforge.net/libquicktime/libquicktime-1.2.4.tar.gz
Download MD5 sum: 81cfcebad9b7ee7e7cfbefc861d6d61b
Download size: 1.0 MB
Estimated disk space required: 20 MB
Estimated build time: 0.7 SBU (includes building all codec modules)
alsa-lib-1.0.28, Doxygen-1.8.8, FAAC-1.28, FAAD2-2.7, FFmpeg-2.3.3, GTK+-2.24.24, LAME-3.99.5, libdv-1.0.0, libjpeg-turbo-1.3.1, libpng-1.6.13, libvorbis-1.3.4, Schroedinger, x264-20140818-2245, and Xorg Libraries
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/libquicktime
Install libquicktime by running the following commands:
patch -Np1 -i ../libquicktime-1.2.4-ffmpeg2-1.patch && ./configure --prefix=/usr \ --enable-gpl \ --without-doxygen \ --docdir=/usr/share/doc/libquicktime-1.2.4 make
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.2.4 && install -v -m644 README doc/{*.txt,*.html,mainpage.incl} \ /usr/share/doc/libquicktime-1.2.4
--enable-gpl
: Changes
the licence to GPL. This enables some extra plugins, such as
FAAC, FAAD2, and x264.
--without-doxygen
:
This is necessary if you do not have Doxygen, omit this if installed.
--with-libdv
: Build with libdv
support. Not enabled by default.
is a graphical front end to examine and configure the available libquicktime audio and video codecs. |
|
is a simple QuickTime movie player for X Window System. |
|
is a command-line program used to encode video and/or audio files from one format to another. |
|
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 2014-09-18 14:33:53 -0700
libsamplerate is a sample rate converter for audio.
This package is known to build and work properly using an LFS-7.6 platform.
Download (HTTP): http://www.mega-nerd.com/SRC/libsamplerate-0.1.8.tar.gz
Download MD5 sum: 1c7fb25191b4e6e3628d198a66a84f47
Download size: 4.1 MB
Estimated disk space required: 23 MB
Estimated build time: 0.2 SBU
libsndfile-1.0.25, and libfftw3 (for tests)
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/libsamplerate
Install libsamplerate by running the following commands:
./configure --prefix=/usr --disable-static && make
To test the results, issue: make check.
Now, as the root
user:
make htmldocdir=/usr/share/doc/libsamplerate-0.1.8 install
--disable-static
:
This switch prevents installation of static versions of the
libraries.
Last updated on 2014-09-16 13:49:04 -0700
Libsndfile is a library of C routines for reading and writing files containing sampled audio data.
This package is known to build and work properly using an LFS-7.6 platform.
Download (HTTP): http://www.mega-nerd.com/libsndfile/files/libsndfile-1.0.25.tar.gz
Download MD5 sum: e2b7bb637e01022c7d20f95f9c3990a2
Download size: 1.1 MB
Estimated disk space required: 19 MB
Estimated build time: 0.3 SBU
alsa-lib-1.0.28, FLAC-1.3.0, libogg-1.3.2, libvorbis-1.3.4 and SQLite-3.8.6
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/libsndfile
Install libsndfile by running the following commands:
./configure --prefix=/usr --disable-static && make
To test the results, issue: make check.
Now, as the root
user:
make htmldocdir=/usr/share/doc/libsndfile-1.0.25 install
--disable-static
:
This switch prevents installation of static versions of the
libraries.
compares two audio files. |
|
concatenates two or more audio files. |
|
converts a sound files from one format to another. |
|
splits a multi-channel into multiple single channel files. |
|
displays information about a sound file. |
|
converts multiple single channel files into a multi-channel file. |
|
retrieves metadata from a sound file. |
|
sets metadata in a sound file. |
|
plays a sound file. |
|
contains the libsndfile API functions. |
Last updated on 2014-09-11 23:27:59 -0700
libtheora is a reference implementation of the Theora video compression format being developed by the Xiph.Org Foundation.
This package is known to build and work properly using an LFS-7.6 platform.
Download (HTTP): http://downloads.xiph.org/releases/theora/libtheora-1.1.1.tar.xz
Download MD5 sum: 9eeabf1ad65b7f41533854a59f7a716d
Download size: 1.4 MB
Estimated disk space required: 13.4 MB (without static libs or API docs and without installing the examples)
Estimated build time: 0.2 SBU
SDL-1.2.15 and libpng-1.6.13 (both to build the example players), Doxygen-1.8.8, texlive-20140525, BibTex, and Transfig (all four to build the API documentation), and Valgrind-3.10.0
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/Libtheora
Install libtheora by running the following commands:
sed -i 's/png_\(sizeof\)/\1/g' examples/png2theora.c && ./configure --prefix=/usr --disable-static && make
If you wish to run the tests, issue: make check.
Now, as the root
user:
make install
If you wish to install the examples (so that you can hack on
theora
), install them as the
root
user:
cd examples/.libs && for E in *; do install -v -m755 $E /usr/bin/theora_${E} done
sed -i 's/png_\(sizeof\)/\1/g' examples/png2theora.c: This sed fixes build with libpng 1.6.
--disable-static
:
This switch prevents installation of static versions of the
libraries.
Last updated on 2014-09-10 09:45:01 -0700
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.
This package is known to build and work properly using an LFS-7.6 platform.
Download (HTTP): http://downloads.xiph.org/releases/vorbis/libvorbis-1.3.4.tar.xz
Download MD5 sum: 55f2288055e44754275a17c9a2497391
Download size: 1.1 MB
Estimated disk space required: 15 MB
Estimated build time: 0.1 SBU
Doxygen-1.8.8 and texlive-20140525 (specifically, pdflatex and htlatex) to build the PDF documentation
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/Libvorbis
Install libvorbis by running the following commands:
./configure --prefix=/usr --disable-static && make
To test the results, issue: make LIBS=-lm check.
Now, as the root
user:
make install && install -v -m644 doc/Vorbis* /usr/share/doc/libvorbis-1.3.4
--disable-static
:
This switch prevents installation of static versions of the
libraries.
--enable-docs
: This switch
enables building the documentation in formats other than the
supplied html.
Last updated on 2014-09-10 09:45:01 -0700
This package, from the WebM project, provides the reference implementations of the VP8 Codec, used in most current html5 video, and of the next-generation VP9 Codec.
This package is known to build and work properly using an LFS-7.6 platform.
Download (HTTP): http://anduin.linuxfromscratch.org/sources/other/libvpx-v1.3.0.tar.xz
Download MD5 sum: 528cb52934d9a731dfc0a2853b1e260d
Download size: 1.8 MB
Estimated disk space required: 32 MB (without the documentation)
Estimated build time: 0.8 SBU
The libvpx tarballs are no longer generated by the maintainers. To build from source, the libvpx developers recommend using current git. The source tarball shown above was created by the BLFS team by pulling a git version, and removing .git, .gitattributes and .gitignore. BLFS made no changes to the existing source files.
yasm-1.3.0 (compiling with NASM-2.11.05 is currently broken) and Which-2.20 (so configure can find yasm)
Doxygen-1.8.8 and PHP-5.6.0 (to build the documentation).
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/libvpx
Install libvpx by running the following commands:
sed -i 's/cp -p/cp/' build/make/Makefile && chmod -v 644 vpx/*.h && mkdir ../libvpx-build && cd ../libvpx-build && ../libvpx-v1.3.0/configure --prefix=/usr \ --enable-shared \ --disable-static && make
This package does not come with a test suite.
Now, as the root
user:
make install
sed ... && chmod ...: These commands correct ownership and permissions of installed files.
mkdir ../libvpx-build && cd ../libvpx-build: The libvpx developers recommend building in a dedicated build directory.
--disable-vp8
: This switch
prevents building of VP8 codec support.
--disable-vp9
: This switch
prevents building of VP9 codec support.
--disable-static
: This switch
prevents building of static versions of libraries.
Last updated on 2014-09-11 23:27:59 -0700
The Opal package contains a C++ class library for normalising the numerous telephony protocols into a single integrated call model.
This package is known to build and work properly using an LFS-7.6 platform.
Download (HTTP): http://ftp.gnome.org/pub/gnome/sources/opal/3.10/opal-3.10.10.tar.xz
Download (FTP): ftp://ftp.gnome.org/pub/gnome/sources/opal/3.10/opal-3.10.10.tar.xz
Download MD5 sum: 6efa1b4c5e0ad6460019b4c6df0898d7
Download size: 5.7 MB
Estimated disk space required: 305 MB
Estimated build time: 2.0 SBU
Celt, FFmpeg-2.3.3, GSM, ISDN4Linux, libtheora-1.1.1, OpenJDK-1.7.0.65/IcedTea-2.5.2, Ruby-2.1.2, Spandsp, Speex-1.2rc1, and x264-20140818-2245
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/opal
Install Opal by running the following commands:
patch -Np1 -i ../opal-3.10.10-ffmpeg2-1.patch && ./configure --prefix=/usr && make
This package does not come with a test suite.
Now, as the root
user:
make install && chmod -v 644 /usr/lib/libopal_s.a
Last updated on 2014-09-18 22:41:15 -0700
Opus is a lossy audio compression format developed by the Internet Engineering Task Force (IETF) that is particularly suitable for interactive speech and audio transmission over the Internet. This package provides the Opus development library and headers.
This package is known to build and work properly using an LFS-7.6 platform.
Download (HTTP): http://downloads.xiph.org/releases/opus/opus-1.1.tar.gz
Download MD5 sum: c5a8cf7c0b066759542bc4ca46817ac6
Download size: 831 KB
Estimated disk space required: 16 MB
Estimated build time: 0.2 SBU (additional 0.5 SBU for tests)
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/Opus
Install Opus by running the following commands:
./configure --prefix=/usr --disable-static && make
To test the results, issue: make check.
Now, as the root
user:
make install
--disable-static
:
This switch prevents installation of static versions of the
libraries.
Last updated on 2014-09-11 23:27:59 -0700
PulseAudio is a sound system for POSIX OSes, meaning that it is a proxy for sound applications. It allows you to do advanced operations on your sound data as it passes between your application and your hardware. Things like transferring the audio to a different machine, changing the sample format or channel count and mixing several sounds into one are easily achieved using a sound server.
This package is known to build and work properly using an LFS-7.6 platform.
Download (HTTP): http://freedesktop.org/software/pulseaudio/releases/pulseaudio-5.0.tar.xz
Download MD5 sum: c43749838612f4860465e83ed62ca38e
Download size: 1.4 MB
Estimated disk space required: 82 MB
Estimated build time: 1.0 SBU
JSON-C-0.12 and libsndfile-1.0.25
alsa-lib-1.0.28, D-Bus-1.8.8, GLib-2.40.0, libcap-2.24 with PAM, OpenSSL-1.0.1i, Speex-1.2rc1 and Xorg Libraries
Avahi-0.6.31, BlueZ-5.23 (runtime), Check-0.9.14, ConsoleKit-0.4.6 (runtime), GConf-3.2.6, GTK+-3.12.2, libsamplerate-0.1.8, SBC-1.2 (Bluetooth support), Valgrind-3.10.0, FFTW, JACK, libasyncns, LIRC, ORC, TDB, WebRTC AudioProcessing and XEN
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/pulseaudio
Install PulseAudio by running the following commands:
find . -name "Makefile.in" | xargs sed -i "s|(libdir)/@PACKAGE@|(libdir)/pulse|" && ./configure --prefix=/usr \ --sysconfdir=/etc \ --localstatedir=/var \ --disable-bluez4 \ --disable-rpath \ --with-module-dir=/usr/lib/pulse/modules && make
To test the results, issue: make check.
Now, as the root
user:
make install
While still as the root
user,
remove the D-Bus
configuration file for the system wide daemon to avoid
creating unnecessary system users and groups:
rm /etc/dbus-1/system.d/pulseaudio-system.conf
find . -name Makefile.in
...: This sed changes the build system to
install PulseAudio private
libraries into /usr/lib/pulse
instead of /usr/lib/pulseaudio
.
--disable-bluez4
:
This switch disables support for BlueZ version 4 in favour of
BlueZ version 5 since the
latter also installs compatibility library for the earlier
version.
--disable-rpath
: This
switch prevents linker from adding a hardcoded runtime path
to the installed programs and libraries.
--with-module-dir=/usr/lib/pulse/modules
:
This parameter ensures that PulseAudio modules are installed in
/usr/lib/pulse/modules
instead
of /usr/lib/pulse-5.0/modules
.
There are system wide configuration files: /etc/pulse/daemon.conf
, /etc/pulse/client.conf
, /etc/pulse/default.pa
, and user
configuration files with the same names in ~/.config/pulse
. User configuration files
take precedence over system wide ones.
The default configuration files allow to set up a working
installation, except that you need to remove a reference to
Console-Kit if it is not installed. For example, issue the
following command as the root
user:
sed '/load-module module-console-kit/s/^/#/' \ -i /etc/pulse/default.pa
You may also have to configure the audio system. You may start pulseaudio in command line mode using pulseaudio -C. You can then list various informations and change some settings. See man pulse-cli-syntax.
is the PulseAudio ESD wrapper script. |
|
Plays back or records raw or encoded audio streams on a PulseAudio sound server. |
|
is a tool used to reconfigure a PulseAudio sound server during runtime. |
|
is used to control a running PulseAudio sound server. |
|
is the PulseAudio OSS Wrapper. |
|
is a symbolic link to pacat. |
|
is used to play audio files on a PulseAudio sound server. |
|
is a symbolic link to pacat. |
|
is a symbolic link to pacat. |
|
is a tool that can be used to tell a local PulseAudio sound server to temporarily suspend access to the audio devices, to allow other applications to access them directly. |
|
is the PulseAudio X11 Credential Utility. |
|
is a networked low-latency sound server for Linux. |
|
Starts PulseAudio and loads module-device-manager to use KDE routing policies. |
|
Starts PulseAudio and registers it to the X11 session manager. |
Last updated on 2014-09-16 13:49:04 -0700
The SBC is a digital audio encoder and decoder used to transfer data to Bluetooth audio output devices like headphones or loudspeakers.
This package is known to build and work properly using an LFS-7.6 platform.
Download (HTTP): http://www.kernel.org/pub/linux/bluetooth/sbc-1.2.tar.xz
Download (FTP): ftp://www.kernel.org/pub/linux/bluetooth/sbc-1.2.tar.xz
Download MD5 sum: ec65c444ad4c32aa85702641045b19e9
Download size: 248 KB
Estimated disk space required: 2.9 MB
Estimated build time: less than 0.1 SBU
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/sbc
Install SBC by running the following commands:
./configure --prefix=/usr --disable-static --disable-tester && make
This package does not come with a test suite.
Now, as the root
user:
make install
--disable-tester
This disables
the SBC tester. Remove it if you have installed the optional
libsndfile package.
--disable-static
:
This switch prevents installation of static versions of the
libraries.
Last updated on 2014-09-16 13:49:04 -0700
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.
This package is known to build and work properly using an LFS-7.6 platform.
Download (HTTP): http://www.libsdl.org/release/SDL-1.2.15.tar.gz
Download MD5 sum: 9d96df8417572a2afb781a7c4c811a85
Download size: 3.8 MB
Estimated disk space required: 40 MB
Estimated build time: 0.6 SBU
ALSA-1.0.28, PulseAudio-5.0 NASM-2.11.05, X Window System, GLU-9.0.0, AAlib-1.4rc5, Pth-2.0.7, DirectFB, GGI, SVGAlib-1.9.5 (patched), libcaca and PicoGUI
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/sdl
Install SDL by running the following commands:
sed -i '/_XData32/s:register long:register _Xconst long:' src/video/x11/SDL_x11sym.h && ./configure --prefix=/usr --disable-static && make
Now, as the root
user:
make install && install -v -m755 -d /usr/share/doc/SDL-1.2.15/html && install -v -m644 docs/html/*.html \ /usr/share/doc/SDL-1.2.15/html
If you wish 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 (they are
listed in the README
file in
this directory). Many of them will need to be manually
killed, and you'll need to turn your speakers on with the
volume at a suitable level.
sed -i ...: This command fixes compilation with libX11-1.6.0
--disable-static
:
This switch prevents installation of static versions of the
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
.
Last updated on 2014-09-11 23:27:59 -0700
The SoundTouch package contains an open-source audio processing library that allows changing the sound tempo, pitch and playback rate parameters independently from each other.
This package is known to build and work properly using an LFS-7.6 platform.
Download (HTTP): http://www.surina.net/soundtouch/soundtouch-1.8.0.tar.gz
Download MD5 sum: d02c6c91cb13901ca273a2b4b143ce41
Download size: 104 KB
Estimated disk space required: 6.1 MB
Estimated build time: 0.1 SBU
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/soundtouch
Install SoundTouch by running the following commands:
sed "s@AM_CONFIG_HEADER@AC_CONFIG_HEADERS@g" -i configure.ac && ./bootstrap && ./configure --prefix=/usr && make
This package does not come with a test suite.
Now, as the root
user:
make pkgdocdir=/usr/share/doc/soundtouch-1.8.0 install
sed "s@AM_CONFIG_HEADER@AC_CONFIG_HEADERS@g" -i configure.ac: This sed fixes some issues with Automake 1.13 and later.
Last updated on 2014-09-22 11:20:08 -0700
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.
This package is known to build and work properly using an LFS-7.6 platform.
Download (HTTP): http://downloads.us.xiph.org/releases/speex/speex-1.2rc1.tar.gz
Download MD5 sum: c4438b22c08e5811ff10e2b06ee9b9ae
Download size: 1.0 MB
Estimated disk space required: 10 MB
Estimated build time: 0.2 SBU
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/speex
Install Speex by running the following commands:
./configure --prefix=/usr \ --disable-static \ --docdir=/usr/share/doc/speex-1.2rc1 && make
This package does not come with a test suite.
Now, as the root
user:
make install
--disable-static
:
This switch prevents installation of static versions of the
libraries.
Last updated on 2014-09-11 23:27:59 -0700
Taglib is a library used for reading, writing and manipulating audio file tags and is used by applications such as Amarok and VLC.
This package is known to build and work properly using an LFS-7.6 platform.
Download (HTTP): https://github.com/taglib/taglib/releases/download/v1.9.1/taglib-1.9.1.tar.gz
Download MD5 sum: 0d35df96822bbd564c5504cb3c2e4d86
Download size: 644 KB
Estimated disk space required: 10 MB
Estimated build time: 0.4 SBU
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/taglib
Install Taglib by running the following commands:
mkdir build && cd build && cmake -DCMAKE_INSTALL_PREFIX=/usr \ -DCMAKE_BUILD_TYPE=Release \ .. && make
Now, as the root
user:
make install
Last updated on 2014-09-15 22:13:43 -0700
x264 package provides a library for encoding video streams into the H.264/MPEG-4 AVC format.
This package is known to build and work properly using an LFS-7.6 platform.
Download (FTP): ftp://ftp.videolan.org/pub/videolan/x264/snapshots/x264-snapshot-20140818-2245-stable.tar.bz2
Download MD5 sum: 9694ad08fc6fbb7110e2a963de336035
Download size: 612 KB
Estimated disk space required: 8.8 MB
Estimated build time: 0.2 SBU
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/x264
Install x264 by running the following commands:
./configure --prefix=/usr \ --enable-shared \ --disable-cli && make
This package does not come with a test suite.
Now, as the root
user:
make install
--disable-cli
: This
switch disables building the command-line encoder which is
redundant since it requires FFmpeg for most of the input
formats.
--disable-asm
: Use this switch if
you didn't install yasm.
Last updated on 2014-09-11 23:27:59 -0700
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 audio and video hardware.
This package is known to build and work properly using an LFS-7.6 platform.
Download (HTTP): http://downloads.sourceforge.net/xine/xine-lib-1.2.6.tar.xz
Download (FTP): ftp://mirror.ovh.net/gentoo-distfiles/distfiles/xine-lib-1.2.6.tar.xz
Download MD5 sum: 02ee3c2380273989b4b016903209e05e
Download size: 4.8 MB
Estimated disk space required: 121 MB (additional 123 MB to install API documentation)
Estimated build time: 1.4 SBU (additional 0.1 SBU to install API documentation)
X Window System, FFmpeg-2.3.3, and at least one of: ALSA-1.0.28, PulseAudio-5.0 or JACK
AAlib-1.4rc5, FAAD2-2.7, FLAC-1.3.0, gdk-pixbuf-2.30.8, GLU-9.0.0, ImageMagick-6.8.9-7, liba52-0.7.4, libdvdnav-5.0.1, libmad-0.15.1b, libmng-2.0.2, libtheora-1.1.1, libva-1.3.1, libvdpau-0.8, libvorbis-1.3.4, libvpx-1.3.0, MesaLib-10.2.7, Samba-4.1.11, SDL-1.2.15, Speex-1.2rc1, Doxygen-1.8.8 (to create the API documentation), DirectFB, libbluray, libcaca, libdca, libFAME, libmodplug, musepack, VCDImager, Video4Linux, and WavPack,
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/xine-lib
Install Xine Libraries by running the following commands:
./configure --prefix=/usr \ --disable-vcd \ --docdir=/usr/share/doc/xine-lib-1.2.6 && make
To create the API documentation, Doxygen must be installed and issue the following command:
doxygen doc/Doxyfile
This package does not come with a test suite.
Now, as the root
user:
make install
When installing, the Makefile does some additional linking. If you do not have Xorg in /usr, the LIBRARY_PATH variable needs to be defined for the root user. If using sudo to assume root, use the -E option to pass your current environment variables for the install process.
If you built the API documentation, issue the following
commands as the root
user to
install it:
install -v -m755 -d /usr/share/doc/xine-lib-1.2.6/api && install -v -m644 doc/api/* \ /usr/share/doc/xine-lib-1.2.6/api
--disable-vcd
: This
option is required to compile Xine
Lib without VCDImager installed.
Remove this option if you have installed VCDImager.
--docdir=/usr/share/xine-lib-1.2.6
:
This switch causes the documentation to be installed into a
versioned directory instead of the default /usr/share/doc/xine-lib
.
Last updated on 2014-09-13 17:48:40 -0700
XviD is an MPEG-4 compliant video CODEC.
This package is known to build and work properly using an LFS-7.6 platform.
Download (HTTP): http://downloads.xvid.org/downloads/xvidcore-1.3.3.tar.gz
Download MD5 sum: 8ecddfe488cb3a82d792fc7efbf51d62
Download size: 800 KB
Estimated disk space required: 8.1 MB
Estimated build time: 0.1 SBU
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/xvid
This package tarball expands to xvidcore
, not the expected xvidcore-1.3.3
.
Install XviD by running the following commands:
cd build/generic && sed -i 's/^LN_S=@LN_S@/& -f -v/' platform.inc.in && ./configure --prefix=/usr && make
This package does not come with a test suite.
Now, as the root
user:
sed -i '/libdir.*STATIC_LIB/ s/^/#/' Makefile && make install && chmod -v 755 /usr/lib/libxvidcore.so.4.3 && install -v -m755 -d /usr/share/doc/xvidcore-1.3.3/examples && install -v -m644 ../../doc/* /usr/share/doc/xvidcore-1.3.3 && install -v -m644 ../../examples/* \ /usr/share/doc/xvidcore-1.3.3/examples
sed -i 's/^LN_S=@LN_S@/& -f -v/' platform.inc.in: Fix error during make install if reintalling or upgrading.
sed -i '/libdir.*STATIC_LIB/ s/^/#/' Makefile: This command disables installing the static library.
Last updated on 2014-09-11 23:27:59 -0700
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.
This package is known to build and work properly using an LFS-7.6 platform.
Download (HTTP): http://downloads.sourceforge.net/mpg123/mpg123-1.20.1.tar.bz2
Download MD5 sum: 1b3e8765aa608e306ede1ec507b67b23
Download size: 844 KB
Estimated disk space required: 13 MB
Estimated build time: 0.2 SBU
OpenAL, PulseAudio-5.0, JACK, PortAudio and SDL-1.2.15
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/mpg123
Install Mpg123 by running the following commands:
./configure --prefix=/usr --with-module-suffix=.so && make
This package does not come with a test suite.
Now, as the root
user:
make install
--with-module-suffix=.so
: This
switch tells mpg123 to load modules with
.so
extension which is useful
if you don't want to keep .la
files.
Last updated on 2014-09-18 14:33:53 -0700
The Vorbis Tools package contains command-line tools useful for encoding, playing or editing files using the Ogg CODEC.
This package is known to build and work properly using an LFS-7.6 platform.
Download (HTTP): http://downloads.xiph.org/releases/vorbis/vorbis-tools-1.4.0.tar.gz
Download MD5 sum: 567e0fb8d321b2cd7124f8208b8b90e6
Download size: 1.3 MB
Estimated disk space required: 11 MB
Estimated build time: 0.1 SBU
cURL-7.37.1, FLAC-1.3.0, libkate, and Speex-1.2rc1
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. |
|
splits 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 2014-09-10 09:45:01 -0700
The LAME package contains an MP3 encoder and optionally, an MP3 frame analyzer. This is useful for creating and analyzing compressed audio files.
This package is known to build and work properly using an LFS-7.6 platform.
Download (HTTP): http://downloads.sourceforge.net/lame/lame-3.99.5.tar.gz
Download MD5 sum: 84835b313d4a8b68f5349816d33e07ce
Download size: 1.4 MB
Estimated disk space required: 11 MB
Estimated build time: 0.3 SBU
Dmalloc, Electric Fence, libsndfile-1.0.25 and NASM-2.11.05
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/lame
First, if you are using i686, fix a compile problem inroduced by gcc-4.9.0:
sed -i -e '/xmmintrin\.h/d' configure
Install LAME by running the following commands:
./configure --prefix=/usr --enable-mp3rtp --disable-static && make
To test the results, issue: make test.
Now, as the root
user:
make pkghtmldir=/usr/share/doc/lame-3.99.5 install
sed -i -e '/xmmintrin\.h/d'
configure
: with gcc-4.9.0, 32-bit i686 builds fail in
xmm_quantize_sub.c
with an
error message error: inlining failed in
call to always_inline '_mm_loadu_ps'
. This sed makes
it appear as if xmmintrin.h
is
not present. Do not use this on other versions of gcc, or on
x86_64.
--enable-mp3rtp
: This switch
enables building of the encode-to-RTP program.
--disable-static
:
This switch prevents installation of static versions of the
libraries.
--enable-nasm
: Enable the use of
NASM-2.11.05 to compile optimized assembly
routines.
Last updated on 2014-09-11 23:27:59 -0700
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.
This package is known to build and work properly using an LFS-7.6 platform.
Download (HTTP): http://downloads.xiph.org/releases/cdparanoia/cdparanoia-III-10.2.src.tgz
Download MD5 sum: b304bbe8ab63373924a744eac9ebc652
Download size: 179 KB
Estimated disk space required: 2.9 MB
Estimated build time: less than 0.1 SBU
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/cdparanoia
This package does not support parallel build.
Install CDParanoia by running the following commands:
patch -Np1 -i ../cdparanoia-III-10.2-gcc_fixes-1.patch && ./configure --prefix=/usr --mandir=/usr/share/man && make -j1
This package does not come with a test suite.
Now, as the root
user:
make install && chmod -v 755 /usr/lib/libcdda_*.so.0.10.2
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 2014-09-14 13:18:45 -0700
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.
This package is known to build and work properly using an LFS-7.6 platform.
Download (HTTP): http://downloads.sourceforge.net/freetts/freetts-1.2.2-src.zip
Download MD5 sum: 692b5ece251fed88539736e55af5f391
Download size: 13.5 MB
Estimated disk space required: 92 MB
Estimated build time: 0.3 SBU
Test suite: http://downloads.sourceforge.net/freetts/freetts-1.2.2-tst.zip
Download MD5 sum: 4348c7db928612d4b6f6eb2fd621a949
Download size: 3.8 MB
apache-ant-1.9.4 and Sharutils-4.14
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.2-src.zip -x META-INF/* && unzip -q freetts-1.2.2-tst.zip -x META-INF/*
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:
sed -i 's/value="src/value="./' build.xml && 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.2/{lib,docs/{audio,images}} && install -v -m644 lib/*.jar /opt/freetts-1.2.2/lib && install -v -m644 *.txt RELEASE_NOTES docs/*.{pdf,html,txt,sx{w,d}} \ /opt/freetts-1.2.2/docs && install -v -m644 docs/audio/* /opt/freetts-1.2.2/docs/audio && install -v -m644 docs/images/* /opt/freetts-1.2.2/docs/images && cp -v -R javadoc /opt/freetts-1.2.2 && ln -v -s freetts-1.2.2 /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.2 && install -v -m644 speech.properties $JAVA_HOME/jre/lib && cp -v -R tools /opt/freetts-1.2.2 && cp -v -R mbrola /opt/freetts-1.2.2 && cp -v -R demo /opt/freetts-1.2.2
sed -i 's/value="src/value="./' build.xml: Fix an error in the build file to allow the program to find the source.
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 2014-09-18 22:41:15 -0700
Audacious is a GTK+ based audio player.
This package is known to build and work properly using an LFS-7.6 platform.
Download (HTTP): http://distfiles.audacious-media-player.org/audacious-3.5.1.tar.bz2
Download MD5 sum: 728df3e3f133782d2bb92e23fbbc6f55
Download size: 440 KB
Estimated disk space required: 14 MB
Estimated build time: 0.2 SBU
Required Plugins
Download (HTTP): http://distfiles.audacious-media-player.org/audacious-plugins-3.5.1.tar.bz2
Download MD5 sum: 0eeb7f8f0183f4189ff1b564e9719cf8
Download size: 1.7 MB
Estimated disk space required: 41 MB
Estimated build time: 0.5 SBU
GTK+-3.12.2, libxml2-2.9.1 (plugins), Xorg build environment (plugins), and X Window System (runtime)
Valgrind-3.10.0, PCRE-8.35 or Oniguruma and libguess
cURL-7.37.1, neon-0.30.0 (for online mpg3 and ogg radio), LAME-3.99.5, FLAC-1.3.0, libvorbis-1.3.4, FAAD2-2.7, FFmpeg-2.3.3, SDL-1.2.15, mpg123-1.20.1, libnotify-0.7.6, PulseAudio-5.0, libsndfile-1.0.25, libsamplerate-0.1.8, LIRC, libcdio (both libcdio and libcdio-paranoia are needed to play CDs), libcddb (to identify CDs), libmodplug, libmms, JACK (requires libsamplerate-0.1.8), FluidSynth, libcue, The Bauer stereophonic-to-binaural DSP (bs2b) library, libbinio (to build the AdPlug plugin), and WavPack
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/audacious
Install Audacious by running the following commands (you may wish to change the stamp to another string):
TPUT=/bin/true ./configure --prefix=/usr \ --with-buildstamp="BLFS" && make
This package does not come with a test suite.
Now, as the root
user:
make install
Install the required plugins package by unpacking the tarball, changing into the newly created directory, and issuing the following commands:
TPUT=/bin/true ./configure --prefix=/usr && make
This package does not come with a test suite.
Now, as the root
user:
make install
This package installs icon files into the /usr/share/icons/hicolor
hierarchy and
desktop files into the /usr/share/applications
hierarchy. You
can improve system performance and memory usage by updating
/usr/share/icons/hicolor/index.theme
and
/usr/share/applications/mimeinfo.cache
.
To perform the update you must have GTK+-2.24.24 or GTK+-3.12.2
installed (for the icon cache) and desktop-file-utils-0.22 (for
the desktop cache) and issue the following commands as the
root
user:
gtk-update-icon-cache && update-desktop-database
TPUT=/bin/true
: the
default is for make to output text in
color. This is fine if you're building in a terminal, but if
you script the build process and pipe the output from
make to a log
file then the control characters used to color the text can
make the logfile unreadable. This option stops it coloring
the text.
--with-buildstamp
:
This switch appends the given text to the version string.
--disable-mp3
: Use this for the
plugins if you have not installed mpg123 and do not wish to
play mp3 files.
--enable-valgrind
: Allow better
Valgrind leak checks.
If you prefer the old, smaller Winamp/XMMS interface, click on View> Interface> Winamp Classic Interface.
Last updated on 2014-09-13 17:48:40 -0700
Amarok is a powerful audio player for the KDE environment. Features include a context browser, integration with many online music services and support for management of several digital music players including Apple's iPod.
This package is known to build and work properly using an LFS-7.6 platform.
Download (HTTP): http://download.kde.org/stable/amarok/2.8.0/src/amarok-2.8.0.tar.bz2
Download (FTP): ftp://ftp.kde.org/pub/kde/stable/amarok/2.8.0/src/amarok-2.8.0.tar.bz2
Download MD5 sum: 53cfcb4819668b10e13b061478c7b32a
Download size: 38.1 MB
Estimated disk space required: 223 MB
Estimated build time: 9.2 SBU
kdelibs-4.14.1, MariaDB-10.0.13 or MySQL, and taglib-1.9.1
cURL-7.37.1 (for MP3tunes integration), libxml2-2.9.1 (for MP3tunes integration), OpenSSL-1.0.1i (for MP3tunes integration), QJson-0.8.1, nepomuk-core, Taglib-extras, Clamz (For Amazon integration), libgpod (for iPod support), liblastfm (for Last.fm integration), libmtp (for MTP device support), libmygpo-qt (for gpodder.net podcast support), libofa (for MusicDNS support), Loudmouth (for MP3tunes integration), qtscript-qt, and Google Mock (for tests)
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/amarok
Amarok depends strongly on $KDE_PREFIX. If a new version of KDE is installed in a different location (for instance installing kde in a versioned directory of /opt), then this package will need to be reinstalled.
Install Amarok by running the following commands:
mkdir build && cd build && cmake -DCMAKE_INSTALL_PREFIX=$KDE_PREFIX \ -DCMAKE_BUILD_TYPE=Release \ -DKDE4_BUILD_TESTS=OFF \ -Wno-dev .. && make
Now, as the root
user:
make install
-DKDE4_BUILD_TESTS=OFF
: This
switch disables the integrated tests. The test suite requires
Google Mock.
Last updated on 2014-09-18 13:07:49 -0700
The Pnmixer package provides a lightweight volume control with a tray icon.
This package is known to build and work properly using an LFS-7.6 platform.
Download (HTTP): https://github.com/downloads/nicklan/pnmixer/pnmixer-0.5.1.tar.gz
Download MD5 sum: 2288af95ab280721b39b7c33601d5dd4
Download size: 135 KB
Estimated disk space required: 2.3 MB
Estimated build time: less than 0.1 SBU
alsa-utils-1.0.28 and GTK+-2.24.24
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/pnmixer
Install Pnmixer by running the following commands:
./autogen.sh --prefix=/usr && make
This package does not have a testsuite.
Now, as the root
user:
make install
Last updated on 2014-09-10 09:45:01 -0700
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.
This package is known to build and work properly using an LFS-7.6 platform.
Download (HTTP): http://ffmpeg.org/releases/ffmpeg-2.3.3.tar.bz2
Download MD5 sum: 72361d3b8717b6db3ad2b9da8df7af5e
Download size: 7.2 MB
Estimated disk space required: 128 MB (additional 857 MB for docs and 1871 MB to run the FATE tests)
Estimated build time: 3.3 SBU (additional 0.9 SBU for docs and 4.5 SBU to run the FATE tests, after sample files are downloaded)
yasm-1.3.0, libass-0.11.2, fdk-aac-0.1.3, LAME-3.99.5, libtheora-1.1.1, libvorbis-1.3.4, libvpx-1.3.0, and x264-20140818-2245
X Window System, alsa-lib-1.0.28, SDL-1.2.15, libva-1.3.1 and libvdpau-0.8 (with the corresponding driver package)
FAAC-1.28, FreeType-2.5.3, libwebp-0.4.1, OpenJPEG-1.5.2, PulseAudio-5.0, Speex-1.2rc1, XviD-1.3.3, OpenSSL-1.0.1i, Fontconfig-2.11.1, GnuTLS-3.3.7, Opus-1.1, frei0r, HEVC/H.265, LADSPA, libssh, ZVBI, libaacplus, libbluray, libcaca, libcelt, libcdio, libdc1394, Flite, GSM, libiec61883, libilbc, libmodplug, libnut (Git checkout), OpenCore AMR, OpenCV, librtmp, Schroedinger, TwoLAME, Video4Linux, vo-aaenc, vo-amrwbenc, libxavs (SVN checkout), OpenAL, texi2html (to build HTML documentation), and x265 (H.265/MPEG-H HEVC)
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/ffmpeg
Install FFmpeg by running the following commands:
sed -i 's/-lflite"/-lflite -lasound"/' configure && ./configure --prefix=/usr \ --enable-gpl \ --enable-version3 \ --enable-nonfree \ --disable-static \ --enable-shared \ --disable-debug \ --enable-libass \ --enable-libfdk-aac \ --enable-libmp3lame \ --enable-libtheora \ --enable-libvorbis \ --enable-libvpx \ --enable-libx264 \ --enable-x11grab && make && gcc tools/qt-faststart.c -o tools/qt-faststart
HTML documentation was built in the previous step if
texi2html is installed.
If the HTML was built (check for any .html
files in the doc
directory) and you have texlive-20140525
installed and wish to build PDF and Postscript versions of
the documentation, issue the following commands:
sed -i '$s/$/\n\n@bye/' doc/{git-howto,nut,fate}.texi && sed -i '/machine:i386/ s/\\/@backslashchar{}/g' doc/platform.texi && pushd doc && for DOCNAME in `basename -s .html *.html` do texi2pdf -b $DOCNAME.texi && texi2dvi -b $DOCNAME.texi && dvips -o $DOCNAME.ps \ $DOCNAME.dvi done && popd && unset DOCNAME
If you have Doxygen-1.8.8 installed and wish to create the API documentation (takes about 350 MB of space), issue the command doxygen doc/Doxyfile.
To properly test the installation you must have rsync-3.1.1 installed and follow the instructions for the FFmpeg Automated Testing Environment (FATE). First, about 872 MB of sample files used to run FATE are downloaded with the command:
make fate-rsync SAMPLES=fate-suite/
The fate-suite
directory is
created and the files are downloaded there. That command
actually runs rsync -vrltLW
--timeout=60 --contimeout=60
rsync://fate-suite.ffmpeg.org/fate-suite/
fate-suite/ command, thus you may want to
compress and keep this directory for testing again, in
another system, or when a new version of ffmpeg is launched.
Then, you unpack the sample files in the source directory,
and run, again, the make command above, to sync
with the repository. Now, the download size and time are
drastically reduced. Estimated values in "Package
Information" do not include the download SBU. Next, FATE is
executed, with the commands (you obtain a number of tests
greater than 1900):
make fate SAMPLES=fate-suite/ | tee ../fate.log && grep ^TEST ../fate.log | wc -l
Now, as the root
user:
make install && install -v -m755 tools/qt-faststart /usr/bin && install -v -m755 -d /usr/share/doc/ffmpeg && install -v -m644 doc/*.txt \ /usr/share/doc/ffmpeg
If HTML documentation was built, issue the following command to install it:
install -v -m644 doc/*.html \ /usr/share/doc/ffmpeg
If you used doxygen to create the API
documentation, install it (another 300 MB of space) by
issuing the following commands as the root
user:
install -v -m755 -d /usr/share/doc/ffmpeg/api && cp -vr doc/doxy/html/* /usr/share/doc/ffmpeg/api && find /usr/share/doc/ffmpeg/api -type f -exec chmod -c 0644 "{}" ";" && find /usr/share/doc/ffmpeg/api -type d -exec chmod -c 0755 "{}" ";"
sed -i ...
configure: This command adds the ALSA library to the Flite LDFLAGS
variable and enables the discovery of Flite.
sed -i ... texi: Fix some .texi files for documentation builds.
find ... ";": Fix permissions of documentation files and directories.
--enable-libfreetype
: Enables
Freetype support.
--enable-gpl
: Enables
the use of GPL code and permits support for postprocessing,
swscale and many other features.
--enable-version3
:
Enables the use of (L)GPL version 3 code.
--enable-nonfree
:
Enables the use of nonfree code. Note that the resulting
libraries and binaries will be unredistributable.
--disable-static
:
This switch prevents installation of static versions of the
libraries.
--enable-shared
:
Enables building shared libraries, otherwise only static
libraries are built and installed.
--disable-debug
:
Disables building debugging symbols into the programs and
libraries.
--enable-libass
:
Enables ASS/SSA subtitle format rendering via libass
.
--enable-libfdk-aac
:
Enables currently the highest-quality AAC audio encoding via
libfdk-aac
.
--enable-libmp3lame
:
Enables MP3 audio encoding via libmp3lame
.
--enable-libvorbis
--enable-libtheora
: Enables Theora video encoding
via libvorbis
and libtheora
.
--enable-libvorbis
--enable-libvpx
: Enables WebM encoding via
libvorbis
and libvpx
.
--enable-libx264
:
Enables high-quality H.264/MPEG-4 AVC encoding via
libx264
.
--enable-x11grab
:
Enables X11 grabbing.
gcc tools/qt-faststart.c -o
tools/qt-faststart: This builds the
qt-faststart
program which can modify QuickTime formatted movies
(.mov
or .mp4
) so that the header information is
located at the beginning of the file instead of the end. This
allows the movie file to begin playing before the entire file
has been downloaded.
Support for most of the dependency packages requires using options passed to the configure script. View the output from ./configure --help for complete information about enabling dependency packages.
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 |
|
gathers information from multimedia streams and prints it in a human and machine-readable fashion. |
|
is a streaming server for everything that ffmpeg could use as input (files, streams, TV card input, webcam, etc). |
|
moves the index file to the front of quicktime (mov/mp4) videos. |
|
is a library containing the FFmpeg codecs (both encoding and decoding). |
|
is the FFmpeg device handling library. |
|
is a library of filters that can alter video or audio between the decoder and the encoder (or output). |
|
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. |
|
is the FFmpeg utility library. |
|
is the FFmpeg post processing library. |
|
is the FFmpeg audio rescaling library, it contains functions for converting audio sample formats. |
|
is the FFmpeg image rescaling library. |
Last updated on 2014-09-11 23:27:59 -0700
MPlayer is a powerful audio/video player controlled via the command line or a graphical interface that is able to play almost every popular audio and video file format. With supported video hardware and additional drivers, MPlayer can play video files without an X Window System installed.
This package is known to build and work properly using an LFS-7.6 platform.
Download (HTTP): http://www.mplayerhq.hu/MPlayer/releases/MPlayer-1.1.1.tar.xz
Download (FTP): ftp://ftp.mplayerhq.hu/MPlayer/releases/MPlayer-1.1.1.tar.xz
Download MD5 sum: 39dd55f30eb5403f219a606e79a6648a
Download size: 11 MB
Estimated disk space required: 183 MB (120 MB using system-installed FFMpeg)
Estimated build time: 4 SBU (1.5 SBU using system-installed FFMpeg)
Skins
GUI skin (HTTP): http://www.mplayerhq.hu/MPlayer/skins/Clearlooks-1.5.tar.bz2
GUI skin (FTP): ftp://ftp.mplayerhq.hu/MPlayer/skins/Clearlooks-1.5.tar.bz2
Skin MD5 sum: 6b046a78fb15b243dc1eb5884276a750
Skin size: 40 KB
Alternative skins: http://www1.mplayerhq.hu/MPlayer/skins/
Skins are only required to use the Gtk+ 2 user interface.
CDParanoia-III-10.2, libdvdread-5.0.0, libdvdnav-5.0.1, libdvdcss-1.3.0, Samba-4.1.11, libbluray, libcdio, LIVE555 Streaming Media, RTMPDump, TiVo vstream client, and XMMS
ALSA-1.0.28, PulseAudio-5.0, SDL-1.2.15, JACK, NAS, and OpenAL
AAlib-1.4rc5, giflib-5.1.0, libjpeg-turbo-1.3.1, libmng-2.0.2, libpng-1.6.13, OpenJPEG-1.5.2, DirectFB, libcaca, and SVGAlib
FAAC-1.28, FAAD2-2.7, LAME-3.99.5, liba52-0.7.4, libdv-1.0.0, libmad-0.15.1b, libtheora-1.1.1, libvpx-1.3.0, LZO-2.08, mpg123-1.20.1, Speex-1.2rc1, XviD-1.3.3, x264-20140818-2245, CrystalHD, Dirac, GSM, libdca, libnut, libmpcdec, OpenCore Adaptive Multi Rate, Schroedinger, and TwoLAME
Fontconfig-2.11.1, FreeType-2.5.3, FriBidi-0.19.6, UnRar-5.1.7, and libxslt-1.1.28, docbook-xml-4.5 and docbook-xsl-1.78.1 (all three required to build the HTML documentation), and Enca, LADSPA, libbs2b, and LIRC (and LIRC Client Daemon)
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/mplayer
The package maintainers recommend building without any optimizations.
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.
Install MPlayer by running the following commands:
patch -Np1 -i ../MPlayer-1.1.1-giflib_fixes-1.patch && patch -Np1 -i ../MPlayer-1.1.1-live_fixes-1.patch && sed -i 's:libsmbclient.h:samba-4.0/&:' configure stream/stream_smb.c && sed -i 's/EGifCloseFile(new_gif/&, NULL/' libvo/vo_gif89a.c && sed -i 's/DGifCloseFile(priv->gif/&, NULL/' libmpdemux/demux_gif.c && ./configure --prefix=/usr \ --confdir=/etc/mplayer \ --enable-dynamic-plugins \ --enable-menu \ --enable-gui && make
If you wish to rebuild the chunked HTML documentation and build a non-chunked HTML version of the docs, issue the following command:
make doc
This package does not come with a test suite.
Now, as the root
user:
make install
To install the HTML documentation, issue the following
commands as the root
user:
install -v -m755 -d /usr/share/doc/mplayer-1.1.1 && install -v -m644 DOCS/HTML/en/* \ /usr/share/doc/mplayer-1.1.1
You will only need codecs.conf
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 as the root
user:
install -v -m644 etc/codecs.conf /etc/mplayer
You may alternatively want to copy all the default
configuration files to /etc/mplayer
for future reference or more
customization ability. As the root
user:
install -v -m644 etc/*.conf /etc/mplayer
This package installs icon files into the /usr/share/icons/hicolor
hierarchy and
desktop files into the /usr/share/applications
hierarchy. You
can improve system performance and memory usage by
updating /usr/share/icons/hicolor/index.theme
and /usr/share/applications/mimeinfo.cache
.
To perform the update you must have GTK+-2.24.24 or
GTK+-3.12.2 installed (for the icon
cache) and desktop-file-utils-0.22
(for the desktop cache) and issue the following commands
as the root
user:
gtk-update-icon-cache && update-desktop-database
To enable the Gtk+ 2 frontend of MPlayer, you'll need to install at
least one skin. Extract the desired skin and create the
default location (as the root
user):
tar -xvf ../Clearlooks-1.5.tar.bz2 \ -C /usr/share/mplayer/skins && ln -sfv Clearlooks /usr/share/mplayer/skins/default
sed -i 's:libsmbclient.h:samba-4.0 ...: Include support for Samba 4.
sed -i 's/EGifCloseFile(new_gif ... and sed -i 's/DGifCloseFile(priv->gif ...: Fix building with new versions of giflib.
--enable-gui
: This
option builds the GUI interface into mplayer.
--enable-menu
: This
option is set to enable the on-screen display.
--disable-ffmpeg_a
: You can use
this option if you have installed FFmpeg-2.3.3. MPlayer
includes a copy of the FFmpeg source and without this option
it will statically compile the included version of FFmpeg
into itself. Dynamically linking to a system installed FFmpeg
makes MPlayer and Mencoder about 9MB smaller. If MPlayer
exhibits unstable behavior linked to a system installed
FFmpeg, try recompiling MPlayer without this option (it is
always more thoroughly tested with the included FFmpeg).
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 in the GUI will be saved in the user's ~/.mplayer
directory.
is a symlink to mplayer which brings up the GTK+ 2 frontend of MPlayer. |
|
is the main MPlayer video player. |
|
is a powerful command line video decoding, encoding and filtering tool that is useful for (amongst other things) ripping DVDs to files on your hard disk (see /usr/share/doc/mplayer-1.1.1/mencoder.html) |
Last updated on 2014-09-18 22:41:15 -0700
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/.
This package is known to build and work properly using an LFS-7.6 platform.
Download (HTTP): https://bitbucket.org/france/transcode-tcforge/downloads/transcode-1.1.7.tar.bz2
Download (FTP): ftp://mirror.ovh.net/gentoo-distfiles/distfiles/transcode-1.1.7.tar.bz2
Download MD5 sum: 9bb25a796a8591fb764de46ee87ce505
Download size: 2.1 MB
Estimated disk space required: 75 MB
Estimated build time: 1.0 SBU
alsa-lib-1.0.28, LAME-3.99.5, libdvdread-5.0.0, libmpeg2-0.5.1, and Xorg Libraries
FAAC-1.28, FreeType-2.5.3, ImageMagick-6.8.9-7, liba52-0.7.4, libdv-1.0.0, libjpeg-turbo-1.3.1, libogg-1.3.2, libquicktime-1.2.4, libtheora-1.1.1, libvorbis-1.3.4, libxml2-2.9.1, LZO-2.08, MJPEG Tools, PVM3, SDL-1.2.15, Video4Linux, x264-20140818-2245, and XviD-1.3.3
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/transcode
The details of how the FFmpeg libraries are used has changed since this version of Transcode was released. The patch allows the package to be compiled, but some or all of the internal calls to FFmpeg fail at run time (they report an error and processing continues, but without any output).
For many packages, that would be a critical error. In this case, the main reason to install Transcode is for the tccat program, which works. Some of the transcode options work - for the others, use ffmpeg directly on the command line.
When building with --enable-freetype2 configure switch, fix the code to find the header locations for FreeType-2.5.x (x > 0):
sed -i "s:#include <freetype/ftglyph.h>:#include FT_GLYPH_H:" filter/subtitler/load_font.c
Install Transcode by running the following commands:
sed -i 's|doc/transcode|&-$(PACKAGE_VERSION)|' \ $(find . -name Makefile.in -exec grep -l 'docsdir =' {} \;) && patch -Np1 -i ../transcode-1.1.7-ffmpeg2-1.patch && ./configure --prefix=/usr \ --enable-alsa \ --enable-libmpeg2 && make
This package does not come with a test suite.
Now, as the root
user:
make install
sed -i ... filter/subtitler/load_font.c: Fixes header locations for new FreeType-2.5.x (x > 0).
sed -i ...: Fixes install location for documentation.
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.
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. This is useful for extracting VOB (Video OBject) files. |
|
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. |
|
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. |
|
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. |
Last updated on 2014-09-14 13:18:45 -0700
VLC is a media player, streamer, and encoder. It can play from many inputs like files, network streams, capture device, desktops, or DVD, SVCD, VCD, and audio CD. It can play most audio and video codecs (MPEG 1/2/4, H264, VC-1, DivX, WMV, Vorbis, AC3, AAC, etc.), but can also convert to different formats and/or send streams through the network.
This package is known to build and work properly using an LFS-7.6 platform.
Download (HTTP): http://download.videolan.org/pub/videolan/vlc/2.1.5/vlc-2.1.5.tar.xz
Download (FTP): ftp://ftp.videolan.org/pub/videolan/vlc/2.1.5/vlc-2.1.5.tar.xz
Download MD5 sum: 3941b561f590cc95ca5e795213cba2f2
Download size: 19 MB
Estimated disk space required: 494 MB (additional 1 MB for the tests)
Estimated build time: 4.7 SBU (additional less than 0.1 SBU for the tests)
alsa-lib-1.0.28, FFmpeg-2.3.3, liba52-0.7.4, libgcrypt-1.6.2 libmad-0.15.1b, Lua-5.2.3, and X Window System,
libdv-1.0.0, libdvdcss-1.3.0, libdvdread-5.0.0, libdvdnav-5.0.1, Samba-4.1.11, libbluray, libdc1394, libcddb, libproxy, Live555, OpenCV, Video4Linux, and VCDImager (requires libcdio)
libogg-1.3.2, Game Music Emu, libdvbpsi, libshout, libmatroska (requires libebml), libmodplug, Musepack, and sidplay-libs,
FAAD2-2.7, FLAC-1.3.0, libass-0.11.2, libmpeg2-0.5.1, libpng-1.6.13, libtheora-1.1.1, libva-1.3.1, libvorbis-1.3.4, Opus-1.1, Speex-1.2rc1, x264-20140818-2245, Dirac, FluidSynth, libdca, libkate, libtiger, OpenMAX, Schroedinger, Tremor, Twolame, and Zapping VBI
AAlib-1.4rc5, Fontconfig-2.11.1, FreeType-2.5.3, FriBidi-0.19.6, librsvg-2.40.3, libvdpau-0.8, SDL-1.2.15 (with SDL_image), and libcaca
PulseAudio-5.0, libsamplerate-0.1.8, and JACK
Qt-4.8.6 (required for the graphical user interface), libtar, and LIRC
Avahi-0.6.31, libmtp and libupnp
GnuTLS-3.3.7, libnotify-0.7.6, libxml2-2.9.1, taglib-1.9.1, and xdg-utils-1.1.0-rc2 (runtime)
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/vlc
Install VLC by running the following commands:
sed -i 's:libsmbclient.h:samba-4.0/&:' modules/access/smb.c && ./bootstrap && ./configure --prefix=/usr && make
To test the results, issue: make check.
Now, as the root
user:
If the XORG_PREFIX is not /usr, make sure the LIBRARY_PATH environment variable is set properly when doing the install, For example: sudo make LIBRARY_PATH=$XORG_PREFIX/lib ... install.
make docdir=/usr/share/doc/vlc-2.1.5 install
This package installs icon files into the /usr/share/icons/hicolor
hierarchy and
desktop files into the /usr/share/applications
hierarchy. You
can improve system performance and memory usage by updating
/usr/share/icons/hicolor/index.theme
and
/usr/share/applications/mimeinfo.cache
.
To perform the update you must have GTK+-2.24.24 or GTK+-3.12.2
installed (for the icon cache) and desktop-file-utils-0.22 (for
the desktop cache) and issue the following commands as the
root
user:
gtk-update-icon-cache && update-desktop-database
sed -i ...: This sed fixes compilation with Samba 4.
./bootstrap: This command calls autoreconf to generate m4 macros and prepare Makefiles.
--disable-lua
: Use this switch if
you don't have Lua
installed.
--disable-mad
: Use this switch if
you don't have libmad
installed.
--disable-avcodec
--disable-swscale
: Use these switches if you don't
have FFmpeg installed.
--disable-a52
: Use this switch if
you don't have liba52
installed.
--disable-xcb
: Use this switch if
you don't have X Window
System installed.
--disable-alsa
: Use this switch
if you don't have ALSA
installed.
--disable-libgcrypt
: Use this
switch if you don't have libgcrypt installed.
There are many options to VLC's configure command. Check the configure --help output for a complete list.
is a script to run VLC with the dummy interface. |
|
is a script to run VLC with the ncurses interface. |
|
is a script to run VLC with the Qt interface. |
|
is a script to run VLC with a command line interface. |
|
is a script to run VLC with the skins interface. |
|
is the VLC media player. |
|
is a wrapper to drop privileges with VLC. |
Last updated on 2014-09-13 17:48:40 -0700
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.
This package is known to build and work properly using an LFS-7.6 platform.
Download (HTTP): http://downloads.sourceforge.net/xine/xine-ui-0.99.9.tar.xz
Download MD5 sum: a6d00381b5c8b7aec1a7a3fbf84f01ce
Download size: 1.7 MB
Estimated disk space required: 26 MB
Estimated build time: 0.3 SBU
xine-lib-1.2.6 and shared-mime-info-1.3
cURL-7.37.1, 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.9 install
This package installs icon files into the /usr/share/icons/hicolor
hierarchy and
desktop files into the /usr/share/applications
hierarchy. You
can improve system performance and memory usage by updating
/usr/share/icons/hicolor/index.theme
and
/usr/share/applications/mimeinfo.cache
.
To perform the update you must have GTK+-2.24.24 or GTK+-3.12.2
installed (for the icon cache) and desktop-file-utils-0.22 (for
the desktop cache) and issue the following commands as the
root
user:
gtk-update-icon-cache && update-desktop-database
docsdir=/usr/share/doc/xine-ui-0.99.9
:
This parameter causes the Xine
UI documentation to be installed in the versioned
directory /usr/share/doc/xine-ui-0.99.9
, rather that
the default /usr/share/doc/xine-ui
.
The above file is created and maintainable through the
xine setup
dialog box. The documentation for the configuration
settings is located at /usr/share/doc/xine-ui-0.99.9/README.config_en
.
If you have a DVB TV card, you can watch TV with the command xine dvb:// and change channels with the scroll wheel on your mouse.
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. |
|
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 2014-09-13 17:48:40 -0700
This chapter contains information on CD/DVD-writing utilities in Linux.
Additional sources of information include:
The Cdrdao package contains CD recording utilities. These are useful for burning a CD in disk-at-once mode.
This package is known to build and work properly using an LFS-7.6 platform.
Download (HTTP): http://downloads.sourceforge.net/cdrdao/cdrdao-1.2.3.tar.bz2
Download MD5 sum: 8d15ba6280bb7ba2f4d6be31d28b3c0c
Download size: 1.4 MB
Estimated disk space required: 64 MB
Estimated build time: 1.3 SBU (includes building gcdmaster)
libao-1.2.0, libvorbis-1.3.4, libmad-0.15.1b, and LAME-3.99.5 (required to build toc2mp3)
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/cdrdao
Install Cdrdao by running the following commands:
sed -i '/ioctl/a #include <sys/stat.h>' dao/ScsiIf-linux.cc && ./configure --prefix=/usr --mandir=/usr/share/man && 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.3 && install -v -m644 README /usr/share/doc/cdrdao-1.2.3
sed -i '/ioctl/a #include
<sys/stat.h>' ...: This sed adds
missing sys/stat.h
include.
--mandir=/usr/share/man: Install manual pages in /usr/share/man instead of /usr/man.
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 2014-09-18 14:33:53 -0700
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.
This package is known to build and work properly using an LFS-7.6 platform.
Download (HTTP): http://fy.chalmers.se/~appro/linux/DVD+RW/tools/dvd+rw-tools-7.1.tar.gz
Download MD5 sum: 8acb3c885c87f6838704a0025e435871
Download size: 138 KB
Estimated disk space required: 1.7 MB
Estimated build time: less than 0.1 SBU
Though not required during the build, you must have installed a package which provides the xorrisofs command, such as libisoburn-1.3.8, 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:
sed -i '/stdlib/a #include <limits.h>' transport.hxx && sed -i 's#mkisofs"#xorrisofs"#' growisofs.c && sed -i 's#mkisofs#xorrisofs#;s#MKISOFS#XORRISOFS#' growisofs.1 && 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.1/index.html
sed -i '/stdlib/a #include
<limits.h>' ...: This sed includes
limits.h
, one of the kernel
headers. This is needed due to a change in the 2.6.23 kernel
headers.
sed -i 's#mkisofs"#xorrisofs"#' growisofs.c: This sed changes the code to use xorrisofs from xorriso. The default was for it to use mkisofs from Cdrtools.
sed -i 's#mkisofs#xorrisofs#;s#MKISOFS#XORRISOFS#' growisofs.1: This sed fixes the man page to account for the above change.
make all rpl8 btcflash: This command uses additional targets so that all the utilities are built.
Last updated on 2014-09-18 14:33:53 -0700
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. It is used 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.
This package is known to build and work properly using an LFS-7.6 platform.
Download (HTTP): http://downloads.sourceforge.net/k3b/k3b-2.0.2.tar.bz2
Download MD5 sum: c86113af31a2032e57fd2f302b5f637a
Download size: 13 MB
Estimated disk space required: 350 MB
Estimated build time: 3.0 SBU
kde-runtime-4.14.1, libkcddb-4.14.1, and libsamplerate-0.1.8
There are programs from three packages that K3b will look for at runtime: Cdrtools (required to burn CD-ROM media), dvd+rw-tools-7.1 (required to burn or format DVD media), and Cdrdao-1.2.3 (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.
FFmpeg-2.3.3, libdvdread-5.0.0, libjpeg-turbo-1.3.1, and taglib-1.9.1
FLAC-1.3.0, LAME-3.99.5, libmad-0.15.1b, libsndfile-1.0.25, libvorbis-1.3.4, libmusicbrainz-2.1.5, Musepack (libmpcdec), and VCDImager
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/k3b
Install K3b by running the following commands:
patch -Np1 -i ../k3b-2.0.2-ffmpeg2-1.patch && mkdir build && cd build && cmake -DCMAKE_INSTALL_PREFIX=$KDE_PREFIX \ -DSYSCONF_INSTALL_DIR=/etc/kde \ -Wno-dev .. && make
This package does not come with a test suite.
Now, as the root
user:
make install
$KDE_PREFIX
/share/:
applnk/Settings/System, apps/k3b, doc/HTML/en/k3b
Last updated on 2014-09-18 22:41:15 -0700
libburn is a library for writing preformatted data onto optical media: CD, DVD and BD (Blu-Ray).
This package is known to build and work properly using an LFS-7.6 platform.
Download (HTTP): http://files.libburnia-project.org/releases/libburn-1.3.8.tar.gz
Download MD5 sum: ecee98ecd1c24e9d7e92b605e61a2ef2
Download size: 948 KB
Estimated disk space required: 14 MB
Estimated build time: 0.2 SBU
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/libburn
Install libburn by running the following commands:
./configure --prefix=/usr --disable-static && make
This package does not come with a test suite.
Now, as the root
user:
make install
Last updated on 2014-09-16 10:29:57 -0700
libisoburn is a frontend for libraries libburn and libisofs which enables creation and expansion of ISO-9660 filesystems on all CD/DVD/BD media supported by libburn. This includes media like DVD+RW, which do not support multi-session management on media level and even plain disk files or block devices.
This package is known to build and work properly using an LFS-7.6 platform.
Download (HTTP): http://files.libburnia-project.org/releases/libisoburn-1.3.8.tar.gz
Download MD5 sum: 4f1c2290a2d02bdb709c3707fd9f1ae6
Download size: 1.4 MB
Estimated disk space required: 15 MB with Tk (additional 2 MB to generate HTML documentation)
Estimated build time: 0.2 SBU with Tk
libburn-1.3.8 and libisofs-1.3.8
Doxygen-1.8.8 (to generate HTML documentation) and Tk-8.6.2 (for xorriso-tcltk)
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/libisoburn
Install libisoburn by running the following commands:
./configure --prefix=/usr \ --disable-static \ --enable-pkg-check-modules && make
If you have installed Doxygen and wish to generate the HTML documentation, issue the following command:
doxygen doc/doxygen.conf
This package does not come with a test suite.
Now, as the root
user:
make install
If you have built the HTML documentation, install it by
running the following commands as the root
user:
install -v -dm755 /usr/share/doc/libisoburn-1.3.8 && install -v -m644 doc/html/* /usr/share/doc/libisoburn-1.3.8
--disable-static
:
This switch prevents installation of static versions of the
libraries.
--enable-pkg-check-modules
:
Enable pkg-config check for
libburn and libisofs.
is a symbolic link to xorriso that copies files from ISO image to a disk filesystem. |
|
is a symbolic link to xorriso that provides a cdrecord type user interface. |
|
is a program to create, load, manipulate, read, and write ISO 9660 filesystem images with Rock Ridge extensions. |
|
is a symbolic link to xorriso that that provides a mkisofs type user interface. |
|
contains the libisoburn API functions. |
Last updated on 2014-09-16 10:29:57 -0700
libisofs is a library to create an ISO-9660 filesystem with extensions like RockRidge or Joliet.
This package is known to build and work properly using an LFS-7.6 platform.
Download (HTTP): http://files.libburnia-project.org/releases/libisofs-1.3.8.tar.gz
Download MD5 sum: 7fea3aa98038a90cec6a5779e0e05eb5
Download size: 784 KB
Estimated disk space required: 9.8 MB
Estimated build time: 0.2 SBU
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/libisofs
Install libisofs by running the following commands:
./configure --prefix=/usr --disable-static && make
This package does not come with a test suite.
Now, as the root
user:
make install
--disable-static
:
This switch prevents installation of static versions of the
libraries.
Last updated on 2014-09-16 10:29:57 -0700
SimpleBurn is a minimalistic application for burning and extracting CDs and DVDs.
This package is known to build and work properly using an LFS-7.6 platform.
Download (HTTP): http://simpleburn.tuxfamily.org/IMG/bz2/simpleburn-1.6.5.tar.bz2
Download MD5 sum: de658ab5af00e7bcb1e948d5c45da7b9
Download size: 44 KB
Estimated disk space required: 1.7 MB
Estimated build time: 0.1 SBU
libisoburn-1.3.8, CDParanoia-III-10.2, and Cdrdao-1.2.3
FLAC-1.3.0, mpg123-1.20.1, vorbis-tools-1.4.0, LAME-3.99.5, MPlayer-1.1.1, normalize, libcdio, mpg321, cdrtools, and cdrkit
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/simpleburn
Install SimpleBurn by running the following commands:
mkdir build && cd build && cmake -DCMAKE_BUILD_TYPE=Release \ -DCMAKE_INSTALL_PREFIX=/usr \ -DBURNING=LIBBURNIA .. && make
This package does not come with a test suite.
Now, as the root
user:
make install
All optical devices are not accessible for any user except
root
and members of the
cdrom
group. Add any users
that might use the optical devices to that group:
usermod -a -G cdrom <username>
-DBURNING=LIBBURNIA
:
This switch changes the burning suite from the default
cdrtools.
Last updated on 2014-09-18 22:41:15 -0700
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.
This package is known to build and work properly using an LFS-7.6 platform.
Download (HTTP): http://www.cups.org/software/1.7.5/cups-1.7.5-source.tar.bz2
Download MD5 sum: 5d893edc2957005f78e2b2423fdace2e
Download size: 8.4 MB
Estimated disk space required: 64 MB (additional 25 MB for the tests)
Estimated build time: 0.6 SBU (additional 4.1 SBU for the tests)
Colord-1.2.3, D-Bus-1.8.8, and libusb-1.0.19
Avahi-0.6.31, GnuTLS-3.3.7 (if you have it installed, then libgcrypt-1.6.2 is required) or OpenSSL-1.0.1i, libpaper-1.1.24+nmu3, Linux-PAM-1.1.8, MIT Kerberos V5-1.12.2, OpenJDK-1.7.0.65/IcedTea-2.5.2, PHP-5.6.0, Python-2.7.8, and xdg-utils-1.1.0-rc2
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/cups
There used to be a conflict between the Cups libusb backend and the usblp kernel driver. This is no longer the case and cups will work with both of these enabled.
If you want to use the kernel usblp driver (for example, if you wish to use escputil from Gutenprint-5.2.10) enable the following options in your kernel configuration and recompile the kernel:
Device Drivers ---> USB support ---> OHCI HCD (USB 1.1) support: Y or M UHCI HCD (most Intel and VIA) support: Y or M USB Printer support: Y or M
If you have a parallel printer, enable the following options in your kernel configuration and recompile the kernel:
Device Drivers --->
Parallel port support --->
PC-style hardware: Y or M
Character devices --->
Parallel printer support: Y or M
You will need to add 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 /var/spool/cups -g lp -s /bin/false -u 9 lp
You will also need a dedicated group that will contain users
allowed to do Cups
administrative tasks. Add the group by running the following
command as the root
user:
groupadd -g 19 lpadmin
If you want to add a user to the Cups administrative group, run the
following command as the root
user:
usermod -a -G lpadmin <username>
If you didn't install xdg-utils-1.1.0-rc2, use the following sed to change the default browser that will be used to access the Cups web interface:
sed -i 's#@CUPS_HTMLVIEW@#firefox#' desktop/cups.desktop.in
Replace firefox with the web browser of your choice.
If you need to access a remote Cups print server, use the following patch:
patch -Np1 -i ../cups-1.7.5-content_type-1.patch
Install Cups by running the following commands:
patch -Np1 -i ../cups-1.7.5-blfs-1.patch && aclocal -I config-scripts && autoconf -I config-scripts && CC=gcc \ ./configure --libdir=/usr/lib \ --with-rcdir=/tmp/cupsinit \ --with-docdir=/usr/share/cups/doc \ --with-system-groups=lpadmin && make
To test the results, issue: make -k check. An already active graphical session with bus address is necessary to run the tests. A small number of tests fail for unknown reasons.
Now, as the root
user:
make install && rm -rf /tmp/cupsinit && ln -svfn ../cups/doc /usr/share/doc/cups-1.7.5
Create a basic Cups client
configuration file by running the following command as the
root
user:
echo "ServerName /var/run/cups/cups.sock" > /etc/cups/client.conf
Remove filters that are now part of the Cups Filters package by running the
following commands as the root
user:
rm -rf /usr/share/cups/banners && rm -rf /usr/share/cups/data/testprint
If you reinstall or update Cups, commands above break cups-filters-1.0.58, which needs, therefore, to be reinstalled.
This package installs icon files into the /usr/share/icons/hicolor
hierarchy and
you can improve system performance and memory usage by
updating /usr/share/icons/hicolor/index.theme
. To
perform the update you must have GTK+-2.24.24 or GTK+-3.12.2
installed and issue the following command as the
root
user:
gtk-update-icon-cache
CC=gcc
: This environment variable
ensures that gcc is used if clang is installed. The build
fails with the clang compiler.
--with-rcdir=/tmp/cupsinit
:
This switch tells the build process to install the shipped
bootscript into /tmp
instead of
/etc/rc.d
.
--with-system-groups=lpadmin
:
This switch ensures that only lpadmin
will be used as the Cups administrative group.
--disable-libusb
: Use this switch
if you have installed libusb-1.0.19, but wish to use the kernel
usblp driver.
--enable-libpaper
: Use this
switch if you have installed libpaper and wish to use it with
Cups.
--disable-gnutls
--enable-openssl
: This switch tells the build process
to use OpenSSL-1.0.1i instead of GnuTLS-3.3.7.
The current version of GnuTLS might produce lot of warnings
during the Cups build.
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 ghostscript-9.14 to convert PostScript to raster images and a driver (e.g., from Gutenprint-5.2.10) 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.
If you want the Cups print service to start automatically when the system is booted, install the init script included in the blfs-bootscripts-20140919 package:
make install-cups
instructs the printing system to accept print jobs to the specified destinations. |
|
cancels existing print jobs from the print queues. |
|
exports printers to the Samba software for use with Windows clients. |
|
is a Cups program configuration utility. |
|
updates or queries the cupsd.conf file for a server. |
|
is the scheduler for the Common Unix Printing System. |
|
is a front-end to the Cups filter subsystem which allows you to convert a file to a specific format. |
|
tests the conformance of PostScript files. |
|
tests the conformance of PPD files. |
|
finds internet printing protocol printers. |
|
sends IPP requests to the specified URI and tests and/or displays the results. |
|
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. |
|
compiles PPDC source files into one or more PPD files. |
|
reads a driver information file and produces a HTML summary page that lists all of the drivers in a file and the supported options. |
|
imports one or more PPD files into a PPD compiler source file. |
|
merges two or more PPD files into a single, multi-language PPD file. |
|
extracts UI strings from PPDC source files and updates either a GNU gettext or Mac OS X strings format message catalog source file for translation. |
|
instructs the printing system to reject print jobs to the specified destinations. |
|
contains the Cups API functions. |
Last updated on 2014-09-11 20:34:26 -0700
The CUPS Filters package contains backends, filters and other software that was once part of the core CUPS distribution but is no longer maintained by Apple Inc.
This package is known to build and work properly using an LFS-7.6 platform.
Download (HTTP): http://www.openprinting.org/download/cups-filters/cups-filters-1.0.58.tar.xz
Download MD5 sum: 9b6d607b4041e5ee9a8787e7585a8e9e
Download size: 1.3 MB
Estimated disk space required: 33 MB (additional 2 MB for the tests)
Estimated build time: 0.3 SBU
Cups-1.7.5, GLib-2.40.0, IJS-0.35, Little CMS-2.6, Poppler-0.26.4 and Qpdf-5.1.2
libjpeg-turbo-1.3.1, libpng-1.6.13 and LibTIFF-4.0.3
Avahi-0.6.31, PHP-5.6.0 (use of this might be broken) and acroread
ghostscript-9.14 (Needed for PostScript printers), or Gutenprint-5.2.10 (for supported printers), or other printer drivers
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/cups-filters
Install CUPS Filters by running the following commands:
./configure --prefix=/usr \ --sysconfdir=/etc \ --localstatedir=/var \ --docdir=/usr/share/doc/cups-filters-1.0.58 \ --without-rcdir \ --with-gs-path=/usr/bin/gs \ --with-pdftops-path=/usr/bin/gs \ --disable-static && make
To test the results, issue: make check 2>&1 >testlog.
Now, as the root
user:
make install
--without-rcdir
: This
switch disables installation of the bundled bootscript which
is not compatible with BLFS.
--with-gs-path=/usr/bin/gs
:
This switch defines the path to the GhostScript binary in case ghostscript-9.14 is not installed at
build time.
--with-pdftops-path=/usr/bin/gs
:
This switch defines the path to the GhostScript binary in case ghostscript-9.14 is not installed at
build time.
--disable-static
:
This switch prevents installation of static versions of the
libraries.
make check 2>&1 >testlog: the testsuite dumps a stream of bytes into the input buffer after it finishes. Sending the output to a file keeps the history usable, but some debug information will still appear on the screen.
--with-test-path=
: if you wish to
run the tests, but you do not have the default VALUE
/usr/share/fonts/dejavu/DejaVuSans.ttf
use
this switch to specify where DejaVuSans.ttf
(or perhaps some other text
TTF font - untested) is located.
Last updated on 2014-09-11 20:34:26 -0700
Ghostscript is a versatile processor for PostScript data with the ability to render PostScript to different targets. It used to be part of the cups printing stack, but is no longer used for that.
This package is known to build and work properly using an LFS-7.6 platform.
Download (HTTP): http://downloads.ghostscript.com/public/ghostscript-9.14.tar.bz2
Download MD5 sum: 75f2e8ab8891d052ade9b64eb4eb5294
Download size: 30 MB
Estimated disk space required: 212 MB (includes installing libgs.so, add 5 MB if the fonts are installed)
Estimated build time: 2.3 SBU (includes building and installing libgs.so)
If you wish, you can download additional fonts.
Standard Fonts
Download (HTTP): http://downloads.sourceforge.net/gs-fonts/ghostscript-fonts-std-8.11.tar.gz
Download MD5 sum: 6865682b095f8c4500c54b285ff05ef6
Download size: 3.7 MB
Other Fonts
Download (HTTP): http://downloads.sourceforge.net/gs-fonts/gnu-gs-fonts-other-6.0.tar.gz
Download MD5 sum: 33457d3f37de7ef03d2eea05a9e6aa4f
Download size: 796 KB
FreeType-2.5.3, libjpeg-turbo-1.3.1, libpng-1.6.13, LibTIFF-4.0.3, and Little CMS-2.6
Cairo-1.12.16, Cups-1.7.5, Fontconfig-2.11.1 (required, if you are installing any suggested font), GTK+-2.24.24, libidn-1.29, libpaper-1.1.24+nmu3, Little CMS-1.19 (not used by default, nor if lcms2 is present or found), and X Window System
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/gs
The Ghostscript build system is not user-friendly. In order to use system copies of various graphics libraries, you must do it using unconventional methods.
GPL Ghostscript includes (old) copies of several libraries. Some of these seem to have been patched to fix known vulnerabilities, but others of these copies are less-well maintained. To ensure that any future fixes are applied throughout the whole system, it is recommended that you first install the released versions of these libraries and then configure GPL Ghostscript to link to them.
If you have installed these dependencies on your system, remove the copies of expat, freetype, lcms2, libjpeg, and libpng:
sed -i 's/ZLIBDIR=src/ZLIBDIR=$includedir/' configure.ac configure && rm -rf expat freetype lcms2 jpeg libpng
Compile Ghostscript:
rm -rf zlib && ./configure --prefix=/usr --disable-compile-inits \ --enable-dynamic --with-system-libtiff && make
The shared library depends on GTK+-2.24.24. It is only used in external programs like ImageMagick-6.8.9-7.
To compile the shared library libgs.so
, run the following additional
command as an unprivileged user:
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 Window System terminal):
bin/gs -Ilib -IResource/Init -dBATCH examples/tiger.eps
Now, as the root
user:
make install
If you want the shared library too:
make soinstall && install -v -m644 base/*.h /usr/include/ghostscript && ln -v -s ghostscript /usr/include/ps
Now make the documentation accessible from the normal place:
ln -sfv ../ghostscript/9.14/doc /usr/share/doc/ghostscript-9.14
If you have downloaded any fonts, unpack them 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 --no-same-owner &&
fc-cache -v /usr/share/ghostscript/fonts/
sed -i 's/ZLIBDIR=src/ZLIBDIR=$includedir/' ... : Fix to build with system zlib.
rm -rf zlib: zlib was installed as part of LFS.
--disable-compile-inits
: This
option makes gs
and libgs.so
slightly smaller.
--with-system-libtiff
: Remove
this option if you've not installed LibTIFF-4.0.3.
install -v -m644 base/*.h... : 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 ghostscript /usr/include/ps: Some packages expect to find the interface headers in an alternate location.
ln -sfv ../ghostscript-9.14/doc ... : This puts a symbolic link to the documentation where it is expected to be found.
--disable-cups
: this option will
save a tiny amount of space by not linking gs and libgs.so
to the Cups-1.7.5 libraries if you
have installed those.
is an interpreter for Adobe Systems' PostScript(tm) and Portable Document Format (PDF). |
|
provides Ghostscript functionality to other programs, such as GSView, ImageMagick, and libspectre. |
GPL Ghostscript provides many different scripts used to convert PostScript, PDF, and other formats. Please refer to the HTML documentation or the man pages for information about the capabilities provided.
Last updated on 2014-09-17 02:51:54 -0700
The Gutenprint (formerly Gimp-Print) package contains high quality drivers for many brands and models of printers for use with ghostscript-9.14, Cups-1.7.5, Foomatic, and the GIMP-2.0. See a list of supported printers at http://gutenprint.sourceforge.net/p_Supported_Printers.php.
This package is known to build and work properly using an LFS-7.6 platform.
Download (HTTP): http://downloads.sourceforge.net/gimp-print/gutenprint-5.2.10.tar.bz2
Download MD5 sum: 9ff027103bafac419c37e19da75163ae
Download size: 6.0 MB
Estimated disk space required: 73 MB
Estimated build time: 0.5 SBU
Cups-1.7.5, and Gimp-2.8.14
ImageMagick-6.8.9-7, texlive-20140525, Doxygen-1.8.8, and DocBook-utils-0.6.14
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/gutenprint
If you intend to use escputil with a USB-connected Epson Stylus printer for commands such as --ink-level which need to access the raw device, you must enable the kernel's usblp driver. Enable the following options in your kernel configuration and recompile the kernel:
Device Drivers ---> USB support ---> OHCI HCD (USB 1.1) support: Y or M UHCI HCD (most Intel and VIA) support: Y or M USB Printer support: Y or M
Install Gutenprint by running the following commands:
sed -i 's|$(PACKAGE)/doc|doc/$(PACKAGE)-$(VERSION)|' \ {,doc/,doc/developer/}Makefile.in && ./configure --prefix=/usr --disable-static && make
To test the results, issue: make check. When last tested (version 5.2.7, LFS-7.1, on a uniprocessor box which is admittedly short of memory) this took more than 800 SBUs (more than two days for that box) and used an extra 678 MB of disk space.
Now, as the root
user:
make install && install -v -m755 -d /usr/share/doc/gutenprint-5.2.10/api/gutenprint{,ui2} && install -v -m644 doc/gutenprint/html/* \ /usr/share/doc/gutenprint-5.2.10/api/gutenprint && install -v -m644 doc/gutenprintui2/html/* \ /usr/share/doc/gutenprint-5.2.10/api/gutenprintui2
sed -i '...'
...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
.
--disable-static
: This switch
prevents the static libraries being installed.
For CUPS to see newly
installed print drivers, it has to be restarted (as the
root
user):
/etc/rc.d/init.d/cups restart
Then point your web browser to http://localhost:631/ to add a new printer to CUPS.
Last updated on 2014-09-11 20:34:26 -0700
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.
This package is known to build and work properly using an LFS-7.6 platform.
Download (HTTP): http://fossies.org/linux/misc//sane-backends-1.0.24.tar.gz
Download MD5 sum: 1ca68e536cd7c1852322822f5f6ac3a4
Download size: 5.6 MB
Estimated disk space required: 97 MB
Estimated build time: 1 SBU
Download (HTTP): http://alioth.debian.org/frs/download.php/file/1140/sane-frontends-1.0.14.tar.gz
Download (FTP): ftp://ftp2.sane-project.org/pub/sane/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
Avahi-0.6.31, Cups-1.7.5, libjpeg-turbo-1.3.1, LibTIFF-4.0.3, libusb-1.0.19, Net-SNMP, libieee1284, libgphoto2, Video4Linux, and texlive-20140525
X Window System, GTK+-2.24.24, and Gimp-2.8.14
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-1.0.19 package. For HP devices, you may need hplip. Ensure you have the necessary drivers properly configured to access the devices.
You may safely disregard any messages printed on the screen when you unpack the tarball.
The SANE daemon should run
with its own group. Create this group by issuing the
following commands as the root
user:
groupadd -g 70 scanner
The user building SANE-backends should be a member of
the scanner
group before
proceeding. After you have added the user building the
package to the scanner
group, issue the following command to create a new shell:
su $(whoami)
Check the output of the groups
command and
ensure the user is a member of the scanner
group.
For a USB scanner, if you are linking to libusb-1.0.19, include the configure switch --enable-libusb_1_0. Install SANE-backends by running the following commands:
./configure --prefix=/usr \ --sysconfdir=/etc \ --localstatedir=/var \ --with-docdir=/usr/share/doc/sane-backend-1.0.24 \ --with-group=scanner && make && exit
If you want to test the results, some files need to be fixed:
sed -i -e 's/Jul 31 07:52:48/Oct 7 08:58:33/' \ -e 's/1.0.24git/1.0.24/' \ testsuite/tools/data/db.ref \ testsuite/tools/data/html-mfgs.ref \ testsuite/tools/data/usermap.ref \ testsuite/tools/data/html-backends-split.ref \ testsuite/tools/data/udev+acl.ref \ testsuite/tools/data/udev.ref
To test the results, issue: make check.
Now, as the root
user:
make install && install -m 644 -v tools/udev/libsane.rules \ /etc/udev/rules.d/65-scanner.rules && chgrp -v scanner /var/lock/sane
With the scanner on, run scanimage -L and the name and location of the device should appear. Of course, you need the device drivers configured, in order to run this test.
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.999. For a list of frontend packages, see http://www.sane-project.org/sane-frontends.html.
To install SANE-frontends, use the following commands:
sed -i -e "/SANE_CAP_ALWAYS_SETTABLE/d" src/gtkglue.c && ./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
If the plugin xscanimage is disabled in GIMP's menu, in order to enable it, "create" a blank image using the menu or Ctrl-N. After that, it is enabled.
--sysconfdir=/etc
:
This switch installs the configuration files in /etc/sane.d
instead of /usr/etc/sane.d
.
--with-group=scanner
:
This parameter causes the directory created for the locking
files to be group owned by the scanner
group instead of the default
uucp
group.
exit: This command is used to exit the shell created by the su command.
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.
Add any desired users to the scanner
group.
If you want to access a network scanner, include two
lines in net.conf
, as
root
user (make sure to
replace <server_ip> by the actual value, below):
cat >> /etc/sane.d/net.conf << "EOF" connect_timeout = 60 <server_ip> EOF
On the server side, include the client ip in the access
list of /etc/sane.d/saned.conf
, restart the
saned
daemon, and make sure the firewall, if any, is open to
the client.
If you use a desktop environment like Gnome or KDE you may wish to create a
xscanimage.desktop
file so
that xscanimage appears
in the panel's menus. As the root
user:
mkdir -pv /usr/share/{applications,pixmaps} && cat > /usr/share/applications/xscanimage.desktop << "EOF" && [Desktop Entry] Encoding=UTF-8 Name=XScanImage - Scanning Comment=Acquire images from a scanner Exec=xscanimage Icon=xscanimage Terminal=false Type=Application Categories=Application;Graphics EOF ln -svf ../sane/xscanimage-icon-48x48-2.png /usr/share/pixmaps/xscanimage.png
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 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 2014-09-20 08:52:44 -0700
XSane is another front end for SANE-1.0.24. It has additional features to improve the image quality and ease of use compared to xscanimage.
This package is known to build and work properly using an LFS-7.6 platform.
Download (HTTP): http://www.xsane.org/download/xsane-0.999.tar.gz
Download MD5 sum: 9927f21e1ab6ba96315e7f0e30746deb
Download size: 2.9 MB
Estimated disk space required: 23 MB
Estimated build time: 0.2 SBU
GTK+-2.24.24 and SANE-1.0.24 (back ends)
Little CMS-1.19 and Gimp-2.8.14
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/xsane
Install XSane by running the following commands:
sed -i -e 's/png_ptr->jmpbuf/png_jmpbuf(png_ptr)/' src/xsane-save.c && ./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.999 install && ln -v -s ../../doc/xsane-0.999 /usr/share/sane/xsane/doc
A browser of your choice can be used to get inline help,
using the following command, as the root
user:
ln -v -s <browser> /usr/bin/netscape
Be sure to replace <browser> with the browser of your choice on your system.
Alternatively, if the environment variable BROWSER is set to the browser you want to use, eg, BROWSER="/usr/bin/firefox", the first time you run xsane, it will be recorded in ~/.sane/xsane/xsane.rc. If you wish to change it, edit this file, or remove it, and use the instructions above, so that a new one is created.
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.999 /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 2014-09-20 08:52:44 -0700
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.
This package is known to build and work properly using an LFS-7.6 platform.
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 docdir=/usr/share/doc 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 2014-09-12 12:02:55 -0700
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.
This package is known to build and work properly using an LFS-7.6 platform.
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-6.0
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 2014-09-12 12:02:55 -0700
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.
This package is known to build and work properly using an LFS-7.6 platform.
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-6.0
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 2014-09-12 12:02:55 -0700
The OpenSP package contains a C++ library for using SGML/XML files. This is useful for validating, parsing and manipulating SGML and XML documents.
This package is known to build and work properly using an LFS-7.6 platform.
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 nine of the 23 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 2014-09-12 12:02:55 -0700
The OpenJade package contains a DSSSL engine. This is useful for SGML and XML transformations into RTF, TeX, SGML and XML.
This package is known to build and work properly using an LFS-7.6 platform.
Download (HTTP): http://downloads.sourceforge.net/openjade/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
First fix a compilation problem identified in gcc-4.6 and later:
patch -Np1 -i ../openjade-1.3.2-gcc_4.6-1.patch
Now fix a compilation problem with perl-5.16 and later:
sed -i -e '/getopts/{N;s#&G#g#;s#do .getopts.pl.;##;}' \ -e '/use POSIX/ause Getopt::Std;' msggen.pl
Install OpenJade by running the following commands:
./configure --prefix=/usr \ --mandir=/usr/share/man \ --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.
As the root
user:
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 2014-09-12 12:02:55 -0700
The DocBook DSSSL Stylesheets package contains DSSSL stylesheets. These are used by OpenJade or other tools to transform SGML and XML DocBook files.
This package is known to build and work properly using an LFS-7.6 platform.
Download (HTTP): http://downloads.sourceforge.net/docbook/docbook-dsssl-1.79.tar.bz2
Download (FTP): ftp://mirror.ovh.net/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
Download (HTTP): http://downloads.sourceforge.net/docbook/docbook-dsssl-doc-1.79.tar.bz2
Download MD5 sum: 9a7b809a21ab7d2749bb328334c380f2
Download size: 142 KB
docbook-3.1, docbook-4.5, OpenSP-1.5.2 and OpenJade-1.3.2
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/docbook-dsssl
If you downloaded the documentation, run:
tar -xf ../docbook-dsssl-doc-1.79.tar.bz2 --strip-components=1
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-3.1,
docbook-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 as the root
user:
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
Finally, clean up:
rm jtest.rtf test.rtf c1.htm
Last updated on 2014-09-12 12:02:55 -0700
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.
This package is known to build and work properly using an LFS-7.6 platform.
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-1.79, and docbook-3.1
SGMLSpm-1.1 (for conversion to man and texinfo), and Lynx-2.8.8rel.2 or Links-2.8 or w3m-0.5.3 (for conversion to ASCII text)
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/docbook-utils
Install DocBook-utils by running the following commands:
patch -Np1 -i ../docbook-utils-0.6.14-grep_fix-1.patch && sed -i 's:/html::' doc/HTML/Makefile.in && ./configure --prefix=/usr --mandir=/usr/share/man && make
This package does not come with a test suite.
Now, as the root
user:
make docdir=/usr/share/doc install
Many packages use an alternate name for the DocBook-utils scripts. If you wish to
create these alternate names, use the following command as
the root
user:
for doctype in html ps dvi man pdf rtf tex texi txt do ln -svf docbook2$doctype /usr/bin/db2$doctype done
The jw script uses the which command to locate required utilities. You must install Which-2.20 before attempting to use any of the DocBook-utils programs.
patch -Np1 -i ../docbook-utils-0.6.14-grep_fix-1.patch: This patch corrects the syntax in the jw (Jade Wrapper) script which is at the heart of much db2* processing, so that the current version of Grep will not reject it.
sed -i 's:/html::' doc/HTML/Makefile.in: This command changes the installation directory of the HTML documents.
docdir=/usr/share/doc
: This
option is placed on the make
install line because is is not recognized by
configure.
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 2014-09-12 12:02:55 -0700
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.
This package is known to build and work properly using an LFS-7.6 platform.
Download (HTTP): http://www.docbook.org/xml/4.5/docbook-xml-4.5.zip
Download (FTP): ftp://mirror.ovh.net/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 2014-09-10 06:19:10 -0700
The DocBook XSL Stylesheets package contains XSL stylesheets. These are useful for performing transformations on XML DocBook files.
This package is known to build and work properly using an LFS-7.6 platform.
Download (HTTP): http://downloads.sourceforge.net/docbook/docbook-xsl-1.78.1.tar.bz2
Download MD5 sum: 6dd0f89131cc35bf4f2ed105a1c17771
Download size: 4.8 MB
Estimated disk space required: 49 MB (includes installing optional documentation)
Estimated build time: less than 0.1 SBU
Optional documentation
Download (HTTP): http://downloads.sourceforge.net/docbook/docbook-xsl-doc-1.78.1.tar.bz2
Download MD5 sum: 77b63a06db2db2b692dcb96c2c64dc45
Download size: 1.0 MB
Ruby-2.1.2 (to utilize the “epub” stylesheets)
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/docbook-xsl
If you downloaded the optional documentation tarball, unpack it with the following command:
tar -xf ../docbook-xsl-doc-1.78.1.tar.bz2 --strip-components=1
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.78.1 && cp -v -R VERSION common eclipse epub extensions fo highlighting html \ htmlhelp images javahelp lib manpages params profiling \ roundtrip slides template tests tools webhelp website \ xhtml xhtml-1_1 \ /usr/share/xml/docbook/xsl-stylesheets-1.78.1 && ln -s VERSION /usr/share/xml/docbook/xsl-stylesheets-1.78.1/VERSION.xsl && install -v -m644 -D README \ /usr/share/doc/docbook-xsl-1.78.1/README.txt && install -v -m644 RELEASE-NOTES* NEWS* \ /usr/share/doc/docbook-xsl-1.78.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.78.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.78.1" \ "/usr/share/xml/docbook/xsl-stylesheets-1.78.1" \ /etc/xml/catalog && xmlcatalog --noout --add "rewriteURI" \ "http://docbook.sourceforge.net/release/xsl/1.78.1" \ "/usr/share/xml/docbook/xsl-stylesheets-1.78.1" \ /etc/xml/catalog && xmlcatalog --noout --add "rewriteSystem" \ "http://docbook.sourceforge.net/release/xsl/current" \ "/usr/share/xml/docbook/xsl-stylesheets-1.78.1" \ /etc/xml/catalog && xmlcatalog --noout --add "rewriteURI" \ "http://docbook.sourceforge.net/release/xsl/current" \ "/usr/share/xml/docbook/xsl-stylesheets-1.78.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 2014-09-10 06:19:10 -0700
Itstool extracts messages from XML files and outputs PO template files, then merges translations from MO files to create translated XML files. It determines what to translate and how to chunk it into messages using the W3C Internationalization Tag Set (ITS).
This package is known to build and work properly using an LFS-7.6 platform.
Download (HTTP): http://files.itstool.org/itstool/itstool-2.0.2.tar.bz2
Download MD5 sum: d472d877a7bc49899a73d442085b2f93
Download size: 96 KB
Estimated disk space required: 784 KB
Estimated build time: less than 0.1 SBU
docbook-xml-4.5 and Python-2.7.8
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/itstool
Install Itstool 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 2014-09-14 12:09:32 -0700
The xmlto is a front-end to an XSL toolchain. It chooses an appropriate stylesheet for the conversion you want and applies it using an external XSL-T processor. It also performs any necessary post-processing.
This package is known to build and work properly using an LFS-7.6 platform.
Download (HTTP): https://fedorahosted.org/releases/x/m/xmlto/xmlto-0.0.26.tar.bz2
Download MD5 sum: c90a47c774e0963581c1ba57235f64f4
Download size: 120 KB
Estimated disk space required: 1.4 MB
Estimated build time: less than 0.1 SBU
docbook-xml-4.5, docbook-xsl-1.78.1, and libxslt-1.1.28
dblatex, PassiveTeX, and fop-1.1
One of w3m-0.5.3, Links-2.8, or Lynx-2.8.8rel.2
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/xmlto
Install xmlto 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 2014-09-12 12:02:55 -0700
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”.
This package is known to build and work properly using an LFS-7.6 platform.
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
PSUtils-p17, and Cups-1.7.5 (otherwise, a2ps will use the cat >/dev/lp0 command instead of lpr for sending its output to the printer)
ghostscript-9.14, libpaper-1.1.24+nmu3, texlive-20140525, X Window System, Adobe Reader, and Ghostview
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/A2PS
Install a2ps by running the following commands:
autoconf && sed -i -e "s/GPERF --version |/& head -n 1 |/" \ -e "s|/usr/local/share|/usr/share|" configure && ./configure --prefix=/usr \ --sysconfdir=/etc/a2ps \ --enable-shared \ --with-medium=letter && make && touch doc/*.info
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.bz2 && cp -v i18n-fonts-0.1/fonts/* /usr/share/a2ps/fonts && cp -v i18n-fonts-0.1/afm/* /usr/share/a2ps/afm && pushd /usr/share/a2ps/afm && ./make_fonts_map.sh && mv fonts.map.new fonts.map && popd
autoconf: This command is used to recreate the configure script. This is required because there is an issue in the mktime test which causes the configure script to hang for 60 seconds and then report that there is no working mktime function.
sed -i "s/GPERF --version |/& head -n 1 |/" configure: This fixes a bug in the handling of the version output of gperf.
sed -i "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.
touch doc/*.info: This command avoids trying to regenerate the info files. This is an older package and the current .texi files will produce errors preventing make install from working properly.
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 2014-09-20 12:05:45 -0700
Enscript converts ASCII text files to PostScript, HTML, RTF, ANSI and overstrikes.
This package is known to build and work properly using an LFS-7.6 platform.
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://ftp.gnu.org/gnu/enscript/enscript-1.6.6.tar.gz
Download (FTP): ftp://mirror.ovh.net/gentoo-distfiles/distfiles/enscript-1.6.6.tar.gz
Download MD5 sum: 3acc242b829adacabcaf28533f049afd
Download size: 1.3 MB
Estimated disk space required: 14 MB
Estimated build time: 0.1 SBU
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/Enscript
Install Enscript by running the following commands:
./configure --prefix=/usr \ --sysconfdir=/etc/enscript \ --localstatedir=/var \ --with-media=Letter && make && pushd docs && makeinfo --plaintext -o enscript.txt enscript.texi && popd
If you have texlive-20140525 installed, you can create Postscript and PDF documentation by issuing: make -C docs ps pdf.
To test the results, issue: make check.
Now, as the root
user:
make install && install -v -m755 -d /usr/share/doc/enscript-1.6.6 && install -v -m644 README* *.txt docs/*.txt \ /usr/share/doc/enscript-1.6.6
If you built Postscript and PDF documentation, install it
using the following command as the root
user:
install -v -m644 docs/*.{dvi,pdf,ps} \ /usr/share/doc/enscript-1.6.6
--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 size instead of
the A4 default.
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 2014-09-20 12:05:45 -0700
PSUtils is a set of utilities to manipulate PostScript files.
This package is known to build and work properly using an LFS-7.6 platform.
Download (HTTP): http://pkgs.fedoraproject.org/repo/pkgs/psutils/psutils-p17.tar.gz/b161522f3bd1507655326afa7db4a0ad/psutils-p17.tar.gz
Download MD5 sum: b161522f3bd1507655326afa7db4a0ad
Download size: 68 KB
Estimated disk space required: 740 KB
Estimated build time: less than 0.1 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 2014-09-20 12:05:45 -0700
ePDFView is a free standalone lightweight PDF document viewer using Poppler and GTK+ libraries. It is a good replacement for Evince as it does not rely upon GNOME libraries.
This package is known to build and work properly using an LFS-7.6 platform.
Download (HTTP): http://anduin.linuxfromscratch.org/sources/BLFS/conglomeration/epdfview/epdfview-0.1.8.tar.bz2
Download MD5 sum: e50285b01612169b2594fea375f53ae4
Download size: 456 KB
Estimated disk space required: 6 MB
Estimated build time: less than 0.1 SBU
Poppler-0.26.4 and GTK+-2.24.24
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/epdfview
Install ePDFView by running the following commands:
patch -Np1 -i ../epdfview-0.1.8-fixes-1.patch && ./configure --prefix=/usr && make
This package does not come with a test suite.
Now, as the root
user:
make install
patch -Np1 -i ../epdfview-0.1.8-fixes-1.patch The patch does three things: fixes compiling with glib-2.32 or greater, corrects red appearing as blue with recent versions of poppler, and allows the application to compile when Cups-1.7.5 has been installed.
Last updated on 2014-09-10 18:59:51 -0700
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.
This package is known to build and work properly using an LFS-7.6 platform.
Download (HTTP): http://archive.apache.org/dist/xmlgraphics/fop/source/fop-1.1-src.tar.gz
Download MD5 sum: 7b63af514b28c06fe710a794cbf4d68e
Download size: 23 MB
Estimated disk space required: 206 MB
Estimated build time: 0.5 SBU
Required packages
Java Advanced Imaging (JAI) API components
(architecture dependent):
http://download.java.net/media/jai/builds/release/1_1_3/jai-1_1_3-lib-linux-i586.tar.gz
a2cbc155ef3899bcde9c74a8035764b3
3.4 MB
or
http://download.java.net/media/jai/builds/release/1_1_3/jai-1_1_3-lib-linux-amd64.tar.gz
4a906db35612f668aeef2c0606d7075b
3.4 MB
JUnit-4.11 (to run tests), X Window System (to run tests), JIMI SDK, XMLUnit, JAI Image I/O Tools, JEuclid, PMD (requires Jaxen), and Forrest (Forrest used only to build 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 can be
found via the CLASSPATH
environment variable.
Next install the JAI API components. As the root
user:
case `uname -m` in i?86) tar -xf ../jai-1_1_3-lib-linux-i586.tar.gz cp -v jai-1_1_3/lib/{jai*,mlibwrapper_jai.jar} $JAVA_HOME/jre/lib/ext/ cp -v jai-1_1_3/lib/libmlib_jai.so $JAVA_HOME/jre/lib/i386/ ;; x86_64) tar -xf ../jai-1_1_3-lib-linux-amd64.tar.gz cp -v jai-1_1_3/lib/{jai*,mlibwrapper_jai.jar} $JAVA_HOME/jre/lib/ext/ cp -v jai-1_1_3/lib/libmlib_jai.so $JAVA_HOME/jre/lib/amd64/ ;; esac
Compile fop by running the following commands:
ant compile && ant jar-main && ant javadocs && mv build/javadocs .
If Forrest is installed, build the full set of documentation:
ant docs
To test the application, run ant junit-all. The hyphenation tests will fail. To see a list of other test targets, use ant -p. You must run the tests from an X-window using a GL-aware Xorg server or some of the JUnit tests will hang.
Now, as the root
user:
install -v -d -m755 /opt/fop-1.1 && cp -v KEYS LICENSE NOTICE README /opt/fop-1.1 && cp -va build conf examples fop* javadocs lib status.xml /opt/fop-1.1 && ln -v -sf fop-1.1 /opt/fop
ant target
: This reads the file
build.xml
and builds the target
files.
ln -v -sf fop-1.1
/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"
.
To include the fop script in your path, update your personal or system-wide profile with the following:
PATH=$PATH:/opt/fop
Running fop
can be somewhat verbose. The default logging level can be
changed from INFO to any of FINEST, FINER, FINE, CONFIG,
INFO, WARNING, SEVERE, ALL, or OFF. To do this, edit
$JAVA_HOME/jre/lib/logging.properties
and change the entries for .leval
and java.util.logging.ConsoleHandler.level
to
the desired value.
/opt/fop/{build,lib}
; JAI components
include libmlib_jai.so, jai_codec.jar, jai_core.jar, and
mlibwrapper_jai.jar
Last updated on 2014-09-20 12:05:45 -0700
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.
This package is known to build and work properly using an LFS-7.6 platform.
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:
patch -Np1 -i ../paps-0.6.8-freetype_fix-1.patch && ./configure --prefix=/usr --mandir=/usr/share/man && 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 2014-09-11 20:34:26 -0700
This chapter includes applications that create output equivalent to typesetting.
The TeX Live package is a comprehensive TeX document production system. It includes TeX, LaTeX2e, ConTeXt, Metafont, MetaPost, BibTeX and many other programs; an extensive collection of macros, fonts and documentation; and support for typesetting in many different scripts from around the world.
It is necessary to use a binary installer for the first
install. This will provide the programs, the scripts, and a
lot of supporting files and documentation. After that, you
can rebuild the programs from source by following the
instructions for texlive-20140525 and biber-1.8. The
installer is updated frequently, so its md5sum will change if
it is newer than what is shown below. Newer versions of the
installer are expected to work with these instructions, for
so long as they install to a 2014/
directory.
This package is known to build and work properly using an LFS-7.6 platform.
Download (HTTP): http://mirror.ctan.org/systems/texlive/tlnet/install-tl-unx.tar.gz
Download MD5 sum: f5b1e909d5c2380cefd2cda83d288c00 (at 20140628)
Download size: 3.2 MB
Estimated disk space required: 3.8 GB
Estimated build time: varies, depending on network speed and traffic
The binaries are mostly linked to static libraries such as
libc.a
, but a few of the
programs and several scripts will fail if the following
packages are not present.
ghostscript-9.14 is dynamically loaded by dvisvgm, which is used by asy.
Xorg Libraries and libxcb-1.11 are needed for inimf, mf, pdfclose, pdfopen and xdvixaw. But if you are using asy, or using TeX to create a PDF file, you will need an X Window System (for PDF files, this is to support a PDF viewer of your choice, for example epdfview-0.1.8).
the optional non-wide-character ncurses library (for "some binary-only application") from the bottom of the Ncurses page in LFS is needed for xindy.run which is used by xindy
If you are building on 32-bit x86, the binary version of asy
needs FFTW,
GLU-9.0.0
and libreadline-5.2
: this only requires libreadline.so.5.2
which can be manually
copied from the shm/
directory
after running configure and make and then symlinked as
libreadline.so.5
.
Python-2.7.8 is used by many scripts.
Ruby-2.1.2 is used by some scripts, mostly within mtx_context which is part of conTeXt.
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/tl-installer
The TeX Live set of programs
with its supporting documents, fonts, and utilities is very
large. The upstream maintainers recommend placing all files
in a single directory structure. BLFS recommends /opt/texlive
.
As with any other package, unpack the installer and change
into its directory, install-tl-<CCYYMMDD>
. This directory
name changes when the installer is updated, so replace
<CCYYMMDD> by the correct directory name.
The distribution binaries installed below use static linking for general linux system libraries. Additional libraries or interpreters as specified in the dependencies section do not need to be present during the install, but the programs that need them will not run until their specific dependencies have been installed.
Now, as the root
user:
TEXLIVE_INSTALL_PREFIX=/opt/texlive ./install-tl
This command is interactive and allows selection or modification of platform, packages, directories, and other options. The full installation scheme will require about 3.8 gigabytes of disk space. The time to complete the download will depend on your internet connection speed and the number of packages selected.
After the package download is complete, the next step is to
make sure that the system can properly find the files. If you
set up your login scripts as recommended in The Bash Shell Startup
Files, update the needed paths by appending to the
extrapaths.sh
script. The
programs are always installed in an <ARCH>-linux
subdirectory and on 32-bit x86 this is always i386-linux. For
x86_64 and i?86 we can generate this as $TEXARCH:
export TEXARCH=$(uname -m | sed -e 's/i.86/i386/' -e 's/$/-linux/') && cat >> /etc/profile.d/extrapaths.sh << EOF pathappend /usr/share/man MANPATH pathappend /opt/texlive/2014/texmf-dist/doc/man MANPATH pathappend /usr/share/info INFOPATH pathappend /opt/texlive/2014/texmf-dist/doc/info INFOPATH pathappend /opt/texlive/2014/bin/$TEXARCH EOF unset TEXARCH
The standard MANPATH and INFOPATH path are specified above to ensure they are included. If they are already set in the boot script procedure, the pathappend function will ensure duplicates are removed, so including them here will do no harm.
The new paths can be immediately activated by running source /etc/profile.
At this point the binary installation is complete.
./install-tl --location
http://mirror.aut.ac.nz/CTAN/systems/texlive/tlnet/
:
use a variation of this if you wish to use a different
mirror, e.g. because you are in New Zealand but the installer
chooses to use an Australian mirror. The list of mirrors is
at http://ctan.org/mirrors.
Last updated on 2014-09-20 00:07:29 -0700
A binary version of the TeX Live package is installed at install-tl-unx. Here, we use that to rebuild the compiled programs from source.
This package is known to build and work properly using an LFS-7.6 platform.
Download (FTP): ftp://tug.org/texlive/historic/2014/texlive-20140525-source.tar.xz
Download MD5 sum: 09ee265ff51637827559affc7304078c
Download size: 40 MB
Estimated disk space required: 555 MB
Estimated build time: 8.4 SBU
install-tl-unx or a previous version of TeX Live (untested, you would need to alter the configure switches which refer to 2014 so that it overwrites your existing installation, or else copy everything to the location for the current year), and Clisp-2.49 (to build xindy which is an index processor for multi-lingual index creation)
ghostscript-9.14 (for dvisvgm - used by asymptote which provides a mathematical coordinate-based framework for technical drawing), X Window System
The source ships with its own versions of many libraries, and will use them unless it is forced to use the system versions. The following are recommended so that the system version will be used: Fontconfig-2.11.1, FreeType-2.5.3, GC-7.4.2, Graphite2-1.2.4, Harfbuzz-0.9.35 (linked to graphite2), ICU-53.1, libpaper-1.1.24+nmu3, libpng-1.6.13, Poppler-0.26.4
The source ships with its own versions of several libraries which are either not under active development, or only used for limited functionality. If you install these, as with some other optional dependencies in this book you will need to tell configure to use the system versions. GD, t1lib, ZZIPlib, TECkit
Some (re-installed) scripts will use Python-2.7.8 or Ruby-2.1.2.
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/texlive
These instructions will overwrite the corresponding files from the binary installer. As with the installer, change x86_64-linux to whatever matches your architecture.
Please note that installing from source will recompile the
binary programs and recreate the man
and info
files. It will also overwrite the scripts - some of these may
be older versions than those from the newer installer. It
will not recreate any
of the following: the more than 200 symlinks in the
x86_64-linux directory (some are alternate names, many are
pointers to the scripts), html files, PDF files, licenses,
README files, two config files (texmf.cnf
and texmfcnf.lua
), nor the many package and
font files in texmf-dist
and
texmf-var
, nor the files
recording the actions of the installer, and the ls-R
files listing what was originally
installed.
Asy and the rest of asymptote is by default not rebuilt, so we have to separately run configure and make in its directory.
mkdir texlive-build && cd texlive-build && ../configure \ --prefix=/opt/texlive/2014 \ --bindir=/opt/texlive/2014/bin/x86_64-linux \ --datarootdir=/opt/texlive/2014 \ --includedir=/usr/include \ --infodir=/opt/texlive/2014/texmf-dist/doc/info \ --libdir=/usr/lib \ --mandir=/opt/texlive/2014/texmf-dist/doc/man \ --disable-native-texlive-build \ --disable-static --enable-shared \ --with-system-cairo \ --with-system-fontconfig \ --with-system-freetype2 \ --with-system-graphite2 \ --with-system-harfbuzz \ --with-system-icu \ --with-system-libgs \ --with-system-libpng \ --with-system-pixman \ --with-system-poppler \ --with-system-xpdf \ --with-system-zlib \ --with-banner-add=" - BLFS" \ --enable-xindy \ --enable-xindy-rules \ --enable-xindy-doc \ --with-clisp-runtime=system
Asymptote has to be separately configured. It ships with its own copy of the gc source tarball, and will only use the system version if that local source is removed.
pushd ../utils/asymptote && rm -v gc-7.4.0.tar.gz && echo "ac_cv_lib_m_sqrt=yes" >config.cache && echo "ac_cv_lib_z_deflate=yes" >>config.cache && ./configure LIBS="-ltirpc " \ --prefix=/opt/texlive/2014/ \ --bindir=/opt/texlive/2014/bin/x86_64-linux \ --enable-texlive-build \ --datarootdir=/opt/texlive/2014/texmf-dist \ --infodir=/opt/texlive/2014/texmf-dist/doc/info \ --mandir=/opt/texlive/2014/texmf-dist/doc/man \ --cache-file=config.cache && popd && make && make -C ../utils/asymptote
To test the results, issue: make -k check && make -C utils/asymptote check.
Now, as the root
user:
make install && make -C ../utils/asymptote install
One part of the package remains to be rebuilt: biber-1.8.
--prefix=, --bindir=,
--datarootdir=, --infodir=, --mandir= ...
: these
switches ensure that the files installed from source will
overwrite the corresponding files previously installed by
install-tl.
--includedir=, --libdir=
...
: these switches ensure that the libraries
will be found at runtime, and that programs can be compiled
against them.
--disable-static
:
This switch prevents installation of static versions of the
libraries.
--enable-shared
: Use
shared versions of libkpathsea
and libptexenc
.
--with-system-...
:
Unless this parameter is used, the included versions of these
libraries will be statically compiled into the programs which
need them. If you decided not to install a recommended
library, omit the corresponding switches.
--with-system-xpdf
:
Uniquely, this parameter has a non-standard meaning, it tells
configure to
use the system-installed poppler headers and library. Again, omit
this if you have not installed poppler.
echo "ac_cv_lib_m_sqrt=yes" ...
LIBS="-ltirpc " >config.cache, ...
--cache-file=config.cache
: The configure scripts
in TeX Live are uncommon.
Asymptote not only has to be separately configured and built,
the configure script fails to find the shared libtirpc.so
. Passing that in LIBS breaks
the tests for (static) libm and (shared) libz, so we have to
fix things up, in much the same way as when cross-compiling.
--without-x
: use this (and omit
the configure and make in utils/asymptote
if you do not have Xorg
installed.
The programs included in TeX are too numerous to
individually list. Please refer to the individual
program HTML and PDF pages in the installation
directory's |
|
(kpathsearch) exists to look up a file in a list of directories. |
|
is a library for Japanese pTeX (publishing TeX). |
Last updated on 2014-09-19 14:19:42 -0700
Biber is a BibTeX replacement for users of biblatex, written in Perl. Unusually, the tarball itself is called just biblatex-biber.tar.gz but it will extract to a versioned directory. Please ensure you download it from the correct versioned directory at sourceforge, the 1.9 version is broken as-shipped.
This package is known to build and work properly using an LFS-7.6 platform.
Download (HTTP): http://sourceforge.net/projects/biblatex-biber/files/biblatex-biber/1.8/biblatex-biber.tar.gz
Download MD5 sum: 26b2134291ddd7851973a6c385e5545c
Download size: 2.0 MB
Estimated disk space required: 14 MB
Estimated build time: less than 0. SBU (0.3 SBU to run the tests)
autovivification-0.12 Business::ISBN-2.07 Business::ISMN-1.11 Business::ISSN-0.91 Data::Compare-1.24 Date::Simple-3.03 Encode::EUCJPASCII-0.03 Encode::HanExtra-0.23 Encode::JIS2K-0.02 File::Slurp-9999.19 IPC::Run3-0.048 Log::Log4perl-1.44 libwww-perl-6.08 List::AllUtils-0.08 Regexp::Common-2013031301 Text::BibTeX-0.69 Unicode::Collate-1.07 (only if your version of perl is less than 5.20.0) Unicode::LineBreak-2014.06 XML::LibXML::Simple-0.94 XML::LibXSLT-1.92 and XML::Writer-0.625
Readonly::XS-1.05, and File::Which-1.09 (to run the testsuite)
It is possible to install (all) missing dependencies automatically. Begin by running perl ./Build.PL and then when it prompts you, become the root user and run ./Build installdeps
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/biber
Install Biber by running the following commands:
perl ./Build.PL && ./Build.PL
To test the results, enter: ./Build test
Now, as the root
user:
./Build install
Last updated on 2014-09-10 18:59:51 -0700
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/.
Copyright © 2001-2014 The BLFS Development Team
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
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
Advanced Technology Attachment
Advanced Television Systems Committee
Accessibility ToolKit
Audio Video Interleave
Abstract Window Toolkit
Basic Encoding Rules
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
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
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
Remote Authentication Dial-In User Service
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
Serial Advanced Technology Attachment
Standard Build Unit
Small Computer System Interface
Software Development Kit
Standard Generalized Markup Language
Self Monitoring Analysis and Reporting Technology
Server Message Block
Synchronized Multimedia Integration Language
Simple Mail Transfer 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