Copyright © 1999–2007 Gerard Beekmans
Copyright (c) 1999–2007, Gerard Beekmans
All rights reserved.
Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
Redistributions in any form must retain the above copyright notice, this list of conditions and the following disclaimer
Neither the name of “Linux From Scratch” nor the names of its contributors may be used to endorse or promote products derived from this material without specific prior written permission
Any material derived from Linux From Scratch must contain a reference to the “Linux From Scratch” project
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS “AS IS” AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
My adventures in Linux began in 1998 when I downloaded and installed my first distribution. After working with it for a while, I discovered issues I definitely would have liked to see improved upon. For example, I didn't like the arrangement of the bootscripts or the way programs were configured by default. I tried a number of alternative distributions to address these issues, yet each had its pros and cons. Finally, I realized that if I wanted full satisfaction from my Linux system, I would have to build my own from scratch.
What does this mean? I resolved not to use pre-compiled packages of any kind, nor CD-ROMs or boot disks that would install basic utilities. I would use my current Linux system to develop my own customized system. This “perfect” Linux system would then have the strengths of various systems without their associated weaknesses. In the beginning, the idea was rather daunting, but I remained committed to the idea that a system could be built that would conform to my needs and desires rather than to a standard that just did not fit what I was looking for.
After sorting through issues such as circular dependencies and compile-time errors, I created a custom-built Linux system that was fully operational and suitable to individual needs. This process also allowed me to create compact and streamlined Linux systems which are faster and take up less space than traditional operating systems. I called this system a Linux From Scratch system, or an LFS system for short.
As I shared my goals and experiences with other members of the Linux community, it became apparent that there was sustained interest in the ideas set forth in my Linux adventures. Such custom-built LFS systems serve not only to meet user specifications and requirements, but also serve as an ideal learning opportunity for programmers and system administrators to enhance their Linux skills. Out of this broadened interest, the Linux From Scratch Project was born.
This Linux From Scratch book provides readers with the background and instruction to design and build custom Linux systems. This book highlights the Linux from Scratch project and the benefits of using this system. Users can dictate all aspects of their system, including directory layout, script setup, and security. The resulting system will be compiled completely from the source code, and the user will be able to specify where, why, and how programs are installed. This book allows readers to fully customize Linux systems to their own needs and allows users more control over their system.
I hope you will have a great time working on your own LFS system, and enjoy the numerous benefits of having a system that is truly your own.
--
Gerard Beekmans
gerard AT linuxfromscratch D0T org
There are many reasons why somebody would want to read this book. The principal reason is to install a Linux system from the source code. A question many people raise is, “why go through all the hassle of manually building a Linux system from scratch when you can just download and install an existing one?” That is a good question and is the impetus for this section of the book.
One important reason for LFS's existence is to help people learn how a Linux system works from the inside out. Building an LFS system helps demonstrate what makes Linux tick, and how things work together and depend on each other. One of the best things that this learning experience provides is the ability to customize Linux to your own tastes and needs.
A key benefit of LFS is that it allows users to have more control over the system without relying on someone else's Linux implementation. With LFS, you are in the driver's seat and dictate every aspect of the system, such as the directory layout and bootscript setup. You also dictate where, why, and how programs are installed.
Another benefit of LFS is the ability to create a very compact Linux system. When installing a regular distribution, one is often forced to include several programs which are probably never used. These programs waste disk space, or worse, CPU cycles. It is not difficult to build an LFS system of less than 100 megabytes (MB), which is substantially smaller than the majority of existing installations. Does this still sound like a lot of space? A few of us have been working on creating a very small embedded LFS system. We successfully built a system that was specialized to run the Apache web server with approximately 8MB of disk space used. Further stripping could bring this down to 5 MB or less. Try that with a regular distribution! This is only one of the many benefits of designing your own Linux implementation.
We could compare Linux distributions to a hamburger purchased at a fast-food restaurant—you have no idea what might be in what you are eating. LFS, on the other hand, does not give you a hamburger. Rather, LFS provides the recipe to make the exact hamburger desired. This allows users to review the recipe, omit unwanted ingredients, and add your own ingredients to enhance the flavor of the burger. When you are satisfied with the recipe, move on to preparing it. It can be made to exact specifications—broil it, bake it, deep-fry it, or barbecue it.
Another analogy that we can use is that of comparing LFS with a finished house. LFS provides the skeletal plan of a house, but it is up to you to build it. LFS maintains the freedom to adjust plans throughout the process, customizing it to the user's needs and preferences.
An additional advantage of a custom built Linux system is security. By compiling the entire system from source code, you are empowered to audit everything and apply all the security patches desired. It is no longer necessary to wait for somebody else to compile binary packages that fix a security hole. Unless you examine the patch and implement it yourself, you have no guarantee that the new binary package was built correctly and adequately fixes the problem.
The goal of Linux From Scratch is to build a complete and usable foundation-level system. Readers who do not wish to build their own Linux system from scratch may not benefit from the information in this book. If you only want to know what happens while the computer boots, we recommend the “From Power Up To Bash Prompt” HOWTO located at http://axiom.anu.edu.au/~okeefe/p2b/ or on The Linux Documentation Project's (TLDP) website at http://www.tldp.org/HOWTO/From-PowerUp-To-Bash-Prompt-HOWTO.html. The HOWTO builds a system which is similar to that of this book, but it focuses strictly on creating a system capable of booting to a BASH prompt. Consider your objective. If you wish to build a Linux system while learning along the way, then this book is your best choice.
There are too many good reasons to build your own LFS system to list them all here. This section is only the tip of the iceberg. As you continue in your LFS experience, you will find the power that information and knowledge truly bring.
Building an LFS system is not a simple task. It requires a certain level of existing knowledge of Unix system administration in order to resolve problems, and correctly execute the commands listed. In particular, as an absolute minimum, the reader should already have the ability to use the command line (shell) to copy or move files and directories, list directory and file contents, and change the current directory. It is also expected that the reader has a reasonable knowledge of using and installing Linux software.
Because the LFS book assumes at least this basic level of skill, the various LFS support forums are unlikely to be able to provide you with much assistance; you will find that your questions regarding such basic knowledge will likely go unanswered, or you will simply be referred to the LFS essential pre-reading list.
Before building an LFS system, we recommend reading the following HOWTOs:
Software-Building-HOWTO http://www.tldp.org/HOWTO/Software-Building-HOWTO.html
This is a comprehensive guide to building and installing “generic” Unix software packages under Linux.
The Linux Users' Guide http://www.linuxhq.com/guides/LUG/guide.html
This guide covers the usage of assorted Linux software.
The Essential Pre-Reading Hint http://www.linuxfromscratch.org/hints/downloads/files/essential_prereading.txt
This is an LFS Hint written specifically for users new to Linux. It includes a list of links to excellent sources of information on a wide range of topics. Anyone attempting to install LFS should have an understanding of many of the topics in this hint.
Your host system should have the following software with the minimum versions indicated. This should not be an issue for most modern Linux distributions. Also note that many distributions will place software headers into separate packages, often in the form of “<package-name>-devel” or “<package-name>-dev”. Be sure to install those if your distribution provides them.
Bash-2.05a
Binutils-2.12 (Versions greater than 2.17 are not recommended as they have not been tested)
Bison-1.875
Bzip2-1.0.2
Coreutils-5.0 (or Sh-Utils-2.0, Textutils-2.0, and Fileutils-4.1)
Diffutils-2.8
Findutils-4.1.20
Gawk-3.0
Gcc-3.0.1 (Versions greater than 4.1.2 are not recommended as they have not been tested)
Glibc-2.2.5 (Versions greater than 2.5.1 are not recommended as they have not been tested)
Grep-2.5
Gzip-1.2.4
Linux Kernel-2.6.x (having been compiled with GCC-3.0 or greater)
The reason for the kernel version requirement is that thread-local storage support in Binutils will not be built and the Native POSIX Threading Library (NPTL) test suite will segfault if the host's kernel isn't at least a 2.6.x version compiled with a 3.0 or later release of GCC.
If the host kernel is either earlier than 2.6.x, or it was not compiled using a GCC-3.0 (or later) compiler, you will have to replace the kernel with one adhering to the specifications. There are two methods you can take to solve this. First, see if your Linux vendor provides a 2.6 kernel package. If so, you may wish to install it. If your vendor doesn't offer a 2.6 kernel package, or you would prefer not to install it, then you can compile a 2.6 kernel yourself. Instructions for compiling the kernel and configuring the boot loader (assuming the host uses GRUB) are located in Chapter 8.
Make-3.79.1
Patch-2.5.4
Sed-3.0.2
Tar-1.14
To see whether your host system has all the appropriate versions, run the following:
cat > version-check.sh << "EOF"
#!/bin/bash
# Simple script to list version numbers of critical development tools
bash --version | head -n1 | cut -d" " -f2-4
echo -n "Binutils: "; ld --version | head -n1 | cut -d" " -f3-4
bison --version | head -n1
bzip2 --version 2>&1 < /dev/null | head -n1 | cut -d" " -f1,6-
echo -n "Coreutils: "; chown --version | head -n1 | cut -d")" -f2
diff --version | head -n1
find --version | head -n1
gawk --version | head -n1
gcc --version | head -n1
/lib/libc.so.6 | head -n1 | cut -d" " -f1-7
grep --version | head -n1
gzip --version | head -n1
cat /proc/version
make --version | head -n1
patch --version | head -n1
sed --version | head -n1
tar --version | head -n1
EOF
bash version-check.sh
To make things easier to follow, there are a few typographical conventions used throughout this book. This section contains some examples of the typographical format found throughout Linux From Scratch.
./configure --prefix=/usr
This form of text is designed to be typed exactly as seen unless otherwise noted in the surrounding text. It is also used in the explanation sections to identify which of the commands is being referenced.
install-info: unknown option '--dir-file=/mnt/lfs/usr/info/dir'
This form of text (fixed-width text) shows screen output,
probably as the result of commands issued. This format is also
used to show filenames, such as /etc/ld.so.conf.
Emphasis
This form of text is used for several purposes in the book. Its main purpose is to emphasize important points or items.
http://www.linuxfromscratch.org/
This format is used for hyperlinks both within the LFS community and to external pages. It includes HOWTOs, download locations, and websites.
cat > $LFS/etc/group << "EOF"
root:x:0:
bin:x:1:
......
EOF
This format is used when creating configuration files. The first
command tells the system to create the file $LFS/etc/group from whatever is typed on the
following lines until the sequence end of file (EOF) is
encountered. Therefore, this entire section is generally typed as
seen.
<REPLACED TEXT>
This format is used to encapsulate text that is not to be typed as seen or for copy-and-paste operations.
[OPTIONAL TEXT]
This format is used to encapsulate text that is optional.
passwd(5)
This format is used to refer to a specific manual page
(hereinafter referred to simply as a “man” page). The number inside parentheses
indicates a specific section inside of man. For example, passwd has two man pages. Per
LFS installation instructions, those two man pages will be
located at /usr/share/man/man1/passwd.1 and /usr/share/man/man5/passwd.5. Both man pages
have different information in them. When the book uses
passwd(5) it is specifically
referring to /usr/share/man/man5/passwd.5. man passwd will print the first
man page it finds that matches “passwd”, which will be /usr/share/man/man1/passwd.1. For this example,
you will need to run man 5
passwd in order to read the specific page being
referred to. It should be noted that most man pages do not have
duplicate page names in different sections. Therefore,
man <program
name> is generally sufficient.
This book is divided into the following parts.
Part I explains a few important notes on how to proceed with the LFS installation. This section also provides meta-information about the book.
Part II describes how to prepare for the building process—making a partition, downloading the packages, and compiling temporary tools.
Part III guides the reader through the building of the LFS system—compiling and installing all the packages one by one, setting up the boot scripts, and installing the kernel. The resulting Linux system is the foundation on which other software can be built to expand the system as desired. At the end of this book, there is an easy to use reference listing all of the programs, libraries, and important files that have been installed.
The software used to create an LFS system is constantly being updated and enhanced. Security warnings and bug fixes may become available after the LFS book has been released. To check whether the package versions or instructions in this release of LFS need any modifications to accommodate security vulnerabilities or other bug fixes, please visit http://www.linuxfromscratch.org/lfs/errata/6.3-branch/ before proceeding with your build. You should note any changes shown and apply them to the relevant section of the book as you progress with building the LFS system.
The LFS system will be built by using a previously installed Linux distribution (such as Debian, Mandriva, Red Hat, or SUSE). This existing Linux system (the host) will be used as a starting point to provide necessary programs, including a compiler, linker, and shell, to build the new system. Select the “development” option during the distribution installation to be able to access these tools.
As an alternative to installing a separate distribution onto your machine, you may wish to use the Linux From Scratch LiveCD. The CD works well as a host system, providing all the tools you need to successfully follow the instructions in this book. Additionally, it contains all the source packages, patches and a copy of this book. So once you have the CD, no network connection or additional downloads are necessary. For more information about the LFS LiveCD or to download a copy, visit http://www.linuxfromscratch.org/livecd/.
The LFS LiveCD might not work on newer hardware configurations, failing to boot or failing to detect some devices, like SATA hard drives.
The LFS LiveCD team is working to fix these issues, but they need your help testing it, reporting found problems, and collaborating on the LiveCD development.
Please, send your LFS LiveCD reports or development help collaborations to the LFS LiveCD mailing list.
Chapter 2 of this book describes how to create a new Linux native partition and file system, the place where the new LFS system will be compiled and installed. Chapter 3 explains which packages and patches need to be downloaded to build an LFS system and how to store them on the new file system. Chapter 4 discusses the setup of an appropriate working environment. Please read Chapter 4 carefully as it explains several important issues the reader should be aware of before beginning to work through Chapter 5 and beyond.
Chapter 5 explains the installation of a number of packages that will form the basic development suite (or toolchain) which is used to build the actual system in Chapter 6. Some of these packages are needed to resolve circular dependencies—for example, to compile a compiler, you need a compiler.
Chapter 5 also shows the user how to build a first pass of the toolchain, including Binutils and GCC (first pass basically means these two core packages will be reinstalled). The next step is to build Glibc, the C library. Glibc will be compiled by the toolchain programs built in the first pass. Then, a second pass of the toolchain will be built. This time, the toolchain will be dynamically linked against the newly built Glibc. The remaining Chapter 5 packages are built using this second pass toolchain. When this is done, the LFS installation process will no longer depend on the host distribution, with the exception of the running kernel.
This effort to isolate the new system from the host distribution may seem excessive, but a full technical explanation is provided in Section 5.2, “Toolchain Technical Notes”.
In Chapter 6, the full LFS system is built. The chroot (change root) program is used to enter a virtual environment and start a new shell whose root directory will be set to the LFS partition. This is very similar to rebooting and instructing the kernel to mount the LFS partition as the root partition. The system does not actually reboot, but instead chroot's because creating a bootable system requires additional work which is not necessary just yet. The major advantage is that “chrooting” allows the builder to continue using the host while LFS is being built. While waiting for package compilation to complete, a user can switch to a different virtual console (VC) or X desktop and continue using the computer as normal.
To finish the installation, the LFS-Bootscripts are set up in Chapter 7, and the kernel and boot loader are set up in Chapter 8. Chapter 9 contains information on furthering the LFS experience beyond this book. After the steps in this book have been implemented, the computer will be ready to reboot into the new LFS system.
This is the process in a nutshell. Detailed information on each step is discussed in the following chapters and package descriptions. Items that may seem complicated will be clarified, and everything will fall into place as the reader embarks on the LFS adventure.
Below is a list of package updates made since the previous release of the book.
Upgraded to:
Autoconf 2.61
Automake 1.10
Bash 3.2
Berkeley DB 4.5.20
Binutils 2.17
Bison 2.3
Bzip2 1.0.4
Coreutils 6.9
E2fsprogs 1.40.2
File 4.21
Findutils 4.2.31
GCC 4.1.2
Gettext 0.16.1
Glibc 2.5.1
Groff 1.18.1.4
Gzip 1.3.12
IANA-Etc 2.20
Inetutils 1.5
IPRoute2 2.6.20-070313
Less 406
LFS-Bootscripts 20070730
Libtool 1.5.24
Linux 2.6.22.1
M4 1.4.10
Make 3.81
Man-pages 2.63
Ncurses 5.6
Procps 3.2.7
Psmisc 22.5
Readline 5.2
Shadow 4.0.18.1
Tar 1.18
TCL 8.4.15
Texinfo 4.9
Udev 113
udev-config-20070731
Vim 7.1
Added:
bash-3.2-fixes-5.patch
db-4.5.20-fixes-1.patch
inetutils-1.5-no_server_man_pages-2.patch
ncurses-5.6-coverity_fixes-1.patch
readline-5.2-fixes-3.patch
util-linux-2.12r-lseek-1.patch
vim-7.1-fixes-1.patch
Removed:
bash-3.1-fixes-8.patch
db-4.4.20-fixes-1.patch
glibc-2.3.6-inotify-1.patch
glibc-2.3.6-linux_types-1.patch
gzip-1.3.5-security_fixes-1.patch
inetutils-gcc4_fixes-3.patch
inetutils-no_server_man_pages-1.patch
less-394-signal_fix-1.patch
linux-2.6.17.13-utf8_input-1.patch
Linux-libc-headers 2.6.12.0
ncurses-5.5-fixes-1.patch
readline-5.1-fixes-3.patch
tar-1.15.1-gcc4_fix_tests-1.patch
tar-1.15.1-security_fixes-1.patch
tar-1.15.1-sparse_fix-1.patch
vim-7.0-fixes-7.patch
This is version 6.3-20070731 of the Linux From Scratch book, dated July 31, 2007. If this book is more than six months old, a newer and better version is probably already available. To find out, please check one of the mirrors via http://www.linuxfromscratch.org/mirrors.html.
Below is a list of changes made since the previous release of the book.
Changelog Entries:
2007-07-31
[dnicholson] - Updated to glibc-2.5.1.
[dnicholson] - Updated udev-config rules to 20070731 to work with Linux-2.6.22.
2007-07-30
[dnicholson] - Updated LFS-Bootscripts to 20070730 and added the description for the new consolelog script.
2007-07-26
[bdubbs] - Adjust grep patteren in Ch. 6 gcc to only match desired output.
2007-07-24
[dnicholson] - Fix the Ncurses' library install to remove a symbolic link before writing a linker script to that location. Reported by Lieven De Keyzer.
[bdubbs] - Created LFS 6.3-rc-1.
[dnicholson] - Remove inconsistent uses of && from the book.
2007-07-23
[bdubbs] - Upgrade to Man-Pages-2.63, fixes #2050.
[dnicholson] - Added `echo' to the Essential Symlinks section as it is needed for the Glibc testsuite.
[dnicholson] - Added a known failing test to the Ch. 6 Glibc page.
2007-07-18
[dnicholson] - Described the configuration of the consolelog bootscript.
2007-07-17
[matthew] - Upgrade to Man-Pages-2.62, fixes #2049.
[matthew] - Upgrade to M4-1.4.10, fixes #2048.
[matthew] - Upgrade to Linux-2.6.22.1, fixes #2044.
[matthew] - Upgrade to E2fsprogs-1.40.2, fixes #2042. Remove the --disable-evms configure parameter as it is no longer recognised by the configure script.
2007-07-14
[dnicholson] - Updated the Glibc Branch Update patch to a new snapshot from upstream.
[dnicholson] - Made the Linux API Headers install safer by using an intermediate directory.
2007-07-06
[manuel] - Updated the stylesheets and Makefile to use the new XSL code and Fop-0.93.
2007-06-30
[matthew] - Add upstream patches for Vim.
[matthew] - Upgrade to Udev-113, fixes #2040.
[matthew] - Upgrade to Texinfo-4.9, fixes #2041.
[matthew] - Upgrade to Tar-1.18, fixes #2039.
[matthew] - Upgrade to Libtool-1.5.24, fixes #2038.
[matthew] - Upgrade to Less-406, fixes #2036.
[alexander] - Updated inetutils MD5 sum. Upstream has re-released the tarball with the only changes being relicensing under GPLv3 or later, and re-autotooling.
2007-06-29
[alexander] - Use stable download location for Man-Pages.
2007-06-28
[dnicholson] - Upgrade to Man-Pages-2.60, fixes #2035.
2007-06-17
2007-06-12
2007-06-10
2007-06-06
[manuel] - Adjusted locale settings for Bash testsuite run and kernel make menuconfig command. Fixes #1938.
2007-06-05
2007-05-13
2007-05-07
[dnicholson] - Fixed the toolchain sanity check after GCC to reference the /usr/local/include directory. Thanks to David Murphy for the report.
2007-05-05
[matthew] - Incorporate latest upstream patches for Vim.
[matthew] - Upgrade to Udev-110. Fixes #1992.
[matthew] - Incorporate latest upstream patches for Readline.
[matthew] - Upgrade to Psmisc-22.5. Fixes #1991.
[matthew] - Add a patch from upstream to fix issues in Ncurses found by the Coverity static code analysis tool. Fixes #1995.
[matthew] - Upgrade to Man-pages-2.46. Fixes #1994.
[matthew] - Upgrade to Linux-2.6.21.1. Fixes #1993.
[matthew] - Incorporate latest upstream patches for Bash.
2007-04-20
[dnicholson] - Upgrade to LFS-Bootscripts-20070420.
2007-04-16
[matthew] - Increase the version of Bison required on host systems to 1.875. Bash doesn't work correctly with versions less than that. Fixes #1977.
[matthew] - Change all references to /etc/adjtime in the Util-Linux
sources to /var/lib/hwclock/adjtime.
Previously, only hwclock/hwclock.c was changed,
which meant that man pages contained references to
the non-FHS compliant location. Fixes #1984.
[matthew] - Upgrade to Udev-108. Fixes #1976.
[matthew] - Upgrade to Man-pages-2.44. Fixes #1987.
[matthew] - Upgrade to Man-db-2.4.4. Fixes #1975.
[matthew] - Upgrade to M4-1.4.9. Fixes #1983.
[matthew] - Upgrade to Linux-2.6.20.7. Fixes #1986.
[matthew] - Upgrade to Gzip-1.3.12. Fixes #1989.
[matthew] - Remove File's reg_startend patch. It is not necessary on Glibc-based systems. Thanks to Greg Schafer for the report.
[matthew] - Upgrade to Coreutils-6.9. Fixes #1982.
2007-04-03
[jhuntwork] - Install su from coreutils in chapter 5 as su-tools. Use su-tools to run test suites from coreutils and bash as user nobody. Fixes #1877.
2007-04-01
[jhuntwork] - Upgraded to linux-2.6.20.4. Updated linux-headers instructions in chapter 5 to match instructions in chapter 6. The INSTALL_HDR_PATH is no longer forcibly removed.
2007-03-27
[dnicholson] - Fixed a typo in the readjusting section. Reported by Steve Crosby.
2007-03-24
[dnicholson] - Upgrade the Bash fixes patch to include the latest 011-015 patches from upstream.
[dnicholson] - Upgrade the Readline fixes patch to include the latest 002 patch from upstream.
2007-03-23
[dnicholson] - Don't install the kernel headers in
/usr/include/scsi as
the ones provided by Glibc are preferred.
[dnicholson] - Force ldd to use /bin/bash since it contains Bash-specific syntax.
[dnicholson] - When readjusting the GCC specs file, ensure that GCC will search for the system headers in /usr/include. An addition to the toolchain sanity checks has been made to test this. This fix originates from DIY Linux.
[dnicholson] - Included the branch update patch for the temporary Glibc in Chapter 5 to help minimize differences with the final Glibc.
2007-03-21
[manuel] - Updated book sources to use DocBook-XML DTD 4.5.
2007-03-19
[matthew] - Change the default home directory for
new users and do not create mail spool files for
them. Add a mail
group so that if Shadow is configured to create
mail spool files for new users, it can do so
without issuing a warning.
[matthew] - Upgrade to Shadow-4.0.18.1. Fixes #1850
[matthew] - Upgrade to Linux-2.6.20.3. Fixes #1971
[matthew] - Upgrade to IPRoute2-2.6.20-070313. Fixes #1974
[matthew] - Upgrade the Bash fixes patch to include the latest patch from upstream. Fixes #1973
2007-03-14
[dnicholson] - Force the host's linker to be used throughout Binutils-Pass1 and GCC-Pass1. This makes the build more robust since the host's compiler may not be compatible with the linker installed in Binutils-Pass1, such as on newer Fedora hosts. Fix originates from DIY Linux.
2007-03-04
[matthew] - Make mention of the Ncurses testsuite. Fixes #1954
[matthew] - Upgrade to Vim-7.0-fixes-15.patch which includes all upstream patches up to 206.
[matthew] - Upgrade to Udev-106 and udev-config-20070304. Fixes #1969
[matthew] - Upgrade to Findutils-4.2.30. Fixes #1967
[matthew] - Upgrade to File-4.20. Fixes #1968
2007-03-1
[jhuntwork] - Minor grammatical changes. Move some warnings and notices to appear before affected commands.
2007-02-25
[manuel] - Removed M4 build from Chapter05. No other packages builts before the build of M4 in chapter06 depends on M4.
2007-02-24
[manuel] - Removed obsolete warning about reinstalling Bzip2. Thanks to Chris Staub for the report and patch.
[manuel] - Removed chmod and chown commands from linux headers installation. The headers are now installed with the proper permissions. Fixes #1965
[matthew] - Upgrade to Linux-2.6.20.1. Fixes #1964
[matthew] - Add an upstream patch for Glibc. Fixes #1930
[matthew] - Upgrade to GCC-4.1.2. Fixes #1960
[matthew] - Add an upstream patch for Berkeley-DB. Fixes #1961
[dnicholson] - Added missing command descriptions for cpan and prove from the Perl package. Reported by Leonhard Landrock.
2007-02-23
[dnicholson] - Removed /usr/local/man lines from man_db.conf to prevent redundant results. Reported by Chris Staub.
[dnicholson] - Applied a patch from Chris Staub to fix some commands and text on the kernel file systems, E2fsprogs and Autoconf pages.
[dnicholson] - Dropped the -D switch from the Udev documentation install command since it is already created by udev-config. Reported by Chris Staub.
[dnicholson] - Corrected the text about Udev not installing any configuration files. Reported by Chris Staub.
[dnicholson] - Removed the text suggesting that you can edit the specs file by hand in the toolchain adjustment since it's only generated if you run the previous commands. Reported by Chris Staub.
2007-02-20
[bryan] - Add a comment about CD symlinks possibly not matching the host in section 7.12.2. Should fix the rest of #1963.
2007-02-18
[bryan] - Fix obsolete syntax used in the example Udev rules in section 7.12.2. Fixes the easy part of #1963. Also re-add the note about the backslash at the end of the udev rule lines.
2007-02-17
[bryan] - Use upstream's rule_generator rules exclusively for NIC naming, and generate the rules before configuring the network script, so the user knows what NIC names to use. Fixes the rest of #1912.
[bryan] - Change from writing CD symlink rules files directly to configuring the file installed by Udev's rule_generator. Fixes part of #1912.
[bryan] - Update contents of lfs-bootscripts.
2007-02-09
[matthew] - Move readlink to
/bin because
sysreadlink in Udev's
shell functions may call it before /usr has been mounted. Fixes
#1913
[matthew] - Remove some chmod and chown commands from DB, NCurses and Readline as they are no longer required with recent upstream versions. Fixes #1953
[matthew] - Upgrade to Udev-105. Fixes #1949
[matthew] - Upgrade to Gzip-1.3.11. Fixes #1951
2007-02-07
[ken] - Upgrade to Linux-2.6.20. Fixes #1950.
2007-02-03
[bryan] - Update to lfs-bootscripts-20070203. Fixes both #1948 and the udev_retry script.
2007-01-31
[matthew] - Add verbose flags when untarring the glibc-libidn and udev-config tarballs. Fixes #1932.
[matthew] - Do not set/export INPUTRC anymore, as it is not required after upgrading to Readline-5.2. Fixes #1942. Thanks to Alexander Patrakov for the report and fix.
[matthew] - Include a patch from the Readline maintainer to fix a multibyte-related issue. Fixes #1945
[matthew] - Include more upstream fixes from the Bash maintainer in bash-3.2-fixes-2.patch
[matthew] - Upgrade to Udev-104. Fixes #1941
[matthew] - Upgrade to Ncurses-5.6. Fixes #1940
[matthew] - Upgrade to Linux-2.6.19.2. Fixes #1928
[matthew] - Upgrade to Iproute2-2.6.19-061214. Fixes #1936