diff --git a/appendices/dependencies.xml b/appendices/dependencies.xml
index 8dc0bcc7e..79ff7c0d1 100644
--- a/appendices/dependencies.xml
+++ b/appendices/dependencies.xml
@@ -546,7 +546,7 @@
&dependencies;
- Bash, Binutils, Coreutils, Gawk, GCC, Glibc, Grep,
+ Bash, Binutils, Coreutils, Gawk, GCC, Glibc, Grep, Gperf,
Make, and Sed
diff --git a/chapter01/changelog.xml b/chapter01/changelog.xml
index 843f8702c..4fe3bbb6a 100644
--- a/chapter01/changelog.xml
+++ b/chapter01/changelog.xml
@@ -36,6 +36,137 @@
-->
+
+ 2015-04-16
+
+
+ [bdubbs] - Update to linux-4.0. Fixes
+ #3775.
+
+
+ [bdubbs] - Update to tzdata-2015c. Fixes
+ #3776.
+
+
+ [bdubbs] - Update to iproute2-4.0.0. Fixes
+ #3777.
+
+
+
+
+
+ 2015-03-31
+
+
+ [bdubbs] - Adjust discussion of LFS envronment variable to be
+ before first use.
+
+
+ [bdubbs] - Use --with-glibc-version=2.11 in gcc-pass1.
+
+
+ [bdubbs] - Update to dejagnu-1.5.3. Fixes
+ #3773.
+
+
+
+
+
+ 2015-03-28
+
+
+ [bdubbs] - Update to linux-3.19.3. Fixes
+ #3772.
+
+
+ [bdubbs] - Update to tzdata2015b. Fixes
+ #3770.
+
+
+
+
+
+ 2015-03-20
+
+
+ [bdubbs] - Update to linux-3.19.2. Fixes
+ #3768.
+
+
+
+
+
+ 2015-03-15
+
+
+ [bdubbs] - Update to tcl-core-8.6.4. Fixes
+ #3766.
+
+
+ [bdubbs] - Update to util-linux-2.26.1. Fixes
+ #3767.
+
+
+ [bdubbs] - Remove non-essential static libraries
+ from the installation. Added a new section in Chapter 6
+ Introduction, suppressed many static libraries in different
+ packages, and removed the remaining in the Cleaning Up section.
+ Fixes
+ #3751.
+
+
+
+
+
+ 2015-03-11
+
+
+ [bdubbs] - Update to intltool-0.51.0. Fixes
+ #3764.
+
+
+
+
+
+ 2015-03-08
+
+
+ [bdubbs] - Update to linux-3.19.1. Fixes
+ #3763.
+
+
+ [bdubbs] - Update to patch-2.7.5. Fixes
+ #3762.
+
+
+ [bdubbs] - Change tcl to minimal tcl-core package. Fixes
+ #3752.
+
+
+
+
+
+ 2015-03-07
+
+
+ [bdubbs] - Update to mpc-1.0.3. Fixes
+ #3753.
+
+
+ [bdubbs] - Update to man-pages-3.8.1. Fixes
+ #3754.
+
+
+ [bdubbs] - Update to xz-5.2.1. Fixes
+ #3757.
+
+
+ [bdubbs] - Update to kmod-20. Fixes
+ #3758.
+
+
+
+
2015-03-06
diff --git a/chapter01/whatsnew.xml b/chapter01/whatsnew.xml
index 580f218e4..6a6f2af96 100644
--- a/chapter01/whatsnew.xml
+++ b/chapter01/whatsnew.xml
@@ -24,7 +24,7 @@
+ -->
@@ -58,14 +58,13 @@
-
+
-
-
+
-
+
@@ -146,9 +145,9 @@
-
+
@@ -158,21 +157,21 @@
-
-
+
-
+
@@ -201,26 +200,26 @@
Tar &tar-version;
-->
-
-
+
-
+
@@ -239,6 +238,10 @@
Added:
+
+ Tcl-core-&tcl-version;
+
+
@@ -261,9 +264,9 @@
Removed:
-
+
+ Tcl-8.6.3
+
+
Prepare Bison for compilation:./configure --prefix=/usr --docdir=/usr/share/doc/bison-&bison-version;
-
Compile the package:make
diff --git a/chapter06/dbus.xml b/chapter06/dbus.xml
index 00579d312..a8c970a52 100644
--- a/chapter06/dbus.xml
+++ b/chapter06/dbus.xml
@@ -52,6 +52,7 @@
--sysconfdir=/etc \
--localstatedir=/var \
--docdir=/usr/share/doc/dbus-&dbus-version; \
+ --disable-static \
--with-console-auth-dir=/run/console
diff --git a/chapter06/expat.xml b/chapter06/expat.xml
index 5a3bbea81..b813a840e 100644
--- a/chapter06/expat.xml
+++ b/chapter06/expat.xml
@@ -43,7 +43,7 @@
Prepare Expat for compilation:
-./configure --prefix=/usr
+./configure --prefix=/usr --disable-staticCompile the package:
diff --git a/chapter06/flex.xml b/chapter06/flex.xml
index 7ed596a94..f508fb0b2 100644
--- a/chapter06/flex.xml
+++ b/chapter06/flex.xml
@@ -47,7 +47,8 @@
Prepare Flex for compilation:
-./configure --prefix=/usr --docdir=/usr/share/doc/flex-&flex-version;
+./configure --prefix=/usr \
+ --docdir=/usr/share/doc/flex-&flex-version;Compile the package:
diff --git a/chapter06/gdbm.xml b/chapter06/gdbm.xml
index 6457f1c83..662dc4324 100644
--- a/chapter06/gdbm.xml
+++ b/chapter06/gdbm.xml
@@ -46,7 +46,9 @@
Prepare GDBM for compilation:
-./configure --prefix=/usr --enable-libgdbm-compat
+./configure --prefix=/usr \
+ --disable-static \
+ --enable-libgdbm-compatThe meaning of the configure option:
diff --git a/chapter06/gettext.xml b/chapter06/gettext.xml
index f1a236ae8..7ad8aeb69 100644
--- a/chapter06/gettext.xml
+++ b/chapter06/gettext.xml
@@ -45,7 +45,9 @@
Prepare Gettext for compilation:
-./configure --prefix=/usr --docdir=/usr/share/doc/gettext-&gettext-version;
+./configure --prefix=/usr \
+ --disable-static \
+ --docdir=/usr/share/doc/gettext-&gettext-version;Compile the package:
diff --git a/chapter06/glibc.xml b/chapter06/glibc.xml
index bd68a6075..4eff24af1 100644
--- a/chapter06/glibc.xml
+++ b/chapter06/glibc.xml
@@ -248,10 +248,12 @@ localedef -i zh_CN -f GB18030 zh_CN.GB18030
/etc/localtime
+
+ Adding nsswitch.conf
+
The /etc/nsswitch.conf file needs to be created
- because, although Glibc provides defaults when this file is missing or corrupt,
- the Glibc defaults do not work well in a networked environment. The time zone
- also needs to be configured.
+ because the Glibc defaults do not work well in a networked environment.
+
Create a new file /etc/nsswitch.conf by running the
following:
@@ -274,7 +276,12 @@ rpc: files
# End /etc/nsswitch.conf
EOF
- Install timezone data:
+
+
+
+ Adding time zone data
+
+ Install and set up the timezone data with the following:tar -xf ../tzdata&tzdata-version;.tar.gz
ZONEINFO=/usr/share/zoneinfo
@@ -352,9 +359,9 @@ unset ZONEINFOReplace <xxx> with the name of the
time zone selected (e.g., Canada/Eastern).
-
+
-
+ Configuring the Dynamic Loader
@@ -397,6 +404,7 @@ include /etc/ld.so.conf.d/*.conf
EOF
mkdir -pv /etc/ld.so.conf.d
+
diff --git a/chapter06/gmp.xml b/chapter06/gmp.xml
index 6f4c2c7c9..c342d5f59 100644
--- a/chapter06/gmp.xml
+++ b/chapter06/gmp.xml
@@ -52,8 +52,9 @@
Prepare GMP for compilation:
-./configure --prefix=/usr \
- --enable-cxx \
+./configure --prefix=/usr \
+ --enable-cxx \
+ --disable-static \
--docdir=/usr/share/doc/gmp-&gmp-version;
diff --git a/chapter06/introduction.xml b/chapter06/introduction.xml
index a3a8b8829..ae0e54c58 100644
--- a/chapter06/introduction.xml
+++ b/chapter06/introduction.xml
@@ -55,4 +55,29 @@
The SBU values and required disk space includes
test suite data for all applicable packages in Chapter 6.
+
+ About libraries
+
+ In general, the LFS editors discourage building and installing static
+ libraries. The original purpose for most static libraries has been made
+ obsolete in a modern Linux system. In addition linking a static library
+ into a program can be detrimental. If an update to the library is needed
+ to remove a security problem, all programs that use the static library will
+ need to be relinked to the new library. Since the use of static libraries
+ is not always obvious, deciding which programs (and the procedures needed to
+ do the linking) may not even be known.
+
+ In the prcedures in Chapter 6, we remove or disable installation of
+ most static libraries. In a few cases, especially glibc and gcc, the use
+ of static libraries remains essential to the general package building
+ process. Usually this is done by passing a
+ option to configure.
+ In other cases, alternate means are needed.
+
+ For a more complete discussion of libraries, see the discussion
+
+ Libraries: Static or shared? in the BLFS book.
+
+
+
diff --git a/chapter06/kmod.xml b/chapter06/kmod.xml
index 82b2ce9b7..a68e259f6 100644
--- a/chapter06/kmod.xml
+++ b/chapter06/kmod.xml
@@ -74,10 +74,15 @@
make
+ This package does not come with a test suite that can be run in the
+ LFS chroot environment. At a minimum the git program is required and
+ several tests will not run outside of a git repository.
+
+
Install the package, and create symlinks for
compatibility with Module-Init-Tools (the package that previously handled
Linux kernel modules):
diff --git a/chapter06/libcap.xml b/chapter06/libcap.xml
index 1a71b7b28..202a4b3a4 100644
--- a/chapter06/libcap.xml
+++ b/chapter06/libcap.xml
@@ -43,6 +43,10 @@
Installation of Libcap
+ Prevent a static library from being installed:
+
+sed -i '/install.*STALIBNAME/d' libcap/Makefile
+
Compile the package:make
diff --git a/chapter06/mpc.xml b/chapter06/mpc.xml
index a8b8818dc..cac9cc7fa 100644
--- a/chapter06/mpc.xml
+++ b/chapter06/mpc.xml
@@ -44,7 +44,9 @@
Prepare MPC for compilation:
-./configure --prefix=/usr --docdir=/usr/share/doc/mpc-&mpc-version;
+./configure --prefix=/usr \
+ --disable-static \
+ --docdir=/usr/share/doc/mpc-&mpc-version;Compile the package and generate the HTML documentation:
diff --git a/chapter06/mpfr.xml b/chapter06/mpfr.xml
index e4febcc9f..ab702f17a 100644
--- a/chapter06/mpfr.xml
+++ b/chapter06/mpfr.xml
@@ -49,6 +49,7 @@
Prepare MPFR for compilation:./configure --prefix=/usr \
+ --disable-static \
--enable-thread-safe \
--docdir=/usr/share/doc/mpfr-&mpfr-version;
diff --git a/chapter06/ncurses.xml b/chapter06/ncurses.xml
index 6761124d4..70aca29fe 100644
--- a/chapter06/ncurses.xml
+++ b/chapter06/ncurses.xml
@@ -41,15 +41,9 @@
Installation of Ncurses
-
+sed -i '/LIBTOOL_INSTALL/d' c++/Makefile.inPrepare Ncurses for compilation:
@@ -57,6 +51,7 @@
--mandir=/usr/share/man \
--with-shared \
--without-debug \
+ --without-normal \
--enable-pc-files \
--enable-widec
@@ -85,6 +80,14 @@
+
+ --without-normal
+
+ This switch disables building and installing most static libraries.
+
+
+
+
Compile the package:
@@ -119,11 +122,8 @@
for lib in 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
ln -sfv ${lib}w.pc /usr/lib/pkgconfig/${lib}.pc
-done
-
-ln -sfv libncurses++w.a /usr/lib/libncurses++.a
+done
Finally, make sure that old applications that look for
-lcurses at build time are still
@@ -131,9 +131,7 @@ ln -sfv libncurses++w.a /usr/lib/libncurses++.a
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
-ln -sfv libncurses.a /usr/lib/libcurses.a
+ln -sfv libncurses.so /usr/lib/libcurses.so
If desired, install the Ncurses documentation:
@@ -168,14 +166,31 @@ cp -av lib/lib*.so.5* /usr/lib
Installed directories
- captoinfo (link to tic), clear, infocmp, infotocap (link to tic),
- ncursesw5-config, reset (link to tset), tabs, tic, toe, tput, and tset
- libcursesw.{a,so} (symlink and linker script to libncursesw.{a,so}),
- libformw.{a,so}, libmenuw.{a,so}, libncurses++w.a, libncursesw.{a,so},
- libpanelw.{a,so}, and their non-wide-character counterparts without "w"
- in the library names.
- /usr/share/tabset, /usr/share/terminfo, and
- /usr/share/doc/ncurses-&ncurses-version;
+
+ captoinfo (link to tic),
+ clear,
+ infocmp,
+ infotocap (link to tic),
+ ncursesw5-config,
+ reset (link to tset),
+ tabs,
+ tic,
+ toe,
+ tput, and
+ tset
+
+
+ libcursesw.so (symlink and linker script to libncursesw.so),
+ libformw.so,
+ libmenuw.so,
+ libncursesw.so,
+ libpanelw.so, and their non-wide-character counterparts without "w"
+ in the library names.
+
+ /usr/share/tabset,
+ /usr/share/terminfo, and
+ /usr/share/doc/ncurses-&ncurses-version;
+
diff --git a/chapter06/readline.xml b/chapter06/readline.xml
index 1f8c63e56..5ddbdf9df 100644
--- a/chapter06/readline.xml
+++ b/chapter06/readline.xml
@@ -56,7 +56,9 @@ sed -i '/{OLDSUFF}/c:' support/shlib-install
Prepare Readline for compilation:
-./configure --prefix=/usr --docdir=/usr/share/doc/readline-&readline-version;
+./configure --prefix=/usr \
+ --disable-static \
+ --docdir=/usr/share/doc/readline-&readline-version;Compile the package:
diff --git a/chapter06/revisedchroot.xml b/chapter06/revisedchroot.xml
index 8927a9f29..32a86a251 100644
--- a/chapter06/revisedchroot.xml
+++ b/chapter06/revisedchroot.xml
@@ -35,12 +35,24 @@
instructions for this (see ).
-rm -rf /tools
-
If the virtual kernel file systems have been unmounted, either manually
or through a reboot, ensure that the virtual kernel file systems are mounted
when reentering the chroot. This process was explained in and .
+ Finally, thre were several static libraries that were not supressed earlier
+ in the chapter in order to satisfy the regression tests in several packages. These
+ libraries are from binutils, bzip2, e2fsprogs, libtool, and zlib. If desired,
+ remove them now:
+
+rm /usr/lib/lib{bfd,opcodes}.a
+rm /usr/lib/libbz2.a
+rm /usr/lib/lib{com_err,e2p,ext2fs,ss}.a
+rm /usr/lib/libltdl.a
+rm /usr/lib/libz.a
+
+
+
diff --git a/chapter06/util-linux.xml b/chapter06/util-linux.xml
index 50faa410e..00706794e 100644
--- a/chapter06/util-linux.xml
+++ b/chapter06/util-linux.xml
@@ -62,7 +62,7 @@
-->
Prepare Util-linux for compilation:
-./configure ADJTIME_PATH=/var/lib/hwclock/adjtime \
+./configure ADJTIME_PATH=/var/lib/hwclock/adjtime \
--docdir=/usr/share/doc/util-linux-&util-linux-version; \
--disable-chfn-chsh \
--disable-login \
@@ -71,6 +71,7 @@
--disable-setpriv \
--disable-runuser \
--disable-pylibmount \
+ --disable-static \
--without-pythonThe --disable and --without options prevent warnings about
diff --git a/chapter06/xz.xml b/chapter06/xz.xml
index 77f3c298d..1ecdace87 100644
--- a/chapter06/xz.xml
+++ b/chapter06/xz.xml
@@ -46,7 +46,10 @@
Prepare Xz for compilation with:
-./configure --prefix=/usr --docdir=/usr/share/doc/xz-&xz-version;
+
+./configure --prefix=/usr \
+ --disable-static \
+ --docdir=/usr/share/doc/xz-&xz-version;Compile the package:
@@ -75,15 +78,37 @@ ln -svf ../../lib/$(readlink /usr/lib/liblzma.so) /usr/lib/liblzma.soInstalled directories
- lzcat (link to xz), lzcmp (link to xzdiff), lzdiff (link to
- xzdiff), lzegrep (link to xzgrep), lzfgrep (link to xzgrep),
- lzgrep (link to xzgrep), lzless (link to xzless), lzma (link to xz),
- lzmadec, lzmainfo, lzmore (link to xzmore),
- unlzma (link to xz), unxz, (link to xz), xz, xzcat (link to xz),
- xzcmp (link to xzdiff), xzdec, xzdiff, xzegrep (link to xzgrep),
- xzfgrep (link to xzgrep), xzgrep, xzless, and xzmore
- liblzma.{a,so}
- /usr/include/lzma and /usr/share/doc/xz-&xz-version;
+
+ lzcat (link to xz),
+ lzcmp (link to xzdiff),
+ lzdiff (link to xzdiff),
+ lzegrep (link to xzgrep),
+ lzfgrep (link to xzgrep),
+ lzgrep (link to xzgrep),
+ lzless (link to xzless),
+ lzma (link to xz),
+ lzmadec,
+ lzmainfo,
+ lzmore (link to xzmore),
+ unlzma (link to xz),
+ unxz (link to xz),
+ xz,
+ xzcat (link to xz),
+ xzcmp (link to xzdiff),
+ xzdec,
+ xzdiff,
+ xzegrep (link to xzgrep),
+ xzfgrep (link to xzgrep),
+ xzgrep,
+ xzless, and
+ xzmore
+
+ liblzma.so
+
+
+ /usr/include/lzma and
+ /usr/share/doc/xz-&xz-version;
+
diff --git a/chapter08/kernel.xml b/chapter08/kernel.xml
index 13932fcf8..39626d001 100644
--- a/chapter08/kernel.xml
+++ b/chapter08/kernel.xml
@@ -216,10 +216,17 @@ cp -r Documentation/* /usr/share/doc/linux-&linux-version;
on the machine. That person would then have write access to the kernel
source.
- If the kernel source tree is going to be retained, run
- chown -R 0:0 on the linux-&linux-version; directory to ensure
- all files are owned by user root.
+
+ In many cases, the configuration of the kernel will need to be
+ updated for packages that will be installed later in BLFS. Unlike
+ other packages, it is not necessary to remove the kernel source tree
+ after the newly built kernel is installed.
+
+ If the kernel source tree is going to be retained, run
+ chown -R 0:0 on the linux-&linux-version; directory to ensure
+ all files are owned by user root.
+ Some kernel documentation recommends creating a symlink from
diff --git a/general.ent b/general.ent
index d12ba058b..ab7b4197f 100644
--- a/general.ent
+++ b/general.ent
@@ -1,8 +1,8 @@
-
+
-
+
-
+
diff --git a/packages.ent b/packages.ent
index da588b24a..9b911fac8 100644
--- a/packages.ent
+++ b/packages.ent
@@ -113,10 +113,10 @@
-
-
+
+
-
+
@@ -309,18 +309,18 @@
-
-
+
+
-
+
-
-
+
+
-
+
@@ -333,10 +333,10 @@
-
-
+
+
-
+
@@ -373,14 +373,14 @@
-
-
+
+
-
+
-
+