diff --git a/chapter01/changelog.xml b/chapter01/changelog.xml
index 36ae00877..4ddb1b94c 100644
--- a/chapter01/changelog.xml
+++ b/chapter01/changelog.xml
@@ -36,6 +36,18 @@
-->
+
+ 2007-09-07
+
+
+ [manuel] - Added remap attributes to userinput tags in packages
+ pages to help adding package manager support and other extensions
+ into jhalfs. Made all testsuite commands screen blocks for
+ consistency.
+
+
+
+
2007-09-16
diff --git a/chapter05/bash.xml b/chapter05/bash.xml
index b1577517c..d55f01d0e 100644
--- a/chapter05/bash.xml
+++ b/chapter05/bash.xml
@@ -46,11 +46,11 @@
Apply fixes for several bugs discovered since the initial release of
Bash-&bash-version;:
-patch -Np1 -i ../&bash-fixes-patch;
+patch -Np1 -i ../&bash-fixes-patch;Prepare Bash for compilation:
-./configure --prefix=/tools --without-bash-malloc
+./configure --prefix=/tools --without-bash-mallocThe meaning of the configure option:
@@ -70,19 +70,20 @@
Compile the package:
-make
+make
- To test the results, issue:
- make tests.
+ To test the results, issue:
+
+make testsInstall the package:
-make install
+make installMake a link for the programs that use sh for
a shell:
-ln -vs bash /tools/bin/sh
+ln -vs bash /tools/bin/sh
diff --git a/chapter05/binutils-pass1.xml b/chapter05/binutils-pass1.xml
index 4c10d154b..09c2e0a30 100644
--- a/chapter05/binutils-pass1.xml
+++ b/chapter05/binutils-pass1.xml
@@ -51,7 +51,7 @@
The Binutils documentation recommends building Binutils outside of the
source directory in a dedicated build directory:
-mkdir -v ../binutils-build
+mkdir -v ../binutils-build
cd ../binutils-build
@@ -65,7 +65,7 @@ cd ../binutils-buildNow prepare Binutils for compilation:
-CC="gcc -B/usr/bin/" ../binutils-&binutils-version;/configure \
+CC="gcc -B/usr/bin/" ../binutils-&binutils-version;/configure \
--prefix=/tools --disable-nls --disable-werror
@@ -111,7 +111,7 @@ cd ../binutils-buildContinue with compiling the package:
-make
+makeCompilation is now complete. Ordinarily we would now run the
test suite, but at this early stage the test suite framework (Tcl,
@@ -121,12 +121,12 @@ cd ../binutils-build
Install the package:
-make install
+make installNext, prepare the linker for the Adjusting phase
later on:
-make -C ld clean
+make -C ld clean
make -C ld LIB_PATH=/tools/lib
cp -v ld/ld-new /tools/bin
diff --git a/chapter05/binutils-pass2.xml b/chapter05/binutils-pass2.xml
index db4ebdd6b..d0c7a5ac5 100644
--- a/chapter05/binutils-pass2.xml
+++ b/chapter05/binutils-pass2.xml
@@ -45,12 +45,12 @@
Create a separate build directory again:
-mkdir -v ../binutils-build
+mkdir -v ../binutils-build
cd ../binutils-buildPrepare Binutils for compilation:
-../binutils-&binutils-version;/configure --prefix=/tools \
+../binutils-&binutils-version;/configure --prefix=/tools \
--disable-nls --with-lib-path=/tools/lib
@@ -71,27 +71,26 @@ cd ../binutils-buildCompile the package:
-make
+makeCompilation is now complete. As discussed earlier, running the
test suite is not mandatory for the temporary tools here in this
chapter. To run the Binutils test suite anyway, issue the following
command:
-make check
+make checkInstall the package:
-make install
+make installNow prepare the linker for the Re-adjusting phase in
the next chapter:
-make -C ld clean
+make -C ld clean
make -C ld LIB_PATH=/usr/lib:/lib
cp -v ld/ld-new /tools/bin
-
diff --git a/chapter05/bison.xml b/chapter05/bison.xml
index 316f2ea80..0240cfbc0 100644
--- a/chapter05/bison.xml
+++ b/chapter05/bison.xml
@@ -45,18 +45,19 @@
Prepare Bison for compilation:
-./configure --prefix=/tools
+./configure --prefix=/toolsCompile the package:
-make
+make
- To test the results, issue:
- make check.
+ To test the results, issue:
+
+make checkInstall the package:
-make install
+make install
diff --git a/chapter05/bzip2.xml b/chapter05/bzip2.xml
index fe50bd4f9..cb53d7665 100644
--- a/chapter05/bzip2.xml
+++ b/chapter05/bzip2.xml
@@ -46,11 +46,11 @@
The Bzip2 package does not contain a configure
script. Compile and test it with:
-make
+makeInstall the package:
-make PREFIX=/tools install
+make PREFIX=/tools install
diff --git a/chapter05/coreutils.xml b/chapter05/coreutils.xml
index e52e60d85..8a35596a7 100644
--- a/chapter05/coreutils.xml
+++ b/chapter05/coreutils.xml
@@ -47,29 +47,31 @@
by Coreutils is incompatible with the version that current
Glibc provides, so we'll rename the function:
-for file in src/{copy,touch}.c lib/utimens.{c,h} ; do \
+for file in src/{copy,touch}.c lib/utimens.{c,h} ; do \
cp -v $file{,.orig}
sed 's/futimens/gl_&/' $file.orig > $file
donePrepare Coreutils for compilation:
-./configure --prefix=/tools
+./configure --prefix=/toolsCompile the package:
-make
+make
- To test the results, issue:
- make RUN_EXPENSIVE_TESTS=yes check. The
- RUN_EXPENSIVE_TESTS=yes parameter tells the
+ To test the results, issue:
+
+make RUN_EXPENSIVE_TESTS=yes check
+
+ The RUN_EXPENSIVE_TESTS=yes parameter tells the
test suite to run several additional tests that are considered
relatively expensive (in terms of CPU power and memory usage) on some
platforms, but generally are not a problem on Linux.Install the package:
-make install
+make installThe above command refuses to install su
because it cannot install it setuid root as a non-privileged user. By
@@ -78,7 +80,7 @@ done
useful su from our host first place in our PATH. Install
it with:
-cp -v src/su /tools/bin/su-tools
+cp -v src/su /tools/bin/su-tools
diff --git a/chapter05/dejagnu.xml b/chapter05/dejagnu.xml
index bf0ca3e8b..bae0ed7d9 100644
--- a/chapter05/dejagnu.xml
+++ b/chapter05/dejagnu.xml
@@ -43,14 +43,15 @@
Prepare DejaGNU for compilation:
-./configure --prefix=/tools
+./configure --prefix=/toolsBuild and install the package:
-make install
+make install
- To test the results, issue:
- make check.
+ To test the results, issue:
+
+make check
diff --git a/chapter05/diffutils.xml b/chapter05/diffutils.xml
index f2f3a2e61..cc76a3fd7 100644
--- a/chapter05/diffutils.xml
+++ b/chapter05/diffutils.xml
@@ -45,17 +45,17 @@
Prepare Diffutils for compilation:
-./configure --prefix=/tools
+./configure --prefix=/toolsCompile the package:
-make
+makeThis package does not come with a test suite.Install the package:
-make install
+make install
diff --git a/chapter05/expect.xml b/chapter05/expect.xml
index 53b732a46..6b486f138 100644
--- a/chapter05/expect.xml
+++ b/chapter05/expect.xml
@@ -44,19 +44,19 @@
First, fix a bug that can result in false failures during the GCC test
suite run:
-patch -Np1 -i ../&expect-spawn-patch;
+patch -Np1 -i ../&expect-spawn-patch;Next, force Expect's configure script to use /bin/stty
instead of a /usr/local/bin/stty it may find on the host system.
This will ensure that our testsuite tools remain sane for the final builds of our
toolchain:
-cp configure{,.bak}
+cp configure{,.bak}
sed 's:/usr/local/bin:/bin:' configure.bak > configureNow prepare Expect for compilation:
-./configure --prefix=/tools --with-tcl=/tools/lib \
+./configure --prefix=/tools --with-tcl=/tools/lib \
--with-tclinclude=/tools/include --with-x=no
@@ -95,17 +95,20 @@ sed 's:/usr/local/bin:/bin:' configure.bak > configureBuild the package:
-make
+make
- To test the results, issue: make test.
- Note that the Expect test suite is known to experience failures under
+ To test the results, issue:
+
+make test
+
+ Note that the Expect test suite is known to experience failures under
certain host conditions that are not within our control. Therefore,
test suite failures here are not surprising and are not considered
critical.Install the package:
-make SCRIPTS="" install
+make SCRIPTS="" installThe meaning of the make parameter:
diff --git a/chapter05/findutils.xml b/chapter05/findutils.xml
index e761b141a..c809b121e 100644
--- a/chapter05/findutils.xml
+++ b/chapter05/findutils.xml
@@ -45,18 +45,19 @@
Prepare Findutils for compilation:
-./configure --prefix=/tools
+./configure --prefix=/toolsCompile the package:
-make
+make
- To test the results, issue:
- make check.
+ To test the results, issue:
+
+make checkInstall the package:
-make install
+make install
diff --git a/chapter05/flex.xml b/chapter05/flex.xml
index 6521efc8b..b0974aeca 100644
--- a/chapter05/flex.xml
+++ b/chapter05/flex.xml
@@ -46,29 +46,30 @@
Flex contains several known bugs. These can be fixed with the
following patch:
-patch -Np1 -i ../&flex-fixes-patch;
+patch -Np1 -i ../&flex-fixes-patch;The GNU autotools will detect that the Flex source code has been
modified by the previous patch and tries to update the man page
accordingly. This does not work on many systems, and the default page is
fine, so make sure it does not get regenerated:
-touch doc/flex.1
+touch doc/flex.1Now prepare Flex for compilation:
-./configure --prefix=/tools
+./configure --prefix=/toolsCompile the package:
-make
+make
- To test the results, issue:
- make check.
+ To test the results, issue:
+
+make checkInstall the package:
-make install
+make install
diff --git a/chapter05/gawk.xml b/chapter05/gawk.xml
index e54899b03..9a2ac64a3 100644
--- a/chapter05/gawk.xml
+++ b/chapter05/gawk.xml
@@ -45,28 +45,29 @@
Prepare Gawk for compilation:
-./configure --prefix=/tools
+./configure --prefix=/toolsDue to a bug in the configure script, Gawk fails
to detect certain aspects of locale support in Glibc. This bug leads to,
e.g., Gettext testsuite failures. Work around this issue by appending the
missing macro definitions to config.h:
-cat >> config.h << "EOF"
+cat >> config.h << "EOF"
#define HAVE_LANGINFO_CODESET 1
#define HAVE_LC_MESSAGES 1
EOFCompile the package:
-make
+make
- To test the results, issue:
- make check.
+ To test the results, issue:
+
+make checkInstall the package:
-make install
+make install
diff --git a/chapter05/gcc-pass1.xml b/chapter05/gcc-pass1.xml
index 5bbb78173..4589d28fe 100644
--- a/chapter05/gcc-pass1.xml
+++ b/chapter05/gcc-pass1.xml
@@ -46,12 +46,12 @@
The GCC documentation recommends building GCC outside of the
source directory in a dedicated build directory:
-mkdir -v ../gcc-build
+mkdir -v ../gcc-build
cd ../gcc-buildPrepare GCC for compilation:
-CC="gcc -B/usr/bin/" ../gcc-&gcc-version;/configure --prefix=/tools \
+CC="gcc -B/usr/bin/" ../gcc-&gcc-version;/configure --prefix=/tools \
--with-local-prefix=/tools --disable-nls --enable-shared \
--enable-languages=c
@@ -109,7 +109,7 @@ cd ../gcc-build
compiled correctly and is now the default configuration for the released
package. Continue with compiling by running:
-make
+makeCompilation is now complete. At this point, the test suite would
normally be run, but, as mentioned before, the test suite framework is
@@ -119,7 +119,7 @@ cd ../gcc-buildInstall the package:
-make install
+make installAs a finishing touch, create a symlink. Many programs and scripts
run cc instead of gcc, which is
@@ -128,7 +128,7 @@ cd ../gcc-build
cc leaves the system administrator free to decide
which C compiler to install:
-ln -vs gcc /tools/bin/cc
+ln -vs gcc /tools/bin/cc
diff --git a/chapter05/gcc-pass2.xml b/chapter05/gcc-pass2.xml
index 2be683d55..2dccf00f6 100644
--- a/chapter05/gcc-pass2.xml
+++ b/chapter05/gcc-pass2.xml
@@ -53,7 +53,7 @@
to see if the host system is set up correctly in this regard by
performing a quick test:
-expect -c "spawn ls"
+expect -c "spawn ls"The response might be:
@@ -77,7 +77,7 @@ Ask your system administrator to create more.
directory. The running of the fixincludes script can
be suppressed by issuing the following commands:
-cp -v gcc/Makefile.in{,.orig}
+cp -v gcc/Makefile.in{,.orig}
sed 's@\./fixinc\.sh@-c true@' gcc/Makefile.in.orig > gcc/Makefile.inThe bootstrap build performed in
@@ -86,7 +86,7 @@ sed 's@\./fixinc\.sh@-c true@' gcc/Makefile.in.orig > gcc/Makefile.insed to use it in order to ensure consistent compiler
builds:
-cp -v gcc/Makefile.in{,.tmp}
+cp -v gcc/Makefile.in{,.tmp}
sed 's/^XCFLAGS =$/& -fomit-frame-pointer/' gcc/Makefile.in.tmp \
> gcc/Makefile.in
@@ -99,7 +99,7 @@ sed 's/^XCFLAGS =$/& -fomit-frame-pointer/' gcc/Makefile.in.tmp \
GCC. That is, all of the binaries created during the build will link
against the new Glibc. Issue:
-for file in $(find gcc/config -name linux64.h -o -name linux.h)
+for file in $(find gcc/config -name linux64.h -o -name linux.h)
do
cp -uv $file{,.orig}
sed -e 's@/lib\(64\)\?\(32\)\?/ld@/tools&@g' \
@@ -126,7 +126,7 @@ doneCreate a separate build directory again:
-mkdir -v ../gcc-build
+mkdir -v ../gcc-build
cd ../gcc-buildBefore starting to build GCC, remember to unset any environment
@@ -134,7 +134,7 @@ cd ../gcc-buildNow prepare GCC for compilation:
-../gcc-&gcc-version;/configure --prefix=/tools \
+../gcc-&gcc-version;/configure --prefix=/tools \
--with-local-prefix=/tools --enable-clocale=gnu \
--enable-shared --enable-threads=posix \
--enable-__cxa_atexit --enable-languages=c,c++ \
@@ -206,7 +206,7 @@ cd ../gcc-buildCompile the package:
-make
+makeThere is no need to use the bootstrap target
now because the compiler being used to compile this GCC was built from
@@ -216,7 +216,7 @@ cd ../gcc-build
suites for the temporary tools compiled in this chapter is not mandatory.
To run the GCC test suite anyway, use the following command:
-make -k check
+make -k checkThe -k flag is used to make the test suite run
through to completion and not stop at the first failure. The GCC test
@@ -228,7 +228,7 @@ cd ../gcc-buildInstall the package:
-make install
+make installPrepare Gettext for compilation:
-cd gettext-tools
+cd gettext-tools
./configure --prefix=/tools --disable-shared
@@ -66,7 +66,7 @@
Compile the package:
-make -C gnulib-lib
+make -C gnulib-lib
make -C src msgfmtAs only one binary has been compiled, it is not possible to run the
@@ -76,7 +76,7 @@ make -C src msgfmtInstall the msgfmt binary:
-cp -v src/msgfmt /tools/bin
+cp -v src/msgfmt /tools/bin
diff --git a/chapter05/glibc.xml b/chapter05/glibc.xml
index dd35ef1d3..ddf284375 100644
--- a/chapter05/glibc.xml
+++ b/chapter05/glibc.xml
@@ -46,7 +46,7 @@
The Glibc documentation recommends building Glibc outside of the source
directory in a dedicated build directory:
-mkdir -v ../glibc-build
+mkdir -v ../glibc-build
cd ../glibc-buildBecause Glibc no longer supports i386, its developers say to use the
@@ -57,11 +57,11 @@ cd ../glibc-build
for CFLAGS, append the new flag to the existing contents of CFLAGS by
making use of the special file configparms:
-echo "CFLAGS += -march=i486" > configparms
+echo "CFLAGS += -march=i486" > configparmsNext, prepare Glibc for compilation:
-../glibc-&glibc-version;/configure --prefix=/tools \
+../glibc-&glibc-version;/configure --prefix=/tools \
--disable-profile --enable-add-ons \
--enable-kernel=2.6.0 --with-binutils=/tools/bin \
--without-gd --with-headers=/tools/include \
@@ -153,14 +153,14 @@ cd ../glibc-buildCompile the package:
-make
+makeCompilation is now complete. As mentioned earlier, running the
test suites for the temporary tools installed in this chapter is not
mandatory. To run the Glibc test suite (if desired), the following
command will do so:
-make check
+make checkFor a discussion of test failures that are of particular
importance, please see
@@ -184,12 +184,12 @@ cd ../glibc-build
end about the absence of /tools/etc/ld.so.conf.
Prevent this warning with:
-mkdir -v /tools/etc
+mkdir -v /tools/etc
touch /tools/etc/ld.so.confInstall the package:
-make install
+make installDifferent countries and cultures have varying conventions for
how to communicate. These conventions range from the format for
diff --git a/chapter05/grep.xml b/chapter05/grep.xml
index 12afa0819..46e3b1c42 100644
--- a/chapter05/grep.xml
+++ b/chapter05/grep.xml
@@ -45,7 +45,7 @@
Prepare Grep for compilation:
-./configure --prefix=/tools \
+./configure --prefix=/tools \
--disable-perl-regexp
@@ -65,14 +65,15 @@
Compile the package:
-make
+make
- To test the results, issue:
- make check.
+ To test the results, issue:
+
+make checkInstall the package:
-make install
+make install
diff --git a/chapter05/gzip.xml b/chapter05/gzip.xml
index eb2c6a7c8..f8ce9d1a3 100644
--- a/chapter05/gzip.xml
+++ b/chapter05/gzip.xml
@@ -47,25 +47,26 @@
by Gzip is incompatible with the version that current
Glibc provides, so we'll rename the function:
-for file in gzip.c lib/utimens.{c,h} ; do \
+for file in gzip.c lib/utimens.{c,h} ; do \
cp -v $file{,.orig}
sed 's/futimens/gl_&/' $file.orig > $file
donePrepare Gzip for compilation:
-./configure --prefix=/tools
+./configure --prefix=/toolsCompile the package:
-make
+make
- To test the results, issue:
- make check.
+ To test the results, issue:
+
+make checkInstall the package:
-make install
+make install
diff --git a/chapter05/linux-headers.xml b/chapter05/linux-headers.xml
index e7889a5fb..63063b7d6 100644
--- a/chapter05/linux-headers.xml
+++ b/chapter05/linux-headers.xml
@@ -50,7 +50,7 @@
Install the header files:
-make mrproper
+make mrproper
make headers_check
make INSTALL_HDR_PATH=dest headers_install
cp -rv dest/include/* /tools/include
diff --git a/chapter05/m4.xml b/chapter05/m4.xml
index 54ff93360..8e3181cbe 100644
--- a/chapter05/m4.xml
+++ b/chapter05/m4.xml
@@ -45,18 +45,19 @@
Prepare M4 for compilation:
-./configure --prefix=/tools
+./configure --prefix=/toolsCompile the package:
-make
+make
- To test the results, issue:
- make check.
+ To test the results, issue:
+
+make checkInstall the package:
-make install
+make install
diff --git a/chapter05/make.xml b/chapter05/make.xml
index e525789d6..052df7931 100644
--- a/chapter05/make.xml
+++ b/chapter05/make.xml
@@ -44,18 +44,19 @@
Prepare Make for compilation:
-./configure --prefix=/tools
+./configure --prefix=/toolsCompile the package:
-make
+make
- To test the results, issue:
- make check.
+ To test the results, issue:
+
+make checkInstall the package:
-make install
+make install
diff --git a/chapter05/ncurses.xml b/chapter05/ncurses.xml
index 18076761e..cb4cc2049 100644
--- a/chapter05/ncurses.xml
+++ b/chapter05/ncurses.xml
@@ -45,7 +45,7 @@
Prepare Ncurses for compilation:
-./configure --prefix=/tools --with-shared \
+./configure --prefix=/tools --with-shared \
--without-debug --without-ada --enable-overwrite
@@ -75,13 +75,13 @@
Compile the package:
-make
+makeThis package does not come with a test suite.Install the package:
-make install
+make install
diff --git a/chapter05/patch.xml b/chapter05/patch.xml
index f285dd7be..de1ee7544 100644
--- a/chapter05/patch.xml
+++ b/chapter05/patch.xml
@@ -45,17 +45,17 @@
Prepare Patch for compilation:
-./configure --prefix=/tools
+./configure --prefix=/toolsCompile the package:
-make
+makeThis package does not come with a test suite.Install the package:
-make install
+make install
diff --git a/chapter05/perl.xml b/chapter05/perl.xml
index 0885cbbec..ad27d07ce 100644
--- a/chapter05/perl.xml
+++ b/chapter05/perl.xml
@@ -46,18 +46,18 @@
First adapt some hard-wired paths to the C library by applying
the following patch:
-patch -Np1 -i ../&perl-libc-patch;
+patch -Np1 -i ../&perl-libc-patch;Fix an incompatibility with gcc-&gcc-version;:
-mv -v makedepend.SH{,.orig}
+mv -v makedepend.SH{,.orig}
sed 's/command /command[ -]/' makedepend.SH.orig > makedepend.SHPrepare Perl for compilation (make sure to get the
'Data/Dumper Fcntl IO POSIX' part of the command correct—they are all
letters):
-./configure.gnu --prefix=/tools -Dstatic_ext='Data/Dumper Fcntl IO POSIX'
+./configure.gnu --prefix=/tools -Dstatic_ext='Data/Dumper Fcntl IO POSIX'The meaning of the configure options:
@@ -67,7 +67,7 @@ sed 's/command /command[ -]/' makedepend.SH.orig > makedepend.SH<
This tells Perl to build the minimum set of static extensions
needed for installing and testing the Coreutils and Glibc packages in the
- next chapter.
+ next chapter.
@@ -76,7 +76,7 @@ sed 's/command /command[ -]/' makedepend.SH.orig > makedepend.SH<
Only a few of the utilities contained in this package need to be
built:
-make perl utilities
+make perl utilitiesAlthough Perl comes with a test suite, it is not recommended to
run it at this point. Only part of Perl was built and running
@@ -86,7 +86,7 @@ sed 's/command /command[ -]/' makedepend.SH.orig > makedepend.SH<
Install these tools and their libraries:
-cp -v perl pod/pod2man /tools/bin
+cp -v perl pod/pod2man /tools/bin
mkdir -pv /tools/lib/perl5/&perl-version;
cp -Rv lib/* /tools/lib/perl5/&perl-version;
diff --git a/chapter05/sed.xml b/chapter05/sed.xml
index 9dc8c37de..ed346ebdf 100644
--- a/chapter05/sed.xml
+++ b/chapter05/sed.xml
@@ -45,18 +45,19 @@
Prepare Sed for compilation:
-./configure --prefix=/tools
+./configure --prefix=/toolsCompile the package:
-make
+make
- To test the results, issue:
- make check.
+ To test the results, issue:
+
+make checkInstall the package:
-make install
+make install
diff --git a/chapter05/tar.xml b/chapter05/tar.xml
index b82bfde8e..566836f13 100644
--- a/chapter05/tar.xml
+++ b/chapter05/tar.xml
@@ -45,18 +45,19 @@
Prepare Tar for compilation:
-./configure --prefix=/tools
+./configure --prefix=/toolsCompile the package:
-make
+make
- To test the results, issue:
- make check.
+ To test the results, issue:
+
+make checkInstall the package:
-make install
+make install
diff --git a/chapter05/tcl.xml b/chapter05/tcl.xml
index 04380af6a..7393709b9 100644
--- a/chapter05/tcl.xml
+++ b/chapter05/tcl.xml
@@ -50,15 +50,18 @@
Prepare Tcl for compilation:
-cd unix
+cd unix
./configure --prefix=/toolsBuild the package:
-make
+make
- To test the results, issue: TZ=UTC make test.
- The Tcl test suite is known to experience failures under certain host
+ To test the results, issue:
+
+TZ=UTC make test
+
+ The Tcl test suite is known to experience failures under certain host
conditions that are not fully understood. Therefore, test suite failures
here are not surprising, and are not considered critical. The
TZ=UTC parameter sets the time zone to Coordinated
@@ -69,16 +72,16 @@
Install the package:
-make install
+make installInstall Tcl's headers. The next package, Expect, requires them
to build.
-make install-private-headers
+make install-private-headersNow make a necessary symbolic link:
-ln -sv tclsh8.4 /tools/bin/tclsh
+ln -sv tclsh8.4 /tools/bin/tclsh
diff --git a/chapter05/texinfo.xml b/chapter05/texinfo.xml
index b776ed741..cea7779e8 100644
--- a/chapter05/texinfo.xml
+++ b/chapter05/texinfo.xml
@@ -45,18 +45,19 @@
Prepare Texinfo for compilation:
-./configure --prefix=/tools
+./configure --prefix=/toolsCompile the package:
-make
+make
- To test the results, issue:
- make check.
+ To test the results, issue:
+
+make checkInstall the package:
-make install
+make install
diff --git a/chapter05/util-linux.xml b/chapter05/util-linux.xml
index 3fa300b3c..d3708733f 100644
--- a/chapter05/util-linux.xml
+++ b/chapter05/util-linux.xml
@@ -47,27 +47,27 @@
from the /tools directory by default.
This is fixed by altering the configure script:
-sed -i 's@/usr/include@/tools/include@g' configure
+sed -i 's@/usr/include@/tools/include@g' configurePrepare Util-linux for compilation:
-./configure
+./configureCompile some support routines:
-make -C lib
+make -C libOnly a few of the utilities contained in this package need to be
built:
-make -C mount mount umount
+make -C mount mount umount
make -C text-utils moreThis package does not come with a test suite.Copy these programs to the temporary tools directory:
-cp -v mount/{,u}mount text-utils/more /tools/bin
+cp -v mount/{,u}mount text-utils/more /tools/bin
diff --git a/chapter06/autoconf.xml b/chapter06/autoconf.xml
index 2dbcc5787..e5e241501 100644
--- a/chapter06/autoconf.xml
+++ b/chapter06/autoconf.xml
@@ -43,21 +43,23 @@
Prepare Autoconf for compilation:
-./configure --prefix=/usr
+./configure --prefix=/usrCompile the package:
-make
+make
- To test the results, issue:
- make check.
- This takes a long time, about 3 SBUs. In addition, 6 tests are skipped
- that use Automake. For full test coverage, Autoconf can be re-tested
+ To test the results, issue:
+
+make check
+
+ This takes a long time, about 3 SBUs. In addition, 6 tests are skipped
+ that use Automake. For full test coverage, Autoconf can be re-tested
after Automake has been installed.Install the package:
-make install
+make install
diff --git a/chapter06/automake.xml b/chapter06/automake.xml
index 4cf46c095..aeb683563 100644
--- a/chapter06/automake.xml
+++ b/chapter06/automake.xml
@@ -43,19 +43,21 @@
Prepare Automake for compilation:
-./configure --prefix=/usr
+./configure --prefix=/usrCompile the package:
-make
+make
- To test the results, issue:
- make check.
- This takes a long time, about 10 SBUs.
+ To test the results, issue:
+
+make check
+
+ This takes a long time, about 10 SBUs.Install the package:
-make install
+make install
diff --git a/chapter06/bash.xml b/chapter06/bash.xml
index 8d53a7755..668071223 100644
--- a/chapter06/bash.xml
+++ b/chapter06/bash.xml
@@ -43,18 +43,18 @@
If you downloaded the Bash documentation tarball and wish to install
HTML documentation, issue the following commands:
-tar -xvf ../bash-doc-&bash-doc-version;.tar.gz
+tar -xvf ../bash-doc-&bash-doc-version;.tar.gz
sed -i "s|htmldir = @htmldir@|htmldir = /usr/share/doc/bash-&bash-version;|" \
Makefile.inApply fixes for several bugs discovered since the initial release of
Bash-&bash-version;:
-patch -Np1 -i ../&bash-fixes-patch;
+patch -Np1 -i ../&bash-fixes-patch;Prepare Bash for compilation:
-./configure --prefix=/usr --bindir=/bin \
+./configure --prefix=/usr --bindir=/bin \
--without-bash-malloc --with-installed-readline
@@ -74,7 +74,7 @@ sed -i "s|htmldir = @htmldir@|htmldir = /usr/share/doc/bash-&bash-version;|" \
Compile the package:
-make
+makeSkip down to Install the
package if not running the test suite.
@@ -84,18 +84,18 @@ sed -i "s|htmldir = @htmldir@|htmldir = /usr/share/doc/bash-&bash-version;|" \
class="username">nobody user can read the standard input
device and write to the sources tree:
-sed -i 's/LANG/LC_ALL/' tests/intl.tests
+sed -i 's/LANG/LC_ALL/' tests/intl.tests
sed -i 's@tests@& </dev/tty@' tests/run-test
chown -Rv nobody ./Now, run the tests as the nobody user:
-su-tools nobody -s /bin/bash -c "make tests"
+su-tools nobody -s /bin/bash -c "make tests"Install the package:
-make install
+make installRun the newly compiled bash program (replacing the one that is
currently being executed):
diff --git a/chapter06/binutils.xml b/chapter06/binutils.xml
index f4fe1cd21..24770bb17 100644
--- a/chapter06/binutils.xml
+++ b/chapter06/binutils.xml
@@ -45,7 +45,7 @@
environment. Check that everything is set up correctly by performing a
simple test:
-expect -c "spawn ls"
+expect -c "spawn ls"If the following message shows up, the chroot environment is not
set up for proper PTY operation:
@@ -59,17 +59,17 @@ Ask your system administrator to create more.The Binutils documentation recommends building Binutils outside of the
source directory in a dedicated build directory:
-mkdir -v ../binutils-build
+mkdir -v ../binutils-build
cd ../binutils-buildPrepare Binutils for compilation:
-../binutils-&binutils-version;/configure --prefix=/usr \
+../binutils-&binutils-version;/configure --prefix=/usr \
--enable-sharedCompile the package:
-make tooldir=/usr
+make tooldir=/usrThe meaning of the make parameter:
@@ -100,16 +100,16 @@ cd ../binutils-buildTest the results:
-make check
+make checkInstall the package:
-make tooldir=/usr install
+make tooldir=/usr installInstall the libiberty header
file that is needed by some packages:
-cp -v ../binutils-&binutils-version;/include/libiberty.h /usr/include
+cp -v ../binutils-&binutils-version;/include/libiberty.h /usr/include
diff --git a/chapter06/bison.xml b/chapter06/bison.xml
index 9f3c94782..4bcaf2f3e 100644
--- a/chapter06/bison.xml
+++ b/chapter06/bison.xml
@@ -42,25 +42,26 @@
Prepare Bison for compilation:
-./configure --prefix=/usr
+./configure --prefix=/usrThe configure system causes bison to be built without support for
internationalization of error messages if a bison
program is not already in $PATH. The following addition will correct
this:
-echo '#define YYENABLE_NLS 1' >> config.h
+echo '#define YYENABLE_NLS 1' >> config.hCompile the package:
-make
+make
- To test the results, issue:
- make check.
+ To test the results, issue:
+
+make checkInstall the package:
-make install
+make install
diff --git a/chapter06/bzip2.xml b/chapter06/bzip2.xml
index 28ffd0f6b..8900da74c 100644
--- a/chapter06/bzip2.xml
+++ b/chapter06/bzip2.xml
@@ -45,11 +45,11 @@
Apply a patch to install the documentation for this package:
-patch -Np1 -i ../&bzip2-docs-patch;
+patch -Np1 -i ../&bzip2-docs-patch;Prepare Bzip2 for compilation with:
-make -f Makefile-libbz2_so
+make -f Makefile-libbz2_so
make clean
@@ -70,17 +70,17 @@ make cleanCompile and test the package:
-make
+makeInstall the programs:
-make PREFIX=/usr install
+make PREFIX=/usr installInstall the shared bzip2 binary into the
/bin directory, make
some necessary symbolic links, and clean up:
-cp -v bzip2-shared /bin/bzip2
+cp -v bzip2-shared /bin/bzip2
cp -av libbz2.so* /lib
ln -sv ../../lib/libbz2.so.1.0 /usr/lib/libbz2.so
rm -v /usr/bin/{bunzip2,bzcat,bzip2}
diff --git a/chapter06/coreutils.xml b/chapter06/coreutils.xml
index 82693d20c..3d8288366 100644
--- a/chapter06/coreutils.xml
+++ b/chapter06/coreutils.xml
@@ -45,30 +45,30 @@
by Coreutils is incompatible with the version that current
Glibc provides, so we'll rename the function:
-sed -i 's/futimens/gl_&/' src/{copy,touch}.c lib/utimens.{c,h}
+sed -i 's/futimens/gl_&/' src/{copy,touch}.c lib/utimens.{c,h}A known issue with the uname program from
this package is that the -p switch always
returns unknown. The following patch
fixes this behavior for Intel architectures:
-patch -Np1 -i ../&coreutils-uname-patch;
+patch -Np1 -i ../&coreutils-uname-patch;Prevent Coreutils from installing binaries that will be installed by
other packages later:
-patch -Np1 -i ../&coreutils-suppress-patch;
+patch -Np1 -i ../&coreutils-suppress-patch;POSIX requires that programs from Coreutils recognize character
boundaries correctly even in multibyte locales. The following patch
fixes this non-compliance and other internationalization-related bugs:
-patch -Np1 -i ../&coreutils-i18n-patch;
+patch -Np1 -i ../&coreutils-i18n-patch;In order for the tests added by this patch to pass, the permissions for
the test file have to be changed:
-chmod +x tests/sort/sort-mb-tests
+chmod +x tests/sort/sort-mb-testsIn the past, many bugs were found in this patch. When reporting new
@@ -78,11 +78,11 @@
Now prepare Coreutils for compilation:
-./configure --prefix=/usr
+./configure --prefix=/usrCompile the package:
-make
+makeSkip down to Install the
package if not running the test suite.
@@ -90,7 +90,7 @@
Now the test suite is ready to be run. First, run the tests that are
meant to be run as user root:
-make NON_ROOT_USERNAME=nobody check-root
+make NON_ROOT_USERNAME=nobody check-rootWe're going to run the remainder of the tests as the
nobody user. Certain tests,
@@ -98,23 +98,23 @@
these tests are not skipped we'll add a temporary group and make the
user nobody a part of it:
-echo "dummy:x:1000:nobody" >> /etc/group
+echo "dummy:x:1000:nobody" >> /etc/groupNow run the tests:
-su-tools nobody -s /bin/bash -c "make RUN_EXPENSIVE_TESTS=yes check"
+su-tools nobody -s /bin/bash -c "make RUN_EXPENSIVE_TESTS=yes check"Remove the temporary group:
-sed -i '/dummy/d' /etc/group
+sed -i '/dummy/d' /etc/groupInstall the package:
-make install
+make installMove programs to the locations specified by the FHS:
-mv -v /usr/bin/{cat,chgrp,chmod,chown,cp,date,dd,df,echo} /bin
+mv -v /usr/bin/{cat,chgrp,chmod,chown,cp,date,dd,df,echo} /bin
mv -v /usr/bin/{false,hostname,ln,ls,mkdir,mknod,mv,pwd,readlink,rm} /bin
mv -v /usr/bin/{rmdir,stty,sync,true,uname} /bin
mv -v /usr/bin/chroot /usr/sbin
@@ -125,7 +125,7 @@ mv -v /usr/bin/chroot /usr/sbin
may not be available during the early stages of booting, those binaries
need to be on the root partition:
-mv -v /usr/bin/{head,sleep,nice} /bin
+mv -v /usr/bin/{head,sleep,nice} /bin
diff --git a/chapter06/db.xml b/chapter06/db.xml
index b1f12e379..dc87fb78c 100644
--- a/chapter06/db.xml
+++ b/chapter06/db.xml
@@ -63,7 +63,7 @@
Prepare Berkeley DB for compilation:
-cd build_unix
+cd build_unix
../dist/configure --prefix=/usr --enable-compat185 --enable-cxx
@@ -88,7 +88,7 @@
Compile the package:
-make
+makeIt is not possible to test the package meaningfully, because
that would involve building TCL bindings. TCL bindings cannot be
@@ -98,7 +98,7 @@
Install the package:
-make docdir=/usr/share/doc/db-&db-version; install
+make docdir=/usr/share/doc/db-&db-version; installThe meaning of the make parameter:
@@ -115,7 +115,7 @@
Fix the ownership of the installed documentation:
-chown -Rv root:root /usr/share/doc/db-&db-version;
+chown -Rv root:root /usr/share/doc/db-&db-version;
diff --git a/chapter06/diffutils.xml b/chapter06/diffutils.xml
index 46e50b62c..4ad5ea535 100644
--- a/chapter06/diffutils.xml
+++ b/chapter06/diffutils.xml
@@ -45,7 +45,7 @@
characters according to the current locale. The following patch fixes the
non-compliance issue:
-patch -Np1 -i ../&diffutils-i18n-patch;
+patch -Np1 -i ../&diffutils-i18n-patch;The above patch will cause the Diffutils build system to attempt to
rebuild the diff.1 man page using the unavailable
@@ -53,21 +53,21 @@
diff. We can avoid this by updating the timestamp on
the file man/diff.1:
-touch man/diff.1
+touch man/diff.1Prepare Diffutils for compilation:
-./configure --prefix=/usr
+./configure --prefix=/usrCompile the package:
-make
+makeThis package does not come with a test suite.Install the package:
-make install
+make install
diff --git a/chapter06/e2fsprogs.xml b/chapter06/e2fsprogs.xml
index 6b9b1a4c1..7ff43ed47 100644
--- a/chapter06/e2fsprogs.xml
+++ b/chapter06/e2fsprogs.xml
@@ -46,17 +46,17 @@
Fix a hardcoded path to /bin/rm in E2fsprogs'
testsuite:
- sed -i -e 's@/bin/rm@/tools&@' lib/blkid/test_probe.in
+ sed -i -e 's@/bin/rm@/tools&@' lib/blkid/test_probe.inThe E2fsprogs documentation recommends that the package be built in
a subdirectory of the source tree:
-mkdir -v build
+mkdir -v build
cd buildPrepare E2fsprogs for compilation:
-../configure --prefix=/usr --with-root-prefix="" \
+../configure --prefix=/usr --with-root-prefix="" \
--enable-elf-shlibs
@@ -88,10 +88,11 @@ cd buildCompile the package:
-make
+make
- To test the results, issue:
- make check.
+ To test the results, issue:
+
+make checkOne of the E2fsprogs tests will attempt to allocate 256 MB
of memory. If you do not have significantly more RAM than this, it
@@ -102,11 +103,11 @@ cd buildInstall the binaries, documentation, and shared libraries:
-make install
+make installInstall the static libraries and headers:
-make install-libs
+make install-libs
diff --git a/chapter06/file.xml b/chapter06/file.xml
index 2775e78a4..78181dc73 100644
--- a/chapter06/file.xml
+++ b/chapter06/file.xml
@@ -43,17 +43,17 @@
Prepare File for compilation:
-./configure --prefix=/usr
+./configure --prefix=/usrCompile the package:
-make
+makeThis package does not come with a test suite.Install the package:
-make install
+make install
diff --git a/chapter06/findutils.xml b/chapter06/findutils.xml
index 547f213ed..197bddc41 100644
--- a/chapter06/findutils.xml
+++ b/chapter06/findutils.xml
@@ -45,7 +45,7 @@
Prepare Findutils for compilation:
-./configure --prefix=/usr --libexecdir=/usr/lib/findutils \
+./configure --prefix=/usr --libexecdir=/usr/lib/findutils \
--localstatedir=/var/lib/locate
@@ -64,14 +64,15 @@
Compile the package:
-make
+make
- To test the results, issue:
- make check.
+ To test the results, issue:
+
+make checkInstall the package:
-make install
+make installSome of the scripts in the LFS-Bootscripts package depend on
find. As /usr
@@ -79,7 +80,7 @@
needs to be on the root partition. The updatedb
script also needs to be modified to correct an explicit path:
-mv -v /usr/bin/find /bin
+mv -v /usr/bin/find /bin
sed -i -e 's/find:=${BINDIR}/find:=\/bin/' /usr/bin/updatedb
diff --git a/chapter06/flex.xml b/chapter06/flex.xml
index 5d047f95e..c5942ff18 100644
--- a/chapter06/flex.xml
+++ b/chapter06/flex.xml
@@ -43,25 +43,26 @@
Prepare Flex for compilation:
-./configure --prefix=/usr
+./configure --prefix=/usrCompile the package:
-make
+make
- To test the results, issue:
- make check.
+ To test the results, issue:
+
+make checkInstall the package:
-make install
+make installThere are some packages that expect to find the
lex library in /usr/lib. Create a symlink to account for
this:
-ln -sv libfl.a /usr/lib/libl.a
+ln -sv libfl.a /usr/lib/libl.aA few programs do not know about flex yet and
try to run its predecessor, lex. To support those
@@ -69,7 +70,7 @@
calls flex in lex emulation
mode:
-cat > /usr/bin/lex << "EOF"
+cat > /usr/bin/lex << "EOF"
#!/bin/sh
# Begin /usr/bin/lex
diff --git a/chapter06/gawk.xml b/chapter06/gawk.xml
index 4af335791..898f66a29 100644
--- a/chapter06/gawk.xml
+++ b/chapter06/gawk.xml
@@ -44,32 +44,33 @@
chunk of memory that was not allocated. This bug is fixed by the following
patch:
-patch -Np1 -i ../&gawk-segfault-patch;
+patch -Np1 -i ../&gawk-segfault-patch;Prepare Gawk for compilation:
-./configure --prefix=/usr --libexecdir=/usr/lib
+./configure --prefix=/usr --libexecdir=/usr/libDue to a bug in the configure script, Gawk fails
to detect certain aspects of locale support in Glibc. This bug leads to,
e.g., Gettext testsuite failures. Work around this issue by appending the
missing macro definitions to config.h:
-cat >> config.h << "EOF"
+cat >> config.h << "EOF"
#define HAVE_LANGINFO_CODESET 1
#define HAVE_LC_MESSAGES 1
EOFCompile the package:
-make
+make
- To test the results, issue:
- make check.
+ To test the results, issue:
+
+make checkInstall the package:
-make install
+make install
diff --git a/chapter06/gcc.xml b/chapter06/gcc.xml
index 842f8250b..5ea33fc97 100644
--- a/chapter06/gcc.xml
+++ b/chapter06/gcc.xml
@@ -46,7 +46,7 @@
version of libiberty.a provided by
Binutils will be used instead:
-sed -i 's/install_to_$(INSTALL_DEST) //' libiberty/Makefile.in
+sed -i 's/install_to_$(INSTALL_DEST) //' libiberty/Makefile.inThe bootstrap build performed in
built GCC with the compiler flag.
@@ -54,7 +54,7 @@
sed to use it in order to ensure consistent compiler
builds:
-sed -i 's/^XCFLAGS =$/& -fomit-frame-pointer/' gcc/Makefile.in
+sed -i 's/^XCFLAGS =$/& -fomit-frame-pointer/' gcc/Makefile.inThe fixincludes script is known to occasionally
erroneously attempt to "fix" the system headers installed so far. As
@@ -62,7 +62,7 @@
to not require fixing, issue the following command to prevent the
fixincludes script from running:
-sed -i 's@\./fixinc\.sh@-c true@' gcc/Makefile.in
+sed -i 's@\./fixinc\.sh@-c true@' gcc/Makefile.inGCC provides a gccbug script which detects at
compile time whether mktemp is present, and hardcodes the result in a test.
@@ -70,17 +70,17 @@
temporary files. We will be installing mktemp later, so the following sed
will simulate its presence:
-sed -i 's/@have_mktemp_command@/yes/' gcc/gccbug.in
+sed -i 's/@have_mktemp_command@/yes/' gcc/gccbug.inThe GCC documentation recommends building GCC outside of the source
directory in a dedicated build directory:
-mkdir -v ../gcc-build
+mkdir -v ../gcc-build
cd ../gcc-buildPrepare GCC for compilation:
-../gcc-&gcc-version;/configure --prefix=/usr \
+../gcc-&gcc-version;/configure --prefix=/usr \
--libexecdir=/usr/lib --enable-shared \
--enable-threads=posix --enable-__cxa_atexit \
--enable-clocale=gnu --enable-languages=c,c++ \
@@ -88,7 +88,7 @@ cd ../gcc-buildCompile the package:
-make
+makeIn this section, the test suite for GCC is considered
@@ -97,11 +97,11 @@ cd ../gcc-buildTest the results, but do not stop at errors:
-make -k check
+make -k checkTo receive a summary of the test suite results, run:
-../gcc-&gcc-version;/contrib/test_summary
+../gcc-&gcc-version;/contrib/test_summaryFor only the summaries, pipe the output through
grep -A7 Summ.
@@ -119,18 +119,18 @@ cd ../gcc-buildInstall the package:
-make install
+make installSome packages expect the C preprocessor to be installed in the
/lib directory.
To support those packages, create this symlink:
-ln -sv ../usr/bin/cpp /lib
+ln -sv ../usr/bin/cpp /libMany packages use the name cc to call the C
compiler. To satisfy those packages, create a symlink:
-ln -sv gcc /usr/bin/cc
+ln -sv gcc /usr/bin/ccNow that our final toolchain is in place, it is important to again ensure
that compiling and linking will work as expected. We do this by performing
diff --git a/chapter06/gettext.xml b/chapter06/gettext.xml
index b1ffd3aa2..f88d523e3 100644
--- a/chapter06/gettext.xml
+++ b/chapter06/gettext.xml
@@ -45,19 +45,21 @@
Prepare Gettext for compilation:
-./configure --prefix=/usr
+./configure --prefix=/usrCompile the package:
-make
+make
- To test the results, issue:
- make check.
- This takes a very long time, around 5 SBUs.
+ To test the results, issue:
+
+make check
+
+ This takes a very long time, around 5 SBUs.Install the package:
-make install
+make install
diff --git a/chapter06/glibc.xml b/chapter06/glibc.xml
index aaa4b71d5..9e4b77826 100644
--- a/chapter06/glibc.xml
+++ b/chapter06/glibc.xml
@@ -67,7 +67,7 @@
).
Unpack the tarball from within the Glibc source directory:
-tar -xvf ../glibc-libidn-&glibc-version;.tar.gz
+tar -xvf ../glibc-libidn-&glibc-version;.tar.gz
mv glibc-libidn-&glibc-version; libidnIn the vi_VN.TCVN locale, bash enters an infinite loop
@@ -75,7 +75,7 @@ mv glibc-libidn-&glibc-version; libidn
Glibc problem. Disable installation of this locale in order to avoid the
problem:
-sed -i '/vi_VN.TCVN/d' localedata/SUPPORTED
+sed -i '/vi_VN.TCVN/d' localedata/SUPPORTEDWhen running make install, a script called
test-installation.pl performs a small sanity test on
@@ -84,7 +84,7 @@ mv glibc-libidn-&glibc-version; libidn
test would be carried out against the wrong Glibc. We can force the script
to check the Glibc we have just installed with the following:
-sed -i \
+sed -i \
's|libs -o|libs -L/usr/lib -Wl,-dynamic-linker=/lib/ld-linux.so.2 -o|' \
scripts/test-installation.pl
@@ -94,21 +94,21 @@ mv glibc-libidn-&glibc-version; libidnShells
chapter of the BLFS book:
-sed -i 's|@BASH@|/bin/bash|' elf/ldd.bash.in
+sed -i 's|@BASH@|/bin/bash|' elf/ldd.bash.inThe Glibc documentation recommends building Glibc outside of the source
directory in a dedicated build directory:
-mkdir -v ../glibc-build
+mkdir -v ../glibc-build
cd ../glibc-buildAgain, add the needed compiler flag to CFLAGS:
-echo "CFLAGS += -march=i486" > configparms
+echo "CFLAGS += -march=i486" > configparmsPrepare Glibc for compilation:
-../glibc-&glibc-version;/configure --prefix=/usr \
+../glibc-&glibc-version;/configure --prefix=/usr \
--disable-profile --enable-add-ons \
--enable-kernel=2.6.0 --libexecdir=/usr/lib/glibc
@@ -129,7 +129,7 @@ cd ../glibc-buildCompile the package:
-make
+makeIn this section, the test suite for Glibc is considered critical.
@@ -138,7 +138,7 @@ cd ../glibc-buildTest the results:
-make -k check 2>&1 | tee glibc-check-log
+make -k check 2>&1 | tee glibc-check-log
grep Error glibc-check-logYou will probably see an expected (ignored) failure in the
@@ -180,11 +180,11 @@ grep Error glibc-check-log
complain about the absence of /etc/ld.so.conf.
Prevent this warning with:
-touch /etc/ld.so.conf
+touch /etc/ld.so.confInstall the package:
-make install
+make installThe locales that can make the system respond in a different language
were not installed by the above command. None of the locales are required,
@@ -202,7 +202,7 @@ grep Error glibc-check-log
The following instructions will install the minimum set of
locales necessary for the optimal coverage of tests:
-mkdir -pv /usr/lib/locale
+mkdir -pv /usr/lib/locale
localedef -i de_DE -f ISO-8859-1 de_DE
localedef -i de_DE@euro -f ISO-8859-15 de_DE@euro
localedef -i en_HK -f ISO-8859-1 en_HK
@@ -225,7 +225,7 @@ localedef -i ja_JP -f EUC-JP ja_JP
(it includes every locale listed above and many more) at once with the
following time-consuming command:
-make localedata/install-locales
+make localedata/install-localesThen use the localedef command to create and
install locales not listed in the
diff --git a/chapter06/grep.xml b/chapter06/grep.xml
index 30e47b51a..81c28d476 100644
--- a/chapter06/grep.xml
+++ b/chapter06/grep.xml
@@ -43,27 +43,28 @@
The current Grep package has many bugs, especially in the support of
multibyte locales. RedHat fixed some of them with the following patch:
-patch -Np1 -i ../&grep-fixes-patch;
+patch -Np1 -i ../&grep-fixes-patch;In order for the tests added by this patch to pass, the permissions for
the test file have to be changed:
-chmod +x tests/fmbtest.sh
+chmod +x tests/fmbtest.shPrepare Grep for compilation:
-./configure --prefix=/usr --bindir=/bin
+./configure --prefix=/usr --bindir=/bin
- Compile the package:
+ Compile the package:make
- To test the results, issue:
- make check.
+ To test the results, issue:
+
+make checkInstall the package:
-make install
+make install
diff --git a/chapter06/groff.xml b/chapter06/groff.xml
index 3f250ad1b..31843cb55 100644
--- a/chapter06/groff.xml
+++ b/chapter06/groff.xml
@@ -44,7 +44,7 @@
Apply the patch that adds the ascii8 and
nippon devices to Groff:
-patch -Np1 -i ../&groff-debian-patch;
+patch -Np1 -i ../&groff-debian-patch;These devices are used by Man-DB when formatting non-English manual
@@ -56,7 +56,7 @@
Many screen fonts don't have Unicode single quotes and dashes in them.
Tell Groff to use the ASCII equivalents instead:
-sed -i -e 's/2010/002D/' -e 's/2212/002D/' \
+sed -i -e 's/2010/002D/' -e 's/2212/002D/' \
-e 's/2018/0060/' -e 's/2019/0027/' font/devutf8/R.protoGroff expects the environment variable PAGE to
@@ -69,22 +69,22 @@
Prepare Groff for compilation:
-PAGE=<paper_size> ./configure --prefix=/usr --enable-multibyte
+PAGE=<paper_size> ./configure --prefix=/usr --enable-multibyteCompile the package:
-make
+makeThis package does not come with a test suite.Install the package:
-make install
+make installSome documentation programs, such as xman,
will not work properly without the following symlinks:
-ln -sv eqn /usr/bin/geqn
+ln -sv eqn /usr/bin/geqn
ln -sv tbl /usr/bin/gtbl
diff --git a/chapter06/grub.xml b/chapter06/grub.xml
index cd3b0f341..f105eb981 100644
--- a/chapter06/grub.xml
+++ b/chapter06/grub.xml
@@ -51,22 +51,23 @@
detection, fix some GCC 4.x issues, and provide better SATA support
for some disk controllers:
-patch -Np1 -i ../&grub-geometry-patch;
+patch -Np1 -i ../&grub-geometry-patch;Prepare GRUB for compilation:
-./configure --prefix=/usr
+./configure --prefix=/usrCompile the package:
-make
+make
- To test the results, issue:
- make check.
+ To test the results, issue:
+
+make checkInstall the package:
-make install
+make install
mkdir -v /boot/grub
cp -v /usr/lib/grub/i386-pc/stage{1,2} /boot/grub
diff --git a/chapter06/gzip.xml b/chapter06/gzip.xml
index e4eb2c394..1640517c1 100644
--- a/chapter06/gzip.xml
+++ b/chapter06/gzip.xml
@@ -45,26 +45,27 @@
by Gzip is incompatible with the version that current
Glibc provides, so we'll rename the function:
-sed -i 's/futimens/gl_&/' gzip.c lib/utimens.{c,h}
+sed -i 's/futimens/gl_&/' gzip.c lib/utimens.{c,h}Prepare Gzip for compilation:
-./configure --prefix=/usr --bindir=/bin
+./configure --prefix=/usr --bindir=/binCompile the package:
-make
+make
- To test the results, issue:
- make check.
+ To test the results, issue:
+
+make checkInstall the package:
-make install
+make installMove some programs that do not need to be on the root filesystem:
-mv -v /bin/{gzexe,uncompress,zcmp,zdiff,zegrep} /usr/bin
+mv -v /bin/{gzexe,uncompress,zcmp,zdiff,zegrep} /usr/bin
mv -v /bin/{zfgrep,zforce,zgrep,zless,zmore,znew} /usr/bin
diff --git a/chapter06/iana-etc.xml b/chapter06/iana-etc.xml
index 7172be5d4..6adbb3759 100644
--- a/chapter06/iana-etc.xml
+++ b/chapter06/iana-etc.xml
@@ -45,13 +45,13 @@
correct formats for the /etc/protocols and
/etc/services data files:
-make
+makeThis package does not come with a test suite.Install the package:
-make install
+make install
diff --git a/chapter06/inetutils.xml b/chapter06/inetutils.xml
index ac1cb3b43..814c8eb0f 100644
--- a/chapter06/inetutils.xml
+++ b/chapter06/inetutils.xml
@@ -45,11 +45,11 @@
man pages anyway. The following patch will correct this
situation:
-patch -Np1 -i ../&inetutils-man_pages-patch;
+patch -Np1 -i ../&inetutils-man_pages-patch;Prepare Inetutils for compilation:
-./configure --prefix=/usr --libexecdir=/usr/sbin \
+./configure --prefix=/usr --libexecdir=/usr/sbin \
--sysconfdir=/etc --localstatedir=/var \
--disable-ifconfig --disable-logger --disable-syslogd \
--disable-whois --disable-servers
@@ -110,18 +110,18 @@
Compile the package:
-make
+makeThis package does not come with a test suite.Install the package:
-make install
+make installMove the ping program to its FHS-compliant
place:
-mv -v /usr/bin/ping /bin
+mv -v /usr/bin/ping /bin
diff --git a/chapter06/iproute2.xml b/chapter06/iproute2.xml
index b2ed17e9e..872d8c38c 100644
--- a/chapter06/iproute2.xml
+++ b/chapter06/iproute2.xml
@@ -44,11 +44,11 @@
The installation of two manual pages is broken and results in
dangling symlinks. Fix this with the following command:
-sed -i -e '/tc-bfifo.8/d' -e '/tc-pfifo.8/s/pbfifo/bfifo/' Makefile
+sed -i -e '/tc-bfifo.8/d' -e '/tc-pfifo.8/s/pbfifo/bfifo/' MakefileCompile the package:
-make SBINDIR=/sbin
+make SBINDIR=/sbinThe meaning of the make option:
@@ -69,7 +69,7 @@
Install the package:
-make SBINDIR=/sbin install
+make SBINDIR=/sbin installThe arpd binary links against the Berkeley DB
libraries that reside in /usr and
@@ -77,7 +77,7 @@
according to the FHS, it must be in /usr/sbin. Move it there:
- mv -v /sbin/arpd /usr/sbin
+ mv -v /sbin/arpd /usr/sbin
diff --git a/chapter06/kbd.xml b/chapter06/kbd.xml
index f1f7e3edc..ffe9de637 100644
--- a/chapter06/kbd.xml
+++ b/chapter06/kbd.xml
@@ -44,7 +44,7 @@
across the keymaps in the Kbd package. The following patch fixes this
issue for i386 keymaps:
-patch -Np1 -i ../&kbd-backspace-patch;
+patch -Np1 -i ../&kbd-backspace-patch;After patching, the Backspace key generates the character with code 127,
and the Delete key generates a well-known escape sequence.
@@ -52,11 +52,11 @@
Patch Kbd to fix a bug in setfont that is triggered
when compiling with GCC-&gcc-version;:
-patch -Np1 -i ../&kbd-gcc4_fixes-patch;
+patch -Np1 -i ../&kbd-gcc4_fixes-patch;Prepare Kbd for compilation:
-./configure --datadir=/lib/kbd
+./configure --datadir=/lib/kbdThe meaning of the configure options:
@@ -74,13 +74,13 @@
Compile the package:
-make
+makeThis package does not come with a test suite.Install the package:
-make install
+make installFor some languages (e.g., Belarusian) the Kbd package doesn't
@@ -95,10 +95,7 @@
may not be available during the early stages of booting, those binaries
need to be on the root partition:
-mv -v /usr/bin/{kbd_mode,openvt,setfont} /bin
-
-
-
+mv -v /usr/bin/{kbd_mode,openvt,setfont} /bin
diff --git a/chapter06/less.xml b/chapter06/less.xml
index 44a36fb28..087b2e6a3 100644
--- a/chapter06/less.xml
+++ b/chapter06/less.xml
@@ -42,7 +42,7 @@
Prepare Less for compilation:
-./configure --prefix=/usr --sysconfdir=/etc
+./configure --prefix=/usr --sysconfdir=/etcThe meaning of the configure options:
@@ -60,13 +60,13 @@
Compile the package:
-make
+makeThis package does not come with a test suite.Install the package:
-make install
+make install
diff --git a/chapter06/libtool.xml b/chapter06/libtool.xml
index c709ebd3d..cd659e1a2 100644
--- a/chapter06/libtool.xml
+++ b/chapter06/libtool.xml
@@ -44,18 +44,19 @@
Prepare Libtool for compilation:
-./configure --prefix=/usr
+./configure --prefix=/usrCompile the package:
-make
+make
- To test the results, issue:
- make check.
+ To test the results, issue:
+
+make checkInstall the package:
-make install
+make install
diff --git a/chapter06/linux-headers.xml b/chapter06/linux-headers.xml
index 1eaea5690..b50b02398 100644
--- a/chapter06/linux-headers.xml
+++ b/chapter06/linux-headers.xml
@@ -51,11 +51,11 @@
class='directory'>/usr/include/scsi. The versions provided by
Glibc will be used instead:
-sed -i '/scsi/d' include/Kbuild
+sed -i '/scsi/d' include/KbuildInstall the header files:
-make mrproper
+make mrproper
make headers_check
make INSTALL_HDR_PATH=dest headers_install
cp -rv dest/include/* /usr/include
diff --git a/chapter06/m4.xml b/chapter06/m4.xml
index 971f9c539..c22282c1d 100644
--- a/chapter06/m4.xml
+++ b/chapter06/m4.xml
@@ -42,18 +42,19 @@
Prepare M4 for compilation:
-./configure --prefix=/usr
+./configure --prefix=/usrCompile the package:
-make
+make
- To test the results, issue:
- make check.
+ To test the results, issue:
+
+make checkInstall the package:
-make install
+make install
diff --git a/chapter06/make.xml b/chapter06/make.xml
index c95abe9dd..791908683 100644
--- a/chapter06/make.xml
+++ b/chapter06/make.xml
@@ -42,18 +42,19 @@
Prepare Make for compilation:
-./configure --prefix=/usr
+./configure --prefix=/usrCompile the package:
-make
+make
- To test the results, issue:
- make check.
+ To test the results, issue:
+
+make checkInstall the package:
-make install
+make install
diff --git a/chapter06/man-db.xml b/chapter06/man-db.xml
index bfeb04035..d72f23eb5 100644
--- a/chapter06/man-db.xml
+++ b/chapter06/man-db.xml
@@ -47,7 +47,7 @@
with Man-DB, in order for them to be accessible in both traditional and
UTF-8 locales:
-mv man/de{_DE.88591,}
+mv man/de{_DE.88591,}
mv man/es{_ES.88591,}
mv man/it{_IT.88591,}
mv man/ja{_JP.eucJP,}
@@ -58,12 +58,12 @@ sed -i 's,\*_\*,??,' man/Makefile.in
the man_db.conf file to prevent redundant results
when using programs such as whatis:
-sed -i -e '\%\t/usr/man%d' -e '\%\t/usr/local/man%d' src/man_db.conf.in
+sed -i -e '\%\t/usr/man%d' -e '\%\t/usr/local/man%d' src/man_db.conf.inThe third change accounts for programs that Man-DB should be able
to find at runtime, but that haven't been installed yet:
-cat >> include/manconfig.h.in << "EOF"
+cat >> include/manconfig.h.in << "EOF"
#define WEB_BROWSER "exec /usr/bin/lynx"
#define COL "/usr/bin/col"
#define VGRIND "/usr/bin/vgrind"
@@ -82,11 +82,11 @@ EOFFinally, patch the sources to fix output errors if the man page is
prematurely aborted by pressing the 'q' key:
-patch -Np1 -i ../&man-db-fixes-patch;
+patch -Np1 -i ../&man-db-fixes-patch;Prepare Man-DB for compilation:
-./configure --prefix=/usr --enable-mb-groff --disable-setuid
+./configure --prefix=/usr --enable-mb-groff --disable-setuidThe meaning of the configure options:
@@ -112,13 +112,13 @@ EOFCompile the package:
-make
+makeThis package does not come with a test suite.Install the package:
-make install
+make installSome packages provide UTF-8 man pages which this version of
man is unable to display. The following script will
@@ -130,7 +130,7 @@ EOF
during the system build, for public data, we will not bother with error
checking, nor use a non-predictable temporary file name:
-cat >> convert-mans << "EOF"
+cat >> convert-mans << "EOF"
#!/bin/sh -e
FROM="$1"
TO="$2"
diff --git a/chapter06/man-pages.xml b/chapter06/man-pages.xml
index 3f6b98adf..9513306c6 100644
--- a/chapter06/man-pages.xml
+++ b/chapter06/man-pages.xml
@@ -42,7 +42,7 @@
Install Man-pages by running:
-make install
+make install
diff --git a/chapter06/mktemp.xml b/chapter06/mktemp.xml
index b670a7967..4a9aac7e4 100644
--- a/chapter06/mktemp.xml
+++ b/chapter06/mktemp.xml
@@ -46,11 +46,11 @@
to mktemp. Patch Mktemp to include a
tempfile wrapper:
-patch -Np1 -i ../&mktemp-tempfile-patch;
+patch -Np1 -i ../&mktemp-tempfile-patch;Prepare Mktemp for compilation:
-./configure --prefix=/usr --with-libc
+./configure --prefix=/usr --with-libcThe meaning of the configure options:
@@ -69,13 +69,13 @@
Compile the package:
-make
+makeThis package does not come with a test suite.Install the package:
-make install
+make install
make install-tempfile
diff --git a/chapter06/module-init-tools.xml b/chapter06/module-init-tools.xml
index 4f3329ab7..0a36e2f64 100644
--- a/chapter06/module-init-tools.xml
+++ b/chapter06/module-init-tools.xml
@@ -44,27 +44,27 @@
First correct a potential problem when modules are specified
using regular expressions:
-patch -Np1 -i ../&module-init-modprobe-patch;
+patch -Np1 -i ../&module-init-modprobe-patch;Issue the following commands to perform the tests (note that the
make distclean command is required to clean up the source
tree, as the source gets recompiled as part of the testing process):
-./configure
+./configure
make check
make distcleanPrepare Module-Init-Tools for compilation:
-./configure --prefix=/ --enable-zlib
+./configure --prefix=/ --enable-zlibCompile the package:
-make
+makeInstall the package:
-make INSTALL=install install
+make INSTALL=install installThe meaning of the make parameter:
diff --git a/chapter06/ncurses.xml b/chapter06/ncurses.xml
index 2d261cf4c..8b99eb872 100644
--- a/chapter06/ncurses.xml
+++ b/chapter06/ncurses.xml
@@ -54,11 +54,11 @@
Apply the following patch to fix a number of issues uncovered by the
static code analysis tool, Coverity:
-patch -Np1 -i ../&ncurses-coverity-patch;
+patch -Np1 -i ../&ncurses-coverity-patch;Prepare Ncurses for compilation:
-./configure --prefix=/usr --with-shared --without-debug --enable-widec
+./configure --prefix=/usr --with-shared --without-debug --enable-widecThe meaning of the configure option:
@@ -92,7 +92,7 @@
Compile the package:
-make
+makeThis package has a test suite, but it can only be run after the
package has been installed. The tests reside in the
@@ -102,28 +102,28 @@
Install the package:
-make install
+make installCorrect the permissions of a library that should not be executable:
-chmod -v 644 /usr/lib/libncurses++w.a
+chmod -v 644 /usr/lib/libncurses++w.aMove the libraries to the /lib directory,
where they are expected to reside:
-mv -v /usr/lib/libncursesw.so.5* /lib
+mv -v /usr/lib/libncursesw.so.5* /libBecause the libraries have been moved, one symlink points to
a non-existent file. Recreate it:
-ln -sfv ../../lib/libncursesw.so.5 /usr/lib/libncursesw.so
+ln -sfv ../../lib/libncursesw.so.5 /usr/lib/libncursesw.soMany applications still expect the linker to be able to find
non-wide-character Ncurses libraries. Trick such applications into linking with
wide-character libraries by means of symlinks and linker scripts:
-for lib in curses ncurses form panel menu ; do \
+for lib in curses ncurses form panel menu ; do \
rm -vf /usr/lib/lib${lib}.so ; \
echo "INPUT(-l${lib}w)" >/usr/lib/lib${lib}.so ; \
ln -sfv lib${lib}w.a /usr/lib/lib${lib}.a ; \
@@ -134,7 +134,7 @@ ln -sfv libncurses++w.a /usr/lib/libncurses++.a-lcurses at build time are still
buildable:
-rm -vf /usr/lib/libcursesw.so
+rm -vf /usr/lib/libcursesw.so
echo "INPUT(-lncursesw)" >/usr/lib/libcursesw.so
ln -sfv libncurses.so /usr/lib/libcurses.so
ln -sfv libncursesw.a /usr/lib/libcursesw.a
diff --git a/chapter06/patch.xml b/chapter06/patch.xml
index 2acdda2fe..3e08cf8c9 100644
--- a/chapter06/patch.xml
+++ b/chapter06/patch.xml
@@ -44,17 +44,17 @@
Prepare Patch for compilation:
-./configure --prefix=/usr
+./configure --prefix=/usrCompile the package:
-make
+makeThis package does not come with a test suite.Install the package:
-make install
+make install
diff --git a/chapter06/perl.xml b/chapter06/perl.xml
index 77d027b89..10f5f2ce4 100644
--- a/chapter06/perl.xml
+++ b/chapter06/perl.xml
@@ -45,18 +45,18 @@
referenced in one of Perl's configuration files as well as the optional
testsuite:
-echo "127.0.0.1 localhost $(hostname)" > /etc/hosts
+echo "127.0.0.1 localhost $(hostname)" > /etc/hostsFix an incompatibility with gcc-&gcc-version;:
-sed -i 's/command /command[ -]/' makedepend.SH
+sed -i 's/command /command[ -]/' makedepend.SHTo have full control over the way Perl is set up, you can run the
interactive Configure script and hand-pick the way this
package is built. If you prefer, you can use the defaults that Perl
auto-detects, by preparing Perl for compilation with:
-./configure.gnu --prefix=/usr \
+./configure.gnu --prefix=/usr \
-Dman1dir=/usr/share/man/man1 \
-Dman3dir=/usr/share/man/man3 \
-Dpager="/usr/bin/less -isR"
@@ -86,14 +86,15 @@
Compile the package:
-make
+make
- To test the results, issue:
- make test.
+ To test the results, issue:
+
+make testInstall the package:
-make install
+make install
diff --git a/chapter06/procps.xml b/chapter06/procps.xml
index f5265bac6..c2329b2cb 100644
--- a/chapter06/procps.xml
+++ b/chapter06/procps.xml
@@ -42,13 +42,13 @@
Compile the package:
-make
+makeThis package does not come with a test suite.Install the package:
-make install
+make install
diff --git a/chapter06/psmisc.xml b/chapter06/psmisc.xml
index 8368e3a7f..18d390a18 100644
--- a/chapter06/psmisc.xml
+++ b/chapter06/psmisc.xml
@@ -43,7 +43,7 @@
Prepare Psmisc for compilation:
-./configure --prefix=/usr --exec-prefix=""
+./configure --prefix=/usr --exec-prefix=""The meaning of the configure options:
@@ -63,20 +63,20 @@
Compile the package:
-make
+makeThis package does not come with a test suite.Install the package:
-make install
+make installThere is no reason for the pstree and
pstree.x11 programs to reside in /bin. Therefore, move them to /usr/bin:
-mv -v /bin/pstree* /usr/bin
+mv -v /bin/pstree* /usr/binBy default, Psmisc's pidof program is not
installed. This usually is not a problem because it is installed later
@@ -85,7 +85,7 @@
particular system, complete the installation of Psmisc by creating the
following symlink:
-ln -sv killall /bin/pidof
+ln -sv killall /bin/pidof
diff --git a/chapter06/readline.xml b/chapter06/readline.xml
index 4ccc9e3e0..48174821b 100644
--- a/chapter06/readline.xml
+++ b/chapter06/readline.xml
@@ -46,7 +46,7 @@
it can trigger a linking bug in ldconfig. This can be
avoided by issuing the following two seds:
-sed -i '/MV.*old/d' Makefile.in
+sed -i '/MV.*old/d' Makefile.in
sed -i '/{OLDSUFF}/c:' support/shlib-installReadline contains a bug in its handling of non-multibyte characters,
@@ -54,15 +54,15 @@ sed -i '/{OLDSUFF}/c:' support/shlib-install
Fix this issue by applying the following patch from the upstream maintainer:
-patch -Np1 -i ../&readline-fixes-patch;
+patch -Np1 -i ../&readline-fixes-patch;Prepare Readline for compilation:
-./configure --prefix=/usr --libdir=/lib
+./configure --prefix=/usr --libdir=/libCompile the package:
-make SHLIB_LIBS=-lncurses
+make SHLIB_LIBS=-lncursesThe meaning of the make option:
@@ -82,17 +82,17 @@ sed -i '/{OLDSUFF}/c:' support/shlib-installInstall the package:
-make install
+make installNow move the static libraries to a more appropriate location:
-mv -v /lib/lib{readline,history}.a /usr/lib
+mv -v /lib/lib{readline,history}.a /usr/libNext, remove the .so files in
/lib and relink them into /usr/lib:
-rm -v /lib/lib{readline,history}.so
+rm -v /lib/lib{readline,history}.so
ln -sfv ../../lib/libreadline.so.5 /usr/lib/libreadline.so
ln -sfv ../../lib/libhistory.so.5 /usr/lib/libhistory.so
diff --git a/chapter06/sed.xml b/chapter06/sed.xml
index 6633ecb78..ce5a9ff75 100644
--- a/chapter06/sed.xml
+++ b/chapter06/sed.xml
@@ -42,7 +42,7 @@
Prepare Sed for compilation:
-./configure --prefix=/usr --bindir=/bin --enable-html
+./configure --prefix=/usr --bindir=/bin --enable-htmlThe meaning of the new configure option:
@@ -57,14 +57,15 @@
Compile the package:
-make
+make
- To test the results, issue:
- make check.
+ To test the results, issue:
+
+make checkInstall the package:
-make install
+make install
diff --git a/chapter06/shadow.xml b/chapter06/shadow.xml
index d91d80960..e5d1b4896 100644
--- a/chapter06/shadow.xml
+++ b/chapter06/shadow.xml
@@ -53,11 +53,11 @@
usermod programs which prevent them from accepting group
names rather than group ID numbers to the option:
-patch -Np1 -i ../&shadow-useradd-patch;
+patch -Np1 -i ../&shadow-useradd-patch;Prepare Shadow for compilation:
-./configure --libdir=/lib --sysconfdir=/etc --enable-shared \
+./configure --libdir=/lib --sysconfdir=/etc --enable-shared \
--without-selinux
@@ -77,19 +77,19 @@
Disable the installation of the groups program
and its man pages, as Coreutils provides a better version:
-sed -i 's/groups$(EXEEXT) //' src/Makefile
+sed -i 's/groups$(EXEEXT) //' src/Makefile
find man -name Makefile -exec sed -i 's/groups\.1 / /' {} \;Disable the installation of Chinese and Korean manual pages, since
Man-DB cannot format them properly:
-sed -i -e 's/ ko//' -e 's/ zh_CN zh_TW//' man/Makefile
+sed -i -e 's/ ko//' -e 's/ zh_CN zh_TW//' man/MakefileShadow supplies other manual pages in a UTF-8 encoding. Man-DB
can display these in the recommended encodings by using the
convert-mans script which we installed:
-for i in de es fi fr id it pt_BR; do
+for i in de es fi fr id it pt_BR; do
convert-mans UTF-8 ISO-8859-1 man/${i}/*.?
done
@@ -109,7 +109,7 @@ convert-mans UTF-8 ISO-8859-9 man/tr/*.?
for user mailboxes that Shadow uses by default to the /var/mail location used currently:
-sed -i -e 's@#MD5_CRYPT_ENAB.no@MD5_CRYPT_ENAB yes@' \
+sed -i -e 's@#MD5_CRYPT_ENAB.no@MD5_CRYPT_ENAB yes@' \
-e 's@/var/spool/mail@/var/mail@' etc/login.defs
@@ -121,21 +121,21 @@ convert-mans UTF-8 ISO-8859-9 man/tr/*.?Compile the package:
-make
+makeThis package does not come with a test suite.Install the package:
-make install
+make installMove a misplaced program to its proper location:
-mv -v /usr/bin/passwd /bin
+mv -v /usr/bin/passwd /binMove Shadow's libraries to more appropriate locations:
-mv -v /lib/libshadow.*a /usr/lib
+mv -v /lib/libshadow.*a /usr/lib
rm -v /lib/libshadow.so
ln -sfv ../../lib/libshadow.so.0 /usr/lib/libshadow.so
diff --git a/chapter06/sysklogd.xml b/chapter06/sysklogd.xml
index 29f68b356..f26d8df58 100644
--- a/chapter06/sysklogd.xml
+++ b/chapter06/sysklogd.xml
@@ -43,13 +43,13 @@
Compile the package:
-make
+makeThis package does not come with a test suite.Install the package:
-make install
+make install
diff --git a/chapter06/sysvinit.xml b/chapter06/sysvinit.xml
index 0ff172116..dddd77408 100644
--- a/chapter06/sysvinit.xml
+++ b/chapter06/sysvinit.xml
@@ -52,18 +52,18 @@
Sending processes configured via /etc/inittab the TERM signal
instead:
-sed -i 's@Sending processes@& configured via /etc/inittab@g' \
+sed -i 's@Sending processes@& configured via /etc/inittab@g' \
src/init.cCompile the package:
-make -C src
+make -C srcThis package does not come with a test suite.Install the package:
-make -C src install
+make -C src install
diff --git a/chapter06/tar.xml b/chapter06/tar.xml
index 2f7bc7534..a5dfa0a0d 100644
--- a/chapter06/tar.xml
+++ b/chapter06/tar.xml
@@ -42,18 +42,19 @@
Prepare Tar for compilation:
-./configure --prefix=/usr --bindir=/bin --libexecdir=/usr/sbin
+./configure --prefix=/usr --bindir=/bin --libexecdir=/usr/sbinCompile the package:
-make
+make
- To test the results, issue:
- make check.
+ To test the results, issue:
+
+make checkInstall the package:
-make install
+make install
diff --git a/chapter06/texinfo.xml b/chapter06/texinfo.xml
index 44e893c1b..69916295a 100644
--- a/chapter06/texinfo.xml
+++ b/chapter06/texinfo.xml
@@ -47,33 +47,34 @@
in UTF-8 based locales. The patch below makes them valid by falling back
to English messages when a multibyte locale is in use:
-patch -Np1 -i ../&texinfo-multibyte-patch;
+patch -Np1 -i ../&texinfo-multibyte-patch;Texinfo allows local users to overwrite arbitrary files via a symlink
attack on temporary files. Apply the following patch to fix this:
-patch -Np1 -i ../&texinfo-tempfile_fix-patch;
+patch -Np1 -i ../&texinfo-tempfile_fix-patch;Prepare Texinfo for compilation:
-./configure --prefix=/usr
+./configure --prefix=/usrCompile the package:
-make
+make
- To test the results, issue:
- make check.
+ To test the results, issue:
+
+make checkInstall the package:
-make install
+make installOptionally, install the components belonging in a TeX
installation:
-make TEXMF=/usr/share/texmf install-tex
+make TEXMF=/usr/share/texmf install-texThe meaning of the make parameter:
diff --git a/chapter06/udev.xml b/chapter06/udev.xml
index 21499bca4..47660a649 100644
--- a/chapter06/udev.xml
+++ b/chapter06/udev.xml
@@ -44,12 +44,12 @@
The udev-config tarball contains LFS-specific files used to configure
Udev. Unpack it into the Udev source directory:
-tar -xvf ../&udev-config;.tar.bz2
+tar -xvf ../&udev-config;.tar.bz2Create some devices and directories that Udev cannot handle due to
them being required very early in the boot process:
-install -dv /lib/{firmware,udev/devices/{pts,shm}}
+install -dv /lib/{firmware,udev/devices/{pts,shm}}
mknod -m0666 /lib/udev/devices/null c 1 3
ln -sv /proc/self/fd /lib/udev/devices/fd
ln -sv /proc/self/fd/0 /lib/udev/devices/stdin
@@ -59,7 +59,7 @@ ln -sv /proc/kcore /lib/udev/devices/coreCompile the package:
-make EXTRAS="`echo extras/*/`"
+make EXTRAS="`echo extras/*/`"The meaning of the make option:
@@ -74,15 +74,16 @@ ln -sv /proc/kcore /lib/udev/devices/core
- To test the results, issue:
- make test.
+ To test the results, issue:
+
+make testNote that the Udev testsuite will produce numerous messages in
the host system's logs. These are harmless and can be ignored.Install the package:
-make DESTDIR=/ EXTRAS="`echo extras/*/`" install
+make DESTDIR=/ EXTRAS="`echo extras/*/`" installThe meaning of the make parameter:
@@ -102,27 +103,27 @@ ln -sv /proc/kcore /lib/udev/devices/core
installs a few configuration files by default. First install the
commonly-used rules files provided by Udev:
-cp -v etc/udev/rules.d/[0-9]* /etc/udev/rules.d/
+cp -v etc/udev/rules.d/[0-9]* /etc/udev/rules.d/Now install the LFS-specific rules files:
-cd &udev-config;
+cd &udev-config;
make installInstall the documentation that explains the LFS-specific rules
files:
-make install-doc
+make install-docInstall the documentation that explains the commonly-used rules
files provided by Udev:
-make install-extra-doc
+make install-extra-docInstall the documentation that explains how to create custom Udev
rules:
-cd ..
+cd ..
install -m644 -v docs/writing_udev_rules/index.html \
/usr/share/doc/udev-&udev-version;/index.html
diff --git a/chapter06/util-linux.xml b/chapter06/util-linux.xml
index 1335c8754..9f6830f86 100644
--- a/chapter06/util-linux.xml
+++ b/chapter06/util-linux.xml
@@ -49,7 +49,7 @@
hwclock program FHS-compliant, run the
following:
-sed -e 's@etc/adjtime@var/lib/hwclock/adjtime@g' \
+sed -e 's@etc/adjtime@var/lib/hwclock/adjtime@g' \
-i $(grep -rl '/etc/adjtime' .)
mkdir -pv /var/lib/hwclock
@@ -61,16 +61,16 @@ mkdir -pv /var/lib/hwclockUtil-linux fails to compile against newer versions of Linux kernel
headers. The following patches properly fix the problems:
-patch -Np1 -i ../&util-linux-cramfs-patch;
+patch -Np1 -i ../&util-linux-cramfs-patch;
patch -Np1 -i ../&util-linux-lseek-patch;Prepare Util-linux for compilation:
-./configure
+./configureCompile the package:
-make HAVE_KILL=yes HAVE_SLN=yes
+make HAVE_KILL=yes HAVE_SLN=yesThe meaning of the make parameters:
@@ -98,7 +98,7 @@ patch -Np1 -i ../&util-linux-lseek-patch;Install the package:
-make HAVE_KILL=yes HAVE_SLN=yes install
+make HAVE_KILL=yes HAVE_SLN=yes install
diff --git a/chapter06/vim.xml b/chapter06/vim.xml
index 22b9523cf..a1f4d32fd 100644
--- a/chapter06/vim.xml
+++ b/chapter06/vim.xml
@@ -58,7 +58,7 @@
the upstream maintainers since the inital release of Vim-&vim-version;:
-patch -Np1 -i ../&vim-fixes-patch;
+patch -Np1 -i ../&vim-fixes-patch;This version of Vim installs translated man pages and places
them into directories that will not be searched by Man-DB. Patch Vim
@@ -66,17 +66,17 @@
ultimately allows Man-DB to transcode the page into the desired format
at run-time:
-patch -Np1 -i ../&vim-mandir-patch;
+patch -Np1 -i ../&vim-mandir-patch;Finally, change the default location of the
vimrc configuration file to /etc:
-echo '#define SYS_VIMRC_FILE "/etc/vimrc"' >> src/feature.h
+echo '#define SYS_VIMRC_FILE "/etc/vimrc"' >> src/feature.hNow prepare Vim for compilation:
-./configure --prefix=/usr --enable-multibyte
+./configure --prefix=/usr --enable-multibyteThe meaning of the configure options:
@@ -96,16 +96,19 @@
Compile the package:
-make
+make
- To test the results, issue: make test. However,
- this 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.
+ To test the results, issue:
+
+make test
+
+ However, this 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.Install the package:
-make install
+make installMany users are used to using vi instead of
vim. To allow execution of vim
@@ -113,7 +116,7 @@
symlink for both the binary and the man page in the provided
languages:
-ln -sv vim /usr/bin/vi
+ln -sv vim /usr/bin/vi
for L in "" fr it pl ru; do
ln -sv vim.1 /usr/share/man/$L/man1/vi.1
done
@@ -124,7 +127,7 @@ done
class="directory">/usr/share/doc/vim-&vim-version;, making
it consistent with the location of documentation for other packages:
-ln -sv ../&vim-docdir;/doc /usr/share/doc/vim-&vim-version;
+ln -sv ../&vim-docdir;/doc /usr/share/doc/vim-&vim-version;If an X Window System is going to be installed on the LFS
system, it may be necessary to recompile Vim after installing X. Vim
diff --git a/chapter06/zlib.xml b/chapter06/zlib.xml
index 0fa477901..6a4eadbc0 100644
--- a/chapter06/zlib.xml
+++ b/chapter06/zlib.xml
@@ -52,43 +52,45 @@
Prepare Zlib for compilation:
-./configure --prefix=/usr --shared --libdir=/lib
+./configure --prefix=/usr --shared --libdir=/libCompile the package:
-make
+make
- To test the results, issue:
- make check.
+ To test the results, issue:
+
+make checkInstall the shared library:
-make install
+make installThe previous command installed a .so file in /lib. We will remove it and relink it into
/usr/lib:
-rm -v /lib/libz.so
+rm -v /lib/libz.so
ln -sfv ../../lib/libz.so.&zlib-version; /usr/lib/libz.soBuild the static library:
-make clean
+make clean
./configure --prefix=/usr
make
- To test the results again, issue:
- make check.
+ To test the results again, issue:
+
+make checkInstall the static library:
-make install
+make installFix the permissions on the static library:
-chmod -v 644 /usr/lib/libz.a
+chmod -v 644 /usr/lib/libz.a
diff --git a/chapter07/bootscripts.xml b/chapter07/bootscripts.xml
index 3f626486c..8d7cb2104 100644
--- a/chapter07/bootscripts.xml
+++ b/chapter07/bootscripts.xml
@@ -43,7 +43,7 @@
Install the package:
-make install
+make install
diff --git a/chapter08/kernel.xml b/chapter08/kernel.xml
index 3c96b6437..de0e4b1df 100644
--- a/chapter08/kernel.xml
+++ b/chapter08/kernel.xml
@@ -47,7 +47,7 @@
Prepare for compilation by running the following command:
-make mrproper
+make mrproperThis ensures that the kernel tree is absolutely clean. The
kernel team recommends that this command be issued prior to each
@@ -96,7 +96,7 @@
Compile the kernel image and modules:
-make
+makeIf using kernel modules, an /etc/modprobe.conf
file may be needed. Information pertaining to modules and kernel
@@ -107,7 +107,7 @@
Install the modules, if the kernel configuration uses them:
-make modules_install
+make modules_installAfter kernel compilation is complete, additional steps are
required to complete the installation. Some files need to be copied to
@@ -116,14 +116,14 @@
The path to the kernel image may vary depending on the platform
being used. The following command assumes an x86 architecture:
-cp -v arch/i386/boot/bzImage /boot/lfskernel-&linux-version;
+cp -v arch/i386/boot/bzImage /boot/lfskernel-&linux-version;System.map is a symbol file for the kernel.
It maps the function entry points of every function in the kernel API,
as well as the addresses of the kernel data structures for the running
kernel. Issue the following command to install the map file:
-cp -v System.map /boot/System.map-&linux-version;
+cp -v System.map /boot/System.map-&linux-version;The kernel configuration file .config
produced by the make menuconfig step
@@ -131,11 +131,11 @@
that was just compiled. It is a good idea to keep this file for future
reference:
-cp -v .config /boot/config-&linux-version;
+cp -v .config /boot/config-&linux-version;Install the documentation for the Linux kernel:
-install -d /usr/share/doc/linux-&linux-version;
+install -d /usr/share/doc/linux-&linux-version;
cp -r Documentation/* /usr/share/doc/linux-&linux-version;It is important to note that the files in the kernel source
diff --git a/general.ent b/general.ent
index 2bd53cde8..1a9f86e20 100644
--- a/general.ent
+++ b/general.ent
@@ -1,6 +1,6 @@
-
-
+
+