Skip to content

Merge upstream#6

Open
MymeType wants to merge 94 commits into
MymeType:trunkfrom
lfs-book:trunk
Open

Merge upstream#6
MymeType wants to merge 94 commits into
MymeType:trunkfrom
lfs-book:trunk

Conversation

@MymeType

@MymeType MymeType commented May 2, 2026

Copy link
Copy Markdown
Owner

No description provided.

bdubbs and others added 30 commits April 14, 2026 14:01
Update to meson-1.11.0.
Move intltool and XML-Parser to BLFS.
Update to vim-9.1.0340 (Security Update).
Update to util-linux-2.42 (Security Update).
Update to sqlite-3.53.0.
Update to Python3-3.14.4 (Security Update).
Update to openssl-3.6.2 (Security Update).
Update to linux-6.19.12.
Update to libcap-2.78 (Security Update).
Update to iana-etc-20260409.
So that jhalfs is able to replace it with something
The bug only affects BIOS.  So if the user has not built grub for BIOS,
(s)he won't use BIOS and the sed is not needed; if the user has built
grub for BIOS, the sed should have been already executed when (s)he was
building grub for BIOS.

So in either case, we don't need to repeat the sed in the EFI sections.
Defining UGA as "UGA Draw Protocol" seems an infinite recursion.
…stem

Technically the swap partition does not contain a file system, thus
"formatting" seems puzzling.  And the next section is using a better
terminology "initialized" (copied from the man page of mkswap).
There's only one section (BIOS) before 64-bit UEFI.
Update to wheel-0.47.0 (Python module).
Update to tzdata2026b.
Update to sed-4.10.
Update to packaging-26.2 (Python module).
Update to mpc-1.4.1.
Update to meson-1.11.1.
Update to vim-9.2.0421 (Security Update).
Update to man-pages-6.18.
Update to iproute2-7.0.0.
Update to inetutils-2.8.
Update to expat-2.8.0 (Security Update).
Update to elfutils-0.195 (libelf).
Update to coreutils-9.11.
Update to iana-etc-20260424.
- Use "firmware setup" instead of "BIOS": in the context of the grub
  page "BIOS" almost always means "MBR boot," but here it means the
  firmware setup interface.
- We may manipulate any EFI variable (unless the firmware makes it read
  only) by directly writing the efivarfs, but GRUB needs efibootmgr.
- We don't necessarily install LFS into the same disk where ESP exists.
"UEFI bootloaders" normally stands for things like GRUB or systemd-boot,
instead of firmware.  And it seems we are using "standard" location
instead of "hardcoded" location elsewhere.
Fix the explanation for CSM (here M stands for Module, not Mode).

Keep the terminology "BIOS" soly for "booting via MBR" and use
"firmware" instead for other purposes.
Make the commands more concise, and remove the explicit GCC version
number to make people easier trying a new GCC version.
The kernel itself already guarantees the order of [eou]hci_hcd since
Linux 3.13 (12 years ago!).

Link: https://git.kernel.org/torvalds/c/05c92da0c52494ca
Twice in the past span of a year, Arch Linux has updates to new versions
of software rather quickly that causes LFS to be impossible without
modifications. The first instance was updating to GCC-15.1, of which
that disaster may be repeated with GCC-16.1. The second, most recent,
instance is that they updated to Linux-7. This changed behavior of
rseq, tables, and the ABI feature from 32 to 33, which messes with
Glibc, meaning users will need to use a host that has Linux <= 6.19.x
for now.

This distructive nature needs to be explained to the users to help to
prevent them from using broken hosts.

So many issues have popped up over on Discord and Reddit, and as an
aside and personal vent, I've been getting pretty tired of it each time
Arch pulls off something like this when it clearly isn't time yet.

