diff --git a/appendices/dependencies.xml b/appendices/dependencies.xml index 9d92de448..46bdfac0a 100644 --- a/appendices/dependencies.xml +++ b/appendices/dependencies.xml @@ -326,8 +326,8 @@ &dependencies; - Bash, Binutils, Coreutils, GCC, Gettext, Glibc, Grep, M4, Make, - Perl, and Sed + Bash, Binutils, Coreutils, Diffutils, GCC, Gettext, Glibc, + Grep, M4, Make, Perl, and Sed @@ -1980,6 +1980,44 @@ + + Lz4 + + + &dependencies; + + Bash, Binutils, Coreutils, GCC, Glibc, and Make + + + + + &runtime; + + Glibc + + + + + &testsuites; + + Python + + + + + &before; + + Zstd and Systemd + + + + + &external; + + None + + + M4 @@ -2111,7 +2149,7 @@ &dependencies; - Bash, Coreutils, and Make + Bash, Coreutils, Make, and Sed @@ -2357,7 +2395,7 @@ &testsuites; - None + cmake @@ -2876,7 +2914,7 @@ &dependencies; Acl, Bash, Binutils, Coreutils, Diffutils, Gawk, - GCC, Glibc, Gperf, Grep, Jinja2, Libcap, Libxcrypt, Meson, + GCC, Glibc, Gperf, Grep, Jinja2, Libcap, Libxcrypt, Lz4, Meson, OpenSSL, Pkgconf, Sed, Util-linux, and Zstd @@ -2942,7 +2980,6 @@ Linux-PAM, lxml, - LZ4, make-ca, p11-kit, PCRE2, @@ -3426,7 +3463,7 @@ &dependencies; - Binutils, Coreutils, GCC, Glibc, Gzip, Make, Xz, and Zlib + Binutils, Coreutils, GCC, Glibc, Gzip, Lz4, Make, Xz, and Zlib @@ -3455,7 +3492,7 @@ &external; - LZ4 + None diff --git a/bootscripts/ChangeLog b/bootscripts/ChangeLog index 3853ff83a..37680aff5 100644 --- a/bootscripts/ChangeLog +++ b/bootscripts/ChangeLog @@ -1,3 +1,7 @@ +2024-04-16 Bruce Dubbs + * Remove blank output line generated in ifup script when bringing + up wireless interface. + 2023-10-04 Pierre Labastie * After the changes done on 2022-03-24, several "halt stop" should have been changed to "halt start". Done now. Fortunately, those diff --git a/bootscripts/lfs/sbin/ifup b/bootscripts/lfs/sbin/ifup index 4c70810cd..070d25cdc 100755 --- a/bootscripts/lfs/sbin/ifup +++ b/bootscripts/lfs/sbin/ifup @@ -110,7 +110,7 @@ for S in ${SERVICE}; do fi done -if [ "${SERVICE}" = "wpa" ]; then log_success_msg; fi +#if [ "${SERVICE}" = "wpa" ]; then log_success_msg; fi # Create/configure the interface for S in ${SERVICE}; do diff --git a/chapter01/changelog.xml b/chapter01/changelog.xml index 72ef95ea8..131a8cd1c 100644 --- a/chapter01/changelog.xml +++ b/chapter01/changelog.xml @@ -41,702 +41,247 @@ --> - 2024-02-14 + 2024-05-01 - [bdubbs] - Update to meson-1.3.2. Fixes - #5442. - - - - - - 2024-02-12 - - - [bdubbs] - Update to shadow-4.14.5. Fixes - #5437. + [bdubbs] - Add security fix to glibc. Fixes + #5481. - [bdubbs] - Update to setuptools-69.1.0 (Python module). Fixes - #5439. + [bdubbs] - Update to linux-6.8.8. Fixes + #5480. - [bdubbs] - Update to python-3.12.2. Fixes - #5434. - - - [bdubbs] - Update to pkgconf-2.1.1. Fixes - #5432. - - - [bdubbs] - Update to MarkupSafe-2.1.5 (Python module). Fixes - #5431. - - - [bdubbs] - Update to man-pages-6.06. Fixes - #5438. - - - [bdubbs] - Update to expat-2.6.0. Fixes - #5435. - - - [bdubbs] - Update to linux-6.7.4. Fixes - #5433. - - - - - - 2024-02-10 - - - [xry111] - Fix a bug in systemd breaking running - systemd-analyze on an instantiated systemd unit. - - - - - - 2024-02-02 - - - [xry111] - Update to tzdata-2024a. Fixes - #5428. - - - [xry111] - Update to glibc-2.39 (security fix). Fixes - #5426. - - - [xry111] - Update to linux-6.7.3. Fixes - #5427. - - - - - - 2024-02-01 - - - [bdubbs] - Update to openssl-3.2.1 (security fix). Fixes - #5425. - - - [bdubbs] - Update to zlib-1.3.1. Fixes - #5419. - - - [bdubbs] - Update to xz-5.4.6. Fixes - #5423. - - - [bdubbs] - Update to linux-6.7.2. Fixes - #5422. - - - [bdubbs] - Update to iana-etc-20240125. Addresses - #5006. - - - [bdubbs] - Update to binutils-2.42. Fixes - #5424. - - - [bdubbs] - Update to acl-2.3.2. Fixes - #5421. - - - [bdubbs] - Update upstream fixes for readline-8.2. Fixes - #5420. - - - [bdubbs] - Apply upstream fix for bash-5.2.21. Fixes - #5420. - - - - - - 2024-01-21 - - - [xry111] - Apply upstream fix for pkgconf-2.1.0 regression. - Fixes #5414. - - - [xry111] - Update to jinja2-3.1.3 (security fix). Fixes - #5411. - - - [xry111] - Update to bc-6.7.5. Fixes - #5408. - - - [xry111] - Update to attr-2.5.2. Fixes - #5412. - - - [xry111] - Update to ncurses-6.4-20230520 (security fix). - Fixes #5416. - - - [xry111] - Update to markupsafe-2.1.4. Fixes - #5418. - - - [xry111] - Update to linux-6.7.1. Fixes - #5406. - - - [xry111] - Update to iproute2-6.7.0. Fixes - #5410. - - - [xry111] - Update to vim-9.1.0041. Addresses - #4500. - - - [xry111] - Update to iana-etc-20240117. Addresses - #5006. - - - [xry111] - Update to shadow-4.14.3. Fixes - #5413. - - - [xry111] - Fix CVE-2024-0684 for coreutils-9.4. Fixes - #5417. - - - - - - 2024-01-18 - - - [xry111] - Edit a ncurses header to always use the - wide-character ABI compatible with libncursesw.so because we - are faking the 8-bit libncurses.so with it. Fixes - #5415. - - - - - - 2024-01-09 - - - [renodr] - Fix the definition of the C.UTF-8 locale. Fixes - #5409. - - - - - - 2023-12-31 - - - [xry111] - Add --enable-default-hash-style=gnu configuring - binutils. Fixes - #5401. - - - [xry111] - Fix CVE-2023-7008 for systemd-255. Fixes - #5405. - - - [xry111] - Update to iana-etc-20231205. Addresses - #5006. - - - [xry111] - Update to tzdata-2023d. Fixes - #5399. - - - [xry111] - Update to linux-6.6.8. Fixes - #5397. - - - [xry111] - Update to meson-1.3.1. Fixes - #5402. - - - [xry111] - Update to grub-2.12. Fixes - #5396. - - - [xry111] - Update to inetutils-2.5. Fixes - #5404. - - - [xry111] - Update to setuptools-69.0.3. Fixes - #5400. - - - [xry111] - Update to xml-parser-2.47. Fixes - #5403. - - - [xry111] - Update to vim-9.0.2189. Addresses - #4500. - - - [xry111] - Update to autoconf-2.72. Fixes - #5398. - - - - - - 2023-12-16 - - - [xry111] - Update to udev - from systemd-255. Fixes - #5390. - - - - - - 2023-12-14 - - - [bdubbs] - Update to util-linux v2.39.3. Fixes - #5388. - - - [bdubbs] - Update to python3-3.12.1. Fixes - #5392. - - - [bdubbs] - Update to linux-6.6.7. Fixes - #5387. - - - [bdubbs] - Update to kbd-2.6.4. Fixes - #5393. - - - [bdubbs] - Update to bc-6.7.4. Fixes - #5389. - - - [bdubbs] - Reformat util-linux configure parameters. Fixes - #5395. - - - - - - 2023-12-04 - - - [thomas] - Modify commands for install Python docs to avoid - too restrictive permissions on the files and dirs. + [bdubbs] - Update to ncurses-6.5. Fixes + #5483. - 2023-12-01 + 2024-04-16 - [xry111] - Restore NIC naming based on physical system - characteristics. Fixes - #5386. + [bdubbs] - Make minor change to ifup script output text. - 2023-11-30 + 2024-04-15 - [bdubbs] - Update to vim-9.0.2136. Addresses - #4500. + [bdubbs] - Update to setuptools-69.5.1. Fixes + #5478. - [bdubbs] - Update to iana-etc-20231117. Addresses + [bdubbs] - Update to python3-3.12.3. Fixes + #5476. + + + [bdubbs] - Update to openssl-3.3.0. Fixes + #5475. + + + [bdubbs] - Update to ninja-1.12.0. Fixes + #5477. + + + [bdubbs] - Update to man-db-2.12.1. Fixes + #5474. + + + [bdubbs] - Update to linux-6.8.6. Fixes + #5472. + + + [bdubbs] - Update to iana-etc-20240412. Addresses #5006. - [bdubbs] - Update to bc-6.7.3. Fixes - #5385. - - - [bdubbs] - Update to wheel-0.42.0 (Python Module). Fixes - #5384. - - - [bdubbs] - Update to perl-5.38.2. Fixes - #5383. - - - [bdubbs] - Update to pkgconf-2.1.0. Fixes - #5382. - - - [bdubbs] - Update to readline patches 002 through 007. Fixes - #5381. - - - [bdubbs] - Update to openssl-3.2.0. Fixes - #5380. - - - [bdubbs] - Update to setuptools-69.0.2. Fixes - #5379. - - - [bdubbs] - Update to linux-6.6.3. Fixes - #5378. - - - [bdubbs] - Update to meson-1.3.0. Fixes - #5377. - - - [bdubbs] - Update to gettext-0.22.4. Fixes - #5376. + [bdubbs] - Update to vim-9.1.0330. Addresses + #4500. - 2023-11-13 + 2024-03-31 - [xry111] - Update to elfutils-0.190. Fixes - #5373. - - - [xry111] - Update to vim-9.0.2103. Addresses - #4500. - - - [xry111] - Update to linux-6.6.1. Fixes - #5369. - - - [xry111] - Update to xz-5.4.5. Fixes - #5371. - - - [xry111] - Update to iana-etc-20231107. Addresses + [bdubbs] - Update to iana-etc-20240318. Addresses #5006. - [xry111] - Update to gawk-5.3.0. Fixes - #5372. + [bdubbs] - Update to zstd-1.5.6. Fixes + #5468. - [xry111] - Update to bash-5.2.21. Fixes - #5375. + [bdubbs] - Update to util-linux-2.40. Fixes + #5430. - [xry111] - Update to iproute2-6.6.0. Fixes - #5374. + [bdubbs] - Update to shadow-4.15.1. Fixes + #5465. + + + [bdubbs] - Update to pkgconf-2.2.0. Fixes + #5469. + + + [bdubbs] - Update to linux-6.8.2. Fixes + #5467. + + + [bdubbs] - Update to coreutils-9.5. Fixes + #5470. - 2023-11-01 + 2024-03-29 - [bdubbs] - Update to iana-etc-20231019. Addresses - #5006. + [bdubbs] - Revert to xz-5.4.6 due to upstream + compromise. + + + + + 2024-03-25 + - [bdubbs] - Update to wheel-0.41.3. Fixes - #5370. - - - [bdubbs] - Update to shadow-4.14.2. Fixes - #5368. - - - [bdubbs] - Update to openssl-3.1.4. Fixes - #5367. - - - [bdubbs] - Update to texinfo-7.1. Fixes - #5364. - - - [bdubbs] - Update to meson-1.2.3. Fixes - #5366. - - - [bdubbs] - Update to bc-6.7.2. Fixes - #5363. - - - [bdubbs] - Update to linux-6.5.9. Fixes - #5365. - - - [bdubbs] - Update to Python-3.12.0. Fixes - #5357. - - - [bdubbs] - Add setuptools-68.2.2. Fixes - #5358. + [timtas] - Update to sysvinit-3.09. Fixes + #5466. - 2023-10-15 + 2024-03-19 - [bdubbs] - Update to linux-6.5.7. Fixes - #5362. + [renodr] - Update to iproute2-6.8.0. Fixes + #5458. - [bdubbs] - Update to shadow-4.14.1. Fixes - #5361. + [renodr] - Update to man-pages-6.7. Fixes + #5464. - [bdubbs] - Update to gettext-0.22.3. Fixes - #5359. + [renodr] - Update to Linux-6.8.1. Fixes + #5453. + + + [renodr] - Added LZ4 to the book. Fixes + #5463. - 2023-10-03 + 2024-03-15 - [xry111] - Update Glibc upstream fixes patch to fix - CVE-2023-4911. - - - - - - 2023-10-01 - - - [bdubbs] - Disable building nscd in glibc. Fixes - #5349. + [bdubbs] - Update to wheel-0.43.0. Fixes + #5459. - [bdubbs] - Update to iana-etc-20230929. Addresses - #5006. + [bdubbs] - Update to setuptools-69.2.0 (Python module). Fixes + #5462. - [bdubbs] - Update to vim-9.0.1968. Addresses - #4500. + [bdubbs] - Update to meson-1.4.0. Fixes + #5460. - [bdubbs] - Update to openssl-3.1.3. Fixes - #5350. + [bdubbs] - Update to expat-2.6.2 (Security fix). Fixes + #5461. - [bdubbs] - Update to meson-1.2.2. Fixes - #5356. - - - [bdubbs] - Update to man-db-2.12.0. Fixes - #5354. - - - [bdubbs] - Update to linux-6.5.5. Fixes - #5352. - - - [bdubbs] - Update to kmod-31. Fixes - #5355. - - - [bdubbs] - Update to kbd-2.6.3. Fixes - #5361. - - - [bdubbs] - Update to gettext-0.22.2. Fixes - #5348. - - - [bdubbs] - Update to bc-6.7.0. Fixes - #5353. - - - - - - 2023-09-24 - - - [xry111] - Update Glibc upstream fixes patch to plug a - memory leak introduced by the security fix. - - - - - - 2023-09-17 - - - [xry111] - Update to linux-6.5.3. Fixes - #5343. - - - [xry111] - Update to iana-etc-20230912. Addresses + [bdubbs] - Update to iana-etc-20240305. Addresses #5006. - [xry111] - Update to iproute2-6.5.0. Fixes - #5342. + [bdubbs] - Update to vim-9.1.0161. Addresses + #4500. + + + [bdubbs] - Update to xz-5.6.1. Fixes + #5457. + + + [bdubbs] - Update to shadow-4.15.0. Fixes + #5456. + + + [bdubbs] - Update to psmisc-23.7. Fixes + #5454. + + + [bdubbs] - Update to kmod-32. Fixes + #5455. + + + [bdubbs] - Update to elfutils-0.191. Fixes + #5451. - 2023-09-13 + 2024-03-02 - [xry111] - Fix CVE-2023-4806 for Glibc-2.38. Fixes - #5347. + [bdubbs] - Update to iana-etc-20240222. Addresses + #5006. + + + [bdubbs] - Update to vim-9.1.0145. Addresses + #4500. + + + [bdubbs] - Update to xz-5.6.0. Fixes + #5447. + + + [bdubbs] - Update to tcl-8.6.14. Fixes + #5448. + + + [bdubbs] - Update to shadow-4.14.6. Fixes + #5450. + + + [bdubbs] - Update to setuptools-69.1.1. Fixes + #5446. + + + [bdubbs] - Update to linux-6.7.7. Fixes + #5444. + + + [bdubbs] - Update to libffi-3.4.6. Fixes + #5443. + + + [bdubbs] - Update to gettext-0.22.5. Fixes + #5445. + + + [bdubbs] - Update to expat-2.6.1. Fixes + #5449. - 2023-09-12 + 2024-03-01 - [xry111] - Fix CVE-2023-4527 for Glibc-2.38. Fixes - #5346. - - - - - - 2023-09-07 - - - [xry111] - Fix an issue in pkgconf-2.0.3 causing - BLFS packages fail to build. Fixes - #5341. - - - - - - 2023-09-05 - - - [xry111] - Move pkgconf before binutils for binutils - building system to detect zstd properly. Fixes - #5340. - - - [xry111] - Update to linux-6.5.1. Fixes - #5332. - - - [xry111] - Update to pkgconf-2.0.3. Fixes - #5339. - - - [xry111] - Update to dbus-1.14.10. Fixes - #5337. - - - - - - 2023-09-04 - - - [bdubbs] - Move caution regarding building by mixing - different version of LFS to General Compilation Instructions. Fixes - #5338. - - - - - - 2023-09-02 - - - [xry111] - Add --no-cache-dir option for pip3 wheel - commands. Addresses - BLFS #18466. - - - [bdubbs] - Update to vim-9.0.1837. Addresses - #4500. - - - [bdubbs] - Update to zlib-1.3. Fixes - #5324. - - - [bdubbs] - Update to wheel-0.41.2 (Python Module). Fixes - #5328. - - - [bdubbs] - Update to util-linux-2.39.2. Fixes - #5322. - - - [bdubbs] - Update to sysvinit-3.08. Fixes - #5321. - - - [bdubbs] - Update to shadow-4.14.0. Fixes - #5319. - - - [bdubbs] - Update to Python-3.11.5. Fixes - #5330. - - - [bdubbs] - Update to procps-ng-4.0.4 (security fix - for 32-bit systems). Fixes - #5335. - - - [bdubbs] - Update to pkgconf-2.0.2. Fixes - #5323. - - - [bdubbs] - Update to mpfr-4.2.1. Fixes - #5326. - - - [bdubbs] - Update to kbd-2.6.2. Fixes - #5318. - - - [bdubbs] - Update to gzip-1.13. Fixes - #5325. - - - [bdubbs] - Update to coreutils-9.4. Fixes - #5334. - - - [bdubbs] - Specify the 'nobody-group' for systemd. Fixes - #5333. - - - [bdubbs] - Remove unused usb group. Fixes - #5331. - - - - - - 2023-09-01 - - - [bdubbs] - LFS-12.0 released. + [bdubbs] - LFS-12.1 released. diff --git a/chapter01/whatsnew.xml b/chapter01/whatsnew.xml index d1cc11706..6bfc51b25 100644 --- a/chapter01/whatsnew.xml +++ b/chapter01/whatsnew.xml @@ -26,27 +26,27 @@ - + + + - + + + @@ -62,9 +62,9 @@ - + @@ -89,9 +89,9 @@ - + @@ -101,9 +101,9 @@ Gettext-&gettext-version; - + @@ -116,33 +116,33 @@ - + + Iana-Etc-&iana-etc-version; - + IPRoute2-&iproute2-version; - + + Kmod-&kmod-version; - + @@ -155,9 +155,9 @@ Libelf from Elfutils-&elfutils-version; - + @@ -167,6 +167,9 @@ Linux-&linux-version; + @@ -179,42 +182,42 @@ Man-pages-&man-pages-version; - + Meson-&meson-version; - + Ncurses-&ncurses-version; - + OpenSSL-&openssl-version; - + Pkgconf-&pkgconf-version; - - Procps-ng-&procps-ng-version; - + + Psmisc-&psmisc-version; + Python-&python-version; @@ -224,7 +227,7 @@ - + Setuptools-&setuptools-version; @@ -236,21 +239,21 @@ - + - - + + + @@ -263,18 +266,18 @@ Wheel-&wheel-version; - + Xz-&xz-version; - - Zlib-&zlib-version; - + + Zstd-&zstd-version; + - - &bash-upstream-fixes-patch; + Lz4-&lz4-version; - - &readline-fixes-patch; + glibc-2.39-upstream_fix-1.patch - - - setuptools-&setuptools-version; - - - - &systemd-upstream-patch; - - Removed: - - glibc-2.38-memalign_fix-1.patch - - - - grub-2.06-upstream_fixes-1.patch - - - - readline-8.2-upstream_fix-1.patch - - diff --git a/chapter03/packages.xml b/chapter03/packages.xml index 1f5b55427..dbbb43eae 100644 --- a/chapter03/packages.xml +++ b/chapter03/packages.xml @@ -489,6 +489,15 @@ + + Lz4 (&lz4-version;) - &lz4-size;: + + Home page: + Download: + MD5 sum: &lz4-md5; + + + M4 (&m4-version;) - &m4-size;: @@ -813,8 +822,7 @@ The version of vim changes daily. To get the latest version, go to - - https://github.com/vim/vim/tags. + . diff --git a/chapter03/patches.xml b/chapter03/patches.xml index 067dc9aea..0f78dcfa5 100644 --- a/chapter03/patches.xml +++ b/chapter03/patches.xml @@ -76,15 +76,15 @@ MD5 sum: &gcc-upstream-fixes-patch-md5; - +--> - Glibc Upstream Fixes Patch - &glibc-upstream-fixes-patch-size;: + Glibc Upstream Fix Patch - &glibc-upstream-patch-size;: - Download: - MD5 sum: &glibc-upstream-fixes-patch-md5; + Download: + MD5 sum: &glibc-upstream-patch-md5; ---> + Glibc FHS Patch - &glibc-fhs-patch-size;: diff --git a/chapter06/ncurses.xml b/chapter06/ncurses.xml index 0a8c7e166..29d406b57 100644 --- a/chapter06/ncurses.xml +++ b/chapter06/ncurses.xml @@ -69,8 +69,7 @@ popd --with-cxx-shared \ --without-debug \ --without-ada \ - --disable-stripping \ - --enable-widec + --disable-stripping The meaning of the new configure options: @@ -132,9 +131,9 @@ popd Using host tools on cross-compiled programs can cause failure. - + Compile the package: diff --git a/chapter07/changingowner.xml b/chapter07/changingowner.xml index 96c6b88bd..66cb25b72 100644 --- a/chapter07/changingowner.xml +++ b/chapter07/changingowner.xml @@ -33,6 +33,6 @@ user root by running the following command: -chown -R root:root $LFS/{usr,lib,var,etc,bin,sbin,tools} +chown -R --from lfs root:root $LFS/{usr,lib,var,etc,bin,sbin,tools} diff --git a/chapter07/util-linux.xml b/chapter07/util-linux.xml index 488635b7a..1ac069b8c 100644 --- a/chapter07/util-linux.xml +++ b/chapter07/util-linux.xml @@ -51,17 +51,18 @@ Prepare Util-linux for compilation: -./configure --libdir=/usr/lib \ - --runstatedir=/run \ - --disable-chfn-chsh \ - --disable-login \ - --disable-nologin \ - --disable-su \ - --disable-setpriv \ - --disable-runuser \ - --disable-pylibmount \ - --disable-static \ - --without-python \ + ./configure --libdir=/usr/lib \ + --runstatedir=/run \ + --disable-chfn-chsh \ + --disable-login \ + --disable-nologin \ + --disable-su \ + --disable-setpriv \ + --disable-runuser \ + --disable-pylibmount \ + --disable-static \ + --disable-liblastlog2 \ + --without-python \ ADJTIME_PATH=/var/lib/hwclock/adjtime \ --docdir=/usr/share/doc/util-linux-&util-linux-version; diff --git a/chapter08/chapter08.xml b/chapter08/chapter08.xml index c3ded2719..43bb6404a 100644 --- a/chapter08/chapter08.xml +++ b/chapter08/chapter08.xml @@ -19,6 +19,7 @@ + diff --git a/chapter08/coreutils.xml b/chapter08/coreutils.xml index 94c276360..1f935809b 100644 --- a/chapter08/coreutils.xml +++ b/chapter08/coreutils.xml @@ -53,13 +53,6 @@ those bugs are reproducible without this patch. - - Fix a security vulnerability in the split - utility: - -sed -e '/n_out += n_hold/,+4 s|.*bufsize.*|//&|' \ - -i src/split.c - Now prepare Coreutils for compilation: autoreconf -fiv @@ -123,25 +116,29 @@ FORCE_UNSAFE_CONFIGURE=1 ./configure \ chown -R tester . - Now run the tests: + + 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 + 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): -su tester -c "PATH=$PATH make RUN_EXPENSIVE_TESTS=yes check" - - +su tester -c "PATH=$PATH make RUN_EXPENSIVE_TESTS=yes check" < /dev/null Remove the temporary group: groupdel dummy + + Two tests, tests/cp/preserve-mode.sh and + tests/mv/acl.sh, are known to + fail in the chroot environment, but pass in a complete system. + + Install the package: make install diff --git a/chapter08/glibc.xml b/chapter08/glibc.xml index 3352f6ac7..ef450ef69 100644 --- a/chapter08/glibc.xml +++ b/chapter08/glibc.xml @@ -49,12 +49,11 @@ store their runtime data in the FHS-compliant locations: patch -Np1 -i ../&glibc-fhs-patch; - + Now fix a security vulnerability: + +patch -Np1 -i ../&glibc-upstream-patch; + The Glibc documentation recommends building Glibc in a dedicated build directory: @@ -171,9 +170,7 @@ esac relatively slow and/or running the test suite with multiple parallel make jobs). These tests can be identified with: - - grep "Timed out" -l $(find -name \*.out) + grep "Timed out" $(find -name \*.out) It's possible to re-run a single test with enlarged timeout with diff --git a/chapter08/kmod.xml b/chapter08/kmod.xml index 9a16da3f0..6c875caed 100644 --- a/chapter08/kmod.xml +++ b/chapter08/kmod.xml @@ -84,17 +84,19 @@ (not the sanitized kernel headers installed earlier), which are beyond the scope of LFS. - Install the package and create symlinks for + Install the package and recreate some symlinks for compatibility with Module-Init-Tools (the package that previously handled - Linux kernel modules): + Linux kernel modules). The building system will create all these + symlinks in /usr/bin, but we + only want lsmod there and all other symlinks in + /usr/sbin instead: make install for target in depmod insmod modinfo modprobe rmmod; do ln -sfv ../bin/kmod /usr/sbin/$target -done - -ln -sfv kmod /usr/bin/lsmod + rm -fv /usr/bin/$target +done diff --git a/chapter08/lz4.xml b/chapter08/lz4.xml new file mode 100644 index 000000000..993d213e2 --- /dev/null +++ b/chapter08/lz4.xml @@ -0,0 +1,141 @@ + + + %general-entities; +]> + + + + + + Lz4 + &lz4-version; +
&lz4-url;
+
+ + Lz4-&lz4-version; + + + Lz4 + + + + + + <para>Lz4 is a lossless compression algorithm, providing compression speed + greater than 500 MB/s per core. It features an extremely fast decoder, with + speed in multiple GB/s per core. Lz4 can work with Zstandard to allow both + algorithms to compress data faster.</para> + + <segmentedlist> + <segtitle>&buildtime;</segtitle> + <segtitle>&diskspace;</segtitle> + + <seglistitem> + <seg>&lz4-fin-sbu;</seg> + <seg>&lz4-fin-du;</seg> + </seglistitem> + </segmentedlist> + + </sect2> + + <sect2 role="installation"> + <title>Installation of Lz4 + + Compile the package: + +make BUILD_STATIC=no + + To test the results, issue: + + + +make -j1 check + + Install the package: + +make BUILD_STATIC=no PREFIX=/usr install + + + + + Contents of Lz4 + + + Installed programs + Installed library + + + lz4, + lz4c (link to lz4), + lz4cat (link to lz4), and + unlz4 (link to lz4) + + + liblz4.so + + + + + Short Descriptions + + + + + lz4 + + Compresses or decompresses files using the LZ4 format + + lz4 + + + + + + lz4c + + Compresses files using the LZ4 format + + lz4c + + + + + + lz4cat + + Lists the contents of a file compressed using the LZ4 format + + lz4cat + + + + + + unlz4 + + Decompresses files using the LZ4 format + + unlz4 + + + + + + liblz4 + + The library implementing lossless data + compression, using the LZ4 algorithm + + liblz4 + + + + + + + + +
diff --git a/chapter08/ncurses.xml b/chapter08/ncurses.xml index 40589c58a..a825f63c9 100644 --- a/chapter08/ncurses.xml +++ b/chapter08/ncurses.xml @@ -50,9 +50,9 @@ --without-normal \ --with-cxx-shared \ --enable-pc-files \ - --enable-widec \ --with-pkg-config-libdir=/usr/lib/pkgconfig + The meaning of the new configure options: @@ -94,9 +94,9 @@
- + Compile the package: @@ -127,7 +127,7 @@ make will spawn new shell processes during "make install". --> The installation of this package will overwrite - libncursesw.so.&ncurses-release; + libncursesw.so.&ncurses-version; in-place. It may crash the shell process which is using code and data from the library file. Install the package with DESTDIR, and replace the library file correctly using @@ -137,8 +137,8 @@ ): make DESTDIR=$PWD/dest install -install -vm755 dest/usr/lib/libncursesw.so.&ncurses-release; /usr/lib -rm -v dest/usr/lib/libncursesw.so.&ncurses-release; +install -vm755 dest/usr/lib/libncursesw.so.&ncurses-version; /usr/lib +rm -v dest/usr/lib/libncursesw.so.&ncurses-version; sed -e 's/^#if.*XOPEN.*$/#if 1/' \ -i dest/usr/include/curses.h cp -av dest/* / diff --git a/chapter08/ninja.xml b/chapter08/ninja.xml index 106e63970..5bccea1ea 100644 --- a/chapter08/ninja.xml +++ b/chapter08/ninja.xml @@ -82,10 +82,14 @@ + The package tests cannot run in the chroot environment. They require + cmake. + Install the package: diff --git a/chapter08/procps.xml b/chapter08/procps.xml index 3f229c713..8a4716ade 100644 --- a/chapter08/procps.xml +++ b/chapter08/procps.xml @@ -70,22 +70,18 @@ make make src_w_LDADD='$(LDADD) -lsystemd' - To run the test suite, run: + + To run the test suite, run: -make -k check +chown -R tester . +su tester -c "PATH=$PATH make check" One test named ps with output flag bsdtime,cputime,etime,etimes is known to fail if the host kernel is not built with - CONFIG_BSD_PROCESS_ACCT enabled. - - Two tests named - pmap X with unreachable process and - pmap XX with unreachable process are known to - fail occasionally. + CONFIG_BSD_PROCESS_ACCT enabled. Install the package: diff --git a/chapter08/python.xml b/chapter08/python.xml index 7ac618c09..0f22ab2a9 100644 --- a/chapter08/python.xml +++ b/chapter08/python.xml @@ -78,11 +78,17 @@ make - Running the tests at this point is not recommended. The - tests are known to hang indefinitely in the partial LFS environment. - If desired, the tests can be rerun at the end of this chapter, or - when Python 3 is reinstalled in BLFS. To run the tests anyway, - issue make test. + Some tests are known to occasionally hang indefinitely. So to test the + results, run the test suite but set a 2-minute time limit for each + test case: + +make test TESTOPTS="--timeout 120" + + For a relatively slow system you may need to increase the time + limit and 1 SBU (measured when building Binutils pass 1 with one CPU + core) should be enough. Some tests are flaky, so the test suite will + automatically re-run failed tests. If a test failed but then passed + when re-run, it should be considered as passed. Install the package: diff --git a/chapter08/shadow.xml b/chapter08/shadow.xml index 89678b3f4..315e3cc5e 100644 --- a/chapter08/shadow.xml +++ b/chapter08/shadow.xml @@ -41,6 +41,15 @@ Installation of Shadow + + + If you've installed Linux-PAM, you should follow + the BLFS shadow + page instead of this page to build (or, rebuild or upgrade) + shadow. + + + If you would like to enforce the use of strong passwords, refer to for installing diff --git a/chapter08/sysklogd.xml b/chapter08/sysklogd.xml index 131b7e7fc..26382f8c1 100644 --- a/chapter08/sysklogd.xml +++ b/chapter08/sysklogd.xml @@ -55,7 +55,7 @@ sed -i 's/union wait/int/' syslogd.c Install the package: -make BINDIR=/sbin install +make install diff --git a/chapter08/systemd.xml b/chapter08/systemd.xml index 2d325d5cd..0de3af24b 100644 --- a/chapter08/systemd.xml +++ b/chapter08/systemd.xml @@ -226,6 +226,18 @@ meson setup \ ninja + Some tests need a basic /etc/os-release file. + To test the results, issue: + +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. Some other tests may + fail because they depend on various kernel configuration options. + Install the package: ninja install diff --git a/chapter08/tcl.xml b/chapter08/tcl.xml index 8a7884804..fd920e2c9 100644 --- a/chapter08/tcl.xml +++ b/chapter08/tcl.xml @@ -3,8 +3,8 @@ "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [ %general-entities; - - + + ]> diff --git a/chapter08/util-linux.xml b/chapter08/util-linux.xml index 27268def9..cd50ad005 100644 --- a/chapter08/util-linux.xml +++ b/chapter08/util-linux.xml @@ -42,43 +42,46 @@ Installation of Util-linux + Prepare Util-linux for compilation: -./configure --bindir=/usr/bin \ - --libdir=/usr/lib \ - --runstatedir=/run \ - --sbindir=/usr/sbin \ - --disable-chfn-chsh \ - --disable-login \ - --disable-nologin \ - --disable-su \ - --disable-setpriv \ - --disable-runuser \ - --disable-pylibmount \ - --disable-static \ - --without-python \ - --without-systemd \ + ./configure --bindir=/usr/bin \ + --libdir=/usr/lib \ + --runstatedir=/run \ + --sbindir=/usr/sbin \ + --disable-chfn-chsh \ + --disable-login \ + --disable-nologin \ + --disable-su \ + --disable-setpriv \ + --disable-runuser \ + --disable-pylibmount \ + --disable-liblastlog2 \ + --disable-static \ + --without-python \ + --without-systemd \ --without-systemdsystemunitdir \ ADJTIME_PATH=/var/lib/hwclock/adjtime \ --docdir=/usr/share/doc/util-linux-&util-linux-version; -./configure --bindir=/usr/bin \ - --libdir=/usr/lib \ - --runstatedir=/run \ - --sbindir=/usr/sbin \ - --disable-chfn-chsh \ - --disable-login \ - --disable-nologin \ - --disable-su \ - --disable-setpriv \ - --disable-runuser \ - --disable-pylibmount \ - --disable-static \ - --without-python \ + ./configure --bindir=/usr/bin \ + --libdir=/usr/lib \ + --runstatedir=/run \ + --sbindir=/usr/sbin \ + --disable-chfn-chsh \ + --disable-login \ + --disable-nologin \ + --disable-su \ + --disable-setpriv \ + --disable-runuser \ + --disable-pylibmount \ + --disable-liblastlog2 \ + --disable-static \ + --without-python \ ADJTIME_PATH=/var/lib/hwclock/adjtime \ --docdir=/usr/share/doc/util-linux-&util-linux-version; @@ -90,7 +93,14 @@ make - If desired, run the test suite as a non-&root; user: + + If desired, create a dummy /etc/fstab file + to satisfy two tests and run the test suite as a non-&root; + user: Running the test suite as the root user can be harmful to @@ -103,17 +113,20 @@ bash tests/run.sh --srcdir=$PWD --builddir=$PWD -chown -R tester . +touch /etc/fstab +chown -R tester . su tester -c "make -k check" - The hardlink tests will fail if the host's kernel - does not have the option - enabled or does not have any options providing a SHA256 implementation - (for example, , or - if the CPU supports - Supplemental SSE3) enabled. In addition, - two sub-tests from misc: mbsencode and one sub-test from script: replay are - known to fail. + + The hardlink tests will fail if the host's kernel + does not have the option + enabled or does not have any options providing a SHA256 implementation + (for example, , or + if the CPU supports + Supplemental SSE3) enabled. In addition, the lsfd: inotify test will + fail if the kernel option is not + enabled. + Install the package: diff --git a/chapter08/vim.xml b/chapter08/vim.xml index 88322132e..2ed5cf238 100644 --- a/chapter08/vim.xml +++ b/chapter08/vim.xml @@ -76,7 +76,7 @@ The test suite outputs a lot of binary data to the screen. This can cause issues with the settings of the current terminal (especially while - we are overriding the TERM variable to satisify some + we are overriding the TERM variable to satisfy some assumptions of the test suite). The problem can be avoided by redirecting the output to a log file as shown above. A successful test will result in the words ALL diff --git a/chapter09/clock.xml b/chapter09/clock.xml index be60684fb..c5aaa9a7a 100644 --- a/chapter09/clock.xml +++ b/chapter09/clock.xml @@ -8,7 +8,7 @@ - Configuring the system clock + Configuring the System Clock clock diff --git a/chapter09/networkd.xml b/chapter09/networkd.xml index 6c2935de1..eb348ec1e 100644 --- a/chapter09/networkd.xml +++ b/chapter09/networkd.xml @@ -50,11 +50,11 @@ .netdev and .network files. For detailed descriptions and example contents of these configuration files, consult - the systemd-link(5), - systemd-netdev(5), - and systemd-network(5) manual - pages. + the + systemd.link(5), + systemd.netdev(5), and + systemd.network(5) + manual pages. Network Device Naming diff --git a/chapter10/kernel/kernel.version b/chapter10/kernel/kernel.version index 06a765991..166d79d6d 100644 --- a/chapter10/kernel/kernel.version +++ b/chapter10/kernel/kernel.version @@ -1 +1 @@ -6.7.1 +6.8.2 diff --git a/chapter10/kernel/systemd.toml b/chapter10/kernel/systemd.toml index dae4a4049..b930e01a6 100644 --- a/chapter10/kernel/systemd.toml +++ b/chapter10/kernel/systemd.toml @@ -14,7 +14,6 @@ UEVENT_HELPER=' ' DEVTMPFS='*' DEVTMPFS_MOUNT='*' DRM=' *M' -AUDIT=' ' NET='*' INET='*' IPV6='*' diff --git a/chapter10/kernel/systemd.xml b/chapter10/kernel/systemd.xml index 4914f772a..db3b6f9a9 100644 --- a/chapter10/kernel/systemd.xml +++ b/chapter10/kernel/systemd.xml @@ -5,7 +5,6 @@ DO NOT EDIT! --> General setup ---> [ ] Compile the kernel with warnings as errors [WERROR] - [ ] Auditing support [AUDIT] CPU/Task time and stats accounting ---> [*] Pressure stall information tracking [PSI] [ ] Require boot parameter to enable pressure stall information tracking diff --git a/lfs-latest-git.php b/lfs-latest-git.php index c2414789a..95abb7c28 100644 --- a/lfs-latest-git.php +++ b/lfs-latest-git.php @@ -15,7 +15,7 @@ $regex = array(); $regex[ 'intltool' ] = "/^.*Latest version is (\d[\d\.]+\d).*$/"; $regex[ 'less' ] = "/^.*current released version is less-(\d+).*$/"; $regex[ 'mpfr' ] = "/^mpfr-([\d\.]+)\.tar.*$/"; -$regex[ 'Python' ] = "/^.*Latest Python 3.*Python (3[\d\.]+\d).*$/"; +//$regex[ 'Python' ] = "/^.*Latest Python 3.*Python (3[\d\.]+\d).*$/"; //$regex[ 'sysvinit' ] = "/^.*sysvinit-([\d\.]+)dsf\.tar.*$/"; $regex[ 'tzdata' ] = "/^.*tzdata([\d]+[a-z]).*$/"; $regex[ 'xz' ] = "/^.*xz-([\d\.]*\d).*$/"; @@ -77,6 +77,7 @@ function http_get_file( $url ) } if ( preg_match( "/sourceforge/", $url ) || + preg_match( "/python/", $url ) || preg_match( "/psmisc/", $url ) ) { exec( "lynx -dump $url 2>/dev/null", $lines ); @@ -134,6 +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 == "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"; @@ -160,53 +162,6 @@ if ( $package == "zstd" ) $dirpath = github("facebook/zstd"); if ( preg_match( "/^ftp/", $dirpath ) ) { echo "ftp should not occur\n"; - /* - $dirpath = substr( $dirpath, 6 ); // Remove ftp:// - $dirpath = rtrim ( $dirpath, "/" ); // Trim any trailing slash - $position = strpos( $dirpath, "/" ); // Divide at first slash - $server = substr( $dirpath, 0, $position ); - $path = substr( $dirpath, $position ); - - $conn = ftp_connect( $server ); - ftp_login( $conn, "anonymous", "" ); - - // See if we need special handling - if ( isset( $exceptions[ $package ] ) ) - { - $specials = explode( ":", $exceptions[ $package ] ); - - foreach ( $specials as $i ) - { - list( $op, $regexp ) = explode( "=", $i ); - - switch ($op) - { - case "UPDIR": - // Remove last dir from $path - $position = strrpos( $path, "/" ); - $path = substr( $path, 0, $position ); - - // Get dir listing - $lines = ftp_rawlist ($conn, $path); - $max = find_max( $lines, $regexp, $regexp ); - break; - - case "DOWNDIR": - // Append found directory - $path .= "/$max"; - break; - - default: - echo "Error in specials array for $package\n"; - return -5; - break; - } - } - } - - $lines = ftp_rawlist ($conn, $path); - ftp_close( $conn ); -*/ } else // http(s) { @@ -303,7 +258,7 @@ if ( $package == "zstd" ) $dirpath = github("facebook/zstd"); return find_max( $lines, "/v\d/", "/^.*v([\d\.]+)$/" ); if ( $package == "psmisc" ) - return find_max( $lines, "/v\d/", "/^.*v([\d\.]+).tar.*$/" ); + return find_max( $lines, "/v\d/", "/^.*v([\d\.]+)$/" ); if ( $package == "grub" ) return find_max( $lines, "/grub/", "/^.*grub-([\d\.]+).tar.xz.*$/" ); @@ -311,9 +266,15 @@ 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 == "openssl" ) return find_max( $lines, "/openssl/", "/^.*openssl-([\d\.p]*\d.?).tar.*$/" ); + if ( $package == "Python" ) + return find_max( $lines, "/Python 3/", "/^.*Python (3[\d\.]*\d) .*$/" ); + if ( $package == "vim" ) return find_max( $lines, "/v\d\./", "/^.*v([\d\.]+).*$/" ); @@ -332,7 +293,6 @@ function get_current() // Fetech from git and get wget-list $current = array(); - #$lfssvn = "svn://svn.linuxfromscratch.org/LFS/trunk"; $lfsgit = "https://git.linuxfromscratch.org/lfs.git"; $tmpdir = exec( "mktemp -d /tmp/lfscheck.XXXXXX" ); @@ -364,7 +324,6 @@ function get_current() $file = rtrim( $file ); $pkg_pattern = "/(\D*).*/"; - //$pattern = "/\D*(\d.*\d)\D*/"; $pattern = "/\D*(\d.*\d)\D*/"; if ( preg_match( "/e2fsprogs/", $file ) ) diff --git a/packages.ent b/packages.ent index b085c0c5e..81a747019 100644 --- a/packages.ent +++ b/packages.ent @@ -104,15 +104,15 @@ - - + + - + - + @@ -144,22 +144,22 @@ - + - - + + - + - - + + - + @@ -245,10 +245,10 @@ - - + + - + @@ -317,10 +317,10 @@ - - + + - + @@ -341,10 +341,10 @@ - - + + - + @@ -365,10 +365,10 @@ - - + + - + @@ -381,7 +381,7 @@ - + @@ -397,10 +397,10 @@ - - + + - + @@ -430,13 +430,13 @@ - - + + - + - + - - - + + - + - - + + - + - - + + - + @@ -571,10 +576,10 @@ - + - + @@ -583,14 +588,14 @@ - + - - + + - + @@ -598,19 +603,19 @@ - + - + - + - - + + @@ -631,18 +636,18 @@ - - + + - + - - + + - + @@ -672,12 +677,12 @@ - - + + - + - + @@ -690,15 +695,15 @@ - + - + - - + + - - + + @@ -727,32 +732,32 @@ - - - + + + - + - + - + - + - + - + @@ -766,8 +771,8 @@ - - + + @@ -787,10 +792,10 @@ - - + + - + diff --git a/part3intro/generalinstructions.xml b/part3intro/generalinstructions.xml index 624771c2d..37e07f862 100644 --- a/part3intro/generalinstructions.xml +++ b/part3intro/generalinstructions.xml @@ -114,7 +114,7 @@ Do not use any method except the tar command to extract the source code. Notably, using the cp -R command to copy the - source code tree somewhere else can destroy links and + source code tree somewhere else can destroy timestamps in the source tree, and cause the build to fail.
diff --git a/patches.ent b/patches.ent index 17966e30c..bad4710b0 100644 --- a/patches.ent +++ b/patches.ent @@ -11,17 +11,17 @@ - - + + - + + + + + diff --git a/stylesheets/lfs-xsl/nochunks.xsl b/stylesheets/lfs-xsl/nochunks.xsl index 896449d7c..d5afb4473 100644 --- a/stylesheets/lfs-xsl/nochunks.xsl +++ b/stylesheets/lfs-xsl/nochunks.xsl @@ -123,7 +123,7 @@ a:active { color: #6b77b1 ! important;} padding: 0 1em; } -.book h1, .book .authorgroup, .book .copyright, .book .legalnotice .revhistory { +/*.book h1,*/ .book .authorgroup, .book .copyright, .book .legalnotice .revhistory { background: #f5f6f7; margin: 0px auto; padding: .1em 1em; @@ -188,6 +188,10 @@ h1 { .book h1 { margin: 0; padding: 0.4em; + background: #f5f6f7; + border-top: .2em solid #dbddec; + border-bottom: .2em solid #dbddec; + text-align: center; } h1.title sup { @@ -198,7 +202,7 @@ h2 { font-size: 144%; } -.preface h2, .part h1, .chapter h2, .appendix h2, .index h1, .sect1 h2 { +.preface h2, .part h1, .chapter h2, .appendix h2, .index h1, .sect1 h2, .part h2 { background: #f5f6f7; border-top: .2em solid #dbddec; border-bottom: .2em solid #dbddec;