Commit Graph

516 Commits

Author SHA1 Message Date
Xi Ruoyao
76b84d2a02
Merge remote-tracking branch 'origin/trunk' into xry111/clfs-ng 2022-12-25 22:07:15 +08:00
David Bryant
7ae2811988 Standardize spelling of "userspace". 2022-12-24 10:00:23 -06:00
Xi Ruoyao
524c5e3e31
Merge remote-tracking branch 'origin/trunk' into xry111/clfs-ng 2022-12-09 15:53:16 +08:00
David Bryant
da6e70fffe Edited Pierre's recent additons,to improve English idiom. Also corrected
capitalization of a title.
2022-11-26 12:26:21 -06:00
Pierre Labastie
295e337887 Add note and warning about /usr/lib64 2022-11-26 09:27:58 +01:00
Xi Ruoyao
b59b371e1f
Merge remote-tracking branch 'origin/trunk' into xry111/clfs-ng 2022-11-19 16:27:13 +08:00
Xi Ruoyao
940769457b
kernfs: reword the description of bind mount
"Duplicated copy" is wrong IMO.  If you copy A to B, B won't be changed
when you modify A.  But if you bind mount A to B, B will reflect any
change made to A.

Again copy something from mount(2):

    A bind mount makes a file or a directory subtree visible at another
    point within the single directory hierarchy.
2022-11-18 13:13:37 +08:00
Xi Ruoyao
2f9498afa4
kernfs: remove a false note
Things are a little tricky:

1. If the host is "modern" (any desktop distro after 2013), the kernel
   supports devtmpfs and the host udev will do adjustments to the
   devtmpfs.  All instances of devtmpfs shares the same content so we'll
   see the work of both the kernel and the host udev in chroot.
2. If the host is old but the kernel supports devtmpfs (i. e. the host
   is not using devtmpfs for its /dev), when we mount devtmpfs on
   $LFS/dev we'll see the work of the kernel in chroot, but not the work
   of udev.  **Building LFS does not need any work of udev.**
3. If the host is very old and the kernel does not support devtmpfs at
   all, we can't mount devtmpfs.

Mounting a devtmpfs will work for 1 and 2, while bind mounting will work
for 1, 2, and 3.  So we use bind mounting here.

I don't want to squash all these details into the book, so just remove
the false statement here.
2022-11-18 12:52:09 +08:00
Xi Ruoyao
f714a8fa3b
chroot: reword how chroot works
Technically chroot command "tells" bash nothing.  It basically calls
chroot("$LFS"), then chdir("/"), then
execve(["/usr/bin/env", "-i", ...]).  The kernel also does not tell bash
something like "hey, the root is now $LFS" but just executes (almost) all
system calls from bash as-if $LFS is /.

The man page of chroot says:

DESCRIPTION
       Run COMMAND with root directory set to NEWROOT.

Just use the same grammar construction here.
2022-11-18 12:40:53 +08:00
David Bryant
ebecd08c05 Corrected grammar, spelling, and idiom in chapter 7. 2022-11-16 13:16:35 -06:00
Xi Ruoyao
d96366111e
clfs-ng: match /dev/shm mount option with trunk 2022-10-01 16:04:46 +08:00
Xi Ruoyao
ef1f48bb2d
clfs-ng: kernfs: remove "chroot" merged from trunk 2022-10-01 16:03:38 +08:00
Xi Ruoyao
dd61c7728a
Merge remote-tracking branch 'origin/trunk' into xry111/clfs-ng 2022-10-01 16:03:20 +08:00
Xi Ruoyao
2bf32ffa3a
kernfs: "device nodes" are in /dev, not "devices"
You cannot throw a NVIDIA GTX 690 into /dev :).
2022-10-01 15:27:19 +08:00
Xi Ruoyao
00588180ee
kernfs: modernize the explanation for bind mounting /dev
If you are using a "modern" distro (with devtmpfs and a modern udev
implementation), a bind mounting is actually not needed because you can
mount devtmpfs anyway.  The only reason for bind mounting is to be
compatible with old host distros where /dev is a directory containing
many static device nodes, or is a tmpfs (not same as devtmpfs) popluated
by bootscript or an old udev (modern udev implementations, including
eudev and systemd-udev used by LFS, strictly requires a devtmpfs on
/dev).

