diff --git a/Makefile b/Makefile index 000fbebcb..aee4f9a61 100644 --- a/Makefile +++ b/Makefile @@ -164,9 +164,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 \ @@ -174,9 +176,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 \ @@ -188,8 +188,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/chapter01/changelog.xml b/chapter01/changelog.xml index d53235093..fd2f14e05 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 28f983414..270ce53b1 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 e12c32381..bfe9f6c67 100644 --- a/chapter08/gcc.xml +++ b/chapter08/gcc.xml @@ -556,7 +556,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 0b780190a..ecd4d52dd 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: @@ -298,13 +303,17 @@ rm -rf DESTDIR 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 diff --git a/chapter08/pkgconf.xml b/chapter08/pkgconf.xml index d55ec7490..16771fc03 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 b85d9907a..a3d10250e 100644 --- a/packages.ent +++ b/packages.ent @@ -21,10 +21,10 @@ - - + + - + @@ -57,10 +57,10 @@ - - + + - + @@ -317,10 +317,10 @@ - - + + - + @@ -341,10 +341,10 @@ - - + + - + @@ -358,10 +358,10 @@ - - + + - + @@ -439,13 +439,13 @@ - - + + - + - + + + + @@ -645,10 +648,10 @@ - - + + - + @@ -744,13 +747,13 @@ - + - - + + - + diff --git a/patches.ent b/patches.ent index 1bcd45dc3..d27c717de 100644 --- a/patches.ent +++ b/patches.ent @@ -22,6 +22,10 @@ + + + +