diff --git a/appendices/dependencies.xml b/appendices/dependencies.xml
index a8675a805..fa20d3688 100644
--- a/appendices/dependencies.xml
+++ b/appendices/dependencies.xml
@@ -828,7 +828,7 @@
&before;
- Wheel
+ Packaging and Wheel
@@ -1196,7 +1196,7 @@
&testsuites;
- No test suite available
+ None
@@ -1598,7 +1598,7 @@
&testsuites;
- No test suite available
+ None
@@ -2422,7 +2422,7 @@
&dependencies;
- Python
+ Flit-core and Python
@@ -2647,7 +2647,7 @@
&testsuites;
- No test suite available
+ Expect
diff --git a/chapter01/changelog.xml b/chapter01/changelog.xml
index 1ac0d51b7..14f3cb970 100644
--- a/chapter01/changelog.xml
+++ b/chapter01/changelog.xml
@@ -39,6 +39,74 @@
or as
appropriate for the entry or if needed the entire day's listitem.
-->
+
+ 2025-05-15
+
+
+ [bdubbs] - Update to setuptools-80.7.1. Fixes
+ #5715.
+
+
+ [bdubbs] - Update to man-pages-6.14. Fixes
+ #5720.
+
+
+ [bdubbs] - Update to man-db-2.13.1. Fixes
+ #5719.
+
+
+ [bdubbs] - Update to m4-1.4.20. Fixes
+ #5722.
+
+
+ [bdubbs] - Update to linux-6.14.6. Fixes
+ #5717.
+
+
+ [bdubbs] - Update to gettext-0.25. Fixes
+ #5718.
+
+
+
+
+
+ 2025-05-01
+
+
+ [bdubbs] - Update to vim-9.1.1353. Addresses
+ #4500.
+
+
+ [bdubbs] - Update to setuptools-80.0.1. Fixes
+ #5710.
+
+
+ [bdubbs] - Update to packaging-25.0. Fixes
+ #5706.
+
+
+ [bdubbs] - Update to meson-1.8.0. Fixes
+ #5713.
+
+
+ [bdubbs] - Update to linux-6.14.4. Fixes
+ #5709.
+
+
+ [bdubbs] - Update to iana-etc-20250407. Addresses
+ #5006.
+
+
+ [bdubbs] - Update to gperf-3.3. Fixes
+ #5708.
+
+
+ [bdubbs] - Update to elfutils-0.193. Fixes
+ #5711.
+
+
+
+
2025-04-15
diff --git a/chapter01/whatsnew.xml b/chapter01/whatsnew.xml
index d6d646f7b..819b1f243 100644
--- a/chapter01/whatsnew.xml
+++ b/chapter01/whatsnew.xml
@@ -95,9 +95,9 @@
GDBM-&gdbm-version;
-
+
@@ -149,9 +149,9 @@
Libcap-&libcap-version;
-
+
Libffi-&libffi-version;
@@ -170,15 +170,15 @@
-
+
-
+
Man-pages-&man-pages-version;
diff --git a/chapter05/libstdc++.xml b/chapter05/libstdc++.xml
index e16efdea9..c7020290d 100644
--- a/chapter05/libstdc++.xml
+++ b/chapter05/libstdc++.xml
@@ -60,13 +60,13 @@ cd build
Prepare Libstdc++ for compilation:
-../libstdc++-v3/configure \
- --host=$LFS_TGT \
- --build=$(../config.guess) \
- --prefix=/usr \
- --disable-multilib \
- --disable-nls \
- --disable-libstdcxx-pch \
+../libstdc++-v3/configure \
+ --host=$LFS_TGT \
+ --build=$(../config.guess) \
+ --prefix=/usr \
+ --disable-multilib \
+ --disable-nls \
+ --disable-libstdcxx-pch \
--with-gxx-include-dir=/tools/$LFS_TGT/include/c++/&gcc-version;
diff --git a/chapter06/gcc-pass2.xml b/chapter06/gcc-pass2.xml
index 039310ce8..40afd8230 100644
--- a/chapter06/gcc-pass2.xml
+++ b/chapter06/gcc-pass2.xml
@@ -79,23 +79,23 @@ cd build
Now prepare GCC for compilation:
-../configure \
- --build=$(../config.guess) \
- --host=$LFS_TGT \
- --target=$LFS_TGT \
- LDFLAGS_FOR_TARGET=-L$PWD/$LFS_TGT/libgcc \
- --prefix=/usr \
- --with-build-sysroot=$LFS \
- --enable-default-pie \
- --enable-default-ssp \
- --disable-nls \
- --disable-multilib \
- --disable-libatomic \
- --disable-libgomp \
- --disable-libquadmath \
- --disable-libsanitizer \
- --disable-libssp \
- --disable-libvtv \
+../configure \
+ --build=$(../config.guess) \
+ --host=$LFS_TGT \
+ --target=$LFS_TGT \
+ LDFLAGS_FOR_TARGET=-L$PWD/$LFS_TGT/libgcc \
+ --prefix=/usr \
+ --with-build-sysroot=$LFS \
+ --enable-default-pie \
+ --enable-default-ssp \
+ --disable-nls \
+ --disable-multilib \
+ --disable-libatomic \
+ --disable-libgomp \
+ --disable-libquadmath \
+ --disable-libsanitizer \
+ --disable-libssp \
+ --disable-libvtv \
--enable-languages=c,c++
diff --git a/chapter06/tar.xml b/chapter06/tar.xml
index 67bc22540..691094e12 100644
--- a/chapter06/tar.xml
+++ b/chapter06/tar.xml
@@ -45,8 +45,8 @@
Prepare Tar for compilation:
-./configure --prefix=/usr \
- --host=$LFS_TGT \
+./configure --prefix=/usr \
+ --host=$LFS_TGT \
--build=$(build-aux/config.guess)
Compile the package:
diff --git a/chapter08/acl.xml b/chapter08/acl.xml
index 63892d68e..f122deda1 100644
--- a/chapter08/acl.xml
+++ b/chapter08/acl.xml
@@ -44,8 +44,8 @@
Prepare Acl for compilation:
-./configure --prefix=/usr \
- --disable-static \
+./configure --prefix=/usr \
+ --disable-static \
--docdir=/usr/share/doc/acl-&acl-version;
Compile the package:
diff --git a/chapter08/e2fsprogs.xml b/chapter08/e2fsprogs.xml
index 6f93dc99e..89f1fadb3 100644
--- a/chapter08/e2fsprogs.xml
+++ b/chapter08/e2fsprogs.xml
@@ -52,12 +52,12 @@ cd build
Prepare E2fsprogs for compilation:
-../configure --prefix=/usr \
- --sysconfdir=/etc \
- --enable-elf-shlibs \
- --disable-libblkid \
- --disable-libuuid \
- --disable-uuidd \
+../configure --prefix=/usr \
+ --sysconfdir=/etc \
+ --enable-elf-shlibs \
+ --disable-libblkid \
+ --disable-libuuid \
+ --disable-uuidd \
--disable-fsck
diff --git a/chapter08/glibc.xml b/chapter08/glibc.xml
index 33a928466..2953415ed 100644
--- a/chapter08/glibc.xml
+++ b/chapter08/glibc.xml
@@ -68,12 +68,12 @@ cd build
Prepare Glibc for compilation:
-../configure --prefix=/usr \
- --disable-werror \
- --enable-kernel=&min-kernel; \
- --enable-stack-protector=strong \
- --disable-nscd \
- libc_cv_slibdir=/usr/lib
+../configure --prefix=/usr \
+ --disable-werror \
+ --disable-nscd \
+ --enable-kernel=&min-kernel;\
+ libc_cv_slibdir=/usr/lib \
+ --enable-stack-protector=strong
The meaning of the configure options:
diff --git a/chapter08/grub.xml b/chapter08/grub.xml
index e83db8ca0..b38f5760b 100644
--- a/chapter08/grub.xml
+++ b/chapter08/grub.xml
@@ -81,9 +81,9 @@
Prepare GRUB for compilation:
-./configure --prefix=/usr \
- --sysconfdir=/etc \
- --disable-efiemu \
+./configure --prefix=/usr \
+ --sysconfdir=/etc \
+ --disable-efiemu \
--disable-werror
diff --git a/chapter08/libelf.xml b/chapter08/libelf.xml
index 68ccf2b42..c2d44c837 100644
--- a/chapter08/libelf.xml
+++ b/chapter08/libelf.xml
@@ -46,8 +46,8 @@
Prepare Libelf for compilation:
- ./configure --prefix=/usr \
- --disable-debuginfod \
+ ./configure --prefix=/usr \
+ --disable-debuginfod \
--enable-libdebuginfod=dummy
Compile the package:
@@ -58,6 +58,9 @@
make check
+ Two tests are known to fail, dwarf_srclang_check and
+ run-backtrace-native-core.sh.
+
Install only Libelf:
make -C libelf install
diff --git a/chapter08/libffi.xml b/chapter08/libffi.xml
index 04f5fff2e..a5caf50ed 100644
--- a/chapter08/libffi.xml
+++ b/chapter08/libffi.xml
@@ -63,8 +63,8 @@
Prepare Libffi for compilation:
- ./configure --prefix=/usr \
- --disable-static \
+./configure --prefix=/usr \
+ --disable-static \
--with-gcc-arch=native
diff --git a/chapter08/packaging.xml b/chapter08/packaging.xml
index f1a6def9c..17891d65b 100644
--- a/chapter08/packaging.xml
+++ b/chapter08/packaging.xml
@@ -62,7 +62,6 @@
Installed directories
- packaging
/usr/lib/python&python-minor;/site-packages/packaging and
/usr/lib/python&python-minor;/site-packages/packaging-&packaging-version;.dist-info
diff --git a/chapter08/pkgconf.xml b/chapter08/pkgconf.xml
index 3e7e737fa..d9f9c4da3 100644
--- a/chapter08/pkgconf.xml
+++ b/chapter08/pkgconf.xml
@@ -46,8 +46,8 @@
Prepare Pkgconf for compilation:
-./configure --prefix=/usr \
- --disable-static \
+./configure --prefix=/usr \
+ --disable-static \
--docdir=/usr/share/doc/pkgconf-&pkgconf-version;
Compile the package:
diff --git a/chapter08/stripping.xml b/chapter08/stripping.xml
index 5b27c8e96..aa3fe9042 100644
--- a/chapter08/stripping.xml
+++ b/chapter08/stripping.xml
@@ -24,16 +24,20 @@
backup of the LFS system in its current state.
A strip command with the
- --strip-unneeded option removes all debug symbols
- from a binary or library. It also removes all symbol table entries not
+ --strip-unneeded option removes all debug symbols from
+ a binary or library. It also removes all symbol table entries not normally
needed by the linker (for static libraries) or dynamic linker (for
- dynamically linked binaries and shared libraries).
+ dynamically linked binaries and shared libraries). Using
+ --strip-debug does not remove symbol table entries
+ that may be needed by some applications. The difference between
+ unneeded and debug is very small.
+ For example, an unstripped libc.a
+ is 22.4 MB. After stripping with --strip-debug it
+ is 5.9 MB. Using --strip-unneeded only reduces the
+ size further to 5.8 MB.
-
The debugging symbols from selected libraries are compressed with
- Zlib and preserved in separate files. That
+ Zstd and preserved in separate files. That
debugging information is needed to run regression tests with valgrind or gdb later, in BLFS.
@@ -81,9 +85,9 @@
cd /usr/lib
for LIB in $save_usrlib; do
- objcopy --only-keep-debug --compress-debug-sections=zlib $LIB $LIB.dbg
+ objcopy --only-keep-debug --compress-debug-sections=zstd $LIB $LIB.dbg
cp $LIB /tmp/$LIB
- strip --strip-unneeded /tmp/$LIB
+ strip --strip-debug /tmp/$LIB
objcopy --add-gnu-debuglink=$LIB.dbg /tmp/$LIB
install -vm755 /tmp/$LIB /usr/lib
rm /tmp/$LIB
@@ -102,14 +106,14 @@ online_usrlib="libbfd-&binutils-version;.so
for BIN in $online_usrbin; do
cp /usr/bin/$BIN /tmp/$BIN
- strip --strip-unneeded /tmp/$BIN
+ strip --strip-debug /tmp/$BIN
install -vm755 /tmp/$BIN /usr/bin
rm /tmp/$BIN
done
for LIB in $online_usrlib; do
cp /usr/lib/$LIB /tmp/$LIB
- strip --strip-unneeded /tmp/$LIB
+ strip --strip-debug /tmp/$LIB
install -vm755 /tmp/$LIB /usr/lib
rm /tmp/$LIB
done
@@ -120,7 +124,7 @@ for i in $(find /usr/lib -type f -name \*.so* ! -name \*dbg) \
case "$online_usrbin $online_usrlib $save_usrlib" in
*$(basename $i)* )
;;
- * ) strip --strip-unneeded $i
+ * ) strip --strip-debug $i
;;
esac
done
diff --git a/chapter08/systemd.xml b/chapter08/systemd.xml
index 989082419..01730e235 100644
--- a/chapter08/systemd.xml
+++ b/chapter08/systemd.xml
@@ -243,7 +243,7 @@ ninja test
tar -xf ../../systemd-man-pages-&systemd-man-version;.tar.xz \
- --no-same-owner --strip-components=1 \
+ --no-same-owner --strip-components=1 \
-C /usr/share/man
Create the /etc/machine-id file needed by
diff --git a/chapter08/tcl.xml b/chapter08/tcl.xml
index 0905af0d4..2cb10d72c 100644
--- a/chapter08/tcl.xml
+++ b/chapter08/tcl.xml
@@ -82,9 +82,9 @@ sed -e "s|$SRCDIR/unix|/usr/lib|" \
-i tclConfig.sh
sed -e "s|$SRCDIR/unix/pkgs/tdbc&tdbc-ver;|/usr/lib/tdbc&tdbc-ver;|" \
- -e "s|$SRCDIR/pkgs/tdbc&tdbc-ver;/generic|/usr/include|" \
- -e "s|$SRCDIR/pkgs/tdbc&tdbc-ver;/library|/usr/lib/tcl8.6|" \
- -e "s|$SRCDIR/pkgs/tdbc&tdbc-ver;|/usr/include|" \
+ -e "s|$SRCDIR/pkgs/tdbc&tdbc-ver;/generic|/usr/include|" \
+ -e "s|$SRCDIR/pkgs/tdbc&tdbc-ver;/library|/usr/lib/tcl8.6|" \
+ -e "s|$SRCDIR/pkgs/tdbc&tdbc-ver;|/usr/include|" \
-i pkgs/tdbc&tdbc-ver;/tdbcConfig.sh
sed -e "s|$SRCDIR/unix/pkgs/itcl&itcl-ver;|/usr/lib/itcl&itcl-ver;|" \
diff --git a/lfs-latest-git.php b/lfs-latest-git.php
index d8da03ef5..a6723e909 100644
--- a/lfs-latest-git.php
+++ b/lfs-latest-git.php
@@ -139,6 +139,7 @@ if ( $package == "mpfr" ) $dirpath = "https://mpfr.loria.fr/mpfr-current";
if ( $package == "ncurses" ) $dirpath = "https://invisible-mirror.net/archives/ncurses";
if ( $package == "ninja" ) $dirpath = github("ninja-build/ninja");
if ( $package == "openssl" ) $dirpath = github("openssl/openssl");
+if ( $package == "packaging" ) $dirpath = "https://pypi.org/rss/project/packaging/releases.xml";
if ( $package == "procps-ng" ) $dirpath = "https://gitlab.com/procps-ng/procps/-/tags";
if ( $package == "psmisc" ) $dirpath = "https://gitlab.com/psmisc/psmisc/-/tags";
if ( $package == "Python" ) $dirpath = "https://www.python.org/downloads/source/";
@@ -262,6 +263,9 @@ if ( $package == "zstd" ) $dirpath = github("facebook/zstd");
return find_max( $lines, "/wheel\/\d/", "/^.*wheel\/([\d\.]+).*$/" );
# End Python modules
+ if ( $package == "packaging" )
+ return find_max( $lines, "/packaging/", "/^.*^.*packaging.([\d\.]+\d)\/.*$/" );
+
if ( $package == "procps-ng" )
return find_max( $lines, "/v\d/", "/^.*v([\d\.]+)$/" );
diff --git a/packages.ent b/packages.ent
index 38982675a..6e7985744 100644
--- a/packages.ent
+++ b/packages.ent
@@ -140,10 +140,10 @@
-
-
+
+
-
+
@@ -237,10 +237,10 @@
-
-
+
+
-
+
@@ -265,10 +265,10 @@
-
-
+
+
-
+
@@ -309,10 +309,10 @@
-
+
-
+
@@ -423,12 +423,12 @@
-
+
-
+
-
+
-
+
-
+