So update the explanation to match the status quo.
2022-10-01 15:14:22 +08:00
Xi Ruoyao
a8f3814a7b
kernfs: technically, they are not needed for chroot
Chroot command itself does not require kernel VFS mounted. You can mount
/proc, /sys, and /run after entering chroot with
"mount -v -t proc proc /proc" etc.  For /dev, if the host kernel
supports devtmpfs, you can also mount /dev in chroot with
"mount -v -t devtmpfs devtmpfs /dev".  Even if the host does not support
devtmpfs, it's still possible to mount /proc in chroot, then use
"mount --bind /proc/1/dev /dev".

It's just LFS editors decide to mount them before chroot.  So reword
some untrue assertions.
2022-10-01 13:35:59 +08:00
David Bryant
36cb08fbf0 Tweaked English idiom and edited for style. 2022-09-30 15:49:41 -05:00
David Bryant
29526d35ef Made grammatical corrections and stylistic changes to chapter 7.3.
Added clarification; the virtual file systems expose certain information
to programs in user space; chroot won't work without them.
2022-09-30 12:27:55 -05:00
David Bryant
52ddd6c033 Clarify some things in Intro to chroot; simplify some verbiage. 2022-09-30 11:24:14 -05:00
Xi Ruoyao
259794e02a
clfs-ng: kernfs: remove /dev/shm instruction merged from trunk
We've already added the command for /dev/shm in commit febac51.
2022-09-26 22:04:24 +08:00
Xi Ruoyao
0ea3431d66
Merge remote-tracking branch 'origin/trunk' into xry111/clfs-ng 2022-09-26 22:03:23 +08:00
Bruce Dubbs
01ecba7b30 Fix unmounting instruction in 7.13.2. Backup 2022-09-22 10:44:47 -05:00
Bruce Dubbs
16cd09633e Adjust instructions for /dev/shm when creating virtual filesystems.
Some host create /dev/shm as a tmpfs.  Some have is as
a symlink to a location in another directory.  This
change handles both cases.

The change to the sysV bootscripts now creates /dev/shm
as a separate tmpfs from /run.  This makes LFS sysV and
systemd versions treat /dev/shm the same.
2022-09-20 12:20:58 -05:00
Xi Ruoyao
6c952e3e40
Merge remote-tracking branch 'origin/trunk' into xry111/clfs-ng 2022-09-19 14:38:55 +08:00
Xi Ruoyao
3d65730e22
cleanup: rephrase description for .la removal
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.
2022-09-19 14:12:17 +08:00
Xi Ruoyao
2e9e5b43c5
add <literal> to make commands for temp /etc/hosts and final /etc/pip3.conf looking better 2022-09-14 11:52:01 +08:00
Xi Ruoyao
fb66c4c583
some http -> https changes 2022-09-05 09:52:05 +08:00
Xi Ruoyao
4059afc5c9
Merge remote-tracking branch 'origin/trunk' into xry111/clfs-ng 2022-07-02 12:32:04 +08:00
Xi Ruoyao
b5a316b060
texinfo: remove unneeded sed
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)
2022-07-02 11:31:13 +08:00
Xi Ruoyao
a08f031960
add fool-proof protection preventing exiting from init shell
Here "fool" means myself :).
2022-07-01 11:16:42 +08:00
Xi Ruoyao
f7c3359609
Merge branch 'trunk' into xry111/clfs-ng 2022-06-26 19:17:17 +08:00
Xi Ruoyao
9b73f94474
revise the note about "already created" directories
Q: Why not just move the note after the creation of root-level
directories?
A: Root-level directories may be already created as well: if a
root-level directory is a mount point it should have been created in
section "Mounting the New Partition".

