diff --git a/appendices/dependencies.xml b/appendices/dependencies.xml
index c48238a8b..6de2de8b7 100644
--- a/appendices/dependencies.xml
+++ b/appendices/dependencies.xml
@@ -1934,9 +1934,11 @@
&external;
- cpio and
+ cpio,
LLVM
- (with Clang)
+ (with Clang), and
+ Rust-bindgen
diff --git a/bootscripts/ChangeLog b/bootscripts/ChangeLog
index 37680aff5..558230238 100644
--- a/bootscripts/ChangeLog
+++ b/bootscripts/ChangeLog
@@ -1,3 +1,11 @@
+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/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..2bcadaa30 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
@@ -575,9 +585,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 +604,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 +630,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 +650,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 +674,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 +693,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 +720,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 +738,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/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..2a6c247ad 100644
--- a/chapter01/changelog.xml
+++ b/chapter01/changelog.xml
@@ -40,6 +40,96 @@
appropriate for the entry or if needed the entire day's listitem.
-->
+
+ 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 +159,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..728396d0a 100644
--- a/chapter01/whatsnew.xml
+++ b/chapter01/whatsnew.xml
@@ -35,15 +35,15 @@
-
+
-
+
@@ -95,9 +95,9 @@
GCC-&gcc-version;
-
+
Gettext-&gettext-version;
@@ -142,10 +142,10 @@
-->
Kmod-&kmod-version;
-
-
+
@@ -233,9 +233,9 @@
Shadow-&shadow-version;
-
+
Systemd-&systemd-version;
diff --git a/chapter03/packages.xml b/chapter03/packages.xml
index dbbb43eae..9e5d4c14e 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:
diff --git a/chapter05/binutils-pass1.xml b/chapter05/binutils-pass1.xml
index ef9f3948c..39365477d 100644
--- a/chapter05/binutils-pass1.xml
+++ b/chapter05/binutils-pass1.xml
@@ -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/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/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/binutils.xml b/chapter08/binutils.xml
index 259c9d5e5..5ff74280f 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/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/sysklogd.xml b/chapter08/sysklogd.xml
index 26382f8c1..c66d5d455 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:
@@ -94,10 +95,10 @@ EOF
Contents of Sysklogd
- Installed programs
+ Installed program
- klogd and syslogd
+ syslogd
@@ -106,16 +107,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/udev.xml b/chapter08/udev.xml
index 98ee48cf2..b3c318a0b 100644
--- a/chapter08/udev.xml
+++ b/chapter08/udev.xml
@@ -65,15 +65,14 @@
mkdir -p build
cd build
-meson setup \
- --prefix=/usr \
- --buildtype=release \
- -Dmode=release \
- -Ddev-kvm-mode=0660 \
- -Dlink-udev-shared=false \
- -Dlogind=false \
- -Dvconsole=false \
- ..
+meson setup .. \
+ --prefix=/usr \
+ --buildtype=release \
+ -D mode=release \
+ -D dev-kvm-mode=0660 \
+ -D link-udev-shared=false \
+ -D logind=false \
+ -D vconsole=false
The meaning of the meson options:
@@ -88,7 +87,7 @@ meson setup \
- -Dmode=release
+ -D mode=release
Disable some features considered experimental by upstream.
@@ -96,7 +95,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
@@ -105,7 +104,7 @@ meson setup \
- -Dlink-udev-shared=false
+ -D link-udev-shared=false
This option prevents udev from linking to the internal
systemd shared library,
@@ -116,7 +115,7 @@ meson setup \
- -Dlogind=false -Dvconsole=false
+ -D logind=false -D vconsole=false
These options prevent the generation of several udev rule
files belonging to the other Systemd components that we won't
diff --git a/chapter09/systemd-custom.xml b/chapter09/systemd-custom.xml
index ffca1a76f..742983e44 100644
--- a/chapter09/systemd-custom.xml
+++ b/chapter09/systemd-custom.xml
@@ -305,7 +305,7 @@ EOF
Disable at build-time: You can disable
lingering by default while building systemd by adding the switch
- -Ddefault-kill-user-processes=false to the
+ -D default-kill-user-processes=false to the
meson command for systemd. This completely
disables the ability of systemd to kill user processes at session
end.
diff --git a/lfs-latest-git.php b/lfs-latest-git.php
index 52eb501b4..ce76e970e 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) .*$/" );
@@ -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 567726db5..26fcf7f5f 100644
--- a/packages.ent
+++ b/packages.ent
@@ -38,11 +38,11 @@
-
-
-
+
+
+
-
+
@@ -57,10 +57,10 @@
-
-
+
+
-
+
@@ -237,10 +237,10 @@
-
-
+
+
-
+
@@ -317,10 +317,10 @@
-
+
-
+
@@ -373,15 +373,15 @@
-
-
+
+
-
+
-
+
@@ -431,12 +431,12 @@
-
+
-
+
-
+
-
+
-
+
-
-
+
+
-
+
@@ -733,20 +733,20 @@
-
-
+
+
-
+
-
+
-
+
-
+