Update to wheel-0.43.0.
Update to setuptools-69.2.0 (Python module).
Update to meson-1.4.0.
Update to expat-2.6.2 (Security fix).
Update to iana-etc-20240305.
Update to vim-9.1.0161.
Update to xz-5.6.1.
Update to shadow-4.15.0.
Update to psmisc-23.7.
Update to kmod-32.
Update to elfutils-0.191.
Update to iana-etc-20240222.
Update to vim-9.1.0145.
Update to xz-5.6.0.
Update to tcl-8.6.14.
Update to shadow-4.14.6.
Update to setuptools-69.1.1.
Update to linux-6.7.7.
Update to libffi-3.4.6.
Update to gettext-0.22.5.
Update to expat-2.6.1.
The incompatibilty between systemd and CONFIG_AUDIT has been fixed since
Linux kernel 3.14, thus there is no reason to disable it on LFS. And we
are referring to pam_loginuid.so from /etc/pam.d in BLFS, which is
completely useless if CONFIG_AUDIT is disabled.
Link: https://github.com/systemd/systemd/commit/db999e0f923c
So if a test times out, it will be noted in jhalfs log.
Also remove "-l" so the output will be something like
./nptl/tst-thread-affinity-pthread: Timed out ...
instead of just a puzzling "./nptl/tst-thread-affinity-pthread".
As we've already concluded, overwriting a shared object can crash
running processes using code or data from this shared object. For
example if gdm is crashed, we may leave the system unusable :(.
I spent some time investigating the difference of vim test results from
different editors. It turns out the value of TERM can affect the test
results in a deterministic way: when TERM=xterm-256color all tests pass,
when TERM=linux one test fails, and when TERM=vt100 20+ tests fail.
As we are redirecting the output to a file, the actual type of the
terminal does not matter and we can just specify a value known to work.
The book already mentions the vlock program needs PAM to be built, but
in dependencies page we say Kbd has no external optional dependencies.
This is obviously incorrect...
Glibc tests occansionally fail due to a timeout because:
1. The hardware is slower than the developers expected.
2. Some tests use multiple or even all CPU cores internally, for e.g.
with 8 active CPU cores we may end up running 8 tests (due to -j8)
each of them uses 8 cores in the worst case, resulting a severe
congestion.
I'm almost sure nptl/tst-thread-affinity* are cases of 2.
Let's document how to rule out the timed out tests instead of making the
list of known failures longer and longer.
Update to shadow-4.14.4.
Update to setuptools-69.1.0 (Python module).
Update to python-3.12.2.
Update to pkgconf-2.1.1.
Update to MarkupSafe-2.1.5 (Python module).
Update to man-pages-6.06.
Update to expat-2.6.0.
Update to linux-6.7.4.
Upstream documentation has been changed a few years ago to point to
https rather than http, but for example ubuntu-2023.10 still has only
http in its catalog file. So use http here, and change the catalog file
in blfs to have both http and https...
We want expect to return the return code of "make test" (stored in
$value), but $value is expanded too early to nothing by Bash. Quote EOF
so Bash won't expand $xxx.
We used to run "expect -c 'spawn ls'" for this in Binutils, but then we
thought expect test suite was enough as such a simple PTY test. However
expect test can fail due to some different reason, so add back a simple
test using Python pty module before building expect. Now we no longer
need to consider expect test critical (IIRC there was a report saying
one expect test failed for unknown reason but all other things OK).
IIRC we switched from separate devpts to bind mount, and matched the UID
of tester with the host UID owning the TTY, to satisify the Bash test
suite. But now we are always using UID 101 for tester and expect to
spawn a PTY for Bash test suite (so when building LFS in a TTY owned by
the root user of the host tester won't be UID 0). Thus we can switch
back to a separate devpts mount which is cleaner and safer.
And we are already using a separate devpts mount in Chapter 11.
$(realpath /dev/shm) will return the absolute path of the target of
/dev/shm, thus the command will work for both absolute symlink and
relative symlink.