Mostly text updates in Chapter 8.

There are a couple of minor command changes.



git-svn-id: http://svn.linuxfromscratch.org/LFS/branches/cross2@11924 4aa44e1e-78dd-0310-a6d2-fbcd4c07a689
This commit is contained in:
Bruce Dubbs 2020-06-12 04:40:07 +00:00
parent ea7ec72fba
commit 6a156bab1b
38 changed files with 166 additions and 287 deletions

View File

@ -157,7 +157,7 @@ cd build</userinput></screen>
<para>Install the package:</para>
<warning><para>If <envar>LFS</envar> is not proprly set, and despite the
<warning><para>If <envar>LFS</envar> is not properly set, and despite the
recommendations, you are building as root, the next command will install
the newly built glibc to your host system, which most likely will render it
unusable. So double check that the environment is correctly set for user

View File

@ -13,8 +13,8 @@
<para>Most programs and libraries are, by default, compiled with
debugging symbols included (with <command>gcc</command>'s
<parameter>-g</parameter> option). This means that when debugging a
program or library that was compiled with debugging information
included, the debugger can provide not only memory addresses, but also
program or library that was compiled with debugging information,
the debugger can provide not only memory addresses, but also
the names of the routines and variables.</para>
<para>However, the inclusion of these debugging symbols enlarges a

View File

@ -50,7 +50,7 @@ readelf -l a.out | grep ': /lib'</userinput></screen>
<para os="b">There should be no errors,
and the output of the last command will be (allowing for
platform-specific differences in dynamic linker name):</para>
platform-specific differences in the dynamic linker name):</para>
<screen os="c"><computeroutput>[Requesting program interpreter: /lib64/ld-linux-x86-64.so.2]</computeroutput></screen>
@ -104,7 +104,7 @@ SEARCH_DIR("/lib")</computeroutput></screen>
<screen os="o"><computeroutput>attempt to open /lib/libc.so.6 succeeded</computeroutput></screen>
<para os="p">Lastly, make sure GCC is using the correct dynamic linker:</para>
<para os="p">Make sure GCC is using the correct dynamic linker:</para>
<screen os="q"><userinput>grep found dummy.log</userinput></screen>
@ -115,8 +115,8 @@ SEARCH_DIR("/lib")</computeroutput></screen>
<para os="t">If the output does not appear as shown above or is not received
at all, then something is seriously wrong. Investigate and retrace the
steps to find out where the problem is and correct it. The most likely
reason is that something went wrong with the specs file adjustment. Any
steps to find out where the problem is and correct it. <!--The most likely
reason is that something went wrong with the specs file adjustment.--> Any
issues will need to be resolved before continuing with the process.</para>
<para os="u">Once everything is working correctly, clean up the test files:</para>

View File

@ -43,15 +43,13 @@
<para>Prepare Attr for compilation:</para>
<screen revision="sysv"><userinput remap="configure">
./configure --prefix=/usr \
<screen revision="sysv"><userinput remap="configure">./configure --prefix=/usr \
--bindir=/bin \
--disable-static \
--sysconfdir=/etc \
--docdir=/usr/share/doc/attr-&attr-version;</userinput></screen>
<screen revision="systemd"><userinput remap="configure">
./configure --prefix=/usr \
<screen revision="systemd"><userinput remap="configure">./configure --prefix=/usr \
--disable-static \
--sysconfdir=/etc \
--docdir=/usr/share/doc/attr-&attr-version;</userinput></screen>

View File

@ -43,7 +43,7 @@
<para>First, fix a bug generated by Perl 5.28.</para>
<screen><userinput remap="pre">sed '361 s/{/\\{/' -i bin/autoscan.in</userinput></screen>
<screen><userinput remap="pre">sed -i '361 s/{/\\{/' bin/autoscan.in</userinput></screen>
<para>Prepare Autoconf for compilation:</para>

View File

@ -43,7 +43,7 @@
<para>Fix a failing test:</para>
<screen><userinput remap="pre">sed -i "s/''/etags/" t/tags-lisp-space.sh</userinput></screen>
<screen><userinput remap="pre">sed -i "s/''/etags/" t/tags-lisp-space.sh</userinput></screen>
<para>Prepare Automake for compilation:</para>

View File

@ -83,14 +83,7 @@
<screen><userinput remap="test">su tester &lt;&lt; EOF
PATH=$PATH make tests &lt; $(tty)
EOF</userinput></screen>
<!--
<para>The <systemitem class="username">tester</systemitem>
user does not have enough permissions for all the tests to pass. This shows
up in some <quote>diff</quote> output in four test results. Portions of the
run-execscript, run-lastpipe, run-read, and run-test programs
are known to fail in the LFS chroot environment, but pass if the tests
are run in a full system.</para>
-->
<para>Install the package and move the main executable to
<filename class='directory'>/bin</filename>:</para>
@ -104,7 +97,7 @@ mv -vf /usr/bin/bash /bin</userinput></screen>
<note>
<para>The parameters used make the <command>bash</command>
process an interactive login shell and continue to disable hashing so
process an interactive login shell and continues to disable hashing so
that new programs are found as they become available.</para>
</note>

View File

