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...
In chapter 6, patch configure outputs:
libattr development library was not found or not usable.
GNU patch will be built without xattr support.
While this is normal in chapter 6 (building a temporary patch), we
should mention this dependency in the dependencies page.
It allows binutils to link to zstd, so binutils will have
zstd-compressed debug section support (the compression is not enabled
by default but can be enabled via LDFLAGS etc. if wanted).
We also need to add libzstd.so.&zstd-version; into online_usrlib to
prevent a crash in stripping.
The configure script says:
configure: WARNING: filterdiff not installed; build will not be
reproducible.
The filterdiff program is a part of patchutils.
The Udev build dependencies are directly copied from systemd. Though
they might be unneeded for a Udev-only build, meson will check them
anyway. And I'm sure Jinja2 is really used.
In systemd dependencies Attr is dropped because Attr is not used
directly, it's just Acl needs Attr. OpenSSL is added because udevadm
links to libcrypto.
As "S" and "U" are closer, create a "systemd-udev" entity to simplify
the <phrase> choices.
In Util-linux, lsblk and findmnt links to libudev so it depends on
&systemd-udev;.
It does not make too much sense to list GNAT but not GDC. They are for
same purpose (building optional languages with bootstrap from binary
requirement).
There are many packages using pkg-config (pkgconf actually) or systemd
(systemd revision only) in the configure stage but we've not documented
them yet.
- D-Bus uses pkgconf to detect systemd.
- E2fsprogs uses pkgconf to detect libblkid (in util-linux).
eudev (in sysv revision) and systemd (in systemd revision).
- IProute2 uses pkgconf to detect libcap and libelf.
- Man-DB uses pkgconf to detect libpipeline and systemd.
- Procps-ng uses pkgconf to detect ncurses and systemd (or elogind,
but it's an external dependency).
- Python uses pkgconf to detect libuuid (in util-linux from Ch 07),
zlib, bzip2, xz, and openssl (and some external dependencies).
- Systemd uses pkgconf to detect Zlib, Xz, etc.
- Util-linux uses ncurses and systemd (and some external dependencies)
Add all of them.
There are also several packages finding for pkg-config but only uses it
for external dependencies, for eg grep and vim. I've not added them here.
libelf.so links to libbz2.so.1.0, liblzma.so.5, and libz.so.1. libz is
really used, but to me liblzma and libbz2 are "unneeded dependencies":
the building system apparently thinks they are needed by zstd but
actually not. I don't want to "fix the upstream" so just list them here
anyway.
- Update to systemd-253
- Update to bc-6.3.1
- Update to linux-6.2.2
- Update to procps-ng-4.0.3
- Update to iproute2-6.2.0
- Update to meson-1.0.1
- Update to make-4.4.1
- Update to elfutils-0.189
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.