The Gentoo GUI LiveCD (and Gentoo itself in general) is a good example
of how to treat the software set, and too not update too early.
jlocash2 and others added 30 commits June 2, 2026 16:30
The effect is the same, but systemctl mask is more declarative and
it's better to show an example of that.
In chapter09/systemd-custom.xsl the creation of a symlink for
/etc/systemd/system/tmp.mount was removed.  That makes the warning
about creating the symlink when /tmp is a separate partition
no longer needed.

This commit also corrects a a very minor typo in a comment.
Doing so is not strictly needed but it improves the consistency and
saves some CPU cycles building LFS.  It may also potentially avoid a
build failure in case GCC pass 2 fixincludes breaks a pattern in a
header from some release of glibc or kernel.
Update to binutils-2.46.1.
Update to file-5.48.
Update to less-704.
Update to linux-7.0.12.
Update to openssl-4.0.1.
Update to Python3-3.14.6.
Update to sqlite-autoconf-3.53.2.
Update to vim-9.2.0640 (Security Update).
Fixes #5957
Add tar-1.35-acl_fix-1.patch.
Add Python3-3.14.6 consolidated fixes (Security patch).
Update to attr-2.6.0 (Security Update).
Update to acl-2.4.0 (Security Update).
Update to expat-2.8.2 (Security Update).
Update to iana-etc-20260617.
Update to iproute2-7.1.0.
Update to libffi-3.6.0.
Update to linux-7.1.1.
Update to sqlite-autoconf-3.53.3.
Update to systemd-261.
Update to util-linux-2.42.2 (Security Update).
Update to vim-9.2.0752 (Security Update).
Also copied patch to its location on rivendell
Now the default is to use all available cores (in case we are building
in a cgroup via jhalfs, the number of available cores is counted as the
number of cores assigned to the cgroup).
They are databases for subordinate user and group IDs, which are useful
for rootless containers like podman (well, it's beyond BLFS but maybe
users will install it on BLFS anyway).  If those files exist, useradd,
groupadd, and etc. will automatically manage their contents; otherwise
the user will create them (following the podman doc) and manage their
contents for already created users/groups manually.  Doing so would be
more error-prune than the automatic handling, and also inconsistent (the
new user and groups will have the subordinate IDs automatically, but the
existing user and groups will not).

So for convinence and consistency, create them and let the Shadow
utilities to manage them.
The suffixes are changed in the 2.4.0 release.
Add mpdecimal-4.0.1.
Update to tzdata-2026c.
Update to setuptools-83.0.0.
Update to pkgconf-3.0.2.
Update to meson-1.11.2.
Update to libffi-3.7.1.
Update to linux-7.1.3.
Update to gawk-5.4.1.
Update to findutils-4.11.0.
Those stylesheets selected download urls by seeking some pattern
in their content. Those patterns may need to be adjusted if a new
type of file is downloaded.

We prefer to seek urls inside <para> containing "Download",
which is the norm in chapter 3. The condition is also that those
<para> are in a <listitem>.
In a normal GCC build the top-level Makefile automatically sets the
CXX=xgcc.  And without it the "checking for sin in -lm" probe will fail,
and then GCC will believe the math functions (for example acosf) are not
available and fail to build std.gcm (added since GCC 16) with about a
dozen lines of error messages, which would likely disconcert the user if
spotted.
I don't know why but with the libxml2-2.15.3 shipped with the current
BLFS, --postvalid alone does not produce a meaningful message for some
errors.  For example, with an incorrect xref linkend:

    Creating and cleaning /home/xry111/tmp
    Processing bootscripts...
    Adjusting for revision systemd...
    Validating the book...
    Document /home/xry111/tmp/lfs-html2.xml does not validate
    make: *** [Makefile:125:validate] Error 3

It really says nothing.  Adding --valid produces a meaningful message
before the "does not validate" line:

    /home/xry111/tmp/lfs-html2.xml:2958: element xref: validity error : IDREF attribute linkend references an unknown ID "ch-botable-grub"

I don't really understand this but there seems no harm to just add
--valid.
Technically a binary built with the cross tools for $LFS_TGT should
always be inspected with such a cross tools as well.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

8 participants