aboutsummaryrefslogtreecommitdiffstats
path: root/chapter07
diff options
context:
space:
mode:
Diffstat (limited to 'chapter07')
-rw-r--r--chapter07/chroot.xml14
-rw-r--r--chapter07/createfiles.xml21
-rw-r--r--chapter07/kernfs.xml4
-rw-r--r--chapter07/perl.xml32
4 files changed, 64 insertions, 7 deletions
diff --git a/chapter07/chroot.xml b/chapter07/chroot.xml
index b8de03dc2..70f5717dd 100644
--- a/chapter07/chroot.xml
+++ b/chapter07/chroot.xml
@@ -23,8 +23,20 @@
TERM="$TERM" \
PS1='(lfs chroot) \u:\w\$ ' \
PATH=/usr/bin:/usr/sbin \
+ MAKEFLAGS="-j<replaceable>$(nproc)</replaceable>" \
+ TESTSUITEFLAGS="-j<replaceable>$(nproc)</replaceable>" \
/bin/bash --login</userinput></screen>
+ <para>
+ If you don't want to use all available logical cores, replace
+ <replaceable>$(nproc)</replaceable> with the number of logical cores you
+ want to use for building packages in this chapter and the following
+ chapters. The test suites of some packages (notably Autoconf, Libtool,
+ and Tar) in &ch-final; are not affected by <envar>MAKEFLAGS</envar>, they
+ use a <envar>TESTSUITEFLAGS</envar> environment variable instead. We
+ set that here as well for running these test suites with multiple cores.
+ </para>
+
<para>The <parameter>-i</parameter> option given to the <command>env</command>
command will clear all the variables in the chroot environment. After that, only
the <envar>HOME</envar>, <envar>TERM</envar>, <envar>PS1</envar>, and
@@ -47,7 +59,7 @@
in the <envar>PATH</envar>. This means that the cross toolchain will no longer be
used.</para>
- <para>Note that the <command>bash</command> prompt will say
+ <para>Also note that the <command>bash</command> prompt will say
<computeroutput>I have no name!</computeroutput> This is normal because the
<filename>/etc/passwd</filename> file has not been created yet.</para>
diff --git a/chapter07/createfiles.xml b/chapter07/createfiles.xml
index 2b752b944..9047fa744 100644
--- a/chapter07/createfiles.xml
+++ b/chapter07/createfiles.xml
@@ -215,8 +215,23 @@ chmod -v 600 /var/log/btmp</userinput></screen>
failed login attempts. The <filename>/var/log/btmp</filename> file records
the bad login attempts.</para>
- <note><para>The <filename>/run/utmp</filename> file records the users that
- are currently logged in. This file is created dynamically in the boot
- scripts.</para></note>
+ <!-- systemd no longer creates this -->
+ <note revision='sysv'><para>The <filename>/run/utmp</filename> file
+ records the users that are currently logged in. This file is created
+ dynamically in the boot scripts.</para></note>
+
+ <!-- AFAIK they are not vital for system function, users requiring such
+ info should rely on systemd-logind or elogind or some custom PAM
+ module. Maybe we can stop to create them at all. -->
+ <note>
+ <para>
+ The <phrase revision='sysv'><filename>utmp</filename>,
+ </phrase><filename>wtmp</filename>, <filename>btmp</filename>, and
+ <filename>lastlog</filename> files use 32-bit integers for timestamps
+ and they'll be fundamentally broken after year 2038. Many packages
+ have stopped using them and other packages are going to stop using
+ them. It is probably best to consider them deprecated.
+ </para>
+ </note>
</sect1>
diff --git a/chapter07/kernfs.xml b/chapter07/kernfs.xml
index b5b0762bb..049f6e804 100644
--- a/chapter07/kernfs.xml
+++ b/chapter07/kernfs.xml
@@ -107,9 +107,9 @@ mount -vt tmpfs tmpfs $LFS/run</userinput></screen>
we must explicitly mount a tmpfs:</para>
<screen><userinput>if [ -h $LFS/dev/shm ]; then
- mkdir -pv $LFS/$(readlink $LFS/dev/shm)
+ (cd $LFS/dev; mkdir $(readlink shm))
else
- mount -t tmpfs -o nosuid,nodev tmpfs $LFS/dev/shm
+ mount -vt tmpfs -o nosuid,nodev tmpfs $LFS/dev/shm
fi</userinput></screen>
</sect2>
diff --git a/chapter07/perl.xml b/chapter07/perl.xml
index ac0407087..c8e3d7c98 100644
--- a/chapter07/perl.xml
+++ b/chapter07/perl.xml
@@ -57,7 +57,8 @@
-Dvendorarch=/usr/lib/perl5/&perl-version-min;/vendor_perl</userinput></screen>
<variablelist>
- <title>The meaning of the new Configure options:</title>
+ <title>The meaning of the Configure options:</title>
+
<varlistentry>
<term><parameter>-des</parameter></term>
<listitem>
@@ -67,6 +68,35 @@
</listitem>
</varlistentry>
+ <varlistentry>
+ <term><parameter>-Dvendorprefix=/usr</parameter></term>
+ <listitem>
+ <para>This ensures <command>perl</command> knows how to
+ tell packages where they should install their Perl modules.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><parameter>-Duseshrplib</parameter></term>
+ <listitem>
+ <para>Build <systemitem class='library'>libperl</systemitem>
+ needed by some Perl modules as a shared library, instead of
+ a static library.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><parameter>-Dprivlib,-Darchlib,-Dsitelib,...</parameter></term>
+ <listitem>
+ <para>These settings define where Perl looks for installed
+ modules. The LFS editors chose to put them in a directory structure
+ based on the MAJOR.MINOR version of Perl (&perl-version-min;) which
+ allows upgrading Perl to newer patch levels (the patch level is
+ the last dot separated part in the full version string like
+ &perl-version;) without reinstalling all of the modules.</para>
+ </listitem>
+ </varlistentry>
+
</variablelist>
<para>Compile the package:</para>