diff --git a/appendices/dependencies.xml b/appendices/dependencies.xml index 8c3c29ad3..46bdfac0a 100644 --- a/appendices/dependencies.xml +++ b/appendices/dependencies.xml @@ -326,8 +326,8 @@ <segmentedlist id="bison-depends"> <segtitle>&dependencies;</segtitle> <seglistitem> - <seg>Bash, Binutils, Coreutils, GCC, Gettext, Glibc, Grep, M4, Make, - Perl, and Sed</seg> + <seg>Bash, Binutils, Coreutils, Diffutils, GCC, Gettext, Glibc, + Grep, M4, Make, Perl, and Sed</seg> </seglistitem> </segmentedlist> @@ -2395,7 +2395,7 @@ <segmentedlist id="ninja-testdeps"> <segtitle>&testsuites;</segtitle> <seglistitem> - <seg>None</seg> + <seg><ulink url="&blfs-book;general/cmake.html">cmake</ulink></seg> </seglistitem> </segmentedlist> diff --git a/bootscripts/ChangeLog b/bootscripts/ChangeLog index 3853ff83a..37680aff5 100644 --- a/bootscripts/ChangeLog +++ b/bootscripts/ChangeLog @@ -1,3 +1,7 @@ +2024-04-16 Bruce Dubbs <bdubbs@linuxfromscratch.org> + * Remove blank output line generated in ifup script when bringing + up wireless interface. + 2023-10-04 Pierre Labastie <pierre.labastie@neuf.fr> * After the changes done on 2022-03-24, several "halt stop" should have been changed to "halt start". Done now. Fortunately, those diff --git a/bootscripts/lfs/sbin/ifup b/bootscripts/lfs/sbin/ifup index 4c70810cd..070d25cdc 100755 --- a/bootscripts/lfs/sbin/ifup +++ b/bootscripts/lfs/sbin/ifup @@ -110,7 +110,7 @@ for S in ${SERVICE}; do fi done -if [ "${SERVICE}" = "wpa" ]; then log_success_msg; fi +#if [ "${SERVICE}" = "wpa" ]; then log_success_msg; fi # Create/configure the interface for S in ${SERVICE}; do diff --git a/chapter01/changelog.xml b/chapter01/changelog.xml index 58c013bdf..fd5645dc5 100644 --- a/chapter01/changelog.xml +++ b/chapter01/changelog.xml @@ -40,6 +40,113 @@ appropriate for the entry or if needed the entire day's listitem. --> + <listitem> + <para>2024-05-13</para> + <itemizedlist> + <listitem> + <para>[xry111] - Synchronize coreutils i18n patch from Fedora + to fix a build failure on 32-bit x86 and an alarming compiler + warning on both 32-bit x86 and x86_64 with GCC 14.1 or + later.</para> + </listitem> + </itemizedlist> + </listitem> + + <listitem> + <para>2024-05-11</para> + <itemizedlist> + <listitem> + <para>[bdubbs] - Update to vim-9.1.0405. Addresses + <ulink url='&lfs-ticket-root;4500'>#4500</ulink>.</para> + </listitem> + <listitem> + <para>[bdubbs] - Update to util-linux-2.40.1. Fixes + <ulink url='&lfs-ticket-root;5482'>#5482</ulink>.</para> + </listitem> + <listitem> + <para>[bdubbs] - Update to linux-6.8.9. Fixes + <ulink url='&lfs-ticket-root;5484'>#5484</ulink>.</para> + </listitem> + <listitem> + <para>[bdubbs] - Update to jinja2-3.1.4 (Python module). Fixes + <ulink url='&lfs-ticket-root;5485'>#5485</ulink>.</para> + </listitem> + <listitem> + <para>[bdubbs] - Update to iana-etc-20240502. Addresses + <ulink url='&lfs-ticket-root;5006'>#5006</ulink>.</para> + </listitem> + <listitem> + <para>[bdubbs] - Update to gcc-14.1.0. Fixes + <ulink url='&lfs-ticket-root;5486'>#5486</ulink>.</para> + </listitem> + </itemizedlist> + </listitem> + + <listitem> + <para>2024-05-01</para> + <itemizedlist> + <listitem> + <para>[bdubbs] - Add security fix to glibc. Fixes + <ulink url='&lfs-ticket-root;5481'>#5481</ulink>.</para> + </listitem> + <listitem> + <para>[bdubbs] - Update to linux-6.8.8. Fixes + <ulink url='&lfs-ticket-root;5480'>#5480</ulink>.</para> + </listitem> + <listitem> + <para>[bdubbs] - Update to ncurses-6.5. Fixes + <ulink url='&lfs-ticket-root;5483'>#5483</ulink>.</para> + </listitem> + </itemizedlist> + </listitem> + + <listitem> + <para>2024-04-16</para> + <itemizedlist> + <listitem> + <para>[bdubbs] - Make minor change to ifup script output text.</para> + </listitem> + </itemizedlist> + </listitem> + + <listitem> + <para>2024-04-15</para> + <itemizedlist> + <listitem> + <para>[bdubbs] - Update to setuptools-69.5.1. Fixes + <ulink url='&lfs-ticket-root;5478'>#5478</ulink>.</para> + </listitem> + <listitem> + <para>[bdubbs] - Update to python3-3.12.3. Fixes + <ulink url='&lfs-ticket-root;5476'>#5476</ulink>.</para> + </listitem> + <listitem> + <para>[bdubbs] - Update to openssl-3.3.0. Fixes + <ulink url='&lfs-ticket-root;5475'>#5475</ulink>.</para> + </listitem> + <listitem> + <para>[bdubbs] - Update to ninja-1.12.0. Fixes + <ulink url='&lfs-ticket-root;5477'>#5477</ulink>.</para> + </listitem> + <listitem> + <para>[bdubbs] - Update to man-db-2.12.1. Fixes + <ulink url='&lfs-ticket-root;5474'>#5474</ulink>.</para> + </listitem> + <listitem> + <para>[bdubbs] - Update to linux-6.8.6. Fixes + <ulink url='&lfs-ticket-root;5472'>#5472</ulink>.</para> + </listitem> + <listitem> + <para>[bdubbs] - Update to iana-etc-20240412. Addresses + <ulink url='&lfs-ticket-root;5006'>#5006</ulink>.</para> + </listitem> + <listitem> + <para>[bdubbs] - Update to vim-9.1.0330. Addresses + <ulink url='&lfs-ticket-root;4500'>#4500</ulink>.</para> + </listitem> + </itemizedlist> + </listitem> + <listitem> <para>2024-03-31</para> <itemizedlist> diff --git a/chapter01/whatsnew.xml b/chapter01/whatsnew.xml index f856866bd..2bd18a3e4 100644 --- a/chapter01/whatsnew.xml +++ b/chapter01/whatsnew.xml @@ -92,9 +92,9 @@ <!--<listitem> <para>Gawk-&gawk-version;</para> </listitem>--> - <!--<listitem> + <listitem> <para>GCC-&gcc-version;</para> - </listitem>--> + </listitem> <!--<listitem> <para>GDBM-&gdbm-version;</para> </listitem>--> @@ -134,9 +134,9 @@ <listitem> <para>IPRoute2-&iproute2-version;</para> </listitem> - <!--<listitem> + <listitem> <para>Jinja2-&jinja2-version;</para> - </listitem>--> + </listitem> <!--<listitem> <para>Kbd-&kbd-version;</para> </listitem>--> @@ -176,9 +176,9 @@ <!--<listitem> <para>Make-&make-version;</para> </listitem>--> - <!--<listitem> + <listitem> <para>Man-DB-&man-db-version;</para> - </listitem>--> + </listitem> <listitem> <para>Man-pages-&man-pages-version;</para> </listitem> @@ -194,15 +194,15 @@ <!--<listitem> <para>MPFR-&mpfr-version;</para> </listitem>--> - <!--<listitem> + <listitem> <para>Ncurses-&ncurses-version;</para> - </listitem>--> - <!--<listitem> + </listitem> + <listitem> <para>Ninja-&ninja-version;</para> - </listitem>--> - <!--<listitem> + </listitem> + <listitem> <para>OpenSSL-&openssl-version;</para> - </listitem>--> + </listitem> <!--<listitem> <para>Patch-&patch-version;</para> </listitem>--> @@ -218,9 +218,9 @@ <listitem> <para>Psmisc-&psmisc-version;</para> </listitem> - <!--<listitem> + <listitem> <para>Python-&python-version;</para> - </listitem>--> + </listitem> <!--<listitem> <para>Readline-&readline-version;</para> </listitem>--> @@ -294,6 +294,9 @@ <listitem> <para>Lz4-&lz4-version;</para> </listitem> + <listitem> + <para>glibc-2.39-upstream_fix-1.patch</para> + </listitem> </itemizedlist> <itemizedlist> diff --git a/chapter02/creatingfilesystem.xml b/chapter02/creatingfilesystem.xml index 9b1a08b2a..74970e226 100644 --- a/chapter02/creatingfilesystem.xml +++ b/chapter02/creatingfilesystem.xml @@ -50,7 +50,7 @@ </varlistentry> </variablelist> - <para>Other file systems, including FAT32, NTFS, ReiserFS, JFS, and XFS are + <para>Other file systems, including FAT32, NTFS, JFS, and XFS are useful for specialized purposes. More information about these file systems, and many others, can be found at <ulink url="https://en.wikipedia.org/wiki/Comparison_of_file_systems"/>.</para> diff --git a/chapter03/patches.xml b/chapter03/patches.xml index 067dc9aea..87645f532 100644 --- a/chapter03/patches.xml +++ b/chapter03/patches.xml @@ -59,15 +59,15 @@ <para>MD5 sum: <literal>&coreutils-i18n-patch-md5;</literal></para> </listitem> </varlistentry> -<!-- + <varlistentry> - <term>Coreutils Chmod Fix Patch - <token>&coreutils-chmod-patch-size;</token>:</term> + <term>Expect GCC14 Patch - <token>&expect-gcc14-patch-size;</token>:</term> <listitem> - <para>Download: <ulink url="&patches-root;&coreutils-chmod-patch;"/></para> - <para>MD5 sum: <literal>&coreutils-chmod-patch-md5;</literal></para> + <para>Download: <ulink url="&patches-root;&expect-gcc14-patch;"/></para> + <para>MD5 sum: <literal>&expect-gcc14-patch-md5;</literal></para> </listitem> </varlistentry> ---> + <!-- <varlistentry> <term>Gcc glibc-2.36 Fixes Patch - <token>&gcc-upstream-fixes-patch-size;</token>:</term> @@ -76,15 +76,15 @@ <para>MD5 sum: <literal>&gcc-upstream-fixes-patch-md5;</literal></para> </listitem> </varlistentry> - +--> <varlistentry> - <term>Glibc Upstream Fixes Patch - <token>&glibc-upstream-fixes-patch-size;</token>:</term> + <term>Glibc Upstream Fix Patch - <token>&glibc-upstream-patch-size;</token>:</term> <listitem> - <para>Download: <ulink url="&patches-root;&glibc-upstream-fixes-patch;"/></para> - <para>MD5 sum: <literal>&glibc-upstream-fixes-patch-md5;</literal></para> + <para>Download: <ulink url="&patches-root;&glibc-upstream-patch;"/></para> + <para>MD5 sum: <literal>&glibc-upstream-patch-md5;</literal></para> </listitem> </varlistentry> ---> + <varlistentry> <term>Glibc FHS Patch - <token>&glibc-fhs-patch-size;</token>:</term> <listitem> diff --git a/chapter06/bash.xml b/chapter06/bash.xml index 54fa6f444..66c6ef3fc 100644 --- a/chapter06/bash.xml +++ b/chapter06/bash.xml @@ -48,7 +48,8 @@ <screen><userinput remap="configure">./configure --prefix=/usr \ --build=$(sh support/config.guess) \ --host=$LFS_TGT \ - --without-bash-malloc</userinput></screen> + --without-bash-malloc \ + bash_cv_strtold_broken=no</userinput></screen> <variablelist> <title>The meaning of the configure options:</title> diff --git a/chapter06/ncurses.xml b/chapter06/ncurses.xml index 0a8c7e166..29d406b57 100644 --- a/chapter06/ncurses.xml +++ b/chapter06/ncurses.xml @@ -69,8 +69,7 @@ popd</userinput></screen> --with-cxx-shared \ --without-debug \ --without-ada \ - --disable-stripping \ - --enable-widec</userinput></screen> + --disable-stripping</userinput></screen> <variablelist> <title>The meaning of the new configure options:</title> @@ -132,9 +131,9 @@ popd</userinput></screen> Using host tools on cross-compiled programs can cause failure.</para> </listitem> </varlistentry> - +<!-- this is the default >= 6.5 <varlistentry> - <term><parameter>--enable-widec</parameter></term> + <term><parameter>- -enable-widec</parameter></term> <listitem> <para>This switch causes wide-character libraries (e.g., <filename class="libraryfile">libncursesw.so.&ncurses-version;</filename>) @@ -146,7 +145,7 @@ popd</userinput></screen> source-compatible, but not binary-compatible.</para> </listitem> </varlistentry> - +--> </variablelist> <para>Compile the package:</para> diff --git a/chapter07/changingowner.xml b/chapter07/changingowner.xml index 7defec6fb..4c83f40f6 100644 --- a/chapter07/changingowner.xml +++ b/chapter07/changingowner.xml @@ -33,6 +33,6 @@ user <systemitem class="username">root</systemitem> by running the following command:</para> -<screen><userinput>chown -R root:root $LFS/{usr,lib,lib64,var,etc,bin,sbin,tools}</userinput></screen> +<screen><userinput>chown --from lfs -R root:root $LFS/{usr,lib,lib64,var,etc,bin,sbin,tools}</userinput></screen> </sect1> diff --git a/chapter08/automake.xml b/chapter08/automake.xml index ed1907c55..6c7aa2582 100644 --- a/chapter08/automake.xml +++ b/chapter08/automake.xml @@ -62,7 +62,8 @@ <para>Replace <replaceable>$((...))</replaceable> with the number of logical cores you want to use if you don't want to use all.</para> - <para>The test t/subobj.sh is known to fail.</para> + <para>Out of 2926 tests, 52 are known to fail due to incompatibilities in the + test scripts with gcc-14.1 or later.</para> <para>Install the package:</para> diff --git a/chapter08/bash.xml b/chapter08/bash.xml index 1490e7791..c217d5576 100644 --- a/chapter08/bash.xml +++ b/chapter08/bash.xml @@ -49,6 +49,7 @@ <screen><userinput remap="configure">./configure --prefix=/usr \ --without-bash-malloc \ --with-installed-readline \ + bash_cv_strtold_broken=no \ --docdir=/usr/share/doc/bash-&bash-version;</userinput></screen> <variablelist> diff --git a/chapter08/coreutils.xml b/chapter08/coreutils.xml index 1f935809b..ca02058b5 100644 --- a/chapter08/coreutils.xml +++ b/chapter08/coreutils.xml @@ -127,7 +127,8 @@ FORCE_UNSAFE_CONFIGURE=1 ./configure \ node for such a PTY cannot be accessed from the LFS chroot environment):</para> -<screen><userinput remap="test">su tester -c "PATH=$PATH make RUN_EXPENSIVE_TESTS=yes check" < /dev/null</userinput></screen> +<screen><userinput remap="test">su tester -c "PATH=$PATH make -k RUN_EXPENSIVE_TESTS=yes check" \ + < /dev/null</userinput></screen> <para>Remove the temporary group:</para> diff --git a/chapter08/expect.xml b/chapter08/expect.xml index df6ff242e..052ac0273 100644 --- a/chapter08/expect.xml +++ b/chapter08/expect.xml @@ -71,6 +71,10 @@ <screen><userinput remap="pre">tar -C tclconfig &update-config-arg;</userinput></screen> + <para>Now, make some changes to allow the package with gcc-14.1 or later:</para> + +<screen><userinput remap="pre">patch -Np1 -i ../expect-&expect-version;-gcc14-1.patch</userinput></screen> + <para>Prepare Expect for compilation:</para> <screen><userinput remap="configure">./configure --prefix=/usr \ diff --git a/chapter08/gcc.xml b/chapter08/gcc.xml index 8daac5e9c..3e0ae8391 100644 --- a/chapter08/gcc.xml +++ b/chapter08/gcc.xml @@ -40,20 +40,6 @@ <sect2 role="installation"> <title>Installation of GCC</title> -<!-- - <para>At first, fix an issue breaking - <filename class="libraryfile">libasan.a</filename> building this package - with Glibc-2.34 or later:</para> - -<screen><userinput remap="pre">sed -e '/static.*SIGSTKSZ/d' \ - -e 's/return kAltStackSize/return SIGSTKSZ * 4/' \ - -i libsanitizer/sanitizer_common/sanitizer_posix_libcdep.cpp</userinput></screen> ---> -<!-- - <para>First fix a problem with the latest version of glibc:</para> - - <screen><userinput remap="pre">patch -Np1 -i ../&gcc-upstream-fixes-patch;</userinput></screen> ---> <!-- https://gcc.gnu.org/r14-4674 --> <para>Again, fix an issue producing illegal instructions in linked @@ -81,6 +67,7 @@ cd build</userinput></screen> --enable-languages=c,c++ \ --enable-default-pie \ --enable-default-ssp \ + --enable-host-pie \ --disable-multilib \ --disable-bootstrap \ --disable-fixincludes \ @@ -152,8 +139,8 @@ cd build</userinput></screen> <para>In this section, the test suite for GCC is considered important, but it takes a long time. First-time builders are encouraged to run the test suite. The time to run the tests can be - reduced significantly by adding -jx to the <command>make -k check</command> command below, - where x is the number of CPU cores on your system.</para> + reduced significantly by adding -jx to the <command>make -k check</command> + command below, where x is the number of CPU cores on your system.</para> </important> <para>One set of tests in the GCC test suite is known to exhaust the default @@ -161,6 +148,14 @@ cd build</userinput></screen> <screen><userinput remap="test">ulimit -s 32768</userinput></screen> + <para>Now remove/fix several known test failures:</para> + +<screen><userinput remap="test">sed -e '/cpython/d' -i ../gcc/testsuite/gcc.dg/plugin/plugin.exp +sed -e 's/no-pic /&-no-pie /' -i ../gcc/testsuite/gcc.target/i386/pr113689-1.c +sed -e 's/300000/(1|300000)/' -i ../libgomp/testsuite/libgomp.c-c++-common/pr109062.c +sed -e 's/{ target nonpic } //' \ + -e '/GOTPCREL/d' -i ../gcc/testsuite/gcc.target/i386/fentryname3.c</userinput></screen> + <para>Test the results as a non-privileged user, but do not stop at errors:</para> <screen><userinput remap="test">chown -R tester . @@ -176,24 +171,29 @@ su tester -c "PATH=$PATH make -k check"</userinput></screen> <para>Results can be compared with those located at <ulink url="&test-results;"/> and <ulink url="https://gcc.gnu.org/ml/gcc-testresults/"/>.</para> - +<!-- <para> - Twelve gcc tests (out of over 150,000): - seven tests in the <filename class='directory'>analyzer</filename> - directory, one test named <filename>gcc.dg/uninit-pred-9_b.c</filename>, - one test named <filename>pr108357.c</filename>, one test named - <filename>ssa-dom-cse-2.c</filename>, and two - <quote>stack-check-cfa-*.c</quote> tests are known to fail. + Eight gcc tests (out of over 185,000): + <!- - https://gcc.gnu.org/PR106375 - -><filename>pr56837.c</filename> + and seven tests in the <filename class='directory'>analyzer</filename> + directory are known to fail. - For g++, 23 tests (out of approximately 250,000): 14 + <!- - https://gcc.gnu.org/PR109353 - -> + One libstdc++ test (out of over 15000), <filename>copy.cc</filename>, is + known to fail. + + For g++, 21 tests (out of approximately 250,000): 14 <quote>AddressSanitizer*</quote> - tests, 7 <filename>interception-malloc-test-1.C</filename> tests, - one <filename>pr90883.C</filename> test, and one - <filename>pr64076</filename> test are known to fail. - </para> + tests and 7 <filename>interception-malloc-test-1.C</filename> tests, are + known to fail. - <para>A few unexpected failures cannot always be avoided. The GCC developers - are usually aware of these issues, but have not resolved them yet. + Additionally, several tests in the + <filename class='directory'>vect</filename> directory are known to fail + if the hardware does not support AVX.</para> +--> + <para>A few unexpected failures cannot always be avoided. In some cases + test failures depend on the specific hardware of the system.<!--The GCC developers + are usually aware of these issues, but have not resolved them yet.--> Unless the test results are vastly different from those at the above URL, it is safe to continue.</para> diff --git a/chapter08/glibc.xml b/chapter08/glibc.xml index 6d1be66ae..1984a4444 100644 --- a/chapter08/glibc.xml +++ b/chapter08/glibc.xml @@ -49,12 +49,11 @@ store their runtime data in the FHS-compliant locations:</para> <screen><userinput remap="pre">patch -Np1 -i ../&glibc-fhs-patch;</userinput></screen> -<!-- - <para>Now fix two security vulnerabilities and a regression causing the - posix_memalign() function very slow in some conditions:</para> -<screen><userinput remap="pre">patch -Np1 -i ../&glibc-upstream-fixes-patch;</userinput></screen> ---> + <para>Now fix a security vulnerability:</para> + +<screen><userinput remap="pre">patch -Np1 -i ../&glibc-upstream-patch;</userinput></screen> + <para>The Glibc documentation recommends building Glibc in a dedicated build directory:</para> diff --git a/chapter08/grub.xml b/chapter08/grub.xml index 83ec4fa05..902b2ebbd 100644 --- a/chapter08/grub.xml +++ b/chapter08/grub.xml @@ -52,12 +52,13 @@ content of this page and try to figure out how to boot your system. </para> <para> - If your system firmware supports UEFI and you want a fully - functional GRUB, you can skip the content of this page, - and install GRUB with UEFI support (and its dependencies) following - <ulink url="&blfs-book;postlfs/grub-efi.html">the BLFS page</ulink> - (with <parameter>--target=x86_64</parameter> removed) at the end of - this chapter. + If your system has UEFI support and you wish to boot LFS with UEFI, + you need to install GRUB with UEFI support (and its dependencies) by + following the instructions on + <ulink url="&blfs-book;postlfs/grub-efi.html">the BLFS page</ulink>. + You may skip this package, or install this package and the BLFS + GRUB for UEFI package without conflict (the BLFS page provides + instructions for both cases). </para> </note> diff --git a/chapter08/inetutils.xml b/chapter08/inetutils.xml index 468ccb25e..693c08405 100644 --- a/chapter08/inetutils.xml +++ b/chapter08/inetutils.xml @@ -40,6 +40,10 @@ <sect2 role="installation"> <title>Installation of Inetutils</title> + <para>First, make the package build with gcc-14.1 or later::</para> + +<screen><userinput remap="pre">sed -i 's/def HAVE_TERMCAP_TGETENT/ 1/' telnet/telnet.c</userinput></screen> + <para>Prepare Inetutils for compilation:</para> <screen><userinput remap="configure">./configure --prefix=/usr \ diff --git a/chapter08/ncurses.xml b/chapter08/ncurses.xml index 40589c58a..a825f63c9 100644 --- a/chapter08/ncurses.xml +++ b/chapter08/ncurses.xml @@ -50,9 +50,9 @@ --without-normal \ --with-cxx-shared \ --enable-pc-files \ - --enable-widec \ --with-pkg-config-libdir=/usr/lib/pkgconfig</userinput></screen> + <!-- - -enable-widec this is now the default --> <variablelist> <title>The meaning of the new configure options:</title> @@ -94,9 +94,9 @@ </para> </listitem> </varlistentry> - +<!-- <varlistentry> - <term><parameter>--enable-widec</parameter></term> + <term><parameter>- -enable-widec</parameter></term> <listitem> <para>This switch causes wide-character libraries (e.g., <filename class="libraryfile">libncursesw.so.&ncurses-release;</filename>) @@ -108,7 +108,7 @@ source-compatible, but not binary-compatible.</para> </listitem> </varlistentry> - +--> </variablelist> <para>Compile the package:</para> @@ -127,7 +127,7 @@ make will spawn new shell processes during "make install". --> <para>The installation of this package will overwrite - <filename class="libraryfile">libncursesw.so.&ncurses-release;</filename> + <filename class="libraryfile">libncursesw.so.&ncurses-version;</filename> in-place. It may crash the shell process which is using code and data from the library file. Install the package with <literal>DESTDIR</literal>, and replace the library file correctly using @@ -137,8 +137,8 @@ <xref linkend='ch-tools-ncurses'/>):</para> <screen><userinput remap="install">make DESTDIR=$PWD/dest install -install -vm755 dest/usr/lib/libncursesw.so.&ncurses-release; /usr/lib -rm -v dest/usr/lib/libncursesw.so.&ncurses-release; +install -vm755 dest/usr/lib/libncursesw.so.&ncurses-version; /usr/lib +rm -v dest/usr/lib/libncursesw.so.&ncurses-version; sed -e 's/^#if.*XOPEN.*$/#if 1/' \ -i dest/usr/include/curses.h cp -av dest/* /</userinput></screen> diff --git a/chapter08/ninja.xml b/chapter08/ninja.xml index 106e63970..5bccea1ea 100644 --- a/chapter08/ninja.xml +++ b/chapter08/ninja.xml @@ -82,10 +82,14 @@ </variablelist> + <para>The package tests cannot run in the chroot environment. They require + <ulink url="&blfs-book;general/cmake.html">cmake</ulink>.</para> +<!-- <para>To test the results, issue:</para> <screen><userinput remap="test">./ninja ninja_test -./ninja_test --gtest_filter=-SubprocessTest.SetWithLots</userinput></screen> +./ninja_test - -gtest_filter=-SubprocessTest.SetWithLots</userinput></screen> +--> <para>Install the package:</para> diff --git a/chapter08/python.xml b/chapter08/python.xml index d60378abb..0f22ab2a9 100644 --- a/chapter08/python.xml +++ b/chapter08/python.xml @@ -90,10 +90,6 @@ automatically re-run failed tests. If a test failed but then passed when re-run, it should be considered as passed.</para> - <para>Two tests named <filename>test_xml_etree</filename> and - <filename>test_xml_etree_c</filename> are known to fail with expat-2.6.0 - or newer.</para> - <para>Install the package:</para> <screen><userinput remap="install">make install</userinput></screen> diff --git a/chapter08/sysklogd.xml b/chapter08/sysklogd.xml index 131b7e7fc..26382f8c1 100644 --- a/chapter08/sysklogd.xml +++ b/chapter08/sysklogd.xml @@ -55,7 +55,7 @@ sed -i 's/union wait/int/' syslogd.c</userinput></screen> <para>Install the package:</para> -<screen><userinput remap="install">make BINDIR=/sbin install</userinput></screen> +<screen><userinput remap="install">make install</userinput></screen> </sect2> diff --git a/chapter08/systemd.xml b/chapter08/systemd.xml index 8e6952d14..e5bcb2981 100644 --- a/chapter08/systemd.xml +++ b/chapter08/systemd.xml @@ -227,6 +227,18 @@ meson setup \ <screen><userinput remap="make">ninja</userinput></screen> + <para>Some tests need a basic <filename>/etc/os-release</filename> file. + To test the results, issue:</para> + +<screen><userinput remap="test">echo 'NAME="Linux From Scratch"' > /etc/os-release +ninja test</userinput></screen> + + <!-- This test needs /run/systemd/inaccessible/sock, which only exists + after initializing the system with systemd. --> + <para>One test named <literal>systemd:core / test-namespace</literal> + is known to fail in the LFS chroot environment. Some other tests may + fail because they depend on various kernel configuration options.</para> + <para>Install the package:</para> <screen><userinput remap="install">ninja install</userinput></screen> diff --git a/chapter09/clock.xml b/chapter09/clock.xml index be60684fb..c5aaa9a7a 100644 --- a/chapter09/clock.xml +++ b/chapter09/clock.xml @@ -8,7 +8,7 @@ <sect1 id="ch-config-clock" revision="systemd"> <?dbhtml filename="clock.html"?> - <title>Configuring the system clock</title> + <title>Configuring the System Clock</title> <indexterm zone="ch-config-clock"> <primary sortas="d-clock">clock</primary> diff --git a/lfs-latest-git.php b/lfs-latest-git.php index 95abb7c28..52eb501b4 100644 --- a/lfs-latest-git.php +++ b/lfs-latest-git.php @@ -147,7 +147,7 @@ if ( $package == "Python" ) $dirpath = "https://www.python.org/downloads/sou if ( $package == "shadow" ) $dirpath = github("shadow-maint/shadow"); if ( $package == "sysvinit" ) $dirpath = github("slicer69/sysvinit"); if ( $package == "MarkupSafe" ) $dirpath = "https://pypi.python.org/pypi/MarkupSafe/"; -if ( $package == "Jinja" ) $dirpath = "https://pypi.python.org/pypi/Jinja2/"; +if ( $package == "jinja" ) $dirpath = "https://pypi.python.org/pypi/Jinja2/"; if ( $package == "systemd" ) $dirpath = github("systemd/systemd"); //if ( $package == "tcl" ) $dirpath = "https://sourceforge.net/projects/tcl/files"; if ( $package == "tcl" ) $dirpath = "https://www.tcl.tk/software/tcltk/download.html"; @@ -263,7 +263,7 @@ if ( $package == "zstd" ) $dirpath = github("facebook/zstd"); if ( $package == "grub" ) return find_max( $lines, "/grub/", "/^.*grub-([\d\.]+).tar.xz.*$/" ); - if ( $package == "Jinja" ) + if ( $package == "jinja" ) return find_max( $lines, "/Jinja/", "/^.*Jinja2 ([\d\.]+).*$/" ); if ( $package == "lz" ) diff --git a/packages.ent b/packages.ent index 69ff0b3e5..e78e6387c 100644 --- a/packages.ent +++ b/packages.ent @@ -144,7 +144,7 @@ <!ENTITY e2fsprogs-size "9,412 KB"> <!ENTITY e2fsprogs-url "https://downloads.sourceforge.net/project/e2fsprogs/e2fsprogs/v&e2fsprogs-version;/e2fsprogs-&e2fsprogs-version;.tar.gz"> <!ENTITY e2fsprogs-md5 "6b4f18a33873623041857b4963641ee9"> -<!ENTITY e2fsprogs-home "http://e2fsprogs.sourceforge.net/"> +<!ENTITY e2fsprogs-home "https://e2fsprogs.sourceforge.net/"> <!ENTITY e2fsprogs-fin-du "95 MB"> <!ENTITY e2fsprogs-fin-sbu "2.4 SBU on a spinning disk, 0.4 SBU on an SSD"> @@ -218,10 +218,10 @@ <!ENTITY gawk-fin-du "42 MB"> <!ENTITY gawk-fin-sbu "0.1 SBU"> -<!ENTITY gcc-version "13.2.0"> -<!ENTITY gcc-size "85,800 KB"> +<!ENTITY gcc-version "14.1.0"> +<!ENTITY gcc-size "90,104 KB"> <!ENTITY gcc-url "&gnu;gcc/gcc-&gcc-version;/gcc-&gcc-version;.tar.xz"> -<!ENTITY gcc-md5 "e0e48554cc6e4f261d55ddee9ab69075"> +<!ENTITY gcc-md5 "24195dca80ded5e0551b533f46a4481d"> <!ENTITY gcc-home "https://gcc.gnu.org/"> <!ENTITY gcc-tmpp1-du "4.1 GB"> <!ENTITY gcc-tmpp1-sbu "3.8 SBU"> @@ -317,10 +317,10 @@ <!ENTITY gzip-fin-du "21 MB"> <!ENTITY gzip-fin-sbu "0.3 SBU"> -<!ENTITY iana-etc-version "20240318"> -<!ENTITY iana-etc-size "589 KB"> +<!ENTITY iana-etc-version "20240502"> +<!ENTITY iana-etc-size "590 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 "8cd6cf31cfd5fd4c4efca61722eb9f74"> +<!ENTITY iana-etc-md5 "73921d46a934eb5ac4286fc8111c2174"> <!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"> @@ -349,10 +349,10 @@ <!ENTITY iproute2-fin-du "17 MB"> <!ENTITY iproute2-fin-sbu "0.1 SBU"> -<!ENTITY jinja2-version "3.1.3"> -<!ENTITY jinja2-size "264 KB"> -<!ENTITY jinja2-url "&pypi-src;/J/Jinja2/Jinja2-&jinja2-version;.tar.gz"> -<!ENTITY jinja2-md5 "caf5418c851eac59e70a78d9730d4cea"> +<!ENTITY jinja2-version "3.1.4"> +<!ENTITY jinja2-size "235 KB"> +<!ENTITY jinja2-url "&pypi-src;/J/Jinja2/jinja2-&jinja2-version;.tar.gz"> +<!ENTITY jinja2-md5 "02ca9a6364c92e83d14b037bef4732bc"> <!ENTITY jinja2-home "https://jinja.palletsprojects.com/en/3.1.x/"> <!ENTITY jinja2-fin-du "3.2 MB"> <!ENTITY jinja2-fin-sbu "less than 0.1 SBU"> @@ -381,7 +381,7 @@ <!ENTITY less-fin-du "12 MB"> <!ENTITY less-fin-sbu "less than 0.1 SBU"> -<!ENTITY lfs-bootscripts-version "20230728"> <!-- Scripts depend on this format --> +<!ENTITY lfs-bootscripts-version "20240416"> <!-- Scripts depend on this format --> <!ENTITY lfs-bootscripts-size "BOOTSCRIPTS-SIZE KB"> <!ENTITY lfs-bootscripts-url "&downloads-root;lfs-bootscripts-&lfs-bootscripts-version;.tar.xz"> <!ENTITY lfs-bootscripts-md5 "BOOTSCRIPTS-MD5SUM"> @@ -431,12 +431,12 @@ <!ENTITY linux-major-version "6"> <!ENTITY linux-minor-version "8"> -<!ENTITY linux-patch-version "2"> +<!ENTITY linux-patch-version "9"> <!--<!ENTITY linux-version "&linux-major-version;.&linux-minor-version;">--> <!ENTITY linux-version "&linux-major-version;.&linux-minor-version;.&linux-patch-version;"> -<!ENTITY linux-size "139,173 KB"> +<!ENTITY linux-size "139,241 KB"> <!ENTITY linux-url "&kernel;linux/kernel/v&linux-major-version;.x/linux-&linux-version;.tar.xz"> -<!ENTITY linux-md5 "728e7da5137577232593b2210ae1bdc4"> +<!ENTITY linux-md5 "95b3e4b76c4449bad8dd39ec16140a62"> <!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 @@ -478,10 +478,10 @@ <!ENTITY make-fin-du "13 MB"> <!ENTITY make-fin-sbu "0.5 SBU"> -<!ENTITY man-db-version "2.12.0"> -<!ENTITY man-db-size "1,941 KB"> +<!ENTITY man-db-version "2.12.1"> +<!ENTITY man-db-size "1,994 KB"> <!ENTITY man-db-url "&savannah;/releases/man-db/man-db-&man-db-version;.tar.xz"> -<!ENTITY man-db-md5 "67e0052fa200901b314fad7b68c9db27"> +<!ENTITY man-db-md5 "7b044e5020aab89db41ac7ee59d6d84a"> <!ENTITY man-db-home "https://www.nongnu.org/man-db/"> <!ENTITY man-db-fin-du "41 MB"> <!ENTITY man-db-fin-sbu "0.2 SBU"> @@ -526,31 +526,28 @@ <!ENTITY mpfr-fin-du "44 MB"> <!ENTITY mpfr-fin-sbu "0.3 SBU"> -<!ENTITY ncurses-release "6.4"> -<!ENTITY ncurses-version "&ncurses-release;-20230520"> +<!ENTITY ncurses-version "6.5"> <!ENTITY ncurses-size "2,156 KB"> -<!-- switch back to invisible-mirror.net for 6.5 --> -<!--ENTITY ncurses-url "https://invisible-mirror.net/archives/ncurses/ncurses-&ncurses-version;.tar.gz"--> -<!ENTITY ncurses-url "&anduin-sources;/ncurses-&ncurses-version;.tar.xz"> -<!ENTITY ncurses-md5 "c5367e829b6d9f3f97b280bb3e6bfbc3"> +<!ENTITY ncurses-url "https://invisible-mirror.net/archives/ncurses/ncurses-&ncurses-version;.tar.gz"> +<!ENTITY ncurses-md5 "ac2d2629296f04c8537ca706b6977687"> <!ENTITY ncurses-home "&gnu-software;ncurses/"> -<!ENTITY ncurses-tmp-du "51 MB"> +<!ENTITY ncurses-tmp-du "3,603 KB"> <!ENTITY ncurses-tmp-sbu "0.3 SBU"> <!ENTITY ncurses-fin-du "45 MB"> <!ENTITY ncurses-fin-sbu "0.2 SBU"> -<!ENTITY ninja-version "1.11.1"> -<!ENTITY ninja-size "225 KB"> +<!ENTITY ninja-version "1.12.0"> +<!ENTITY ninja-size "235 KB"> <!ENTITY ninja-url "&github;/ninja-build/ninja/archive/v&ninja-version;/ninja-&ninja-version;.tar.gz"> -<!ENTITY ninja-md5 "32151c08211d7ca3c1d832064f6939b0"> +<!ENTITY ninja-md5 "302530c3d94dcb08e4ab0750a7f4cf20"> <!ENTITY ninja-home "https://ninja-build.org/"> <!ENTITY ninja-fin-du "75 MB"> <!ENTITY ninja-fin-sbu "0.3 SBU"> -<!ENTITY openssl-version "3.2.1"> -<!ENTITY openssl-size "17,318 KB"> +<!ENTITY openssl-version "3.3.0"> +<!ENTITY openssl-size "17,616 KB"> <!ENTITY openssl-url "https://www.openssl.org/source/openssl-&openssl-version;.tar.gz"> -<!ENTITY openssl-md5 "c239213887804ba00654884918b37441"> +<!ENTITY openssl-md5 "c8b063afbea85d867e161ecb8816cfa9"> <!ENTITY openssl-home "https://www.openssl.org/"> <!ENTITY openssl-fin-du "805 MB"> <!ENTITY openssl-fin-sbu "1.8 SBU"> @@ -606,19 +603,19 @@ <!-- If python minor version changes, updates in python and meson pages will be needed: python3.6 and python3.6m --> -<!ENTITY python-version "3.12.2"> +<!ENTITY python-version "3.12.3"> <!ENTITY python-minor "3.12"> -<!ENTITY python-size "20,109 KB"> +<!ENTITY python-size "20,142 KB"> <!ENTITY python-url "https://www.python.org/ftp/python/&python-version;/Python-&python-version;.tar.xz"> -<!ENTITY python-md5 "e7c178b97bf8f7ccd677b94d614f7b3c"> +<!ENTITY python-md5 "8defb33f0c37aa4bdd3a38ba52abde4e"> <!ENTITY python-home "https://www.python.org/"> <!ENTITY python-tmp-du "598 MB"> <!ENTITY python-tmp-sbu "0.5 SBU"> <!ENTITY python-fin-du "485 MB"> <!ENTITY python-fin-sbu "1.8 SBU"> <!ENTITY python-docs-url "https://www.python.org/ftp/python/doc/&python-version;/python-&python-version;-docs-html.tar.bz2"> -<!ENTITY python-docs-md5 "8a6310f6288e7f60c3565277ec3b5279"> -<!ENTITY python-docs-size "8,065 KB"> +<!ENTITY python-docs-md5 "6025ee63c0ded34aac874f5da8f1a90c"> +<!ENTITY python-docs-size "8,110 KB"> <!ENTITY readline-version "8.2"> <!ENTITY readline-soversion "8.2"><!-- used for stripping --> @@ -639,10 +636,10 @@ <!ENTITY sed-fin-du "30 MB"> <!ENTITY sed-fin-sbu "0.3 SBU"> -<!ENTITY setuptools-version "69.2.0"> -<!ENTITY setuptools-size "2,171 KB"> +<!ENTITY setuptools-version "69.5.1"> +<!ENTITY setuptools-size "2,238 KB"> <!ENTITY setuptools-url "&pypi-src;/s/setuptools/setuptools-&setuptools-version;.tar.gz"> -<!ENTITY setuptools-md5 "940ffdb3a2ce4f6a5ee80032aa115fc7"> +<!ENTITY setuptools-md5 "645f672221ed628e888e38a9da6c5aed"> <!ENTITY setuptools-home "&pypi-home;/setuptools/"> <!ENTITY setuptools-fin-du "20 MB"> <!ENTITY setuptools-fin-sbu "less than 0.1 SBU"> @@ -703,7 +700,7 @@ <!ENTITY tcl-size "11,355 KB"> <!ENTITY tcl-url "https://downloads.sourceforge.net/tcl/tcl&tcl-version;-src.tar.gz"> <!ENTITY tcl-md5 "c30b57c6051be28fa928d09aca82841e"> -<!ENTITY tcl-home "http://tcl.sourceforge.net/"> +<!ENTITY tcl-home "https://tcl.sourceforge.net/"> <!ENTITY tcl-docs-url "https://downloads.sourceforge.net/tcl/tcl&tcl-version;-html.tar.gz"> <!ENTITY tcl-docs-md5 "5467198f8d57c54835bf80b98ffb0170"> <!ENTITY tcl-docs-size "1,167 KB"> @@ -736,23 +733,34 @@ <!ENTITY udev-lfs-home " "> <!ENTITY util-linux-minor "2.40"> -<!ENTITY util-linux-version "2.40"> <!-- 2.33.x --> -<!ENTITY util-linux-size "8,558 KB"> +<!ENTITY util-linux-version "2.40.1"> <!-- 2.33.x --> +<!ENTITY util-linux-size "8,617 KB"> <!ENTITY util-linux-url "&kernel;linux/utils/util-linux/v&util-linux-minor;/util-linux-&util-linux-version;.tar.xz"> -<!ENTITY util-linux-md5 "46d1423122d310dfd022c799e1e4e259"> +<!ENTITY util-linux-md5 "42ca7b92a3d77087de362f43ac29a3df"> <!ENTITY util-linux-home "https://git.kernel.org/pub/scm/utils/util-linux/util-linux.git/"> <!ENTITY util-linux-tmp-du "172 MB"> <!ENTITY util-linux-tmp-sbu "0.2 SBU"> <!ENTITY util-linux-fin-du "313 MB"> <!ENTITY util-linux-fin-sbu "0.5 SBU"> -<!ENTITY vim-version "9.1.0161"> +<!ENTITY vim-version "9.1.0405"> <!-- <!ENTITY vim-majmin "90"> --> <!ENTITY vim-docdir "vim/vim91"> -<!ENTITY vim-size "17,320 KB"> +<!ENTITY vim-size "17,428 KB"> <!ENTITY vim-url "https://github.com/vim/vim/archive/v&vim-version;/vim-&vim-version;.tar.gz"> +<!-- N.B. LFS 9.0 uses + https://github.com/vim/vim/archive/v8.1.1846/vim-8.1.1846.tar.gz + and it still works after years, the md5sum of the resulted tarball + is unchanged as well. Thus GitHub download seems stable enough for + vim and there's no need to use anduin. + + BTW if we click the "Next" button enough times on + https://github.com/vim/vim/tags, we can eventually see the old + release. The "Next" button just sets "after=" in the URL. For + example, https://github.com/vim/vim/tags?after=v8.1.1847 will show + us v8.1.1846. --> <!--<!ENTITY vim-url "&anduin-sources;/vim-&vim-version;.tar.gz">--> -<!ENTITY vim-md5 "a5dc0dc859a084ac7b6afe90d1b02c9d"> +<!ENTITY vim-md5 "5379f5542310ee7ffbd6aea312407042"> <!ENTITY vim-home "https://www.vim.org"> <!ENTITY vim-fin-du "236 MB"> <!ENTITY vim-fin-sbu "2.5 SBU"> diff --git a/patches.ent b/patches.ent index fabb2f7ad..426cc36df 100644 --- a/patches.ent +++ b/patches.ent @@ -10,18 +10,22 @@ <!ENTITY bzip2-docs-patch-md5 "6a5ac7e89b791aae556de0f745916f7f"> <!ENTITY bzip2-docs-patch-size "1.6 KB"> -<!ENTITY coreutils-i18n-patch "coreutils-&coreutils-version;-i18n-1.patch"> -<!ENTITY coreutils-i18n-patch-md5 "ce7529b74564aac887c3f48582a5e6cf"> -<!ENTITY coreutils-i18n-patch-size "159 KB"> +<!ENTITY coreutils-i18n-patch "coreutils-&coreutils-version;-i18n-2.patch"> +<!ENTITY coreutils-i18n-patch-md5 "58961caf5bbdb02462591fa506c73b6d"> +<!ENTITY coreutils-i18n-patch-size "164 KB"> + +<!ENTITY expect-gcc14-patch "expect-&expect-version;-gcc14-1.patch"> +<!ENTITY expect-gcc14-patch-md5 "0b8b5ac411d011263ad40b0664c669f0"> +<!ENTITY expect-gcc14-patch-size "7.8 KB"> <!ENTITY glibc-fhs-patch "glibc-&glibc-version;-fhs-1.patch"> <!ENTITY glibc-fhs-patch-md5 "9a5997c3452909b1769918c759eff8a2"> <!ENTITY glibc-fhs-patch-size "2.8 KB"> -<!-- -<!ENTITY glibc-upstream-fixes-patch "glibc-&glibc-version;-upstream_fixes-4.patch"> -<!ENTITY glibc-upstream-fixes-patch-md5 "66e843b00688c641c9bdda684db45b43"> -<!ENTITY glibc-upstream-fixes-patch-size "36 KB"> ---> + +<!ENTITY glibc-upstream-patch "glibc-&glibc-version;-upstream_fix-2.patch"> +<!ENTITY glibc-upstream-patch-md5 "e9f8f23746755bf880772cfa59c1896c"> +<!ENTITY glibc-upstream-patch-size "8.0 KB"> + <!ENTITY kbd-backspace-patch "kbd-&kbd-version;-backspace-1.patch"> <!ENTITY kbd-backspace-patch-md5 "f75cca16a38da6caa7d52151f7136895"> <!ENTITY kbd-backspace-patch-size "12 KB">