@ -111,9 +111,9 @@ FORCE_UNSAFE_CONFIGURE=1 ./configure \
<screen><userinput remap="test">make NON_ROOT_USERNAME=tester check-root</userinput></screen>
<para>We're going to run the remainder of the tests as the
<systemitem class="username">tester</systemitem> user. Certain tests,
however, require that the user be a member of more than one group. So that
these tests are not skipped we'll add a temporary group and make the
<systemitem class="username">tester</systemitem> user. Certain tests
require that the user be a member of more than one group. So that
these tests are not skipped, add a temporary group and make the
user <systemitem class="username">tester</systemitem> a part of it:</para>
<screen><userinput remap="test">echo "dummy:x:102:tester" &gt;&gt; /etc/group</userinput></screen>
@ -126,12 +126,6 @@ FORCE_UNSAFE_CONFIGURE=1 ./configure \
<para>Now run the tests:</para>
<screen><userinput remap="test">su tester -c "PATH=$PATH make RUN_EXPENSIVE_TESTS=yes check"</userinput></screen>
<!--
<para>The test program test-getlogin is known to fail in a
partially built system environment like the chroot environment here, but
passes if run at the end of this chapter. The test program tty.sh is
also known to fail.</para>
-->
<para>Remove the temporary group:</para>
@ -147,7 +141,7 @@ mv -v /usr/bin/{false,ln,ls,mkdir,mknod,mv,pwd,rm} /bin
mv -v /usr/bin/{rmdir,stty,sync,true,uname} /bin
mv -v /usr/bin/chroot /usr/sbin
mv -v /usr/share/man/man1/chroot.1 /usr/share/man/man8/chroot.8
sed -i s/\"1\"/\"8\"/1 /usr/share/man/man8/chroot.8</userinput></screen>
sed -i 's/"1"/"8"' /usr/share/man/man8/chroot.8</userinput></screen>
<para revision="sysv">Some of the scripts in the LFS-Bootscripts package
depend on <command>head</command>, <command>nice</command>,
@ -190,6 +184,17 @@ sed -i s/\"1\"/\"8\"/1 /usr/share/man/man8/chroot.8</userinput></screen>
<?dbfo list-presentation="list"?>
<?dbhtml list-presentation="table"?>
<varlistentry id="lbracket">
<term><command>[</command></term>
<listitem>
<para>Is an actual command, /usr/bin/[, that is a synonym
for the <command>test</command> command.</para>
<indexterm zone="ch-system-coreutils lbracket">
<primary sortas="b-111">[</primary>
</indexterm>
</listitem>
</varlistentry>
<varlistentry id="base32">
<term><command>base32</command></term>
<listitem>

View File

@ -23,7 +23,7 @@
<sect2 role="package">
<title/>
<para>The E2fsprogs package contains the utilities for handling the
<para>The e2fsprogs package contains the utilities for handling the
<systemitem class="filesystem">ext2</systemitem> file system. It also
supports the <systemitem class="filesystem">ext3</systemitem> and
<systemitem class="filesystem">ext4</systemitem> journaling
@ -44,13 +44,13 @@
<sect2 role="installation">
<title>Installation of E2fsprogs</title>
<para>The E2fsprogs documentation recommends that the package be built in
<para>The e2fsprogs documentation recommends that the package be built in
a subdirectory of the source tree: </para>
<screen><userinput remap="pre">mkdir -v build
cd build</userinput></screen>
<para>Prepare E2fsprogs for compilation:</para>
<para>Prepare e2fsprogs for compilation:</para>
<screen><userinput remap="configure">../configure --prefix=/usr \
--bindir=/bin \
@ -62,7 +62,7 @@ cd build</userinput></screen>
--disable-fsck</userinput></screen>
<variablelist>
<title>The meaning of the environment variable and configure options:</title>
<title>The meaning of the configure options:</title>
<varlistentry>
<term><parameter>--with-root-prefix=""</parameter> and
@ -74,7 +74,7 @@ cd build</userinput></screen>
programs still need to be available. They belong in directories
like <filename class="directory">/lib</filename> and <filename
class="directory">/sbin</filename>. If this option is not passed
to E2fsprogs' configure, the programs are installed into the
to configure, the programs are installed into the
<filename class="directory">/usr</filename> directory.</para>
</listitem>
</varlistentry>
@ -90,11 +90,11 @@ cd build</userinput></screen>
<varlistentry>
<term><parameter>--disable-*</parameter></term>
<listitem>
<para>This prevents E2fsprogs from building and installing the
<para>This prevents e2fsprogs from building and installing the
<systemitem class="library">libuuid</systemitem> and
<systemitem class="library">libblkid</systemitem> libraries, the
<systemitem class="daemon">uuidd</systemitem> daemon, and the
<command>fsck</command> wrapper, as Util-Linux installs more
<command>fsck</command> wrapper, as util-linux installs more
recent versions.</para>
</listitem>
</varlistentry>
@ -109,7 +109,7 @@ cd build</userinput></screen>
<screen><userinput remap="test">make check</userinput></screen>
<para>One of the E2fsprogs tests will attempt to allocate 256 MB of memory.
<para>One of the e2fsprogs tests will attempt to allocate 256 MB of memory.
If you do not have significantly more RAM than this, be sure to enable
sufficient swap space for the test. See <xref
linkend="ch-partitioning-creatingfilesystem"/> and <xref

View File

@ -43,7 +43,7 @@
<para>First fix a problem with the regression tests in the LFS environment:</para>
<screen><userinput remap="pre">sed -i 's|usr/bin/env |bin/|' run.sh.in</userinput></screen>
<screen><userinput remap="pre">sed -i 's:usr/bin/env :bin/:' run.sh.in</userinput></screen>
<para>Prepare Expat for compilation:</para>

View File

@ -65,9 +65,9 @@ cd build</userinput></screen>
--disable-bootstrap \
--with-system-zlib</userinput></screen>
<para>Note that for other languages, there are some prerequisites that
<para>Note that for other programming languages there are some prerequisites that
are not yet available. See the
<ulink url="&blfs-book;general/gcc.html">BLFS Book</ulink>
<ulink url="&blfs-book;general/gcc.html">BLFS Book GCC page</ulink>
for instructions on how to build all of GCC's supported languages.</para>
<variablelist>
@ -77,7 +77,7 @@ cd build</userinput></screen>
<term><parameter>LD=ld</parameter></term>
<listitem>
<para>This parameter makes the configure script use the ld installed
by the binutils installed earlier in this chapter, rather than
by the binutils built earlier in this chapter, rather than
the cross-built version which would otherwise be used.</para>
</listitem>
</varlistentry>
@ -86,7 +86,7 @@ cd build</userinput></screen>
<term><parameter>--with-system-zlib</parameter></term>
<listitem>
<para>This switch tells GCC to link to the system installed copy of
the Zlib library, rather than its own internal copy.</para>
the zlib library, rather than its own internal copy.</para>
</listitem>
</varlistentry>
</variablelist>
@ -100,8 +100,8 @@ cd build</userinput></screen>
critical. Do not skip it under any circumstance.</para>
</important>
<para>One set of tests in the GCC test suite is known to exhaust the stack,
so increase the stack size prior to running the tests:</para>
<para>One set of tests in the GCC test suite is known to exhaust the default
stack, so increase the stack size prior to running the tests:</para>
<screen><userinput remap="test">ulimit -s 32768</userinput></screen>
@ -175,7 +175,7 @@ ln -sfv ../../libexec/gcc/$(gcc -dumpmachine)/&gcc-version;/liblto_plugin.so \
<para>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
the same sanity checks as we did earlier in the chapter:</para>
some sanity checks:</para>
<xi:include xmlns:xi="http://www.w3.org/2001/XInclude"
href="adjusting.xml"
@ -205,8 +205,8 @@ ln -sfv ../../libexec/gcc/$(gcc -dumpmachine)/&gcc-version;/liblto_plugin.so \
/usr/lib/gcc/x86_64-pc-linux-gnu/&gcc-version;/../../../../lib/crti.o succeeded
/usr/lib/gcc/x86_64-pc-linux-gnu/&gcc-version;/../../../../lib/crtn.o succeeded</computeroutput></screen>
<para>Depending on your machine architecture, the above may differ slightly,
the difference usually being the name of the directory
<para>Depending on your machine architecture, the above may differ slightly.
The difference will be the name of the directory
after <filename class="directory">/usr/lib/gcc</filename>. The important
thing to look for here is that <command>gcc</command> has found all three
<filename>crt*.o</filename> files under the
@ -228,16 +228,8 @@ ln -sfv ../../libexec/gcc/$(gcc -dumpmachine)/&gcc-version;/liblto_plugin.so \
/usr/lib/gcc/x86_64-pc-linux-gnu/&gcc-version;/include-fixed
/usr/include</computeroutput></screen>
<para>Again, note that the directory named after your target triplet may be
different than the above, depending on your architecture.</para>
<!-- This appears to be obsolete
<note><para>As of version 4.3.0, GCC now unconditionally installs the
<filename>limits.h</filename> file into the private
<filename class="directory">include-fixed</filename> directory, and that
directory is required to be in place.</para></note>
-->
<para>Again, the directory named after your target triplet may be
different than the above, depending on your system architecture.</para>
<xi:include xmlns:xi="http://www.w3.org/2001/XInclude"
href="adjusting.xml"

View File

@ -24,7 +24,7 @@
<title/>
<para>The GDBM package contains the GNU Database Manager. It is a library
of database functions that use extensible hashing and work similar to the
of database functions that use extensible hashing and works similar to the
standard UNIX dbm. The library provides primitives for storing key/data
pairs, searching and retrieving the data by its key and deleting a key
along with its data. </para>
@ -60,8 +60,8 @@
<varlistentry>
<term><envar>--enable-libgdbm-compat</envar></term>
<listitem>
<para>This switch enables the libgdbm compatibility library to be
built, as some packages outside of LFS may require the older DBM
<para>This switch enables building the libgdbm compatibility library.
Some packages outside of LFS may require the older DBM
routines it provides.</para>
</listitem>
</varlistentry>

View File

@ -43,31 +43,6 @@
<sect2 role="installation">
<title>Installation of Gettext</title>
<!-- This has been fixed in upstream gnulib, when a new version of
gettext is released, please check #4055 to see if the change has been
picked up in this package
As of April 11, 2018, 'TESTS = test-lock' is in gettext-runtime/tests/Makefile.am
Perhaps the test is fixed.
There is no reference to 'test' or TEST in gettext-tools/gnulib-tests/Makefile.am
-->
<!--
<para>First, suppress two invocations of test-lock which on some machines
can loop forever:</para>
<screen><userinput remap="pre">sed -i '/^TESTS =/d' gettext-runtime/tests/Makefile.in &amp;&amp;
sed -i 's/test-lock..EXEEXT.//' gettext-tools/gnulib-tests/Makefile.in</userinput></screen>-->
<!-- As of April 11, 2018 appdata.* is NOT in git master, but appears
to be in metainfo.{its,loc}, When updating, check BLFS gnome-screenshot. -->
<!--
<para>Now fix a configuration file:</para>
<screen><userinput remap="pre">sed -e '/AppData/{N;N;p;s/\.appdata\./.metainfo./}' \
-i gettext-tools/its/appdata.loc</userinput></screen>
-->
<para>Prepare Gettext for compilation:</para>
<screen><userinput remap="configure">./configure --prefix=/usr \
@ -76,8 +51,9 @@ sed -i 's/test-lock..EXEEXT.//' gettext-tools/gnulib-tests/Makefile.in</userinpu
<para>Compile the package:</para>
<screen><userinput remap="make">make BISON_LOCALEDIR=/usr/share/locale</userinput></screen>
<!--<screen><userinput remap="make">make BISON_LOCALEDIR=/usr/share/locale</userinput></screen>-->
<screen><userinput remap="make">make</userinput></screen>
<!--
<variablelist>
<title>The meaning of the make parameter:</title>
@ -92,7 +68,7 @@ sed -i 's/test-lock..EXEEXT.//' gettext-tools/gnulib-tests/Makefile.in</userinpu
</varlistentry>
</variablelist>
-->
<para>To test the results (this takes a long time, around 3 SBUs),
issue:</para>

View File

@ -49,34 +49,7 @@
store their runtime data in the FHS-compliant locations:</para>
<screen><userinput remap="pre">patch -Np1 -i ../&glibc-fhs-patch;</userinput></screen>
<!--
<para>Fix a minor security issue with glob functions:</para>
<screen><userinput remap="pre">patch -Np1 -i ../&glibc-glob-patch;</userinput></screen>
-->
<!-- No longer needed
<para>Fix a problem introduced with the linux-5.2 kernel:</para>
<screen><userinput remap="pre">sed -i '/asm.socket.h/a# include &lt;linux/sockios.h&gt;' \
sysdeps/unix/sysv/linux/bits/socket.h</userinput></screen>
=== already done ===
<para>Create a symlink for LSB
compliance. Additionally, for x86_64, create a compatibility symlink
required for the dynamic loader to function correctly:</para>
<screen><userinput remap="pre">case $(uname -m) in
i?86) ln -sfv ld-linux.so.2 /lib/ld-lsb.so.3
;;
x86_64) ln -sfv ../lib/ld-linux-x86-64.so.2 /lib64
ln -sfv ../lib/ld-linux-x86-64.so.2 /lib64/ld-lsb-x86-64.so.3
;;
esac</userinput></screen>
<para>Remove a file that may be left over from a previous build attempt:
</para>
<screen><userinput remap="pre">rm -f /usr/include/limits.h</userinput></screen>
-->
<para>The Glibc documentation recommends building Glibc
in a dedicated build directory:</para>
@ -94,7 +67,7 @@ cd build</userinput></screen>
<!-- WIP -->
<variablelist>
<title>The meaning of the options and new configure parameters:</title>
<!--
<varlistentry>
<term><parameter>CC="gcc -ffile-prefix-map=$LFS_DIR=$DIR"</parameter></term>
<listitem>
@ -106,7 +79,7 @@ cd build</userinput></screen>
symbols.</para>
</listitem>
</varlistentry>
-->
<varlistentry>
<term><parameter>--disable-werror</parameter></term>
<listitem>
@ -176,7 +149,7 @@ esac</userinput></screen>
<para><emphasis>misc/tst-ttyname</emphasis>
is known to fail in the LFS chroot environment.</para>
</listitem>
<!--
<listitem>
<para><emphasis>inet/tst-idna_name_classify</emphasis>
is known to fail in the LFS chroot environment.</para>
@ -187,7 +160,7 @@ esac</userinput></screen>
<emphasis>posix/tst-getaddrinfo5</emphasis>
may fail on some architectures.</para>
</listitem>
-->
<listitem>
<para>The <emphasis>nss/tst-nss-files-hosts-multi</emphasis>
test may fail for reasons that have not been determined.</para>
@ -206,18 +179,7 @@ esac</userinput></screen>
systems where the CPU is not a relatively new Intel or
AMD processor.</para>
</listitem>
<!--
<listitem>
<para>The
<emphasis>nptl/tst-thread-affinity-{pthread,pthread2,sched}</emphasis>
tests may fail for reasons that have not been determined. </para>
</listitem>
<listitem>
<para>Other tests known to fail on some architectures are
malloc/tst-malloc-usable and nptl/tst-cleanupx4. </para>
</listitem>
-->
</itemizedlist>
<para>Though it is a harmless message, the install stage of Glibc will
@ -382,7 +344,7 @@ unset ZONEINFO</userinput></screen>
<varlistentry>
<term><parameter>zic -L /dev/null ...</parameter></term>
<listitem>
<para>This creates posix time zones, without any leap seconds. It is
<para>This creates posix time zones without any leap seconds. It is
conventional to put these in both
<filename class="directory">zoneinfo</filename> and
<filename class="directory">zoneinfo/posix</filename>. It is
@ -390,7 +352,7 @@ unset ZONEINFO</userinput></screen>
<filename class="directory">zoneinfo</filename>, otherwise various
test-suites will report errors. On an embedded system, where space is
tight and you do not intend to ever update the time zones, you could save
1.9MB by not using the <filename class="directory">posix</filename>
1.9 MB by not using the <filename class="directory">posix</filename>
directory, but some applications or test-suites might produce some
failures.</para>
</listitem>

View File

@ -53,9 +53,6 @@
<screen><userinput remap="test">make check</userinput></screen>
<para>Two tests are known to fail in the LFS environment:
help-version and zmore.</para>
<para>Install the package:</para>
<screen><userinput remap="install">make install</userinput></screen>

View File

@ -45,6 +45,10 @@
<screen><userinput remap="pre">sed -i 's:\\\${:\\\$\\{:' intltool-update.in</userinput></screen>
<note><para>The above regular expression looks unusual because of all the
baxkslashes. What it does is add a backslash before the right brace
character in the sequence '\${' resulting in '\$\{'.</para></note>
<para>Prepare Intltool for compilation:</para>
<screen><userinput remap="configure">./configure --prefix=/usr</userinput></screen>

View File

@ -10,9 +10,8 @@
<title>Introduction</title>
<para>In this chapter, we enter the building site and start constructing the
LFS system in earnest. That is, we chroot into the temporary mini Linux system,
make a few final preparations, and then begin installing the packages.</para>
<para>In this chapter, we start constructing the LFS system in earnest.
</para>
<para>The installation of this software is straightforward. Although in many
cases the installation instructions could be made shorter and more generic,
@ -41,25 +40,26 @@
contains, approximately how long it will take to build, and how much disk
space is required during this building process. Following the installation
instructions, there is a list of programs and libraries (along with brief
descriptions of these) that the package installs.</para>
descriptions) that the package installs.</para>
<note><para>The SBU values and required disk space includes
test suite data for all applicable packages in
<xref linkend="chapter-building-system"/>.</para></note>
<note><para>The SBU values and required disk space includes test suite data
for all applicable packages in <xref linkend="chapter-building-system"/>. SBU
values have been calculated using a single CPU core (-j1) for all
operations.</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
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, the relevant programs (and the procedures needed to
do the linking) may not even be known.</para>
<para>In the procedures in Chapter&nbsp;6, we remove or disable installation of
<para>In the procedures in this chapter, we remove or disable installation of
most static libraries. Usually this is done by passing a
<option>--disable-static</option> option to <command>configure</command>.
In other cases, alternate means are needed. In a few cases, especially

