Compare commits

...

1525 Commits
r11.0 ... trunk

Author SHA1 Message Date
Thomas Trepl
ec7e850bd0 Fix typo in date 2025-06-16 10:34:42 +02:00
Bruce Dubbs
8d7dc4ebea Package updates.
Update to meson-1.8.2.
Update to linux-6.15.2.
Update to libffi-3.5.1.
Update to iproute2-6.15.0.
Update to Python-3.13.5.
2025-06-14 12:26:22 -05:00
Pierre Labastie
5e4ff8cb2e Fix "Too many levels of symbolic links" in chapter 8 ncurses
The problem is that TIC_PATH is nor honored anymore in chapter
6, so that tic from the host is used to create the terminfo
database in chapter 6. The problem is that old versions of
tic create symlinks in the database, while newer versions
create hardlinks. Since we use a DESTDIR install in chapter 8
(with a recent version of ncurses, so with hardlinks), and copy
it in place with cp -a, then it seems that copying hardlinks to
symlinks. If an old version of tic has been used in chapter 6,
this copies hardlinks to symlinks, which creates symlinks
pointing to themselves (cp bug?).

Anyway, the solution is to copy the auxilliary tic built
in chapter 6 to $LFS/tools/bin (suggestion by Xi Ruoyao).
Now, there is no need to set TIC_PATH or whatever because this
tic is in the PATH.

Bug first reported by Marcin Dulak. Analysis with the help of
Bruce Dubbs and Thomas Trepl.

Fixes https://wiki.linuxfromscratch.org/lfs/ticket/5744
2025-06-13 15:52:08 +02:00
Bruce Dubbs
5544caf28e Typos 2025-06-05 11:27:40 -05:00
Xi Ruoyao
7eb51d8123
libpipeline: Remove make check
Those tests need libcheck, thus make check is now a no-op.
2025-06-05 12:29:26 +08:00
Zeckmathederg
0eaba084ff Changelog: Fix wrong link. 2025-06-04 15:00:56 -06:00
Bruce Dubbs
61d0fb219d Merge branch 'trunk' of git.linuxfromscratch.org:lfs into trunk 2025-06-04 13:57:23 -05:00
Bruce Dubbs
e481799cdf Package updates.
Update to ncurses-6.5-20250531.
Update to readline-8.3-rc2.
Update to bash-5.3-rc2.
Update to Python-3.13.4.
2025-06-04 13:56:37 -05:00
Xi Ruoyao
c24d5641af
ncurses: Fix the shared lib file name referenced in text 2025-06-03 17:03:08 +08:00
Xi Ruoyao
1b223fbe43
python: Also add --without-static-libpython to the temporary installation
Without it, in the final system
/usr/lib/python3.13/config-3.13-$triple/libpython3.13.a is a remnant
from chapter 7 instead of being absent, defeating our will to save
space.
2025-06-01 21:49:48 +08:00
Xi Ruoyao
455724dc34
patches: Fix a typo 2025-06-01 12:54:01 +08:00
Xi Ruoyao
208415b81b
reboot: Remove references to files we no longer create
And note /etc/resolv.conf is optional for the systemd revision.
2025-06-01 12:26:06 +08:00
Xi Ruoyao
30ec5ae0ea
gcc-pass2: Remove empty line 2025-05-31 19:27:05 +08:00
Xi Ruoyao
6c311ec76f
changingowner: Exclude symlinks from chown
Make this consistent with addinguser.

Applying chown to a symlink actually affects its target, and here the
targets are in $LFS/usr and already covered.
2025-05-31 19:26:40 +08:00
Bruce Dubbs
3975ea8c7e Current thanges to trunk:
Update to iana-etc-20250519.
Update to vim-9.1.1418.
Update to kbd-2.8.0.
Update to systemd-257.6.
Update to setuptools-80.9.0.
Update to meson-1.8.1.
Update to automake-1.18.
Update to gcc-15.1.0.
Update build instructions to accomodate gcc-15.
Update to less-678.
Update to readline-8.3-rc1.
Update to bash-5.3-rc1.
2025-05-31 04:28:18 -05:00
Bruce Dubbs
eb4213206a Merge branch 'gcc15' into trunk 2025-05-31 04:25:06 -05:00
Bruce Dubbs
a6bc44cc0f Package updates.
Update to iana-etc-20250519.
Update to vim-9.1.1418.
Update to kbd-2.8.0.
2025-05-31 04:23:53 -05:00
Bruce Dubbs
14b85031e4 Package updates.
Update to systemd-257.6.
Update to setuptools-80.9.0.
Update to meson-1.8.1.
Update to automake-1.18.

Add Python-3.13.3-security_fixes-1.patch
Add coreutils-9.7-upstream_fix-1.patch
Add perl-5.40.2-upstream_fix-1.patch
2025-05-30 11:00:14 -05:00
Bruce Dubbs
6a04e2420d Add some spaces 2025-05-24 07:28:03 -05:00
Xi Ruoyao
722ec5bf97
glibc: Reuse DIR in upgrade instruction and unset it afterwards 2025-05-23 15:58:57 +08:00
Xi Ruoyao
a45bbbc391
Drop the min-kernel alignment hack
Someone is really insistant on "you cannot have any extra whitespace" so
the hack will just not work.  Let's drop it and simply move the
--enable-kernel= switches to the last line.
2025-05-23 12:23:43 +08:00
Bruce Dubbs
37c303637d Adjust spacing for gcc-pass2. 2025-05-22 13:09:21 -05:00
Bruce Dubbs
68528292e6 Changes for gcc15. 2025-05-21 16:46:52 -05:00
Bruce Dubbs
fd69440977 Package updates.
Update to setuptools-80.7.1.
Update to man-pages-6.14.
Update to man-db-2.13.1.
Update to m4-1.4.20.
Update to linux-6.14.6.
Update to gettext-0.25.
2025-05-15 09:42:51 -05:00
Bruce Dubbs
de932d6de5 Fix alignment. 2025-05-15 08:20:18 -05:00
Bruce Dubbs
ac5a955c84 Restore openssl currency. 2025-05-12 10:50:04 -05:00
Bruce Dubbs
3dc11a77cf Fix currency fo ropenssl. 2025-05-11 23:38:57 -05:00
Xi Ruoyao
cbdfdd32fd
stripping: Decorate with XML labels 2025-05-02 12:41:33 +08:00
Xi Ruoyao
7a6cafbe95
stripping: Switch to zstd to compress debug info
Now BLFS has valgrind-3.25.0 which supports zstd-compressed debug
section.
2025-05-01 21:35:25 +08:00
Bruce Dubbs
9056a5ccae Merge branch 'trunk' of git.linuxfromscratch.org:lfs into trunk 2025-04-30 16:00:18 -05:00
Bruce Dubbs
86d976a38c Package updates.
Update to vim-9.1.1353.
Update to setuptools-80.0.1.
Update to packaging-25.0.
Update to meson-1.8.0.
Update to linux-6.14.4.
Update to iana-etc-20250407.
Update to gperf-3.3.
Update to elfutils-0.193.
2025-04-30 15:59:08 -05:00
Bruce Dubbs
f6dbeeb1d3 White space reduction in instruction blocks. 2025-04-30 12:51:03 -05:00
Xi Ruoyao
a9138980ac
dependencies: Packaging needs Flit-core to be built
Quote from pyproject.toml:

    [build-system]
    requires = ["flit_core >=3.3"]
    build-backend = "flit_core.buildapi"
2025-04-21 16:49:39 +08:00
Zeckmathederg
88ee06773d packaging: Fix Contents listings. 2025-04-20 13:18:55 -06:00
Zeckmathederg
679cc02c59 dependences: Update test suite deps.
This updates dependencies for Less, Groff, and Psmisc.
2025-04-20 13:08:27 -06:00
Bruce Dubbs
cc36837f7e Merge branch 'trunk' of git.linuxfromscratch.org:lfs into trunk 2025-04-15 23:07:23 -05:00
Bruce Dubbs
3d1e81b5a8 Change stripping to use --strip-debug
When we use -strip-unneeded it removes some symbols that are needed in static
libraries that may be needed in addition to debugging symbols.  Changing the
stripping to the more conservative --strip-debug retains thise symbols.

In the case of libc.a the unstripped file size is 22.4 MB.  Using
--strip-debug reduces the file size by 74 percent to 5.9 MB.

Using --strip-unneeded only reduces the file further by 89 KB,
so any gain is relatively trivial.
2025-04-15 22:53:28 -05:00
Bruce Dubbs
134786bcb7 Merge branch 'trunk' of git.linuxfromscratch.org:lfs into trunk 2025-04-15 10:11:42 -05:00
Bruce Dubbs
97aaa219af Update currency adding 'packaging.' 2025-04-15 10:11:29 -05:00
Xi Ruoyao
c63e26b296
packaging: Captialize the title 2025-04-15 20:44:14 +08:00
Xi Ruoyao
1a2d3f5588
whatsnew: Don't hard code version of packaging 2025-04-15 20:42:11 +08:00
Xi Ruoyao
fb602744bb
Revert "Note that gperf tests only work with -j1."
This reverts commit eb43115dec.

Per https://savannah.gnu.org/bugs/?53208 the issue is fixed.  I tried
-j18 multiple times and observed no issues.
2025-04-15 19:47:48 +08:00
Xi Ruoyao
abd4750c89
diffutils: Use an easier work around for the strcasecmp check and improve the explanation 2025-04-15 18:17:33 +08:00
Xi Ruoyao
cb6741b0fa
general: Use "x.y-systemd" instead of "stable-systemd" in BLFS URL for release
"stable-systemd" is the latest release, but we want to use the same
version as the LFS book here.
2025-04-15 18:17:23 +08:00
Zeckmathederg
9103be9005 chapter06/Diffutils: Elaborate what the sed does. 2025-04-14 18:02:27 -06:00
Bruce Dubbs
d470cdb21c Package updates.
Update to libcap-2.76.
Update to perl-5.40.2 (Security update).
Add packaging-24.2 (Python module). Needed for wheel.
Update to xz-5.8.1.
Update to wheel-0.46.1 (Python Module).
Update to sysklogd-2.7.2.
Update to Python3-3.13.3.
Update to openssl-3.5.0.
Update to meson-1.7.2.
Update to linux-6.14.2.
Update to libffi-3.4.8.
Update to iproute2-6.14.0.
Update to gzip-1.14.
Update to grep-3.12.
Update to gperf-3.2.1.
Update to gawk-5.3.2.
Update to diffutils-3.12.
Update to coreutils-9.7.
2025-04-14 13:10:11 -05:00
Xi Ruoyao
f3e6b8964f
make: Remove --without-guile from chapter 6
This seems just a remnant from the pre-cross-chap5 era.  Now with the cross-
toolchain the build system cannot find guile headers and libraries, thus
guile should be disabled by default.

I've also tried this on a host distro with guile installed.
2025-04-13 12:45:23 +08:00
Xi Ruoyao
32a9d4b35b
Remove check (#5650) 2025-04-13 12:45:19 +08:00
Bruce Dubbs
780e368072 Merge branch 'trunk' of git.linuxfromscratch.org:lfs into trunk 2025-04-08 12:50:38 -05:00
Bruce Dubbs
7ea7a3b3d3 Change expat url and fix a grammar issue. 2025-04-08 12:50:25 -05:00
Zeckmathederg
c53c0efa0a whatsnew: Comment out None as other entries are uncommented. 2025-04-07 14:44:40 -06:00
Xi Ruoyao
9bad19ff57
kmod: Drop --sbindir=/usr/sbin
The autoconf-based build system of kmod needs this, but we've switched
to meson where this is the default.

Also it's to be decided if we should put "lsmod" back to bin.
2025-04-02 20:51:17 +08:00
Xi Ruoyao
d116c1bdb0
whatsnew: Align flit-core entry with the package page title 2025-04-02 17:55:34 +08:00
Bruce Dubbs
a05804f155 Package updates.
Update to vim-9.1.1263.
Update to iana-etc-20250328.
Update to xz-5.8.0.
Update to util-linux-2.41.
Update to tzdata-2025b.
Update to shadow-4.17.4.
Update to setuptools-78.1.0.
Update to patch-2.8.
Update to mpfr-4.2.2.
Update to kmod-34.2.
Update to gdbm-1.25.
Update to flit_core-3.12.0.
Update to expat-3.7.1.
2025-03-31 11:13:38 -05:00
Bruce Dubbs
73733138d7 Typo 2025-03-28 12:25:49 -05:00
Xi Ruoyao
8cd3ab533d
toolchaintechnotes: Typos
Just found the typos translating my own words :(.
2025-03-28 00:11:16 +08:00
Xi Ruoyao
576a368232
glibc: Fix a full stop vs. quote issue in pass 1 2025-03-27 23:13:58 +08:00
Xi Ruoyao
e55a481032
gcc: Use the same style for the sanity check compile command as glibc pass1
There seems no valid reason to use a different style here.
2025-03-27 23:11:52 +08:00
Xi Ruoyao
87e90fb633
glibc: Make the sanity check more complete for pass 1
Fixes #5651.
2025-03-27 23:11:52 +08:00
Xi Ruoyao
7e4fd2e198
glibc: Drop --with-headers in pass 1
I cannot see why this is ever needed.  The default is "the compiler
default" which should be correct as the compiler has been configured
--with-sysroot.  And the explanation for this switch is just repeating a
common misunderstanding.  In fact glibc **never** attempts to figure out
what features the kernel has from the headers.  Instead it depends on
the kernel-features.h files in the source tree and the --with-kernel
value to determine the kernel features that it can rely on.
2025-03-27 21:04:46 +08:00
Xi Ruoyao
5e3bef69d1
toolchaintechnotes: Large overhaul
- Document the autoconf behavior about "the cross-compilation mode," to
  explain the necessity of --build=$(path/to/config.guess) added for
  #5304.
- Mention the libtool fallout regrading cross-compilation.
- Remove the explanation for CC_FOR_TARGET, which is already removed
  much earlier.
- Note the cross-toolchain cannot be used anymore after installing gcc
  pass 2.
- "Stage 3" (i.e. the final LFS system) is NOT optional.
2025-03-27 16:07:16 +08:00
Pierre Labastie
7cd3a3fec1 Fix displaying note numbers also in pdf 2025-03-17 13:26:58 +01:00
Xi Ruoyao
a4b4001f03
changelog: Add revision attributes for sysklogd and dbus 2025-03-15 21:50:05 +08:00
Bruce Dubbs
d85559a14e Merge branch 'trunk' of git.linuxfromscratch.org:lfs into trunk 2025-03-14 15:55:05 -05:00
Bruce Dubbs
461741b243 Update packages for mid-March 2025.
Update to vim-9.1.1202.
Update to iana-etc-20250304.
Update to sysklogd-2.7.1.
Update to setuptools-76.0.0.
Update to pkgconf-2.4.3.
Update to man-pages-6.13.
Update to linux-6.13.7.
Update to libcap-2.75.
Update to kmod-34.1.
Update to jinja2-3.1.6.
Update to expat-2.7.0.
Update to dbus-1.16.2.
2025-03-14 15:53:55 -05:00
Xi Ruoyao
42eaacedbc
pkgmgmt: Add the definition of "library name" as a footnote 2025-03-12 21:00:55 +08:00
Pierre Labastie
e2789b4c66 stylesheets: fix generation of footnotes
There was two problems:
- the sect1 template did not process the footnote
- footnote processing needed to use a template matching
  footnote/para[1], but we had a template matching para
  at a higher precendence level.
So:
- call process.footnotes at the end of the sect1 template
- Add a templates matching footnote/para[1] at the same import
  level as the template matching para (this just call the original
  template)
We also add a priority 1 to the sect1 template in chunk-code.xsl,
although it is not strictly necessary. This is what upstream
recommends...
2025-03-11 15:45:14 +01:00
Xi Ruoyao
a2bf74a9b5
More info about "deploying LFS" 2025-03-09 13:08:32 +08:00
Xi Ruoyao
ed2611fa6f
glibc: Remove ja_JP.SJIS (#5669) 2025-03-09 11:38:29 +08:00
Bruce Dubbs
8145eff136 Cleanup after 12.3 release. 2025-03-07 14:52:09 -06:00
Bruce Dubbs
4200e09617 Remove old change entries and update whatsnew. 2025-03-04 13:55:09 -06:00
Bruce Dubbs
cbe6deea00 Revert "Update for LFS-12.3."
This reverts commit aa990ecf0a.
2025-03-04 13:18:12 -06:00
Bruce Dubbs
aa990ecf0a Update for LFS-12.3. 2025-03-04 12:01:48 -06:00
Pierre Labastie
00d6cce3cd hangelog: fix ticket # for recent vim update 2025-03-04 14:29:02 +01:00
Bruce Dubbs
e9c3828c53 Update to vim-9.1.1166 (Security Update). 2025-03-02 20:18:14 -06:00
Bruce Dubbs
d35857c7bb Package updates and mic fixes.
Update to zstd-1.5.7.
Update to systemd-257.3.
Update to shadow-4.17.3.
Update to setuptools-75.8.1.
Update to linux-6.13.4.
Update to kmod-34.
Update to inetutils-2.6.
Update to gettext-0.24.
Update to flit_core-3.11.0.

Remove $LFS/{bin,lib,sbin} from the chown commands
  This applies to 'Section 4.3. Adding the LFS User'

Remove static library in sysklogd
  Accomplished with adding --disable-static to the configure options.
2025-02-27 11:07:22 -06:00
Zeckmathederg
49b6a5ff00 inetutils: Remove extra :. 2025-02-24 18:07:05 -07:00
Bruce Dubbs
2b2e9cddbc Update to man-pages-6.12. 2025-02-24 11:53:00 -06:00
Xi Ruoyao
514c9e71b0
chapter08: Remove outdated test suite SBU values
They were measured when we used -j1 and/or had not running the test
suite with parallel jobs yet.  Now the values are even larger than the
total SBU including the test time, so they are just ridiculous.
2025-02-23 15:49:45 +08:00
Xi Ruoyao
378b51e18e
dependencies: Drop kbd's dependency on check
The dependency has been dropped since the 2.1.0 release.  It seems
nothing uses check in LFS as at now, maybe we should consider moving it
to BLFS or even just removing it.

Link: https://github.com/legionus/kbd/commit/6ff5f4e64c50
2025-02-20 02:43:11 +08:00
Xi Ruoyao
65f0a28feb
e2fsprogs: Document test failure with non-ext fs
Someone building LFS on btrfs reported this, and I can reproduce.
2025-02-19 23:31:55 +08:00
Xi Ruoyao
28a01fdcab
systemd: Document test-copy failure (I/O congestion) 2025-02-19 23:30:18 +08:00
Xi Ruoyao
6f76f192b9
gcc: Document tsan failures with some host distros 2025-02-19 23:19:32 +08:00
Xi Ruoyao
5616cb8ee9
Package update
- Update to man-pages-6.11 (#5646)
- Update to vim-9.1.1122 (#4500)
2025-02-19 19:30:43 +08:00
Xi Ruoyao
79fccff18f
gen-changelog: Fix HTTP 403 accessing trac
Use the new anonymous ticket list URL.
2025-02-19 19:18:52 +08:00
Xi Ruoyao
613790d1fa
vim: Update curl/wget test removal
They've renamed the test file at some time point between 9.1.1071 and
9.1.1106.
2025-02-16 17:55:54 +08:00
Xi Ruoyao
5ba41a882b
glibc: Fix another flaw in update process regarding "fixed" includes 2025-02-14 21:52:51 +08:00
Xi Ruoyao
34202ef44a
vim: The tests requiring wget/curl have been removed with sed 2025-02-14 04:13:13 +08:00
Xi Ruoyao
36f2a2dd53
kernel: Regenerate configuration with Linux 6.13.1 2025-02-14 04:11:11 +08:00
Bruce Dubbs
dfd69d56e7 Speling 2025-02-13 11:11:01 -06:00
Bruce Dubbs
4bc4b26d5a Restrict tcl currency to version 8 for now. 2025-02-12 19:05:22 -06:00
Bruce Dubbs
df98180f35 Remove binutils patch on whatsnew. 2025-02-12 16:36:17 -06:00
Bruce Dubbs
d3abecc973 Package updates.
Update to vim-9.1.1106.
Update to diffutils-3.11.
Update to libffi-3.4.7.
Update to linux-6.13.2.
Update to Python3-3.13.2.
Update to sysvinit-3.14.
2025-02-12 13:54:18 -06:00
Xi Ruoyao
fd0a944d6d
procps: Add --enable-watch8bit 2025-02-12 17:43:45 +08:00
Xi Ruoyao
581ee1a9e8
ninja: Add --verbose
Some user using a slow system complained (off-list) to me that the long
no-output period seemed like a hang (esp. combined with the warning
about missing re2c).

Also explain the "basic functionality test" is already done, so no need
to run "./ninja" again for testing.
2025-02-10 21:31:44 +08:00
Xi Ruoyao
611c87328f
glibc: Update total test number for 2.41 release 2025-02-10 18:32:32 +08:00
Xi Ruoyao
cb1b56efce
coreutils: Remove outdated known failures
They seem fixed with 9.6.
2025-02-08 09:50:39 +08:00
Xi Ruoyao
3f2235c907
coreutils: Better explain the autoreconf and automake commands 2025-02-08 09:17:21 +08:00
Xi Ruoyao
94dc9c26d2
Revert "Fix cmds installing python docs (permissions)"
This reverts commit dc8572f241.

The permission issue seems fixed upstream: after I untar the tarball
with --no-same-owner --no-same-permissions as root, all files are 644
and all directories are 755 (proven via find -type f -not -perm 644 and
find -type d -not -perm 755).
2025-02-08 08:42:47 +08:00
Xi Ruoyao
40ca48d44f
binutils: Drop stale references to gold
I'm surprised --enable-gold doesn't cause an error when the tarball does
not contain gold.
2025-02-06 10:45:41 +08:00
Xi Ruoyao
5112b5ee91
glibc: upgrade: Note that "fixed" headers may need to be removed 2025-02-04 13:36:03 +08:00
Bruce Dubbs
4f401fb372 Package updates.
Update to vim-9.1.1071.
Update to iana-etc-20250123.
Update to binutils-2.44.0.
Update to coreutils-9.6.
Update to e2fsprogs-1.47.2.
Update to glibc-2.41.
Update to iproute2-6.13.0.
Update to libxcrypt-4.4.38.
Update to linux-6.13.1.
Update to man-pages-6.10.
Update to meson-1.7.0.
Update to perl-5.40.1.
Update to tcl8.6.16.
Update to tzdata2025a.
Update to xz-5.6.4.
2025-02-02 20:02:39 -06:00
Xi Ruoyao
aef7c6efd6
acl: Run the test suite
There's only one test failure due to the temporary coreutils, thus I
don't think it's a reason strong enough to skip the entire test suite.
2025-02-01 23:48:59 +08:00
Xi Ruoyao
ce20367007
stages: "Changing Ownership" shouldn't be executed resuming an interrupted build
Before we added "--from lfs", it'll break a half-baken LFS system.

After we added "--from lfs", it has no effect.
2025-02-01 20:12:49 +08:00
Xi Ruoyao
50a0916dea
vim: Remove tests requiring curl or vim
Since vim-9.1.0859, some tests need curl or wget or they fail.
2025-01-26 17:31:00 +08:00
Xi Ruoyao
b05b2270d3
libtool: Remove outdated known failures
The test results seem clean in the LFS chroot now.
2025-01-26 12:14:32 +08:00
Xi Ruoyao
9eccb6170d
glibc: Unset tz as well as ZONEINFO after installing tzdata 2025-01-26 00:55:43 +08:00
Xi Ruoyao
ff4a32ec01
aboutlfs: Fix umask expect output
On a latest LFS system the output is 0022.  It seems depending on host
shell version.
2025-01-25 22:15:31 +08:00
Bruce Dubbs
2aaea1389b Make pip3 commands consistent. 2025-01-18 21:09:08 -06:00
Zeckmathederg
59cc122efa changelog: Change ticket link to point to the right ticket. 2025-01-15 23:56:42 -07:00
Bruce Dubbs
ea9df10321 Package updates.
Update to vim-9.1.1016.
Update to iana-etc-20250108.
Update to util-linux-2.40.4.
Update to sysvinit-3.13.
Update to sysklogd-2.7.0.
Update to shadow-4.17.2.
Update to setuptools-75.8.0.
Update to linux-6.12.9.
Update to gettext-0.23.1.
2025-01-14 15:23:27 -06:00
Xi Ruoyao
7622257836
Move fixup for $LFS owner/permssion to mounting the new partition 2025-01-13 11:25:01 +08:00
Douglas R. Reno
bb5bf3b9d8 Minor typo fixes 2025-01-12 12:13:06 -06:00
Xi Ruoyao
016ba17be9
procps: Remove the systemd revision specific workaround
The issue is fixed in procps-ng-4.0.5.
2025-01-12 13:20:45 +08:00
Xi Ruoyao
39679232f7
Move the explanation of umask 022 from settingenviron to aboutlfs
Explain it once we use it.  Also fix an error in the text (we don't make
files executable, we only make directories searchable).
2025-01-12 11:56:30 +08:00
Xi Ruoyao
625969c2de
aboutlfs: Also mention umask in addition to export LFS= for bash profiles 2025-01-12 11:53:48 +08:00
Xi Ruoyao
68b56a3c33
creatingminlayout: Set the owner and permission of $LFS
The host distro may have an insane default for root_owner and/or
root_perms in /etc/mke2fs.conf, so let's make it sane on our own.  Note
that MKE2FS_CONFIG=/dev/null makes mke2fs refuse to run so we cannot
suppress the host mke2fs.conf.
2025-01-11 23:34:23 +08:00
Xi Ruoyao
cacb470c97
aboutlfs: Set umask to 022
I know some distros are using a different default and we are having
reports of some mysterious permission issue via lfs-support those I
highly suspect as some umask issue.  Let's just explicitly set it (like
setting $LFS) to protect us from such distros without changing every
"mkdir -pv" to "install -vdm755".
2025-01-11 23:34:14 +08:00
Douglas R. Reno
389d8f53db Changelog: mark Python 3.13.1 as a security update 2025-01-03 11:59:32 -06:00
Pierre Labastie
d11e5762bc pip3 wheel should be remap="make" 2025-01-03 12:21:11 +01:00
Pierre Labastie
6528f75720 Use <userinput> as elements for lfs user and group
The preceding commit uses <systemitem> elements to mark the lfs
user and group in commands. Unfortunately, this change the
rendering in html, because now lfs appears in an italic font.
Using <userinput remap='group'> or <userinput remap='user'> allows
parsing the XML for jhalfs, but does not change the html rendering.
2025-01-02 09:12:52 +01:00
Xi Ruoyao
8e8be5f129 Use lfs-user entity in commands
I still think it's cleaner for jhalfs to just use a different user name
(for example "lfs1") if the user lfs already exists.  This will allow
jhalfs to easily use a different user name.
2025-01-02 09:12:52 +01:00
Bruce Dubbs
f1a5ce3860 Update to shadow-4.17.1. 2024-12-31 20:34:57 -06:00
Douglas R. Reno
7822686752 dbus: remove a duplicate ninja command 2024-12-31 14:56:53 -06:00
Douglas R. Reno
93d4efbcd6 Changelog: mark Jinja2 as a security update 2024-12-31 13:54:22 -06:00
Douglas R. Reno
c1a3c0292a Package updates:
Update to dbus-1.16.0 (systemd only)
Update to libxcrypt-4.4.37
2024-12-31 13:53:30 -06:00
Bruce Dubbs
7a01f6150f Package updates.
Update to iana-etc-20241220.
Update to texinfo-7.2.
Update to sysvinit-3.12.
Update to shadow-4.17.0.
Update to procps-ng-4.0.5.
Update to meson-1.6.1.
Update to linux-6.12.7.
Update to kbd-2.7.1.
Update to jinja2-3.1.5.
2024-12-31 11:12:12 -06:00
Xi Ruoyao
bfb0cbae18
os-release: Automatically update RELEASE_TYPE 2024-12-21 11:56:57 +08:00
Douglas R. Reno
6913a42bff Update the systemd man pages to 257. 2024-12-20 15:17:54 -06:00
Douglas R. Reno
86a50f243a /etc/os-release: Add in the RELEASE_TYPE field.
This field was introduced with systemd-257. For development books, we'll
use "development" here, but when we do the next release we should change
this to say "stable".
2024-12-20 15:15:07 -06:00
Douglas R. Reno
33b3a04e4e Revert "systemd: Update the test suite failures list for 257."
This reverts commit 8f493a6377.

When I was building LFS, I somehow forgot to mount /dev/sdb7 to
/mnt/lfs on my system. I ended up chrooting into /mnt/lfs, and it was a
directory, not a filesystem.

This happens from time to time, not sure why I did it this time!

The tests that I had marked as failed no longer fail, but at the same
time, now test-namespace does. Let's undo this commit...
2024-12-19 15:05:20 -06:00
Douglas R. Reno
8f493a6377 systemd: Update the test suite failures list for 257. 2024-12-19 14:43:05 -06:00
Xi Ruoyao
e5955cd62a
gettext: Fix build issue with system libxml2
The upstream fix is explicitly checking libxml2 version so it's not
practical to be turned into a sed.  But I don't want to upload another
patch just for such a "temporary" issue (as it'll be fixed for 0.23.1
anyway).  This alternative fix relies on:

1. The fact that the return type of xmlCtxtGetLastError and the arg type
   of xmlStructuredErrorFunc are changed in the same commit
   61034116d0a3 ("error: Make more xmlError structs constant").
2. GCC supports typeof(expr) to get the type of expr w/o really
   evaluating it.

So it should have the same effect as the upstream fix.

Tested with both --with-included-libxml2 and --without-included-libxml2
on BLFS.
2024-12-18 10:52:00 +08:00
Xi Ruoyao
f8bdaa6ff3
systemd: Sync a sed with udev in sysv revision
Let's make the two revisions more consistent.
2024-12-18 10:42:01 +08:00
Xi Ruoyao
8f5b4a7910
gettext: Remove useless sed
The second expression

    's/xmlError *err/const &/'

does nothing, because " *" actually matches zero, one, or several white
spaces, not a white space and an asterisk.

And the first expression

    '/libxml\/xmlerror.h/i #include <libxml/xmlversion.h>'

includes a header, but we are not using anything in the header.

The intention of the sed command is fix a compatibility issue with
system libxml, but LFS does not have a system libxml so the fix is not
needed for LFS.  And, if we just fix up the second expression to

    's/xmlError \*err/const &/'

making it actually work, it'll cause a FTBFS with shipped libxml (used
in LFS because system does not have libxml), so we cannot easily fix it
either.

For now just remove the sed.  If gettext-0.23.1 isn't released before
LFS 12.3 freeze, we can either apply the upstream patch to make it work
for both shipped libxml and system libxml, or add the corrected sed with
"nodump" and some alarming texts.
2024-12-17 21:26:26 +08:00
Bruce Dubbs
72fae0d02c Fix vim size 2024-12-16 11:54:48 -06:00
Thomas Trepl
fba6f0643d Add missing backslash 2024-12-16 16:50:42 +01:00
Thomas Trepl
1b69877bc4 Fix chksum of vim tarball 2024-12-16 11:56:30 +01:00
Bruce Dubbs
4fd0680ccf Package updates.
Update to vim-9.1.0927.
Update to iana-etc-20241206.
Update to systemd-257.
Update to Python-3.13.1.
Update to libcap-2.73.
Update to linux-6.12.5.
Update to kbd-2.7.
Update to gettext-0.23.
2024-12-15 16:57:03 -06:00
Xi Ruoyao
d095cba8b6
kernel: Remove outdated note not to update kernel API headers
We now consider upgrading kernel API headers safe.
2024-12-13 12:48:43 +08:00
Xi Ruoyao
71df0cfa0f
kernel: Note that make mrproper shouldn't be run for rebuild 2024-12-13 12:47:17 +08:00
Xi Ruoyao
6d36d72175
hostreq: Bump min-kernel to 5.4
4.19 LTS is EOL now.
2024-12-12 14:37:56 +08:00
Xi Ruoyao
eb35057724
packages: Reword release tarball vs repo snapshot difference
Besides Rainer's suggestion, also use a vague "not stored in the
repository" instead of the over-precise "generated": there are also
vendored external source copies (as Git submodules or manually embedded
during Release Engineering, for example the gnulib copies in many
GNU packages); and maybe other cases.

Suggested-by: Rainer Fiebig <jrf@mailbox.org>
2024-12-11 20:31:08 +08:00
Xi Ruoyao
6fa6a4f3ce
Use "install ... -t $dir" instead of "mkdir $dir; cp ... $dir" if possible
So we don't need to type the long path twice.
2024-12-09 18:21:26 +08:00
Bruce Dubbs
cefff0ec14 Merge branch 'trunk' of git.linuxfromscratch.org:lfs into trunk 2024-12-08 11:40:33 -06:00
Bruce Dubbs
a44b23f7a4 Update currency for python modules. 2024-12-08 11:40:14 -06:00
Xi Ruoyao
c87106896c
English grammar fixes
Suggested-by: †KJM† <biz@k-1.me>
2024-12-06 17:05:02 +08:00
Xi Ruoyao
79648bf770
kernel: Fix a typo (#5606) 2024-12-05 21:47:05 +08:00
Xi Ruoyao
5ee35073fb
drm-panic: kernel: Explain DRM panic settings 2024-12-01 18:54:14 +08:00
Xi Ruoyao
2349341e3e
drm-panic: kernel: Enable DRM_PANIC
Since the previous commit, we've ensured the kernel displaying via DRM
even in the early stage.  Now enable DRM_PANIC so the kernel will
correctly show the last lines of the kernel messages in case a panic
happens.

Tested with an incorrect root= line in 3 configurations:

- A QEMU VM booted via BIOS
- A real machine booted via BIOS
- A real machine booted via UEFI

And in all configurations the panic message is correctly dumped.
In 1024x768 we can get 48 lines (twice of 24 lines in VGA console).
2024-12-01 18:36:45 +08:00
Xi Ruoyao
33c17d128b
drm-panic: grub: Set up the VESA framebuffer for the kernel
In the previous commit we've enabled the kernel to use the SimpleDRM
driver on the VESA framebuffer.  Now provide the VESA framebuffer to the
kernel.
2024-12-01 18:35:55 +08:00
Xi Ruoyao
fdf21dccba
drm-panic: kernel: Enable SimpleDRM
Currently on a LFS system booted via legacy BIOS (intead of UEFI), the
users can make two different configurations:

1. The DRM driver for the GPU is built as a module.  Then before the
   module is loaded (i.e. the root fs is properly mounted) the kernel
   messages are displayed via the VGA console.
2. The DRM driver for the GPU is built into the kernel image.  Then the
   kernel messages are displayed via the DRM-emulated framebuffer
   console since a very early stage (before the root fs is properly
   mounted).

When the system is booted via UEFI, we use SimpleDRM on the EFI
framebuffer for displaying kernel messages, thus it's always the case 2.

Both are not good for diagnostic in case the root fs cannot be mounted
properly (it's very frequent on lfs-support):

- With 1 the VGA console can only fit 80x24 characters, so the relevent
  information is often flushed away.
- With 2 the panic message is often displayed improperly when a DRM
  driver is running.

The "DRM panic" feature introduced since Linux 6.11 (but it'll only
become usable for LFS since Linux 6.12) can fix the case 2, while case
1 just cannot be fixed.  So start to make LFS booted via legacy BIOS
to use method 2 now, then we can enable DRM panic and fix this
long-standing issue.
2024-12-01 18:35:55 +08:00
Bruce Dubbs
ea48456403 Update to iana-etc-20241122.
Update to file-5.46.
Update to iproute2-6.12.0.
Update to libtool-2.5.4.
Update to linux-6.12.1.
Update to setuptools-75.6.0 (Python Module).
Update to wheel-0.45.1 (Python Module).
2024-11-30 09:49:34 -06:00
Bruce Dubbs
e5cc8213aa Typo 2024-11-28 12:50:41 -06:00
Bruce Dubbs
e5338216f0 Remove unneeded PATH entries. 2024-11-19 22:28:24 -06:00
Xi Ruoyao
410e400a79
shadow: Having /bin or /sbin in $PATH is not a good idea
Turned out in a recent blfs-support discuss.
2024-11-20 10:01:25 +08:00
Xi Ruoyao
d5d6ec44ea
readline: Remove SHLIB_LIBS from make install
It's not needed now and I don't know why it was added in the first place
(at r10573-g2e8cbe04cdac).  I'd say it likely just covered up some user
error (for e.g. simply forgetting "make" before "make install").

Removing it anyway and if it turns out something bad is happening we can
always revert.
2024-11-17 11:45:03 +08:00
Bruce Dubbs
4660ec224b Fix vim stats. 2024-11-15 21:03:01 -06:00
Xi Ruoyao
eca8b13b59
readline: Decorate new info about SHLIB_LIBS 2024-11-16 08:57:29 +08:00
Bruce Dubbs
78914d4af6 Package updates.
Update to vim-9.1.0866.
Update to iana-etc-20241024.
Update to wheel-0.45.0 (Python Module).
Update to setuptools-75.5.0 (Python Module).
Update to linux-6.11.8.
Update to libcap-2.72.
2024-11-15 11:43:29 -06:00
Xi Ruoyao
505b6b1581
shadow: Remove reference to cracklib
The cracklib integration has been removed by upstream since
shadow-4.15.0.
2024-11-09 18:32:44 +08:00
Bruce Dubbs
ac024e87c3 Package updates.
Added binutils-2.43.1-upstream_fix-1.patch.
Update to flit_core-3.10.1.
Update to expat-2.6.4.
2024-11-08 13:24:58 -06:00
Xi Ruoyao
39c800d18c
bash: Remove bash_cv_strtold_broken=no workaround
It's no longer needed for bash-5.2.37, the upstream has fixed the bug at
https://ftp.gnu.org/gnu/bash/bash-5.2-patches/bash52-033.
2024-11-08 21:04:37 +08:00
Bruce Dubbs
a9517d383c Package updates.
Update to linux-6.11.6.
Update to libcap-2.71.
Update to setuptools-75.3.0.
Update to flit_core-3.10.0.
2024-11-01 11:39:57 -05:00
Bruce Dubbs
08620feaa1 Fix currency for markupsafe. 2024-10-25 12:45:27 -05:00
Bruce Dubbs
8a0ae36a91 Fix extra spacing around some xml tags. 2024-10-25 11:37:55 -05:00
Bruce Dubbs
52104e05f0 Package updates.
Update to iana-etc-20241015.
Update to vim-9.1.0813.
Update to xz-5.6.3.
Update to sysvinit-3.11.
Update to setuptools-75.2.0.
Update to Python3-3.13.0.
Update to openssl-3.4.0.
Update to meson-1.6.0.
Update to markupsafe-3.0.2.
Update to linux-6.11.5.
Update to less-668.
Update to elfutils-0.192.
2024-10-24 21:15:30 -05:00
Xi Ruoyao
33ec8810ee
grub: Use "file system" instead of "filesystem"
We've had the consensus on this since David's cleanup.
2024-10-14 22:06:46 +08:00
Bruce Dubbs
d26d12f45c Fix currency for MarkupSafe 2024-10-10 13:11:31 -05:00
Xi Ruoyao
8d5a2a12e9
standards: Add extension names to libg{d,t}k-x11-2.0 to be consistent 2024-10-06 03:32:51 +08:00
Xi Ruoyao
ae191ad78e
tcl: Remove trailing space in command
It causes unnecessary trouble to translations because translating
softwares do not ignore trailing space in <userinput>s.
2024-10-06 03:13:36 +08:00
Thomas Trepl
fc3eddd130 Fix chksum of expect-5.45.4-gcc14-1.patch 2024-10-04 09:52:39 +02:00
Bruce Dubbs
ebeebc26b2 Restore expect patch to previous version. 2024-10-03 15:39:25 -05:00
Bruce Dubbs
5607053b5a Revert back to tcl8.6.15. 2024-10-03 12:25:29 -05:00
Bruce Dubbs
8a9d779178 Package updates.
Update to Python3-3.12.7.
Update to tcl9.0.0.
Update to linux-6.11.1.
Update to libtool-2.5.3.
Update to iproute2-6.11.0.
Update to bash-5.2.37.
Update to bc-7.0.3.
2024-10-01 22:59:34 -05:00
Xi Ruoyao
d77b09e5d0
standards: Fix it up to date
The info has been severly outdated.  And some info is even incorrect
from day one, for example even Glibc and GCC are not listed for LSB core
(they provide libc.so.6, libstdc++.so.6, etc.).
2024-09-26 03:10:31 +08:00
Xi Ruoyao
2a2b22823c
network: Fix the /etc/hosts line for local machine
Since r10520-gcba2d4e6 the IP address of the local machine is assumed
192.168.1.2 (instead of 192.168.1.1) but the hosts line isn't updated.
2024-09-26 01:12:54 +08:00
Xi Ruoyao
2fe2d58620
changelog: Fix a typo 2024-09-22 20:56:47 +08:00
Bruce Dubbs
984e1f1068 Package updates.
Update to vim-9.1.0738.
Update to texinfo-7,1,1.
Update to tcl8.6.15.
Update to sysklogd-2.6.2.
Update to setuptools-75.1.0.
Update to meson-1.5.2.
Update to iana-etc-20240912.
Update to gawk-5.3.1.
Update to bc-7.0.2.
2024-09-21 23:13:41 -05:00
Xi Ruoyao
c080648959
grub: Explain moving bash completion file 2024-09-17 03:22:48 +08:00
Bruce Dubbs
92bb02a329 Update openssl URL. 2024-09-14 09:33:38 -05:00
Bruce Dubbs
75c9760329 Package updates.
Update to tzdata-2024b. Fixes
Update to systemd-256.5. Fixes
Update to setuptools-74.1.2. Fixes
Update to python3-3.12.6. Fixes
Update to openssl-3.3.2. Fixes
Update to man-db-2.13.0. Fixes
Update to linux-6.10.8. Fixes
Update to libpipeline-1.5.8. Fixes
Update to expat-2.6.3. Fixes
Update to bc-7.0.1. Fixes
+
2024-09-07 18:00:09 -05:00
Bruce Dubbs
c5fbd9da12 Minor grammar fix. 2024-09-04 09:59:12 -05:00
Xi Ruoyao
e4b4449d11
ncurses: Simplify evading from mawk
Since it's overridable with the command line, just override it instead
of using a sed.
2024-09-04 20:21:58 +08:00
Xi Ruoyao
39dca771d7
openssl: Update the home page
It seems openssl.org is now the home page of OpenSSL Software Foundation
Inc, and the home page of the OpenSSL project is separated.
2024-09-04 20:20:30 +08:00
Xi Ruoyao
f2c8c6e025
dependencies: Remove inconsistent punctuation 2024-09-03 11:05:44 +08:00
Bruce Dubbs
4b8c6b4f61 Set up after lfs-12.2 2024-08-31 11:13:01 -05:00
Bruce Dubbs
2e3aaf8b43 Merge branch 'trunk' of git.linuxfromscratch.org:lfs into trunk 2024-08-29 10:02:46 -05:00
Bruce Dubbs
67056c18a5 Typo 2024-08-29 10:02:14 -05:00
Xi Ruoyao
73f24adb27
changelog: Hide sysklogd and bootscript change for systemd revision 2024-08-29 14:53:37 +08:00
Bruce Dubbs
2b76c898f5 Minor wording change. 2024-08-27 10:44:59 -05:00
Xi Ruoyao
2ca7fca799
gcc: Don't decrease the stack limit
I've had doubts on this "ulimit -s 32768" command for years.  After
reading GCC code (libiberty/stack-limit.c) I'm pretty sure this command
is not doing what we expected.

In a typical Linux distro, the default "soft" stack limit is 8 MiB and
the default "hard" stack limit is infinite.  And GCC will automatically
increase the soft limit to 64 MiB if the original soft limit is smaller
than 64 MiB, and the hard limit is at least 64 MiB.  So with a typical
default configuration, the real stack limit of GCC is 64 MiB.

But our "ulimit -s 32768" command sets both the soft limit and the hard
limit to 32 MiB.  Thus we are actually *decreasing* the real stack
limit.  Fortunately this has not caused any test failures, but it's just
wrong (contradicting with the explanation of the command).

Thus just raise the hard limit to infinite in case the host distro uses
a not so typical configuration where the hard limit is tight, and let
GCC to set up the soft limit to the expected value on its own.  It's
more future-proof than "ulimit -s 65536" in case GCC changes the
expected stack limit in the future.

It should be safe to make the change in freeze because in jhalfs it only
affects the test suite, and even in a manual build the user can skip
this command if not running the GCC test suite.
2024-08-27 16:58:46 +08:00
Xi Ruoyao
68c63ae3af
Some About SBUs page reword 2024-08-27 12:32:31 +08:00
Bruce Dubbs
eae9237225 Add more detail to the About SBUs page. 2024-08-26 17:59:31 -05:00
Xi Ruoyao
04befc5e3c
aboutsbus: Add power profile info 2024-08-26 02:49:01 +08:00
Xi Ruoyao
948cd148be
Update to lfs-bootscripts-20240825
Co-authored-by:	Andrew Kreimer <algonell@gmail.com>
2024-08-25 15:37:38 +08:00
Andrew Kreimer
6e99fa99c7
Fix typos
Signed-off-by: Andrew Kreimer <algonell@gmail.com>
2024-08-25 15:37:34 +08:00
Bruce Dubbs
7779960772 Turn off network logging by default. 2024-08-24 15:45:30 -05:00
Bruce Dubbs
872a378f5e Typos on comments.
These changes are all in comments that do not affect the books in any way.
2024-08-23 14:01:06 -05:00
Xi Ruoyao
54c0a86cd0
bootscripts: console: Fix fb console detection
If CONFIG_FB is not set but CONFIG_DRM_FBDEV_EMULATION is set to y, on a
DRM-drived graphic card (anything from AMD/ATI, Intel, or NVIDIA in
recent 20 years) we'd be using a fb console but without
/sys/class/graphics/fb0.  Then the script won't run setfont for VT 2-6.

Check /sys/class/graphics/fbcon instead of /sys/class/graphics/fb0 to
fix the issue.

Closes: https://lists.linuxfromscratch.org/sympa/arc/lfs-support/2024-08/msg00001.html
Reported-by: Alan Ianson <agianson@gmail.com>
2024-08-23 19:36:09 +08:00
Douglas R. Reno
db7bf1f8e9 systemd configuration: adjust some wording 2024-08-19 09:55:19 -05:00
Xi Ruoyao
d1ccec207f
whatsnew: Remove glibc-2.39-upstream_fixes-1.patch entry
It's added after 12.1 release and removed before 12.2 release, so when
we compare 12.1 and 12.2 it's neither added nor removed and it just
seems never existed.
2024-08-19 13:56:23 +08:00
Xi Ruoyao
217802b9c0
gcc-pass2: Fix description of LDFLAGS_FOR_TARGET=
Pass 2 libstdc++ still links to libgcc.a even with LDFLAGS_FOR_TARGET=,
despite this libgcc.a is from pass 2 instead of pass 1.

The difference between pass 2 libgcc and pass 1 libgcc is Glibc wasn't
installed when the pass 1 libgcc was built.  This difference causes both
consequences (1) pass 1 libgcc lacks shared library and (2) pass 1
libgcc cannot support C++ EH, but it's not (1) causing (2).
2024-08-19 13:56:08 +08:00
Bruce Dubbs
837731717d Minor grammar change. 2024-08-18 20:02:08 -05:00
Bruce Dubbs
10aa6482f7 Move glibc-2.39-upstream_fix patch in what's new from Added: to Removed: 2024-08-18 14:47:14 -05:00
Douglas R. Reno
fcbbf46ced Update systemd and dbus stats for 12.2 2024-08-17 18:29:37 -05:00
Bruce Dubbs
4c522f3775 Package updates.
Update to setuptools-72.2.0.
Update to kmod-33.
Update to binutils-2.43.1.
Update to linux-6.10.5.
2024-08-17 16:08:56 -05:00
Bruce Dubbs
a1a1f9f4de Package updates.
Update to iana-etc-20240806.
Update to pkgconf-2.3.0.
Update to python3-3.12.5.
Update to linux-6.10.4.
2024-08-14 10:36:40 -05:00
Xi Ruoyao
1e2c41871f
kernel: Really fix missing revision attribute 2024-08-13 16:52:16 +08:00
Thomas Trepl
82711db81d Fix missing attribute 'revision' 2024-08-13 09:16:25 +02:00
Xi Ruoyao
aa00b47601
build: Use -r for git ls-tree in make dist
Without this we may pack things like *.swp into the tarball.
2024-08-12 19:20:16 +08:00
Andrew Kreimer
a18957940c
docs: fix a typo
In section "5.3. GCC-13.2.0 - Pass 1",
the string "The are not strictly needed"
should have "They".

Fix that.
2024-08-09 22:24:18 +08:00
Xi Ruoyao
93bffa3abf
Regenerate kernel configuration with Linux 6.10.2 source
Now all DRM drivers are entries in the DRM submenu.
2024-08-09 15:49:05 +08:00
Xi Ruoyao
079ced733c
pkgconf: Switch home page to GitHub
The upstream maintainer told me (s)he is not controlling pkgconf.org as
at now.
2024-08-06 11:12:09 +08:00
Bruce Dubbs
dd151db302 Package updates.
Update to bash-5.2.32.
Update to iana-etc-20240801.
Update to vim-9.1.0660.
Update to binutils-2.43.
Update to linux-6.10.3.
Update to readline-8.2.13.
Update to wheel-0.44.0.
2024-08-05 13:07:12 -05:00
Xi Ruoyao
653ead1781
toolchaintechnotes: Refer to Glibc wiki instead of shlib-versions
The list of dynamic linkers is removed in shlib-versions since 2014.

Link: https://sourceware.org/git/?p=glibc.git;a=commitdiff;h=ba90e05052ce
2024-08-05 12:08:18 +08:00
Xi Ruoyao
678acc1775
toolchaintechnotes: Update the paragraph describing ch05 glibc
We no longer pass CC="$LFS_TGT-gcc -nostdinc -isysroot" since
cross-chap5.
2024-08-05 12:02:35 +08:00
Bruce Dubbs
7119cf2a83 Fix a minor issue with liblz4.pc. 2024-08-04 16:28:24 -05:00
Bruce Dubbs
175b2b6ab6 Typo 2024-08-04 16:21:55 -05:00
Bruce Dubbs
5ff15e6275 Package updates.
Update to setuptools-71.1.0.
Update to gcc-14.2.0.
2024-08-01 14:46:50 -05:00
Bruce Dubbs
8aa80e434d Make capitalization os SysVinit consistent. 2024-07-31 16:59:30 -05:00
Douglas R. Reno
5717a3d267 Update the stats for the systemd man pages 2024-07-31 16:32:37 -05:00
Xi Ruoyao
39bdcbafb2
whatsnew: Make Sysvinit entry same as the section title
Make them consistent and reduce one string for the translators.
2024-08-01 00:29:32 +08:00
Xi Ruoyao
f6eb3399d5
automake: Remove outdated test failure notice
These failures are fixed in automake-1.17 release.
2024-08-01 00:17:10 +08:00
Bruce Dubbs
44c33588fd Package updates
Update to iana-etc-20240723.
Update to glibc-2.40.
Update to iproute2-6.10.0.
Update to linux-6.10.2.
Update to lz4-1.10.0.
Update to meson-1.5.1.
Update to setuptools-71.1.0.
Update to sysklogd-2.6.1.
Update to systemd-256.4.
Update to sysvinit-3.10.
2024-07-31 10:37:57 -05:00
Bruce Dubbs
d2ac702634 Update currency for openssl. 2024-07-25 11:17:54 -05:00
Bruce Dubbs
0d6c94f1bf Fix name and currency for lz4. 2024-07-24 23:05:08 -05:00
Bruce Dubbs
e148af0796 Merge branch 'trunk' of git.linuxfromscratch.org:lfs into trunk 2024-07-24 09:42:10 -05:00
Bruce Dubbs
b56430b691 Update currency for lz. 2024-07-24 09:41:55 -05:00
Bruce Dubbs
eeee074942 Update bootscripts version. 2024-07-17 22:43:43 -05:00
Xi Ruoyao
5b7b80511c
cleanup: Remove hidden files in /tmp
Some test suite may create files of which the name starts with a dot.
These files are "hidden" and they won't be matched with the /tmp/*
wildcard.
2024-07-18 11:13:24 +08:00
Xi Ruoyao
86e276279a
systemd: Update known failures
I can only reproduce test-namespace failure now with 256.1.
2024-07-18 11:13:24 +08:00
Xi Ruoyao
a7596d8cc0
packages: Add a space between "Systemd Man Pages" and the version
To be consistent with other packages.
2024-07-18 11:13:23 +08:00
Xi Ruoyao
0808f28619
bootscripts: Add -n to the ln command, for recreating /dev/fd correctly if the initramfs has already created one 2024-07-18 11:13:23 +08:00
Xi Ruoyao
6e6641f9b7
binutils: Add --enable-new-dtags
This option makes ld use DT_RUNPATH instead of DT_RPATH.  DT_RPATH is
generally considered bad because it takes precedence over
LD_LIBRARY_PATH.  For example, eog is linked with -rpath /usr/lib/eog,
and with DT_RPATH if an old eog is already installed we are basically
impossible to debug a new eog build w/o overwriting the system
installation first or explicitly using "ld.so --inhibit-rpath" to
invoke it.

This "new" actually means "new in 2000," it's 24 years ago and all other
distros has enabled it.  Thus I guess some unexplainable "test suite
uses installed library instead of the just built one" issues in BLFS are
actually caused by this difference: the package author just assumes
everyone is using DT_RUNPATH thus they just set LD_LIBRARY_PATH and
consider it enough to test with the just built libraries, but DT_RPATH
breaks this expectation.

Let's eliminate the difference as it seems not doing anything good and
doing so just takes one switch.
2024-07-18 11:13:20 +08:00
Bruce Dubbs
f105449724 Package updates.
Update to iana-etc-20240701.
Update to vim-9.1.0580.
Update to automake-1.17.
Update to gdbm-1.24.
Update to linux-6.9.9.
Update to less-661.
Update to meson-1.5.0.
Update to setuptools-70.3.0.
Update to util-linux-2.40.2.
2024-07-15 11:00:12 -05:00
Bruce Dubbs
e7b6af1037 Update lfs-bootscripts to only output escape sequences to a terminal. 2024-07-06 17:12:29 -05:00
Xi Ruoyao
e872712e9a
dependencies: List rust-bindgen as Linux external dependency
It's needed to enable Rust-based features in the kernel.

Rustc is also needed but it's required by rust-bindgen so I'm skipping
it (like BLFS).

LLVM (Clang) is also a required dependency of rust-bindgen but it's
listed here for different purposes (LTO and CFI).
2024-07-03 18:16:47 +08:00
Bruce Dubbs
6ee537a893 Update systemd man pages. 2024-07-02 16:00:44 -05:00
Bruce Dubbs
f01d1e3597 Fix sysklogd currency 2024-07-01 08:01:10 -05:00
Bruce Dubbs
ba0723a402 Tweak sysklogd bootscript for latest version. 2024-06-30 14:51:53 -05:00
Bruce Dubbs
e91edadd00 Package and format updates.
Update to iana-etc-20240612.
Update to bc-6.7.6.
Update to man-pages-6.9.1.
Update to linux-6.9.7.
Update to sysklogd-2.5.2.
Update to shadow-4.16.0.
Update to systemd-256.1.
Update to setuptools-70.1.1.

Also change the formatting of options '-Dsomething' to '-D something'.
2024-06-30 10:40:41 -05:00
Xi Ruoyao
201aa93863
Move punctuation/comma into quotes for <xref>s
We are using American rule for punctuation/comma vs. quotes.  We've
fixed most cases but not <xref>s.
2024-06-22 11:43:31 +08:00
Xi Ruoyao
c04d98d038
systemd: Reword test failure notice 2024-06-15 01:22:02 +08:00
Xi Ruoyao
9c7437f2fd
glibc: Remove redundant mkdir -pv /usr/lib/locale command
It's created in chapter 7.
2024-06-15 00:06:41 +08:00
Bruce Dubbs
cadbe55e4d Merge branch 'trunk' of git.linuxfromscratch.org:lfs into trunk 2024-06-14 10:43:13 -05:00
Bruce Dubbs
58180415dd Package updates.
Update to vim-9.1.0478.
Update to iana-etc-20240607.
Update to systemd-256.
Update to python3-3.12.4.
Update to perl-5.40.0.
Update to openssl-3.3.1 (Security fix).
Update to linux-6.9.4.
Update to findutils-4.10.0.
2024-06-14 10:37:53 -05:00
Xi Ruoyao
2ef9beaf92
readline: Get rid of rpath 2024-06-09 20:03:35 +08:00
Xi Ruoyao
4ef406e2fa
expect: Get rid of rpath 2024-06-09 19:51:57 +08:00
Xi Ruoyao
e3f47a2f7a
tcl: Get rid of rpath 2024-06-09 19:47:30 +08:00
Xi Ruoyao
b3c50e06f6
systemd: Fix the sed adding PID_FS_MAGIC into src/basic/missing_magic.h
Without this trailing backslash only one line (the comment) is added.

Note that udev.xml contains the correct sed.
2024-06-02 19:45:41 +08:00
Xi Ruoyao
464fd24324
udev & systemd: Emphasis "API headers" for linux compatibility
Or people will ask "why no-break-userspace rule does not apply?"
2024-06-02 19:38:25 +08:00
Bruce Dubbs
6acfe2e81f Package Updates.
Update to meson-1.4.1.
Update to xz-5.6.2.
Add linux-6.9.x compatibility instructions to systemd and udev.
Update to setuptools-70.0.0 (python module).
Update to ninja-1.12.1.
Update to man-pages-6.8.
Update to linux-6.9.3.
Update to libcap-2.70.
Update to iproute2-6.9.0.
Update to e2fsprogs-1.47.1.
2024-05-31 12:06:49 -05:00
Xi Ruoyao
8630ec385a
[systemd] Disable RT_GROUP_SCHED
Link: https://github.com/systemd/systemd/issues/13781#issuecomment-549164383
2024-05-30 19:35:35 +08:00
Xi Ruoyao
32c050cb58
gcc-pass2: Don't ambigiously use "previously" 2024-05-22 16:22:14 +08:00
Bruce Dubbs
91c72232ac Merge branch 'trunk' of git.linuxfromscratch.org:lfs into trunk 2024-05-19 15:54:31 -05:00
Bruce Dubbs
da1a07bdc1 Remove erroneous -i when creating custom udev rules 2024-05-19 15:53:53 -05:00
Xi Ruoyao
87e5e08d34
gcc pass2: --disable-libsanitizer is no longer strictly needed
GCC 14 libsanitizer no longer depends on crypt.h.  But let's keep this
option for reducing build time, just update the explanation.

Also remove libxcrypt from GCC depedency list.
2024-05-15 19:48:50 +08:00
Xi Ruoyao
923fb48548
coreutils: Revise i18n patch 2024-05-14 03:42:22 +08:00
Xi Ruoyao
5ff2f2e472
creatingfilesystem: Remove reference to ReiserFS
It's deprecated by the kernel developers and we've archived the tools
for it in BLFS as well.
2024-05-13 20:17:46 +08:00
Xi Ruoyao
31c839da2d
packages: Document why not to use anduin for vim 2024-05-13 13:45:56 +08:00
Xi Ruoyao
6a97bf00d7
Revert "Make vim md5sum consistent with the version on anduin."
This reverts commit 46e985d8af.
2024-05-13 13:44:47 +08:00
Xi Ruoyao
74dfcff374
Revert "e anduin for vim."
This reverts commit 760d28c809.

As we've discussed in #5490:

LFS 9.0 (released 2019) downloads vim-8.1.1846 from GitHub directly, and
the URL still works today and results a tarball with the same md5 as LFS
9.0 documents.  Thus GitHub download seems stable enough from vim.

Also note that "vim-9.1.0405.tar.gz" on anduin is actually a
vim-9.1.0330 release tarball.
2024-05-13 13:42:51 +08:00
Xi Ruoyao
99056a6d69
glibc: Revise glibc-2.39 upstream fix patch
The glibc-2.39-upstream_fix-1.patch file contains a broken
tst-iconv-iso-2022-cn-ext.c file.  It causes:

    FAIL: iconvdata/tst-iconv-iso-2022-cn-ext

Revise the patch to fix it.

(cherry picked from commit 9b39be4268)

Reapply this change which is mistakenly reverted in
340e17adc6.
2024-05-13 00:30:13 +08:00
Bruce Dubbs
f70694dce2
PAckage updates and a security fix.
Add security fix to glibc.
Update to linux-6.8.8.
Update to ncurses-6.5.

(cherry picked from commit d0ca5ead46)

Reapply this change which is mistakenly reverted in
340e17adc6.
2024-05-13 00:29:12 +08:00
Bruce Dubbs
760d28c809 e anduin for vim.
The github version of the vim tarball is not always available.
Keep it on anduin.
2024-05-12 10:16:12 -05:00
Bruce Dubbs
46e985d8af Make vim md5sum consistent with the version on anduin. 2024-05-12 10:05:27 -05:00
Bruce Dubbs
5d867ecc19 Merge branch 'trunk' of git.linuxfromscratch.org:lfs into trunk 2024-05-12 09:55:34 -05:00
Bruce Dubbs
043e9bdb46 Fix currency for jinja2 2024-05-12 09:55:19 -05:00
Xi Ruoyao
ddbe15d513
changelog: Fix a typo 2024-05-12 21:38:34 +08:00
Thomas Trepl
c7ed0b0fb8 Fix chksum of vim-9.1.0405 2024-05-12 12:14:25 +02:00
Bruce Dubbs
340e17adc6 Package updates.
Update to vim-9.1.0405.
Update to util-linux-2.40.1.
Update to linux-6.8.9.
Update to jinja2-3.1.4 (Python mpdule).
Update to iana-etc-20240502.
Update to gcc-14.1.0.
2024-05-11 15:17:56 -05:00
Xi Ruoyao
1a7ac41bcc
grub: Update the note about UEFI for recent BLFS change 2024-05-11 08:15:09 +08:00
Xi Ruoyao
6dfdf03699
coreutils: Add -k for make check
Two tests are known to fail, so without -k a part of the test suite is
not executed.
2024-05-09 14:52:44 +08:00
Xi Ruoyao
c5a1240233
dependencies: Bison building system needs diffutils
A recent lfs-support discussion revealed if diffutils is forgotten,
bison building system can fail in a way very difficult to diagnose.
2024-05-05 17:04:56 +08:00
Xi Ruoyao
f65f3b993c
[systemd] clock: Captitalize the title
All other titles in the book are capitalized by David.
2024-05-03 14:07:54 +08:00
Xi Ruoyao
1e7341fd35
systemd: Enable test suite (again)
With systemd-255, I get only 1 failure out of 1206.  Thus it seems a
good idea to run the test suite.

We can always revert if something bad happens.
2024-05-03 13:39:48 +08:00
Xi Ruoyao
a9cbf6ff0c
Revert "python: Document test failures with recent expat"
This reverts commit 6a75210c6d.

In Python >= 3.12.3, these tests are disabled with expat >= 2.6.0.

Link: https://github.com/python/cpython/commit/c4fa79b924a1
2024-05-03 11:59:53 +08:00
Xi Ruoyao
9b39be4268
glibc: Revise glibc-2.39 upstream fix patch
The glibc-2.39-upstream_fix-1.patch file contains a broken
tst-iconv-iso-2022-cn-ext.c file.  It causes:

    FAIL: iconvdata/tst-iconv-iso-2022-cn-ext

Revise the patch to fix it.
2024-05-02 18:38:35 +08:00
Xi Ruoyao
e1f27cd97b
changelog: The ifup change is sysv-only 2024-05-01 15:50:45 +08:00
Xi Ruoyao
3abde5946b
ncurses: Remove explicit --enable-widec in chapter 6 like chapter 8 2024-05-01 15:49:51 +08:00
Thomas Trepl
5a661c39b0 Fix changing entity name 2024-05-01 08:16:22 +02:00
Bruce Dubbs
72108540d2 Merge branch 'trunk' of git.linuxfromscratch.org:lfs into trunk 2024-04-30 12:43:09 -05:00
Bruce Dubbs
d0ca5ead46 PAckage updates and a security fix.
Add security fix to glibc.
Update to linux-6.8.8.
Update to ncurses-6.5.
2024-04-30 12:42:03 -05:00
Xi Ruoyao
6e179a9025
changingowner: Add --from lfs for chown root:root commands
So if the user has not set $LFS properly, chown will do nothing instead
of wreak havoc in the host distro.

--from <user> has been available for Coreutils chown since 2000 so we
don't need to raise the host system requirement.
2024-04-27 12:30:10 +08:00
Xi Ruoyao
7db37658c2
chapter06/ncurses: Use ncurses-release instead of ncurses-version for library file names
Reported-by: Stefano Moretti <stemoretti@gmx.com>
Closes: https://lists.linuxfromscratch.org/sympa/arc/lfs-dev/2024-04/msg00051.html
2024-04-26 20:02:16 +08:00
Bruce Dubbs
ba1a9cf303 Typo 2024-04-18 10:19:03 -05:00
Bruce Dubbs
340891bca1 Make minor change to ifup script output text.
Remove blank output line generated in ifup script when bringing
up wireless interface.
2024-04-16 10:59:48 -05:00
Bruce Dubbs
491de3316a Merge branch 'trunk' of git.linuxfromscratch.org:lfs into trunk 2024-04-15 11:17:58 -05:00
Bruce Dubbs
185b763812 Package updates.
Update to setuptools-69.5.1.
Update to python3-3.12.3.
Update to openssl-3.3.0.
Update to ninja-1.12.0.
Update to man-db-2.12.1.
Update to linux-6.8.6.
Update to iana-etc-20240412.
Update to vim-9.1.0330.
2024-04-15 11:16:44 -05:00
Xi Ruoyao
9317498c03
packages: SSL-ize two URLs 2024-04-11 16:38:50 +08:00
Xi Ruoyao
9bfd203fad
util-linux: Create a dummy /etc/fstab to satisfy two tests 2024-04-08 16:10:03 +08:00
Xi Ruoyao
6a75210c6d
python: Document test failures with recent expat
I didn't see them because I misconfigured Python to use internal expat.
With system expat they just fail as we've documented in BLFS.
2024-04-08 15:09:51 +08:00
Xi Ruoyao
2f115238af
kernel: Regenerate kernel config with 6.8.2
No real change.
2024-04-07 21:04:05 +08:00
Xi Ruoyao
9977b8f05b
generalinstructions: Remove a false statement about "cp -R destroys symlink"
It's just wrong (at least with all recent Coreutils releases).

Note that hard links are really destroyed, but AFAIK tar does not keep
hard links correctly anyway and destroying hard links won't cause
packages fail to build at all.
2024-04-06 17:39:05 +08:00
Xi Ruoyao
91cf49535a
python: Make it clear that the test indefinitely hanging issue is occasional
Or people will report things like "hey I didn't see any test had timed
out."
2024-04-06 11:25:01 +08:00
Xi Ruoyao
a093e70903
python: Run test suite with a time limit
The test hang issue is not related to partial environment.  It's just a
known issue (for eg https://github.com/python/cpython/issues/91155) and
happens when we are unlucky.

So just run the test suite with a timeout.  1 SBU should be enough: it's
approximately 4 times of the time used by the slowest test case, on both
an old Athlon 64 3000+ and a Core i5-11300H.

I've not seen any test failure on a complete system (the expat-related
failure seems fixed by expat-2.6.2 or 2.6.1).  TODO: really test this
with LFS chroot and document failures if any.
2024-04-05 22:05:45 +08:00
Bruce Dubbs
658401054a Typo 2024-04-04 09:24:08 -05:00
Xi Ruoyao
0dde2f570e
changelog: Fix date of sysvinit-3.09 update
Well, we've had a time travaling! :)
2024-04-02 18:51:47 +08:00
Xi Ruoyao
ba64c50ecc
coreutils: Test names are filenames 2024-04-02 18:13:33 +08:00
Xi Ruoyao
7a8f589df1
changelog: Add revision='sysv' for sysvinit-3.09 entry 2024-04-02 18:11:14 +08:00
Bruce Dubbs
9b01d1b4ba Package updates.
Update to iana-etc-20240318.
Update to zstd-1.5.6.
Update to util-linux-2.40.
Update to shadow-4.15.1.
Update to pkgconf-2.2.0.
Update to linux-6.8.2.
Update to coreutils-9.5.
2024-03-31 17:10:23 -05:00
Xi Ruoyao
31336718bc
xz: Host on anduin for now
The GitHub repo is suspended due to malicious code injection.
2024-03-30 09:09:26 +08:00
Bruce Dubbs
1af9cd121d Merge branch 'trunk' of git.linuxfromscratch.org:lfs into trunk 2024-03-29 15:08:02 -05:00
Bruce Dubbs
cbf19601bc Revert to xz-5.4.6 due to uptream compromise. 2024-03-29 15:04:03 -05:00
Tim Tassonis
ae4e8da2c3 Update to sysvinit-3.09. 2024-03-25 21:50:26 +01:00
Bruce Dubbs
23db3ee550 Merge branch 'trunk' of git.linuxfromscratch.org:lfs into trunk 2024-03-20 09:48:36 -05:00
Bruce Dubbs
c3a956946d Fix currency and cleanup
Fix currency for upstream changes for
Python
psmisc

Add currency for
lz

Remove a lot of old commented code.
2024-03-20 09:46:44 -05:00
Xi Ruoyao
acaeb102ae
packages: Fix and simplify <ulink> for vim tags page
Vladimir has reported that the link target of this <ulink> is wrong.
Note that the link target and the displayed text should be the same,
thus use <ulink ... /> instead of <ulink ...> ... </ulink> to simplify
it.
2024-03-20 18:30:45 +08:00
Xi Ruoyao
3d50ab19d0
changelog: Fix typos 2024-03-20 15:21:19 +08:00
Douglas R. Reno
9694f4b6be Add stats for LZ4. 2024-03-19 18:08:24 -05:00
Douglas R. Reno
4aa6ea3d1c Add forgotten changelog entry for iproute2 2024-03-19 18:07:24 -05:00
Douglas R. Reno
ac593e8270 Update to man-pages-6.7 2024-03-19 18:06:48 -05:00
Douglas R. Reno
c5ae777ac2 Package updates and a new addition:
Update to Linux-6.8.1
Update to iproute2-6.8.0
Add LZ4 to the book
2024-03-19 17:56:41 -05:00
Bruce Dubbs
e31b6c53cb Fix Python currency 2024-03-19 10:14:02 -05:00
Xi Ruoyao
e2d3b4b0bc
kmod: Use a more natural expression for symlink location issue 2024-03-14 23:04:38 +08:00
Xi Ruoyao
68215a4ed7
kmod: Emphasis that we don't want 2024-03-14 23:01:43 +08:00
Xi Ruoyao
98bdf39b6c
shadow: Capitalization adjustment 2024-03-14 22:59:27 +08:00
Xi Ruoyao
e7231421fd
kmod: Remove an unnecessary command and adjust the description
/usr/bin/lsmod is already created by the building system.
2024-03-14 22:53:21 +08:00
Bruce Dubbs
9ac55efa5e Merge branch 'trunk' of git.linuxfromscratch.org:lfs into trunk 2024-03-14 09:38:18 -05:00
Bruce Dubbs
dcf5543233 Package updates.
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.
2024-03-14 09:36:53 -05:00
Xi Ruoyao
eb7223e804
shadow: Add an <important> for using BLFS instruction if PAM installed 2024-03-12 18:53:13 +08:00
Pierre Labastie
37823511a6 Fix rendering of non-chunked output
Thanks to Vladimir Pertsev for the patch
2024-03-04 17:31:33 +01:00
Douglas R. Reno
c301941b9a vim: typo fix from rhubarbpieguy 2024-03-02 15:02:00 -06:00
Bruce Dubbs
e4bdd54756 Merge branch 'trunk' of git.linuxfromscratch.org:lfs into trunk 2024-03-02 09:16:55 -06:00
Bruce Dubbs
0566a056ba Package updates.
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.
2024-03-02 09:15:52 -06:00
Xi Ruoyao
0fd7f40bc7
kernel: No longer disable CONFIG_AUDIT for systemd
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
2024-03-02 17:38:57 +08:00
Xi Ruoyao
a56a4fcd9c
procps: Run chown -R tester . before running the test as tester
I completely forgot this yesterday :(.
2024-03-02 15:50:21 +08:00
Xi Ruoyao
2001f5cd7e
coreutils: Redirect stdin for test suite to prevent two failures
The tests affected are test-getlogin and test/tty/tty.sh.  We need an
errata for 12.1.
2024-03-02 00:03:28 +08:00
Xi Ruoyao
c2d820a770
procps: Run test as tester 2024-03-01 23:50:06 +08:00
Xi Ruoyao
887bf34f49
glibc: Make the command enumerating timed out tests remap="test"
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".
2024-03-01 23:44:17 +08:00
Bruce Dubbs
b570133fec Update changelog and whatsnew fo r12.1 2024-02-29 09:27:04 -06:00
Xi Ruoyao
d91a836a78
packages: Fix a typo
Reported-by: Vladimir Pertsev <info@linuxfromscratch.ru>
2024-02-28 19:05:35 +08:00
Bruce Dubbs
9575382489 Minor text changes 2024-02-27 12:29:43 -06:00
Bruce Dubbs
cf6fe33cee Fix some external URLs 2024-02-27 12:05:21 -06:00
Xi Ruoyao
23f436750e
procps: Add "-k" for make check and document two additional failures 2024-02-27 20:54:42 +08:00
Bruce Dubbs
283f7119a0
Typos
(cherry picked from commit a2808be815)
2024-02-27 20:48:45 +08:00
Bruce Dubbs
4e486a2efc
Typo
(cherry picked from commit 0c06e1e048)
2024-02-27 20:48:40 +08:00
Xi Ruoyao
74f9697fdd
changelog: Mark procps-4.0.4 as a security fix
It contains a fix for CVE-2023-4016, rated low and only affecting 32-bit
systems.
2024-02-27 17:47:50 +08:00
Xi Ruoyao
ed38e9d2cf
procps: Be more specific about the known ps test failure 2024-02-27 01:29:23 +08:00
Xi Ruoyao
64ef2e93db
coreutils: Comment out test-getlogin failure
It seems fixed by the upstream.  (Well, they'd claimed this "fixed" in
2014 but we were still seeing this failure in ten years.  However let me
trust the upstream once again...)

Link: https://lists.gnu.org/archive/html/bug-gnulib/2022-06/msg00079.html
2024-02-27 00:42:31 +08:00
Xi Ruoyao
141a1fa181
vim: Minor decoration 2024-02-26 14:52:49 +08:00
Xi Ruoyao
64be5a4bfa
dependencies: Gettext may use system libunistring
When system libunistring is not installed (for eg building LFS), a
shipped copy of libunistring is used.
2024-02-25 00:53:31 +08:00
Xi Ruoyao
4aa6831f14
glibc: Don't "overwrite" libcrypt.so.1* when updating
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 :(.
2024-02-24 13:26:06 +08:00
Xi Ruoyao
bd003a8a8c
glibc: Correctly mark revision='systemd' for a paragraph in update note 2024-02-24 13:15:49 +08:00
Xi Ruoyao
3827fcf6e2
vim: Set TERM=xterm-256color for test
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.
2024-02-23 23:47:06 +08:00
Xi Ruoyao
109afb297c
dependencies: Kbd can use Linux-PAM
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...
2024-02-23 03:33:14 +08:00
Xi Ruoyao
5f2ba8ce99
gcc: Decorate test failures, remove outdated comments, ...
move comments for upstream PR links to correct location.

BTW data-model-4.c is also in analyzer directory, so we can just say 7
analyzer tests.
2024-02-18 22:09:54 +08:00
Xi Ruoyao
0800455fb6
Glibc: Re-organize test failures and mention how to rule out timed out tests
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.
2024-02-18 15:40:50 +08:00
Douglas R. Reno
6b25d62962 Stats only: update the installed files size for systemd 2024-02-15 09:49:22 -06:00
Bruce Dubbs
28614cdda5 Update descriptions for some test failures. 2024-02-14 15:41:22 -06:00
Bruce Dubbs
d93d11b5ba Package updates and stats updates.
Update to meson-1.3.2.
Update to shadow-4.14.5.
2024-02-14 09:37:42 -06:00
Bruce Dubbs
96026a103a Package updates.
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.
2024-02-12 11:05:36 -06:00
Pierre Labastie
b1998a2375 Use http://cdn.docbook.org to run on other distros
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...
2024-02-10 12:31:04 +01:00
Xi Ruoyao
fe99d50d94
systemd: Fix a bug breaking systemd-verify an instantiated unit
It's breaking Git test suite (and maybe other things).
2024-02-10 18:49:55 +08:00
Pierre Labastie
e67d996022 Typo in expect
Thanks to rhubarbpieguy for the report

Fix #5436
2024-02-08 13:56:10 +01:00
Xi Ruoyao
4816dc69f5
bash: Really pass through the return code
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.
2024-02-06 03:44:38 +08:00
Xi Ruoyao
1fde756b12
expect: Add (back) a simple test for PTY
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).
2024-02-06 03:07:35 +08:00
Xi Ruoyao
ce11e97f01
kernfs: Use a separate devpts filesystem for chroot environment
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.
2024-02-06 01:08:42 +08:00
Bruce Dubbs
1541b7c29f Minor wording update 2024-02-04 12:13:17 -06:00
Xi Ruoyao
7436c28ae4
If we need to create the link target of /dev/shm, make its mode 1777
To match the behavior of a tmpfs mount.  Otherwise non-root user (for
e.g. the tester user) will get errors using Glibc shm functions.
2024-02-04 22:56:04 +08:00
Xi Ruoyao
8cf42d4c72
Fix and unify the commands creating the link target of /dev/shm
$(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.
2024-02-04 03:42:36 +08:00
Xi Ruoyao
677f795cf8
glibc: When update, also regenerate the locales
A Glibc update may contain locale updates, so keep
/usr/lib/locale/locale-archive synced.

Other distros are also doing this when Glibc is updated with the package
manager.
2024-02-03 18:58:14 +08:00
Bruce Dubbs
7b54528e96 Fix currency for xz 2024-02-02 10:10:53 -06:00
Xi Ruoyao
e14adea673
Update to tzdata-2024a (#5428) 2024-02-02 16:22:11 +08:00
Xi Ruoyao
9c73d91186
Remove -v from "chown -R tester" commands
It does no good: normally we have -v for chown so once it no longer has
an effect we can know, but in this case these chown commands will never
have no effect.  And a huge amount of output with -v wastes the server
storage and bandwidth (for both the server and the people reading the
build logs).
2024-02-02 15:19:41 +08:00
Xi Ruoyao
343ab1388a
Add info about how to upgrade Glibc on a running system
Let's change our policy to match other "rolling release" distros and
ease the procedure to fix Glibc security vulnerabilities.

Squashed the commits in xry111/update-glibc branch to keep the history
clean.

Co-Authored-By: Pierre Labastie <pierre.labastie@neuf.fr>
Co-Authored-By: Douglas R. Reno <renodr@linuxfromscratch.org>
2024-02-02 09:03:51 +08:00
Xi Ruoyao
092b86ad6d
Package updates:
- Update to glibc-2.39 (#5426)
- Update to linux-6.7.3 (#5427)
2024-02-02 09:03:51 +08:00
Xi Ruoyao
1e180412f9
hostreq: Raise min-kernel to 4.19
4.14 is no longer supported by the upstream since Jan 2024.
2024-02-02 09:03:51 +08:00
Xi Ruoyao
d386e51ec4
changelog: OpenSSL 3.2.1 is a security fix
I'll write the SA for it...
2024-02-02 05:18:35 +08:00
Xi Ruoyao
d3b0a0842e
pkgmgt: Upgrading Linux API headers cannot be dangerous
Per a discussion in the team, we only consider an upgradation dangerous
if it may render the system unusable.  "Causing something not able to
build" is never considered dangerous.  Thus upgrading some headers
cannot be dangerous.

The Glibc portion will need an update too (it can be upgraded safely
with some caution) to ease security updates.  But let's do the easy
change first...
2024-02-01 03:31:25 +08:00
Bruce Dubbs
cdf280e337 Package updates.
Update to openssl-3.2.1.
Update to zlib-1.3.1.
Update to xz-5.4.6.
Update to linux-6.7.2.
Update to iana-etc-20240125.
Update to binutils-2.42.
Update to acl-2.3.2.
Update upstream fixes for readline-8.2.
Apply upstream fix for bash-5.2.21.
2024-01-31 08:42:20 -06:00
Xi Ruoyao
bed3894b89
glibc: Add more rationale about --enable-stack-protector, and remove the stale explanation of --with-headers 2024-01-31 17:43:03 +08:00
Xi Ruoyao
bbcac389a3
glibc: Update upstream fixes patch
To include fixes for CVE-2023-6246, CVE-2023-6779, and CVE-2023-6780.
2024-01-31 16:16:14 +08:00
Xi Ruoyao
39b5bb6989
console font: Add more "working for C.UTF-8" console fonts 2024-01-30 12:10:13 +08:00
Xi Ruoyao
40cd8a1801
glibc: Drop --with-headers=/usr/include
The Glibc INSTALL file says:

‘--with-headers=DIRECTORY’
     Look for kernel header files in DIRECTORY, not ‘/usr/include’. ...

So --with-headers=/usr/include seems just doing nothing.
2024-01-29 23:45:33 +08:00
Xi Ruoyao
4ecfc55ddb
Use C.UTF-8 instead of C in console, and set the consolefont for it 2024-01-29 01:47:41 +08:00
Xi Ruoyao
7c630340c2
locale: Dedup in /etc/profile 2024-01-28 21:06:19 +08:00
Xi Ruoyao
5dd707361f
locale: Dedup 2024-01-28 21:04:30 +08:00
Xi Ruoyao
ee950a5e0d
More <quote> clean up
Use <quote> instead of '"' if possible.  Use <literal>,
<computeroutput>, etc. instead of <quote> if possible.  Replace
<quote>alpha</quote> with a UTF-8 Greek alpha character.

BTW decorate ".link" with <filename class='extension'>.
2024-01-28 20:53:47 +08:00
Xi Ruoyao
6ebb3b9ca9
Unify locale settings in sysv and systemd
Do not duplicate large paragraphs of texts.

Always use C locale if running in a Linux console.  Create /etc/profile
for systemd too, but reading the locale setting from /etc/locale.conf.
2024-01-28 20:43:40 +08:00
Xi Ruoyao
84974486d9
locale: Replace <quote> with <literal> for locale specifiers
Prevent ambigious quoted punctuations.
2024-01-28 18:37:06 +08:00
Xi Ruoyao
81f727aca6
chapter07/python: Work around a puzzling punctuation in quote
Here no file name starts with "python." (including the dot).  Slightly
reword to prevent the punctuation from following the quote or being
quoted.
2024-01-28 17:44:24 +08:00
Pierre Labastie
a4eaba6d55 Tidy doctype and xml declarations in .html output
Part of a patch by Boian Berberov
2024-01-27 22:42:07 +01:00
Pierre Labastie
5d064fb3c3 Align attributes in xsl:stylesheet elements
Part of a patch by Boian Berberov
2024-01-27 22:42:07 +01:00
Pierre Labastie
b8d33a557b rendering: some utf-8 fixes
Reinstate some character entities
Have some stylesheets output UTF-8

Part of a patch by Boian Berberov
2024-01-27 22:42:07 +01:00
Pierre Labastie
b6dd23c76b Makefile: improvements in xsltproc commands
- remove some useless --xinclude
- write only one option per line
- use --encode UTF-8 instead of --noent (which is useless after
  profiling anyway
- try to be consistent in option order
- use --output instead of -o
2024-01-27 22:42:07 +01:00
Pierre Labastie
16d01822df Makefile: remove "true" after tidy
If in a series of commands, and not the last, true has no effect
If in the last command, it is better to exit if there is a real
error in tidy, so use "|| test $$? -le 1", but only when tidy is
the last in a series of commands

Part of a patch by Boian Berberov
2024-01-27 22:42:07 +01:00
Pierre Labastie
4ac089b5b2 Unify the writing of sed's in Makefile
also remove a commented out line

Part of a patch by Boian Berberov
2024-01-27 22:41:48 +01:00
Pierre Labastie
0d80918aec Makefile: change ~ to $(HOME)
This is more readable.
Also remove obsolete variables at start.

Part of a patch by Boian Berberov
2024-01-27 16:47:45 +01:00
Pierre Labastie
360fdfca9c Fix punctuation in quotes, and quote signs
- period and comma inside quotes
- " to <quote>
- some " to <literal> when it is a var value
2024-01-26 18:28:53 +01:00
Pierre Labastie
44850bb9f2 Fix some defects of lfs book formatting
- have title of section stay visible when scrolling
- when clicking on an internal link, make it fully visible instead of
  hidden behind the header
2024-01-26 14:55:51 +01:00
Xi Ruoyao
ea93c117f2
treewide: Use <ulink> instead of <filename> for man pages
"gcc(1)" is really not a file name.

Use <ulink> and link to the online man page on
https://man.archlinux.org/ so the user can refer to the man pages more
easily.

The change is done via a sed command and long lines are wrapped
manually.
2024-01-26 01:59:06 +08:00
Xi Ruoyao
9ac6ff55fc
libtool: Add "or newer" after "grep-3.8"
We have grep-3.11 now.
2024-01-25 05:13:47 +08:00
Xi Ruoyao
0cca1d3831
dependencies: gettext may use system libxml2 2024-01-25 04:54:02 +08:00
Xi Ruoyao
0d76fa268d
chapter07/python: Update the note about optional modules
"Fatal error" is no longer outputted, but "Python requires OpenSSL
1.1.1 or newer" is bad as well because it's not really "required" (at
least in BLFS definition).
2024-01-24 23:40:27 +08:00
Pierre Labastie
c88ec71538 Put back punctuation inside quotes
Reverts part of 811d59db8b.
Looks like "American English prefers that periods and commas be
placed inside closing quotation marks," according to
https://en.wikipedia.org/wiki/American_English
2024-01-24 14:39:09 +01:00
Douglas R. Reno
214ea81811 Jinja2: update the home page in the All Packages section 2024-01-23 13:59:46 -06:00
Xi Ruoyao
5bef8f221a
ncurses: Remove libcursesw.so from short description
We no longer create this.
2024-01-23 05:29:05 +08:00
Xi Ruoyao
47bc996103
Makefile: Ensure wget-list and md5sums regenerated when patches.xml or packages.xml has changed 2024-01-22 03:21:08 +08:00
Xi Ruoyao
46b5c6b63b
gcc: Fix libcc1 description
libcpp is the preprocessor library, but it's a static library which is
only used by GCC itself and not installed.

libcc1 is actually a library for GDB to "compile" expressions, so we can
use fancy expressions in commands, like "print sin(x + 2.0)": the
expression sin(x + 2.0) needs to be "compiled" for evaluation.
2024-01-22 03:21:08 +08:00
Xi Ruoyao
24d03240bf
kernel: Regenerate kernel config with 6.7.1
No content change!
2024-01-22 03:21:08 +08:00
Xi Ruoyao
75d26160ce
pkgconf: Update the fix for modversion regression (#5414) 2024-01-22 03:21:08 +08:00
Xi Ruoyao
3baf03a954
Package updates:
- Update to jinja2-3.1.3 (#5411)
- Update to bc-6.7.5 (#5408)
- Update to attr-2.5.2 (#5412)
- Update to ncurses-6.4-20230520 (#5416)
- Update to markupsafe-2.1.4 (#5418)
- Update to linux-6.7.1 (#5406)
- Update to iproute2-6.7.0 (#5410)
- Update to vim-9.1.0041 (#4500)
- Update to iana-etc-20240117 (#5006)
- Update to shadow-4.14.3 (#5413)
2024-01-22 03:21:05 +08:00
Xi Ruoyao
0253841d0f
coreutils: Fix CVE-2024-0684 (#5417) 2024-01-22 00:47:22 +08:00
Xi Ruoyao
943f22504e
ncurses: Use symlinks instead of linker scripts
The effect will not change, but with symlinks ld can save some time
invoking open(), read(), etc. syscalls and parsing the linker scripts.

Note that I've also removed "libcursesw" symlink because this library
has never existed.  Instead libcurses.so is created as a symlink
direct to libncursesw.so.
2024-01-22 00:27:45 +08:00
Xi Ruoyao
d282f88dea
ncurses: Modify the header to always use the ABI of ncursesw
instead of the 8-bit ncurses.

We don't provide the 8-bit ncurses library and we are "faking" it using
ncursesw.  Thus innocent package may be compiled with the 8-bit ABI
(because it does not know what we are doing and so it does not use
the "expected" preprocessor definitions to enable the wide ABI) but
linked against ncursesw, causing a potential ABI mismatch.
2024-01-22 00:27:45 +08:00
Xi Ruoyao
619e4d956f
dependencies: Perl does not need groff for build
Some scripts in Perl mentions groff but they are not used building Perl.
And in the book groff is built after Perl anyway.
2024-01-20 03:05:14 +08:00
Xi Ruoyao
d11a0816d4
Some missed ISO-8859-1 -> UTF-8 changes 2024-01-20 02:07:45 +08:00
Xi Ruoyao
fd02389a51
git-version: Use "-wip" as the version suffix instead of "+" for changes not committed yet
It's not allowed to use "+" in id attributes etc.
2024-01-19 12:23:30 +08:00
Pierre Labastie
8f7d945a66 git-version.sh: revert inadvertent commit 2024-01-18 21:38:50 +01:00
Pierre Labastie
5e423c8031 Change all input encodings to UTF-8 2024-01-18 21:09:26 +01:00
Pierre Labastie
7152faa5fa Change all xml files to utf-8 encoding 2024-01-18 20:53:23 +01:00
Pierre Labastie
2a26a4f5df Remove all &#xxx; occurences
- replace some characters by their utf-8 encoded equivalent (and change
  encoding in the <?xml?> line
- replace &#xa; with a true newline char. This is somewhat more readable
  anyway.
2024-01-18 20:42:26 +01:00
Xi Ruoyao
9512d6c7ba
dejagnu: Move test before install
There seems no reason to test after install...  So just do it like other
packages.
2024-01-19 01:58:28 +08:00
Pierre Labastie
d6cbb12c4c stylesheets: rm code for xlink:href attr in xref elemts
We don't use it and it uses &#40; for opening parenthesis.
I am not sure whether this has some reason or not, but
we want to get reed of &#xx; chars in our change to utf-8,
so easier to remove than to find out why...
2024-01-18 13:11:58 +01:00
Xi Ruoyao
0cbc2c0a04
dependencies: Patch (optionally) uses attr
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.
2024-01-18 18:28:27 +08:00
Pierre Labastie
9bbd87ae00 Add a doctype decl to lfs-l10n.xml, for validation
This allows using xmllint --valid on it.
2024-01-18 10:32:31 +01:00
Xi Ruoyao
3626aa3048
Use UTF-8 characters instead of &#...;
This is done via:

    find -name \*.xml -or -name \*.xsl | xargs python3 utf8ize.py

with https://linuxfromscratch.org/~xry111/utf8ize.py.
2024-01-18 15:03:54 +08:00
Pierre Labastie
270b1732aa Reference the docbook-xsl bug at the place we fix it 2024-01-17 14:52:54 +01:00
Pierre Labastie
91f4b2df57 SImplify Makefile now that we have fixed DB-xsl bug 2024-01-17 14:49:48 +01:00
Pierre Labastie
d5fda0bce5 Style sheets: fix docbook-xsl bug in autoidx
The template named generate-basic-index in
{docbook-xsl}/xhtml/autoidx.xsl has a bug that generates a div element
with a wrong xmlns:xlink attribute. See
https://github.com/docbook/xslt10-stylesheets/issues/239.
Rather than fixing docbook-xsl, which would work only in LFS (but we
want to be able to render on other distros), copy the faulty template
to our customization files (lfs-index.xsl), so that this one is used.
We can also simplify it a lot since we don't need all the cases
covered in general docbook-xsl.
2024-01-17 14:41:09 +01:00
Xi Ruoyao
8ba840f34a
Makefile: Unify two sed for removing bogus xmlns:xlink, and link to upstream bug report
Nasty bug :(.
2024-01-15 21:47:38 +08:00
Xi Ruoyao
56eed6c5da
systemd: Update the explanation to match the actual command 2024-01-15 12:36:47 +08:00
Xi Ruoyao
7f6519aad7
udev: Realign the export udev_helpers=... command 2024-01-15 12:30:03 +08:00
Pierre Labastie
b8194e059c make default BASEDIR in public_html
that is:
- ~/public_html/lfs-book for sysv
- ~/public_html/lfs-systemd for systemd
2024-01-14 22:44:14 +01:00
Pierre Labastie
0432a3a1a8 Generate utf-8 for lfs-nochunks too
This involves:
- removing the <xsl:output ...> element from nochunks.xsl
- adding a sed for rmoving the invalid xmlns:xlink attribute
- removing the sed for "&copy;"
2024-01-14 22:36:12 +01:00
Pierre Labastie
855d0c9574 Remove an invalid attribute in longindex.html
For some reason, the stylesheets generate a
<div xmlns:xlink="http://www.w3.org/1999/xlink" ...> element in
longindex.html, but this is not valid in xhtml (the attribute
xmlns=xlink is not defined in the DTD). The problem is that tidy then
thinks it is not a true xhtml and removes the doctype declaration.
But when a browser receives a file without doctype declaration, it
thinks it uses an old standard, and switches to "quirks mode"
(for firefox, this can be seen by typing ctrl-I on the page).
2024-01-14 22:27:37 +01:00
Pierre Labastie
ec18a3872a Makefile: Set tabs to 3 spaces when editing with vi
This allows all editors to have the same settings...
2024-01-14 22:25:07 +01:00
Xi Ruoyao
ce07f91d5e
udev: Drop duplicated udevadm in the ninja command 2024-01-14 17:39:22 +08:00
Pierre Labastie
811d59db8b Nitpick on format
- according to our typography, referring to a manual page should be
  <filename>page(x)</filename>
- don't enclose punctuation into quotes
- use <option> for option
2024-01-11 13:52:28 +01:00
Pierre Labastie
f1370e2fb9 Change C.UTF-8 localedef everywhere 2024-01-11 13:51:15 +01:00
Douglas R. Reno
fecc287280 Fix the definition of the C.UTF-8 locale.
This fixes a test failure in Epiphany.
2024-01-09 11:16:26 -06:00
Thomas Trepl
06e65e8e59 remap=make moves unset command to wrong pos 2024-01-07 11:15:05 +01:00
Xi Ruoyao
33c9cb06d7
systemd: Fix another deprecation warning
Not sure why I didn't catch it...
2024-01-06 11:26:22 +08:00
Xi Ruoyao
164e0ddbce
udev: Unset udev_helpers after installation
Now this variable is exported, thus it might potentially cause unwanted
side effects building other packages.  So unset it after installation.
2024-01-05 03:05:01 +08:00
Pierre Labastie
53ed17c752 export the udev_helpers variable
Since it is needed for both building and installing, exporting it
allows to have it defined even if building as a regular user (so that
sudo is run for installing) or using a package manager (which usually
runs in a new shell and forgets unexported variables)
2024-01-04 19:22:44 +01:00
Bruce Dubbs
acde0a383a Typo 2024-01-04 09:44:21 -06:00
Xi Ruoyao
6fec3f51e7
binutils: Add --enable-default-hash-style=gnu for configure (#5401) 2023-12-31 02:37:07 +08:00
Xi Ruoyao
8b4fb1245d
systemd: Fix CVE-2023-7008 (#5405) 2023-12-31 02:35:25 +08:00
Xi Ruoyao
d4ce302c0e
Package updates
- Update to meson-1.3.1 (#5402)
- Update to vim-9.0.2189 (#4500)
- Update to inetutils-2.5 (#5404)
- Update to xml-parser-2.47 (#5403)
- Update to linux-6.6.8 (#5397)
- Update to tzdata-2023d (#5399)
- Update to setuptools-69.0.3 (#5400)
- Update to iana-etc-20231205 (#5006)
- Update to autoconf-2.72 (#5398)
- Update to grub-2.12 (#5396)
2023-12-31 02:00:59 +08:00
Xi Ruoyao
462ef6dfa4
gen-changelog: Handles holding tickets 2023-12-31 01:09:57 +08:00
Xi Ruoyao
95fc77277a
Remove stray references to TESTSUITEFLAGS
Now TESTSUITEFLAGS is set globally in Chapter 7.4, so there is no need
to mention it again and again in individual packages.
2023-12-23 21:18:07 +08:00
Xi Ruoyao
eea548fb62
symlinks: Fix grammar 2023-12-22 18:22:56 +08:00
Xi Ruoyao
3608380f22
symlinks: Mention how to disable NIC alternative names assignment
Fixes #5394.
2023-12-19 19:50:34 +08:00
Xi Ruoyao
7380559028
systemd: Disable systemd-sysupdate with a better way 2023-12-18 16:38:21 +08:00
Xi Ruoyao
9afac649f2
Update to systemd-255 2023-12-18 16:31:18 +08:00
Bruce Dubbs
81d572d25f Remove invalid revision attribute 2023-12-14 18:49:05 -06:00
Bruce Dubbs
04a7336f88 Package updates.
Update to util-linux v2.39.3.
Update to python3-3.12.1.
Update to linux-6.6.7.
Update to kbd-2.6.4.
Update to bc-6.7.4.
2023-12-14 16:47:50 -06:00
Bruce Dubbs
03682b250c Reformat util-linux configure parameters. 2023-12-14 14:16:13 -06:00
Xi Ruoyao
7cce808a46
kernel-config: The hot key for choices is just the first character
Stupid inconsistency...
2023-12-06 17:26:10 +08:00
Xi Ruoyao
31a9142d10
kernel-config: Sync fixes from BLFS 2023-12-06 01:32:48 +08:00
Xi Ruoyao
981b9fa6a1
kernel-config: Drop FB
In Linux 6.6 DRM_FBDEV_EMULATION no longer depends on FB, so we no
longer need to select FB (tested in a QEMU VM).

But if DRM is selected, we must select both DRM_FBDEV_EMULATION and
FRAMEBUFFER_CONSOLE or we'll see only blank screen.  And now
FRAMEBUFFER_CONSOLE is not selected by default, be warned!!
2023-12-05 14:58:29 +08:00
Xi Ruoyao
34774f4986
kernel-config: Regenerate with Linux 6.6.3
Only a trivial change (renaming CONFIG_FB).
2023-12-05 14:34:30 +08:00
Xi Ruoyao
622f56d917
util-linux: Add asciidoctor and po4a as dependencies
Asciidoctor is needed for regenerating man pages, and po4a is needed for
generating translated man pages in addition to asciidoctor.
2023-12-05 12:11:47 +08:00
Thomas Trepl
dc8572f241 Fix cmds installing python docs (permissions) 2023-12-04 19:15:01 +01:00
Xi Ruoyao
7fb4eb8668
dependencies: Remove outdated sentence
This sentence has been untrue since LFS 10.0.
2023-12-04 21:47:24 +08:00
Xi Ruoyao
642f779f64
gcc-pass2: Fix the indent of the sed command in case 2023-12-03 12:42:28 +08:00
Bruce Dubbs
aef269a32d Merge branch 'trunk' of git.linuxfromscratch.org:lfs into trunk 2023-12-02 14:41:23 -06:00
Bruce Dubbs
a851a78ded Formatting 2023-12-02 14:41:09 -06:00
Xi Ruoyao
823fbde93f
udev: Adjust the paths to search .link files and install 99-default.link
Tested in QEMU and the virtio NIC is now named "enp0s3".

Fixes #5386.
2023-12-01 18:29:03 +08:00
Xi Ruoyao
4ca831a42f
Use GitHub for vim download
I don't see a reason to upload vim tarball onto anduin.  And now anduin
does not have vim-9.0.2136.tar.gz.

I tried downloading vim-8.0.0586 (shipped by LFS 8.2) from GitHub and it
worked fine.  So it seems the GitHub storage is stable enough.
2023-12-01 16:39:58 +08:00
Bruce Dubbs
15f7b58b4c Package updates.
Update to vim-9.0.2136.
Update to iana-etc-20231117.
Update to bc-6.7.3.
Update to wheel-0.42.0 (Python Module).
Update to perl-5.38.2.
Update to pkgconf-2.1.0.
Update to readline patches 002 through 007.
Update to openssl-3.2.0.
Update to setuptools-69.0.2.
Update to linux-6.6.3.
Update to meson-1.3.0.
2023-11-30 13:00:51 -06:00
Xi Ruoyao
2f82ad1e16
dependencies: Replace the references to BLFS Berkeley DB page
Berkeley DB has been archived in BLFS, refer to the Oracle product page
for it instead.
2023-11-26 21:09:30 +08:00
Xi Ruoyao
1dbc435c82
iproute2: Remove the reference to BLFS Berkeley DB page
Berkeley DB has been archived in BLFS.
2023-11-26 21:02:59 +08:00
Douglas R. Reno
a19dadfd2f dbus: minor spacing adjustment 2023-11-24 18:39:41 -06:00
Xi Ruoyao
8e85548954
whatsnew: Use the <title> of the page for packages as package names
This is more consistent, and it reduces the number of different
translatable strings for translators.  Most of the package names in
whatsnew has already been aligned with <title>s, now make these two
"from ..." packages so.
2023-11-24 11:54:35 +08:00
Pierre Labastie
1fdbce2c4e Generate utf-8 encoded html
This removes several problems with wrong encodings...
The sed for &copy; is not needed anymore
tidy.conf has to be changed to remove specification of latin1 as
input and output encodings.
2023-11-23 20:59:52 +01:00
Douglas R. Reno
5e8bab73a1 Chapter 6 Ncurses: minor text tweaks 2023-11-22 19:18:51 -06:00
Douglas R. Reno
655450075c Setting Environment: minor tweak 2023-11-22 16:08:30 -06:00
Xi Ruoyao
01247ac90a
kernfs: Revise command creating the link target in case /dev/shm is a symlink
When /dev/shm is a symlink we need to create its target or some tests
will fail and Python 3 will be misconfigured.  We wrote it as:

    mkdir -pv $LFS/$(readlink $LFS/dev/shm)

But if $LFS/dev/shm is a relative symlink (say ../run/shm), we end up:

    mkdir -pv /mnt/lfs/../run/shm

This command will create /mnt/run/shm, not $LFS/mnt/shm as we expected.
Twist it a little to make it work for both absolute symlinks and
relative symlinks.
2023-11-20 07:23:36 +08:00
Douglas R. Reno
f16cc36c29 Typo fix 2023-11-15 15:25:51 -06:00
Xi Ruoyao
e3ae067502
whatsnew: Uncomment updated packages 2023-11-14 03:05:23 +08:00
Xi Ruoyao
4bc51b9067
udev: Fix install command for ../rules.d/*.rules
The sed command has changed ../rules.d/70-power-switch.rules to
"../rules.d", causing the install command to fail.

Change the command enumerating ../rules.d/*.rules but
70-power-switch.rules to a "find" command.  Edit another "find" command
so the styles of them are the same.
2023-11-14 02:35:51 +08:00
Bruce Dubbs
798e18b09f
Minor grammar corrections.
Mistakenly removed the remote WIP branch while it's not fully merged
yet.  Cherry-pick the discarded commit.

(cherry picked from commit 2f3f0e9e813f60a88e9f557842a7b9a50cdec50b)
2023-11-14 00:31:08 +08:00
Xi Ruoyao
7a72a22f9b
Merge tag 'xry111/update-20231113' into trunk
There are some suspicious "nptl/tst-robust" test failures in Glibc, but
all other test results are clean.  To be diagnosed...

And note that jhalfs needs an update to work with the merged parallelism
changes.
2023-11-14 00:27:17 +08:00
Thomas Trepl
1780e72d8d udev: Fix a small typo in command 2023-11-13 16:24:47 +01:00
Xi Ruoyao
e07c419469
Package updates
- Update to elfutils-0.190 (#5373)
- Update to vim-9.0.2103
- Update to linux-6.6.1 (#5369)
- Update to xz-5.4.5 (#5371)
- Update to iana-etc-20231107
- Update to gawk-5.3.0 (#5372)
- Update to bash-5.2.21 (#5375)
- Update to iproute2-6.6.0 (#5374)
2023-11-13 21:32:40 +08:00
Xi Ruoyao
d490056b64
perl: Use TEST_JOBS=$(nproc) make test_harness for test suite 2023-11-13 21:16:58 +08:00
Xi Ruoyao
3a8d1825cc
openssl: Add HARNESS_JOBS=$(nproc) 2023-11-13 21:16:58 +08:00
Xi Ruoyao
c17a77452a
automake: Do not use only 4 cores for testing if we have more 2023-11-13 21:16:48 +08:00
Xi Ruoyao
95ebbb42b7
chroot: Set MAKEFLAGS and TESTSUITEFLAGS for parallelism 2023-11-13 21:14:19 +08:00
Xi Ruoyao
a0a803c0b0
settingenviron: Set MAKEFLAGS for parallelism in ~lfs/.bashrc 2023-11-13 21:09:47 +08:00
Xi Ruoyao
e70bf8f4f4
hostreqs: Bump Coreutils minimal version to 8.1 and check for nproc
We'll use nproc for setting MAKEFLAGS and TESTSUITEFLAGS.  And if nproc
is not available, we'll end up with "MAKEFLAGS=-j" which is very
dangerous because it allows make to spawn infinite number of jobs.
Check it early.

The nproc program is added in Coreutils 8.1 so we need to bump the
minimal version.
2023-11-13 21:00:03 +08:00
Xi Ruoyao
5196daeb4e
udev: Adjust some command
Set -Dlogind=false -Dvconsole=false to disable out-of-scope udev rules.
Use "ninja -n" to list the targets, so the disabled udev rules won't
show up then we can remove some "rm" commands.  Do not remove
70-power-switch.rules from the source directory so we won't break
multilib.
2023-11-13 19:35:01 +08:00
Xi Ruoyao
f6bf77de74
udev: Remove four udev rules belonging to logind
They are not really useful without logind.  BLFS elogind package will
provide them too, so we should remove them and avoid a package manager
conflict.
2023-11-11 18:07:05 +08:00
Xi Ruoyao
d11686c6f0
pkgmgt: Update the desc for "separate directories"
There seems some guy overusing this method so we should add more
caveats.

- Use /opt/foo-x.y instead of /usr/pkg/foo-x.y.  /opt/foo-x.y is used in
  BLFS for Rustc, Qt5, etc. and /usr/pkg is not FHS-compliant.
- Use /etc/ld.so.conf and LDFLAGS instead of LD_LIBRARY_PATH.  Relying
  on LD_LIBRARY_PATH is generally a bad idea, and we also don't use it
  in BLFS for /opt packages.
- Discourage this method for general use, mention it may not work for
  vital packages like Glibc.
2023-11-08 17:30:59 +08:00
Xi Ruoyao
93311f4abb
gawk: "rm -f ..." is a command, not an envar 2023-11-03 14:38:55 +08:00
Xi Ruoyao
5f8327e633
gawk: Fix "gawk-&gawk-version; is a remnant from Chapter 7" again
We'd fixed #5180 by forcing LN='ln -f'.  But this has stopped to work
with gawk-5.2.2 (and 5.3.0) because now the building system explicitly
checks the existence of gawk-&gawk-version; and refuses to update it if
it exists.

Now removing the file before "make install" seems the easiest solution.

Link: https://git.savannah.gnu.org/cgit/gawk.git/commit/?id=11762f4c0685
2023-11-03 14:35:09 +08:00
Bruce Dubbs
80321c6881 Merge branch 'trunk' of git.linuxfromscratch.org:lfs into trunk 2023-11-01 11:10:59 -05:00
Bruce Dubbs
6b1661a637 Update currency for setuptools 2023-11-01 11:10:45 -05:00
Xi Ruoyao
23d67d844b
python: Remove --with-system-ffi
This option is removed by upstream in 3.12.

Link: https://github.com/python/cpython/pull/100544
2023-11-01 21:34:44 +08:00
Xi Ruoyao
c62883bd83
dependencies: Remove useless <phrase> 2023-11-01 17:30:18 +08:00
Xi Ruoyao
fe2791d419
dependencies: Add Setuptools
By the way, complete the dependencies on Wheel too.
2023-11-01 16:33:36 +08:00
Xi Ruoyao
8223937f4c
setuptools: Fix installed directory list 2023-11-01 16:18:43 +08:00
Bruce Dubbs
72d1cda897 Update shadow home page 2023-10-31 18:49:43 -05:00
Bruce Dubbs
a5de784d14 PAckage updates.
Update to iana-etc-20231019.
Update to wheel-0.41.3.
Update to shadow-4.14.2.
Update to openssl-3.1.4.
Update to texinfo-7.1.
Update to meson-1.2.3.
Update to bc-6.7.2.
Update to linux-6.5.9.
Update to Python-3.12.0.
Add setuptools-68.2.2.
2023-10-31 14:10:03 -05:00
Xi Ruoyao
7f36b16e72
pkgmgt: Sync the naming of SpiderMonkey with BLFS 2023-10-24 21:10:18 +08:00
Pierre Labastie
6f090ad2b7 pdf book: fix page numbering in part III
By default page numbering in <preface> is in roman numeral. This
is ok for the book preface, but not for the part III preface.
So copy the page.number.format template from docbook stylesheets
to stylesheets/lfs-xsl/pdf/lfs-pagesetup.xsl, and modify it.

Reported by: Vladimir Pertsev on lfs-dev list
2023-10-18 23:54:57 +02:00
Bruce Dubbs
2c3487d37d PAckage updates.
Update to linux-6.5.7.
Update to shadow-4.14.1.
Update to gettext-0.22.3.
2023-10-15 13:54:19 -05:00
Xi Ruoyao
91c6e9b2fb
dependencies: MarkupSafe and Jinja2 dependencies should be rendered for sysv too 2023-10-11 19:15:07 +08:00
Xi Ruoyao
c39bfe9b33
currency: Do not run strip_tags on api.github.com output
The output of api.github.com is JSON, thus we should not remove every
<...> for it.  For example, strip_tags had trimmed the JSON for
shadow-4.14.1, leading to "Attempt to read property "tag_name" on null".
2023-10-08 16:04:48 +08:00
Xi Ruoyao
d42ea8f08d
packages: Remove empty sha256 fields 2023-10-07 18:48:41 +08:00
Xi Ruoyao
02837798da
man-db: Remove outdated test failure notice 2023-10-05 16:00:48 +08:00
Xi Ruoyao
4d634048a1
pkgmgt: Reinstall the same version of Glibc should be safe 2023-10-05 14:34:07 +08:00
Pierre Labastie
623081aa93 bootscripts: change "halt stop" to "halt start"
Commit 27d23b1d has changed the convention that scripts with Sxxx
symlinks should be run with "stop" parameter in runlevels 0 and 6.
They should now be called with the more intuitive "start" parameter.
But a few scripts still call "/etc/init.d/halt stop". Fortunately, this
occurs in code paths that are rarely run (unrecoverable errors). So it
was not noticed until now. Anyway, this is fixed in this commit.
2023-10-04 15:52:42 +02:00
Xi Ruoyao
363fece428
glibc: Fix CVE-2023-4911 2023-10-04 13:39:03 +08:00
Xi Ruoyao
0d8322dbe6
createfiles: Remove doubled punctuation 2023-10-02 11:44:21 +08:00
Xi Ruoyao
370b0f548d
whatsnew: Align OpenSSL package name with the <title> in its page 2023-10-02 11:36:12 +08:00
Xi Ruoyao
09d148dc28
glibc: Remove nscd from contents 2023-10-02 11:32:45 +08:00
Bruce Dubbs
25b3c0f720 Package updates and one fix.
Disable building nscd in glibc.
Update to iana-etc-20230929.
Update to vim-9.0.1968.
Update to openssl-3.1.3.
Update to meson-1.2.2.
Update to man-db-2.12.0.
Update to linux-6.5.5.
Update to kmod-31.
Update to kbd-2.6.3.
Update to gettext-0.22.2.
Update to bc-6.7.0.
2023-10-01 13:37:57 -05:00
Xi Ruoyao
c7cd2c71e7
shadow: Remove lastlog from contents
It's deprecated because of Y2038 issue and no longer being built by
default.
2023-09-30 16:14:17 +08:00
Xi Ruoyao
6e11fe2728
createfiles: Add Y2038 info about the traditional {b,u,w}tmp and lastlog files
And utmp does not exist on systemd-based LFS.
2023-09-30 16:12:56 +08:00
Thomas Trepl
3cd2eae9eb Merge branch 'trunk' of git.linuxfromscratch.org:lfs into trunk 2023-09-25 14:47:48 +02:00
Thomas Trepl
96f7f5ed58 Remove textual description of an arg no loger in instructions 2023-09-25 14:46:25 +02:00
Xi Ruoyao
c873f0a1b3
changelog: Fix a date 2023-09-25 14:12:54 +08:00
Xi Ruoyao
cb89eec135
glibc: Update upstream fixes patch to plug a memory leak
The CVE-2023-4806 fix unintentionally caused a memory leak, now update
the patch to include the fix for the leak.
2023-09-25 14:10:12 +08:00
Xi Ruoyao
d48812dca9
afterlfs: "Work remotely via SSH" does not strictly need wget 2023-09-24 20:07:32 +08:00
Xi Ruoyao
f510f26b2d
/etc/os-release: Add HOME_URL field
It's used by AppStream in BLFS for calculating the ID of the operating
system.
2023-09-19 03:56:33 +08:00
Bruce Dubbs
01332d3b2a Use GB for kernel build size 2023-09-18 10:58:00 -05:00
Xi Ruoyao
67ad464981
Update Linux kernel SBU and DU
The old values were measured with -j1, it's out of sync with our
conventions now.
2023-09-18 20:39:03 +08:00
Xi Ruoyao
490a50a520
Package updates
- Update to linux-6.5.3 (#5343)
- Update to iana-etc-20230912 (#5006)
- Update to iproute2-6.5.0 (#5342)
2023-09-17 23:45:09 +08:00
Xi Ruoyao
808bc9406b
hostreqs: Raise GCC minimal version to 5.2
Pass 1 GCC FTBFS with system GCC 5.1.

Link: https://gcc.gnu.org/PR65801
Link: https://lists.linuxfromscratch.org/sympa/arc/lfs-support/2023-09/msg00005.html
2023-09-17 19:54:22 +08:00
Xi Ruoyao
d269e20dcb
chapter05/libstdc++: Remove one more .la file 2023-09-15 19:27:41 +08:00
Xi Ruoyao
ba40e32566
systemd: Use NSS modules provided by systemd in nsswitch.conf
It allows a simplification to /etc/hosts.  Also correct some info about
FQDN in both sysv and systemd.
2023-09-14 16:50:37 +08:00
Xi Ruoyao
efd11134bb
Glibc: Fix CVE-2023-4806 2023-09-14 14:32:37 +08:00
Xi Ruoyao
b91b12adf3
git-version: Always skip creating version.ent if LFS-RELEASE exists 2023-09-13 16:08:06 +08:00
Xi Ruoyao
80da60f0c0
stripping: Compress the kept debug info with Zlib 2023-09-13 15:39:25 +08:00
Xi Ruoyao
48d8f5a51d
glibc: Fix CVE-2023-4527 2023-09-13 14:32:19 +08:00
Xi Ruoyao
c858ba4e17
build: Add "make dist"
For creating a tarball without .git directory easier.  The tarball will
include version.ent and LFS-RELEASE files so the book rendered from it
won't show "unknown" for all dates.
2023-09-13 14:10:38 +08:00
Xi Ruoyao
a9dc9724ae
git-version: Make shebang #!/bin/bash
There is some bash-ism in the script.
2023-09-13 14:02:32 +08:00
Pierre Labastie
e0a942748e Make /dev/shm mount and umount verbose
Almost all commands in lfs are verbose. Don't know why these ones
were not.
2023-09-12 19:02:18 +02:00
Thomas Trepl
c5fe6ee346 Do not retrieve yr from sysdate 2023-09-11 13:18:30 +02:00
Thomas Trepl
0627fc2281 Fix hardcoded copyright year 2023-09-11 11:26:10 +02:00
Xi Ruoyao
cb6fcea9bf
binutils-pass2: Minor reword 2023-09-10 15:25:04 +08:00
Xi Ruoyao
ab31b973c8
chapter08: Make Installed "program(s)/library(ies)/directory(ies)" consistently lowercase 2023-09-09 14:51:24 +08:00
Xi Ruoyao
6c51e5ce7b
perl: Move some explanations from Chapter 8 to Chapter 7
Explain switches once they show up first time.
2023-09-09 14:46:02 +08:00
Douglas R. Reno
1f20176cfb util-linux: minor grammar reword 2023-09-09 01:08:20 -05:00
Xi Ruoyao
c7df34cbc5
mpfr: 4.2.1 has 198 tests 2023-09-09 03:15:32 +08:00
Xi Ruoyao
9f9a9b4950
binutils-pass2: Reword the paragraph about libtool workaround
Well, I was blaming libtool too much.  If the entire Binutils tree uses
libtool this won't happen.  The problem is Binutils building system is
using libtool-style idiom on non-libtool components.

And this issue is not related to cross compiling, at all.  A native
build can exploit the issue as well (see the updated comment).

Maybe I'll submit a patch to GCC (yes, not a typo, GCC is the upstream
of Binutils building system) to fix the issue when I have the mood...
2023-09-08 21:49:06 +08:00
Xi Ruoyao
aa5fa04a5a
coreutils: Drop gl_cv_macro_MB_CUR_MAX_good override
It's not needed anymore with 9.4.
2023-09-08 17:10:14 +08:00
Xi Ruoyao
ae802cf97d
whatsnew: Align package names with <title>s in package pages
It makes the package names more consistent, and it reduces the number of
different msgid's for translators.

By the way, move Udev to keep alphabetic order.
2023-09-08 16:13:37 +08:00
Xi Ruoyao
93f077212e
packages: Add kmod home page 2023-09-08 15:52:08 +08:00
Xi Ruoyao
6ad40199fc
Add some missed whatsnew and changelog entries 2023-09-07 20:01:00 +08:00
Xi Ruoyao
7de7690181
pkgconf: Hotfix for a regression breaking BLFS packages
Link: https://github.com/pkgconf/pkgconf/issues/317
2023-09-07 19:57:19 +08:00
Xi Ruoyao
26d11785ec
changelog: Fix typo 2023-09-06 15:55:07 +08:00
Xi Ruoyao
313a035b10
dependencies: Zstd should be in binutils-rundeps too 2023-09-06 12:05:04 +08:00
Xi Ruoyao
e8f0a1b1da
util-linux: Use 2^128 instead of "340 trillion trillion trillion" 2023-09-05 18:52:14 +08:00
Xi Ruoyao
5f36bceaa9
Package updates
- Update to linux-6.5.1 (#5332)
- Update to pkgconf-2.0.3 (#5339)
- Update to dbus-1.14.10 (#5337)
2023-09-05 18:20:24 +08:00
Xi Ruoyao
b1b9182671
chapter08: Move pkgconf before binutils
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.
2023-09-05 18:19:55 +08:00
Bruce Dubbs
1ec60f1daf Move a caution to a better page.
Move caution regarding building by mixing
different versions of LFS to General Compilation Instructions.
2023-09-04 15:08:43 -05:00
Xi Ruoyao
26c031abf9
dependencies: Add patchutils as check optional dependency
The configure script says:

    configure: WARNING: filterdiff not installed; build will not be
    reproducible.

The filterdiff program is a part of patchutils.
2023-09-04 17:49:55 +08:00
Xi Ruoyao
ffecb9ef81
systemd: Slightly adjust the desc for -Dnobody-group 2023-09-03 03:40:13 +08:00
Xi Ruoyao
62a4fea4be
currency: Remove stale lfs-latest.php and symlink lfs-latest-git.php to it
It just does not make sense to keep a completely useless script here...
2023-09-03 03:30:43 +08:00
Xi Ruoyao
815b4a786d
zlib: Switch to https://zlib.net/fossils
See added comment for rationale.

I've "diff -Naur"ed extracted zlib-1.3.tar.xz and zlib-1.3.tar.gz and
there is no difference.
2023-09-03 03:25:07 +08:00
Pierre Labastie
1a77fa6edd Fix zlib download url
We may want to use either archive or github. But right now, use
directly zlib.net...
2023-09-02 19:33:50 +02:00
Xi Ruoyao
eae99efe05
changelog: Fix vim version string 2023-09-03 00:49:07 +08:00
Xi Ruoyao
1b807632f6
Add --no-cache-dir into pip3 wheel commands for Python modules 2023-09-03 00:48:20 +08:00
Bruce Dubbs
3864d235cf Package updates and misc upates/typos.
Update to vim-1837.$
Update to zlib-1.3.$
Update to wheel-0.41.2 (Python Module).$
Update to util-linux-2.39.2.$
Update to sysvinit-3.08.$
Update to shadow-4.14.0.$
Update to Python-3.11.5.$
Update to procps-ng-4.0.4.$
Update to pkgconf-2.0.2.$
Update to mpfr-4.2.1.$
Update to kbd-2.6.2.$
Update to gzip-1.13.$
Update to coreutils-9.4.$
Specify the 'nobody-group' for systemd.$
Remove unused usb group.$
2023-09-02 08:54:55 -05:00
Xi Ruoyao
fd409751bf
Revert "openssl: Add a warning about minor version bump and OpenSSH"
This reverts commit ad09ba40a1.
This reverts commit bbaf00d415.

No longer needed with OpenSSH-9.4 or later.
2023-09-02 17:23:57 +08:00
Xi Ruoyao
1ebfa8e664
pdf: Allow breaking pages in version-check and kernel configuration
They are very long <screen> or <note>.  By default they are attributed
"keep-together.within-column = always", override it to allow line break.

Fixes #5336.

Link: http://www.sagehill.net/docbookxsl/PageBreaking.html
2023-09-02 14:17:17 +08:00
Xi Ruoyao
3182685f70
dependencies: Fix stupid typo in BLFS elogind page URL
:(
2023-09-02 04:04:35 +08:00
Bruce Dubbs
00d534c269 Merge branch 'trunk' of git.linuxfromscratch.org:lfs into trunk 2023-09-01 12:51:03 -05:00
Bruce Dubbs
c9167804f9 Cleanup after 12.0 release 2023-09-01 12:47:49 -05:00
Xi Ruoyao
5561764f6f
whatsnew: The coming release is 12.0, not 11.4 2023-09-01 18:33:42 +08:00
Xi Ruoyao
d2c6441ff6
dependencies: sync Systemd external dependency list from BLFS 2023-08-31 18:08:17 +08:00
Xi Ruoyao
4d22dd6063
dependencies: Coreutils needs Autoconf and Automake
The autoreconf command is from Autoconf, and "autoconf -fi" invokes
automake.
2023-08-31 13:57:00 +08:00
Xi Ruoyao
4b1b79442c
hostreqs: Raise texinfo minimal version to 5.0
Binutils-2.41 FTBFS with texinfo-4.x.  I've tested 5.0 and it works.

Link: https://sourceware.org/bugzilla/show_bug.cgi?id=30703
2023-08-30 00:32:30 +08:00
Xi Ruoyao
22c36bb8e4
tar: The problematic test can also be skipped if security labels disabled
For example, if CONFIG_EXT4_FS_SECURITY (Ext4 Security Labels) not set
and we are building on an ext4 file system, the test will be skipeed.
2023-08-28 17:01:02 +08:00
Xi Ruoyao
e5455293e3
tar: Mention TESTSUITEFLAGS for testing 2023-08-28 17:01:02 +08:00
Xi Ruoyao
d78b550655
gmp: On some CPUs more than 199 test can pass 2023-08-27 20:23:53 +08:00
Bruce Dubbs
3f56392254 Fix zlib currency 2023-08-27 02:17:17 -05:00
Xi Ruoyao
11cfb5bc71
changelog: Add ticket number for linux-6.4.12 update 2023-08-27 00:05:32 +08:00
Thomas Trepl
909f28430a Typo 2023-08-26 09:52:47 +02:00
Bruce Dubbs
c179964257 Merge branch 'trunk' of git.linuxfromscratch.org:lfs into trunk 2023-08-25 11:46:41 -05:00
Bruce Dubbs
1e9ad78f81 Update to linux-6.4.12. 2023-08-25 11:46:27 -05:00
Douglas R. Reno
0f5e0b42ae Move the zlib URL to anduin 2023-08-23 19:58:53 -05:00
Pierre Labastie
b55a1a2614 libxcrypt: typo and misplaced "nodump" 2023-08-21 15:13:37 +02:00
Xi Ruoyao
b59c9e9155
grub configuration: The instructions should be skipped for UEFI, but the text not 2023-08-21 11:12:09 +08:00
Bruce Dubbs
7641231777 Update to udev-lfs-20230818 2023-08-18 10:35:49 -05:00
Xi Ruoyao
cfcc2fe6cd
gcc: Fix a grammar error in text 2023-08-16 12:26:14 +08:00
Bruce Dubbs
58fc92b47e Typo 2023-08-15 22:06:36 -05:00
Bruce Dubbs
d280997ec6 Typo 2023-08-15 15:55:29 -05:00
Douglas R. Reno
b24fbe02b8 Update stats for systemd/dbus
Test results for dbus were clean
2023-08-14 19:45:49 -05:00
Douglas R. Reno
8694ae60e7 Various changes to whatsnew.xml and changelog.xml
Changelog.xml: Remove additional revision='sysv's for some of the udev
changes

Changelog.xml: Make the previous eudev update SysV only

Changelog.xml: Remove duplicate 'xz' entry and replace it with the glibc
memalign patch entry

Whatsnew.xml: Document changes to gawk, tzdata, and texinfo

Whatsnew.xml: Add the glibc patch to the new list
2023-08-14 14:34:24 -05:00
Douglas R. Reno
355efd11a8 glibc: minor typo fix 2023-08-14 14:12:26 -05:00
Bruce Dubbs
bd93ae129e Merge branch 'trunk' of git.linuxfromscratch.org:lfs into trunk 2023-08-14 13:53:30 -05:00
Bruce Dubbs
f7d3b6ed21 Package updates.
Update to xz-5.4.4.
Update to less-643.
Update to meson-1.2.1.
Update to linux-6.4.10.
Update to iana-etc-20230810.
Update to pkgconf-2.0.1.

All build times and sizes were also checked and updated as needed.
2023-08-14 13:47:25 -05:00
Xi Ruoyao
93ec8b32bf
grub cfg: Add an explanation for the insmod commands 2023-08-14 09:16:49 +08:00
Xi Ruoyao
f0b518a01e
binutils: Remove libgprofng.a, add libgprofng.so into contents section 2023-08-10 13:45:01 +08:00
Xi Ruoyao
30e0a7b28f
gawk: Move the creation of awk.1 after the explanation of the previous command 2023-08-09 22:39:53 +08:00
Xi Ruoyao
7c306241b6
coreutils: Use groupadd/groupdel for creating/removing dummy group
They look better than "echo >>" and "sed -i".  And I think an example
showing how to use groupadd/groupdel is good anyway.  The format of
/etc/group is already shown in chapter 7.
2023-08-09 22:30:52 +08:00
Xi Ruoyao
91f9a174b5
ncurses: Simplify documentation install command 2023-08-09 12:37:52 +08:00
Bruce Dubbs
539f0110b0 Merge branch 'trunk' of git.linuxfromscratch.org:lfs into trunk 2023-08-08 16:07:30 -05:00
Bruce Dubbs
45f40e899b Fix sed in pkgconf 2023-08-08 16:07:19 -05:00
Xi Ruoyao
9cca53dcac
kernel: Fix move-if-changed logic and regenerate with 6.4.8 2023-08-08 11:12:36 +08:00
Xi Ruoyao
f4835ed6ad
pkgconf: Reword the reason of sed
Specifying --modversion with multiple packages just does not make sense.
The real problem here is it's erroring out even if the multiple
arguments are for the same package.
2023-08-08 08:35:21 +08:00
Xi Ruoyao
70b20e7c25
changelog: Use a dash before pkgconf version number
To be consistent will all other entries.
2023-08-08 08:31:33 +08:00
Xi Ruoyao
8002bc91b4
whatsnew: Change "pkgconf" to "Pkgconf" and comment it out for now from Updated
In 12.0, pkgconf is a new package so it should be considered "Added"
since 11.3, and it's already in the Added section.

Also make the first letter captialized to be consistent with other
entries.
2023-08-08 08:29:28 +08:00
Bruce Dubbs
fdf01d1943 Merge branch 'trunk' of git.linuxfromscratch.org:lfs into trunk 2023-08-07 15:47:37 -05:00
Bruce Dubbs
9b7d651a54 Package updates.
Update to xz-5.4.4.
Update to wheel-0.41.1 (Python Module).
Update to man-pages-6.05.01.
Update to linux-6.4.8.
Update to iana-etc-20230804.
Update to pkgconf 2.0.0.
2023-08-07 15:46:36 -05:00
Xi Ruoyao
4374af9071
dbus: Fix a typo (misusing plural) 2023-08-07 23:00:42 +08:00
Bruce Dubbs
67ca5ef3f7 Add insmod part_gpt to example grub.cfg 2023-08-03 13:13:16 -05:00
Anton Mosich
2d6ced8aec
Fix small typos 2023-08-03 22:55:17 +08:00
Thomas Trepl
9a963c5285 Merge branch 'trunk' of git.linuxfromscratch.org:lfs into trunk 2023-08-03 12:28:30 +02:00
Thomas Trepl
2ce66c4197 Remove shasum (automake is the only one pkg were a sha sum is presented). Remove it for consistency 2023-08-03 12:27:16 +02:00
Xi Ruoyao
308ec7a37f
dbus: Add --enable-user-session like BLFS
This will install dbus.service and dbus.socket into
/usr/lib/systemd/user.  In a base LFS installation the systemd per-user
daemon is not usable at all, so they may seem useless.  But if we
install them, we can start to use them once systemd is rebuilt with PAM
in BLFS (without rebuilding dbus).
2023-08-03 15:07:06 +08:00
Xi Ruoyao
264a80d60f
udev: Use --no-same-owner for man pages, like systemd
By the way, fix a minor formatting issue in udev-hwdb.8.
2023-08-03 10:10:11 +08:00
Xi Ruoyao
c7c6c1548a
kernel: systemd: FW_LOADER_USER_HELPER should be n, not y 2023-08-02 19:06:09 +08:00
Xi Ruoyao
e65bfc4f69
procps: The "free with commit" test failure is fixed now
Link: https://gitlab.com/procps-ng/procps/-/commit/414e33a8afb6
2023-08-02 18:54:42 +08:00
Xi Ruoyao
f40b2e7be5
gcc: Document new test failures with Glibc-2.38
Well, the analyzer failures are introduced by literally *my* Glibc
change [1] and I'll sort them out for GCC 14...

And the ASAN failures seem caused by the introduction of
__isoc23_strtol (the libsanitizer does not know to intercept it).  I'll
test with LLVM once I reach it in BLFS (LLVM is the upstream of
libsanitizer) and make a bug report.

limits-exprparen.c also fails to me, it needs "ulimit -s 65536" instead
of "ulimit -s 32768" in my build but maybe it's caused by my custom
*FLAGS.

[1]:https://sourceware.org/git/?p=glibc.git;a=commit;h=71d9e0fe766a
2023-08-02 14:05:51 +08:00
Xi Ruoyao
7a8fcc3918
glibc: Remove sed and option unneeded with 2.38
--disable-crypt is now the default, and the security fix for 2.37 is
included.
2023-08-02 10:54:44 +08:00
Xi Ruoyao
8ada78d73e
binutils: gprofng man pages are OK now 2023-08-02 10:38:14 +08:00
Bruce Dubbs
be5b2e03fc Package updates:
Update to vim-9.0.1677.
Update to openssl-3.1.2.
Update to man-pages-6.05.
Update to binutils-2.41.
Update to gmp-6.3.0.
Update to glibc-2.38.
2023-08-01 13:52:22 -05:00
Xi Ruoyao
3d99820133
kernel: Fix a typo 2023-08-01 09:20:08 +08:00
Xi Ruoyao
57499d5909
kernel: Separate toplevel menus in rendering 2023-08-01 09:17:05 +08:00
Xi Ruoyao
70bf5512d9
kernel: Use new kernel configuration rendering method
Import kernel-config infrastructure from BLFS and use it for kernel
configuration.  Note that kernel-config.py is slightly different from
BLFS: we need role="nodump" for <screen> here.
2023-08-01 00:08:56 +08:00
Bruce Dubbs
2cf01ab702 Add some color to kernel options 2023-07-31 01:09:24 -05:00
Bruce Dubbs
72636463a2 Merge branch 'trunk' of git.linuxfromscratch.org:lfs into trunk 2023-07-28 23:19:59 -05:00
Bruce Dubbs
83e616f79e Reformat kernel configuuration options.
A couple of the newer kernel options overflow past 80 columns on
the kernel page.  It's not optimal, but insert newlines for these
options.

Also reorder the options to to same ordeer as they appear in
menuconfig and add some blank lines between major setions for
clarity.
2023-07-28 23:14:10 -05:00
Xi Ruoyao
c2ccad14a5
systemd: Add two new symlinks into contents 2023-07-29 10:19:04 +08:00
Xi Ruoyao
bec5f879a3
changelog: Prefix new "systemd" entry with "udev from" for sysv 2023-07-29 09:59:44 +08:00
Xi Ruoyao
57f16783ed
systemd: Add --no-same-owner for man page extraction
Well, I forgot to create the man pages tarball as root, so if we don't
use --no-same-owner the man pages will be owned by UID 1000 :(.

Instead of regenerating the tarball again let's just fix this in the
book.
2023-07-29 09:56:55 +08:00
Xi Ruoyao
7dcd8c782b
systemd: Remove sed unneeded with 254 2023-07-29 09:51:28 +08:00
Bruce Dubbs
6de383a262 Package updates.
Update udev-lfs tarball to remove obsolete
       cdrom rules and references to ISDN devices.
Update to wheel-0.41.0 (Python Module).
Update to tar-1.35.
Update to systemd-254.
Update to meson-1.2.0.
Update to linux-6.4.7.
Update to gcc-13.2.0.
Update to file-5.45.
2023-07-28 19:23:11 -05:00
Xi Ruoyao
ac90ea8104
package choices: Fix a typo
Reported-by: rhubarbpieguy <rhubarbpieguy@vivaldi.net>
2023-07-28 20:01:29 +08:00
Xi Ruoyao
44674e4c92
sysv: Mount cgroup fs for memory pressure information early
Prepare for systemd-254 update.  See #5293 for details.
2023-07-28 19:59:01 +08:00
Xi Ruoyao
d0de26cbe0
gmp: (Optionally) use --host=none-linux-gnu for generic library
This is suggested by GCC maintainer Andrew Pinski in
https://gcc.gnu.org/PR110789.  It's easier than what we've suggested
in the book.
2023-07-27 13:12:50 +08:00
Xi Ruoyao
49d402ee78
askforhelp: Reword the note added in previous commit a little 2023-07-27 10:04:38 +08:00
Xi Ruoyao
b15bebf96f
askforhelp: Add a note to stop people from spamming upstream
I've seen two cases of invalid upstream "bug" reports this month because
the user has (mis)built LFS.  Let's stop this before irritating the
upstream maintainers.
2023-07-27 09:43:57 +08:00
Xi Ruoyao
fb3b88e8f2
binutils-pass2: Remove libsframe.{a,la} like other libs 2023-07-25 12:33:32 +08:00
Xi Ruoyao
91aeb6f36d
whatsnew: Add revision attribute for "Removed" entries 2023-07-23 09:52:50 +08:00
Xi Ruoyao
e5c08bfbf4
changelog: Fix rendering with REV=systemd
Empty <itemizedlist> is not allowed.
2023-07-23 00:20:13 +08:00
Xi Ruoyao
e641f736d7
Update to lfs-bootscripts-20230722 2023-07-22 23:52:57 +08:00
Xi Ruoyao
da0d47999c
bootscripts: Add missed Change Log entry and version bump for udev 2023-07-22 23:44:10 +08:00
Xi Ruoyao
8435a70be4
bootscripts: mountvirtfs: Create essential symlinks in /dev targeting /proc
These were handled by Eudev, but systemd-udevd stopped to creating them
since 2020.
2023-07-22 23:40:32 +08:00
Xi Ruoyao
0d824c5280
kernel: Simplify doc installation 2023-07-22 18:36:33 +08:00
Xi Ruoyao
e9619f650f
Partially revert "man-db: Update known test failures, again"
This partially reverts commit 1053282e5f.

There is actually only one test suite in LFS build even with -k, but on
my complete system there are many test failures with "-k".  I guess some
tests depend on non-LFS packages.

The text change is reverted, but the command change is preserved as
generally we should use -k for any make check command known to fail.
2023-07-21 21:10:47 +08:00
Xi Ruoyao
ca0bd6d56c
rationale: Move Udev entry for lexicographical sorting
Wrap long lines by the way.
2023-07-20 01:14:20 +08:00
Xi Ruoyao
66fbe7b805
meson and ninja: Kill false tips 2023-07-20 01:09:30 +08:00
Xi Ruoyao
b5acea48a7
man-pages: Remove pages conflicting with libxcrypt 2023-07-18 17:47:26 +08:00
Xi Ruoyao
772fb71015
currency: Remove eudev 2023-07-18 13:07:31 +08:00
Xi Ruoyao
b177415824
Remove references to eudev 2023-07-18 13:07:01 +08:00
Xi Ruoyao
5b3594b13e
changelog: Eudev -> systemd-udev change is sysv-only 2023-07-18 13:04:13 +08:00
Xi Ruoyao
2cbb6135ed
Merge branch 'xry111/systemd-udevd-for-sysv' into trunk 2023-07-17 11:55:43 +08:00
Xi Ruoyao
51c7e709c0
udev: Update SBU and DU 2023-07-17 11:53:12 +08:00
Xi Ruoyao
f24a041cd4
udev: Remove two udev rules requiring a full systemd installation
Or they'll produce some error messages saying "cannot execute
systemd-sysctl or systemd-vconsole-setup".
2023-07-17 10:14:18 +08:00
Xi Ruoyao
870d24c5cb
bootscripts: udev: Set SYSTEMD_LOG_TARGET=kmsg for udevd
This makes udevd send log entries to kmsg buffer and sysklogd will
pick them up.

Ideally we should use "syslog" here, but at the time udevd starts,
sysklogd has not started yet and /dev/log does not exist.  So udevd
cannot open /dev/log and it will still use stderr as a fallback.  We
cannot make udevd depending on sysklogd either, because it would cause a
circular dependency...
2023-07-17 09:40:59 +08:00
Xi Ruoyao
06610cefab
dependencies: Update for Udev
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;.
2023-07-17 00:03:04 +08:00
Xi Ruoyao
4ca4e8b1ba
udev: Fix a typo 2023-07-16 23:29:18 +08:00
Xi Ruoyao
f7c36d049f
udev: Create /usr/{lib,share}/pkgconfig
They are not created in chapter 7.5, so we should create them before
installing files into them.
2023-07-16 13:46:20 +08:00
Xi Ruoyao
cce6c92463
udev: Install man pages from systemd man pages tarball 2023-07-16 12:06:37 +08:00
Xi Ruoyao
13288b9165
SysV: Add MarkupSafe and Jinja2
Jinja2 is needed for building udev from systemd.
2023-07-16 11:12:36 +08:00
Xi Ruoyao
a289860668
Replace eudev with udev from systemd 2023-07-16 11:11:12 +08:00
Xi Ruoyao
c7ee38fb5a
bootscripts: Use /bin/udevadm instead of /sbin/udevadm
We are switching from eudev to systemd-udev for SysV.  Systemd installs
udevadm into /usr/bin, and at least a part of its function can be used
as non-root user, so we'll no longer put it into /usr/sbin.
2023-07-16 10:04:12 +08:00
Xi Ruoyao
1053282e5f
man-db: Update known test failures, again
I was too naive: actually a lot of tests fail with groff-1.23.0 and
they'll show up with "-k".
2023-07-16 00:52:41 +08:00
Xi Ruoyao
fcf943d52e
man-db: Document a test failure (started with groff-1.23.0) 2023-07-16 00:40:49 +08:00
Pierre Labastie
31e62b94b6 Typo 2023-07-15 15:26:11 +02:00
Bruce Dubbs
f00e5f980d Package updates.
Update to iana-etc-20230629.
Update to linux-6.4.3.
Update to  libxcrypt-4.4.36.
Update to groff-1.23.0.
Update to perl-5.38.0.
2023-07-14 22:45:12 -05:00
Xi Ruoyao
f976691d53
kernel: Remove CONFIG_SYSFS_DEPRECATED
It's already removed from Linux 6.4.

Link: https://git.kernel.org/torvalds/linux/c/721da5cee9d4
2023-07-11 07:44:39 +08:00
Xi Ruoyao
b551c5d602
dependencies: Perl is a build dependency for Libxcrypt 2023-07-05 02:54:31 +08:00
Bruce Dubbs
337b9c85bc Fix libxcrypt url 2023-07-03 17:23:14 -05:00
Xi Ruoyao
c2325070af
shadow: Allow using bcrypt and yescrypt, and use yescrypt as the default
Yescrypt is the current default password hashing algorithm of Fedora
and Debian.  See [1] for its advantage.

Now we have libxcrypt providing the implementation of bcrypt and
yescrypt, we can switch to yescrypt as well.  We also don't need to
adjust the rounds for SHA512 anymore.

[1]:https://www.fedoraproject.org/wiki/Changes/yescrypt_as_default_hashing_method_for_shadow#Detailed_Description
2023-07-03 21:28:36 +08:00
Xi Ruoyao
f4313a75c8
libxcrypt: Fix a typo 2023-07-03 19:36:58 +08:00
Xi Ruoyao
c273fc81ec
currency: Remove two unneeded special cases 2023-07-03 18:19:51 +08:00
Xi Ruoyao
9c88d3e6cc
pkgconf: Switch back to upstream release tarball :)
Upstream says: "update release tarball location because dynadot is a
shitty registrar".

Link: https://github.com/pkgconf/pkgconf/commit/437c2a3218bf
2023-07-03 18:11:38 +08:00
Xi Ruoyao
8772b7b4be
current: Use GitHub API for applicable packages 2023-07-03 18:08:54 +08:00
Xi Ruoyao
e43b7e7eb8
currency: Add libxcrypt 2023-07-03 17:53:41 +08:00
Xi Ruoyao
bf7d32821e
currency: Use https for git remote, and only fetch history since r11.2
It can save some network download time.
2023-07-03 17:24:59 +08:00
Xi Ruoyao
19ff1dadd1
currency: Refactor http_get_file to avoid duplicating preg_match
Check special cases and return early.
2023-07-03 17:22:17 +08:00
Xi Ruoyao
48834cf197
Merge branch 'xry111/libxcrypt' into trunk 2023-07-03 06:17:06 +08:00
Xi Ruoyao
9ceb623400
Package update
- Update to iproute2-6.4.0 (#5277)
- Update to linux-6.4.1 (#5276)
2023-07-03 06:14:40 +08:00
Xi Ruoyao
ac5f78c4bf
Merge branch 'trunk' into xry111/libxcrypt 2023-07-02 22:11:05 +08:00
Xi Ruoyao
cc5eb637aa
pkgconf: Use the Gentoo mirror for now :(
BugLink: https://github.com/pkgconf/pkgconf/issues/302
2023-07-02 20:31:17 +08:00
Xi Ruoyao
d6e7cda825
kbd: Simplify the instruction for doc installation 2023-07-01 16:00:45 +08:00
Bruce Dubbs
4cd0193c96 Package Updates.
Update to iana-etc-20230615.
Update to vim-9.0.1671.
Update to util-linux-2.39.1.
Update to linux-6.3.10.
Update to kbd-2.6.1.
Update to gettext-0.22.
2023-06-30 12:58:10 -05:00
Xi Ruoyao
1adc941436
dependencies: Add Libxcrypt dependency info 2023-06-30 06:57:35 +08:00
Xi Ruoyao
f652d5bb26
gcc-pass2: Disable libsanitizer
Building libsanitizer needs libcrypt.  Disable it so we don't need to
add libxcrypt into Chapter 6.
2023-06-30 06:32:31 +08:00
Xi Ruoyao
c727d7e7f7
Add libxcrypt 2023-06-30 04:05:51 +08:00
Xi Ruoyao
bbfb090d2a
glibc: Disable obsolete libcrypt implementation
I've not bothered to write an explanation for --disable-crypt because it
will likely be the default of Glibc-2.38, then we may drop it from the
command lines.
2023-06-30 03:19:20 +08:00
Douglas R. Reno
ce9ec4f126 gettext: Use gettext-version instead of a hardcoded version (which is
now out of date) for /usr/share/gettext-0.21.1
2023-06-23 10:48:45 -05:00
Xi Ruoyao
0fe3bb04a7
Create man page symlinks for awk, cc, pkg-config, and lex 2023-06-21 14:35:58 +08:00
Xi Ruoyao
89375e276b
prologue/why: Tell why pkgconf is used instead of pkg-config 2023-06-19 19:48:17 +08:00
Xi Ruoyao
8b0e004346
dependencies: list GDC along with GNAT as a GCC external dependency
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).
2023-06-19 19:08:51 +08:00
Xi Ruoyao
1a823d576a
dependencies: Add dependencies to pkgconf or systemd
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.
2023-06-19 19:04:23 +08:00
Xi Ruoyao
138b87f8d8
changelog: Add ticket number for pkgconf change 2023-06-17 18:19:10 +08:00
Xi Ruoyao
7cb24f473c
Package updates
Update to linux-6.3.8 (#5272)
Update to kbd-2.6.0 (#5273)
2023-06-17 15:38:43 +08:00
Xi Ruoyao
654a2f9ede
whatsnew: Update for pkgconf change 2023-06-17 15:14:12 +08:00
Rahul Chandra
36c4569b9f
Replace pkg-config with pkgconf 2023-06-17 15:14:12 +08:00
Xi Ruoyao
a3bd468940
glibc: Reword the reason to skip test-installation.pl
It won't work even on a "complete LFS system".
2023-06-11 21:20:02 +08:00
Bruce Dubbs
7e7600de9e Merge branch 'trunk' of git.linuxfromscratch.org:lfs into trunk 2023-06-09 12:42:36 -05:00
Bruce Dubbs
2ebf4143a8 Package updates.
Update to dbus-1.14.8.
Update to linux-6.3.6.
Update to Python-3.11.4.
2023-06-09 12:39:24 -05:00
Pierre Labastie
6256b16baf Kernel: IPV6 only appears if TCP/IP selected
Report by wen zhang.
Also fix formatting.
2023-06-07 08:25:45 +02:00
Xi Ruoyao
0f18f2b121
housekeeping after min-kernel bump
Update the rationale for min-kernel in hostreqs.  Add a note in
general.ent about the EOL of current min-kernel.  Realign the
backslashes in glibc instructions.
2023-06-05 23:20:48 +08:00
Xi Ruoyao
5e7593e6f0
pkgmgmt: Revert some of reword for "dependency hell" from Bruce
Use "library name" (instead of "library version") for SONAME (for now).
And "conflicting locations" may not be a problem if the symbol is at two
locations but they are exactly same (or ABI compatible).

For the details see lfs-dev discussion.

The current word is still not perfect (we've not defined "the name of a
shared library" at all), so I guess we'll need to make a major revision
for the entire "upgrading issue with shared libraries" thing in the
future.
2023-06-04 19:31:59 +08:00
Xi Ruoyao
d4a32f958f
changelog: Fix the entry for MarkupSafe 2023-06-04 19:23:22 +08:00
Bruce Dubbs
88c3e8b0f8 Merge branch 'trunk' of git.linuxfromscratch.org:lfs into trunk 2023-06-03 17:49:16 -05:00
Bruce Dubbs
87fbad76f1 Package updates.
Update to iana-etc-20230524.
Update to MarkupSafe-2.1.3 (Python Module)
Update to linux-6.3.5.
Update to openssl-3.1.1.
Update to meson-1.1.1.
Update to diffutils-3.10.
Update to bc-6.6.0.
2023-06-03 17:48:12 -05:00
Pierre Labastie
732ce30389 Remove a remap="configure" attribute in eudev
remap="configure" means it is for configuring the build before
running make (or ninja), not for configuring the system
after the package is installed. We don't have a special attribute
for that.
2023-06-01 17:41:32 +02:00
Bruce Dubbs
360371a30f Minor rewording 2023-05-28 19:57:28 -05:00
Bruce Dubbs
d0da969c43 Reword library conflict paragraph. 2023-05-27 17:07:58 -05:00
Xi Ruoyao
55a29ccad2
pkgmgt: Mention the "dependency hell" issue 2023-05-27 19:05:06 +08:00
Ken Moffat
0aba9cbb0c Fix to past changelog:
util-linux-2.39 is in both books.
2023-05-25 21:29:19 +01:00
Ken Moffat
507bf71541 sysv book: Remove unneeded group sgx from eudev. 2023-05-25 21:27:33 +01:00
Bruce Dubbs
bf1e3fa174 Tweak ninja currency 2023-05-19 12:18:39 -05:00
Bruce Dubbs
0a7df4c5db Skip a problem test in util-linux. 2023-05-18 19:33:31 -05:00
Bruce Dubbs
fb5f62be63 Speling 2023-05-18 15:33:34 -05:00
Bruce Dubbs
1fde5b2617 Package updates.
Update to util-linux-2.39.
Update to linux-6.3.3.
Update to libcap-2.69.
Update to grep-3.11.
Update to flit_core-3.9.0.
Update to eudev-3.2.12.
2023-05-18 13:36:37 -05:00
Xi Ruoyao
8287b51963
glibc: Revive test failure note about old kernel or CPU
But consolidate them into one informative entry as we cannot really test
the instructions on many old systems.
2023-05-16 11:11:01 +08:00
Xi Ruoyao
70927b9964
gawk: Run the test suite as tester
One test named pma fails if running it as root.
2023-05-15 22:56:49 +08:00
Bruce Dubbs
cd8339aa0b Minor grammar fix 2023-05-13 10:46:29 -05:00
Xi Ruoyao
384d643f3b
changelog: Fix XML grammar error
Interestingly, this was not detected by jhalfs.
2023-05-13 18:13:20 +08:00
Xi Ruoyao
b2ef0209a0
Package update and add changelog for systemd runtime issue fix
Update to less-633 (#5251)
Update to linux-6.3.2 (#5255)
Update to xz-5.4.3 (#5252)
Update to gawk-5.2.2 (#5253)
2023-05-13 17:38:48 +08:00
Xi Ruoyao
6d4ba5f08a
gcc: Note some additional test failures 2023-05-13 15:09:44 +08:00
Xi Ruoyao
740ee46aef
systemd: Fix runtime issues exploited by GCC 13 (#5254)
Switch to "meson setup" from the plain "meson" by the way.
2023-05-10 16:26:26 +08:00
Xi Ruoyao
9ae3d8ad31
whatsnew: Update for GCC 13.1
And let's discourage reusing scripts.
2023-05-08 19:13:27 +08:00
Pierre Labastie
2e215ea434 Merge branch 'bdubbs/gcc13' into trunk
I fixed libstdc++ soversion in the wrong branch
2023-05-07 13:15:46 +02:00
Pierre Labastie
45800cdf42 Fix libstdc++ soversion
It's needed in the "stripping" page.
2023-05-07 13:14:29 +02:00
Xi Ruoyao
0eb98bde5f
coreutils: Explain gl_cv_macro_MB_CUR_MAX_good=yes 2023-05-07 10:56:05 +08:00
Xi Ruoyao
8051256700
psmisc: Run the test suite
It seems the package has provided the test suite since some time point.
2023-05-03 11:21:54 +08:00
Xi Ruoyao
465ada75f3
gcc: Add libhwasan and libstdc++exp into contents and short desc
TODO: HWAsan needs Linux 6.4 (not released yet) and a recent Intel CPU.
So it the kernel and hardware support is available, we may see more
test failures.  I'll try it out on my new system...
2023-05-03 11:15:43 +08:00
Xi Ruoyao
9781ec5bae
gcc: Document the meaning of --disable-fixincludes 2023-05-02 22:49:48 +08:00
Xi Ruoyao
050335d4bd
gcc: Update known test failures for GCC 13 2023-05-02 21:25:09 +08:00
Bruce Dubbs
5336349498 Typo 2023-05-01 22:37:19 -05:00
Bruce Dubbs
04be2abd11 Package updates.
Update to vim-9.0.1503.
Update to iana-etc-20230418.
Update to sysvinit-3.07.
Update to iproute2-6.3.0.
Update to linux-6.3.1.
2023-05-01 12:48:53 -05:00
Bruce Dubbs
a6c73fe5b2 Merge branch 'bdubbs/gcc13' into trunk 2023-05-01 10:50:18 -05:00
Thomas Trepl
a4e48bc4ec Fix double dashes 2023-05-01 16:04:45 +02:00
Thomas Trepl
b0120361f3 Readd configure accidently commented completely. 2023-05-01 16:03:01 +02:00
Thomas Trepl
0bf058f512 Use x.y.z in pck.ent for kernel 2023-05-01 11:49:45 +02:00
Thomas Trepl
dacc477609 Fix typo 2023-05-01 11:46:01 +02:00
Thomas Trepl
f6bfa6a08b Upgrade to iproute2-6.3.0 2023-05-01 11:37:06 +02:00
Thomas Trepl
0c83920af3 Upgrade to linux-6.3.1 2023-05-01 11:34:45 +02:00
Thomas Trepl
b371ee7b8c Comment out TIME_T_32_BIT_OK 2023-05-01 11:29:12 +02:00
Bruce Dubbs
a28bb20e62 Alternate fix for Ch6 coreutils. 2023-04-27 10:19:31 -05:00
Bruce Dubbs
bd5b888ad3 Create new branch for gcc13 2023-04-27 10:01:17 -05:00
Xi Ruoyao
ed48f32609
openssl: Clarify the condition when 30-test_afalg.t fails 2023-04-16 20:21:50 +08:00
Xi Ruoyao
e310df86e5
util-linux: Clarify the condition of hardlink failure 2023-04-16 20:21:50 +08:00
Xi Ruoyao
d1cbe535c1
dbus: Enable tests
Though many tests are disabled w/o optional dependencies, we can at
least run a dozen of tests.
2023-04-16 20:21:50 +08:00
Bruce Dubbs
5a98711aa4 Be consistent with library contents. 2023-04-15 14:34:07 -05:00
Xi Ruoyao
fb58db34a7
Revert "libelf: Add libelf.so.1 symlink into contents"
This reverts commit 01a8a15a96.

We don't list the versioned SONAME symlink for any shared libraries.

TODO: should we remove libelf-0.189.so from the list as well?  It sounds
like "libz.so.1.2.13" which is not listed too.
2023-04-16 00:59:27 +08:00
Xi Ruoyao
eee6a98c70
dependencies: Extend iproute2 external dependencies
"make" outputs messages for lacking libtirpc, libbpf, and libmnl
support, so document them.
2023-04-15 20:48:00 +08:00
Xi Ruoyao
01a8a15a96
libelf: Add libelf.so.1 symlink into contents 2023-04-15 17:17:52 +08:00
Bruce Dubbs
efd83dba4f Package updates.
Update to vim-9.0.1452.
Update to iana-etc-20230405.
Update to zstd-1.5.5.
Update to Python-3.11.3.
Update to meson-1.1.0.
Update to man-pages-6.04.
Update to linux-6.2.11.
2023-04-14 15:00:26 -05:00
Xi Ruoyao
a4b0c6d60a
eudev: Set /dev/kvm mode to 0660 and tag it "uaccess"
See the parent commit for rationale.
2023-04-10 16:17:17 +08:00
Xi Ruoyao
dfde6640eb
systemd: Set /dev/kvm mode to 0660
The default /dev/kvm mode is 0666 and we consider it "not so safe".
Like Tim said: "I'm also authenticating to my system all the time and
don't do a chmod -R 777 / after every boot."

With this option, the /dev/kvm mode is set to 0660 and it's tagged
"uaccess" so systemd-logind will add an ACL entry for users logged-in
locally.
2023-04-10 16:17:04 +08:00
Xi Ruoyao
e9ab2b3af0
glibc: libanl is a dummy now 2023-04-08 22:16:06 +08:00
Xi Ruoyao
91d8e69d18
glibc: Clarify the reference to POSIX.1b and POSIX.1c
The thread functions are in POSIX.1c, not POSIX.1b.

Both POSIX.1b and POSIX.1c are named "extensions" (plural form).  And
POSIX.1b is titled "Real-time" instead of "Realtime".
2023-04-08 21:47:29 +08:00
Ken Moffat
49f74ce701 Typo reported by rhubarbpieguy. 2023-04-07 22:39:03 +01:00
Xi Ruoyao
99c2da0f22
acknowledgments: Add Jamenson as present Portuguese translator 2023-04-04 16:54:00 +08:00
Bruce Dubbs
fc9a319910 Update currency for flit-core 2023-04-01 17:07:06 -05:00
Xi Ruoyao
fd531b84c9
flit-core: Kill revision='systemd'
I copied from jinja2 and edited the file, but forgot to remove this.
2023-04-01 05:47:17 +08:00
Xi Ruoyao
4e3fe1da0f
whatsnew: Add Flit-core
Also use the Normal Case for Flit-Core in a section title.
2023-04-01 03:42:52 +08:00
Xi Ruoyao
b57a3babaa
Update to linux-6.2.9 (#5230) 2023-04-01 01:51:19 +08:00
Xi Ruoyao
d98496d20c
gen-changelog: Mark security fix correctly 2023-04-01 01:45:36 +08:00
Xi Ruoyao
38eab97b1e
dependencies: Add flit-core 2023-04-01 01:22:40 +08:00
Xi Ruoyao
13eb8a3ce1
packages: Add flit-core into download page 2023-04-01 00:55:06 +08:00
Xi Ruoyao
22f0edf6ba
coreutils: Fix a bug in checksum utilities for failure reporting 2023-03-31 22:46:00 +08:00
Xi Ruoyao
bdaf4239ef
patches: Bump coreutils i18n patch md5sum for 9.2 2023-03-31 22:45:34 +08:00
Xi Ruoyao
0e3eb0bee4
wheel: Remove magic PYTHONPATH=src (unneeded with flit-core) and ...
duplicated pip3 explanation (already in flit-core page).
2023-03-31 22:26:06 +08:00
Xi Ruoyao
af612e9a19
Package updates
Update to linux-6.2.8 (#5230)
Update to xz-5.4.2 (#5233)
Update to coreutils-9.2 (#5232)
Update to libcap-2.68 (#5236)
Update to bc-6.5.0 (#5228)
Update to openssl-3.1.0 (#5227)
Update to texinfo-7.0.3 (#5235)
Update to grep-3.10 (#5234)
Update to tzdata-2023c (#5237)
Update to wheel-0.40.0 (#5229)
Add flit-core-3.8.0
2023-03-31 22:25:35 +08:00
Xi Ruoyao
92dbe964f1
Add a script to generate ChangeLog from "git diff" 2023-03-31 22:05:15 +08:00
Pierre Labastie
04038ad828 Clarify a sentence in "stripping"
Also fix a typo
Report by Rainer Fiebig
2023-03-31 11:03:18 +02:00
Thomas Trepl
d765208190 Fix typo and copy&paste error 2023-03-30 22:52:50 +02:00
Pierre Labastie
2bd704b520 zstd depends on zlib 2023-03-29 17:59:49 +02:00
Douglas R. Reno
e2df6431e9 reboot.xml: Minor typo fix
Thanks goes to rhubabpieguy on lfs-dev
2023-03-23 15:02:26 -05:00
Douglas R. Reno
12a86f36b1 Typo fix for convenience partitions
Thanks goes to Rainer Fiebig on lfs-dev.
2023-03-21 14:20:13 -05:00
Xi Ruoyao
d186249a44
kernel: [revision="systemd"] Disable CONFIG_PSI_DEFAULT_DISABLED
systemd-oomd needs PSI so it does not make sense to disable it by
default.
2023-03-21 15:38:56 +08:00
Xi Ruoyao
ad09ba40a1
openssl: Fix a typo, and add a link to OpenSSH issue 2023-03-15 15:00:34 +08:00
Xi Ruoyao
bbaf00d415
openssl: Add a warning about minor version bump and OpenSSH
Let's prevent bad thing from happening when we update to 3.1.0...
2023-03-15 14:17:56 +08:00
Xi Ruoyao
23a6c4c492
reboot: Use &blfs-book; to simply the link to BLFS
By the way, use &root; for root user.
2023-03-15 14:01:24 +08:00
Xi Ruoyao
9a9655b33b
chapter01/how: Remove commented out text about LFS LiveCD
Fix duplicated 'a LiveCD from a commercial distribution.'
2023-03-15 13:41:04 +08:00
Bruce Dubbs
c97cd380ca Package updates.
Update to bc-6.4.0.
Update to grep-3.9.
Update to linux-6.2.6.
Update to iana-etc-20230306.
2023-03-14 20:47:46 -05:00
Bruce Dubbs
b4829e6717 Add a note on host system installation 2023-03-13 15:43:12 -05:00
Bruce Dubbs
5fa9f630cd Add a pointer to troubleshooting boot problems 2023-03-12 00:26:41 -06:00
Bruce Dubbs
c6fa6912e1 Update a link 2023-03-11 23:11:16 -06:00
Douglas R. Reno
681e11a0b6 Typos from rhubarbpieguy 2023-03-11 19:04:09 -06:00
Xi Ruoyao
57ccb5b97f
kernel: Fix a typo
"parition".
2023-03-11 22:05:26 +08:00
Bruce Dubbs
d94339982d Add kernel configureation introduction.
Add an <important> note as an introduction to configuring the kernel.
2023-03-10 18:46:52 -06:00
Xi Ruoyao
0bf56aadbd
kernel: Some adjustments
- Mention NVME.
- Mention PAE (CONFIG_HIGHMEM64G) for 32-bit.
- Don't repeat the link to BLFS kernel config index twice on SysV.
  And don't display the long URL for it.
- Emphasis that BLFS UEFI kernel config is needed even if you'll use the
  UEFI bootloader of the host distro.
2023-03-10 18:53:48 +08:00
Xi Ruoyao
1026270951
Revert "kernel: Use <caution> for make defconfig and..."
This reverts commit d0a9bda4e6.

"Don't change anything enabled by defconfig" seems too strong.
2023-03-10 18:53:48 +08:00
Xi Ruoyao
34f1344072
Revert "Suggest make localmodconfig for kernel"
This reverts commit de679165f9.

localmodconfig does not work very well.  It can only *un*select things
already enabled as modules if the module is not loaded by the host.  It
won't select anything new, nor unselect unneeded things already set to
"y" instead of "m".

Maybe you think we can copy .config from a "mainstream" distro
(producing a highly modular kernel) and use "make localmodconfig", but
when we tested it with a Debian host kernel config, the resulted kernel
refuses to boot.

"make allmodconfig && make localmodconfig" does not work well either:
"allmodconfig" selects many things as y (these thing are not available
as a module) but "localmodconfig" fails to unselect them.
2023-03-10 18:53:48 +08:00
Bruce Dubbs
25cd02b9db Merge branch 'trunk' of git.linuxfromscratch.org:lfs into trunk 2023-03-09 19:51:42 -06:00
Bruce Dubbs
6e4dfa7528 Tweak kernel version in host requirements 2023-03-09 19:51:31 -06:00
Pierre Labastie
de679165f9 Suggest make localmodconfig for kernel
This is less generic than defconfig, and you can then tell
not to tweak options...
2023-03-08 22:27:34 +01:00
Xi Ruoyao
d0a9bda4e6
kernel: Use <caution> for make defconfig and...
tell people not to messing the options enabled by defconfig up.

Yes, I messed them up and shot my own foot.
2023-03-09 01:14:15 +08:00
Xi Ruoyao
835e40ce16
Adjustments for /dev/pts
1. Declare UNIX98 PTY requirement in host system requirements and check
   it in the script.  All desktop or server distros should have it now,
   but let's stop anyone from building on a embedded distro w/o UNIX98
   PTY early...
2. Use Expect test suite as a guard against mishandled $LFS/dev/pts.
3. No need to test the basic function of Expect in Binutils anymore
   because if ($LFS)/dev/pts is not good, the Expect test suite would
   have failed.
2023-03-08 11:25:48 +08:00
Xi Ruoyao
e0fb1098a4
kernel: Recommend to disable CONFIG_EXPERT
Let's not encourage users to try tricky things and shoot their own foot.

For systemd, if CONFIG_EXPERT is disable, CONFIG_FHANDLE will be enabled
automatically.  So there is no need to enable CONFIG_EXPERT and then set
CONFIG_FHANDLE manually.
2023-03-08 11:25:38 +08:00
Xi Ruoyao
271c856538
hostreqs: Use &min-kernel; for kernel version 2023-03-05 15:26:44 +08:00
Xi Ruoyao
e39d2aa9df
hostreqs: Remove commented out line 2023-03-05 15:22:24 +08:00
Xi Ruoyao
2efe1e8190
systemd: Document systemd-ac-power
It has been moved to /usr/bin for general use by upstream, so list it in
programs.
2023-03-05 15:20:24 +08:00
Xi Ruoyao
82d6a570b4
libelf: Remove run-native-test failure
It's fixed in 0.189.

(cherry picked from commit 4fd9716e15)
2023-03-05 13:39:23 +08:00
Xi Ruoyao
e2469c5a80
changelog: Mark linux-6.2.2 a security update 2023-03-05 13:01:04 +08:00
Xi Ruoyao
f54b8be70f
dependencies: List bzip2, xz, and zlib as libelf dependencies
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.
2023-03-05 11:09:11 +08:00
Xi Ruoyao
07b44dd348
make: Run test suite as unprivileged user 2023-03-05 10:57:09 +08:00
Xi Ruoyao
770e789527
Package updates
- 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
2023-03-05 10:57:09 +08:00
Xi Ruoyao
b789d88195
hostreq: Minor script adjustment
- Remove an extra whitespace breaking shebang (though our instruction
  does not use the shebang).
- Adjust the regex to allow several letters after the version number,
  and match grep version to the text.
- Raise Coreutils to 7.0 (for the host requirement script itself).  It
  was released in 2008 so I don't think it's a problem.
- Add a colon after the text "Compiler check" to match "Aliases:".
- Use grep -o instead of sed to make kernel version check simpler.
2023-03-05 10:01:40 +08:00
Bruce Dubbs
73e2b9c189 Add a changelog entry. 2023-03-04 16:29:00 -06:00
Bruce Dubbs
140e9a445d q 2023-03-04 16:26:31 -06:00
Xi Ruoyao
779b798e5f
whatsnew: Comment out all entries for a new release 2023-03-02 16:00:48 +08:00
Xi Ruoyao
55a40437f1
e2fsprogs: Update test failure info
Document the m_assume_storage_prezeroed failure.  The
u_direct_io failure is fixed by
https://github.com/tytso/e2fsprogs/commit/4cda25453f85.
2023-03-02 11:08:37 +08:00
Bruce Dubbs
e06bdbe2be Update changelog after 11.3 release 2023-02-28 10:16:07 -06:00
Xi Ruoyao
9547b2e7f8
hostreqs: Remove "required by udev" for kernel
We don't run the newly built udev daemon before rebooting to LFS kernel.
2023-02-28 14:59:19 +08:00
Bruce Dubbs
e37bc9c774 Merge branch 'trunk' of git.linuxfromscratch.org:lfs into trunk 2023-02-27 09:46:55 -06:00
Bruce Dubbs
0ba2ee5a1f Bump minimum gcc requirement to 5.1 2023-02-27 09:46:44 -06:00
Xi Ruoyao
e122d24da1
changelog: Fix a ticket URL 2023-02-22 16:40:42 +08:00
Bruce Dubbs
ea601535b8 Uncomment glibc in whatsnew. 2023-02-19 12:48:20 -06:00
Pierre Labastie
b9173ee06f Less can use pcre2 2023-02-19 15:12:26 +01:00
Pierre Labastie
c68d57a81a Finish adding revision attributes in dependencies
This was half done. Furthermore, dbus had completely disappeared.
Also fix an url to sphinx, that is now in BLFS.
2023-02-19 14:38:58 +01:00
Xi Ruoyao
4049a4b6c8
e2fsprogs: Add configuration section about mke2fs.conf 2023-02-19 20:42:33 +08:00
Pierre Labastie
dd8293bfa9 Popt is not a dependency of Pkg-config
It was removed eleven years ago from the book. Pkg-config itself removed
it at version 0.27.

Prompted by "__mint" on #lfs-support.
2023-02-19 11:37:49 +01:00
Xi Ruoyao
3608d06aa8
grub: Add upstream fixes patch for unrecognized ext2/3/4 features (#5219) 2023-02-19 14:30:57 +08:00
Xi Ruoyao
d94d606048
packages: Mention Glibc stable branch in its package info
See the discussion at
https://sourceware.org/pipermail/libc-alpha/2023-February/145672.html.
2023-02-17 15:38:16 +08:00
Xi Ruoyao
ce779ec8c1
configuration: Use [DHCPv4] instead of [DHCP] for systemd .network file
The upstream has splitted [DHCP] into [DHCPv4] and [DHCPv6].  While we
are only enabling DHCPv4 in the example setting (in most scenario DHCPv6
is not strictly needed as SLAAC is sufficient), just use [DHCPv4]
instead of [DHCP].
2023-02-17 15:10:35 +08:00
Bruce Dubbs
e4a9ca459e Merge branch 'trunk' of git.linuxfromscratch.org:lfs into trunk 2023-02-13 12:11:47 -06:00
Bruce Dubbs
37a4d447b9 Update to man-pages-6.03. 2023-02-13 12:11:36 -06:00
Douglas R. Reno
d649720e1f Update stats for dbus, systemd, markupsafe, and jinja2 2023-02-12 19:41:03 -06:00
Bruce Dubbs
4990283f08 Typo 2023-02-12 14:19:14 -06:00
Bruce Dubbs
7c92d6dd82 Update build times an sizes.
This update changes the default number of cores used to build
packages to 4.  A section is also added to host requirements
to recommend a minumum number of cores and memory size.
2023-02-12 13:43:45 -06:00
Bruce Dubbs
c6550e11c8 Package updates.
Update to iana-etc-20230202.
Update to zstd-1.5.4.
Update to Python3-3.11.2.
Update to e2fsprogs-1.47.0.
Update to dbus-1.14.6.
Update to linux-6.1.11.
Update to libcap-2.67.
Update to bc-6.2.4.
2023-02-11 16:11:35 -06:00
Bruce Dubbs
583156ac09 Combine tcl documentation instructions together. 2023-02-08 20:15:02 -06:00
Xi Ruoyao
ce536f9c9c
openssl: Fix a command to view man page
"ssl.7ssl" is in man7, not man3.
2023-02-08 10:29:24 +08:00
Douglas R. Reno
74af59de3c Package Updates
Update to OpenSSL-3.0.8 (Security Update)
Update to e2fsprogs-1.46.6 (Security Update)
2023-02-07 15:41:42 -06:00
Xi Ruoyao
f405318419
glibc: Note the sed for printf is a security fix
And add a comment about the difference from upstream commit.
2023-02-06 23:59:26 +08:00
Douglas R. Reno
df6b08de57 Repackage the systemd man pages tarball to have a leading directory. 2023-02-06 09:50:56 -06:00
Xi Ruoyao
7f8335ae57
dependencies: List Jansson as Binutils external dependency
Both ld.bfd and ld.gold can use Jansson to validate the value of
--package-metadata=.
2023-02-05 23:34:02 +08:00
Xi Ruoyao
fcadbf41da
changelog: Add entries for recent changes 2023-02-03 15:44:13 +08:00
Xi Ruoyao
0f4ec3428c
libffi: Remove --disable-exec-static-tramp
It's not needed now since gjs-1.74 supports static trampoline.
2023-02-03 05:48:31 +08:00
Xi Ruoyao
f7b295dee8
libelf: Update test status
While the previously documented test failure is resolved by
binutils-2.40, a new test failure has shown up.
2023-02-03 05:44:28 +08:00
Xi Ruoyao
5f8b7fe1ab
bash: Add the explanation of test output, and document a known failure 2023-02-03 01:33:10 +08:00
Xi Ruoyao
19f4e4d6ea
mpfr: Fix a test case
Normally we don't fix test, but see the comment added into the XML file
for the rationale.

Update the number of tests by the way.
2023-02-02 21:04:40 +08:00
Xi Ruoyao
833f3efc01
glibc: Fix an issue identified upstream 2023-02-02 20:42:20 +08:00
Xi Ruoyao
2d215b5fc8
binutils: remove test failures resolved by upstream 2023-02-02 18:32:18 +08:00
Xi Ruoyao
8ac376e634
binutils: remove more empty man pages 2023-02-02 18:31:20 +08:00
Xi Ruoyao
59a0a3c1af
glibc: remove nss/tst-nss-files-hosts-long failure
It's UNSUPPORTED in chroot now, so we cannot see it in LFS build.
2023-02-02 17:29:38 +08:00
Xi Ruoyao
c6c1a068b9
glibc: Remove a sed useless for 2.37 2023-02-02 15:47:05 +08:00
Xi Ruoyao
727490c992
Package updates:
* Update to Glibc-2.37 (#5203)
* Update to bc-6.2.3 (#5204)
  - Update bc homepage as upstream requested
* Update to linux-6.1.9 (#5205)
* Update to vim-9.0.1273 (#4500)
2023-02-02 15:27:17 +08:00
Xi Ruoyao
b5955260a5
stripping: Add an <important> about updated packages
We've received enough reports for systems with zlib security update
broken by stripping :(.
2023-02-01 20:04:51 +08:00
Bruce Dubbs
b79e65a04f Merge branch 'trunk' of git.linuxfromscratch.org:lfs into trunk 2023-01-31 13:21:43 -06:00
Bruce Dubbs
d7d7bd5484 PAckage updates.
Update to texinfo-7.0.2.
Update to linux-6.1.8.
Update to diffutils-3.9.
2023-01-31 13:20:49 -06:00
Xi Ruoyao
2d516c7a35
dependencies: use https for LessTif homepage 2023-01-29 12:16:47 +08:00
Xi Ruoyao
59d90df78a
systemd: remove an extra word "both"
It seems introduced unintentionally.  I'm wondering what has happened
with David's text editor :).
2023-01-27 01:45:12 +08:00
Xi Ruoyao
139b77e4a2
decorate new note about $() and `` 2023-01-27 01:44:05 +08:00
Bruce Dubbs
adba2dae8a Add a comment about nested command substitution
"The command below shows an example of nested command substitution
 using two methods: backquotes and a $() construct. It could be
 rewritten using the same method for both substitutions, but is
 shown this way to demonstrate how they can be mixed. Generally
 the $() method is preferred."
2023-01-26 10:40:42 -06:00
Douglas R. Reno
c349b4a2b3 Fix the build of systemd due to the last commit 2023-01-25 15:01:12 -06:00
David Bryant
69854d2a87 Edit systemd chapters for grammar and idiom. 2023-01-25 13:10:44 -06:00
Bruce Dubbs
b74c128bc9 Update to MarkupSafe-2.1.2. 2023-01-22 10:00:57 -06:00
Xi Ruoyao
ea0bc1e803
binutils: remove a trailing punctuation in libsframe desc
to match other descriptions.
2023-01-17 09:59:43 +08:00
Bruce Dubbs
f4ad927972 Really remove libsframe.a 2023-01-16 14:04:19 -06:00
Thomas Trepl
67332442f8 Add libsframe.so.0.0.0 to list of online-libs (used by strip itself) 2023-01-16 13:28:45 +01:00
Thomas Trepl
358ed3cd80 Add libsframe.so.0.0.0 to list of online-libs (used by strip itself) 2023-01-16 13:26:15 +01:00
Thomas Trepl
9707b7ba32 Fix download url of binutils 2023-01-16 07:57:51 +01:00
Bruce Dubbs
3b6f5e2c5f Package updates.
Update to iana-etc-20230109.
Update to binutils-2.40.
Update to bc-6.2.2.
Update to linux-6.1.6.
Update to man-db-2.11.2.
Update to mpfr-4.2.0.
Update to ncurses-6.4.
Update to xz-5.4.1.
2023-01-15 13:50:48 -06:00
Xi Ruoyao
178d268fbf
dependency: add po4a as external dependency for man-db
If po4a is installed, man-db will install translated man pages man(1)
etc.
2023-01-15 12:27:47 +08:00
Xi Ruoyao
af944eba93
dependencies: hide entries for another revision 2023-01-06 12:55:50 +08:00
Bruce Dubbs
45a010ac7a Update timezone for builds 2023-01-02 14:15:43 -06:00
Pierre Labastie
c7f74cdbb6 Typo 2023-01-02 08:02:24 +01:00
David Bryant
8190ca0715 Clarify some things, correct grammatical & idiomatic errors. 2023-01-01 17:15:09 -06:00
Bruce Dubbs
f0cb1e415f Update lfs-bootscripts version. 2023-01-01 12:37:14 -06:00
Thomas Trepl
aea43840d8 Remove obsolete sed no longer required in mpc-1.3.1 2023-01-01 09:34:12 +01:00
Bruce Dubbs
730208ab9f Put change log in order 2022-12-31 20:59:02 -06:00
Bruce Dubbs
eaa8345ad9 Merge branch 'trunk' of git.linuxfromscratch.org:lfs into trunk 2022-12-31 20:57:43 -06:00
David Bryant
d8ec0ed3f6 Clarified some things that seemed unclear.
Altered references to "a startup file" to "startup files".
Added detail to a reference to the bash info page. Tweaked
description of mafunctions caused by invalid locales. Clarified
descripton of extended ASCII characters. Every byte has the
high-order bit *set*; in extended ASCII, that bit is *on*.
2022-12-31 11:51:56 -06:00
Bruce Dubbs
1e6c82bb09 Merge branch 'trunk' of git.linuxfromscratch.org:lfs into trunk 2022-12-31 11:15:00 -06:00
Bruce Dubbs
888103db3c PAckage updates.
Update to iana-etc-20221220.
Update to sysvinit-3.06.
Update to mpc-1.3.1.
Update to meson-1.0.0.
Update to man-pages-6.02.
Update to linux-6.1.1.
Update to file-5.44.
Update to bc-6.2.1.
2022-12-31 11:14:04 -06:00
David Bryant
dfb8516c83 Minor tweaks: a couple of commas, "your time zone". 2022-12-31 10:23:56 -06:00
David Bryant
06df566407 Removed superfluities, corrected spelling and capitalization.
Clarifed things that seemed unclear. Removed some phrases that
said little. Broke up a run-on sentence. Etc.
2022-12-30 12:57:01 -06:00
Douglas R. Reno
e193e35799 Patch systemd against CVE-2022-4415 2022-12-28 09:52:50 -06:00
Ken Moffat
fb3f5d7424 Typo in ticket number in changelog. 2022-12-25 04:10:42 +00:00
David Bryant
c5c1e86e00 Clarify by reordering some sentences; improve English idiom.
Corrected capitilization of some titls. Reworked some clumsy
sentences. Eliminated one tautological sentence.
2022-12-24 20:02:12 -06:00
David Bryant
7ae2811988 Standardize spelling of "userspace". 2022-12-24 10:00:23 -06:00
David Bryant
8972a361d0 Clean up / clarify disccussion; correct capitalization of titles.
Clarify discussion of "eth0" vs "enp5s0". Remove superfluous verbiage.
Improve punctuation. Patch grammatical errors (subject / verb).
Improve English idiom in a few places.
2022-12-22 14:46:52 -06:00
David Bryant
6beb8ce055 Add a missing XML tag (<filename class="directory">). 2022-12-22 12:23:21 -06:00
David Bryant
6ef50538b2 Correct capitalization, patch up grammar and idiom.
Regularized capital letters in <title> lines. Changed a dependent
clause and made it independent. Smoothed out some bumpy verbiage
in the "History" section. Removed superfluous verbiage. Clarified
some trounbleshooting advice.
2022-12-21 16:13:16 -06:00
David Bryant
c1fec3a922 Improved English idiom; clarified a few descriptions of scripts. 2022-12-21 10:42:53 -06:00
David Bryant
c30b3ccf26 Remove redundant verbiage and clarify a few things. 2022-12-21 10:18:58 -06:00
David Bryant
9c753b58f1 Improve English idiom and make additional changes, for clarity.
Rephrased a clumsy sentence. Broke a run-on sentence in two.
Used adverbs, and the possessive case, where necessary.
2022-12-20 13:57:22 -06:00
David Bryant
0785a5e6dd Remove redundant verbiage; improve English idiom. 2022-12-20 09:48:03 -06:00
David Bryant
a613960c4b Removed redundant verbiage. Rewrote a very clumsy sentence.
To speak of a difference (implying subtraction) and a factor
(multiplication) as equivalent is confusing at best.
2022-12-20 09:26:41 -06:00
David Bryant
d15c80e1b4 Capitalize package names. Patch up a clumsy sentence. Change an
instance of the imperative mood to the indicative. Improve the
description of the "halt" and "init" programs.
2022-12-19 13:44:36 -06:00
David Bryant
8cde104598 Capitalize the name of the package. Standardize references to
"ext{234}" file systems. Clean up English idiom here and there.
Standardize the spelling of "file system"; unless it's part of a
command or something like that, it should be written as two words.
2022-12-17 14:17:55 -06:00
David Bryant
9bb4939772 Patched clumsy verbiage. Added two items (hardlink, lsfd) to the list
of installed programs. Added (link to setarch) to the five items that
link to setarch. Corrected erroneous description of swapoff. Clarified
some of the "short descriptions". Changed the imperative mood to the
indicative mood, and added an "s" to a couple of possessive nouns.
2022-12-16 16:24:32 -06:00
Xi Ruoyao
c8e374b510
gawk: LN='ln -f' is an overridden make variable, not environment variable
`LN='ln -f' make install` won't work.

The terminlogy "override" is from section 9.5 of "info make".
2022-12-16 15:51:50 +08:00
David Bryant
baf93f520f Capitalized the name of the package. Removed "pwait" from the
Short Descriptions list; it has already beeen dropped from the
Installed Programs list.
2022-12-15 12:44:44 -06:00
David Bryant
59109ad714 Reordered a clumsy sentence. 2022-12-15 12:24:46 -06:00
David Bryant
26954aad8d Correct inconsistency in list of installed programs (awk --> gawk). 2022-12-15 11:07:56 -06:00
Bruce Dubbs
dbaab99694 Merge branch 'trunk' of git.linuxfromscratch.org:lfs into trunk 2022-12-15 10:24:33 -06:00
Bruce Dubbs
c9aabf13a1 Package updates and a minor fix.
Ensure a gawk hard link is updated in Chapter 8.
Update to iana-etc-20221209.
Update to vim-9.0.1060.
Update to iproute2-6.1.0.
Update to xz-5.4.0.
Update to bash-5.2.15.
Update to psmisc-23.6.
Update to mpc-1.3.0.
Update to python3-3.11.1.
Update to procps-ng-4.0.2.
2022-12-15 10:23:03 -06:00
David Bryant
0c4501b5b1 Patch capitalization. Substitute "spell-checking" for "spell":
"Spell" can be a noun or a verb, but it's never an adjective.
Clarify the description of "xxd".
2022-12-14 17:36:16 -06:00
David Bryant
3c5ecc9121 "Test suite" is two words. 2022-12-14 08:47:53 -06:00
David Bryant
7699773071 Test suite is two words. Added the definite article where idiomatic. 2022-12-13 10:50:11 -06:00
David Bryant
4ecb5ada8e Changed "behaviour" to "behavior" throughout the LFS book. 2022-12-12 14:44:57 -06:00
David Bryant
258e50e86f Modified list of tc subcommands to match the man page. Note that the
help screen doesn't match the man page. Also, there's an action
("tc chain") in the synopsis section that is not further explained
in the body of man tc. Documentation may be inaccurate.
2022-12-12 11:48:42 -06:00
Xi Ruoyao
c1a6bf9b71
iproute2: ifcfg and routef are gone
Link: https://git.kernel.org/pub/scm/network/iproute2/iproute2.git/commit/?id=adddf30cd85fc0191450218905b37a29814d35a2
Link: https://git.kernel.org/pub/scm/network/iproute2/iproute2.git/commit/?id=1eaebad2c536b9ef9bd047a45438ae7ed273ee91
2022-12-12 20:24:12 +08:00
David Bryant
75aef881b7 Changed "front-end" to "front end". Webster says the hyphenated
version is an adjective. When "front end" is a noun, as it is here,
it should be spelled as two words.
2022-12-11 16:47:14 -06:00
David Bryant
f07d91ba37 Corrected idiom in section about "arpd". Corrected spelling of "front
end" -- it's twp words, not one. Changed square brackets to parentheses;
square brackets should only be used to delimit editorial remarks. Removed
one definite article referring to the plural; "the" implies a single
object. Changed "amount" to "number". In English, an amount refers to
a continuous quantity, while a number refers to discrete objects (like
networking packetts). Added a qualifier in the description of "ip":
the list of commands is not exhaustive. Modified a few program
descriptons to improve consistency of style. Changed QOS and COS
to QoS and CoS after researching these abbreviations on the internet.
"Quality of Service" and "Class of Service" appear, to me, to be the
most common way of writing these phrases.
2022-12-11 16:29:49 -06:00
Xi Ruoyao
2fe0fd1eb2
grub: HFS and HFS+ are file systems, not files 2022-12-11 16:35:41 +08:00
Xi Ruoyao
85064a128b
grub: fix a typo 2022-12-11 16:33:44 +08:00
David Bryant
abc36486d0 Clarified directions in re: UEFI. Tweaked verbiage to make it more
idiomatic. Clarified meaning of configure options. Made several minor
revisions in program descriptions to improve readability. Added a
little explanatory material. Changed imperative mood to indicative
mood where that was appropriate.
2022-12-10 14:56:15 -06:00
David Bryant
9729cec83d Corrected description of what the package does: groff processes both
text and images. Patched English idiom. Added a little information
about Pinyin (Chinese spelled like English) and grap (an old Unix
command for creating graphs).
2022-12-10 12:56:35 -06:00
David Bryant
2da001c127 Clarified the description of what the programs in this package do.
Added a note about xargs. Corrected English idiom.
2022-12-10 11:37:17 -06:00
David Bryant
daad59ec7b Improved the description of "cmp". 2022-12-10 06:58:31 -06:00
Xi Ruoyao
b46fa02ee0
coreutils: fix a typo 2022-12-10 14:50:10 +08:00
Xi Ruoyao
20d6b70237
libffi: style "libffi" (library name) with XML tag
As we are using "Libffi" for package name, I guess "libffi" (lower case)
means the library.  So decorate it like how we handle other library
names.
2022-12-10 14:23:40 +08:00
David Bryant
f8ac129f73 Corrected English idiom throughout. Clarified the description of
the package. Modified some program descriptions to improve their
accuracy, or to correct clumsiness of style.
2022-12-09 15:45:13 -06:00
David Bryant
75d64be391 Improve English idiom. Use the indicative mood. 2022-12-09 14:27:24 -06:00
Xi Ruoyao
02912947e8
perl: use "MAJOR.MINOR" instead of "Major.Minor", and explain "patch level"
We are already using "MAJOR" and "MINOR" in OpenSSL, do the same here.

The semantic versioning documentation (https://semver.org/) always use
"patch level", not "Patch level".  But let's explain it a little to
prevent puzzling people.
2022-12-09 16:05:26 +08:00
Xi Ruoyao
4640b37d96
ninja: style "ninja" (for the program) with <command>
Or the mix up of "ninja" and "Ninja" will seem puzzling...
2022-12-09 15:40:14 +08:00
Xi Ruoyao
30f5283fab
python: style "libffi.so" correctly 2022-12-09 15:38:15 +08:00
Xi Ruoyao
3c07bb9488
libtool: libldtl is for dynamic loading, not dynamic linking
On wikipedia, "dlopen" redirects to "dynamic loading" and there is a
specific warning:

"Dynamically loaded library" redirects here. Not to be confused with
dynamically linked library.
2022-12-09 15:35:05 +08:00
David Bryant
a3ebe8aa2b Corrected capitalization of the package name. This was hard to do
because some references appear to refer to the program itself, and
not to the package. Corrected English idiom here and there.
2022-12-08 17:23:07 -06:00
David Bryant
d9883060de Capitalized references to the package. Clarified the descriptions of
pip3 -- the pip program processes both commands (e.g., install) and
options (e.g., --no-index). Expressed option / command descriptions
in the iindicative mood. The imperative mood should only be used to
tell the reader what to do, not in explanatory verbiage. Inserted
the definite article here and there. Corrected a misspelled instance
of the indefinite article: we don't say "an utility" because the
initial phoneme in "utility" is pronounced as YOO.
2022-12-08 15:13:28 -06:00
David Bryant
8e751f7319 Added an explanation. Python is a language. python3 is a program.
Inserted the definite article where idiom requires it. Added more
detail to an option description. Broke an extremely long paragraph
into three pieces; cleaned up English idiom and punctuation all the
way through this section. In "Short  Descriptions", inserted periods
where appropriate, and clarified the description of python3, which
is a program, not a language.
2022-12-07 12:54:04 -06:00
David Bryant
e9c46b31c7 Add more details to the descriptiion of what this package does.
Correct capitalizatiom throughout, and tweak English idiom.
2022-12-07 11:10:58 -06:00
David Bryant
8f10e6fa49 Patch up English idiom here and there. 2022-12-06 14:56:58 -06:00
David Bryant
5042efcc2f Fix a grammatical error (subject / verb number). Improve English idiom. 2022-12-06 14:45:38 -06:00
David Bryant
67dfc3b371 Revert a previous change; -des is actually three options, -d, -e, & -s.
Thanks to Pierre for pointing this out.
2022-12-06 14:07:23 -06:00
David Bryant
8199f8e631 Removed some circomlocutions. Made "option" singular; "des" only
appears once. Improved idiom ("as shown below"). "command line" is
two words; "front end" is two words. "Swiss Army" is a trademark;
it should be caputalized.
2022-12-06 12:55:34 -06:00
David Bryant
ee65db4626 Fix a grammatical error (subject and verb must agree in number) and
improve English idiom.
2022-12-06 11:59:03 -06:00
David Bryant
7c263b6db0 Clean up capitalization. Improve English idiom. Use the present
perfect tense when appropriate. Replace "dlopening" with "opening
dynamically linked libraries" ... "dlopen" may be a Linux command,
but that doesn't make it a verb in English.
2022-12-06 11:33:02 -06:00
David Bryant
79ac947fda Correct capitalization. Correct spellig: "test suite" is two words.
Use the personal relative pronoun "who" when referring to a person.
2022-12-06 11:04:37 -06:00
David Bryant
9aff8c4523 Corrected capitalization and modified some descriptions of libraries,
for consistency of style.
2022-12-06 10:27:41 -06:00
Bruce Dubbs
a1bc9df91f Update to linux-6.0.11 (Security update). 2022-12-03 14:37:04 -06:00
Bruce Dubbs
38311c3ea3 Merge branch 'trunk' of git.linuxfromscratch.org:lfs into trunk 2022-12-01 17:41:14 -06:00
Bruce Dubbs
82e98d0b0e Package updates.
Update to iana-etc-20221122.
Update to xz-5.2.9.
Update to tzdata-2022g.
Update to texinfo-7.0.1.
Update to tcl-8.6.13.
Update to meson-0.64.1.
Update to linux-6.0.10.
Update to gawk-5.2.1.
2022-12-01 17:40:16 -06: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
Pierre Labastie
aea16f699e Sync shadow "rounds" parameter to blfs
Otherwise, As Xi has noticed, the password set for root at the end
of lfs may use the value 5000 for rounds, and not be changed, even
if later the number of rounds is increased.
2022-11-25 09:30:45 +01:00
Xi Ruoyao
9a23a75c5d
Revert "shadow: add spaces around &mdash;"
This reverts commit 0298c764d8.

We don't use spaces around &mdash anywhere else in the book.
2022-11-23 11:18:29 +08:00
David Bryant
30f3041a7d Rewrote a cumbersome sentence to make it clearer. Capitalized the
names of packages. Clarified verbiage in re PIE & ASLR. Improved the
description of SSP, and tightened it up. Clarified the instructions
for running tests concurrently. Modified descriptions of tests that
fail. Patched up punctuation. Spelled "set up" correctly: "setup" is
a noun. The phrasal verb used here is spelled as two words. Use the
word "directives" to describe "#include" and similar preprocessor
instructions. Add periods to some otherwise complete sentences.
2022-11-22 16:19:04 -06:00
Bruce Dubbs
66d32d7e29 word choice 2022-11-22 15:19:47 -06:00
Xi Ruoyao
a66cd7f020
shadow: update desc of libsubid
I was using the transitive verb "process" here, not the noun.  Use
another word to avoid the ambiguity.  Also add "and groups" because
there is also subgid alongside subuid.
2022-11-23 01:21:39 +08:00
Xi Ruoyao
0298c764d8
shadow: add spaces around &mdash;
IMO it makes the rendering prettier.
2022-11-23 01:04:04 +08:00
Xi Ruoyao
9af3d7f77d
shadow: fix (clarify?) the consequence of missing "users" group
To me "has been created" is not correct.  Or maybe it's some advanced
usage of English I don't understand...
2022-11-23 00:59:43 +08:00
Xi Ruoyao
31e9ff9527
gcc-pass1: housekeeping after --disable-decimal-float removal 2022-11-23 00:58:21 +08:00
Xi Ruoyao
1dd37a1807
changelog: add entries for change today 2022-11-22 23:40:38 +08:00
Xi Ruoyao
3845081b00
changelog: remove a buggy revision="systemd" 2022-11-22 23:34:06 +08:00
Xi Ruoyao
26e3001b7f
coreutils: update test failure
sort-NaN-infloop no longer fails now, it seems covered up by PIE or SSP.

test-getlogin keeps failing in Bruce's build.  Not sure how to reproduce
the failure deterministically.
2022-11-22 23:31:52 +08:00
Xi Ruoyao
e3187f4895
wheel: build the wheel archive of wheel itself
This avoids running "python3 setup.py install" (indirectly), which may
not work correctly in the future with Python 3.12.
2022-11-22 18:24:26 +08:00
Xi Ruoyao
e354e58462
package updates
- update to linux-6.0.9
- update to libpipeline-1.5.7
- update to xz-5.2.8
- update to man-db-2.11.1
- update to mpfr-4.1.1
2022-11-22 18:24:25 +08:00
Xi Ruoyao
f01f8a56da
gcc: remove --disable-decimal-float from pass 1 and 2
We need to enable decimal float here or MPFR will be built w/o decimal
float support.  Then 2 of 183 tests will be skipped, and this will also
cause an ICA issue.

Q: Why we need decimal float in pass 1?
A: We need pass-1 GCC with decimal float support to build decimal float
routines in pass-2 libgcc.
2022-11-22 18:22:53 +08:00
David Bryant
54948b710c Straighten out capitalization, correct a few grammatical errors,
improve English idiom, clarify a few things, remove superfluous
verbiage, etc.
2022-11-21 16:13:06 -06:00
David Bryant
651f491b51 Merrriam-Webster says "alongside" is one word. Clarified some muddled
verbiage. Used the subjunctive mood once. "Test suite" is two words, not
one. Patched some unidiomatic English. Used the plural "headers" when
discussing ELF objects. Used singular verbs to describe "gprofng", for
consistency with other items.
2022-11-18 15:43:45 -06:00
David Bryant
d6346a7e9b Rectify a redundancy/explain how to say tcl. Use correct spelling for
the Binutils package. Patch up an ungrammatical sentence (the plural
subject "instructions" requires pural verbs).
2022-11-18 14:44:18 -06:00
David Bryant
ea90fca7bf Clarify the description of the -G option. 2022-11-18 13:14:57 -06:00
David Bryant
cc197d00ce Corrected a grammatical error: the subordinate clause "that offers ..."
modifies the plural noun "libraries"; it must use a plural verb.
Clarified how many "configure" options Readline uses. Tightened the
prose, and used the definite article in lieu of the indefinite article,
because only one readline.pc file can possibly be the "correct" one.
2022-11-18 12:35:53 -06:00
Xi Ruoyao
7115c88406
chapter08: fix minor grammar issues 2022-11-18 14:29:26 +08:00
Xi Ruoyao
f8b1860631
pkgmgt: reword the description of cfg files handling
Let's not miss the point...
2022-11-18 14:13:12 +08:00
Xi Ruoyao
b1c8283fe7
chapter08: reword description of compiler optimizations
We don't recommend customizing optimizations, but we use optimizations
provided by package default or release build mode.

Reword the paragraph so the people won't be puzzled once they see
"--enable-optimizations" in Python, or "--buildtype=release" (to prevent
unoptimized build) in BLFS meson commands.
2022-11-18 13:57:47 +08:00
Xi Ruoyao
1cc301fbb3
glibc: Decapitalize nsswitch.conf
In UNIX file names are case-sensitive.  You cannot capitialize it even if
it appears in a title.
2022-11-18 13:25:38 +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
Xi Ruoyao
7054cc64ea
glibc: it should be --disable-werror, not --disable-Werror
Please try not to use the "replace" feature of the text editor blindly.

Appendix C of the GNU C Library Reference Manual clearly says:

'--disable-werror'
     By default, the GNU C Library is built with '-Werror'.  If you wish
     to build without this option (for example, if building with a newer
     version of GCC than this version of the GNU C Library was tested
     with, so new warnings cause the build with '-Werror' to fail), you
     can configure with '--disable-werror'.
2022-11-18 12:11:04 +08:00
David Bryant
27601131e4 Correctd the spelling of "Werror" -- it's "-Werror" in GCC, but
it's "--disable-error" in Glibc. Thanks to Thomas Trepl for spotting
my mistake.
2022-11-17 16:14:42 -06:00
David Bryant
091d624df5 Correct capitalization, spelling, grammar, and idiom. Tighten the
prose by removing some circumlocutions.
2022-11-17 12:08:13 -06:00
David Bryant
ebecd08c05 Corrected grammar, spelling, and idiom in chapter 7. 2022-11-16 13:16:35 -06:00
Pierre Labastie
f2dff2db69 Shadow: /usr/include/shadow is an installed dir 2022-11-16 17:46:26 +01:00
Thomas Trepl (Moody)
b9721fd7f0 Fix type (replace a / by a \ as line continue maker) 2022-11-16 08:46:22 +01:00
Bruce Dubbs
89c3f71df2 Tidy up some spacing issues 2022-11-15 00:31:18 -06:00
Bruce Dubbs
8ffb2771fe Update currency for sysvinitwq 2022-11-14 10:31:59 -06:00
Xi Ruoyao
8e8f87ef14
packages: also use &pypi-src; for Jinja2 and MarkupSafe
The md5sums are not changed.
2022-11-12 13:12:18 +08:00
Xi Ruoyao
c4fc75e67c
changelog: fix a ticket number 2022-11-12 00:19:09 +08:00
Xi Ruoyao
7936ffb2c8
stylesheets: add Simplified Chinese for lfs-l10n
It should not affect English book.
2022-11-12 00:05:09 +08:00
Bruce Dubbs
9292384bac Package updates and a fix.
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.
2022-11-11 09:44:13 -06:00
Xi Ruoyao
5347af84cf
wheel: switch download URL
Avoid the necessity to upload a tarball onto anduin.  The URL does not
contain long checksum and it produces a tarball with the same md5sum.
2022-11-11 00:07:42 +08:00
Xi Ruoyao
5156c40031
systemd: fix and simply the command to disable systemd-sysupdate
"systemd disable" seems a typo...

And we don't need the ".timer" suffix because these .service units are
tied to the .timer units.
2022-11-04 10:42:03 +08:00
David Bryant
6dff9ef949 Edit English idiom. punctuation, etc., throughout chapter 6. 2022-11-03 19:29:02 -05:00
Douglas R. Reno
172185a9f7 Update to systemd-252. 2022-11-03 14:33:43 -05:00
David Bryant
f84d8a6f28 Edited for clarity, punctuation, and English idiom. 2022-11-03 13:12:33 -05:00
Xi Ruoyao
2c8cb1743e
grub: copy the "no tuning" warning from BLFS
It's reported that a GRUB build with CFLAGS=-O2 is broken.
2022-11-03 10:02:44 +08:00
Bruce Dubbs
6dfe1df593 Update to openssl-3.0.7 (Security update). 2022-11-01 13:10:38 -05:00
Xi Ruoyao
d45f50d26d
glibc: fix parallel build issue with make-4.4
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
2022-11-01 11:05:05 +08:00
Bruce Dubbs
3f4304998a Package updates.
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.
2022-10-31 18:42:52 -05:00
Xi Ruoyao
61f825108e
toolchaintechnotes: reword the explanation about rebuild libstdc++ in gcc pass 2 2022-10-31 14:50:35 +08:00
Xi Ruoyao
decf315c6d
toolchaintechnotes: fix a typo 2022-10-30 22:30:53 +08:00
Xi Ruoyao
6b052ef554
toolchaintechnotes: reword the reason "cc-lfs not usable on pc"
The problem is not "gcc building system doesn't know cc-lfs can run on
pc", but "cc-lfs really cannot run on pc".

Let's stop anyone from thinking about "why not just tell the gcc
building system the fact".
2022-10-30 22:29:24 +08:00
David Bryant
f6820bb618 Corrected spelling here and there. Regularized capitaization of package
names, corrected idiom / punctuation, and removed extraneous verbiage.
2022-10-30 09:23:55 -05:00
David Bryant
019499e43b Patched up an ambiguous sentence. Thank you for pointing it out, Xi. 2022-10-30 07:31:31 -05:00
David Bryant
c389124842 Orthography: spell cross-compile and its derived forms consistently.
Add some paragraph breaks to enhance readability. Correct English idiom
here and there. Capitalize titles consistently, fix punctuation.
2022-10-28 13:46:11 -05:00
David Bryant
4e2645304c Standardize spelling of "cross-compile" and its derivatives. Clean up
English idiom. Remove some superfluous verbiage here and there.
2022-10-28 11:37:59 -05:00
David Bryant
13702d9f05 Cleaned up English idiom just a trifle. 2022-10-28 10:10:10 -05:00
Douglas R. Reno
edbf3d91c9 Typo fix from rhubarbpieguy 2022-10-27 08:58:51 -05:00
Ken Moffat
7e7d8600e8 Dependencies: util-linux can use libcap-ng, not libcap. 2022-10-27 03:02:39 +01:00
Xi Ruoyao
fc60dac761
errata: some reword about security advisory
Do not use "whether there are any known security vulnerabilities"
because it's highly unlikely there was none.

Many people just build LFS for an experiment, then they don't need to
maintain their system.  The maintaining is only necessary for a real
desktop or server system.
2022-10-23 10:26:03 +08:00
David Bryant
a0ed201f90 Edited fpr idiom and style. Broke up a couple of run-on sentences.
Mr. Webster  says it's "up-front". Reworked one sentnece to avoid
using a colon after the verb "to be".
2022-10-21 14:05:59 -05:00
David Bryant
eaf26ea596 Edited for style, idiom, and punctuation. Emphasized the need to continue
applying security patches even after LFS is "complete".
2022-10-21 12:59:34 -05:00
Xi Ruoyao
347bbda9c1
man-pages: update the number of provided pages for 6.00
$ find -name '*.[0-9]' | wc -l
2438
2022-10-18 17:15:51 +08:00
Pierre Labastie
6c172931d1 Use FAQ page instead of just FAQ
so that whether FAQ is plural or singular is not important :)
2022-10-18 10:43:10 +02:00
Pierre Labastie
b00c7d9905 Clarify why pie might be disabled
Just reading a textbook and LFS does not imply anything for compilation...
2022-10-18 10:43:10 +02:00
Xi Ruoyao
0f9c02a9bf
chapter01/how: small fix
I guess a "chroot environment" don't know how to use the tools?
2022-10-18 16:19:02 +08:00
Xi Ruoyao
e15831967a
resources: remove bad usage of <uri>
RFC 3986:

      URI         = scheme ":" hier-part [ "?" query ] [ "#" fragment ]

      hier-part   = "//" authority path-abempty
                  / path-absolute
                  / path-rootless
                  / path-empty

So "linuxfromscratch.org" is not a URI, nor "irc.libera.chat".
2022-10-18 16:10:36 +08:00
Xi Ruoyao
72523a13db
prologue/why: paramaterize "eudev" with revision attribute 2022-10-18 15:47:08 +08:00
Xi Ruoyao
a1cf444e9f
prologue/why: mention that less is used by many packages
Why remove "used by man-db"?  Now some user may think "I don't use this
thing, I'll just use vim" and skip it :(.
2022-10-18 15:32:11 +08:00
Xi Ruoyao
d114dd3530
prologue/why: another "device" -> "device nodes" change
You can't throw a NVIDIA GTX 690 into /dev.
2022-10-18 15:22:51 +08:00
Xi Ruoyao
af6ea195fe
prologue/standards: rewrite LSB description
Well, somehow this paragraph has become too imprecise.

1. We don't support IA64.  Both Intel and AMD uses x86_64 now, which is
   referred as "AMD64" because it's first proposed by AMD.  Intel
   attempted to use IA64 (which is a VLIW architecture completely
   different with x86_64) to compete with AMD64, but failed.  Then Intel
   adapted x86_64.
2. The architecture specific part belongs to Core and Desktop.
3. LFS cannot conform to both AMD64 and IA32 because we don't support
   multilib.  It's "or", not "and".
2022-10-18 14:41:25 +08:00
David Bryant
294ea05cd1 Clarified verbiage here and there. Used the present perfect tense instead
of the simple present to make the order of events clearer.
2022-10-17 16:12:16 -05:00
David Bryant
86f386863e Websters spells it up-to-date. Added one word for clarity. 2022-10-17 15:46:25 -05:00
David Bryant
6d46ee62eb Made grammatical corrections, clarified a few things. 2022-10-17 15:30:27 -05:00
David Bryant
ee0959b64a Corrected grammar and idiom, clarified a couple of things. 2022-10-17 15:19:01 -05:00
David Bryant
99ecc76577 Clarified a few things, edited for idiom and punctuation. 2022-10-17 15:00:38 -05:00
Bruce Dubbs
c5d10b5afb Update to linux-6.0.2 (Security update). 2022-10-17 14:12:15 -05:00
David Bryant
62a598f586 Corrected grammatical errors, polished English idiom. Tried
to introduce some variety by rephrasing "This package contains ...".
2022-10-15 17:01:50 -05:00
David Bryant
b64efa28d0 Clarfied a few points and corrected English idiom. 2022-10-15 15:05:17 -05:00
David Bryant
2e45b62428 Polished the prose; fixed some punctuation. 2022-10-15 14:28:46 -05:00
David Bryant
7739ad32c7 Edited for English idiom and general readability. Fixed some
punctuation here and there.
2022-10-15 13:25:26 -05:00
David Bryant
e0ae8cba63 Improved English idiom and puctuation. Short, punchy sentences are good! 2022-10-15 12:26:28 -05:00
Bruce Dubbs
efae0398b4 Package updates.
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.
2022-10-14 12:18:56 -05:00
Xi Ruoyao
6e24d20038
dependency: add LLVM (w/ Clang) as external dependency of kernel
Some kernel features (like, building the kernel with LTO) already
requires Clang.
2022-10-12 14:29:20 +08:00
Pierre Labastie
8b539af84d First attempt at clarifying "Important Preliminary Material" 2022-10-09 18:46:28 +02:00
Bruce Dubbs
312d536a35 Fix systemd currency 2022-10-09 10:55:14 -05:00
Xi Ruoyao
68588615e6
temp bash: fix "support/config.guess: Permission denied"
In bash-5.2 tarball config.guess is not executable, so we need to run
the script with an explicit "sh".
2022-10-09 13:35:48 +08:00
Bruce Dubbs
b6d3512cc5 Typo 2022-10-06 10:07:36 -05:00
Pierre Labastie
793f9087f1 Fix sanity check in chapter 5
When I changed the sanity check to remove the "dummy.c" file, I
inadvertently used "gcc" instead of "$LFS_TGT-gcc". Which of course
finds the host gcc...
2022-10-06 09:07:42 +02:00
Xi Ruoyao
ceb61b9e38
binutils: add a command to list failed tests 2022-10-05 18:32:56 +08:00
Douglas R. Reno
8921ba4bae Emergency kernel update
Update to Linux-5.19.13

If you are using a laptop with an Intel GPU, it's imperative that you
update immediately if you are running Linux-5.19.12. Failure to upgrade
may result in permanent damage to the LCD display on your laptop.

The root cause of this is improper backporting of bugfixes for the i915
DRM driver in the kernel.
2022-10-04 22:09:33 -05:00
Xi Ruoyao
3bac16dcd4
glibc: update total test count
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).
2022-10-03 18:06:09 +08:00
Xi Ruoyao
de154344b8
binutils: don't wrap "gold" in <command>
"gold" is not an installed program (it's named "ld.gold").  So IMO it's
not proper to use <command>.
2022-10-03 18:06:09 +08:00
Xi Ruoyao
154a69586f
binutils: gas tests fail because race condition
Again, I sincerely wish libtool can suffer a painful death.
2022-10-03 18:06:09 +08:00
Xi Ruoyao
6582ddc527
pkgmgt: fix two typos 2022-10-02 21:02:16 +08:00
Xi Ruoyao
9b2dedc676
package: add optional instruction to change the owner of downloaded packages to root
Many users will create a user with the same username and UID so the
files will still be owned by his/her.  So make it optional by "If you
won't assign the same UID for your user in the LFS system".
2022-10-02 19:11:57 +08:00
Xi Ruoyao
bde421e48d
reboot: fix /dev/shm unmounting command
/dev/shm may be a mount point, or a symlink.
2022-10-02 16:12:26 +08:00
Pierre Labastie
8e0c191b9b umount /dev/shm before rebooting
Now that /dev/shm is always a mountpoint, it needs to be umounted
otherwise dev cannot be umounted.
2022-10-02 09:52:59 +02:00
Pierre Labastie
b3daf01578 Typos reported by "rhubarbpieguy" 2022-10-02 09:49:12 +02:00
David Bryant
4349661a7f Corrected grammatical errors and cleaned up English idiom. 2022-10-01 17:03:20 -05: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
Bruce Dubbs
d11d449565 Merge branch 'trunk' of git.linuxfromscratch.org:lfs into trunk 2022-09-30 11:12:01 -05:00
Xi Ruoyao
543c94cb9c
libstdc++ "stage 3" is not rebuilt for the same reason as "stage 2"
I'm pretty sure "stage 2" libstdc++ (installed in ch6) is already fully
featured.  The reason to rebuild the stage 3 libstdc++ (or entire
stage 3 gcc) is same as the reason to rebuild every packages in multiple
chapters: to "settle down" it.

Merge the content of
https://www.linuxfromscratch.org/lfs/faq.html#rebuild-ch8 into the book
as an explanation.
2022-09-30 17:10:06 +08:00
Xi Ruoyao
77b46db0a8
toolchaintechnotes: highlight why the example (ubuntu vs android) needs "os" field 2022-09-30 16:24:55 +08:00
Xi Ruoyao
e18ba697eb
toolchain technical note: rewrite the descrption for triplet
- Don't say "most building system", refine the dicussion for autoconf.
  Other building systems may use a variant of triplet, or use a
  completely different system designation.
- Explain why a triplet may contain 4 fields in detail. "Histroical
  reason" is not really correct because 3-field triplet is still used
  today for BSD, Fuchsia, IOS, Mac OS X (darwin), Solaris, etc.
- "machine" triplet to "system" triplet (strictly speaking, only the
  first field in the triplet is for the machine).

Why we need to say "vendor can be omitted" explicitly: we mention "gcc
-dumpmachine".  On some distros (like Ubuntu) the output has no vendor
field.  If you think this is too nasty, please remove both.
2022-09-30 10:43:19 +08:00
Bruce Dubbs
488b43aaeb New packages and an xml fix.
Update to bc-6.0.4.
Update to linux-5.19.12.
Fix an xml error.
2022-09-29 20:44:01 -05:00
Bruce Dubbs
79789000a8 Package updates.
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.
2022-09-29 18:32:56 -05:00
David Bryant
cc0e77d267 Fix English idiom / clarify "General Instructions" section. 2022-09-29 16:30:17 -05:00
Pierre Labastie
eb30b32333 Revert "Update libreadline soversion (used in stripping)"
This reverts commit 0665add6d8.

new version of bash is not yet in the book!
2022-09-29 21:32:29 +02:00
Pierre Labastie
0665add6d8 Update libreadline soversion (used in stripping) 2022-09-29 21:16:06 +02:00
David Bryant
3c4e129d8c Make minor corrections to English idiom / style. 2022-09-29 14:12:10 -05:00
Xi Ruoyao
891b48b84b
toolchaintechnotes: update description about libstdc++
Since r11.0-r199, libstdc++ pass 2 is built as a part of gcc pass 2, not
in chroot.
2022-09-29 20:08:56 +08:00
Xi Ruoyao
de94423625
toolchaintechnotes: revert "second pass" -> "second version" change
"Pass 1" and "Pass 2" have specific meaning in LFS.
2022-09-29 19:43:54 +08:00
Xi Ruoyao
ea9263cbf0
toolchaintechnotes: add the rationale for cross compiling ch6 packages
"need to be cross compiled" alone does not make too much sense: we
compile these packages in chapter 8 anyway.  The real reason forcing a
cross compilation is circular dependency: if building A needs B but
building B needs A, we'll have to cross compile at least one of A and B
or we won't be able to build either in the chroot.
2022-09-29 19:38:47 +08:00
Xi Ruoyao
a243b36b8b
toolchaintechnotes: gcc -dumpmachine is similar to config.guess, but not same
Many distros have some customized things in gcc -dumpmachine.  RHEL uses
x86_64-redhat-linux-gnu, and Ubuntu uses x86_64-linux-gnu ("vendor"
field omitted).  So don't use "same" here, and also mention the "vendor"
field is sometimes omitted.
2022-09-29 19:12:18 +08:00
Xi Ruoyao
aa9ade1fba
more clarification of "log in as lfs user"
And, don't recommended to "log in as lfs through a DM" anymore: if you
log in through a DM then start a terminal emulator, the first shell in
the emulator is often a non-login shell.  It's not something we expect.
2022-09-29 18:26:52 +08:00
Xi Ruoyao
199d14c997
addinguser: don't say "log in as lfs user"
"log in" is a specifically defined action on UNIces.  When you log in
as a user, an entry will be added into /run/utmp and /var/log/wtmp.
But when you switch to lfs with "su", this won't happen.

"man su" also describes "--login" as:

    Provide an environment similar to what the user would expect had
    the user logged in directly.

It's "similar to" logged in, not "really" logged in.

So, don't say "log in" or the users may assume they must really log in
as lfs in a VT or DM.
2022-09-29 17:52:11 +08:00
David Bryant
562062295e Polish up the prose in "Toolchain Technical Notes". Fix capitalization.
Rough edges remain. For instance, $LFS_TGT-ld is referenced, but not
clearly defined. Will need to discuss wirh other editors to resolve.
2022-09-28 14:56:52 -05:00
David Bryant
dd7f9df19f Cleaned up verbiage in unnumbered intro to part 3 (chapters 5 et seq). 2022-09-28 11:26:36 -05:00
David Bryant
ef93b66006 Adjust English idiom and clarify directions (chapters 4.5 and 4.6). 2022-09-27 13:42:07 -05:00
David Bryant
ec7b046623 Tweaked English idiom / clarified directiions in chapters 4.3 and 4.4. 2022-09-27 13:07:58 -05:00
David Bryant
2646c571d7 Clarify "mounting a partition" (chapter 2.7). 2022-09-27 12:21:38 -05:00
David Bryant
97f4747aaf Tweak introduction as Pierre Labastie suggested (chapter 4.2). 2022-09-27 12:11:23 -05:00
Xi Ruoyao
471a32e836
whatsnew: add a paragraph about PIE+SSP change 2022-09-27 10:47:11 +08:00
Xi Ruoyao
f427ba2336
kernel: adjust the instruction for mounting /boot
LFS and the host may use different /boot configuration, so do not assume
they'll share a /boot partition (two different /boot partition or only one
with separate /boot are possible).
2022-09-25 15:16:23 +08:00
Xi Ruoyao
4d04dc743f
init.d/swap: you can't mount a swap partition 2022-09-25 13:36:11 +08:00
Xi Ruoyao
f4066122e0
libelf: add a x86 specific test failure
It's caused by a minor GAS issue, which should be fixed in
binutils-2.40.

See https://sourceware.org/bugzilla/show_bug.cgi?id=29450 and
https://sourceware.org/bugzilla/show_bug.cgi?id=29451.
2022-09-25 12:56:08 +08:00
Xi Ruoyao
ad9fbd14ae
mounting: create &fstab; conventional entity and use it 2022-09-24 18:56:45 +08:00
Xi Ruoyao
f001ece905
creatingfilesystem: Refine the condition where a FS is needed
For example, a swap partition does not contain any FS.  And, if you want
to clone a partition, you can use

    dd if=/dev/<old-partition> of=/dev/<new-partition>

then it's unnecessary to create a FS on new-partition before operation.
This is sometimes faster than creating a new FS, mounting both
partition, then "cp -av" if the old-partition contains many small files.
2022-09-24 18:48:50 +08:00
David Bryant
2ed0e93787 Refine verbiage in chapter 4.2 (Creating a limited directory layout). 2022-09-23 15:52:30 -05:00
David Bryant
1cb4a25b36 Tweak English idiom in chapter 4.1 (Introduction) 2022-09-23 15:16:02 -05:00
David Bryant
81793c6efc Minor changes to verbiage in chapter 3.2 (All Packages) 2022-09-23 14:57:48 -05:00
David Bryant
50e70dbc1f Clarify verbiage in chapter 2.6 (Setting the $LFS Variable). 2022-09-23 14:08:34 -05:00
Xi Ruoyao
10d7c7a820
binutils: document a test failure
It happens on both x86_64 and aarch64.
2022-09-23 23:48:46 +08:00
David Bryant
b6a67d37b5 Clean up English idiom / grammar in chapter 3.1 (Introduction).
(Note that "errata" are plural; "erratum" is the singular nun.)
2022-09-22 17:08:43 -05:00
David Bryant
9011f2d242 Clean up grammar / idiom in chapter 2.7 (Mounting the New Partition) 2022-09-22 16:17:48 -05:00
David Bryant
4ca7966259 Corrected grammar / idiom / punctuation.
Also added an introduction explaining what a file system does.
2022-09-22 15:24:38 -05:00
David Bryant
58f92b0647 Correcting idiom / syntax again, based on feedback from Bruce & Doug. 2022-09-22 14:31:32 -05:00
Xi Ruoyao
b00063f2a5
partition: update the description for /tmp with tmpfs 2022-09-23 02:03:38 +08:00
Xi Ruoyao
fc472c83d9
partition: update examples for /opt
We don't use /opt for GNOME, so use Texlive as another example.
2022-09-23 01:40:51 +08:00
Xi Ruoyao
67756f3ec2
fix a typo 2022-09-23 01:31:26 +08:00
Bruce Dubbs
47a8542090 Update to expat-2.4.9 (Security Update). 2022-09-22 11:29:00 -05:00
Bruce Dubbs
01ecba7b30 Fix unmounting instruction in 7.13.2. Backup 2022-09-22 10:44:47 -05:00
Xi Ruoyao
dbab2a4519
kernel: add CONFIG_FRAMEBUFFER_CONSOLE, and mention CONFIG_DRM_FBDEV_EMULATION
Is there anyone using a blind system with serial console now? :)
2022-09-22 12:34:27 +08:00
David Bryant
6612f5441b Corrected English idiom and punctuation in chapter 2.4 (new partition). 2022-09-21 16:16:00 -05:00
David Bryant
925414842a Corrected English idiom, fixed some typos in chapter 2.3 (Stages) 2022-09-21 15:53:38 -05:00
David Bryant
17a807a99f Fix minor typo in chapter 2 "Host System Requirements". 2022-09-21 15:41:34 -05:00
David Bryant
1184a7e91b Fixed typos in chapter 1 "How to Build an LFS System". 2022-09-21 15:17:56 -05:00
Bruce Dubbs
81163bfc47 Remove debugging line 2022-09-21 10:02:10 -05:00
Xi Ruoyao
ab2929857e
fix a typo in changelog 2022-09-21 17:49:35 +08: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
Bruce Dubbs
cc8e57dc7a Update currency for libffi 2022-09-20 11:16:15 -05:00
Bruce Dubbs
670f55f539 Typos 2022-09-19 15:38:35 -05: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
4e381f952e
fix a typo 2022-09-19 12:10:26 +08:00
Xi Ruoyao
5f85f38260
reboot: add a comment for editors about why we don't provide reboot command 2022-09-19 11:03:29 +08:00
Xi Ruoyao
5de4fea42c
cleanup: use a stronger tone for removing la files 2022-09-19 11:00:21 +08:00
Bruce Dubbs
6d60bfc16f Chapter 11 text updates. 2022-09-18 16:57:53 -05:00
Pierre Labastie
cdc605303b Makefile: reinstate the dump-commands target 2022-09-18 08:29:18 +02:00
Pierre Labastie
99260fe3c9 Makefile: remove unneeded tabs 2022-09-18 08:27:58 +02:00
Xi Ruoyao
6cfe855a16
dependencies: remove patch runtime dependency on itself
Reported-by: Rahul Chandra <rahulshaku2@gmail.com>
2022-09-18 12:27:44 +08:00
Xi Ruoyao
ade96029ad
dependencies: bump grep external dependency on PCRE
It now checks for libpcre2-8, so link to PCRE2 instead of PCRE1.
2022-09-18 12:27:44 +08:00
Bruce Dubbs
4fb696f91c Merge branch 'trunk' of git.linuxfromscratch.org:lfs into trunk 2022-09-17 15:45:24 -05:00
Bruce Dubbs
13342a0718 Currency updates.
Fix currency for iana-etc, meson, and shadow due to the way github
changes when accessing pages via wget.
2022-09-17 15:43:51 -05:00
Xi Ruoyao
b6a6f6c791
afterlfs: use entity for root user 2022-09-18 00:17:12 +08:00
Xi Ruoyao
43e4861936
afterlfs: "links" -> "links or lynx"
Lynx has a slight advantage: no recommended dependencies.
2022-09-18 00:16:00 +08:00
Xi Ruoyao
9bbfbeabc9
afterlfs: tweak key combination description
Use DocBook <keycombo><keycap> to decorate the keys.  Change "Fn" to
"Fx" because some small keyboards have a "Fn" (function) key to
multiplex keys.
2022-09-18 00:13:14 +08:00
Xi Ruoyao
9f8335ee8d
afterlfs: several fixes
- Use <emphasis role="bold"> for bold, instead of <command>.
- Remove "X window" as some graphical environments are Wayland-based.
- "Full BLFS" -> "BLFS", and "partial BLFS" -> "basic LFS" (I guess some
  content is copied from Basic BLFS).
2022-09-17 21:06:14 +08:00
Pierre Labastie
226784a1cb afterlfs: Fix blfs "links" url 2022-09-17 14:57:01 +02:00
Pierre Labastie
afd19ad54a afterlfs: typo and add dependencies of make-ca 2022-09-17 14:52:38 +02:00
Xi Ruoyao
59350d1c7b
afterlfs: remove trailing spaces, and fix two obvious "- -" 2022-09-17 20:36:13 +08:00
Xi Ruoyao
46b05a0832
gawk: remove duplicated "-i" in a sed command 2022-09-17 20:34:13 +08:00
Bruce Dubbs
ea94a21b79 Update Chapter 11
These changes provide additional information on how to install additional
packages from BLFS after LFS is complete.
2022-09-16 21:37:34 -05:00
Xi Ruoyao
9644bf9f08
fix typos in ticket numbers in changelog 2022-09-15 11:43:25 +08:00
Xi Ruoyao
e010845004
Revert "bash: document egrep warnings in tests"
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...
2022-09-15 11:33:01 +08:00
Xi Ruoyao
78817e1b26
binutils: fix a typo 2022-09-15 11:32:32 +08:00
Bruce Dubbs
b17680d8ea Package updates and corrections.
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.
2022-09-14 21:58:07 -05:00
Xi Ruoyao
e4c6597593
groff: add back "build the package"
It was removed unintentionally during the removal of -j1...
2022-09-14 12:19:50 +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
Bruce Dubbs
95789f1ae4 Minor wording change. 2022-09-13 12:49:26 -05:00
Xi Ruoyao
395eb462ba
bash: document egrep warnings in tests
The test suite says "Any output from any test, unless otherwise noted,
indicates a possible anomaly".  So we should note those warnings.
2022-09-14 01:34:15 +08:00
Xi Ruoyao
2844cded1c
libtool: document test failures related to grep-3.8 2022-09-14 01:32:24 +08:00
Xi Ruoyao
36c4562187
ncurses: mention libncurses++w in contents 2022-09-14 00:15:12 +08:00
Xi Ruoyao
951e07508b
ncurses: remove an outdated sentence about libncurses++w.a
We now build the C++ binding as shared library.
2022-09-14 00:08:40 +08:00
Xi Ruoyao
0d487e09e6
gcc: update sanity check command and output for default PIE
Scrt1.o is used for PIE, instead of crt1.o.
2022-09-14 00:03:45 +08:00
Xi Ruoyao
fb5ad92588
gcc: document that libssp is normally unused
We are enabling default SSP now, so if someone runs "ldd /usr/bin/true"
and see libssp is not used he/she may be puzzled.
2022-09-13 17:59:05 +08:00
Pierre Labastie
8a16c6b4ec Restore gawk to working version
Revert an inadvertent commit, sorry
2022-09-13 09:34:50 +02:00
Xi Ruoyao
9d3ba7b850
vim: no need to download spell files
They are already in the tarball, so just install them if needed.
2022-09-12 21:02:48 +08:00
Pierre Labastie
e5e442cd32 Typo in a comment 2022-09-11 19:02:41 +02:00
Pierre Labastie
7bd0378b41 Remove trailing spaces 2022-09-11 18:54:49 +02:00
Pierre Labastie
c37e846f4b Replace tabs with spaces 2022-09-11 18:42:58 +02:00
Pierre Labastie
84e1bb6b85 Update changelog for PIE/SSP in GCC 2022-09-11 10:55:25 +02:00
Pierre Labastie
63c2e8bb66 Comment on binutils test failures with pie/ssp 2022-09-11 10:55:25 +02:00
Xi Ruoyao
c10a327376
gcc: fix link to PIE & SSP note
DocBook does not handle xref to note properly (#pie-ssp-info not
generated).
2022-09-11 13:57:47 +08:00
Xi Ruoyao
e5aa02fe17
kernel: enable ASLR and SSP
It does not make too much sense to protect the userspace with PIE+ASLR
and SSP but leave the kernel alone...
2022-09-11 12:09:18 +08:00
Xi Ruoyao
a710d35e1f
Revert "linux kernel: disable CONFIG_USERFAULTFD to avoid CVE-2022-2590 for now"
This reverts commit 098f4de336.

CVE-2022-2590 is fixed in Linux >= 5.19.6.
2022-09-11 12:01:31 +08:00
Xi Ruoyao
e502de1ab0
gcc: some reword of PIE/SSP/ASLR note
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.
2022-09-11 11:35:06 +08:00
Pierre Labastie
8d3b2541da gcc-pass1: fix bold "and" in command explanation 2022-09-10 14:01:42 +02:00
Pierre Labastie
1bade3f439 Document the --enable-default-pie/ssp options
Also document test failures in gcc chapter 8
2022-09-10 13:41:38 +02:00
Pierre Labastie
0611f706d5 Use default-pie and default-ssp flags in gcc
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
2022-09-09 16:15:06 +02:00
Bruce Dubbs
917868fc69 Package Updates.
Update to shadow-4.12.3.
Update to Python3-3.10.7.
Update to linux-5.19.7.
Update to less-608.
Update to grep-3.8.
2022-09-07 14:59:45 -05:00
Xi Ruoyao
696a7b4a83
whatnow: update online resources list for maintainance
Bugtraq is dead since 2021, use oss-sec instead.

For CERT, cert.org redirects to CMU and us-cert.gov redirects to US
CISA (https://www.cisa.gov/uscert/).  I'm not familiar with those so
left those for a US citizen to add :).
2022-09-05 10:04:33 +08:00
Xi Ruoyao
fb66c4c583
some http -> https changes 2022-09-05 09:52:05 +08:00
Xi Ruoyao
baecd49c48
gcc-pass2: remove unnecessary --enable-initfini-array option
Forgot to remove this one when I removed it in pass 1...

Reference: https://gcc.gnu.org/r12-1328
2022-09-01 14:04:34 +08:00
Xi Ruoyao
7b3f5a4f8d
groff: remove -j1 2022-09-01 14:04:34 +08:00
Pierre Labastie
51b7349a97 Remove all non header files in linux headers
Report by Joe Locash that a perl script was left in /usr/include
with our current instructions
2022-08-31 21:34:49 +02:00
Bruce Dubbs
b877b48a51 Clean up after 11.2 2022-08-31 14:12:10 -05:00
Xi Ruoyao
cfaf7273f8
parition: mention EFI system partition
Text only change.  Simply refer to BLFS.
2022-08-28 20:06:00 +08:00
Xi Ruoyao
bf6f9e75ee
python: supress "failed to check new pip version" or "a new pip version is available" warnings
The non-text change during freeze is approved by bdubbs.
2022-08-26 23:52:18 +08:00
Xi Ruoyao
5353a1948f
grub: add a note about filesystem UUID and partition UUID usage
Text only change.
2022-08-26 20:30:29 +08:00
Xi Ruoyao
d84087141c
reboot: mention firmwares
Text only change.

I've forgotten this several times for AMDGPU...
2022-08-26 19:52:20 +08:00
Xi Ruoyao
e9d65f2f4c
grub: update description for grub-glue-efi
Text only change.

Found out this utility also exists on ARM, so copied "grub-glue-efi
--help" here, which does not mention "ia32" or "amd64".
2022-08-26 19:47:50 +08:00
Pierre Labastie
b3f157c685 Don't use dummy.c for glibc sanity check in chap 5
It seems glibc creates dummy.c for its own use. This leaves some
dummy.xxx files in the directory, that may lead some users to think that
the directory is not properly cleaned up after the test (I did :)

So use a pipe so that only a.out is created
2022-08-25 09:24:58 +02:00
Xi Ruoyao
feed7fea36
linux kernel: reword description for CONFIG_X86_X2APIC 2022-08-25 01:05:55 +08:00
Xi Ruoyao
85cdcb0980
glibc: don't mention "/lib" as ld.so search path anymore
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).
2022-08-24 23:42:27 +08:00
Xi Ruoyao
098f4de336
linux kernel: disable CONFIG_USERFAULTFD to avoid CVE-2022-2590 for now 2022-08-24 16:42:49 +08:00
Xi Ruoyao
83b86449a1
linux kernel: enable CONFIG_X86_X2APIC
It's recommended for CVE-2022-21233 mitigation.  And, if the BIOS has
enabled x2APIC but CONFIG_X86_X2APIC=n, the kernel will panic on boot.

If x2APIC is disabled or not available, the kernel with
CONFIG_X86_X2APIC=y can still boot normally.

No need to tag anything again because interrupt handling cannot affect
userspace.
2022-08-24 16:42:48 +08:00
Xi Ruoyao
20007e51c2
glibc: update test status
Text change only.

Add tst-arc4random-thread failure recently reported to upstream, remove
namespace related failures as they are UNSUPPORTED now in 2.36.
2022-08-23 18:43:10 +08:00
Xi Ruoyao
ec3cad45c3
mark linux-5.19.2 and shadow-4.12.2 as security fix 2022-08-22 11:17:46 +08:00
Bruce Dubbs
fd6f71bd35 Update SBU times and disk usage for all packages 2022-08-21 12:00:34 -05:00
Bruce Dubbs
a7a9d696fc Minor updates 2022-08-21 10:04:47 -05:00
Douglas R. Reno
8996c54f21 Update stats for systemd packages in preparation of 11.2-rc1 2022-08-21 08:36:00 -05:00
Xi Ruoyao
942e81de78
stripping: also mention symbol table bisides debug symbols 2022-08-21 20:27:28 +08:00
Xi Ruoyao
983647975b
shadow: fix download URL 2022-08-21 14:10:56 +08:00
Xi Ruoyao
3a1168d937
add changelog entries for last package update 2022-08-21 14:05:48 +08:00
Bruce Dubbs
f2af13d7a0 Intermediate update prior to lfs-11.2-rc1 2022-08-20 10:35:01 -05:00
Xi Ruoyao
6099a47149
Remove libtool archive (.la) files in Chapter 5 and 6
They are really harmful.  In Binutils pass 2, libstdc++.la caused the
building system to use host /usr/lib/libstdc++.so for gprofng.  We now
has disabled gprofng for pass 2, but the similar issue also exists in
GCC pass 2.  In a normal LFS build, the building system silently uses
/usr/lib/libstdc++.so (I guess it does not blow up simply because some
blind luck); in a real cross build (x86 -> ARM for example) the build
will fail.

Remove the .la files to fix this issue.  Instead of only modifying
clfs-ng, it makes more sense to apply the change for trunk: though
the build does not fail, using host library is still a contamination.
2022-08-19 12:41:48 +08:00
Pierre Labastie
d94f2d01a5 Clean chapter 8 binutils xml and text
Remove old commented instructions
Remove a sed and a test failure explanation: both have been fixed
in binutils-2.39
2022-08-14 21:11:46 +02:00
Douglas R. Reno
c25dd3fc1d Typo fix in changelog 2022-08-11 17:34:21 -05:00
Bruce Dubbs
3bc662bc9e Package updates.
Update to vim-9.0.0192.
Update to iana-etc-20220803.
Update to tzdata-2022b.
Update to iproute2-5.19.0.
Update to linux-5.19.1.
Update to bc-6.0.1.
2022-08-11 16:10:56 -05:00
Xi Ruoyao
e9d9f83288
typography: add a note about "Il1" or "O0" issue 2022-08-11 09:57:31 +08:00
Bruce Dubbs
960a230b4f Merge branch 'trunk' of git.linuxfromscratch.org:lfs into trunk 2022-08-09 21:44:54 -05:00
Bruce Dubbs
3094b8c742 Tweak pip3 instructions 2022-08-09 21:44:44 -05:00
Xi Ruoyao
8a687fac90
binutils: add desc for gprofng 2022-08-09 22:26:10 +08:00
Bruce Dubbs
2fe5021cfa Merge branch 'trunk' of git.linuxfromscratch.org:lfs into trunk 2022-08-07 11:11:49 -05:00
Bruce Dubbs
6f4ac82b3c Typo 2022-08-07 11:11:37 -05:00
Xi Ruoyao
e06065fc29
perl: remove outdated note regarding zlib version
Now perl-5.36 ships zlib-1.2.12, which is same as the book providing.
2022-08-07 18:28:24 +08:00
Bruce Dubbs
7131c8979c Merge branch 'trunk' of git.linuxfromscratch.org:lfs into trunk 2022-08-06 17:40:54 -05:00
Bruce Dubbs
1b11115cd2 Package updates.
Update to binutils-2.38.
Update to util-linux-2.38.1.
Update to Python3-3.10.6.
Update to glibc-2.36.
2022-08-06 17:40:17 -05:00
Thomas Trepl (Moody)
f628276ff7 Update boostcript version to 20220723 2022-08-07 00:28:47 +02:00
Ken Moffat
32feb4ba2e Note that linux-5.18.14 has fixes for RETBleed.
Security Advisory to follow.
2022-07-24 21:30:43 +01:00
Bruce Dubbs
c316117432 Package updates.
Update to linux-5.18.14.
Update to libcap-2.65.
2022-07-24 15:01:47 -05:00
Thomas Trepl (Moody)
68e4fd59b2 Mark raid array as clean at shutdown 2022-07-23 22:42:36 +02:00
Xi Ruoyao
d060b33545
another "obsoleted" -> "obsolete" fix 2022-07-16 14:01:21 +08:00
Bruce Dubbs
e470752a88 Fix kernel stats 2022-07-16 00:47:19 -05:00
Bruce Dubbs
f1b9d9d531 Package updates.
Update to meson-0.63.0.
Update to kmod-30.
Update to inetutils-2.3.
Update to linux-5.18.9.
Update to OpenSSL-3.0.5.
2022-07-16 00:29:19 -05:00
Bruce Dubbs
94bf45a457 Spelling 2022-07-14 17:02:30 -05:00
Xi Ruoyao
af3cf8ded1
python: mention that --force-reinstall needs --no-deps 2022-07-02 11:32:28 +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
Bruce Dubbs
4172b2128a Fix vim doc directory 2022-06-30 16:27:49 -05:00
Bruce Dubbs
0d80e532d2 Package updates.
Update to vim-9.0.0006.
Update to iana-etc-20220610.
Update to OpenSSL-3.0.4.
Update to kbd-2.5.1.
Update to linux-5.18.8.
Update to bc-5.3.3.
+
2022-06-30 15:12:37 -05:00
Pierre Labastie
f8b27abcda Generate shared C++ bindings for ncurses
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.
2022-06-29 14:08:29 +02:00
Xi Ruoyao
bfc6495520
bootscripts: change obsoleted egrep to grep -E 2022-06-23 18:12:37 +08:00
Xi Ruoyao
40488bd037
grep: mark egrep and fgrep obsolete
They are deprecated since 2007, and the next grep release (3.8 or 4.0)
will print a warning if they are used.

Url: https://git.savannah.gnu.org/cgit/grep.git/commit/?id=a951562
2022-06-23 18:11:46 +08:00
Xi Ruoyao
0b0fa07cd4
openssl: mark c_rehash obsolete
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
2022-06-23 12:23:06 +08:00
Xi Ruoyao
e909a1ebdf
bc: enable readline
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.
2022-06-22 15:16:03 +08:00
Xi Ruoyao
c500323f9b
document some newly reported test failures 2022-06-21 19:53:05 +08:00
Xi Ruoyao
0c0b88293b
minor reword for glibc test failures on slow systems
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.
2022-06-21 17:12:06 +08:00
Xi Ruoyao
ca22630e6a
provide revision-specific wget-list-$(REV) file
It's irrational to force a sysv builder to download systemd, or vice
versa.  But we cannot simply make wget-list specific for revision: IIRC
the wget-list file with all packages in either revision is used by some
scripts on rivendell.  So we keep wget-list as is, and provide a new
wget-list-$(REV) file which only contains the packages for one revision.
2022-06-21 15:22:27 +08:00
Bruce Dubbs
c7b29be1c1 Package Updates
Update to python3-3.10.5.
Update to meson-0.62.2.
Update to kbd-2.5.0.
Update to file-5.42.
Update to linux-5.18.3.
Update to bc-5.3.1.
2022-06-14 14:28:38 -05:00
Xi Ruoyao
51494bf947
dbus: remove --with-console-auth-dir
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.
2022-06-10 15:50:27 +08:00
Bruce Dubbs
9bc47a117d Package updates.
Update to iana-etc-20220524.
Update to iproute2-5.18.0.
Update to linux-5.18.1.
Update to perl-6.36.0.
2022-05-31 14:44:22 -05: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
5f3777ab18
disable systemd-networkd-wait-online if ...
systemd-networkd won't be used for network configuration
2022-05-29 14:25:22 +08:00
Xi Ruoyao
f99a7eb572
systemd: disable systemd-sysupdate 2022-05-29 14:12:11 +08:00
Xi Ruoyao
e6e8f00474
update to vim-8.2.5014 (#4500) 2022-05-29 12:29:20 +08:00
Xi Ruoyao
4ad57d4331
update to ninja-1.11.0 (#5062) 2022-05-29 12:29:20 +08:00
Xi Ruoyao
77e340bc4a
systemd: use a better way to disable /usr/lib/pam.d 2022-05-29 12:29:20 +08:00
Xi Ruoyao
f435668903
systemd: remove unnecessary options
-Dblkid is automatically detected, and other three options are meson
defaults.
2022-05-29 12:29:20 +08:00
Xi Ruoyao
b4008bb22c
update to systemd-251 (#5064) 2022-05-29 12:29:20 +08:00
Xi Ruoyao
0d7dbaf24c
openssl: reword upgrading note for versioning scheme change 2022-05-28 21:04:22 +08:00
Xi Ruoyao
0ab908d944
check: remove reference to libcheck.a 2022-05-28 20:37:42 +08:00
Xi Ruoyao
f81a8a4a3c
fix command for removing libncurses++w.a
What was I doing ?!
2022-05-27 21:50:53 +08:00
Xi Ruoyao
2bb813a1e8
ncurses: remove libncurses++w.a from temp ncurses 2022-05-26 19:30:40 +08:00
Pierre Labastie
8731bd1cd0 stripping, chapter 8: prevent stripping ld-*.dbg
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".
2022-05-22 09:57:28 +02:00
Pierre Labastie
07b9641cac Document the test failure in coreutils
Seems to be fixed upstream, but adding a patch for just a test
is overkill IMO.
2022-05-16 15:30:35 +02:00
Bruce Dubbs
4c2aabba4e Package updates.
Update to linux-5.17.7.
Update to psmisc-23.5.
2022-05-15 23:09:32 -05:00
Pierre Labastie
59d5489ff8 Make clear that run-level definitions are for LFS 2022-05-11 05:56:30 +02:00
Bruce Dubbs
1b491eb061 Rename run level 2 2022-05-10 17:05:42 -05:00
Xi Ruoyao
3d722b94dc
procps: fix typo
How did I copied "FAIL:" along with the test name? :(
2022-05-09 22:28:48 +08:00
Xi Ruoyao
748429cef5
fix a typo in changelog, again 2022-05-09 22:26:47 +08:00
Xi Ruoyao
ed2bec7dd6
kernel: disable CONFIG_WERROR
The help of this options says:

"However, if you have a new compiler with ..., you may need to disable
this config option in order to successfully build the kernel."

As we are having state-of-art GCC-12, and Linux-5.18 release candidate
FTBFS with GCC-12 and CONFIG_WERROR=y [1], and <rant>the kernel developers
are making stupid and meaningless discussion instead of fixing the building
failure</rant> [2], I don't think enabling this option makes any sense
building LFS.

[1]:https://lkml.org/lkml/2022/4/14/1676
[2]:https://lkml.org/lkml/2022/4/21/254
2022-05-09 16:32:19 +08:00
Pierre Labastie
80760d4ed1 Minor grammar fix 2022-05-08 09:07:14 +02:00
Xi Ruoyao
5ea0739a8c
gcc-12: update gcc building stats
The other stats have not changed significantly (usually only
+/- 0.1 SBU).

By the way, the changes for gcc-pass2 also include the change
from merging libstdc++-pass2 into gcc-pass2.
2022-05-08 14:56:39 +08:00
Xi Ruoyao
17215e66cc
update to bc-5.2.5 2022-05-07 21:01:10 +08:00
Xi Ruoyao
0341ecc6cc
util-linux: remove unnecessary test workaround
According to upstream, this issue is fixed:
https://github.com/util-linux/util-linux/issues/1635.

Also tested by Pierre and me.
2022-05-07 12:43:46 +08:00
Xi Ruoyao
b0b37b6852
procps: update testsuite status 2022-05-07 12:25:47 +08:00
Xi Ruoyao
6edc3b46e0
gcc-12: update test status
The analyzer tests fixed at https://gcc.gnu.org/r12-7119.

The PR100400 status is discussed in the thread started with
https://gcc.gnu.org/pipermail/gcc-patches/2022-May/593931.html.
2022-05-07 10:51:21 +08:00
Xi Ruoyao
f2875c3780
gcc-12: bump libstdc++.so version
libstdc++.so.6.0.29 to 6.0.30.  The versions of other GCC runtime libraries
are not bumped.
2022-05-07 05:21:10 +08:00
Xi Ruoyao
bd08757bab
gcc-12: remove unnecessary workaround for PR91085
Reference: https://gcc.gnu.org/r12-1924
2022-05-07 05:20:53 +08:00
Xi Ruoyao
d70e621d8e
gcc-12: remove unneeded sed for PR100017 in pass 2
Reference: https://gcc.gnu.org/r12-6406
2022-05-06 21:13:27 +08:00
Xi Ruoyao
e1d233c8af
gcc-12: remove --enable-initfini-array in pass 1
Reference: https://gcc.gnu.org/r12-1328
2022-05-06 20:31:01 +08:00
Xi Ruoyao
9fec03d69f
gcc-12: update tarball stat 2022-05-06 20:13:24 +08:00
Bruce Dubbs
f164a246c2 Merge branch 'trunk' of git.linuxfromscratch.org:lfs into trunk 2022-05-04 20:22:53 -05:00
Bruce Dubbs
d6cba09c7c Update to openssl-3.0.3. 2022-05-04 20:20:27 -05: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
Xi Ruoyao
d77e98c7e8
fix a typo in changelog 2022-05-02 15:08:43 +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
93db1e614e
python: fix a typo 2022-04-21 23:28:35 +08:00
Bruce Dubbs
dd9987c5ab Minor rewording of pip3 recommendations 2022-04-21 08:43:49 -05:00
Xi Ruoyao
720c0bd9fb
python: add a <important> for pip3 usage 2022-04-21 14:23:07 +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
421e0cfcda
add convenience entities for users root and lfs 2022-04-21 14:02:44 +08:00
Xi Ruoyao
c919b34c8a
generalize the note about removed and vulnerably releases 2022-04-20 18:53:42 +08:00
Xi Ruoyao
474ba0c426
mpfr: use ftp.gnu.org, at least for now
Currently www.mpfr.org has a certificate issue.
2022-04-20 18:34:28 +08:00
Bruce Dubbs
9de91f7822 Fix currency for mpfr
There is something wrong with the certificate for the mpfr
web page https://mpfr.loria.fr/mpfr-current/.  Ignore the certificate
problem.
2022-04-19 11:36:18 -05:00
Bruce Dubbs
18e99c88b9 Update lfs currency for wheel 2022-04-18 11:32:36 -05:00
Xi Ruoyao
4b51d83b3e
wheel: capitalize the first letter of the title, like all other packages 2022-04-18 20:44:35 +08:00
Xi Ruoyao
ee16e55d20
text fixes for wheel change
* Add description for "wheel" command
* Explain why pip3 warning does not matter for us
* Format and typo fixes
2022-04-18 12:59:52 +08:00
Bruce Dubbs
9749744481 Use pip3 to install Python modules and programs
meson, Markupsafe, and Jinja2
2022-04-17 23:08:16 -05:00
Bruce Dubbs
5a2aca5626 Add wheel.xml 2022-04-17 19:04:53 -05:00
Bruce Dubbs
032d88fc75 Add wheel-0.37.1 (Python module). 2022-04-17 17:11:27 -05:00
Bruce Dubbs
7a0687cbbf Merge branch 'trunk' of git.linuxfromscratch.org:lfs into trunk 2022-04-17 14:19:34 -05:00
Bruce Dubbs
e9538133fa Suppress a waring if running pip3 as root.
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.
2022-04-17 12:55:48 -05:00
Ken Moffat
1d694184b3 Patch xz for the xzgrep vulnerability. 2022-04-15 20:01:35 +01:00
Xi Ruoyao
75bab32f83
procps: update library and include directory name 2022-04-15 10:32:55 +08:00
Bruce Dubbs
62b66860b3 Package updates.
Update to libcap-2.64.
Update to linux-5.17.3.
Update to gzip-1.12.
2022-04-14 11:17:20 -05:00
Bruce Dubbs
b861051f19 Typos 2022-04-12 14:31:26 -05:00
Ken Moffat
b3d5df2a4a Note that linux-5.17.1 and zlib-1.2.12 are security updates. 2022-04-04 21:28:35 +01:00
Xi Ruoyao
d70fd55a87
procps-ng: remove an outdated note
It now just untars into procps-ng-4.0.0 directory, as we expect.
2022-04-05 01:30:19 +08:00
Bruce Dubbs
f30c2e8029 Add in the patch needed for systemd with the 5.17 kernel 2022-03-31 12:39:23 -05:00
Bruce Dubbs
676f0fdcec Package updates.
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.
2022-03-30 16:13:26 -05:00
Bruce Dubbs
cf30814bdb Merge branch 'trunk' of git.linuxfromscratch.org:lfs into trunk 2022-03-27 11:46:12 -05:00
Bruce Dubbs
f23beb1acf Remove refereces to Russia 2022-03-27 11:46:00 -05:00
Pierre Labastie
d608267a48 Fix a stupid typo in bootscripts/Makefile
copy/paste error rc0.d -> rc6.d. Brown paperbag commit...
2022-03-27 14:30:05 +02:00
Xi Ruoyao
ab7af9e6f0
libffi: reword the note about "building for another system"
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.
2022-03-26 23:25:36 +08:00
Pierre Labastie
827cc05c37 Upstate bootscripts to 20220324 2022-03-25 18:32:05 +01:00
Pierre Labastie
2103b64b5d Bump bootscripts version 2022-03-25 10:52:35 +01:00
Pierre Labastie
aaad260318 Update bootscripts/ChangeLog for recent changes 2022-03-25 10:52:35 +01:00
Pierre Labastie
497d43515f Remove the 0/6 exception explanation in usage.xml
It's not true anymore with the new semantics of K/S files.
2022-03-25 10:52:35 +01:00
Pierre Labastie
ed6ffcb2e2 network bootscript: Don't run ifup if route already set
Otherwise, warnings are issued when changing runlevel. "ip route"
is a good test of whether network is already up. If users want to
change some config, they should use ifup/down, not the network
bootscript.
2022-03-25 10:52:34 +01:00
Pierre Labastie
2539253399 New semantics for S/K files in boot scripts
Now start and reboot should be called as "script start", and they
should be the last in their runlevel. Note that install_initd
needs to be patched for this to work; see
https://github.com/lfs-book/LSB-Tools/pull/12
2022-03-25 10:52:17 +01:00
Pierre Labastie
3b20f597b2 Fix Makefile for new semantics of S/K symlinks
In runlevel 0/6, services which must be stopped should be
with Kxx symlinks
2022-03-25 10:24:45 +01:00
Pierre Labastie
887af775a5 Adapt template to new semantics of S/K symlinks 2022-03-25 10:24:45 +01:00
Pierre Labastie
27d23b1d41 Change semantics of S and K files
Presently, there are a lot of special cases:
- runlevel 0 and 6 unconditionally run "script stop" if they
  find a Kxxscript symlink. This may lead to trying to stop an
  already stopped device if for example switching to runlevel 0/6
  from runlevel 1. This can be fixed by stating the convention
  that it is the responsability of scripts to check that the service
  is running before killing it (or not running before starting it).
  Still, we shouldn't try to stop a service if it was marked K in
  the previous runlevel. And same for S files: we shouldn't try to
  start a service that was marked S in the previous runlevel. Note
  that changing runlevel is not a "reset": if a user has manually
  changed the state of a daemon, this state will remain the same
  upon changing runlevel if the S/K status of that dameon is
  the same in both runlevels.

- Sxxscript symlinks in runlevel 0/6 are run as "script stop"
  instead of the more intuitive "script start". This does not interact
  well with LSB-tools (some scripts would need "Default-Start: S 0 6"
  but then it is impossible to get correct "Required-Start" or
  "Should-Start" fields). Furthermore, having a counter-intuitive
  behavior is error prone. So now runlevel 0/6 will run "script
  sart" for a Sxxscript.
2022-03-25 10:19:53 +01:00
Pierre Labastie
17c6532e0f Do not redefine is_true in the console script
There is a better version in init-functions
2022-03-25 10:19:53 +01:00
Pierre Labastie
db7c8be8ae Make runlevel 2 equivalent to 3 by default: Makefile 2022-03-25 10:19:52 +01:00
Pierre Labastie
96a636b000 Make runlevel 2 equivalent to 3 by default: network 2022-03-25 10:19:52 +01:00
Pierre Labastie
9d83019355 Make runlevel 2 equivalent to 3 by default: sysklogd 2022-03-25 10:19:52 +01:00
Pierre Labastie
a18e40dbc8 Typo in init-functions 2022-03-25 10:19:52 +01:00
Bruce Dubbs
9b463a2154 Merge branch 'trunk' of git.linuxfromscratch.org:lfs into trunk 2022-03-24 12:12:12 -05:00
Bruce Dubbs
bcb20b4701 Speling 2022-03-24 12:11:57 -05:00
Xi Ruoyao
b8a2b7e201
inputrc: "8bit" -> "8-bit"
The info page of readline says "eight-bit", so I guess a dash is proper.

Suggested-by: rhubarbpieguy <rhubarbpieguy@vivaldi.net>
2022-03-25 01:10:23 +08:00
Xi Ruoyao
63107f4bc5
fix typos
Suggested-by: rhubarbpieguy <rhubarbpieguy@vivaldi.net>
2022-03-25 01:03:13 +08:00
Pierre Labastie
6ad4730862 Fix kernel config to mount the devtmpfs before boot
Also make the order and the layout the same as in menu.
2022-03-22 22:03:33 +01:00
Pierre Labastie
dda039ba19 Update comments in the mountvirtfs booscript
Since the kernel can mount /dev if given the proper config
parameter, and we tell users to set this parameter when building
the kernel, this should be mentioned in the script
2022-03-22 21:20:46 +01:00
Bruce Dubbs
53b26d62bf Update references to active display managers 2022-03-21 18:16:20 -05:00
Bruce Dubbs
7ebcd28ac3 Clarify SysV run levels.
Update the meaning of run level 2.

Add some clarifying remarks about run levels 0 and 6 (halt and reboot).
2022-03-21 15:04:04 -05:00
Xi Ruoyao
d54813bc0c
zstd: add prefix=/usr for make
libzstd.pc is created during "make", so without prefix=/usr here
"-L/usr/local/lib" will show up in libzstd.pc.

Thanks Ryan Marsaw for the report.
2022-03-21 21:59:45 +08:00
Xi Ruoyao
0a993870cf
libffi: update the desc for --disable-exec-static-tramp
Now BLFS has gobject-introspection-1.72, which is already fixed.  GJS
fix will be released in GNOME 43 (not 42).
2022-03-21 14:39:47 +08:00
Xi Ruoyao
0a28db3cd7
package updates
* Update to Python-3.10.3 (#5028)
* Update to libtool-2.4.7 (#5029)
* Update to linux-5.16.16 (#5030)
* Update to tzdata-2022a  (#5031)
* Update to man-db-2.10.2 (#5032)
2022-03-20 21:26:58 +08:00
Pierre Labastie
bb9cb3c0d8 [Sysv]: /etc/inittab: respawn sulogin in runlevel 1
If run once (as it is now), the only possibility after hitting
control-D is to reboot. Note that init treats the S runlevel
differently:
when the last daemon to be run n runlevel S exits, init switches
to the default runlevel. This is not the case for other runlevels.
2022-03-18 16:06:36 +01:00
Pierre Labastie
fb651b9116 Fix email addresses for bug report in bootscripts 2022-03-17 08:12:51 +01:00
Xi Ruoyao
43149b904b
markupsafe: mention the suffix "-linux-<arch>" in installed directories 2022-03-16 19:47:09 +08:00
Xi Ruoyao
ae84037e94
update to MarkupSafe-2.1.1 (#5025) 2022-03-16 19:39:06 +08:00
Xi Ruoyao
ccb08fafc8
pkgmgmt: for systemd revision, add how to restart systemd without reboot 2022-03-16 15:49:35 +08:00
Bruce Dubbs
16a517ac7e Update to openssl-3.0.2. 2022-03-15 14:49:33 -05:00
Bruce Dubbs
f868154256 Merge branch 'trunk' of git.linuxfromscratch.org:lfs into trunk 2022-03-15 11:17:53 -05:00
Bruce Dubbs
4ce4f65526 Ignore fop.log 2022-03-15 11:17:36 -05:00
Xi Ruoyao
ce6088a1c1
changelog: dbus is systemd revision only 2022-03-16 00:14:14 +08:00
Xi Ruoyao
9c7e6ff853
systemd: remove --strip-compoents=1 from man page installation command
systemd-man-pages-250.tar.xz has no additional leading components.

An errata is required.
2022-03-16 00:13:35 +08:00
Bruce Dubbs
c6ed3d0126 Update to meson-0.61.3. 2022-03-15 10:55:25 -05:00
Xi Ruoyao
f7ac150c84
package update
* 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)
2022-03-15 16:18:24 +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
582da16ec4
glibc: fix the desc of nss/tst-nss-files-hosts-multi failure, and ...
mention nss/tst-nss-files-hosts-long failure

It seems I was confused by the two failures with similar name, when I
added the description.
2022-03-15 00:26:26 +08:00
Xi Ruoyao
408f4ae838
systemd: dbus: add --runstatedir=/run
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.
2022-03-13 16:12:55 +08: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
Bruce Dubbs
102a7f64c0 Merge branch 'trunk' of git.linuxfromscratch.org:lfs into trunk 2022-03-06 15:37:15 -06:00
Bruce Dubbs
c9629e0347 Typo 2022-03-06 15:37:02 -06:00
Xi Ruoyao
cb39502e14
add changelog entries for 20220305 2022-03-05 16:35:00 +08:00
Xi Ruoyao
06aa05dd04
Merge tag 'xry111/lfs-next/for-trunk-20220305' into trunk 2022-03-05 16:31:57 +08:00
Xi Ruoyao
8a572f06bb
don't chown $LFS/sources to lfs (#5018) 2022-03-05 16:30:43 +08:00
Xi Ruoyao
070bc9a4f7
add zstd upstream fixes patch 2022-03-05 16:30:28 +08:00
Xi Ruoyao
e6589bc35a
Merge branch 'trunk' into xry111/lfs-next 2022-03-05 16:29:57 +08:00
Xi Ruoyao
9c4380393e
gcc: use $(gcc -dumpmachine) instead of *linux-gnu
It's consistent with other commands in the same page, and also helpful
for porting to targets with different triplets (-musl or -gnuabi64).
2022-03-05 03:03:19 +08:00
Xi Ruoyao
cc2c231b50
remove meson "test SBU" added unintentionally 2022-03-03 04:13:40 +08:00
Xi Ruoyao
7c05ea2a4f
remove outdated cross-chap5 announcement in what's new
It should have been removed in 10.1, and in 11.0 there should have been
"the version of LFS has switched to a merged-/usr layout".  But we just
forgot to update this all the time :).
2022-03-03 02:20:37 +08:00
Xi Ruoyao
3522efe046
package updates
* Update to meson-0.61.2.
* Update to linux-5.16.12.
* Update to MarkupSafe-2.1.0.
* Update to dbus-1.14.0.
* Update to vim-8.2.4489.
2022-03-03 02:20:37 +08:00
Xi Ruoyao
7756de365c
remove all "what's new" entries after release 2022-03-03 02:20:34 +08:00
Xi Ruoyao
6cad449759
add changelog entries for libstdc++ pass 2 and tcl changes 2022-03-02 21:08:50 +08:00
Xi Ruoyao
b39aae039a
Merge tag 'xry111/lfs-next/for-trunk-20220302' into trunk 2022-03-02 21:04:45 +08:00
Xi Ruoyao
259b8e0aa3
Merge remote-tracking branch 'origin/trunk' into xry111/lfs-next 2022-03-02 21:02:54 +08:00
Xi Ruoyao
3bb463d33d
gcc-pass2: document *_FOR_TARGET parameters 2022-03-02 18:02:07 +08:00
Xi Ruoyao
8e0f8a9a52
gcc pass2: use --target=$LFS_TGT instead of many {C,CXX}_FOR_TARGET
There is also a "GCC_FOR_TARGET" which was not set correctly.  The
--target=$LFS_TGT parameter can set up all of these variables as we
expected.
2022-03-02 18:00:10 +08:00
Bruce Dubbs
fe09af0cf8 Cleanup after 11.1 commit 2022-02-28 11:41:59 -06:00
Xi Ruoyao
2fac6bd1b2
fix the date of expat-2.4.6 changelog entry 2022-02-28 22:34:42 +08:00
Douglas R. Reno
68550bbdee Kernel (systemd): Add CONFIG_MEMCG as required (systemd-oomd). 2022-02-27 16:10:44 -06:00
Xi Ruoyao
477c9a1d58
tcl: remove outdated test failure description 2022-02-27 23:38:45 +08:00
Xi Ruoyao
859502b2f4
iproute2: add NETNS_RUN_DIR=/run/netns to avoid using deprecated /var/run 2022-02-27 23:36:55 +08:00
Xi Ruoyao
a4f63e494b
remove adjusting.xml
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.
2022-02-27 23:36:55 +08:00
Xi Ruoyao
83c258fce0
tcl: remove --enable-64bit
It only adds -m64 on x86_64 GNU/Linux.  In 64-bit LFS -m64 is the
default.
2022-02-27 23:36:55 +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
Douglas R. Reno
18d4d6d2d7 Do a minor reword in networkd.xml and move Firmware Drivers to the
Device Drivers section in the systemd kernel configuration.
2022-02-26 23:18:28 -06:00
Bruce Dubbs
cbd0a9a98e Merge branch 'trunk' of git.linuxfromscratch.org:lfs into trunk 2022-02-25 14:58:29 -06:00
Bruce Dubbs
7b270d9a69 Wording 2022-02-25 14:58:18 -06:00
Xi Ruoyao
b0a6b0cedb
mention that expat may delete vulnerable releases 2022-02-25 12:10:04 +08:00
Bruce Dubbs
ba2dc1b6a7 Update to expat-2.4.6 (security fix) 2022-02-23 15:28:21 -06:00
Xi Ruoyao
c19371f6f9
systemd: remove unneeded command
For systmed-250, systemd-time-wait-sync.service is disabled by
systemctl preset-all.
2022-02-23 15:25:28 +08:00
Xi Ruoyao
96fa6f2558
systemd: trivial indent fix :) 2022-02-23 15:10:03 +08:00
Xi Ruoyao
a8c849848f
doc: correct the URL of BLFS docbook-xml-4.5 page 2022-02-23 02:10:17 +08:00
Xi Ruoyao
186f52656e
glibc: document tst-nss-files-hosts-multi failure ...
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.
2022-02-22 16:44:04 +08:00
Xi Ruoyao
188fba74b4
ch03 intro: "newer version" -> "different version", and ...
warn about the difference between release tarballs and repo snapshots
2022-02-22 13:34:59 +08:00
Xi Ruoyao
25dc9a8cfa
part 3 intro: warn that don't copy source tree with cp -R 2022-02-22 13:34:36 +08:00
Ken Moffat
a8ac5440a7 Vim-8.2.4383 included a security update. 2022-02-19 21:02:14 +00:00
Xi Ruoyao
d6006ef769
relax host system requirements
A requirement on Glibc is not needed at all.  It's enough once
$LFS_TGT-* is runnable.  A test on Alpine (using musl as libc) has
practically proved this.

We'd raised binutils and GCC requirements mostly for Glibc.  But now
Glibc is cross compiled by our cross toolchain with latest GCC and
binutils release, the host tools really does not matter.  In the Glibc
building process only two .c files are build with BUILD_CC (the C
compiler from the host), and they are highly conservative (mostly
unchanged for years).

Binutils does not have too much requirement on host GCC & Binutils:
there is even a Binutils commit in this week fixing a build failure with
GCC-4.2!

So the most strict limitation comes from GCC.  GCC requires host GCC to
support ISO C++ 11 so GCC >= 4.8 is needed.  And both GCC-4.8 and latest
GCC-11.2 claims a requirement for Binutils-2.12 (for x86_64) or 2.13.1
(for 32-bit x86), so we make minimal Binutils version 2.13.1.

And, host bzip2 is never used now: the only .tar.bz2 files are elfutils
and python docs.  They are not decompressed before entering chroot.
2022-02-19 10:29:47 +08:00
Bruce Dubbs
9904ecb1de Spelling/Typos 2022-02-18 14:49:40 -06:00
Xi Ruoyao
9f0a6427ab
short description should not end with "." 2022-02-18 14:03:51 +08:00
Bruce Dubbs
988a68e3c8 Merge branch 'trunk' of git.linuxfromscratch.org:lfs into trunk 2022-02-17 23:39:07 -06:00
Bruce Dubbs
01cf1502c2 Remove reference to test failures 2022-02-17 23:38:53 -06:00
Xi Ruoyao
52155b6c33
shadow: add --disable-static
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.
2022-02-18 12:51:41 +08:00
Xi Ruoyao
b5e4ab72f1
shadow: add description for libsubid 2022-02-17 19:39:07 +08:00
Xi Ruoyao
662f6497ff
systemd: remove systemd-cryptenroll and bootctl
bootctl is not built because LFS doesn't have gnu-efi.

systemd-cryptenroll is disabled if cryptsetup is not installed (should
be added into BLFS).
2022-02-17 19:39:07 +08:00
Xi Ruoyao
e5b4b3fff6
gcc: update contents and descriptions
Add lto-dump and libitm, and reword description for liblto_plugin
because it's actually used by libbfd (from binutils).
2022-02-17 19:39:07 +08:00
Xi Ruoyao
24fe054b4e
dejagnu: add description for "dejagnu" command 2022-02-17 19:39:07 +08:00
Xi Ruoyao
85d9756bbe
expect: fix library name in description, and remove unused expect-lib-version 2022-02-17 19:39:07 +08:00
Xi Ruoyao
b7daa52a5c
glibc: update desc for content
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.
2022-02-17 19:39:07 +08:00
Bruce Dubbs
d6f5aab381 Binutils fix to fix some package builds
This fix was found on an i368 system when building openjdk.  The
fix does not help or hurt x86_64 systems.
2022-02-16 16:56:04 -06:00
Xi Ruoyao
c5755859a8
binutils: reword the desc for LTO patch
Prevent from misleading people to think "I don't build binutils with LTO,
so I can skip the patch".
2022-02-16 14:32:24 +08:00
Bruce Dubbs
83e41daaa6 Typo 2022-02-15 19:52:28 -06:00
Bruce Dubbs
8dd179b044 Fix typos in glibc and for systemd-oom group syntax 2022-02-15 13:22:46 -06:00
Bruce Dubbs
9a612a967b Document a failing test 2022-02-15 11:35:46 -06:00
Bruce Dubbs
2ff3adaa70 Merge branch 'trunk' of git.linuxfromscratch.org:lfs into trunk 2022-02-15 09:56:39 -06:00
Bruce Dubbs
6af4dabc16 Package updates and fixes.
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.
2022-02-15 09:55:45 -06:00
Xi Ruoyao
2cf3c176cf
break very long line 2022-02-15 15:45:00 +08:00
Xi Ruoyao
174d1bf948
libstdc++ pass 1: rephrase the explanation for --with-gxx-include-dir
I just received a private mail from some guy obviously puzzled by this
switch.  Expand the explanation a little to make it more clear.
2022-02-15 15:29:35 +08:00
Xi Ruoyao
81d3242ba4
glibc: add ld.so to programs list
Quote from the NEWS file:

    A symbolic link to the dynamic linker is now installed under
    /usr/bin/ld.so (or more precisely, '${bindir}/ld.so').
2022-02-13 11:01:29 +08:00
Pierre Labastie
ab824a51d1 Fix a missing space 2022-02-11 18:29:12 +01:00
Xi Ruoyao
db3c501657
glibc: update contents & descriptions for 2.35 2022-02-11 11:18:13 +08:00
Xi Ruoyao
426913ea08
binutils-pass2: workaround "binaries link to host libraries" issue
A very old libtool copy (2009-11-29) is shipped in binutils tarball.  It
does not support sysroot, so the cross-built binutils binaries may link
to libraries from the host distro, if certain libraries are available.

The ideal solution should be updating libtool, as libtool-2.4.6 (in LFS)
has sysroot support.  However, updating libtool for binutils is not
trivial: it would require to rerun autoconf and binutils building system
sticks to autoconf-2.69.  Another issue is the sysroot support for
libtool has introduced a configure option "--with-sysroot", which
conflicts with an already existing option with the same name in
GCC and binutils building system (we are using the GCC/binutils version
of --with-sysroot in chapter 5).

GCC building system has --with-build-sysroot (we are using this for GCC
pass 2) for this issue.  Binutils copied GCC building system, but it
does not respect --with-build-sysroot.

So for now we just edit libtool code to prevent "-L/usr/lib" in
$LFS_TGT_gcc command line.  It should fix the issue about host libiberty
(reported in #lfs-support) as well, but it still need to be confirmed by
someone having such a host.

Tested with a jhalfs run on LFS.
2022-02-10 21:05:33 +08:00
Pierre Labastie
b35ab48b26 Add glib2 as an optional dependency of pkg-config 2022-02-10 10:28:23 +01:00
Bruce Dubbs
9c4ff70edf Package updates.
Update to bc-5.2.2.
Update to linux-5.16.8.
Update to binutils-2.38. Requires adding zlib to Chapter 6.
2022-02-09 20:54:15 -06:00
Xi Ruoyao
d759d8b20c
systemd net cfg: fix unclosed <...> 2022-02-06 07:08:18 +08:00
Xi Ruoyao
c633b87ef4
systemd net cfg: fix ambigious "it" 2022-02-05 22:29:27 +08:00
Xi Ruoyao
f09dd59a81
systemd: /etc/{passwd,group} was created in Chapter 7 2022-02-05 22:17:26 +08:00
Xi Ruoyao
0079acc87d
systemd: remove unneeded group "systemd-bus-proxy" 2022-02-05 22:16:25 +08:00
Xi Ruoyao
cfdc7ab3c2
fix a stupid typo in changelog 2022-02-05 22:03:00 +08:00
Xi Ruoyao
b852cef995
chapter 8: rename revisedchroot to cleanup
There is no "revision for chroot" now.
2022-02-05 21:59:24 +08:00
Xi Ruoyao
d79ba5b01c
systemd network config: slightly reword about resolv.conf 2022-02-05 21:35:14 +08:00
Xi Ruoyao
490dc15317
remove "+h" in bash commands in chroot (#4998)
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.
2022-02-05 20:48:27 +08:00
Xi Ruoyao
69c4524b6d
systemd: remove unneeded LANG=en_US.UTF-8 settings
They were added because ninja had printed warnings about "non UTF-8
locale".  Current version of ninja no longer does this.
2022-02-05 20:37:44 +08:00
Xi Ruoyao
e954006b16
util-linux: add --bindir and --sbindir
The defaults are /bin and /sbin.  We don't like them because of "DESTDIR
on merged-usr system" issue.
2022-02-05 20:37:44 +08:00
Xi Ruoyao
50c357d363
util-linux: revise contents and short descriptions
* 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
2022-02-05 20:37:44 +08:00
Xi Ruoyao
db2d98f7a9
man-db: update to man-db-2.10.0 (#5002) 2022-02-05 20:37:44 +08:00
Xi Ruoyao
f26f74cb24
kmod: update the status for test suite 2022-02-05 20:37:44 +08:00
Xi Ruoyao
f5923aa8b4
kmod: link to openssl 2022-02-05 20:37:43 +08:00
Xi Ruoyao
ab8c166cbb
gdbm: update to gdbm-1.23 (#5000) 2022-02-05 20:37:34 +08:00
Xi Ruoyao
889f3811e5
Revert "gdbm: document gdbmtool tests fail, add -k"
This reverts commit ae3f78a382.

No longer needed with gdbm-1.22 or later:

https://git.gnu.org.ua/gdbm.git/commit/?id=5b62babd
https://git.gnu.org.ua/gdbm.git/commit/?id=f586b159
2022-02-05 17:51:06 +08:00
Xi Ruoyao
51e4ab228f
gcc: add "or later" for "Glibc-2.34", as we have 2.35 now 2022-02-05 17:03:36 +08:00
Xi Ruoyao
d64d2255f5
dependencies: zstd can use LZ4 2022-02-05 17:03:36 +08:00
Xi Ruoyao
bf6c6f8180
tcl: update to tcl-8.6.12 (#5001)
tdbc 1.1.2 -> 1.1.3
itcl 4.2.1 -> 4.2.2
2022-02-05 17:03:36 +08:00
Xi Ruoyao
21dd2f064f
glibc: Makefile is not generated 2022-02-05 17:03:33 +08:00
Douglas R. Reno
0a75d62658 Minor tweaks to systemd 2022-02-04 19:54:13 -06:00
Bruce Dubbs
1f8c0b947e Fix currency for tcl 2022-02-04 13:29:55 -06:00
Xi Ruoyao
bca4876ac5
Revert "binutils: use -j1 for make install"
This reverts commit 03a41fd0cd.

It's no longer needed after binutils-gdb commit "install dependencies for
ld -> bfd and libctf -> bfd" (755ba58e).
2022-02-04 17:55:05 +08:00
Thomas Trepl (Moody)
651c74bef9 Remove unnecessary sed in glibc-2.35 2022-02-04 10:51:57 +01:00
Bruce Dubbs
a5d31dd654 Package updates and a patch.
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.
2022-02-03 13:02:19 -06:00
Xi Ruoyao
1966b8db8f
network cfg: mention that LFS and the host may name interfaces differently 2022-01-31 19:42:18 +08:00
Xi Ruoyao
4d323c324f
dependencies: coreutils-9.0 uses openssl-3 for cryptography 2022-01-31 19:42:18 +08:00
Bruce Dubbs
0aeb9f39a2 Merge branch 'trunk' of git.linuxfromscratch.org:lfs into trunk 2022-01-29 14:10:14 -06:00
Bruce Dubbs
d8038b2e4f Update to linux-5.16.4. 2022-01-29 14:10:04 -06:00
Pierre Labastie
60933b952f iproute2: remove a now useless sed
Upstream do not try anymore to build the *m_ipt modules if
iptables is not found.
2022-01-28 14:04:57 +01:00
Bruce Dubbs
e1ebbef46a Package updates.
Update to vim-8.2.4236.
Update to zstd-1.5.2.
Update to util-linux-2.37.3 (security fix).
Update to Python-3.10.2.
Update to linux-5.16.2.
Update to libcap-2.63.
Update to iproute2-5.16.0.
Update to iana-etc-20220120.
2022-01-27 21:29:56 -06:00
Xi Ruoyao
8c3872af6c
dependencies: systemd uses zstd
It's used for compressing journals and coredumps.
2022-01-28 02:36:45 +08:00
Xi Ruoyao
02d0c359bb
dependencies: systemd does not depends on Intltool now 2022-01-27 20:59:42 +08:00
Xi Ruoyao
7b370c55d7
util-linux: remove the description of "raw" command
Since Linux-5.13, <linux/raw.h> has been removed from API headers.  So
this command won't be built by util-linux.
2022-01-25 03:30:05 +08:00
Bruce Dubbs
d141d67546 Update to expat-2.4.3 (security fixes). 2022-01-20 13:35:28 -06:00
Pierre Labastie
18c1947298 Update to meson-0.61.1 2022-01-20 08:18:43 +01:00
Pierre Labastie
b83366b1b4 Use soversion for libreadline in "stripping" page
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
2022-01-20 08:11:31 +01:00
Thomas Trepl (Moody)
63ef88536a Add a fix of type to meson patch (new patch file) 2022-01-17 16:56:06 +01:00
Xi Ruoyao
cd0ca9371c
shadow: fix a typo 2022-01-16 00:42:27 +08:00
Pierre Labastie
7ad105665e Add missing installed program in shadow
getsubids has been added in shadow-4.10
2022-01-15 04:45:33 -08:00
Bruce Dubbs
ade3efafc6 Package updates.
Update to shadow-4.11.1.
Update to readline-8.1.2.
Update to meson-0.61.0.
Update to libpipeline-1.5.5.
Update to bash-5.1.16.
2022-01-14 13:43:28 -06:00
Douglas R. Reno
5ff21a47f9 Merge branch 'trunk' of git.linuxfromscratch.org:lfs into trunk 2022-01-13 18:28:30 -06:00
Douglas R. Reno
194e133dc0 Use the corrected systemd patch 2022-01-13 15:24:10 -06:00
Douglas R. Reno
c8df034e5f Fix CVE-2021-3997 in systemd. 2022-01-13 15:16:37 -06:00
Pierre Labastie
7fba0753d1 Add a note telling to reenter chroot after making a backup 2022-01-09 19:18:24 +01:00
Pierre Labastie
b029aa8bfb Remove ending space in shadow 2022-01-04 19:23:38 +01:00
Bruce Dubbs
da7949dfb6 Minor reworing of reason for GID 999 2022-01-04 11:43:19 -06:00
Xi Ruoyao
e7f0fa1fa6
shadow: "users" is a groupname, not a parameter 2022-01-05 01:12:58 +08:00
Pierre Labastie
2b3f5219bc Reword explanation of GROUP parameter in /etc/default/useradd
Tell that 999 comes from the --gid parameter, and that we already have
a group "users" with this gid to prevent messages when first using useradd.
2022-01-04 17:53:09 +01:00
Pierre Labastie
7f13657de1 shadow: move /etc/default/useradd creation to "Configuration"
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.
2022-01-04 12:38:18 +01:00
Douglas R. Reno
d21ec2fcbb systemd: Add CONFIG_PSI to the kernel configuration to get systemd-oomd
to work.

Note that it just skips bringing systemd-oomd up when not present, and
does not fail the startup process.
2022-01-03 12:03:45 -06:00
Xi Ruoyao
cd99aff683
Revert "shadow: remove explicit --disable-{su,runuser}"
This reverts commit 6ecd06927b.

Continue to use shadow su, until it's really dead.
2022-01-03 23:28:24 +08:00
Xi Ruoyao
cea24f504c
systemd: correct the description of systemd#21896 2021-12-31 21:26:31 +08:00
Bruce Dubbs
ad89f7b0d6 Package updates.
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.
2021-12-31 07:10:48 -06:00
Douglas R. Reno
6d19228191 Package Updates:
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.
2021-12-30 11:39:08 -06:00
Xi Ruoyao
6ecd06927b
shadow: remove explicit --disable-{su,runuser}
for sync with BLFS.  They are automatically disabled when PAM is
unavailable.
2021-12-27 20:54:46 +08:00
Xi Ruoyao
20e30e42e2
dependencies: list Linux-PAM as an optional dependency of util-linux 2021-12-27 16:40:40 +08:00
Xi Ruoyao
e0f124e741
chapter 6 ncurses: disable stripping (invoking host strip) 2021-12-18 01:32:45 +08:00
Bruce Dubbs
39bc7c48df Move Python to LFS in Standards section (again) 2021-12-17 10:26:36 -06:00
Bruce Dubbs
1c3c1fda64 Move Python to LFS in Standards section 2021-12-17 10:17:02 -06:00
Bruce Dubbs
05dcee7980 Package updates.
Update to python3-3.10.1.
Update to openssl-1.1.1m.
Update to linux-5.15.7.
Update to libcap-2.62.
2021-12-14 17:33:39 -06:00
Pierre Labastie
4b4f934b9c Update the command explanations in findutils 2021-12-14 13:48:09 +01:00
Pierre Labastie
a844ebe965 Update the changelog for findutils
The preceding cherry-picked commit did not have a changelog entry
2021-12-14 13:46:50 +01:00
Thomas Trepl
f2ab0c5d05 Fix issue building findutils on a 32bit system
Cherry picked from the multilib branch
2021-12-14 13:39:01 +01:00
Bruce Dubbs
1ca22874d3 Fix currency for psmisc 2021-12-12 08:25:34 -06:00
Xi Ruoyao
88bbf22f8b
ncursesw: do not in-place overwrite library being used by bash 2021-12-04 16:53:16 +08:00
Xi Ruoyao
0fc98a07ff
gcc-pass1: set --with-glibc-version to target glibc version
"info gccinstall" says:

'--with-glibc-version=MAJOR.MINOR'
     Tell GCC that when the GNU C Library (glibc) is used on the target
     it will be version MAJOR.MINOR or later.  Normally this can be
     detected from the C library's header files, but this option may be
     needed when bootstrapping a cross toolchain without the header
     files available for building the initial bootstrap compiler.

So it can, and should be set to the version of glibc which will be built
for the chroot environment.

On x86_64, currently it does not make any difference with values >=
2.13.  But it may make a difference if a new feature is added to glibc,
or on other platforms.
2021-12-03 03:06:18 +08:00
Bruce Dubbs
bdc9e03b78 Package updates.
Update to vim-8.2.3704.
Update to iana-etc-20211124.
Update to bc-5.2.1.
Update to meson-0.60.2.
Update to linux-5.15.5.
2021-11-30 12:43:05 -06:00
Xi Ruoyao
768ae15039
don't enable CONFIG_IKHEADERS building the kernel
https://lists.linuxfromscratch.org/sympa/arc/lfs-support/2021-11/msg00014.html
2021-11-23 18:23:51 +08:00
Xi Ruoyao
784f3c36e2
changelog: remove extra ">" breaking REV=systemd 2021-11-15 23:44:40 +08:00
Xi Ruoyao
394bd9caff
systemd: minor reword for Linux header >= 5.14 issue
It does not affect using systemd with Linux >= 5.14, but only affects
building systemd with kernel header >= 5.14.
2021-11-15 23:34:44 +08:00
Bruce Dubbs
0d78c2c179 Package updates.
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).
2021-11-14 12:22:12 -06:00
Xi Ruoyao
d48d1c2d91
toolchain note: add a disclaimer for the purpose of the book
There are some discussion on gcc-help from someone (mis)using LFS to
build a "general" toolchain.  Let's stop it before off-topic message got
into lfs-support.
2021-11-12 17:47:16 +08:00
Xi Ruoyao
0fc1b27b09
move the ln note back to chap 5 glibc
It was moved to chapter 4 during merged-/usr update.  However the ln
commands in chapater 4 are "trivial", so move it back to chapter 5 glibc
where we start to use a "different syntactic version" of it.
2021-11-12 00:41:02 +08:00
Bruce Dubbs
d18d2850dc Update currency to use https everywhere 2021-11-08 10:14:24 -06:00
Xi Ruoyao
3328dfdc69
systemd: fix a typo 2021-11-02 21:44:49 +08:00
Pierre Labastie
095286b709 Revert the change /bin/bash->/usr/bin/bash
We are not sure what the interaction with /etc/shells is...
2021-11-02 14:23:41 +01:00
Pierre Labastie
747287d8ad gawk, chap 6: now config.guess is in build-aux 2021-11-02 14:22:30 +01:00
Bruce Dubbs
56587fc43d Make umounting explicit 2021-11-01 12:05:41 -05:00
Bruce Dubbs
d02074e9bc Minor wording change 2021-11-01 08:49:48 -05:00
Bruce Dubbs
1f201845a3 Package updates
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.
2021-10-31 14:00:21 -05:00
Bruce Dubbs
843d015a32 Fix currency for vim 2021-10-25 09:28:22 -05:00
Bruce Dubbs
7c8e399d9b Fix 'file' currency 2021-10-24 16:24:48 -05:00
Xi Ruoyao
8cece120f9
libcap: remove unneeded chmod command
Libcap-2.59 install shared libs with mode 0755 by default.
2021-10-16 01:59:06 +08:00
Bruce Dubbs
fa32551de1 Package updates.
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.
2021-10-14 14:02:12 -05:00
Pierre Labastie
3a12bfb743 Remove forgotten conditionals in patches.ent 2021-10-14 18:56:54 +02:00
Bruce Dubbs
8fd9f816d4 Make instructions more consistent.
When using mkdir during installation, use -pv all the time.
Make reference to irc channel all lower case.
Update lfs-latest for condxml merge
2021-10-13 15:00:35 -05:00
Xi Ruoyao
64ce28748b
askforhelp: add a missing right bracket 2021-10-13 19:44:28 +08:00
Xi Ruoyao
7af57d2e6f
git-version: remove -g{sha} unconditionally 2021-10-13 19:30:53 +08:00
Xi Ruoyao
3d7b4f686a
clean up after condxml merge 2021-10-13 19:27:35 +08:00
Pierre Labastie
b17714a9bb Merge branch 'trunk' into plabs/condxml
October updates
2021-10-12 21:26:01 +02:00
Bruce Dubbs
8e7be496ed Package updates.
Update to vim-8.2.3458.
Update to iana-etc-20210924.
Update to tzdata-2021b.
Update to sysvinit-3.0.0.
Update to meson-0.59.2.
Update to linux-5.14.8.
Update to libcap-2.59.
Update to coreutils-9.0.
Update to bison-3.8.2.
2021-09-30 14:09:24 -05:00
Pierre Labastie
078ba67834 Merge branch 'plabs/condxml' of git.linuxfromscratch.org:lfs into plabs/condxml 2021-09-22 23:38:19 +02:00
Pierre Labastie
12b2639e0a Set general.ent for development
I had set it to release for testing only
2021-09-22 23:28:01 +02:00
Pierre Labastie
abec094036 Remove spurious space 2021-09-22 23:23:16 +02:00
Pierre Labastie
0480d22900 Add missing comma 2021-09-22 23:23:16 +02:00
Pierre Labastie
e8393f732a short-version for systemd release is "stable-systemd" 2021-09-22 23:23:16 +02:00
Pierre Labastie
01183c0cb7 general.ent: Add conditionals for release, rc, dev
WIP, needs some testing. But committing to be able to checkout
trunk and back...
2021-09-22 23:23:16 +02:00
Pierre Labastie
2198b5efa0 Remove eol spaces not caught by merge 2021-09-22 23:23:06 +02:00
Pierre Labastie
a1422e1126 Fix make-aux-file for lfs-bootscript entities
now, grep returns two lines. Keep only the first one, and
add a comment in packages;ent so that the first line is the
one we want!
2021-09-22 23:21:31 +02:00
Pierre Labastie
7146c9dc0c Make generic-version the same on both books
Needs to make a conditional for errata
2021-09-22 23:19:23 +02:00
Pierre Labastie
46d9bd8a2a remove erratad entity 2021-09-22 23:19:23 +02:00
Pierre Labastie
8891a507db Remove a duplicated entity in general.ent 2021-09-22 23:19:23 +02:00
Pierre Labastie
d73560403d remove blfs-systemd-book entity in chapter 11 2021-09-22 23:19:17 +02:00
Pierre Labastie
784fdaed25 Remove all versiond entities 2021-09-22 23:17:28 +02:00
Pierre Labastie
4467b18d3f Add a conditional entity for sysv/systemd
This removes the need for versiond, and other xxxd entities. Those
entities will be removed in the next commits.
2021-09-22 23:11:52 +02:00
Xi Ruoyao
2f142598a9
kernel: CONFIG_SECCOMP is now in General architecture-dependent options 2021-09-22 21:44:18 +08:00
Xi Ruoyao
859d839d50
remove trailing spaces 2021-09-21 19:03:30 +08:00
Xi Ruoyao
4f56024885
clarify that the system "*ctl" commands won't work in chroot 2021-09-21 15:06:11 +08:00
Pierre Labastie
35d257851a Remove double slash // in some links 2021-09-20 22:01:06 +02:00
Pierre Labastie
0bf23c841e Merge branch 'trunk' into plabs/condxml 2021-09-20 13:13:35 +02:00
Pierre Labastie
d887817942 Remove a false comment in general.ent
jhalfs does not need anything in "copyrightdate", so that
&ndash; can be used if desired
2021-09-20 13:12:01 +02:00
Bruce Dubbs
7e62bbc506 Tweak toolchain technical notes wording 2021-09-17 21:43:15 -05:00
Pierre Labastie
4809582902 Merge branch 'trunk' into plabs/condxml 2021-09-16 09:37:01 +02:00
Pierre Labastie
3c5b3f98c3 Remove conditionals in packages.ent
This allows to generate the same consolidated wget-list for both
books, which is needed for currency scripts
2021-09-16 09:32:18 +02:00
Bruce Dubbs
43b6ecdc1f Remove extra spaces 2021-09-15 11:24:27 -05:00
Bruce Dubbs
a5165eb396 Clarify the contents of the wget-list file 2021-09-15 11:14:10 -05:00
Pierre Labastie
b8a98a0e25 Remove eol spaces not caught by merge 2021-09-15 09:54:13 +02:00
Pierre Labastie
9af096edf5 Merge branch 'trunk' into plabs/condxml 2021-09-15 09:52:27 +02:00
Pierre Labastie
007d3bcce6 Remove eol spaces in recently added tcl doc 2021-09-15 09:51:34 +02:00
Pierre Labastie
d4c8dce412 Merge branch 'trunk' into plabs/condxml 2021-09-15 09:24:40 +02:00
Bruce Dubbs
06e7b36118 Package updates.
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.
2021-09-14 10:06:10 -05:00
Pierre Labastie
365b8c74b1 Move a misplaced role="nodump"
That lead jhalfs to create a useless 801-pkgmgt script.
2021-09-13 07:35:53 +02:00
Douglas R. Reno
e128c68596 Add the File upstream fixes patch to the book. 2021-09-08 10:36:09 -05:00
Pierre Labastie
2da0137968 Remove eol spaces in xsl stylesheets 2021-09-07 23:28:43 +02:00
Pierre Labastie
9ee05b53be Remove merge conflicts marks in chapter07/cleanup.xml 2021-09-07 23:25:03 +02:00
Pierre Labastie
3781c69cbc Remove eol spaces 2021-09-07 23:10:29 +02:00
Pierre Labastie
4458e3d2d8 Remove eol spaces 2021-09-07 23:05:44 +02:00
Pierre Labastie
408fb7828b Forgotten eol space in chapter02 2021-09-07 23:03:22 +02:00
Pierre Labastie
a44ae5771f Remove spaces at end of lines - bootscripts 2021-09-07 23:01:23 +02:00
Pierre Labastie
e7fb2ca433 Remove spaces at end of lines - appendices 2021-09-07 22:54:02 +02:00
Pierre Labastie
08ee81f6ed Remove spaces at end of lines - prologue 2021-09-07 22:52:28 +02:00
Pierre Labastie
a665a20066 Remove spaces at end o lines - part3intro 2021-09-07 22:47:52 +02:00
Pierre Labastie
2f72b72895 Remove spaces at end o lines - chapter01 2021-09-07 22:46:59 +02:00
Pierre Labastie
a04b192f50 Remove spaces at end o lines - chapter02 2021-09-07 22:46:24 +02:00
Pierre Labastie
5e0c67df78 Remove spaces at end o lines - chapter03 2021-09-07 22:44:53 +02:00
Pierre Labastie
707c4d32ad Remove spaces at end o lines - chapter04 2021-09-07 22:44:10 +02:00
Pierre Labastie
a26f29f645 Remove spaces at end o lines - chapter05 2021-09-07 22:43:31 +02:00
Pierre Labastie
2967da3223 Remove spaces at end o lines - chapter06 2021-09-07 22:41:43 +02:00
Pierre Labastie
c6f58f47bd Merge branch 'trunk' of git.linuxfromscratch.org:lfs into trunk 2021-09-07 22:40:16 +02:00
Pierre Labastie
2c8fdfc165 Remove spaces at end o lines - chapter07 2021-09-07 22:35:55 +02:00
Pierre Labastie
d672ab7d66 Remove spaces at end o lines - chapter08 2021-09-07 22:33:18 +02:00
Pierre Labastie
c8fb227d0d Remove spaces at end o lines - chapter11 2021-09-07 22:24:27 +02:00
Pierre Labastie
9cea9a28c8 Remove spaces at end o lines - chapter10 2021-09-07 22:23:53 +02:00
Pierre Labastie
c34b4fb1c6 Remove spaces at end o lines - chapterO9 2021-09-07 22:01:10 +02:00
Bruce Dubbs
8e6babecd0 Typo 2021-09-06 09:43:46 -05:00
Bruce Dubbs
beb80e291d Update text in Chapter 7 Backup/Restore sections
Patch by Kevin Buckley.
Also made minor clarification to umount commands.
2021-09-06 09:32:47 -05:00
Bruce Dubbs
6851fc8b2f Spacing 2021-09-04 10:48:46 -05:00
Bruce Dubbs
305c97068f Minor text changes 2021-09-03 19:43:45 -05:00
Bruce Dubbs
f411d2d231
Trunk post 11.0 release cleanup 2021-09-02 15:02:42 +08:00
Pierre Labastie
df1207e0fb packages.ent: remove a double hyphen in a comment 2021-09-01 17:07:07 +02:00
Pierre Labastie
9bfd0b53f4 Add conditional for patches only in one book
Same logic as for pacakges.ent, see preceding commits
2021-09-01 16:55:01 +02:00
Pierre Labastie
74bc5473c3 Fix make-aux-file for lfs-bootscript entities
now, grep returns two lines. Keep only the first one, and
add a comment in packages;ent so that the first line is the
one we want!
2021-09-01 16:53:14 +02:00
Pierre Labastie
7f5f7e6777 Add conditional entities for package versions
Those packages only in sysv book should appear after a "<![ %sysv; ["
conditional. But since the entity must always be defined when
profiling (the revision attribute removes text in the output, not
when parsing), there are the same entities with text "not-used"
after "<![ %systemd; [" conditional. Of course, the preceding is
reversed for packages only in the systemd book.
2021-09-01 16:47:33 +02:00
Pierre Labastie
900cbccdea Make generic-version the same on both books
Needs to make a conditional for errata
2021-09-01 14:38:08 +02:00
Pierre Labastie
0f8ec0945b remove erratad entity 2021-09-01 11:45:28 +02:00
Pierre Labastie
4429e8fbbb Remove a duplicated entity in general.ent 2021-09-01 11:44:54 +02:00
Pierre Labastie
b713ddb784 remove blfs-systemd-book entity in chapter 11 2021-09-01 11:22:25 +02:00
Pierre Labastie
615f5b80b0 Remove all versiond entities 2021-09-01 11:13:32 +02:00
Pierre Labastie
bd90b9b747 Add a conditional entity for sysv/systemd
This removes the need for versiond, and other xxxd entities. Those
entities will be removed in the next commits.
2021-09-01 11:08:49 +02:00
311 changed files with 10876 additions and 7870 deletions

5
.gitignore vendored
View File

@ -1,4 +1,7 @@
lfs-bootscripts-*.tar.xz
lfs-*.tar.xz
conditional.ent
version.ent
appendices/*.script
*.swp
fop.log

22
INSTALL
View File

@ -1,11 +1,11 @@
LFS Book Conversion Tools Installation Instructions
After downloading the SVN source, there are some things that need to be set up
on your computer if you want to convert the XML source into something easier to
read (e.g. HTML, TXT, or PDF). If you are interested in this, then keep
reading. If you are only interested in editing the XML source for re-
submission to the lfs-book or lfs-dev mailing lists, then you do not need this
document. Instead, you need to read the LFS Editor's Manual. See the LFS
After downloading the SVN source, there are some things that need to be set up
on your computer if you want to convert the XML source into something easier to
read (e.g. HTML, TXT, or PDF). If you are interested in this, then keep
reading. If you are only interested in editing the XML source for re-
submission to the lfs-book or lfs-dev mailing lists, then you do not need this
document. Instead, you need to read the LFS Editor's Manual. See the LFS
website at https://www.linuxfromscratch.org for more information.
-------------------------------------------------------------------------------
@ -18,16 +18,16 @@ If you want to convert the XML to HTML, install the following:
* libxslt
- https://www.linuxfromscratch.org/blfs/view/svn/general/libxslt.html
* DocBook DTD
- https://www.linuxfromscratch.org/blfs/view/svn/pst/xml.html
* DocBook 4.5 XML DTD
- https://www.linuxfromscratch.org/blfs/view/svn/pst/docbook.html
* DocBook XSL Stylesheets
* DocBook XSL Stylesheets
- https://www.linuxfromscratch.org/blfs/view/svn/pst/docbook-xsl.html
* HTMLTidy
- https://www.linuxfromscratch.org/blfs/view/svn/general/tidy-html5.html
-------------------------------------------------------------------------------
-------------------------------------------------------------------------------
If you want to convert the XML to TXT, install the above items, and then install
the following:
@ -35,7 +35,7 @@ the following:
* lynx
- https://www.linuxfromscratch.org/blfs/view/svn/basicnet/lynx.html
-------------------------------------------------------------------------------
-------------------------------------------------------------------------------
If you want to convert the XML to PDF, install the items listed above (except
lynx) and then install the following:

137
Makefile
View File

@ -1,6 +1,4 @@
#BASEDIR = ~/lfs-book
#SYSDDIR = ~/lfs-systemd
#DUMPDIR = ~/lfs-commands
# vim:ts=3
RENDERTMP = $(HOME)/tmp
CHUNK_QUIET = 1
ROOT_ID =
@ -23,15 +21,15 @@ ifneq ($(REV), sysv)
endif
ifeq ($(REV), sysv)
BASEDIR ?= ~/lfs-book
BASEDIR ?= $(HOME)/public_html/lfs-book
PDF_OUTPUT ?= LFS-BOOK.pdf
NOCHUNKS_OUTPUT ?= LFS-BOOK.html
DUMPDIR ?= ~/cross-lfs-commands
DUMPDIR ?= $(HOME)/lfs-commands
else
BASEDIR ?= ~/lfs-systemd
BASEDIR ?= $(HOME)/public_html/lfs-systemd
PDF_OUTPUT ?= LFS-SYSD-BOOK.pdf
NOCHUNKS_OUTPUT ?= LFS-SYSD-BOOK.html
DUMPDIR ?= ~/lfs-sysd-commands
DUMPDIR ?= $(HOME)/lfs-sysd-commands
endif
book: validate profile-html
@ -46,7 +44,8 @@ book: validate profile-html
@echo "Copying CSS code and images..."
$(Q)mkdir -p $(BASEDIR)/stylesheets
$(Q)cp stylesheets/lfs-xsl/*.css $(BASEDIR)/stylesheets
$(Q)sed -i 's|../stylesheet|stylesheet|' $(BASEDIR)/index.html
$(Q)sed -e 's|../stylesheet|stylesheet|' \
-i $(BASEDIR)/index.html
$(Q)mkdir -p $(BASEDIR)/images
$(Q)cp images/*.png $(BASEDIR)/images
@ -54,12 +53,10 @@ book: validate profile-html
@echo "Running Tidy and obfuscate.sh..."
$(Q)for filename in `find $(BASEDIR) -name "*.html"`; do \
tidy -config tidy.conf $$filename; \
true; \
/bin/bash obfuscate.sh $$filename; \
sed -e "s@text/html@application/xhtml+xml@g" \
-e "s/\xa9/\&copy;/ " \
sed -e "s|text/html|application/xhtml+xml|g" \
-i $$filename; \
done;
done
$(Q)$(MAKE) --no-print-directory wget-list md5sums
@ -98,17 +95,16 @@ nochunks: validate profile-html
--output $(BASEDIR)/$(NOCHUNKS_OUTPUT) \
stylesheets/lfs-nochunks.xsl \
$(RENDERTMP)/lfs-html.xml
# $(RENDERTMP)/lfs-html2.xml
@echo "Running Tidy..."
$(Q)tidy -config tidy.conf $(BASEDIR)/$(NOCHUNKS_OUTPUT) || true
$(Q)tidy -config tidy.conf $(BASEDIR)/$(NOCHUNKS_OUTPUT) || test $$? -le 1
@echo "Running obfuscate.sh..."
$(Q)bash obfuscate.sh $(BASEDIR)/$(NOCHUNKS_OUTPUT)
$(Q)sed -i -e "s@text/html@application/xhtml+xml@g" $(BASEDIR)/$(NOCHUNKS_OUTPUT)
$(Q)sed -i -e "s@../wget-list@wget-list@" $(BASEDIR)/$(NOCHUNKS_OUTPUT)
$(Q)sed -i -e "s@../md5sums@md5sums@" $(BASEDIR)/$(NOCHUNKS_OUTPUT)
$(Q)sed -i -e "s@\xa9@\&copy;@" $(BASEDIR)/$(NOCHUNKS_OUTPUT)
$(Q)bash obfuscate.sh $(BASEDIR)/$(NOCHUNKS_OUTPUT)
$(Q)sed -e "s|text/html|application/xhtml+xml|g" \
-e "s|../wget-list|wget-list|" \
-e "s|../md5sums|md5sums|" \
-i $(BASEDIR)/$(NOCHUNKS_OUTPUT)
@echo "Output at $(BASEDIR)/$(NOCHUNKS_OUTPUT)"
@ -127,86 +123,99 @@ validate: tmpdir version
@echo "Adjusting for revision $(REV)..."
$(Q)xsltproc --nonet \
--xinclude \
--output $(RENDERTMP)/lfs-html2.xml \
--stringparam profile.revision $(REV) \
--output $(RENDERTMP)/lfs-html2.xml \
stylesheets/lfs-xsl/profile.xsl \
index.xml
@echo "Validating the book..."
$(Q)xmllint --nonet \
--noent \
--postvalid \
-o $(RENDERTMP)/lfs-full.xml \
$(Q)xmllint --nonet \
--encode UTF-8 \
--postvalid \
--output $(RENDERTMP)/lfs-full.xml \
$(RENDERTMP)/lfs-html2.xml
$(Q)rm -f appendices/*.script
$(Q)./aux-file-data.sh $(RENDERTMP)/lfs-full.xml
@echo "Validation complete."
profile-html:
profile-html:
@echo "Generating profiled XML for XHTML..."
$(Q)xsltproc --nonet \
--stringparam profile.condition html \
--output $(RENDERTMP)/lfs-html.xml \
--output $(RENDERTMP)/lfs-html.xml \
stylesheets/lfs-xsl/profile.xsl \
$(RENDERTMP)/lfs-full.xml
$(RENDERTMP)/lfs-full.xml
wget-list: $(BASEDIR)/wget-list
$(BASEDIR)/wget-list: stylesheets/wget-list.xsl chapter03/chapter03.xml \
packages.ent patches.ent general.ent
DOWNLOADS_DEP = chapter03/packages.xml chapter03/patches.xml \
packages.ent patches.ent general.ent
wget-list: $(BASEDIR)/wget-list $(BASEDIR)/wget-list-$(REV)
$(BASEDIR)/wget-list: stylesheets/wget-list.xsl $(DOWNLOADS_DEP)
@echo "Generating consolidated wget list at $(BASEDIR)/wget-list ..."
$(Q)mkdir -p $(BASEDIR)
# $(Q)xsltproc --nonet --xinclude \
# --stringparam profile.revision $(REV) \
# --output $(RENDERTMP)/sysd-wget.xml \
# stylesheets/lfs-xsl/profile.xsl \
# chapter03/chapter03.xml
$(Q)xsltproc --xinclude --nonet \
$(Q)xsltproc --nonet \
--xinclude \
--output $(BASEDIR)/wget-list \
stylesheets/wget-list.xsl \
stylesheets/wget-list.xsl \
chapter03/chapter03.xml
md5sums: $(BASEDIR)/md5sums
$(BASEDIR)/md5sums: stylesheets/wget-list.xsl chapter03/chapter03.xml \
packages.ent patches.ent
@echo "Generating consolidated md5sum file at $(BASEDIR)/md5sums ..."
$(Q)mkdir -p $(BASEDIR)
$(Q)xsltproc --nonet --xinclude \
$(BASEDIR)/wget-list-$(REV): stylesheets/wget-list.xsl $(DOWNLOADS_DEP)
$(Q)xsltproc --nonet \
--xinclude \
--stringparam profile.revision $(REV) \
--output $(RENDERTMP)/sysv-md5sum.xml \
--output $(RENDERTMP)/wget-list.xml \
stylesheets/lfs-xsl/profile.xsl \
chapter03/chapter03.xml
$(Q)xsltproc --xinclude --nonet \
$(Q)xsltproc --nonet \
--output $(BASEDIR)/wget-list-$(REV) \
stylesheets/wget-list.xsl \
$(RENDERTMP)/wget-list.xml
md5sums: $(BASEDIR)/md5sums
$(BASEDIR)/md5sums: stylesheets/wget-list.xsl $(DOWNLOADS_DEP)
@echo "Generating consolidated md5sum file at $(BASEDIR)/md5sums ..."
$(Q)mkdir -p $(BASEDIR)
$(Q)xsltproc --nonet \
--xinclude \
--stringparam profile.revision $(REV) \
--output $(RENDERTMP)/md5sum.xml \
stylesheets/lfs-xsl/profile.xsl \
chapter03/chapter03.xml
$(Q)xsltproc --nonet \
--output $(BASEDIR)/md5sums \
stylesheets/md5sum.xsl \
$(RENDERTMP)/sysv-md5sum.xml
$(RENDERTMP)/md5sum.xml
$(Q)sed -i -e \
"s/BOOTSCRIPTS-MD5SUM/$(shell md5sum lfs-bootscripts*.tar.xz | cut -d' ' -f1)/" \
$(BASEDIR)/md5sums
version:
$(Q)./git-version.sh
$(Q)./git-version.sh $(REV)
#dump-commands: validate
# @echo "Dumping book commands..."
# $(Q)xsltproc --nonet \
# --output $(RENDERTMP)/lfs-html.xml \
# --stringparam profile.revision $(REV) \
# stylesheets/lfs-xsl/profile.xsl \
# $(RENDERTMP)/lfs-full.xml
dump-commands: validate
@echo "Dumping book commands..."
# $(Q)rm -rf $(DUMPDIR)
$(Q)rm -rf $(DUMPDIR)
# $(Q)xsltproc --output $(DUMPDIR)/ \
# stylesheets/dump-commands.xsl \
# $(RENDERTMP)/lfs-html.xml
# @echo "Dumping book commands complete in $(DUMPDIR)"
$(Q)xsltproc --output $(DUMPDIR)/ \
stylesheets/dump-commands.xsl \
$(RENDERTMP)/lfs-full.xml
@echo "Dumping book commands complete in $(DUMPDIR)"
all: book nochunks pdf # dump-commands
all: book nochunks pdf dump-commands
.PHONY : all book dump-commands nochunks pdf profile-html tmpdir validate md5sums wget-list version
dist:
$(Q)DIST=/tmp/LFS-RELEASE ./git-version.sh $(REV)
$(Q)rm -f lfs-$$(</tmp/LFS-RELEASE).tar.xz
$(Q)tar cJf lfs-$$(</tmp/LFS-RELEASE).tar.xz \
$(shell git ls-tree HEAD . --name-only -r) version.ent \
-C /tmp LFS-RELEASE \
--transform "s,^,lfs-$$(</tmp/LFS-RELEASE)/,"
$(Q)echo "Generated XML tarball lfs-$$(</tmp/LFS-RELEASE).tar.xz"
.PHONY : all book dump-commands nochunks pdf profile-html tmpdir validate md5sums wget-list version dist

6
README
View File

@ -1,13 +1,13 @@
LFS Book README
This document is meant to instruct the user on how to convert the book's XML
source to other formats (e.g. HTML, PDF, PS and TXT). First, if you have not
This document is meant to instruct the user on how to convert the book's XML
source to other formats (e.g. HTML, PDF, PS and TXT). First, if you have not
already done so, please read the INSTALL file for instructions on how to install
the required software. If you have already completed the steps outlined in the
INSTALL file, then continue reading for examples how to convert these files into
various other formats.
In all examples, setting the parameter REV=systemd is needed to build the
In all examples, setting the parameter REV=systemd is needed to build the
systemd version of the book.
XML to XHTML:

View File

@ -1,4 +1,4 @@
<?xml version="1.0" encoding="ISO-8859-1"?>
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE appendix PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
<!ENTITY % general-entities SYSTEM "../general.ent">
@ -75,13 +75,13 @@
</listitem>
<listitem>
<para><ulink url="mailto:jmengual@linuxfromscratch.org">Jean-Philippe
<para><ulink url="mailto:jmengual@linuxfromscratch.org">Jean-Philippe
Mengual </ulink> &lt;jmengual@linuxfromscratch.org&gt; &ndash; French LFS
translation project 2008-2016</para>
</listitem>
<listitem>
<para><ulink url="mailto:jlepiller@linuxfromscratch.org">Julien
<para><ulink url="mailto:jlepiller@linuxfromscratch.org">Julien
Lepiller </ulink> &lt;jlepiller@linuxfromscratch.org&gt; &ndash; French LFS
translation project 2017-present</para>
</listitem>
@ -89,7 +89,13 @@
<listitem>
<para><ulink url="mailto:lizardo@linuxfromscratch.org">Anderson
Lizardo</ulink> &lt;lizardo@linuxfromscratch.org&gt; &ndash;
Portuguese LFS translation project</para>
Portuguese LFS translation project historical</para>
</listitem>
<listitem>
<para><ulink url="mailto:jafesp@gmail.com">Jamenson
Espindula</ulink> &lt;jafesp@gmail.com&gt; &ndash;
Portuguese LFS translation project 2022-present</para>
</listitem>
<listitem>
@ -97,19 +103,19 @@
Reitelbach </ulink> &lt;tr@erdfunkstelle.de&gt; &ndash; German LFS
translation project</para>
</listitem>
<!--
<listitem>
<para><ulink url="mailto:info@linuxfromscratch.org.ru">Anton Maisak</ulink>
<para><ulink url="mailto:info@linuxfromscratch.org.ru">Anton Maisak</ulink>
&lt;info@linuxfromscratch.org.ru&gt; &ndash; Russian LFS
translation project</para>
</listitem>
<listitem>
<para><ulink url="mailto:helen@linuxfromscratch.org.ru">Elena Shevcova</ulink>
<para><ulink url="mailto:helen@linuxfromscratch.org.ru">Elena Shevcova</ulink>
&lt;helen@linuxfromscratch.org.ru&gt; &ndash; Russian LFS
translation project</para>
</listitem>
-->
</itemizedlist>
<bridgehead renderas="sect2">Mirror Maintainers</bridgehead>
@ -247,12 +253,12 @@
<para><ulink url="mailto:info@shizu-net.jp">Shizunet Co.,Ltd.</ulink>
&lt;info@shizu-net.jp&gt; &ndash; lfs.mirror.shizu-net.jp mirror</para>
</listitem>
<!-- domain name can't be resolved on Sept 5, 2022
<listitem>
<para><ulink url="http://www.initworld.com/">Init World</ulink>
&lt;http://www.initworld.com/&gt; &ndash; lfs.initworld.com mirror</para>
</listitem>
-->
</itemizedlist>
<bridgehead renderas="sect3">Australian Mirrors</bridgehead>

View File

@ -1,4 +1,4 @@
<?xml version="1.0" encoding="ISO-8859-1"?>
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE appendix PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
<!ENTITY % general-entities SYSTEM "../general.ent">

View File

@ -1,4 +1,4 @@
<?xml version="1.0" encoding="ISO-8859-1"?>
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE appendix PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
<!ENTITY % general-entities SYSTEM "../general.ent">

File diff suppressed because it is too large Load Diff

View File

@ -1,4 +1,4 @@
<?xml version="1.0" encoding="ISO-8859-1"?>
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE appendix PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
<!ENTITY % general-entities SYSTEM "../general.ent">

View File

@ -1,4 +1,4 @@
<?xml version="1.0" encoding="ISO-8859-1"?>
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE appendix PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
<!ENTITY % general-entities SYSTEM "../general.ent">

View File

@ -1,4 +1,4 @@
<?xml version="1.0" encoding="ISO-8859-1"?>
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE appendix PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
<!ENTITY % general-entities SYSTEM "../general.ent">

View File

@ -1,4 +1,4 @@
<?xml version="1.0" encoding="ISO-8859-1"?>
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE appendix PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
<!ENTITY % general-entities SYSTEM "../general.ent">
@ -8,12 +8,12 @@
<appendix id="rules" xreflabel="Appendix E" revision="sysv">
<?dbhtml dir="scripts"?>
<?dbhtml filename="eudev-rules.html"?>
<?dbhtml filename="udev-rules.html"?>
<title>Udev configuration rules</title>
<para>The rules in this appendix are listed for convenience. Installation is
normally done via instructions in <xref linkend='ch-system-eudev'/>. </para>
normally done via instructions in <xref linkend='ch-system-udev' role='.'/> </para>
<sect1 id="lfsrules" role="wrap">
<title>55-lfs.rules</title>

View File

@ -15,7 +15,7 @@ base=$(basename $bootscripts .tar.xz)
bootsize=$(ls -l --block-size=1024 $bootscripts | cut -f5 -d" ")
bootmd5=$(md5sum $bootscripts | cut -f1 -d" ")
# Figure intalled size of bootscripts
# Figure installed size of bootscripts
TOPDIR=$(pwd)
TMP_DIR=$(mktemp -d /tmp/lfsbootfiles.XXXXXX)
pushd $TMP_DIR > /dev/null

View File

@ -1,3 +1,60 @@
2024-08-25 Xi Ruoyao <xry111@xry111.site>
* Remove an empty line and an outdated comment (not valid anymore after
/usr merge) from init-functions.
2024-08-24 Andrew Kreimer <algonell@gmail.com>
* Fix typos.
2024-08-23 Xi Ruoyao <xry111@xry111.site>
* In console, detect FB console by checking /sys/class/graphics/fbcon
instead of fb0. The latter does not exist if CONFIG_FB=n, but
CONFIG_DRM_FBDEV_EMULATION=y can support a FB console without
CONFIG_FB.
2024-07-12 Xi Ruoyao <xry111@xry111.site>
* In mountvirtfs, recreate /dev/fd correctly if it's already created
by the initramfs.
2024-07-06 Bruce Dubbs <bdubbs@linuxfromscratch.org>
* Add logic to init-functions to only print escape sequences
if stdin and stdout are connected to a terminal.
2024-04-16 Bruce Dubbs <bdubbs@linuxfromscratch.org>
* Remove blank output line generated in ifup script when bringing
up wireless interface.
2023-10-04 Pierre Labastie <pierre.labastie@neuf.fr>
* After the changes done on 2022-03-24, several "halt stop" should
have been changed to "halt start". Done now. Fortunately, those
occur only when something wrong happens with disks or devices.
2023-07-28 Xi Ruoyao <xry111@xry111.site>
* In mountvirtfs, mount /sys/fs/cgroup for udev from systemd-254.
2023-07-22 Xi Ruoyao <xry111@xry111.site>
* In mountvirtfs, create symlinks /dev/{fd,std{in,out,err}} and
/dev/core (optional).
2023-07-16 Xi Ruoyao <xry111@xry111.site>
* In udev, set SYSTEMD_LOG_TARGET=kmsg so systemd-udevd will correctly
log messages.
2023-07-15 Xi Ruoyao <xry111@xry111.site>
* Use /bin/udevadm instead of /sbin/udevadm.
2022-09-30 Bruce Dubbs <bdubbs@linuxfromscratch.org>
* Mount /dev/shm as a tmpfs.
2022-07-23 Thomas Trepl <thomas@linuxfromscratch.org>
* Mark an raid array clean when root (/) has been remounted
r/o when system goes down. Otherwise, array does remain
always 'dirty', causing a resync at next boot.
2022-03-24 Pierre Labastie <pierre dot labastie at neuf dot fr>
* New semantics for K and S scripts:
- S scripts only started if not already marked S in the previous runlevel
- K scripts only started if not already marked K in the previous runlevel
- remove the convention of running S scripts with "stop" in rl 0/6
2021-06-08 Bruce Dubbs <bdubbs@linuxfromscratch.org>
* When shutting down the network, ignore invalid interfaces
or interfaces that are not UP.
@ -6,7 +63,7 @@
* Prevent sendsignals from killing an active mdmon
2021-04-28 Bruce Dubbs <bdubbs@linuxfromscratch.org>
* Make check_signal more robust.
* Make check_signal more robust.
* Use a better methog for killproc to remove a dead pid file.
* Clarify what signals killproc accepts.
* Thanks to input and discussion from Scott Andrews.
@ -84,7 +141,7 @@
2013-01-24 Bruce Dubbs <bdubbs@linuxfromscratch.org>
* Remove local attribue of some variables for Bourne
shell compatability
* Specify /bin/echo in commands with -e switch for
* Specify /bin/echo in commands with -e switch for
Bourne shell compatability
2012-10-13 Bruce Dubbs <bdubbs@linuxfromscratch.org>
@ -121,7 +178,7 @@
** ifdown now only uses the first SERVICE
** Updated ifup.8 to reflect current usage
** ifup
*** Move interface up logic to after service scripts. Eliminates the
*** Move interface up logic to after service scripts. Eliminates the
need for the LINK_CHECK variable.
*** Sets the GATEWAY if the variable is set
*** Add MTU logic to ifup
@ -167,10 +224,10 @@
*** /lib/lsb is a symlink to /lib/services.
* Create convenience symlink /etc/init.d->/etc/rc.d/init.d.
* Add help and man pages to upup/ifdown.
* Append /run/var/bootlog to /var/log/boot.log at the end of
* Append /run/var/bootlog to /var/log/boot.log at the end of
the boot sequence.
* Add capabiltiy to step through the boot scripts at boot time
* Optionally allow environment variables in sysconfig directory's
* Optionally allow environment variables in sysconfig directory's
console, network, and clock files to be placed in rc.site.
* Add an optional FASTBOOT parameter to set /fastboot when rebooting.
@ -183,11 +240,11 @@
HEADLESS=1 to skip READ commands
** Add /etc/sysconfig/init_params for adding environmental parameters
to all functions used in bootscripts
** Move network configuration to /etc/sysconfig/ifconfig.*. The
ifconfig files can have any extension. Use IFACE parameter to
** Move network configuration to /etc/sysconfig/ifconfig.*. The
ifconfig files can have any extension. Use IFACE parameter to
specify the target network interface within the configuration file.
** Adds an optional parameter, SKIPTMPCLEAN, to skip the removal of
files in /tmp at bootup. Specify the variable in
** Adds an optional parameter, SKIPTMPCLEAN, to skip the removal of
files in /tmp at bootup. Specify the variable in
/etc/sysconfig/init_params.
2011-05-31 DJ Lucas <dj@linuxfromscratch.org>
@ -223,8 +280,8 @@
2009-01-02 Bruce Dubbs <bdubbs@linuxfromscratch.org>
* lfs/init.d/functions:
* lfs/sysconfig/network-devices/ifup:
Updated line widths to accommodate pdf generation in both the above
* lfs/sysconfig/network-devices/ifup:
Updated line widths to accommodate pdf generation in both the above
files.
2008-10-27 DJ Lucas <dj@linuxfromscratch.org>
@ -341,7 +398,7 @@
n/a - June 2, 2006
* Removed console config file and makefile targets.
* Removed references to /dev/bug and bugreport in udevand
* Removed references to /dev/bug and bugreport in udev and
udev_retry bootscripts. (DJ Lucas)
n/a - April 17, 2006
@ -350,13 +407,13 @@ n/a - April 17, 2006
partition or for some other reason fail the initial replay. (Archaic)
n/a - April 15, 2006
* Cleaned up contrib directory. Removed: contrib/init.d,
contrib/enhanced, contrib/livecd, contrib/hotplug, and raq2
* Cleaned up contrib directory. Removed: contrib/init.d,
contrib/enhanced, contrib/livecd, contrib/hotplug, and raq2
patch. (DJ Lucas)
n/a - April 14, 2006
* Merged changes from udev_update branch (DJ Lucas)
* Replaced a return with an exit and reversed comment changes in
* Replaced a return with an exit and reversed comment changes in
udev bootscript. (Dan Nicholson)
* Replaced walk_sysfs function in udev bootscript with new udevtrigger
program and move wait_for_uevents function inline. (DJ Lucas)
@ -369,7 +426,7 @@ n/a - March 21, 2006
to boot_mesg_flush in echo_* functions. (DJ Lucas)
n/a - March 10, 2006
* Moved src argument to ipv4-static-route service script and
* Moved src argument to ipv4-static-route service script and
removed from ipv4-static service script. (DJ Lucas)
n/a - March 8. 2006
@ -388,13 +445,13 @@ n/a - September 11, 2005
* Fixed display error with LSB init-functions script
* Made above killproc/print_status changes in enhanced
bootscripts.
* Made logger service configurable in enhanced
* Made logger service configurable in enhanced
bootscripts. (DJ Lucas)
n/a - August 14, 2005
* Added -s flag to pidofproc() for backwards
* Added -s flag to pidofproc() for backwards
compatibility (DJ Lucas)
* Fixed erronous values returned by pidofproc() which
* Fixed erronous values returned by pidofproc() which
broke the functionality of statusproc (DJ Lucas)
n/a - July 1, 2005
@ -402,8 +459,8 @@ n/a - July 1, 2005
function for ash compliancy (Nathan Coulson)
n/a - June 26, 2005
* Removed consolelog script from contrib
* Updated interactive rc script in contrib and added
* Removed consolelog script from contrib
* Updated interactive rc script in contrib and added
README.rc-Interactive, added install target to the
Makefile. (DJ Lucas)
@ -599,7 +656,7 @@ n/a - September 22, 2004
n/a - September 21, 2004
* boot_mesg has been enhanced. Subsequent calls will overwrite
previous text, and it will wrap text basedupon the variable ${WCOL}.
previous text, and it will wrap text basedupon the variable ${WCOL}.
(James Robertson)
* Fixed mtu optional service typo (Kevin P Fleming)
* Added SOURCE variable to ipv4-static-route (Kevin P Fleming)
@ -608,7 +665,7 @@ n/a - September 16, 2004
* nework interfaces are now brought down in reverse order
n/a - September 15, 2004
* Added blue bracket, from dj's 3.0-pre1 bootscript package
* Added blue bracket, from dj's 3.0-pre1 bootscript package
[echo_failure, echo_warning, and echo_ok]
* Added a new function called boot_mesg, meant to replace the echo
command.
@ -632,11 +689,10 @@ n/a - August 7, 2004
* Added missing error redirect (/dev/null) in getpids. (DJ)
n/a - August 4, 2004
* Added MODE, DIRMODE, and CONFMODE variables to the makefile
* Added MODE, DIRMODE, and CONFMODE variables to the makefile
to allow permissions to be set at install. (DJ)
n/a - July 31, 2004
* Moved PIDFILE check to getpids and removed arguments from
killproc and reloadproc. Signals are now set at beginning of
funtcions script with KILLDELAY. (DJ)
@ -645,7 +701,7 @@ n/a - July 31, 2004
n/a - July 21, 2004
* Committed DJ Lucas's patch for the killproc function. It no
* Committed DJ Lucas's patch for the killproc function. It no
longer requires arguments if PIDFILE is set
* added --backup to all sysconfig configuration files, so they are not
replaced on a make install
@ -978,7 +1034,7 @@ n/a - March 20, 2004
* Added create-service-dir target and removed from create-dirs
* Changed service script install targets to use
create-service-dir
* Added check for dhcpcd service script for stale pid file
* Added check for dhcpcd service script for stale pid file
Suggested by Jeremy
* Added ifconfig to ipx service script for hosting device not up
@ -1123,7 +1179,7 @@ n/a - January 30, 2004:
* Changed the loadkeys script to run "loadkeys -d" and removed the need
for the /etc/sysconfig/keyboard file. The kbd patch fixes the
"loadkeys -d" behaviour.
"loadkeys -d" behavior.
1.6 - February 26th, 2002:

View File

@ -29,7 +29,7 @@ create-dirs:
ln -sfn services ${LIBDIR}/lsb
ln -sfn rc.d/init.d ${ETCDIR}/init.d
files: create-dirs
files: create-dirs
install -m ${MODE} lfs/init.d/checkfs ${ETCDIR}/rc.d/init.d/
install -m ${MODE} lfs/init.d/cleanfs ${ETCDIR}/rc.d/init.d/
install -m ${MODE} lfs/init.d/halt ${ETCDIR}/rc.d/init.d/
@ -88,10 +88,10 @@ rcS: files
rc0: files
ln -sf ../init.d/network ${ETCDIR}/rc.d/rc0.d/K80network
ln -sf ../init.d/sysklogd ${ETCDIR}/rc.d/rc0.d/K90sysklogd
ln -sf ../init.d/sendsignals ${ETCDIR}/rc.d/rc0.d/S60sendsignals
ln -sf ../init.d/swap ${ETCDIR}/rc.d/rc0.d/S65swap
ln -sf ../init.d/mountfs ${ETCDIR}/rc.d/rc0.d/S70mountfs
ln -sf ../init.d/localnet ${ETCDIR}/rc.d/rc0.d/S90localnet
ln -sf ../init.d/sendsignals ${ETCDIR}/rc.d/rc0.d/K92sendsignals
ln -sf ../init.d/swap ${ETCDIR}/rc.d/rc0.d/K94swap
ln -sf ../init.d/mountfs ${ETCDIR}/rc.d/rc0.d/K96mountfs
ln -sf ../init.d/localnet ${ETCDIR}/rc.d/rc0.d/K98localnet
ln -sf ../init.d/halt ${ETCDIR}/rc.d/rc0.d/S99halt
rc1: files
@ -99,8 +99,8 @@ rc1: files
ln -sf ../init.d/sysklogd ${ETCDIR}/rc.d/rc1.d/K90sysklogd
rc2: files
ln -sf ../init.d/network ${ETCDIR}/rc.d/rc2.d/K80network
ln -sf ../init.d/sysklogd ${ETCDIR}/rc.d/rc2.d/K90sysklogd
ln -sf ../init.d/network ${ETCDIR}/rc.d/rc2.d/S10network
ln -sf ../init.d/sysklogd ${ETCDIR}/rc.d/rc2.d/S20sysklogd
rc3: files
ln -sf ../init.d/sysklogd ${ETCDIR}/rc.d/rc3.d/S10sysklogd
@ -117,16 +117,16 @@ rc5: files
rc6: files
ln -sf ../init.d/network ${ETCDIR}/rc.d/rc6.d/K80network
ln -sf ../init.d/sysklogd ${ETCDIR}/rc.d/rc6.d/K90sysklogd
ln -sf ../init.d/sendsignals ${ETCDIR}/rc.d/rc6.d/S60sendsignals
ln -sf ../init.d/swap ${ETCDIR}/rc.d/rc6.d/S65swap
ln -sf ../init.d/mountfs ${ETCDIR}/rc.d/rc6.d/S70mountfs
ln -sf ../init.d/localnet ${ETCDIR}/rc.d/rc6.d/S90localnet
ln -sf ../init.d/sendsignals ${ETCDIR}/rc.d/rc6.d/K92sendsignals
ln -sf ../init.d/swap ${ETCDIR}/rc.d/rc6.d/K94swap
ln -sf ../init.d/mountfs ${ETCDIR}/rc.d/rc6.d/K96mountfs
ln -sf ../init.d/localnet ${ETCDIR}/rc.d/rc6.d/K98localnet
ln -sf ../init.d/reboot ${ETCDIR}/rc.d/rc6.d/S99reboot
uninstall:
rm -rf ${DESTDIR}/lib/services ${DESTDIR}/lib/lsb ${ETCDIR}/rc.d ${ETCDIR}/init.d \
${SBIN}/ifup ${SBIN}/ifdown ${MAN8}/ifup.8 ${MAN8}/ifdown.8 \
${ETCDIR}/sysconfig/rc
${ETCDIR}/sysconfig/rc
.PHONY: all create-dirs install files links rcS rc0 rc1 rc2 rc3 rc4 rc5 rc6 uninstall

View File

@ -48,7 +48,7 @@ CleanFS configuration:
/etc/sysconfig/rc.site
- SKIPTMPCLEAN: skips cleaning of /tmp directory
/etc/sysconfig/createfiles
/etc/sysconfig/createfiles
Each line is parsed, using space as a deliminator.
[NAME] [TYPE] [PERMISSIONS] [USER] [GROUP]
The below fields are currently only used on dev type.

View File

@ -34,7 +34,7 @@
# Default-Start: S
# Default-Stop:
# Short-Description: Checks local filesystems before mounting.
# Description: Checks local filesystmes before mounting.
# Description: Checks local filesystems before mounting.
# X-LFS-Provided-By: LFS
### END INIT INFO
@ -61,15 +61,15 @@ case "${1}" in
msg="${msg}halted and powered off.\n\n"
log_failure_msg "${msg}"
log_info_msg "Press Enter to continue..."
log_info_msg "Press Enter to continue..."
wait_for_user
/etc/rc.d/init.d/halt stop
/etc/rc.d/init.d/halt start
else
log_success_msg2
fi
if [ -f /forcefsck ]; then
msg="/forcefsck found, forcing file"
msg="/forcefsck found, forcing file"
msg="${msg} system checks as requested."
log_success_msg "$msg"
options="-f"
@ -101,14 +101,14 @@ case "${1}" in
if [ "${error_value}" = 2 -o "${error_value}" = 3 ]; then
msg="\nWARNING:\n\nFile system errors "
msg="${msg}were found and have been been "
msg="${msg}were found and have been "
msg="${msg}corrected, but the nature of the "
msg="${msg}errors require this system to be rebooted.\n\n"
msg="${msg}After you press enter, "
msg="${msg}this system will be rebooted\n\n"
log_failure_msg "$msg"
log_info_msg "Press Enter to continue..."
log_info_msg "Press Enter to continue..."
wait_for_user
reboot -f
fi
@ -125,9 +125,9 @@ case "${1}" in
msg="${msg}halted and powered off.\n\n"
log_failure_msg "$msg"
log_info_msg "Press Enter to continue..."
log_info_msg "Press Enter to continue..."
wait_for_user
/etc/rc.d/init.d/halt stop
/etc/rc.d/init.d/halt start
fi
if [ "${error_value}" -ge 16 ]; then

View File

@ -22,7 +22,7 @@
# Default-Stop:
# Short-Description: Cleans temporary directories early in the boot process.
# Description: Cleans temporary directories /run, /var/lock, and
# optionally, /tmp. cleanfs also creates /run/utmp
# optionally, /tmp. cleanfs also creates /run/utmp
# and any files defined in /etc/sysconfig/createfiles.
# X-LFS-Provided-By: LFS
### END INIT INFO
@ -30,7 +30,7 @@
. /lib/lsb/init-functions
# Function to create files/directory on boot.
create_files()
create_files()
{
# Input to file descriptor 9 and output to stdin (redirection)
exec 9>&0 < /etc/sysconfig/createfiles
@ -63,13 +63,13 @@ create_files()
pipe)
mknod "${name}" p
;;
*)
log_warning_msg "\nUnknown device type: ${dtype}"
*)
log_warning_msg "\nUnknown device type: ${dtype}"
;;
esac
;;
*)
log_warning_msg "\nUnknown type: ${type}"
log_warning_msg "\nUnknown type: ${type}"
continue
;;
esac
@ -87,10 +87,10 @@ create_files()
case "${1}" in
start)
log_info_msg "Cleaning file systems:"
log_info_msg "Cleaning file systems:"
if [ "${SKIPTMPCLEAN}" = "" ]; then
log_info_msg2 " /tmp"
log_info_msg2 " /tmp"
cd /tmp &&
find . -xdev -mindepth 1 ! -name lost+found -delete || failed=1
fi
@ -105,7 +105,7 @@ case "${1}" in
(exit ${failed})
evaluate_retval
if egrep -qv '^(#|$)' /etc/sysconfig/createfiles 2>/dev/null; then
if grep -E -qv '^(#|$)' /etc/sysconfig/createfiles 2>/dev/null; then
log_info_msg "Creating files and directories... "
create_files # Always returns 0
evaluate_retval

View File

@ -32,19 +32,14 @@
# Native English speakers probably don't have /etc/sysconfig/console at all
[ -r /etc/sysconfig/console ] && . /etc/sysconfig/console
is_true()
{
[ "$1" = "1" ] || [ "$1" = "yes" ] || [ "$1" = "true" ]
}
failed=0
case "${1}" in
start)
# See if we need to do anything
if [ -z "${KEYMAP}" ] && [ -z "${KEYMAP_CORRECTIONS}" ] &&
[ -z "${FONT}" ] && [ -z "${LEGACY_CHARSET}" ] &&
! is_true "${UNICODE}"; then
[ -z "${FONT}" ] && [ -z "${LEGACY_CHARSET}" ] &&
! is_true "${UNICODE}"; then
exit 0
fi
@ -52,7 +47,7 @@ case "${1}" in
log_info_msg "Setting up Linux console..."
# Figure out if a framebuffer console is used
[ -d /sys/class/graphics/fb0 ] && use_fb=1 || use_fb=0
[ -d /sys/class/graphics/fbcon ] && use_fb=1 || use_fb=0
# Figure out the command to set the console into the
# desired mode
@ -85,7 +80,7 @@ case "${1}" in
[ -z "${KEYMAP}" ] ||
loadkeys ${KEYMAP} >/dev/null 2>&1 ||
failed=1
[ -z "${KEYMAP_CORRECTIONS}" ] ||
loadkeys ${KEYMAP_CORRECTIONS} >/dev/null 2>&1 ||
failed=1
@ -97,16 +92,16 @@ case "${1}" in
# If any of the commands above failed, the trap at the
# top would set $failed to 1
( exit $failed )
( exit $failed )
evaluate_retval
exit $failed
;;
;;
*)
*)
echo "Usage: ${0} {start}"
exit 1
;;
exit 1
;;
esac
# End console

View File

@ -7,14 +7,18 @@
# Authors : Gerard Beekmans - gerard@linuxfromscratch.org
# DJ Lucas - dj@linuxfromscratch.org
# Update : Bruce Dubbs - bdubbs@linuxfromscratch.org
# : Pierre Labastie - pierre@linuxfromscratch.org
#
# Version : LFS 7.0
#
# Notes : Update March 24th, 2022: change "stop" to "start".
# Add the $last facility to Required-start
#
########################################################################
### BEGIN INIT INFO
# Provides: halt
# Required-Start:
# Required-Start: $last
# Should-Start:
# Required-Stop:
# Should-Stop:
@ -26,12 +30,12 @@
### END INIT INFO
case "${1}" in
stop)
start)
halt -d -f -i -p
;;
*)
echo "Usage: {stop}"
echo "Usage: {start}"
exit 1
;;
esac

View File

@ -35,9 +35,9 @@ case "${1}" in
# Exit if there's no modules file or there are no
# valid entries
[ -r /etc/sysconfig/modules ] || exit 0
egrep -qv '^($|#)' /etc/sysconfig/modules || exit 0
grep -E -qv '^($|#)' /etc/sysconfig/modules || exit 0
log_info_msg "Loading modules:"
log_info_msg "Loading modules:"
# Only try to load modules if the user has actually given us
# some modules to load.
@ -54,7 +54,7 @@ case "${1}" in
# Print the module name if successful, otherwise take note.
if [ $? -eq 0 ]; then
log_info_msg2 " ${module}"
log_info_msg2 " ${module}"
else
failedmod="${failedmod} ${module}"
fi
@ -63,10 +63,10 @@ case "${1}" in
# Print a message about successfully loaded modules on the correct line.
log_success_msg2
# Print a failure message with a list of any modules that
# Print a failure message with a list of any modules that
# may have failed to load.
if [ -n "${failedmod}" ]; then
log_failure_msg "Failed to load modules:${failedmod}"
log_failure_msg "Failed to load modules:${failedmod}"
exit 1
fi
;;

View File

@ -55,7 +55,7 @@ case "${1}" in
stop)
# Don't unmount virtual file systems like /run
log_info_msg "Unmounting all other currently mounted file systems..."
# Ensure any loop devies are removed
# Ensure any loop devices are removed
losetup -D
umount --all --detach-loop --read-only \
--types notmpfs,nosysfs,nodevtmpfs,noproc,nodevpts >/dev/null
@ -67,6 +67,11 @@ case "${1}" in
# Make all LVM volume groups unavailable, if appropriate
# This fails if swap or / are on an LVM partition
#if [ -x /sbin/vgchange ]; then /sbin/vgchange -an > /dev/null; fi
if [ -r /etc/mdadm.conf ]; then
log_info_msg "Mark arrays as clean..."
mdadm --wait-clean --scan
evaluate_retval
fi
;;
*)

View File

@ -2,13 +2,14 @@
########################################################################
# Begin mountvirtfs
#
# Description : Mount proc, sysfs, and run
# Description : Ensure proc, sysfs, run, and dev are mounted
#
# Authors : Gerard Beekmans - gerard@linuxfromscratch.org
# DJ Lucas - dj@linuxfromscratch.org
# Update : Bruce Dubbs - bdubbs@linuxfromscratch.org
# Xi Ruoyao - xry111@xry111.site
#
# Version : LFS 7.0
# Version : LFS 12.0
#
########################################################################
@ -20,10 +21,12 @@
# Should-Stop:
# Default-Start: S
# Default-Stop:
# Short-Description: Mounts /sys and /proc virtual (kernel) filesystems.
# Mounts /run (tmpfs) and /dev (devtmpfs).
# Short-Description: Mounts various special fs needed at start
# Description: Mounts /sys and /proc virtual (kernel) filesystems.
# Mounts /run (tmpfs) and /dev (devtmpfs).
# This is done only if they are not already mounted.
# with the kernel config proposed in the book, dev
# should be automatically mounted by the kernel.
# X-LFS-Provided-By: LFS
### END INIT INFO
@ -36,10 +39,10 @@ case "${1}" in
mount /run || failed=1
fi
mkdir -p /run/lock /run/shm
chmod 1777 /run/shm /run/lock
mkdir -p /run/lock
chmod 1777 /run/lock
log_info_msg "Mounting virtual file systems: ${INFO}/run"
log_info_msg "Mounting virtual file systems: ${INFO}/run"
if ! mountpoint /proc >/dev/null; then
log_info_msg2 " ${INFO}/proc"
@ -47,17 +50,46 @@ case "${1}" in
fi
if ! mountpoint /sys >/dev/null; then
log_info_msg2 " ${INFO}/sys"
log_info_msg2 " ${INFO}/sys"
mount -o nosuid,noexec,nodev /sys || failed=1
fi
if ! mountpoint /dev >/dev/null; then
log_info_msg2 " ${INFO}/dev"
log_info_msg2 " ${INFO}/dev"
mount -o mode=0755,nosuid /dev || failed=1
fi
ln -sfn /run/shm /dev/shm
mkdir -p /dev/shm
log_info_msg2 " ${INFO}/dev/shm"
mount -o nosuid,nodev /dev/shm || failed=1
mkdir -p /sys/fs/cgroup
log_info_msg2 " ${INFO}/sys/fs/cgroup"
mount -o nosuid,noexec,nodev /sys/fs/cgroup || failed=1
(exit ${failed})
evaluate_retval
if [ "${failed}" = 1 ]; then
exit 1
fi
log_info_msg "Create symlinks in /dev targeting /proc: ${INFO}/dev/stdin"
ln -sf /proc/self/fd/0 /dev/stdin || failed=1
log_info_msg2 " ${INFO}/dev/stdout"
ln -sf /proc/self/fd/1 /dev/stdout || failed=1
log_info_msg2 " ${INFO}/dev/stderr"
ln -sf /proc/self/fd/2 /dev/stderr || failed=1
log_info_msg2 " ${INFO}/dev/fd"
ln -sfn /proc/self/fd /dev/fd || failed=1
if [ -e /proc/kcore ]; then
log_info_msg2 " ${INFO}/dev/core"
ln -sf /proc/kcore /dev/core || failed=1
fi
(exit ${failed})
evaluate_retval
exit $failed

View File

@ -20,8 +20,8 @@
# Should-Start: $syslog firewalld iptables nftables
# Required-Stop: $local_fs localnet swap
# Should-Stop: $syslog firewalld iptables nftables
# Default-Start: 3 4 5
# Default-Stop: 0 1 2 6
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: Starts and configures network interfaces.
# Description: Starts and configures network interfaces.
# X-LFS-Provided-By: LFS
@ -29,6 +29,8 @@
case "${1}" in
start)
# if the default route exists, network is already configured
if ip route | grep -q "^default"; then return 0; fi
# Start all network interfaces
for file in /etc/sysconfig/ifconfig.*
do
@ -43,7 +45,7 @@ case "${1}" in
stop)
# Unmount any network mounted file systems
umount --all --force --types nfs,cifs,nfs4
umount --all --force --types nfs,cifs,nfs4
# Reverse list
net_files=""

View File

@ -6,10 +6,18 @@
#
# Authors : Gerard Beekmans - gerard@linuxfromscratch.org
# : DJ Lucas - dj@linuxfromscratch.org
# Update : Bruce Dubbs - bdubbs@linuxfromscratch.org
# Updates : Bruce Dubbs - bdubbs@linuxfromscratch.org
# : Pierre Labastie - pierre@linuxfromscratch.org
#
# Version : LFS 7.0
#
# Notes : Updates March 24th, 2022: new semantics of S/K files
# - Instead of testing that S scripts were K scripts in the
# previous runlevel, test that they were not S scripts
# - Instead of testing that K scripts were S scripts in the
# previous runlevel, test that they were not K scripts
# - S scripts in runlevel 0 or 6 are now run with
# "script start" (was "script stop" previously).
########################################################################
. /lib/lsb/init-functions
@ -18,11 +26,11 @@ print_error_msg()
{
log_failure_msg
# $i is set when called
MSG="FAILURE:\n\nYou should not be reading this error message.\n\n"
MSG="FAILURE:\n\nYou should not be reading this error message.\n\n"
MSG="${MSG}It means that an unforeseen error took place in\n"
MSG="${MSG}${i},\n"
MSG="${MSG}which exited with a return value of ${error_value}.\n"
MSG="${MSG}If you're able to track this error down to a bug in one of\n"
MSG="${MSG}the files provided by the ${DISTRO_MINI} book,\n"
MSG="${MSG}please be so kind to inform us at ${DISTRO_CONTACT}.\n"
@ -36,7 +44,7 @@ check_script_status()
{
# $i is set when called
if [ ! -f ${i} ]; then
log_warning_msg "${i} is not a valid symlink."
log_warning_msg "${i} is not a valid symlink."
SCRIPT_STAT="1"
fi
@ -84,7 +92,7 @@ run()
[ -r /etc/sysconfig/rc.site ] && source /etc/sysconfig/rc.site
DISTRO=${DISTRO:-"Linux From Scratch"}
DISTRO_CONTACT=${DISTRO_CONTACT:-"lfs-dev@linuxfromscratch.org (Registration required)"}
DISTRO_CONTACT=${DISTRO_CONTACT:-"lfs-dev@lists.linuxfromscratch.org (Registration required)"}
DISTRO_MINI=${DISTRO_MINI:-"LFS"}
IPROMPT=${IPROMPT:-"no"}
@ -102,16 +110,16 @@ previous=${PREVLEVEL}
[ "${previous}" == "" ] && previous=N
if [ ! -d /etc/rc.d/rc${runlevel}.d ]; then
log_info_msg "/etc/rc.d/rc${runlevel}.d does not exist.\n"
log_info_msg "/etc/rc.d/rc${runlevel}.d does not exist.\n"
exit 1
fi
if [ "$runlevel" == "6" -o "$runlevel" == "0" ]; then IPROMPT="no"; fi
# Note: In ${LOGLEVEL:-7}, it is ':' 'dash' '7', not minus 7
if [ "$runlevel" == "S" ]; then
[ -r /etc/sysconfig/console ] && source /etc/sysconfig/console
dmesg -n "${LOGLEVEL:-7}"
if [ "$runlevel" == "S" ]; then
[ -r /etc/sysconfig/console ] && source /etc/sysconfig/console
dmesg -n "${LOGLEVEL:-7}"
fi
if [ "${IPROMPT}" == "yes" -a "${runlevel}" == "S" ]; then
@ -144,8 +152,9 @@ fi
# Read the state file if it exists from runlevel S
[ -r /run/interactive ] && source /run/interactive
# Attempt to stop all services started by the previous runlevel,
# and killed in this runlevel
# Stop all services marked as K, except if marked as K in the previous
# runlevel: it is the responsibility of the script to not try to kill
# a non running service
if [ "${previous}" != "N" ]; then
for i in $(ls -v /etc/rc.d/rc${runlevel}.d/K* 2> /dev/null)
do
@ -155,20 +164,8 @@ if [ "${previous}" != "N" ]; then
continue
fi
suffix=${i#/etc/rc.d/rc$runlevel.d/K[0-9][0-9]}
prev_start=/etc/rc.d/rc$previous.d/S[0-9][0-9]$suffix
sysinit_start=/etc/rc.d/rcS.d/S[0-9][0-9]$suffix
if [ "${runlevel}" != "0" -a "${runlevel}" != "6" ]; then
if [ ! -f ${prev_start} -a ! -f ${sysinit_start} ]; then
MSG="WARNING:\n\n${i} can't be "
MSG="${MSG}executed because it was not "
MSG="${MSG}not started in the previous "
MSG="${MSG}runlevel (${previous})."
log_warning_msg "$MSG"
continue
fi
fi
suffix=${i#/etc/rc.d/rc${runlevel}.d/K[0-9][0-9]}
[ -e /etc/rc.d/rc${previous}.d/K[0-9][0-9]$suffix ] && continue
run ${i} stop
error_value=${?}
@ -184,31 +181,25 @@ if [ "$runlevel" == "6" -a -n "${FASTBOOT}" ]; then
fi
# Start all functions in this runlevel
# Start all services marked as S in this runlevel, except if marked as
# S in the previous runlevel
# it is the responsibility of the script to not try to start an already running
# service
for i in $( ls -v /etc/rc.d/rc${runlevel}.d/S* 2> /dev/null)
do
if [ "${previous}" != "N" ]; then
suffix=${i#/etc/rc.d/rc$runlevel.d/S[0-9][0-9]}
stop=/etc/rc.d/rc$runlevel.d/K[0-9][0-9]$suffix
prev_start=/etc/rc.d/rc$previous.d/S[0-9][0-9]$suffix
[ -f ${prev_start} -a ! -f ${stop} ] && continue
if [ "${previous}" != "N" ]; then
suffix=${i#/etc/rc.d/rc${runlevel}.d/S[0-9][0-9]}
[ -e /etc/rc.d/rc${previous}.d/S[0-9][0-9]$suffix ] && continue
fi
check_script_status
if [ "${SCRIPT_STAT}" == "1" ]; then
SCRIPT_STAT="0"
continue
fi
if [ "${SCRIPT_STAT}" == "1" ]; then
SCRIPT_STAT="0"
continue
fi
case ${runlevel} in
0|6)
run ${i} stop
;;
*)
run ${i} start
;;
esac
run ${i} start
error_value=${?}
@ -225,10 +216,10 @@ fi
# Copy the boot log on initial boot only
if [ "${previous}" == "N" -a "${runlevel}" != "S" ]; then
cat $BOOTLOG >> /var/log/boot.log
# Mark the end of boot
echo "--------" >> /var/log/boot.log
# Remove the temporary file
rm -f $BOOTLOG 2> /dev/null
fi

View File

@ -6,15 +6,19 @@
#
# Authors : Gerard Beekmans - gerard@linuxfromscratch.org
# DJ Lucas - dj@linuxfromscratch.org
# Update : Bruce Dubbs - bdubbs@linuxfromscratch.org
# Updates : Bruce Dubbs - bdubbs@linuxfromscratch.org
# : Pierre Labastie - pierre@linuxfromscratch.org
#
# Version : LFS 7.0
#
# Notes : Update March 24th, 2022: change "stop" to "start".
# Add the $last facility to Required-start
#
########################################################################
### BEGIN INIT INFO
# Provides: reboot
# Required-Start:
# Required-Start: $last
# Should-Start:
# Required-Stop:
# Should-Stop:
@ -28,13 +32,13 @@
. /lib/lsb/init-functions
case "${1}" in
stop)
start)
log_info_msg "Restarting system..."
reboot -d -f -i
;;
*)
echo "Usage: ${0} {stop}"
echo "Usage: ${0} {start}"
exit 1
;;

View File

@ -13,7 +13,7 @@
########################################################################
### BEGIN INIT INFO
# Provides:
# Provides:
# Required-Start:
# Should-Start: modules
# Required-Stop:

View File

@ -20,8 +20,8 @@
# Should-Stop: $local_fs
# Default-Start: S
# Default-Stop: 0 6
# Short-Description: Mounts and unmounts swap partitions.
# Description: Mounts and unmounts swap partitions defined in
# Short-Description: Activates and deactivates swap partitions.
# Description: Activates and deactivates swap partitions defined in
# /etc/fstab.
# X-LFS-Provided-By: LFS
### END INIT INFO
@ -48,7 +48,7 @@ case "${1}" in
;;
status)
log_success_msg "Retrieving swap status."
log_success_msg "Retrieving swap status."
swapon -s
;;

View File

@ -7,6 +7,9 @@
# Authors : Gerard Beekmans - gerard@linuxfromscratch.org
# DJ Lucas - dj@linuxfromscratch.org
# Update : Bruce Dubbs - bdubbs@linuxfromscratch.org
# Update : Bruce Dubbs - bdubbs@linuxfromscratch.org LFS12.1
# Remove kernel log daemon. The functionality has been
# merged with syslogd.
#
# Version : LFS 7.0
#
@ -18,17 +21,14 @@
# Should-Start:
# Required-Stop: $local_fs
# Should-Stop: sendsignals
# Default-Start: 3 4 5
# Default-Stop: 0 1 2 6
# Short-Description: Starts kernel and system log daemons.
# Description: Starts kernel and system log daemons.
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: Starts system log daemon.
# Description: Starts system log daemon.
# /etc/fstab.
# X-LFS-Provided-By: LFS
### END INIT INFO
# Note: sysklogd is not started in runlevel 2 due to possible
# remote logging configurations
. /lib/lsb/init-functions
case "${1}" in
@ -37,17 +37,9 @@ case "${1}" in
parms=${SYSKLOGD_PARMS-'-m 0'}
start_daemon /sbin/syslogd $parms
evaluate_retval
log_info_msg "Starting kernel log daemon..."
start_daemon /sbin/klogd
evaluate_retval
;;
stop)
log_info_msg "Stopping kernel log daemon..."
killproc /sbin/klogd
evaluate_retval
log_info_msg "Stopping system log daemon..."
killproc /sbin/syslogd
evaluate_retval
@ -68,7 +60,6 @@ case "${1}" in
status)
statusproc /sbin/syslogd
statusproc klogd
;;
*)

View File

@ -30,12 +30,26 @@
case "${1}" in
start)
log_info_msg "Starting..."
# if it is possible to use start_daemon
start_daemon fully_qualified_path
# if it is not possible to use start_daemon
# (command to start the daemon is not simple enough)
if ! pidofproc daemon_name_as_reported_by_ps >/dev/null; then
command_to_start_the_service
fi
evaluate_retval
;;
stop)
log_info_msg "Stopping..."
# if it is possible to use killproc
killproc fully_qualified_path
# if it is not possible to use killproc
# (the daemon shouldn't be stopped by killing it)
if pidofproc daemon_name_as_reported_by_ps >/dev/null; then
command_to_stop_the_service
fi
evaluate_retval
;;
restart)

View File

@ -7,8 +7,9 @@
# Authors : Zack Winkles, Alexander E. Patrakov
# DJ Lucas - dj@linuxfromscratch.org
# Update : Bruce Dubbs - bdubbs@linuxfromscratch.org
# Xi Ruoyao - xry111@xry111.site
#
# Version : LFS 7.0
# Version : LFS 12.0
#
########################################################################
@ -40,29 +41,29 @@ case "${1}" in
log_info_msg "$msg"
log_info_msg "Press Enter to continue..."
wait_for_user
/etc/rc.d/init.d/halt stop
/etc/rc.d/init.d/halt start
fi
# Start the udev daemon to continually watch for, and act on,
# uevents
/sbin/udevd --daemon
SYSTEMD_LOG_TARGET=kmsg /sbin/udevd --daemon
# Now traverse /sys in order to "coldplug" devices that have
# already been discovered
/sbin/udevadm trigger --action=add --type=subsystems
/sbin/udevadm trigger --action=add --type=devices
/sbin/udevadm trigger --action=change --type=devices
/bin/udevadm trigger --action=add --type=subsystems
/bin/udevadm trigger --action=add --type=devices
/bin/udevadm trigger --action=change --type=devices
# Now wait for udevd to process the uevents we triggered
if ! is_true "$OMIT_UDEV_SETTLE"; then
/sbin/udevadm settle
/bin/udevadm settle
fi
# If any LVM based partitions are on the system, ensure they
# are activated so they can be used.
if [ -x /sbin/vgchange ]; then /sbin/vgchange -a y >/dev/null; fi
if [ -x /sbin/vgchange ]; then /sbin/vgchange -a y >/dev/null; fi
log_success_msg2
log_success_msg2
;;
*)

View File

@ -7,7 +7,7 @@
# Authors : Alexander E. Patrakov
# DJ Lucas - dj@linuxfromscratch.org
# Update : Bruce Dubbs - bdubbs@linuxfromscratch.org
# Bryan Kadzban -
# Bryan Kadzban -
#
# Version : LFS 7.0
#
@ -34,12 +34,10 @@ case "${1}" in
start)
log_info_msg "Retrying failed uevents, if any..."
# As of udev-186, the --run option is no longer valid
#rundir=$(/sbin/udevadm info --run)
rundir=/run/udev
# From Debian: "copy the rules generated before / was mounted
# read-write":
for file in ${rundir}/tmp-rules--*; do
dest=${file##*tmp-rules--}
[ "$dest" = '*' ] && break
@ -47,18 +45,18 @@ case "${1}" in
rm -f $file
done
# Re-trigger the uevents that may have failed,
# Re-trigger the uevents that may have failed,
# in hope they will succeed now
/bin/sed -e 's/#.*$//' /etc/sysconfig/udev_retry | /bin/grep -v '^$' | \
while read line ; do
for subsystem in $line ; do
/sbin/udevadm trigger --subsystem-match=$subsystem --action=add
/bin/udevadm trigger --subsystem-match=$subsystem --action=add
done
done
# Now wait for udevd to process the uevents we triggered
if ! is_true "$OMIT_UDEV_RETRY_SETTLE"; then
/sbin/udevadm settle
/bin/udevadm settle
fi
evaluate_retval

View File

@ -1,6 +1,6 @@
#!/bin/sh
########################################################################
#
#
# Begin /lib/lsb/init-funtions
#
# Description : Run Level Control Functions
@ -58,11 +58,21 @@ SCRIPT_STAT="0"
# Set any user specified environment variables e.g. HEADLESS
[ -r /etc/sysconfig/rc.site ] && . /etc/sysconfig/rc.site
## Screen Dimensions
# Find current screen size
if [ -z "${COLUMNS}" ]; then
COLUMNS=$(stty size)
COLUMNS=${COLUMNS##* }
# If HEADLESS is set, use that.
# If file descriptor 1 or 2 (stdout and stderr) is not open or
# does not refer to a terminal, consider the script headless.
[ ! -t 1 -o ! -t 2 ] && HEADLESS=${HEADLESS:-yes}
if [ "x$HEADLESS" != "xyes" ]
then
## Screen Dimensions
# Find current screen size
if [ -z "${COLUMNS}" ]; then
COLUMNS=$(stty size)
COLUMNS=${COLUMNS##* }
fi
else
COLUMNS=80
fi
# When using remote connections, such as a serial port, stty size returns 0
@ -154,13 +164,13 @@ start_daemon()
retval="${?}"
fi
# Return a value ONLY
# It is the init script's (or distribution's functions) responsibilty
# Return a value ONLY
# It is the init script's (or distribution's functions) responsibility
# to log messages!
case "${retval}" in
0)
# Program is already running correctly, this is a
# Program is already running correctly, this is a
# successful start.
return 0
;;
@ -230,7 +240,7 @@ killproc()
pidfile="${2}"
shift 2
;;
*)
program="${1}"
if [ -n "${2}" ]; then
@ -243,9 +253,9 @@ killproc()
# Error on additional arguments
if [ -n "${3}" ]; then
return 2
else
else
break
fi
fi
;;
esac
done
@ -271,7 +281,7 @@ killproc()
fi
# Return a value ONLY
# It is the init script's (or distribution's functions) responsibilty
# It is the init script's (or distribution's functions) responsibility
# to log messages!
case "${retval}" in
@ -321,7 +331,7 @@ killproc()
if [ "${?}" -eq "0" ]; then # Signal is used to terminate the program
# Account for empty pidlist (pid file still exists and no
# Account for empty pidlist (pid file still exists and no
# signal was given)
if [ "${pidlist}" != "" ]; then
@ -336,7 +346,7 @@ killproc()
else
kill "${signal}" "${pid}" 2> /dev/null
# Wait up to ${delay}/10 seconds to for "${pid}" to
# Wait up to ${delay}/10 seconds to for "${pid}" to
# terminate in 10ths of a second
while [ "${delay}" -ne "0" ]; do
@ -433,7 +443,7 @@ pidofproc()
# Get the program's basename
prefix=`echo "${program}" | sed 's/[^/]*$//'`
if [ -z "${prefix}" ]; then
if [ -z "${prefix}" ]; then
progname="${program}"
else
progname=`echo "${program}" | sed "s@${prefix}@@"`
@ -447,11 +457,8 @@ pidofproc()
# If a PID file is set and exists, use it.
if [ -n "${pidfile}" -a -e "${pidfile}" ]; then
# Use the value in the first line of the pidfile
pidlist=`/bin/head -n1 "${pidfile}"`
# This can optionally be written as 'sed 1q' to repalce 'head -n1'
# should LFS move /bin/head to /usr/bin/head
else
# Use pidof
pidlist=`pidof "${program}"`
@ -575,25 +582,35 @@ timespec()
################################################################################
log_success_msg()
{
/bin/echo -n -e "${BMPREFIX}${@}"
/bin/echo -e "${CURS_ZERO}${SUCCESS_PREFIX}${SET_COL}${SUCCESS_SUFFIX}"
if [ "x$HEADLESS" != "xyes" ]
then
/bin/echo -n -e "${BMPREFIX}${@}"
/bin/echo -e "${CURS_ZERO}${SUCCESS_PREFIX}${SET_COL}${SUCCESS_SUFFIX}"
else
logmessage=`echo "${@}" | sed 's/\\\033[^a-zA-Z]*.//g'`
/bin/echo -e "${logmessage} OK"
fi
# Strip non-printable characters from log file
logmessage=`echo "${@}" | sed 's/\\\033[^a-zA-Z]*.//g'`
timespec
/bin/echo -e "${STAMP} ${logmessage} OK" >> ${BOOTLOG}
return 0
}
log_success_msg2()
{
/bin/echo -n -e "${BMPREFIX}${@}"
/bin/echo -e "${CURS_ZERO}${SUCCESS_PREFIX}${SET_COL}${SUCCESS_SUFFIX}"
if [ "x$HEADLESS" != "xyes" ]
then
/bin/echo -n -e "${BMPREFIX}${@}"
/bin/echo -e "${CURS_ZERO}${SUCCESS_PREFIX}${SET_COL}${SUCCESS_SUFFIX}"
else
echo " OK"
fi
echo " OK" >> ${BOOTLOG}
return 0
}
@ -610,25 +627,36 @@ log_success_msg2()
################################################################################
log_failure_msg()
{
/bin/echo -n -e "${BMPREFIX}${@}"
/bin/echo -e "${CURS_ZERO}${FAILURE_PREFIX}${SET_COL}${FAILURE_SUFFIX}"
if [ "x$HEADLESS" != "xyes" ]
then
/bin/echo -n -e "${BMPREFIX}${@}"
/bin/echo -e "${CURS_ZERO}${FAILURE_PREFIX}${SET_COL}${FAILURE_SUFFIX}"
else
logmessage=`echo "${@}" | sed 's/\\\033[^a-zA-Z]*.//g'`
/bin/echo -e "${logmessage} FAIL"
fi
# Strip non-printable characters from log file
timespec
logmessage=`echo "${@}" | sed 's/\\\033[^a-zA-Z]*.//g'`
/bin/echo -e "${STAMP} ${logmessage} FAIL" >> ${BOOTLOG}
return 0
}
log_failure_msg2()
{
/bin/echo -n -e "${BMPREFIX}${@}"
/bin/echo -e "${CURS_ZERO}${FAILURE_PREFIX}${SET_COL}${FAILURE_SUFFIX}"
if [ "x$HEADLESS" != "xyes" ]
then
/bin/echo -n -e "${BMPREFIX}${@}"
/bin/echo -e "${CURS_ZERO}${FAILURE_PREFIX}${SET_COL}${FAILURE_SUFFIX}"
else
echo "FAIL"
fi
echo "FAIL" >> ${BOOTLOG}
return 0
}
@ -643,26 +671,38 @@ log_failure_msg2()
################################################################################
log_warning_msg()
{
/bin/echo -n -e "${BMPREFIX}${@}"
/bin/echo -e "${CURS_ZERO}${WARNING_PREFIX}${SET_COL}${WARNING_SUFFIX}"
if [ "x$HEADLESS" != "xyes" ]
then
/bin/echo -n -e "${BMPREFIX}${@}"
/bin/echo -e "${CURS_ZERO}${WARNING_PREFIX}${SET_COL}${WARNING_SUFFIX}"
else
logmessage=`echo "${@}" | sed 's/\\\033[^a-zA-Z]*.//g'`
/bin/echo -e "${logmessage} WARN"
fi
# Strip non-printable characters from log file
logmessage=`echo "${@}" | sed 's/\\\033[^a-zA-Z]*.//g'`
timespec
/bin/echo -e "${STAMP} ${logmessage} WARN" >> ${BOOTLOG}
return 0
}
log_skip_msg()
{
/bin/echo -n -e "${BMPREFIX}${@}"
/bin/echo -e "${CURS_ZERO}${SKIP_PREFIX}${SET_COL}${SKIP_SUFFIX}"
if [ "x$HEADLESS" != "xyes" ]
then
/bin/echo -n -e "${BMPREFIX}${@}"
/bin/echo -e "${CURS_ZERO}${SKIP_PREFIX}${SET_COL}${SKIP_SUFFIX}"
else
logmessage=`echo "${@}" | sed 's/\\\033[^a-zA-Z]*.//g'`
/bin/echo "SKIP"
fi
# Strip non-printable characters from log file
logmessage=`echo "${@}" | sed 's/\\\033[^a-zA-Z]*.//g'`
/bin/echo "SKIP" >> ${BOOTLOG}
return 0
}
@ -677,30 +717,42 @@ log_skip_msg()
################################################################################
log_info_msg()
{
/bin/echo -n -e "${BMPREFIX}${@}"
if [ "x$HEADLESS" != "xyes" ]
then
/bin/echo -n -e "${BMPREFIX}${@}"
else
logmessage=`echo "${@}" | sed 's/\\\033[^a-zA-Z]*.//g'`
/bin/echo -n -e "${logmessage}"
fi
# Strip non-printable characters from log file
logmessage=`echo "${@}" | sed 's/\\\033[^a-zA-Z]*.//g'`
timespec
/bin/echo -n -e "${STAMP} ${logmessage}" >> ${BOOTLOG}
return 0
}
log_info_msg2()
{
/bin/echo -n -e "${@}"
if [ "x$HEADLESS" != "xyes" ]
then
/bin/echo -n -e "${@}"
else
logmessage=`echo "${@}" | sed 's/\\\033[^a-zA-Z]*.//g'`
/bin/echo -n -e "${logmessage}"
fi
# Strip non-printable characters from log file
logmessage=`echo "${@}" | sed 's/\\\033[^a-zA-Z]*.//g'`
/bin/echo -n -e "${logmessage}" >> ${BOOTLOG}
return 0
}
################################################################################
# evaluate_retval() #
# Usage: Evaluate a return value and print success or failyure as appropriate #
# Usage: Evaluate a return value and print success or failure as appropriate #
# #
# Purpose: Convenience function to terminate an info message #
# #

View File

@ -56,10 +56,10 @@ if [ -n "${need_ip}" ]; then
fi
if [ -z "${PREFIX}" ]; then
log_failure_msg "PREFIX variable missing from ${IFCONFIG}, cannot continue."
log_failure_msg "PREFIX variable missing from ${IFCONFIG}, cannot continue."
exit 1
fi
args="${args} ${IP}/${PREFIX}"
desc="${desc}${IP}/${PREFIX}"
fi
@ -82,13 +82,13 @@ case "${2}" in
ip route add ${args} dev ${1}
evaluate_retval
;;
down)
log_info_msg "Removing '${desc}' route from the ${1} interface..."
ip route del ${args} dev ${1}
evaluate_retval
;;
*)
echo "Usage: ${0} [interface] {up|down}"
exit 1

View File

@ -1,4 +1,4 @@
#!/bin/bash
#!/bin/bash
########################################################################
# Begin /sbin/ifdown
#
@ -30,7 +30,7 @@ while [ $# -gt 0 ]; do
-*) echo "ifup: ${1}: invalid option" >&2
echo "${USAGE}" >& 2
exit 2 ;;
*) break ;;
esac
done
@ -53,7 +53,7 @@ file=/etc/sysconfig/ifconfig.${1}
# Skip backup files
[ "${file}" = "${file%""~""}" ] || exit 0
. /lib/lsb/init-functions
. /lib/lsb/init-functions
if [ ! -r "${file}" ]; then
log_warning_msg "${file} is missing or cannot be accessed."

View File

@ -48,11 +48,11 @@ while [ $# -gt 0 ]; do
--help | -h) help="y"; break ;;
--version | -V) echo "${VERSTR}"; exit 0 ;;
-*) echo "ifup: ${1}: invalid option" >&2
echo "${USAGE}" >& 2
exit 2 ;;
*) break ;;
esac
done
@ -102,7 +102,7 @@ fi
for S in ${SERVICE}; do
if [ ! -x "/lib/services/${S}" ]; then
MSG="\nUnable to process ${file}. Either "
MSG="\nUnable to process ${file}. Either "
MSG="${MSG}the SERVICE '${S} was not present "
MSG="${MSG}or cannot be executed."
log_failure_msg "$MSG"
@ -110,10 +110,10 @@ for S in ${SERVICE}; do
fi
done
if [ "${SERVICE}" = "wpa" ]; then log_success_msg; fi
#if [ "${SERVICE}" = "wpa" ]; then log_success_msg; fi
# Create/configure the interface
for S in ${SERVICE}; do
for S in ${SERVICE}; do
IFCONFIG=${file} /lib/services/${S} ${IFACE} up
done
@ -128,13 +128,13 @@ for I in $INTERFACE_COMPONENTS; do up $I; done
# Set MTU if requested. Check if MTU has a "good" value.
if test -n "${MTU}"; then
if [[ ${MTU} =~ ^[0-9]+$ ]] && [[ $MTU -ge 68 ]] ; then
for I in $IFACE $INTERFACE_COMPONENTS; do
ip link set dev $I mtu $MTU;
for I in $IFACE $INTERFACE_COMPONENTS; do
ip link set dev $I mtu $MTU;
done
else
log_info_msg2 "Invalid MTU $MTU"
fi
fi
fi
# Set the route default gateway if requested
if [ -n "${GATEWAY}" ]; then

View File

@ -14,9 +14,9 @@ SYNOPSIS
ifdown -V|--version
DESCRIPTION
The ifup and ifdown commands may be used to configure
(or, respectively, deconfigure) a network interface based
on interface definitions in the file
The ifup and ifdown commands may be used to configure
(or, respectively, deconfigure) a network interface based
on interface definitions in the file
/etc/sysconfig/ifconfig.IFACE.
OPTIONS
@ -30,7 +30,7 @@ OPTIONS
EXAMPLES
ifup eth0
Bring up the interface defined in the file
Bring up the interface defined in the file
/etc/sysconfig/ifconfig.eth0
ONBOOT=no
@ -49,21 +49,21 @@ EXAMPLES
IFACE=eth0
LABEL=eth0:2
SERVICE=dhcpcd
DHCP_START="--waitip"
DHCP_STOP="-k"
# Set PRINTIP="yes" to have the script print the DHCP IP address
PRINTIP="yes"
# Set PRINTALL="yes" to print the DHCP assigned values for
# IP, SM, DG, and 1st NS.
# IP, SM, DG, and 1st NS.
PRINTALL="no"
ifup br0
Bring up the interface defined in the file
Bring up the interface defined in the file
/etc/sysconfig/ifconfig.br0
ONBOOT=yes
IFACE=br0
SERVICE="bridge ipv4-static"
@ -77,65 +77,65 @@ EXAMPLES
NOTES
The program does not configure network interfaces direct-
ly. It runs scripts defined by the SERVICE variable in
ly. It runs scripts defined by the SERVICE variable in
the network configuration file.
The configuration files must have the following environ-
ment variables set:
IFACE - The interface to configure, e.g. eth0. It must
IFACE - The interface to configure, e.g. eth0. It must
be available in /sys/class/net.
SERVICE - The service script to run to bring up the inter-
face. Standard services are ipv4-static and
face. Standard services are ipv4-static and
ipv4-static-route. Other services such as dhcp
or bridge may be installed. This value may
be a list of services when the interface is a
compound device such as a bridge.
ONBOOT - If set to 'yes', the specified interface is
configured by the netowrk boot script.
ONBOOT - If set to 'yes', the specified interface is
configured by the network boot script.
GATEWAY - The default IP address to use for routing if
the destination IP address is not in a static
route or on a local network, e.g., 192.168.1.1.
For secondary IP addresses on an interface, this
the destination IP address is not in a static
route or on a local network, e.g., 192.168.1.1.
For secondary IP addresses on an interface, this
parameter should not be specified. If the service
is ipv4-static-route, this parameter must NOT
be set.
STATIC_GATEWAY - The default IP address to use for routing
when setting a static routing address.
when setting a static routing address.
INTERFACE_COMPONENTS - A list of component interfaces
only needed for a compound device such as a bridge.
This list is normally a single value, e.g. eth0,
only needed for a compound device such as a bridge.
This list is normally a single value, e.g. eth0,
for use with a virtual host such as kvm.
Other paramters that are service specific include:
Other parameters that are service specific include:
ipv4-static
IP - The IP address of the interface,
IP - The IP address of the interface,
e.g. 192.168.1.2.
PREFIX - The number of bits that specify the network
number of the interface. The default, if not
specified, is 24.
LABEL - The label to be assigned to the interface.
LABEL - The label to be assigned to the interface.
This is normally specified for assigning
additional IP addresses to a network
device. Example: eth0:2 (optional)
BROADCAST - The brodcast address for this interface,
e.g 192.168.1.255. If not specified,
BROADCAST - The broadcast address for this interface,
e.g 192.168.1.255. If not specified,
the broadcast address will be calculated
from the IP and PREFIX.
ipv4-static-route
TYPE - The type of route, typically 'default',
TYPE - The type of route, typically 'default',
'network', 'or host'.
IP - The IP address for a network or host, if the
@ -145,7 +145,7 @@ NOTES
STATIC_GATEWAY - The IP address for a network route.
SOURCE - The source IP address to prefer when sending
SOURCE - The source IP address to prefer when sending
to the destinations covered by the specified
route. (optional)
@ -154,7 +154,7 @@ NOTES
DHCP_START - Optional parameters to pass to the dhcp client
at startup.
DHCP_STOP - Optional paremeters to pass to the dhcp client
DHCP_STOP - Optional parameters to pass to the dhcp client
at shutdown.
PRINTIP - Flag to print the dhcp address to stdout
@ -164,18 +164,18 @@ NOTES
bridge
IP_FORWARD - An optional flag to enable the system to forward
inbound IP packets received by one interface to
another outbound interface.
inbound IP packets received by one interface to
another outbound interface.
STP - Set bridge spanning tree protocol. Default is no.
FILES
/etc/sysconfig/ifconfig.*
definitions of network interfaces
definitions of network interfaces
AUTHORS
The ifup/ifdown suite was written by Nathan Coulson
<nathan@linuxfromscratch.org> and Kevin P. Fleming
<nathan@linuxfromscratch.org> and Kevin P. Fleming
<kpfleming@linuxfromscratch.org>
and updated by Bruce Dubbs <bdubbs@linuxfromscratch>.

View File

@ -8,23 +8,23 @@
# Version : 00.00
#
# Notes : The syntax of this file is as follows:
# if type is equal to "file" or "dir"
# <filename> <type> <permissions> <user> <group>
# if type is equal to "dev"
# <filename> <type> <permissions> <user> <group> <devtype>
# if type is equal to "file" or "dir"
# <filename> <type> <permissions> <user> <group>
# if type is equal to "dev"
# <filename> <type> <permissions> <user> <group> <devtype>
# <major> <minor>
#
# <filename> is the name of the file which is to be created
# <type> is either file, dir, or dev.
# file creates a new file
# dir creates a new directory
# dev creates a new device
# <devtype> is either block, char or pipe
# block creates a block device
# char creates a character deivce
# pipe creates a pipe, this will ignore the <major> and
# <filename> is the name of the file which is to be created
# <type> is either file, dir, or dev.
# file creates a new file
# dir creates a new directory
# dev creates a new device
# <devtype> is either block, char or pipe
# block creates a block device
# char creates a character device
# pipe creates a pipe, this will ignore the <major> and
# <minor> fields
# <major> and <minor> are the major and minor numbers used for
# <major> and <minor> are the major and minor numbers used for
# the device.
########################################################################

View File

@ -8,7 +8,7 @@
# Version : 00.00
#
# Notes : The syntax of this file is as follows:
# <module> [<arg1> <arg2> ...]
# <module> [<arg1> <arg2> ...]
#
# Each module should be on its own line, and any options that you want
# passed to the module should follow it. The line deliminator is either

View File

@ -4,7 +4,7 @@
# Distro Information
# These values, if specified here, override the defaults
#DISTRO="Linux From Scratch" # The distro name
#DISTRO_CONTACT="lfs-dev@linuxfromscratch.org" # Bug report address
#DISTRO_CONTACT="lfs-dev@lists.linuxfromscratch.org" # Bug report address
#DISTRO_MINI="LFS" # Short name used in filenames for distro config
# Define custom colors used in messages printed to the screen
@ -32,7 +32,7 @@
#FAILURE_PREFIX="${FAILURE}*****${NORMAL} "
#WARNING_PREFIX="${WARNING} *** ${NORMAL} "
# Manually seet the right edge of message output (characters)
# Manually set the right edge of message output (characters)
# Useful when resetting console font during boot to override
# automatic screen width detection
#COLUMNS=120

View File

@ -1,4 +1,4 @@
<?xml version="1.0" encoding="ISO-8859-1"?>
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE sect1 PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
<!ENTITY % general-entities SYSTEM "../general.ent">
@ -10,10 +10,32 @@
<title>Help</title>
<note>
<para>
In case you've hit an issue building one package with the LFS
instruction, we strongly discourage posting the issue directly onto
the upstream support channel before discussing via a LFS support
channel listed in <xref linkend="ch-intro-resources" role='.'/>
Doing so is often quite inefficient because the upstream
maintainers are rarely familiar with LFS building procedure. Even if
you've really hit an upstream issue, the LFS community can still help
to isolate the information wanted by the upstream maintainers and make
a proper report.
</para>
<para>
If you must ask a question directly via an upstream support channel,
you shall at least note that many upstream projects have the support
channels separated from the bug tracker. The <quote>bug</quote>
reports for asking questions are considered invalid and may annoy
upstream developers for these projects.
</para>
</note>
<para>If an issue or a question is encountered while working through
this book, please check the FAQ page at <ulink url="&faq-root;#generalfaq"/>.
Questions are often already answered there. If your question is not
answered on this page, try to find the source of the problem. The
answered on that page, try to find the source of the problem. The
following hint will give you some guidance for troubleshooting:
<ulink url="&hints-root;errors.txt"/>.</para>
@ -23,24 +45,22 @@
<para>We also have a wonderful LFS community that is willing to offer
assistance through the mailing lists and IRC (see the <xref
linkend="ch-intro-resources"/> section of this book). However,
we get several support questions every day and many of them can be easily
answered by going to the FAQ and by searching the mailing lists first.
So, for us to offer the best assistance possible, you need to do some
research on your own first. That allows us to focus on the more unusual
we get several support questions every day, and many of them could have been easily
answered by going to the FAQ or by searching the mailing lists first.
So, for us to offer the best assistance possible, you should first do some
research on your own. That allows us to focus on the more unusual
support needs. If your searches do not produce a solution, please include
all relevant information (mentioned below) in your request for help.</para>
all the relevant information (mentioned below) in your request for help.</para>
<sect2>
<title>Things to Mention</title>
<para>Apart from a brief explanation of the problem being experienced,
the essential things to include in any request for help are:</para>
any request for help should include these essential things:</para>
<itemizedlist>
<listitem>
<para>The version of the book being used (in this case
<phrase revision="sysv">&version;</phrase>
<phrase revision="systemd">&versiond;</phrase>)</para>
<para>The version of the book being used (in this case &version;)</para>
</listitem>
<listitem>
<para>The host distribution and version being used to create LFS</para>
@ -52,7 +72,7 @@
<para>The package or section the problem was encountered in</para>
</listitem>
<listitem>
<para>The exact error message or symptom being received</para>
<para>The exact error message, or a clear description of the problem</para>
</listitem>
<listitem>
<para>Note whether you have deviated from the book at all </para>
@ -62,7 +82,7 @@
<note>
<para>Deviating from this book does <emphasis>not</emphasis> mean that
we will not help you. After all, LFS is about personal preference.
Being upfront about any changes to the established procedure helps us
Being up-front about any changes to the established procedure helps us
evaluate and determine possible causes of your problem.</para>
</note>
@ -86,14 +106,14 @@
in determining the cause of compilation problems. The screen output from
the <command>configure</command> script and the <command>make</command>
run can be helpful. It is not necessary to include the entire output, but
do include enough of the relevant information. Below is an example of the
type of information to include from the screen output from
<command>make</command>:</para>
do include all of the relevant information. Here is an example of the
type of information to include from the <command>make</command> screen
output.</para>
<screen><computeroutput>gcc -DALIASPATH=\"/mnt/lfs/usr/share/locale:.\"
-DLOCALEDIR=\"/mnt/lfs/usr/share/locale\"
-DLIBDIR=\"/mnt/lfs/usr/lib\"
-DINCLUDEDIR=\"/mnt/lfs/usr/include\" -DHAVE_CONFIG_H -I. -I.
<screen><computeroutput>gcc -D ALIASPATH=\"/mnt/lfs/usr/share/locale:.\"
-D LOCALEDIR=\"/mnt/lfs/usr/share/locale\"
-D LIBDIR=\"/mnt/lfs/usr/lib\"
-D INCLUDEDIR=\"/mnt/lfs/usr/include\" -D HAVE_CONFIG_H -I. -I.
-g -O2 -c getopt1.c
gcc -g -O2 -static -o make ar.o arscan.o commands.o dir.o
expand.o file.o function.o getopt.o implicit.o job.o main.o
@ -114,16 +134,16 @@ make: *** [all-recursive-am] Error 2</computeroutput></screen>
<screen><computeroutput>make [2]: *** [make] Error 1</computeroutput></screen>
<para>This is not enough information to properly diagnose the problem
<para>This is not enough information to diagnose the problem,
because it only notes that something went wrong, not
<emphasis>what</emphasis> went wrong. The entire section, as in the
example above, is what should be saved because it includes the command
that was executed and the associated error message(s).</para>
that was executed and all the associated error messages.</para>
<para>An excellent article about asking for help on the Internet is
available online at <ulink
url="http://catb.org/~esr/faqs/smart-questions.html"/>. Read and
follow the hints in this document to increase the likelihood of getting
url="http://catb.org/~esr/faqs/smart-questions.html"/>. Read this document,
and follow the hints. Doing so will increase the likelihood of getting
the help you need.</para>
</sect2>

File diff suppressed because it is too large Load Diff

View File

@ -1,4 +1,4 @@
<?xml version="1.0" encoding="ISO-8859-1"?>
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
<!ENTITY % general-entities SYSTEM "../general.ent">

View File

@ -1,4 +1,4 @@
<?xml version="1.0" encoding="ISO-8859-1"?>
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE sect1 PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
<!ENTITY % general-entities SYSTEM "../general.ent">
@ -15,18 +15,16 @@
existing Linux system (the host) will be used as a starting point to
provide necessary programs, including a compiler, linker, and shell,
to build the new system. Select the <quote>development</quote> option
during the distribution installation to be able to access these
during the distribution installation to include these
tools.</para>
<para>As an alternative to installing a separate distribution onto your
machine, you may wish to use <!-- the Linux From Scratch LiveCD or --> a LiveCD from a
commercial distribution. <!-- The LFS LiveCD works well as a host system,
providing all the tools you need to successfully follow the instructions in
this book. The LiveCD version is behind the current book, but is still useful
as a host for building the current book. The <quote>-nosrc</quote> or
<quote>-min</quote> editions of the LiveCD are the most appropriate for
building a current LFS system. For more information about the LFS LiveCD or
to download a copy, visit <ulink url="&livecd-root;"/>. --></para>
<note><para>There are many ways to install a Linux distribution and
the defaults are usually not optimal for building an LFS system.
For suggestions on setting up a commercial distribution see:
<ulink url="&lfs-root;hints/downloads/files/partitioning-for-lfs.txt"/>.</para></note>
<para>As an alternative to installing a separate distribution on your
machine, you may wish to use a LiveCD from a commercial distribution.</para>
<!--
<note>
@ -36,47 +34,47 @@
</note> -->
<para><xref linkend="chapter-partitioning"/> of this book describes how
to create a new Linux native partition and file system. This is the place
to create a new Linux native partition and file system,
where the new LFS system will be compiled and installed. <xref
linkend="chapter-getting-materials"/> explains which packages and
patches need to be downloaded to build an LFS system and how to store
patches must be downloaded to build an LFS system, and how to store
them on the new file system. <xref linkend="chapter-final-preps"/>
discusses the setup of an appropriate working environment. Please read
<xref linkend="chapter-final-preps"/> carefully as it explains several
important issues you need be aware of before beginning to
important issues you should be aware of before you begin to
work your way through <xref linkend="chapter-cross-tools"/> and beyond.</para>
<para><xref linkend="chapter-cross-tools"/>, explains the installation of
the initial tool chain, (binutils, gcc, and glibc) using cross compilation
<para><xref linkend="chapter-cross-tools"/> explains the installation of
the initial tool chain, (binutils, gcc, and glibc) using cross-compilation
techniques to isolate the new tools from the host system.</para>
<para><xref linkend="chapter-temporary-tools"/> shows you how to
cross-compile basic utilities using the just built cross-toolchain.</para>
<para><xref linkend="chapter-chroot-temporary-tools"/> then enters a
"chroot" environment and uses the previously built tools to build
the additional tools needed to build and test the final system.</para>
"chroot" environment, where we use the new tools to build all
the rest of the tools needed to create the LFS system.</para>
<para>This effort to isolate the new system from the host distribution may
seem excessive. A full technical explanation as to why this is done is
provided in <xref linkend="ch-tools-toolchaintechnotes"/>.</para>
<para>In <xref linkend="chapter-building-system"/>, The
full LFS system is built. Another advantage provided by the chroot
<para>In <xref linkend="chapter-building-system"/> the
full-blown LFS system is built. Another advantage provided by the chroot
environment is that it allows you to continue using the host system
while LFS is being built. While waiting for package compilations to
complete, you can continue using your computer as normal.</para>
complete, you can continue using your computer as usual.</para>
<para>To finish the installation, the basic system configuration is set up in
<xref linkend="chapter-config"/>, and the kernel and boot loader are set
up in <xref linkend="chapter-bootable"/>. <xref linkend="chapter-finalizing"/>
<xref linkend="chapter-config"/>, and the kernel and boot loader are created
in <xref linkend="chapter-bootable"/>. <xref linkend="chapter-finalizing"/>
contains information on continuing the LFS experience beyond this book.
After the steps in this book have been implemented, the computer will be
ready to reboot into the new LFS system.</para>
After the steps in this chapter have been implemented, the computer is
ready to boot into the new LFS system.</para>
<para>This is the process in a nutshell. Detailed information on each
step is discussed in the following chapters and package descriptions.
Items that may seem complicated will be clarified, and everything will
fall into place as you embark on the LFS adventure.</para>
step is presented in the following chapters.
Items that seem complicated now will be clarified, and everything will
fall into place as you commence your LFS adventure.</para>
</sect1>

View File

@ -1,4 +1,4 @@
<?xml version="1.0" encoding="ISO-8859-1"?>
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE sect1 PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
<!ENTITY % general-entities SYSTEM "../general.ent">
@ -15,19 +15,20 @@
<para>If during the building of the LFS system you encounter any
errors, have any questions, or think there is a typo in the book,
please start by consulting the Frequently Asked Questions (FAQ)
that is located at <ulink url="&faq-root;"/>.</para>
please start by consulting the list of Frequently Asked Questions (FAQ),
located at <ulink url="&faq-root;"/>.</para>
</sect2>
<sect2 id="ch-intro-maillists" xreflabel="Chapter&nbsp;1 - Mailing Lists">
<title>Mailing Lists</title>
<para>The <uri>linuxfromscratch.org</uri> server hosts a number of mailing
<para>The <systemitem class='domainname'>linuxfromscratch.org</systemitem>
server hosts a number of mailing
lists used for the development of the LFS project. These lists include the
main development and support lists, among others. If the FAQ does not solve
the problem you are having, the next step would be to search the mailing
lists at <ulink url="&lfs-root;search.html"/>.</para>
main development and support lists, among others. If you cannot find an
answer to your problem on the FAQ page, the next step would be to search
the mailing lists at <ulink url="&lfs-root;search.html"/>.</para>
<para>For information on the different lists, how to subscribe, archive
locations, and additional information, visit
@ -53,11 +54,12 @@
<sect2 id="ch-intro-irc">
<title>IRC</title>
<para>Several members of the LFS community offer assistance on Internet
Relay Chat (IRC). Before using this support, please make sure that your
<para>Several members of the LFS community offer assistance via Internet
Relay Chat (IRC). Before using this support, please make sure your
question is not already answered in the LFS FAQ or the mailing list
archives. You can find the IRC network at <uri>irc.libera.chat</uri>.
The support channel is named #LFS-support.</para>
archives. You can find the IRC network at
<systemitem class='domainname'>irc.libera.chat</systemitem>.
The support channel is named #lfs-support.</para>
</sect2>

View File

@ -1,4 +1,4 @@
<?xml version="1.0" encoding="ISO-8859-1"?>
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE sect1 PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
@ -11,12 +11,8 @@
<title>What's new since the last release</title>
<para>In this version of LFS, there has been a major reorganization
of the book using techniques that avoid changing the host system
and provides a more straight forward build process.</para>
<para>Below is a list of package updates made since the previous
release of the book.</para>
<para>Here is a list of the packages updated since the previous
release of LFS.</para>
<!--
Every package in the book is listed in the "Upgraded to:" section.
@ -30,12 +26,12 @@
<!--<listitem>
<para>None</para>
</listitem>-->
<listitem>
<!--<listitem>
<para>Acl-&acl-version;</para>
</listitem>
<listitem>
</listitem>-->
<!--<listitem>
<para>Attr-&attr-version;</para>
</listitem>
</listitem>-->
<!--<listitem>
<para>Autoconf-&autoconf-version;</para>
</listitem>-->
@ -43,40 +39,34 @@
<para>Automake-&automake-version;</para>
</listitem>
<listitem>
<para>Bash &bash-version;</para>
<para>Bash-&bash-version;</para>
</listitem>
<listitem>
<para>Bc &bc-version;</para>
</listitem>
<listitem>
<!--<listitem>
<para>Bc-&bc-version;</para>
</listitem>-->
<!--<listitem>
<para>Binutils-&binutils-version;</para>
</listitem>
<listitem>
</listitem>-->
<!--<listitem>
<para>Bison-&bison-version;</para>
</listitem>
</listitem>-->
<!--<listitem>
<para>Bzip2-&bzip2-version;</para>
</listitem>-->
<!--<listitem>
<para>Check-&check-version;</para>
</listitem>-->
<!--<listitem>
<para>Coreutils-&coreutils-version;</para>
</listitem>-->
<listitem>
<para>DejaGNU-&dejagnu-version;</para>
<para>Coreutils-&coreutils-version;</para>
</listitem>
<!--<listitem revision="systemd">
<para>D-Bus-&dbus-version;</para>
<!--<listitem>
<para>DejaGNU-&dejagnu-version;</para>
</listitem>-->
<listitem revision="systemd">
<para>D-Bus-&dbus-version;</para>
</listitem>
<listitem>
<para>Diffutils-&diffutils-version;</para>
</listitem>
<listitem>
<!--<listitem>
<para>E2fsprogs-&e2fsprogs-version;</para>
</listitem>
<!--<listitem revision="sysv">
<para>Eudev-&eudev-version;</para>
</listitem>-->
<listitem>
<para>Expat-&expat-version;</para>
@ -84,50 +74,53 @@
<!--<listitem>
<para>Expect-&expect-version;</para>
</listitem>-->
<listitem>
<!--<listitem>
<para>File-&file-version;</para>
</listitem>
</listitem>-->
<!--<listitem>
<para>Findutils-&findutils-version;</para>
</listitem>-->
<!--<listitem>
<para>Flex-&flex-version;</para>
</listitem>-->
<!--<listitem>
<listitem>
<para>Flit-Core-&flit-core-version;</para>
</listitem>
<listitem>
<para>Gawk-&gawk-version;</para>
</listitem>-->
</listitem>
<listitem>
<para>GCC-&gcc-version;</para>
</listitem>
<listitem>
<para>GDBM-&gdbm-version;</para>
</listitem>
<!--<listitem>
<para>Gettext-&gettext-version;</para>
</listitem>-->
<listitem>
<para>Glibc-&glibc-version;</para>
<para>Gettext-&gettext-version;</para>
</listitem>
<!--<listitem>
<para>Glibc-&glibc-version;</para>
</listitem>-->
<!--<listitem>
<para>GMP-&gmp-version;</para>
</listitem>-->
<!--<listitem>
<listitem>
<para>Gperf-&gperf-version;</para>
</listitem>-->
</listitem>
<listitem>
<para>Grep-&grep-version;</para>
</listitem>
<!--<listitem>
<para>Groff-&groff-version;</para>
</listitem>-->
<listitem>
<para>GRUB-&grub-version;</para>
</listitem>
<!--<listitem>
<para>Gzip-&gzip-version;</para>
<para>GRUB-&grub-version;</para>
</listitem>-->
<listitem>
<para>IANA-Etc-&iana-etc-version;</para>
<para>Gzip-&gzip-version;</para>
</listitem>
<listitem>
<para>Iana-Etc-&iana-etc-version;</para>
</listitem>
<!--<listitem>
<para>Inetutils-&inetutils-version;</para>
@ -138,12 +131,12 @@
<listitem>
<para>IPRoute2-&iproute2-version;</para>
</listitem>
<!--<listitem revision="systemd">
<listitem>
<para>Jinja2-&jinja2-version;</para>
</listitem>-->
<!--<listitem>
</listitem>
<listitem>
<para>Kbd-&kbd-version;</para>
</listitem>-->
</listitem>
<listitem>
<para>Kmod-&kmod-version;</para>
</listitem>
@ -157,7 +150,7 @@
<para>Libcap-&libcap-version;</para>
</listitem>
<listitem>
<para>Libelf-&elfutils-version; (from elfutils)</para>
<para>Libelf from Elfutils-&elfutils-version;</para>
</listitem>
<listitem>
<para>Libffi-&libffi-version;</para>
@ -168,22 +161,28 @@
<!--<listitem>
<para>Libtool-&libtool-version;</para>
</listitem>-->
<!--<listitem>
<para>Libxcrypt-&libxcrypt-version;</para>
</listitem>-->
<listitem>
<para>Linux-&linux-version;</para>
</listitem>
<!--<listitem>
<para>Lz4-&lz4-version;</para>
</listitem>-->
<listitem>
<para>M4-&m4-version;</para>
</listitem>
<!--<listitem>
<para>Make-&make-version;</para>
</listitem>-->
<!--<listitem>
<listitem>
<para>Man-DB-&man-db-version;</para>
</listitem>-->
</listitem>
<listitem>
<para>Man-pages-&man-pages-version;</para>
</listitem>
<!--<listitem revision="systemd">
<!--<listitem>
<para>MarkupSafe-&markupsafe-version;</para>
</listitem>-->
<listitem>
@ -192,9 +191,9 @@
<!--<listitem>
<para>MPC-&mpc-version;</para>
</listitem>-->
<!--<listitem>
<listitem>
<para>MPFR-&mpfr-version;</para>
</listitem>-->
</listitem>
<!--<listitem>
<para>Ncurses-&ncurses-version;</para>
</listitem>-->
@ -202,17 +201,17 @@
<para>Ninja-&ninja-version;</para>
</listitem>-->
<listitem>
<para>Openssl-&openssl-version;</para>
<para>OpenSSL-&openssl-version;</para>
</listitem>
<!--<listitem>
<listitem>
<para>Patch-&patch-version;</para>
</listitem>-->
</listitem>
<listitem>
<para>Perl-&perl-version;</para>
</listitem>
<!--<listitem>
<para>Pkg-config-&pkgconfig-version;</para>
</listitem>-->
<listitem>
<para>Pkgconf-&pkgconf-version;</para>
</listitem>
<!--<listitem>
<para>Procps-ng-&procps-ng-version;</para>
</listitem>-->
@ -222,54 +221,63 @@
<listitem>
<para>Python-&python-version;</para>
</listitem>
<!--<listitem>
<listitem>
<para>Readline-&readline-version;</para>
</listitem>-->
</listitem>
<!--<listitem>
<para>Sed-&sed-version;</para>
</listitem>-->
<listitem>
<para>Setuptools-&setuptools-version;</para>
</listitem>
<listitem>
<para>Shadow-&shadow-version;</para>
</listitem>
<listitem revision="sysv">
<para>Sysklogd-&sysklogd-version;</para>
</listitem>
<listitem revision="systemd">
<listitem>
<para>Systemd-&systemd-version;</para>
</listitem>
<listitem revision="sysv">
<!--<listitem revision="sysv">
<para>SysVinit-&sysvinit-version;</para>
</listitem>
</listitem>-->
<!--<listitem>
<para>Tar-&tar-version;</para>
</listitem>-->
<!--<listitem>
<para>Tcl-&tcl-version;</para>
</listitem>-->
<listitem>
<para>Texinfo-&texinfo-version;</para>
</listitem>
<!--<listitem>
<para>Tzdata-&tzdata-version;</para>
<para>Texinfo-&texinfo-version;</para>
</listitem>-->
<listitem>
<para>Util-Linux-&util-linux-version;</para>
<para>Tzdata-&tzdata-version;</para>
</listitem>
<!--<listitem revision="sysv">
<para>Udev from Systemd-&systemd-version;</para>
</listitem>-->
<listitem>
<para>Util-linux-&util-linux-version;</para>
</listitem>
<listitem>
<para>Vim-&vim-version;</para>
</listitem>
<listitem>
<para>Wheel-&wheel-version;</para>
</listitem>
<!--<listitem>
<para>XML-Parser-&xml-parser-version;</para>
</listitem>-->
<!--<listitem>
<para>XZ-Utils-&xz-version;</para>
<para>XML::Parser-&xml-parser-version;</para>
</listitem>-->
<listitem>
<para>Xz-&xz-version;</para>
</listitem>
<!--<listitem>
<para>Zlib-&zlib-version;</para>
</listitem>-->
<listitem>
<!--<listitem>
<para>Zstd-&zstd-version;</para>
</listitem>
</listitem>-->
</itemizedlist>
<!--<itemizedlist>
@ -284,17 +292,15 @@
<itemizedlist>
<title>Added:</title>
<listitem><para></para></listitem> <!-- satisfy build -->
<listitem>
<para>binutils-2.37-upstream_fix-1.patch</para>
<para>Packaging-&packaging-version;</para>
</listitem>
<listitem>
<para>gcc-11.1.0-upstream_fixes-1.patch</para>
<para>coreutils-9.7-upstream_fix-1.patch</para>
</listitem>
<listitem revision="systemd">
<para>MarkupSafe-&markupsafe-version;</para>
</listitem>
<listitem revision="systemd">
<para>Jinja2-&jinja2-version;</para>
<listitem>
<para>perl-5.40.2-upstream_fix-1.patch</para>
</listitem>
</itemizedlist>
@ -302,11 +308,9 @@
<itemizedlist>
<title>Removed:</title>
<listitem><para></para></listitem> <!-- satisfy build -->
<!--<listitem>
<para>bash-5.0-upstream_fixes-1.patch</para>
</listitem>-->
<listitem>
<para>Check-0.15.2</para>
</listitem>
</itemizedlist>
</sect1>

View File

@ -1,4 +1,4 @@
<?xml version="1.0" encoding="ISO-8859-1"?>
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE sect1 PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
<!ENTITY % general-entities SYSTEM "../general.ent">
@ -8,14 +8,14 @@
<sect1 id="ch-partitioning-aboutlfs">
<?dbhtml filename="aboutlfs.html"?>
<title>Setting The $LFS Variable</title>
<title>Setting the $LFS Variable and the Umask</title>
<para>Throughout this book, the environment variable <envar>LFS</envar> will
be used several times. You should ensure that this variable is always defined
throughout the LFS build process. It should be set to the name of the
directory where you will be building your LFS system - we will use
<filename class="directory">/mnt/lfs</filename> as an example, but the
directory choice is up to you. If you are building LFS on a separate
<filename class="directory">/mnt/lfs</filename> as an example, but you may
choose any directory name you want. If you are building LFS on a separate
partition, this directory will be the mount point for the partition.
Choose a directory location and set the variable with the
following command:</para>
@ -25,11 +25,27 @@
<para>Having this variable set is beneficial in that commands such as
<command>mkdir -v $LFS/tools</command> can be typed literally. The shell
will automatically replace <quote>$LFS</quote> with
<quote>/mnt/lfs</quote> (or whatever the variable was set to) when it
<quote>/mnt/lfs</quote> (or whatever value the variable was set to) when it
processes the command line.</para>
<para>Now set the file mode creation mask (umask) to
<literal>022</literal> in case the host distro uses a different
default:</para>
<screen role="nodump"><userinput>umask 022</userinput></screen>
<para>Setting the umask to 022 ensures that newly created files and
directories are only writable by their owner, but are readable and
searchable (only for directories) by anyone (assuming default modes are
used by the <ulink role='man' url='&man;open.2'>open(2)</ulink> system
call, new files will end up with permission mode 644 and directories with
mode 755). An overly-permissive default can leave security holes in the
LFS system, and an overly-restrictive default can cause strange issues
building or using the LFS system.</para>
<caution>
<para>Do not forget to check that <envar>LFS</envar> is set whenever
<para>Do not forget to check that <envar>LFS</envar> is set and the
umask is set to <literal>022</literal> whenever
you leave and reenter the current working environment (such as when doing a
<command>su</command> to <systemitem class="username">root</systemitem> or
another user). Check that the <envar>LFS</envar> variable is set up
@ -39,30 +55,41 @@
<para>Make sure the output shows the path to your LFS system's build
location, which is <filename class="directory">/mnt/lfs</filename> if the
provided example was followed. If the output is incorrect, use the command
given earlier on this page to set <envar>$LFS</envar> to the correct
directory name.</para>
</caution>
provided example was followed.</para>
<note><para>One way to ensure that the <envar>LFS</envar> variable is always
set is to edit the <filename>.bash_profile</filename> file in both your
personal home directory and in <filename>/root/.bash_profile</filename> and
enter the export command above. In addition, the shell specified in the
<para>Check that the umask is set up properly with:</para>
<screen role="nodump"><userinput>umask</userinput></screen>
<para>The output may be <computeroutput>0022</computeroutput> or
<computeroutput>022</computeroutput> (the number of leading zeros depends
on the host distro).</para>
<para>If any output of these two commands is incorrect, use the command
given earlier on this page to set <envar>$LFS</envar> to the correct
directory name and set umask to <literal>022</literal>.</para></caution>
<note><para>One way to ensure that the <envar>LFS</envar> variable and the
umask are always set properly is to edit the
<filename>.bash_profile</filename> file in both your personal home
directory and in <filename>/root/.bash_profile</filename> and
enter the <command>export</command> and <command>umask</command> commands
above. In addition, the shell specified in the
<filename>/etc/passwd</filename> file for all users that need the
<envar>LFS</envar> variable needs to be bash to ensure that the
<filename>/root/.bash_profile</filename> file is incorporated as a part of
<envar>LFS</envar> variable must be bash to ensure that the
<filename>.bash_profile</filename> file is incorporated as a part of
the login process.</para>
<para>Another consideration is the method that is used to log into the
host system. If logging in through a graphical display manager, the
user's <filename>.bash_profile</filename> is not normally used when
a virtual terminal is started. In this case, add the export command to
a virtual terminal is started. In this case, add the commands to
the <filename>.bashrc</filename> file for the user and
<systemitem class="username">root</systemitem>. In addition,
some distributions have instructions to not run the <filename>.bashrc</filename>
instructions in a non-interactive bash invocation. Be sure to add the
export command before the test for non-interactive use.</para>
<systemitem class="username">root</systemitem>. In addition,
some distributions use an "if" test, and do not run the remaining <filename>.bashrc</filename>
instructions for a non-interactive bash invocation. Be sure to place the
commands ahead of the test for non-interactive use.</para>
</note>
</sect1>

View File

@ -1,4 +1,4 @@
<?xml version="1.0" encoding="ISO-8859-1"?>
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
<!ENTITY % general-entities SYSTEM "../general.ent">

View File

@ -1,4 +1,4 @@
<?xml version="1.0" encoding="ISO-8859-1"?>
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE sect1 PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
<!ENTITY % general-entities SYSTEM "../general.ent">
@ -10,10 +10,19 @@
<title>Creating a File System on the Partition</title>
<para>Now that a blank partition has been set up, the file system can be
created. LFS can use any file system recognized by the Linux kernel, but the
most common types are ext3 and ext4. The choice of file system can be
complex and depends on the characteristics of the files and the size of
<para>A partition is just a range of sectors on a disk drive, delimited by
boundaries set in a partition table. Before the operating system can use
a partition to store any files, the partition must be formatted to contain a file
system, typically consisting of a label, directory blocks, data blocks, and
an indexing scheme to locate a particular file on demand. The file system
also helps the OS keep track of free space on the partition, reserve the
needed sectors when a new file is created or an existing file is extended,
and recycle the free data segments created when files are deleted. It may
also provide support for data redundancy, and for error recovery.</para>
<para>LFS can use any file system recognized by the Linux kernel, but the
most common types are ext3 and ext4. The choice of the right file system can be
complex; it depends on the characteristics of the files and the size of
the partition. For example:</para>
<variablelist>
@ -26,29 +35,29 @@
<varlistentry>
<term>ext3</term>
<listitem><para>is an upgrade to ext2 that includes a journal
to help recover the partition's status in the case of an unclean
to help recover the partition's status in the case of an unclean
shutdown. It is commonly used as a general purpose file system.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term>ext4</term>
<listitem><para>is the latest version of the ext file system family of
partition types. It provides several new capabilities including
nano-second timestamps, creation and use of very large files (16 TB), and
speed improvements.</para>
<listitem><para>is the latest version of the ext family of
file systems. It provides several new capabilities including
nano-second timestamps, creation and use of very large files
(up to 16 TB), and speed improvements.</para>
</listitem>
</varlistentry>
</variablelist>
<para>Other file systems, including FAT32, NTFS, ReiserFS, JFS, and XFS are
useful for specialized purposes. More information about these file systems
can be found at <ulink
url="http://en.wikipedia.org/wiki/Comparison_of_file_systems"/>.</para>
<para>Other file systems, including FAT32, NTFS, JFS, and XFS are
useful for specialized purposes. More information about these file systems,
and many others, can be found at <ulink
url="https://en.wikipedia.org/wiki/Comparison_of_file_systems"/>.</para>
<para>LFS assumes that the root file system (/) is of type ext4. To create
<para>LFS assumes that the root file system (/) is of type ext4. To create
an <systemitem class="filesystem">ext4</systemitem> file system on the LFS
partition, run the following:</para>
partition, issue the following command:</para>
<screen role="nodump"><userinput>mkfs -v -t ext4 /dev/<replaceable>&lt;xxx&gt;</replaceable></userinput></screen>

View File

@ -1,4 +1,4 @@
<?xml version="1.0" encoding="ISO-8859-1"?>
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE sect1 PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
<!ENTITY % general-entities SYSTEM "../general.ent">
@ -37,10 +37,11 @@
<para>Start a disk partitioning program such as <command>cfdisk</command>
or <command>fdisk</command> with a command line option naming the hard
disk on which the new partition will be created&mdash;for example
<filename class="devicefile">/dev/sda</filename> for the primary
<filename class="devicefile">/dev/sda</filename> for the primary
disk drive. Create a Linux native partition and a
<systemitem class="filesystem">swap</systemitem> partition, if needed. Please
refer to <filename>cfdisk(8)</filename> or <filename>fdisk(8)</filename> if
refer to <ulink role='man' url='&man;cfdisk.8'>cfdisk(8)</ulink> or
<ulink role='man' url='&man;fdisk.8'>fdisk(8)</ulink> if
you do not yet know how to use the programs.</para>
<note><para>For experienced users, other partitioning schemes are possible.
@ -88,16 +89,16 @@
swapping.</para>
<para>If you want to use the hibernation feature (suspend-to-disk) of Linux,
it writes out the contents of RAM to the swap partition before turning off
it writes out the contents of RAM to the swap partition before turning off
the machine. In this case the size of the swap partition should be at
least as large as the system's installed RAM.</para>
<para>Swapping is never good. For mechanical hard drives you can generally
tell if a system is swapping by just listening to disk activity and
observing how the system reacts to commands. For an SSD drive you will not
be able to hear swapping but you can tell how much swap space is being used
by the <command>top</command> or <command>free</command> programs. Use of
an SSD drive for a swap partition should be avoided if possible. The first
observing how the system reacts to commands. With an SSD you will not
be able to hear swapping, but you can tell how much swap space is being used
by running the <command>top</command> or <command>free</command> programs. Use of
an SSD for a swap partition should be avoided if possible. The first
reaction to swapping should be to check for an unreasonable command such as
trying to edit a five gigabyte file. If swapping becomes a normal
occurrence, the best solution is to purchase more RAM for your
@ -112,12 +113,12 @@
must be available for GRUB to use during installation of the boot
loader. This partition will normally be labeled 'BIOS Boot' if using
<command>fdisk</command> or have a code of <emphasis>EF02</emphasis> if
using <command>gdisk</command>.</para>
using the <command>gdisk</command> command.</para>
<note><para>The Grub Bios partition must be on the drive that the BIOS
uses to boot the system. This is not necessarily the same drive where the
LFS root partition is located. Disks on a system may use different
partition table types. The requirement for this partition depends
<note><para>The Grub Bios partition must be on the drive that the BIOS
uses to boot the system. This is not necessarily the drive that holds
the LFS root partition. The disks on a system may use different
partition table types. The necessity of the Grub Bios partition depends
only on the partition table type of the boot disk.</para></note>
</sect3>
@ -133,9 +134,14 @@
<listitem><para>/boot &ndash; Highly recommended. Use this partition to
store kernels and other booting information. To minimize potential boot
problems with larger disks, make this the first physical partition on
your first disk drive. A partition size of 200 megabytes is quite
your first disk drive. A partition size of 200 megabytes is
adequate.</para></listitem>
<listitem><para>/boot/efi &ndash; The EFI System Partition, which is
needed for booting the system with UEFI. Read
<ulink url="&blfs-book;postlfs/grub-setup.html">the BLFS page</ulink>
for details.</para></listitem>
<listitem><para>/home &ndash; Highly recommended. Share your home
directory and user customization across multiple distributions or LFS
builds. The size is generally fairly large and depends on available disk
@ -145,41 +151,50 @@
<filename class="directory">/bin</filename>,
<filename class="directory">/lib</filename>, and
<filename class="directory">/sbin</filename> are symlinks to their
counterpart in <filename class="directory">/usr</filename>.
So <filename class="directory">/usr</filename> contains all binaries
counterparts in <filename class="directory">/usr</filename>.
So <filename class="directory">/usr</filename> contains all the binaries
needed for the system to run. For LFS a separate partition for
<filename class="directory">/usr</filename> is normally not needed.
If you need it anyway, you should make a partition large enough to
fit all programs and libraries in the system. The root partition can be
If you create it anyway, you should make a partition large enough to
fit all the programs and libraries in the system. The root partition can be
very small (maybe just one gigabyte) in this configuration, so it's
suitable for a thin client or diskless workstation (where
<filename class="directory">/usr</filename> is mounted from a remote
server). However you should take care that an initramfs (not covered by
LFS) will be needed to boot a system with separate
server). However, you should be aware that an initramfs (not covered by
LFS) will be needed to boot a system with a separate
<filename class="directory">/usr</filename> partition.</para></listitem>
<listitem><para>/opt &ndash; This directory is most useful for
BLFS where multiple installations of large packages like Gnome or KDE can
BLFS, where multiple large packages like KDE or Texlive can
be installed without embedding the files in the /usr hierarchy. If
used, 5 to 10 gigabytes is generally adequate.</para>
</listitem>
<listitem><para>/tmp &ndash; A separate /tmp directory is rare, but
useful if configuring a thin client. This partition, if used, will
usually not need to exceed a couple of gigabytes.</para></listitem>
<listitem revision='sysv'><para>/tmp &ndash; A separate /tmp partition
is rare, but useful if configuring a thin client. This partition, if
used, will usually not need to exceed a couple of
gigabytes. If you have enough RAM, you can mount a
<systemitem class='filesystem'>tmpfs</systemitem> on /tmp to make
access to temporary files faster.</para></listitem>
<listitem revision='systemd'><para>/tmp &ndash; By default, systemd
mounts a <systemitem class='filesystem'>tmpfs</systemitem> here.
If you want to override that behavior, follow
<xref linkend='systemd-no-tmpfs'/> when configuring the LFS
system.</para></listitem>
<listitem><para>/usr/src &ndash; This partition is very
useful for providing a location to store BLFS source files and
share them across LFS builds. It can also be used as a location
for building BLFS packages. A reasonably large partition of 30-50
gigabytes allows plenty of room.</para></listitem>
share them across LFS builds. It can also be used as a location
for building BLFS packages. A reasonably large partition of 30-50
gigabytes provides plenty of room.</para></listitem>
</itemizedlist>
<para>Any separate partition that you want automatically mounted upon boot
needs to be specified in the <filename>/etc/fstab</filename>. Details
about how to specify partitions will be discussed in <xref
linkend="ch-bootable-fstab"/>. </para>
<para>Any separate partition that you want automatically mounted when the
system starts must be specified in the <filename>/etc/fstab</filename> file.
Details about how to specify partitions will be discussed in <xref
linkend="ch-bootable-fstab"/>.</para>
</sect3>
</sect2>

View File

@ -1,4 +1,4 @@
<?xml version="1.0" encoding="ISO-8859-1"?>
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE sect1 PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
<!ENTITY % general-entities SYSTEM "../general.ent">
@ -10,13 +10,29 @@
<title>Host System Requirements</title>
<sect2>
<title>Hardware</title>
<para>The LFS editors recommend that the system CPU have at least
four cores and that the system have at least 8 GB of memory.
Older systems that do not meet these requirements will still work,
but the time to build packages will be significantly longer
than documented.
</para>
</sect2>
<sect2>
<title>Software</title>
<para>Your host system should have the following software with the
minimum versions indicated. This should not be an issue for most
modern Linux distributions. Also note that many distributions will
place software headers into separate packages, often in the form of
<quote>&lt;package-name&gt;-devel</quote> or
<quote>&lt;package-name&gt;-dev</quote>. Be sure to install those if
your distribution provides them.</para>
<literal><replaceable>&lt;package-name&gt;</replaceable>-devel</literal>
or
<literal><replaceable>&lt;package-name&gt;</replaceable>-dev</literal>.
Be sure to install those if your distribution provides them.</para>
<para>Earlier versions of the listed software packages may work, but have
not been tested.</para>
@ -29,22 +45,19 @@
</listitem>
<listitem>
<para><emphasis role="strong">Binutils-2.25</emphasis> (Versions
<para><emphasis role="strong">Binutils-2.13.1</emphasis> (Versions
greater than &binutils-version; are not recommended as they have
not been tested)</para>
</listitem>
<listitem>
<para><emphasis role="strong">Bison-2.7</emphasis> (/usr/bin/yacc
should be a link to bison or small script that executes bison)</para>
should be a link to bison or a small script that executes bison)</para>
</listitem>
<!-- In Coreutils-8.1 the nproc program is added. -->
<listitem>
<para><emphasis role="strong">Bzip2-1.0.4</emphasis></para>
</listitem>
<listitem>
<para><emphasis role="strong">Coreutils-6.9</emphasis></para>
<para><emphasis role="strong">Coreutils-8.1</emphasis></para>
</listitem>
<listitem>
@ -60,17 +73,14 @@
should be a link to gawk)</para>
</listitem>
<!-- glibc-2.30 requires gcc-6.2 or later -->
<listitem>
<para><emphasis role="strong">GCC-6.2</emphasis> including the C++
<!-- Pass 1 GCC FTBFS with GCC-5.1 because of
https://gcc.gnu.org/PR65801. -->
<para><emphasis role="strong">GCC-5.2</emphasis> including the C++
compiler, <command>g++</command> (Versions greater than &gcc-version; are
not recommended as they have not been tested)</para>
</listitem>
<listitem>
<para><emphasis role="strong">Glibc-2.11</emphasis> (Versions
greater than &glibc-version; are not recommended as they have
not been tested)</para>
not recommended as they have not been tested). C and C++ standard
libraries (with headers) must also be present so the C++ compiler can
build hosted programs</para>
</listitem>
<listitem>
@ -87,12 +97,18 @@
<para>The reason for the kernel version requirement is that we specify
that version when building <application>glibc</application> in
<xref linkend="chapter-cross-tools"/> and
<xref linkend="chapter-building-system"/>,
at the recommendation of the developers. It is also required by
udev.</para>
<xref linkend="chapter-building-system"/>, so the workarounds for
older kernels are not enabled and the compiled
<application>glibc</application> is slightly faster and smaller.
As at Dec 2024, &min-kernel; is the oldest kernel release still
supported by the kernel developers. Some kernel releases older than
&min-kernel; may be still supported by third-party teams, but they
are not considered official upstream kernel releases; read
<ulink url='https://kernel.org/category/releases.html'/> for the
details.</para>
<para>If the host kernel is earlier than &min-kernel; you will need to replace
the kernel with a more up to date version. There are two ways
the kernel with a more up-to-date version. There are two ways
you can go about this. First, see if your Linux vendor provides a &min-kernel;
or later kernel package. If so, you may wish to install it. If your
vendor doesn't offer an acceptable kernel package, or you would prefer not to
@ -100,6 +116,12 @@
compiling the kernel and configuring the boot loader (assuming the host
uses GRUB) are located in <xref linkend="chapter-bootable"/>.</para>
<para>We require the host kernel to support UNIX 98 pseudo terminal
(PTY). It should be enabled on all desktop or server distros shipping
Linux &min-kernel; or a newer kernel. If you are building a custom
host kernel, ensure <option>CONFIG_UNIX98_PTYS</option> is set to
<literal>y</literal> in the kernel configuration.</para>
</listitem>
<listitem>
@ -131,7 +153,7 @@
</listitem>
<listitem>
<para><emphasis role="strong">Texinfo-4.7</emphasis></para>
<para><emphasis role="strong">Texinfo-5.0</emphasis></para>
</listitem>
<listitem>
@ -150,90 +172,109 @@
</important>
<!-- Use an empty sect2 element to prevent a pdf warning. -->
<bridgehead renderas="sect2"
id="version-check"
<bridgehead renderas="sect2"
id="version-check"
xreflabel="Host System Requirements">
</bridgehead>
<!--<title> </title>-->
<para >To see whether your host system has all the appropriate versions, and
the ability to compile programs, run the following:</para>
the ability to compile programs, run the following commands:</para>
<screen role="nodump"><userinput>cat &gt; version-check.sh &lt;&lt; "EOF"
<screen role="nodump"><?dbfo keep-together="auto"?><userinput>cat &gt; version-check.sh &lt;&lt; "EOF"
<literal>#!/bin/bash
# Simple script to list version numbers of critical development tools
export LC_ALL=C
bash --version | head -n1 | cut -d" " -f2-4
MYSH=$(readlink -f /bin/sh)
echo "/bin/sh -&gt; $MYSH"
echo $MYSH | grep -q bash || echo "ERROR: /bin/sh does not point to bash"
unset MYSH
# A script to list version numbers of critical development tools
echo -n "Binutils: "; ld --version | head -n1 | cut -d" " -f3-
bison --version | head -n1
# If you have tools installed in other directories, adjust PATH here AND
# in ~lfs/.bashrc (section 4.4) as well.
if [ -h /usr/bin/yacc ]; then
echo "/usr/bin/yacc -> `readlink -f /usr/bin/yacc`";
elif [ -x /usr/bin/yacc ]; then
echo yacc is `/usr/bin/yacc --version | head -n1`
LC_ALL=C
PATH=/usr/bin:/bin
bail() { echo "FATAL: $1"; exit 1; }
grep --version > /dev/null 2> /dev/null || bail "grep does not work"
sed '' /dev/null || bail "sed does not work"
sort /dev/null || bail "sort does not work"
ver_check()
{
if ! type -p $2 &amp;>/dev/null
then
echo "ERROR: Cannot find $2 ($1)"; return 1;
fi
v=$($2 --version 2>&amp;1 | grep -E -o '[0-9]+\.[0-9\.]+[a-z]*' | head -n1)
if printf '%s\n' $3 $v | sort --version-sort --check &amp;>/dev/null
then
printf "OK: %-9s %-6s >= $3\n" "$1" "$v"; return 0;
else
printf "ERROR: %-9s is TOO OLD ($3 or later required)\n" "$1";
return 1;
fi
}
ver_kernel()
{
kver=$(uname -r | grep -E -o '^[0-9\.]+')
if printf '%s\n' $1 $kver | sort --version-sort --check &amp;>/dev/null
then
printf "OK: Linux Kernel $kver >= $1\n"; return 0;
else
printf "ERROR: Linux Kernel ($kver) is TOO OLD ($1 or later required)\n" "$kver";
return 1;
fi
}
# Coreutils first because --version-sort needs Coreutils >= 7.0
ver_check Coreutils sort 8.1 || bail "Coreutils too old, stop"
ver_check Bash bash 3.2
ver_check Binutils ld 2.13.1
ver_check Bison bison 2.7
ver_check Diffutils diff 2.8.1
ver_check Findutils find 4.2.31
ver_check Gawk gawk 4.0.1
ver_check GCC gcc 5.2
ver_check "GCC (C++)" g++ 5.2
ver_check Grep grep 2.5.1a
ver_check Gzip gzip 1.3.12
ver_check M4 m4 1.4.10
ver_check Make make 4.0
ver_check Patch patch 2.5.4
ver_check Perl perl 5.8.8
ver_check Python python3 3.4
ver_check Sed sed 4.1.5
ver_check Tar tar 1.22
ver_check Texinfo texi2any 5.0
ver_check Xz xz 5.0.0
ver_kernel &min-kernel;
if mount | grep -q 'devpts on /dev/pts' &amp;&amp; [ -e /dev/ptmx ]
then echo "OK: Linux Kernel supports UNIX 98 PTY";
else echo "ERROR: Linux Kernel does NOT support UNIX 98 PTY"; fi
alias_check() {
if $1 --version 2>&amp;1 | grep -qi $2
then printf "OK: %-4s is $2\n" "$1";
else printf "ERROR: %-4s is NOT $2\n" "$1"; fi
}
echo "Aliases:"
alias_check awk GNU
alias_check yacc Bison
alias_check sh Bash
echo "Compiler check:"
if printf "int main(){}" | g++ -x c++ -
then echo "OK: g++ works";
else echo "ERROR: g++ does NOT work"; fi
rm -f a.out
if [ "$(nproc)" = "" ]; then
echo "ERROR: nproc is not available or it produces empty output"
else
echo "yacc not found"
fi
bzip2 --version 2&gt;&amp;1 &lt; /dev/null | head -n1 | cut -d" " -f1,6-
echo -n "Coreutils: "; chown --version | head -n1 | cut -d")" -f2
diff --version | head -n1
find --version | head -n1
gawk --version | head -n1
if [ -h /usr/bin/awk ]; then
echo "/usr/bin/awk -&gt; `readlink -f /usr/bin/awk`";
elif [ -x /usr/bin/awk ]; then
echo awk is `/usr/bin/awk --version | head -n1`
else
echo "awk not found"
fi
gcc --version | head -n1
g++ --version | head -n1
ldd --version | head -n1 | cut -d" " -f2- # glibc version
grep --version | head -n1
gzip --version | head -n1
cat /proc/version
m4 --version | head -n1
make --version | head -n1
patch --version | head -n1
echo Perl `perl -V:version`
python3 --version
sed --version | head -n1
tar --version | head -n1
makeinfo --version | head -n1 # texinfo version
xz --version | head -n1
echo 'int main(){}' &gt; dummy.c &amp;&amp; g++ -o dummy dummy.c
if [ -x dummy ]
then echo "g++ compilation OK";
else echo "g++ compilation failed"; fi
rm -f dummy.c dummy</literal>
echo "OK: nproc reports $(nproc) logical cores are available"
fi</literal>
EOF
bash version-check.sh</userinput></screen>
<!--
<para>Also check for some library consistency:</para>
<screen role="nodump"><userinput>cat &gt; library-check.sh &lt;&lt; "EOF"
<literal>#!/bin/bash
for lib in lib{gmp,mpfr,mpc}.la; do
echo $lib: $(if find /usr/lib* -name $lib|
grep -q $lib;then :;else echo not;fi) found
done
unset lib</literal>
EOF
bash library-check.sh</userinput></screen>
<para>The files identified by this script should be all present
or all absent, but not only one or two present.</para>
-->
</sect2>
</sect1>

View File

@ -1,4 +1,4 @@
<?xml version="1.0" encoding="ISO-8859-1"?>
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE sect1 PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
<!ENTITY % general-entities SYSTEM "../general.ent">
@ -11,8 +11,8 @@
<title>Introduction</title>
<para>In this chapter, the host tools needed for building LFS
are checked and, if necessary, installed. Then a partition which will
host the LFS system is prepared. We will create the partition
are checked and, if necessary, installed. Then a partition which will
host the LFS system is prepared. We will create the partition
itself, create a file system on it, and mount it.</para>
</sect1>

View File

@ -1,4 +1,4 @@
<?xml version="1.0" encoding="ISO-8859-1"?>
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE sect1 PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
<!ENTITY % general-entities SYSTEM "../general.ent">
@ -10,24 +10,28 @@
<title>Mounting the New Partition</title>
<para>Now that a file system has been created, the partition needs to
be made accessible. In order to do this, the partition needs to be
mounted at a chosen mount point. For the purposes of this book, it is
assumed that the file system is mounted under the directory specified by the
<envar>LFS</envar> environment variable as described in the previous section.
<para>Now that a file system has been created, the partition must
be mounted so the host system can access it. This book assumes that
the file system is mounted at the directory specified by the
<envar>LFS</envar> environment variable described in the previous section.
</para>
<para>Strictly speaking, one cannot <quote>mount a partition.</quote> One mounts the <emphasis>file
system</emphasis> embedded in that partition. But since a single partition can't contain
more than one file system, people often speak of the partition and the
associated file system as if they were one and the same.</para>
<para>Create the mount point and mount the LFS file system by running:</para>
<para>Create the mount point and mount the LFS file system with these commands:</para>
<screen role="nodump"><userinput>mkdir -pv $LFS
mount -v -t ext4 /dev/<replaceable>&lt;xxx&gt;</replaceable> $LFS</userinput></screen>
<para>Replace <replaceable>&lt;xxx&gt;</replaceable> with the designation of the LFS
<para>Replace <replaceable>&lt;xxx&gt;</replaceable> with the name of the LFS
partition.</para>
<para>If using multiple partitions for LFS (e.g., one for <filename
class="directory">/</filename> and another for <filename
class="directory">/home</filename>), mount them using:</para>
<para>If you are using multiple partitions for LFS (e.g., one for
<filename class="directory">/</filename> and another for <filename
class="directory">/home</filename>), mount them like this:</para>
<screen role="nodump"><userinput>mkdir -pv $LFS
mount -v -t ext4 /dev/<replaceable>&lt;xxx&gt;</replaceable> $LFS
@ -38,18 +42,28 @@ mount -v -t ext4 /dev/<replaceable>&lt;yyy&gt;</replaceable> $LFS/home</userinpu
<replaceable>&lt;yyy&gt;</replaceable> with the appropriate partition
names.</para>
<para>Set the owner and permission mode of the
<filename class='directory'>$LFS</filename> directory (i.e. the root
directory in the newly created file system for the LFS system) to
&root; and <literal>755</literal> in case the host distro has been
configured to use a different default for <command>mkfs</command>:</para>
<screen role='nodump'><userinput>chown root:root $LFS
chmod 755 $LFS</userinput></screen>
<para>Ensure that this new partition is not mounted with permissions that are
too restrictive (such as the <option>nosuid</option> or
<option>nodev</option> options). Run the <command>mount</command> command
without any parameters to see what options are set for the mounted LFS
partition. If <option>nosuid</option> and/or <option>nodev</option> are set,
the partition will need to be remounted.</para>
the partition must be remounted.</para>
<warning><para>The above instructions assume that you will not be restarting
<warning><para>The above instructions assume that you will not restart
your computer throughout the LFS process. If you shut down your system,
you will either need to remount the LFS partition each time you restart
the build process or modify your host system's /etc/fstab file to automatically
remount it upon boot. For example:
you will either need to remount the LFS partition each time you restart
the build process, or modify the host system's &fstab; file to automatically
remount it when you reboot. For example, you might add this line to your
&fstab; file:
<screen role="nodump">/dev/<replaceable>&lt;xxx&gt;</replaceable> /mnt/lfs ext4 defaults 1 1</screen>
@ -67,7 +81,7 @@ mount -v -t ext4 /dev/<replaceable>&lt;yyy&gt;</replaceable> $LFS/home</userinpu
<para>Replace <replaceable>&lt;zzz&gt;</replaceable> with the name of the
<systemitem class="filesystem">swap</systemitem> partition.</para>
<para>Now that there is an established place to work, it is time to
<para>Now that the new LFS partition is open for business, it's time to
download the packages.</para>
</sect1>

View File

@ -1,4 +1,4 @@
<?xml version="1.0" encoding="ISO-8859-1"?>
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE sect1 PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
<!ENTITY % general-entities SYSTEM "../general.ent">
@ -12,29 +12,29 @@
<para>LFS is designed to be built in one session. That is, the
instructions assume that the system will not be shut down
during the process. That does not mean that the system has to
be done in one sitting. The issue is that certain procedures
have to be re-accomplished after a reboot if resuming LFS at
during the process. This does not mean that the system has to
be built in one sitting. The issue is that certain procedures
must be repeated after a reboot when resuming LFS at
different points.</para>
<sect2>
<title>Chapters&nbsp;1&ndash;4</title>
<para>These chapters are accomplished on the host system. When
restarting, be careful of the following:</para>
<para>These chapters run commands on the host system. When
restarting, be certain of one thing:</para>
<itemizedlist>
<listitem>
<para>Procedures done as the
<para>Procedures performed as the
<systemitem class="username">root</systemitem> user after Section
2.4 need to have the LFS environment variable set
2.4 must have the LFS environment variable set
<emphasis>FOR THE ROOT USER</emphasis>.</para>
</listitem>
</itemizedlist>
</sect2>
<sect2>
<title>Chapter&nbsp;5&ndash;6</title>
<title>Chapters&nbsp;5&ndash;6</title>
<itemizedlist>
<listitem>
@ -44,23 +44,23 @@
<listitem>
<para>These two chapters <emphasis>must</emphasis> be done as user
<systemitem class="username">lfs</systemitem>.
A <command>su - lfs</command> needs to be done before any task in these
chapters. Failing to do that, you are at risk of installing packages to the
A <command>su - lfs</command> command must be issued before performing any task in these
chapters. If you don't do that, you are at risk of installing packages to the
host, and potentially rendering it unusable.</para>
</listitem>
<listitem>
<para>The procedures in <xref linkend='ch-tools-generalinstructions'/>
are critical. If there is any
doubt about installing a package, ensure any previously expanded
tarballs are removed, then re-extract the package files, and complete all
instructions in that section.</para>
doubt a package has been installed correctly, ensure the previously expanded
tarball has been removed, then re-extract the package, and complete all
the instructions in that section.</para>
</listitem>
</itemizedlist>
</sect2>
<sect2>
<title>Chapter&nbsp;7&ndash;10</title>
<title>Chapters&nbsp;7&ndash;10</title>
<itemizedlist>
<listitem>
@ -68,26 +68,26 @@
</listitem>
<listitem>
<para>A few operations, from <quote>Changing Ownership</quote> to
<quote>Entering the Chroot Environment</quote> must be done as the
<para>A few operations, from <quote>Preparing Virtual Kernel File
Systems</quote> to
<quote>Entering the Chroot Environment,</quote> must be done as the
<systemitem class="username">root</systemitem> user, with the LFS
environment variable set for the
<systemitem class="username">root</systemitem>user.</para>
environment variable set for the &root; user.</para>
</listitem>
<listitem>
<para> When entering chroot, the LFS environment variable must be set
for <systemitem class="username">root</systemitem>. The LFS
variable is not used afterwards.</para>
variable is not used after the chroot environment has been entered.</para>
</listitem>
<listitem>
<para> The virtual file systems must be mounted. This can be done
before or after entering chroot by changing to a host virtual terminal
and, as <systemitem class="username">root</systemitem>, running the
commands in
<xref linkend='ch-tools-bindmount'/> and
<xref linkend='ch-tools-kernfsmount'/>.</para>
commands in
<xref linkend='ch-tools-bindmount'/> and
<xref linkend='ch-tools-kernfsmount' role='.'/></para>
</listitem>
</itemizedlist>
</sect2>

View File

@ -1,4 +1,4 @@
<?xml version="1.0" encoding="ISO-8859-1"?>
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
<!ENTITY % general-entities SYSTEM "../general.ent">

View File

@ -1,4 +1,4 @@
<?xml version="1.0" encoding="ISO-8859-1"?>
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE sect1 PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
<!ENTITY % general-entities SYSTEM "../general.ent">
@ -13,15 +13,26 @@
<para>This chapter includes a list of packages that need to be downloaded in
order to build a basic Linux system. The listed version numbers correspond to
versions of the software that are known to work, and this book is based on
their use. We highly recommend against using newer versions because the build
commands for one version may not work with a newer version. The newest package
versions may also have problems that require work-arounds. These work-arounds
will be developed and stabilized in the development version of the
book.</para>
their use. We highly recommend against using different versions, because the build
commands for one version may not work with a different version, unless the
different version is specified by an LFS erratum or security advisory.
The newest package versions may also have problems that require
work-arounds. These work-arounds will be developed and stabilized in the
development version of the book.</para>
<para>For some packages, the release tarball and the (Git or SVN)
repository snapshot tarball for that release may be published with
similar or even identical file names. But the release tarball may contain
some files which are essential despite not stored in the repository
(for example, a <command>configure</command> script generated by
<command>autoconf</command>), in addition to the contents of the
corresponding repository snapshot. The book uses release tarballs
whenever possible. Using a repository snapshot instead of a release
tarball specified by the book will cause problems.</para>
<para>Download locations may not always be accessible. If a download
location has changed since this book was published, Google (<ulink
url="http://www.google.com/"/>) provides a useful search engine for
url="https://www.google.com/"/>) provides a useful search engine for
most packages. If this search is unsuccessful, try one of the
alternative means of downloading at <ulink
url="&lfs-root;lfs/mirrors.html#files"/>. </para>
@ -49,17 +60,17 @@
<screen role="nodump"><userinput>chmod -v a+wt $LFS/sources</userinput></screen>
<para>There are several ways to optain all the necessary packages and patches
<para>There are several ways to obtain all the necessary packages and patches
to build LFS:</para>
<itemizedlist>
<listitem>
<para>The files can be downloaded individually as described in the
<para>The files can be downloaded individually as described in the
next two sections.</para>
</listitem>
<listitem>
<para>For stable versions of the book, a tarball of all the needed files
can be downloaded from one of the LFS files mirrors listed at
<para>For stable versions of the book, a tarball of all the needed files
can be downloaded from one of the mirror sites listed at
<ulink url="https://www.linuxfromscratch.org/mirrors.html#files"/>.</para>
</listitem>
<listitem>
@ -69,11 +80,19 @@
</itemizedlist>
<para>To download all of the packages and patches by using
<ulink url="../wget-list">wget-list</ulink> as an input to the
<command>wget</command> command, use:</para>
<screen role="nodump"><userinput>wget --input-file=wget-list --continue --directory-prefix=$LFS/sources</userinput></screen>
<ulink url="../&wget-list;">&wget-list;</ulink>
as an input to the <command>wget</command> command, use:</para>
<screen role="nodump"><userinput>wget --input-file=&wget-list; --continue --directory-prefix=$LFS/sources</userinput></screen>
<!--
<note><para>
The <filename>wget-list</filename> file mentioned above retrieves all
packages for both the sysV and systemd versions of LFS. There are a total
of five additional small packages not needed for the current book. The
<filename>md5sums</filename> file mentioned below is specific to the
current book.
</para></note>
-->
<para>Additionally, starting with LFS-7.0, there is a separate file,
<ulink url="../md5sums">md5sums</ulink>, which can be used to verify that all
the correct packages are available before proceeding. Place that file in
@ -83,7 +102,17 @@
md5sum -c md5sums
popd</userinput></screen>
<para>This check can be used after retrieving the needed files with any of the
<para>This check can be used after retrieving the needed files with any of the
methods listed above.</para>
<para>If the packages and patches are downloaded as a non-&root; user,
these files will be owned by the user. The file system records the
owner by its UID, and the UID of a normal user in the host distro is
not assigned in LFS. So the files will be left owned by an unnamed UID
in the final LFS system. If you won't assign the same UID for your user
in the LFS system, change the owners of these files to &root; now to
avoid this issue:</para>
<screen role="nodump"><userinput>chown root:root $LFS/sources/*</userinput></screen>
</sect1>

View File

@ -1,4 +1,4 @@
<?xml version="1.0" encoding="ISO-8859-1"?>
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE sect1 PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
<!ENTITY % general-entities SYSTEM "../general.ent">
@ -10,6 +10,21 @@
<title>All Packages</title>
<note>
<para>Read the <ulink url='&secadv;'>security advisories</ulink>
before downloading packages to figure out if a newer version of any
package should be used to avoid security vulnerabilities.</para>
<para>The upstream sources may remove old releases, especially when those
releases contain a security vulnerability. If one URL below is not
reachable, you should read the security advisories first to figure out
if a newer version (with the vulnerability fixed) should be used. If
not, try to download the removed package from a mirror. Although it's
possible to download an old release from a mirror even if this release
has been removed because of a vulnerability, it's not a good idea to
use a release known to be vulnerable when building your system.</para>
</note>
<para>Download or otherwise obtain the following packages:</para>
<variablelist role="materials">
@ -47,7 +62,6 @@
<para>Home page: <ulink url="&automake-home;"/></para>
<para>Download: <ulink url="&automake-url;"/></para>
<para>MD5 sum: <literal>&automake-md5;</literal></para>
<para>SHA256 sum: <literal>&automake-sha256;</literal></para>
</listitem>
</varlistentry>
@ -96,15 +110,6 @@
</listitem>
</varlistentry>
<varlistentry>
<term>Check (&check-version;) - <token>&check-size;</token>:</term>
<listitem>
<para>Home page: <ulink url="&check-home;"/></para>
<para>Download: <ulink url="&check-url;"/></para>
<para>MD5 sum: <literal>&check-md5;</literal></para>
</listitem>
</varlistentry>
<varlistentry>
<term>Coreutils (&coreutils-version;) - <token>&coreutils-size;</token>:</term>
<listitem>
@ -159,14 +164,6 @@
</listitem>
</varlistentry>
<varlistentry revision="sysv">
<term>Eudev (&eudev-version;) - <token>&eudev-size;</token>:</term>
<listitem>
<para>Download: <ulink url="&eudev-url;"/></para>
<para>MD5 sum: <literal>&eudev-md5;</literal></para>
</listitem>
</varlistentry>
<varlistentry>
<term>Expat (&expat-version;) - <token>&expat-size;</token>:</term>
<listitem>
@ -212,6 +209,15 @@
</listitem>
</varlistentry>
<varlistentry>
<term>Flit-core (&flit-core-version;) - <token>&flit-core-size;</token>:</term>
<listitem>
<para>Home page: <ulink url="&flit-core-home;"/></para>
<para>Download: <ulink url="&flit-core-url;"/></para>
<para>MD5 sum: <literal>&flit-core-md5;</literal></para>
</listitem>
</varlistentry>
<varlistentry>
<term>Gawk (&gawk-version;) - <token>&gawk-size;</token>:</term>
<listitem>
@ -227,7 +233,6 @@
<para>Home page: <ulink url="&gcc-home;"/></para>
<para>Download: <ulink url="&gcc-url;"/></para>
<para>MD5 sum: <literal>&gcc-md5;</literal></para>
<para>SHA256 sum: <literal>&gcc-sha256;</literal></para>
</listitem>
</varlistentry>
@ -255,6 +260,20 @@
<para>Home page: <ulink url="&glibc-home;"/></para>
<para>Download: <ulink url="&glibc-url;"/></para>
<para>MD5 sum: <literal>&glibc-md5;</literal></para>
<note>
<para>
The Glibc developers maintain a
<ulink url='https://sourceware.org/git/?p=glibc.git;a=shortlog;h=refs/heads/release/&glibc-version;/master'>Git
branch</ulink> containing patches considered worthy for
Glibc-&glibc-version; but unfortunately developed after
Glibc-&glibc-version; release. The LFS editors will issue a
security advisory if any security fix is added into the branch,
but no actions will be taken for other newly added patches. You
may review the patches yourself and incorporate some patches if
you consider them important.
</para>
</note>
</listitem>
</varlistentry>
@ -327,7 +346,6 @@
<para>Home page: <ulink url="&inetutils-home;"/></para>
<para>Download: <ulink url="&inetutils-url;"/></para>
<para>MD5 sum: <literal>&inetutils-md5;</literal></para>
<para>SHA256 sum: <literal>&inetutils-sha256;</literal></para>
</listitem>
</varlistentry>
@ -349,7 +367,7 @@
</listitem>
</varlistentry>
<varlistentry revision="systemd">
<varlistentry>
<term>Jinja2 (&jinja2-version;) - <token>&jinja2-size;</token>:</term>
<listitem>
<para>Home page: <ulink url="&jinja2-home;"/></para>
@ -430,6 +448,15 @@
</listitem>
</varlistentry>
<varlistentry>
<term>Libxcrypt (&libxcrypt-version;) - <token>&libxcrypt-size;</token>:</term>
<listitem>
<para>Home page: <ulink url="&libxcrypt-home;"/></para>
<para>Download: <ulink url="&libxcrypt-url;"/></para>
<para>MD5 sum: <literal>&libxcrypt-md5;</literal></para>
</listitem>
</varlistentry>
<varlistentry>
<term>Linux (&linux-version;) - <token>&linux-size;</token>:</term>
<listitem>
@ -438,9 +465,9 @@
<para>MD5 sum: <literal>&linux-md5;</literal></para>
<note>
<para>The Linux kernel is updated relatively often, many times due to
<para>The Linux kernel is updated quite frequently, many times due to
discoveries of security vulnerabilities. The latest available
<!--&linux-major-version;.&linux-minor-version;.x--> stable kernel
<!--&linux-major-version;.&linux-minor-version;.x--> stable kernel
version <!--should--> may be
used, unless the errata page says otherwise.</para>
@ -453,6 +480,15 @@
</listitem>
</varlistentry>
<varlistentry>
<term>Lz4 (&lz4-version;) - <token>&lz4-size;</token>:</term>
<listitem>
<para>Home page: <ulink url="&lz4-home;"/></para>
<para>Download: <ulink url="&lz4-url;"/></para>
<para>MD5 sum: <literal>&lz4-md5;</literal></para>
</listitem>
</varlistentry>
<varlistentry>
<term>M4 (&m4-version;) - <token>&m4-size;</token>:</term>
<listitem>
@ -489,7 +525,7 @@
</listitem>
</varlistentry>
<varlistentry revision="systemd">
<varlistentry>
<term>MarkupSafe (&markupsafe-version;) - <token>&markupsafe-size;</token>:</term>
<listitem>
<para>Home page: <ulink url="&markupsafe-home;"/></para>
@ -552,6 +588,15 @@
</listitem>
</varlistentry>
<varlistentry>
<term>Packaging (&packaging-version;) - <token>&packaging-size;</token>:</term>
<listitem>
<para>Home page: <ulink url="&packaging-home;"/></para>
<para>Download: <ulink url="&packaging-url;"/></para>
<para>MD5 sum: <literal>&packaging-md5;</literal></para>
</listitem>
</varlistentry>
<varlistentry>
<term>Patch (&patch-version;) - <token>&patch-size;</token>:</term>
<listitem>
@ -571,11 +616,11 @@
</varlistentry>
<varlistentry>
<term>Pkg-config (&pkgconfig-version;) - <token>&pkgconfig-size;</token>:</term>
<term>Pkgconf (&pkgconf-version;) - <token>&pkgconf-size;</token>:</term>
<listitem>
<para>Home page: <ulink url="&pkgconfig-home;"/></para>
<para>Download: <ulink url="&pkgconfig-url;"/></para>
<para>MD5 sum: <literal>&pkgconfig-md5;</literal></para>
<para>Home page: <ulink url="&pkgconf-home;"/></para>
<para>Download: <ulink url="&pkgconf-url;"/></para>
<para>MD5 sum: <literal>&pkgconf-md5;</literal></para>
</listitem>
</varlistentry>
@ -632,6 +677,15 @@
</listitem>
</varlistentry>
<varlistentry>
<term>Setuptools (&setuptools-version;) - <token>&setuptools-size;</token>:</term>
<listitem>
<para>Home page: <ulink url="&setuptools-home;"/></para>
<para>Download: <ulink url="&setuptools-url;"/></para>
<para>MD5 sum: <literal>&setuptools-md5;</literal></para>
</listitem>
</varlistentry>
<varlistentry>
<term>Shadow (&shadow-version;) - <token>&shadow-size;</token>:</term>
<listitem>
@ -650,7 +704,7 @@
</listitem>
</varlistentry>
<varlistentry revision="systemd">
<varlistentry>
<term>Systemd (&systemd-version;) - <token>&systemd-size;</token>:</term>
<listitem>
<para>Home page: <ulink url="&systemd-home;"/></para>
@ -659,8 +713,8 @@
</listitem>
</varlistentry>
<varlistentry revision="systemd">
<term>Systemd Man Pages(&systemd-version;) - <token>&systemd-man-size;</token>:</term>
<varlistentry>
<term>Systemd Man Pages (&systemd-version;) - <token>&systemd-man-size;</token>:</term>
<listitem>
<para>Home page: <ulink url="&systemd-home;"/></para>
<para>Download: <ulink url="&systemd-man-url;"/></para>
@ -676,7 +730,7 @@
<varlistentry revision="sysv">
<term>Sysvinit (&sysvinit-version;) - <token>&sysvinit-size;</token>:</term>
<term>SysVinit (&sysvinit-version;) - <token>&sysvinit-size;</token>:</term>
<listitem>
<para>Home page: <ulink url="&sysvinit-home;"/></para>
<para>Download: <ulink url="&sysvinit-url;"/></para>
@ -768,13 +822,21 @@
<note>
<para>
The version of vim changes daily. To get the latest version, go to
<ulink url="https://github.com/vim/vim/releases">
https://github.com/vim/vim/releases</ulink>.
<ulink url="https://github.com/vim/vim/tags"/>.
</para>
</note>
</listitem>
</varlistentry>
<varlistentry>
<term>Wheel (&wheel-version;) - <token>&wheel-size;</token>:</term>
<listitem>
<para>Home page: <ulink url="&wheel-home;"/></para>
<para>Download: <ulink url="&wheel-url;"/></para>
<para>MD5 sum: <literal>&wheel-md5;</literal></para>
</listitem>
</varlistentry>
<varlistentry>
<term>XML::Parser (&xml-parser-version;) - <token>&xml-parser-size;</token>:</term>
<listitem>

View File

@ -1,4 +1,4 @@
<?xml version="1.0" encoding="ISO-8859-1"?>
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE sect1 PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
<!ENTITY % general-entities SYSTEM "../general.ent">
@ -25,25 +25,24 @@
<para>MD5 sum: <literal>&autoconf-fixes-patch-md5;</literal></para>
</listitem>
</varlistentry>
-->
<!--
<varlistentry>
<term>Bash Upstream Fixes Patch - <token>&bash-fixes-patch-size;</token>:</term>
<term>Bash Cross Compile Fix Patch - <token>&bash-crosscompile-fix-patch-size;</token>:</term>
<listitem>
<para>Download: <ulink url="&patches-root;&bash-fixes-patch;"/></para>
<para>MD5 sum: <literal>&bash-fixes-patch-md5;</literal></para>
<para>Download: <ulink url="&patches-root;&bash-crosscompile-fix-patch;"/></para>
<para>MD5 sum: <literal>&bash-crosscompile-fix-patch-md5;</literal></para>
</listitem>
</varlistentry>
-->
<!--
<varlistentry>
<term>Binutils Upstream Fix Patch - <token>&binutils-upstream-patch-size;</token>:</term>
<term>Binutils Upstream Fixes Patch - <token>&binutils-upstream-patch-size;</token>:</term>
<listitem>
<para>Download: <ulink url="&patches-root;&binutils-upstream-patch;"/></para>
<para>MD5 sum: <literal>&binutils-upstream-patch-md5;</literal></para>
</listitem>
</varlistentry>
-->
<varlistentry>
<term>Bzip2 Documentation Patch - <token>&bzip2-docs-patch-size;</token>:</term>
<listitem>
@ -52,6 +51,14 @@
</listitem>
</varlistentry>
<varlistentry>
<term>Coreutils Upstream Fix Patch - <token>&coreutils-upstream-patch-size;</token>:</term>
<listitem>
<para>Download: <ulink url="&patches-root;&coreutils-upstream-patch;"/></para>
<para>MD5 sum: <literal>&coreutils-upstream-patch-md5;</literal></para>
</listitem>
</varlistentry>
<varlistentry>
<term>Coreutils Internationalization Fixes Patch - <token>&coreutils-i18n-patch-size;</token>:</term>
<listitem>
@ -60,6 +67,32 @@
</listitem>
</varlistentry>
<varlistentry>
<term>Expect GCC15 Patch - <token>&expect-gcc15-patch-size;</token>:</term>
<listitem>
<para>Download: <ulink url="&patches-root;&expect-gcc15-patch;"/></para>
<para>MD5 sum: <literal>&expect-gcc15-patch-md5;</literal></para>
</listitem>
</varlistentry>
<!--
<varlistentry>
<term>Gcc glibc-2.36 Fixes Patch - <token>&gcc-upstream-fixes-patch-size;</token>:</term>
<listitem>
<para>Download: <ulink url="&patches-root;&gcc-upstream-fixes-patch;"/></para>
<para>MD5 sum: <literal>&gcc-upstream-fixes-patch-md5;</literal></para>
</listitem>
</varlistentry>
-->
<!--
<varlistentry>
<term>Glibc Upstream Fix Patch - <token>&glibc-upstream-patch-size;</token>:</term>
<listitem>
<para>Download: <ulink url="&patches-root;&glibc-upstream-patch;"/></para>
<para>MD5 sum: <literal>&glibc-upstream-patch-md5;</literal></para>
</listitem>
</varlistentry>
-->
<varlistentry>
<term>Glibc FHS Patch - <token>&glibc-fhs-patch-size;</token>:</term>
<listitem>
@ -75,8 +108,7 @@
<para>MD5 sum: <literal>&kbd-backspace-patch-md5;</literal></para>
</listitem>
</varlistentry>
<!--
<!--
<varlistentry>
<term>Meson Upstream Fix Patch - <token>&meson-fix-patch-size;</token>:</term>
<listitem>
@ -84,8 +116,7 @@
<para>MD5 sum: <literal>&meson-fix-patch-md5;</literal></para>
</listitem>
</varlistentry>
-->
<!--
<varlistentry>
<term>Libpipeline Checks Patch - <token>&libpipeline-checks-patch-size;</token>:</term>
<listitem>
@ -96,29 +127,57 @@
-->
<varlistentry>
<term>Perl Upstream Fix Patch - <token>&perl-fix-patch-size;</token>:</term>
<term>Perl Upstream Fix Patch - <token>&perl-upstream-fix-patch-size;</token>:</term>
<listitem>
<para>Download: <ulink url="&patches-root;&perl-fix-patch;"/></para>
<para>MD5 sum: <literal>&perl-fix-patch-md5;</literal></para>
<para>Download: <ulink url="&patches-root;&perl-upstream-fix-patch;"/></para>
<para>MD5 sum: <literal>&perl-upstream-fix-patch-md5;</literal></para>
</listitem>
</varlistentry>
<!--
<varlistentry>
<term>Python Security Fix Patch - <token>&python-security-fixes-patch-size;</token>:</term>
<listitem>
<para>Download: <ulink url="&patches-root;&python-security-fixes-patch;"/></para>
<para>MD5 sum: <literal>&python-security-fixes-patch-md5;</literal></para>
</listitem>
</varlistentry>
-->
<varlistentry revision="sysv">
<term>Sysvinit Consolidated Patch - <token>&sysvinit-consolidated-patch-size;</token>:</term>
<term>SysVinit Consolidated Patch - <token>&sysvinit-consolidated-patch-size;</token>:</term>
<listitem>
<para>Download: <ulink url="&patches-root;&sysvinit-consolidated-patch;"/></para>
<para>MD5 sum: <literal>&sysvinit-consolidated-patch-md5;</literal></para>
</listitem>
</varlistentry>
<!--
<varlistentry revision="systemd">
<term>Systemd Upstream Fixes Patch - <token>&systemd-upstream-fixes-patch-size;</token>:</term>
<term>Systemd Upstream Fixes Patch - <token>&systemd-upstream-patch-size;</token>:</term>
<listitem>
<para>Download: <ulink url="&patches-root;&systemd-upstream-fixes-patch;"/></para>
<para>MD5 sum: <literal>&systemd-upstream-fixes-patch-md5;</literal></para>
<para>Download: <ulink url="&patches-root;&systemd-upstream-patch;"/></para>
<para>MD5 sum: <literal>&systemd-upstream-patch-md5;</literal></para>
</listitem>
</varlistentry>
-->
<!--
<varlistentry>
<term>Xz Upstream Fix Patch - <token>&xz-upstream-fix-patch-size;</token>:</term>
<listitem>
<para>Download: <ulink url="&patches-root;&xz-upstream-fix-patch;"/></para>
<para>MD5 sum: <literal>&xz-upstream-fix-patch-md5;</literal></para>
</listitem>
</varlistentry>
-->
<!--
<varlistentry>
<term>Zstd Upstream Fixes Patch - <token>&zstd-upstream-fixes-patch-size;</token>:</term>
<listitem>
<para>Download: <ulink url="&patches-root;&zstd-upstream-fixes-patch;"/></para>
<para>MD5 sum: <literal>&zstd-upstream-fixes-patch-md5;</literal></para>
</listitem>
</varlistentry>
-->
</variablelist>
<para>Total size of these patches: about <returnvalue/></para>

View File

@ -1,4 +1,4 @@
<?xml version="1.0" encoding="ISO-8859-1"?>
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE sect1 PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
<!ENTITY % general-entities SYSTEM "../general.ent">
@ -13,48 +13,72 @@
<para>Many people would like to know beforehand approximately how long
it takes to compile and install each package. Because Linux From
Scratch can be built on many different systems, it is impossible to
provide accurate time estimates. The biggest package (Glibc) will
take approximately 20 minutes on the fastest systems, but could take
up to three days on slower systems! Instead of providing actual times,
provide absolute time estimates. The biggest package (gcc) will
take approximately 5 minutes on the fastest systems, but could take
days on slower systems! Instead of providing actual times,
the Standard Build Unit (SBU) measure will be
used instead.</para>
<para>The SBU measure works as follows. The first package to be compiled
from this book is binutils in <xref linkend="chapter-cross-tools"/>. The
time it takes to compile this package is what will be referred to as the
Standard Build Unit or SBU. All other compile times will be expressed relative
to this time.</para>
<para>The SBU measure works as follows. The first package to be compiled is
binutils in <xref linkend="chapter-cross-tools"/>. The time it takes to
compile using one core is what we will refer to as the Standard
Build Unit or SBU. All other compile times will be expressed in terms of this
unit of time.</para>
<para>For example, consider a package whose compilation time is 4.5
SBUs. This means that if a system took 10 minutes to compile and
SBUs. This means that if your system took 4 minutes to compile and
install the first pass of binutils, it will take
<emphasis>approximately</emphasis> 45 minutes to build this example package.
Fortunately, most build times are shorter than the one for binutils.</para>
<emphasis>approximately</emphasis> 18 minutes to build the example package.
Fortunately, most build times are shorter than one SBU.</para>
<para>In general, SBUs are not entirely accurate because they depend on many
<para>SBUs are not entirely accurate because they depend on many
factors, including the host system's version of GCC. They are provided here
to give an estimate of how long it might take to install a package, but the
numbers can vary by as much as dozens of minutes in some cases.</para>
<para>On some newer systems, the motherboard is capable of controlling
the system clock speed. This can be controlled with a command such as
<command>powerprofilesctl</command>. This is not available in LFS, but
may be available on the host distro. After LFS is complete, it can be
added to a system with the procedures at the
<ulink url='&blfs-book;sysutils/power-profiles-daemon.html'>
BLFS power-profiles-daemon</ulink> page.
Before measuring the build time of any package it is advisable to use a
system power profile set for maximum performance (and maximum power
consumption).
Otherwise the measured SBU value may be inaccurate because the
system may react differently when building <xref linkend='ch-tools-binutils-pass1'/>
or other packages.
Be aware that a significant inaccuracy can still show up even if the same
profile is used for both packages because the system may respond slower if
the system is idle when starting the build procedure. Setting the power
profile to <quote>performance</quote> will minimize this problem. And
obviously doing so will also make the system build LFS faster.</para>
<para>If <command>powerprofilesctl</command> is available, issue the
<command>powerprofilesctl set performance</command> command to select
the <literal>performance</literal> profile. Some distros provides the
<command>tuned-adm</command> command for managing the profiles instead of
<command>powerprofilesctl</command>, on these distros issue the
<command>tuned-adm profile throughput-performance</command> command to
select the <literal>throughput-performance</literal> profile.</para>
<note>
<para>For many modern systems with multiple processors (or cores) the
compilation time for a package can be reduced by performing a "parallel
make" by either setting an environment variable or telling the
<command>make</command> program how many processors are available. For
instance, an Intel i5-6500 CPU can support four simultaneous processes with:</para>
<screen role="nodump"><userinput>export MAKEFLAGS='-j4'</userinput></screen>
<para>or just building with:</para>
<screen role="nodump"><userinput>make -j4</userinput></screen>
<para>When multiple processors are used in this way, the SBU units in the
book will vary even more than they normally would. In some cases, the make
step will simply fail. Analyzing the output of the build process will also
be more difficult because the lines of different processes will be
interleaved. If you run into a problem with a build step, revert back to a
be more difficult because the lines from different processes will be
interleaved. If you run into a problem with a build step, revert to a
single processor build to properly analyze the error messages.</para>
<para>The times presented here for all packages
(except <xref linkend='ch-tools-binutils-pass1'/> which is based on one core)
are based upon using four cores (-j4). The
times in Chapter 8 also include the time to run the regression tests for
the package unless specified otherwise.</para>
</note>
</sect1>

View File

@ -1,4 +1,4 @@
<?xml version="1.0" encoding="ISO-8859-1"?>
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE sect1 PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
<!ENTITY % general-entities SYSTEM "../general.ent">
@ -27,21 +27,21 @@
<note>
<para>Running the test suites in <xref linkend="chapter-cross-tools"/>
and <xref linkend="chapter-temporary-tools"/>
is impossible, since the programs are compiled with a cross-compiler,
so are not supposed to be able to run on the build host.</para>
is pointless; since the test programs are compiled with a cross-compiler,
they probably can't run on the build host.</para>
</note>
<para>A common issue with running the test suites for binutils and GCC
is running out of pseudo terminals (PTYs). This can result in a high
is running out of pseudo terminals (PTYs). This can result in a large
number of failing tests. This may happen for several reasons, but the
most likely cause is that the host system does not have the
<systemitem class="filesystem">devpts</systemitem> file system set up
correctly. This issue is discussed in greater detail at
<ulink url="&lfs-root;lfs/faq.html#no-ptys"/>.</para>
<para>Sometimes package test suites will fail, but for reasons which the
<para>Sometimes package test suites will fail for reasons which the
developers are aware of and have deemed non-critical. Consult the logs located
at <ulink url="&test-results;"/> to verify whether or not these failures are
expected. This site is valid for all tests throughout this book.</para>
expected. This site is valid for all test suites throughout this book.</para>
</sect1>

View File

@ -1,4 +1,4 @@
<?xml version="1.0" encoding="ISO-8859-1"?>
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE sect1 PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
<!ENTITY % general-entities SYSTEM "../general.ent">
@ -11,20 +11,20 @@
<title>Adding the LFS User</title>
<para>When logged in as user <systemitem class="username">root</systemitem>,
making a single mistake can damage or destroy a system. Therefore,
making a single mistake can damage or destroy a system. Therefore,
the packages in the next two chapters are built as an unprivileged user.
You could use your own user name, but to make it easier to set up a clean
working environment, create a new user called <systemitem
working environment, we will create a new user called <systemitem
class="username">lfs</systemitem> as a member of a new group (also named
<systemitem class="groupname">lfs</systemitem>) and use this user during
<systemitem class="groupname">lfs</systemitem>) and run commands as &lfs-user; during
the installation process. As <systemitem class="username">root</systemitem>,
issue the following commands to add the new user:</para>
<screen><userinput>groupadd lfs
useradd -s /bin/bash -g lfs -m -k /dev/null lfs</userinput></screen>
<screen><userinput>groupadd &lfs-groupname;
useradd -s /bin/bash -g &lfs-groupname; -m -k /dev/null &lfs-username;</userinput></screen>
<variablelist>
<title>The meaning of the command line options:</title>
<title>This is what the command line options mean:</title>
<varlistentry>
<term><parameter>-s /bin/bash</parameter></term>
@ -54,7 +54,7 @@ useradd -s /bin/bash -g lfs -m -k /dev/null lfs</userinput></screen>
<term><parameter>-k /dev/null</parameter></term>
<listitem>
<para>This parameter prevents possible copying of files from a skeleton
directory (default is <filename class="directory">/etc/skel</filename>)
directory (the default is <filename class="directory">/etc/skel</filename>)
by changing the input location to the special null device.</para>
</listitem>
</varlistentry>
@ -62,49 +62,44 @@ useradd -s /bin/bash -g lfs -m -k /dev/null lfs</userinput></screen>
<varlistentry>
<term><parameter>lfs</parameter></term>
<listitem>
<para>This is the actual name for the created user.</para>
<para>This is the name of the new user.</para>
</listitem>
</varlistentry>
</variablelist>
<para>To log in as <systemitem class="username">lfs</systemitem> (as opposed
to switching to user <systemitem class="username">lfs</systemitem> when logged
in as <systemitem class="username">root</systemitem>, which does not require
the <systemitem class="username">lfs</systemitem> user to have a password),
give <systemitem class="username">lfs</systemitem> a password:</para>
<para>If you want to log in as &lfs-user; or switch to &lfs-user; from a
non-&root; user (as opposed to switching to user &lfs-user;
when logged in as &root;, which does not require the &lfs-user; user to
have a password), you need to set a password for &lfs-user;. Issue the
following command as the &root; user to set the password:</para>
<screen role="nodump"><userinput>passwd lfs</userinput></screen>
<screen role="nodump"><userinput>passwd &lfs-username;</userinput></screen>
<para>Grant <systemitem class="username">lfs</systemitem> full access to
all directories under <filename class="directory">$LFS</filename> by making
<systemitem class="username">lfs</systemitem> the directory owner:</para>
all the directories under <filename class="directory">$LFS</filename> by making
<systemitem class="username">lfs</systemitem> the owner:</para>
<screen><userinput>chown -v lfs $LFS/{usr{,/*},lib,var,etc,bin,sbin,tools}
<screen><userinput>chown -v &lfs-username; $LFS/{usr{,/*},var,etc,tools}
case $(uname -m) in
x86_64) chown -v lfs $LFS/lib64 ;;
x86_64) chown -v &lfs-username; $LFS/lib64 ;;
esac</userinput></screen>
<para>If a separate working directory was created as suggested, give
user <systemitem class="username">lfs</systemitem> ownership of this
directory:</para>
<screen><userinput>chown -v lfs $LFS/sources</userinput></screen>
<note><para>In some host systems, the following command does not complete
properly and suspends the login to the lfs user to the background. If the
prompt "lfs:~$" does not appear immediately, entering the
<note><para>In some host systems, the following <command>su</command> command does not complete
properly and suspends the login for the &lfs-user; user to the background.
If the prompt "lfs:~$" does not appear immediately, entering the
<command>fg</command> command will fix the issue.</para></note>
<para>Next, login as user <systemitem class="username">lfs</systemitem>.
This can be done via a virtual console, through a display manager, or with
the following substitute/switch user command:</para>
<para>Next, start a shell running as user &lfs-user;. This can be done by
logging in as &lfs-user; on a virtual console, or with the following
substitute/switch user command:</para>
<screen role="nodump"><userinput>su - lfs</userinput></screen>
<screen role="nodump"><userinput>su - &lfs-username;</userinput></screen>
<para>The <quote><parameter>-</parameter></quote> instructs
<command>su</command> to start a login shell as opposed to a non-login shell.
The difference between these two types of shells can be found in detail in
<filename>bash(1)</filename> and <command>info bash</command>.</para>
The difference between these two types of shells is described in detail in
<ulink role='man' url='&man;bash.1'>bash(1)</ulink> and <command>info
bash</command>.</para>
</sect1>

View File

@ -1,4 +1,4 @@
<?xml version="1.0" encoding="ISO-8859-1"?>
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
<!ENTITY % general-entities SYSTEM "../general.ent">

View File

@ -1,4 +1,4 @@
<?xml version="1.0" encoding="ISO-8859-1"?>
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE sect1 PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
<!ENTITY % general-entities SYSTEM "../general.ent">
@ -8,16 +8,17 @@
<sect1 id="ch-tools-creatingminlayout">
<?dbhtml filename="creatingminlayout.html"?>
<title>Creating a limited directory layout in LFS filesystem</title>
<title>Creating a Limited Directory Layout in the LFS Filesystem</title>
<para>The first task performed in the LFS partition is to create a limited
directory hierarchy so that programs compiled in <xref
<para>In this section, we begin populating the LFS filesystem with the
pieces that will constitute the final Linux system. The first step is to
create a limited directory hierarchy, so that the programs compiled in <xref
linkend="chapter-temporary-tools"/> (as well as glibc and libstdc++ in <xref
linkend="chapter-cross-tools"/>) may be installed in their final
location. This is needed so that those temporary programs be overwritten
when rebuilding them in <xref linkend="chapter-building-system"/>.</para>
linkend="chapter-cross-tools"/>) can be installed in their final
location. We do this so those temporary programs will be overwritten when
the final versions are built in <xref linkend="chapter-building-system"/>.</para>
<para>Create the required directory layout by running the following as
<para>Create the required directory layout by issuing the following commands as
<systemitem class="username">root</systemitem>:</para>
<screen><userinput>mkdir -pv $LFS/{etc,var} $LFS/usr/{bin,lib,sbin}
@ -30,21 +31,24 @@ case $(uname -m) in
x86_64) mkdir -pv $LFS/lib64 ;;
esac</userinput></screen>
<note>
<para>
The above command is correct. The <command>ln</command> command has
a few syntactic versions, so be sure to check
<command>info coreutils ln</command> and <filename>ln(1)</filename>
before reporting what you may think is an error.
</para>
</note>
<para>Programs in <xref linkend="chapter-temporary-tools"/> will be compiled
with a cross-compiler (more details in section <xref
linkend="ch-tools-toolchaintechnotes"/>). In order to separate this
cross-compiler from the other programs, it will be installed in a special
directory. Create this directory with:</para>
with a cross-compiler (more details can be found in section <xref
linkend="ch-tools-toolchaintechnotes"/>). This cross-compiler will be installed
in a special directory, to separate it from the other programs. Still acting as
&root;, create that directory with this command:</para>
<screen><userinput>mkdir -pv $LFS/tools</userinput></screen>
<note>
<para>
The LFS editors have deliberately decided not to use a
<filename class="directory">/usr/lib64</filename> directory. Several
steps are taken to be sure the toolchain will not use it. If for any
reason this directory appears (either because you made an error in
following the instructions, or because you installed a binary package that
created it after finishing LFS), it may break your system.
You should always be sure this directory does not exist.
</para>
</note>
</sect1>

View File

@ -1,4 +1,4 @@
<?xml version="1.0" encoding="ISO-8859-1"?>
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE sect1 PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
<!ENTITY % general-entities SYSTEM "../general.ent">
@ -12,11 +12,11 @@
<para>In this chapter, we will perform a few additional tasks to prepare
for building the temporary system. We will create a set of directories in
<filename class="directory">$LFS</filename> for the installation of the
temporary tools, add an unprivileged user to reduce risk,
<filename class="directory">$LFS</filename> (in which we will install the
temporary tools), add an unprivileged user,
and create an appropriate build environment for that user. We will also
explain the unit of time we use to measure how long LFS packages take to
build, or <quote>SBUs</quote>, and give some information about package
explain the units of time (<quote>SBUs</quote>) we use to measure how
long it takes to build LFS packages, and provide some information about package
test suites.</para>
</sect1>

View File

@ -1,4 +1,4 @@
<?xml version="1.0" encoding="ISO-8859-1"?>
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE sect1 PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
<!ENTITY % general-entities SYSTEM "../general.ent">
@ -20,7 +20,9 @@
EOF</userinput></screen>
<para>When logged on as user <systemitem class="username">lfs</systemitem>,
the initial shell is usually a <emphasis>login</emphasis> shell which reads
or when switched to the &lfs-user; user using an <command>su</command> command
with the <quote><parameter>-</parameter></quote> option,
the initial shell is a <emphasis>login</emphasis> shell which reads
the <filename>/etc/profile</filename> of the host (probably containing some
settings and environment variables) and then <filename>.bash_profile</filename>.
The <command>exec env -i.../bin/bash</command> command in the
@ -28,11 +30,10 @@ EOF</userinput></screen>
one with a completely empty environment, except for the <envar>HOME</envar>,
<envar>TERM</envar>, and <envar>PS1</envar> variables. This ensures that no
unwanted and potentially hazardous environment variables from the host system
leak into the build environment. The technique used here achieves the goal of
ensuring a clean environment.</para>
leak into the build environment.</para>
<para>The new instance of the shell is a <emphasis>non-login</emphasis>
shell, which does not read, and execute, the contents of <filename>/etc/profile</filename> or
shell, which does not read, and execute, the contents of the <filename>/etc/profile</filename> or
<filename>.bash_profile</filename> files, but rather reads, and executes, the
<filename>.bashrc</filename> file instead. Create the
<filename>.bashrc</filename> file now:</para>
@ -59,25 +60,24 @@ EOF</userinput></screen>
<para>The <command>set +h</command> command turns off
<command>bash</command>'s hash function. Hashing is ordinarily a useful
feature&mdash;<command>bash</command> uses a hash table to remember the
full path of executable files to avoid searching the <envar>PATH</envar>
full path to executable files to avoid searching the <envar>PATH</envar>
time and again to find the same executable. However, the new tools should
be used as soon as they are installed. By switching off the hash function,
the shell will always search the <envar>PATH</envar> when a program is to
be used as soon as they are installed. Switching off the hash function forces
the shell to search the <envar>PATH</envar> whenever a program is to
be run. As such, the shell will find the newly compiled tools in
<filename class="directory">$LFS/tools</filename> as soon as they are
available without remembering a previous version of the same program in a
different location.</para>
<filename class="directory">$LFS/tools/bin</filename> as soon as they are
available without remembering a previous version of the same program
provided by the host distro, in
<filename class='directory'>/usr/bin</filename> or
<filename class='directory'>/bin</filename>.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>umask 022</parameter></term>
<listitem>
<para>Setting the user file-creation mask (umask) to 022 ensures that newly
created files and directories are only writable by their owner, but are
readable and executable by anyone (assuming default modes are used by the
<function>open(2)</function> system call, new files will end up with permission
mode 644 and directories with mode 755).</para>
<para>Setting the umask as we've already explained in
<xref linkend='ch-partitioning-aboutlfs' role='.'/></para>
</listitem>
</varlistentry>
@ -96,16 +96,16 @@ EOF</userinput></screen>
programs, making their messages follow the conventions of a specified country.
Setting <envar>LC_ALL</envar> to <quote>POSIX</quote> or <quote>C</quote>
(the two are equivalent) ensures that everything will work as expected in
the chroot environment.</para>
the cross-compilation environment.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>LFS_TGT=(uname -m)-lfs-linux-gnu</parameter></term>
<term><parameter>LFS_TGT=$(uname -m)-lfs-linux-gnu</parameter></term>
<listitem>
<para>The <envar>LFS_TGT</envar> variable sets a non-default, but compatible machine
description for use when building our cross compiler and linker and when cross
compiling our temporary toolchain. More information is contained in
description for use when building our cross-compiler and linker and when
cross-compiling our temporary toolchain. More information is provided by
<xref linkend="ch-tools-toolchaintechnotes" role=""/>.</para>
</listitem>
</varlistentry>
@ -113,10 +113,10 @@ EOF</userinput></screen>
<varlistentry>
<term><parameter>PATH=/usr/bin</parameter></term>
<listitem>
<para>Many modern linux distributions have merged <filename
<para>Many modern Linux distributions have merged <filename
class="directory">/bin</filename> and <filename
class="directory">/usr/bin</filename>. When this is the case, the standard
<envar>PATH</envar> variable needs just to be set to <filename
<envar>PATH</envar> variable should be set to <filename
class="directory">/usr/bin/</filename> for the <xref
linkend="chapter-temporary-tools"/> environment. When this is not the
case, the following line adds <filename class="directory">/bin</filename>
@ -128,7 +128,7 @@ EOF</userinput></screen>
<term><parameter>if [ ! -L /bin ]; then PATH=/bin:$PATH; fi</parameter></term>
<listitem>
<para>If <filename class="directory">/bin</filename> is not a symbolic
link, then it has to be added to the <envar>PATH</envar> variable.</para>
link, it must be added to the <envar>PATH</envar> variable.</para>
</listitem>
</varlistentry>
@ -139,7 +139,7 @@ EOF</userinput></screen>
standard <envar>PATH</envar>, the cross-compiler installed at the beginning
of <xref linkend="chapter-cross-tools"/> is picked up by the shell
immediately after its installation. This, combined with turning off hashing,
limits the risk that the compiler from the host be used instead of the
limits the risk that the compiler from the host is used instead of the
cross-compiler.</para>
</listitem>
</varlistentry>
@ -159,7 +159,7 @@ EOF</userinput></screen>
<varlistentry>
<term><parameter>export ...</parameter></term>
<listitem>
<para>While the above commands have set some variables, in order
<para>While the preceding commands have set some variables, in order
to make them visible within any sub-shells, we export them.</para>
</listitem>
</varlistentry>
@ -168,7 +168,7 @@ EOF</userinput></screen>
<important>
<para>Several commercial distributions add a non-documented instantiation
<para>Several commercial distributions add an undocumented instantiation
of <filename>/etc/bash.bashrc</filename> to the initialization of
<command>bash</command>. This file has the potential to modify the
<systemitem class="username">lfs</systemitem>
@ -179,12 +179,12 @@ EOF</userinput></screen>
out of the way. As the <systemitem class="username">root</systemitem>
user, run:</para>
<screen role="nodump"><userinput>[ ! -e /etc/bash.bashrc ] || mv -v /etc/bash.bashrc /etc/bash.bashrc.NOUSE</userinput></screen>
<screen role="nodump"><userinput>[ ! -e /etc/bash.bashrc ] || mv -v /etc/bash.bashrc /etc/bash.bashrc.NOUSE</userinput></screen>
<para>After use of the <systemitem class="username">lfs</systemitem>
user is finished at the beginning of <xref
linkend="chapter-chroot-temporary-tools"/>, you can restore
<filename>/etc/bash.bashrc</filename> (if desired).</para>
<para>When the <systemitem class="username">lfs</systemitem>
user is no longer needed (at the beginning of <xref
linkend="chapter-chroot-temporary-tools"/>), you may safely restore
<filename>/etc/bash.bashrc</filename> (if desired).</para>
<para>Note that the LFS Bash package we will build in
<xref linkend="ch-system-bash"/> is not configured to load or execute
@ -192,8 +192,58 @@ EOF</userinput></screen>
completed LFS system.</para>
</important>
<para>Finally, to have the environment fully prepared for building the
temporary tools, source the just-created user profile:</para>
<para>
For many modern systems with multiple processors (or cores) the
compilation time for a package can be reduced by performing a "parallel
make" by telling the make program how many processors are available via
a command line option or an environment variable. For instance, an Intel
Core i9-13900K processor has 8 P (performance) cores and
16 E (efficiency) cores, and a P core can simultaneously run two threads
so each P core are modeled as two logical cores by the Linux kernel.
As the result there are 32 logical cores in total. One obvious way to
use all these logical cores is allowing <command>make</command> to spawn
up to 32 build jobs. This can be done by passing the
<parameter>-j32</parameter> option to <command>make</command>:
</para>
<screen role='nodump'><userinput>make -j32</userinput></screen>
<para>
Or set the <envar>MAKEFLAGS</envar> environment variable and its
content will be automatically used by <command>make</command> as
command line options:
</para>
<screen role='nodump'><userinput>export MAKEFLAGS=-j32</userinput></screen>
<important>
<para>
Never pass a <parameter>-j</parameter> option without a number to
<command>make</command> or set such an option in
<envar>MAKEFLAGS</envar>. Doing so will allow <command>make</command>
to spawn infinite build jobs and cause system stability problems.
</para>
</important>
<para>
To use all logical cores available for building packages in
<xref linkend='chapter-cross-tools'/> and
<xref linkend='chapter-temporary-tools'/>, set <envar>MAKEFLAGS</envar>
now in <filename>.bashrc</filename>:
</para>
<screen><userinput>cat &gt;&gt; ~/.bashrc &lt;&lt; "EOF"
<literal>export MAKEFLAGS=-j<replaceable>$(nproc)</replaceable></literal>
EOF</userinput></screen>
<para>
Replace <replaceable>$(nproc)</replaceable> with the number of logical
cores you want to use if you don't want to use all the logical cores.
</para>
<para>Finally, to ensure the environment is fully prepared for building the
temporary tools, force the <command>bash</command> shell to read
the new user profile:</para>
<screen><userinput>source ~/.bash_profile</userinput></screen>

View File

@ -1,11 +1,11 @@
<?xml version="1.0" encoding="ISO-8859-1"?>
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE sect1 PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
<!ENTITY % general-entities SYSTEM "../general.ent">
%general-entities;
]>
<sect1 id="ch-tools-binutils-pass1" role="wrap">
<sect1 id="ch-tools-binutils-pass1" role="wrap" xreflabel="binutils-pass1">
<?dbhtml filename="binutils-pass1.html"?>
<sect1info condition="script">
@ -53,7 +53,7 @@
linker and assembler to determine which of their own features to
enable.</para>
<para>The Binutils documentation recommends building Binutils
<para>The Binutils documentation recommends building Binutils
in a dedicated build directory:</para>
<screen><userinput remap="pre">mkdir -v build
@ -74,7 +74,10 @@ cd build</userinput></screen>
--with-sysroot=$LFS \
--target=$LFS_TGT \
--disable-nls \
--disable-werror</userinput></screen>
--enable-gprofng=no \
--disable-werror \
--enable-new-dtags \
--enable-default-hash-style=gnu</userinput></screen>
<variablelist>
<title>The meaning of the configure options:</title>
@ -83,7 +86,7 @@ cd build</userinput></screen>
<term><parameter>--prefix=$LFS/tools</parameter></term>
<listitem>
<para>This tells the configure script to prepare to install the
binutils programs in the <filename
Binutils programs in the <filename
class="directory">$LFS/tools</filename> directory.</para>
</listitem>
</varlistentry>
@ -115,6 +118,14 @@ cd build</userinput></screen>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>--enable-gprofng=no</parameter></term>
<listitem>
<para>This disables building gprofng which is not needed for the
temporary tools.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>--disable-werror</parameter></term>
<listitem>
@ -123,6 +134,33 @@ cd build</userinput></screen>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>--enable-new-dtags</parameter></term>
<listitem>
<para>This makes the linker use the <quote>runpath</quote> tag for
embedding library search paths into executables and shared libraries,
instead of the traditional <quote>rpath</quote> tag. It makes
debugging dynamically linked executables easier and works around
potential issues in the test suite of some packages.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>--enable-default-hash-style=gnu</parameter></term>
<listitem>
<para>By default, the linker would generate both the GNU-style
hash table and the classic ELF hash table for shared libraries and
dynamically linked executables. The hash tables are only intended
for a dynamic linker to perform symbol lookup. On LFS the dynamic
linker (provided by the Glibc package) will always use the
GNU-style hash table which is faster to query. So the classic
ELF hash table is completely useless. This makes the linker
only generate the GNU-style hash table by default, so we can avoid
wasting time to generate the classic ELF hash table when we build
the packages, or wasting disk space to store it.</para>
</listitem>
</varlistentry>
</variablelist>
<para>Continue with compiling the package:</para>
@ -131,20 +169,7 @@ cd build</userinput></screen>
<para>Install the package:</para>
<screen><userinput remap="install">make install -j1</userinput></screen>
<variablelist>
<title>The meaning of the make parameter:</title>
<varlistentry>
<term><parameter>-j1</parameter></term>
<listitem>
<para>An issue in the building system may cause the installation
to fail with <option>-j N</option> in <envar>MAKEFLAGS</envar>.
Override it to workaround this issue.</para>
</listitem>
</varlistentry>
</variablelist>
<screen><userinput remap="install">make install</userinput></screen>
</sect2>

View File

@ -1,4 +1,4 @@
<?xml version="1.0" encoding="ISO-8859-1"?>
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
<!ENTITY % general-entities SYSTEM "../general.ent">

View File

@ -1,4 +1,4 @@
<?xml version="1.0" encoding="ISO-8859-1"?>
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE sect1 PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
<!ENTITY % general-entities SYSTEM "../general.ent">
@ -50,9 +50,9 @@
use them:</para>
<note><para>There are frequent misunderstandings about this chapter. The
procedures are the same as every other chapter as explained earlier (<xref
linkend='buildinstr'/>). First extract the gcc tarball from the sources
directory and then change to the directory created. Only then should you
procedures are the same as every other chapter, as explained earlier (<xref
linkend='buildinstr'/>). First, extract the gcc-&gcc-version; tarball from the sources
directory, and then change to the directory created. Only then should you
proceed with the instructions below.</para></note>
<screen><userinput remap="pre">tar -xf ../mpfr-&mpfr-version;.tar.xz
@ -72,7 +72,7 @@ mv -v mpc-&mpc-version; mpc</userinput></screen>
;;
esac</userinput></screen>
<para>The GCC documentation recommends building GCC
<para>The GCC documentation recommends building GCC
in a dedicated build directory:</para>
<screen><userinput remap="pre">mkdir -v build
@ -80,35 +80,37 @@ cd build</userinput></screen>
<para>Prepare GCC for compilation:</para>
<screen><userinput remap="configure">../configure \
--target=$LFS_TGT \
--prefix=$LFS/tools \
--with-glibc-version=2.11 \
--with-sysroot=$LFS \
--with-newlib \
--without-headers \
--enable-initfini-array \
--disable-nls \
--disable-shared \
--disable-multilib \
--disable-decimal-float \
--disable-threads \
--disable-libatomic \
--disable-libgomp \
--disable-libquadmath \
--disable-libssp \
--disable-libvtv \
--disable-libstdcxx \
<screen><userinput remap="configure">../configure \
--target=$LFS_TGT \
--prefix=$LFS/tools \
--with-glibc-version=&glibc-version; \
--with-sysroot=$LFS \
--with-newlib \
--without-headers \
--enable-default-pie \
--enable-default-ssp \
--disable-nls \
--disable-shared \
--disable-multilib \
--disable-threads \
--disable-libatomic \
--disable-libgomp \
--disable-libquadmath \
--disable-libssp \
--disable-libvtv \
--disable-libstdcxx \
--enable-languages=c,c++</userinput></screen>
<variablelist>
<title>The meaning of the configure options:</title>
<varlistentry>
<term><parameter>--with-glibc-version=2.11</parameter></term>
<term><parameter>--with-glibc-version=&glibc-version;</parameter></term>
<listitem>
<para>This option ensures the package will be compatible with the host's
version of glibc. It is set to the minimum glibc requirement
specified in the <xref linkend="ch-partitioning-hostreqs"/>.</para>
<para>This option specifies the version of Glibc which will be
used on the target. It is not relevant to the libc of the host
distro because everything compiled by pass1 GCC will run in the
chroot environment, which is isolated from libc of the host
distro.</para>
</listitem>
</varlistentry>
@ -132,11 +134,16 @@ cd build</userinput></screen>
</varlistentry>
<varlistentry>
<term><parameter>--enable-initfini-array</parameter></term>
<term><parameter>--enable-default-pie and
--enable-default-ssp</parameter></term>
<listitem>
<para>This switch forces the use of some internal data structures
that are needed but cannot be detected when building a cross
compiler.</para>
<para>Those switches allow GCC to compile programs with
some hardening security features (more information on those in
the <xref linkend="pie-ssp-info"/> in chapter 8) by default. They
are not strictly needed at this stage, since the compiler will
only produce temporary executables. But it is cleaner to have the
temporary packages be as close as possible to the final ones.
</para>
</listitem>
</varlistentry>
@ -144,7 +151,7 @@ cd build</userinput></screen>
<term><parameter>--disable-shared</parameter></term>
<listitem>
<para>This switch forces GCC to link its internal libraries
statically. We need this because the shared libraries require glibc,
statically. We need this because the shared libraries require Glibc,
which is not yet installed on the target system.</para>
</listitem>
</varlistentry>
@ -158,15 +165,15 @@ cd build</userinput></screen>
</varlistentry>
<varlistentry>
<term><parameter>--disable-decimal-float, --disable-threads,
--disable-libatomic, --disable-libgomp,
<term><parameter>--disable-threads,
--disable-libatomic, --disable-libgomp,
--disable-libquadmath, --disable-libssp, --disable-libvtv,
--disable-libstdcxx</parameter></term>
<listitem>
<para>These switches disable support for the decimal floating point
extension, threading, libatomic, libgomp, libquadmath, libssp,
<para>These switches disable support for
threading, libatomic, libgomp, libquadmath, libssp,
libvtv, and the C++ standard library respectively. These features
will fail to compile when building a cross-compiler and are not
may fail to compile when building a cross-compiler and are not
necessary for the task of cross-compiling the temporary libc.</para>
</listitem>
</varlistentry>
@ -196,14 +203,22 @@ cd build</userinput></screen>
time of this build of GCC <filename>$LFS/usr/include/limits.h</filename>
does not exist, so the internal header that has just been installed is a
partial, self-contained file and does not include the extended features of
the system header. This is adequate for building glibc, but the full
the system header. This is adequate for building Glibc, but the full
internal header will be needed later. Create a full version of the internal
header using a command that is identical to what the GCC build system does
in normal circumstances:</para>
<note>
<para>The command below shows an example of nested command substitution
using two methods: backquotes and a <literal>$()</literal> construct.
It could be rewritten using the same method for both substitutions,
but is shown this way to demonstrate how they can be mixed. Generally
the <literal>$()</literal> method is preferred.</para>
</note>
<screen><userinput remap="install">cd ..
cat gcc/limitx.h gcc/glimits.h gcc/limity.h > \
`dirname $($LFS_TGT-gcc -print-libgcc-file-name)`/install-tools/include/limits.h</userinput></screen>
`dirname $($LFS_TGT-gcc -print-libgcc-file-name)`/include/limits.h</userinput></screen>
</sect2>
<sect2 role="content">

View File

@ -1,4 +1,4 @@
<?xml version="1.0" encoding="ISO-8859-1"?>
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE sect1 PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
<!ENTITY % general-entities SYSTEM "../general.ent">
@ -55,21 +55,31 @@
;;
esac</userinput></screen>
<para>Some of the Glibc programs use the non-FHS compliant
<note>
<para>
The above command is correct. The <command>ln</command> command has
several syntactic versions, so be sure to check
<command>info coreutils ln</command> and <ulink role='man'
url='&man;ln.1'>ln(1)</ulink> before reporting what may appear to be
an error.
</para>
</note>
<para>Some of the Glibc programs use the non-FHS-compliant
<filename class="directory">/var/db</filename> directory to store their
runtime data. Apply the following patch to make such programs store their
runtime data in the FHS-compliant locations:</para>
<screen><userinput remap="pre">patch -Np1 -i ../glibc-&glibc-version;-fhs-1.patch</userinput></screen>
<para>The Glibc documentation recommends building Glibc
<para>The Glibc documentation recommends building Glibc
in a dedicated build directory:</para>
<screen><userinput remap="pre">mkdir -v build
cd build</userinput></screen>
<para>Ensure that the <command>ldconfig</command> and <command>sln</command>
utilites are installed into
utilities are installed into
<filename class="directory">/usr/sbin</filename>:</para>
<screen><userinput remap="pre">echo "rootsbindir=/usr/sbin" &gt; configparms</userinput></screen>
@ -80,9 +90,9 @@ cd build</userinput></screen>
--prefix=/usr \
--host=$LFS_TGT \
--build=$(../scripts/config.guess) \
--enable-kernel=&min-kernel; \
--with-headers=$LFS/usr/include \
libc_cv_slibdir=/usr/lib</userinput></screen>
--disable-nscd \
libc_cv_slibdir=/usr/lib \
--enable-kernel=&min-kernel;</userinput></screen>
<variablelist>
<title>The meaning of the configure options:</title>
@ -106,20 +116,18 @@ cd build</userinput></screen>
</varlistentry>
<varlistentry>
<term><parameter>--with-headers=$LFS/usr/include</parameter></term>
<term><parameter>libc_cv_slibdir=/usr/lib</parameter></term>
<listitem>
<para>This tells Glibc to compile itself against the headers
recently installed to the $LFS/usr/include directory, so that
it knows exactly what features the kernel has and can optimize
itself accordingly.</para>
<para>This ensures that the library is installed in /usr/lib instead
of the default /lib64 on 64-bit machines.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>libc_cv_slibdir=/usr/lib</parameter></term>
<term><parameter>--disable-nscd</parameter></term>
<listitem>
<para>This ensures that the library is installed in /usr/lib instead
of the default /lib64 on 64 bit machines.</para>
<para>Do not build the name service cache daemon which is no
longer used.</para>
</listitem>
</varlistentry>
@ -137,11 +145,11 @@ cd build</userinput></screen>
<para>The missing or incompatible <command>msgfmt</command> program is
generally harmless. This <command>msgfmt</command> program is part of the
Gettext package which the host distribution should provide.</para>
Gettext package, which the host distribution should provide.</para>
<note><para>There have been reports that this package may fail when
building as a "parallel make". If this occurs, rerun the make command
with a "-j1" option.</para></note>
<note><para>There have been reports that this package may fail when
building as a <quote>parallel make.</quote> If that occurs, rerun the make command
with the <option>-j1</option> option.</para></note>
<para>Compile the package:</para>
@ -152,9 +160,9 @@ cd build</userinput></screen>
<warning><para>If <envar>LFS</envar> is not properly set, and despite the
recommendations, you are building as
<systemitem class="username">root</systemitem>, the next command will
install the newly built glibc to your host system, which most likely
will render it unusable. So double check that the environment is
correctly set, before running the following command.</para></warning>
install the newly built Glibc to your host system, which will almost
certainly render it unusable. So double-check that the environment is
correctly set, and that you are not &root;, before running the following command.</para></warning>
<screen><userinput remap="install">make DESTDIR=$LFS install</userinput></screen>
@ -168,59 +176,124 @@ cd build</userinput></screen>
packages to define the location where the package should be
installed. If it is not set, it defaults to the root (<filename
class="directory">/</filename>) directory. Here we specify that
the package be installed in <filename class="directory">$LFS
</filename>, which will become the root after <xref linkend=
"ch-tools-chroot"/>.</para>
the package is installed in <filename class="directory">
$LFS</filename>, which will become the root directory in <xref linkend=
"ch-tools-chroot" role='.'/></para>
</listitem>
</varlistentry>
</variablelist>
<para>Fix hardcoded path to the executable loader in
<para>Fix a hard coded path to the executable loader in the
<command>ldd</command> script:</para>
<screen><userinput remap="install">sed '/RTLDLIST=/s@/usr@@g' -i $LFS/usr/bin/ldd</userinput></screen>
<caution>
<para>At this point, it is imperative to stop and ensure that the basic
functions (compiling and linking) of the new toolchain are working as
expected. To perform a sanity check, run the following commands:</para>
<para>Now that our cross toolchain is in place, it is important to ensure
that compiling and linking will work as expected. We do this by performing
some sanity checks:</para>
<screen><userinput>echo 'int main(){}' &gt; dummy.c
$LFS_TGT-gcc dummy.c
readelf -l a.out | grep '/ld-linux'</userinput></screen>
<screen><userinput>echo 'int main(){}' | $LFS_TGT-gcc -x c - -v -Wl,--verbose &amp;&gt; dummy.log
readelf -l a.out | grep ': /lib'</userinput></screen>
<para>If everything is working correctly, there should be no errors,
and the output of the last command will be of the form:</para>
<para>There should be no errors,
and the output of the last command will be (allowing for
platform-specific differences in the dynamic linker name):</para>
<screen><computeroutput>[Requesting program interpreter: /lib64/ld-linux-x86-64.so.2]</computeroutput></screen>
<para>Note that for 32-bit machines, the interpreter name will be
<filename>/lib/ld-linux.so.2</filename>.</para>
<para>Note that this path should not contain
<filename class='directory'>/mnt/lfs</filename> (or the value of
the <envar>LFS</envar> variable if you used a different one). The path is
resolved when the compiled program is executed, and that should only happen
after we enter the chroot environment where the kernel would consider
<filename class='directory'>$LFS</filename> as the root directory
(<filename class='directory'>/</filename>).</para>
<para>If the output is not shown as above or there was no output at all,
then something is wrong. Investigate and retrace the steps to find out
where the problem is and correct it. This issue must be resolved before
continuing on.</para>
<para>Now make sure that we're set up to use the correct start files:</para>
<para>Once all is well, clean up the test files:</para>
<screen><userinput>grep -E -o "$LFS/lib.*/S?crt[1in].*succeeded" dummy.log</userinput></screen>
<screen><userinput>rm -v dummy.c a.out</userinput></screen>
<para>The output of the last command should be:</para>
</caution>
<screen><computeroutput>/mnt/lfs/lib/../lib/Scrt1.o succeeded
/mnt/lfs/lib/../lib/crti.o succeeded
/mnt/lfs/lib/../lib/crtn.o succeeded</computeroutput></screen>
<note><para>Building packages in the next chapter will serve as an
<para>Verify that the compiler is searching for the correct header
files:</para>
<screen><userinput>grep -B3 "^ $LFS/usr/include" dummy.log</userinput></screen>
<para>This command should return the following output:</para>
<screen><computeroutput>#include &lt;...&gt; search starts here:
/mnt/lfs/tools/lib/gcc/x86_64-lfs-linux-gnu/&gcc-version;/include
/mnt/lfs/tools/lib/gcc/x86_64-lfs-linux-gnu/&gcc-version;/include-fixed
/mnt/lfs/usr/include</computeroutput></screen>
<para>Again, the directory named after your target triplet may be
different than the above, depending on your system architecture.</para>
<para>Next, verify that the new linker is being used with the correct search paths:</para>
<screen><userinput>grep 'SEARCH.*/usr/lib' dummy.log |sed 's|; |\n|g'</userinput></screen>
<para>References to paths that have components with '-linux-gnu' should
be ignored, but otherwise the output of the last command should be:</para>
<screen><computeroutput>SEARCH_DIR("=/mnt/lfs/tools/x86_64-lfs-linux-gnu/lib64")
SEARCH_DIR("=/usr/local/lib64")
SEARCH_DIR("=/lib64")
SEARCH_DIR("=/usr/lib64")
SEARCH_DIR("=/mnt/lfs/tools/x86_64-lfs-linux-gnu/lib")
SEARCH_DIR("=/usr/local/lib")
SEARCH_DIR("=/lib")
SEARCH_DIR("=/usr/lib");</computeroutput></screen>
<para>A 32-bit system may use a few other directories, but anyway
the important facet here is all the paths should begin with an equal sign
(<literal>=</literal>), which would be replaced with the sysroot
directory that we've configured for the linker.</para>
<para>Next make sure that we're using the correct libc:</para>
<screen><userinput>grep "/lib.*/libc.so.6 " dummy.log</userinput></screen>
<para>The output of the last command should be:</para>
<screen><computeroutput>attempt to open /mnt/lfs/usr/lib/libc.so.6 succeeded</computeroutput></screen>
<para>Make sure GCC is using the correct dynamic linker:</para>
<screen><userinput>grep found dummy.log</userinput></screen>
<para>The output of the last command should be (allowing for
platform-specific differences in dynamic linker name):</para>
<screen><computeroutput>found ld-linux-x86-64.so.2 at /mnt/lfs/usr/lib/ld-linux-x86-64.so.2</computeroutput></screen>
<para>If the output does not appear as shown above or is not received
at all, then something is seriously wrong. Investigate and retrace the
steps to find out where the problem is and correct it. Any
issues should be resolved before continuing with the process.</para>
<para>Once everything is working correctly, clean up the test files:</para>
<screen><userinput>rm -v a.out dummy.log</userinput></screen>
<note><para>Building the packages in the next chapter will serve as an
additional check that the toolchain has been built properly. If some
package, especially binutils-pass2 or gcc-pass2, fails to build, it is
package, especially Binutils-pass2 or GCC-pass2, fails to build, it is
an indication that something has gone wrong with the
previous Binutils, GCC, or Glibc installations.</para></note>
preceding Binutils, GCC, or Glibc installations.</para></note>
<!--
<para>Now that our cross-toolchain is complete, finalize the installation
of the limits.h header. For doing so, run a utility provided by the GCC
of the limits.h header. To do this, run a utility provided by the GCC
developers:</para>
<screen><userinput>$LFS/tools/libexec/gcc/$LFS_TGT/&gcc-version;/install-tools/mkheaders</userinput></screen>
-->
</sect2>
<sect2 role="content">

View File

@ -1,4 +1,4 @@
<?xml version="1.0" encoding="ISO-8859-1"?>
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE sect1 PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
<!ENTITY % general-entities SYSTEM "../general.ent">

View File

@ -1,12 +1,12 @@
<?xml version="1.0" encoding="ISO-8859-1"?>
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE sect1 PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
<!ENTITY % general-entities SYSTEM "../general.ent">
%general-entities;
]>
<sect1 id="ch-tools-libstdcpp-pass1" role="wrap">
<?dbhtml filename="gcc-libstdc++-pass1.html"?>
<sect1 id="ch-tools-libstdcpp" role="wrap">
<?dbhtml filename="gcc-libstdc++.html"?>
<sect1info condition="script">
<productname>gcc-libstdc++</productname>
@ -14,9 +14,9 @@
<address>&gcc-url;</address>
</sect1info>
<title>Libstdc++ from GCC-&gcc-version;, Pass 1</title>
<title>Libstdc++ from GCC-&gcc-version;</title>
<indexterm zone="ch-tools-libstdcpp-pass1">
<indexterm zone="ch-tools-libstdcpp">
<primary sortas="a-GCC">GCC</primary>
<secondary>tools, libstdc++ pass 1</secondary>
</indexterm>
@ -24,11 +24,11 @@
<sect2 role="package">
<title/>
<para>Libstdc++ is the standard C++ library. It is needed
<para>Libstdc++ is the standard C++ library. It is needed
to compile C++ code
(part of GCC is written in C++), but we had to defer its installation
when we built <xref linkend="ch-tools-gcc-pass1"/>
because it depends on glibc, which was not yet available in the target
because Libstdc++ depends on Glibc, which was not yet available in the target
directory.
</para>
@ -53,20 +53,20 @@
<filename>gcc-&gcc-version;</filename> directory.</para>
</note>
<para>Create a separate build directory for libstdc++ and enter it:</para>
<para>Create a separate build directory for Libstdc++ and enter it:</para>
<screen><userinput remap="pre">mkdir -v build
cd build</userinput></screen>
<para>Prepare libstdc++ for compilation:</para>
<para>Prepare Libstdc++ for compilation:</para>
<screen><userinput remap="configure">../libstdc++-v3/configure \
--host=$LFS_TGT \
--build=$(../config.guess) \
--prefix=/usr \
--disable-multilib \
--disable-nls \
--disable-libstdcxx-pch \
<screen><userinput remap="configure">../libstdc++-v3/configure \
--host=$LFS_TGT \
--build=$(../config.guess) \
--prefix=/usr \
--disable-multilib \
--disable-nls \
--disable-libstdcxx-pch \
--with-gxx-include-dir=/tools/$LFS_TGT/include/c++/&gcc-version;</userinput></screen>
<variablelist>
@ -75,7 +75,7 @@ cd build</userinput></screen>
<varlistentry>
<term><parameter>--host=...</parameter></term>
<listitem>
<para>Specifies that the cross compiler we have just built
<para>Specifies that the cross-compiler we have just built
should be used instead of the one in
<filename>/usr/bin</filename>.</para>
</listitem>
@ -92,17 +92,28 @@ cd build</userinput></screen>
<varlistentry>
<term><parameter>--with-gxx-include-dir=/tools/$LFS_TGT/include/c++/&gcc-version;</parameter></term>
<listitem>
<para>This is the location where the C++ compiler should search for the
standard include files. In a normal build, this information
is automatically passed to the libstdc++ <command>configure</command>
<para>This specifies the installation directory for include files.
Because Libstdc++ is the standard C++ library for LFS, this
directory should match the location where the C++ compiler
(<command>$LFS_TGT-g++</command>) would search for the
standard C++ include files. In a normal build, this information
is automatically passed to the Libstdc++ <command>configure</command>
options from the top level directory. In our case, this information
must be explicitly given.</para>
must be explicitly given.
The C++ compiler will prepend the sysroot path
<filename class="directory">$LFS</filename> (specified when building
GCC-pass1) to the include file search path, so it will actually
search in
<filename class="directory">$LFS/tools/$LFS_TGT/include/c++/&gcc-version;</filename>.
The combination of the <parameter>DESTDIR</parameter>
variable (in the <command>make install</command> command below)
and this switch causes the headers to be installed there.</para>
</listitem>
</varlistentry>
</variablelist>
<para>Compile libstdc++ by running:</para>
<para>Compile Libstdc++ by running:</para>
<screen><userinput remap="make">make</userinput></screen>
@ -110,6 +121,11 @@ cd build</userinput></screen>
<screen><userinput remap="install">make DESTDIR=$LFS install</userinput></screen>
<para>Remove the libtool archive files because they are harmful for
cross-compilation:</para>
<screen><userinput remap="install">rm -v $LFS/usr/lib/lib{stdc++{,exp,fs},supc++}.la</userinput></screen>
</sect2>
<sect2 role="content">

View File

@ -1,4 +1,4 @@
<?xml version="1.0" encoding="ISO-8859-1"?>
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE sect1 PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
<!ENTITY % general-entities SYSTEM "../general.ent">
@ -59,8 +59,7 @@
location.</para>
<screen><userinput remap="make">make headers
find usr/include -name '.*' -delete
rm usr/include/Makefile
find usr/include -type f ! -name '*.h' -delete
</userinput><userinput remap="install">cp -rv usr/include $LFS/usr</userinput></screen>
</sect2>
@ -75,12 +74,12 @@ rm usr/include/Makefile
<seglistitem>
<seg>/usr/include/asm/*.h, /usr/include/asm-generic/*.h,
/usr/include/drm/*.h, /usr/include/linux/*.h, /usr/include/misc/*.h,
/usr/include/mtd/*.h, /usr/include/rdma/*.h, /usr/include/scsi/*.h,
/usr/include/sound/*.h, /usr/include/video/*.h,
/usr/include/mtd/*.h, /usr/include/rdma/*.h, /usr/include/scsi/*.h,
/usr/include/sound/*.h, /usr/include/video/*.h,
and /usr/include/xen/*.h</seg>
<seg>/usr/include/asm, /usr/include/asm-generic, /usr/include/drm,
/usr/include/linux, /usr/include/misc, /usr/include/mtd,
/usr/include/rdma, /usr/include/scsi, /usr/include/sound,
/usr/include/linux, /usr/include/misc, /usr/include/mtd,
/usr/include/rdma, /usr/include/scsi, /usr/include/sound,
/usr/include/video, and /usr/include/xen</seg>
</seglistitem>
</segmentedlist>

View File

@ -1,4 +1,4 @@
<?xml version="1.0" encoding="ISO-8859-1"?>
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE sect1 PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
<!ENTITY % general-entities SYSTEM "../general.ent">
@ -42,12 +42,16 @@
<sect2 role="installation">
<title>Installation of Bash</title>
<!--
<para>First, fix a problem related to cross compilation and gcc-15:</para>
<screen><userinput remap="pre">patch -Np1 -i ../&bash-crosscompile-fix-patch;</userinput></screen>
-->
<para>Prepare Bash for compilation:</para>
<screen><userinput remap="configure">./configure --prefix=/usr \
--build=$(support/config.guess) \
--host=$LFS_TGT \
<screen><userinput remap="configure">./configure --prefix=/usr \
--build=$(sh support/config.guess) \
--host=$LFS_TGT \
--without-bash-malloc</userinput></screen>
<variablelist>

View File

@ -1,4 +1,4 @@
<?xml version="1.0" encoding="ISO-8859-1"?>
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE sect1 PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
<!ENTITY % general-entities SYSTEM "../general.ent">
@ -43,6 +43,20 @@
<sect2 role="installation">
<title>Installation of Binutils</title>
<!-- Don't remove this until Binutils upstream resolves this issue.
We can test by building Binutils on a complete system with
zlib (libz.so) installed, passing enable-shared and
without-system-zlib. If the resulted libctf.so still links against
libz.so (check with readelf -d) despite we are saying
without-system-zlib, then the issue is still unresolved. -->
<para>Binutils building system relies on an shipped libtool copy to link against
internal static libraries, but the libiberty and zlib copies shipped
in the package do not use libtool. This inconsistency may cause
produced binaries mistakenly linked against libraries from the host
distro. Work around this issue:</para>
<screen><userinput remap="pre">sed '6031s/$add_dir//' -i ltmain.sh</userinput></screen>
<para>Create a separate build directory again:</para>
<screen><userinput remap="pre">mkdir -v build
@ -56,8 +70,11 @@ cd build</userinput></screen>
--host=$LFS_TGT \
--disable-nls \
--enable-shared \
--enable-gprofng=no \
--disable-werror \
--enable-64-bit-bfd</userinput></screen>
--enable-64-bit-bfd \
--enable-new-dtags \
--enable-default-hash-style=gnu</userinput></screen>
<variablelist>
<title>The meaning of the new configure options:</title>
@ -74,8 +91,8 @@ cd build</userinput></screen>
<varlistentry>
<term><parameter>--enable-64-bit-bfd</parameter></term>
<listitem>
<para>Enables 64-bit support (on hosts with narrower word sizes).
May not be needed on 64-bit systems, but does no harm.</para>
<para>Enables 64-bit support (on hosts with smaller word sizes).
This may not be needed on 64-bit systems, but it does no harm.</para>
</listitem>
</varlistentry>
@ -85,13 +102,14 @@ cd build</userinput></screen>
<screen><userinput remap="make">make</userinput></screen>
<para>Install the package, and
workaround an issue causing
<filename class="libraryfile">libctf.so</filename>
to link against zlib from the host distribution:</para>
<para>Install the package:</para>
<screen><userinput remap="install">make DESTDIR=$LFS install -j1
install -vm755 libctf/.libs/libctf.so.0.0.0 $LFS/usr/lib</userinput></screen>
<screen><userinput remap="install">make DESTDIR=$LFS install</userinput></screen>
<para>Remove the libtool archive files because they are harmful for
cross compilation, and remove unnecessary static libraries:</para>
<screen><userinput remap="install">rm -v $LFS/usr/lib/lib{bfd,ctf,ctf-nobfd,opcodes,sframe}.{a,la}</userinput></screen>
</sect2>

View File

@ -1,4 +1,4 @@
<?xml version="1.0" encoding="ISO-8859-1"?>
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
<!ENTITY % general-entities SYSTEM "../general.ent">

View File

@ -1,4 +1,4 @@
<?xml version="1.0" encoding="ISO-8859-1"?>
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE sect1 PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
<!ENTITY % general-entities SYSTEM "../general.ent">
@ -62,6 +62,7 @@
Perl test suite.</para>
</listitem>
</varlistentry>
</variablelist>
<para>Compile the package:</para>
@ -81,12 +82,12 @@
-->
<para>Move programs to their final expected locations. Although this is
not necessary in this temporary environment, we must do so because some
programs harcode executable locations:</para>
programs hardcode executable locations:</para>
<screen><userinput remap="install">mv -v $LFS/usr/bin/chroot $LFS/usr/sbin
<screen><userinput remap="install">mv -v $LFS/usr/bin/chroot $LFS/usr/sbin
mkdir -pv $LFS/usr/share/man/man8
mv -v $LFS/usr/share/man/man1/chroot.1 $LFS/usr/share/man/man8/chroot.8
sed -i 's/"1"/"8"/' $LFS/usr/share/man/man8/chroot.8</userinput></screen>
mv -v $LFS/usr/share/man/man1/chroot.1 $LFS/usr/share/man/man8/chroot.8
sed -i 's/"1"/"8"/' $LFS/usr/share/man/man8/chroot.8</userinput></screen>
</sect2>

View File

@ -1,4 +1,4 @@
<?xml version="1.0" encoding="ISO-8859-1"?>
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE sect1 PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
<!ENTITY % general-entities SYSTEM "../general.ent">
@ -45,7 +45,37 @@
<para>Prepare Diffutils for compilation:</para>
<screen><userinput remap="configure">./configure --prefix=/usr --host=$LFS_TGT</userinput></screen>
<screen><userinput remap="configure">./configure --prefix=/usr \
--host=$LFS_TGT \
gl_cv_func_strcasecmp_works=y \
--build=$(./build-aux/config.guess)</userinput></screen>
<variablelist>
<title>The meaning of the configure options:</title>
<varlistentry>
<!-- https://git.savannah.gnu.org/cgit/gnulib.git/commit/?id=d9083a4cc638cf9c7dfc3cc534a7c6b4debf50ab -->
<term><parameter>gl_cv_func_strcasecmp_works=y</parameter></term>
<listitem>
<para>This option specify the result of a check for the
<function>strcasecmp</function>. The check requires running a
compiled C program, and this is impossible during
cross-compilation because in general a cross-compiled program
cannot run on the host distro. Normally for such a check the
<command>configure</command> script would use a fall-back value
for cross-compilation, but the fall-back value for this check is
absent and the <command>configure</command> script would have no
value to use and error out. The upstream has already fixed the
issue, but to apply the fix we'd need to run
<command>autoconf</command> that the host distro may lack. So
we just specify the check result (<literal>y</literal> as we know
the <function>strcasecmp</function> function in
Glibc-&glibc-version; works fine) instead, then
<command>configure</command> will just use the specified value and
skip the check.</para>
</listitem>
</varlistentry>
</variablelist>
<para>Compile the package:</para>

View File

@ -1,4 +1,4 @@
<?xml version="1.0" encoding="ISO-8859-1"?>
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE sect1 PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
<!ENTITY % general-entities SYSTEM "../general.ent">
@ -44,9 +44,10 @@
<title>Installation of File</title>
<para>
The <command>file</command> command on the build host needs
to be same version as the one we are building in order to
create the signature file. Run the following commands to build it:
The <command>file</command> command on the build host needs
to be the same version as the one we are building in order to
create the signature file. Run the following commands to make a
temporary copy of the <command>file</command> command:
</para>
<screen><userinput remap="pre">mkdir build
@ -77,11 +78,6 @@ popd</userinput></screen>
<screen><userinput remap="configure">./configure --prefix=/usr --host=$LFS_TGT --build=$(./config.guess)</userinput></screen>
<!-- devs: if using - -build here, the build system wants to compile
the signature file with "file" on the build system, but stops if it is not
the same version. One possibility would be to build "file" on the build
system first, but it is simpler to have the system think it is not
cross-compiling, and use the just built "file". -->
<para>Compile the package:</para>
<screen><userinput remap="make">make FILE_COMPILE=$(pwd)/build/src/file</userinput></screen>
@ -90,6 +86,11 @@ popd</userinput></screen>
<screen><userinput remap="install">make DESTDIR=$LFS install</userinput></screen>
<para>Remove the libtool archive file because it is harmful for cross
compilation:</para>
<screen><userinput remap="install">rm -v $LFS/usr/lib/libmagic.la</userinput></screen>
</sect2>
<sect2 role="content">

View File

@ -1,4 +1,4 @@
<?xml version="1.0" encoding="ISO-8859-1"?>
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE sect1 PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
<!ENTITY % general-entities SYSTEM "../general.ent">

View File

@ -1,4 +1,4 @@
<?xml version="1.0" encoding="ISO-8859-1"?>
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE sect1 PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
<!ENTITY % general-entities SYSTEM "../general.ent">
@ -51,7 +51,7 @@
<screen><userinput remap="configure">./configure --prefix=/usr \
--host=$LFS_TGT \
--build=$(./config.guess)</userinput></screen>
--build=$(build-aux/config.guess)</userinput></screen>
<para>Compile the package:</para>

View File

@ -1,4 +1,4 @@
<?xml version="1.0" encoding="ISO-8859-1"?>
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE sect1 PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
<!ENTITY % general-entities SYSTEM "../general.ent">
@ -42,10 +42,13 @@
<sect2 role="installation">
<title>Installation of GCC</title>
<!--
<para>First fix a problem with the latest version of glibc:</para>
<screen><userinput remap="pre">patch -Np1 -i ../&gcc-upstream-fixes-patch;</userinput></screen>
-->
<para>As in the first build of GCC, the GMP, MPFR, and MPC packages are
required. Unpack the tarballs and move them into the required directory
names:</para>
required. Unpack the tarballs and move them into the required directories:</para>
<screen><userinput remap="pre">tar -xf ../mpfr-&mpfr-version;.tar.xz
mv -v mpfr-&mpfr-version; mpfr
@ -59,71 +62,98 @@ mv -v mpc-&mpc-version; mpc</userinput></screen>
<screen><userinput remap="pre">case $(uname -m) in
x86_64)
sed -e '/m64=/s/lib64/lib/' -i.orig gcc/config/i386/t-linux64
sed -e '/m64=/s/lib64/lib/' \
-i.orig gcc/config/i386/t-linux64
;;
esac</userinput></screen>
<!--
<para>Fix an issue with GCC-10.1 when building with a cross
compiler:</para>
<screen><userinput remap="pre">patch -Np1 -i ../&gcc-cross-patch;</userinput></screen>
-->
<para>Override the building rule of libgcc and libstdc++ headers, to
allow building these libraries with POSIX threads support:</para>
<screen><userinput remap="pre">sed '/thread_header =/s/@.*@/gthr-posix.h/' \
-i libgcc/Makefile.in libstdc++-v3/include/Makefile.in</userinput></screen>
<para>Create a separate build directory again:</para>
<screen><userinput remap="pre">mkdir -v build
cd build</userinput></screen>
<para>Create a symlink that allows libgcc to be built with posix threads
support:</para>
<screen><userinput remap="pre">mkdir -pv $LFS_TGT/libgcc
ln -s ../../../libgcc/gthr-posix.h $LFS_TGT/libgcc/gthr-default.h</userinput></screen>
<para>Before starting to build GCC, remember to unset any environment
variables that override the default optimization flags.</para>
<para>Now prepare GCC for compilation:</para>
<screen><userinput remap="configure">../configure \
--build=$(../config.guess) \
--host=$LFS_TGT \
--prefix=/usr \
CC_FOR_TARGET=$LFS_TGT-gcc \
--with-build-sysroot=$LFS \
--enable-initfini-array \
--disable-nls \
--disable-multilib \
--disable-decimal-float \
--disable-libatomic \
--disable-libgomp \
--disable-libquadmath \
--disable-libssp \
--disable-libvtv \
--disable-libstdcxx \
--enable-languages=c,c++</userinput></screen>
<screen><userinput remap="configure">../configure \
--build=$(../config.guess) \
--host=$LFS_TGT \
--target=$LFS_TGT \
--prefix=/usr \
--with-build-sysroot=$LFS \
--enable-default-pie \
--enable-default-ssp \
--disable-nls \
--disable-multilib \
--disable-libatomic \
--disable-libgomp \
--disable-libquadmath \
--disable-libsanitizer \
--disable-libssp \
--disable-libvtv \
--enable-languages=c,c++ \
LDFLAGS_FOR_TARGET=-L$PWD/$LFS_TGT/libgcc</userinput></screen>
<variablelist>
<title>The meaning of the new configure options:</title><!-- WIP -->
<varlistentry>
<term><parameter>-with-build-sysroot=$LFS</parameter></term>
<term><parameter>--with-build-sysroot=$LFS</parameter></term>
<listitem>
<para>Normally, using <parameter>--host</parameter> ensures that
a cross-compiler is used for building GCC, and that compiler knows
that it has to look for headers and libraries in <filename
class="directory">$LFS</filename>. But the build system of GCC uses
class="directory">$LFS</filename>. But the build system for GCC uses
other tools, which are not aware of this location. This switch is
needed to have them find the needed files in <filename
needed so those tools will find the needed files in <filename
class="directory">$LFS</filename>, and not on the host.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>--enable-initfini-array</parameter></term>
<term><parameter>--target=$LFS_TGT</parameter></term>
<listitem>
<para>This option is automatically enabled when building a native
compiler with a native compiler on x86. But here, we build with
a cross compiler, so we need to explicitly set this option.</para>
<para>We are cross-compiling GCC, so it's impossible to build
target libraries (<filename class="libraryfile">libgcc</filename>
and <filename class="libraryfile">libstdc++</filename>) with the
GCC binaries compiled in this pass&mdash;those binaries won't run
on the host. The GCC build system will attempt to use the host's
C and C++ compilers as a workaround by default.
Building the GCC target libraries with a different
version of GCC is not supported, so using the host's compilers may cause
the build to fail. This parameter ensures the libraries are built by GCC
pass 1.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>LDFLAGS_FOR_TARGET=...</parameter></term>
<listitem>
<para>Allow <filename class="libraryfile">libstdc++</filename> to
use the <filename class="libraryfile">libgcc</filename> being
built in this pass, instead of the previous version built in
<xref linkend='ch-tools-gcc-pass1'/>. The previous version cannot
properly support C++ exception handling because it was built
without libc support.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>--disable-libsanitizer</parameter></term>
<listitem>
<para>Disable GCC sanitizer runtime libraries. They are not
needed for the temporary installation. In
<xref linkend='ch-tools-gcc-pass1'/> it was implied by
<parameter>--disable-libstdcxx</parameter>, and now we can
explicitly pass it.</para>
</listitem>
</varlistentry>

View File

@ -1,4 +1,4 @@
<?xml version="1.0" encoding="ISO-8859-1"?>
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE sect1 PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
<!ENTITY % general-entities SYSTEM "../general.ent">
@ -45,8 +45,9 @@
<para>Prepare Grep for compilation:</para>
<screen><userinput remap="configure">./configure --prefix=/usr \
--host=$LFS_TGT</userinput></screen>
<screen><userinput remap="configure">./configure --prefix=/usr \
--host=$LFS_TGT \
--build=$(./build-aux/config.guess)</userinput></screen>
<para>Compile the package:</para>

View File

@ -1,4 +1,4 @@
<?xml version="1.0" encoding="ISO-8859-1"?>
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE sect1 PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
<!ENTITY % general-entities SYSTEM "../general.ent">

View File

@ -1,4 +1,4 @@
<?xml version="1.0" encoding="ISO-8859-1"?>
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE sect1 PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
<!ENTITY % general-entities SYSTEM "../general.ent">
@ -16,9 +16,9 @@
the host's tools. Nevertheless, the installed libraries are used when
linking.</para>
<para>Using the utilities will be possible in next chapter after entering
<para>Using the utilities will be possible in the next chapter after entering
the <quote>chroot</quote> environment. But all the packages built in the
present chapter need to be built before we do that. Therefore we cannot be
present chapter need to be built before we do that. Therefore we cannot be
independent of the host system yet.</para>
<para>Once again, let us recall that improper setting of <envar>LFS</envar>
@ -26,6 +26,6 @@
may render your computer unusable.
This whole chapter must be done as user <systemitem
class="username">lfs</systemitem>, with the environment as described in
<xref linkend="ch-preps-settingenviron"/>.</para>
<xref linkend="ch-preps-settingenviron" role='.'/></para>
</sect1>

View File

@ -1,4 +1,4 @@
<?xml version="1.0" encoding="ISO-8859-1"?>
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE sect1 PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
<!ENTITY % general-entities SYSTEM "../general.ent">

View File

@ -1,4 +1,4 @@
<?xml version="1.0" encoding="ISO-8859-1"?>
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE sect1 PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
<!ENTITY % general-entities SYSTEM "../general.ent">
@ -45,23 +45,9 @@
<para>Prepare Make for compilation:</para>
<screen><userinput remap="configure">./configure --prefix=/usr \
--without-guile \
--host=$LFS_TGT \
--build=$(build-aux/config.guess)</userinput></screen>
<variablelist>
<title>The meaning of the new configure option:</title>
<varlistentry>
<term><parameter>--without-guile</parameter></term>
<listitem>
<para>Although we are cross-compiling, configure tries to use
guile from the build host if it finds it. This makes compilation
fail, so this switch prevents using it.</para>
</listitem>
</varlistentry>
</variablelist>
<para>Compile the package:</para>
<screen><userinput remap="make">make</userinput></screen>

View File

@ -1,4 +1,4 @@
<?xml version="1.0" encoding="ISO-8859-1"?>
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE sect1 PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
<!ENTITY % general-entities SYSTEM "../general.ent">
@ -43,18 +43,17 @@
<sect2 role="installation">
<title>Installation of Ncurses</title>
<para>First, ensure that <command>gawk</command> is found first during configuration:</para>
<screen><userinput remap="pre">sed -i s/mawk// configure</userinput></screen>
<para>Then, run the following commands to build the <quote>tic</quote>
program on the build host:</para>
<para>First, run the following commands to build the <quote>tic</quote>
program on the build host. We install it in
<filename class="directory">$LFS/tools</filename>, so that it is found
in the <envar>PATH</envar> when needed:</para>
<screen><userinput remap="pre">mkdir build
pushd build
../configure
../configure --prefix=$LFS/tools AWK=gawk
make -C include
make -C progs tic
install progs/tic $LFS/tools/bin
popd</userinput></screen>
<para>Prepare Ncurses for compilation:</para>
@ -65,10 +64,12 @@ popd</userinput></screen>
--mandir=/usr/share/man \
--with-manpage-format=normal \
--with-shared \
--without-normal \
--with-cxx-shared \
--without-debug \
--without-ada \
--without-normal \
--enable-widec</userinput></screen>
--disable-stripping \
AWK=gawk</userinput></screen>
<variablelist>
<title>The meaning of the new configure options:</title>
@ -76,43 +77,71 @@ popd</userinput></screen>
<varlistentry>
<term><parameter>--with-manpage-format=normal</parameter></term>
<listitem>
<para>This prevents Ncurses installing compressed manual
<para>This prevents Ncurses from installing compressed manual
pages, which may happen if the host distribution itself
has compressed manual pages.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>--with-shared</parameter></term>
<listitem>
<para>This makes Ncurses build and install shared C libraries.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>--without-normal</parameter></term>
<listitem>
<para>This prevents Ncurses from building and installing static C
libraries.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>--without-debug</parameter></term>
<listitem>
<para>This prevents Ncurses from building and installing debug
libraries.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>--with-cxx-shared</parameter></term>
<listitem>
<para>This makes Ncurses build and install shared C++ bindings. It
also prevents it building and installing static C++ bindings.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>--without-ada</parameter></term>
<listitem>
<para>This ensures that Ncurses does not build support for the Ada
compiler which may be present on the host but will not be available
compiler, which may be present on the host but will not be available
once we enter the <command>chroot</command> environment.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>--enable-widec</parameter></term>
<term><parameter>--disable-stripping</parameter></term>
<listitem>
<para>This switch causes wide-character libraries (e.g., <filename
class="libraryfile">libncursesw.so.&ncurses-version;</filename>)
to be built instead of normal ones (e.g., <filename
class="libraryfile">libncurses.so.&ncurses-version;</filename>).
These wide-character libraries are usable in both multibyte and
traditional 8-bit locales, while normal libraries work properly
only in 8-bit locales. Wide-character and normal libraries are
source-compatible, but not binary-compatible.</para>
<para>This switch prevents the building system from
using the <command>strip</command> program from the host.
Using host tools on cross-compiled programs can cause failure.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>--without-normal</parameter></term>
<term><parameter>AWK=gawk</parameter></term>
<listitem>
<para>This switch disables building and installing most static libraries.
</para>
<para>This switch prevents the building system from using the
<command>mawk</command> program from the host.
Some<!-- FIXME vauge --> versions of <command>mawk</command> can
cause this package to fail to build. <!-- It seems happened in 2015,
is there any updated into? --></para>
</listitem>
</varlistentry>
</variablelist>
<para>Compile the package:</para>
@ -121,28 +150,37 @@ popd</userinput></screen>
<para>Install the package:</para>
<screen><userinput remap="install">make DESTDIR=$LFS TIC_PATH=$(pwd)/build/progs/tic install
echo "INPUT(-lncursesw)" > $LFS/usr/lib/libncurses.so</userinput></screen>
<screen><userinput remap="install">make DESTDIR=$LFS install
ln -sv libncursesw.so $LFS/usr/lib/libncurses.so
sed -e 's/^#if.*XOPEN.*$/#if 1/' \
-i $LFS/usr/include/curses.h</userinput></screen>
<variablelist>
<title>The meaning of the install options:</title>
<varlistentry>
<term><parameter>TIC_PATH=$(pwd)/build/progs/tic</parameter></term>
<term><command>ln -sv libncursesw.so $LFS/usr/lib/libncurses.so</command></term>
<listitem>
<para>We need to pass the path of the just built
<command>tic</command> able to run on the building machine, so that
the terminal database can be created without errors.</para>
<para>The <filename>libncurses.so</filename> library is needed by
a few packages we will build soon. We create this symlink to use
<filename>libncursesw.so</filename> as a replacement.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><command>echo "INPUT(-lncursesw)" > $LFS/usr/lib/libncurses.so</command></term>
<term><command>sed -e 's/^#if.*XOPEN.*$/#if 1/' ...</command></term>
<listitem>
<para>The <filename>libncurses.so</filename> library is needed by
a few packages we will build soon. We create this small linker
script, as this is what is done in <xref
linkend="chapter-building-system"/>.</para>
<para>The header file <filename>curses.h</filename> contains
the definition of various Ncurses data structures. With different
preprocessor macro definitions two different sets of the data
structure definition may be used: the 8-bit definition is
compatible with <filename>libncurses.so</filename> and the
wide-character definition is compatible with
<filename>libncursesw.so</filename>. Since we are using
<filename>libncursesw.so</filename> as a replacement of
<filename>libncurses.so</filename>, edit the header file so it
will always use the wide-character data structure definition
compatible with <filename>libncursesw.so</filename>.</para>
</listitem>
</varlistentry>

View File

@ -1,4 +1,4 @@
<?xml version="1.0" encoding="ISO-8859-1"?>
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE sect1 PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
<!ENTITY % general-entities SYSTEM "../general.ent">

View File

@ -1,4 +1,4 @@
<?xml version="1.0" encoding="ISO-8859-1"?>
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE sect1 PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
<!ENTITY % general-entities SYSTEM "../general.ent">
@ -45,8 +45,9 @@
<para>Prepare Sed for compilation:</para>
<screen><userinput remap="configure">./configure --prefix=/usr \
--host=$LFS_TGT</userinput></screen>
<screen><userinput remap="configure">./configure --prefix=/usr \
--host=$LFS_TGT \
--build=$(./build-aux/config.guess)</userinput></screen>
<para>Compile the package:</para>

View File

@ -1,4 +1,4 @@
<?xml version="1.0" encoding="ISO-8859-1"?>
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE sect1 PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
<!ENTITY % general-entities SYSTEM "../general.ent">
@ -45,8 +45,8 @@
<para>Prepare Tar for compilation:</para>
<screen><userinput remap="configure">./configure --prefix=/usr \
--host=$LFS_TGT \
<screen><userinput remap="configure">./configure --prefix=/usr \
--host=$LFS_TGT \
--build=$(build-aux/config.guess)</userinput></screen>
<para>Compile the package:</para>

View File

@ -1,4 +1,4 @@
<?xml version="1.0" encoding="ISO-8859-1"?>
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE sect1 PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
<!ENTITY % general-entities SYSTEM "../general.ent">
@ -59,6 +59,11 @@
<screen><userinput remap="install">make DESTDIR=$LFS install</userinput></screen>
<para>Remove the libtool archive file because it is harmful for cross
compilation:</para>
<screen><userinput remap="install">rm -v $LFS/usr/lib/liblzma.la</userinput></screen>
</sect2>
<sect2 role="content">

View File

@ -1,4 +1,4 @@
<?xml version="1.0" encoding="ISO-8859-1"?>
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE sect1 PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
<!ENTITY % general-entities SYSTEM "../general.ent">

View File

@ -1,4 +1,4 @@
<?xml version="1.0" encoding="ISO-8859-1"?>
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE sect1 PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
<!ENTITY % general-entities SYSTEM "../general.ent">
@ -33,9 +33,9 @@
user <systemitem class="username">root</systemitem> by running the following
command:</para>
<screen><userinput>chown -R root:root $LFS/{usr,lib,var,etc,bin,sbin,tools}
<screen><userinput>chown --from &lfs-username; -R root:root $LFS/{usr,var,etc,tools}
case $(uname -m) in
x86_64) chown -R root:root $LFS/lib64 ;;
x86_64) chown --from &lfs-username; -R root:root $LFS/lib64 ;;
esac</userinput></screen>
</sect1>

View File

@ -1,4 +1,4 @@
<?xml version="1.0" encoding="ISO-8859-1"?>
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
<!ENTITY % general-entities SYSTEM "../general.ent">
@ -17,14 +17,13 @@
<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="chroot.xml"/>
<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="creatingdirs.xml"/>
<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="createfiles.xml"/>
<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="libstdc++-pass2.xml"/>
<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="gettext.xml"/>
<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="bison.xml"/>
<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="perl.xml"/>
<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="python.xml"/>
<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="texinfo.xml"/>
<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="util-linux.xml"/>
<!--
<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="tcl.xml"/>
<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="expect.xml"/>

View File

@ -1,4 +1,4 @@
<?xml version="1.0" encoding="ISO-8859-1"?>
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE sect1 PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
<!ENTITY % general-entities SYSTEM "../general.ent">
@ -11,11 +11,11 @@
<title>Entering the Chroot Environment</title>
<para>Now that all the packages which are required to build the rest of the
needed tools are on the system, it is time to enter the chroot environment to
finish installing the remaining temporary tools. This environment will be in
use also for installing the final system. As user <systemitem
needed tools are on the system, it is time to enter the chroot environment and
finish installing the temporary tools. This environment will also be
used to install the final system. As user <systemitem
class="username">root</systemitem>, run the following command to enter the
environment that is, at the moment, populated with only the temporary
environment that is, at the moment, populated with nothing but temporary
tools:</para>
<screen role="nodump"><userinput>chroot "$LFS" /usr/bin/env -i \
@ -23,33 +23,43 @@
TERM="$TERM" \
PS1='(lfs chroot) \u:\w\$ ' \
PATH=/usr/bin:/usr/sbin \
/bin/bash --login +h</userinput></screen>
MAKEFLAGS="-j<replaceable>$(nproc)</replaceable>" \
TESTSUITEFLAGS="-j<replaceable>$(nproc)</replaceable>" \
/bin/bash --login</userinput></screen>
<para>
If you don't want to use all available logical cores, replace
<replaceable>$(nproc)</replaceable> with the number of logical cores you
want to use for building packages in this chapter and the following
chapters. The test suites of some packages (notably Autoconf, Libtool,
and Tar) in &ch-final; are not affected by <envar>MAKEFLAGS</envar>, they
use a <envar>TESTSUITEFLAGS</envar> environment variable instead. We
set that here as well for running these test suites with multiple cores.
</para>
<para>The <parameter>-i</parameter> option given to the <command>env</command>
command will clear all variables of the chroot environment. After that, only
command will clear all the variables in the chroot environment. After that, only
the <envar>HOME</envar>, <envar>TERM</envar>, <envar>PS1</envar>, and
<envar>PATH</envar> variables are set again. The
<parameter>TERM=$TERM</parameter> construct will set the <envar>TERM</envar>
<parameter>TERM=$TERM</parameter> construct sets the <envar>TERM</envar>
variable inside chroot to the same value as outside chroot. This variable is
needed for programs like <command>vim</command> and <command>less</command>
to operate properly. If other variables are desired, such as
needed so programs like <command>vim</command> and <command>less</command>
can operate properly. If other variables are desired, such as
<envar>CFLAGS</envar> or <envar>CXXFLAGS</envar>, this is a good place to set
them again.</para>
them.</para>
<para>From this point on, there is no need to use the
<envar>LFS</envar> variable anymore because all work will be restricted
to the LFS file system. This is because the Bash shell is told that
<filename class="directory">$LFS</filename> is now the root
(<filename class="directory">/</filename>) directory.</para>
<envar>LFS</envar> variable any more because all work will be restricted
to the LFS file system; the <command>chroot</command> command runs the
Bash shell with the root
(<filename class="directory">/</filename>) directory set to
<filename class='directory'>$LFS</filename>.</para>
<para>Notice that <filename class="directory">/tools/bin</filename> is not
in the <envar>PATH</envar>. This means that the cross toolchain will no longer be
used in the chroot environment. This occurs when the shell does not
<quote>remember</quote> the locations of executed binaries&mdash;for this
reason, hashing is switched off by passing the <parameter>+h</parameter> option
to <command>bash</command>.</para>
used.</para>
<para>Note that the <command>bash</command> prompt will say
<para>Also note that the <command>bash</command> prompt will say
<computeroutput>I have no name!</computeroutput> This is normal because the
<filename>/etc/passwd</filename> file has not been created yet.</para>

View File

@ -1,4 +1,4 @@
<?xml version="1.0" encoding="ISO-8859-1"?>
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE sect1 PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
<!ENTITY % general-entities SYSTEM "../general.ent">
@ -9,24 +9,24 @@
<?dbhtml filename="cleanup.html"?>
<title>Cleaning up and Saving the Temporary System</title>
<sect2>
<title>Cleaning</title>
<para>First, remove the currently installed documentation to prevent them
<para>First, remove the currently installed documentation files to prevent them
from ending up in the final system, and to save about 35 MB:</para>
<screen><userinput>rm -rf /usr/share/{info,man,doc}/*</userinput></screen>
<para>Second, the libtool .la files are only useful when linking with static
libraries. They are unneeded and potentially harmful when using dynamic
shared libraries, specially when using non-autotools build systems.
While still in chroot, remove those files now:</para>
<para>Second, on a modern Linux system, the libtool .la files are only
useful for libltdl. No libraries in LFS are loaded by
libltdl, and it's known that some .la files can cause BLFS package
failures. Remove those files now:</para>
<screen><userinput>find /usr/{lib,libexec} -name \*.la -delete</userinput></screen>
<para>
The current system size is now about 3 GB, however
The current system size is now about 3 GB, however
the /tools directory is no longer needed. It uses about
1 GB of disk space. Delete it now:
</para>
@ -37,66 +37,82 @@
<sect2>
<title>Backup</title>
<para>
At this point the essential programs and libraries have been created
and your current LFS system is in a good state. Your system can now be
backed up for later reuse. In case of fatal failures in the subsequent
chapters, it often turns out that removing everything and starting over
(more carefully) is the best way to recover. Unfortunately, all the
temporary files will be removed, too. To avoid spending extra time to
redo something which has been done successfully, creating a backup of
the current LFS system may prove useful.
</para>
<note><para>
All the remaining steps in this section are optional. Nevertheless,
as soon as you begin installing packages in <xref
linkend="chapter-building-system"/>, the temporary files will be
overwritten. So it may be a good idea to do a backup of the current
system as described below.
system as described below.
</para></note>
<para>
The following steps are performed from outside the chroot
environment. That means, you have to leave the chroot environment
environment. That means you have to leave the chroot environment
first before continuing. The reason for that is to
get access to file system locations outside of the chroot
environment to store/read the backup archive which should
environment to store/read the backup archive, which ought
not be placed within the
<filename class="directory">$LFS</filename> hierarchy for
safety reasons.
<filename class="directory">$LFS</filename> hierarchy.
</para>
<important>
<para>All of the following instructions are executed by
<systemitem class="username">root</systemitem>. Take extra
care about the commands you're going to run as mistakes
here can modify your host system. Be aware that the
environment variable <envar>LFS</envar>
is set for user <systemitem class="username">lfs</systemitem> by default
but may <emphasis>not</emphasis> be set for
<systemitem class="username">root</systemitem>. Whenever
commands are to be executed by <systemitem class="username">root</systemitem>,
make sure you have set <envar>LFS</envar>.
This has been discussed in <xref linkend='ch-partitioning-aboutlfs'/>.
</para>
</important>
<para>
Now, if you are making a backup, leave the chroot environment:
If you have decided to make a backup, leave the chroot environment:
</para>
<screen role="nodump"><userinput>exit</userinput></screen>
<para>
At this point the essential programs and libraries have been created
and your current system is in a good state. Your system can now be
backed up for later reuse. In case of fatal failures in the subsequent
chapters, it often turns out that removing everything and starting over
(more carefully) is the best option to recover. Unfortunately, all the
temporary files will be removed, too. To avoid spending extra time to
redo something which has been built successfully, prepare a backup.
</para>
<important>
<para>
All of the following instructions are executed by
<systemitem class="username">root</systemitem> on your host system.
Take extra care about the commands you're going to run as mistakes
made here can modify your host system. Be aware that the
environment variable <envar>LFS</envar>
is set for user <systemitem class="username">lfs</systemitem> by default
but may <emphasis>not</emphasis> be set for
<systemitem class="username">root</systemitem>.
</para>
<para>
Whenever commands are to be executed by <systemitem class="username">root</systemitem>,
make sure you have set <envar>LFS</envar>.
</para>
<para>
This has been discussed in
<xref linkend='ch-partitioning-aboutlfs' role='.'/>
</para>
</important>
<para>Before making a backup, unmount the virtual file systems:</para>
<screen role="nodump"><userinput>mountpoint -q $LFS/dev/shm &amp;&amp; umount $LFS/dev/shm
umount $LFS/dev/pts
umount $LFS/{sys,proc,run,dev}</userinput></screen>
<para>
Make sure you have at least 1 GB free disk space (the source tarballs
will be included in the backup archive) in the home directory of user
<systemitem class="username">root</systemitem>.
will be included in the backup archive) on the file system containing
the directory where you create the backup archive.
</para>
<para>Before we make a backup, unmount the virtual file systems:</para>
<screen role="nodump"><userinput>umount $LFS/dev{/pts,}
umount $LFS/{sys,proc,run}</userinput></screen>
<para>
Note that the instructions below specify the home directory of the host
system's <systemitem class="username">root</systemitem> user, which is
typically found on the root file system.
Replace <envar>$HOME</envar> by a directory of your choice if you
do not want to have the backup stored in <systemitem
class="username">root</systemitem>'s home directory.
</para>
<para>
Create the backup archive by running the following command:
@ -105,26 +121,20 @@ umount $LFS/{sys,proc,run}</userinput></screen>
<note>
<para>
Because the backup archive is compressed, it takes a relatively
long time (over 10 minutes) even on a resonably fast system.
</para>
<para>
Also, ensure the <envar>LFS</envar> environment variable is set
for the root user.
long time (over 10 minutes) even on a reasonably fast system.
</para>
</note>
<screen role="nodump" revision="sysv"><userinput>cd $LFS
<screen role="nodump"><userinput>cd $LFS
tar -cJpf $HOME/lfs-temp-tools-&version;.tar.xz .</userinput></screen>
<screen role="nodump" revision="systemd"><userinput>cd $LFS
tar -cJpf $HOME/lfs-temp-tools-&versiond;.tar.xz .</userinput></screen>
<note>
<para>
If continuing to chapter 8, don't forget to reenter the chroot
environment as explained in the <quote>Important</quote> box below.
</para>
</note>
<para>
Replace <envar>$HOME</envar> by a directory of your choice if you
do not want to have the backup stored in <systemitem
class="username">root</systemitem>'s home directory.
</para>
</sect2>
<sect2>
@ -133,32 +143,28 @@ tar -cJpf $HOME/lfs-temp-tools-&versiond;.tar.xz .</userinput></screen>
<para>
In case some mistakes have been made and you need to start over, you can
use this backup to restore the system and save some recovery time.
Since the sources are located under
Since the sources are located under
<filename class="directory">$LFS</filename>, they are included in the
backup archive as well, so they do not need to be downloaded again. After
checking that <envar>$LFS</envar> is set properly,
checking that <envar>$LFS</envar> is set properly, you can
restore the backup by executing the following commands:
</para>
<!-- Make the following look different so users don't blindly run the
restore when they don't need to. -->
<warning><para>The following commands are extremly dangerous. If
you run <command>rm -rf ./*</command> as the root user and you
do not change to the $LFS directory or the <envar>LFS</envar>
environment variable is not set for the root user, it will destroy
<warning><para>The following commands are extremely dangerous. If
you run <command>rm -rf ./*</command> as the &root; user and you
do not change to the $LFS directory or the <envar>LFS</envar>
environment variable is not set for the &root; user, it will destroy
your entire host system. YOU ARE WARNED.</para></warning>
<screen role="nodump" revision="sysv"><computeroutput>cd $LFS
rm -rf ./*
<screen role="nodump"><computeroutput>cd $LFS
rm -rf ./*
tar -xpf $HOME/lfs-temp-tools-&version;.tar.xz</computeroutput></screen>
<screen role="nodump" revision="systemd"><computeroutput>cd $LFS
rm -rf ./*
tar -xpf $HOME/lfs-temp-tools-&versiond;.tar.xz</computeroutput></screen>
<para>
Again, double check that the environment has been setup properly
Again, double check that the environment has been set up properly
and continue building the rest of the system.
</para>
@ -166,13 +172,13 @@ tar -xpf $HOME/lfs-temp-tools-&versiond;.tar.xz</computeroutput></screen>
<para>
If you left the chroot environment to create a backup or restart
building using a restore, remember to check that the virtual
filesystems are still mounted (<command>findmnt | grep
file systems are still mounted (<command>findmnt | grep
$LFS</command>). If they are not mounted, remount them now as
described in <xref linkend='ch-tools-kernfs'/> and re-enter the chroot
environment (see <xref linkend='ch-tools-chroot'/>) before continuing.
</para>
</important>
</sect2>
</sect1>

View File

@ -1,4 +1,4 @@
<?xml version="1.0" encoding="ISO-8859-1"?>
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE sect1 PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
<!ENTITY % general-entities SYSTEM "../general.ent">
@ -34,11 +34,11 @@
<primary sortas="e-/var/log/wtmp">/var/log/wtmp</primary>
</indexterm>
<para>Historically, Linux maintains a list of the mounted file systems in the
<para>Historically, Linux maintained a list of the mounted file systems in the
file <filename>/etc/mtab</filename>. Modern kernels maintain this list
internally and exposes it to the user via the <filename
internally and expose it to the user via the <filename
class="directory">/proc</filename> filesystem. To satisfy utilities that
expect the presence of <filename>/etc/mtab</filename>, create the following
expect to find <filename>/etc/mtab</filename>, create the following
symbolic link:</para>
<screen><userinput>ln -sv /proc/self/mounts /etc/mtab</userinput></screen>
@ -48,8 +48,8 @@
as well:</para>
<screen><userinput>cat &gt; /etc/hosts &lt;&lt; EOF
127.0.0.1 localhost $(hostname)
::1 localhost
<literal>127.0.0.1 localhost $(hostname)
::1 localhost</literal>
EOF</userinput></screen>
<para>In order for user <systemitem class="username">root</systemitem> to be
@ -62,29 +62,28 @@ EOF</userinput></screen>
<screen revision="sysv"><userinput>cat &gt; /etc/passwd &lt;&lt; "EOF"
<literal>root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/dev/null:/bin/false
daemon:x:6:6:Daemon User:/dev/null:/bin/false
messagebus:x:18:18:D-Bus Message Daemon User:/run/dbus:/bin/false
uuidd:x:80:80:UUID Generation Daemon User:/dev/null:/bin/false
nobody:x:99:99:Unprivileged User:/dev/null:/bin/false</literal>
bin:x:1:1:bin:/dev/null:/usr/bin/false
daemon:x:6:6:Daemon User:/dev/null:/usr/bin/false
messagebus:x:18:18:D-Bus Message Daemon User:/run/dbus:/usr/bin/false
uuidd:x:80:80:UUID Generation Daemon User:/dev/null:/usr/bin/false
nobody:x:65534:65534:Unprivileged User:/dev/null:/usr/bin/false</literal>
EOF</userinput></screen>
<screen revision="systemd"><userinput>cat &gt; /etc/passwd &lt;&lt; "EOF"
<literal>root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/dev/null:/bin/false
daemon:x:6:6:Daemon User:/dev/null:/bin/false
messagebus:x:18:18:D-Bus Message Daemon User:/run/dbus:/bin/false
systemd-bus-proxy:x:72:72:systemd Bus Proxy:/:/bin/false
systemd-journal-gateway:x:73:73:systemd Journal Gateway:/:/bin/false
systemd-journal-remote:x:74:74:systemd Journal Remote:/:/bin/false
systemd-journal-upload:x:75:75:systemd Journal Upload:/:/bin/false
systemd-network:x:76:76:systemd Network Management:/:/bin/false
systemd-resolve:x:77:77:systemd Resolver:/:/bin/false
systemd-timesync:x:78:78:systemd Time Synchronization:/:/bin/false
systemd-coredump:x:79:79:systemd Core Dumper:/:/bin/false
uuidd:x:80:80:UUID Generation Daemon User:/dev/null:/bin/false
systemd-oom:x:81:81:systemd Out Of Memory Daemon:/:/bin/false
nobody:x:99:99:Unprivileged User:/dev/null:/bin/false</literal>
bin:x:1:1:bin:/dev/null:/usr/bin/false
daemon:x:6:6:Daemon User:/dev/null:/usr/bin/false
messagebus:x:18:18:D-Bus Message Daemon User:/run/dbus:/usr/bin/false
systemd-journal-gateway:x:73:73:systemd Journal Gateway:/:/usr/bin/false
systemd-journal-remote:x:74:74:systemd Journal Remote:/:/usr/bin/false
systemd-journal-upload:x:75:75:systemd Journal Upload:/:/usr/bin/false
systemd-network:x:76:76:systemd Network Management:/:/usr/bin/false
systemd-resolve:x:77:77:systemd Resolver:/:/usr/bin/false
systemd-timesync:x:78:78:systemd Time Synchronization:/:/usr/bin/false
systemd-coredump:x:79:79:systemd Core Dumper:/:/usr/bin/false
uuidd:x:80:80:UUID Generation Daemon User:/dev/null:/usr/bin/false
systemd-oom:x:81:81:systemd Out Of Memory Daemon:/:/usr/bin/false
nobody:x:65534:65534:Unprivileged User:/dev/null:/usr/bin/false</literal>
EOF</userinput></screen>
<para>The actual password for <systemitem class="username">root</systemitem>
@ -108,7 +107,6 @@ dialout:x:10:
audio:x:11:
video:x:12:
utmp:x:13:
usb:x:14:
cdrom:x:15:
adm:x:16:
messagebus:x:18:
@ -117,8 +115,8 @@ mail:x:34:
kvm:x:61:
uuidd:x:80:
wheel:x:97:
nogroup:x:99:
users:x:999:</literal>
users:x:999:
nogroup:x:65534:</literal>
EOF</userinput></screen>
<screen revision="systemd"><userinput>cat &gt; /etc/group &lt;&lt; "EOF"
@ -136,7 +134,6 @@ dialout:x:10:
audio:x:11:
video:x:12:
utmp:x:13:
usb:x:14:
cdrom:x:15:
adm:x:16:
messagebus:x:18:
@ -144,7 +141,6 @@ systemd-journal:x:23:
input:x:24:
mail:x:34:
kvm:x:61:
systemd-bus-proxy:x:72:
systemd-journal-gateway:x:73:
systemd-journal-remote:x:74:
systemd-journal-upload:x:75:
@ -153,24 +149,42 @@ systemd-resolve:x:77:
systemd-timesync:x:78:
systemd-coredump:x:79:
uuidd:x:80:
systemd-oom:x:81:81:
systemd-oom:x:81:
wheel:x:97:
nogroup:x:99:
users:x:999:</literal>
users:x:999:
nogroup:x:65534:</literal>
EOF</userinput></screen>
<para>The created groups are not part of any standard&mdash;they are groups
decided on in part by the requirements of the Udev configuration in Chapter
9, and in part by common convention employed by a number of existing Linux
9, and in part by common conventions employed by a number of existing Linux
distributions. In addition, some test suites rely on specific users or
groups. The Linux Standard Base (LSB, available at <ulink
url="http://refspecs.linuxfoundation.org/lsb.shtml"/>) only recommends that,
url="https://refspecs.linuxfoundation.org/lsb.shtml"/>) only recommends that,
besides the group <systemitem class="groupname">root</systemitem> with a
Group ID (GID) of 0, a group <systemitem class="groupname">bin</systemitem>
with a GID of 1 be present. All other group names and GIDs can be chosen
freely by the system administrator since well-written programs do not depend
on GID numbers, but rather use the group's name.</para>
with a GID of 1 be present. The GID of 5 is widely used for the
<systemitem class="groupname">tty</systemitem> group, and the number 5 is
also used in <phrase revision="systemd">systemd</phrase>
<phrase revision="sysv"><filename>/etc/fstab</filename></phrase> for the
<systemitem class="filesystem">devpts</systemitem> filesystem.
All other group names and GIDs can be chosen freely by the system
administrator since well-written programs do not depend on GID numbers,
but rather use the group's name.</para>
<para>The ID 65534 is used by the kernel for NFS and separate user
namespaces for unmapped users and groups (those exist on the NFS server
or the parent user namespace, but <quote>do not exist</quote> on the local
machine or in the separate namespace). We assign
<systemitem class="username">nobody</systemitem> and
<systemitem class="groupname">nogroup</systemitem> to avoid an
unnamed ID. But other distros may treat this ID differently, so any
portable program should not depend on this assignment.</para>
<!--
<para>Some packages need a locale.</para>
<screen><userinput>localedef -i C -f UTF-8 C.UTF-8</userinput></screen>
-->
<para>Some tests in <xref linkend="chapter-building-system"/> need a regular
user. We add this user here and delete this account at the end of that
chapter.</para>
@ -185,14 +199,7 @@ install -o tester -d /home/tester</userinput></screen>
files have been created, user name and group name resolution will now
work:</para>
<screen role="nodump"><userinput>exec /bin/bash --login +h</userinput></screen>
<para>Note the use of the <parameter>+h</parameter> directive. This tells
<command>bash</command> not to use its internal path hashing. Without this
directive, <command>bash</command> would remember the paths to binaries it has
executed. To ensure the use of the newly compiled binaries as soon as they are
installed, the <parameter>+h</parameter> directive will be used for the duration
of this and the next chapter.</para>
<screen role="nodump"><userinput>exec /usr/bin/bash --login</userinput></screen>
<para>The <command>login</command>, <command>agetty</command>, and
<command>init</command> programs (and others) use a number of log
@ -212,8 +219,23 @@ chmod -v 600 /var/log/btmp</userinput></screen>
failed login attempts. The <filename>/var/log/btmp</filename> file records
the bad login attempts.</para>
<note><para>The <filename>/run/utmp</filename> file records the users that
are currently logged in. This file is created dynamically in the boot
scripts.</para></note>
<!-- systemd no longer creates this -->
<note revision='sysv'><para>The <filename>/run/utmp</filename> file
records the users that are currently logged in. This file is created
dynamically in the boot scripts.</para></note>
<!-- AFAIK they are not vital for system function, users requiring such
info should rely on systemd-logind or elogind or some custom PAM
module. Maybe we can stop to create them at all. -->
<note>
<para>
The <phrase revision='sysv'><filename>utmp</filename>,
</phrase><filename>wtmp</filename>, <filename>btmp</filename>, and
<filename>lastlog</filename> files use 32-bit integers for timestamps
and they'll be fundamentally broken after year 2038. Many packages
have stopped using them and other packages are going to stop using
them. It is probably best to consider them deprecated.
</para>
</note>
</sect1>

View File

@ -1,4 +1,4 @@
<?xml version="1.0" encoding="ISO-8859-1"?>
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE sect1 PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
<!ENTITY % general-entities SYSTEM "../general.ent">
@ -10,15 +10,15 @@
<title>Creating Directories</title>
<para>It is time to create the full structure in the LFS file system.</para>
<para>It is time to create the full directory structure in the LFS file system.</para>
<note><para>Some of the directories mentioned in this section may have
already been created earlier with explicit instructions, or when installing some
packages. They are repeated below for completeness.</para></note>
<para>Create some root-level directories that are not in the limited set
required in the previous chapters by issuing the following command:</para>
<note><para>Some of the directories below have already been created earlier
with explicit instructions or when installing some packages. They are
repeated below for completeness.</para></note>
<screen><userinput>mkdir -pv /{boot,home,mnt,opt,srv}</userinput></screen>
<para>Create the required set of subdirectories below the root-level by
@ -28,6 +28,7 @@
mkdir -pv /lib/firmware
mkdir -pv /media/{floppy,cdrom}
mkdir -pv /usr/{,local/}{include,src}
mkdir -pv /usr/lib/locale
mkdir -pv /usr/local/{bin,lib,sbin}
mkdir -pv /usr/{,local/}share/{color,dict,doc,info,locale,man}
mkdir -pv /usr/{,local/}share/{misc,terminfo,zoneinfo}
@ -42,14 +43,14 @@ install -dv -m 0750 /root
install -dv -m 1777 /tmp /var/tmp</userinput></screen>
<para>Directories are, by default, created with permission mode 755, but
this is not desirable for all directories. In the commands above, two
this is not desirable everywhere. In the commands above, two
changes are made&mdash;one to the home directory of user <systemitem
class="username">root</systemitem>, and another to the directories for
temporary files.</para>
<para>The first mode change ensures that not just anybody can enter
the <filename class="directory">/root</filename> directory&mdash;the
same as a normal user would do with his or her home directory. The
the <filename class="directory">/root</filename> directory&mdash;just
like a normal user would do with his or her own home directory. The
second mode change makes sure that any user can write to the
<filename class="directory">/tmp</filename> and <filename
class="directory">/var/tmp</filename> directories, but cannot remove
@ -59,14 +60,25 @@ install -dv -m 1777 /tmp /var/tmp</userinput></screen>
<sect2>
<title>FHS Compliance Note</title>
<para>The directory tree is based on the Filesystem Hierarchy Standard
<para>This directory tree is based on the Filesystem Hierarchy Standard
(FHS) (available at <ulink
url="https://refspecs.linuxfoundation.org/fhs.shtml"/>). The FHS also specifies
the optional existence of some directories such as <filename
the optional existence of additional directories such as <filename
class="directory">/usr/local/games</filename> and <filename
class="directory">/usr/share/games</filename>. We create only the
directories that are needed. However, feel free to create these
directories. </para>
class="directory">/usr/share/games</filename>. In LFS, we create only the
directories that are really necessary. However, feel free to create more
directories, if you wish. </para>
<warning>
<para>
The FHS does not mandate the existence of the directory
<filename class="directory">/usr/lib64</filename>, and the LFS editors
have decided not to use it. For the instructions in LFS and BLFS to work correctly,
it is imperative that this directory be non-existent. From time to time you should
verify that it does not exist, because it is easy to create it
inadvertently, and this will probably break your system.
</para>
</warning>
</sect2>

View File

@ -1,4 +1,4 @@
<?xml version="1.0" encoding="ISO-8859-1"?>
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE sect1 PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
<!ENTITY % general-entities SYSTEM "../general.ent">

View File

@ -1,4 +1,4 @@
<?xml version="1.0" encoding="ISO-8859-1"?>
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE sect1 PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
<!ENTITY % general-entities SYSTEM "../general.ent">
@ -11,23 +11,22 @@
<title>Introduction</title>
<para>This chapter shows how to build the last missing bits of the temporary
system: the tools needed by the build machinery of various packages.
Now that all circular dependencies
have been resolved, we can use a <quote>chroot</quote> environment,
completely isolated the host operating system used for the build, except
for the running kernel.</para>
system: the tools needed to build the various packages. Now
that all circular dependencies have been resolved, a <quote>chroot</quote>
environment, completely isolated from the host operating system (except for
the running kernel), can be used for the build.</para>
<para>For proper operation of the isolated environment, some communication
with the running kernel must be established. This is done through the
so-called <emphasis>Virtual Kernel File Systems</emphasis>, which must be
mounted when entering the chroot environment. You may want to check
that they are mounted by issuing <command>findmnt</command>.</para>
with the running kernel must be established. This is done via the
so-called <emphasis>Virtual Kernel File Systems</emphasis>, which will be
mounted before entering the chroot environment. You may want to verify
that they are mounted by issuing the <command>findmnt</command> command.</para>
<para>Until <xref linkend="ch-tools-chroot"/>, the commands must be
run as <systemitem class="username">root</systemitem>, with the
<envar>LFS</envar> variable set. After entering chroot, all commands
are run as root, fortunately without access to the OS of the computer
are run as &root;, fortunately without access to the OS of the computer
you built LFS on. Be careful anyway, as it is easy to destroy the whole
LFS system with badly formed commands.</para>
LFS system with bad commands.</para>
</sect1>

Some files were not shown because too many files have changed in this diff Show More