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-malloc The 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 tests Install the package: -make install +make install Make 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-build Now 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-build Continue with compiling the package: -make +make Compilation 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 install Next, 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-build Prepare 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-build Compile the package: -make +make Compilation 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 check Install the package: -make install +make install Now 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=/tools Compile the package: -make +make - To test the results, issue: - make check. + To test the results, issue: + +make check Install 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 +make Install 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 done Prepare Coreutils for compilation: -./configure --prefix=/tools +./configure --prefix=/tools Compile 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 install The 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=/tools Build 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=/tools Compile the package: -make +make This 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 > configure Now 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 > configure Build 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="" install The 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=/tools Compile the package: -make +make - To test the results, issue: - make check. + To test the results, issue: + +make check Install 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.1 Now prepare Flex for compilation: -./configure --prefix=/tools +./configure --prefix=/tools Compile the package: -make +make - To test the results, issue: - make check. + To test the results, issue: + +make check Install 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=/tools Due 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 EOF Compile the package: -make +make - To test the results, issue: - make check. + To test the results, issue: + +make check Install 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-build Prepare 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 +make Compilation 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-build Install the package: -make install +make install As 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.in The 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 @@ done Create a separate build directory again: -mkdir -v ../gcc-build +mkdir -v ../gcc-build cd ../gcc-build Before starting to build GCC, remember to unset any environment @@ -134,7 +134,7 @@ cd ../gcc-build Now 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-build Compile the package: -make +make There 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 check The -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-build Install the package: -make install +make install Prepare 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 msgfmt As only one binary has been compiled, it is not possible to run the @@ -76,7 +76,7 @@ make -C src msgfmt Install 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-build Because 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" > configparms Next, 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-build Compile the package: -make +make Compilation 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 check For 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.conf Install the package: -make install +make install Different 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 check Install 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 done Prepare Gzip for compilation: -./configure --prefix=/tools +./configure --prefix=/tools Compile the package: -make +make - To test the results, issue: - make check. + To test the results, issue: + +make check Install 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=/tools Compile the package: -make +make - To test the results, issue: - make check. + To test the results, issue: + +make check Install 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=/tools Compile the package: -make +make - To test the results, issue: - make check. + To test the results, issue: + +make check Install 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 +make This 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=/tools Compile the package: -make +make This 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.SH Prepare 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 utilities Although 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=/tools Compile the package: -make +make - To test the results, issue: - make check. + To test the results, issue: + +make check Install 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=/tools Compile the package: -make +make - To test the results, issue: - make check. + To test the results, issue: + +make check Install 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=/tools Build 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 install Install Tcl's headers. The next package, Expect, requires them to build. -make install-private-headers +make install-private-headers Now 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=/tools Compile the package: -make +make - To test the results, issue: - make check. + To test the results, issue: + +make check Install 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' configure Prepare Util-linux for compilation: -./configure +./configure Compile some support routines: -make -C lib +make -C lib Only 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 more This 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=/usr Compile 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=/usr Compile 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.in 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=/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 +make Skip 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 install Run 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-build Prepare Binutils for compilation: -../binutils-&binutils-version;/configure --prefix=/usr \ +../binutils-&binutils-version;/configure --prefix=/usr \ --enable-shared Compile the package: -make tooldir=/usr +make tooldir=/usr The meaning of the make parameter: @@ -100,16 +100,16 @@ cd ../binutils-build Test the results: -make check +make check Install the package: -make tooldir=/usr install +make tooldir=/usr install Install 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=/usr The 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.h Compile the package: -make +make - To test the results, issue: - make check. + To test the results, issue: + +make check Install 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 clean Compile and test the package: -make +make Install the programs: -make PREFIX=/usr install +make PREFIX=/usr install Install 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-tests In 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=/usr Compile the package: -make +make Skip 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-root We'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/group Now 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/group Install the package: -make install +make install Move 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 +make It 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; install The 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.1 Prepare Diffutils for compilation: -./configure --prefix=/usr +./configure --prefix=/usr Compile the package: -make +make This 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.in The E2fsprogs documentation recommends that the package be built in a subdirectory of the source tree: -mkdir -v build +mkdir -v build cd build Prepare E2fsprogs for compilation: -../configure --prefix=/usr --with-root-prefix="" \ +../configure --prefix=/usr --with-root-prefix="" \ --enable-elf-shlibs @@ -88,10 +88,11 @@ cd build Compile the package: -make +make - To test the results, issue: - make check. + To test the results, issue: + +make check One 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 build Install the binaries, documentation, and shared libraries: -make install +make install Install 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=/usr Compile the package: -make +make This 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 check Install the package: -make install +make install Some 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=/usr Compile the package: -make +make - To test the results, issue: - make check. + To test the results, issue: + +make check Install the package: -make install +make install There 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.a A 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/lib Due 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 EOF Compile the package: -make +make - To test the results, issue: - make check. + To test the results, issue: + +make check Install 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.in The 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.in The 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.in GCC 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.in 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-build Prepare 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-build Compile the package: -make +make In this section, the test suite for GCC is considered @@ -97,11 +97,11 @@ cd ../gcc-build Test the results, but do not stop at errors: -make -k check +make -k check To receive a summary of the test suite results, run: -../gcc-&gcc-version;/contrib/test_summary +../gcc-&gcc-version;/contrib/test_summary For only the summaries, pipe the output through grep -A7 Summ. @@ -119,18 +119,18 @@ cd ../gcc-build Install the package: -make install +make install Some 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 /lib Many 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/cc Now 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=/usr Compile 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; libidn In 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/SUPPORTED When 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; libidn Shells chapter of the BLFS book: -sed -i 's|@BASH@|/bin/bash|' elf/ldd.bash.in +sed -i 's|@BASH@|/bin/bash|' elf/ldd.bash.in 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-build Again, add the needed compiler flag to CFLAGS: -echo "CFLAGS += -march=i486" > configparms +echo "CFLAGS += -march=i486" > configparms Prepare 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-build Compile the package: -make +make In this section, the test suite for Glibc is considered critical. @@ -138,7 +138,7 @@ cd ../glibc-build Test the results: -make -k check 2>&1 | tee glibc-check-log +make -k check 2>&1 | tee glibc-check-log grep Error glibc-check-log You 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.conf Install the package: -make install +make install The 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-locales Then 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.sh Prepare 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 check Install 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.proto Groff 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-multibyte Compile the package: -make +make This package does not come with a test suite. Install the package: -make install +make install Some 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=/usr Compile the package: -make +make - To test the results, issue: - make check. + To test the results, issue: + +make check Install 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=/bin Compile the package: -make +make - To test the results, issue: - make check. + To test the results, issue: + +make check Install the package: -make install +make install Move 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 +make This 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 +make This package does not come with a test suite. Install the package: -make install +make install Move 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/' Makefile Compile the package: -make SBINDIR=/sbin +make SBINDIR=/sbin The meaning of the make option: @@ -69,7 +69,7 @@ Install the package: -make SBINDIR=/sbin install +make SBINDIR=/sbin install The 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/kbd The meaning of the configure options: @@ -74,13 +74,13 @@ Compile the package: -make +make This package does not come with a test suite. Install the package: -make install +make install For 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=/etc The meaning of the configure options: @@ -60,13 +60,13 @@ Compile the package: -make +make This 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=/usr Compile the package: -make +make - To test the results, issue: - make check. + To test the results, issue: + +make check Install 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/Kbuild Install 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=/usr Compile the package: -make +make - To test the results, issue: - make check. + To test the results, issue: + +make check Install 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=/usr Compile the package: -make +make - To test the results, issue: - make check. + To test the results, issue: + +make check Install 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.in The 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 @@ EOF Finally, 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-setuid The meaning of the configure options: @@ -112,13 +112,13 @@ EOF Compile the package: -make +make This package does not come with a test suite. Install the package: -make install +make install Some 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-libc The meaning of the configure options: @@ -69,13 +69,13 @@ Compile the package: -make +make This 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 distclean Prepare Module-Init-Tools for compilation: -./configure --prefix=/ --enable-zlib +./configure --prefix=/ --enable-zlib Compile the package: -make +make Install the package: -make INSTALL=install install +make INSTALL=install install The 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-widec The meaning of the configure option: @@ -92,7 +92,7 @@ Compile the package: -make +make This 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 install Correct 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.a Move 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* /lib Because 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.so Many 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=/usr Compile the package: -make +make This 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/hosts Fix an incompatibility with gcc-&gcc-version;: -sed -i 's/command /command[ -]/' makedepend.SH +sed -i 's/command /command[ -]/' makedepend.SH To 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 test Install 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 +make This 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 +make This package does not come with a test suite. Install the package: -make install +make install There 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/bin By 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-install Readline 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=/lib Compile the package: -make SHLIB_LIBS=-lncurses +make SHLIB_LIBS=-lncurses The meaning of the make option: @@ -82,17 +82,17 @@ sed -i '/{OLDSUFF}/c:' support/shlib-install Install the package: -make install +make install Now 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/lib Next, 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-html The 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 check Install 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/Makefile Shadow 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 +make This package does not come with a test suite. Install the package: -make install +make install Move a misplaced program to its proper location: -mv -v /usr/bin/passwd /bin +mv -v /usr/bin/passwd /bin Move 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 +make This 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.c Compile the package: -make -C src +make -C src This 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/sbin Compile the package: -make +make - To test the results, issue: - make check. + To test the results, issue: + +make check Install 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=/usr Compile the package: -make +make - To test the results, issue: - make check. + To test the results, issue: + +make check Install the package: -make install +make install Optionally, install the components belonging in a TeX installation: -make TEXMF=/usr/share/texmf install-tex +make TEXMF=/usr/share/texmf install-tex The 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.bz2 Create 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/core Compile 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 test Note 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/*/`" install The 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 install Install the documentation that explains the LFS-specific rules files: -make install-doc +make install-doc Install the documentation that explains the commonly-used rules files provided by Udev: -make install-extra-doc +make install-extra-doc Install 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/hwclock Util-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 +./configure Compile the package: -make HAVE_KILL=yes HAVE_SLN=yes +make HAVE_KILL=yes HAVE_SLN=yes The 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.h Now prepare Vim for compilation: -./configure --prefix=/usr --enable-multibyte +./configure --prefix=/usr --enable-multibyte The 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 install Many 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=/lib Compile the package: -make +make - To test the results, issue: - make check. + To test the results, issue: + +make check Install the shared library: -make install +make install The 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.so Build 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 check Install the static library: -make install +make install Fix 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 mrproper This 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 +make If 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_install After 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 @@ - - + +