From 655450075cab63368fa61997ab9acf9621f2a799 Mon Sep 17 00:00:00 2001 From: "Douglas R. Reno" Date: Wed, 22 Nov 2023 16:08:30 -0600 Subject: [PATCH 001/113] Setting Environment: minor tweak --- chapter04/settingenviron.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/chapter04/settingenviron.xml b/chapter04/settingenviron.xml index 2d8d6045f..61a655655 100644 --- a/chapter04/settingenviron.xml +++ b/chapter04/settingenviron.xml @@ -224,7 +224,7 @@ EOF Never pass a -j option without a number to make or set such an option in MAKEFLAGS. Doing so will allow make - to spawn infinite build jobs and cause system stability issue. + to spawn infinite build jobs and cause system stability problems. From 5e8bab73a16e31200f9540879c7b87d54341806e Mon Sep 17 00:00:00 2001 From: "Douglas R. Reno" Date: Wed, 22 Nov 2023 19:18:51 -0600 Subject: [PATCH 002/113] Chapter 6 Ncurses: minor text tweaks --- chapter06/ncurses.xml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/chapter06/ncurses.xml b/chapter06/ncurses.xml index 9e7764ecf..8d7c8b1fe 100644 --- a/chapter06/ncurses.xml +++ b/chapter06/ncurses.xml @@ -78,7 +78,7 @@ popd --with-manpage-format=normal - This prevents Ncurses installing compressed manual + This prevents Ncurses from installing compressed manual pages, which may happen if the host distribution itself has compressed manual pages. @@ -94,7 +94,7 @@ popd --without-normal - This prevents Ncurses building and installing static C + This prevents Ncurses from building and installing static C libraries. @@ -102,7 +102,7 @@ popd --without-debug - This prevents Ncurses building and installing debug + This prevents Ncurses from building and installing debug libraries. From 1fdbce2c4e24f96ed836db069778806eaa6d9849 Mon Sep 17 00:00:00 2001 From: Pierre Labastie Date: Thu, 23 Nov 2023 20:59:52 +0100 Subject: [PATCH 003/113] Generate utf-8 encoded html This removes several problems with wrong encodings... The sed for © is not needed anymore tidy.conf has to be changed to remove specification of latin1 as input and output encodings. --- Makefile | 1 - stylesheets/lfs-xsl/chunk-slave.xsl | 3 --- tidy.conf | 2 -- 3 files changed, 6 deletions(-) diff --git a/Makefile b/Makefile index 1c23a55f5..71b82d0c6 100644 --- a/Makefile +++ b/Makefile @@ -57,7 +57,6 @@ book: validate profile-html true; \ /bin/bash obfuscate.sh $$filename; \ sed -e "s@text/html@application/xhtml+xml@g" \ - -e "s/\xa9/\©/ " \ -i $$filename; \ done; diff --git a/stylesheets/lfs-xsl/chunk-slave.xsl b/stylesheets/lfs-xsl/chunk-slave.xsl index dab359d1d..1482ae351 100644 --- a/stylesheets/lfs-xsl/chunk-slave.xsl +++ b/stylesheets/lfs-xsl/chunk-slave.xsl @@ -10,9 +10,6 @@ - - - diff --git a/tidy.conf b/tidy.conf index 9db8e5f92..fc3672899 100644 --- a/tidy.conf +++ b/tidy.conf @@ -1,8 +1,6 @@ indent-spaces: 2 wrap: 78 tab-size: 8 -input-encoding: latin1 -output-encoding: latin1 write-back: yes markup: yes indent: yes From 8e8554895452ed8062bbf650ffd5dc47ca58cb66 Mon Sep 17 00:00:00 2001 From: Xi Ruoyao Date: Fri, 24 Nov 2023 11:53:54 +0800 Subject: [PATCH 004/113] whatsnew: Use the of the page for packages as package names This is more consistent, and it reduces the number of different translatable strings for translators. Most of the package names in whatsnew has already been aligned with <title>s, now make these two "from ..." packages so. --- chapter01/whatsnew.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/chapter01/whatsnew.xml b/chapter01/whatsnew.xml index 0586b3d02..73b3d77df 100644 --- a/chapter01/whatsnew.xml +++ b/chapter01/whatsnew.xml @@ -153,7 +153,7 @@ <para>Libcap-&libcap-version;</para> </listitem>--> <listitem> - <para>Libelf-&elfutils-version; (from elfutils)</para> + <para>Libelf from Elfutils-&elfutils-version;</para> </listitem> <!--<listitem> <para>Libffi-&libffi-version;</para> @@ -252,7 +252,7 @@ <para>Tzdata-&tzdata-version;</para> </listitem>--> <!--<listitem revision="sysv"> - <para>Udev-&systemd-version; (from systemd)</para> + <para>Udev from Systemd-&systemd-version;</para> </listitem>--> <listitem> <para>Util-linux-&util-linux-version;</para> From a19dadfd2f0fd641b5e75e1c47f67094f95de01f Mon Sep 17 00:00:00 2001 From: "Douglas R. Reno" <renodr@linuxfromscratch.org> Date: Fri, 24 Nov 2023 18:39:41 -0600 Subject: [PATCH 005/113] dbus: minor spacing adjustment --- chapter08/dbus.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/chapter08/dbus.xml b/chapter08/dbus.xml index 8ab4744ad..309e5b2e9 100644 --- a/chapter08/dbus.xml +++ b/chapter08/dbus.xml @@ -56,7 +56,7 @@ --disable-static \ --disable-doxygen-docs \ --disable-xml-docs \ - --docdir=/usr/share/doc/dbus-&dbus-version; \ + --docdir=/usr/share/doc/dbus-&dbus-version; \ --with-system-socket=/run/dbus/system_bus_socket</userinput></screen> <variablelist> From 1dbc435c8283eec3bea709d082d74b26259cc553 Mon Sep 17 00:00:00 2001 From: Xi Ruoyao <xry111@xry111.site> Date: Sun, 26 Nov 2023 21:02:59 +0800 Subject: [PATCH 006/113] iproute2: Remove the reference to BLFS Berkeley DB page Berkeley DB has been archived in BLFS. --- chapter08/iproute2.xml | 3 --- 1 file changed, 3 deletions(-) diff --git a/chapter08/iproute2.xml b/chapter08/iproute2.xml index bfc25331a..cd3e5a658 100644 --- a/chapter08/iproute2.xml +++ b/chapter08/iproute2.xml @@ -45,9 +45,6 @@ be built since it depends on Berkeley DB, which is not installed in LFS. However, a directory and a man page for <command>arpd</command> will still be installed. Prevent this by running the commands shown below. - (If the <command>arpd</command> program is needed, - instructions for compiling Berkeley DB can be found in the BLFS book at - <ulink url="&blfs-book;server/db.html"/>.) </para> <screen><userinput remap="pre">sed -i /ARPD/d Makefile From 2f82ad1e163c228162a30d402bde64b7fa53ca45 Mon Sep 17 00:00:00 2001 From: Xi Ruoyao <xry111@xry111.site> Date: Sun, 26 Nov 2023 21:09:30 +0800 Subject: [PATCH 007/113] dependencies: Replace the references to BLFS Berkeley DB page Berkeley DB has been archived in BLFS, refer to the Oracle product page for it instead. --- appendices/dependencies.xml | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/appendices/dependencies.xml b/appendices/dependencies.xml index 73194612c..55c6110ff 100644 --- a/appendices/dependencies.xml +++ b/appendices/dependencies.xml @@ -6,6 +6,7 @@ <!-- Convenient entity for "Systemd" or "Udev" --> <!ENTITY systemd-udev "<phrase revision='systemd'>Systemd</phrase> <phrase revision='sysv'>Udev</phrase>"> + <!ENTITY bdb "<ulink url='https://www.oracle.com/database/technologies/related/berkeleydb.html'>Berkeley DB</ulink>"> ]> <appendix id="appendixc" xreflabel="Appendix C"> @@ -1486,7 +1487,7 @@ <segtitle>&external;</segtitle> <seglistitem> <seg> - <ulink url="&blfs-book;server/db.html">Berkeley DB</ulink>, + &bdb;, <ulink url="&blfs-book;postlfs/iptables.html">iptables</ulink>, <ulink url="&github;/libbpf/libbpf">libbpf</ulink>, <ulink url="&blfs-book;basicnet/libmnl.html">libmnl</ulink>, and @@ -2486,7 +2487,7 @@ <segtitle>&external;</segtitle> <seglistitem> <seg> - <ulink url="&blfs-book;server/db.html">Berkeley DB</ulink> + &bdb; </seg> </seglistitem> </segmentedlist> @@ -2655,7 +2656,7 @@ <segtitle>&external;</segtitle> <seglistitem> <seg> - <ulink url="&blfs-book;server/db.html">Berkeley DB</ulink>, + &bdb;, <ulink url="&blfs-book;basicnet/libnsl.html">libnsl</ulink>, <ulink url="&blfs-book;server/sqlite.html">SQLite</ulink>, and <ulink url="&blfs-book;general/tk.html">Tk</ulink> From 15f7b58b4cf33fb1688918c13571ac2d783bc7cd Mon Sep 17 00:00:00 2001 From: Bruce Dubbs <bdubbs@linuxfromscratch.org> Date: Thu, 30 Nov 2023 13:00:51 -0600 Subject: [PATCH 008/113] Package updates. Update to vim-9.0.2136. Update to iana-etc-20231117. Update to bc-6.7.3. Update to wheel-0.42.0 (Python Module). Update to perl-5.38.2. Update to pkgconf-2.1.0. Update to readline patches 002 through 007. Update to openssl-3.2.0. Update to setuptools-69.0.2. Update to linux-6.6.3. Update to meson-1.3.0. --- chapter01/changelog.xml | 54 ++++++++++++++++++++++++++++++++++ chapter01/whatsnew.xml | 14 +++++++-- packages.ent | 64 ++++++++++++++++++++--------------------- patches.ent | 6 ++-- 4 files changed, 100 insertions(+), 38 deletions(-) diff --git a/chapter01/changelog.xml b/chapter01/changelog.xml index 8ad5949fb..9694954cd 100644 --- a/chapter01/changelog.xml +++ b/chapter01/changelog.xml @@ -39,6 +39,60 @@ <listitem revision="sysv"> or <listitem revision="systemd"> as appropriate for the entry or if needed the entire day's listitem. --> + <listitem> + <para>2023-11-30</para> + <itemizedlist> + <listitem> + <para>[bdubbs] - Update to vim-9.0.2136. Addresses + <ulink url='&lfs-ticket-root;4500'>#4500</ulink>.</para> + </listitem> + <listitem> + <para>[bdubbs] - Update to iana-etc-20231117. Addresses + <ulink url='&lfs-ticket-root;5006'>#5006</ulink>.</para> + </listitem> + <listitem> + <para>[bdubbs] - Update to bc-6.7.3. Fixes + <ulink url='&lfs-ticket-root;5385'>#5385</ulink>.</para> + </listitem> + <listitem> + <para>[bdubbs] - Update to wheel-0.42.0 (Python Module). Fixes + <ulink url='&lfs-ticket-root;5384'>#5384</ulink>.</para> + </listitem> + <listitem> + <para>[bdubbs] - Update to perl-5.38.2. Fixes + <ulink url='&lfs-ticket-root;5383'>#5383</ulink>.</para> + </listitem> + <listitem> + <para>[bdubbs] - Update to pkgconf-2.1.0. Fixes + <ulink url='&lfs-ticket-root;5382'>#5382</ulink>.</para> + </listitem> + <listitem> + <para>[bdubbs] - Update to readline patches 002 through 007. Fixes + <ulink url='&lfs-ticket-root;5381'>#5381</ulink>.</para> + </listitem> + <listitem> + <para>[bdubbs] - Update to openssl-3.2.0. Fixes + <ulink url='&lfs-ticket-root;5380'>#5380</ulink>.</para> + </listitem> + <listitem> + <para>[bdubbs] - Update to setuptools-69.0.2. Fixes + <ulink url='&lfs-ticket-root;5379'>#5379</ulink>.</para> + </listitem> + <listitem> + <para>[bdubbs] - Update to linux-6.6.3. Fixes + <ulink url='&lfs-ticket-root;5378'>#5378</ulink>.</para> + </listitem> + <listitem> + <para>[bdubbs] - Update to meson-1.3.0. Fixes + <ulink url='&lfs-ticket-root;5377'>#5377</ulink>.</para> + </listitem> + <listitem> + <para>[bdubbs] - Update to gettext-0.22.4. Fixes + <ulink url='&lfs-ticket-root;5376'>#5376</ulink>.</para> + </listitem> + </itemizedlist> + </listitem> + <listitem> <para>2023-11-13</para> <itemizedlist> diff --git a/chapter01/whatsnew.xml b/chapter01/whatsnew.xml index 73b3d77df..bd97a81f0 100644 --- a/chapter01/whatsnew.xml +++ b/chapter01/whatsnew.xml @@ -203,12 +203,12 @@ <!--<listitem> <para>Patch-&patch-version;</para> </listitem>--> + <listitem> + <para>Perl-&perl-version;</para> + </listitem> <listitem> <para>Pkgconf-&pkgconf-version;</para> </listitem> - <!--<listitem> - <para>Perl-&perl-version;</para> - </listitem>--> <listitem> <para>Procps-ng-&procps-ng-version;</para> </listitem> @@ -298,6 +298,10 @@ <para>&glibc-upstream-fixes-patch;</para> </listitem> + <listitem> + <para>&readline-fixes-patch;</para> + </listitem> + </itemizedlist> <itemizedlist> @@ -308,6 +312,10 @@ <para>glibc-2.38-memalign_fix-1.patch</para> </listitem> + <listitem> + <para>readline-8.2-upstream_fix-1.patch</para> + </listitem> + </itemizedlist> </sect1> diff --git a/packages.ent b/packages.ent index fbb39bc31..5093b8aa1 100644 --- a/packages.ent +++ b/packages.ent @@ -57,10 +57,10 @@ <!ENTITY bash-fin-du "52 MB"> <!ENTITY bash-fin-sbu "1.1 SBU"> -<!ENTITY bc-version "6.7.2"> +<!ENTITY bc-version "6.7.3"> <!ENTITY bc-size "456 KB"> <!ENTITY bc-url "https://github.com/gavinhoward/bc/releases/download/&bc-version;/bc-&bc-version;.tar.xz"> -<!ENTITY bc-md5 "27c217ea495f73758f548eb2c6e10244"> +<!ENTITY bc-md5 "a2e39a5be32330bc2166b0e501668178"> <!ENTITY bc-home "https://git.gavinhoward.com/gavin/bc"> <!ENTITY bc-fin-du "7.7 MB"> <!ENTITY bc-fin-sbu "less than 0.1 SBU"> @@ -245,10 +245,10 @@ <!ENTITY gdbm-fin-du "13 MB"> <!ENTITY gdbm-fin-sbu "less than 0.1 SBU"> -<!ENTITY gettext-version "0.22.3"> -<!ENTITY gettext-size "9,997 KB"> +<!ENTITY gettext-version "0.22.4"> +<!ENTITY gettext-size "10,016 KB"> <!ENTITY gettext-url "&gnu;gettext/gettext-&gettext-version;.tar.xz"> -<!ENTITY gettext-md5 "460b38ae5e520253dcd06165dd3e281f"> +<!ENTITY gettext-md5 "2d8507d003ef3ddd1c172707ffa97ed8"> <!ENTITY gettext-home "&gnu-software;gettext/"> <!ENTITY gettext-tmp-du "306 MB"> <!ENTITY gettext-tmp-sbu "1.1 SBU"> @@ -317,10 +317,10 @@ <!ENTITY gzip-fin-du "21 MB"> <!ENTITY gzip-fin-sbu "0.3 SBU"> -<!ENTITY iana-etc-version "20231107"> -<!ENTITY iana-etc-size "589 KB"> +<!ENTITY iana-etc-version "20231117"> +<!ENTITY iana-etc-size "588 KB"> <!ENTITY iana-etc-url "https://github.com/Mic92/iana-etc/releases/download/&iana-etc-version;/iana-etc-&iana-etc-version;.tar.gz"> -<!ENTITY iana-etc-md5 "01331998d26d5beb592c12b06b2eeb24"> +<!ENTITY iana-etc-md5 "f26b37a03a211ddd4e9c7189191e2772"> <!ENTITY iana-etc-home "https://www.iana.org/protocols"> <!ENTITY iana-etc-fin-du "4.8 MB"> <!ENTITY iana-etc-fin-sbu "less than 0.1 SBU"> @@ -431,12 +431,12 @@ <!ENTITY linux-major-version "6"> <!ENTITY linux-minor-version "6"> -<!ENTITY linux-patch-version "1"> +<!ENTITY linux-patch-version "3"> <!--<!ENTITY linux-version "&linux-major-version;.&linux-minor-version;">--> <!ENTITY linux-version "&linux-major-version;.&linux-minor-version;.&linux-patch-version;"> -<!ENTITY linux-size "136,730 KB"> +<!ENTITY linux-size "136,763 KB"> <!ENTITY linux-url "&kernel;linux/kernel/v&linux-major-version;.x/linux-&linux-version;.tar.xz"> -<!ENTITY linux-md5 "90291279ca684fb8cfa59b2ae75b6fe0"> +<!ENTITY linux-md5 "3a760f5ac7d37b62dda9a4ca89f5fd96"> <!ENTITY linux-home "https://www.kernel.org/"> <!-- measured for 6.5.3 / gcc-13.2.0 on x86_64 with -j4 : minimum is allnoconfig + some configs we recommend for the users, rounded down to @@ -494,10 +494,10 @@ <!ENTITY markupsafe-fin-du "548 KB"> <!ENTITY markupsafe-fin-sbu "less than 0.1 SBU"> -<!ENTITY meson-version "1.2.3"> -<!ENTITY meson-size "2,134 KB"> +<!ENTITY meson-version "1.3.0"> +<!ENTITY meson-size "2,171 KB"> <!ENTITY meson-url "&github;/mesonbuild/meson/releases/download/&meson-version;/meson-&meson-version;.tar.gz"> -<!ENTITY meson-md5 "69da4c63ef06c9d3bcc00ce89abb306f"> +<!ENTITY meson-md5 "35dc15e4f94ca5fd30dbe2d88a672254"> <!ENTITY meson-home "https://mesonbuild.com"> <!ENTITY meson-fin-du "42 MB"> <!ENTITY meson-fin-sbu "less than 0.1 SBU"> @@ -536,10 +536,10 @@ <!ENTITY ninja-fin-du "75 MB"> <!ENTITY ninja-fin-sbu "0.3 SBU"> -<!ENTITY openssl-version "3.1.4"> -<!ENTITY openssl-size "15,205 KB"> +<!ENTITY openssl-version "3.2.0"> +<!ENTITY openssl-size "17,284 KB"> <!ENTITY openssl-url "https://www.openssl.org/source/openssl-&openssl-version;.tar.gz"> -<!ENTITY openssl-md5 "653ad58812c751b887e8ec37e02bba70"> +<!ENTITY openssl-md5 "7903549a14abebc5c323ce4e85f2cbb2"> <!ENTITY openssl-home "https://www.openssl.org/"> <!ENTITY openssl-fin-du "587 MB"> <!ENTITY openssl-fin-sbu "3.0 SBU"> @@ -556,22 +556,22 @@ <!ENTITY perl-version-major "5"> <!ENTITY perl-version-minor "38"> -<!ENTITY perl-version-patch "0"> +<!ENTITY perl-version-patch "2"> <!ENTITY perl-version-min "&perl-version-major;.&perl-version-minor;"> <!ENTITY perl-version "&perl-version-major;.&perl-version-minor;.&perl-version-patch;"> -<!ENTITY perl-size "13,248 KB"> +<!ENTITY perl-size "13,359 KB"> <!ENTITY perl-url "https://www.cpan.org/src/5.0/perl-&perl-version;.tar.xz"> -<!ENTITY perl-md5 "e1c8aaec897dd386c741f97eef9f2e87"> +<!ENTITY perl-md5 "d3957d75042918a23ec0abac4a2b7e0a"> <!ENTITY perl-home "https://www.perl.org/"> <!ENTITY perl-tmp-du "280 MB"> <!ENTITY perl-tmp-sbu "0.6 SBU"> <!ENTITY perl-fin-du "239 MB"> <!ENTITY perl-fin-sbu "7.1 SBU"> -<!ENTITY pkgconf-version "2.0.3"> -<!ENTITY pkgconf-size "304 KB"> +<!ENTITY pkgconf-version "2.1.0"> +<!ENTITY pkgconf-size "305 KB"> <!ENTITY pkgconf-url "https://distfiles.ariadne.space/pkgconf/pkgconf-&pkgconf-version;.tar.xz"> -<!ENTITY pkgconf-md5 "b82ca48ed3097adfa007ee71489b6719"> +<!ENTITY pkgconf-md5 "0f2eadbb9dea5aed95147272ae1592cc"> <!ENTITY pkgconf-home "http://pkgconf.org/"> <!ENTITY pkgconf-fin-du "4.6 MB"> <!ENTITY pkgconf-fin-sbu "less than 0.1 SBU"> @@ -628,10 +628,10 @@ <!ENTITY sed-fin-du "30 MB"> <!ENTITY sed-fin-sbu "0.3 SBU"> -<!ENTITY setuptools-version "68.2.2"> -<!ENTITY setuptools-size "2,152 KB"> +<!ENTITY setuptools-version "69.0.2"> +<!ENTITY setuptools-size "2,168 KB"> <!ENTITY setuptools-url "&pypi-src;/s/setuptools/setuptools-&setuptools-version;.tar.gz"> -<!ENTITY setuptools-md5 "d967ca2ba7f46db887daee2d5c9bd6a2"> +<!ENTITY setuptools-md5 "32bcc14eb830a13fbf33e053286f1081"> <!ENTITY setuptools-home "&pypi-home;/setuptools/"> <!ENTITY setuptools-fin-du "30 MB"> <!ENTITY setuptools-fin-sbu "0.1 SBU"> @@ -735,21 +735,21 @@ <!ENTITY util-linux-fin-du "310 MB"> <!ENTITY util-linux-fin-sbu "0.5 SBU"> -<!ENTITY vim-version "9.0.2103"> +<!ENTITY vim-version "9.0.2136"> <!-- <!ENTITY vim-majmin "90"> --> <!ENTITY vim-docdir "vim/vim90"> -<!ENTITY vim-size "11,193 KB"> +<!ENTITY vim-size "16,989 KB"> <!--<!ENTITY vim-url "https://github.com/vim/vim/archive/v&vim-version;/vim-&vim-version;.tar.gz">--> -<!ENTITY vim-url "&anduin-sources;/vim-&vim-version;.tar.xz"> -<!ENTITY vim-md5 "1af1d018026234d085a82348703461ce"> +<!ENTITY vim-url "&anduin-sources;/vim-&vim-version;.tar.gz"> +<!ENTITY vim-md5 "8dcf113cb690bcdd13d75a4e7c2e3a62"> <!ENTITY vim-home "https://www.vim.org"> <!ENTITY vim-fin-du "229 MB"> <!ENTITY vim-fin-sbu "2.3 SBU"> -<!ENTITY wheel-version "0.41.3"> +<!ENTITY wheel-version "0.42.0"> <!ENTITY wheel-size "97 KB"> <!ENTITY wheel-url "&pypi-src;/w/wheel/wheel-&wheel-version;.tar.gz"> -<!ENTITY wheel-md5 "c66db2f3a50d5659994fa974138d4002"> +<!ENTITY wheel-md5 "802ad6e5f9336fcb1c76b7593f0cd22d"> <!ENTITY wheel-home "&pypi-home;/wheel/"> <!ENTITY wheel-fin-du "1.5 MB"> <!ENTITY wheel-fin-sbu "less than 0.1 SBU"> diff --git a/patches.ent b/patches.ent index 4107b2dc2..13f291e0f 100644 --- a/patches.ent +++ b/patches.ent @@ -26,9 +26,9 @@ <!ENTITY kbd-backspace-patch-md5 "f75cca16a38da6caa7d52151f7136895"> <!ENTITY kbd-backspace-patch-size "12 KB"> -<!ENTITY readline-fixes-patch "readline-&readline-version;-upstream_fix-1.patch"> -<!ENTITY readline-fixes-patch-md5 "dd1764b84cfca6b677f44978218a75da"> -<!ENTITY readline-fixes-patch-size "1.3 KB"> +<!ENTITY readline-fixes-patch "readline-&readline-version;-upstream_fixes-2.patch"> +<!ENTITY readline-fixes-patch-md5 "d2477ebe908cc99763d90dde7fd9549a"> +<!ENTITY readline-fixes-patch-size "5.7 KB"> <!ENTITY sysvinit-consolidated-patch "sysvinit-&sysvinit-version;-consolidated-1.patch"> <!ENTITY sysvinit-consolidated-patch-md5 "17ffccbb8e18c39e8cedc32046f3a475"> From 4ca831a42f44353e1aa573eff9ff5eab75824efa Mon Sep 17 00:00:00 2001 From: Xi Ruoyao <xry111@xry111.site> Date: Fri, 1 Dec 2023 16:03:59 +0800 Subject: [PATCH 009/113] Use GitHub for vim download I don't see a reason to upload vim tarball onto anduin. And now anduin does not have vim-9.0.2136.tar.gz. I tried downloading vim-8.0.0586 (shipped by LFS 8.2) from GitHub and it worked fine. So it seems the GitHub storage is stable enough. --- packages.ent | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/packages.ent b/packages.ent index 5093b8aa1..50b140bf2 100644 --- a/packages.ent +++ b/packages.ent @@ -739,8 +739,8 @@ <!-- <!ENTITY vim-majmin "90"> --> <!ENTITY vim-docdir "vim/vim90"> <!ENTITY vim-size "16,989 KB"> -<!--<!ENTITY vim-url "https://github.com/vim/vim/archive/v&vim-version;/vim-&vim-version;.tar.gz">--> -<!ENTITY vim-url "&anduin-sources;/vim-&vim-version;.tar.gz"> +<!ENTITY vim-url "https://github.com/vim/vim/archive/v&vim-version;/vim-&vim-version;.tar.gz"> +<!--<!ENTITY vim-url "&anduin-sources;/vim-&vim-version;.tar.gz">--> <!ENTITY vim-md5 "8dcf113cb690bcdd13d75a4e7c2e3a62"> <!ENTITY vim-home "https://www.vim.org"> <!ENTITY vim-fin-du "229 MB"> From 823fbde93f0325443d648ef93ba5ceeea8be33ff Mon Sep 17 00:00:00 2001 From: Xi Ruoyao <xry111@xry111.site> Date: Fri, 1 Dec 2023 14:45:50 +0800 Subject: [PATCH 010/113] udev: Adjust the paths to search .link files and install 99-default.link Tested in QEMU and the virtio NIC is now named "enp0s3". Fixes #5386. --- chapter01/changelog.xml | 11 +++++++++++ chapter08/udev.xml | 20 +++++++++++++++++--- 2 files changed, 28 insertions(+), 3 deletions(-) diff --git a/chapter01/changelog.xml b/chapter01/changelog.xml index 9694954cd..c049903fc 100644 --- a/chapter01/changelog.xml +++ b/chapter01/changelog.xml @@ -39,6 +39,17 @@ <listitem revision="sysv"> or <listitem revision="systemd"> as appropriate for the entry or if needed the entire day's listitem. --> + <listitem revision='sysv'> + <para>2023-12-01</para> + <itemizedlist> + <listitem> + <para>[xry111] - Restore NIC naming based on physical system + characteristics. Fixes + <ulink url='&lfs-ticket-root;5386'>#5386</ulink>.</para> + </listitem> + </itemizedlist> + </listitem> + <listitem> <para>2023-11-30</para> <itemizedlist> diff --git a/chapter08/udev.xml b/chapter08/udev.xml index 46ab88cff..dd686f489 100644 --- a/chapter08/udev.xml +++ b/chapter08/udev.xml @@ -55,6 +55,11 @@ <screen><userinput remap="pre">sed '/systemd-sysctl/s/^/#/' -i rules.d/99-systemd.rules.in</userinput></screen> + <para>Adjust the hardcoded paths to network configuration files for the + standalone udev installation:</para> + + <screen><userinput remap="pre">sed '/NETWORK_DIRS/s/systemd/udev/' -i src/basic/path-lookup.h</userinput></screen> + <para>Prepare Udev for compilation:</para> <screen><userinput remap="configure">mkdir -p build @@ -128,7 +133,7 @@ meson setup \ <para>Install the package:</para> - <screen><userinput remap="install">install -vm755 -d {/usr/lib,/etc}/udev/{hwdb,rules}.d + <screen><userinput remap="install">install -vm755 -d {/usr/lib,/etc}/udev/{hwdb.d,rules.d,network} install -vm755 -d /usr/{lib,share}/pkgconfig install -vm755 udevadm /usr/bin/ install -vm755 systemd-hwdb /usr/bin/udev-hwdb @@ -143,7 +148,8 @@ install -vm644 $(find ../rules.d/*.rules \ -not -name '*power-switch*') /usr/lib/udev/rules.d/ install -vm644 hwdb.d/* ../hwdb.d/{*.hwdb,README} /usr/lib/udev/hwdb.d/ install -vm755 $(find src/udev \ - -type f -not -name '*.*') /usr/lib/udev</userinput></screen> + -type f -not -name '*.*') /usr/lib/udev +install -vm644 ../network/99-default.link /usr/lib/udev/network</userinput></screen> <para>Install some custom rules and support files useful in an LFS environment:</para> @@ -158,13 +164,21 @@ make -f &udev-lfs-version;/Makefile.lfs install</userinput></screen> <screen><userinput remap="install">tar -xf ../../systemd-man-pages-&systemd-man-version;.tar.xz \ --no-same-owner --strip-components=1 \ -C /usr/share/man --wildcards '*/udev*' '*/libudev*' \ + '*/systemd.link.5' \ '*/systemd-'{hwdb,udevd.service}.8 + +sed 's|systemd/network|udev/network|' \ + /usr/share/man/man5/systemd.link.5 \ + > /usr/share/man/man5/udev.link.5 + sed 's/systemd\(\\\?-\)/udev\1/' /usr/share/man/man8/systemd-hwdb.8 \ > /usr/share/man/man8/udev-hwdb.8 + sed 's|lib.*udevd|sbin/udevd|' \ /usr/share/man/man8/systemd-udevd.service.8 \ > /usr/share/man/man8/udevd.8 -rm /usr/share/man/man8/systemd-*.8</userinput></screen> + +rm /usr/share/man/man*/systemd*</userinput></screen> </sect2> From a851a78ded9d5f530fe9a2374797a0018110f666 Mon Sep 17 00:00:00 2001 From: Bruce Dubbs <bdubbs@linuxfromscratch.org> Date: Sat, 2 Dec 2023 14:41:09 -0600 Subject: [PATCH 011/113] Formatting --- chapter06/gcc-pass2.xml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/chapter06/gcc-pass2.xml b/chapter06/gcc-pass2.xml index b342ae484..c9281052a 100644 --- a/chapter06/gcc-pass2.xml +++ b/chapter06/gcc-pass2.xml @@ -62,7 +62,8 @@ mv -v mpc-&mpc-version; mpc</userinput></screen> <screen><userinput remap="pre">case $(uname -m) in x86_64) - sed -e '/m64=/s/lib64/lib/' -i.orig gcc/config/i386/t-linux64 +sed -e '/m64=/s/lib64/lib/' \ + -i.orig gcc/config/i386/t-linux64 ;; esac</userinput></screen> From 642f779f64fb521295a1aa4133c28ecbde1b3bb0 Mon Sep 17 00:00:00 2001 From: Xi Ruoyao <xry111@xry111.site> Date: Sun, 3 Dec 2023 12:42:28 +0800 Subject: [PATCH 012/113] gcc-pass2: Fix the indent of the sed command in case --- 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 c9281052a..ae88a41f0 100644 --- a/chapter06/gcc-pass2.xml +++ b/chapter06/gcc-pass2.xml @@ -62,8 +62,8 @@ mv -v mpc-&mpc-version; mpc</userinput></screen> <screen><userinput remap="pre">case $(uname -m) in x86_64) -sed -e '/m64=/s/lib64/lib/' \ - -i.orig gcc/config/i386/t-linux64 + sed -e '/m64=/s/lib64/lib/' \ + -i.orig gcc/config/i386/t-linux64 ;; esac</userinput></screen> From 7fb4eb866878d439dc948af6eb2e94eb2d18edf9 Mon Sep 17 00:00:00 2001 From: Xi Ruoyao <xry111@xry111.site> Date: Mon, 4 Dec 2023 21:47:24 +0800 Subject: [PATCH 013/113] dependencies: Remove outdated sentence This sentence has been untrue since LFS 10.0. --- appendices/dependencies.xml | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/appendices/dependencies.xml b/appendices/dependencies.xml index 55c6110ff..ed44374ea 100644 --- a/appendices/dependencies.xml +++ b/appendices/dependencies.xml @@ -30,10 +30,7 @@ in addition to those on the first list, need to be available in order to run the test suites. The fourth list of dependencies are packages that require this package to be built and installed in its final location before they are - built and installed. In most cases, this is because these packages will hard - code paths to binaries within their scripts. If not built in a certain order, - this could result in paths of /tools/bin/[binary] being placed inside scripts - installed to the final system. This is obviously not desirable.</para> + built and installed.</para> <para>The last list of dependencies are optional packages that are not addressed in LFS, but could be useful to the user. These packages may have From dc8572f2413a4d25444bb1237ea2a01dfba60429 Mon Sep 17 00:00:00 2001 From: Thomas Trepl <thomas@linuxfromscratch.org> Date: Mon, 4 Dec 2023 19:15:01 +0100 Subject: [PATCH 014/113] Fix cmds installing python docs (permissions) --- chapter01/changelog.xml | 11 +++++++++++ chapter08/python.xml | 14 +++++++------- 2 files changed, 18 insertions(+), 7 deletions(-) diff --git a/chapter01/changelog.xml b/chapter01/changelog.xml index c049903fc..11df22160 100644 --- a/chapter01/changelog.xml +++ b/chapter01/changelog.xml @@ -39,6 +39,17 @@ <listitem revision="sysv"> or <listitem revision="systemd"> as appropriate for the entry or if needed the entire day's listitem. --> + + <listitem> + <para>2023-12-04</para> + <itemizedlist> + <listitem> + <para>[thomas] - Modify commands for install Python docs to avoid + too restrictive permissions on the files and dirs.</para> + </listitem> + </itemizedlist> + </listitem> + <listitem revision='sysv'> <para>2023-12-01</para> <itemizedlist> diff --git a/chapter08/python.xml b/chapter08/python.xml index f7bc19d47..62279880d 100644 --- a/chapter08/python.xml +++ b/chapter08/python.xml @@ -155,21 +155,21 @@ EOF <screen><userinput remap="install">install -v -dm755 /usr/share/doc/python-&python-version;/html -tar --strip-components=1 \ - --no-same-owner \ - --no-same-permissions \ - -C /usr/share/doc/python-&python-version;/html \ - -xvf ../python-&python-version;-docs-html.tar.bz2</userinput></screen> +tar --no-same-owner \ + -xvf ../python-&python-version;-docs-html.tar.bz2 +cp -R --no-preserve=mode python-&python-version;-docs-html/* \ + /usr/share/doc/python-&python-version;/html</userinput></screen> <variablelist> <title>The meaning of the documentation install commands: - and + (tar) and (cp) Ensure the installed files have the correct ownership and permissions. Without these options, tar - will install the package files with the upstream creator's values. + will install the package files with the upstream creator's values + and files would have restrictive permissions. From 622f56d917ddd3a695254a3929c84dd4d6e79378 Mon Sep 17 00:00:00 2001 From: Xi Ruoyao Date: Tue, 5 Dec 2023 12:10:44 +0800 Subject: [PATCH 015/113] util-linux: Add asciidoctor and po4a as dependencies Asciidoctor is needed for regenerating man pages, and po4a is needed for generating translated man pages in addition to asciidoctor. --- appendices/dependencies.xml | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/appendices/dependencies.xml b/appendices/dependencies.xml index ed44374ea..30f2b05a6 100644 --- a/appendices/dependencies.xml +++ b/appendices/dependencies.xml @@ -3192,6 +3192,7 @@ &external; + Asciidoctor, Libcap-NG, libeconf, @@ -3200,7 +3201,8 @@ Linux-PAM, smartmontools, and + url="&blfs-book;postlfs/smartmontools.html">smartmontools, + po4a, and slang From 34774f4986378ae0483a65233f453f5c2227ae47 Mon Sep 17 00:00:00 2001 From: Xi Ruoyao Date: Tue, 5 Dec 2023 14:34:30 +0800 Subject: [PATCH 016/113] kernel-config: Regenerate with Linux 6.6.3 Only a trivial change (renaming CONFIG_FB). --- chapter10/kernel/kernel.version | 2 +- chapter10/kernel/systemd.xml | 2 +- chapter10/kernel/sysv.xml | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/chapter10/kernel/kernel.version b/chapter10/kernel/kernel.version index 4b20d9700..e411592c2 100644 --- a/chapter10/kernel/kernel.version +++ b/chapter10/kernel/kernel.version @@ -1 +1 @@ -6.4.8 +6.6.3 diff --git a/chapter10/kernel/systemd.xml b/chapter10/kernel/systemd.xml index 6705fdd35..bfe3df275 100644 --- a/chapter10/kernel/systemd.xml +++ b/chapter10/kernel/systemd.xml @@ -42,7 +42,7 @@ [*] Export DMI identification via sysfs to userspace [DMIID] Graphics support ---> Frame buffer Devices ---> - <*> Support for frame buffer devices ---> [FB] + <*> Support for frame buffer device drivers ---> [FB] Console display driver support ---> [*] Framebuffer Console support [FRAMEBUFFER_CONSOLE] diff --git a/chapter10/kernel/sysv.xml b/chapter10/kernel/sysv.xml index 7e62725e6..405dfad0e 100644 --- a/chapter10/kernel/sysv.xml +++ b/chapter10/kernel/sysv.xml @@ -30,6 +30,6 @@ ... [DEVTMPFS_MOUNT] Graphics support ---> Frame buffer Devices ---> - <*> Support for frame buffer devices ---> [FB] + <*> Support for frame buffer device drivers ---> [FB] Console display driver support ---> [*] Framebuffer Console support [FRAMEBUFFER_CONSOLE] From 981b9fa6a1a47b5ea93d899dc467be3649b0c253 Mon Sep 17 00:00:00 2001 From: Xi Ruoyao Date: Tue, 5 Dec 2023 14:55:45 +0800 Subject: [PATCH 017/113] kernel-config: Drop FB In Linux 6.6 DRM_FBDEV_EMULATION no longer depends on FB, so we no longer need to select FB (tested in a QEMU VM). But if DRM is selected, we must select both DRM_FBDEV_EMULATION and FRAMEBUFFER_CONSOLE or we'll see only blank screen. And now FRAMEBUFFER_CONSOLE is not selected by default, be warned!! --- chapter10/kernel.xml | 20 +++++++++++--------- chapter10/kernel/systemd.toml | 12 +++++++++--- chapter10/kernel/systemd.xml | 10 +++++++--- chapter10/kernel/sysv.toml | 11 +++++++++-- chapter10/kernel/sysv.xml | 10 +++++++--- 5 files changed, 43 insertions(+), 20 deletions(-) diff --git a/chapter10/kernel.xml b/chapter10/kernel.xml index 5c7a9d703..5bbfff11a 100644 --- a/chapter10/kernel.xml +++ b/chapter10/kernel.xml @@ -273,16 +273,18 @@ - Framebuffer Console support + + + Enable legacy fbdev support for your modesetting driver + and + Framebuffer Console support + - This is needed to display the Linux console on a frame - buffer device. To allow the kernel to print debug messages at an - early boot stage, it shouldn't be built as a kernel module - unless an initramfs will be used. And, if - (Direct Rendering Manager) is enabled, - it's likely (Enable - legacy fbdev support for your modesetting driver) should be - enabled as well. + These are needed to display the Linux console on a + GPU driven by a DRI (Direct Rendering Infrastructure) driver. + If (Direct Rendering Manager) is + enabled, you should enable these two options as well or you'll see + a blank screen once the DRI driver is loaded. diff --git a/chapter10/kernel/systemd.toml b/chapter10/kernel/systemd.toml index 26ac61c46..dae4a4049 100644 --- a/chapter10/kernel/systemd.toml +++ b/chapter10/kernel/systemd.toml @@ -13,9 +13,7 @@ STACKPROTECTOR_STRONG='*' UEVENT_HELPER=' ' DEVTMPFS='*' DEVTMPFS_MOUNT='*' -FB='*' -FRAMEBUFFER_CONSOLE='*' - +DRM=' *M' AUDIT=' ' NET='*' INET='*' @@ -28,3 +26,11 @@ TMPFS='*' TMPFS_POSIX_ACL='*' revision='systemd' + +[DRM_FBDEV_EMULATION] +value = ' *' +comment = 'If [DRM] is selected as * or M, this must be selected' + +[FRAMEBUFFER_CONSOLE] +value = ' *' +comment = 'If [DRM] is selected as * or M, this must be selected' diff --git a/chapter10/kernel/systemd.xml b/chapter10/kernel/systemd.xml index bfe3df275..c41b26673 100644 --- a/chapter10/kernel/systemd.xml +++ b/chapter10/kernel/systemd.xml @@ -41,10 +41,14 @@ Firmware Drivers ---> [*] Export DMI identification via sysfs to userspace [DMIID] Graphics support ---> - Frame buffer Devices ---> - <*> Support for frame buffer device drivers ---> [FB] + < /*/M> Direct Rendering Manager (XFree86 4.1.0 and higher DRI support) ---> + ... [DRM] + # If [DRM] is selected as * or M, this must be selected: + [ /*] Enable legacy fbdev support for your modesetting driver + ... [DRM_FBDEV_EMULATION] Console display driver support ---> - [*] Framebuffer Console support [FRAMEBUFFER_CONSOLE] + # If [DRM] is selected as * or M, this must be selected: + [ /*] Framebuffer Console support [FRAMEBUFFER_CONSOLE] File systems ---> [*] Inotify support for userspace [INOTIFY_USER] diff --git a/chapter10/kernel/sysv.toml b/chapter10/kernel/sysv.toml index 5c8b2df6e..3f8d2e93c 100644 --- a/chapter10/kernel/sysv.toml +++ b/chapter10/kernel/sysv.toml @@ -12,7 +12,14 @@ STACKPROTECTOR_STRONG='*' UEVENT_HELPER=' ' DEVTMPFS='*' DEVTMPFS_MOUNT='*' -FB='*' -FRAMEBUFFER_CONSOLE='*' +DRM=' *M' revision='sysv' + +[DRM_FBDEV_EMULATION] +value = ' *' +comment = 'If [DRM] is selected as * or M, this must be selected' + +[FRAMEBUFFER_CONSOLE] +value = ' *' +comment = 'If [DRM] is selected as * or M, this must be selected' diff --git a/chapter10/kernel/sysv.xml b/chapter10/kernel/sysv.xml index 405dfad0e..c61208c67 100644 --- a/chapter10/kernel/sysv.xml +++ b/chapter10/kernel/sysv.xml @@ -29,7 +29,11 @@ [*] Automount devtmpfs at /dev, after the kernel mounted the rootfs ... [DEVTMPFS_MOUNT] Graphics support ---> - Frame buffer Devices ---> - <*> Support for frame buffer device drivers ---> [FB] + < /*/M> Direct Rendering Manager (XFree86 4.1.0 and higher DRI support) ---> + ... [DRM] + # If [DRM] is selected as * or M, this must be selected: + [ /*] Enable legacy fbdev support for your modesetting driver + ... [DRM_FBDEV_EMULATION] Console display driver support ---> - [*] Framebuffer Console support [FRAMEBUFFER_CONSOLE] + # If [DRM] is selected as * or M, this must be selected: + [ /*] Framebuffer Console support [FRAMEBUFFER_CONSOLE] From 31a9142d108a0fd32660068adc1c223a7e60e8b7 Mon Sep 17 00:00:00 2001 From: Xi Ruoyao Date: Wed, 6 Dec 2023 01:32:48 +0800 Subject: [PATCH 018/113] kernel-config: Sync fixes from BLFS --- chapter10/kernel/Makefile | 5 ++++- chapter10/kernel/highmem.xml | 2 +- chapter10/kernel/kernel-config.py | 6 +++++- 3 files changed, 10 insertions(+), 3 deletions(-) diff --git a/chapter10/kernel/Makefile b/chapter10/kernel/Makefile index e04d2d6b1..03de71ed9 100644 --- a/chapter10/kernel/Makefile +++ b/chapter10/kernel/Makefile @@ -19,5 +19,8 @@ s-kernel-version: fi touch s-kernel-version -%.xml: %.toml kernel-config.py kernel_version.py kernel.version +%.xml.tmp: %.toml kernel-config.py kernel_version.py kernel.version ./kernel-config.py $(KERNEL_TREE) $< > $@ + +%.xml: %.xml.tmp + mv $< $@ diff --git a/chapter10/kernel/highmem.xml b/chapter10/kernel/highmem.xml index 4f0938142..efedef46c 100644 --- a/chapter10/kernel/highmem.xml +++ b/chapter10/kernel/highmem.xml @@ -5,4 +5,4 @@ DO NOT EDIT! --> Processor type and features ---> High Memory Support ---> - (X) 64GB [HIGHMEM64G] + (X) 64GB [HIGHMEM64G] diff --git a/chapter10/kernel/kernel-config.py b/chapter10/kernel/kernel-config.py index a36113175..03e6ebb22 100755 --- a/chapter10/kernel/kernel-config.py +++ b/chapter10/kernel/kernel-config.py @@ -185,6 +185,10 @@ def load_kconfig(file): if_stack += [top] elif line.startswith('endif'): if_stack = if_stack[:-1] + + if config_buf: + r += [parse_config(config_buf)] + return r known_config = {} @@ -259,7 +263,7 @@ for i0, val, i1, title, arrow, key, menu, comment in r: if len(title) > rem: title = title[:rem - 3] + '...' - b = title.lstrip('YyMmNnHh') + b = title.lstrip('YyMmNnHh.' + "".join(map(str, range(10)))) a = title[:len(title) - len(b)] b0 = "" + escape(b[0]) + "" line += escape(a) + b0 + escape(b[1:]) + escape(arrow) From 7cce808a46c5a1df0de2c52827b89b63834436fe Mon Sep 17 00:00:00 2001 From: Xi Ruoyao Date: Wed, 6 Dec 2023 17:26:10 +0800 Subject: [PATCH 019/113] kernel-config: The hot key for choices is just the first character Stupid inconsistency... --- chapter10/kernel/highmem.xml | 2 +- chapter10/kernel/kernel-config.py | 5 ++++- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/chapter10/kernel/highmem.xml b/chapter10/kernel/highmem.xml index efedef46c..4f0938142 100644 --- a/chapter10/kernel/highmem.xml +++ b/chapter10/kernel/highmem.xml @@ -5,4 +5,4 @@ DO NOT EDIT! --> Processor type and features ---> High Memory Support ---> - (X) 64GB [HIGHMEM64G] + (X) 64GB [HIGHMEM64G] diff --git a/chapter10/kernel/kernel-config.py b/chapter10/kernel/kernel-config.py index 03e6ebb22..eac2b6c4d 100755 --- a/chapter10/kernel/kernel-config.py +++ b/chapter10/kernel/kernel-config.py @@ -251,6 +251,7 @@ sep = known_config.get('separate_toplevel_menu') for i0, val, i1, title, arrow, key, menu, comment in r: rem = max_line + is_choice = (val == '(X)') if val: val += (max_val_len[menu] - len(val)) * ' ' @@ -263,7 +264,9 @@ for i0, val, i1, title, arrow, key, menu, comment in r: if len(title) > rem: title = title[:rem - 3] + '...' - b = title.lstrip('YyMmNnHh.' + "".join(map(str, range(10)))) + b = title + if not is_choice: + b = b.lstrip('YyMmNnHh.' + "".join(map(str, range(10)))) a = title[:len(title) - len(b)] b0 = "" + escape(b[0]) + "" line += escape(a) + b0 + escape(b[1:]) + escape(arrow) From 03682b250cfd625619e149be9476fa6b1d5cbbc7 Mon Sep 17 00:00:00 2001 From: Bruce Dubbs Date: Thu, 14 Dec 2023 14:16:13 -0600 Subject: [PATCH 020/113] Reformat util-linux configure parameters. --- chapter01/changelog.xml | 9 +++++++++ chapter07/util-linux.xml | 8 ++++---- chapter08/util-linux.xml | 10 +++++----- 3 files changed, 18 insertions(+), 9 deletions(-) diff --git a/chapter01/changelog.xml b/chapter01/changelog.xml index 11df22160..2cf1b64e1 100644 --- a/chapter01/changelog.xml +++ b/chapter01/changelog.xml @@ -40,6 +40,15 @@ appropriate for the entry or if needed the entire day's listitem. --> + + 2023-12-14 + + + [bdubbs] - Reformat util-linux configure parameters. Fixes + #5395. + + + 2023-12-04 diff --git a/chapter07/util-linux.xml b/chapter07/util-linux.xml index 2f88e7d5f..b5aca7e7b 100644 --- a/chapter07/util-linux.xml +++ b/chapter07/util-linux.xml @@ -51,10 +51,8 @@ Prepare Util-linux for compilation: -./configure ADJTIME_PATH=/var/lib/hwclock/adjtime \ - --libdir=/usr/lib \ +./configure --libdir=/usr/lib \ --runstatedir=/run \ - --docdir=/usr/share/doc/util-linux-&util-linux-version; \ --disable-chfn-chsh \ --disable-login \ --disable-nologin \ @@ -63,7 +61,9 @@ --disable-runuser \ --disable-pylibmount \ --disable-static \ - --without-python + --without-python \ + ADJTIME_PATH=/var/lib/hwclock/adjtime \ + --docdir=/usr/share/doc/util-linux-&util-linux-version; The meaning of the configure options: diff --git a/chapter08/util-linux.xml b/chapter08/util-linux.xml index a6d058aff..dc061bccf 100644 --- a/chapter08/util-linux.xml +++ b/chapter08/util-linux.xml @@ -48,8 +48,7 @@ Prepare Util-linux for compilation: -./configure ADJTIME_PATH=/var/lib/hwclock/adjtime \ - --bindir=/usr/bin \ +./configure --bindir=/usr/bin \ --libdir=/usr/lib \ --runstatedir=/run \ --sbindir=/usr/sbin \ @@ -63,11 +62,11 @@ --disable-static \ --without-python \ --without-systemd \ - --without-systemdsystemunitdir \ + --without-systemdsystemunitdir \ + ADJTIME_PATH=/var/lib/hwclock/adjtime \ --docdir=/usr/share/doc/util-linux-&util-linux-version; -./configure ADJTIME_PATH=/var/lib/hwclock/adjtime \ - --bindir=/usr/bin \ +./configure --bindir=/usr/bin \ --libdir=/usr/lib \ --runstatedir=/run \ --sbindir=/usr/sbin \ @@ -80,6 +79,7 @@ --disable-pylibmount \ --disable-static \ --without-python \ + ADJTIME_PATH=/var/lib/hwclock/adjtime \ --docdir=/usr/share/doc/util-linux-&util-linux-version; The --disable and --without options prevent warnings about From 04a7336f8821bd2413b03c5a8b487d10eea0ceec Mon Sep 17 00:00:00 2001 From: Bruce Dubbs Date: Thu, 14 Dec 2023 16:47:50 -0600 Subject: [PATCH 021/113] Package updates. Update to util-linux v2.39.3. Update to python3-3.12.1. Update to linux-6.6.7. Update to kbd-2.6.4. Update to bc-6.7.4. --- chapter01/changelog.xml | 21 +++++++++++++++++++++ packages.ent | 32 ++++++++++++++++---------------- 2 files changed, 37 insertions(+), 16 deletions(-) diff --git a/chapter01/changelog.xml b/chapter01/changelog.xml index 2cf1b64e1..eba63ec9f 100644 --- a/chapter01/changelog.xml +++ b/chapter01/changelog.xml @@ -43,12 +43,33 @@ 2023-12-14 + + [bdubbs] - Update to util-linux v2.39.3. Fixes + #5390. + + + [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 diff --git a/packages.ent b/packages.ent index 50b140bf2..0d1a93f77 100644 --- a/packages.ent +++ b/packages.ent @@ -57,10 +57,10 @@ - + - + @@ -357,10 +357,10 @@ - - + + - + @@ -431,12 +431,12 @@ - + - + - + - + - + - + - - + + @@ -725,10 +725,10 @@ - - + + - + From 81d572d25f5e36fbe3bd6a2b12552be8d6a8ea8d Mon Sep 17 00:00:00 2001 From: Bruce Dubbs Date: Thu, 14 Dec 2023 18:49:05 -0600 Subject: [PATCH 022/113] Remove invalid revision attribute --- chapter01/changelog.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/chapter01/changelog.xml b/chapter01/changelog.xml index eba63ec9f..58ec89bf0 100644 --- a/chapter01/changelog.xml +++ b/chapter01/changelog.xml @@ -40,7 +40,7 @@ appropriate for the entry or if needed the entire day's listitem. --> - + 2023-12-14 From 9afac649f272902fe78f5d83804f8d8270b6e62b Mon Sep 17 00:00:00 2001 From: Xi Ruoyao Date: Sun, 17 Dec 2023 06:42:54 +0800 Subject: [PATCH 023/113] Update to systemd-255 --- appendices/dependencies.xml | 1 + chapter01/changelog.xml | 13 ++++++++++++- chapter08/systemd.xml | 17 +++++++++++++++-- chapter08/udev.xml | 12 +++++++++--- packages.ent | 12 ++++++------ 5 files changed, 43 insertions(+), 12 deletions(-) diff --git a/appendices/dependencies.xml b/appendices/dependencies.xml index 30f2b05a6..3cbfe7b8b 100644 --- a/appendices/dependencies.xml +++ b/appendices/dependencies.xml @@ -2935,6 +2935,7 @@ make-ca, p11-kit, PCRE2, + pefile, Polkit, pyelftools, qemu, diff --git a/chapter01/changelog.xml b/chapter01/changelog.xml index 58ec89bf0..d8182189f 100644 --- a/chapter01/changelog.xml +++ b/chapter01/changelog.xml @@ -40,12 +40,23 @@ appropriate for the entry or if needed the entire day's listitem. --> + + 2023-12-16 + + + [xry111] - Update to udev + from systemd-255. Fixes + #5390. + + + + 2023-12-14 [bdubbs] - Update to util-linux v2.39.3. Fixes - #5390. + #5388. [bdubbs] - Update to python3-3.12.1. Fixes diff --git a/chapter08/systemd.xml b/chapter08/systemd.xml index 761467acd..a1999e278 100644 --- a/chapter08/systemd.xml +++ b/chapter08/systemd.xml @@ -62,13 +62,14 @@ meson setup \ -Dldconfig=false \ -Dsysusers=false \ -Drpmmacrosdir=no \ - -Dhomed=false \ + -Dhomed=disabled \ -Duserdb=false \ -Dman=false \ -Dmode=release \ -Dpamconfdir=no \ -Ddev-kvm-mode=0660 \ -Dnobody-group=nogroup \ + -Dukify=disabled \ -Ddocdir=/usr/share/doc/systemd-&systemd-version; \ .. @@ -139,7 +140,8 @@ meson setup \ - -D{userdb,homed}=false + -Dhomed=disabled and + -Duserdb=false Remove two daemons with dependencies that do not fit within the scope of LFS. @@ -187,6 +189,17 @@ meson setup \ nogroup. + + + -Dukify=disabled + + Do not install the systemd-ukify script. + At runtime this script requires the + pefile Python module that neither LFS + nor BLFS provides. + + + Compile the package: diff --git a/chapter08/udev.xml b/chapter08/udev.xml index dd686f489..967b3dd84 100644 --- a/chapter08/udev.xml +++ b/chapter08/udev.xml @@ -125,11 +125,18 @@ meson setup \ + Get the list of the shipped udev helpers and save it into an + environment variable: + + udev_helpers=$(grep "'name' :" ../src/udev/meson.build | \ + awk '{print $3}' | tr -d ",'" | grep -v 'udevadm') + Only build the components needed for udev: ninja udevadm systemd-hwdb \ $(ninja -n | grep -Eo '(src/(lib)?udev|rules.d|hwdb.d)/[^ ]*') \ - $(realpath libudev.so --relative-to .) + $(realpath libudev.so --relative-to .) \ + $udev_helpers udevadm Install the package: @@ -147,8 +154,7 @@ install -vm644 rules.d/* ../rules.d/README /usr/lib/udev/rules.d/ install -vm644 $(find ../rules.d/*.rules \ -not -name '*power-switch*') /usr/lib/udev/rules.d/ install -vm644 hwdb.d/* ../hwdb.d/{*.hwdb,README} /usr/lib/udev/hwdb.d/ -install -vm755 $(find src/udev \ - -type f -not -name '*.*') /usr/lib/udev +install -vm755 $udev_helpers /usr/lib/udev install -vm644 ../network/99-default.link /usr/lib/udev/network Install some custom rules and support files useful in an LFS diff --git a/packages.ent b/packages.ent index 0d1a93f77..df970d61f 100644 --- a/packages.ent +++ b/packages.ent @@ -652,20 +652,20 @@ - + - + - + - - + + - + From 7380559028367ee1f0da6125d1f30f3b0a64a290 Mon Sep 17 00:00:00 2001 From: Xi Ruoyao Date: Mon, 18 Dec 2023 16:36:28 +0800 Subject: [PATCH 024/113] systemd: Disable systemd-sysupdate with a better way --- chapter08/systemd.xml | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) diff --git a/chapter08/systemd.xml b/chapter08/systemd.xml index a1999e278..58ede8508 100644 --- a/chapter08/systemd.xml +++ b/chapter08/systemd.xml @@ -69,6 +69,7 @@ meson setup \ -Dpamconfdir=no \ -Ddev-kvm-mode=0660 \ -Dnobody-group=nogroup \ + -Dsysupdate=disabled \ -Dukify=disabled \ -Ddocdir=/usr/share/doc/systemd-&systemd-version; \ .. @@ -190,6 +191,17 @@ meson setup \ + + -Dsysupdate=disabled + + Do not install the systemd-sysupdate + tool. It's designed for automatically upgrading binary distros, + so it's useless for a basic Linux system built from source. + And it will report errors on boot if it's enabled but not properly + configured. + + + -Dukify=disabled @@ -227,12 +239,6 @@ meson setup \ systemctl preset-all - Disable two services for upgrading binary distros. They are useless for - a basic Linux system built from source, and each one will report an error if - it's enabled but not configured: - -systemctl disable systemd-sysupdate{,-reboot} - make check - - The test time for autoconf can be reduced significantly on a - system with multiple cores. To do this, append - TESTSUITEFLAGS=-j<N> to the line above. For - instance, using -j4 can reduce the test time by over 60 - percent. Install the package: diff --git a/chapter08/libtool.xml b/chapter08/libtool.xml index d21d0b751..d73bd6efb 100644 --- a/chapter08/libtool.xml +++ b/chapter08/libtool.xml @@ -54,12 +54,6 @@ make -k check - The test time for Libtool can be reduced significantly on a - system with multiple cores. To do this, append - TESTSUITEFLAGS=-j<N> to the line above. For - instance, using -j4 can reduce the test time by over 60 - percent. - Five tests are known to fail in the LFS build environment due to a circular dependency, but these tests pass if rechecked after automake has been installed. Additionally, with grep-3.8, two tests will diff --git a/chapter08/tar.xml b/chapter08/tar.xml index ea5f44ebb..802f04d2e 100644 --- a/chapter08/tar.xml +++ b/chapter08/tar.xml @@ -72,13 +72,6 @@ make check - - The test time for Tar can be reduced significantly on a - system with multiple cores. To do this, append - TESTSUITEFLAGS=-j<N> to the line above. For - instance, using -j4 can reduce the test time by over 70 - percent. - One test, capabilities: binary store/restore, is known to fail if it is run because LFS lacks selinux, but will be skipped if the host kernel does not support extended attributes or security labels on the filesystem From 462ef6dfa4fce8610eec8001aa7b1b7794037e71 Mon Sep 17 00:00:00 2001 From: Xi Ruoyao Date: Sun, 31 Dec 2023 01:06:22 +0800 Subject: [PATCH 028/113] gen-changelog: Handles holding tickets --- gen-changelog.py | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/gen-changelog.py b/gen-changelog.py index e7ee1d7e7..3bf6bc064 100755 --- a/gen-changelog.py +++ b/gen-changelog.py @@ -76,6 +76,8 @@ for i in tsv: security.add(pkg) ticket[pkg] = tic +hold_ticket = {'vim': '4500', 'iana-etc': '5006'} + print("Plain Text:") for (s, act) in [(upd, "Update to "), (add, "Add ")]: for i in s: @@ -83,6 +85,8 @@ for (s, act) in [(upd, "Update to "), (add, "Add ")]: out = act + pkgver if pkgver in ticket: out += ' (#' + ticket[pkgver] + ')' + elif i in hold_ticket: + out += ' (#' + hold_ticket[i] + ')' print("-", out) for i in rem: print("-", "Remove", i) @@ -99,10 +103,18 @@ for (s, act) in [(upd, "Update to "), (add, "Add ")]: if pkgver in security: out += " (security fix)" out += "." + + pkg_ticket = None if pkgver in ticket: out += " Fixes\n " - out += "#" - out += ticket[pkgver] + "." + pkg_ticket = ticket[pkgver] + elif i in hold_ticket: + out += " Addresses\n " + pkg_ticket = hold_ticket[i] + + if pkg_ticket: + out += "#" + out += pkg_ticket + "." out += "" print(out) print(' ') From d4ce302c0e94aa2aea766eb14f78c965b823360c Mon Sep 17 00:00:00 2001 From: Xi Ruoyao Date: Sun, 31 Dec 2023 01:58:11 +0800 Subject: [PATCH 029/113] Package updates - Update to meson-1.3.1 (#5402) - Update to vim-9.0.2189 (#4500) - Update to inetutils-2.5 (#5404) - Update to xml-parser-2.47 (#5403) - Update to linux-6.6.8 (#5397) - Update to tzdata-2023d (#5399) - Update to setuptools-69.0.3 (#5400) - Update to iana-etc-20231205 (#5006) - Update to autoconf-2.72 (#5398) - Update to grub-2.12 (#5396) --- chapter01/changelog.xml | 46 ++++++++++++++++++++++++++++++++ chapter01/whatsnew.xml | 24 ++++++++++------- chapter03/patches.xml | 8 ------ chapter08/autoconf.xml | 6 ----- chapter08/grub.xml | 7 ++--- packages.ent | 58 ++++++++++++++++++++--------------------- patches.ent | 4 --- 7 files changed, 91 insertions(+), 62 deletions(-) diff --git a/chapter01/changelog.xml b/chapter01/changelog.xml index d8182189f..fef105ece 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. --> + + 2023-12-31 + + + [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 diff --git a/chapter01/whatsnew.xml b/chapter01/whatsnew.xml index bd97a81f0..e8002fcf6 100644 --- a/chapter01/whatsnew.xml +++ b/chapter01/whatsnew.xml @@ -32,9 +32,9 @@ - + @@ -116,18 +116,18 @@ - + Gzip-&gzip-version; Iana-Etc-&iana-etc-version; - + @@ -248,9 +248,9 @@ Texinfo-&texinfo-version; - + @@ -263,9 +263,9 @@ Wheel-&wheel-version; - + Xz-&xz-version; @@ -312,6 +312,10 @@ 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/patches.xml b/chapter03/patches.xml index 00628bda7..2073638fc 100644 --- a/chapter03/patches.xml +++ b/chapter03/patches.xml @@ -93,14 +93,6 @@ - - GRUB Upstream Fixes Patch - &grub-upstream-fixes-patch-size;: - - Download: - MD5 sum: &grub-upstream-fixes-patch-md5; - - - Kbd Backspace/Delete Fix Patch - &kbd-backspace-patch-size;: diff --git a/chapter08/autoconf.xml b/chapter08/autoconf.xml index 8b2afb168..120f31632 100644 --- a/chapter08/autoconf.xml +++ b/chapter08/autoconf.xml @@ -41,12 +41,6 @@ Installation of Autoconf - First, fix several problems with the tests caused by bash-5.2 and later: - - sed -e 's/SECONDS|/&SHLVL|/' \ - -e '/BASH_ARGV=/a\ /^SHLVL=/ d' \ - -i.orig tests/local.at - Prepare Autoconf for compilation: ./configure --prefix=/usr diff --git a/chapter08/grub.xml b/chapter08/grub.xml index 357036c34..a89963189 100644 --- a/chapter08/grub.xml +++ b/chapter08/grub.xml @@ -62,13 +62,10 @@ - Fix an issue causing grub-install to fail when the - /boot partition (or the root - partition if /boot is not a - separate partition) is created by e2fsprogs-1.47.0 or later: + Add a file missing from the release tarball: -patch -Np1 -i ../grub-&grub-version;-upstream_fixes-1.patch +echo depends bli part_gpt > grub-core/extra_deps.lst Prepare GRUB for compilation: diff --git a/packages.ent b/packages.ent index df970d61f..2caa1f663 100644 --- a/packages.ent +++ b/packages.ent @@ -29,10 +29,10 @@ - - + + - + @@ -299,10 +299,10 @@ - - + + - + @@ -317,18 +317,18 @@ - - + + - + - - + + - + @@ -431,12 +431,12 @@ - + - + - + - + - + @@ -754,10 +754,10 @@ - - + + - + diff --git a/patches.ent b/patches.ent index 13f291e0f..6c03b9728 100644 --- a/patches.ent +++ b/patches.ent @@ -18,10 +18,6 @@ - - - - From 8b4fb1245dcde0370bb84c2653e3e9bb01cbae87 Mon Sep 17 00:00:00 2001 From: Xi Ruoyao Date: Sun, 31 Dec 2023 02:04:21 +0800 Subject: [PATCH 030/113] systemd: Fix CVE-2023-7008 (#5405) --- chapter01/changelog.xml | 4 ++++ chapter08/systemd.xml | 7 +++++++ 2 files changed, 11 insertions(+) diff --git a/chapter01/changelog.xml b/chapter01/changelog.xml index fef105ece..756e9d5fc 100644 --- a/chapter01/changelog.xml +++ b/chapter01/changelog.xml @@ -43,6 +43,10 @@ 2023-12-31 + + [xry111] - Fix CVE-2023-7008 for systemd-255. Fixes + #5405. + [xry111] - Update to iana-etc-20231205. Addresses #5006. diff --git a/chapter08/systemd.xml b/chapter08/systemd.xml index 58ede8508..de5a668d1 100644 --- a/chapter08/systemd.xml +++ b/chapter08/systemd.xml @@ -48,6 +48,13 @@ sed -i -e 's/GROUP="render"/GROUP="video"/' \ -e 's/GROUP="sgx", //' rules.d/50-udev-default.rules.in + + Now fix a security vulnerability in the DNSSEC verification of + systemd-resolved: + +sed -e '/return FLAGS_SET.*AUTHENTICATED/s/(t/(dt/' \ + -i src/resolve/resolved-dns-transaction.c + Prepare systemd for compilation: mkdir -p build From 6fec3f51e71f36219829eddd63b1cf6e11bcd447 Mon Sep 17 00:00:00 2001 From: Xi Ruoyao Date: Sun, 31 Dec 2023 02:33:59 +0800 Subject: [PATCH 031/113] binutils: Add --enable-default-hash-style=gnu for configure (#5401) --- chapter01/changelog.xml | 5 +++++ chapter05/binutils-pass1.xml | 19 ++++++++++++++++++- chapter06/binutils-pass2.xml | 3 ++- chapter08/binutils.xml | 14 ++++---------- 4 files changed, 29 insertions(+), 12 deletions(-) diff --git a/chapter01/changelog.xml b/chapter01/changelog.xml index 756e9d5fc..de94d85d9 100644 --- a/chapter01/changelog.xml +++ b/chapter01/changelog.xml @@ -43,6 +43,11 @@ 2023-12-31 + + [xry111] - Add --enable-default-hash-style=gnu configuring + binutils. Fixes + #5401. + [xry111] - Fix CVE-2023-7008 for systemd-255. Fixes #5405. diff --git a/chapter05/binutils-pass1.xml b/chapter05/binutils-pass1.xml index 65e8dd2ae..c3bf1f117 100644 --- a/chapter05/binutils-pass1.xml +++ b/chapter05/binutils-pass1.xml @@ -75,7 +75,8 @@ cd build --target=$LFS_TGT \ --disable-nls \ --enable-gprofng=no \ - --disable-werror + --disable-werror \ + --enable-default-hash-style=gnu The meaning of the configure options: @@ -132,6 +133,22 @@ cd build + + --enable-default-hash-style=gnu + + By default, the linker would generate both the GNU-style + hash table and the classic ELF hash table for shared libraries and + dynamically linked executables. The hash tables are only intended + for a dynamic linker to perform symbol lookup. On LFS the dynamic + linker (provided by the Glibc package) will always use the + GNU-style hash table which is faster to query. So the classic + ELF hash table is completely useless. This makes the the linker + only generate the GNU-style hash table by default, so we can avoid + wasting time to generate the classic ELF hash table when we build + the packages, or wasting disk space to store it. + + + Continue with compiling the package: diff --git a/chapter06/binutils-pass2.xml b/chapter06/binutils-pass2.xml index 983aaee2f..15582f937 100644 --- a/chapter06/binutils-pass2.xml +++ b/chapter06/binutils-pass2.xml @@ -72,7 +72,8 @@ cd build --enable-shared \ --enable-gprofng=no \ --disable-werror \ - --enable-64-bit-bfd + --enable-64-bit-bfd \ + --enable-default-hash-style=gnu The meaning of the new configure options: diff --git a/chapter08/binutils.xml b/chapter08/binutils.xml index 1fd436bd1..9e93e55f0 100644 --- a/chapter08/binutils.xml +++ b/chapter08/binutils.xml @@ -57,9 +57,11 @@ cd build --enable-shared \ --disable-werror \ --enable-64-bit-bfd \ - --with-system-zlib + --with-system-zlib \ + --enable-default-hash-style=gnu + - The meaning of the configure parameters: + The meaning of the new configure parameters: --enable-gold @@ -84,14 +86,6 @@ cd build - - --enable-64-bit-bfd - - Enables 64-bit support (on hosts with narrower word sizes). - May not be needed on 64-bit systems, but does no harm. - - - --with-system-zlib From acde0a383a3346a7c5a365b1fd59189509535887 Mon Sep 17 00:00:00 2001 From: Bruce Dubbs Date: Thu, 4 Jan 2024 09:44:21 -0600 Subject: [PATCH 032/113] Typo --- chapter05/binutils-pass1.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/chapter05/binutils-pass1.xml b/chapter05/binutils-pass1.xml index c3bf1f117..03e9e2498 100644 --- a/chapter05/binutils-pass1.xml +++ b/chapter05/binutils-pass1.xml @@ -142,7 +142,7 @@ cd build for a dynamic linker to perform symbol lookup. On LFS the dynamic linker (provided by the Glibc package) will always use the GNU-style hash table which is faster to query. So the classic - ELF hash table is completely useless. This makes the the linker + ELF hash table is completely useless. This makes the linker only generate the GNU-style hash table by default, so we can avoid wasting time to generate the classic ELF hash table when we build the packages, or wasting disk space to store it. From 53ed17c75265ab1c2ac6638a6dd57d8e93d788f2 Mon Sep 17 00:00:00 2001 From: Pierre Labastie Date: Thu, 4 Jan 2024 19:22:44 +0100 Subject: [PATCH 033/113] export the udev_helpers variable Since it is needed for both building and installing, exporting it allows to have it defined even if building as a regular user (so that sudo is run for installing) or using a package manager (which usually runs in a new shell and forgets unexported variables) --- chapter08/udev.xml | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/chapter08/udev.xml b/chapter08/udev.xml index 967b3dd84..b4ecbe656 100644 --- a/chapter08/udev.xml +++ b/chapter08/udev.xml @@ -126,9 +126,10 @@ meson setup \ Get the list of the shipped udev helpers and save it into an - environment variable: + environment variable (exporting it is not strictly necessary, but it makes + building as a regular user or using a package manager easier): - udev_helpers=$(grep "'name' :" ../src/udev/meson.build | \ + export udev_helpers=$(grep "'name' :" ../src/udev/meson.build | \ awk '{print $3}' | tr -d ",'" | grep -v 'udevadm') Only build the components needed for udev: From 164e0ddbce14b4df88bda8de0bd12fb3d1e7428f Mon Sep 17 00:00:00 2001 From: Xi Ruoyao Date: Fri, 5 Jan 2024 03:05:01 +0800 Subject: [PATCH 034/113] udev: Unset udev_helpers after installation Now this variable is exported, thus it might potentially cause unwanted side effects building other packages. So unset it after installation. --- chapter08/udev.xml | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/chapter08/udev.xml b/chapter08/udev.xml index b4ecbe656..6b3b00b94 100644 --- a/chapter08/udev.xml +++ b/chapter08/udev.xml @@ -187,6 +187,12 @@ sed 's|lib.*udevd|sbin/udevd|' \ rm /usr/share/man/man*/systemd* + Finally, unset the udev_helpers variable: + + + unset udev_helpers + From 33c9cb06d7f438e565f990badd8c3b3496cd96cd Mon Sep 17 00:00:00 2001 From: Xi Ruoyao Date: Sat, 6 Jan 2024 11:26:22 +0800 Subject: [PATCH 035/113] systemd: Fix another deprecation warning Not sure why I didn't catch it... --- chapter08/systemd.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/chapter08/systemd.xml b/chapter08/systemd.xml index de5a668d1..6757c73b7 100644 --- a/chapter08/systemd.xml +++ b/chapter08/systemd.xml @@ -71,7 +71,7 @@ meson setup \ -Drpmmacrosdir=no \ -Dhomed=disabled \ -Duserdb=false \ - -Dman=false \ + -Dman=disabled \ -Dmode=release \ -Dpamconfdir=no \ -Ddev-kvm-mode=0660 \ From 06e65e8e59dc696f7865c75c4026110b2c7450cc Mon Sep 17 00:00:00 2001 From: Thomas Trepl Date: Sun, 7 Jan 2024 11:15:05 +0100 Subject: [PATCH 036/113] remap=make moves unset command to wrong pos --- chapter08/udev.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/chapter08/udev.xml b/chapter08/udev.xml index 6b3b00b94..832bf803c 100644 --- a/chapter08/udev.xml +++ b/chapter08/udev.xml @@ -191,7 +191,7 @@ rm /usr/share/man/man*/systemd* - unset udev_helpers + unset udev_helpers From fecc2872806aff96bb4eeaa6738205725881574c Mon Sep 17 00:00:00 2001 From: "Douglas R. Reno" Date: Tue, 9 Jan 2024 11:16:26 -0600 Subject: [PATCH 037/113] Fix the definition of the C.UTF-8 locale. This fixes a test failure in Epiphany. --- chapter01/changelog.xml | 10 ++++++++++ chapter08/glibc.xml | 2 +- 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/chapter01/changelog.xml b/chapter01/changelog.xml index de94d85d9..15bd9a519 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-01-09 + + + [renodr] - Fix the definition of the C.UTF-8 locale. Fixes + #5409. + + + + 2023-12-31 diff --git a/chapter08/glibc.xml b/chapter08/glibc.xml index c00d56d30..af72ad03b 100644 --- a/chapter08/glibc.xml +++ b/chapter08/glibc.xml @@ -297,7 +297,7 @@ localedef -i zh_TW -f UTF-8 zh_TW.UTF-8 when you need them. For instance, the following two locales are needed for some tests later in this chapter: -localedef -i POSIX -f UTF-8 C.UTF-8 2> /dev/null || true +localedef -i C -f UTF-8 C.UTF-8 localedef -i ja_JP -f SHIFT_JIS ja_JP.SJIS 2> /dev/null || true Glibc now uses libidn2 when resolving internationalized From f1370e2fb9e38c46cec7b1d82f6d5853486f401b Mon Sep 17 00:00:00 2001 From: Pierre Labastie Date: Thu, 11 Jan 2024 13:51:15 +0100 Subject: [PATCH 038/113] Change C.UTF-8 localedef everywhere --- chapter08/glibc.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/chapter08/glibc.xml b/chapter08/glibc.xml index af72ad03b..9a407291c 100644 --- a/chapter08/glibc.xml +++ b/chapter08/glibc.xml @@ -245,7 +245,7 @@ install -v -Dm644 ../nscd/nscd.service /usr/lib/systemd/system/nscd.service mkdir -pv /usr/lib/locale -localedef -i POSIX -f UTF-8 C.UTF-8 2> /dev/null || true +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 811d59db8bb741c941656c94fb1be2ce6b55c7e2 Mon Sep 17 00:00:00 2001 From: Pierre Labastie Date: Thu, 11 Jan 2024 13:52:28 +0100 Subject: [PATCH 039/113] Nitpick on format - according to our typography, referring to a manual page should be page(x) - don't enclose punctuation into quotes - use Setting the user file-creation mask (umask) to 022 ensures that newly created files and directories are only writable by their owner, but are readable and executable by anyone (assuming default modes are used by the - open(2) system call, new files will end up with permission - mode 644 and directories with mode 755). + open(2) system call, new files will end up with + permission mode 644 and directories with mode 755). diff --git a/chapter07/creatingdirs.xml b/chapter07/creatingdirs.xml index e2faa08da..c96d9c5b8 100644 --- a/chapter07/creatingdirs.xml +++ b/chapter07/creatingdirs.xml @@ -54,7 +54,7 @@ install -dv -m 1777 /tmp /var/tmp /tmp and /var/tmp directories, but cannot remove another user's files from them. The latter is prohibited by the so-called - sticky bit, the highest bit (1) in the 1777 bit mask. + sticky bit, the highest bit (1) in the 1777 bit mask. FHS Compliance Note diff --git a/chapter08/openssl.xml b/chapter08/openssl.xml index 25295f056..efc909627 100644 --- a/chapter08/openssl.xml +++ b/chapter08/openssl.xml @@ -163,7 +163,7 @@ make MANSUFFIX=ssl install is a command-line tool for using the various cryptography functions of OpenSSL's crypto library from the shell. It can be used for various functions which are documented in - man 1 openssl + openssl(1) openssl @@ -195,7 +195,7 @@ make MANSUFFIX=ssl install implements the Transport Layer Security (TLS v1) protocol. It provides a rich API, documentation - on which can be found by running man 7 ssl + on which can be found in ssl(7) libssl.so diff --git a/chapter09/networkd.xml b/chapter09/networkd.xml index 27f15e815..1ad7ec94c 100644 --- a/chapter09/networkd.xml +++ b/chapter09/networkd.xml @@ -113,14 +113,14 @@ Name=ether0 EOF - See the man page systemd.link(5) for more information. + See systemd.link(5) for more information. - In /boot/grub/grub.cfg, pass the option net.ifnames=0 on the - kernel command line. + In /boot/grub/grub.cfg, pass the option + on the kernel command line. diff --git a/chapter10/fstab.xml b/chapter10/fstab.xml index ccf767ab6..eaac86b72 100644 --- a/chapter10/fstab.xml +++ b/chapter10/fstab.xml @@ -56,7 +56,7 @@ EOF class="partition">sda2, sda5, and ext4. For details on the six - fields in this file, see man 5 fstab. + fields in this file, see fstab(5). Filesystems with MS-DOS or Windows origin (i.e. vfat, ntfs, smbfs, cifs, iso9660, udf) need a special option, utf8, in order for non-ASCII From ce07f91d5e89ca8ddf80c9e388190b631af2623e Mon Sep 17 00:00:00 2001 From: Xi Ruoyao Date: Sun, 14 Jan 2024 17:38:41 +0800 Subject: [PATCH 040/113] udev: Drop duplicated udevadm in the ninja command --- chapter08/udev.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/chapter08/udev.xml b/chapter08/udev.xml index 832bf803c..32c0e97a7 100644 --- a/chapter08/udev.xml +++ b/chapter08/udev.xml @@ -137,7 +137,7 @@ meson setup \ ninja udevadm systemd-hwdb \ $(ninja -n | grep -Eo '(src/(lib)?udev|rules.d|hwdb.d)/[^ ]*') \ $(realpath libudev.so --relative-to .) \ - $udev_helpers udevadm + $udev_helpers Install the package: From ec18a3872af00cfaa9ad2530b407940eba30fde7 Mon Sep 17 00:00:00 2001 From: Pierre Labastie Date: Sun, 14 Jan 2024 22:25:07 +0100 Subject: [PATCH 041/113] Makefile: Set tabs to 3 spaces when editing with vi This allows all editors to have the same settings... --- Makefile | 1 + 1 file changed, 1 insertion(+) diff --git a/Makefile b/Makefile index 71b82d0c6..9cddff915 100644 --- a/Makefile +++ b/Makefile @@ -1,3 +1,4 @@ +# vim:ts=3 #BASEDIR = ~/lfs-book #SYSDDIR = ~/lfs-systemd #DUMPDIR = ~/lfs-commands From 855d0c957459a7015fbfcecdcc006e2fa251e104 Mon Sep 17 00:00:00 2001 From: Pierre Labastie Date: Sun, 14 Jan 2024 22:27:37 +0100 Subject: [PATCH 042/113] Remove an invalid attribute in longindex.html For some reason, the stylesheets generate a
element in longindex.html, but this is not valid in xhtml (the attribute xmlns=xlink is not defined in the DTD). The problem is that tidy then thinks it is not a true xhtml and removes the doctype declaration. But when a browser receives a file without doctype declaration, it thinks it uses an old standard, and switches to "quirks mode" (for firefox, this can be seen by typing ctrl-I on the page). --- Makefile | 1 + 1 file changed, 1 insertion(+) diff --git a/Makefile b/Makefile index 9cddff915..00eeb2748 100644 --- a/Makefile +++ b/Makefile @@ -48,6 +48,7 @@ book: validate profile-html $(Q)mkdir -p $(BASEDIR)/stylesheets $(Q)cp stylesheets/lfs-xsl/*.css $(BASEDIR)/stylesheets $(Q)sed -i 's|../stylesheet|stylesheet|' $(BASEDIR)/index.html + $(Q)sed -i 's/xmlns:xlink.*xlink"//' $(BASEDIR)/longindex.html $(Q)mkdir -p $(BASEDIR)/images $(Q)cp images/*.png $(BASEDIR)/images From 0432a3a1a8cb9090408e0359ec16d1222bda6d7a Mon Sep 17 00:00:00 2001 From: Pierre Labastie Date: Sun, 14 Jan 2024 22:36:12 +0100 Subject: [PATCH 043/113] Generate utf-8 for lfs-nochunks too This involves: - removing the element from nochunks.xsl - adding a sed for rmoving the invalid xmlns:xlink attribute - removing the sed for "©" --- Makefile | 2 +- stylesheets/lfs-xsl/nochunks.xsl | 3 --- 2 files changed, 1 insertion(+), 4 deletions(-) diff --git a/Makefile b/Makefile index 00eeb2748..433bb86da 100644 --- a/Makefile +++ b/Makefile @@ -101,6 +101,7 @@ nochunks: validate profile-html $(RENDERTMP)/lfs-html.xml # $(RENDERTMP)/lfs-html2.xml + $(Q)sed 's/xmlns:xlink.*xlink"//' -i $(BASEDIR)/$(NOCHUNKS_OUTPUT) @echo "Running Tidy..." $(Q)tidy -config tidy.conf $(BASEDIR)/$(NOCHUNKS_OUTPUT) || true @@ -109,7 +110,6 @@ nochunks: validate profile-html $(Q)sed -i -e "s@text/html@application/xhtml+xml@g" $(BASEDIR)/$(NOCHUNKS_OUTPUT) $(Q)sed -i -e "s@../wget-list@wget-list@" $(BASEDIR)/$(NOCHUNKS_OUTPUT) $(Q)sed -i -e "s@../md5sums@md5sums@" $(BASEDIR)/$(NOCHUNKS_OUTPUT) - $(Q)sed -i -e "s@\xa9@\©@" $(BASEDIR)/$(NOCHUNKS_OUTPUT) @echo "Output at $(BASEDIR)/$(NOCHUNKS_OUTPUT)" diff --git a/stylesheets/lfs-xsl/nochunks.xsl b/stylesheets/lfs-xsl/nochunks.xsl index 3ff0ebc72..351c6dbb3 100644 --- a/stylesheets/lfs-xsl/nochunks.xsl +++ b/stylesheets/lfs-xsl/nochunks.xsl @@ -10,9 +10,6 @@ - - - From b8194e059c3255c11fe6dc057dc049f723edf56b Mon Sep 17 00:00:00 2001 From: Pierre Labastie Date: Sun, 14 Jan 2024 22:44:14 +0100 Subject: [PATCH 044/113] make default BASEDIR in public_html that is: - ~/public_html/lfs-book for sysv - ~/public_html/lfs-systemd for systemd --- Makefile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Makefile b/Makefile index 433bb86da..dc6ee93ba 100644 --- a/Makefile +++ b/Makefile @@ -24,12 +24,12 @@ ifneq ($(REV), sysv) endif ifeq ($(REV), sysv) - BASEDIR ?= ~/lfs-book + BASEDIR ?= ~/public_html/lfs-book PDF_OUTPUT ?= LFS-BOOK.pdf NOCHUNKS_OUTPUT ?= LFS-BOOK.html DUMPDIR ?= ~/lfs-commands else - BASEDIR ?= ~/lfs-systemd + BASEDIR ?= ~/public_html/lfs-systemd PDF_OUTPUT ?= LFS-SYSD-BOOK.pdf NOCHUNKS_OUTPUT ?= LFS-SYSD-BOOK.html DUMPDIR ?= ~/lfs-sysd-commands From 7f6519aad772e1be64e59beff8170cec986adce8 Mon Sep 17 00:00:00 2001 From: Xi Ruoyao Date: Mon, 15 Jan 2024 12:30:03 +0800 Subject: [PATCH 045/113] udev: Realign the export udev_helpers=... command --- chapter08/udev.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/chapter08/udev.xml b/chapter08/udev.xml index 32c0e97a7..a4ed12a17 100644 --- a/chapter08/udev.xml +++ b/chapter08/udev.xml @@ -130,7 +130,7 @@ meson setup \ building as a regular user or using a package manager easier): export udev_helpers=$(grep "'name' :" ../src/udev/meson.build | \ - awk '{print $3}' | tr -d ",'" | grep -v 'udevadm') + awk '{print $3}' | tr -d ",'" | grep -v 'udevadm') Only build the components needed for udev: From 56eed6c5dab2492a61ebccbc3d5ca0a90166147d Mon Sep 17 00:00:00 2001 From: Xi Ruoyao Date: Mon, 15 Jan 2024 12:36:47 +0800 Subject: [PATCH 046/113] systemd: Update the explanation to match the actual command --- chapter08/systemd.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/chapter08/systemd.xml b/chapter08/systemd.xml index 6757c73b7..b5fa9bdcb 100644 --- a/chapter08/systemd.xml +++ b/chapter08/systemd.xml @@ -157,7 +157,7 @@ meson setup \ - -Dman=false + -Dman=disabled Prevent the generation of man pages to avoid extra dependencies. We will install pre-generated man pages for systemd From 8ba840f34a1825277a81ae106e92242f211d90d0 Mon Sep 17 00:00:00 2001 From: Xi Ruoyao Date: Mon, 15 Jan 2024 21:47:38 +0800 Subject: [PATCH 047/113] Makefile: Unify two sed for removing bogus xmlns:xlink, and link to upstream bug report Nasty bug :(. --- Makefile | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/Makefile b/Makefile index dc6ee93ba..37792d14e 100644 --- a/Makefile +++ b/Makefile @@ -35,6 +35,9 @@ else DUMPDIR ?= ~/lfs-sysd-commands endif +# https://github.com/docbook/xslt10-stylesheets/issues/239 +SED_XMLNS_XLINK = sed -i 's/xmlns:xlink.*xlink"//' + book: validate profile-html @echo "Generating chunked XHTML files at $(BASEDIR)/ ..." $(Q)xsltproc --nonet \ @@ -48,7 +51,7 @@ book: validate profile-html $(Q)mkdir -p $(BASEDIR)/stylesheets $(Q)cp stylesheets/lfs-xsl/*.css $(BASEDIR)/stylesheets $(Q)sed -i 's|../stylesheet|stylesheet|' $(BASEDIR)/index.html - $(Q)sed -i 's/xmlns:xlink.*xlink"//' $(BASEDIR)/longindex.html + $(Q)$(SED_XMLNS_XLINK) $(BASEDIR)/longindex.html $(Q)mkdir -p $(BASEDIR)/images $(Q)cp images/*.png $(BASEDIR)/images @@ -101,7 +104,7 @@ nochunks: validate profile-html $(RENDERTMP)/lfs-html.xml # $(RENDERTMP)/lfs-html2.xml - $(Q)sed 's/xmlns:xlink.*xlink"//' -i $(BASEDIR)/$(NOCHUNKS_OUTPUT) + $(Q)$(SED_XMLNS_XLINK) $(BASEDIR)/$(NOCHUNKS_OUTPUT) @echo "Running Tidy..." $(Q)tidy -config tidy.conf $(BASEDIR)/$(NOCHUNKS_OUTPUT) || true From d5fda0bce5cf42774c669dbefb71f84f8bc6e745 Mon Sep 17 00:00:00 2001 From: Pierre Labastie Date: Wed, 17 Jan 2024 14:41:09 +0100 Subject: [PATCH 048/113] Style sheets: fix docbook-xsl bug in autoidx The template named generate-basic-index in {docbook-xsl}/xhtml/autoidx.xsl has a bug that generates a div element with a wrong xmlns:xlink attribute. See https://github.com/docbook/xslt10-stylesheets/issues/239. Rather than fixing docbook-xsl, which would work only in LFS (but we want to be able to render on other distros), copy the faulty template to our customization files (lfs-index.xsl), so that this one is used. We can also simplify it a lot since we don't need all the cases covered in general docbook-xsl. --- stylesheets/lfs-xsl/xhtml/lfs-index.xsl | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/stylesheets/lfs-xsl/xhtml/lfs-index.xsl b/stylesheets/lfs-xsl/xhtml/lfs-index.xsl index 806979c19..a7f627cf6 100644 --- a/stylesheets/lfs-xsl/xhtml/lfs-index.xsl +++ b/stylesheets/lfs-xsl/xhtml/lfs-index.xsl @@ -24,6 +24,28 @@ longindex.html + + + + + +
+ + + + + +
+
+ + a bug (https://github.com/docbook/xslt10-stylesheets/issues/239) + that generates a
with a wrong xmlns:xlink attribute. So copy it + here where the bug does not occur, (and simplify it a lot).--> + From 3626aa30487772be32d2b6ca591137ce88e9d616 Mon Sep 17 00:00:00 2001 From: Xi Ruoyao Date: Thu, 18 Jan 2024 14:57:54 +0800 Subject: [PATCH 051/113] Use UTF-8 characters instead of &#...; This is done via: find -name \*.xml -or -name \*.xsl | xargs python3 utf8ize.py with https://linuxfromscratch.org/~xry111/utf8ize.py. --- stylesheets/lfs-xsl/lfs-l10n.xml | 10 +++++----- stylesheets/lfs-xsl/pdf/lfs-index.xsl | 4 ++-- stylesheets/lfs-xsl/pdf/lfs-lists.xsl | 4 ++-- stylesheets/lfs-xsl/pdf/lfs-xref.xsl | 4 ++-- stylesheets/lfs-xsl/xhtml/lfs-index.xsl | 4 ++-- 5 files changed, 13 insertions(+), 13 deletions(-) diff --git a/stylesheets/lfs-xsl/lfs-l10n.xml b/stylesheets/lfs-xsl/lfs-l10n.xml index 582dae367..d06760244 100644 --- a/stylesheets/lfs-xsl/lfs-l10n.xml +++ b/stylesheets/lfs-xsl/lfs-l10n.xml @@ -1,4 +1,4 @@ - + @@ -71,11 +71,11 @@ - + - - - + + + diff --git a/stylesheets/lfs-xsl/pdf/lfs-index.xsl b/stylesheets/lfs-xsl/pdf/lfs-index.xsl index 866a70391..1fe86b186 100644 --- a/stylesheets/lfs-xsl/pdf/lfs-index.xsl +++ b/stylesheets/lfs-xsl/pdf/lfs-index.xsl @@ -1,7 +1,7 @@ - + + diff --git a/stylesheets/lfs-xsl/pdf/lfs-lists.xsl b/stylesheets/lfs-xsl/pdf/lfs-lists.xsl index 5055b8692..c3abb960e 100644 --- a/stylesheets/lfs-xsl/pdf/lfs-lists.xsl +++ b/stylesheets/lfs-xsl/pdf/lfs-lists.xsl @@ -1,4 +1,4 @@ - + - + + and (not(contains($xhref,'(')) + or starts-with($xhref, '#xpointer(id('))"> diff --git a/stylesheets/lfs-xsl/xhtml/lfs-index.xsl b/stylesheets/lfs-xsl/xhtml/lfs-index.xsl index 284a3a4bf..484dfc6b6 100644 --- a/stylesheets/lfs-xsl/xhtml/lfs-index.xsl +++ b/stylesheets/lfs-xsl/xhtml/lfs-index.xsl @@ -1,7 +1,7 @@ - + + From 9bbd87ae000d2f9e2c574e9ded8f30e24c95c649 Mon Sep 17 00:00:00 2001 From: Pierre Labastie Date: Thu, 18 Jan 2024 10:32:31 +0100 Subject: [PATCH 052/113] Add a doctype decl to lfs-l10n.xml, for validation This allows using xmllint --valid on it. --- stylesheets/lfs-xsl/lfs-l10n.xml | 1 + 1 file changed, 1 insertion(+) diff --git a/stylesheets/lfs-xsl/lfs-l10n.xml b/stylesheets/lfs-xsl/lfs-l10n.xml index d06760244..783bb1118 100644 --- a/stylesheets/lfs-xsl/lfs-l10n.xml +++ b/stylesheets/lfs-xsl/lfs-l10n.xml @@ -1,4 +1,5 @@ + From 0cbc2c0a0432637a25595d8740a0b5881baab7de Mon Sep 17 00:00:00 2001 From: Xi Ruoyao Date: Thu, 18 Jan 2024 18:25:15 +0800 Subject: [PATCH 053/113] dependencies: Patch (optionally) uses attr In chapter 6, patch configure outputs: libattr development library was not found or not usable. GNU patch will be built without xattr support. While this is normal in chapter 6 (building a temporary patch), we should mention this dependency in the dependencies page. --- appendices/dependencies.xml | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/appendices/dependencies.xml b/appendices/dependencies.xml index 3cbfe7b8b..290f45ca5 100644 --- a/appendices/dependencies.xml +++ b/appendices/dependencies.xml @@ -107,7 +107,7 @@ &before; - Acl and Libcap + Acl, Libcap, and Patch @@ -2414,14 +2414,15 @@ &dependencies; - Bash, Binutils, Coreutils, GCC, Glibc, Grep, Make, and Sed + Attr, Bash, Binutils, Coreutils, GCC, Glibc, Grep, Make, and + Sed &runtime; - Glibc + Attr and Glibc From d6cbb12c4c152479a8861e1251dcd7ea10eff81d Mon Sep 17 00:00:00 2001 From: Pierre Labastie Date: Thu, 18 Jan 2024 13:07:22 +0100 Subject: [PATCH 054/113] stylesheets: rm code for xlink:href attr in xref elemts We don't use it and it uses ( for opening parenthesis. I am not sure whether this has some reason or not, but we want to get reed of &#xx; chars in our change to utf-8, so easier to remove than to find out why... --- stylesheets/lfs-xsl/pdf/lfs-xref.xsl | 22 +++++----------------- stylesheets/lfs-xsl/xhtml/lfs-xref.xsl | 21 +++++---------------- 2 files changed, 10 insertions(+), 33 deletions(-) diff --git a/stylesheets/lfs-xsl/pdf/lfs-xref.xsl b/stylesheets/lfs-xsl/pdf/lfs-xref.xsl index d14e49b22..ddfe4408b 100644 --- a/stylesheets/lfs-xsl/pdf/lfs-xref.xsl +++ b/stylesheets/lfs-xsl/pdf/lfs-xref.xsl @@ -1,9 +1,7 @@ @@ -16,23 +14,13 @@ this file in lfs-pdf.xsl --> + Added role variable and use it when calling mode xref-to. + Also remove code for xlink:href attribute in xref elements, + since we don't use it.--> - - - - - - - - - - - + @@ -89,7 +77,7 @@ ERROR: xref linking to - + has no generated link text. ??? diff --git a/stylesheets/lfs-xsl/xhtml/lfs-xref.xsl b/stylesheets/lfs-xsl/xhtml/lfs-xref.xsl index 23ad79f8b..705793605 100644 --- a/stylesheets/lfs-xsl/xhtml/lfs-xref.xsl +++ b/stylesheets/lfs-xsl/xhtml/lfs-xref.xsl @@ -1,9 +1,7 @@ + Added role variable and use it when calling mode xref-to. + Also remove code for xlink:href attributes in xref elements + since we don't use it.--> - - - - - - - - - - - + @@ -85,7 +74,7 @@ ERROR: xref linking to - + has no generated link text. ??? From 9512d6c7ba21e5765754b53db08c55851fecdc05 Mon Sep 17 00:00:00 2001 From: Xi Ruoyao Date: Thu, 18 Jan 2024 19:48:54 +0800 Subject: [PATCH 055/113] dejagnu: Move test before install There seems no reason to test after install... So just do it like other packages. --- chapter08/dejagnu.xml | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/chapter08/dejagnu.xml b/chapter08/dejagnu.xml index 4dc422f3a..1f3ecd057 100644 --- a/chapter08/dejagnu.xml +++ b/chapter08/dejagnu.xml @@ -54,16 +54,16 @@ cd build makeinfo --html --no-split -o doc/dejagnu.html ../doc/dejagnu.texi makeinfo --plaintext -o doc/dejagnu.txt ../doc/dejagnu.texi - Build and install the package: + To test the results, issue: + +make check + + Install the package: make install install -v -dm755 /usr/share/doc/dejagnu-&dejagnu-version; install -v -m644 doc/dejagnu.{html,txt} /usr/share/doc/dejagnu-&dejagnu-version; - To test the results, issue: - -make check - From 2a26a4f5df7c2487afb89fcd05d99133e84b284c Mon Sep 17 00:00:00 2001 From: Pierre Labastie Date: Thu, 18 Jan 2024 20:35:28 +0100 Subject: [PATCH 056/113] Remove all &#xxx; occurences - replace some characters by their utf-8 encoded equivalent (and change encoding in the line - replace with a true newline char. This is somewhat more readable anyway. --- stylesheets/dump-commands.xsl | 3 ++- stylesheets/lfs-xsl/pdf.xsl | 8 +++--- stylesheets/lfs-xsl/xhtml/lfs-mixed.xsl | 6 +++-- stylesheets/md5sum.xsl | 8 +++--- stylesheets/patcheslist.xsl | 35 ++++++++++++++----------- stylesheets/wget-list.xsl | 3 ++- 6 files changed, 37 insertions(+), 26 deletions(-) diff --git a/stylesheets/dump-commands.xsl b/stylesheets/dump-commands.xsl index 9e2af96e4..48af34c20 100644 --- a/stylesheets/dump-commands.xsl +++ b/stylesheets/dump-commands.xsl @@ -7,7 +7,8 @@ - + + diff --git a/stylesheets/lfs-xsl/pdf.xsl b/stylesheets/lfs-xsl/pdf.xsl index 4028a19ea..679f73b84 100644 --- a/stylesheets/lfs-xsl/pdf.xsl +++ b/stylesheets/lfs-xsl/pdf.xsl @@ -1,4 +1,4 @@ - + - + See pdf/lfs-mixed.xsl. + Note: the argument in select= is a zero-width space + (unicode 200b, encoded in utf-8)--> + +   diff --git a/stylesheets/md5sum.xsl b/stylesheets/md5sum.xsl index 617bd4aa9..bb7268276 100644 --- a/stylesheets/md5sum.xsl +++ b/stylesheets/md5sum.xsl @@ -1,6 +1,6 @@ - + - + @@ -31,7 +31,8 @@ - + + @@ -55,4 +56,3 @@ - diff --git a/stylesheets/patcheslist.xsl b/stylesheets/patcheslist.xsl index d86d1814d..f863edc1f 100644 --- a/stylesheets/patcheslist.xsl +++ b/stylesheets/patcheslist.xsl @@ -1,4 +1,4 @@ - + %general-entities; @@ -22,26 +22,30 @@ function copy cp $1 $2 >>copyerrs 2>&1 } -umask 002 +umask 002 - - install -d -m 775 -g lfswww +# Create dest.dir if it doesn't exist +# Remove old patches +# Copy the patches +# Ensure correct ownership +install -d -m 775 -g lfswww - && - cd + && +cd - && - - rm -f *.patch copyerrs && + && +rm -f *.patch copyerrs && + + - - chgrp lfswww *.patch && +chgrp lfswww *.patch && if [ `wc -l copyerrs | sed 's/ *//' | cut -f1 -d' '` -gt 0 ]; then mail -s "Missing LFS patches" lfs-book@lists.linuxfromscratch.org < copyerrs -fi +fi - exit +exit + @@ -59,10 +63,11 @@ fi copy /srv/www/www.linuxfromscratch.org/patches/downloads/ - + / - . + . + diff --git a/stylesheets/wget-list.xsl b/stylesheets/wget-list.xsl index 62a518d38..f280fb36c 100644 --- a/stylesheets/wget-list.xsl +++ b/stylesheets/wget-list.xsl @@ -28,7 +28,8 @@ - + + From 7152faa5fac3e5d824e9f079026420413751dcf5 Mon Sep 17 00:00:00 2001 From: Pierre Labastie Date: Thu, 18 Jan 2024 20:53:23 +0100 Subject: [PATCH 057/113] Change all xml files to utf-8 encoding --- appendices/acknowledgments.xml | 2 +- appendices/acronymlist.xml | 2 +- appendices/creat-comm.xml | 2 +- appendices/dependencies.xml | 2 +- appendices/license.xml | 2 +- appendices/mit-lic.xml | 2 +- appendices/scripts.xml | 2 +- appendices/udev-rules.xml | 2 +- chapter01/askforhelp.xml | 2 +- chapter01/changelog.xml | 2 +- chapter01/chapter01.xml | 2 +- chapter01/how.xml | 2 +- chapter01/resources.xml | 2 +- chapter01/whatsnew.xml | 2 +- chapter02/aboutlfs.xml | 2 +- chapter02/chapter02.xml | 2 +- chapter02/creatingfilesystem.xml | 2 +- chapter02/creatingpartition.xml | 2 +- chapter02/hostreqs.xml | 2 +- chapter02/introduction.xml | 2 +- chapter02/mounting.xml | 2 +- chapter02/stages.xml | 2 +- chapter03/chapter03.xml | 2 +- chapter03/introduction.xml | 2 +- chapter03/packages.xml | 2 +- chapter03/patches.xml | 2 +- chapter04/aboutsbus.xml | 2 +- chapter04/abouttestsuites.xml | 2 +- chapter04/addinguser.xml | 2 +- chapter04/chapter04.xml | 2 +- chapter04/creatingminlayout.xml | 2 +- chapter04/introduction.xml | 2 +- chapter04/settingenviron.xml | 2 +- chapter05/binutils-pass1.xml | 2 +- chapter05/chapter05.xml | 2 +- chapter05/gcc-pass1.xml | 2 +- chapter05/glibc.xml | 2 +- chapter05/introduction.xml | 2 +- chapter05/libstdc++.xml | 2 +- chapter05/linux-headers.xml | 2 +- chapter06/bash.xml | 2 +- chapter06/binutils-pass2.xml | 2 +- chapter06/chapter06.xml | 2 +- chapter06/coreutils.xml | 2 +- chapter06/diffutils.xml | 2 +- chapter06/file.xml | 2 +- chapter06/findutils.xml | 2 +- chapter06/gawk.xml | 2 +- chapter06/gcc-pass2.xml | 2 +- chapter06/grep.xml | 2 +- chapter06/gzip.xml | 2 +- chapter06/introduction.xml | 2 +- chapter06/m4.xml | 2 +- chapter06/make.xml | 2 +- chapter06/ncurses.xml | 2 +- chapter06/patch.xml | 2 +- chapter06/sed.xml | 2 +- chapter06/tar.xml | 2 +- chapter06/xz.xml | 2 +- chapter07/bison.xml | 2 +- chapter07/changingowner.xml | 2 +- chapter07/chapter07.xml | 2 +- chapter07/chroot.xml | 2 +- chapter07/cleanup.xml | 2 +- chapter07/createfiles.xml | 2 +- chapter07/creatingdirs.xml | 2 +- chapter07/gettext.xml | 2 +- chapter07/introduction.xml | 2 +- chapter07/kernfs.xml | 2 +- chapter07/perl.xml | 2 +- chapter07/python.xml | 2 +- chapter07/texinfo.xml | 2 +- chapter07/util-linux.xml | 2 +- chapter08/aboutdebug.xml | 2 +- chapter08/acl.xml | 2 +- chapter08/attr.xml | 2 +- chapter08/autoconf.xml | 2 +- chapter08/automake.xml | 2 +- chapter08/bash.xml | 2 +- chapter08/bc.xml | 2 +- chapter08/binutils.xml | 2 +- chapter08/bison.xml | 2 +- chapter08/bzip2.xml | 2 +- chapter08/chapter08.xml | 2 +- chapter08/check.xml | 2 +- chapter08/cleanup.xml | 2 +- chapter08/coreutils.xml | 2 +- chapter08/dbus.xml | 2 +- chapter08/dejagnu.xml | 2 +- chapter08/diffutils.xml | 2 +- chapter08/e2fsprogs.xml | 2 +- chapter08/expat.xml | 2 +- chapter08/expect.xml | 2 +- chapter08/file.xml | 2 +- chapter08/findutils.xml | 2 +- chapter08/flex.xml | 2 +- chapter08/flit-core.xml | 2 +- chapter08/gawk.xml | 2 +- chapter08/gcc.xml | 2 +- chapter08/gdbm.xml | 2 +- chapter08/gettext.xml | 2 +- chapter08/glibc.xml | 2 +- chapter08/gmp.xml | 2 +- chapter08/gperf.xml | 2 +- chapter08/grep.xml | 2 +- chapter08/groff.xml | 2 +- chapter08/grub.xml | 2 +- chapter08/gzip.xml | 2 +- chapter08/iana-etc.xml | 2 +- chapter08/inetutils.xml | 2 +- chapter08/intltool.xml | 2 +- chapter08/introduction.xml | 2 +- chapter08/iproute2.xml | 2 +- chapter08/jinja2.xml | 2 +- chapter08/kbd.xml | 2 +- chapter08/kmod.xml | 2 +- chapter08/less.xml | 2 +- chapter08/libcap.xml | 2 +- chapter08/libelf.xml | 2 +- chapter08/libffi.xml | 2 +- chapter08/libpipeline.xml | 2 +- chapter08/libtool.xml | 2 +- chapter08/libxcrypt.xml | 2 +- chapter08/m4.xml | 2 +- chapter08/make.xml | 2 +- chapter08/man-db.xml | 2 +- chapter08/man-pages.xml | 2 +- chapter08/markupsafe.xml | 2 +- chapter08/meson.xml | 2 +- chapter08/mpc.xml | 2 +- chapter08/mpfr.xml | 2 +- chapter08/ncurses.xml | 2 +- chapter08/ninja.xml | 2 +- chapter08/openssl.xml | 2 +- chapter08/patch.xml | 2 +- chapter08/perl.xml | 2 +- chapter08/pkgconf.xml | 2 +- chapter08/pkgmgt.xml | 2 +- chapter08/procps.xml | 2 +- chapter08/psmisc.xml | 2 +- chapter08/python.xml | 2 +- chapter08/readline.xml | 2 +- chapter08/sed.xml | 2 +- chapter08/setuptools.xml | 2 +- chapter08/shadow.xml | 2 +- chapter08/stripping.xml | 2 +- chapter08/sysklogd.xml | 2 +- chapter08/systemd.xml | 2 +- chapter08/sysvinit.xml | 2 +- chapter08/tar.xml | 2 +- chapter08/tcl.xml | 2 +- chapter08/texinfo.xml | 2 +- chapter08/udev.xml | 2 +- chapter08/util-linux.xml | 2 +- chapter08/vim.xml | 2 +- chapter08/wheel.xml | 2 +- chapter08/xml-parser.xml | 2 +- chapter08/xz.xml | 2 +- chapter08/zlib.xml | 2 +- chapter08/zstd.xml | 2 +- chapter09/bootscripts.xml | 2 +- chapter09/chapter09.xml | 2 +- chapter09/clock.xml | 2 +- chapter09/consoled.xml | 2 +- chapter09/etcshells.xml | 2 +- chapter09/inputrc.xml | 2 +- chapter09/introduction.xml | 2 +- chapter09/introductiond.xml | 2 +- chapter09/locale.xml | 2 +- chapter09/network.xml | 2 +- chapter09/networkd.xml | 2 +- chapter09/profile.xml | 2 +- chapter09/symlinks.xml | 2 +- chapter09/systemd-custom.xml | 2 +- chapter09/udev.xml | 2 +- chapter09/usage.xml | 2 +- chapter10/chapter10.xml | 2 +- chapter10/fstab.xml | 2 +- chapter10/grub.xml | 2 +- chapter10/introduction.xml | 2 +- chapter10/kernel.xml | 2 +- chapter10/kernel/highmem.xml | 2 +- chapter10/kernel/nvme.xml | 2 +- chapter10/kernel/systemd.xml | 2 +- chapter10/kernel/sysv.xml | 2 +- chapter10/kernel/x2apic.xml | 2 +- chapter11/afterlfs.xml | 2 +- chapter11/chapter11.xml | 2 +- chapter11/getcounted.xml | 2 +- chapter11/reboot.xml | 2 +- chapter11/theend.xml | 2 +- chapter11/whatnow.xml | 2 +- index.xml | 2 +- part3intro/generalinstructions.xml | 2 +- part3intro/introduction.xml | 2 +- part3intro/part3intro.xml | 2 +- part3intro/toolchaintechnotes.xml | 2 +- prologue/architecture.xml | 2 +- prologue/audience.xml | 2 +- prologue/bookinfo.xml | 2 +- prologue/dedication.xml | 2 +- prologue/errata.xml | 2 +- prologue/foreword.xml | 2 +- prologue/organization.xml | 2 +- prologue/preface.xml | 2 +- prologue/prerequisites.xml | 2 +- prologue/standards.xml | 2 +- prologue/typography.xml | 2 +- prologue/why.xml | 2 +- 209 files changed, 209 insertions(+), 209 deletions(-) diff --git a/appendices/acknowledgments.xml b/appendices/acknowledgments.xml index 24cb88350..3d3f8bb69 100644 --- a/appendices/acknowledgments.xml +++ b/appendices/acknowledgments.xml @@ -1,4 +1,4 @@ - + diff --git a/appendices/acronymlist.xml b/appendices/acronymlist.xml index 9038da8f6..3ccfd3fb2 100644 --- a/appendices/acronymlist.xml +++ b/appendices/acronymlist.xml @@ -1,4 +1,4 @@ - + diff --git a/appendices/creat-comm.xml b/appendices/creat-comm.xml index 2ecc76097..be4e9ee7f 100644 --- a/appendices/creat-comm.xml +++ b/appendices/creat-comm.xml @@ -1,4 +1,4 @@ - + diff --git a/appendices/dependencies.xml b/appendices/dependencies.xml index 290f45ca5..adcb71fb2 100644 --- a/appendices/dependencies.xml +++ b/appendices/dependencies.xml @@ -1,4 +1,4 @@ - + diff --git a/appendices/license.xml b/appendices/license.xml index ebcb5c0be..75eb24257 100644 --- a/appendices/license.xml +++ b/appendices/license.xml @@ -1,4 +1,4 @@ - + diff --git a/appendices/mit-lic.xml b/appendices/mit-lic.xml index 1e8ed4d03..6715d2a48 100644 --- a/appendices/mit-lic.xml +++ b/appendices/mit-lic.xml @@ -1,4 +1,4 @@ - + diff --git a/appendices/scripts.xml b/appendices/scripts.xml index 69d653bdc..980b90961 100644 --- a/appendices/scripts.xml +++ b/appendices/scripts.xml @@ -1,4 +1,4 @@ - + diff --git a/appendices/udev-rules.xml b/appendices/udev-rules.xml index 189f55f41..25f41033e 100644 --- a/appendices/udev-rules.xml +++ b/appendices/udev-rules.xml @@ -1,4 +1,4 @@ - + diff --git a/chapter01/askforhelp.xml b/chapter01/askforhelp.xml index 5eb1d939f..dd36b30fa 100644 --- a/chapter01/askforhelp.xml +++ b/chapter01/askforhelp.xml @@ -1,4 +1,4 @@ - + diff --git a/chapter01/changelog.xml b/chapter01/changelog.xml index 15bd9a519..301e3dff1 100644 --- a/chapter01/changelog.xml +++ b/chapter01/changelog.xml @@ -1,4 +1,4 @@ - + diff --git a/chapter01/chapter01.xml b/chapter01/chapter01.xml index 6af8ca1c6..d54b7adcd 100644 --- a/chapter01/chapter01.xml +++ b/chapter01/chapter01.xml @@ -1,4 +1,4 @@ - + diff --git a/chapter01/how.xml b/chapter01/how.xml index 107c415aa..36dd88851 100644 --- a/chapter01/how.xml +++ b/chapter01/how.xml @@ -1,4 +1,4 @@ - + diff --git a/chapter01/resources.xml b/chapter01/resources.xml index d3bc7860e..47a568626 100644 --- a/chapter01/resources.xml +++ b/chapter01/resources.xml @@ -1,4 +1,4 @@ - + diff --git a/chapter01/whatsnew.xml b/chapter01/whatsnew.xml index e8002fcf6..e0c77ed72 100644 --- a/chapter01/whatsnew.xml +++ b/chapter01/whatsnew.xml @@ -1,4 +1,4 @@ - + + diff --git a/chapter02/chapter02.xml b/chapter02/chapter02.xml index c228ef2d8..9a9f2c720 100644 --- a/chapter02/chapter02.xml +++ b/chapter02/chapter02.xml @@ -1,4 +1,4 @@ - + diff --git a/chapter02/creatingfilesystem.xml b/chapter02/creatingfilesystem.xml index 5eedf456e..9b1a08b2a 100644 --- a/chapter02/creatingfilesystem.xml +++ b/chapter02/creatingfilesystem.xml @@ -1,4 +1,4 @@ - + diff --git a/chapter02/creatingpartition.xml b/chapter02/creatingpartition.xml index 35279cb75..ef16c8b92 100644 --- a/chapter02/creatingpartition.xml +++ b/chapter02/creatingpartition.xml @@ -1,4 +1,4 @@ - + diff --git a/chapter02/hostreqs.xml b/chapter02/hostreqs.xml index 63dcd943f..8d9d13567 100644 --- a/chapter02/hostreqs.xml +++ b/chapter02/hostreqs.xml @@ -1,4 +1,4 @@ - + diff --git a/chapter02/introduction.xml b/chapter02/introduction.xml index bddcfec61..f739613ff 100644 --- a/chapter02/introduction.xml +++ b/chapter02/introduction.xml @@ -1,4 +1,4 @@ - + diff --git a/chapter02/mounting.xml b/chapter02/mounting.xml index 1c2e7205e..6c279ac78 100644 --- a/chapter02/mounting.xml +++ b/chapter02/mounting.xml @@ -1,4 +1,4 @@ - + diff --git a/chapter02/stages.xml b/chapter02/stages.xml index 04f6373c9..710ff6585 100644 --- a/chapter02/stages.xml +++ b/chapter02/stages.xml @@ -1,4 +1,4 @@ - + diff --git a/chapter03/chapter03.xml b/chapter03/chapter03.xml index f9b36e2e2..ca3bc32ec 100644 --- a/chapter03/chapter03.xml +++ b/chapter03/chapter03.xml @@ -1,4 +1,4 @@ - + diff --git a/chapter03/introduction.xml b/chapter03/introduction.xml index 0e90508ae..05488ecbc 100644 --- a/chapter03/introduction.xml +++ b/chapter03/introduction.xml @@ -1,4 +1,4 @@ - + diff --git a/chapter03/packages.xml b/chapter03/packages.xml index deae31301..1f5b55427 100644 --- a/chapter03/packages.xml +++ b/chapter03/packages.xml @@ -1,4 +1,4 @@ - + diff --git a/chapter03/patches.xml b/chapter03/patches.xml index 2073638fc..263f3ec1b 100644 --- a/chapter03/patches.xml +++ b/chapter03/patches.xml @@ -1,4 +1,4 @@ - + diff --git a/chapter04/aboutsbus.xml b/chapter04/aboutsbus.xml index 42a523fa1..dccf59fe7 100644 --- a/chapter04/aboutsbus.xml +++ b/chapter04/aboutsbus.xml @@ -1,4 +1,4 @@ - + diff --git a/chapter04/abouttestsuites.xml b/chapter04/abouttestsuites.xml index 459472be0..734e1c378 100644 --- a/chapter04/abouttestsuites.xml +++ b/chapter04/abouttestsuites.xml @@ -1,4 +1,4 @@ - + diff --git a/chapter04/addinguser.xml b/chapter04/addinguser.xml index 2db1f756f..18a9d20e6 100644 --- a/chapter04/addinguser.xml +++ b/chapter04/addinguser.xml @@ -1,4 +1,4 @@ - + diff --git a/chapter04/chapter04.xml b/chapter04/chapter04.xml index 5ad2d22db..fdb847efe 100644 --- a/chapter04/chapter04.xml +++ b/chapter04/chapter04.xml @@ -1,4 +1,4 @@ - + diff --git a/chapter04/creatingminlayout.xml b/chapter04/creatingminlayout.xml index 90c825577..d4bfe9af1 100644 --- a/chapter04/creatingminlayout.xml +++ b/chapter04/creatingminlayout.xml @@ -1,4 +1,4 @@ - + diff --git a/chapter04/introduction.xml b/chapter04/introduction.xml index e2ef6f0ba..069df4008 100644 --- a/chapter04/introduction.xml +++ b/chapter04/introduction.xml @@ -1,4 +1,4 @@ - + diff --git a/chapter04/settingenviron.xml b/chapter04/settingenviron.xml index 13a8a0437..20988bd3f 100644 --- a/chapter04/settingenviron.xml +++ b/chapter04/settingenviron.xml @@ -1,4 +1,4 @@ - + diff --git a/chapter05/binutils-pass1.xml b/chapter05/binutils-pass1.xml index 03e9e2498..ef9f3948c 100644 --- a/chapter05/binutils-pass1.xml +++ b/chapter05/binutils-pass1.xml @@ -1,4 +1,4 @@ - + diff --git a/chapter05/chapter05.xml b/chapter05/chapter05.xml index 467a02a36..79d89a0a6 100644 --- a/chapter05/chapter05.xml +++ b/chapter05/chapter05.xml @@ -1,4 +1,4 @@ - + diff --git a/chapter05/gcc-pass1.xml b/chapter05/gcc-pass1.xml index 8ca2e92b5..7f33e5215 100644 --- a/chapter05/gcc-pass1.xml +++ b/chapter05/gcc-pass1.xml @@ -1,4 +1,4 @@ - + diff --git a/chapter05/glibc.xml b/chapter05/glibc.xml index da354551c..f54a7d107 100644 --- a/chapter05/glibc.xml +++ b/chapter05/glibc.xml @@ -1,4 +1,4 @@ - + diff --git a/chapter05/introduction.xml b/chapter05/introduction.xml index 0318acf8b..3a602d29e 100644 --- a/chapter05/introduction.xml +++ b/chapter05/introduction.xml @@ -1,4 +1,4 @@ - + diff --git a/chapter05/libstdc++.xml b/chapter05/libstdc++.xml index 1dc4277ee..e16efdea9 100644 --- a/chapter05/libstdc++.xml +++ b/chapter05/libstdc++.xml @@ -1,4 +1,4 @@ - + diff --git a/chapter05/linux-headers.xml b/chapter05/linux-headers.xml index 09fedf835..2c01e944c 100644 --- a/chapter05/linux-headers.xml +++ b/chapter05/linux-headers.xml @@ -1,4 +1,4 @@ - + diff --git a/chapter06/bash.xml b/chapter06/bash.xml index d00e685ca..54fa6f444 100644 --- a/chapter06/bash.xml +++ b/chapter06/bash.xml @@ -1,4 +1,4 @@ - + diff --git a/chapter06/binutils-pass2.xml b/chapter06/binutils-pass2.xml index 15582f937..9832e154d 100644 --- a/chapter06/binutils-pass2.xml +++ b/chapter06/binutils-pass2.xml @@ -1,4 +1,4 @@ - + diff --git a/chapter06/chapter06.xml b/chapter06/chapter06.xml index 366e9a8ab..70de6ff3e 100644 --- a/chapter06/chapter06.xml +++ b/chapter06/chapter06.xml @@ -1,4 +1,4 @@ - + diff --git a/chapter06/coreutils.xml b/chapter06/coreutils.xml index f6b6c6310..9b246a5f4 100644 --- a/chapter06/coreutils.xml +++ b/chapter06/coreutils.xml @@ -1,4 +1,4 @@ - + diff --git a/chapter06/diffutils.xml b/chapter06/diffutils.xml index d2b875a9d..92951604d 100644 --- a/chapter06/diffutils.xml +++ b/chapter06/diffutils.xml @@ -1,4 +1,4 @@ - + diff --git a/chapter06/file.xml b/chapter06/file.xml index 425a9bf58..cb952d9bb 100644 --- a/chapter06/file.xml +++ b/chapter06/file.xml @@ -1,4 +1,4 @@ - + diff --git a/chapter06/findutils.xml b/chapter06/findutils.xml index 7bb0c7219..db8eea40e 100644 --- a/chapter06/findutils.xml +++ b/chapter06/findutils.xml @@ -1,4 +1,4 @@ - + diff --git a/chapter06/gawk.xml b/chapter06/gawk.xml index 40d69548d..d44428d0a 100644 --- a/chapter06/gawk.xml +++ b/chapter06/gawk.xml @@ -1,4 +1,4 @@ - + diff --git a/chapter06/gcc-pass2.xml b/chapter06/gcc-pass2.xml index ae88a41f0..98b28150d 100644 --- a/chapter06/gcc-pass2.xml +++ b/chapter06/gcc-pass2.xml @@ -1,4 +1,4 @@ - + diff --git a/chapter06/grep.xml b/chapter06/grep.xml index dd942c712..ac60ff8b3 100644 --- a/chapter06/grep.xml +++ b/chapter06/grep.xml @@ -1,4 +1,4 @@ - + diff --git a/chapter06/gzip.xml b/chapter06/gzip.xml index d75f26928..9f5f170c4 100644 --- a/chapter06/gzip.xml +++ b/chapter06/gzip.xml @@ -1,4 +1,4 @@ - + diff --git a/chapter06/introduction.xml b/chapter06/introduction.xml index a0ecb1ef1..bfa2dafd4 100644 --- a/chapter06/introduction.xml +++ b/chapter06/introduction.xml @@ -1,4 +1,4 @@ - + diff --git a/chapter06/m4.xml b/chapter06/m4.xml index 91e0a9ea2..0bbd08079 100644 --- a/chapter06/m4.xml +++ b/chapter06/m4.xml @@ -1,4 +1,4 @@ - + diff --git a/chapter06/make.xml b/chapter06/make.xml index cf0dbce18..eaf0db48f 100644 --- a/chapter06/make.xml +++ b/chapter06/make.xml @@ -1,4 +1,4 @@ - + diff --git a/chapter06/ncurses.xml b/chapter06/ncurses.xml index 8d7c8b1fe..f25c43777 100644 --- a/chapter06/ncurses.xml +++ b/chapter06/ncurses.xml @@ -1,4 +1,4 @@ - + diff --git a/chapter06/patch.xml b/chapter06/patch.xml index 7032d6eea..6444e7785 100644 --- a/chapter06/patch.xml +++ b/chapter06/patch.xml @@ -1,4 +1,4 @@ - + diff --git a/chapter06/sed.xml b/chapter06/sed.xml index b297afedd..f96bd5c9c 100644 --- a/chapter06/sed.xml +++ b/chapter06/sed.xml @@ -1,4 +1,4 @@ - + diff --git a/chapter06/tar.xml b/chapter06/tar.xml index 4e0ae5c44..67bc22540 100644 --- a/chapter06/tar.xml +++ b/chapter06/tar.xml @@ -1,4 +1,4 @@ - + diff --git a/chapter06/xz.xml b/chapter06/xz.xml index 78fa7d4f3..868c8aded 100644 --- a/chapter06/xz.xml +++ b/chapter06/xz.xml @@ -1,4 +1,4 @@ - + diff --git a/chapter07/bison.xml b/chapter07/bison.xml index a3718bf19..23261c3a8 100644 --- a/chapter07/bison.xml +++ b/chapter07/bison.xml @@ -1,4 +1,4 @@ - + diff --git a/chapter07/changingowner.xml b/chapter07/changingowner.xml index b412bb278..8f7b5519c 100644 --- a/chapter07/changingowner.xml +++ b/chapter07/changingowner.xml @@ -1,4 +1,4 @@ - + diff --git a/chapter07/chapter07.xml b/chapter07/chapter07.xml index 362980dda..ce72094c1 100644 --- a/chapter07/chapter07.xml +++ b/chapter07/chapter07.xml @@ -1,4 +1,4 @@ - + diff --git a/chapter07/chroot.xml b/chapter07/chroot.xml index 70f5717dd..e07dd7338 100644 --- a/chapter07/chroot.xml +++ b/chapter07/chroot.xml @@ -1,4 +1,4 @@ - + diff --git a/chapter07/cleanup.xml b/chapter07/cleanup.xml index 356f3c34e..2bfe68d9e 100644 --- a/chapter07/cleanup.xml +++ b/chapter07/cleanup.xml @@ -1,4 +1,4 @@ - + diff --git a/chapter07/createfiles.xml b/chapter07/createfiles.xml index 9047fa744..cf68cde64 100644 --- a/chapter07/createfiles.xml +++ b/chapter07/createfiles.xml @@ -1,4 +1,4 @@ - + diff --git a/chapter07/creatingdirs.xml b/chapter07/creatingdirs.xml index c96d9c5b8..aee184941 100644 --- a/chapter07/creatingdirs.xml +++ b/chapter07/creatingdirs.xml @@ -1,4 +1,4 @@ - + diff --git a/chapter07/gettext.xml b/chapter07/gettext.xml index 12a8b5cfd..b8859e3b0 100644 --- a/chapter07/gettext.xml +++ b/chapter07/gettext.xml @@ -1,4 +1,4 @@ - + diff --git a/chapter07/introduction.xml b/chapter07/introduction.xml index d00f3fe2a..f4836018c 100644 --- a/chapter07/introduction.xml +++ b/chapter07/introduction.xml @@ -1,4 +1,4 @@ - + diff --git a/chapter07/kernfs.xml b/chapter07/kernfs.xml index 049f6e804..00a971b59 100644 --- a/chapter07/kernfs.xml +++ b/chapter07/kernfs.xml @@ -1,4 +1,4 @@ - + diff --git a/chapter07/perl.xml b/chapter07/perl.xml index c8e3d7c98..0c400bf12 100644 --- a/chapter07/perl.xml +++ b/chapter07/perl.xml @@ -1,4 +1,4 @@ - + diff --git a/chapter07/python.xml b/chapter07/python.xml index d25432d1f..4ed385d58 100644 --- a/chapter07/python.xml +++ b/chapter07/python.xml @@ -1,4 +1,4 @@ - + diff --git a/chapter07/texinfo.xml b/chapter07/texinfo.xml index 34a386416..309a20942 100644 --- a/chapter07/texinfo.xml +++ b/chapter07/texinfo.xml @@ -1,4 +1,4 @@ - + diff --git a/chapter07/util-linux.xml b/chapter07/util-linux.xml index b5aca7e7b..488635b7a 100644 --- a/chapter07/util-linux.xml +++ b/chapter07/util-linux.xml @@ -1,4 +1,4 @@ - + diff --git a/chapter08/aboutdebug.xml b/chapter08/aboutdebug.xml index e9b90d64b..6eebdd65d 100644 --- a/chapter08/aboutdebug.xml +++ b/chapter08/aboutdebug.xml @@ -1,4 +1,4 @@ - + diff --git a/chapter08/acl.xml b/chapter08/acl.xml index 6702af90f..adef493f1 100644 --- a/chapter08/acl.xml +++ b/chapter08/acl.xml @@ -1,4 +1,4 @@ - + diff --git a/chapter08/attr.xml b/chapter08/attr.xml index 5272cfcb2..d54561fda 100644 --- a/chapter08/attr.xml +++ b/chapter08/attr.xml @@ -1,4 +1,4 @@ - + diff --git a/chapter08/autoconf.xml b/chapter08/autoconf.xml index 120f31632..7c89fba01 100644 --- a/chapter08/autoconf.xml +++ b/chapter08/autoconf.xml @@ -1,4 +1,4 @@ - + diff --git a/chapter08/automake.xml b/chapter08/automake.xml index 5d7541049..ed1907c55 100644 --- a/chapter08/automake.xml +++ b/chapter08/automake.xml @@ -1,4 +1,4 @@ - + diff --git a/chapter08/bash.xml b/chapter08/bash.xml index a8bf2b871..2656d8ca3 100644 --- a/chapter08/bash.xml +++ b/chapter08/bash.xml @@ -1,4 +1,4 @@ - + diff --git a/chapter08/bc.xml b/chapter08/bc.xml index 4677f06fd..3d8cd9983 100644 --- a/chapter08/bc.xml +++ b/chapter08/bc.xml @@ -1,4 +1,4 @@ - + diff --git a/chapter08/binutils.xml b/chapter08/binutils.xml index 9e93e55f0..d5e19c84b 100644 --- a/chapter08/binutils.xml +++ b/chapter08/binutils.xml @@ -1,4 +1,4 @@ - + diff --git a/chapter08/bison.xml b/chapter08/bison.xml index 88bd90099..f466c76eb 100644 --- a/chapter08/bison.xml +++ b/chapter08/bison.xml @@ -1,4 +1,4 @@ - + diff --git a/chapter08/bzip2.xml b/chapter08/bzip2.xml index e57fe61c4..21b8fd92c 100644 --- a/chapter08/bzip2.xml +++ b/chapter08/bzip2.xml @@ -1,4 +1,4 @@ - + diff --git a/chapter08/chapter08.xml b/chapter08/chapter08.xml index 2fccb6139..c3ded2719 100644 --- a/chapter08/chapter08.xml +++ b/chapter08/chapter08.xml @@ -1,4 +1,4 @@ - + diff --git a/chapter08/check.xml b/chapter08/check.xml index cb6b3590d..1000aaa68 100644 --- a/chapter08/check.xml +++ b/chapter08/check.xml @@ -1,4 +1,4 @@ - + diff --git a/chapter08/cleanup.xml b/chapter08/cleanup.xml index daa38f597..da1c61afc 100644 --- a/chapter08/cleanup.xml +++ b/chapter08/cleanup.xml @@ -1,4 +1,4 @@ - + diff --git a/chapter08/coreutils.xml b/chapter08/coreutils.xml index 7d715f2f3..87833a134 100644 --- a/chapter08/coreutils.xml +++ b/chapter08/coreutils.xml @@ -1,4 +1,4 @@ - + diff --git a/chapter08/dbus.xml b/chapter08/dbus.xml index 309e5b2e9..36d5c55ca 100644 --- a/chapter08/dbus.xml +++ b/chapter08/dbus.xml @@ -1,4 +1,4 @@ - + diff --git a/chapter08/dejagnu.xml b/chapter08/dejagnu.xml index 1f3ecd057..c9b537f0b 100644 --- a/chapter08/dejagnu.xml +++ b/chapter08/dejagnu.xml @@ -1,4 +1,4 @@ - + diff --git a/chapter08/diffutils.xml b/chapter08/diffutils.xml index 2ffb9fa8c..b8cdf796f 100644 --- a/chapter08/diffutils.xml +++ b/chapter08/diffutils.xml @@ -1,4 +1,4 @@ - + diff --git a/chapter08/e2fsprogs.xml b/chapter08/e2fsprogs.xml index 5d50508b5..6a4489dee 100644 --- a/chapter08/e2fsprogs.xml +++ b/chapter08/e2fsprogs.xml @@ -1,4 +1,4 @@ - + diff --git a/chapter08/expat.xml b/chapter08/expat.xml index 86dd1d287..34595aa5f 100644 --- a/chapter08/expat.xml +++ b/chapter08/expat.xml @@ -1,4 +1,4 @@ - + diff --git a/chapter08/expect.xml b/chapter08/expect.xml index 7b6dac354..90584ced1 100644 --- a/chapter08/expect.xml +++ b/chapter08/expect.xml @@ -1,4 +1,4 @@ - + diff --git a/chapter08/file.xml b/chapter08/file.xml index eb9f41a2b..790d0d0ef 100644 --- a/chapter08/file.xml +++ b/chapter08/file.xml @@ -1,4 +1,4 @@ - + diff --git a/chapter08/findutils.xml b/chapter08/findutils.xml index 5440490cf..7012c221a 100644 --- a/chapter08/findutils.xml +++ b/chapter08/findutils.xml @@ -1,4 +1,4 @@ - + diff --git a/chapter08/flex.xml b/chapter08/flex.xml index 478637adc..ff90f0a1a 100644 --- a/chapter08/flex.xml +++ b/chapter08/flex.xml @@ -1,4 +1,4 @@ - + diff --git a/chapter08/flit-core.xml b/chapter08/flit-core.xml index 661a02684..419efc30f 100644 --- a/chapter08/flit-core.xml +++ b/chapter08/flit-core.xml @@ -1,4 +1,4 @@ - + diff --git a/chapter08/gawk.xml b/chapter08/gawk.xml index d8984b58e..a7f74eb92 100644 --- a/chapter08/gawk.xml +++ b/chapter08/gawk.xml @@ -1,4 +1,4 @@ - + diff --git a/chapter08/gcc.xml b/chapter08/gcc.xml index 693d6e975..349d83c2a 100644 --- a/chapter08/gcc.xml +++ b/chapter08/gcc.xml @@ -1,4 +1,4 @@ - + diff --git a/chapter08/gdbm.xml b/chapter08/gdbm.xml index 80961a65d..50fe62b77 100644 --- a/chapter08/gdbm.xml +++ b/chapter08/gdbm.xml @@ -1,4 +1,4 @@ - + diff --git a/chapter08/gettext.xml b/chapter08/gettext.xml index bf5a97522..f26d15536 100644 --- a/chapter08/gettext.xml +++ b/chapter08/gettext.xml @@ -1,4 +1,4 @@ - + diff --git a/chapter08/glibc.xml b/chapter08/glibc.xml index 9a407291c..1c365ccb1 100644 --- a/chapter08/glibc.xml +++ b/chapter08/glibc.xml @@ -1,4 +1,4 @@ - + diff --git a/chapter08/gmp.xml b/chapter08/gmp.xml index c2fd316f8..2b8f0fa8c 100644 --- a/chapter08/gmp.xml +++ b/chapter08/gmp.xml @@ -1,4 +1,4 @@ - + diff --git a/chapter08/gperf.xml b/chapter08/gperf.xml index aa42fe18b..bbfbbe735 100644 --- a/chapter08/gperf.xml +++ b/chapter08/gperf.xml @@ -1,4 +1,4 @@ - + diff --git a/chapter08/grep.xml b/chapter08/grep.xml index 25d598dfe..b518de18b 100644 --- a/chapter08/grep.xml +++ b/chapter08/grep.xml @@ -1,4 +1,4 @@ - + diff --git a/chapter08/groff.xml b/chapter08/groff.xml index 3a4dc2c56..7399bee21 100644 --- a/chapter08/groff.xml +++ b/chapter08/groff.xml @@ -1,4 +1,4 @@ - + diff --git a/chapter08/grub.xml b/chapter08/grub.xml index a89963189..aa13ce3b0 100644 --- a/chapter08/grub.xml +++ b/chapter08/grub.xml @@ -1,4 +1,4 @@ - + diff --git a/chapter08/gzip.xml b/chapter08/gzip.xml index a20bcdd7a..c4130944c 100644 --- a/chapter08/gzip.xml +++ b/chapter08/gzip.xml @@ -1,4 +1,4 @@ - + diff --git a/chapter08/iana-etc.xml b/chapter08/iana-etc.xml index 65530f9d8..752a27336 100644 --- a/chapter08/iana-etc.xml +++ b/chapter08/iana-etc.xml @@ -1,4 +1,4 @@ - + diff --git a/chapter08/inetutils.xml b/chapter08/inetutils.xml index 8acb361d8..468ccb25e 100644 --- a/chapter08/inetutils.xml +++ b/chapter08/inetutils.xml @@ -1,4 +1,4 @@ - + diff --git a/chapter08/intltool.xml b/chapter08/intltool.xml index d48c93015..9689afd6a 100644 --- a/chapter08/intltool.xml +++ b/chapter08/intltool.xml @@ -1,4 +1,4 @@ - + diff --git a/chapter08/introduction.xml b/chapter08/introduction.xml index 93d4bd68d..ccfe6fa14 100644 --- a/chapter08/introduction.xml +++ b/chapter08/introduction.xml @@ -1,4 +1,4 @@ - + diff --git a/chapter08/iproute2.xml b/chapter08/iproute2.xml index cd3e5a658..8a6755f3d 100644 --- a/chapter08/iproute2.xml +++ b/chapter08/iproute2.xml @@ -1,4 +1,4 @@ - + diff --git a/chapter08/jinja2.xml b/chapter08/jinja2.xml index 59a01e26c..c06da9139 100644 --- a/chapter08/jinja2.xml +++ b/chapter08/jinja2.xml @@ -1,4 +1,4 @@ - + diff --git a/chapter08/kbd.xml b/chapter08/kbd.xml index 28685015a..3239d6a21 100644 --- a/chapter08/kbd.xml +++ b/chapter08/kbd.xml @@ -1,4 +1,4 @@ - + diff --git a/chapter08/kmod.xml b/chapter08/kmod.xml index 728f59bc7..9a16da3f0 100644 --- a/chapter08/kmod.xml +++ b/chapter08/kmod.xml @@ -1,4 +1,4 @@ - + diff --git a/chapter08/less.xml b/chapter08/less.xml index 99f4e62ee..e9b6a6c67 100644 --- a/chapter08/less.xml +++ b/chapter08/less.xml @@ -1,4 +1,4 @@ - + diff --git a/chapter08/libcap.xml b/chapter08/libcap.xml index 367e05c3f..09a56f343 100644 --- a/chapter08/libcap.xml +++ b/chapter08/libcap.xml @@ -1,4 +1,4 @@ - + diff --git a/chapter08/libelf.xml b/chapter08/libelf.xml index a17818274..68ccf2b42 100644 --- a/chapter08/libelf.xml +++ b/chapter08/libelf.xml @@ -1,4 +1,4 @@ - + diff --git a/chapter08/libffi.xml b/chapter08/libffi.xml index 4c6d2830f..40af81288 100644 --- a/chapter08/libffi.xml +++ b/chapter08/libffi.xml @@ -1,4 +1,4 @@ - + diff --git a/chapter08/libpipeline.xml b/chapter08/libpipeline.xml index 5d275d381..a1be58923 100644 --- a/chapter08/libpipeline.xml +++ b/chapter08/libpipeline.xml @@ -1,4 +1,4 @@ - + diff --git a/chapter08/libtool.xml b/chapter08/libtool.xml index d73bd6efb..89b7786aa 100644 --- a/chapter08/libtool.xml +++ b/chapter08/libtool.xml @@ -1,4 +1,4 @@ - + diff --git a/chapter08/libxcrypt.xml b/chapter08/libxcrypt.xml index 1838a55b6..7c6cc15ba 100644 --- a/chapter08/libxcrypt.xml +++ b/chapter08/libxcrypt.xml @@ -1,4 +1,4 @@ - + diff --git a/chapter08/m4.xml b/chapter08/m4.xml index 14ce93291..2af3fd283 100644 --- a/chapter08/m4.xml +++ b/chapter08/m4.xml @@ -1,4 +1,4 @@ - + diff --git a/chapter08/make.xml b/chapter08/make.xml index 80abcd128..186698a58 100644 --- a/chapter08/make.xml +++ b/chapter08/make.xml @@ -1,4 +1,4 @@ - + diff --git a/chapter08/man-db.xml b/chapter08/man-db.xml index 229111131..e6d141987 100644 --- a/chapter08/man-db.xml +++ b/chapter08/man-db.xml @@ -1,4 +1,4 @@ - + diff --git a/chapter08/man-pages.xml b/chapter08/man-pages.xml index 19772f414..54029fd2d 100644 --- a/chapter08/man-pages.xml +++ b/chapter08/man-pages.xml @@ -1,4 +1,4 @@ - + diff --git a/chapter08/markupsafe.xml b/chapter08/markupsafe.xml index c09b9a64c..685b7b520 100644 --- a/chapter08/markupsafe.xml +++ b/chapter08/markupsafe.xml @@ -1,4 +1,4 @@ - + diff --git a/chapter08/meson.xml b/chapter08/meson.xml index 8cf308237..89e3a5bdc 100644 --- a/chapter08/meson.xml +++ b/chapter08/meson.xml @@ -1,4 +1,4 @@ - + diff --git a/chapter08/mpc.xml b/chapter08/mpc.xml index 941ee041c..f35378359 100644 --- a/chapter08/mpc.xml +++ b/chapter08/mpc.xml @@ -1,4 +1,4 @@ - + diff --git a/chapter08/mpfr.xml b/chapter08/mpfr.xml index cba4a64aa..9e7f75825 100644 --- a/chapter08/mpfr.xml +++ b/chapter08/mpfr.xml @@ -1,4 +1,4 @@ - + diff --git a/chapter08/ncurses.xml b/chapter08/ncurses.xml index b51099001..0703d0e1c 100644 --- a/chapter08/ncurses.xml +++ b/chapter08/ncurses.xml @@ -1,4 +1,4 @@ - + diff --git a/chapter08/ninja.xml b/chapter08/ninja.xml index 4aca7b8c7..106e63970 100644 --- a/chapter08/ninja.xml +++ b/chapter08/ninja.xml @@ -1,4 +1,4 @@ - + diff --git a/chapter08/openssl.xml b/chapter08/openssl.xml index efc909627..ae5d27e38 100644 --- a/chapter08/openssl.xml +++ b/chapter08/openssl.xml @@ -1,4 +1,4 @@ - + diff --git a/chapter08/patch.xml b/chapter08/patch.xml index 870007b98..239038094 100644 --- a/chapter08/patch.xml +++ b/chapter08/patch.xml @@ -1,4 +1,4 @@ - + diff --git a/chapter08/perl.xml b/chapter08/perl.xml index 2bb849645..34c6ed32a 100644 --- a/chapter08/perl.xml +++ b/chapter08/perl.xml @@ -1,4 +1,4 @@ - + diff --git a/chapter08/pkgconf.xml b/chapter08/pkgconf.xml index b95d7ab2c..0155356aa 100644 --- a/chapter08/pkgconf.xml +++ b/chapter08/pkgconf.xml @@ -1,4 +1,4 @@ - + diff --git a/chapter08/pkgmgt.xml b/chapter08/pkgmgt.xml index 185538796..42a6ff945 100644 --- a/chapter08/pkgmgt.xml +++ b/chapter08/pkgmgt.xml @@ -1,4 +1,4 @@ - + diff --git a/chapter08/procps.xml b/chapter08/procps.xml index 7fc74f587..0d2537054 100644 --- a/chapter08/procps.xml +++ b/chapter08/procps.xml @@ -1,4 +1,4 @@ - + diff --git a/chapter08/psmisc.xml b/chapter08/psmisc.xml index cbf7609f3..b1aa31d0c 100644 --- a/chapter08/psmisc.xml +++ b/chapter08/psmisc.xml @@ -1,4 +1,4 @@ - + diff --git a/chapter08/python.xml b/chapter08/python.xml index 62279880d..7ac618c09 100644 --- a/chapter08/python.xml +++ b/chapter08/python.xml @@ -1,4 +1,4 @@ - + diff --git a/chapter08/readline.xml b/chapter08/readline.xml index ea073308d..1fb7474c1 100644 --- a/chapter08/readline.xml +++ b/chapter08/readline.xml @@ -1,4 +1,4 @@ - + diff --git a/chapter08/sed.xml b/chapter08/sed.xml index 629b83465..4a524c751 100644 --- a/chapter08/sed.xml +++ b/chapter08/sed.xml @@ -1,4 +1,4 @@ - + diff --git a/chapter08/setuptools.xml b/chapter08/setuptools.xml index 257a50328..dfb31c5b8 100644 --- a/chapter08/setuptools.xml +++ b/chapter08/setuptools.xml @@ -1,4 +1,4 @@ - + diff --git a/chapter08/shadow.xml b/chapter08/shadow.xml index 315234c7f..49bcae6de 100644 --- a/chapter08/shadow.xml +++ b/chapter08/shadow.xml @@ -1,4 +1,4 @@ - + diff --git a/chapter08/stripping.xml b/chapter08/stripping.xml index b7b983d73..ab79e0dcf 100644 --- a/chapter08/stripping.xml +++ b/chapter08/stripping.xml @@ -1,4 +1,4 @@ - + diff --git a/chapter08/sysklogd.xml b/chapter08/sysklogd.xml index 89fc314ed..131b7e7fc 100644 --- a/chapter08/sysklogd.xml +++ b/chapter08/sysklogd.xml @@ -1,4 +1,4 @@ - + diff --git a/chapter08/systemd.xml b/chapter08/systemd.xml index b5fa9bdcb..5bc2a3553 100644 --- a/chapter08/systemd.xml +++ b/chapter08/systemd.xml @@ -1,4 +1,4 @@ - + diff --git a/chapter08/sysvinit.xml b/chapter08/sysvinit.xml index 7b31ec007..97bb9113c 100644 --- a/chapter08/sysvinit.xml +++ b/chapter08/sysvinit.xml @@ -1,4 +1,4 @@ - + diff --git a/chapter08/tar.xml b/chapter08/tar.xml index 802f04d2e..1d51203ba 100644 --- a/chapter08/tar.xml +++ b/chapter08/tar.xml @@ -1,4 +1,4 @@ - + diff --git a/chapter08/tcl.xml b/chapter08/tcl.xml index 5cf4e0d13..8a7884804 100644 --- a/chapter08/tcl.xml +++ b/chapter08/tcl.xml @@ -1,4 +1,4 @@ - + diff --git a/chapter08/texinfo.xml b/chapter08/texinfo.xml index 5eebeb0e3..0269bbe88 100644 --- a/chapter08/texinfo.xml +++ b/chapter08/texinfo.xml @@ -1,4 +1,4 @@ - + diff --git a/chapter08/udev.xml b/chapter08/udev.xml index a4ed12a17..98ee48cf2 100644 --- a/chapter08/udev.xml +++ b/chapter08/udev.xml @@ -1,4 +1,4 @@ - + diff --git a/chapter08/util-linux.xml b/chapter08/util-linux.xml index dc061bccf..183e58418 100644 --- a/chapter08/util-linux.xml +++ b/chapter08/util-linux.xml @@ -1,4 +1,4 @@ - + diff --git a/chapter08/vim.xml b/chapter08/vim.xml index 8672ad818..9dd3b4b74 100644 --- a/chapter08/vim.xml +++ b/chapter08/vim.xml @@ -1,4 +1,4 @@ - + diff --git a/chapter08/wheel.xml b/chapter08/wheel.xml index 0f3a1c99e..605cda1be 100644 --- a/chapter08/wheel.xml +++ b/chapter08/wheel.xml @@ -1,4 +1,4 @@ - + diff --git a/chapter08/xml-parser.xml b/chapter08/xml-parser.xml index 62053d566..8b3dd434d 100644 --- a/chapter08/xml-parser.xml +++ b/chapter08/xml-parser.xml @@ -1,4 +1,4 @@ - + diff --git a/chapter08/xz.xml b/chapter08/xz.xml index 362c667dc..316b8558e 100644 --- a/chapter08/xz.xml +++ b/chapter08/xz.xml @@ -1,4 +1,4 @@ - + diff --git a/chapter08/zlib.xml b/chapter08/zlib.xml index 604d5d503..6208a6172 100644 --- a/chapter08/zlib.xml +++ b/chapter08/zlib.xml @@ -1,4 +1,4 @@ - + diff --git a/chapter08/zstd.xml b/chapter08/zstd.xml index ae793a34b..1a76103e5 100644 --- a/chapter08/zstd.xml +++ b/chapter08/zstd.xml @@ -1,4 +1,4 @@ - + diff --git a/chapter09/bootscripts.xml b/chapter09/bootscripts.xml index fbffa76df..b4113728f 100644 --- a/chapter09/bootscripts.xml +++ b/chapter09/bootscripts.xml @@ -1,4 +1,4 @@ - + diff --git a/chapter09/chapter09.xml b/chapter09/chapter09.xml index 499e66a6f..1f6dda19c 100644 --- a/chapter09/chapter09.xml +++ b/chapter09/chapter09.xml @@ -1,4 +1,4 @@ - + diff --git a/chapter09/clock.xml b/chapter09/clock.xml index 01f0efef9..be60684fb 100644 --- a/chapter09/clock.xml +++ b/chapter09/clock.xml @@ -1,4 +1,4 @@ - + diff --git a/chapter09/consoled.xml b/chapter09/consoled.xml index c7e4ab9ad..94e99ce8d 100644 --- a/chapter09/consoled.xml +++ b/chapter09/consoled.xml @@ -1,4 +1,4 @@ - + diff --git a/chapter09/etcshells.xml b/chapter09/etcshells.xml index 3703d507f..7e095b530 100644 --- a/chapter09/etcshells.xml +++ b/chapter09/etcshells.xml @@ -1,4 +1,4 @@ - + diff --git a/chapter09/inputrc.xml b/chapter09/inputrc.xml index cf501c393..0c647bc93 100644 --- a/chapter09/inputrc.xml +++ b/chapter09/inputrc.xml @@ -1,4 +1,4 @@ - + diff --git a/chapter09/introduction.xml b/chapter09/introduction.xml index 745ca3165..cad7be2a5 100644 --- a/chapter09/introduction.xml +++ b/chapter09/introduction.xml @@ -1,4 +1,4 @@ - + diff --git a/chapter09/introductiond.xml b/chapter09/introductiond.xml index f0be70cec..19648c3ba 100644 --- a/chapter09/introductiond.xml +++ b/chapter09/introductiond.xml @@ -1,4 +1,4 @@ - + diff --git a/chapter09/locale.xml b/chapter09/locale.xml index 9c0cecb2b..8b6d2c4b2 100644 --- a/chapter09/locale.xml +++ b/chapter09/locale.xml @@ -1,4 +1,4 @@ - + diff --git a/chapter09/network.xml b/chapter09/network.xml index 541ece699..f8b549eff 100644 --- a/chapter09/network.xml +++ b/chapter09/network.xml @@ -1,4 +1,4 @@ - + diff --git a/chapter09/networkd.xml b/chapter09/networkd.xml index 1ad7ec94c..19a1f7c01 100644 --- a/chapter09/networkd.xml +++ b/chapter09/networkd.xml @@ -1,4 +1,4 @@ - + diff --git a/chapter09/profile.xml b/chapter09/profile.xml index 1b87632f7..8f0f59d1f 100644 --- a/chapter09/profile.xml +++ b/chapter09/profile.xml @@ -1,4 +1,4 @@ - + diff --git a/chapter09/symlinks.xml b/chapter09/symlinks.xml index b2479f053..71e35f231 100644 --- a/chapter09/symlinks.xml +++ b/chapter09/symlinks.xml @@ -1,4 +1,4 @@ - + diff --git a/chapter09/systemd-custom.xml b/chapter09/systemd-custom.xml index 0218b0f23..81a94a148 100644 --- a/chapter09/systemd-custom.xml +++ b/chapter09/systemd-custom.xml @@ -1,4 +1,4 @@ - + diff --git a/chapter09/udev.xml b/chapter09/udev.xml index aa7e067e6..0fba5a8b4 100644 --- a/chapter09/udev.xml +++ b/chapter09/udev.xml @@ -1,4 +1,4 @@ - + diff --git a/chapter09/usage.xml b/chapter09/usage.xml index b14f3635c..1fc7189d6 100644 --- a/chapter09/usage.xml +++ b/chapter09/usage.xml @@ -1,4 +1,4 @@ - + diff --git a/chapter10/chapter10.xml b/chapter10/chapter10.xml index d7236b21c..28b30f55e 100644 --- a/chapter10/chapter10.xml +++ b/chapter10/chapter10.xml @@ -1,4 +1,4 @@ - + diff --git a/chapter10/fstab.xml b/chapter10/fstab.xml index eaac86b72..c20f806dd 100644 --- a/chapter10/fstab.xml +++ b/chapter10/fstab.xml @@ -1,4 +1,4 @@ - + diff --git a/chapter10/grub.xml b/chapter10/grub.xml index 1b2335623..cb6518791 100644 --- a/chapter10/grub.xml +++ b/chapter10/grub.xml @@ -1,4 +1,4 @@ - + diff --git a/chapter10/introduction.xml b/chapter10/introduction.xml index 2b233ec08..3e4cb85d4 100644 --- a/chapter10/introduction.xml +++ b/chapter10/introduction.xml @@ -1,4 +1,4 @@ - + diff --git a/chapter10/kernel.xml b/chapter10/kernel.xml index 5bbfff11a..ce732ccb5 100644 --- a/chapter10/kernel.xml +++ b/chapter10/kernel.xml @@ -1,4 +1,4 @@ - + diff --git a/chapter10/kernel/highmem.xml b/chapter10/kernel/highmem.xml index 4f0938142..4849fc248 100644 --- a/chapter10/kernel/highmem.xml +++ b/chapter10/kernel/highmem.xml @@ -1,4 +1,4 @@ - + From 8f7d945a664c0974e0d8611a00a11b6c12974f95 Mon Sep 17 00:00:00 2001 From: Pierre Labastie Date: Thu, 18 Jan 2024 21:38:50 +0100 Subject: [PATCH 059/113] git-version.sh: revert inadvertent commit --- git-version.sh | 2 -- 1 file changed, 2 deletions(-) diff --git a/git-version.sh b/git-version.sh index b518cdabd..5d8d32e5d 100755 --- a/git-version.sh +++ b/git-version.sh @@ -56,12 +56,10 @@ rev=$(echo "$sha" | sed 's/-g[^-]*$//') version="$rev" versiond="$rev-systemd" -if false; then if [ "$(git diff HEAD | wc -l)" != "0" ]; then version="$version+" versiond="$versiond+" fi -fi echo " version.ent echo "" >> version.ent From fd02389a5134ac5895107ed293e1d361b2caa91f Mon Sep 17 00:00:00 2001 From: Xi Ruoyao Date: Fri, 19 Jan 2024 12:23:30 +0800 Subject: [PATCH 060/113] git-version: Use "-wip" as the version suffix instead of "+" for changes not committed yet It's not allowed to use "+" in id attributes etc. --- git-version.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/git-version.sh b/git-version.sh index 5d8d32e5d..09a8fadd7 100755 --- a/git-version.sh +++ b/git-version.sh @@ -57,8 +57,8 @@ version="$rev" versiond="$rev-systemd" if [ "$(git diff HEAD | wc -l)" != "0" ]; then - version="$version+" - versiond="$versiond+" + version="$version-wip" + versiond="$versiond-wip" fi echo " version.ent From d11a0816d40366641eea82eb46bc40c83b779e1e Mon Sep 17 00:00:00 2001 From: Xi Ruoyao Date: Sat, 20 Jan 2024 02:07:45 +0800 Subject: [PATCH 061/113] Some missed ISO-8859-1 -> UTF-8 changes --- chapter10/kernel/kernel-config.py | 2 +- packages.ent | 2 +- patches.ent | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/chapter10/kernel/kernel-config.py b/chapter10/kernel/kernel-config.py index eac2b6c4d..814484b84 100755 --- a/chapter10/kernel/kernel-config.py +++ b/chapter10/kernel/kernel-config.py @@ -293,7 +293,7 @@ for i0, val, i1, title, arrow, key, menu, comment in r: from jinja2 import Template -t = Template(''' +t = Template(''' From 619e4d956f05b2a5e9ce697f1b5941eaf06c48e7 Mon Sep 17 00:00:00 2001 From: Xi Ruoyao Date: Sat, 20 Jan 2024 03:04:26 +0800 Subject: [PATCH 062/113] dependencies: Perl does not need groff for build Some scripts in Perl mentions groff but they are not used building Perl. And in the book groff is built after Perl anyway. --- appendices/dependencies.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/appendices/dependencies.xml b/appendices/dependencies.xml index adcb71fb2..1493d84f9 100644 --- a/appendices/dependencies.xml +++ b/appendices/dependencies.xml @@ -1239,7 +1239,7 @@ &before; - Man-DB and Perl + Man-DB @@ -2455,7 +2455,7 @@ &dependencies; - Bash, Binutils, Coreutils, Gawk, GCC, GDBM, Glibc, Grep, Groff, + Bash, Binutils, Coreutils, Gawk, GCC, GDBM, Glibc, Grep, Libxcrypt, Make, Sed, and Zlib From d282f88dea360aad595acec9b794618890cdb1eb Mon Sep 17 00:00:00 2001 From: Xi Ruoyao Date: Fri, 19 Jan 2024 12:47:33 +0800 Subject: [PATCH 063/113] ncurses: Modify the header to always use the ABI of ncursesw instead of the 8-bit ncurses. We don't provide the 8-bit ncurses library and we are "faking" it using ncursesw. Thus innocent package may be compiled with the 8-bit ABI (because it does not know what we are doing and so it does not use the "expected" preprocessor definitions to enable the wide ABI) but linked against ncursesw, causing a potential ABI mismatch. --- chapter01/changelog.xml | 12 ++++++++++++ chapter06/ncurses.xml | 21 ++++++++++++++++++++- chapter08/ncurses.xml | 7 ++++++- 3 files changed, 38 insertions(+), 2 deletions(-) diff --git a/chapter01/changelog.xml b/chapter01/changelog.xml index 301e3dff1..4865c68ab 100644 --- a/chapter01/changelog.xml +++ b/chapter01/changelog.xml @@ -40,6 +40,18 @@ appropriate for the entry or if needed the entire day's listitem. --> + + 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 diff --git a/chapter06/ncurses.xml b/chapter06/ncurses.xml index f25c43777..f491c2c92 100644 --- a/chapter06/ncurses.xml +++ b/chapter06/ncurses.xml @@ -156,7 +156,9 @@ popd Install the package: make DESTDIR=$LFS TIC_PATH=$(pwd)/build/progs/tic install -echo "INPUT(-lncursesw)" > $LFS/usr/lib/libncurses.so +echo "INPUT(-lncursesw)" > $LFS/usr/lib/libncurses.so +sed -e 's/^#if.*XOPEN.*$/#if 1/' \ + -i $LFS/usr/include/curses.h + + 2024-01-21 + + + [xry111] - Fix CVE-2024-0684 for coreutils-9.4. Fixes + #5417. + + + + 2024-01-18 diff --git a/chapter08/coreutils.xml b/chapter08/coreutils.xml index 87833a134..e6114461f 100644 --- a/chapter08/coreutils.xml +++ b/chapter08/coreutils.xml @@ -53,13 +53,13 @@ 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 -sed '/if ( ! match/s/ed_checksums//' -i src/digest.c ---> Now prepare Coreutils for compilation: autoreconf -fiv From 3baf03a954ed3e4e468e5c88ebe1b7e2ca5f0132 Mon Sep 17 00:00:00 2001 From: Xi Ruoyao Date: Mon, 22 Jan 2024 01:03:33 +0800 Subject: [PATCH 066/113] Package updates: - Update to jinja2-3.1.3 (#5411) - Update to bc-6.7.5 (#5408) - Update to attr-2.5.2 (#5412) - Update to ncurses-6.4-20230520 (#5416) - Update to markupsafe-2.1.4 (#5418) - Update to linux-6.7.1 (#5406) - Update to iproute2-6.7.0 (#5410) - Update to vim-9.1.0041 (#4500) - Update to iana-etc-20240117 (#5006) - Update to shadow-4.14.3 (#5413) --- chapter01/changelog.xml | 40 ++++++++++++++++++++++++ chapter01/whatsnew.xml | 16 +++++----- chapter08/ncurses.xml | 10 +++--- packages.ent | 69 +++++++++++++++++++++-------------------- 4 files changed, 89 insertions(+), 46 deletions(-) diff --git a/chapter01/changelog.xml b/chapter01/changelog.xml index 862f90455..3f2ae8e29 100644 --- a/chapter01/changelog.xml +++ b/chapter01/changelog.xml @@ -43,6 +43,46 @@ 2024-01-21 + + [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. diff --git a/chapter01/whatsnew.xml b/chapter01/whatsnew.xml index e0c77ed72..918bc0f0b 100644 --- a/chapter01/whatsnew.xml +++ b/chapter01/whatsnew.xml @@ -29,9 +29,9 @@ - + Autoconf-&autoconf-version; @@ -134,9 +134,9 @@ IPRoute2-&iproute2-version; - + Kbd-&kbd-version; @@ -179,9 +179,9 @@ - + Meson-&meson-version; @@ -191,9 +191,9 @@ MPFR-&mpfr-version; - + diff --git a/chapter08/ncurses.xml b/chapter08/ncurses.xml index 14113d7e3..83ce508d6 100644 --- a/chapter08/ncurses.xml +++ b/chapter08/ncurses.xml @@ -99,9 +99,9 @@ --enable-widec This switch causes wide-character libraries (e.g., libncursesw.so.&ncurses-version;) + class="libraryfile">libncursesw.so.&ncurses-release;) to be built instead of normal ones (e.g., libncurses.so.&ncurses-version;). + class="libraryfile">libncurses.so.&ncurses-release;). These wide-character libraries are usable in both multibyte and traditional 8-bit locales, while normal libraries work properly only in 8-bit locales. Wide-character and normal libraries are @@ -127,7 +127,7 @@ make will spawn new shell processes during "make install". --> The installation of this package will overwrite - libncursesw.so.&ncurses-version; + libncursesw.so.&ncurses-release; 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-version; /usr/lib -rm -v dest/usr/lib/libncursesw.so.&ncurses-version; +install -vm755 dest/usr/lib/libncursesw.so.&ncurses-release; /usr/lib +rm -v dest/usr/lib/libncursesw.so.&ncurses-release; sed -e 's/^#if.*XOPEN.*$/#if 1/' \ -i dest/usr/include/curses.h cp -av dest/* / diff --git a/packages.ent b/packages.ent index b1cc7c1d5..fba1f5405 100644 --- a/packages.ent +++ b/packages.ent @@ -21,10 +21,10 @@ - - + + - + @@ -57,10 +57,10 @@ - - + + - + @@ -317,10 +317,10 @@ - - + + - + @@ -341,18 +341,18 @@ - - + + - + - - + + - + @@ -430,13 +430,13 @@ - - + + - + - + + + + @@ -636,10 +639,10 @@ - - + + - + @@ -735,13 +738,13 @@ - + - - + + - + From 75d26160ceac72d6b08c6ed11bebf657da353c70 Mon Sep 17 00:00:00 2001 From: Xi Ruoyao Date: Mon, 22 Jan 2024 01:19:31 +0800 Subject: [PATCH 067/113] pkgconf: Update the fix for modversion regression (#5414) --- chapter01/changelog.xml | 4 ++++ chapter01/whatsnew.xml | 4 ++++ chapter03/patches.xml | 9 ++++----- chapter08/pkgconf.xml | 4 ++-- patches.ent | 4 ++++ 5 files changed, 18 insertions(+), 7 deletions(-) diff --git a/chapter01/changelog.xml b/chapter01/changelog.xml index 3f2ae8e29..aba69a0de 100644 --- a/chapter01/changelog.xml +++ b/chapter01/changelog.xml @@ -43,6 +43,10 @@ 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. diff --git a/chapter01/whatsnew.xml b/chapter01/whatsnew.xml index 918bc0f0b..2dd0a8d02 100644 --- a/chapter01/whatsnew.xml +++ b/chapter01/whatsnew.xml @@ -298,6 +298,10 @@ &glibc-upstream-fixes-patch; + + &pkgconf-upstream-fix-patch; + + &readline-fixes-patch; diff --git a/chapter03/patches.xml b/chapter03/patches.xml index 263f3ec1b..50ff56a6f 100644 --- a/chapter03/patches.xml +++ b/chapter03/patches.xml @@ -117,15 +117,14 @@ --> - Readline Upstream Fix Patch - &readline-fixes-patch-size;: diff --git a/chapter08/pkgconf.xml b/chapter08/pkgconf.xml index 0155356aa..139e0c810 100644 --- a/chapter08/pkgconf.xml +++ b/chapter08/pkgconf.xml @@ -45,9 +45,9 @@ Installation of Pkgconf - Fix a regression in pkgconf-2.0.3 breaking BLFS packages: + Fix a regression in pkgconf-2.1.0 breaking BLFS packages: - sed -i 's/str\(cmp.*package\)/strn\1, strlen(pkg->why)/' cli/main.c + patch -Np1 -i ../&pkgconf-upstream-fix-patch; Prepare Pkgconf for compilation: diff --git a/patches.ent b/patches.ent index 1bcd45dc3..d27c717de 100644 --- a/patches.ent +++ b/patches.ent @@ -22,6 +22,10 @@ + + + + From 24d03240bf2406c189ce98b69cc1678ce78e5d10 Mon Sep 17 00:00:00 2001 From: Xi Ruoyao Date: Mon, 22 Jan 2024 01:28:02 +0800 Subject: [PATCH 068/113] kernel: Regenerate kernel config with 6.7.1 No content change! --- chapter10/kernel/kernel.version | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/chapter10/kernel/kernel.version b/chapter10/kernel/kernel.version index e411592c2..06a765991 100644 --- a/chapter10/kernel/kernel.version +++ b/chapter10/kernel/kernel.version @@ -1 +1 @@ -6.6.3 +6.7.1 From 46b5c6b63bbf30b84b37be75a0f494c85be66d09 Mon Sep 17 00:00:00 2001 From: Xi Ruoyao Date: Mon, 22 Jan 2024 01:32:56 +0800 Subject: [PATCH 069/113] gcc: Fix libcc1 description libcpp is the preprocessor library, but it's a static library which is only used by GCC itself and not installed. libcc1 is actually a library for GDB to "compile" expressions, so we can use fancy expressions in commands, like "print sin(x + 2.0)": the expression sin(x + 2.0) needs to be "compiled" for evaluation. --- chapter08/gcc.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/chapter08/gcc.xml b/chapter08/gcc.xml index 349d83c2a..7f21cf853 100644 --- a/chapter08/gcc.xml +++ b/chapter08/gcc.xml @@ -534,7 +534,7 @@ mv -v /usr/lib/*gdb.py /usr/share/gdb/auto-load/usr/lib libcc1 - The C preprocessing library + A library that allows GDB to make use of GCC libcc1 From 47bc996103ea5b9e5f29d582826aeb469554ecdc Mon Sep 17 00:00:00 2001 From: Xi Ruoyao Date: Mon, 22 Jan 2024 02:20:43 +0800 Subject: [PATCH 070/113] Makefile: Ensure wget-list and md5sums regenerated when patches.xml or packages.xml has changed --- Makefile | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) diff --git a/Makefile b/Makefile index c45a56943..1f1de8d23 100644 --- a/Makefile +++ b/Makefile @@ -150,9 +150,11 @@ profile-html: stylesheets/lfs-xsl/profile.xsl \ $(RENDERTMP)/lfs-full.xml +DOWNLOADS_DEP = chapter03/packages.xml chapter03/patches.xml \ + packages.ent patches.ent general.ent + wget-list: $(BASEDIR)/wget-list $(BASEDIR)/wget-list-$(REV) -$(BASEDIR)/wget-list: stylesheets/wget-list.xsl chapter03/chapter03.xml \ - packages.ent patches.ent general.ent +$(BASEDIR)/wget-list: stylesheets/wget-list.xsl $(DOWNLOADS_DEP) @echo "Generating consolidated wget list at $(BASEDIR)/wget-list ..." $(Q)mkdir -p $(BASEDIR) $(Q)xsltproc --xinclude --nonet \ @@ -160,9 +162,7 @@ $(BASEDIR)/wget-list: stylesheets/wget-list.xsl chapter03/chapter03.xml \ stylesheets/wget-list.xsl \ chapter03/chapter03.xml -$(BASEDIR)/wget-list-$(REV): stylesheets/wget-list.xsl \ - chapter03/chapter03.xml \ - packages.ent patches.ent general.ent +$(BASEDIR)/wget-list-$(REV): stylesheets/wget-list.xsl $(DOWNLOADS_DEP) $(Q)xsltproc --nonet --xinclude \ --stringparam profile.revision $(REV) \ --output $(RENDERTMP)/wget-list.xml \ @@ -174,8 +174,7 @@ $(BASEDIR)/wget-list-$(REV): stylesheets/wget-list.xsl \ $(RENDERTMP)/wget-list.xml md5sums: $(BASEDIR)/md5sums -$(BASEDIR)/md5sums: stylesheets/wget-list.xsl chapter03/chapter03.xml \ - packages.ent patches.ent +$(BASEDIR)/md5sums: stylesheets/wget-list.xsl $(DOWNLOADS_DEP) @echo "Generating consolidated md5sum file at $(BASEDIR)/md5sums ..." $(Q)mkdir -p $(BASEDIR) From 5bef8f221aa7dd82c9658da2190b315cced48aa6 Mon Sep 17 00:00:00 2001 From: Xi Ruoyao Date: Tue, 23 Jan 2024 05:29:05 +0800 Subject: [PATCH 071/113] ncurses: Remove libcursesw.so from short description We no longer create this. --- chapter08/ncurses.xml | 10 ---------- 1 file changed, 10 deletions(-) diff --git a/chapter08/ncurses.xml b/chapter08/ncurses.xml index 83ce508d6..40589c58a 100644 --- a/chapter08/ncurses.xml +++ b/chapter08/ncurses.xml @@ -351,16 +351,6 @@ cp -av lib/lib*.so.5* /usr/lib - - libcursesw - - A link to libncursesw - - libcursesw - - - - libncursesw From 214ea81811ed5bc5a114646fe3185bda26abd0b7 Mon Sep 17 00:00:00 2001 From: "Douglas R. Reno" Date: Tue, 23 Jan 2024 13:59:46 -0600 Subject: [PATCH 072/113] Jinja2: update the home page in the All Packages section --- packages.ent | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages.ent b/packages.ent index fba1f5405..cfdbd2790 100644 --- a/packages.ent +++ b/packages.ent @@ -353,7 +353,7 @@ - + From c88ec715386d9a15f374fc37532fe01f5c5797b5 Mon Sep 17 00:00:00 2001 From: Pierre Labastie Date: Wed, 24 Jan 2024 14:39:09 +0100 Subject: [PATCH 073/113] Put back punctuation inside quotes Reverts part of 811d59db8b. Looks like "American English prefers that periods and commas be placed inside closing quotation marks," according to https://en.wikipedia.org/wiki/American_English --- chapter07/creatingdirs.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/chapter07/creatingdirs.xml b/chapter07/creatingdirs.xml index aee184941..eab9f5fce 100644 --- a/chapter07/creatingdirs.xml +++ b/chapter07/creatingdirs.xml @@ -54,7 +54,7 @@ install -dv -m 1777 /tmp /var/tmp /tmp and /var/tmp directories, but cannot remove another user's files from them. The latter is prohibited by the so-called - sticky bit, the highest bit (1) in the 1777 bit mask. + sticky bit, the highest bit (1) in the 1777 bit mask. FHS Compliance Note From 0d76fa268dd0503eb2e54063fb899cf6cf47f99b Mon Sep 17 00:00:00 2001 From: Xi Ruoyao Date: Wed, 24 Jan 2024 23:39:07 +0800 Subject: [PATCH 074/113] chapter07/python: Update the note about optional modules "Fatal error" is no longer outputted, but "Python requires OpenSSL 1.1.1 or newer" is bad as well because it's not really "required" (at least in BLFS definition). --- chapter07/python.xml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/chapter07/python.xml b/chapter07/python.xml index 4ed385d58..84a173426 100644 --- a/chapter07/python.xml +++ b/chapter07/python.xml @@ -83,9 +83,9 @@ Some Python 3 modules can't be built now because the dependencies - are not installed yet. The building system still attempts to build - them however, so the compilation of some files will fail and the - compiler message may seem to indicate fatal error. + are not installed yet. For the ssl module, + a message Python requires a OpenSSL 1.1.1 or + newer is outputted. The message should be ignored. Just make sure the toplevel make command has not failed. The optional modules are not needed now and they will be built in From 0cca1d3831b438800eaf73d97b998ed46ae58909 Mon Sep 17 00:00:00 2001 From: Xi Ruoyao Date: Thu, 25 Jan 2024 04:54:02 +0800 Subject: [PATCH 075/113] dependencies: gettext may use system libxml2 --- appendices/dependencies.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/appendices/dependencies.xml b/appendices/dependencies.xml index 1493d84f9..158ed0f04 100644 --- a/appendices/dependencies.xml +++ b/appendices/dependencies.xml @@ -1047,7 +1047,7 @@ &external; - None + libxml2 From 9ac6ff55fccdccd4bce03e6d698d1770cea2a3d2 Mon Sep 17 00:00:00 2001 From: Xi Ruoyao Date: Thu, 25 Jan 2024 05:13:47 +0800 Subject: [PATCH 076/113] libtool: Add "or newer" after "grep-3.8" We have grep-3.11 now. --- chapter08/libtool.xml | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/chapter08/libtool.xml b/chapter08/libtool.xml index 89b7786aa..cb550b5d6 100644 --- a/chapter08/libtool.xml +++ b/chapter08/libtool.xml @@ -56,8 +56,9 @@ Five tests are known to fail in the LFS build environment due to a circular dependency, but these tests pass if rechecked after - automake has been installed. Additionally, with grep-3.8, two tests will - trigger a warning for non-POSIX regular expressions and fail. + automake has been installed. Additionally, with grep-3.8 or newer, + two tests will trigger a warning for non-POSIX regular expressions and + fail. Install the package: From ea93c117f2971ed269d3a7d39999d8b16b6f2b7e Mon Sep 17 00:00:00 2001 From: Xi Ruoyao Date: Fri, 26 Jan 2024 01:49:29 +0800 Subject: [PATCH 077/113] treewide: Use instead of for man pages "gcc(1)" is really not a file name. Use and link to the online man page on https://man.archlinux.org/ so the user can refer to the man pages more easily. The change is done via a sed command and long lines are wrapped manually. --- chapter02/creatingpartition.xml | 3 ++- chapter04/addinguser.xml | 3 ++- chapter04/settingenviron.xml | 4 ++-- chapter05/glibc.xml | 5 +++-- chapter08/e2fsprogs.xml | 3 ++- chapter08/openssl.xml | 5 +++-- chapter08/shadow.xml | 4 ++-- chapter08/util-linux.xml | 3 ++- chapter09/networkd.xml | 14 +++++++++----- chapter09/systemd-custom.xml | 21 ++++++++++++--------- chapter09/udev.xml | 5 +++-- chapter09/usage.xml | 10 ++++++---- chapter10/fstab.xml | 2 +- chapter10/kernel.xml | 3 ++- general.ent | 1 + prologue/typography.xml | 11 ++++++++--- 16 files changed, 60 insertions(+), 37 deletions(-) diff --git a/chapter02/creatingpartition.xml b/chapter02/creatingpartition.xml index ef16c8b92..f5bb244cb 100644 --- a/chapter02/creatingpartition.xml +++ b/chapter02/creatingpartition.xml @@ -40,7 +40,8 @@ /dev/sda for the primary disk drive. Create a Linux native partition and a swap partition, if needed. Please - refer to cfdisk(8) or fdisk(8) if + refer to cfdisk(8) or + fdisk(8) if you do not yet know how to use the programs. For experienced users, other partitioning schemes are possible. diff --git a/chapter04/addinguser.xml b/chapter04/addinguser.xml index 18a9d20e6..e10a884b3 100644 --- a/chapter04/addinguser.xml +++ b/chapter04/addinguser.xml @@ -99,6 +99,7 @@ esac The - instructs su to start a login shell as opposed to a non-login shell. The difference between these two types of shells is described in detail in - bash(1) and info bash. + bash(1) and info + bash. diff --git a/chapter04/settingenviron.xml b/chapter04/settingenviron.xml index 20988bd3f..b179bb0b3 100644 --- a/chapter04/settingenviron.xml +++ b/chapter04/settingenviron.xml @@ -79,8 +79,8 @@ EOF Setting the user file-creation mask (umask) to 022 ensures that newly created files and directories are only writable by their owner, but are readable and executable by anyone (assuming default modes are used by the - open(2) system call, new files will end up with - permission mode 644 and directories with mode 755). + open(2) system call, new files + will end up with permission mode 644 and directories with mode 755). diff --git a/chapter05/glibc.xml b/chapter05/glibc.xml index f54a7d107..63c4f6387 100644 --- a/chapter05/glibc.xml +++ b/chapter05/glibc.xml @@ -59,8 +59,9 @@ esac The above command is correct. The ln command has several syntactic versions, so be sure to check - info coreutils ln and ln(1) - before reporting what may appear to be an error. + info coreutils ln and ln(1) before reporting what may appear to be + an error. diff --git a/chapter08/e2fsprogs.xml b/chapter08/e2fsprogs.xml index 6a4489dee..c5718c191 100644 --- a/chapter08/e2fsprogs.xml +++ b/chapter08/e2fsprogs.xml @@ -159,7 +159,8 @@ install-info --dir-file=/usr/share/info/dir /usr/share/info/com_err.infosed 's/metadata_csum_seed,//' -i /etc/mke2fs.conf - Read the man page mke2fs.conf(5) for details. + Read the man page mke2fs.conf(5) for details. diff --git a/chapter08/openssl.xml b/chapter08/openssl.xml index ae5d27e38..446dd226a 100644 --- a/chapter08/openssl.xml +++ b/chapter08/openssl.xml @@ -163,7 +163,7 @@ make MANSUFFIX=ssl install is a command-line tool for using the various cryptography functions of OpenSSL's crypto library from the shell. It can be used for various functions which are documented in - openssl(1) + openssl(1) openssl @@ -195,7 +195,8 @@ make MANSUFFIX=ssl install implements the Transport Layer Security (TLS v1) protocol. It provides a rich API, documentation - on which can be found in ssl(7) + on which can be found in ssl(7) libssl.so diff --git a/chapter08/shadow.xml b/chapter08/shadow.xml index 49bcae6de..89678b3f4 100644 --- a/chapter08/shadow.xml +++ b/chapter08/shadow.xml @@ -203,8 +203,8 @@ make -C man install-man to pass either the -g or -N parameter to useradd, or else change the setting of USERGROUPS_ENAB in - /etc/login.defs. See useradd(8) - for more information. + /etc/login.defs. See useradd(8) for more information. Second, to change the default parameters, the file /etc/default/useradd must be created and tailored diff --git a/chapter08/util-linux.xml b/chapter08/util-linux.xml index 183e58418..e6bb0b683 100644 --- a/chapter08/util-linux.xml +++ b/chapter08/util-linux.xml @@ -584,7 +584,8 @@ su tester -c "make -k check" irqtop Displays kernel interrupt counter information in - top(1) style view + top(1) style + view irqtop diff --git a/chapter09/networkd.xml b/chapter09/networkd.xml index 19a1f7c01..3b9dd2cda 100644 --- a/chapter09/networkd.xml +++ b/chapter09/networkd.xml @@ -50,9 +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 @@ -113,7 +115,7 @@ Name=ether0 EOF - See systemd.link(5) for more information. + See systemd.link(5) for more information. @@ -357,7 +359,9 @@ EOF localhost.localdomain, or the hostname (without a domain) because they are handled by the myhostname NSS module, read - the man page nss-myhostname(8) for details. + the man page nss-myhostname(8) for + details. The ::1 entry is the IPv6 counterpart of 127.0.0.1 and represents the IPv6 loopback interface. diff --git a/chapter09/systemd-custom.xml b/chapter09/systemd-custom.xml index 81a94a148..ffca1a76f 100644 --- a/chapter09/systemd-custom.xml +++ b/chapter09/systemd-custom.xml @@ -21,8 +21,9 @@ of options to control basic systemd operations. The default file has all entries commented out with the default settings indicated. This file is where the log level may be changed as well as some basic logging settings. - See the systemd-system.conf(5) manual page for details - on each configuration option. + See the systemd-system.conf(5) manual + page for details on each configuration option. @@ -89,8 +90,8 @@ EOF /etc/tmpfiles.d override files with the same name in /usr/lib/tmpfiles.d. See - tmpfiles.d(5) manual page for file format - details. + tmpfiles.d(5) manual + page for file format details. Note that the syntax for the @@ -135,7 +136,8 @@ Restart=always RestartSec=30 EOF - See systemd.unit(5) manual page for more + See systemd.unit(5) manual page for more information. After creating the configuration file, run systemctl daemon-reload and systemctl restart foobar to activate the changes to a service. @@ -251,10 +253,11 @@ cat > /etc/systemd/coredump.conf.d/maxuse.conf << EOF MaxUse=5G EOF - See the systemd-coredump(8), - coredumpctl(1), and - coredump.conf.d(5) manual pages for more - information. + See the systemd-coredump(8), + coredumpctl(1), and + coredump.conf.d(5) manual pages for + more information. diff --git a/chapter09/udev.xml b/chapter09/udev.xml index 0fba5a8b4..bd0b75912 100644 --- a/chapter09/udev.xml +++ b/chapter09/udev.xml @@ -225,8 +225,9 @@ Note that the softdep command also allows pre: dependencies, or a mixture of both pre: and post: dependencies. See - the modprobe.d(5) manual page for more information - on softdep syntax and capabilities. + the modprobe.d(5) + manual page for more information on softdep syntax and + capabilities. If the module in question is not a wrapper and is useful by itself, configure the modules bootscript to diff --git a/chapter09/usage.xml b/chapter09/usage.xml index 1fc7189d6..25175c45f 100644 --- a/chapter09/usage.xml +++ b/chapter09/usage.xml @@ -32,7 +32,8 @@ SysVinit (which will be referred to as init from now on) uses a run levels scheme. There are seven run levels, numbered 0 to 6. (Actually, there are more run levels, but the others are for special cases and are - generally not used. See init(8) for more details.) + generally not used. See init(8) for more details.) Each one of the seven corresponds to actions the computer is supposed to perform when it starts up or shuts down. The default run level is 3. Here are the descriptions of the different run levels as they are implemented in LFS: @@ -341,9 +342,10 @@ EOF url="https://tldp.org/HOWTO/HOWTO-INDEX/other-lang.html"/>. If still in doubt, look in the /usr/share/keymaps and /usr/share/consolefonts directories - for valid keymaps and screen fonts. Read the loadkeys(1) and - setfont(8) manual pages to determine the correct - arguments for these programs. + for valid keymaps and screen fonts. Read the loadkeys(1) and setfont(8) manual pages to determine the + correct arguments for these programs. The /etc/sysconfig/console file should contain lines of the form: VARIABLE="value". The following variables are recognized: diff --git a/chapter10/fstab.xml b/chapter10/fstab.xml index c20f806dd..ad835be30 100644 --- a/chapter10/fstab.xml +++ b/chapter10/fstab.xml @@ -56,7 +56,7 @@ EOF class="partition">sda2, sda5, and ext4. For details on the six - fields in this file, see fstab(5). + fields in this file, see fstab(5). Filesystems with MS-DOS or Windows origin (i.e. vfat, ntfs, smbfs, cifs, iso9660, udf) need a special option, utf8, in order for non-ASCII diff --git a/chapter10/kernel.xml b/chapter10/kernel.xml index ce732ccb5..cf0b30f35 100644 --- a/chapter10/kernel.xml +++ b/chapter10/kernel.xml @@ -324,7 +324,8 @@ located in and in the kernel documentation in the linux-&linux-version;/Documentation directory. - Also, modprobe.d(5) may be of interest. + Also, modprobe.d(5) + may be of interest. Unless module support has been disabled in the kernel configuration, install the modules with: diff --git a/general.ent b/general.ent index 0540ac6c2..31e6daecc 100644 --- a/general.ent +++ b/general.ent @@ -125,6 +125,7 @@ + root"> lfs"> diff --git a/prologue/typography.xml b/prologue/typography.xml index 303a107c5..db66b345c 100644 --- a/prologue/typography.xml +++ b/prologue/typography.xml @@ -74,14 +74,15 @@ EOF This format is used to encapsulate text that is optional. - passwd(5) + passwd(5) This format is used to refer to a specific manual (man) page. The number inside parentheses indicates a specific section inside the manuals. For example, passwd has two man pages. Per LFS installation instructions, those two man pages will be located at /usr/share/man/man1/passwd.1 and - /usr/share/man/man5/passwd.5. When the book uses passwd(5) it is + /usr/share/man/man5/passwd.5. When the book uses + passwd(5) it is specifically referring to /usr/share/man/man5/passwd.5. man passwd will print the first man page it finds that matches passwd, which will be @@ -89,7 +90,11 @@ EOF need to run man 5 passwd in order to read the page being specified. Note that most man pages do not have duplicate page names in different sections. Therefore, man <program - name> is generally sufficient. + name> is generally sufficient. In the LFS + book these references to man pages are also hyperlinks, so clicking on + such a reference will open the man page rendered in HTML from + Arch Linux manual + pages. From 44850bb9f2fdc6a9336c76e3f98b0c39632fbe95 Mon Sep 17 00:00:00 2001 From: Pierre Labastie Date: Fri, 26 Jan 2024 14:53:30 +0100 Subject: [PATCH 078/113] Fix some defects of lfs book formatting - have title of section stay visible when scrolling - when clicking on an internal link, make it fully visible instead of hidden behind the header --- stylesheets/lfs-xsl/lfs.css | 86 ++++++++++++++-------- stylesheets/lfs-xsl/xhtml/lfs-sections.xsl | 82 +++++++++++++++++++-- 2 files changed, 130 insertions(+), 38 deletions(-) diff --git a/stylesheets/lfs-xsl/lfs.css b/stylesheets/lfs-xsl/lfs.css index 80eca11ed..d453cac89 100644 --- a/stylesheets/lfs-xsl/lfs.css +++ b/stylesheets/lfs-xsl/lfs.css @@ -1,13 +1,13 @@ /* Global settings */ body { - font-family: verdana, tahoma, helvetica, arial, sans-serif; + font-family: verdana, tahoma, arial, sans-serif; text-align: left; background: #fff; color: #222; margin: 1em; padding: 0; font-size: 1em; - line-height: 1.2em + line-height: 1.2em; } @@ -38,10 +38,36 @@ div.dedication { padding-left: 1em; } +/* Section titles */ +h1.sect1, h1.preface, h1.part, h1.chapter, h1.appendix, .glossary h1, .index h1 + { + background: #f5f6f7; + border-bottom: .1em solid #dbddec; + margin-bottom:1em; + margin-top: 0; + padding: .4em; +} -/* Sections */ -div.sect1, div.appendix { - padding-left: .3em; +/* Scrolling parts + The header is taller for sect1 and chapter pages than on the + other pages. Since we want fixed boxes, their top has to be calculated + by trial and errors to fit below the static header box.*/ + +div.sect1, div.chapter, div.appendix, div.wrap { + top: 11.55em; +} +div.preface, div.part, .index div.index { + top: 10.15em; +} +div.sect1, div.appendix, div.preface, div.part, div.chapter, div.wrap, .index div.index { +/* padding-left: .3em;*/ + overflow:auto; + height: auto; + position: fixed; + left:1em; + right:1em; + bottom: 1em; + border-bottom: 1em solid #dbddec; } div.important ul { @@ -63,8 +89,12 @@ div.important ul li p { background: #f5f6f7; border-bottom: 0.2em solid #dbddec; padding-top: .1em; - margin-top: 0; +/* margin-top: 0;*/ } +/* +.lfs .package p:first-child { + margin-top: 0; +}*/ .lfs .configuration { background: #fefefe; @@ -74,11 +104,11 @@ div.important ul li p { .lfs .content { background: #f5f6f7; border-top: 0.2em solid #dbddec; + border-bottom: 0.2em solid #dbddec; padding-bottom: .1em; - margin-bottom: 0; + margin-bottom: .5em; } - /* Headers */ h1, h2, h3, h4, h5, h6, b, .strong { color: #000; @@ -96,18 +126,6 @@ h1 { padding: 0.4em; } -.preface h1, .part h1, .chapter h1, .appendix h1, .index h1, .sect1 h1, .glossary h1 { - background: #f5f6f7; - border-bottom: .1em solid #dbddec; - margin-bottom: 1em; - margin-top: 0; - padding: .4em; -} - -.sect1 h1, .appendix h1 { - margin-left: -.2em; -} - .wrap h1 { background: #f5f6f7; margin: 0; @@ -157,13 +175,19 @@ div.navheader, div.navfooter { } div.navheader { - border-bottom: 1px solid #dbddec; - position: sticky; - top: 0; + border-bottom: .1em solid #dbddec; } +/* no need for a footer now that the header is always visible */ div.navfooter { - border-top: 1px solid #dbddec; + display:none; +} + +/* Except for the first page (TOC), where the bottom is the only + place where navigation is displayed. */ + +div.book + div.navfooter { + display:block } div.navheader h4 { @@ -179,7 +203,7 @@ div.navheader h3 { } div.navheader ul, div.navfooter ul { - padding: .2em .5em .5em 0; + padding: .2em .5em .5em .5em; /*top right bottom left*/ margin: .5em 0; position: relative; background: #dbddec; @@ -196,29 +220,29 @@ div.navheader ul li.prev, div.navfooter ul li.prev { left: 0; text-align: left; padding: 0.2em 1em; - margin-left: 6px; + margin-left: .4em; } div.navheader ul li.next, div.navfooter ul li.next { position: absolute; display: block; text-align: right; - right: 5px; - padding: 0.2em 0.5em; - margin-right: 7px; + right: 0; + padding: 0.2em 1em; + margin-right: .4em; } div.navheader ul li.prev p, div.navfooter ul li.prev p, div.navheader ul li.next p, div.navfooter ul li.next p { padding: 0; - margin: 1px 0px; + margin: .1em 0; } div.navheader ul li.home, div.navheader ul li.up, div.navfooter ul li.home, div.navfooter ul li.up { text-align: center; padding: 0; - margin: 0px auto; + margin: 0 auto; display: block; color: #dbddec; } diff --git a/stylesheets/lfs-xsl/xhtml/lfs-sections.xsl b/stylesheets/lfs-xsl/xhtml/lfs-sections.xsl index cde5f0349..c44aa229c 100644 --- a/stylesheets/lfs-xsl/xhtml/lfs-sections.xsl +++ b/stylesheets/lfs-xsl/xhtml/lfs-sections.xsl @@ -11,10 +11,14 @@ + Output non sect1 child elements before the TOC + Output title outside of the
because we want to be able to + use it at a fixed position --> + +
@@ -26,8 +30,6 @@ - - @@ -44,11 +46,42 @@
+ + + + + + + +
+ + + + + + + + + + + + + + +
+
+ + Output non sect1 child elements before the TOC + Output title before div to be able to fix the title position --> + +
@@ -60,8 +93,6 @@ - - @@ -78,12 +109,50 @@
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
@@ -96,7 +165,6 @@ -
From 360fdfca9cd146ed32f09df00a4986646b50e467 Mon Sep 17 00:00:00 2001 From: Pierre Labastie Date: Fri, 26 Jan 2024 18:28:53 +0100 Subject: [PATCH 079/113] Fix punctuation in quotes, and quote signs - period and comma inside quotes - " to - some " to when it is a var value --- chapter02/hostreqs.xml | 2 +- chapter02/mounting.xml | 2 +- chapter02/stages.xml | 2 +- chapter05/glibc.xml | 4 ++-- chapter06/file.xml | 5 ----- chapter07/python.xml | 2 +- chapter08/coreutils.xml | 2 +- chapter08/expect.xml | 4 ++-- chapter08/gmp.xml | 7 ++++--- chapter08/stripping.xml | 2 +- chapter09/consoled.xml | 2 +- chapter09/locale.xml | 30 +++++++----------------------- chapter09/network.xml | 4 ++-- chapter09/networkd.xml | 11 ++++++----- chapter09/profile.xml | 24 ++++-------------------- chapter09/udev.xml | 6 +++--- chapter09/usage.xml | 28 ++++++++++++++-------------- chapter10/grub.xml | 11 ----------- part3intro/toolchaintechnotes.xml | 2 +- prologue/standards.xml | 2 +- prologue/typography.xml | 2 +- 21 files changed, 54 insertions(+), 100 deletions(-) diff --git a/chapter02/hostreqs.xml b/chapter02/hostreqs.xml index 8d9d13567..546555e9b 100644 --- a/chapter02/hostreqs.xml +++ b/chapter02/hostreqs.xml @@ -30,7 +30,7 @@ modern Linux distributions. Also note that many distributions will place software headers into separate packages, often in the form of <package-name>-devel or - <package-name>-dev. Be sure to install those if + <package-name>-dev. Be sure to install those if your distribution provides them. Earlier versions of the listed software packages may work, but have diff --git a/chapter02/mounting.xml b/chapter02/mounting.xml index 6c279ac78..60e5cdc62 100644 --- a/chapter02/mounting.xml +++ b/chapter02/mounting.xml @@ -16,7 +16,7 @@ LFS environment variable described in the previous section. - Strictly speaking, one cannot "mount a partition". One mounts the file + Strictly speaking, one cannot "mount a partition." One mounts the file system embedded in that partition. But since a single partition can't contain more than one file system, people often speak of the partition and the associated file system as if they were one and the same. diff --git a/chapter02/stages.xml b/chapter02/stages.xml index 710ff6585..aeee2588e 100644 --- a/chapter02/stages.xml +++ b/chapter02/stages.xml @@ -69,7 +69,7 @@ A few operations, from Changing Ownership to - Entering the Chroot Environment, must be done as the + Entering the Chroot Environment, must be done as the root user, with the LFS environment variable set for the &root; user. diff --git a/chapter05/glibc.xml b/chapter05/glibc.xml index 63c4f6387..b8b8171da 100644 --- a/chapter05/glibc.xml +++ b/chapter05/glibc.xml @@ -159,8 +159,8 @@ cd build Gettext package, which the host distribution should provide. There have been reports that this package may fail when - building as a "parallel make". If that occurs, rerun the make command - with the "-j1" option. + building as a parallel make. If that occurs, rerun the make command + with the option. Compile the package: diff --git a/chapter06/file.xml b/chapter06/file.xml index cb952d9bb..ada0dddeb 100644 --- a/chapter06/file.xml +++ b/chapter06/file.xml @@ -78,11 +78,6 @@ popd ./configure --prefix=/usr --host=$LFS_TGT --build=$(./config.guess) - Compile the package: make FILE_COMPILE=$(pwd)/build/src/file diff --git a/chapter07/python.xml b/chapter07/python.xml index 84a173426..3729c6ccf 100644 --- a/chapter07/python.xml +++ b/chapter07/python.xml @@ -45,7 +45,7 @@ There are two package files whose name starts with - python. The one to extract from is + python. The one to extract from is Python-&python-version;.tar.xz (notice the uppercase first letter). diff --git a/chapter08/coreutils.xml b/chapter08/coreutils.xml index e6114461f..3357fabc5 100644 --- a/chapter08/coreutils.xml +++ b/chapter08/coreutils.xml @@ -1261,7 +1261,7 @@ sed -i 's/"1"/"8"/' /usr/share/man/man8/chroot.8 yes - Repeatedly outputs y, or a given string, until + Repeatedly outputs y, or a given string, until killed yes diff --git a/chapter08/expect.xml b/chapter08/expect.xml index 90584ced1..95dc8beae 100644 --- a/chapter08/expect.xml +++ b/chapter08/expect.xml @@ -92,8 +92,8 @@ make test If any test fails with the message - The system has no more ptys. Ask your system - administrator to create more, it indicates + The system has no more ptys. Ask your system + administrator to create more, it indicates you've not mounted the devpts file system correctly. You need to exit from the chroot environment, read diff --git a/chapter08/gmp.xml b/chapter08/gmp.xml index 2b8f0fa8c..15274cf4b 100644 --- a/chapter08/gmp.xml +++ b/chapter08/gmp.xml @@ -58,7 +58,7 @@ to the configure command. @@ -106,8 +106,9 @@ make html The code in gmp is highly optimized for the processor where it is built. Occasionally, the code that detects the processor misidentifies the system capabilities and there will be errors in the tests or other - applications using the gmp libraries with the message "Illegal - instruction". In this case, gmp should be reconfigured with the option + applications using the gmp libraries with the message + Illegal instruction. + In this case, gmp should be reconfigured with the option and rebuilt. - Some packages beyond LFS may also lack support for your chosen locale. One - example is the X library (part of the X Window System), which outputs the - following error message if the locale does not exactly match one of the character - map names in its internal files: - -Warning: locale not supported by Xlib, locale set to C - - In several cases Xlib expects that the character map will be listed in - uppercase notation with canonical dashes. For instance, "ISO-8859-1" rather - than "iso88591". It is also possible to find an appropriate specification by - removing the charmap part of the locale specification. This can be checked - by running the locale charmap command in both locales. - For example, one would have to change "de_DE.ISO-8859-15@euro" to - "de_DE@euro" in order to get this locale recognized by Xlib. - Other packages can also function incorrectly (but may not necessarily display any error messages) if the locale name does not meet their expectations. In those cases, investigating how other Linux distributions support your locale diff --git a/chapter09/network.xml b/chapter09/network.xml index f8b549eff..a443ada2c 100644 --- a/chapter09/network.xml +++ b/chapter09/network.xml @@ -62,9 +62,9 @@ EOF The values in italics must be changed in each file, to set the interfaces up correctly. - If the ONBOOT variable is set to yes the + If the ONBOOT variable is set to yes the System V network script will bring up the Network Interface Card (NIC) during - the system boot process. If set to anything besides yes, the NIC + the system boot process. If set to anything besides yes, the NIC will be ignored by the network script and will not be started automatically. Interfaces can be manually started or stopped with the ifup and ifdown commands. diff --git a/chapter09/networkd.xml b/chapter09/networkd.xml index 3b9dd2cda..363e8d883 100644 --- a/chapter09/networkd.xml +++ b/chapter09/networkd.xml @@ -98,11 +98,12 @@ - Create a manual naming scheme, for example by naming the - interfaces something like "internet0", "dmz0", or "lan0". - To do that, create .link files in /etc/systemd/network/ that - select an explicit name or a better naming scheme for your - network interfaces. For example: + Create a manual naming scheme, for example by naming the + interfaces something like internet0, + dmz0, or lan0. + To do that, create .link files in /etc/systemd/network/ that + select an explicit name or a better naming scheme for your + network interfaces. For example: cat > /etc/systemd/network/10-ether0.link << "EOF" diff --git a/chapter09/profile.xml b/chapter09/profile.xml index 8f0f59d1f..55cc5dbb0 100644 --- a/chapter09/profile.xml +++ b/chapter09/profile.xml @@ -75,10 +75,10 @@ locale -a Charmaps can have a number of aliases, e.g., ISO-8859-1 - is also referred to as iso8859-1 and iso88591. + is also referred to as iso8859-1 and iso88591. Some applications cannot handle the various synonyms correctly (e.g., require - that UTF-8 is written as UTF-8, not - utf8), so it is safest in most + that UTF-8 is written as UTF-8, not + utf8), so it is safest in most cases to choose the canonical name for a particular locale. To determine the canonical name, run the following command, where <locale name> is the output given by locale -a for @@ -91,7 +91,7 @@ ISO-8859-1 - This results in a final locale setting of en_GB.ISO-8859-1. + This results in a final locale setting of en_GB.ISO-8859-1. It is important that the locale found using the heuristic above is tested before it is added to the Bash startup files: @@ -114,22 +114,6 @@ LC_ALL=<locale name> locale int_prefix Further instructions assume that there are no such error messages from Glibc. - - Other packages may also function incorrectly (but will not necessarily display any error messages) if the locale name does not meet their expectations. In such cases, investigating how other Linux distributions support your locale diff --git a/chapter09/udev.xml b/chapter09/udev.xml index bd0b75912..06db345a2 100644 --- a/chapter09/udev.xml +++ b/chapter09/udev.xml @@ -129,13 +129,13 @@ program and are usually related to the bus-specific identifiers of devices supported by a module. For example, the snd-fm801 driver supports PCI devices with vendor ID 0x1319 and device ID 0x0801, - and has an alias of pci:v00001319d00000801sv*sd*bc04sc01i*. + and has an alias of pci:v00001319d00000801sv*sd*bc04sc01i*. For most devices, the bus driver exports the alias of the driver that would handle the device via sysfs. E.g., the /sys/bus/pci/devices/0000:00:0d.0/modalias file might contain the string - pci:v00001319d00000801sv00001319sd00001319bc04sc01i00. + pci:v00001319d00000801sv00001319sd00001319bc04sc01i00. The default rules provided with udev will cause udevd to call out to /sbin/modprobe with the contents of the MODALIAS uevent environment variable (which should be the @@ -301,7 +301,7 @@ This is due to the fact that udev, by design, handles uevents and loads modules in parallel, and thus in an unpredictable order. This will - never be fixed. You should not rely upon the kernel device + never be fixed. You should not rely upon the kernel device names being stable. Instead, create your own rules that make symlinks with stable names based on some stable attributes of the device, such as a serial number or the output of various *_id utilities installed by udev. diff --git a/chapter09/usage.xml b/chapter09/usage.xml index 25175c45f..85b35d16d 100644 --- a/chapter09/usage.xml +++ b/chapter09/usage.xml @@ -48,11 +48,11 @@ - Classically, run level 2 above was defined as - "multi-user mode without networking", but this was only the case - many years ago when multiple users could connect to a system via - serial ports. In today's environment it makes no sense, and - we now say it is "reserved". + Classically, run level 2 above was defined as multi-user + mode without networking, but this was only the case + many years ago when multiple users could connect to a system via + serial ports. In today's environment it makes no sense, and + we now say it is reserved. @@ -348,7 +348,7 @@ EOF correct arguments for these programs. The /etc/sysconfig/console file should contain lines - of the form: VARIABLE="value". The following variables are recognized: + of the form: VARIABLE=value. The following variables are recognized: @@ -356,7 +356,7 @@ EOF This variable specifies the log level for kernel messages sent to the console as set by dmesg -n. Valid levels are - from "1" (no messages) to "8". The default level is "7". + from 1 (no messages) to 8. The default level is 7, which is quite verbose. @@ -365,7 +365,7 @@ EOF This variable specifies the arguments for the loadkeys program, typically, the name of the keymap - to load, e.g., it. If this variable is not set, the + to load, e.g., it. If this variable is not set, the bootscript will not run the loadkeys program, and the default kernel keymap will be used. Note that a few keymaps have multiple versions with the same name (cz and its variants in @@ -384,7 +384,7 @@ EOF loadkeys program. This is useful if the stock keymap is not completely satisfactory and a small adjustment has to be made. E.g., to include the Euro sign into a keymap that normally doesn't have it, - set this variable to euro2. + set this variable to euro2. @@ -393,12 +393,12 @@ EOF This variable specifies the arguments for the setfont program. Typically, this includes the font - name, -m, and the name of the application character + name, -m, and the name of the application character map to load. E.g., in order to load the lat1-16 font together with the 8859-1 application character map (appropriate in the USA), - set this variable to lat1-16 -m 8859-1. + set this variable to lat1-16 -m 8859-1. In UTF-8 mode, the kernel uses the application character map to convert 8-bit key codes to UTF-8. Therefore the argument of the "-m" parameter should be set to the encoding of the @@ -410,8 +410,8 @@ EOF UNICODE - Set this variable to 1, yes, or - true in order to put the + Set this variable to 1, yes, or + true in order to put the console into UTF-8 mode. This is useful in UTF-8 based locales and harmful otherwise. @@ -526,7 +526,7 @@ EOF languages, because there accents are added to unaccented ASCII characters, or two ASCII characters are composed together. However, in UTF-8 mode it is a problem; e.g., for the Greek language, where one - sometimes needs to put an accent on the letter alpha. + sometimes needs to put an accent on the letter alpha. The solution is either to avoid the use of UTF-8, or to install the X window system, which doesn't have this limitation, in its input handling. diff --git a/chapter10/grub.xml b/chapter10/grub.xml index cb6518791..1706ccb3c 100644 --- a/chapter10/grub.xml +++ b/chapter10/grub.xml @@ -120,17 +120,6 @@ xorriso -as cdrecord -v dev=/dev/cdrw blank=as_needed grub-img.iso - diff --git a/part3intro/toolchaintechnotes.xml b/part3intro/toolchaintechnotes.xml index c220d24d8..7997b0891 100644 --- a/part3intro/toolchaintechnotes.xml +++ b/part3intro/toolchaintechnotes.xml @@ -56,7 +56,7 @@ The build is the machine where we build programs. Note that this machine - is also referred to as the host. + is also referred to as the host. The host diff --git a/prologue/standards.xml b/prologue/standards.xml index 05fe22745..187264812 100644 --- a/prologue/standards.xml +++ b/prologue/standards.xml @@ -49,7 +49,7 @@ While it is possible to create a complete system that will pass the LSB - certification tests "from scratch", this can't be done without many additional packages + certification tests from scratch, this can't be done without many additional packages that are beyond the scope of the LFS book. Installation instructions for these additional packages can be found in BLFS. diff --git a/prologue/typography.xml b/prologue/typography.xml index db66b345c..d394e9b17 100644 --- a/prologue/typography.xml +++ b/prologue/typography.xml @@ -85,7 +85,7 @@ EOF passwd(5) it is specifically referring to /usr/share/man/man5/passwd.5. man passwd will print the first man page it finds that - matches passwd, which will be + matches passwd, which will be /usr/share/man/man1/passwd.1. For this example, you will need to run man 5 passwd in order to read the page being specified. Note that most man pages do not have duplicate From 0d80918aec7ce426ecb4da841fc4e82ff35a655b Mon Sep 17 00:00:00 2001 From: Pierre Labastie Date: Sat, 27 Jan 2024 15:34:34 +0100 Subject: [PATCH 080/113] Makefile: change ~ to $(HOME) This is more readable. Also remove obsolete variables at start. Part of a patch by Boian Berberov --- Makefile | 11 ++++------- 1 file changed, 4 insertions(+), 7 deletions(-) diff --git a/Makefile b/Makefile index 1f1de8d23..8c80eb9aa 100644 --- a/Makefile +++ b/Makefile @@ -1,7 +1,4 @@ # vim:ts=3 -#BASEDIR = ~/lfs-book -#SYSDDIR = ~/lfs-systemd -#DUMPDIR = ~/lfs-commands RENDERTMP = $(HOME)/tmp CHUNK_QUIET = 1 ROOT_ID = @@ -24,15 +21,15 @@ ifneq ($(REV), sysv) endif ifeq ($(REV), sysv) - BASEDIR ?= ~/public_html/lfs-book + BASEDIR ?= $(HOME)/public_html/lfs-book PDF_OUTPUT ?= LFS-BOOK.pdf NOCHUNKS_OUTPUT ?= LFS-BOOK.html - DUMPDIR ?= ~/lfs-commands + DUMPDIR ?= $(HOME)/lfs-commands else - BASEDIR ?= ~/public_html/lfs-systemd + BASEDIR ?= $(HOME)/public_html/lfs-systemd PDF_OUTPUT ?= LFS-SYSD-BOOK.pdf NOCHUNKS_OUTPUT ?= LFS-SYSD-BOOK.html - DUMPDIR ?= ~/lfs-sysd-commands + DUMPDIR ?= $(HOME)/lfs-sysd-commands endif book: validate profile-html From 4ac089b5b201eb34874be25d5d64fb789eaa348c Mon Sep 17 00:00:00 2001 From: Pierre Labastie Date: Sat, 27 Jan 2024 16:56:22 +0100 Subject: [PATCH 081/113] Unify the writing of sed's in Makefile also remove a commented out line Part of a patch by Boian Berberov --- Makefile | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) diff --git a/Makefile b/Makefile index 8c80eb9aa..9ec33696a 100644 --- a/Makefile +++ b/Makefile @@ -44,7 +44,8 @@ book: validate profile-html @echo "Copying CSS code and images..." $(Q)mkdir -p $(BASEDIR)/stylesheets $(Q)cp stylesheets/lfs-xsl/*.css $(BASEDIR)/stylesheets - $(Q)sed -i 's|../stylesheet|stylesheet|' $(BASEDIR)/index.html + $(Q)sed -e 's|../stylesheet|stylesheet|' \ + -i $(BASEDIR)/index.html $(Q)mkdir -p $(BASEDIR)/images $(Q)cp images/*.png $(BASEDIR)/images @@ -54,9 +55,9 @@ book: validate profile-html tidy -config tidy.conf $$filename; \ true; \ /bin/bash obfuscate.sh $$filename; \ - sed -e "s@text/html@application/xhtml+xml@g" \ + sed -e "s|text/html|application/xhtml+xml|g" \ -i $$filename; \ - done; + done $(Q)$(MAKE) --no-print-directory wget-list md5sums @@ -95,16 +96,16 @@ nochunks: validate profile-html --output $(BASEDIR)/$(NOCHUNKS_OUTPUT) \ stylesheets/lfs-nochunks.xsl \ $(RENDERTMP)/lfs-html.xml -# $(RENDERTMP)/lfs-html2.xml @echo "Running Tidy..." $(Q)tidy -config tidy.conf $(BASEDIR)/$(NOCHUNKS_OUTPUT) || true @echo "Running obfuscate.sh..." - $(Q)bash obfuscate.sh $(BASEDIR)/$(NOCHUNKS_OUTPUT) - $(Q)sed -i -e "s@text/html@application/xhtml+xml@g" $(BASEDIR)/$(NOCHUNKS_OUTPUT) - $(Q)sed -i -e "s@../wget-list@wget-list@" $(BASEDIR)/$(NOCHUNKS_OUTPUT) - $(Q)sed -i -e "s@../md5sums@md5sums@" $(BASEDIR)/$(NOCHUNKS_OUTPUT) + $(Q)bash obfuscate.sh $(BASEDIR)/$(NOCHUNKS_OUTPUT) + $(Q)sed -e "s|text/html|application/xhtml+xml|g" \ + -e "s|../wget-list|wget-list|" \ + -e "s|../md5sums|md5sums|" \ + -i $(BASEDIR)/$(NOCHUNKS_OUTPUT) @echo "Output at $(BASEDIR)/$(NOCHUNKS_OUTPUT)" From 16d01822df0dff12762a77658210784c2583e99a Mon Sep 17 00:00:00 2001 From: Pierre Labastie Date: Sat, 27 Jan 2024 16:58:34 +0100 Subject: [PATCH 082/113] Makefile: remove "true" after tidy If in a series of commands, and not the last, true has no effect If in the last command, it is better to exit if there is a real error in tidy, so use "|| test $$? -le 1", but only when tidy is the last in a series of commands Part of a patch by Boian Berberov --- Makefile | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/Makefile b/Makefile index 9ec33696a..dadbb3783 100644 --- a/Makefile +++ b/Makefile @@ -53,7 +53,6 @@ book: validate profile-html @echo "Running Tidy and obfuscate.sh..." $(Q)for filename in `find $(BASEDIR) -name "*.html"`; do \ tidy -config tidy.conf $$filename; \ - true; \ /bin/bash obfuscate.sh $$filename; \ sed -e "s|text/html|application/xhtml+xml|g" \ -i $$filename; \ @@ -98,7 +97,7 @@ nochunks: validate profile-html $(RENDERTMP)/lfs-html.xml @echo "Running Tidy..." - $(Q)tidy -config tidy.conf $(BASEDIR)/$(NOCHUNKS_OUTPUT) || true + $(Q)tidy -config tidy.conf $(BASEDIR)/$(NOCHUNKS_OUTPUT) || test $$? -le 1 @echo "Running obfuscate.sh..." $(Q)bash obfuscate.sh $(BASEDIR)/$(NOCHUNKS_OUTPUT) From b6dd23c76bf4a819c291395d49da566cb391b9e4 Mon Sep 17 00:00:00 2001 From: Pierre Labastie Date: Sat, 27 Jan 2024 17:03:47 +0100 Subject: [PATCH 083/113] Makefile: improvements in xsltproc commands - remove some useless --xinclude - write only one option per line - use --encode UTF-8 instead of --noent (which is useless after profiling anyway - try to be consistent in option order - use --output instead of -o --- Makefile | 24 ++++++++++++++---------- 1 file changed, 14 insertions(+), 10 deletions(-) diff --git a/Makefile b/Makefile index dadbb3783..6247b294d 100644 --- a/Makefile +++ b/Makefile @@ -123,16 +123,16 @@ validate: tmpdir version @echo "Adjusting for revision $(REV)..." $(Q)xsltproc --nonet \ --xinclude \ - --output $(RENDERTMP)/lfs-html2.xml \ --stringparam profile.revision $(REV) \ + --output $(RENDERTMP)/lfs-html2.xml \ stylesheets/lfs-xsl/profile.xsl \ index.xml @echo "Validating the book..." - $(Q)xmllint --nonet \ - --noent \ - --postvalid \ - -o $(RENDERTMP)/lfs-full.xml \ + $(Q)xmllint --nonet \ + --encode UTF-8 \ + --postvalid \ + --output $(RENDERTMP)/lfs-full.xml \ $(RENDERTMP)/lfs-html2.xml $(Q)rm -f appendices/*.script @@ -154,18 +154,21 @@ wget-list: $(BASEDIR)/wget-list $(BASEDIR)/wget-list-$(REV) $(BASEDIR)/wget-list: stylesheets/wget-list.xsl $(DOWNLOADS_DEP) @echo "Generating consolidated wget list at $(BASEDIR)/wget-list ..." $(Q)mkdir -p $(BASEDIR) - $(Q)xsltproc --xinclude --nonet \ + $(Q)xsltproc --nonet \ + --xinclude \ --output $(BASEDIR)/wget-list \ stylesheets/wget-list.xsl \ chapter03/chapter03.xml $(BASEDIR)/wget-list-$(REV): stylesheets/wget-list.xsl $(DOWNLOADS_DEP) - $(Q)xsltproc --nonet --xinclude \ + $(Q)xsltproc --nonet \ + --xinclude \ --stringparam profile.revision $(REV) \ --output $(RENDERTMP)/wget-list.xml \ stylesheets/lfs-xsl/profile.xsl \ chapter03/chapter03.xml - $(Q)xsltproc --xinclude --nonet \ + + $(Q)xsltproc --nonet \ --output $(BASEDIR)/wget-list-$(REV) \ stylesheets/wget-list.xsl \ $(RENDERTMP)/wget-list.xml @@ -175,13 +178,14 @@ $(BASEDIR)/md5sums: stylesheets/wget-list.xsl $(DOWNLOADS_DEP) @echo "Generating consolidated md5sum file at $(BASEDIR)/md5sums ..." $(Q)mkdir -p $(BASEDIR) - $(Q)xsltproc --nonet --xinclude \ + $(Q)xsltproc --nonet \ + --xinclude \ --stringparam profile.revision $(REV) \ --output $(RENDERTMP)/md5sum.xml \ stylesheets/lfs-xsl/profile.xsl \ chapter03/chapter03.xml - $(Q)xsltproc --xinclude --nonet \ + $(Q)xsltproc --nonet \ --output $(BASEDIR)/md5sums \ stylesheets/md5sum.xsl \ $(RENDERTMP)/md5sum.xml From b8d33a557b77b91dfbf18e983462b1a28bfe91e7 Mon Sep 17 00:00:00 2001 From: Pierre Labastie Date: Sat, 27 Jan 2024 17:28:43 +0100 Subject: [PATCH 084/113] rendering: some utf-8 fixes Reinstate some character entities Have some stylesheets output UTF-8 Part of a patch by Boian Berberov --- stylesheets/dump-commands.xsl | 5 ++--- stylesheets/lfs-xsl/pdf.xsl | 4 ++-- stylesheets/lfs-xsl/profile.xsl | 1 + stylesheets/md5sum.xsl | 3 +-- stylesheets/wget-list.xsl | 3 +-- 5 files changed, 7 insertions(+), 9 deletions(-) diff --git a/stylesheets/dump-commands.xsl b/stylesheets/dump-commands.xsl index 48af34c20..526a33102 100644 --- a/stylesheets/dump-commands.xsl +++ b/stylesheets/dump-commands.xsl @@ -1,4 +1,4 @@ - + - - + diff --git a/stylesheets/lfs-xsl/pdf.xsl b/stylesheets/lfs-xsl/pdf.xsl index 679f73b84..ea247f5db 100644 --- a/stylesheets/lfs-xsl/pdf.xsl +++ b/stylesheets/lfs-xsl/pdf.xsl @@ -53,8 +53,8 @@ We have expanded the support to several inline tags. See pdf/lfs-mixed.xsl. Note: the argument in select= is a zero-width space - (unicode 200b, encoded in utf-8)--> - + (unicode 200b)--> + diff --git a/stylesheets/md5sum.xsl b/stylesheets/md5sum.xsl index bb7268276..121e0a274 100644 --- a/stylesheets/md5sum.xsl +++ b/stylesheets/md5sum.xsl @@ -31,8 +31,7 @@
- - +
diff --git a/stylesheets/wget-list.xsl b/stylesheets/wget-list.xsl index aa8d263c4..f55c37346 100644 --- a/stylesheets/wget-list.xsl +++ b/stylesheets/wget-list.xsl @@ -28,8 +28,7 @@ - - + From 5d064fb3c30ea9c83df96774f7a348833d4f7628 Mon Sep 17 00:00:00 2001 From: Pierre Labastie Date: Sat, 27 Jan 2024 17:30:51 +0100 Subject: [PATCH 085/113] Align attributes in xsl:stylesheet elements Part of a patch by Boian Berberov --- stylesheets/dump-commands.xsl | 6 +++--- stylesheets/md5sum.xsl | 2 +- stylesheets/wget-list.xsl | 2 +- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/stylesheets/dump-commands.xsl b/stylesheets/dump-commands.xsl index 526a33102..83e24dfc6 100644 --- a/stylesheets/dump-commands.xsl +++ b/stylesheets/dump-commands.xsl @@ -1,8 +1,8 @@ + xmlns:exsl="http://exslt.org/common" + extension-element-prefixes="exsl" + version="1.0"> diff --git a/stylesheets/md5sum.xsl b/stylesheets/md5sum.xsl index 121e0a274..57723df97 100644 --- a/stylesheets/md5sum.xsl +++ b/stylesheets/md5sum.xsl @@ -3,7 +3,7 @@ + version="1.0"> diff --git a/stylesheets/wget-list.xsl b/stylesheets/wget-list.xsl index f55c37346..eca53a4c9 100644 --- a/stylesheets/wget-list.xsl +++ b/stylesheets/wget-list.xsl @@ -4,7 +4,7 @@ with wget. --> + version="1.0"> From a4eaba6d553e4545e9ed3ae576e28a49b968b496 Mon Sep 17 00:00:00 2001 From: Pierre Labastie Date: Sat, 27 Jan 2024 17:31:56 +0100 Subject: [PATCH 086/113] Tidy doctype and xml declarations in .html output Part of a patch by Boian Berberov --- stylesheets/lfs-xsl/chunk-slave.xsl | 11 ++++++++--- stylesheets/lfs-xsl/nochunks.xsl | 7 +++++++ 2 files changed, 15 insertions(+), 3 deletions(-) diff --git a/stylesheets/lfs-xsl/chunk-slave.xsl b/stylesheets/lfs-xsl/chunk-slave.xsl index f5bc8a956..45d33e04a 100644 --- a/stylesheets/lfs-xsl/chunk-slave.xsl +++ b/stylesheets/lfs-xsl/chunk-slave.xsl @@ -10,6 +10,14 @@ + + + + + + + + @@ -31,9 +39,6 @@ - - - book toc,title diff --git a/stylesheets/lfs-xsl/nochunks.xsl b/stylesheets/lfs-xsl/nochunks.xsl index 5a5ad36f5..896449d7c 100644 --- a/stylesheets/lfs-xsl/nochunks.xsl +++ b/stylesheets/lfs-xsl/nochunks.xsl @@ -10,6 +10,13 @@ + From 81f727aca6b200a85c7fd3700d8aa54c01bc9232 Mon Sep 17 00:00:00 2001 From: Xi Ruoyao Date: Sun, 28 Jan 2024 17:44:24 +0800 Subject: [PATCH 087/113] chapter07/python: Work around a puzzling punctuation in quote Here no file name starts with "python." (including the dot). Slightly reword to prevent the punctuation from following the quote or being quoted. --- chapter07/python.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/chapter07/python.xml b/chapter07/python.xml index 3729c6ccf..8268df8e4 100644 --- a/chapter07/python.xml +++ b/chapter07/python.xml @@ -44,8 +44,8 @@ Installation of Python - There are two package files whose name starts with - python. The one to extract from is + There are two package files whose name starts with the + python prefix. The one to extract from is Python-&python-version;.tar.xz (notice the uppercase first letter). From 84974486d96fac6f86cff344a77cee52fe1081eb Mon Sep 17 00:00:00 2001 From: Xi Ruoyao Date: Sun, 28 Jan 2024 18:36:16 +0800 Subject: [PATCH 088/113] locale: Replace with for locale specifiers Prevent ambigious quoted punctuations. --- chapter09/locale.xml | 22 +++++++++++++--------- 1 file changed, 13 insertions(+), 9 deletions(-) diff --git a/chapter09/locale.xml b/chapter09/locale.xml index c5e55d0da..fa8508828 100644 --- a/chapter09/locale.xml +++ b/chapter09/locale.xml @@ -50,19 +50,21 @@ locale -a - Charmaps can have a number of aliases, e.g., ISO-8859-1 - is also referred to as iso8859-1 and iso88591. + Charmaps can have a number of aliases, e.g., + ISO-8859-1 is also referred to as + iso8859-1 and iso88591. Some applications cannot handle the various synonyms correctly (e.g., require - that UTF-8 is written as UTF-8, not + that UTF-8 is written as UTF-8, not utf8), so it is the safest in most cases to choose the canonical name for a particular locale. To determine the canonical name, run the following command, where <locale name> is the output given by locale -a for - your preferred locale (en_GB.iso88591 in our example). + your preferred locale (en_GB.iso88591 in our + example). LC_ALL=<locale name> locale charmap - For the en_GB.iso88591 locale, the above command + For the en_GB.iso88591 locale, the above command will print: ISO-8859-1 @@ -120,14 +122,16 @@ EOF doesn't work in the chroot environment. It can only be used after the LFS system is booted with systemd. - The C (default) and en_US (the recommended - one for United States English users) locales are different. C + The C (default) and en_US + (the recommended one for United States English users) locales are + different. C uses the US-ASCII 7-bit character set, and treats bytes with the high bit set as invalid characters. That's why, e.g., the ls command substitutes them with question marks in that locale. Also, an attempt to send mail with such characters from Mutt or Pine results in non-RFC-conforming - messages being sent (the charset in the outgoing mail is indicated as unknown - 8-bit). It's suggested that you use the C locale only + messages being sent (the charset in the outgoing mail is indicated as + unknown 8-bit). It's suggested that you + use the C locale only if you are certain that you will never need 8-bit characters. - - + diff --git a/chapter09/locale.xml b/chapter09/locale.xml index fa8508828..803978267 100644 --- a/chapter09/locale.xml +++ b/chapter09/locale.xml @@ -5,18 +5,25 @@ %general-entities; ]> - + Configuring the System Locale - /etc/locale.conf + /etc/profile - The /etc/locale.conf file below sets some - environment variables necessary for native language support. Setting - them properly results in: + + /etc/locale.conf + + + The /etc/locale.conf file + below sets some environment variables necessary for native language + support. Setting them properly results in: + + Some environment variables are necessary for native language + support. Setting them properly results in: @@ -97,30 +104,103 @@ LC_ALL=<locale name> locale int_prefix In those cases, investigating how other Linux distributions support your locale might provide some useful information. - Once the proper locale settings have been determined, create the - /etc/locale.conf file: + Once the proper locale settings have been + determined, create the /etc/locale.conf file: -cat > /etc/locale.conf << "EOF" +cat > /etc/locale.conf << "EOF" LANG=<ll>_<CC>.<charmap><@modifiers> EOF - Note that you can modify /etc/locale.conf with the + The shell program /bin/bash (here after referred + as the shell) uses a collection of startup files to help + create the environment to run in. Each file has a specific use and may + affect login and interactive environments differently. The files in the + /etc directory provide global + settings. If equivalent files exist in the home directory, they + may override the global settings. + + An interactive login shell is started after a successful login, + using /bin/login, by reading the + /etc/passwd file. An interactive non-login shell is + started at the command-line (e.g. + [prompt]$/bin/bash). A + non-interactive shell is usually present when a shell script is running. + It is non-interactive because it is processing a script and not waiting + for user input between commands. + + The login shells are often unaffected by + the settings in /etc/locale.conf. Create the + /etc/profile + once the proper locale settings have been + determined to set the desired localeto read the locale settings from + /etc/locale.conf and export them, + but set the C locale instead if running in the Linux + console (to prevent programs from outputting characters that the Linux + console is unable to render): + +cat > /etc/profile << "EOF" +# Begin /etc/profile + +for i in $(locale); do + unset ${i%=*} +done + +if [[ "$TERM" = linux ]]; then + export LANG=C +else + source /etc/locale.conf + + for i in $(locale); do + key=${i%=*} + if [[ -v $key ]]; then + export $key + fi + done +fi + +# End /etc/profile +EOF + +cat > /etc/profile << "EOF" +# Begin /etc/profile + +for i in $(locale); do + unset ${i%=*} +done + +if [[ "$TERM" = linux ]]; then + for i in $(locale); do + unset ${i%=*} + done + + export LANG=C +else + export LANG=<ll>_<CC>.<charmap><@modifiers> +fi + +# End /etc/profile +EOF + + Note that you can modify /etc/locale.conf with the systemd localectl utility. To use localectl for the example above, run: -localectl set-locale LANG="<ll>_<CC>.<charmap><@modifiers>" +localectl set-locale LANG="<ll>_<CC>.<charmap><@modifiers>" - You can also specify other language specific environment variables such - as LANG, LC_CTYPE, LC_NUMERIC or - any other environment variable from locale output. Just - separate them with a space. An example where LANG is set as + You can also specify other language specific + environment variables such as LANG, + LC_CTYPE, LC_NUMERIC or any other + environment variable from locale output. Just separate + them with a space. An example where LANG is set as en_US.UTF-8 but LC_CTYPE is set as just en_US is: -localectl set-locale LANG="en_US.UTF-8" LC_CTYPE="en_US" +localectl set-locale LANG="en_US.UTF-8" LC_CTYPE="en_US" - Please note that the localectl command - doesn't work in the chroot environment. It can only - be used after the LFS system is booted with systemd. + Please note that the + localectl command doesn't work in the chroot + environment. It can only be used after the LFS system is booted with + systemd. The C (default) and en_US (the recommended one for United States English users) locales are @@ -134,10 +214,4 @@ EOF use the C locale only if you are certain that you will never need 8-bit characters. - - diff --git a/chapter09/profile.xml b/chapter09/profile.xml deleted file mode 100644 index 55cc5dbb0..000000000 --- a/chapter09/profile.xml +++ /dev/null @@ -1,147 +0,0 @@ - - - %general-entities; -]> - - - - - The Bash Shell Startup Files - - - /etc/profile - - - The shell program /bin/bash (hereafter referred to - as the shell) uses a collection of startup files to help - create the environment to run in. Each file has a specific use and may affect - login and interactive environments differently. The files in the /etc directory provide global settings. If - equivalent files exist in the home directory, they may override the global - settings. - - An interactive login shell is started after a successful login, using - /bin/login, by reading the /etc/passwd - file. An interactive non-login shell is started at the command-line (e.g., - [prompt]$/bin/bash). A non-interactive - shell is usually present when a shell script is running. It is non-interactive - because it is processing a script and not waiting for user input between - commands. - -For more information, see the Bash Startup Files and - Interactive Shells sections in the Bash - Features chapter of the Bash info pages (info bash). - - The files /etc/profile and - ~/.bash_profile are read when the shell is - invoked as an interactive login shell. - - The base /etc/profile below sets some - environment variables necessary for native language support. Setting - them properly results in: - - - - The output of programs translated into the native language - - - Correct classification of characters into letters, digits and other - classes. This is necessary for bash to properly accept - non-ASCII characters in command lines in non-English locales - - - The correct alphabetical sorting order for the country - - - Appropriate default paper size - - - Correct formatting of monetary, time, and date values - - - - Replace <ll> below with the two-letter code - for the desired language (e.g., en) and - <CC> with the two-letter code for the appropriate - country (e.g., GB). <charmap> should - be replaced with the canonical charmap for your chosen locale. Optional - modifiers such as @euro may also be present. - - The list of all locales supported by Glibc can be obtained by running - the following command: - -locale -a - - Charmaps can have a number of aliases, e.g., ISO-8859-1 - is also referred to as iso8859-1 and iso88591. - Some applications cannot handle the various synonyms correctly (e.g., require - that UTF-8 is written as UTF-8, not - utf8), so it is safest in most - cases to choose the canonical name for a particular locale. To determine - the canonical name, run the following command, where <locale - name> is the output given by locale -a for - your preferred locale (en_GB.iso88591 in our example). - -LC_ALL=<locale name> locale charmap - - For the en_GB.iso88591 locale, the above command - will print: - -ISO-8859-1 - - This results in a final locale setting of en_GB.ISO-8859-1. - It is important that the locale found using the heuristic above is tested before - it is added to the Bash startup files: - -LC_ALL=<locale name> locale language -LC_ALL=<locale name> locale charmap -LC_ALL=<locale name> locale int_curr_symbol -LC_ALL=<locale name> locale int_prefix - - The above commands should print the language name, the character - encoding used by the locale, the local currency, and the prefix to dial - before the telephone number in order to get into the country. If any of the - commands above fail with a message similar to the one shown below, this means - that your locale was either not installed in - or is not supported by the default installation of Glibc. - -locale: Cannot set LC_* to default locale: No such file or directory - - If this happens, you should either install the desired locale using the - localedef command, or consider choosing a different locale. - Further instructions assume that there are no such error messages from - Glibc. - - Other packages may also function incorrectly (but will not necessarily - display any error messages) if the locale name does not meet their expectations. - In such cases, investigating how other Linux distributions support your locale - might provide some useful information. - - Once the proper locale settings have been determined, create the - /etc/profile file: - -cat > /etc/profile << "EOF" -# Begin /etc/profile - -export LANG=<ll>_<CC>.<charmap><@modifiers> - -# End /etc/profile -EOF - - The C (default) and en_US.utf8 (the recommended - one for United States English users) locales are different. C - uses the US-ASCII 7-bit character set, and treats bytes with the high-order bit set - on as invalid characters. That's why, e.g., the ls command - displays them as question marks in that locale. Also, an attempt to send - mail with such characters from Mutt or Pine results in non-RFC-conforming - messages being sent (the charset in the outgoing mail is indicated as unknown - 8-bit). So you can only use the C locale if you are sure - you will never need 8-bit characters. - - UTF-8 based locales are not supported well by some programs. - Work is in progress to document and, if possible, fix such problems. See - . - - From ee950a5e0dd576887096d9ee50cd9e551aaa9202 Mon Sep 17 00:00:00 2001 From: Xi Ruoyao Date: Sun, 28 Jan 2024 20:53:47 +0800 Subject: [PATCH 090/113] More clean up Use instead of '"' if possible. Use , , etc. instead of if possible. Replace alpha with a UTF-8 Greek alpha character. BTW decorate ".link" with . --- chapter02/hostreqs.xml | 7 ++++--- chapter02/mounting.xml | 2 +- chapter07/python.xml | 4 ++-- chapter08/coreutils.xml | 4 ++-- chapter08/expect.xml | 4 ++-- chapter08/stripping.xml | 2 +- chapter09/networkd.xml | 9 +++++---- chapter09/usage.xml | 2 +- 8 files changed, 18 insertions(+), 16 deletions(-) diff --git a/chapter02/hostreqs.xml b/chapter02/hostreqs.xml index 546555e9b..3dc451856 100644 --- a/chapter02/hostreqs.xml +++ b/chapter02/hostreqs.xml @@ -29,9 +29,10 @@ minimum versions indicated. This should not be an issue for most modern Linux distributions. Also note that many distributions will place software headers into separate packages, often in the form of - <package-name>-devel or - <package-name>-dev. Be sure to install those if - your distribution provides them. + <package-name>-devel + or + <package-name>-dev. + Be sure to install those if your distribution provides them. Earlier versions of the listed software packages may work, but have not been tested. diff --git a/chapter02/mounting.xml b/chapter02/mounting.xml index 60e5cdc62..4db0f5bfc 100644 --- a/chapter02/mounting.xml +++ b/chapter02/mounting.xml @@ -16,7 +16,7 @@ LFS environment variable described in the previous section. - Strictly speaking, one cannot "mount a partition." One mounts the file + Strictly speaking, one cannot mount a partition. One mounts the file system embedded in that partition. But since a single partition can't contain more than one file system, people often speak of the partition and the associated file system as if they were one and the same. diff --git a/chapter07/python.xml b/chapter07/python.xml index 8268df8e4..872cf4a36 100644 --- a/chapter07/python.xml +++ b/chapter07/python.xml @@ -84,8 +84,8 @@ Some Python 3 modules can't be built now because the dependencies are not installed yet. For the ssl module, - a message Python requires a OpenSSL 1.1.1 or - newer is outputted. + a message Python requires a OpenSSL 1.1.1 or + newer is outputted. The message should be ignored. Just make sure the toplevel make command has not failed. The optional modules are not needed now and they will be built in diff --git a/chapter08/coreutils.xml b/chapter08/coreutils.xml index 3357fabc5..96c46996d 100644 --- a/chapter08/coreutils.xml +++ b/chapter08/coreutils.xml @@ -1261,8 +1261,8 @@ sed -i 's/"1"/"8"/' /usr/share/man/man8/chroot.8 yes - Repeatedly outputs y, or a given string, until - killed + Repeatedly outputs y or a given string, + until killed yes diff --git a/chapter08/expect.xml b/chapter08/expect.xml index 95dc8beae..810bc55a2 100644 --- a/chapter08/expect.xml +++ b/chapter08/expect.xml @@ -92,8 +92,8 @@ make test If any test fails with the message - The system has no more ptys. Ask your system - administrator to create more, it indicates + The system has no more ptys. Ask your system + administrator to create more, it indicates you've not mounted the devpts file system correctly. You need to exit from the chroot environment, read diff --git a/chapter08/stripping.xml b/chapter08/stripping.xml index 6c3cc7c98..5ce0235d3 100644 --- a/chapter08/stripping.xml +++ b/chapter08/stripping.xml @@ -52,7 +52,7 @@ The ELF loader's name is ld-linux-x86-64.so.2 on 64-bit systems and ld-linux.so.2 on 32-bit systems. The construct below selects the correct name for the current architecture, excluding anything ending - with g, in case the commands below have already been + with g, in case the commands below have already been run. diff --git a/chapter09/networkd.xml b/chapter09/networkd.xml index 363e8d883..6c2935de1 100644 --- a/chapter09/networkd.xml +++ b/chapter09/networkd.xml @@ -91,7 +91,8 @@ - Mask udev's .link file for the default policy: + Mask udev's .link file + for the default policy: ln -s /dev/null /etc/systemd/network/99-default.link @@ -101,9 +102,9 @@ Create a manual naming scheme, for example by naming the interfaces something like internet0, dmz0, or lan0. - To do that, create .link files in /etc/systemd/network/ that - select an explicit name or a better naming scheme for your - network interfaces. For example: + To do that, create .link + files in /etc/systemd/network/ that select an explicit name or a + better naming scheme for your network interfaces. For example: cat > /etc/systemd/network/10-ether0.link << "EOF" diff --git a/chapter09/usage.xml b/chapter09/usage.xml index 85b35d16d..7c4f18600 100644 --- a/chapter09/usage.xml +++ b/chapter09/usage.xml @@ -526,7 +526,7 @@ EOF languages, because there accents are added to unaccented ASCII characters, or two ASCII characters are composed together. However, in UTF-8 mode it is a problem; e.g., for the Greek language, where one - sometimes needs to put an accent on the letter alpha. + sometimes needs to put an accent on the letter α. The solution is either to avoid the use of UTF-8, or to install the X window system, which doesn't have this limitation, in its input handling. From 5dd707361faeaa09bc9ebd45329cfd167b8472af Mon Sep 17 00:00:00 2001 From: Xi Ruoyao Date: Sun, 28 Jan 2024 21:04:30 +0800 Subject: [PATCH 091/113] locale: Dedup --- chapter09/locale.xml | 4 ---- 1 file changed, 4 deletions(-) diff --git a/chapter09/locale.xml b/chapter09/locale.xml index 803978267..ee45a1f4a 100644 --- a/chapter09/locale.xml +++ b/chapter09/locale.xml @@ -18,10 +18,6 @@ /etc/locale.conf - The /etc/locale.conf file - below sets some environment variables necessary for native language - support. Setting them properly results in: - Some environment variables are necessary for native language support. Setting them properly results in: From 7c630340c2813897c6424670edefa3a98e970ab7 Mon Sep 17 00:00:00 2001 From: Xi Ruoyao Date: Sun, 28 Jan 2024 21:06:19 +0800 Subject: [PATCH 092/113] locale: Dedup in /etc/profile --- chapter09/locale.xml | 4 ---- 1 file changed, 4 deletions(-) diff --git a/chapter09/locale.xml b/chapter09/locale.xml index ee45a1f4a..92a71ee6e 100644 --- a/chapter09/locale.xml +++ b/chapter09/locale.xml @@ -166,10 +166,6 @@ for i in $(locale); do done if [[ "$TERM" = linux ]]; then - for i in $(locale); do - unset ${i%=*} - done - export LANG=C else export LANG=<ll>_<CC>.<charmap><@modifiers> From 4ecfc55ddba0e6ffae4c2f74ad773eea8d290364 Mon Sep 17 00:00:00 2001 From: Xi Ruoyao Date: Mon, 29 Jan 2024 01:47:41 +0800 Subject: [PATCH 093/113] Use C.UTF-8 instead of C in console, and set the consolefont for it --- chapter09/consoled.xml | 14 ++++++++++++++ chapter09/locale.xml | 6 +++--- chapter09/usage.xml | 29 +++++++++++++++++++++++++++++ 3 files changed, 46 insertions(+), 3 deletions(-) diff --git a/chapter09/consoled.xml b/chapter09/consoled.xml index f35a586fe..fe1744ddc 100644 --- a/chapter09/consoled.xml +++ b/chapter09/consoled.xml @@ -74,6 +74,20 @@ + We'll use C.UTF-8 as the locale for interactive + sessions in the Linux console in The only console font shipped by + the Kbd package containing the glyphs for + all characters from the program messages in the C.UTF-8 + locale is Lat2-Terminus16 (the other shipped console + fonts lack glyphs of some characters like the Unicode left/right + quotation marks and the Unicode English dash). So set + Lat2-Terminus16 as the default console font: + + +echo FONT=Lat2-Terminus16 > /etc/vconsole.conf + An example for a German keyboard and console is given below: +cat > /etc/sysconfig/console << "EOF" +# Begin /etc/sysconfig/console + +UNICODE="1" +FONT="Lat2-Terminus16" + +# End /etc/sysconfig/console +EOF + + For a non-Unicode setup, only the KEYMAP and FONT variables are From 40cd8a18016e92e48454bf24e2c4d853d1b2b3a9 Mon Sep 17 00:00:00 2001 From: Xi Ruoyao Date: Mon, 29 Jan 2024 23:45:33 +0800 Subject: [PATCH 094/113] glibc: Drop --with-headers=/usr/include MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The Glibc INSTALL file says: ‘--with-headers=DIRECTORY’ Look for kernel header files in DIRECTORY, not ‘/usr/include’. ... So --with-headers=/usr/include seems just doing nothing. --- chapter08/glibc.xml | 1 - 1 file changed, 1 deletion(-) diff --git a/chapter08/glibc.xml b/chapter08/glibc.xml index 1c365ccb1..f82c86d5b 100644 --- a/chapter08/glibc.xml +++ b/chapter08/glibc.xml @@ -73,7 +73,6 @@ cd build --disable-werror \ --enable-kernel=&min-kernel; \ --enable-stack-protector=strong \ - --with-headers=/usr/include \ --disable-nscd \ libc_cv_slibdir=/usr/lib From 39b5bb69894f9b54c8d605b6ac3382531b4c214f Mon Sep 17 00:00:00 2001 From: Xi Ruoyao Date: Tue, 30 Jan 2024 12:10:13 +0800 Subject: [PATCH 095/113] console font: Add more "working for C.UTF-8" console fonts --- chapter09/consoled.xml | 15 ++++++++++----- chapter09/usage.xml | 19 ++++++++++++------- 2 files changed, 22 insertions(+), 12 deletions(-) diff --git a/chapter09/consoled.xml b/chapter09/consoled.xml index fe1744ddc..ce922d6a8 100644 --- a/chapter09/consoled.xml +++ b/chapter09/consoled.xml @@ -76,13 +76,18 @@ We'll use C.UTF-8 as the locale for interactive sessions in the Linux console in The only console font shipped by + linkend='ch-config-locale'/> The console fonts shipped by the Kbd package containing the glyphs for all characters from the program messages in the C.UTF-8 - locale is Lat2-Terminus16 (the other shipped console - fonts lack glyphs of some characters like the Unicode left/right - quotation marks and the Unicode English dash). So set - Lat2-Terminus16 as the default console font: + locale are LatArCyrHeb*.psfu.gz, + LatGrkCyr*.psfu.gz, + Lat2-Terminus16.psfu.gz, and + pancyrillic.f16.psfu.gz in + /usr/share/consolefonts (the other + shipped console fonts lack glyphs of some characters like the Unicode + left/right quotation marks and the Unicode English dash). So set one of + them, for example Lat2-Terminus16.psfu.gz as the + default console font: diff --git a/chapter09/usage.xml b/chapter09/usage.xml index 73f92ebef..6b5441bba 100644 --- a/chapter09/usage.xml +++ b/chapter09/usage.xml @@ -437,14 +437,19 @@ EOF We'll use C.UTF-8 as the locale for interactive sessions in the Linux console in so we should set - UNICODE to 1. And the only - console font shipped by the Kbd package + UNICODE to 1. And the console + fonts shipped by the Kbd package containing the glyphs for all characters from the program messages - in the C.UTF-8 locale is - Lat2-Terminus16 (the other shipped console - fonts lack glyphs of some characters like the Unicode left/right - quotation marks and the Unicode English dash). So set - Lat2-Terminus16 as the default console + in the C.UTF-8 locale are + LatArCyrHeb*.psfu.gz, + LatGrkCyr*.psfu.gz, + Lat2-Terminus16.psfu.gz, and + pancyrillic.f16.psfu.gz in + /usr/share/consolefonts (the + other shipped console fonts lack glyphs of some characters like the + Unicode left/right quotation marks and the Unicode English dash). + So set one of them, for example + Lat2-Terminus16.psfu.gz as the default console font: From bbcac389a3e239ba034b9a63b80e1b9376b72aee Mon Sep 17 00:00:00 2001 From: Xi Ruoyao Date: Wed, 31 Jan 2024 16:16:14 +0800 Subject: [PATCH 096/113] glibc: Update upstream fixes patch To include fixes for CVE-2023-6246, CVE-2023-6779, and CVE-2023-6780. --- patches.ent | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/patches.ent b/patches.ent index d27c717de..bad5abff6 100644 --- a/patches.ent +++ b/patches.ent @@ -14,9 +14,9 @@ - - - + + + From bed3894b899f05fb586cdcb407de635b71bdf97f Mon Sep 17 00:00:00 2001 From: Xi Ruoyao Date: Wed, 31 Jan 2024 17:35:03 +0800 Subject: [PATCH 097/113] glibc: Add more rationale about --enable-stack-protector, and remove the stale explanation of --with-headers --- chapter08/glibc.xml | 13 ++++--------- 1 file changed, 4 insertions(+), 9 deletions(-) diff --git a/chapter08/glibc.xml b/chapter08/glibc.xml index f82c86d5b..ae4856581 100644 --- a/chapter08/glibc.xml +++ b/chapter08/glibc.xml @@ -102,15 +102,10 @@ cd build This option increases system security by adding extra code to check for buffer overflows, such as stack - smashing attacks. - - - - - --with-headers=/usr/include - - This option tells the build system where to find the - kernel API headers. + smashing attacks. Note that Glibc always explicitly overrides + the default of GCC, so this option is still needed even though + we've already specified for + GCC. From cdf280e3373c65b8979a3d152d9b2b39003c39ff Mon Sep 17 00:00:00 2001 From: Bruce Dubbs Date: Wed, 31 Jan 2024 08:42:20 -0600 Subject: [PATCH 098/113] Package updates. Update to openssl-3.2.1. Update to zlib-1.3.1. Update to xz-5.4.6. Update to linux-6.7.2. Update to iana-etc-20240125. Update to binutils-2.42. Update to acl-2.3.2. Update upstream fixes for readline-8.2. Apply upstream fix for bash-5.2.21. --- chapter01/changelog.xml | 42 +++++++++++++++++++++++++++++++++++++++ chapter01/whatsnew.xml | 12 +++++++---- chapter03/patches.xml | 10 +++++----- chapter08/bash.xml | 4 ++++ chapter08/binutils.xml | 2 +- packages.ent | 44 ++++++++++++++++++++--------------------- patches.ent | 10 +++++++--- 7 files changed, 89 insertions(+), 35 deletions(-) diff --git a/chapter01/changelog.xml b/chapter01/changelog.xml index aba69a0de..d16a6181b 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-02-01 + + + [bdubbs] - Update to openssl-3.2.1. 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 diff --git a/chapter01/whatsnew.xml b/chapter01/whatsnew.xml index 2dd0a8d02..ceca1c108 100644 --- a/chapter01/whatsnew.xml +++ b/chapter01/whatsnew.xml @@ -26,9 +26,9 @@ - + Attr-&attr-version; @@ -44,9 +44,9 @@ Bc-&bc-version; - + @@ -290,6 +290,10 @@ Added: + + &bash-upstream-fixes-patch; + + setuptools-&setuptools-version; diff --git a/chapter03/patches.xml b/chapter03/patches.xml index 50ff56a6f..106527518 100644 --- a/chapter03/patches.xml +++ b/chapter03/patches.xml @@ -27,14 +27,14 @@ --> - + Install the package: diff --git a/packages.ent b/packages.ent index cfdbd2790..22e143878 100644 --- a/packages.ent +++ b/packages.ent @@ -13,10 +13,10 @@ *-knl-* Package info for Kernel stuff --> - - + + - + @@ -65,10 +65,10 @@ - - + + - + @@ -317,10 +317,10 @@ - - + + - + @@ -431,12 +431,12 @@ - + - + - + - + diff --git a/patches.ent b/patches.ent index bad5abff6..c2f957aad 100644 --- a/patches.ent +++ b/patches.ent @@ -2,6 +2,10 @@ + + + + @@ -26,9 +30,9 @@ - - - + + + From d3b0a0842ea875cf9609cb3c07e5234af8abfdc9 Mon Sep 17 00:00:00 2001 From: Xi Ruoyao Date: Thu, 1 Feb 2024 01:20:15 +0800 Subject: [PATCH 099/113] pkgmgt: Upgrading Linux API headers cannot be dangerous Per a discussion in the team, we only consider an upgradation dangerous if it may render the system unusable. "Causing something not able to build" is never considered dangerous. Thus upgrading some headers cannot be dangerous. The Glibc portion will need an update too (it can be upgraded safely with some caution) to ease security updates. But let's do the easy change first... --- chapter08/pkgmgt.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/chapter08/pkgmgt.xml b/chapter08/pkgmgt.xml index 42a6ff945..4c7bb6dd7 100644 --- a/chapter08/pkgmgt.xml +++ b/chapter08/pkgmgt.xml @@ -56,13 +56,13 @@ 5.10.17 to 5.10.18 or 5.11.1), nothing else needs to be rebuilt. The system will keep working fine thanks to the well-defined interface between the kernel and userspace. Specifically, Linux API headers - need not be (and should not be, see the next item) upgraded + need not be upgraded along with the kernel. You will merely need to reboot your system to use the upgraded kernel. - If the Linux API headers or Glibc need to be upgraded to a newer + If Glibc needs to be upgraded to a newer version, (e.g., from Glibc-2.31 to Glibc-2.32), it is safer to rebuild LFS. Though you may be able to rebuild all the packages in their dependency order, we do not recommend From d386e51ec48321f45708a93c8a0a895997dad20c Mon Sep 17 00:00:00 2001 From: Xi Ruoyao Date: Fri, 2 Feb 2024 05:18:35 +0800 Subject: [PATCH 100/113] changelog: OpenSSL 3.2.1 is a security fix I'll write the SA for it... --- chapter01/changelog.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/chapter01/changelog.xml b/chapter01/changelog.xml index d16a6181b..5f20d6177 100644 --- a/chapter01/changelog.xml +++ b/chapter01/changelog.xml @@ -44,7 +44,7 @@ 2024-02-01 - [bdubbs] - Update to openssl-3.2.1. Fixes + [bdubbs] - Update to openssl-3.2.1 (security fix). Fixes #5425. From 1e180412f93db670c42458f1b00963a0ae1b56d0 Mon Sep 17 00:00:00 2001 From: Xi Ruoyao Date: Fri, 2 Feb 2024 05:06:17 +0800 Subject: [PATCH 101/113] hostreq: Raise min-kernel to 4.19 4.14 is no longer supported by the upstream since Jan 2024. --- chapter02/hostreqs.xml | 8 ++++++-- general.ent | 6 +++--- 2 files changed, 9 insertions(+), 5 deletions(-) diff --git a/chapter02/hostreqs.xml b/chapter02/hostreqs.xml index 3dc451856..7375ca327 100644 --- a/chapter02/hostreqs.xml +++ b/chapter02/hostreqs.xml @@ -100,8 +100,12 @@ , so the workarounds for older kernels are not enabled and the compiled glibc is slightly faster and smaller. - As at June 2023, &min-kernel; is the oldest kernel release still - supported by the kernel developers. + As at Feb 2024, &min-kernel; is the oldest kernel release still + supported by the kernel developers. Some kernel releases older than + &min-kernel; may be still supported by third-party teams, but they + are not considered official upstream kernel releases; read + for the + details. If the host kernel is earlier than &min-kernel; you will need to replace the kernel with a more up-to-date version. There are two ways diff --git a/general.ent b/general.ent index 31e6daecc..cad537e5b 100644 --- a/general.ent +++ b/general.ent @@ -92,9 +92,9 @@ - - + + + + 2024-02-02 + + + [xry111] - Update to glibc-2.39 (security fix). Fixes + #5426. + + + [xry111] - Update to linux-6.7.3. Fixes + #5427. + + + + 2024-02-01 diff --git a/chapter01/whatsnew.xml b/chapter01/whatsnew.xml index ceca1c108..5faf938b7 100644 --- a/chapter01/whatsnew.xml +++ b/chapter01/whatsnew.xml @@ -101,9 +101,9 @@ Gettext-&gettext-version; - + @@ -298,10 +298,6 @@ setuptools-&setuptools-version; - - &glibc-upstream-fixes-patch; - - &pkgconf-upstream-fix-patch; diff --git a/chapter03/patches.xml b/chapter03/patches.xml index 106527518..f05fbd604 100644 --- a/chapter03/patches.xml +++ b/chapter03/patches.xml @@ -76,7 +76,7 @@ MD5 sum: &gcc-upstream-fixes-patch-md5; ---> + Glibc Upstream Fixes Patch - &glibc-upstream-fixes-patch-size;: @@ -84,7 +84,7 @@ MD5 sum: &glibc-upstream-fixes-patch-md5; - +--> Glibc FHS Patch - &glibc-fhs-patch-size;: diff --git a/chapter08/glibc.xml b/chapter08/glibc.xml index ae4856581..86b830249 100644 --- a/chapter08/glibc.xml +++ b/chapter08/glibc.xml @@ -49,12 +49,12 @@ 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 22e143878..4d607f89c 100644 --- a/packages.ent +++ b/packages.ent @@ -255,10 +255,10 @@ - - + + - + @@ -431,12 +431,12 @@ - + - + - + From 343ab1388a38dc622766a4a43e02c63e30096fe2 Mon Sep 17 00:00:00 2001 From: Xi Ruoyao Date: Fri, 2 Feb 2024 05:15:03 +0800 Subject: [PATCH 103/113] Add info about how to upgrade Glibc on a running system Let's change our policy to match other "rolling release" distros and ease the procedure to fix Glibc security vulnerabilities. Squashed the commits in xry111/update-glibc branch to keep the history clean. Co-Authored-By: Pierre Labastie Co-Authored-By: Douglas R. Reno --- chapter08/glibc.xml | 115 +++++++++++++++++++++++++++++++++++++++++++ chapter08/pkgmgt.xml | 18 ++----- 2 files changed, 118 insertions(+), 15 deletions(-) diff --git a/chapter08/glibc.xml b/chapter08/glibc.xml index 86b830249..e09fe4900 100644 --- a/chapter08/glibc.xml +++ b/chapter08/glibc.xml @@ -201,6 +201,121 @@ esac sed '/test-installation/s@$(PERL)@echo not running@' -i ../Makefile + + + If upgrading Glibc to a new minor version (for example, from + Glibc-2.36 to Glibc-&glibc-version;) on a running LFS system, you + need to take some extra precautions to avoid breaking the system: + + + + + + + Upgrading Glibc on a LFS system prior to 11.0 (exclusive) is + not supported. Rebuild LFS if you are running such an old LFS + system but you need a newer Glibc. + + + + + + + If upgrading on a LFS system prior to 12.0 (exclusive), install + Libxcrypt following + In addition to + a normal Libxcrypt installation, + you MUST follow the note in Libxcrypt + section to install + libcrypt.so.1* + (overwritting + libcrypt.so.1 from the + prior Glibc installation). + + + + + + + If upgrading on a LFS system prior to 12.1 (exclusive), + remove the nscd program: + + + rm -f /usr/sbin/nscd + + + If this system (prior to LFS 12.1, exclusive) is based on + Systemd, it's also needed to disable and stop the + nscd service now: + + + systemctl disable --now nscd + + + + + Upgrade the kernel and reboot if it's older than &min-kernel; + (check the current version with uname -r) + or if you want to upgrade it anyway, following + + + + + + + Upgrade the kernel API headers if it's older than &min-kernel; + (check the current version with + cat /usr/include/linux/version.h) + or if you want to upgrade it anyway, following + (but removing + $LFS from the cp command). + + + + + + + Perform a DESTDIR installation and upgrade + the Glibc shared libraries on the system using one single + install command: + + + make DESTDIR=$PWD/dest install +install -vm755 dest/usr/lib/*.so.* /usr/lib + + + + + It's imperative to strictly follow these steps above unless you + completely understand what you are doing. + Any unexpected deviation may render the + system completely unusable. YOU ARE WARNED. + + + + Then continue to run the make install command + and the sed command against + /usr/bin/ldd. Once they are finished, reboot + the system immediately. + + + Install the package: make install diff --git a/chapter08/pkgmgt.xml b/chapter08/pkgmgt.xml index 4c7bb6dd7..10ec5d199 100644 --- a/chapter08/pkgmgt.xml +++ b/chapter08/pkgmgt.xml @@ -63,21 +63,9 @@ If Glibc needs to be upgraded to a newer - version, (e.g., from Glibc-2.31 to Glibc-2.32), it is safer to - rebuild LFS. Though you may be able to rebuild - all the packages in their dependency order, we do not recommend - it. - - - - Reinstalling the same version of Glibc (&glibc-version; for - this release of LFS) with patches should be safe when these patches - do not change ABI and API. When a security vulnerability is found - in Glibc, we often need to apply such a patch to fix the - vulnerability and reinstall Glibc. Consult - LFS security - advisories if you are alerted for a published Glibc security - vulnerability but unsure about the action to take. + version, (e.g., from Glibc-2.36 to Glibc-&glibc-version;), + some extra steps are needed to avoid breaking the system. + Read for details. If a package containing a shared library is updated, and From 9c73d91186bc1d24fcc3a634876ae4c49d7dfa84 Mon Sep 17 00:00:00 2001 From: Xi Ruoyao Date: Fri, 2 Feb 2024 15:19:41 +0800 Subject: [PATCH 104/113] Remove -v from "chown -R tester" commands It does no good: normally we have -v for chown so once it no longer has an effect we can know, but in this case these chown commands will never have no effect. And a huge amount of output with -v wastes the server storage and bandwidth (for both the server and the people reading the build logs). --- chapter08/bash.xml | 2 +- chapter08/coreutils.xml | 2 +- chapter08/findutils.xml | 2 +- chapter08/gawk.xml | 2 +- chapter08/gcc.xml | 2 +- chapter08/make.xml | 2 +- chapter08/sed.xml | 2 +- chapter08/util-linux.xml | 2 +- chapter08/vim.xml | 2 +- 9 files changed, 9 insertions(+), 9 deletions(-) diff --git a/chapter08/bash.xml b/chapter08/bash.xml index 4e7a418f5..4b5b47e62 100644 --- a/chapter08/bash.xml +++ b/chapter08/bash.xml @@ -75,7 +75,7 @@ To prepare the tests, ensure that the tester user can write to the sources tree: -chown -Rv tester . +chown -R tester . The test suite of this package is designed to be run as a non-&root; user who owns the terminal connected to standard input. To satisfy the diff --git a/chapter08/coreutils.xml b/chapter08/coreutils.xml index 96c46996d..655e0dd66 100644 --- a/chapter08/coreutils.xml +++ b/chapter08/coreutils.xml @@ -121,7 +121,7 @@ FORCE_UNSAFE_CONFIGURE=1 ./configure \ Fix some of the permissions so that the non-&root; user can compile and run the tests: -chown -Rv tester . +chown -R tester . Now run the tests: diff --git a/chapter08/findutils.xml b/chapter08/findutils.xml index 7012c221a..5671f6183 100644 --- a/chapter08/findutils.xml +++ b/chapter08/findutils.xml @@ -82,7 +82,7 @@ esac To test the results, issue: -chown -Rv tester . +chown -R tester . su tester -c "PATH=$PATH make check" Install the package: diff --git a/chapter08/gawk.xml b/chapter08/gawk.xml index a7f74eb92..bc19acaaf 100644 --- a/chapter08/gawk.xml +++ b/chapter08/gawk.xml @@ -54,7 +54,7 @@ To test the results, issue: -chown -Rv tester . +chown -R tester . su tester -c "PATH=$PATH make check" Install the package: diff --git a/chapter08/gcc.xml b/chapter08/gcc.xml index 7f21cf853..84cf8a86f 100644 --- a/chapter08/gcc.xml +++ b/chapter08/gcc.xml @@ -158,7 +158,7 @@ cd build Test the results as a non-privileged user, but do not stop at errors: -chown -Rv tester . +chown -R tester . su tester -c "PATH=$PATH make -k check" To extract a summary of the test suite results, run: diff --git a/chapter08/make.xml b/chapter08/make.xml index 186698a58..41a77c649 100644 --- a/chapter08/make.xml +++ b/chapter08/make.xml @@ -53,7 +53,7 @@ https://savannah.gnu.org/bugs/?63852 --> To test the results, issue: -chown -Rv tester . +chown -R tester . su tester -c "PATH=$PATH make check" Install the package: diff --git a/chapter08/sed.xml b/chapter08/sed.xml index 4a524c751..75d015600 100644 --- a/chapter08/sed.xml +++ b/chapter08/sed.xml @@ -51,7 +51,7 @@ make html To test the results, issue: -chown -Rv tester . +chown -R tester . su tester -c "PATH=$PATH make check" Install the package and its documentation: diff --git a/chapter08/util-linux.xml b/chapter08/util-linux.xml index e6bb0b683..4c53b4eb5 100644 --- a/chapter08/util-linux.xml +++ b/chapter08/util-linux.xml @@ -103,7 +103,7 @@ bash tests/run.sh --srcdir=$PWD --builddir=$PWD -chown -Rv tester . +chown -R tester . su tester -c "make -k check" The hardlink tests will fail if the host's kernel diff --git a/chapter08/vim.xml b/chapter08/vim.xml index 9dd3b4b74..030c50442 100644 --- a/chapter08/vim.xml +++ b/chapter08/vim.xml @@ -66,7 +66,7 @@ tester can write to the source tree: -chown -Rv tester . +chown -R tester . Now run the tests as user tester: From e14adea67362b7ee813eafff7c193132fc762a81 Mon Sep 17 00:00:00 2001 From: Xi Ruoyao Date: Fri, 2 Feb 2024 16:22:11 +0800 Subject: [PATCH 105/113] Update to tzdata-2024a (#5428) --- chapter01/changelog.xml | 4 ++++ packages.ent | 6 +++--- 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/chapter01/changelog.xml b/chapter01/changelog.xml index 72e12ddf2..fa7fc12c4 100644 --- a/chapter01/changelog.xml +++ b/chapter01/changelog.xml @@ -43,6 +43,10 @@ 2024-02-02 + + [xry111] - Update to tzdata-2024a. Fixes + #5428. + [xry111] - Update to glibc-2.39 (security fix). Fixes #5426. diff --git a/packages.ent b/packages.ent index 4d607f89c..6d319968a 100644 --- a/packages.ent +++ b/packages.ent @@ -712,10 +712,10 @@ - - + + - + From 7b54528e96a6d715f55222fb071d0dcb0021258d Mon Sep 17 00:00:00 2001 From: Bruce Dubbs Date: Fri, 2 Feb 2024 10:10:53 -0600 Subject: [PATCH 106/113] Fix currency for xz --- lfs-latest-git.php | 1 + 1 file changed, 1 insertion(+) diff --git a/lfs-latest-git.php b/lfs-latest-git.php index 162d8d6c8..c2414789a 100644 --- a/lfs-latest-git.php +++ b/lfs-latest-git.php @@ -152,6 +152,7 @@ if ( $package == "tcl" ) $dirpath = "https://www.tcl.tk/software/tcltk/do if ( $package == "util-linux" ) $dirpath = max_parent( $dirpath, "v." ); if ( $package == "vim" ) $dirpath = "https://github.com/vim/vim/tags"; if ( $package == "wheel" ) $dirpath = "https://pypi.org/project/wheel/#files"; +if ( $package == "xz" ) $dirpath = github("tukaani-project/xz"); if ( $package == "zlib" ) $dirpath = "https://www.zlib.net"; if ( $package == "zstd" ) $dirpath = github("facebook/zstd"); From 677f795cf85f1ecb40dfedf1624817d3288ea1ca Mon Sep 17 00:00:00 2001 From: Xi Ruoyao Date: Sat, 3 Feb 2024 18:55:26 +0800 Subject: [PATCH 107/113] glibc: When update, also regenerate the locales A Glibc update may contain locale updates, so keep /usr/lib/locale/locale-archive synced. Other distros are also doing this when Glibc is updated with the package manager. --- chapter08/glibc.xml | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/chapter08/glibc.xml b/chapter08/glibc.xml index e09fe4900..64ed3b630 100644 --- a/chapter08/glibc.xml +++ b/chapter08/glibc.xml @@ -309,10 +309,11 @@ install -vm755 dest/usr/lib/*.so.* /usr/lib - Then continue to run the make install command - and the sed command against - /usr/bin/ldd. Once they are finished, reboot - the system immediately. + Then continue to run the make install command, + the sed command against + /usr/bin/ldd, and the commands to install + the locales. Once they are finished, reboot the system + immediately. From 8cf42d4c72d9e0b773c32849af2fb237b557029e Mon Sep 17 00:00:00 2001 From: Xi Ruoyao Date: Sun, 4 Feb 2024 03:40:36 +0800 Subject: [PATCH 108/113] Fix and unify the commands creating the link target of /dev/shm $(realpath /dev/shm) will return the absolute path of the target of /dev/shm, thus the command will work for both absolute symlink and relative symlink. --- chapter07/kernfs.xml | 5 +++-- chapter11/afterlfs.xml | 2 +- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/chapter07/kernfs.xml b/chapter07/kernfs.xml index 00a971b59..ecdff0dd2 100644 --- a/chapter07/kernfs.xml +++ b/chapter07/kernfs.xml @@ -97,7 +97,8 @@ mount -vt tmpfs tmpfs $LFS/run --> In some host systems, /dev/shm is a - symbolic link to /run/shm. + symbolic link to a directory, typically + /run/shm. The /run tmpfs was mounted above so in this case only a directory needs to be created. @@ -107,7 +108,7 @@ mount -vt tmpfs tmpfs $LFS/run we must explicitly mount a tmpfs: if [ -h $LFS/dev/shm ]; then - (cd $LFS/dev; mkdir $(readlink shm)) + mkdir -pv $LFS$(realpath /dev/shm) else mount -vt tmpfs -o nosuid,nodev tmpfs $LFS/dev/shm fi diff --git a/chapter11/afterlfs.xml b/chapter11/afterlfs.xml index ff8bae006..5c2693ade 100644 --- a/chapter11/afterlfs.xml +++ b/chapter11/afterlfs.xml @@ -130,7 +130,7 @@ mounttype proc proc proc mounttype sys sysfs sysfs mounttype run tmpfs run if [ -h $LFS/dev/shm ]; then - mkdir -pv $LFS/$(readlink $LFS/dev/shm) + mkdir -pv $LFS$(realpath /dev/shm) else mounttype dev/shm tmpfs tmpfs -o nosuid,nodev fi From 7436c28ae4acc14d3646131bb59cc3574e42936e Mon Sep 17 00:00:00 2001 From: Xi Ruoyao Date: Sun, 4 Feb 2024 22:56:04 +0800 Subject: [PATCH 109/113] If we need to create the link target of /dev/shm, make its mode 1777 To match the behavior of a tmpfs mount. Otherwise non-root user (for e.g. the tester user) will get errors using Glibc shm functions. --- chapter07/kernfs.xml | 4 ++-- chapter11/afterlfs.xml | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/chapter07/kernfs.xml b/chapter07/kernfs.xml index ecdff0dd2..31244e8c0 100644 --- a/chapter07/kernfs.xml +++ b/chapter07/kernfs.xml @@ -100,7 +100,7 @@ mount -vt tmpfs tmpfs $LFS/run symbolic link to a directory, typically /run/shm. The /run tmpfs was mounted above so in this case only a - directory needs to be created. + directory needs to be created with a correct mode. In other host systems /dev/shm is a mount point for a tmpfs. In that case the mount of /dev above will only create @@ -108,7 +108,7 @@ mount -vt tmpfs tmpfs $LFS/run we must explicitly mount a tmpfs: if [ -h $LFS/dev/shm ]; then - mkdir -pv $LFS$(realpath /dev/shm) + install -v -d -m 1777 $LFS$(realpath /dev/shm) else mount -vt tmpfs -o nosuid,nodev tmpfs $LFS/dev/shm fi diff --git a/chapter11/afterlfs.xml b/chapter11/afterlfs.xml index 5c2693ade..633a782df 100644 --- a/chapter11/afterlfs.xml +++ b/chapter11/afterlfs.xml @@ -130,7 +130,7 @@ mounttype proc proc proc mounttype sys sysfs sysfs mounttype run tmpfs run if [ -h $LFS/dev/shm ]; then - mkdir -pv $LFS$(realpath /dev/shm) + install -v -d -m 1777 $LFS$(realpath /dev/shm) else mounttype dev/shm tmpfs tmpfs -o nosuid,nodev fi From 1541b7c29f10b6cfaf954dbb67345206e4f78e93 Mon Sep 17 00:00:00 2001 From: Bruce Dubbs Date: Sun, 4 Feb 2024 12:13:17 -0600 Subject: [PATCH 110/113] Minor wording update --- chapter07/kernfs.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/chapter07/kernfs.xml b/chapter07/kernfs.xml index 31244e8c0..575044106 100644 --- a/chapter07/kernfs.xml +++ b/chapter07/kernfs.xml @@ -100,7 +100,7 @@ mount -vt tmpfs tmpfs $LFS/run symbolic link to a directory, typically /run/shm. The /run tmpfs was mounted above so in this case only a - directory needs to be created with a correct mode. + directory needs to be created with the correct permissions. In other host systems /dev/shm is a mount point for a tmpfs. In that case the mount of /dev above will only create From ce11e97f013485bdedd834b960c88a1452701648 Mon Sep 17 00:00:00 2001 From: Xi Ruoyao Date: Tue, 6 Feb 2024 00:15:33 +0800 Subject: [PATCH 111/113] kernfs: Use a separate devpts filesystem for chroot environment IIRC we switched from separate devpts to bind mount, and matched the UID of tester with the host UID owning the TTY, to satisify the Bash test suite. But now we are always using UID 101 for tester and expect to spawn a PTY for Bash test suite (so when building LFS in a TTY owned by the root user of the host tester won't be UID 0). Thus we can switch back to a separate devpts mount which is cleaner and safer. And we are already using a separate devpts mount in Chapter 11. --- chapter07/kernfs.xml | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/chapter07/kernfs.xml b/chapter07/kernfs.xml index 575044106..067a614f4 100644 --- a/chapter07/kernfs.xml +++ b/chapter07/kernfs.xml @@ -63,11 +63,14 @@ Now mount the remaining virtual kernel file systems: -mount -v --bind /dev/pts $LFS/dev/pts + + +mount -vt devpts devpts -o gid=5,mode=0620 $LFS/dev/pts mount -vt proc proc $LFS/proc mount -vt sysfs sysfs $LFS/sys mount -vt tmpfs tmpfs $LFS/run - + In some host systems, /dev/shm is a symbolic link to a directory, typically /run/shm. From 1fde756b121ffcba522f252475418714240358c7 Mon Sep 17 00:00:00 2001 From: Xi Ruoyao Date: Tue, 6 Feb 2024 01:00:53 +0800 Subject: [PATCH 112/113] expect: Add (back) a simple test for PTY We used to run "expect -c 'spawn ls'" for this in Binutils, but then we thought expect test suite was enough as such a simple PTY test. However expect test can fail due to some different reason, so add back a simple test using Python pty module before building expect. Now we no longer need to consider expect test critical (IIRC there was a report saying one expect test failed for unknown reason but all other things OK). --- chapter08/expect.xml | 36 +++++++++++++++++++----------------- 1 file changed, 19 insertions(+), 17 deletions(-) diff --git a/chapter08/expect.xml b/chapter08/expect.xml index 810bc55a2..5c21e390f 100644 --- a/chapter08/expect.xml +++ b/chapter08/expect.xml @@ -48,6 +48,25 @@ Installation of Expect + Expect needs PTYs to work. Verify that the PTYs are working + properly inside the chroot environment by performing a simple + test: + +python3 -c 'from pty import spawn; spawn(["echo", "ok"])' + + This command should output ok. + If, instead, the output includes OSError: out of pty + devices, then the environment is not set up for proper + PTY operation. You need to exit from the chroot environment, read + again, and ensure the + devpts file system (and + other virtual kernel file systems) mounted correctly. Then reenter + the chroot environment following . + This issue needs to be resolved before continuing, or the test suites + requring Expect (for example the test suites of Bash, Binutils, GCC, + GDBM, and of course Expect itself) will fail catastrophically, and other + subtle breakages may also happen. + Prepare Expect for compilation: ./configure --prefix=/usr \ @@ -82,27 +101,10 @@ make - - The test suite for Expect is considered critical. - Do not skip it under any circumstances. - - To test the results, issue: make test - If any test fails with the message - The system has no more ptys. Ask your system - administrator to create more, it indicates - you've not mounted the - devpts file system - correctly. You need to exit from the chroot environment, read - again, and ensure the - devpts file system (and - other virtual kernel file systems) mounted correctly. Then reenter - the chroot environment following . - This issue needs to be resolved before continuing. - Install the package: make install From 4816dc69f596e962ecb050fdfea3704e65514a47 Mon Sep 17 00:00:00 2001 From: Xi Ruoyao Date: Tue, 6 Feb 2024 03:44:38 +0800 Subject: [PATCH 113/113] bash: Really pass through the return code We want expect to return the return code of "make test" (stored in $value), but $value is expanded too early to nothing by Bash. Quote EOF so Bash won't expand $xxx. --- chapter08/bash.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/chapter08/bash.xml b/chapter08/bash.xml index 4b5b47e62..1490e7791 100644 --- a/chapter08/bash.xml +++ b/chapter08/bash.xml @@ -83,7 +83,7 @@ Expect and run the tests as the tester user: -su -s /usr/bin/expect tester << EOF +su -s /usr/bin/expect tester << "EOF" set timeout -1 spawn make tests expect eof