Fix make-4.4 bug.
Update to wheel-0.38.4 (Python Module).
Update to texinfo-7.0.
Update to sysvinit-3.05.
Update to shadow-4.13.
Update to sed-4.9.
Update to meson-0.64.0.
Update to linux-6.0.7.
Update to elfutils-0.188.
Update to bc-6.1.1.
We only need a one-line change in upstream fix (because we don't use
"make --shuffle"). Add it as a sed for both Chapter 5 and Chapter 8.
Note that the "minimal" sed would be '/MAEKFLAGS :=/s/r/ -r/'. I
included an additional ')' so it won't modify "-r" again to "- -r".
Tested "make" and "make check" on a x86_64 with -j8 and an arm64 with
-j24.
Link: https://sourceware.org/git/?p=glibc.git;a=commit;h=2d7ed98add14
Update to iana-etc-20221025.
Update to tzdata-2022f.
Update to Python3-3.11.0.
Update to procps-ng-4.0.1.
Update to man-pages-6.01.
Update to man-db-2.11.0.
Update to make-4.4.
Update to linux-6.0.6.
Update to libffi-3.4.4.
Update to inetutils-2.4.
Update to expat-2.5.0.
Note: I had to run glibc in Chapter 8 at -j1 to avoid an apparant race
condition. With a little more investigation I may be able to find a
better solution.
Update to iana-etc-20221007.
Update to vim-9.0.0739.
Add upstream patches to readline and bash.
Update to zlib-1.2.13.
Update to man-pages-6.00.
Update to gettext-0.21.1.
Update to iproute2-6.0.0.
Update to meson-0.63.3.
Update to Python-3.10.8.
Update to xz-5.2.7.
Update to tzdata-2022e.
Update to linux-6.0.1.
Update to dbus-1.14.4.
I have:
2 FAIL
5092 PASS
67 UNSUPPORTED
16 XFAIL
4 XPASS
Let's not be too precise (or we'll need to explain the meaning of
"UNSUPPORTED"). IMO "over 5000" is fine (until we get 5500 tests).
Update to iana-etc-20220922.
Update to tzdata-2022d.
Update to readline-8.2.
Update to linux-5.19.11.
Update to libffi-3.4.3.
Update to libcap-2.66.
Update to dbus-1.14.2.
Update to bc-6.0.3.
Update to bash-5.2.
Don't emphasis "static library" at all, to prevent anyone from thinking
"I need to use static libraries so I'll keep these .la files". And warn
that .la files are known to break BLFS packages.
This reverts commit 395eb462ba.
Not needed as grep is "patched".
Note that I'm still against "patching" grep. All the complains for the
warnings are from only several people and IMO the complains are not
valid. But as bdubbs has made the decision let's keep it for now and
review after some time...
Update to file-5.43.
Update to linux-5.19.8.
Update to gawk-5.2.0.
Update to meson-0.63.2.
Update to ninja-1.11.1.
Update to bc-6.0.2.
Fix the location of udev rules in eudev.
Remove a warning for egrep and fgrep that
Delete an empty binutils man page.
Expand tabs to 8 spaces like everywhere else in the book.
Explain that shared libraries are already covered by ASLR, PIE expands
the ASLR to cover the exetutables.
In 2022, stack smashing attackings are mostly constructing a sequence of
faked returning addresses to exectute a series of function already
existing in the programs or libraries itself (ret2lib). Returning into
the code injected by the attacker is almost impossible because on
i686 (with a PAE/NX enabled kernel) or x86_64, running injected code
needs W/X mappings and those are very rare these days.
Committing only the commands for now, so that others can test the
build. TODO:
- add command explanations
- add changelog
- comment on failing tests in binutils and gcc
Text change only.
Since 11.0, /lib is a symlink to usr/lib. With libc_cv_slibdir=/usr/lib,
/lib won't be searched by default anymore (if someone mess up the system
by removing /lib symlink and create an real directory there, for example
the initramfs before r10.1-439).
Text change only.
Add tst-arc4random-thread failure recently reported to upstream, remove
namespace related failures as they are UNSUPPORTED now in 2.36.
It works out of box with glibc-2.35. I think this issue is already
fixed at glibc side, by the commit:
commit 0b5ca7c3e551e5502f3be3b06453324fe8604e82
Author: Paul Eggert <eggert@cs.ucla.edu>
Date: Tue Sep 21 07:47:45 2021 -0700
regex: copy back from Gnulib
Copy regex-related files back from Gnulib, to fix a problem with
static checking of regex calls noted by Martin Sebor. This merges the
following changes:
* New macro __attribute_nonnull__ in misc/sys/cdefs.h, for use later
when copying other files back from Gnulib.
... ... (unrelated things trimmed)
Presently we let the build system generate static C++ bindings, and
then we remove them. Note that we could also prevent generating
any C++ binding, since nothing in LFS/BLFS use them, but it seems to
me that generating the shared ones is closer to what is done for
other packages.
The c_rehash script, shipped by OpenSSL versions in current LFS trunk
and all previous LFS releases, is vulnerable to CVE-2022-2068. It's
fixed in 3.0.4, but OpenSSL 3.0.4 is completely broken on CPU models with
AVX-512 extension [1]. So we'd like to defer OpenSSL update and wait for
upstream consensus about "would 3.0.5 be released in urgency".
But, the upstream has announced that use of c_rehash is obsolete now [2].
So we can tell people not to use it.
[1]: https://github.com/openssl/openssl/issues/18625
[2]: https://www.openssl.org/news/secadv/20220621.txt
Using readline can improve line editing feature of bc, but it's not
enabled by default.
As readline is already installed before bc, let's pick up this
improvement with no cost.
I've observed some failures building LFS on my old i3-3217U (at 1.8 GHz
with -j4), but forgot to update the book. Just got reminded by a
lfs-support post.
BLFS no longer contains ConsoleKit, and ConsoleKit can be considered
dead now (the ConsoleKit2 fork has no action in the recent year).
In BLFS systemd (with PAM) or elogind provide a similar functionality.
I can see no reason to mention ConsoleKit in the book now.
With the construct used in save_usrlib, if ld-linux-...dbg already
exists, it is stripped again and a file ld-linux-...dbg.dbg is
created. Prevent this by not listing files ending in "g".
Change nobody/nogroup uid/git to 65534.
Update to meson-0.62.1.
Update to libpipeline-1.5.6.
Update to elfutils-0.187.
Update to Jinja2-3.1.2.
Update to vim-8.2.4814.
Update to sysvinit-3.03.
Update to linux-5.17.5.
Update to gcc-11.3.0.
Update to coreutils-9.1.
Update to bc-5.2.4.
In serveral places we use the pip3 command to install Python 3 programs
and modules for all users as root. This conflicts with the Python
developers' recommendation to build packages in a virtual environment as
a regular user. To this end, a multi-line warning is written when using
pip3 as the root user.
This change shows users how to avoid this warning.
Update to sysvinit-3.02.
Update to zlib-1.2.12.
Update to expat-2.4.8.
Update to Jinja2-3.1.1.
Update to Python-3.10.4.
Update to procps-ng-4.0.0.
Update to iproute2-5.17.0.
Update to meson-0.62.0.
Update to linux-5.17.1.
Update to util-linux-2.38.
Telling the user to override CFLAGS and CXXFLAGS may cause two problems:
1. We've added --with-gcc-arch=native, so the configure script will add
"-march=native" into CFLAGS. Then we've not really verified which
-march= value is the last one in the GCC command line and being really
used.
2. User may just export CFLAGS="-march=x86_64", without "-O2". This
will produce unoptimized binaries.
* update to expat-2.4.7 (#5019)
* update to bc-5.2.3 (#5020)
* update to linux-5.16.14 (#5021)
* update to perl-5.34.1 (#5022)
* update to vim-8.2.4567 (#4500)
Change pdf generation to use 9 point fonts for monospace
sections of the book. Otherwise texy overflows, especially
in Chapter 8, Stripping.
Fix a minor spacing issue in the stripping issue.
MAke a minor grammar fix in creatingfiles.xml.
This prevents a reference to /var/run in /usr/lib/tmpfiles.d/dbus.conf,
which would cause a warning from systemd-tmpfiles.
--with-system-pid-file=/run/dbus/pid is not needed with this, but
--with-console-auth-dir and --with-system-socket are still needed.
Now adjusting.xml only serves as a historical reference, and a "snip
library" for gcc.xml. Put all relevant content into gcc.xml directly
and remove adjusting.xml. If someone needs a historical reference, he
can always get adjusting.xml in Git history.
on the systems without non-loopback IP address
We'd observed this long ago with "unknown reason". I just saw it again
and did some investigation, found it depends on getaddrinfo() with
AI_ADDRCONFIG, which requires a non-loopback address.
Approved by bdubbs for 11.1.
To editors: no need to rebuild system and re-tag anything, AFAIK nothing
in BLFS uses libsubid now. You may delete /usr/lib/libsubid.a on your
system manually.
Add libc_malloc_check.so (it's like libmcheck.a, but should be used with
LD_PRELOAD).
Add description for libmvec.
"libnss" -> "libnss_*", and reword the description.
Add binutils-2.38 LTO patch.
Update to util-linux-2.37.4.
Update to man-db-2.10.1.
Update to linux-5.16.9.
Update to vim-8.2.4383.
Update to iana-etc-20220207.
In the new cross-compilation approach, the $PATH in chroot does not
contain '/tools/bin'. So "+h" is useless in chroot as the newly
installed tools always replace the temporary counterpart at the same
location.
"+h" in chapter4/settingenviron.xml is kept deliberately. Currently
$LFS/tools/bin only contains programs prefixed with
"x86_64-lfs-linux-gnu-", and it's highly unlikely that any distro will
ever ship a program named with such prefix. So it may seems that we can
remove this "+h" as well. However, the situation may change in future
and we can take this oppertunity to teach the advantage and disvantage
of bash hash feature.
* tailf is removed completely
* fdformat is disabled by default, and we don't really have any reason
to enable it (and we'll need to workaround the missing man page issue
if we want to enable it)
* irqtop, lsirq, scriptreplay, and uclampset added
Add coreutils-9.0 chmod patch.
Update to glibc-2.35.
Update to linux-5.16.5.
Update to findutils-4.9.0.
Update to expat-2.4.4.
Update to iana-etc-20220128.
Report on #lfs-support by "r1c0n3r0": the libhistory and libreadline
filenames have been wrong on the "stripping" page since realine
version bump. Fix taken (with slight modification) from William
Harrington's port to arm:
05a2cd35aa
This is needed so that /etc/default/useradd is not removed by package
managers when rebuilding shadow in BLFS. Change the explanations in
the text accordingly.
Update to e2fsprogs-1.46.5.
Update to zstd-1.5.1.
Update to expat-2.4.2.
Update to shadow-4.10.
Update to sysvinit-3.01.
Update to linux-5.15.12.
Update to iana-etc-20211224.
Update to openssl-3.0.1.
Update to eudev-3.2.11.
Update lfs-latest-git.php currency for new eudev location.
Update to systemd-250 (BLFS coming shortly)
Update to meson-0.60.3
Kernel Configuration: Enable the framebuffer since it's disabled by
default in Linux-5.15.
Kernel Configuration: Add a note about CONFIG_DEFAULT_HOSTNAME on
systemd.
Update to iana-etc-20211112.
Update to elfutils-0.186.
Update to jinja2-3.0.3.
Update to bc-5.2.0.
Update to ncurses-6.3.
Update to libpipeline-1.5.4.
Update to meson-0.60.1.
Update to iproute2-5.15.0.
Update to linux-5.15.2.
One change was needed to systemd-249 due to changes in the linux
keernel version 5.14 and later.
A change to ncurses was needed to ensure the .pc files are placed in
the right location (/usr/lib/pkgconfig).
Update to gawk-5.1.1.
Update to meson-0.60.0.
Update to libcap-2.60.
Update to gdbm-1.22.
Update to file-5.41.
Update to linux-5.14.15.
Update to iana-etc-20211025.
Update to tzdata-2021e.
Change /bin to /usr/bin in passwd, and revisedchroot.
Fix systemd for new meson.
Update to vim-8.2.3508.
Update to tzdata-2021c.
Update to Python-3.10.0.
Update to Jinja2-3.0.2.
Update to linux-5.14.12.
Update to iana-etc-20211004.
Update to bc-5.1.1.
Update to automake-1.16.5.
Ensure tcl documentation install instructions are present.
Update to Python3-3.9.7.
Update to linux-5.14.3.
Update to libcap-2.57.
Update to iproute2-5.14.0.
Update to inetutils-2.2.
Update to gzip-1.11.
Update to gdbm-1.21.
Update to bison-3.8.1.
Update to bc-5.0.2.
LFS-11.0-rc3 released.
Update to e2fsprogs-1.46.4.
Update to meson-0.59.1.
Update to util-linux 2.37.2.
Update to linux-5.13.12.
Update to libcap-2.53.
Without them, for example:
cp /usr/lib/libbfd.so /tmp/libbfd.so
# now /tmp/libbfd.so is a hardcopy of /usr/lib/libbfd-2.37.so
strip --strip-unneeded /tmp/libbfd.so
install -vm755 /tmp/libbfd.so /usr/lib/libbfd.so
# now /usr/lib/libbfd.so is *not* a symlink, but a real file
We don't want this to happen.
libdl and libpthread removed: they are now dummy libs and is not used by
anything built in LFS/BLFS.
Update to GCC-11.2.0 (#4883)
Update to inetutils-2.1 (#4892)
Update to automake-1.16.4 (#4894)
SHA256 checksum entities for the three packages are added. I think we
can start a transition to SHA256 now.
The behavior of --strip-unneeded and --strip-all are same for
executables and shared libraries. For static libraries,
--strip-unneeded keeps the symbols needed for relocation processing so
it won't break static archives.
Move coreutils library from /usr/libexec to /usr/lib in both
Chapter 6 and Chapter 8.
Text updates in chapter08/pkgmgt.xml and chapter09/locale.xml.
Restore deletion of hanging test in chapter08/util-linux.xml.
Text changes in stripping and make instruction compatible with jhalfs.
Glibc loads these "NSS modules" (see man 5 nss) on startup. This is
implemented with something like dlopen() so "ldd" won't show them up.
So they should be considered "online" here.
Without this addition, overwriting libnss_files-2.33.so reproducibly
triggers a crash during jhalfs runs where stripping is enabled. In
manual builds, it reproducibly triggers a crash exiting from chroot.
After this change I reran stripping 5 times and there was no crash
observed.
In stripping, /usr/bin/bash, /usr/bin/find, and /usr/bin/strip are
running. Strip them, and all libraries used by them in /tmp, then
install them back.
We can't use this for all libraries or binaries: the process above
discouples hard links (for example /usr/bin/perl and perl5.34.0). So
unfortunately the stripping instruction is now a stupidly long bash
script...
The default timeout is only 10 seconds, where the bash tests won't
complete on most systems. Then expect will exit early, with bash tests
running in background. We won't like this.
Add MarkupSafe
Add Jinja2
Update to texinfo-6.8
Update to iproute2-5.13.0
Update to Python-3.9.6 (Security Update)
Update to systemd-249 (Security Update)
Update to Linux-5.13.1
Update to iana-etc-20210611.
Update to vim-8.2.3001.
Update to util-linux-2.37.
Update to meson-0.58.1.
Update to linux-5.12.10.
Update to m4-1.4.19.
Update to grub-2.06.
Update to iana-etc-20210526.
Update to vim-8.2.2890.
Update to zstd-1.5.0.
Update to perl-5.34.0.
Update to inux-5.12.7.
Update to libcap-2.50.
Update to kmod-29.
Update to expat-2.4.1.
Update to elfutils-0.185.
Update to bc-4.0.2.
Update to meson-0.58.0
Update to systemd-248
Update to gcc-11.1.0
Update to linux-5.12.1
Update to iproute2-5.12.0
Update to Python-3.9.5
Make /bin, /sbin, and /lib symlinks to their counterparts in /usr.
Thanks again for a significant portion of this work goes to Xi, I only
really merged it and made a couple of modifications for my updates. To
LFS 11.x we go!
Update to iana-etc-20210407.
Update to Python3-3.9.4.
Update to meson-0.57.2.
Update to linux-5.10.16.
Update to less-581.
Update to file-5.40.
Update to bc-4.0.1.