diff --git a/Makefile b/Makefile
index 6247b294d..52034319c 100644
--- a/Makefile
+++ b/Makefile
@@ -212,7 +212,7 @@ dist:
$(Q)DIST=/tmp/LFS-RELEASE ./git-version.sh $(REV)
$(Q)rm -f lfs-$$(
&external;
- None
+
+ scdoc (for man pages)
+
@@ -1934,9 +1936,11 @@
&external;
- cpio and
+ cpio,
LLVM
- (with Clang)
+ (with Clang), and
+ Rust-bindgen
@@ -3008,8 +3012,8 @@
-
- Sysvinit
+
+ SysVinit
&dependencies;
diff --git a/aux-file-data.sh b/aux-file-data.sh
index 8be1b1d15..01539fef6 100755
--- a/aux-file-data.sh
+++ b/aux-file-data.sh
@@ -15,7 +15,7 @@ base=$(basename $bootscripts .tar.xz)
bootsize=$(ls -l --block-size=1024 $bootscripts | cut -f5 -d" ")
bootmd5=$(md5sum $bootscripts | cut -f1 -d" ")
-# Figure intalled size of bootscripts
+# Figure installed size of bootscripts
TOPDIR=$(pwd)
TMP_DIR=$(mktemp -d /tmp/lfsbootfiles.XXXXXX)
pushd $TMP_DIR > /dev/null
diff --git a/bootscripts/ChangeLog b/bootscripts/ChangeLog
index 37680aff5..41576792f 100644
--- a/bootscripts/ChangeLog
+++ b/bootscripts/ChangeLog
@@ -1,3 +1,24 @@
+2024-08-25 Xi Ruoyao
+ * Remove an empty line and an outdated comment (not valid anymore after
+ /usr merge) from init-functions.
+
+2024-08-24 Andrew Kreimer
+ * Fix typos.
+
+2024-08-23 Xi Ruoyao
+ * In console, detect FB console by checking /sys/class/graphics/fbcon
+ instead of fb0. The latter does not exist if CONFIG_FB=n, but
+ CONFIG_DRM_FBDEV_EMULATION=y can support a FB console without
+ CONFIG_FB.
+
+2024-07-12 Xi Ruoyao
+ * In mountvirtfs, recreate /dev/fd correctly if it's already created
+ by the initramfs.
+
+2024-07-06 Bruce Dubbs
+ * Add logic to init-functions to only print escape sequences
+ if stdin and stdout are connected to a terminal.
+
2024-04-16 Bruce Dubbs
* Remove blank output line generated in ifup script when bringing
up wireless interface.
diff --git a/bootscripts/lfs/init.d/console b/bootscripts/lfs/init.d/console
index a5338cc71..9409e4757 100644
--- a/bootscripts/lfs/init.d/console
+++ b/bootscripts/lfs/init.d/console
@@ -47,7 +47,7 @@ case "${1}" in
log_info_msg "Setting up Linux console..."
# Figure out if a framebuffer console is used
- [ -d /sys/class/graphics/fb0 ] && use_fb=1 || use_fb=0
+ [ -d /sys/class/graphics/fbcon ] && use_fb=1 || use_fb=0
# Figure out the command to set the console into the
# desired mode
diff --git a/bootscripts/lfs/init.d/mountvirtfs b/bootscripts/lfs/init.d/mountvirtfs
index fd797787a..de6b2de62 100644
--- a/bootscripts/lfs/init.d/mountvirtfs
+++ b/bootscripts/lfs/init.d/mountvirtfs
@@ -83,7 +83,7 @@ case "${1}" in
ln -sf /proc/self/fd/2 /dev/stderr || failed=1
log_info_msg2 " ${INFO}/dev/fd"
- ln -sf /proc/self/fd /dev/fd || failed=1
+ ln -sfn /proc/self/fd /dev/fd || failed=1
if [ -e /proc/kcore ]; then
log_info_msg2 " ${INFO}/dev/core"
diff --git a/bootscripts/lfs/init.d/sysklogd b/bootscripts/lfs/init.d/sysklogd
index e86b87b16..04662efd9 100644
--- a/bootscripts/lfs/init.d/sysklogd
+++ b/bootscripts/lfs/init.d/sysklogd
@@ -7,6 +7,9 @@
# Authors : Gerard Beekmans - gerard@linuxfromscratch.org
# DJ Lucas - dj@linuxfromscratch.org
# Update : Bruce Dubbs - bdubbs@linuxfromscratch.org
+# Update : Bruce Dubbs - bdubbs@linuxfromscratch.org LFS12.1
+# Remove kernel log daemon. The functionality has been
+# merged with syslogd.
#
# Version : LFS 7.0
#
@@ -20,8 +23,8 @@
# Should-Stop: sendsignals
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
-# Short-Description: Starts kernel and system log daemons.
-# Description: Starts kernel and system log daemons.
+# Short-Description: Starts system log daemon.
+# Description: Starts system log daemon.
# /etc/fstab.
# X-LFS-Provided-By: LFS
### END INIT INFO
@@ -34,17 +37,9 @@ case "${1}" in
parms=${SYSKLOGD_PARMS-'-m 0'}
start_daemon /sbin/syslogd $parms
evaluate_retval
-
- log_info_msg "Starting kernel log daemon..."
- start_daemon /sbin/klogd
- evaluate_retval
;;
stop)
- log_info_msg "Stopping kernel log daemon..."
- killproc /sbin/klogd
- evaluate_retval
-
log_info_msg "Stopping system log daemon..."
killproc /sbin/syslogd
evaluate_retval
@@ -65,7 +60,6 @@ case "${1}" in
status)
statusproc /sbin/syslogd
- statusproc klogd
;;
*)
diff --git a/bootscripts/lfs/lib/services/init-functions b/bootscripts/lfs/lib/services/init-functions
index a86a23d86..e13bb8a5d 100644
--- a/bootscripts/lfs/lib/services/init-functions
+++ b/bootscripts/lfs/lib/services/init-functions
@@ -58,11 +58,21 @@ SCRIPT_STAT="0"
# Set any user specified environment variables e.g. HEADLESS
[ -r /etc/sysconfig/rc.site ] && . /etc/sysconfig/rc.site
-## Screen Dimensions
-# Find current screen size
-if [ -z "${COLUMNS}" ]; then
- COLUMNS=$(stty size)
- COLUMNS=${COLUMNS##* }
+# If HEADLESS is set, use that.
+# If file descriptor 1 or 2 (stdout and stderr) is not open or
+# does not refer to a terminal, consider the script headless.
+[ ! -t 1 -o ! -t 2 ] && HEADLESS=${HEADLESS:-yes}
+
+if [ "x$HEADLESS" != "xyes" ]
+then
+ ## Screen Dimensions
+ # Find current screen size
+ if [ -z "${COLUMNS}" ]; then
+ COLUMNS=$(stty size)
+ COLUMNS=${COLUMNS##* }
+ fi
+else
+ COLUMNS=80
fi
# When using remote connections, such as a serial port, stty size returns 0
@@ -447,11 +457,8 @@ pidofproc()
# If a PID file is set and exists, use it.
if [ -n "${pidfile}" -a -e "${pidfile}" ]; then
-
# Use the value in the first line of the pidfile
pidlist=`/bin/head -n1 "${pidfile}"`
- # This can optionally be written as 'sed 1q' to repalce 'head -n1'
- # should LFS move /bin/head to /usr/bin/head
else
# Use pidof
pidlist=`pidof "${program}"`
@@ -575,9 +582,14 @@ timespec()
################################################################################
log_success_msg()
{
- /bin/echo -n -e "${BMPREFIX}${@}"
- /bin/echo -e "${CURS_ZERO}${SUCCESS_PREFIX}${SET_COL}${SUCCESS_SUFFIX}"
-
+ if [ "x$HEADLESS" != "xyes" ]
+ then
+ /bin/echo -n -e "${BMPREFIX}${@}"
+ /bin/echo -e "${CURS_ZERO}${SUCCESS_PREFIX}${SET_COL}${SUCCESS_SUFFIX}"
+ else
+ logmessage=`echo "${@}" | sed 's/\\\033[^a-zA-Z]*.//g'`
+ /bin/echo -e "${logmessage} OK"
+ fi
# Strip non-printable characters from log file
logmessage=`echo "${@}" | sed 's/\\\033[^a-zA-Z]*.//g'`
@@ -589,8 +601,13 @@ log_success_msg()
log_success_msg2()
{
- /bin/echo -n -e "${BMPREFIX}${@}"
- /bin/echo -e "${CURS_ZERO}${SUCCESS_PREFIX}${SET_COL}${SUCCESS_SUFFIX}"
+ if [ "x$HEADLESS" != "xyes" ]
+ then
+ /bin/echo -n -e "${BMPREFIX}${@}"
+ /bin/echo -e "${CURS_ZERO}${SUCCESS_PREFIX}${SET_COL}${SUCCESS_SUFFIX}"
+ else
+ echo " OK"
+ fi
echo " OK" >> ${BOOTLOG}
@@ -610,8 +627,14 @@ log_success_msg2()
################################################################################
log_failure_msg()
{
- /bin/echo -n -e "${BMPREFIX}${@}"
- /bin/echo -e "${CURS_ZERO}${FAILURE_PREFIX}${SET_COL}${FAILURE_SUFFIX}"
+ if [ "x$HEADLESS" != "xyes" ]
+ then
+ /bin/echo -n -e "${BMPREFIX}${@}"
+ /bin/echo -e "${CURS_ZERO}${FAILURE_PREFIX}${SET_COL}${FAILURE_SUFFIX}"
+ else
+ logmessage=`echo "${@}" | sed 's/\\\033[^a-zA-Z]*.//g'`
+ /bin/echo -e "${logmessage} FAIL"
+ fi
# Strip non-printable characters from log file
@@ -624,8 +647,13 @@ log_failure_msg()
log_failure_msg2()
{
- /bin/echo -n -e "${BMPREFIX}${@}"
- /bin/echo -e "${CURS_ZERO}${FAILURE_PREFIX}${SET_COL}${FAILURE_SUFFIX}"
+ if [ "x$HEADLESS" != "xyes" ]
+ then
+ /bin/echo -n -e "${BMPREFIX}${@}"
+ /bin/echo -e "${CURS_ZERO}${FAILURE_PREFIX}${SET_COL}${FAILURE_SUFFIX}"
+ else
+ echo "FAIL"
+ fi
echo "FAIL" >> ${BOOTLOG}
@@ -643,8 +671,14 @@ log_failure_msg2()
################################################################################
log_warning_msg()
{
- /bin/echo -n -e "${BMPREFIX}${@}"
- /bin/echo -e "${CURS_ZERO}${WARNING_PREFIX}${SET_COL}${WARNING_SUFFIX}"
+ if [ "x$HEADLESS" != "xyes" ]
+ then
+ /bin/echo -n -e "${BMPREFIX}${@}"
+ /bin/echo -e "${CURS_ZERO}${WARNING_PREFIX}${SET_COL}${WARNING_SUFFIX}"
+ else
+ logmessage=`echo "${@}" | sed 's/\\\033[^a-zA-Z]*.//g'`
+ /bin/echo -e "${logmessage} WARN"
+ fi
# Strip non-printable characters from log file
logmessage=`echo "${@}" | sed 's/\\\033[^a-zA-Z]*.//g'`
@@ -656,8 +690,14 @@ log_warning_msg()
log_skip_msg()
{
- /bin/echo -n -e "${BMPREFIX}${@}"
- /bin/echo -e "${CURS_ZERO}${SKIP_PREFIX}${SET_COL}${SKIP_SUFFIX}"
+ if [ "x$HEADLESS" != "xyes" ]
+ then
+ /bin/echo -n -e "${BMPREFIX}${@}"
+ /bin/echo -e "${CURS_ZERO}${SKIP_PREFIX}${SET_COL}${SKIP_SUFFIX}"
+ else
+ logmessage=`echo "${@}" | sed 's/\\\033[^a-zA-Z]*.//g'`
+ /bin/echo "SKIP"
+ fi
# Strip non-printable characters from log file
logmessage=`echo "${@}" | sed 's/\\\033[^a-zA-Z]*.//g'`
@@ -677,7 +717,13 @@ log_skip_msg()
################################################################################
log_info_msg()
{
- /bin/echo -n -e "${BMPREFIX}${@}"
+ if [ "x$HEADLESS" != "xyes" ]
+ then
+ /bin/echo -n -e "${BMPREFIX}${@}"
+ else
+ logmessage=`echo "${@}" | sed 's/\\\033[^a-zA-Z]*.//g'`
+ /bin/echo -n -e "${logmessage}"
+ fi
# Strip non-printable characters from log file
logmessage=`echo "${@}" | sed 's/\\\033[^a-zA-Z]*.//g'`
@@ -689,7 +735,13 @@ log_info_msg()
log_info_msg2()
{
- /bin/echo -n -e "${@}"
+ if [ "x$HEADLESS" != "xyes" ]
+ then
+ /bin/echo -n -e "${@}"
+ else
+ logmessage=`echo "${@}" | sed 's/\\\033[^a-zA-Z]*.//g'`
+ /bin/echo -n -e "${logmessage}"
+ fi
# Strip non-printable characters from log file
logmessage=`echo "${@}" | sed 's/\\\033[^a-zA-Z]*.//g'`
diff --git a/bootscripts/lfs/sbin/ifup.8 b/bootscripts/lfs/sbin/ifup.8
index 2fb7873ec..8d08d8c14 100644
--- a/bootscripts/lfs/sbin/ifup.8
+++ b/bootscripts/lfs/sbin/ifup.8
@@ -94,7 +94,7 @@ NOTES
compound device such as a bridge.
ONBOOT - If set to 'yes', the specified interface is
- configured by the netowrk boot script.
+ configured by the network boot script.
GATEWAY - The default IP address to use for routing if
the destination IP address is not in a static
@@ -112,7 +112,7 @@ NOTES
This list is normally a single value, e.g. eth0,
for use with a virtual host such as kvm.
- Other paramters that are service specific include:
+ Other parameters that are service specific include:
ipv4-static
@@ -128,7 +128,7 @@ NOTES
additional IP addresses to a network
device. Example: eth0:2 (optional)
- BROADCAST - The brodcast address for this interface,
+ BROADCAST - The broadcast address for this interface,
e.g 192.168.1.255. If not specified,
the broadcast address will be calculated
from the IP and PREFIX.
@@ -154,7 +154,7 @@ NOTES
DHCP_START - Optional parameters to pass to the dhcp client
at startup.
- DHCP_STOP - Optional paremeters to pass to the dhcp client
+ DHCP_STOP - Optional parameters to pass to the dhcp client
at shutdown.
PRINTIP - Flag to print the dhcp address to stdout
diff --git a/chapter01/askforhelp.xml b/chapter01/askforhelp.xml
index 7c6032389..2dd5f85d0 100644
--- a/chapter01/askforhelp.xml
+++ b/chapter01/askforhelp.xml
@@ -110,10 +110,10 @@
type of information to include from the make screen
output.
-gcc -DALIASPATH=\"/mnt/lfs/usr/share/locale:.\"
--DLOCALEDIR=\"/mnt/lfs/usr/share/locale\"
--DLIBDIR=\"/mnt/lfs/usr/lib\"
--DINCLUDEDIR=\"/mnt/lfs/usr/include\" -DHAVE_CONFIG_H -I. -I.
+gcc -D ALIASPATH=\"/mnt/lfs/usr/share/locale:.\"
+-D LOCALEDIR=\"/mnt/lfs/usr/share/locale\"
+-D LIBDIR=\"/mnt/lfs/usr/lib\"
+-D INCLUDEDIR=\"/mnt/lfs/usr/include\" -D HAVE_CONFIG_H -I. -I.
-g -O2 -c getopt1.c
gcc -g -O2 -static -o make ar.o arscan.o commands.o dir.o
expand.o file.o function.o getopt.o implicit.o job.o main.o
diff --git a/chapter01/changelog.xml b/chapter01/changelog.xml
index f42fdf445..69860723f 100644
--- a/chapter01/changelog.xml
+++ b/chapter01/changelog.xml
@@ -40,6 +40,245 @@
appropriate for the entry or if needed the entire day's listitem.
-->
+
+ 2024-08-23
+
+
+ [xry111] - Update to lfs-bootscripts-20240825. Only trivial
+ non-functional changes.
+
+
+
+
+
+ 2024-08-23
+
+
+ [xry111] - Update to lfs-bootscripts-20240823, to fix an
+ issue causing VT 2-6 not affected by the FONT= setting in
+ /etc/sysconfig/console.
+
+
+
+
+
+ 2024-08-17
+
+
+ [bdubbs] - Update to setuptools-72.2.0. Fixes
+ #5542.
+
+
+ [bdubbs] - Update to kmod-33. Fixes
+ #5540.
+
+
+ [bdubbs] - Update to binutils-2.43.1. Fixes
+ #5543.
+
+
+ [bdubbs] - Update to linux-6.10.5. Fixes
+ #5541.
+
+
+
+
+
+ 2024-08-15
+
+
+ [bdubbs] - Update to iana-etc-20240806. Addresses
+ #5006.
+
+
+ [bdubbs] - Update to pkgconf-2.3.0. Fixes
+ #5537.
+
+
+ [bdubbs] - Update to python3-3.12.5. Fixes
+ #5538.
+
+
+ [bdubbs] - Update to linux-6.10.4. Fixes
+ #5539.
+
+
+
+
+
+ 2024-08-05
+
+
+ [bdubbs] - Update to bash-5.2.32. Fixes
+ #5532.
+
+
+ [bdubbs] - Update to iana-etc-20240801. Addresses
+ #5006.
+
+
+ [bdubbs] - Update to vim-9.1.0660. Addresses
+ #4500.
+
+
+ [bdubbs] - Update to binutils-2.43. Fixes
+ #5535.
+
+
+ [bdubbs] - Update to linux-6.10.3. Fixes
+ #5534.
+
+
+ [bdubbs] - Update to readline-8.2.13. Fixes
+ #5533.
+
+
+ [bdubbs] - Update to wheel-0.44.0. Fixes
+ #5536.
+
+
+
+
+
+ 2024-08-01
+
+
+ [bdubbs] - Update to gcc-14.2.0. Fixes
+ #5530.
+
+
+ [bdubbs] - Update to iana-etc-20240723. Addresses
+ #5006.
+
+
+ [bdubbs] - Update to glibc-2.40. Fixes
+ #5529.
+
+
+ [bdubbs] - Update to iproute2-6.10.0. Fixes
+ #5523.
+
+
+ [bdubbs] - Update to linux-6.10.2. Fixes
+ #5521.
+
+
+ [bdubbs] - Update to lz4-1.10.0. Fixes
+ #5526.
+
+
+ [bdubbs] - Update to meson-1.5.1. Fixes
+ #5527.
+
+
+ [bdubbs] - Update to setuptools-72.1.0. Fixes
+ #5531.
+
+
+ [bdubbs] - Update to sysklogd-2.6.1. Fixes
+ #5522.
+
+
+ [bdubbs] - Update to systemd-256.4. Fixes
+ #5518.
+
+
+ [bdubbs] - Update to sysvinit-3.10. Fixes
+ #5528.
+
+
+
+
+
+ 2024-07-15
+
+
+ [bdubbs] - Update to iana-etc-20240701. Addresses
+ #5006.
+
+
+ [bdubbs] - Update to vim-9.1.0580. Addresses
+ #4500.
+
+
+ [bdubbs] - Update to automake-1.17. Fixes
+ #5520.
+
+
+ [bdubbs] - Update to gdbm-1.24. Fixes
+ #5515.
+
+
+ [bdubbs] - Update to linux-6.9.9. Fixes
+ #5517.
+
+
+ [bdubbs] - Update to less-661. Fixes
+ #5513.
+
+
+ [bdubbs] - Update to meson-1.5.0. Fixes
+ #5519.
+
+
+ [bdubbs] - Update to setuptools-70.3.0. Fixes
+ #5514.
+
+
+ [bdubbs] - Update to util-linux-2.40.2. Fixes
+ #5516.
+
+
+
+
+
+ 2024-07-01
+
+
+ [bdubbs] - Update lfs-bootscripts to only output
+ escape sequences to a terminal.
+
+
+
+
+
+ 2024-07-01
+
+
+ [bdubbs] - Update to iana-etc-20240612. Addresses
+ #5006.
+
+
+ [bdubbs] - Update to bc-6.7.6. Fixes
+ #5506.
+
+
+ [bdubbs] - Update to man-pages-6.9.1. Fixes
+ #5507.
+
+
+ [bdubbs] - Update to linux-6.9.7. Fixes
+ #5508.
+
+
+ [bdubbs] - Update to sysklogd-2.5.2. Fixes
+ #5509.
+
+
+ [bdubbs] - Update to shadow-4.16.0. Fixes
+ #5510.
+
+
+ [bdubbs] - Update to systemd-256.1. Fixes
+ #5511.
+
+
+ [bdubbs] - Update to setuptools-70.1.1. Fixes
+ #5512.
+
+
+
+
2024-06-15
@@ -69,7 +308,7 @@
[bdubbs] - Update to linux-6.9.4. Fixes
- #5505.
+ #5505.
[bdubbs] - Update to findutils-4.10.0. Fixes
diff --git a/chapter01/whatsnew.xml b/chapter01/whatsnew.xml
index 315a03bea..c807fa15d 100644
--- a/chapter01/whatsnew.xml
+++ b/chapter01/whatsnew.xml
@@ -35,18 +35,18 @@
-
-
-
-
+
@@ -95,15 +95,15 @@
GCC-&gcc-version;
-
+
Gettext-&gettext-version;
-
+
@@ -142,10 +142,10 @@
-->
Kmod-&kmod-version;
-
-
+
@@ -167,9 +167,9 @@
Linux-&linux-version;
-
+
@@ -221,9 +221,9 @@
Python-&python-version;
-
+
@@ -233,15 +233,15 @@
Shadow-&shadow-version;
-
+
Systemd-&systemd-version;
-
+
@@ -254,9 +254,9 @@
-
+
Util-linux-&util-linux-version;
@@ -294,15 +294,16 @@
Lz4-&lz4-version;
-
- glibc-2.39-upstream_fix-1.patch
-
Removed:
-
-
+
+ bash-5.2.21-upstream_fixes-1.patch
+
+
+ readline-8.2-upstream_fixes-3.patch
+
diff --git a/chapter03/packages.xml b/chapter03/packages.xml
index dbbb43eae..d58002ad2 100644
--- a/chapter03/packages.xml
+++ b/chapter03/packages.xml
@@ -714,7 +714,7 @@
- Systemd Man Pages(&systemd-version;) - &systemd-man-size;:
+ Systemd Man Pages (&systemd-version;) - &systemd-man-size;:
Home page:
Download:
@@ -730,7 +730,7 @@
- Sysvinit (&sysvinit-version;) - &sysvinit-size;:
+ SysVinit (&sysvinit-version;) - &sysvinit-size;:
Home page:
Download:
diff --git a/chapter03/patches.xml b/chapter03/patches.xml
index 95d81b1de..ef00fbe5a 100644
--- a/chapter03/patches.xml
+++ b/chapter03/patches.xml
@@ -26,7 +26,7 @@
-->
-
+
+
Glibc FHS Patch - &glibc-fhs-patch-size;:
@@ -126,6 +127,7 @@
-->
+
- Sysvinit Consolidated Patch - &sysvinit-consolidated-patch-size;:
+ SysVinit Consolidated Patch - &sysvinit-consolidated-patch-size;:
Download:
MD5 sum: &sysvinit-consolidated-patch-md5;
diff --git a/chapter04/aboutsbus.xml b/chapter04/aboutsbus.xml
index 08b3cb121..2c6f80cbd 100644
--- a/chapter04/aboutsbus.xml
+++ b/chapter04/aboutsbus.xml
@@ -26,9 +26,9 @@
unit of time.
For example, consider a package whose compilation time is 4.5
- SBUs. This means that if your system took 10 minutes to compile and
+ SBUs. This means that if your system took 4 minutes to compile and
install the first pass of binutils, it will take
- approximately 45 minutes to build the example package.
+ approximately 18 minutes to build the example package.
Fortunately, most build times are shorter than one SBU.
SBUs are not entirely accurate because they depend on many
@@ -36,6 +36,36 @@
to give an estimate of how long it might take to install a package, but the
numbers can vary by as much as dozens of minutes in some cases.
+ On some newer systems, the motherboard is capable of contolling
+ the system clock speed. This can be controlled with a command such as
+ powerprofilesctl. This is not available in LFS, but
+ may be available on the host distro. After LFS is complete, it can be
+ added to a system with the procedures at the
+
+ BLFS power-profiles-daemon page.
+
+ Before measuring the build time of any package it is advisable to use a
+ system power profile set for maximum performance (and maximum power
+ consumption).
+
+ Otherwise the measured SBU value may be inaccurate because the
+ system may react differently when building
+ or other packages.
+
+ Be aware that a significant inaccuracy can still show up even if the same
+ profile is used for both packages because the system may respond slower if
+ the system is idle when starting the build procedure. Setting the power
+ profile to performance
will minimize this problem. And
+ obviously doing so will also make the system build LFS faster.
+
+ If powerprofilesctl is available, issue the
+ powerprofilesctl set performance command to select
+ the performance profile. Some distros provides the
+ tuned-adm command for managing the profiles instead of
+ powerprofilesctl, on these distros issue the
+ tuned-adm profile throughput-performance command to
+ select the throughput-performance profile.
+
In the cross edition, the SBUs are kept same as the original LFS
book. They should only be considered as a reference. It obviously does
@@ -52,10 +82,11 @@
interleaved. If you run into a problem with a build step, revert to a
single processor build to properly analyze the error messages.
- The times presented here are based upon using four cores (-j4). The
+ The times presented here for all packages
+ (except which is based on one core)
+ are based upon using four cores (-j4). The
times in Chapter 8 also include the time to run the regression tests for
the package unless specified otherwise.
-
diff --git a/chapter05/binutils-pass1.xml b/chapter05/binutils-pass1.xml
index ef9f3948c..f6b7f0f90 100644
--- a/chapter05/binutils-pass1.xml
+++ b/chapter05/binutils-pass1.xml
@@ -5,7 +5,7 @@
%general-entities;
]>
-
+
@@ -76,6 +76,7 @@ cd build
--disable-nls \
--enable-gprofng=no \
--disable-werror \
+ --enable-new-dtags \
--enable-default-hash-style=gnu
@@ -133,6 +134,17 @@ cd build
+
+ --enable-new-dtags
+
+ This makes the linker use the runpath
tag for
+ embedding library search paths into executables and shared libraries,
+ instead of the traditional rpath
tag. It makes
+ debugging dynamically linked executables easier and works around
+ potential issues in the test suite of some packages.
+
+
+
--enable-default-hash-style=gnu
diff --git a/chapter05/gcc-pass1.xml b/chapter05/gcc-pass1.xml
index 335507ca6..b4e33ce55 100644
--- a/chapter05/gcc-pass1.xml
+++ b/chapter05/gcc-pass1.xml
@@ -137,7 +137,7 @@ cd build
Those switches allow GCC to compile programs with
some hardening security features (more information on those in
- the in chapter 8) by default. The
+ the in chapter 8) by default. They
are not strictly needed at this stage, since the compiler will
only produce temporary executables. But it is cleaner to have the
temporary packages be as close as possible to the final ones.
diff --git a/chapter06/binutils-pass2.xml b/chapter06/binutils-pass2.xml
index 9832e154d..fb54becb0 100644
--- a/chapter06/binutils-pass2.xml
+++ b/chapter06/binutils-pass2.xml
@@ -73,6 +73,7 @@ cd build
--enable-gprofng=no \
--disable-werror \
--enable-64-bit-bfd \
+ --enable-new-dtags \
--enable-default-hash-style=gnu
diff --git a/chapter06/gcc-pass2.xml b/chapter06/gcc-pass2.xml
index ef45cca9a..6fb0277cf 100644
--- a/chapter06/gcc-pass2.xml
+++ b/chapter06/gcc-pass2.xml
@@ -136,10 +136,11 @@ cd build
LDFLAGS_FOR_TARGET=...
Allow libstdc++ to
- use the shared libgcc being
- built in this pass, instead of the static version that was built in GCC
- pass 1. This is necessary to support C++ exception
- handling.
+ use the libgcc being
+ built in this pass, instead of the previous version built in
+ . The previous version cannot
+ properly support C++ exception handling because it was built
+ without libc support.
diff --git a/chapter07/perl.xml b/chapter07/perl.xml
index 0c400bf12..7d31677a5 100644
--- a/chapter07/perl.xml
+++ b/chapter07/perl.xml
@@ -45,16 +45,16 @@
Prepare Perl for compilation:
- sh Configure -des \
- -Dprefix=/usr \
- -Dvendorprefix=/usr \
- -Duseshrplib \
- -Dprivlib=/usr/lib/perl5/&perl-version-min;/core_perl \
- -Darchlib=/usr/lib/perl5/&perl-version-min;/core_perl \
- -Dsitelib=/usr/lib/perl5/&perl-version-min;/site_perl \
- -Dsitearch=/usr/lib/perl5/&perl-version-min;/site_perl \
- -Dvendorlib=/usr/lib/perl5/&perl-version-min;/vendor_perl \
- -Dvendorarch=/usr/lib/perl5/&perl-version-min;/vendor_perl
+ sh Configure -des \
+ -D prefix=/usr \
+ -D vendorprefix=/usr \
+ -D useshrplib \
+ -D privlib=/usr/lib/perl5/&perl-version-min;/core_perl \
+ -D archlib=/usr/lib/perl5/&perl-version-min;/core_perl \
+ -D sitelib=/usr/lib/perl5/&perl-version-min;/site_perl \
+ -D sitearch=/usr/lib/perl5/&perl-version-min;/site_perl \
+ -D vendorlib=/usr/lib/perl5/&perl-version-min;/vendor_perl \
+ -D vendorarch=/usr/lib/perl5/&perl-version-min;/vendor_perl
The meaning of the Configure options:
@@ -69,7 +69,7 @@
- -Dvendorprefix=/usr
+ -D vendorprefix=/usr
This ensures perl knows how to
tell packages where they should install their Perl modules.
@@ -77,7 +77,7 @@
- -Duseshrplib
+ -D useshrplib
Build libperl
needed by some Perl modules as a shared library, instead of
@@ -86,7 +86,7 @@
- -Dprivlib,-Darchlib,-Dsitelib,...
+ -D privlib,-D archlib,-D sitelib,...
These settings define where Perl looks for installed
modules. The LFS editors chose to put them in a directory structure
diff --git a/chapter08/automake.xml b/chapter08/automake.xml
index 6c7aa2582..86e800be7 100644
--- a/chapter08/automake.xml
+++ b/chapter08/automake.xml
@@ -62,9 +62,6 @@
Replace $((...)) with the number of
logical cores you want to use if you don't want to use all.
- Out of 2926 tests, 52 are known to fail due to incompatibilities in the
- test scripts with gcc-14.1 or later.
-
Install the package:
make install
diff --git a/chapter08/bash.xml b/chapter08/bash.xml
index 836367b07..09c65662d 100644
--- a/chapter08/bash.xml
+++ b/chapter08/bash.xml
@@ -40,10 +40,6 @@
Installation of Bash
- First, fix some issues identified upstream:
-
-patch -Np1 -i ../&bash-upstream-fixes-patch;
-
Prepare Bash for compilation:
./configure --prefix=/usr \
diff --git a/chapter08/binutils.xml b/chapter08/binutils.xml
index 0d770a6c8..629c698c3 100644
--- a/chapter08/binutils.xml
+++ b/chapter08/binutils.xml
@@ -57,6 +57,7 @@ cd build
--enable-shared \
--disable-werror \
--enable-64-bit-bfd \
+ --enable-new-dtags \
--with-system-zlib \
--enable-default-hash-style=gnu
diff --git a/chapter08/cleanup.xml b/chapter08/cleanup.xml
index da1c61afc..0997fbbd8 100644
--- a/chapter08/cleanup.xml
+++ b/chapter08/cleanup.xml
@@ -12,7 +12,7 @@
Finally, clean up some extra files left over from running tests:
-rm -rf /tmp/*
+ rm -rf /tmp/{*,.*}
There are also several files in the /usr/lib and /usr/libexec
directories with a file name extension of .la. These are "libtool archive"
diff --git a/chapter08/coreutils.xml b/chapter08/coreutils.xml
index 0b744081f..f2030685d 100644
--- a/chapter08/coreutils.xml
+++ b/chapter08/coreutils.xml
@@ -127,7 +127,7 @@ FORCE_UNSAFE_CONFIGURE=1 ./configure \
remove < /dev/null. -->
Now run the tests (using /dev/null for the
standard input, or two tests may be broken if building LFS in a
- graphical terminal or a session in SSH or GNU Screen etc. because the
+ graphical terminal or a session in SSH or GNU Screen because the
standard input is connected to a PTY from host distro, and the device
node for such a PTY cannot be accessed from the LFS chroot
environment):
diff --git a/chapter08/gcc.xml b/chapter08/gcc.xml
index e262f34e3..db9c7ba4d 100644
--- a/chapter08/gcc.xml
+++ b/chapter08/gcc.xml
@@ -138,10 +138,16 @@ cd build
command below, where x is the number of CPU cores on your system.
- 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:
+ GCC may need more stack space compiling some extremely complex
+ code patterns. As a precaution for the host distros with a tight stack
+ limit, explicitly set the stack size hard limit to infinite.
+ On most host distros (and the final LFS system) the hard limit is
+ infinite by default, but there is no harm done by setting it explicitly.
+ It's not necessary to change the stack size soft limit because GCC will
+ automatically set it to an appropriate value, as long as the value does
+ not exceed the hard limit:
-ulimit -s 32768
+ulimit -s -H unlimited
Now remove/fix several known test failures:
diff --git a/chapter08/glibc.xml b/chapter08/glibc.xml
index ea89d95bc..8037f37a7 100644
--- a/chapter08/glibc.xml
+++ b/chapter08/glibc.xml
@@ -49,11 +49,11 @@
store their runtime data in the FHS-compliant locations:
patch -Np1 -i ../&glibc-fhs-patch;
-
+
The Glibc documentation recommends building Glibc
in a dedicated build directory:
diff --git a/chapter08/kmod.xml b/chapter08/kmod.xml
index 6c875caed..5b4ab4fb3 100644
--- a/chapter08/kmod.xml
+++ b/chapter08/kmod.xml
@@ -43,12 +43,13 @@
Prepare Kmod for compilation:
-./configure --prefix=/usr \
- --sysconfdir=/etc \
- --with-openssl \
- --with-xz \
- --with-zstd \
- --with-zlib
+./configure --prefix=/usr \
+ --sysconfdir=/etc \
+ --with-openssl \
+ --with-xz \
+ --with-zstd \
+ --with-zlib \
+ --disable-manpages
The meaning of the configure options:
@@ -74,6 +75,16 @@
+
+
+ --disable-manpages
+
+
+ This option disables generating the man pages which
+ requires an external program.
+
+
+
Compile the package:
diff --git a/chapter08/lz4.xml b/chapter08/lz4.xml
index 993d213e2..efb200557 100644
--- a/chapter08/lz4.xml
+++ b/chapter08/lz4.xml
@@ -45,7 +45,7 @@
Compile the package:
-make BUILD_STATIC=no
+make BUILD_STATIC=no PREFIX=/usr
To test the results, issue:
diff --git a/chapter08/perl.xml b/chapter08/perl.xml
index 34c6ed32a..df9489d37 100644
--- a/chapter08/perl.xml
+++ b/chapter08/perl.xml
@@ -60,26 +60,26 @@ export BUILD_BZIP2=0
this package is built. Alternatively, use the command exactly as shown below to
use the defaults that Perl auto-detects:
- sh Configure -des \
- -Dprefix=/usr \
- -Dvendorprefix=/usr \
- -Dprivlib=/usr/lib/perl5/&perl-version-min;/core_perl \
- -Darchlib=/usr/lib/perl5/&perl-version-min;/core_perl \
- -Dsitelib=/usr/lib/perl5/&perl-version-min;/site_perl \
- -Dsitearch=/usr/lib/perl5/&perl-version-min;/site_perl \
- -Dvendorlib=/usr/lib/perl5/&perl-version-min;/vendor_perl \
- -Dvendorarch=/usr/lib/perl5/&perl-version-min;/vendor_perl \
- -Dman1dir=/usr/share/man/man1 \
- -Dman3dir=/usr/share/man/man3 \
- -Dpager="/usr/bin/less -isR" \
- -Duseshrplib \
- -Dusethreads
+ sh Configure -des \
+ -D prefix=/usr \
+ -D vendorprefix=/usr \
+ -D privlib=/usr/lib/perl5/&perl-version-min;/core_perl \
+ -D archlib=/usr/lib/perl5/&perl-version-min;/core_perl \
+ -D sitelib=/usr/lib/perl5/&perl-version-min;/site_perl \
+ -D sitearch=/usr/lib/perl5/&perl-version-min;/site_perl \
+ -D vendorlib=/usr/lib/perl5/&perl-version-min;/vendor_perl \
+ -D vendorarch=/usr/lib/perl5/&perl-version-min;/vendor_perl \
+ -D man1dir=/usr/share/man/man1 \
+ -D man3dir=/usr/share/man/man3 \
+ -D pager="/usr/bin/less -isR" \
+ -D useshrplib \
+ -D usethreads
The meaning of the new Configure options:
- -Dpager="/usr/bin/less -isR"
+ -D pager="/usr/bin/less -isR"
This ensures that less is used instead
of more.
@@ -87,8 +87,8 @@ export BUILD_BZIP2=0
- -Dman1dir=/usr/share/man/man1
- -Dman3dir=/usr/share/man/man3
+ -D man1dir=/usr/share/man/man1
+ -D man3dir=/usr/share/man/man3
Since Groff is not installed yet, Configure
will not create man pages for Perl. These
@@ -97,7 +97,7 @@ export BUILD_BZIP2=0
- -Dusethreads
+ -D usethreads
Build Perl with support for threads.
diff --git a/chapter08/readline.xml b/chapter08/readline.xml
index d1c385bbc..882391cae 100644
--- a/chapter08/readline.xml
+++ b/chapter08/readline.xml
@@ -56,10 +56,6 @@ sed -i '/{OLDSUFF}/c:' support/shlib-install
sed -i 's/-Wl,-rpath,[^ ]*//' support/shobj-conf
- Now fix a problem identified upstream:
-
-patch -Np1 -i ../&readline-fixes-patch;
-
Prepare Readline for compilation:
./configure --prefix=/usr \
diff --git a/chapter08/sysklogd.xml b/chapter08/sysklogd.xml
index 26382f8c1..f86718873 100644
--- a/chapter08/sysklogd.xml
+++ b/chapter08/sysklogd.xml
@@ -41,11 +41,12 @@
Installation of Sysklogd
- First, fix a problem that causes a segmentation fault in klogd
- under some conditions, and fix an obsolete program construct:
+ Prepare the package for compilation:
-sed -i '/Error loading kernel symbols/{n;n;d}' ksym_mod.c
-sed -i 's/union wait/int/' syslogd.c
+./configure --prefix=/usr \
+ --sysconfdir=/etc \
+ --runstatedir=/run \
+ --without-logger
Compile the package:
@@ -85,6 +86,9 @@ mail.* -/var/log/mail.log
user.* -/var/log/user.log
*.emerg *
+# Do not open any internet ports.
+secure_mode 2
+
# End /etc/syslog.conf
EOF
@@ -94,10 +98,10 @@ EOF
Contents of Sysklogd
- Installed programs
+ Installed program
- klogd and syslogd
+ syslogd
@@ -106,16 +110,6 @@ EOF
-
- klogd
-
- A system daemon for intercepting and logging kernel messages
-
- klogd
-
-
-
-
syslogd
diff --git a/chapter08/systemd.xml b/chapter08/systemd.xml
index afc274f4f..c2fc9dc6d 100644
--- a/chapter08/systemd.xml
+++ b/chapter08/systemd.xml
@@ -53,26 +53,25 @@
mkdir -p build
cd build
-meson setup \
- --prefix=/usr \
- --buildtype=release \
- -Ddefault-dnssec=no \
- -Dfirstboot=false \
- -Dinstall-tests=false \
- -Dldconfig=false \
- -Dsysusers=false \
- -Drpmmacrosdir=no \
- -Dhomed=disabled \
- -Duserdb=false \
- -Dman=disabled \
- -Dmode=release \
- -Dpamconfdir=no \
- -Ddev-kvm-mode=0660 \
- -Dnobody-group=nogroup \
- -Dsysupdate=disabled \
- -Dukify=disabled \
- -Ddocdir=/usr/share/doc/systemd-&systemd-version; \
- ..
+meson setup .. \
+ --prefix=/usr \
+ --buildtype=release \
+ -D default-dnssec=no \
+ -D firstboot=false \
+ -D install-tests=false \
+ -D ldconfig=false \
+ -D sysusers=false \
+ -D rpmmacrosdir=no \
+ -D homed=disabled \
+ -D userdb=false \
+ -D man=disabled \
+ -D mode=release \
+ -D pamconfdir=no \
+ -D dev-kvm-mode=0660 \
+ -D nobody-group=nogroup \
+ -D sysupdate=disabled \
+ -D ukify=disabled \
+ -D docdir=/usr/share/doc/systemd-&systemd-version;
The meaning of the meson options:
@@ -87,14 +86,14 @@ meson setup \
- -Ddefault-dnssec=no
+ -D default-dnssec=no
This switch turns off the experimental DNSSEC support.
- -Dfirstboot=false
+ -D firstboot=false
This switch prevents installation of systemd
services responsible for setting up the system for
@@ -104,14 +103,14 @@ meson setup \
- -Dinstall-tests=false
+ -D install-tests=false
This switch prevents installation of the compiled tests.
- -Dldconfig=false
+ -D ldconfig=false
This switch prevents installation of a systemd unit that runs
ldconfig at boot; this is not useful for source
@@ -121,7 +120,7 @@ meson setup \
- -Dsysusers=false
+ -D sysusers=false
This switch prevents installation of systemd
services responsible for setting up the
@@ -133,7 +132,7 @@ meson setup \
- -Drpmmacrosdir=no
+ -D rpmmacrosdir=no
This switch disables installation of RPM Macros
for use with systemd, because LFS does not support RPM.
@@ -141,8 +140,8 @@ meson setup \
- -Dhomed=disabled and
- -Duserdb=false
+ -D homed=disabled and
+ -D userdb=false
Remove two daemons with dependencies that do not fit
within the scope of LFS.
@@ -150,7 +149,7 @@ meson setup \
- -Dman=disabled
+ -D man=disabled
Prevent the generation of man pages to avoid extra
dependencies. We will install pre-generated man pages for systemd
@@ -159,7 +158,7 @@ meson setup \
- -Dmode=release
+ -D mode=release
Disable some features considered experimental by upstream.
@@ -167,7 +166,7 @@ meson setup \
- -Dpamconfdir=no
+ -D pamconfdir=no
Prevent the installation of a PAM configuration file not
functional on LFS.
@@ -175,7 +174,7 @@ meson setup \
- -Ddev-kvm-mode=0660
+ -D dev-kvm-mode=0660
The default udev rule would allow all users to access
/dev/kvm. The editors
@@ -184,7 +183,7 @@ meson setup \
- -Dnobody-group=nogroup
+ -D nobody-group=nogroup
Tell the package the group name with GID 65534 is
nogroup.
@@ -192,7 +191,7 @@ meson setup \
- -Dsysupdate=disabled
+ -D sysupdate=disabled
Do not install the systemd-sysupdate
tool. It's designed for automatically upgrading binary distros,
@@ -203,7 +202,7 @@ meson setup \
- -Dukify=disabled
+ -D ukify=disabled
Do not install the systemd-ukify script.
At runtime this script requires the
@@ -226,9 +225,8 @@ ninja test
- Three tests: systemd:core / test-namespace,
- test-chase, and test-systemd-tmpfiles,
- are known to fail in the LFS chroot environment. Some other tests may
+ One test named systemd:core / test-namespace
+ is known to fail in the LFS chroot environment. Some other tests may
fail because they depend on various kernel configuration options.
Install the package:
@@ -239,7 +237,7 @@ ninja test
-tar -xf ../../systemd-man-pages-&systemd-version;.tar.xz \
+tar -xf ../../systemd-man-pages-&systemd-man-version;.tar.xz \
--no-same-owner --strip-components=1 \
-C /usr/share/man
diff --git a/chapter08/sysvinit.xml b/chapter08/sysvinit.xml
index 97bb9113c..20f6cf74a 100644
--- a/chapter08/sysvinit.xml
+++ b/chapter08/sysvinit.xml
@@ -14,16 +14,16 @@
&sysvinit-url;
- Sysvinit-&sysvinit-version;
+ SysVinit-&sysvinit-version;
- Sysvinit
+ SysVinit
- The Sysvinit package contains programs for controlling the startup,
+ The SysVinit package contains programs for controlling the startup,
running, and shutdown of the system.
@@ -39,7 +39,7 @@
- Installation of Sysvinit
+ Installation of SysVinit
-General setup --->
+General setup --->
[ ] Compile the kernel with warnings as errors [WERROR]
CPU/Task time and stats accounting --->
[*] Pressure stall information tracking [PSI]
@@ -45,8 +45,8 @@
Graphics support --->
< /*/M> Direct Rendering Manager (XFree86 4.1.0 and higher DRI support) --->
... [DRM]
- # If [DRM] is selected as * or M, this must be selected:
- [ /*] Enable legacy fbdev support for your modesetting driver
+ # If [DRM] is selected as * or M, this must be selected:
+ [ /*] Enable legacy fbdev support for your modesetting driver
... [DRM_FBDEV_EMULATION]
Console display driver support --->
# If [DRM] is selected as * or M, this must be selected:
diff --git a/chapter10/kernel/sysv.xml b/chapter10/kernel/sysv.xml
index 25cb0c2a6..451898a21 100644
--- a/chapter10/kernel/sysv.xml
+++ b/chapter10/kernel/sysv.xml
@@ -31,8 +31,8 @@
Graphics support --->
< /*/M> Direct Rendering Manager (XFree86 4.1.0 and higher DRI support) --->
... [DRM]
- # If [DRM] is selected as * or M, this must be selected:
- [ /*] Enable legacy fbdev support for your modesetting driver
+ # If [DRM] is selected as * or M, this must be selected:
+ [ /*] Enable legacy fbdev support for your modesetting driver
... [DRM_FBDEV_EMULATION]
Console display driver support --->
# If [DRM] is selected as * or M, this must be selected:
diff --git a/git-version.sh b/git-version.sh
index 1a1a3f60e..6051e2b25 100755
--- a/git-version.sh
+++ b/git-version.sh
@@ -19,7 +19,7 @@ if [ -e LFS-RELEASE ]; then
fi
if ! git status > /dev/null; then
- # Either it's not a git repository, or git is unavaliable.
+ # Either it's not a git repository or git is unavailable.
# Just workaround.
echo " version.ent
echo "" >> version.ent
diff --git a/lfs-latest-git.php b/lfs-latest-git.php
index 52eb501b4..55c634e0b 100644
--- a/lfs-latest-git.php
+++ b/lfs-latest-git.php
@@ -135,12 +135,13 @@ if ( $package == "iana-etc" ) $dirpath = github("Mic92/iana-etc");
if ( $package == "intltool" ) $dirpath = "https://launchpad.net/intltool/trunk";
if ( $package == "libffi" ) $dirpath = github("libffi/libffi");
if ( $package == "libxcrypt" ) $dirpath = github("besser82/libxcrypt");
-if ( $package == "lz" ) $dirpath = github("lz4/lz4");
+if ( $package == "lz4" ) $dirpath = github("lz4/lz4");
if ( $package == "meson" ) $dirpath = github("mesonbuild/meson");
if ( $package == "mpc" ) $dirpath = "https://ftp.gnu.org/gnu/mpc";
if ( $package == "mpfr" ) $dirpath = "https://mpfr.loria.fr/mpfr-current";
if ( $package == "ncurses" ) $dirpath = "https://invisible-mirror.net/archives/ncurses";
if ( $package == "ninja" ) $dirpath = github("ninja-build/ninja");
+if ( $package == "openssl" ) $dirpath = github("openssl/openssl");
if ( $package == "procps-ng" ) $dirpath = "https://gitlab.com/procps-ng/procps/-/tags";
if ( $package == "psmisc" ) $dirpath = "https://gitlab.com/psmisc/psmisc/-/tags";
if ( $package == "Python" ) $dirpath = "https://www.python.org/downloads/source/";
@@ -148,6 +149,7 @@ if ( $package == "shadow" ) $dirpath = github("shadow-maint/shadow");
if ( $package == "sysvinit" ) $dirpath = github("slicer69/sysvinit");
if ( $package == "MarkupSafe" ) $dirpath = "https://pypi.python.org/pypi/MarkupSafe/";
if ( $package == "jinja" ) $dirpath = "https://pypi.python.org/pypi/Jinja2/";
+if ( $package == "sysklogd" ) $dirpath = github("troglobit/sysklogd");
if ( $package == "systemd" ) $dirpath = github("systemd/systemd");
//if ( $package == "tcl" ) $dirpath = "https://sourceforge.net/projects/tcl/files";
if ( $package == "tcl" ) $dirpath = "https://www.tcl.tk/software/tcltk/download.html";
@@ -266,11 +268,11 @@ if ( $package == "zstd" ) $dirpath = github("facebook/zstd");
if ( $package == "jinja" )
return find_max( $lines, "/Jinja/", "/^.*Jinja2 ([\d\.]+).*$/" );
- if ( $package == "lz" )
- return find_max( $lines, "/name.:/", '/^.*LZ4 v([\d\.]+)".*$/' );
+ if ( $package == "lz4" )
+ return find_max( $lines, "/tag_name/", '/^.*v([\d\.]+).*$/' );
if ( $package == "openssl" )
- return find_max( $lines, "/openssl/", "/^.*openssl-([\d\.p]*\d.?).tar.*$/" );
+ return find_max( $lines, "/name.:/", "/^.*OpenSSL ([\d\.]+\d).*$/" );
if ( $package == "Python" )
return find_max( $lines, "/Python 3/", "/^.*Python (3[\d\.]*\d) .*$/" );
@@ -320,7 +322,7 @@ function get_current()
$file = basename( $line ) . "\n";
if ( preg_match( "/patch$/", $file ) ) { continue; } // Skip patches
- $file = preg_replace( "/bz2/", '', $file ); // The 2 confusses the regex
+ $file = preg_replace( "/bz2/", '', $file ); // The 2 confuses the regex
$file = rtrim( $file );
$pkg_pattern = "/(\D*).*/";
@@ -347,6 +349,11 @@ function get_current()
$pattern = "/\D*(\d.*[a-z]*)\.tar\D*/";
}
+ else if ( preg_match( "/lz4/", $file ) )
+ {
+ $pkg_pattern= "/(\D*4).*/";
+ }
+
else if ( preg_match( "/systemd-man-pages/", $file ) ) continue;
else if ( preg_match( "/python/" , $file ) ) continue;
diff --git a/packages.ent b/packages.ent
index d73f29027..af6b77d74 100644
--- a/packages.ent
+++ b/packages.ent
@@ -2,7 +2,7 @@
-
+
@@ -187,10 +187,10 @@
-
-
-
-
+
+
+
+
@@ -216,52 +216,52 @@
-
+
-
-
+
+
-
+
-
-
-
-
-
-
+
+
+
+
+
+
-
+
-
-
+
+
-
+
-
+
-
+
-
-
+
+
-
-
+
+
-
+
-
-
+
+
@@ -319,10 +319,10 @@
-
+
-
+
@@ -343,10 +343,10 @@
-
-
+
+
-
+
@@ -358,7 +358,7 @@
-
+
@@ -369,23 +369,23 @@
-
-
+
+
-
+
-
+
-
-
+
+
-
+
-
+
-
+
@@ -407,14 +407,14 @@
-
+
-
+
@@ -423,47 +423,48 @@
-
+
-
+
-
-
+
+
-
+
-
+
-
-
-
+
+
+
-
-
+
+
-
+
-
-
+
+
-
+
-
+
@@ -473,7 +474,7 @@
-
+
@@ -484,23 +485,23 @@
-
+
-
-
+
+
-
-
+
+
-
+
-
-
+
+
@@ -510,12 +511,12 @@
-
-
+
+
-
+
-
+
@@ -531,17 +532,17 @@
-
-
+
+
-
-
-
+
+
+
@@ -549,16 +550,16 @@
-
-
+
+
-
-
+
+
@@ -568,7 +569,7 @@
-
+
@@ -579,17 +580,17 @@
-
+
-
-
+
+
-
-
+
+
-
-
-
+
+
+
@@ -597,7 +598,7 @@
-
+
@@ -605,31 +606,31 @@
-
+
-
+
-
+
-
+
-
-
-
-
+
+
+
+
-
-
+
+
-
+
-
+
-
+
@@ -644,53 +645,54 @@
-
-
+
+
-
+
-
+
-
-
+
+
-
+
-
+
-
-
-
-
+
+
+
+
-
+
-
+
-
-
+
+
-
+
-
-
+
+
-
-
-
+
+
+
-
-
+
+
-
+
-
+
@@ -701,7 +703,7 @@
-
+
@@ -712,8 +714,8 @@
-
-
+
+
@@ -741,23 +743,23 @@
-
-
+
+
-
+
-
+
-
+
-
+
-
+
-
+
-
-
+
+
-
-
+
+
-
+
@@ -797,9 +799,9 @@
-
+
-
+
@@ -819,6 +821,6 @@
-
-
+
+
diff --git a/part3intro/toolchaintechnotes.xml b/part3intro/toolchaintechnotes.xml
index 7997b0891..3714596fc 100644
--- a/part3intro/toolchaintechnotes.xml
+++ b/part3intro/toolchaintechnotes.xml
@@ -192,9 +192,9 @@
sure-fire way to determine the name of the dynamic linker is to inspect a
random binary from the host system by running: readelf -l
<name of binary> | grep interpreter and noting the
- output. The authoritative reference covering all platforms is in the
- shlib-versions file in the root of the glibc source
- tree.
+ output. The authoritative reference covering all platforms is in
+ a Glibc wiki
+ page.
In order to fake a cross-compilation in LFS, the name of the host triplet
@@ -359,20 +359,17 @@ checking what linker to use... /mnt/lfs/tools/i686-lfs-linux-gnu/bin/ldNext comes glibc. The most important
considerations for building glibc are the compiler, binary tools, and
- kernel headers. The compiler is generally not an issue since glibc will
- always use the compiler relating to the --host
+ kernel headers. The compiler and binary tools are generally not an issue
+ since glibc will always those relating to the --host
parameter passed to its configure script; e.g., in our case, the compiler
- will be $LFS_TGT-gcc. The binary tools and kernel
- headers can be a bit more complicated. Therefore, we take no risks and use
- the available configure switches to enforce the correct selections. After
+ will be $LFS_TGT-gcc and the readelf
+ tool will be $LFS_TGT-readelf. The kernel headers can
+ be a bit more complicated. Therefore, we take no risks and use
+ the available configure switch to enforce the correct selection. After
the run of configure, check the contents of the
config.make file in the build directory for all important details.
- Note the use of CC="$LFS_TGT-gcc" (with
- $LFS_TGT expanded) to control which binary tools are used
- and the use of the -nostdinc and
- -isystem flags to control the compiler's include
- search path. These items highlight an important aspect of the glibc
+ These items highlight an important aspect of the glibc
package—it is very self-sufficient in terms of its build machinery,
and generally does not rely on toolchain defaults.
diff --git a/patches.ent b/patches.ent
index 8b29af8a5..fbb773577 100644
--- a/patches.ent
+++ b/patches.ent
@@ -2,10 +2,11 @@
+
@@ -21,19 +22,19 @@
-
+
-
+
diff --git a/prologue/why.xml b/prologue/why.xml
index e8fac1af4..287a61635 100644
--- a/prologue/why.xml
+++ b/prologue/why.xml
@@ -558,12 +558,12 @@
This package provides an init program
and several additional boot and system control capabilities as an
- alternative to Sysvinit. It is used by many Linux distributions.
+ alternative to SysVinit. It is used by many Linux distributions.
- Sysvinit
+ SysVinit
This package provides the init
program, the parent of all the other processes on a running Linux
diff --git a/stylesheets/lfs-xsl/chunkfast.xsl b/stylesheets/lfs-xsl/chunkfast.xsl
index 6d9d823a5..c9338820f 100644
--- a/stylesheets/lfs-xsl/chunkfast.xsl
+++ b/stylesheets/lfs-xsl/chunkfast.xsl
@@ -8,7 +8,7 @@
exclude-result-prefixes="cf exsl">
+ Dropping unneeded anchors and fo:wrapper elemments. -->
@@ -111,7 +111,7 @@
-
+
diff --git a/stylesheets/lfs-xsl/pdf.xsl b/stylesheets/lfs-xsl/pdf.xsl
index ea247f5db..e1c03147c 100644
--- a/stylesheets/lfs-xsl/pdf.xsl
+++ b/stylesheets/lfs-xsl/pdf.xsl
@@ -27,7 +27,7 @@
-
+
@@ -93,7 +93,7 @@
+ Addibg a bullet, left alignment, and @kepp-*.* attributes
+ for packages and patches list. -->
@@ -135,7 +135,7 @@
diff --git a/stylesheets/lfs-xsl/pdf/lfs-mixed.xsl b/stylesheets/lfs-xsl/pdf/lfs-mixed.xsl
index e5c7ae090..834b7057c 100644
--- a/stylesheets/lfs-xsl/pdf/lfs-mixed.xsl
+++ b/stylesheets/lfs-xsl/pdf/lfs-mixed.xsl
@@ -5,7 +5,7 @@
version="1.0">
@@ -128,7 +128,7 @@
+ Be sure that literal will use always normal font weight. -->
@@ -139,7 +139,7 @@
+ literal, option, prompt, systemitem, varname, sgmltag, tag, and uri -->
diff --git a/stylesheets/lfs-xsl/pdf/lfs-pagesetup.xsl b/stylesheets/lfs-xsl/pdf/lfs-pagesetup.xsl
index 7ec85ddf4..5578fd661 100644
--- a/stylesheets/lfs-xsl/pdf/lfs-pagesetup.xsl
+++ b/stylesheets/lfs-xsl/pdf/lfs-pagesetup.xsl
@@ -176,7 +176,7 @@
+ Small font size and left alignment. -->
-
+ and that do not affect the chunk algorithm. -->
@@ -187,7 +187,7 @@
@@ -208,7 +208,7 @@
-
+
diff --git a/stylesheets/lfs-xsl/xhtml/lfs-toc.xsl b/stylesheets/lfs-xsl/xhtml/lfs-toc.xsl
index 36c4ba3fe..5dbe2136e 100644
--- a/stylesheets/lfs-xsl/xhtml/lfs-toc.xsl
+++ b/stylesheets/lfs-xsl/xhtml/lfs-toc.xsl
@@ -65,7 +65,7 @@
diff --git a/stylesheets/patcheslist.xsl b/stylesheets/patcheslist.xsl
index f863edc1f..94e33b70b 100644
--- a/stylesheets/patcheslist.xsl
+++ b/stylesheets/patcheslist.xsl
@@ -51,7 +51,7 @@ exit
-
+
diff --git a/stylesheets/wget-list.xsl b/stylesheets/wget-list.xsl
index eca53a4c9..09f99cd22 100644
--- a/stylesheets/wget-list.xsl
+++ b/stylesheets/wget-list.xsl
@@ -15,7 +15,7 @@
+ duplicated URLs due that may be split for PDF output -->