aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--chapter01/changelog.xml14
-rw-r--r--chapter06/attr.xml9
-rw-r--r--chapter06/bison.xml13
-rw-r--r--chapter06/eudev.xml1
-rw-r--r--chapter06/expat.xml2
-rw-r--r--chapter06/flex.xml3
-rw-r--r--chapter06/gdbm.xml4
-rw-r--r--chapter06/gettext.xml4
-rw-r--r--chapter06/gmp.xml5
-rw-r--r--chapter06/introduction.xml25
-rw-r--r--chapter06/libcap.xml4
-rw-r--r--chapter06/mpc.xml4
-rw-r--r--chapter06/mpfr.xml1
-rw-r--r--chapter06/ncurses.xml61
-rw-r--r--chapter06/readline.xml4
-rw-r--r--chapter06/revisedchroot.xml14
-rw-r--r--chapter06/util-linux.xml1
-rw-r--r--chapter06/xz.xml45
-rw-r--r--general.ent4
-rw-r--r--prologue/bookinfo.xml4
20 files changed, 161 insertions, 61 deletions
diff --git a/chapter01/changelog.xml b/chapter01/changelog.xml
index 8ce26e8d3..61f70cd57 100644
--- a/chapter01/changelog.xml
+++ b/chapter01/changelog.xml
@@ -37,6 +37,20 @@
-->
<listitem>
+ <para>2015-03-15</para>
+ <itemizedlist>
+ <listitem>
+ <para>[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
+ <ulink url="&lfs-ticket-root;3751">#3751</ulink>.</para>
+ </listitem>
+ </itemizedlist>
+ </listitem>
+
+ <listitem>
<para>2015-03-11</para>
<itemizedlist>
<listitem>
diff --git a/chapter06/attr.xml b/chapter06/attr.xml
index a7c995b15..d565b143c 100644
--- a/chapter06/attr.xml
+++ b/chapter06/attr.xml
@@ -45,15 +45,12 @@
directory:</para>
<screen><userinput remap="pre">sed -i -e 's|/@pkg_name@|&amp;-@pkg_version@|' include/builddefs.in</userinput></screen>
-<!--
- <para>Prevent installation of manual pages that were already installed by
- Man-Pages package:</para>
-<screen><userinput remap="pre">sed -i -e "/SUBDIRS/s|man2||" man/Makefile</userinput></screen>
--->
<para>Prepare Attr for compilation:</para>
-<screen><userinput remap="configure">./configure --prefix=/usr --bindir=/bin</userinput></screen>
+<screen><userinput remap="configure">./configure --prefix=/usr \
+ --bindir=/bin \
+ --disable-static</userinput></screen>
<para>Compile the package:</para>
diff --git a/chapter06/bison.xml b/chapter06/bison.xml
index af13eef5d..568b34c9f 100644
--- a/chapter06/bison.xml
+++ b/chapter06/bison.xml
@@ -40,17 +40,14 @@
<sect2 role="installation">
<title>Installation of Bison</title>
+ <para>Inhibit static library installation:</para>
+
+<screen><userinput remap="pre">sed -i '/lib_LIBRARIES =/d' Makefile.in</userinput></screen>
+
<para>Prepare Bison for compilation:</para>
<screen><userinput remap="configure">./configure --prefix=/usr --docdir=/usr/share/doc/bison-&bison-version;</userinput></screen>
-<!--
- <para>The configure system causes Bison to be built without support for
- internationalization of error messages if a <command>bison</command>
- program is not already in $PATH. The following addition will correct
- this:</para>
-
-<screen><userinput remap="configure">echo '#define YYENABLE_NLS 1' &gt;&gt; lib/config.h</userinput></screen>
--->
+
<para>Compile the package:</para>
<screen><userinput remap="make">make</userinput></screen>
diff --git a/chapter06/eudev.xml b/chapter06/eudev.xml
index b9aca2c4c..c599c92e6 100644
--- a/chapter06/eudev.xml
+++ b/chapter06/eudev.xml
@@ -62,6 +62,7 @@ BLKID_LIBS='-L/tools/lib -lblkid' \
--enable-keymap \
--disable-introspection \
--disable-gudev \
+ --disable-static \
--disable-gtk-doc-html</userinput></screen>
<para>Compile the package:</para>
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 @@
<para>Prepare Expat for compilation:</para>
-<screen><userinput remap="configure">./configure --prefix=/usr</userinput></screen>
+<screen><userinput remap="configure">./configure --prefix=/usr --disable-static</userinput></screen>
<para>Compile the package:</para>
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 @@
<para>Prepare Flex for compilation:</para>
-<screen><userinput remap="configure">./configure --prefix=/usr --docdir=/usr/share/doc/flex-&flex-version;</userinput></screen>
+<screen><userinput remap="configure">./configure --prefix=/usr \
+ --docdir=/usr/share/doc/flex-&flex-version;</userinput></screen>
<para>Compile the package:</para>
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 @@
<para>Prepare GDBM for compilation:</para>
-<screen><userinput remap="configure">./configure --prefix=/usr --enable-libgdbm-compat</userinput></screen>
+<screen><userinput remap="configure">./configure --prefix=/usr \
+ --disable-static \
+ --enable-libgdbm-compat</userinput></screen>
<variablelist>
<title>The meaning of the configure option:</title>
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 @@
<para>Prepare Gettext for compilation:</para>
-<screen><userinput remap="configure">./configure --prefix=/usr --docdir=/usr/share/doc/gettext-&gettext-version;</userinput></screen>
+<screen><userinput remap="configure">./configure --prefix=/usr \
+ --disable-static \
+ --docdir=/usr/share/doc/gettext-&gettext-version;</userinput></screen>
<para>Compile the package:</para>
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 @@
<para>Prepare GMP for compilation:</para>
-<screen><userinput remap="configure">./configure --prefix=/usr \
- --enable-cxx \
+<screen><userinput remap="configure">./configure --prefix=/usr \
+ --enable-cxx \
+ --disable-static \
--docdir=/usr/share/doc/gmp-&gmp-version;</userinput></screen>
<variablelist>
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 @@
<note><para>The SBU values and required disk space includes
test suite data for all applicable packages in Chapter 6.</para></note>
+ <sect2>
+ <title>About libraries</title>
+
+ <para>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.</para>
+
+ <para>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>--disable-static</option> option to <command>configure</command>.
+ In other cases, alternate means are needed.</para>
+
+ <para>For a more complete discussion of libraries, see the discussion
+ <ulink url="&blfs-root;/view/&short-version;/introduction/libraries.html">
+ Libraries: Static or shared?</ulink> in the BLFS book.</para>
+
+ </sect2>
+
</sect1>
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 @@
<sect2 role="installation">
<title>Installation of Libcap</title>
+ <para>Prevent a static library from being installed:</para>
+
+<screen><userinput remap="pre">sed -i '/install.*STALIBNAME/d' libcap/Makefile</userinput></screen>
+
<para>Compile the package:</para>
<screen><userinput remap="make">make</userinput></screen>
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 @@
<para>Prepare MPC for compilation:</para>
-<screen><userinput remap="configure">./configure --prefix=/usr --docdir=/usr/share/doc/mpc-&mpc-version;</userinput></screen>
+<screen><userinput remap="configure">./configure --prefix=/usr \
+ --disable-static \
+ --docdir=/usr/share/doc/mpc-&mpc-version;</userinput></screen>
<para>Compile the package and generate the HTML documentation:</para>
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 @@
<para>Prepare MPFR for compilation:</para>
<screen><userinput remap="configure">./configure --prefix=/usr \
+ --disable-static \
--enable-thread-safe \
--docdir=/usr/share/doc/mpfr-&mpfr-version;</userinput></screen>
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 @@
<sect2 role="installation">
<title>Installation of Ncurses</title>
- <!-- FIXME: Uncomment if using a dated ncurses release instead of a numbered
- one.
+ <para>Don't install a static library that is not handled by configure:</para>
- <para>Since the release of Ncurses-&ncurses-version;, some bugs have been fixed
- and features added. The most important news are .......
- To get these fixes and features, apply the rollup patch:</para>
-
-<screen><userinput>bzcat ../&ncurses-rollup-patch; | patch -Np1</userinput></screen>
- -->
+<screen><userinput remap="pre">sed -i '/LIBTOOL_INSTALL/d' c++/Makefile.in</userinput></screen>
<para>Prepare Ncurses for compilation:</para>
@@ -57,6 +51,7 @@
--mandir=/usr/share/man \
--with-shared \
--without-debug \
+ --without-normal \
--enable-pc-files \
--enable-widec</userinput></screen>
@@ -85,6 +80,14 @@
</listitem>
</varlistentry>
+ <varlistentry>
+ <term><parameter>--without-normal</parameter></term>
+ <listitem>
+ <para>This switch disables building and installing most static libraries.
+ </para>
+ </listitem>
+ </varlistentry>
+
</variablelist>
<para>Compile the package:</para>
@@ -119,11 +122,8 @@
<screen><userinput remap="install">for lib in ncurses form panel menu ; do
rm -vf /usr/lib/lib${lib}.so
echo "INPUT(-l${lib}w)" &gt; /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</userinput></screen>
+done</userinput></screen>
<para>Finally, make sure that old applications that look for
<filename class="libraryfile">-lcurses</filename> at build time are still
@@ -131,9 +131,7 @@ ln -sfv libncurses++w.a /usr/lib/libncurses++.a</userinput></screen>
<screen><userinput remap="install">rm -vf /usr/lib/libcursesw.so
echo "INPUT(-lncursesw)" &gt; /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</userinput></screen>
+ln -sfv libncurses.so /usr/lib/libcurses.so</userinput></screen>
<para>If desired, install the Ncurses documentation:</para>
@@ -168,14 +166,31 @@ cp -av lib/lib*.so.5* /usr/lib</userinput></screen>
<segtitle>Installed directories</segtitle>
<seglistitem>
- <seg>captoinfo (link to tic), clear, infocmp, infotocap (link to tic),
- ncursesw5-config, reset (link to tset), tabs, tic, toe, tput, and tset</seg>
- <seg>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.</seg>
- <seg>/usr/share/tabset, /usr/share/terminfo, and
- /usr/share/doc/ncurses-&ncurses-version;</seg>
+ <seg>
+ captoinfo (link to tic),
+ clear,
+ infocmp,
+ infotocap (link to tic),
+ ncursesw5-config,
+ reset (link to tset),
+ tabs,
+ tic,
+ toe,
+ tput, and
+ tset
+ </seg>
+ <seg>
+ 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.</seg>
+ <seg>
+ /usr/share/tabset,
+ /usr/share/terminfo, and
+ /usr/share/doc/ncurses-&ncurses-version;
+ </seg>
</seglistitem>
</segmentedlist>
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</userinput></screen>
<para>Prepare Readline for compilation:</para>
-<screen><userinput remap="configure">./configure --prefix=/usr --docdir=/usr/share/doc/readline-&readline-version;</userinput></screen>
+<screen><userinput remap="configure">./configure --prefix=/usr \
+ --disable-static \
+ --docdir=/usr/share/doc/readline-&readline-version;</userinput></screen>
<para>Compile the package:</para>
diff --git a/chapter06/revisedchroot.xml b/chapter06/revisedchroot.xml
index 8927a9f29..d2980f76a 100644
--- a/chapter06/revisedchroot.xml
+++ b/chapter06/revisedchroot.xml
@@ -35,12 +35,22 @@
instructions for this (see <ulink url="&blfs-root;"/>).</para>
</note>
-<screen role="nodump"><userinput>rm -rf /tools</userinput></screen>
-
<para>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 <xref
linkend="ch-system-bindmount"/> and <xref
linkend="ch-system-kernfsmount"/>.</para>
+ <para>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, flex, libtool, and zlib. If desired,
+ remove them now:</para>
+
+<screen><userinput>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/lib{fl,fl_pic}.a
+rm /usr/lib/libltdl.a
+rm /usr/lib/libz.a</userinput></screen>
+
</sect1>
diff --git a/chapter06/util-linux.xml b/chapter06/util-linux.xml
index fcf7202b7..c0383410d 100644
--- a/chapter06/util-linux.xml
+++ b/chapter06/util-linux.xml
@@ -71,6 +71,7 @@
--disable-setpriv \
--disable-runuser \
--disable-pylibmount \
+ --disable-static \
--without-python \
--without-systemd \
--without-systemdsystemunitdir</userinput></screen>
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 @@
<para>Prepare Xz for compilation with:</para>
-<screen><userinput remap="configure">./configure --prefix=/usr --docdir=/usr/share/doc/xz-&xz-version;</userinput></screen>
+<screen><userinput remap="configure">
+./configure --prefix=/usr \
+ --disable-static \
+ --docdir=/usr/share/doc/xz-&xz-version;</userinput></screen>
<para>Compile the package:</para>
@@ -75,15 +78,37 @@ ln -svf ../../lib/$(readlink /usr/lib/liblzma.so) /usr/lib/liblzma.so</userinput
<segtitle>Installed directories</segtitle>
<seglistitem>
- <seg>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</seg>
- <seg>liblzma.{a,so}</seg>
- <seg>/usr/include/lzma and /usr/share/doc/xz-&xz-version;</seg>
+ <seg>
+ 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</seg>
+ <seg>
+ liblzma.so
+ </seg>
+ <seg>
+ /usr/include/lzma and
+ /usr/share/doc/xz-&xz-version;
+ </seg>
</seglistitem>
</segmentedlist>
diff --git a/general.ent b/general.ent
index ffe192cf2..36c0cd393 100644
--- a/general.ent
+++ b/general.ent
@@ -1,7 +1,7 @@
-<!ENTITY version "SVN-20150311">
+<!ENTITY version "SVN-20150315">
<!ENTITY short-version "svn"> <!-- Used below in &blfs-book;. Change to x.y for release
but not -rc releases -->
-<!ENTITY releasedate "March 11, 2015">
+<!ENTITY releasedate "March 15, 2015">
<!ENTITY copyrightdate "1999-2015"><!-- jhalfs needs a literal dash, not &ndash; -->
<!ENTITY milestone "7.8">
<!ENTITY generic-version "development"> <!-- Use "development", "testing", or "x.y[-pre{x}]" -->
diff --git a/prologue/bookinfo.xml b/prologue/bookinfo.xml
index 5d95c53c5..a44a137a5 100644
--- a/prologue/bookinfo.xml
+++ b/prologue/bookinfo.xml
@@ -16,8 +16,8 @@
<surname>Beekmans</surname>
</author>
<author>
- <firstname>Edited by Matthew Burgess</firstname>
- <surname>and Bruce Dubbs</surname>
+ <firstname>Managing Editor is Bruce</firstname>
+ <surname>Dubbs</surname>
</author>
</authorgroup>