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) 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 diff --git a/chapter01/changelog.xml b/chapter01/changelog.xml index 301e3dff1..aba69a0de 100644 --- a/chapter01/changelog.xml +++ b/chapter01/changelog.xml @@ -40,6 +40,72 @@ appropriate for the entry or if needed the entire day's listitem. --> + + 2024-01-21 + + + [xry111] - Apply upstream fix for pkgconf-2.1.0 regression. + Fixes #5414. + + + [xry111] - Update to jinja2-3.1.3 (security fix). Fixes + #5411. + + + [xry111] - Update to bc-6.7.5. Fixes + #5408. + + + [xry111] - Update to attr-2.5.2. Fixes + #5412. + + + [xry111] - Update to ncurses-6.4-20230520 (security fix). + Fixes #5416. + + + [xry111] - Update to markupsafe-2.1.4. Fixes + #5418. + + + [xry111] - Update to linux-6.7.1. Fixes + #5406. + + + [xry111] - Update to iproute2-6.7.0. Fixes + #5410. + + + [xry111] - Update to vim-9.1.0041. Addresses + #4500. + + + [xry111] - Update to iana-etc-20240117. Addresses + #5006. + + + [xry111] - Update to shadow-4.14.3. Fixes + #5413. + + + [xry111] - Fix CVE-2024-0684 for coreutils-9.4. Fixes + #5417. + + + + + + 2024-01-18 + + + [xry111] - Edit a ncurses header to always use the + wide-character ABI compatible with libncursesw.so because we + are faking the 8-bit libncurses.so with it. Fixes + #5415. + + + + 2024-01-09 diff --git a/chapter01/whatsnew.xml b/chapter01/whatsnew.xml index e0c77ed72..2dd0a8d02 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; - + @@ -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/chapter06/ncurses.xml b/chapter06/ncurses.xml index f25c43777..0a8c7e166 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 +ln -sv libncursesw.so $LFS/usr/lib/libncurses.so +sed -e 's/^#if.*XOPEN.*$/#if 1/' \ + -i $LFS/usr/include/curses.h - + 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 diff --git a/chapter08/gcc.xml b/chapter08/gcc.xml index 93cb0cb6f..73b449b68 100644 --- a/chapter08/gcc.xml +++ b/chapter08/gcc.xml @@ -530,7 +530,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 diff --git a/chapter08/ncurses.xml b/chapter08/ncurses.xml index 0703d0e1c..40589c58a 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,34 +127,39 @@ 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 - install command: + install command (the header + curses.h is also edited to ensure the + wide-character ABI to be used as what we've done in + ): 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/* / Many applications still expect the linker to be able to find - non-wide-character Ncurses libraries. Trick such applications into linking with - wide-character libraries by means of symlinks and linker scripts: + non-wide-character Ncurses libraries. Trick such applications into + linking with wide-character libraries by means of symlinks + (note that the .so links are + only safe with curses.h edited to always use the + wide-character ABI): for lib in ncurses form panel menu ; do - rm -vf /usr/lib/lib${lib}.so - echo "INPUT(-l${lib}w)" > /usr/lib/lib${lib}.so - ln -sfv ${lib}w.pc /usr/lib/pkgconfig/${lib}.pc + ln -sfv lib${lib}w.so /usr/lib/lib${lib}.so + ln -sfv ${lib}w.pc /usr/lib/pkgconfig/${lib}.pc done Finally, make sure that old applications that look for -lcurses at build time are still buildable: -rm -vf /usr/lib/libcursesw.so -echo "INPUT(-lncursesw)" > /usr/lib/libcursesw.so -ln -sfv libncurses.so /usr/lib/libcurses.so +ln -sfv libncursesw.so /usr/lib/libcurses.so If desired, install the Ncurses documentation: @@ -206,13 +211,17 @@ cp -av lib/lib*.so.5* /usr/lib tset - libcursesw.so (symlink and linker script to libncursesw.so), + libcurses.so (symlink), + libform.so (symlink), libformw.so, + libmenu.so (symlink), libmenuw.so, + libncurses.so (symlink), libncursesw.so, libncurses++w.so, - libpanelw.so, and their non-wide-character counterparts without "w" - in the library names. + libpanel.so (symlink), + and libpanelw.so, + /usr/share/tabset, /usr/share/terminfo, and @@ -342,16 +351,6 @@ cp -av lib/lib*.so.5* /usr/lib - - libcursesw - - A link to libncursesw - - libcursesw - - - - libncursesw 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/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 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 @@ - + - - + + - + diff --git a/patches.ent b/patches.ent index 1bcd45dc3..d27c717de 100644 --- a/patches.ent +++ b/patches.ent @@ -22,6 +22,10 @@ + + + +