From ce9ec4f126d82e7c20a2436cd4d63bda02e32381 Mon Sep 17 00:00:00 2001 From: "Douglas R. Reno" Date: Fri, 23 Jun 2023 10:48:45 -0500 Subject: [PATCH 01/16] gettext: Use gettext-version instead of a hardcoded version (which is now out of date) for /usr/share/gettext-0.21.1 --- chapter08/gettext.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/chapter08/gettext.xml b/chapter08/gettext.xml index be1c16d39..bf5a97522 100644 --- a/chapter08/gettext.xml +++ b/chapter08/gettext.xml @@ -97,7 +97,7 @@ chmod -v 0755 /usr/lib/preloadable_libintl.so libasprintf.so, libgettextlib.so, libgettextpo.so, libgettextsrc.so, libtextstyle.so, and preloadable_libintl.so /usr/lib/gettext, /usr/share/doc/gettext-&gettext-version;, - /usr/share/gettext, and /usr/share/gettext-0.19.8 + /usr/share/gettext, and /usr/share/gettext-&gettext-version; From bbfb090d2a43fc140de9c9475e4f4913529d0f57 Mon Sep 17 00:00:00 2001 From: Xi Ruoyao Date: Fri, 30 Jun 2023 03:17:31 +0800 Subject: [PATCH 02/16] glibc: Disable obsolete libcrypt implementation I've not bothered to write an explanation for --disable-crypt because it will likely be the default of Glibc-2.38, then we may drop it from the command lines. --- chapter05/glibc.xml | 1 + chapter08/glibc.xml | 13 ++----------- 2 files changed, 3 insertions(+), 11 deletions(-) diff --git a/chapter05/glibc.xml b/chapter05/glibc.xml index 14f1fac6c..7fb5e98c5 100644 --- a/chapter05/glibc.xml +++ b/chapter05/glibc.xml @@ -91,6 +91,7 @@ cd build --build=$(../scripts/config.guess) \ --enable-kernel=&min-kernel; \ --with-headers=$LFS/usr/include \ + --disable-crypt \ libc_cv_slibdir=/usr/lib diff --git a/chapter08/glibc.xml b/chapter08/glibc.xml index a44e285c9..4245b0ff4 100644 --- a/chapter08/glibc.xml +++ b/chapter08/glibc.xml @@ -79,6 +79,7 @@ cd build --enable-kernel=&min-kernel; \ --enable-stack-protector=strong \ --with-headers=/usr/include \ + --disable-crypt \ libc_cv_slibdir=/usr/lib @@ -489,7 +490,7 @@ mkdir -pv /etc/ld.so.conf.d ld-linux-x86-64.so.2, ld-linux.so.2, libBrokenLocale.{a,so}, libanl.{a,so}, libc.{a,so}, libc_nonshared.a, libc_malloc_debug.so, - libcrypt.{a,so}, libdl.{a,so.2}, libg.a, libm.{a,so}, + libdl.{a,so.2}, libg.a, libm.{a,so}, libmcheck.a, libmemusage.so, libmvec.{a,so}, libnsl.so.1, libnss_compat.so, libnss_dns.so, libnss_files.so, libnss_hesiod.so, libpcprofile.so, libpthread.{a,so.0}, @@ -795,16 +796,6 @@ mkdir -pv /etc/ld.so.conf.d - - libcrypt - - The cryptography library - - libcrypt - - - - libdl From c727d7e7f701db63f6a32d52ff2679289cb86706 Mon Sep 17 00:00:00 2001 From: Xi Ruoyao Date: Fri, 30 Jun 2023 03:55:58 +0800 Subject: [PATCH 03/16] Add libxcrypt --- chapter01/changelog.xml | 10 +++ chapter01/whatsnew.xml | 4 ++ chapter03/packages.xml | 9 +++ chapter08/chapter08.xml | 1 + chapter08/libxcrypt.xml | 148 ++++++++++++++++++++++++++++++++++++++++ packages.ent | 8 +++ prologue/why.xml | 11 +++ 7 files changed, 191 insertions(+) create mode 100644 chapter08/libxcrypt.xml diff --git a/chapter01/changelog.xml b/chapter01/changelog.xml index e2b70f617..39f52d80e 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. --> + + 2023-06-29 + + + [xry111] - Add libxcrypt-4.4.35. Fixes + #5280. + + + + 2023-06-17 diff --git a/chapter01/whatsnew.xml b/chapter01/whatsnew.xml index ded7e7df0..fa08642bc 100644 --- a/chapter01/whatsnew.xml +++ b/chapter01/whatsnew.xml @@ -304,6 +304,10 @@ Added: + + Libxcrypt-&libxcrypt-version; + + Pkgconf-&flit-core-version; diff --git a/chapter03/packages.xml b/chapter03/packages.xml index 569d6b6aa..86932b428 100644 --- a/chapter03/packages.xml +++ b/chapter03/packages.xml @@ -468,6 +468,15 @@ + + Libxcrypt (&libxcrypt-version;) - &libxcrypt-size;: + + Home page: + Download: + MD5 sum: &libxcrypt-md5; + + + Linux (&linux-version;) - &linux-size;: diff --git a/chapter08/chapter08.xml b/chapter08/chapter08.xml index 605d26782..e97ae7057 100644 --- a/chapter08/chapter08.xml +++ b/chapter08/chapter08.xml @@ -36,6 +36,7 @@ + diff --git a/chapter08/libxcrypt.xml b/chapter08/libxcrypt.xml new file mode 100644 index 000000000..c65d7db29 --- /dev/null +++ b/chapter08/libxcrypt.xml @@ -0,0 +1,148 @@ + + + %general-entities; +]> + + + + + + libxcrypt + &libxcrypt-version; +
&libxcrypt-url;
+
+ + Libxcrypt-&libxcrypt-version; + + + Libxcrypt + + + + + + <para>The Libxcrypt package contains a modern library for one-way + hashing of passwords.</para> + + <segmentedlist> + <segtitle>&buildtime;</segtitle> + <segtitle>&diskspace;</segtitle> + + <seglistitem> + <seg>&libxcrypt-fin-sbu;</seg> + <seg>&libxcrypt-fin-du;</seg> + </seglistitem> + </segmentedlist> + + </sect2> + + <sect2 role="installation"> + <title>Installation of Libxcrypt + + Prepare Libxcrypt for compilation: + +./configure --prefix=/usr \ + --enable-hashes=strong,glibc \ + --enable-obsolete-api=no \ + --disable-static \ + --disable-failure-tokens + + + The meaning of the new configure options: + + + --enable-hashes=strong,glibc + + Build strong hash algorithms recommended for security use + cases, and the hash algorithms provided by traditional Glibc + libcrypt for + compatibility. + + + + + --enable-obsolete-api=no + + Disable obsolete API functions. They are not needed for + a modern Linux system built from source. + + + + + --disable-failure-tokens + + Disable failure token feature. It's needed for + compatibility with the traditional hash libraries of some + platforms, but a Linux system based on Glibc does not need + it. + + + + + Compile the package: + +make + + To test the results, issue: + +make check + + Install the package: + +make install + + + + The instructions above disabled obsolete API functions since + no package installed by compiling from sources would link against + them at runtime. However, the only known binary-only applications + that link against these functions require ABI version 1. If you must + have such libraries because of some binary-only application or to be + to be compliant with LSB, build the package again with the following + commands: + +make distclean +./configure --prefix=/usr \ + --enable-hashes=strong,glibc \ + --enable-obsolete-api=glibc \ + --disable-static \ + --disable-failure-tokens +make +cp -av .libs/libcrypt.so.1* /usr/lib + + + + + + Contents of Libxcrypt + + + Installed libraries + + + libcrypt.so + + + + + Short Descriptions + + + + + libcrypt + + Contains functions to hash passwords + + libcrypt + + + + + + + + +
diff --git a/packages.ent b/packages.ent index 315c67fc7..c5ef421bf 100644 --- a/packages.ent +++ b/packages.ent @@ -430,6 +430,14 @@ + + + + + + + + diff --git a/prologue/why.xml b/prologue/why.xml index 7cfa14b7a..7cbe0e184 100644 --- a/prologue/why.xml +++ b/prologue/why.xml @@ -373,6 +373,17 @@ suites in other LFS packages.
+ + Libxcrypt + + This package provides the + libcrypt library + needed by various packages (notably, Shadow) for hashing passwords. + It replaces the obsolete + libcrypt implmentation in + Glibc. + + Linux Kernel From f652d5bb26aa5f8e3b6db2b74511db5702de7b4f Mon Sep 17 00:00:00 2001 From: Xi Ruoyao Date: Fri, 30 Jun 2023 06:32:31 +0800 Subject: [PATCH 04/16] gcc-pass2: Disable libsanitizer Building libsanitizer needs libcrypt. Disable it so we don't need to add libxcrypt into Chapter 6. --- chapter06/gcc-pass2.xml | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/chapter06/gcc-pass2.xml b/chapter06/gcc-pass2.xml index ebc20a296..b342ae484 100644 --- a/chapter06/gcc-pass2.xml +++ b/chapter06/gcc-pass2.xml @@ -96,6 +96,7 @@ cd build --disable-libatomic \ --disable-libgomp \ --disable-libquadmath \ + --disable-libsanitizer \ --disable-libssp \ --disable-libvtv \ --enable-languages=c,c++ @@ -143,6 +144,19 @@ cd build
+ + --disable-libsanitizer + + Disable GCC sanitizer runtime libraries. They are not + needed for the temporary installation. This switch is necessary + to build GCC without + libcrypt installed for + the target. In it was + implied by --disable-libstdcxx, but now we + have to explicitly pass it. + + +
Compile the package: From 1adc9414366221a91553357495ee989a7774c091 Mon Sep 17 00:00:00 2001 From: Xi Ruoyao Date: Fri, 30 Jun 2023 06:57:35 +0800 Subject: [PATCH 05/16] dependencies: Add Libxcrypt dependency info --- appendices/dependencies.xml | 65 ++++++++++++++++++++++++++++++------- 1 file changed, 53 insertions(+), 12 deletions(-) diff --git a/appendices/dependencies.xml b/appendices/dependencies.xml index 1d4a0abac..54b3d65e0 100644 --- a/appendices/dependencies.xml +++ b/appendices/dependencies.xml @@ -970,8 +970,8 @@ &dependencies; Bash, Binutils, Coreutils, Diffutils, Findutils, Gawk, GCC, - Gettext, Glibc, GMP, Grep, M4, Make, MPC, MPFR, Patch, Perl, Sed, - Tar, Texinfo, and Zstd + Gettext, Glibc, GMP, Grep, Libxcrypt, M4, Make, MPC, MPFR, Patch, + Perl, Sed, Tar, Texinfo, and Zstd @@ -1885,6 +1885,47 @@ + + Libxcrypt + + + &dependencies; + + Bash, Binutils, Coreutils, Diffutils, Gawk, GCC, Glibc, Grep, + Make, and Sed + + + + + &runtime; + + Glibc + + + + + &testsuites; + + None + + + + + &before; + + GCC, Perl, Python, + and Shadow, and Systemd + + + + + &external; + + None + + + Linux @@ -2455,14 +2496,14 @@ &dependencies; Bash, Binutils, Coreutils, Gawk, GCC, GDBM, Glibc, Grep, Groff, - Make, Sed, and Zlib + Libxcrypt, Make, Sed, and Zlib &runtime; - GDBM and Glibc + GDBM, Glibc, and Libxcrypt @@ -2621,7 +2662,7 @@ &dependencies; Bash, Binutils, Coreutils, Expat, GCC, Gdbm, Gettext, Glibc, - Grep, Libffi, Make, Ncurses, OpenSSL, Pkgconf, Sed, and + Grep, Libffi, Libxcrypt, Make, Ncurses, OpenSSL, Pkgconf, Sed, and Util-linux @@ -2629,8 +2670,8 @@ &runtime; - Bzip2, Expat, Gdbm, Glibc, Libffi, Ncurses, OpenSSL, and - Zlib + Bzip2, Expat, Gdbm, Glibc, Libffi, Libxcrypt, Ncurses, + OpenSSL, and Zlib @@ -2745,14 +2786,14 @@ &dependencies; Acl, Attr, Bash, Binutils, Coreutils, Diffutils, Findutils, Gawk, - GCC, Gettext, Glibc, Grep, Libcap, Make, and Sed + GCC, Gettext, Glibc, Grep, Libcap, Libxcrypt, Make, and Sed &runtime; - Glibc + Glibc and Libxcrypt @@ -2826,15 +2867,15 @@ &dependencies; Acl, Attr, Bash, Binutils, Coreutils, Diffutils, Expat, Gawk, - GCC, Glibc, Gperf, Grep, Jinja2, Libcap, Meson, Pkgconf, Sed, - Util-linux, and Zstd + GCC, Glibc, Gperf, Grep, Jinja2, Libcap, Libxcrypt, Meson, + Pkgconf, Sed, Util-linux, and Zstd &runtime; - Acl, Attr, Glibc, Libcap, and Util-linux + Acl, Attr, Glibc, Libcap, Libxcrypt, and Util-linux From 4cd0193c962548f5d2188144ee8ccd5be5af76e9 Mon Sep 17 00:00:00 2001 From: Bruce Dubbs Date: Fri, 30 Jun 2023 12:58:10 -0500 Subject: [PATCH 06/16] Package Updates. Update to iana-etc-20230615. Update to vim-9.0.1671. Update to util-linux-2.39.1. Update to linux-6.3.10. Update to kbd-2.6.1. Update to gettext-0.22. --- chapter01/changelog.xml | 30 ++++++++++++++++++++++++++++++ chapter01/whatsnew.xml | 8 ++++---- packages.ent | 34 +++++++++++++++++----------------- 3 files changed, 51 insertions(+), 21 deletions(-) diff --git a/chapter01/changelog.xml b/chapter01/changelog.xml index e2b70f617..42d617192 100644 --- a/chapter01/changelog.xml +++ b/chapter01/changelog.xml @@ -40,6 +40,36 @@ appropriate for the entry or if needed the entire day's listitem. --> + + 2023-07-01 + + + [bdubbs] - Update to iana-etc-20230615. Addresses + #5006. + + + [bdubbs] - Update to vim-9.0.1671. Addresses + #4500. + + + [bdubbs] - Update to util-linux-2.39.1. Addresses + #5278. + + + [bdubbs] - Update to linux-6.3.10. Addresses + #5276. + + + [rahul] - Update to kbd-2.6.1. Fixes + #5279. + + + [bdubbs] - Update to gettext-0.22. Fixes + #5275. + + + + 2023-06-17 diff --git a/chapter01/whatsnew.xml b/chapter01/whatsnew.xml index ded7e7df0..302f2d43f 100644 --- a/chapter01/whatsnew.xml +++ b/chapter01/whatsnew.xml @@ -121,9 +121,9 @@ - + @@ -160,9 +160,9 @@ - + diff --git a/packages.ent b/packages.ent index 315c67fc7..bd7e78860 100644 --- a/packages.ent +++ b/packages.ent @@ -253,10 +253,10 @@ - - + + - + @@ -325,10 +325,10 @@ - + - + @@ -366,10 +366,10 @@ - - + + - + @@ -432,12 +432,12 @@ - + - + - + - + + - + - + - + - + From d6e7cda825b9ddc2c9685cc1bb083923f18906b7 Mon Sep 17 00:00:00 2001 From: Xi Ruoyao Date: Sat, 1 Jul 2023 16:00:20 +0800 Subject: [PATCH 07/16] kbd: Simplify the instruction for doc installation --- chapter08/kbd.xml | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/chapter08/kbd.xml b/chapter08/kbd.xml index 522ddbd72..28685015a 100644 --- a/chapter08/kbd.xml +++ b/chapter08/kbd.xml @@ -97,8 +97,7 @@ sed -i 's/resizecons.8 //' docs/man/man8/Makefile.in If desired, install the documentation: -mkdir -pv /usr/share/doc/kbd-&kbd-version; -cp -R -v docs/doc/* /usr/share/doc/kbd-&kbd-version; +cp -R -v docs/doc -T /usr/share/doc/kbd-&kbd-version; From cc5eb637aad1025368417cfd5f8cf2f560036f17 Mon Sep 17 00:00:00 2001 From: Xi Ruoyao Date: Sun, 2 Jul 2023 20:31:17 +0800 Subject: [PATCH 08/16] pkgconf: Use the Gentoo mirror for now :( BugLink: https://github.com/pkgconf/pkgconf/issues/302 --- packages.ent | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages.ent b/packages.ent index bd7e78860..cc6365abf 100644 --- a/packages.ent +++ b/packages.ent @@ -568,7 +568,7 @@ - + From 9ceb623400b564f39947cf7ff7313afaa1fd69a5 Mon Sep 17 00:00:00 2001 From: Xi Ruoyao Date: Mon, 3 Jul 2023 06:14:40 +0800 Subject: [PATCH 09/16] Package update - Update to iproute2-6.4.0 (#5277) - Update to linux-6.4.1 (#5276) --- chapter01/changelog.xml | 14 ++++++++++++++ gen-changelog.py | 4 ++-- packages.ent | 14 +++++++------- 3 files changed, 23 insertions(+), 9 deletions(-) diff --git a/chapter01/changelog.xml b/chapter01/changelog.xml index 42d617192..d870405d9 100644 --- a/chapter01/changelog.xml +++ b/chapter01/changelog.xml @@ -40,6 +40,20 @@ appropriate for the entry or if needed the entire day's listitem. --> + + 2023-07-02 + + + [xry111] - Update to iproute2-6.4.0. Fixes + #5277. + + + [xry111] - Update to linux-6.4.1. Fixes + #5276. + + + + 2023-07-01 diff --git a/gen-changelog.py b/gen-changelog.py index 2932dd9ec..e7ee1d7e7 100755 --- a/gen-changelog.py +++ b/gen-changelog.py @@ -83,9 +83,9 @@ for (s, act) in [(upd, "Update to "), (add, "Add ")]: out = act + pkgver if pkgver in ticket: out += ' (#' + ticket[pkgver] + ')' - print(out) + print("-", out) for i in rem: - print("Remove", i) + print("-", "Remove", i) print("---------------------") diff --git a/packages.ent b/packages.ent index cc6365abf..fc05f20f6 100644 --- a/packages.ent +++ b/packages.ent @@ -350,10 +350,10 @@ - - + + - + @@ -431,13 +431,13 @@ - - + + - + - +