diff options
author | Krejzi <krejzi@linuxfromscratch.org> | 2015-04-20 11:28:26 +0000 |
---|---|---|
committer | Krejzi <krejzi@linuxfromscratch.org> | 2015-04-20 11:28:26 +0000 |
commit | aad85a65d877738b8fa9614876a3d3947e2884aa (patch) | |
tree | 433a0ff12521ea8cb8133ed9ff6d44a10aaacdda | |
parent | 9d438f49372c21f272e08015e552c4e1b11c7df0 (diff) |
Imported changes from the main book.
git-svn-id: http://svn.linuxfromscratch.org/LFS/branches/systemd@10894 4aa44e1e-78dd-0310-a6d2-fbcd4c07a689
33 files changed, 403 insertions, 157 deletions
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 @@ <segtitle>&dependencies;</segtitle> <seglistitem> - <seg>Bash, Binutils, Coreutils, Gawk, GCC, Glibc, Grep, + <seg>Bash, Binutils, Coreutils, Gawk, GCC, Glibc, Grep, Gperf, Make, and Sed</seg> </seglistitem> </segmentedlist> diff --git a/chapter01/changelog.xml b/chapter01/changelog.xml index 843f8702c..4fe3bbb6a 100644 --- a/chapter01/changelog.xml +++ b/chapter01/changelog.xml @@ -37,6 +37,137 @@ --> <listitem> + <para>2015-04-16</para> + <itemizedlist> + <listitem> + <para>[bdubbs] - Update to linux-4.0. Fixes + <ulink url="&lfs-ticket-root;3775">#3775</ulink>.</para> + </listitem> + <listitem> + <para>[bdubbs] - Update to tzdata-2015c. Fixes + <ulink url="&lfs-ticket-root;3776">#3776</ulink>.</para> + </listitem> + <listitem> + <para>[bdubbs] - Update to iproute2-4.0.0. Fixes + <ulink url="&lfs-ticket-root;3777">#3777</ulink>.</para> + </listitem> + </itemizedlist> + </listitem> + + <listitem> + <para>2015-03-31</para> + <itemizedlist> + <listitem> + <para>[bdubbs] - Adjust discussion of LFS envronment variable to be + before first use.</para> + </listitem> + <listitem> + <para>[bdubbs] - Use --with-glibc-version=2.11 in gcc-pass1.</para> + </listitem> + <listitem> + <para>[bdubbs] - Update to dejagnu-1.5.3. Fixes + <ulink url="&lfs-ticket-root;3773">#3773</ulink>.</para> + </listitem> + </itemizedlist> + </listitem> + + <listitem> + <para>2015-03-28</para> + <itemizedlist> + <listitem> + <para>[bdubbs] - Update to linux-3.19.3. Fixes + <ulink url="&lfs-ticket-root;3772">#3772</ulink>.</para> + </listitem> + <listitem> + <para>[bdubbs] - Update to tzdata2015b. Fixes + <ulink url="&lfs-ticket-root;3770">#3770</ulink>.</para> + </listitem> + </itemizedlist> + </listitem> + + <listitem> + <para>2015-03-20</para> + <itemizedlist> + <listitem> + <para>[bdubbs] - Update to linux-3.19.2. Fixes + <ulink url="&lfs-ticket-root;3768">#3768</ulink>.</para> + </listitem> + </itemizedlist> + </listitem> + + <listitem> + <para>2015-03-15</para> + <itemizedlist> + <listitem> + <para>[bdubbs] - Update to tcl-core-8.6.4. Fixes + <ulink url="&lfs-ticket-root;3766">#3766</ulink>.</para> + </listitem> + <listitem> + <para>[bdubbs] - Update to util-linux-2.26.1. Fixes + <ulink url="&lfs-ticket-root;3767">#3767</ulink>.</para> + </listitem> + <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> + <para>[bdubbs] - Update to intltool-0.51.0. Fixes + <ulink url="&lfs-ticket-root;3764">#3764</ulink>.</para> + </listitem> + </itemizedlist> + </listitem> + + <listitem> + <para>2015-03-08</para> + <itemizedlist> + <listitem> + <para>[bdubbs] - Update to linux-3.19.1. Fixes + <ulink url="&lfs-ticket-root;3763">#3763</ulink>.</para> + </listitem> + <listitem> + <para>[bdubbs] - Update to patch-2.7.5. Fixes + <ulink url="&lfs-ticket-root;3762">#3762</ulink>.</para> + </listitem> + <listitem> + <para>[bdubbs] - Change tcl to minimal tcl-core package. Fixes + <ulink url="&lfs-ticket-root;3752">#3752</ulink>.</para> + </listitem> + </itemizedlist> + </listitem> + + <listitem> + <para>2015-03-07</para> + <itemizedlist> + <listitem> + <para>[bdubbs] - Update to mpc-1.0.3. Fixes + <ulink url="&lfs-ticket-root;3753">#3753</ulink>.</para> + </listitem> + <listitem> + <para>[bdubbs] - Update to man-pages-3.8.1. Fixes + <ulink url="&lfs-ticket-root;3754">#3754</ulink>.</para> + </listitem> + <listitem> + <para>[bdubbs] - Update to xz-5.2.1. Fixes + <ulink url="&lfs-ticket-root;3757">#3757</ulink>.</para> + </listitem> + <listitem> + <para>[bdubbs] - Update to kmod-20. Fixes + <ulink url="&lfs-ticket-root;3758">#3758</ulink>.</para> + </listitem> + </itemizedlist> + </listitem> + + <listitem> <para>2015-03-06</para> <itemizedlist> <listitem> 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 @@ <listitem><para></para></listitem> <!-- satisfy build --> <!--<listitem> <para>None</para> - </listitem> --> + </listitem>--> <!--<listitem> <para>Acl-&acl-version;</para> </listitem>--> @@ -58,14 +58,13 @@ <!--<listitem> <para>D-Bus-&dbus-version;</para> </listitem>--> - <!--<listitem> + <listitem> <para>DejaGNU &dejagnu-version;</para> - </listitem>--> + </listitem> <!--<listitem> <para>Diffutils &diffutils-version;</para> </listitem>--> <!--<listitem> - <listitem> <para>E2fsprogs &e2fsprogs-version;</para> </listitem>--> <!--<listitem> @@ -122,18 +121,18 @@ <!--<listitem> <para>Inetutils &inetutils-version;</para> </listitem>--> - <!--<listitem> + <listitem> <para>Intltool-&intltool-version;</para> - </listitem>--> - <!--<listitem> + </listitem> + <listitem> <para>IPRoute2 &iproute2-version;</para> - </listitem>--> + </listitem> <!--<listitem> <para>Kbd &kbd-version;</para> </listitem>--> - <!--<listitem> + <listitem> <para>Kmod &kmod-version;</para> - </listitem>--> + </listitem> <!--<listitem> <para>Less &less-version;</para> </listitem>--> @@ -146,9 +145,9 @@ <!--<listitem> <para>Libtool &libtool-version;</para> </listitem>--> - <!--<listitem> + <listitem> <para>Linux &linux-version;</para> - </listitem>--> + </listitem> <!--<listitem> <para>M4 &m4-version;</para> </listitem>--> @@ -158,21 +157,21 @@ <!--<listitem> <para>Man-DB &man-db-version;</para> </listitem>--> - <!--<listitem> + <listitem> <para>Man-pages &man-pages-version;</para> - </listitem>--> - <!--<listitem> + </listitem> + <listitem> <para>MPC &mpc-version;</para> - </listitem>--> + </listitem> <!--<listitem> <para>MPFR &mpfr-version;</para> </listitem>--> <!--<listitem> <para>Ncurses &ncurses-version;</para> </listitem>--> - <!--<listitem> + <listitem> <para>Patch &patch-version;</para> - </listitem>--> + </listitem> <!--<listitem> <para>Perl &perl-version;</para> </listitem>--> @@ -201,26 +200,26 @@ <para>Tar &tar-version;</para> </listitem>--> <!--<listitem> - <para>TCL &tcl-version;</para> + <para>Tcl-core-&tcl-version;</para> </listitem>--> <!--<listitem> <para>Texinfo &texinfo-version;</para> </listitem>--> - <!--<listitem> + <listitem> <para>Tzdata &tzdata-version;</para> - </listitem>--> - <!--<listitem> + </listitem> + <listitem> <para>Util-Linux &util-linux-version;</para> - </listitem>--> + </listitem> <!--<listitem> <para>Vim &vim-version;</para> </listitem>--> <!--<listitem> <para>XML-Parser-&xml-parser-version;</para> </listitem>--> - <!--<listitem> + <listitem> <para>XZ-Utils &xz-version;</para> - </listitem>--> + </listitem> <!--<listitem> <para>Zlib &zlib-version;</para> </listitem>--> @@ -239,6 +238,10 @@ <title>Added:</title> <listitem><para></para></listitem> <!-- satisfy build --> + <listitem> + <para>Tcl-core-&tcl-version;</para> + </listitem> + <!--<listitem> <para>&bash-fixes-patch;</para> </listitem>--> @@ -261,9 +264,9 @@ <title>Removed:</title> <listitem><para></para></listitem> <!-- satisfy build --> - <!--<listitem> - <para>binutils-2.24-load_gcc_lto_plugin_by_default-1.patch</para> - </listitem>--> + <listitem> + <para>Tcl-8.6.3</para> + </listitem> <!--<listitem> <para>binutils-2.24-lto_testsuite-1.patch</para> diff --git a/chapter02/chapter02.xml b/chapter02/chapter02.xml index 84484ccce..aa62827bb 100644 --- a/chapter02/chapter02.xml +++ b/chapter02/chapter02.xml @@ -14,7 +14,7 @@ <xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="introduction.xml"/> <xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="creatingpartition.xml"/> <xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="creatingfilesystem.xml"/> - <xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="mounting.xml"/> <xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="aboutlfs.xml"/> + <xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="mounting.xml"/> </chapter> diff --git a/chapter02/mounting.xml b/chapter02/mounting.xml index 3e6c25d0c..873896384 100644 --- a/chapter02/mounting.xml +++ b/chapter02/mounting.xml @@ -13,17 +13,11 @@ <para>Now that a file system has been created, the partition needs to be made accessible. In order to do this, the partition needs to be mounted at a chosen mount point. For the purposes of this book, it is - assumed that the file system is mounted under <filename - class="directory">/mnt/lfs</filename>, but the directory choice is up - to you.</para> + assumed that the file system is mounted under the directory specified by the + <envar>LFS</envar> envronment varibale as described in the previous section. + </para> - <para>Choose a mount point and assign it to the <envar>LFS</envar> - environment variable by running:</para> - -<screen role="nodump"><userinput>export LFS=/mnt/lfs</userinput></screen> - - <para>Next, create the mount point and mount the LFS file system by - running:</para> + <para>Create the mount point and mount the LFS file system by running:</para> <screen role="nodump"><userinput>mkdir -pv $LFS mount -v -t ext4 /dev/<replaceable><xxx></replaceable> $LFS</userinput></screen> diff --git a/chapter05/gcc-pass1.xml b/chapter05/gcc-pass1.xml index 7398a810f..62b94ebe2 100644 --- a/chapter05/gcc-pass1.xml +++ b/chapter05/gcc-pass1.xml @@ -98,12 +98,14 @@ done</userinput></screen> copied files. When used in conjunction with <command>cp -u</command>, this prevents unexpected changes to the original files in case the commands are inadvertently run twice. </para> - +<!-- <para>GCC doesn't detect stack protection correctly, which causes problems for the build of Glibc-&glibc-version;, so fix that by issuing the following command:</para> <screen><userinput remap="pre">sed -i '/k prot/agcc_cv_libc_provides_ssp=yes' gcc/configure</userinput></screen> +--> + <!-- <para>Also fix a problem identified upstream:</para> @@ -120,6 +122,7 @@ cd ../gcc-build</userinput></screen> <screen><userinput remap="configure">../gcc-&gcc-version;/configure \ --target=$LFS_TGT \ --prefix=/tools \ + --with-glibc-version=2.11 \ --with-sysroot=$LFS \ --with-newlib \ --without-headers \ diff --git a/chapter05/libstdc++.xml b/chapter05/libstdc++.xml index d93f46bc5..9af130f4b 100644 --- a/chapter05/libstdc++.xml +++ b/chapter05/libstdc++.xml @@ -79,8 +79,8 @@ cd ../gcc-build</userinput></screen> <varlistentry> <term><parameter>--disable-libstdcxx-threads</parameter></term> <listitem> - <para>Since we have not built the thread C library, the C++ - one cannot be built as well.</para> + <para>Since we have not yet built the C threads library, the C++ + one cannot be built either.</para> </listitem> </varlistentry> diff --git a/chapter05/linux-headers.xml b/chapter05/linux-headers.xml index 395bf1cc1..36edc3c3d 100644 --- a/chapter05/linux-headers.xml +++ b/chapter05/linux-headers.xml @@ -48,8 +48,7 @@ by way of sanitizing various C header files that are shipped in the Linux kernel source tarball.</para> - <para>Make sure there are no stale files and dependencies lying around - from previous activity:</para> + <para>Make sure there are no stale files embedded in the package:</para> <screen><userinput remap="pre">make mrproper</userinput></screen> diff --git a/chapter05/tcl.xml b/chapter05/tcl.xml index 92ff30d8e..ce1365600 100644 --- a/chapter05/tcl.xml +++ b/chapter05/tcl.xml @@ -9,15 +9,15 @@ <?dbhtml filename="tcl.html"?> <sect1info condition="script"> - <productname>tcl</productname> + <productname>tcl-core</productname> <productnumber>&tcl-version;</productnumber> <address>&tcl-url;</address> </sect1info> - <title>Tcl-&tcl-version;</title> + <title>Tcl-core-&tcl-version;</title> <indexterm zone="ch-tools-tcl"> - <primary sortas="a-Tcl">Tcl</primary> + <primary sortas="a-Tcl">Tcl-core</primary> </indexterm> <sect2 role="package"> @@ -38,7 +38,7 @@ </sect2> <sect2 role="installation"> - <title>Installation of Tcl</title> + <title>Installation of Tcl-core</title> <para>This package and the next three (Expect, DejaGNU, and Check) are installed to support running the test suites for GCC and Binutils and other @@ -48,6 +48,10 @@ run in this chapter (they are not mandatory), these packages are required to run the test suites in <xref linkend="chapter-building-system"/>.</para> + <para>Note that the Tcl package used here is a minimal version needed + to run the LFS tests. For the full package, see the + <ulink url='&blfs-book;general/tcl.html'>BLFS Tcl procedures</ulink>.</para> + <para>Prepare Tcl for compilation:</para> <screen><userinput remap="configure">cd unix @@ -93,7 +97,7 @@ </sect2> <sect2 id="contents-tcl" role="content"> - <title>Contents of Tcl</title> + <title>Contents of Tcl-core</title> <segmentedlist> <segtitle>Installed programs</segtitle> diff --git a/chapter06/acl.xml b/chapter06/acl.xml index d725c69bb..0bc379b6a 100644 --- a/chapter06/acl.xml +++ b/chapter06/acl.xml @@ -59,7 +59,9 @@ <para>Prepare Acl for compilation:</para> -<screen><userinput remap="configure">./configure --prefix=/usr --libexecdir=/usr/lib</userinput></screen> +<screen><userinput remap="configure">./configure --prefix=/usr \ + --disable-static \ + --libexecdir=/usr/lib</userinput></screen> <para>Compile the package:</para> diff --git a/chapter06/attr.xml b/chapter06/attr.xml index 1822ade4e..37a0fc8dc 100644 --- a/chapter06/attr.xml +++ b/chapter06/attr.xml @@ -53,7 +53,7 @@ <para>Prepare Attr 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/bison.xml b/chapter06/bison.xml index af13eef5d..bafb23451 100644 --- a/chapter06/bison.xml +++ b/chapter06/bison.xml @@ -39,18 +39,15 @@ <sect2 role="installation"> <title>Installation of Bison</title> +<!-- bison only installs a static library + <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' >> lib/config.h</userinput></screen> ---> <para>Compile the package:</para> <screen><userinput remap="make">make</userinput></screen> 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</userinput></screen> <variablelist> 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/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</userinput></screen> <primary sortas="e-/etc/localtime">/etc/localtime</primary> </indexterm> + <sect3> + <title>Adding nsswitch.conf</title> + <para>The <filename>/etc/nsswitch.conf</filename> 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.</para> + because the Glibc defaults do not work well in a networked environment. + </para> <para>Create a new file <filename>/etc/nsswitch.conf</filename> by running the following:</para> @@ -274,7 +276,12 @@ rpc: files # End /etc/nsswitch.conf</literal> EOF</userinput></screen> - <para>Install timezone data:</para> + </sect3> + + <sect3> + <title>Adding time zone data</title> + + <para>Install and set up the timezone data with the following:</para> <screen><userinput>tar -xf ../tzdata&tzdata-version;.tar.gz ZONEINFO=/usr/share/zoneinfo @@ -352,9 +359,9 @@ unset ZONEINFO</userinput></screen> <para>Replace <replaceable><xxx></replaceable> with the name of the time zone selected (e.g., Canada/Eastern).</para> - </sect2> + </sect3> - <sect2 id="conf-ld" role="configuration"> + <sect3 id="conf-ld" role="configuration"> <title>Configuring the Dynamic Loader</title> <indexterm zone="conf-ld"> @@ -397,6 +404,7 @@ include /etc/ld.so.conf.d/*.conf EOF mkdir -pv /etc/ld.so.conf.d</userinput></screen> + </sect3> </sect2> <sect2 id="contents-glibc" role="content"> 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/kmod.xml b/chapter06/kmod.xml index 82b2ce9b7..a68e259f6 100644 --- a/chapter06/kmod.xml +++ b/chapter06/kmod.xml @@ -74,10 +74,15 @@ <screen><userinput remap="make">make</userinput></screen> + <para>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. </para> + +<!-- <para>To test the results, issue:</para> <screen><userinput remap="test">make check</userinput></screen> - +--> <para>Install the package, and create symlinks for compatibility with Module-Init-Tools (the package that previously handled Linux kernel modules):</para> 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)" > /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)" > /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..32a86a251 100644 --- a/chapter06/revisedchroot.xml +++ b/chapter06/revisedchroot.xml @@ -35,12 +35,24 @@ 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> + +<!-- Flex shared library is broken. Keep static until next flex release. --> + </sect1> 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 @@ --> <para>Prepare Util-linux for compilation:</para> -<screen><userinput remap="configure">./configure ADJTIME_PATH=/var/lib/hwclock/adjtime \ +<screen><userinput remap="configure">./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-python</userinput></screen> <para>The --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 @@ <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/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;</userinput></screen> on the machine. That person would then have write access to the kernel source.</para> - <para>If the kernel source tree is going to be retained, run - <command>chown -R 0:0</command> on the <filename - class="directory">linux-&linux-version;</filename> directory to ensure - all files are owned by user <emphasis>root</emphasis>.</para> + <note> + <para>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.</para> + + <para>If the kernel source tree is going to be retained, run + <command>chown -R 0:0</command> on the <filename + class="directory">linux-&linux-version;</filename> directory to ensure + all files are owned by user <emphasis>root</emphasis>.</para> + </note> <warning> <para>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 @@ -<!ENTITY version "20150219-systemd"> +<!ENTITY version "20150420-systemd"> <!ENTITY short-version "systemd"> <!-- Used in dbus chapter, change to x.y for release --> -<!ENTITY releasedate "February 19, 2015"> +<!ENTITY releasedate "April 20, 2015"> <!ENTITY copyrightdate "1999-2015"><!-- jhalfs needs a literal dash, not – --> -<!ENTITY milestone "7.7"> +<!ENTITY milestone "7.8"> <!ENTITY generic-version "systemd"> <!-- Use "development", "testing", or "x.y[-pre{x}]" --> <!ENTITY lfs-root "http://www.linuxfromscratch.org/"> diff --git a/packages.ent b/packages.ent index da588b24a..9b911fac8 100644 --- a/packages.ent +++ b/packages.ent @@ -113,10 +113,10 @@ <!ENTITY dbus-ch6-du "43 MB"> <!ENTITY dbus-ch6-sbu "0.4 SBU"> -<!ENTITY dejagnu-version "1.5.2"> -<!ENTITY dejagnu-size "583 KB"> +<!ENTITY dejagnu-version "1.5.3"> +<!ENTITY dejagnu-size "584 KB"> <!ENTITY dejagnu-url "&gnu;dejagnu/dejagnu-&dejagnu-version;.tar.gz"> -<!ENTITY dejagnu-md5 "97a86a21c92ac456641a97f712ea40ac"> +<!ENTITY dejagnu-md5 "5bda2cdb1af51a80aecce58d6e42bd2f"> <!ENTITY dejagnu-home "&gnu-software;dejagnu/"> <!ENTITY dejagnu-ch5-du "4.6 MB"> <!ENTITY dejagnu-ch5-sbu "less than 0.1 SBU"> @@ -309,18 +309,18 @@ <!ENTITY inetutils-ch6-du "34 MB"> <!ENTITY inetutils-ch6-sbu "0.4 SBU"> -<!ENTITY intltool-version "0.50.2"> -<!ENTITY intltool-size "185 KB"> +<!ENTITY intltool-version "0.51.0"> +<!ENTITY intltool-size "159 KB"> <!ENTITY intltool-url "http://launchpad.net/intltool/trunk/&intltool-version;/+download/intltool-&intltool-version;.tar.gz"> -<!ENTITY intltool-md5 "23fbd879118253cb99aeac067da5f591"> +<!ENTITY intltool-md5 "12e517cac2b57a0121cda351570f1e63"> <!ENTITY intltool-home "http://freedesktop.org/wiki/Software/intltool"> <!ENTITY intltool-ch6-du "1.3 MB"> <!ENTITY intltool-ch6-sbu "less than 0.1 SBU"> -<!ENTITY iproute2-version "3.19.0"> -<!ENTITY iproute2-size "445 KB"> +<!ENTITY iproute2-version "4.0.0"> +<!ENTITY iproute2-size "449 KB"> <!ENTITY iproute2-url "&kernel;linux/utils/net/iproute2/iproute2-&iproute2-version;.tar.xz"> -<!ENTITY iproute2-md5 "237083a1e3c388cde7a115a5724dc72a"> +<!ENTITY iproute2-md5 "3adc263ade4ee76c35032e8f50b54108"> <!ENTITY iproute2-home "&kernel;linux/utils/net/iproute2/"> <!ENTITY iproute2-ch6-du "10.6 MB"> <!ENTITY iproute2-ch6-sbu "0.1 SBU"> @@ -333,10 +333,10 @@ <!ENTITY kbd-ch6-du "34 MB"> <!ENTITY kbd-ch6-sbu "0.1 SBU"> -<!ENTITY kmod-version "19"> -<!ENTITY kmod-size "1,440 KB"> +<!ENTITY kmod-version "20"> +<!ENTITY kmod-size "428 KB"> <!ENTITY kmod-url "&kernel;linux/utils/kernel/kmod/kmod-&kmod-version;.tar.xz"> -<!ENTITY kmod-md5 "a08643f814aa4efc12211c6e5909f4d9"> +<!ENTITY kmod-md5 "d6f4fef718a50bd88080de6a43bc64d8"> <!ENTITY kmod-home " "> <!ENTITY kmod-ch6-du "37 MB"> <!ENTITY kmod-ch6-sbu "0.1 SBU"> @@ -373,14 +373,14 @@ <!ENTITY libtool-ch6-du "48 MB"> <!ENTITY libtool-ch6-sbu "2.0 SBU"> -<!ENTITY linux-major-version "3"> -<!ENTITY linux-minor-version "19"> +<!ENTITY linux-major-version "4"> +<!ENTITY linux-minor-version "0"> <!ENTITY linux-patch-version "0"> <!--<!ENTITY linux-version "&linux-major-version;.&linux-minor-version;.&linux-patch-version;">--> <!ENTITY linux-version "&linux-major-version;.&linux-minor-version;"> -<!ENTITY linux-size "79,775 KB"> +<!ENTITY linux-size "80,384 KB"> <!ENTITY linux-url "&kernel;linux/kernel/v&linux-major-version;.x/linux-&linux-version;.tar.xz"> -<!ENTITY linux-md5 "d3fc8316d4d4d04b65cbc2d70799e763"> +<!ENTITY linux-md5 "a86916bd12798220da9eb4a1eec3616d"> <!ENTITY linux-home "http://www.kernel.org/"> <!-- measured for 3.9.0 / gcc-4.8.0 on x86_64 : minimum is allnoconfig extended for a hopefully-bootable build on desktop machine, @@ -421,18 +421,18 @@ <!ENTITY man-db-ch6-du "33 MB"> <!ENTITY man-db-ch6-sbu "0.4 SBU"> -<!ENTITY man-pages-version "3.79"> -<!ENTITY man-pages-size "1,290 KB"> +<!ENTITY man-pages-version "3.82"> +<!ENTITY man-pages-size "1,326 KB"> <!ENTITY man-pages-url "&kernel;linux/docs/man-pages/man-pages-&man-pages-version;.tar.xz"> -<!ENTITY man-pages-md5 "938950106f4483383dd367fe9e8aab9f"> +<!ENTITY man-pages-md5 "b3d4d949530d0ce13971040b53cf7a39"> <!ENTITY man-pages-home "http://www.kernel.org/doc/man-pages/"> <!ENTITY man-pages-ch6-du "35 MB"> <!ENTITY man-pages-ch6-sbu "less than 0.1 SBU"> -<!ENTITY mpc-version "1.0.2"> -<!ENTITY mpc-size "619 KB"> +<!ENTITY mpc-version "1.0.3"> +<!ENTITY mpc-size "655 KB"> <!ENTITY mpc-url "http://www.multiprecision.org/mpc/download/mpc-&mpc-version;.tar.gz"> -<!ENTITY mpc-md5 "68fadff3358fb3e7976c7a398a0af4c3"> +<!ENTITY mpc-md5 "d6a1d5f8ddea3abd2cc3e98f58352d26"> <!ENTITY mpc-home "http://www.multiprecision.org/"> <!ENTITY mpc-ch6-du "11.2 MB"> <!ENTITY mpc-ch6-sbu "0.3 SBU"> @@ -455,10 +455,10 @@ <!ENTITY ncurses-ch6-du "54 MB"> <!ENTITY ncurses-ch6-sbu "0.5 SBU"> -<!ENTITY patch-version "2.7.4"> -<!ENTITY patch-size "698 KB"> +<!ENTITY patch-version "2.7.5"> +<!ENTITY patch-size "711 KB"> <!ENTITY patch-url "&gnu;patch/patch-&patch-version;.tar.xz"> -<!ENTITY patch-md5 "abc59498fcdddd44e0d07764aa105fd2"> +<!ENTITY patch-md5 "e3da7940431633fb65a01b91d3b7a27a"> <!ENTITY patch-home "http://savannah.gnu.org/projects/patch/"> <!ENTITY patch-ch5-du "11.3 MB"> <!ENTITY patch-ch5-sbu "0.2 SBU"> @@ -543,11 +543,11 @@ <!ENTITY tar-ch6-du "46 MB"> <!ENTITY tar-ch6-sbu "2.3 SBU"> -<!ENTITY tcl-version "8.6.3"> +<!ENTITY tcl-version "8.6.4"> <!ENTITY tcl-major-version "8.6"> -<!ENTITY tcl-size "8,693 KB"> -<!ENTITY tcl-url "http://downloads.sourceforge.net/project/tcl/Tcl/&tcl-version;/tcl&tcl-version;-src.tar.gz"> -<!ENTITY tcl-md5 "db382feca91754b7f93da16dc4cdad1f"> +<!ENTITY tcl-size "5,677 KB"> +<!ENTITY tcl-url "http://sourceforge.net/projects/tcl/files/Tcl/&tcl-version;/tcl-core&tcl-version;-src.tar.gz"> +<!ENTITY tcl-md5 "8b8c9d85469d8dbe32e51117b8ef11e3"> <!ENTITY tcl-home "http://tcl.sourceforge.net/"> <!ENTITY tcl-ch5-du "67 MB"> <!ENTITY tcl-ch5-sbu "0.8 SBU"> @@ -562,16 +562,16 @@ <!ENTITY texinfo-ch6-du "109 MB"> <!ENTITY texinfo-ch6-sbu "0.5 SBU"> -<!ENTITY tzdata-version "2015a"> -<!ENTITY tzdata-size "286 KB"> +<!ENTITY tzdata-version "2015c"> +<!ENTITY tzdata-size "288 KB"> <!ENTITY tzdata-url "http://www.iana.org/time-zones/repository/releases/tzdata&tzdata-version;.tar.gz"> -<!ENTITY tzdata-md5 "4ed11c894a74a5ea64201b1c6dbb8831"> +<!ENTITY tzdata-md5 "4b4a3e344786198c46909e5afde08788"> <!ENTITY tzdata-home "http://www.iana.org/time-zones"> -<!ENTITY util-linux-version "2.26"> -<!ENTITY util-linux-size "3,758 KB"> +<!ENTITY util-linux-version "2.26.1"> +<!ENTITY util-linux-size "3,740 KB"> <!ENTITY util-linux-url "&kernel;linux/utils/util-linux/v2.26/util-linux-&util-linux-version;.tar.xz"> -<!ENTITY util-linux-md5 "912c550a4e5c47c0ce9abd0733fa9a64"> +<!ENTITY util-linux-md5 "2308850946766677f3fabe0685e85de8"> <!ENTITY util-linux-home "http://freecode.com/projects/util-linux"> <!ENTITY util-linux-ch5-du "139 MB"> <!ENTITY util-linux-ch5-sbu "0.6 SBU"> @@ -595,10 +595,10 @@ <!ENTITY xml-parser-ch6-du "2.4 MB"> <!ENTITY xml-parser-ch6-sbu "less than 0.1 SBU"> -<!ENTITY xz-version "5.2.0"> -<!ENTITY xz-size "984 KB"> +<!ENTITY xz-version "5.2.1"> +<!ENTITY xz-size "987 KB"> <!ENTITY xz-url "http://tukaani.org/xz/xz-&xz-version;.tar.xz"> -<!ENTITY xz-md5 "d87c242778fcf5ce4598de80a55ded28"> +<!ENTITY xz-md5 "b5e2dd95dc8498cea5354377ed89aa65"> <!ENTITY xz-home "http://tukaani.org/xz"> <!ENTITY xz-ch5-du "21 MB"> <!ENTITY xz-ch5-sbu "0.3 SBU"> diff --git a/prologue/hostreqs.xml b/prologue/hostreqs.xml index a0221c139..a2f5fa97e 100644 --- a/prologue/hostreqs.xml +++ b/prologue/hostreqs.xml @@ -77,7 +77,7 @@ </listitem> <listitem> - <para><emphasis role="strong">Glibc-2.5.1</emphasis> (Versions + <para><emphasis role="strong">Glibc-2.11</emphasis> (Versions greater than &glibc-version; are not recommended as they have not been tested)</para> </listitem> @@ -161,7 +161,6 @@ <screen role="nodump"><userinput>cat > version-check.sh << "EOF" <literal>#!/bin/bash # Simple script to list version numbers of critical development tools - export LC_ALL=C bash --version | head -n1 | cut -d" " -f2-4 echo "/bin/sh -> `readlink -f /bin/sh`" |