Reported-by: Vladimir Pertsev <info@linuxfromscratch.ru>
2022-05-30 18:30:50 +08:00
Xi Ruoyao
dd7a29ed24
Merge branch 'trunk' into xry111/clfs-ng 2022-05-02 16:05:51 +08:00
Xi Ruoyao
7c862eac22
GID 5 (for tty) is also special 2022-05-02 16:02:10 +08:00
Xi Ruoyao
0414633793
minor fix for 65534 explanation: it is also used for "unmapped" groups 2022-05-02 15:42:52 +08:00
Xi Ruoyao
8469f02115
make /etc/group sorted by GID 2022-05-02 15:39:45 +08:00
Xi Ruoyao
14de4552bf
explain the usage of 65534 2022-05-02 15:36:03 +08:00
Bruce Dubbs
8cab730a5b Merge branch 'trunk' of git.linuxfromscratch.org:lfs into trunk 2022-04-30 09:40:46 -05:00
Bruce Dubbs
813ab55675 Package updates and nobody uid change.
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.
2022-04-30 09:38:48 -05:00
Xi Ruoyao
b1df1d79d5
Merge branch 'trunk' into xry111/clfs-ng 2022-04-22 12:39:15 +08:00
Xi Ruoyao
e286d8db14
decorate the references to root and lfs user
The references already correctly decorated are not changed because "if
it's not broken don't fix it".
2022-04-21 14:12:43 +08:00
Xi Ruoyao
d6796c80dd
Merge branch 'trunk' into xry111/clfs-ng 2022-03-26 23:10:13 +08:00
Bruce Dubbs
bcb20b4701 Speling 2022-03-24 12:11:57 -05:00
Xi Ruoyao
6ebaf1e080
Merge branch 'trunk' into xry111/clfs-ng 2022-03-15 21:07:53 +08:00
Xi Ruoyao
d35dc01e3c
clfs-ng: create symlink /dev/fd
See "Compulsory links" in linux/Documentation/admin-guide/devices.rst.
2022-03-15 19:12:43 +08:00
Bruce Dubbs
51a5442f16 Fix pdf presentation issues and some misc issues
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.
2022-03-14 13:08:40 -05:00
Xi Ruoyao
ac47b252fe
kernfs: "Udev" -> "the kernel and Udev"
devtmpfs already contains many device nodes created by the kernel once
it's mounted, and Udev creates or renames nodes based on kernel work.
2022-03-08 15:10:04 +08:00
Xi Ruoyao
940c8495ae
kernfs: remove static node creation, and update the text
This is to match the "new" way of device handling with devtmpfs (already
widely used in recent ten years).

In a normal booting process, the kernel mounts devtmpfs at very early
stage.  So the static nodes won't be used at all.  The only situation
where the kernel can't mount devtmpfs is "/dev is missing", but it means
those two static nodes can't exist anyway, and a normal LFS system
(without initramfs) won't boot in such a bad situation.

Removing static /dev/console and /dev/null may cause trouble for those
people or scripts chroot into LFS tree without mounting devtmpfs.  But
entering a chroot with only console and null in /dev is already
problematic.  For a reference, If a systemd service is started with
PrivateDevices=true, systemd will create 18 nodes and symlinks to form a
"minimal" /dev.
2022-03-08 01:25:06 +08:00
Xi Ruoyao
964103cbdc
Merge branch 'trunk' into xry111/clfs-ng 2022-03-02 21:15:18 +08:00
Xi Ruoyao
459d4936ae
fix GCC PR100017 and enable libstdc++ for pass 2
This is the issue preventing us from cross-compiling libstdc++ in
Chapter 6.  By fixing this issue we can remove a seperate pass 2 for
libstdc++ and simplify the instruction.

The upstream fix will be released in 11.3 and 12.0, so we can remove the
first sed upgrading gcc next time.
2022-02-27 23:36:55 +08:00