From 87e5e08d3490a74a6d123ba1a498fea44278e23b Mon Sep 17 00:00:00 2001 From: Xi Ruoyao Date: Wed, 15 May 2024 19:46:46 +0800 Subject: [PATCH 01/36] gcc pass2: --disable-libsanitizer is no longer strictly needed GCC 14 libsanitizer no longer depends on crypt.h. But let's keep this option for reducing build time, just update the explanation. Also remove libxcrypt from GCC depedency list. --- appendices/dependencies.xml | 4 ++-- chapter06/gcc-pass2.xml | 10 ++++------ 2 files changed, 6 insertions(+), 8 deletions(-) diff --git a/appendices/dependencies.xml b/appendices/dependencies.xml index 46bdfac0a..c48238a8b 100644 --- a/appendices/dependencies.xml +++ b/appendices/dependencies.xml @@ -935,7 +935,7 @@ &dependencies; Bash, Binutils, Coreutils, Diffutils, Findutils, Gawk, GCC, - Gettext, Glibc, GMP, Grep, Libxcrypt, M4, Make, MPC, MPFR, Patch, + Gettext, Glibc, GMP, Grep, M4, Make, MPC, MPFR, Patch, Perl, Sed, Tar, Texinfo, and Zstd @@ -1887,7 +1887,7 @@ &before; - GCC, Perl, Python, Shadow, and &systemd-udev; + Perl, Python, Shadow, and &systemd-udev; diff --git a/chapter06/gcc-pass2.xml b/chapter06/gcc-pass2.xml index 98b28150d..529f3ab65 100644 --- a/chapter06/gcc-pass2.xml +++ b/chapter06/gcc-pass2.xml @@ -149,12 +149,10 @@ cd build --disable-libsanitizer Disable GCC sanitizer runtime libraries. They are not - needed for the temporary installation. This switch is necessary - to build GCC without - libcrypt installed for - the target. In it was - implied by --disable-libstdcxx, but now we - have to explicitly pass it. + needed for the temporary installation. In + it was implied by + --disable-libstdcxx, and now we can + explicitly pass it. From da1a07bdc161bb88a1fda57a4ae758d8b2ef52bb Mon Sep 17 00:00:00 2001 From: Bruce Dubbs Date: Sun, 19 May 2024 15:53:53 -0500 Subject: [PATCH 02/36] Remove erroneous -i when creating custom udev rules --- chapter09/symlinks.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/chapter09/symlinks.xml b/chapter09/symlinks.xml index 71e35f231..dd79b9ffd 100644 --- a/chapter09/symlinks.xml +++ b/chapter09/symlinks.xml @@ -123,7 +123,7 @@ /usr/lib/udev/network/99-default.link: sed -e '/^AlternativeNamesPolicy/s/=.*$/=/' \ - -i /usr/lib/udev/network/99-default.link \ + /usr/lib/udev/network/99-default.link \ > /etc/udev/network/99-default.link From 32c050cb5836a0cf1b1ea727cddab4909e4b4903 Mon Sep 17 00:00:00 2001 From: Xi Ruoyao Date: Wed, 22 May 2024 16:22:14 +0800 Subject: [PATCH 03/36] gcc-pass2: Don't ambigiously use "previously" --- chapter06/gcc-pass2.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/chapter06/gcc-pass2.xml b/chapter06/gcc-pass2.xml index 529f3ab65..6ca5a0fa2 100644 --- a/chapter06/gcc-pass2.xml +++ b/chapter06/gcc-pass2.xml @@ -124,8 +124,8 @@ cd build We are cross-compiling GCC, so it's impossible to build target libraries (libgcc and libstdc++) with the - previously compiled GCC binaries—those binaries won't run on the - host. The GCC build system will attempt to use the host's + GCC binaries compiled in this pass—those binaries won't run + on the host. The GCC build system will attempt to use the host's C and C++ compilers as a workaround by default. Building the GCC target libraries with a different version of GCC is not supported, so using the host's compilers may cause From 8630ec385af9e31910c9a1e3ee4030a1dd58fba5 Mon Sep 17 00:00:00 2001 From: Xi Ruoyao Date: Thu, 30 May 2024 19:35:35 +0800 Subject: [PATCH 04/36] [systemd] Disable RT_GROUP_SCHED Link: https://github.com/systemd/systemd/issues/13781#issuecomment-549164383 --- chapter10/kernel/kernel.version | 2 +- chapter10/kernel/systemd.toml | 5 +++++ chapter10/kernel/systemd.xml | 7 +++++-- 3 files changed, 11 insertions(+), 3 deletions(-) diff --git a/chapter10/kernel/kernel.version b/chapter10/kernel/kernel.version index 166d79d6d..dd0026fc1 100644 --- a/chapter10/kernel/kernel.version +++ b/chapter10/kernel/kernel.version @@ -1 +1 @@ -6.8.2 +6.8.9 diff --git a/chapter10/kernel/systemd.toml b/chapter10/kernel/systemd.toml index b930e01a6..cfb8bf8f1 100644 --- a/chapter10/kernel/systemd.toml +++ b/chapter10/kernel/systemd.toml @@ -23,6 +23,11 @@ DMIID='*' INOTIFY_USER='*' TMPFS='*' TMPFS_POSIX_ACL='*' +CGROUP_SCHED='* ' + +[RT_GROUP_SCHED] +value = ' ' +comment = 'This may cause some systemd features malfunction' revision='systemd' diff --git a/chapter10/kernel/systemd.xml b/chapter10/kernel/systemd.xml index b21d7d183..4960796ef 100644 --- a/chapter10/kernel/systemd.xml +++ b/chapter10/kernel/systemd.xml @@ -3,7 +3,7 @@ "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd"> -General setup ---> +General setup ---> [ ] Compile the kernel with warnings as errors [WERROR] CPU/Task time and stats accounting ---> [*] Pressure stall information tracking [PSI] @@ -11,7 +11,10 @@ ... [PSI_DEFAULT_DISABLED] < > Enable kernel headers through /sys/kernel/kheaders.tar.xz [IKHEADERS] [*] Control Group support ---> [CGROUPS] - [*] Memory controller [MEMCG] + [*] Memory controller [MEMCG] + [ /*] CPU controller ---> [CGROUP_SCHED] + # This may cause some systemd features malfunction: + [ ] Group scheduling for SCHED_RR/FIFO [RT_GROUP_SCHED] [ ] Configure standard kernel features (expert users) ---> [EXPERT] Processor type and features ---> From 6acfe2e81f23a8a06f31537a916dbf200ac39f0f Mon Sep 17 00:00:00 2001 From: Bruce Dubbs Date: Fri, 31 May 2024 12:06:49 -0500 Subject: [PATCH 05/36] Package Updates. Update to meson-1.4.1. Update to xz-5.6.2. Add linux-6.9.x compatibility instructions to systemd and udev. Update to setuptools-70.0.0 (python module). Update to ninja-1.12.1. Update to man-pages-6.8. Update to linux-6.9.3. Update to libcap-2.70. Update to iproute2-6.9.0. Update to e2fsprogs-1.47.1. --- chapter01/changelog.xml | 48 +++++++++++++++++++++++++++++++++++ chapter01/whatsnew.xml | 8 +++--- chapter08/systemd.xml | 12 +++++++++ chapter08/udev.xml | 12 +++++++++ packages.ent | 56 ++++++++++++++++++++--------------------- 5 files changed, 104 insertions(+), 32 deletions(-) diff --git a/chapter01/changelog.xml b/chapter01/changelog.xml index fd5645dc5..25b9ee150 100644 --- a/chapter01/changelog.xml +++ b/chapter01/changelog.xml @@ -40,6 +40,54 @@ appropriate for the entry or if needed the entire day's listitem. --> + + 2024-05-31 + + + [bdubbs] - Update to meson-1.4.1. Fixes + #5498. + + + [bdubbs] - Update to xz-5.6.2. Fixes + #5471. + + + [bdubbs] - Add linux-6.9.x compatibility instructions to + systemd + udev. + Fixes #5496. + + + [bdubbs] - Update to setuptools-70.0.0 (python module). Fixes + #5491. + + + [bdubbs] - Update to ninja-1.12.1. Fixes + #5489. + + + [bdubbs] - Update to man-pages-6.8. Fixes + #5494. + + + [bdubbs] - Update to linux-6.9.3. Fixes + #5491. + + + [bdubbs] - Update to libcap-2.70. Fixes + #5493. + + + [bdubbs] - Update to iproute2-6.9.0. Fixes + #5492. + + + [bdubbs] - Update to e2fsprogs-1.47.1. Fixes + #5495. + + + + 2024-05-13 diff --git a/chapter01/whatsnew.xml b/chapter01/whatsnew.xml index 2bd18a3e4..9ad12dc22 100644 --- a/chapter01/whatsnew.xml +++ b/chapter01/whatsnew.xml @@ -68,9 +68,9 @@ - + Expat-&expat-version; @@ -149,9 +149,9 @@ - + Libelf from Elfutils-&elfutils-version; diff --git a/chapter08/systemd.xml b/chapter08/systemd.xml index 0de3af24b..30b99fc17 100644 --- a/chapter08/systemd.xml +++ b/chapter08/systemd.xml @@ -48,6 +48,18 @@ sed -i -e 's/GROUP="render"/GROUP="video"/' \ -e 's/GROUP="sgx", //' rules.d/50-udev-default.rules.in + Next, fix compatibility with linux-6.9 and later: + + sed -i '/DEVMEM_MAGIC 0/{n;n;a \ +/* cb12fd8e0dabb9a1c8aef55a6a41e2c255fcdf4b (6.8) */ +#ifndef PID_FS_MAGIC \ +#define PID_FS_MAGIC 0x50494446 \ +#endif +}' src/basic/missing_magic.h + +sed -i '/OVERLAYFS_SUPER_MAGIC/a \ +pidfs, {PID_FS_MAGIC}' src/basic/filesystems-gperf.gperf + Now fix a security vulnerability in the DNSSEC verification of systemd-resolved and a bug breaking running diff --git a/chapter08/udev.xml b/chapter08/udev.xml index 98ee48cf2..8f71237b8 100644 --- a/chapter08/udev.xml +++ b/chapter08/udev.xml @@ -55,6 +55,18 @@ sed '/systemd-sysctl/s/^/#/' -i rules.d/99-systemd.rules.in + Next, fix compatibility with linux-6.9 and later: + + sed -i '/DEVMEM_MAGIC 0/{n;n;a \ +/* cb12fd8e0dabb9a1c8aef55a6a41e2c255fcdf4b (6.8) */ \ +#ifndef PID_FS_MAGIC \ +#define PID_FS_MAGIC 0x50494446 \ +#endif +}' src/basic/missing_magic.h + +sed -i '/OVERLAYFS_SUPER_MAGIC/a \ +pidfs, {PID_FS_MAGIC}' src/basic/filesystems-gperf.gperf + Adjust the hardcoded paths to network configuration files for the standalone udev installation: diff --git a/packages.ent b/packages.ent index e78e6387c..b3b10e677 100644 --- a/packages.ent +++ b/packages.ent @@ -140,10 +140,10 @@ - - + + - + @@ -341,10 +341,10 @@ - - + + - + @@ -389,10 +389,10 @@ - - + + - + @@ -430,13 +430,13 @@ - - + + - + - + + + 2024-06-15 + + + [bdubbs] - Update to vim-9.1.0478. Addresses + #4500. + + + [bdubbs] - Update to iana-etc-20240607. Addresses + #5006. + + + [bdubbs] - Update to systemd-256. Fixes + #5504. + + + [bdubbs] - Update to python3-3.12.4. Fixes + #5502. + + + [bdubbs] - Update to perl-5.40.0. Fixes + #5503. + + + [bdubbs] - Update to openssl-3.3.1 (Security fix). Fixes + #5500. + + + [bdubbs] - Update to linux-6.9.4. Fixes + #5505. + + + [bdubbs] - Update to findutils-4.10.0. Fixes + #5499. + + + + 2024-05-31 diff --git a/chapter01/whatsnew.xml b/chapter01/whatsnew.xml index 9ad12dc22..315a03bea 100644 --- a/chapter01/whatsnew.xml +++ b/chapter01/whatsnew.xml @@ -80,9 +80,9 @@ - + @@ -206,9 +206,9 @@ - + Pkgconf-&pkgconf-version; @@ -236,9 +236,9 @@ - + diff --git a/chapter03/patches.xml b/chapter03/patches.xml index 87645f532..95d81b1de 100644 --- a/chapter03/patches.xml +++ b/chapter03/patches.xml @@ -141,7 +141,7 @@ MD5 sum: &sysvinit-consolidated-patch-md5; - + + Prepare systemd for compilation: mkdir -p build @@ -247,8 +248,10 @@ ninja test 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. + is known to fail in the LFS chroot environment. Two other tests, + test-chase and test-systemd-tmpfiles, + are also known to fail. Some other tests may fail because they depend + on various kernel configuration options. Install the package: diff --git a/chapter08/udev.xml b/chapter08/udev.xml index 8f71237b8..98ee48cf2 100644 --- a/chapter08/udev.xml +++ b/chapter08/udev.xml @@ -55,18 +55,6 @@ sed '/systemd-sysctl/s/^/#/' -i rules.d/99-systemd.rules.in - Next, fix compatibility with linux-6.9 and later: - - sed -i '/DEVMEM_MAGIC 0/{n;n;a \ -/* cb12fd8e0dabb9a1c8aef55a6a41e2c255fcdf4b (6.8) */ \ -#ifndef PID_FS_MAGIC \ -#define PID_FS_MAGIC 0x50494446 \ -#endif -}' src/basic/missing_magic.h - -sed -i '/OVERLAYFS_SUPER_MAGIC/a \ -pidfs, {PID_FS_MAGIC}' src/basic/filesystems-gperf.gperf - Adjust the hardcoded paths to network configuration files for the standalone udev installation: diff --git a/packages.ent b/packages.ent index b3b10e677..567726db5 100644 --- a/packages.ent +++ b/packages.ent @@ -182,10 +182,10 @@ - - + + - + @@ -230,7 +230,7 @@ - + @@ -317,10 +317,10 @@ - + - + @@ -431,12 +431,12 @@ - + - + - + - + - + - + - - + + @@ -660,20 +660,20 @@ - + - + - + - - + + - + @@ -743,10 +743,10 @@ - + - + - + diff --git a/patches.ent b/patches.ent index 426cc36df..8b29af8a5 100644 --- a/patches.ent +++ b/patches.ent @@ -37,7 +37,8 @@ - + From 9c7437f2fd40d2ef242a7fba2e51e5423f35627c Mon Sep 17 00:00:00 2001 From: Xi Ruoyao Date: Sat, 15 Jun 2024 00:06:41 +0800 Subject: [PATCH 12/36] glibc: Remove redundant mkdir -pv /usr/lib/locale command It's created in chapter 7. --- chapter08/glibc.xml | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/chapter08/glibc.xml b/chapter08/glibc.xml index 1984a4444..21a73a35d 100644 --- a/chapter08/glibc.xml +++ b/chapter08/glibc.xml @@ -356,8 +356,7 @@ install -v -Dm644 ../nscd/nscd.service /usr/lib/systemd/system/nscd.service -mkdir -pv /usr/lib/locale -localedef -i C -f UTF-8 C.UTF-8 +localedef -i C -f UTF-8 C.UTF-8 localedef -i cs_CZ -f UTF-8 cs_CZ.UTF-8 localedef -i de_DE -f ISO-8859-1 de_DE localedef -i de_DE@euro -f ISO-8859-15 de_DE@euro From c04d98d0380353851b5dffb3d316f7243b46769b Mon Sep 17 00:00:00 2001 From: Xi Ruoyao Date: Sat, 15 Jun 2024 01:22:02 +0800 Subject: [PATCH 13/36] systemd: Reword test failure notice --- chapter08/systemd.xml | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/chapter08/systemd.xml b/chapter08/systemd.xml index e121096ed..afc274f4f 100644 --- a/chapter08/systemd.xml +++ b/chapter08/systemd.xml @@ -224,13 +224,12 @@ meson setup \ echo 'NAME="Linux From Scratch"' > /etc/os-release ninja test - - One test named systemd:core / test-namespace - is known to fail in the LFS chroot environment. Two other tests, - test-chase and test-systemd-tmpfiles, - are also known to fail. Some other tests may fail because they depend - on various kernel configuration options. + 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 + fail because they depend on various kernel configuration options. Install the package: From 201aa93863b8999290f262baa52e487e01bfada3 Mon Sep 17 00:00:00 2001 From: Xi Ruoyao Date: Sat, 22 Jun 2024 11:43:31 +0800 Subject: [PATCH 14/36] Move punctuation/comma into quotes for s We are using American rule for punctuation/comma vs. quotes. We've fixed most cases but not s. --- appendices/udev-rules.xml | 2 +- chapter01/askforhelp.xml | 2 +- chapter02/stages.xml | 2 +- chapter06/introduction.xml | 2 +- chapter07/cleanup.xml | 3 ++- chapter08/grub.xml | 2 +- chapter08/shadow.xml | 3 ++- chapter09/symlinks.xml | 11 ++++++----- chapter09/usage.xml | 2 +- chapter10/kernel.xml | 4 ++-- 10 files changed, 18 insertions(+), 15 deletions(-) diff --git a/appendices/udev-rules.xml b/appendices/udev-rules.xml index 25f41033e..750205686 100644 --- a/appendices/udev-rules.xml +++ b/appendices/udev-rules.xml @@ -13,7 +13,7 @@ Udev configuration rules The rules in this appendix are listed for convenience. Installation is - normally done via instructions in . + normally done via instructions in 55-lfs.rules diff --git a/chapter01/askforhelp.xml b/chapter01/askforhelp.xml index dd36b30fa..7c6032389 100644 --- a/chapter01/askforhelp.xml +++ b/chapter01/askforhelp.xml @@ -15,7 +15,7 @@ In case you've hit an issue building one package with the LFS instruction, we strongly discourage posting the issue directly onto the upstream support channel before discussing via a LFS support - channel listed in . + channel listed in Doing so is often quite inefficient because the upstream maintainers are rarely familiar with LFS building procedure. Even if you've really hit an upstream issue, the LFS community can still help diff --git a/chapter02/stages.xml b/chapter02/stages.xml index aeee2588e..287aa43f4 100644 --- a/chapter02/stages.xml +++ b/chapter02/stages.xml @@ -86,7 +86,7 @@ and, as root, running the commands in and - . + diff --git a/chapter06/introduction.xml b/chapter06/introduction.xml index bfa2dafd4..5e2fc972a 100644 --- a/chapter06/introduction.xml +++ b/chapter06/introduction.xml @@ -26,6 +26,6 @@ may render your computer unusable. This whole chapter must be done as user lfs, with the environment as described in - . + diff --git a/chapter07/cleanup.xml b/chapter07/cleanup.xml index 2bfe68d9e..870ba318e 100644 --- a/chapter07/cleanup.xml +++ b/chapter07/cleanup.xml @@ -88,7 +88,8 @@ make sure you have set LFS. - This has been discussed in . + This has been discussed in + diff --git a/chapter08/grub.xml b/chapter08/grub.xml index 19cc9674a..a2dbbaf41 100644 --- a/chapter08/grub.xml +++ b/chapter08/grub.xml @@ -111,7 +111,7 @@ mv -v /etc/bash_completion.d/grub /usr/share/bash-completion/completions Making your LFS system bootable with GRUB will be discussed in - . + diff --git a/chapter08/shadow.xml b/chapter08/shadow.xml index 315e3cc5e..de6b05f75 100644 --- a/chapter08/shadow.xml +++ b/chapter08/shadow.xml @@ -242,7 +242,8 @@ useradd -D --gid 999 unknown GID 999, even though the account has been created correctly. That is why we created the group users - with this group ID in . + with this group ID in + diff --git a/chapter09/symlinks.xml b/chapter09/symlinks.xml index dd79b9ffd..cd2d58077 100644 --- a/chapter09/symlinks.xml +++ b/chapter09/symlinks.xml @@ -39,7 +39,7 @@ often have two ethernet connections named eth0 and wlan0; such laptops can also use this method. The command line is in the GRUB configuration file. - See . + See @@ -219,8 +219,8 @@ Dealing with Duplicate Devices - As explained in , the order in - which devices with the same function appear in + As explained in the + order in which devices with the same function appear in /dev is essentially random. E.g., if you have a USB web camera and a TV tuner, sometimes /dev/video0 refers to the camera and @@ -229,8 +229,9 @@ For all classes of hardware except sound cards and network cards, this is fixable by creating udev rules to create persistent symlinks. The case of network cards is covered separately in - , and sound card configuration can - be found in BLFS. + and sound card + configuration can be found in + BLFS. For each of your devices that is likely to have this problem (even if the problem doesn't exist in your current Linux distribution), diff --git a/chapter09/usage.xml b/chapter09/usage.xml index 6b5441bba..554affc71 100644 --- a/chapter09/usage.xml +++ b/chapter09/usage.xml @@ -254,7 +254,7 @@ EOF /sys/class/rtc. For information on kernel module loading and udev, see - . + diff --git a/chapter10/kernel.xml b/chapter10/kernel.xml index 6eafeaf27..c1e02129a 100644 --- a/chapter10/kernel.xml +++ b/chapter10/kernel.xml @@ -55,8 +55,8 @@ LFS editors recommend that users not familiar with this process follow the procedures below fairly closely. The objective is to get an initial system to a point where you can log in at the command line when - you reboot later in . At this point - optimization and customization is not a goal. + you reboot later in + At this point optimization and customization is not a goal. From e91edadd00517fe2c7d00b6bef1ca870ce2dcbaf Mon Sep 17 00:00:00 2001 From: Bruce Dubbs Date: Sun, 30 Jun 2024 10:40:41 -0500 Subject: [PATCH 15/36] Package and format updates. Update to iana-etc-20240612. Update to bc-6.7.6. Update to man-pages-6.9.1. Update to linux-6.9.7. Update to sysklogd-2.5.2. Update to shadow-4.16.0. Update to systemd-256.1. Update to setuptools-70.1.1. Also change the formatting of options '-Dsomething' to '-D something'. --- bootscripts/lfs/init.d/sysklogd | 15 +++---- chapter01/askforhelp.xml | 8 ++-- chapter01/changelog.xml | 40 +++++++++++++++++- chapter01/whatsnew.xml | 8 ++-- chapter07/perl.xml | 26 ++++++------ chapter08/perl.xml | 36 ++++++++-------- chapter08/sysklogd.xml | 23 ++++------ chapter08/systemd.xml | 74 ++++++++++++++++----------------- chapter08/udev.xml | 25 ++++++----- chapter09/systemd-custom.xml | 2 +- packages.ent | 50 +++++++++++----------- 11 files changed, 165 insertions(+), 142 deletions(-) diff --git a/bootscripts/lfs/init.d/sysklogd b/bootscripts/lfs/init.d/sysklogd index e86b87b16..b9c782040 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 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..6cf5816cc 100644 --- a/chapter01/changelog.xml +++ b/chapter01/changelog.xml @@ -40,6 +40,44 @@ appropriate for the entry or if needed the entire day's listitem. --> + + 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 +107,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..6a12dd5cb 100644 --- a/chapter01/whatsnew.xml +++ b/chapter01/whatsnew.xml @@ -41,9 +41,9 @@ - + @@ -233,9 +233,9 @@ Shadow-&shadow-version; - + Systemd-&systemd-version; 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/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..275e92932 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 @@ -227,7 +226,8 @@ ninja test Three tests: systemd:core / test-namespace, - test-chase, and test-systemd-tmpfiles, + test-loopback, and + test-copy, are known to fail in the LFS chroot environment. Some other tests may fail because they depend on various kernel configuration options. @@ -239,7 +239,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/packages.ent b/packages.ent index 567726db5..b89b737bf 100644 --- a/packages.ent +++ b/packages.ent @@ -57,10 +57,10 @@ - - + + - + @@ -317,10 +317,10 @@ - + - + @@ -381,7 +381,7 @@ - + @@ -431,12 +431,12 @@ - + - + - + - + - + From ba0723a402ab449e56cadf25eac83428371159b3 Mon Sep 17 00:00:00 2001 From: Bruce Dubbs Date: Sun, 30 Jun 2024 14:51:53 -0500 Subject: [PATCH 16/36] Tweak sysklogd bootscript for latest version. --- bootscripts/lfs/init.d/sysklogd | 1 - 1 file changed, 1 deletion(-) diff --git a/bootscripts/lfs/init.d/sysklogd b/bootscripts/lfs/init.d/sysklogd index b9c782040..04662efd9 100644 --- a/bootscripts/lfs/init.d/sysklogd +++ b/bootscripts/lfs/init.d/sysklogd @@ -60,7 +60,6 @@ case "${1}" in status) statusproc /sbin/syslogd - statusproc klogd ;; *) From f01d1e3597c514f6d81eff13719aa0117592056e Mon Sep 17 00:00:00 2001 From: Bruce Dubbs Date: Mon, 1 Jul 2024 08:01:10 -0500 Subject: [PATCH 17/36] Fix sysklogd currency --- lfs-latest-git.php | 1 + 1 file changed, 1 insertion(+) diff --git a/lfs-latest-git.php b/lfs-latest-git.php index 52eb501b4..de1683c63 100644 --- a/lfs-latest-git.php +++ b/lfs-latest-git.php @@ -148,6 +148,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"; From 6ee537a8938af2a4ba24af6f82c7aa8cb06d610a Mon Sep 17 00:00:00 2001 From: Bruce Dubbs Date: Tue, 2 Jul 2024 15:59:25 -0500 Subject: [PATCH 18/36] Update systemd man pages. --- packages.ent | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/packages.ent b/packages.ent index b89b737bf..3f706f532 100644 --- a/packages.ent +++ b/packages.ent @@ -669,11 +669,11 @@ - - + + - + From e872712e9a8688334cddd387f3c6228c9bcd47ed Mon Sep 17 00:00:00 2001 From: Xi Ruoyao Date: Wed, 3 Jul 2024 18:13:46 +0800 Subject: [PATCH 19/36] dependencies: List rust-bindgen as Linux external dependency It's needed to enable Rust-based features in the kernel. Rustc is also needed but it's required by rust-bindgen so I'm skipping it (like BLFS). LLVM (Clang) is also a required dependency of rust-bindgen but it's listed here for different purposes (LTO and CFI). --- appendices/dependencies.xml | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) 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 From e7b6af1037a3713ff3deac3d1e7cc742bb29e7f1 Mon Sep 17 00:00:00 2001 From: Bruce Dubbs Date: Sat, 6 Jul 2024 17:12:29 -0500 Subject: [PATCH 20/36] Update lfs-bootscripts to only output escape sequences to a terminal. --- bootscripts/ChangeLog | 4 + bootscripts/lfs/lib/services/init-functions | 95 ++++++++++++++++----- chapter01/changelog.xml | 10 +++ packages.ent | 2 +- 4 files changed, 90 insertions(+), 21 deletions(-) diff --git a/bootscripts/ChangeLog b/bootscripts/ChangeLog index 37680aff5..129fbd454 100644 --- a/bootscripts/ChangeLog +++ b/bootscripts/ChangeLog @@ -1,3 +1,7 @@ +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/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/changelog.xml b/chapter01/changelog.xml index 6cf5816cc..240e52b98 100644 --- a/chapter01/changelog.xml +++ b/chapter01/changelog.xml @@ -40,6 +40,16 @@ appropriate for the entry or if needed the entire day's listitem. --> + + 2024-07-01 + + + [bdubbs] - Update lfs-bootscripts to only output + escape sequences to a terminal. + + + + 2024-07-01 diff --git a/packages.ent b/packages.ent index 3f706f532..342641d35 100644 --- a/packages.ent +++ b/packages.ent @@ -381,7 +381,7 @@ - + From f1054497241c55d994840173ed6852d93b88254a Mon Sep 17 00:00:00 2001 From: Bruce Dubbs Date: Mon, 15 Jul 2024 11:00:12 -0500 Subject: [PATCH 21/36] Package updates. Update to iana-etc-20240701. Update to vim-9.1.0580. Update to automake-1.17. Update to gdbm-1.24. Update to linux-6.9.9. Update to less-661. Update to meson-1.5.0. Update to setuptools-70.3.0. Update to util-linux-2.40.2. --- chapter01/changelog.xml | 42 ++++++++++++++++++++++++++++++++ chapter01/whatsnew.xml | 14 +++++------ packages.ent | 54 ++++++++++++++++++++--------------------- 3 files changed, 76 insertions(+), 34 deletions(-) diff --git a/chapter01/changelog.xml b/chapter01/changelog.xml index 240e52b98..2a6c247ad 100644 --- a/chapter01/changelog.xml +++ b/chapter01/changelog.xml @@ -40,6 +40,48 @@ 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 diff --git a/chapter01/whatsnew.xml b/chapter01/whatsnew.xml index 6a12dd5cb..728396d0a 100644 --- a/chapter01/whatsnew.xml +++ b/chapter01/whatsnew.xml @@ -35,9 +35,9 @@ - + @@ -95,9 +95,9 @@ GCC-&gcc-version; - + Gettext-&gettext-version; @@ -142,10 +142,10 @@ --> Kmod-&kmod-version; - - + diff --git a/packages.ent b/packages.ent index 342641d35..bc117fc85 100644 --- a/packages.ent +++ b/packages.ent @@ -38,11 +38,11 @@ - - - + + + - + @@ -237,10 +237,10 @@ - - + + - + @@ -317,10 +317,10 @@ - + - + @@ -373,10 +373,10 @@ - - + + - + @@ -431,12 +431,12 @@ - + - + - + - + + - + - + - + - + From 6e6641f9b784b371fc8a39d389753895209bd82a Mon Sep 17 00:00:00 2001 From: Xi Ruoyao Date: Fri, 12 Jul 2024 13:09:46 +0800 Subject: [PATCH 22/36] binutils: Add --enable-new-dtags This option makes ld use DT_RUNPATH instead of DT_RPATH. DT_RPATH is generally considered bad because it takes precedence over LD_LIBRARY_PATH. For example, eog is linked with -rpath /usr/lib/eog, and with DT_RPATH if an old eog is already installed we are basically impossible to debug a new eog build w/o overwriting the system installation first or explicitly using "ld.so --inhibit-rpath" to invoke it. This "new" actually means "new in 2000," it's 24 years ago and all other distros has enabled it. Thus I guess some unexplainable "test suite uses installed library instead of the just built one" issues in BLFS are actually caused by this difference: the package author just assumes everyone is using DT_RUNPATH thus they just set LD_LIBRARY_PATH and consider it enough to test with the just built libraries, but DT_RPATH breaks this expectation. Let's eliminate the difference as it seems not doing anything good and doing so just takes one switch. --- chapter05/binutils-pass1.xml | 12 ++++++++++++ chapter06/binutils-pass2.xml | 1 + chapter08/binutils.xml | 1 + 3 files changed, 14 insertions(+) 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/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 From 0808f2861979f4b97ea8f80d9427f34bf2f2224f Mon Sep 17 00:00:00 2001 From: Xi Ruoyao Date: Fri, 12 Jul 2024 13:39:23 +0800 Subject: [PATCH 23/36] bootscripts: Add -n to the ln command, for recreating /dev/fd correctly if the initramfs has already created one --- bootscripts/ChangeLog | 4 ++++ bootscripts/lfs/init.d/mountvirtfs | 2 +- packages.ent | 2 +- 3 files changed, 6 insertions(+), 2 deletions(-) diff --git a/bootscripts/ChangeLog b/bootscripts/ChangeLog index 129fbd454..558230238 100644 --- a/bootscripts/ChangeLog +++ b/bootscripts/ChangeLog @@ -1,3 +1,7 @@ +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. 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/packages.ent b/packages.ent index bc117fc85..7220b22e4 100644 --- a/packages.ent +++ b/packages.ent @@ -381,7 +381,7 @@ - + From a7596d8cc0dc2e9d73a6a5226922c217e3207138 Mon Sep 17 00:00:00 2001 From: Xi Ruoyao Date: Fri, 12 Jul 2024 14:01:11 +0800 Subject: [PATCH 24/36] packages: Add a space between "Systemd Man Pages" and the version To be consistent with other packages. --- chapter03/packages.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) 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: From 86e276279ad452f4671f4374754124a627b8e4ed Mon Sep 17 00:00:00 2001 From: Xi Ruoyao Date: Sat, 13 Jul 2024 21:49:14 +0800 Subject: [PATCH 25/36] systemd: Update known failures I can only reproduce test-namespace failure now with 256.1. --- chapter08/systemd.xml | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/chapter08/systemd.xml b/chapter08/systemd.xml index 275e92932..c2fc9dc6d 100644 --- a/chapter08/systemd.xml +++ b/chapter08/systemd.xml @@ -225,10 +225,8 @@ ninja test - Three tests: systemd:core / test-namespace, - test-loopback, and - test-copy, - 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: From 5b7b80511cb673a79d041272121bf0477073ffe2 Mon Sep 17 00:00:00 2001 From: Xi Ruoyao Date: Sun, 14 Jul 2024 11:14:20 +0800 Subject: [PATCH 26/36] cleanup: Remove hidden files in /tmp Some test suite may create files of which the name starts with a dot. These files are "hidden" and they won't be matched with the /tmp/* wildcard. --- chapter08/cleanup.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) 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" From eeee07494266a8efd94a7dc0637b026dcb683c27 Mon Sep 17 00:00:00 2001 From: Bruce Dubbs Date: Wed, 17 Jul 2024 22:43:43 -0500 Subject: [PATCH 27/36] Update bootscripts version. --- packages.ent | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages.ent b/packages.ent index 7220b22e4..26fcf7f5f 100644 --- a/packages.ent +++ b/packages.ent @@ -381,7 +381,7 @@ - + From b56430b6918bb03101b86c387923a3cdce90ef39 Mon Sep 17 00:00:00 2001 From: Bruce Dubbs Date: Wed, 24 Jul 2024 09:41:55 -0500 Subject: [PATCH 28/36] Update currency for lz. --- lfs-latest-git.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lfs-latest-git.php b/lfs-latest-git.php index de1683c63..0d82e9b3e 100644 --- a/lfs-latest-git.php +++ b/lfs-latest-git.php @@ -268,7 +268,7 @@ if ( $package == "zstd" ) $dirpath = github("facebook/zstd"); return find_max( $lines, "/Jinja/", "/^.*Jinja2 ([\d\.]+).*$/" ); if ( $package == "lz" ) - return find_max( $lines, "/name.:/", '/^.*LZ4 v([\d\.]+)".*$/' ); + return find_max( $lines, "/tag_name/", '/^.*v([\d\.]+).*$/' ); if ( $package == "openssl" ) return find_max( $lines, "/openssl/", "/^.*openssl-([\d\.p]*\d.?).tar.*$/" ); From 0d6c94f1bf8eef0364ef1d3833ad3764a0fdbc40 Mon Sep 17 00:00:00 2001 From: Bruce Dubbs Date: Wed, 24 Jul 2024 23:05:08 -0500 Subject: [PATCH 29/36] Fix name and currency for lz4. --- lfs-latest-git.php | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/lfs-latest-git.php b/lfs-latest-git.php index 0d82e9b3e..318d06ad8 100644 --- a/lfs-latest-git.php +++ b/lfs-latest-git.php @@ -135,7 +135,7 @@ 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"; @@ -267,7 +267,7 @@ if ( $package == "zstd" ) $dirpath = github("facebook/zstd"); if ( $package == "jinja" ) return find_max( $lines, "/Jinja/", "/^.*Jinja2 ([\d\.]+).*$/" ); - if ( $package == "lz" ) + if ( $package == "lz4" ) return find_max( $lines, "/tag_name/", '/^.*v([\d\.]+).*$/' ); if ( $package == "openssl" ) @@ -348,6 +348,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; From d2ac7026343b65708ad06880cee908548f890f6f Mon Sep 17 00:00:00 2001 From: Bruce Dubbs Date: Thu, 25 Jul 2024 11:17:54 -0500 Subject: [PATCH 30/36] Update currency for openssl. --- lfs-latest-git.php | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/lfs-latest-git.php b/lfs-latest-git.php index 318d06ad8..ce76e970e 100644 --- a/lfs-latest-git.php +++ b/lfs-latest-git.php @@ -141,6 +141,7 @@ 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/"; @@ -271,7 +272,7 @@ if ( $package == "zstd" ) $dirpath = github("facebook/zstd"); 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) .*$/" ); From 44c33588fd45ef0d632dcf87274faebace6c991b Mon Sep 17 00:00:00 2001 From: Bruce Dubbs Date: Wed, 31 Jul 2024 10:36:46 -0500 Subject: [PATCH 31/36] Package updates Update to iana-etc-20240723. Update to glibc-2.40. Update to iproute2-6.10.0. Update to linux-6.10.2. Update to lz4-1.10.0. Update to meson-1.5.1. Update to setuptools-71.1.0. Update to sysklogd-2.6.1. Update to systemd-256.4. Update to sysvinit-3.10. --- chapter01/changelog.xml | 46 +++++++++++++++++++++++++ chapter01/whatsnew.xml | 16 ++++----- chapter03/patches.xml | 3 +- chapter08/glibc.xml | 4 +-- packages.ent | 75 +++++++++++++++++++++-------------------- patches.ent | 4 +-- 6 files changed, 98 insertions(+), 50 deletions(-) diff --git a/chapter01/changelog.xml b/chapter01/changelog.xml index 2a6c247ad..12d2f79f4 100644 --- a/chapter01/changelog.xml +++ b/chapter01/changelog.xml @@ -40,6 +40,52 @@ appropriate for the entry or if needed the entire day's listitem. --> + + 2024-08-01 + + + [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-71.1.0. Fixes + #5524. + + + [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 diff --git a/chapter01/whatsnew.xml b/chapter01/whatsnew.xml index 728396d0a..11bad5db3 100644 --- a/chapter01/whatsnew.xml +++ b/chapter01/whatsnew.xml @@ -101,9 +101,9 @@ Gettext-&gettext-version; - + @@ -167,9 +167,9 @@ Linux-&linux-version; - + @@ -239,9 +239,9 @@ Systemd-&systemd-version; - + @@ -254,9 +254,9 @@ - + Util-linux-&util-linux-version; diff --git a/chapter03/patches.xml b/chapter03/patches.xml index 95d81b1de..b807d76f9 100644 --- a/chapter03/patches.xml +++ b/chapter03/patches.xml @@ -77,6 +77,7 @@ --> + Glibc FHS Patch - &glibc-fhs-patch-size;: diff --git a/chapter08/glibc.xml b/chapter08/glibc.xml index 21a73a35d..1f12e915a 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/packages.ent b/packages.ent index 26fcf7f5f..b02018b31 100644 --- a/packages.ent +++ b/packages.ent @@ -255,10 +255,10 @@ - - + + - + @@ -317,10 +317,10 @@ - + - + @@ -341,10 +341,10 @@ - - + + - + @@ -430,30 +430,31 @@ - - + + - + - + - - - + + + - - + + - + @@ -502,10 +503,10 @@ - + - + @@ -636,10 +637,10 @@ - - + + - + @@ -652,22 +653,22 @@ - - + + - + - + - + - + @@ -677,10 +678,10 @@ - - + + - + diff --git a/patches.ent b/patches.ent index 8b29af8a5..3dc18d14c 100644 --- a/patches.ent +++ b/patches.ent @@ -21,11 +21,11 @@ - + From f6eb3399d57d91dc472971e0a09b8e07debda3a9 Mon Sep 17 00:00:00 2001 From: Xi Ruoyao Date: Thu, 1 Aug 2024 00:17:10 +0800 Subject: [PATCH 32/36] automake: Remove outdated test failure notice These failures are fixed in automake-1.17 release. --- chapter08/automake.xml | 3 --- 1 file changed, 3 deletions(-) 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 From 39bdcbafb21578e6b2fb0a011e0cb751cd5d96d8 Mon Sep 17 00:00:00 2001 From: Xi Ruoyao Date: Thu, 1 Aug 2024 00:29:32 +0800 Subject: [PATCH 33/36] whatsnew: Make Sysvinit entry same as the section title Make them consistent and reduce one string for the translators. --- chapter01/whatsnew.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/chapter01/whatsnew.xml b/chapter01/whatsnew.xml index 11bad5db3..b62a840a3 100644 --- a/chapter01/whatsnew.xml +++ b/chapter01/whatsnew.xml @@ -240,7 +240,7 @@ Systemd-&systemd-version; - SysVinit-&sysvinit-version; + Sysvinit-&sysvinit-version; - + - + From 8aa80e434d14f76267f7133b3b234355ccf9aab8 Mon Sep 17 00:00:00 2001 From: Bruce Dubbs Date: Wed, 31 Jul 2024 16:59:30 -0500 Subject: [PATCH 35/36] Make capitalization os SysVinit consistent. --- appendices/dependencies.xml | 4 ++-- chapter01/whatsnew.xml | 2 +- chapter03/packages.xml | 2 +- chapter03/patches.xml | 2 +- chapter08/sysvinit.xml | 12 ++++++------ chapter09/usage.xml | 4 ++-- prologue/why.xml | 4 ++-- 7 files changed, 15 insertions(+), 15 deletions(-) diff --git a/appendices/dependencies.xml b/appendices/dependencies.xml index 6de2de8b7..27a7e2a57 100644 --- a/appendices/dependencies.xml +++ b/appendices/dependencies.xml @@ -3010,8 +3010,8 @@ - - Sysvinit + + SysVinit &dependencies; diff --git a/chapter01/whatsnew.xml b/chapter01/whatsnew.xml index b62a840a3..11bad5db3 100644 --- a/chapter01/whatsnew.xml +++ b/chapter01/whatsnew.xml @@ -240,7 +240,7 @@ Systemd-&systemd-version; - Sysvinit-&sysvinit-version; + SysVinit-&sysvinit-version;