View File

@ -47,14 +47,14 @@
be installed. Prevent this by running the commands below.
If the <command>arpd</command> binary is needed,
instructions for compiling Berkeley DB can be found in the BLFS Book at
<ulink url="&blfs-book;server/databases.html#db"/>.
<ulink url="&blfs-book;server/db.html"/>.
</para>
<screen><userinput remap="pre">sed -i /ARPD/d Makefile
rm -fv man/man8/arpd.8</userinput></screen>
<para>It is also necessary to disable building two modules that
requires <ulink url="&blfs-book;postlfs/iptables.html"/>.</para>
require <ulink url="&blfs-book;postlfs/iptables.html"/>.</para>
<screen><userinput remap="pre">sed -i 's/.m_ipt.o//' tc/Makefile</userinput></screen>

View File

@ -41,21 +41,21 @@
<sect2 role="installation">
<title>Installation of Kbd</title>
<para>The behaviour of the Backspace and Delete keys is not consistent
<para>The behaviour of the backspace and delete keys is not consistent
across the keymaps in the Kbd package. The following patch fixes this
issue for i386 keymaps:</para>
<screen><userinput remap="pre">patch -Np1 -i ../&kbd-backspace-patch;</userinput></screen>
<para>After patching, the Backspace key generates the character with code 127,
and the Delete key generates a well-known escape sequence.</para>
<para>After patching, the backspace key generates the character with code 127,
and the delete key generates a well-known escape sequence.</para>
<para>Remove the redundant <command>resizecons</command> program (it requires
the defunct svgalib to provide the video mode files - for normal use
<command>setfont</command> sizes the console appropriately) together with its
manpage.</para>
<screen><userinput remap="pre">sed -i 's/\(RESIZECONS_PROGS=\)yes/\1no/g' configure
<screen><userinput remap="pre">sed -i '/RESIZECONS_PROGS=/s/yes/no/' configure
sed -i 's/resizecons.8 //' docs/man/man8/Makefile.in</userinput></screen>
<para>Prepare Kbd for compilation:</para>
@ -63,12 +63,12 @@ sed -i 's/resizecons.8 //' docs/man/man8/Makefile.in</userinput></screen>
<screen><userinput remap="configure">./configure --prefix=/usr --disable-vlock</userinput></screen>
<variablelist>
<title>The meaning of the configure options:</title>
<title>The meaning of the configure option:</title>
<varlistentry>
<term><parameter>--disable-vlock</parameter></term>
<listitem>
<para>This option prevents the vlock utility from being built, as it
<para>This option prevents the vlock utility from being built because it
requires the PAM library, which isn't available in the chroot
environment.</para>
</listitem>
@ -97,7 +97,7 @@ sed -i 's/resizecons.8 //' docs/man/man8/Makefile.in</userinput></screen>
<para>If desired, install the documentation:</para>
<screen><userinput remap="install">mkdir -v /usr/share/doc/kbd-&kbd-version;
<screen><userinput remap="install">mkdir -v /usr/share/doc/kbd-&kbd-version;
cp -R -v docs/doc/* /usr/share/doc/kbd-&kbd-version;</userinput></screen>
</sect2>

View File

@ -78,12 +78,7 @@
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
<para>Install the package and create symlinks for
compatibility with Module-Init-Tools (the package that previously handled
Linux kernel modules):</para>

View File

@ -49,18 +49,7 @@
If this is not done, all applications that link to libffi will trigger
Illegal Operation Errors.</para>
</note>
<!--
<para>Modify the Makefile to install headers into the standard
<filename class="directory">/usr/include</filename> directory instead of
<filename class="directory">/usr/lib/libffi-&libffi-version;/include</filename>.</para>
<screen><userinput remap="pre">sed -e '/^includesdir/ s/$(libdir).*$/$(includedir)/' \
-i include/Makefile.in
sed -e '/^includedir/ s/=.*$/=@includedir@/' \
-e 's/^Cflags: -I${includedir}/Cflags:/' \
-i libffi.pc.in</userinput></screen>
-->
<para>Prepare libffi for compilation:</para>
<screen><userinput remap="configure">./configure --prefix=/usr --disable-static --with-gcc-arch=native</userinput></screen>
@ -92,8 +81,6 @@ sed -e '/^includedir/ s/=.*$/=@includedir@/' \
<screen><userinput remap="test">make check</userinput></screen>
<para>Six tests, all related to test-callback.c, are known to fail.</para>
<para>Install the package:</para>
<screen><userinput remap="install">make install</userinput></screen>

View File

@ -40,7 +40,7 @@
<sect2 role="installation">
<title>Installation of M4</title>
<para>First, make some fixes required by glibc-2.28:</para>
<para>First, make some fixes required by glibc-2.28 and later:</para>
<screen><userinput remap="pre">sed -i 's/IO_ftrylockfile/IO_EOF_SEEN/' lib/*.c
echo "#define _IO_IN_BACKUP 0x100" >> lib/stdio-impl.h</userinput></screen>
@ -84,13 +84,13 @@ echo "#define _IO_IN_BACKUP 0x100" >> lib/stdio-impl.h</userinput></screen>
<term><command>m4 </command></term>
<listitem>
<para>Copies the given files while expanding the macros that they
contain [These macros are either built-in or user-defined and can
contain. These macros are either built-in or user-defined and can
take any number of arguments. Besides performing macro expansion,
<command>m4</command> has built-in functions for including named
files, running Unix commands, performing integer arithmetic,
manipulating text, recursion, etc. The <command>m4</command> program
can be used either as a front-end to a compiler or as a macro processor
in its own right.]</para>
in its own right.</para>
<indexterm zone="ch-system-m4 m4">
<primary sortas="b-m4">m4</primary>
</indexterm>

View File

@ -53,9 +53,7 @@
<screen><userinput remap="make">make</userinput></screen>
<para>The test suite needs to know where supporting perl files are located.
We use an environment variable to accomplish this. To test the
results, issue:</para>
<para>To test the results, issue:</para>
<screen><userinput remap="test">make check</userinput></screen>

View File

@ -126,21 +126,10 @@
<screen><userinput remap="test">make check</userinput></screen>
<para>One test, man-missing-locales, is known to fail in the LFS chroot envirnment.</para>
<para>Install the package:</para>
<screen><userinput remap="install">make install</userinput></screen>
<!--
<para revision="sysv">Remove an unwanted directory used for service files
which would cause some BLFS packages to also install files there: </para>
<screen revision="sysv"><userinput remap="install">rm -rfv /lib/systemd</userinput></screen>
<para revision="systemd">Remove a reference to a non-existent user:</para>
<screen revision="systemd"><userinput remap="install">sed -i "s:man man:root root:g" /usr/lib/tmpfiles.d/man-db.conf</userinput></screen>
-->
</sect2>
<sect2>

View File

@ -23,8 +23,8 @@
<sect2 role="package">
<title/>
<para>Meson is an open source build system meant to be both extremely fast,
and, even more importantly, as user friendly as possible.</para>
<para>Meson is an open source build system meant to be both extremely fast
and as user friendly as possible.</para>
<segmentedlist>
<segtitle>&buildtime;</segtitle>
@ -39,11 +39,7 @@
<sect2 role="installation">
<title>Installation of Meson</title>
<!--
<para>Apply a fix from upstream to fix a regression:</para>
<screen><userinput remap="pre">sed -i "s@isfile(a)@&amp; and not a.startswith('/dev')@" mesonbuild/interpreter.py</userinput></screen>
-->
<para>Compile Meson with the following command:</para>
<screen><userinput remap="make">python3 setup.py build</userinput></screen>
@ -64,8 +60,8 @@ cp -rv dest/* /</userinput></screen>
<para>By default <command>python3 setup.py install</command>
installs various files (such as man pages) into Python Eggs.
With a specified root location, <command>setup.py</command> installs
these files into a standard hierarchy. Then we can just copy
the hierarchy so the files will be in the standard location.
these files into a standard hierarchy. Then the hierarchy
can just be copied to the standard location.
</para>
</listitem>
</varlistentry>

View File

@ -25,7 +25,7 @@
<para>The OpenSSL package contains management tools and libraries relating
to cryptography. These are useful for providing cryptographic functions
to other packages, such as OpenSSH, email applications and web browsers
to other packages, such as OpenSSH, email applications, and web browsers
(for accessing HTTPS sites). </para>
<segmentedlist>
@ -42,12 +42,7 @@
<sect2 role="installation">
<title>Installation of OpenSSL</title>
<!--
<para>First, fix a problem identified upstream:</para>
<screen><userinput remap="pre">sed -i '/\} data/s/ =.*$/;\n memset(\&amp;data, 0, sizeof(data));/' \
crypto/rand/rand_lib.c</userinput></screen>
-->
<para>Prepare OpenSSL for compilation:</para>
<screen><userinput remap="configure">./config --prefix=/usr \

View File

@ -79,10 +79,10 @@
<varlistentry id="patch">
<term><command>patch</command></term>
<listitem>
<para>Modifies files according to a patch file [A patch file is
<para>Modifies files according to a patch file (A patch file is
normally a difference listing created with the <command>diff</command>
program. By applying these differences to the original files,
<command>patch</command> creates the patched versions.]</para>
<command>patch</command> creates the patched versions.)</para>
<indexterm zone="ch-system-patch patch">
<primary sortas="b-patch">patch</primary>
</indexterm>

View File

@ -23,9 +23,9 @@
<sect2 role="package">
<title/>
<para> The pkg-config package contains a tool for passing the include path
and/or library paths to build tools during the configure and make file
execution.</para>
<para>The pkg-config package contains a tool for passing the include path
and/or library paths to build tools during the configure and make phases
of package installations.</para>
<segmentedlist>
<segtitle>&buildtime;</segtitle>

View File

@ -45,36 +45,33 @@
<title>Upgrade Issues</title>
<para>A Package Manager makes it easy to upgrade to newer versions when they
are released. Generally the instructions in the LFS and BLFS Book can be
are released. Generally the instructions in the LFS and BLFS books can be
used to upgrade to the newer versions. Here are some points that you should
be aware of when upgrading packages, especially on a running system.</para>
<itemizedlist>
<listitem>
<para>If Glibc needs to be upgraded to a newer version, (e.g. from
glibc-2.19 to glibc-2.20), it is safer to rebuild LFS. Though you
glibc-2.31 to glibc-2.32), it is safer to rebuild LFS. Though you
<emphasis>may</emphasis> be able to rebuild all the packages in their
dependency order, we do not recommend it. </para>
</listitem>
<listitem>
<para>If a package containing a shared library is updated, and if the
name of the library changes, then all the packages dynamically linked
to the library need to be recompiled to link against the newer library.
(Note that there is no correlation between the package version and the
name of the library.) For example, consider a package foo-1.2.3 that
installs a shared library with name
<filename class='libraryfile'>libfoo.so.1</filename>. Say you upgrade
the package to a newer version foo-1.2.4 that installs a shared library
with name <filename class='libraryfile'>libfoo.so.2</filename>. In this
case, all packages that are dynamically linked to
<filename class='libraryfile'>libfoo.so.1</filename> need to be
recompiled to link against
<filename class='libraryfile'>libfoo.so.2</filename>. Note that you
should not remove the previous libraries until the dependent packages
are recompiled.</para>
</listitem>
</itemizedlist>
<listitem> <para>If a package containing a shared library is updated, and
if the name of the library changes, then any the packages dynamically
linked to the library need to be recompiled in order to link against the
newer library. (Note that there is no correlation between the package
version and the name of the library.) For example, consider a package
foo-1.2.3 that installs a shared library with name <filename
class='libraryfile'>libfoo.so.1</filename>. If you upgrade the package to
a newer version foo-1.2.4 that installs a shared library with name
<filename class='libraryfile'>libfoo.so.2</filename>. In this case, any
packages that are dynamically linked to <filename
class='libraryfile'>libfoo.so.1</filename> need to be recompiled to link
against <filename class='libraryfile'>libfoo.so.2</filename> in order to
use the new library version. You should not remove the previous
libraries unless all the dependent packages are recompiled.</para>
</listitem> </itemizedlist>
</sect2>

View File

@ -58,7 +58,7 @@
--with-systemd</userinput></screen>
<variablelist>
<title>The meaning of the configure options:</title>
<title>The meaning of the configure option:</title>
<varlistentry>
<term><parameter>--disable-kill</parameter></term>

View File

@ -25,7 +25,7 @@
<para>The Python 3 package contains the Python development environment. It
is useful for object-oriented programming, writing scripts, prototyping
large programs or developing entire applications.</para>
large programs, or developing entire applications.</para>
<segmentedlist>
<segtitle>&buildtime;</segtitle>
@ -84,7 +84,7 @@
<screen><userinput remap="make">make</userinput></screen>
<para>To test the results, issue <command>make test</command>.
Some tests requiring network connection or additional packages are
Some tests requiring a network connection or additional packages are
skipped. The test named test_normalization fails because network
configuration is not completed yet. For more comprehensive results,
the test can be rerun when Python 3 is reinstalled in BLFS.</para>
@ -170,8 +170,8 @@ tar --strip-components=1 \
<para>
is a <application>Python</application> program that reads
<application>Python 2.x</application> source code and applies a
series of fixes to transform it into valid
<application>Python 3.x</application> code.
series of fixes to transform it into
valid <application>Python 3.x</application> code.
</para>
<indexterm zone="ch-system-Python">
<primary sortas="b-2to3">2to3</primary>
@ -231,20 +231,7 @@ tar --strip-components=1 \
</indexterm>
</listitem>
</varlistentry>
<!--
<varlistentry id="pyvenv">
<term><command>pyvenv</command></term>
<listitem>
<para>
creates virtual <application>Python</application> environments in
one or more target directories.
</para>
<indexterm zone="ch-system-Python">
<primary sortas="b-pyvenv">pyvenv</primary>
</indexterm>
</listitem>
</varlistentry>
-->
</variablelist>
</sect2>

View File

@ -67,13 +67,15 @@ find man -name Makefile.in -exec sed -i 's/passwd\.5 / /' {} \;</userinput></s
for user mailboxes that Shadow uses by default to the <filename
class="directory">/var/mail</filename> location used currently:</para>
<screen><userinput remap="pre">sed -i -e 's@#ENCRYPT_METHOD DES@ENCRYPT_METHOD SHA512@' \
-e 's@/var/spool/mail@/var/mail@' etc/login.defs</userinput></screen>
<screen><userinput remap="pre">
sed -e 's:#ENCRYPT_METHOD DES:ENCRYPT_METHOD SHA512:' \
-e 's:/var/spool/mail:/var/mail:' \
-i etc/login.defs</userinput></screen>
<note>
<para>If you chose to build Shadow with Cracklib support, run the following:</para>
<screen role="nodump"><userinput>sed -i 's@DICTPATH.*@DICTPATH\t/lib/cracklib/pw_dict@' etc/login.defs</userinput></screen>
<screen role="nodump"><userinput>sed -i 's:DICTPATH.*:DICTPATH\t/lib/cracklib/pw_dict:' etc/login.defs</userinput></screen>
</note>
<para>Make a minor change to make the first group number generated
@ -84,7 +86,7 @@ find man -name Makefile.in -exec sed -i 's/passwd\.5 / /' {} \;</userinput></s
<para>Prepare Shadow for compilation:</para>
<screen><userinput remap="configure">touch /usr/bin/passwd
./configure --sysconfdir=/etc \
./configure --sysconfdir=/etc \
--with-group-name-max-length=32</userinput></screen>
<variablelist>

View File

@ -23,7 +23,7 @@
<sect2 role="package">
<title/>
<para>The Sysklogd package contains programs for logging system messages,
<para>The sysklogd package contains programs for logging system messages,
such as those given by the kernel when unusual things happen.</para>
<segmentedlist>

View File

@ -23,8 +23,8 @@
<sect2 role="package">
<title/>
<para>The Tar package provides the ability to create tar archives, as well
as various other kinds of manipulation. Tar can be used on
<para>The Tar package provides the ability to create tar archives as well
as perform various other kinds of archive manipulation. Tar can be used on
previously created archives to extract files, to store additional files, or
to update or list files which were already stored. </para>
@ -50,7 +50,7 @@
--bindir=/bin</userinput></screen>
<variablelist>
<title>The meaning of the configure options:</title>
<title>The meaning of the configure option:</title>
<varlistentry>
<term><envar>FORCE_UNSAFE_CONFIGURE=1</envar></term>

View File

@ -46,7 +46,7 @@
<screen><userinput remap="configure">./configure --prefix=/usr --disable-static</userinput></screen>
<variablelist>
<title>The meaning of the configure options:</title>
<title>The meaning of the configure option:</title>
<varlistentry>
<term><parameter>--disable-static</parameter></term>
@ -101,10 +101,10 @@
recreated, the following optional commands will accomplish the task:</para>
<screen role="nodump"><userinput>pushd /usr/share/info
rm -v dir
for f in *
do install-info $f dir 2&gt;/dev/null
done
rm -v dir
for f in *
do install-info $f dir 2&gt;/dev/null
done
popd</userinput></screen>
</sect2>

View File

@ -90,7 +90,7 @@
<warning><para>Running the test suite as the root user can be harmful to
your system. To run it, the CONFIG_SCSI_DEBUG option for the kernel must
be available in the currently running system, and must be built as a
be available in the currently running system and must be built as a
module. Building it into the kernel will prevent booting. For complete
coverage, other BLFS packages must be installed. If desired, this test can
be run after rebooting into the completed LFS system and running:</para>

View File

@ -54,11 +54,7 @@
<screen><userinput remap="pre">echo '#define SYS_VIMRC_FILE "/etc/vimrc"' &gt;&gt; src/feature.h</userinput></screen>
<!-- <para>Disable a test that fails:</para>
<screen><userinput remap="pre">sed -i '/call/{s/split/xsplit/;s/303/492/}' src/testdir/test_recover.vim</userinput></screen>
-->
<para>Prepare Vim for compilation:</para>
<para>Prepare vim for compilation:</para>
<screen><userinput remap="configure">./configure --prefix=/usr</userinput></screen>
@ -66,19 +62,17 @@
<screen><userinput remap="make">make</userinput></screen>
<para>To prepare the tests, ensure that the
<systemitem class="username">tester</systemitem> user can write
to the sources tree:</para>
<para>To prepare the tests, ensure that user
<systemitem class="username">tester</systemitem> can write
to the source tree:</para>
<screen><userinput remap="test">chown -Rv tester .</userinput></screen>
<para>Now run the tests as the <systemitem
class="username">tester</systemitem> user:</para>
<para>Now run the tests as user <systemitem
class="username">tester</systemitem>:</para>
<screen><userinput remap="test">su tester -c "LANG=en_US.UTF-8 make -j1 test" &amp;> vim-test.log</userinput></screen>
<!--<screen><userinput remap="test">LANG=en_US.UTF-8 make -j1 test &amp;&gt; vim-test.log</userinput></screen>-->
<para>The test suite outputs a lot of binary data to the screen. This can
cause issues with the settings of the current terminal. The problem can be
avoided by redirecting the output to a log file as shown above. A
@ -100,7 +94,7 @@ for L in /usr/share/man/{,*/}man1/vim.1; do
ln -sv vim.1 $(dirname $L)/vi.1
done</userinput></screen>
<para>By default, Vim's documentation is installed in <filename
<para>By default, vim's documentation is installed in <filename
class="directory">/usr/share/vim</filename>. The following symlink
allows the documentation to be accessed via <filename
class="directory">/usr/share/doc/vim-&vim-version;</filename>, making
@ -109,10 +103,10 @@ done</userinput></screen>
<screen><userinput remap="install">ln -sv ../&vim-docdir;/doc /usr/share/doc/vim-&vim-version;</userinput></screen>
<para>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
system, it may be necessary to recompile vim after installing X. Vim
comes with a GUI version of the editor that requires X and some
additional libraries to be installed. For more information on this
process, refer to the Vim documentation and the Vim installation page
process, refer to the vim documentation and the vim installation page
in the BLFS book at <ulink
url="&blfs-book;postlfs/vim.html"/>.</para>
@ -157,7 +151,7 @@ EOF</userinput></screen>
vi-compatible manner. Remove the <quote>no</quote> to keep the old
<command>vi</command> behavior. The <parameter>set backspace=2</parameter>
setting allows backspacing over line breaks, autoindents, and the start of
insert. The <parameter>syntax on</parameter> parameter enables vim's syntax
an insert. The <parameter>syntax on</parameter> parameter enables vim's syntax
highlighting. The <parameter>set mouse=</parameter> setting enables
proper pasting of text with the mouse when working in chroot or over a
remote connection. Finally, the <emphasis>if</emphasis> statement with the
@ -165,18 +159,14 @@ EOF</userinput></screen>
<command>vim</command>'s guess about the background color of some terminal
emulators. This gives the highlighting a better color scheme for use on the
black background of these programs.</para>
<!--
<para>Creating an empty <filename>~/.vimrc</filename> prevents vim from
overriding settings in <filename>/etc/vimrc</filename> by using
<filename>/usr/share/vim/vim80/defaults.vim</filename>.</para>
-->
<para>Documentation for other available options can be obtained by
running the following command:</para>
<screen role="nodump"><userinput>vim -c ':options'</userinput></screen>
<note>
<para>By default, Vim only installs spell files for the English language.
<para>By default, vim only installs spell files for the English language.
To install spell files for your preferred language, download the
<filename>*.spl</filename> and optionally, the <filename>*.sug</filename>
files for your language and character encoding from <ulink

View File

@ -432,6 +432,12 @@ div.materials dd {
.segtitle {
float: left;
padding-left: 1em;
width: 14em;
}
.content .segtitle {
width: 12em;
}
.package .segbody, .appendix .segbody {
@ -441,9 +447,19 @@ div.materials dd {
.content .segbody {
display: block;
padding-left: 12em;
padding-left: 13em;
}
.content table tr td:first-child
{
width: 9em;
padding-right: 0px;
}
.content table tr td:first-child p
{
padding-right: 0px;
}
/* itemizedlist */
ul {