Compare commits

...

332 Commits

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
139 changed files with 2650 additions and 2275 deletions

View File

@ -212,7 +212,7 @@ 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) version.ent \
$(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"

View File

@ -4,8 +4,7 @@
<!ENTITY % general-entities SYSTEM "../general.ent">
%general-entities;
<!-- Convenient entity for "Systemd" or "Udev" -->
<!ENTITY systemd-udev "<phrase revision='systemd'>Systemd</phrase>
<phrase revision='sysv'>Udev</phrase>">
<!ENTITY systemd-udev "<phrase revision='systemd'>Systemd</phrase><phrase revision='sysv'>Udev</phrase>">
<!ENTITY bdb "<ulink url='https://www.oracle.com/database/technologies/related/berkeleydb.html'>Berkeley DB</ulink>">
]>
@ -45,7 +44,7 @@
<segmentedlist id="acl-depends">
<segtitle>&dependencies;</segtitle>
<seglistitem>
<seg>Attr, Bash, Binutils, Coreutils, GCC, Gettext, Grep, M4, Make,
<seg>Attr, Bash, Binutils, Coreutils, GCC, Gettext, Grep, M4, Make,
Perl, Sed, and Texinfo</seg>
</seglistitem>
</segmentedlist>
@ -326,8 +325,8 @@
<segmentedlist id="bison-depends">
<segtitle>&dependencies;</segtitle>
<seglistitem>
<seg>Bash, Binutils, Coreutils, GCC, Gettext, Glibc, Grep, M4, Make,
Perl, and Sed</seg>
<seg>Bash, Binutils, Coreutils, Diffutils, GCC, Gettext, Glibc,
Grep, M4, Make, Perl, and Sed</seg>
</seglistitem>
</segmentedlist>
@ -400,49 +399,6 @@
</seglistitem>
</segmentedlist>
<!-- Begin Check dependency info -->
<bridgehead renderas="sect2" id="check-dep">Check</bridgehead>
<segmentedlist id="check-depends">
<segtitle>&dependencies;</segtitle>
<seglistitem>
<seg>Gawk, GCC, Grep, Make, Sed, and Texinfo</seg>
</seglistitem>
</segmentedlist>
<segmentedlist id="check-rundeps">
<segtitle>&runtime;</segtitle>
<seglistitem>
<seg>Bash and Gawk</seg>
</seglistitem>
</segmentedlist>
<segmentedlist id="check-testdeps">
<segtitle>&testsuites;</segtitle>
<seglistitem>
<seg>None</seg>
</seglistitem>
</segmentedlist>
<segmentedlist id="check-before">
<segtitle>&before;</segtitle>
<seglistitem>
<seg>None</seg>
</seglistitem>
</segmentedlist>
<segmentedlist id="check-optdeps">
<segtitle>&external;</segtitle>
<seglistitem>
<seg>
<ulink url='&github;/testing-cabal/subunit'>libsubunit</ulink>
and
<ulink url='http://cyberelk.net/tim/software/patchutils/'>
patchutils</ulink>
</seg>
</seglistitem>
</segmentedlist>
<!-- Begin Coreutils dependency info -->
<bridgehead renderas="sect2" id="coreutils-dep">Coreutils</bridgehead>
@ -872,7 +828,7 @@
<segmentedlist id="flit-core-before">
<segtitle>&before;</segtitle>
<seglistitem>
<seg>Wheel</seg>
<seg>Packaging and Wheel</seg>
</seglistitem>
</segmentedlist>
@ -935,7 +891,7 @@
<segtitle>&dependencies;</segtitle>
<seglistitem>
<seg>Bash, Binutils, Coreutils, Diffutils, Findutils, Gawk, GCC,
Gettext, Glibc, GMP, Grep, Libxcrypt, M4, Make, MPC, MPFR, Patch,
Gettext, Glibc, GMP, Grep, M4, Make, MPC, MPFR, Patch,
Perl, Sed, Tar, Texinfo, and Zstd</seg>
</seglistitem>
</segmentedlist>
@ -1240,7 +1196,7 @@
<segmentedlist id="groff-testdeps">
<segtitle>&testsuites;</segtitle>
<seglistitem>
<seg>No test suite available</seg>
<seg>None</seg>
</seglistitem>
</segmentedlist>
@ -1276,7 +1232,7 @@
<segmentedlist id="grub-rundeps">
<segtitle>&runtime;</segtitle>
<seglistitem>
<seg>Bash, GCC, Gettext, Glibc, Xz, and Sed.</seg>
<seg>Bash, GCC, Gettext, Glibc, Xz, and Sed</seg>
</seglistitem>
</segmentedlist>
@ -1545,7 +1501,7 @@
<segmentedlist id="kbd-depends">
<segtitle>&dependencies;</segtitle>
<seglistitem>
<seg>Bash, Binutils, Bison, Check, Coreutils, Flex, GCC, Gettext,
<seg>Bash, Binutils, Bison, Coreutils, Flex, GCC, Gettext,
Glibc, Gzip, Make, Patch, and Sed</seg>
</seglistitem>
</segmentedlist>
@ -1615,7 +1571,9 @@
<segmentedlist id="kmod-optdeps">
<segtitle>&external;</segtitle>
<seglistitem>
<seg>None</seg>
<seg>
<ulink url="https://git.sr.ht/~sircmpwn/scdoc/">scdoc</ulink> (for man pages)
</seg>
</seglistitem>
</segmentedlist>
@ -1640,7 +1598,7 @@
<segmentedlist id="less-testdeps">
<segtitle>&testsuites;</segtitle>
<seglistitem>
<seg>No test suite available</seg>
<seg>None</seg>
</seglistitem>
</segmentedlist>
@ -1887,7 +1845,7 @@
<segmentedlist id="libxcrypt-before">
<segtitle>&before;</segtitle>
<seglistitem>
<seg>GCC, Perl, Python, Shadow, and &systemd-udev;</seg>
<seg>Perl, Python, Shadow, and &systemd-udev;</seg>
</seglistitem>
</segmentedlist>
@ -1934,9 +1892,11 @@
<segtitle>&external;</segtitle>
<seglistitem>
<seg>
<ulink url="&blfs-book;general/cpio.html">cpio</ulink> and
<ulink url="&blfs-book;general/cpio.html">cpio</ulink>,
<ulink url="&blfs-book;general/llvm.html">LLVM</ulink>
(with Clang)
(with Clang), and
<ulink
url="&blfs-book;general/rust-bindgen.html">Rust-bindgen</ulink>
</seg>
</seglistitem>
</segmentedlist>
@ -1980,6 +1940,44 @@
</seglistitem>
</segmentedlist>
<!-- Begin LZ4 dependency info -->
<bridgehead renderas="sect2" id="lz4-dep">Lz4</bridgehead>
<segmentedlist id="lz4-depends">
<segtitle>&dependencies;</segtitle>
<seglistitem>
<seg>Bash, Binutils, Coreutils, GCC, Glibc, and Make</seg>
</seglistitem>
</segmentedlist>
<segmentedlist id="lz4-rundeps">
<segtitle>&runtime;</segtitle>
<seglistitem>
<seg>Glibc</seg>
</seglistitem>
</segmentedlist>
<segmentedlist id="lz4-testdeps">
<segtitle>&testsuites;</segtitle>
<seglistitem>
<seg>Python</seg>
</seglistitem>
</segmentedlist>
<segmentedlist id="lz4-before">
<segtitle>&before;</segtitle>
<seglistitem>
<seg>Zstd <phrase revision="systemd">and Systemd</phrase></seg>
</seglistitem>
</segmentedlist>
<segmentedlist id="lz4-optdeps">
<segtitle>&external;</segtitle>
<seglistitem>
<seg>None</seg>
</seglistitem>
</segmentedlist>
<!-- Begin M4 dependency info -->
<bridgehead renderas="sect2" id="m4-dep">M4</bridgehead>
@ -2111,7 +2109,7 @@
<segmentedlist id="man-pages-depends">
<segtitle>&dependencies;</segtitle>
<seglistitem>
<seg>Bash, Coreutils, and Make</seg>
<seg>Bash, Coreutils, Make, and Sed</seg>
</seglistitem>
</segmentedlist>
@ -2357,7 +2355,7 @@
<segmentedlist id="ninja-testdeps">
<segtitle>&testsuites;</segtitle>
<seglistitem>
<seg>None</seg>
<seg><ulink url="&blfs-book;general/cmake.html">cmake</ulink></seg>
</seglistitem>
</segmentedlist>
@ -2418,6 +2416,46 @@
</seglistitem>
</segmentedlist>
<!-- Begin Packaging dependency info -->
<bridgehead renderas="sect2" id="Packaging-dep">Packaging</bridgehead>
<segmentedlist id="packaging-depends">
<segtitle>&dependencies;</segtitle>
<seglistitem>
<seg>Flit-core and Python</seg>
</seglistitem>
</segmentedlist>
<segmentedlist id="packaging-rundeps">
<segtitle>&runtime;</segtitle>
<seglistitem>
<seg>Python</seg>
</seglistitem>
</segmentedlist>
<segmentedlist id="packaging-testdeps">
<segtitle>&testsuites;</segtitle>
<seglistitem>
<seg>No test suite available</seg>
</seglistitem>
</segmentedlist>
<segmentedlist id="packaging-before">
<segtitle>&before;</segtitle>
<seglistitem>
<seg>Wheel</seg>
</seglistitem>
</segmentedlist>
<segmentedlist id="packaging-optdeps">
<segtitle>&external;</segtitle>
<seglistitem>
<seg>
<ulink url='&blfs-book;general/python-modules.html#pytest'>pytest</ulink>
</seg>
</seglistitem>
</segmentedlist>
<!-- Begin Patch dependency info -->
<bridgehead renderas="sect2" id="patch-dep">Patch</bridgehead>
@ -2529,9 +2567,10 @@
<segtitle>&before;</segtitle>
<seglistitem>
<seg>Binutils,
<phrase revision='systemd'>D-Bus, </phrase>E2fsprogs,
IProute2, Kmod, Man-DB, Procps-ng, Python,
&systemd-udev;, and Util-linux</seg>
<phrase revision='systemd'>D-Bus, </phrase>
E2fsprogs, IProute2, Kmod, Man-DB, Procps-ng, Python,
&systemd-udev;,
and Util-linux</seg>
</seglistitem>
</segmentedlist>
@ -2608,7 +2647,7 @@
<segmentedlist id="psmisc-testdeps">
<segtitle>&testsuites;</segtitle>
<seglistitem>
<seg>No test suite available</seg>
<seg>Expect</seg>
</seglistitem>
</segmentedlist>
@ -2876,7 +2915,7 @@
<segtitle>&dependencies;</segtitle>
<seglistitem>
<seg>Acl, Bash, Binutils, Coreutils, Diffutils, Gawk,
GCC, Glibc, Gperf, Grep, Jinja2, Libcap, Libxcrypt, Meson,
GCC, Glibc, Gperf, Grep, Jinja2, Libcap, Libxcrypt, Lz4, Meson,
OpenSSL, Pkgconf, Sed, Util-linux, and Zstd</seg>
</seglistitem>
</segmentedlist>
@ -2942,7 +2981,6 @@
<ulink url="&blfs-book;postlfs/linux-pam.html">Linux-PAM</ulink>,
<ulink
url="&blfs-book;general/python-modules.html#lxml">lxml</ulink>,
<ulink url="https://lz4.github.io/lz4/">LZ4</ulink>,
<ulink url="&blfs-book;postlfs/make-ca.html">make-ca</ulink>,
<ulink url="&blfs-book;postlfs/p11-kit.html">p11-kit</ulink>,
<ulink url="&blfs-book;general/pcre2.html">PCRE2</ulink>,
@ -2971,8 +3009,8 @@
</seglistitem>
</segmentedlist>
<!-- Begin Sysvinit dependency info -->
<bridgehead renderas="sect2" id="sysvinit-dep" revision='sysv'>Sysvinit</bridgehead>
<!-- Begin SysVinit dependency info -->
<bridgehead renderas="sect2" id="sysvinit-dep" revision='sysv'>SysVinit</bridgehead>
<segmentedlist id="sysvinit-depends" revision='sysv'>
<segtitle>&dependencies;</segtitle>
@ -3271,7 +3309,7 @@
<segmentedlist id="wheel-depends">
<segtitle>&dependencies;</segtitle>
<seglistitem>
<seg>Python and Flit-core</seg>
<seg>Python, Flit-core, and packaging</seg>
</seglistitem>
</segmentedlist>
@ -3426,7 +3464,7 @@
<segmentedlist id="zstd-depends">
<segtitle>&dependencies;</segtitle>
<seglistitem>
<seg>Binutils, Coreutils, GCC, Glibc, Gzip, Make, Xz, and Zlib</seg>
<seg>Binutils, Coreutils, GCC, Glibc, Gzip, Lz4, Make, Xz, and Zlib</seg>
</seglistitem>
</segmentedlist>
@ -3455,7 +3493,7 @@
<segtitle>&external;</segtitle>
<seglistitem>
<seg>
<ulink url="https://lz4.github.io/lz4/">LZ4</ulink>
None
</seg>
</seglistitem>
</segmentedlist>

View File

@ -13,7 +13,7 @@
<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-udev'/>. </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,28 @@
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

View File

@ -47,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

View File

@ -83,7 +83,7 @@ case "${1}" in
ln -sf /proc/self/fd/2 /dev/stderr || failed=1
log_info_msg2 " ${INFO}/dev/fd"
ln -sf /proc/self/fd /dev/fd || failed=1
ln -sfn /proc/self/fd /dev/fd || failed=1
if [ -e /proc/kcore ]; then
log_info_msg2 " ${INFO}/dev/core"

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
#
@ -20,8 +23,8 @@
# Should-Stop: sendsignals
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: Starts kernel and system log daemons.
# Description: Starts kernel and system log daemons.
# Short-Description: Starts system log daemon.
# Description: Starts system log daemon.
# /etc/fstab.
# X-LFS-Provided-By: LFS
### END INIT INFO
@ -34,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
@ -65,7 +60,6 @@ case "${1}" in
status)
statusproc /sbin/syslogd
statusproc klogd
;;
*)

View File

@ -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
@ -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,9 +582,14 @@ 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'`
@ -589,8 +601,13 @@ log_success_msg()
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}
@ -610,8 +627,14 @@ 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
@ -624,8 +647,13 @@ log_failure_msg()
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}
@ -643,8 +671,14 @@ 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'`
@ -656,8 +690,14 @@ log_warning_msg()
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'`
@ -677,7 +717,13 @@ 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'`
@ -689,7 +735,13 @@ log_info_msg()
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'`

View File

@ -110,7 +110,7 @@ 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

View File

@ -94,7 +94,7 @@ NOTES
compound device such as a bridge.
ONBOOT - If set to 'yes', the specified interface is
configured by the netowrk boot script.
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
@ -112,7 +112,7 @@ NOTES
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
@ -128,7 +128,7 @@ NOTES
additional IP addresses to a network
device. Example: eth0:2 (optional)
BROADCAST - The brodcast address for this interface,
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.
@ -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

View File

@ -15,7 +15,7 @@
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"/>.
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
@ -110,10 +110,10 @@
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

View File

@ -39,704 +39,371 @@
<listitem revision="sysv"> or <listitem revision="systemd"> as
appropriate for the entry or if needed the entire day's listitem.
-->
<listitem>
<para>2024-02-14</para>
<para>2025-06-15</para>
<itemizedlist>
<listitem>
<para>[bdubbs] - Update to meson-1.3.2. Fixes
<ulink url='&lfs-ticket-root;5442'>#5442</ulink>.</para>
<para>[bdubbs] - Update to meson-1.8.2. Fixes
<ulink url='&lfs-ticket-root;5743'>#5743</ulink>.</para>
</listitem>
<listitem>
<para>[bdubbs] - Update to linux-6.15.2. Fixes
<ulink url='&lfs-ticket-root;5725'>#5725</ulink>.</para>
</listitem>
<listitem>
<para>[bdubbs] - Update to libffi-3.5.1. Fixes
<ulink url='&lfs-ticket-root;5741'>#5741</ulink>.</para>
</listitem>
<listitem>
<para>[bdubbs] - Update to iproute2-6.15.0. Fixes
<ulink url='&lfs-ticket-root;5732'>#5732</ulink>.</para>
</listitem>
<listitem>
<para>[bdubbs] - Update to Python-3.13.5. Fixes
<ulink url='&lfs-ticket-root;5743'>#6743</ulink>.</para>
</listitem>
</itemizedlist>
</listitem>
<listitem>
<para>2024-02-12</para>
<para>2025-06-04</para>
<itemizedlist>
<listitem>
<para>[bdubbs] - Update to shadow-4.14.5. Fixes
<ulink url='&lfs-ticket-root;5437'>#5437</ulink>.</para>
<para>[bdubbs] - Update to ncurses-6.5-20250531. Fixes
<ulink url='&lfs-ticket-root;5737'>#5737</ulink>.</para>
</listitem>
<listitem>
<para>[bdubbs] - Update to setuptools-69.1.0 (Python module). Fixes
<ulink url='&lfs-ticket-root;5439'>#5439</ulink>.</para>
<para>[bdubbs] - Update to readline-8.3-rc2. Fixes
<ulink url='&lfs-ticket-root;5738'>#5738</ulink>.</para>
</listitem>
<listitem>
<para>[bdubbs] - Update to python-3.12.2. Fixes
<ulink url='&lfs-ticket-root;5434'>#5434</ulink>.</para>
<para>[bdubbs] - Update to bash-5.3-rc2. Fixes
<ulink url='&lfs-ticket-root;5738'>#5738</ulink>.</para>
</listitem>
<listitem>
<para>[bdubbs] - Update to pkgconf-2.1.1. Fixes
<ulink url='&lfs-ticket-root;5432'>#5432</ulink>.</para>
</listitem>
<listitem>
<para>[bdubbs] - Update to MarkupSafe-2.1.5 (Python module). Fixes
<ulink url='&lfs-ticket-root;5431'>#5431</ulink>.</para>
</listitem>
<listitem>
<para>[bdubbs] - Update to man-pages-6.06. Fixes
<ulink url='&lfs-ticket-root;5438'>#5438</ulink>.</para>
</listitem>
<listitem>
<para>[bdubbs] - Update to expat-2.6.0. Fixes
<ulink url='&lfs-ticket-root;5435'>#5435</ulink>.</para>
</listitem>
<listitem>
<para>[bdubbs] - Update to linux-6.7.4. Fixes
<ulink url='&lfs-ticket-root;5433'>#5433</ulink>.</para>
</listitem>
</itemizedlist>
</listitem>
<listitem revision='systemd'>
<para>2024-02-10</para>
<itemizedlist>
<listitem>
<para>[xry111] - Fix a bug in systemd breaking running
systemd-analyze on an instantiated systemd unit.</para>
<para>[bdubbs] - Update to Python-3.13.4. Fixes
<ulink url='&lfs-ticket-root;5739'>#6739</ulink>.</para>
</listitem>
</itemizedlist>
</listitem>
<listitem>
<para>2024-02-02</para>
<para>2025-06-01</para>
<itemizedlist>
<listitem>
<para>[xry111] - Update to tzdata-2024a. Fixes
<ulink url='&lfs-ticket-root;5428'>#5428</ulink>.</para>
</listitem>
<listitem>
<para>[xry111] - Update to glibc-2.39 (security fix). Fixes
<ulink url='&lfs-ticket-root;5426'>#5426</ulink>.</para>
</listitem>
<listitem>
<para>[xry111] - Update to linux-6.7.3. Fixes
<ulink url='&lfs-ticket-root;5427'>#5427</ulink>.</para>
</listitem>
</itemizedlist>
</listitem>
<listitem>
<para>2024-02-01</para>
<itemizedlist>
<listitem>
<para>[bdubbs] - Update to openssl-3.2.1 (security fix). Fixes
<ulink url='&lfs-ticket-root;5425'>#5425</ulink>.</para>
</listitem>
<listitem>
<para>[bdubbs] - Update to zlib-1.3.1. Fixes
<ulink url='&lfs-ticket-root;5419'>#5419</ulink>.</para>
</listitem>
<listitem>
<para>[bdubbs] - Update to xz-5.4.6. Fixes
<ulink url='&lfs-ticket-root;5423'>#5423</ulink>.</para>
</listitem>
<listitem>
<para>[bdubbs] - Update to linux-6.7.2. Fixes
<ulink url='&lfs-ticket-root;5422'>#5422</ulink>.</para>
</listitem>
<listitem>
<para>[bdubbs] - Update to iana-etc-20240125. Addresses
<para>[bdubbs] - Update to iana-etc-20250519. Addresses
<ulink url='&lfs-ticket-root;5006'>#5006</ulink>.</para>
</listitem>
<listitem>
<para>[bdubbs] - Update to binutils-2.42. Fixes
<ulink url='&lfs-ticket-root;5424'>#5424</ulink>.</para>
</listitem>
<listitem>
<para>[bdubbs] - Update to acl-2.3.2. Fixes
<ulink url='&lfs-ticket-root;5421'>#5421</ulink>.</para>
</listitem>
<listitem>
<para>[bdubbs] - Update upstream fixes for readline-8.2. Fixes
<ulink url='&lfs-ticket-root;5420'>#5420</ulink>.</para>
</listitem>
<listitem>
<para>[bdubbs] - Apply upstream fix for bash-5.2.21. Fixes
<ulink url='&lfs-ticket-root;5420'>#5420</ulink>.</para>
</listitem>
</itemizedlist>
</listitem>
<listitem>
<para>2024-01-21</para>
<itemizedlist>
<listitem>
<para>[xry111] - Apply upstream fix for pkgconf-2.1.0 regression.
Fixes <ulink url='&lfs-ticket-root;5414'>#5414</ulink>.</para>
</listitem>
<listitem>
<para>[xry111] - Update to jinja2-3.1.3 (security fix). Fixes
<ulink url='&lfs-ticket-root;5411'>#5411</ulink>.</para>
</listitem>
<listitem>
<para>[xry111] - Update to bc-6.7.5. Fixes
<ulink url='&lfs-ticket-root;5408'>#5408</ulink>.</para>
</listitem>
<listitem>
<para>[xry111] - Update to attr-2.5.2. Fixes
<ulink url='&lfs-ticket-root;5412'>#5412</ulink>.</para>
</listitem>
<listitem>
<para>[xry111] - Update to ncurses-6.4-20230520 (security fix).
Fixes <ulink url='&lfs-ticket-root;5416'>#5416</ulink>.</para>
</listitem>
<listitem>
<para>[xry111] - Update to markupsafe-2.1.4. Fixes
<ulink url='&lfs-ticket-root;5418'>#5418</ulink>.</para>
</listitem>
<listitem>
<para>[xry111] - Update to linux-6.7.1. Fixes
<ulink url='&lfs-ticket-root;5406'>#5406</ulink>.</para>
</listitem>
<listitem>
<para>[xry111] - Update to iproute2-6.7.0. Fixes
<ulink url='&lfs-ticket-root;5410'>#5410</ulink>.</para>
</listitem>
<listitem>
<para>[xry111] - Update to vim-9.1.0041. Addresses
<para>[bdubbs] - Update to vim-9.1.1418. Addresses
<ulink url='&lfs-ticket-root;4500'>#4500</ulink>.</para>
</listitem>
<listitem>
<para>[xry111] - Update to iana-etc-20240117. Addresses
<ulink url='&lfs-ticket-root;5006'>#5006</ulink>.</para>
<para>[bdubbs] - Update to kbd-2.8.0. Fixes
<ulink url='&lfs-ticket-root;5736'>#5736</ulink>.</para>
</listitem>
<listitem>
<para>[xry111] - Update to shadow-4.14.3. Fixes
<ulink url='&lfs-ticket-root;5413'>#5413</ulink>.</para>
<para>[bdubbs] - Update to systemd-257.6. Fixes
<ulink url='&lfs-ticket-root;5674'>#5674</ulink>.</para>
</listitem>
<listitem>
<para>[xry111] - Fix CVE-2024-0684 for coreutils-9.4. Fixes
<ulink url="&lfs-ticket-root;5417">#5417</ulink>.</para>
<para>[bdubbs] - Update to setuptools-80.9.0. Fixes
<ulink url='&lfs-ticket-root;5728'>#5728</ulink>.</para>
</listitem>
<listitem>
<para>[bdubbs] - Update to meson-1.8.1. Fixes
<ulink url='&lfs-ticket-root;5731'>#5731</ulink>.</para>
</listitem>
<listitem>
<para>[bdubbs] - Update to automake-1.18. Fixes
<ulink url='&lfs-ticket-root;5734'>#5734</ulink>.</para>
</listitem>
<listitem>
<para>[bdubbs] - Update build instructions to accommodate
gcc-15 for bc, expect, ncurses, and gmp.</para>
</listitem>
<listitem>
<para>[bdubbs] - Update to gcc-15.1.0. Fixes
<ulink url='&lfs-ticket-root;5707'>#5707</ulink>.</para>
</listitem>
<listitem>
<para>[bdubbs] - Update to less-678. Fixes
<ulink url='&lfs-ticket-root;5724'>#5724</ulink>.</para>
</listitem>
<listitem>
<para>[bdubbs] - Update to readline-8.3-rc1. Fixes
<ulink url='&lfs-ticket-root;5726'>#5726</ulink>.</para>
</listitem>
<listitem>
<para>[bdubbs] - Update to bash-5.3-rc1. Fixes
<ulink url='&lfs-ticket-root;5714'>#5714</ulink>.</para>
</listitem>
</itemizedlist>
</listitem>
<listitem>
<para>2025-05-15</para>
<itemizedlist>
<listitem>
<para>[bdubbs] - Update to setuptools-80.7.1. Fixes
<ulink url='&lfs-ticket-root;5715'>#5715</ulink>.</para>
</listitem>
<listitem>
<para>[bdubbs] - Update to man-pages-6.14. Fixes
<ulink url='&lfs-ticket-root;5720'>#5720</ulink>.</para>
</listitem>
<listitem>
<para>[bdubbs] - Update to man-db-2.13.1. Fixes
<ulink url='&lfs-ticket-root;5719'>#5719</ulink>.</para>
</listitem>
<listitem>
<para>[bdubbs] - Update to m4-1.4.20. Fixes
<ulink url='&lfs-ticket-root;5722'>#5722</ulink>.</para>
</listitem>
<listitem>
<para>[bdubbs] - Update to linux-6.14.6. Fixes
<ulink url='&lfs-ticket-root;5717'>#5717</ulink>.</para>
</listitem>
<listitem>
<para>[bdubbs] - Update to gettext-0.25. Fixes
<ulink url='&lfs-ticket-root;5718'>#5718</ulink>.</para>
</listitem>
</itemizedlist>
</listitem>
<listitem>
<para>2024-01-18</para>
<para>2025-05-01</para>
<itemizedlist>
<listitem>
<para>[xry111] - Edit a ncurses header to always use the
wide-character ABI compatible with libncursesw.so because we
are faking the 8-bit libncurses.so with it. Fixes
<ulink url="&lfs-ticket-root;5415">#5415</ulink>.</para>
</listitem>
</itemizedlist>
</listitem>
<listitem>
<para>2024-01-09</para>
<itemizedlist>
<listitem>
<para>[renodr] - Fix the definition of the C.UTF-8 locale. Fixes
<ulink url="&lfs-ticket-root;5409">#5409</ulink>.</para>
</listitem>
</itemizedlist>
</listitem>
<listitem>
<para>2023-12-31</para>
<itemizedlist>
<listitem>
<para>[xry111] - Add --enable-default-hash-style=gnu configuring
binutils. Fixes
<ulink url='&lfs-ticket-root;5401'>#5401</ulink>.</para>
</listitem>
<listitem>
<para>[xry111] - Fix CVE-2023-7008 for systemd-255. Fixes
<ulink url='&lfs-ticket-root;5405'>#5405</ulink>.</para>
</listitem>
<listitem>
<para>[xry111] - Update to iana-etc-20231205. Addresses
<ulink url='&lfs-ticket-root;5006'>#5006</ulink>.</para>
</listitem>
<listitem>
<para>[xry111] - Update to tzdata-2023d. Fixes
<ulink url='&lfs-ticket-root;5399'>#5399</ulink>.</para>
</listitem>
<listitem>
<para>[xry111] - Update to linux-6.6.8. Fixes
<ulink url='&lfs-ticket-root;5397'>#5397</ulink>.</para>
</listitem>
<listitem>
<para>[xry111] - Update to meson-1.3.1. Fixes
<ulink url='&lfs-ticket-root;5402'>#5402</ulink>.</para>
</listitem>
<listitem>
<para>[xry111] - Update to grub-2.12. Fixes
<ulink url='&lfs-ticket-root;5396'>#5396</ulink>.</para>
</listitem>
<listitem>
<para>[xry111] - Update to inetutils-2.5. Fixes
<ulink url='&lfs-ticket-root;5404'>#5404</ulink>.</para>
</listitem>
<listitem>
<para>[xry111] - Update to setuptools-69.0.3. Fixes
<ulink url='&lfs-ticket-root;5400'>#5400</ulink>.</para>
</listitem>
<listitem>
<para>[xry111] - Update to xml-parser-2.47. Fixes
<ulink url='&lfs-ticket-root;5403'>#5403</ulink>.</para>
</listitem>
<listitem>
<para>[xry111] - Update to vim-9.0.2189. Addresses
<para>[bdubbs] - Update to vim-9.1.1353. Addresses
<ulink url='&lfs-ticket-root;4500'>#4500</ulink>.</para>
</listitem>
<listitem>
<para>[xry111] - Update to autoconf-2.72. Fixes
<ulink url='&lfs-ticket-root;5398'>#5398</ulink>.</para>
</listitem>
</itemizedlist>
</listitem>
<listitem>
<para>2023-12-16</para>
<itemizedlist>
<listitem>
<para>[xry111] - Update to <phrase revision='sysv'>udev
from </phrase>systemd-255. Fixes
<ulink url='&lfs-ticket-root;5390'>#5390</ulink>.</para>
</listitem>
</itemizedlist>
</listitem>
<listitem>
<para>2023-12-14</para>
<itemizedlist>
<listitem>
<para>[bdubbs] - Update to util-linux v2.39.3. Fixes
<ulink url='&lfs-ticket-root;5388'>#5388</ulink>.</para>
<para>[bdubbs] - Update to setuptools-80.0.1. Fixes
<ulink url='&lfs-ticket-root;5710'>#5710</ulink>.</para>
</listitem>
<listitem>
<para>[bdubbs] - Update to python3-3.12.1. Fixes
<ulink url='&lfs-ticket-root;5392'>#5392</ulink>.</para>
<para>[bdubbs] - Update to packaging-25.0. Fixes
<ulink url='&lfs-ticket-root;5706'>#5706</ulink>.</para>
</listitem>
<listitem>
<para>[bdubbs] - Update to linux-6.6.7. Fixes
<ulink url='&lfs-ticket-root;5387'>#5387</ulink>.</para>
<para>[bdubbs] - Update to meson-1.8.0. Fixes
<ulink url='&lfs-ticket-root;5713'>#5713</ulink>.</para>
</listitem>
<listitem>
<para>[bdubbs] - Update to kbd-2.6.4. Fixes
<ulink url='&lfs-ticket-root;5393'>#5393</ulink>.</para>
<para>[bdubbs] - Update to linux-6.14.4. Fixes
<ulink url='&lfs-ticket-root;5709'>#5709</ulink>.</para>
</listitem>
<listitem>
<para>[bdubbs] - Update to bc-6.7.4. Fixes
<ulink url='&lfs-ticket-root;5389'>#5389</ulink>.</para>
</listitem>
<listitem>
<para>[bdubbs] - Reformat util-linux configure parameters. Fixes
<ulink url='&lfs-ticket-root;5395'>#5395</ulink>.</para>
</listitem>
</itemizedlist>
</listitem>
<listitem>
<para>2023-12-04</para>
<itemizedlist>
<listitem>
<para>[thomas] - Modify commands for install Python docs to avoid
too restrictive permissions on the files and dirs.</para>
</listitem>
</itemizedlist>
</listitem>
<listitem revision='sysv'>
<para>2023-12-01</para>
<itemizedlist>
<listitem>
<para>[xry111] - Restore NIC naming based on physical system
characteristics. Fixes
<ulink url='&lfs-ticket-root;5386'>#5386</ulink>.</para>
</listitem>
</itemizedlist>
</listitem>
<listitem>
<para>2023-11-30</para>
<itemizedlist>
<listitem>
<para>[bdubbs] - Update to vim-9.0.2136. Addresses
<ulink url='&lfs-ticket-root;4500'>#4500</ulink>.</para>
</listitem>
<listitem>
<para>[bdubbs] - Update to iana-etc-20231117. Addresses
<para>[bdubbs] - Update to iana-etc-20250407. Addresses
<ulink url='&lfs-ticket-root;5006'>#5006</ulink>.</para>
</listitem>
<listitem>
<para>[bdubbs] - Update to bc-6.7.3. Fixes
<ulink url='&lfs-ticket-root;5385'>#5385</ulink>.</para>
<para>[bdubbs] - Update to gperf-3.3. Fixes
<ulink url='&lfs-ticket-root;5708'>#5708</ulink>.</para>
</listitem>
<listitem>
<para>[bdubbs] - Update to wheel-0.42.0 (Python Module). Fixes
<ulink url='&lfs-ticket-root;5384'>#5384</ulink>.</para>
</listitem>
<listitem>
<para>[bdubbs] - Update to perl-5.38.2. Fixes
<ulink url='&lfs-ticket-root;5383'>#5383</ulink>.</para>
</listitem>
<listitem>
<para>[bdubbs] - Update to pkgconf-2.1.0. Fixes
<ulink url='&lfs-ticket-root;5382'>#5382</ulink>.</para>
</listitem>
<listitem>
<para>[bdubbs] - Update to readline patches 002 through 007. Fixes
<ulink url='&lfs-ticket-root;5381'>#5381</ulink>.</para>
</listitem>
<listitem>
<para>[bdubbs] - Update to openssl-3.2.0. Fixes
<ulink url='&lfs-ticket-root;5380'>#5380</ulink>.</para>
</listitem>
<listitem>
<para>[bdubbs] - Update to setuptools-69.0.2. Fixes
<ulink url='&lfs-ticket-root;5379'>#5379</ulink>.</para>
</listitem>
<listitem>
<para>[bdubbs] - Update to linux-6.6.3. Fixes
<ulink url='&lfs-ticket-root;5378'>#5378</ulink>.</para>
</listitem>
<listitem>
<para>[bdubbs] - Update to meson-1.3.0. Fixes
<ulink url='&lfs-ticket-root;5377'>#5377</ulink>.</para>
</listitem>
<listitem>
<para>[bdubbs] - Update to gettext-0.22.4. Fixes
<ulink url='&lfs-ticket-root;5376'>#5376</ulink>.</para>
<para>[bdubbs] - Update to elfutils-0.193. Fixes
<ulink url='&lfs-ticket-root;5711'>#5711</ulink>.</para>
</listitem>
</itemizedlist>
</listitem>
<listitem>
<para>2023-11-13</para>
<para>2025-04-15</para>
<itemizedlist>
<listitem>
<para>[xry111] - Update to elfutils-0.190. Fixes
<ulink url='&lfs-ticket-root;5373'>#5373</ulink>.</para>
<para>[bdubbs] - Update to libcap-2.76. Fixes
<ulink url='&lfs-ticket-root;5704'>#5704</ulink>.</para>
</listitem>
<listitem>
<para>[xry111] - Update to vim-9.0.2103. Addresses
<ulink url='&lfs-ticket-root;4500'>#4500</ulink>.</para>
<para>[bdubbs] - Update to perl-5.40.2 (Security update). Fixes
<ulink url='&lfs-ticket-root;5703'>#5703</ulink>.</para>
</listitem>
<listitem>
<para>[xry111] - Update to linux-6.6.1. Fixes
<ulink url='&lfs-ticket-root;5369'>#5369</ulink>.</para>
<para>[bdubbs] - Add packaging-24.2 (Python module). Needed for wheel.
</para>
</listitem>
<listitem>
<para>[xry111] - Update to xz-5.4.5. Fixes
<ulink url='&lfs-ticket-root;5371'>#5371</ulink>.</para>
<para>[bdubbs] - Update to xz-5.8.1. Fixes
<ulink url='&lfs-ticket-root;5694'>#5694</ulink>.</para>
</listitem>
<listitem>
<para>[xry111] - Update to iana-etc-20231107. Addresses
<ulink url='&lfs-ticket-root;5006'>#5006</ulink>.</para>
<para>[bdubbs] - Update to wheel-0.46.1 (Python Module). Fixes
<ulink url='&lfs-ticket-root;5693'>#5693</ulink>.</para>
</listitem>
<listitem>
<para>[xry111] - Update to gawk-5.3.0. Fixes
<ulink url='&lfs-ticket-root;5372'>#5372</ulink>.</para>
<para>[bdubbs] - Update to sysklogd-2.7.2. Fixes
<ulink url='&lfs-ticket-root;5690'>#5690</ulink>.</para>
</listitem>
<listitem>
<para>[xry111] - Update to bash-5.2.21. Fixes
<ulink url='&lfs-ticket-root;5375'>#5375</ulink>.</para>
<para>[bdubbs] - Update to Python3-3.13.3. Fixes
<ulink url='&lfs-ticket-root;5697'>#5697</ulink>.</para>
</listitem>
<listitem>
<para>[xry111] - Update to iproute2-6.6.0. Fixes
<ulink url='&lfs-ticket-root;5374'>#5374</ulink>.</para>
</listitem>
</itemizedlist>
</listitem>
<listitem>
<para>2023-11-01</para>
<itemizedlist>
<listitem>
<para>[bdubbs] - Update to iana-etc-20231019. Addresses
<ulink url='&lfs-ticket-root;5006'>#5006</ulink>.</para>
<para>[bdubbs] - Update to openssl-3.5.0. Fixes
<ulink url='&lfs-ticket-root;5701'>#5701</ulink>.</para>
</listitem>
<listitem>
<para>[bdubbs] - Update to wheel-0.41.3. Fixes
<ulink url='&lfs-ticket-root;5370'>#5370</ulink>.</para>
<para>[bdubbs] - Update to meson-1.7.2. Fixes
<ulink url='&lfs-ticket-root;5691'>#5691</ulink>.</para>
</listitem>
<listitem>
<para>[bdubbs] - Update to shadow-4.14.2. Fixes
<ulink url='&lfs-ticket-root;5368'>#5368</ulink>.</para>
</listitem>
<listitem>
<para>[bdubbs] - Update to openssl-3.1.4. Fixes
<ulink url='&lfs-ticket-root;5367'>#5367</ulink>.</para>
</listitem>
<listitem>
<para>[bdubbs] - Update to texinfo-7.1. Fixes
<ulink url='&lfs-ticket-root;5364'>#5364</ulink>.</para>
</listitem>
<listitem>
<para>[bdubbs] - Update to meson-1.2.3. Fixes
<ulink url='&lfs-ticket-root;5366'>#5366</ulink>.</para>
</listitem>
<listitem>
<para>[bdubbs] - Update to bc-6.7.2. Fixes
<ulink url='&lfs-ticket-root;5363'>#5363</ulink>.</para>
</listitem>
<listitem>
<para>[bdubbs] - Update to linux-6.5.9. Fixes
<ulink url='&lfs-ticket-root;5365'>#5365</ulink>.</para>
</listitem>
<listitem>
<para>[bdubbs] - Update to Python-3.12.0. Fixes
<ulink url='&lfs-ticket-root;5357'>#5357</ulink>.</para>
</listitem>
<listitem>
<para>[bdubbs] - Add setuptools-68.2.2. Fixes
<ulink url='&lfs-ticket-root;5358'>#5358</ulink>.</para>
</listitem>
</itemizedlist>
</listitem>
<listitem>
<para>2023-10-15</para>
<itemizedlist>
<listitem>
<para>[bdubbs] - Update to linux-6.5.7. Fixes
<ulink url='&lfs-ticket-root;5362'>#5362</ulink>.</para>
</listitem>
<listitem>
<para>[bdubbs] - Update to shadow-4.14.1. Fixes
<ulink url='&lfs-ticket-root;5361'>#5361</ulink>.</para>
</listitem>
<listitem>
<para>[bdubbs] - Update to gettext-0.22.3. Fixes
<ulink url='&lfs-ticket-root;5359'>#5359</ulink>.</para>
</listitem>
</itemizedlist>
</listitem>
<listitem>
<para>2023-10-03</para>
<itemizedlist>
<listitem>
<para>[xry111] - Update Glibc upstream fixes patch to fix
CVE-2023-4911.</para>
</listitem>
</itemizedlist>
</listitem>
<listitem>
<para>2023-10-01</para>
<itemizedlist>
<listitem>
<para>[bdubbs] - Disable building nscd in glibc. Fixes
<ulink url='&lfs-ticket-root;5349'>#5349</ulink>.</para>
</listitem>
<listitem>
<para>[bdubbs] - Update to iana-etc-20230929. Addresses
<ulink url='&lfs-ticket-root;5006'>#5006</ulink>.</para>
</listitem>
<listitem>
<para>[bdubbs] - Update to vim-9.0.1968. Addresses
<ulink url='&lfs-ticket-root;4500'>#4500</ulink>.</para>
</listitem>
<listitem>
<para>[bdubbs] - Update to openssl-3.1.3. Fixes
<ulink url='&lfs-ticket-root;5350'>#5350</ulink>.</para>
</listitem>
<listitem>
<para>[bdubbs] - Update to meson-1.2.2. Fixes
<ulink url='&lfs-ticket-root;5356'>#5356</ulink>.</para>
</listitem>
<listitem>
<para>[bdubbs] - Update to man-db-2.12.0. Fixes
<ulink url='&lfs-ticket-root;5354'>#5354</ulink>.</para>
</listitem>
<listitem>
<para>[bdubbs] - Update to linux-6.5.5. Fixes
<ulink url='&lfs-ticket-root;5352'>#5352</ulink>.</para>
</listitem>
<listitem>
<para>[bdubbs] - Update to kmod-31. Fixes
<ulink url='&lfs-ticket-root;5355'>#5355</ulink>.</para>
</listitem>
<listitem>
<para>[bdubbs] - Update to kbd-2.6.3. Fixes
<ulink url='&lfs-ticket-root;5351'>#5361</ulink>.</para>
</listitem>
<listitem>
<para>[bdubbs] - Update to gettext-0.22.2. Fixes
<ulink url='&lfs-ticket-root;5348'>#5348</ulink>.</para>
</listitem>
<listitem>
<para>[bdubbs] - Update to bc-6.7.0. Fixes
<ulink url='&lfs-ticket-root;5353'>#5353</ulink>.</para>
</listitem>
</itemizedlist>
</listitem>
<listitem>
<para>2023-09-24</para>
<itemizedlist>
<listitem>
<para>[xry111] - Update Glibc upstream fixes patch to plug a
memory leak introduced by the security fix.</para>
</listitem>
</itemizedlist>
</listitem>
<listitem>
<para>2023-09-17</para>
<itemizedlist>
<listitem>
<para>[xry111] - Update to linux-6.5.3. Fixes
<ulink url='&lfs-ticket-root;5343'>#5343</ulink>.</para>
</listitem>
<listitem>
<para>[xry111] - Update to iana-etc-20230912. Addresses
<ulink url='&lfs-ticket-root;5006'>#5006</ulink>.</para>
</listitem>
<listitem>
<para>[xry111] - Update to iproute2-6.5.0. Fixes
<ulink url='&lfs-ticket-root;5342'>#5342</ulink>.</para>
</listitem>
</itemizedlist>
</listitem>
<listitem>
<para>2023-09-13</para>
<itemizedlist>
<listitem>
<para>[xry111] - Fix CVE-2023-4806 for Glibc-2.38. Fixes
<ulink url='&lfs-ticket-root;5347'>#5347</ulink>.</para>
</listitem>
</itemizedlist>
</listitem>
<listitem>
<para>2023-09-12</para>
<itemizedlist>
<listitem>
<para>[xry111] - Fix CVE-2023-4527 for Glibc-2.38. Fixes
<ulink url='&lfs-ticket-root;5346'>#5346</ulink>.</para>
</listitem>
</itemizedlist>
</listitem>
<listitem>
<para>2023-09-07</para>
<itemizedlist>
<listitem>
<para>[xry111] - Fix an issue in pkgconf-2.0.3 causing
BLFS packages fail to build. Fixes
<ulink url='&lfs-ticket-root;5341'>#5341</ulink>.</para>
</listitem>
</itemizedlist>
</listitem>
<listitem>
<para>2023-09-05</para>
<itemizedlist>
<listitem>
<para>[xry111] - Move pkgconf before binutils for binutils
building system to detect zstd properly. Fixes
<ulink url='&lfs-ticket-root;5340'>#5340</ulink>.</para>
</listitem>
<listitem>
<para>[xry111] - Update to linux-6.5.1. Fixes
<ulink url='&lfs-ticket-root;5332'>#5332</ulink>.</para>
</listitem>
<listitem>
<para>[xry111] - Update to pkgconf-2.0.3. Fixes
<ulink url='&lfs-ticket-root;5339'>#5339</ulink>.</para>
</listitem>
<listitem>
<para>[xry111] - Update to dbus-1.14.10. Fixes
<ulink url='&lfs-ticket-root;5337'>#5337</ulink>.</para>
</listitem>
</itemizedlist>
</listitem>
<listitem>
<para>2023-09-04</para>
<itemizedlist>
<listitem>
<para>[bdubbs] - Move caution regarding building by mixing
different version of LFS to General Compilation Instructions. Fixes
<ulink url='&lfs-ticket-root;5338'>#5338</ulink>.</para>
</listitem>
</itemizedlist>
</listitem>
<listitem>
<para>2023-09-02</para>
<itemizedlist>
<listitem>
<para>[xry111] - Add --no-cache-dir option for pip3 wheel
commands. Addresses
<ulink url='&blfs-ticket-root;18466'>BLFS #18466</ulink>.</para>
</listitem>
<listitem>
<para>[bdubbs] - Update to vim-9.0.1837. Addresses
<ulink url='&lfs-ticket-root;4500'>#4500</ulink>.</para>
</listitem>
<listitem>
<para>[bdubbs] - Update to zlib-1.3. Fixes
<ulink url='&lfs-ticket-root;5324'>#5324</ulink>.</para>
</listitem>
<listitem>
<para>[bdubbs] - Update to wheel-0.41.2 (Python Module). Fixes
<ulink url='&lfs-ticket-root;5328'>#5328</ulink>.</para>
</listitem>
<listitem>
<para>[bdubbs] - Update to util-linux-2.39.2. Fixes
<ulink url='&lfs-ticket-root;5322'>#5322</ulink>.</para>
<para>[bdubbs] - Update to linux-6.14.2. Fixes
<ulink url='&lfs-ticket-root;5680'>#5680</ulink>.</para>
</listitem>
<listitem revision='sysv'>
<para>[bdubbs] - Update to sysvinit-3.08. Fixes
<ulink url='&lfs-ticket-root;5321'>#5321</ulink>.</para>
<para>[bdubbs] - Update to libffi-3.4.8. Fixes
<ulink url='&lfs-ticket-root;5700'>#5700</ulink>.</para>
</listitem>
<listitem>
<para>[bdubbs] - Update to shadow-4.14.0. Fixes
<ulink url='&lfs-ticket-root;5319'>#5319</ulink>.</para>
<para>[bdubbs] - Update to iproute2-6.14.0. Fixes
<ulink url='&lfs-ticket-root;5682'>#5682</ulink>.</para>
</listitem>
<listitem>
<para>[bdubbs] - Update to Python-3.11.5. Fixes
<ulink url='&lfs-ticket-root;5330'>#5330</ulink>.</para>
<para>[bdubbs] - Update to gzip-1.14. Fixes
<ulink url='&lfs-ticket-root;5699'>#5699</ulink>.</para>
</listitem>
<listitem>
<para>[bdubbs] - Update to procps-ng-4.0.4 (security fix
for 32-bit systems). Fixes
<ulink url='&lfs-ticket-root;5335'>#5335</ulink>.</para>
<para>[bdubbs] - Update to grep-3.12. Fixes
<ulink url='&lfs-ticket-root;5702'>#5702</ulink>.</para>
</listitem>
<listitem>
<para>[bdubbs] - Update to pkgconf-2.0.2. Fixes
<ulink url='&lfs-ticket-root;5323'>#5323</ulink>.</para>
<para>[bdubbs] - Update to gperf-3.2.1. Fixes
<ulink url='&lfs-ticket-root;5695'>#5695</ulink>.</para>
</listitem>
<listitem>
<para>[bdubbs] - Update to mpfr-4.2.1. Fixes
<ulink url='&lfs-ticket-root;5326'>#5326</ulink>.</para>
<para>[bdubbs] - Update to gawk-5.3.2. Fixes
<ulink url='&lfs-ticket-root;5692'>#5692</ulink>.</para>
</listitem>
<listitem>
<para>[bdubbs] - Update to kbd-2.6.2. Fixes
<ulink url='&lfs-ticket-root;5318'>#5318</ulink>.</para>
<para>[bdubbs] - Update to diffutils-3.12. Fixes
<ulink url='&lfs-ticket-root;5696'>#5696</ulink>.</para>
</listitem>
<listitem>
<para>[bdubbs] - Update to gzip-1.13. Fixes
<ulink url='&lfs-ticket-root;5325'>#5325</ulink>.</para>
</listitem>
<listitem>
<para>[bdubbs] - Update to coreutils-9.4. Fixes
<ulink url='&lfs-ticket-root;5334'>#5334</ulink>.</para>
</listitem>
<listitem revision='systemd'>
<para>[bdubbs] - Specify the 'nobody-group' for systemd. Fixes
<ulink url='&lfs-ticket-root;5333'>#5333</ulink>.</para>
</listitem>
<listitem>
<para>[bdubbs] - Remove unused usb group. Fixes
<ulink url='&lfs-ticket-root;5331'>#5331</ulink>.</para>
<para>[bdubbs] - Update to coreutils-9.7. Fixes
<ulink url='&lfs-ticket-root;5698'>#5698</ulink>.</para>
</listitem>
</itemizedlist>
</listitem>
<listitem>
<para>2023-09-01</para>
<para>2025-04-01</para>
<itemizedlist>
<listitem>
<para>[bdubbs] - LFS-12.0 released.</para>
<para>[bdubbs] - Update to vim-9.1.1263. Addresses
<ulink url='&lfs-ticket-root;4500'>#4500</ulink>.</para>
</listitem>
<listitem>
<para>[bdubbs] - Update to iana-etc-20250328. Addresses
<ulink url='&lfs-ticket-root;5006'>#5006</ulink>.</para>
</listitem>
<listitem>
<para>[bdubbs] - Update to xz-5.8.0. Fixes
<ulink url='&lfs-ticket-root;5684'>#5684</ulink>.</para>
</listitem>
<listitem>
<para>[bdubbs] - Update to util-linux-2.41. Fixes
<ulink url='&lfs-ticket-root;5648'>#5648</ulink>.</para>
</listitem>
<listitem>
<para>[bdubbs] - Update to tzdata-2025b. Fixes
<ulink url='&lfs-ticket-root;5681'>#5681</ulink>.</para>
</listitem>
<listitem revision='sysv'>
<para>[bdubbs] - Update to shadow-4.17.4. Fixes
<ulink url='&lfs-ticket-root;5678'>#5678</ulink>.</para>
</listitem>
<listitem>
<para>[bdubbs] - Update to setuptools-78.1.0. Fixes
<ulink url='&lfs-ticket-root;5676'>#5676</ulink>.</para>
</listitem>
<listitem>
<para>[bdubbs] - Update to patch-2.8. Fixes
<ulink url='&lfs-ticket-root;5689'>#5689</ulink>.</para>
</listitem>
<listitem>
<para>[bdubbs] - Update to mpfr-4.2.2. Fixes
<ulink url='&lfs-ticket-root;5677'>#5677</ulink>.</para>
</listitem>
<listitem>
<para>[bdubbs] - Update to kmod-34.2. Fixes
<ulink url='&lfs-ticket-root;5688'>#5688</ulink>.</para>
</listitem>
<listitem>
<para>[bdubbs] - Update to gdbm-1.25. Fixes
<ulink url='&lfs-ticket-root;5679'>#5679</ulink>.</para>
</listitem>
<listitem>
<para>[bdubbs] - Update to flit_core-3.12.0. Fixes
<ulink url='&lfs-ticket-root;5683'>#5683</ulink>.</para>
</listitem>
<listitem>
<para>[bdubbs] - Update to expat-2.7.1. Fixes
<ulink url='&lfs-ticket-root;5685'>#5685</ulink>.</para>
</listitem>
</itemizedlist>
</listitem>
<listitem>
<para>2025-03-15</para>
<itemizedlist>
<listitem>
<para>[bdubbs] - Update to vim-9.1.1202. Addresses
<ulink url='&lfs-ticket-root;4500'>#4500</ulink>.</para>
</listitem>
<listitem>
<para>[bdubbs] - Update to iana-etc-20250304. Addresses
<ulink url='&lfs-ticket-root;5006'>#5006</ulink>.</para>
</listitem>
<listitem revision='sysv'>
<para>[bdubbs] - Update to sysklogd-2.7.1. Fixes
<ulink url='&lfs-ticket-root;5668'>#5668</ulink>.</para>
</listitem>
<listitem>
<para>[bdubbs] - Update to setuptools-76.0.0. Fixes
<ulink url='&lfs-ticket-root;5665'>#5665</ulink>.</para>
</listitem>
<listitem>
<para>[bdubbs] - Update to pkgconf-2.4.3. Fixes
<ulink url='&lfs-ticket-root;5672'>#5672</ulink>.</para>
</listitem>
<listitem>
<para>[bdubbs] - Update to man-pages-6.13. Fixes
<ulink url='&lfs-ticket-root;5673'>#5673</ulink>.</para>
</listitem>
<listitem>
<para>[bdubbs] - Update to linux-6.13.7. Fixes
<ulink url='&lfs-ticket-root;5664'>#5664</ulink>.</para>
</listitem>
<listitem>
<para>[bdubbs] - Update to libcap-2.75. Fixes
<ulink url='&lfs-ticket-root;5667'>#5667</ulink>.</para>
</listitem>
<listitem>
<para>[bdubbs] - Update to kmod-34.1. Fixes
<ulink url='&lfs-ticket-root;5671'>#5671</ulink>.</para>
</listitem>
<listitem>
<para>[bdubbs] - Update to jinja2-3.1.6. Fixes
<ulink url='&lfs-ticket-root;5670'>#5670</ulink>.</para>
</listitem>
<listitem>
<para>[bdubbs] - Update to expat-2.7.0. Fixes
<ulink url='&lfs-ticket-root;5675'>#5675</ulink>.</para>
</listitem>
<listitem revision='systemd'>
<para>[bdubbs] - Update to dbus-1.16.2. Fixes
<ulink url='&lfs-ticket-root;5663'>#5663</ulink>.</para>
</listitem>
</itemizedlist>
</listitem>
<listitem>
<para>2025-03-05</para>
<itemizedlist>
<listitem>
<para>[bdubbs] - LFS-12.3 released.</para>
</listitem>
</itemizedlist>
</listitem>

View File

@ -26,36 +26,33 @@
<!--<listitem>
<para>None</para>
</listitem>-->
<listitem>
<para>Acl-&acl-version;</para>
</listitem>
<listitem>
<para>Attr-&attr-version;</para>
</listitem>
<listitem>
<para>Autoconf-&autoconf-version;</para>
</listitem>
<!--<listitem>
<para>Automake-&automake-version;</para>
<para>Acl-&acl-version;</para>
</listitem>-->
<!--<listitem>
<para>Attr-&attr-version;</para>
</listitem>-->
<!--<listitem>
<para>Autoconf-&autoconf-version;</para>
</listitem>-->
<listitem>
<para>Automake-&automake-version;</para>
</listitem>
<listitem>
<para>Bash-&bash-version;</para>
</listitem>
<listitem>
<!--<listitem>
<para>Bc-&bc-version;</para>
</listitem>
<listitem>
</listitem>-->
<!--<listitem>
<para>Binutils-&binutils-version;</para>
</listitem>
</listitem>-->
<!--<listitem>
<para>Bison-&bison-version;</para>
</listitem>-->
<!--<listitem>
<para>Bzip2-&bzip2-version;</para>
</listitem>-->
<!--<listitem>
<para>Check-&check-version;</para>
</listitem>-->
<listitem>
<para>Coreutils-&coreutils-version;</para>
</listitem>
@ -65,9 +62,9 @@
<listitem revision="systemd">
<para>D-Bus-&dbus-version;</para>
</listitem>
<!--<listitem>
<listitem>
<para>Diffutils-&diffutils-version;</para>
</listitem>-->
</listitem>
<!--<listitem>
<para>E2fsprogs-&e2fsprogs-version;</para>
</listitem>-->
@ -86,48 +83,48 @@
<!--<listitem>
<para>Flex-&flex-version;</para>
</listitem>-->
<!--<listitem>
<para>Flit-core-&flit-core-version;</para>
</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>
</listitem>
<listitem>
<para>GDBM-&gdbm-version;</para>
</listitem>-->
</listitem>
<listitem>
<para>Gettext-&gettext-version;</para>
</listitem>
<listitem>
<!--<listitem>
<para>Glibc-&glibc-version;</para>
</listitem>
</listitem>-->
<!--<listitem>
<para>GMP-&gmp-version;</para>
</listitem>-->
<!--<listitem>
<listitem>
<para>Gperf-&gperf-version;</para>
</listitem>-->
<!--<listitem>
</listitem>
<listitem>
<para>Grep-&grep-version;</para>
</listitem>-->
</listitem>
<!--<listitem>
<para>Groff-&groff-version;</para>
</listitem>-->
<listitem>
<!--<listitem>
<para>GRUB-&grub-version;</para>
</listitem>
</listitem>-->
<listitem>
<para>Gzip-&gzip-version;</para>
</listitem>
<listitem>
<para>Iana-Etc-&iana-etc-version;</para>
</listitem>
<listitem>
<!--<listitem>
<para>Inetutils-&inetutils-version;</para>
</listitem>
</listitem>-->
<!--<listitem>
<para>Intltool-&intltool-version;</para>
</listitem>-->
@ -143,33 +140,39 @@
<listitem>
<para>Kmod-&kmod-version;</para>
</listitem>
<!--<listitem>
<listitem>
<para>Less-&less-version;</para>
</listitem>-->
</listitem>
<!--<listitem>
<para>LFS-Bootscripts-&lfs-bootscripts-version;</para>
</listitem>-->
<!--<listitem>
<listitem>
<para>Libcap-&libcap-version;</para>
</listitem>-->
</listitem>
<listitem>
<para>Libelf from Elfutils-&elfutils-version;</para>
</listitem>
<!--<listitem>
<listitem>
<para>Libffi-&libffi-version;</para>
</listitem>-->
</listitem>
<!--<listitem>
<para>Libpipeline-&libpipeline-version;</para>
</listitem>-->
<!--<listitem>
<para>Libtool-&libtool-version;</para>
</listitem>-->
<!--<listitem>
<para>Libxcrypt-&libxcrypt-version;</para>
</listitem>-->
<listitem>
<para>Linux-&linux-version;</para>
</listitem>
<!--<listitem>
<para>M4-&m4-version;</para>
<para>Lz4-&lz4-version;</para>
</listitem>-->
<listitem>
<para>M4-&m4-version;</para>
</listitem>
<!--<listitem>
<para>Make-&make-version;</para>
</listitem>-->
@ -179,9 +182,9 @@
<listitem>
<para>Man-pages-&man-pages-version;</para>
</listitem>
<listitem>
<!--<listitem>
<para>MarkupSafe-&markupsafe-version;</para>
</listitem>
</listitem>-->
<listitem>
<para>Meson-&meson-version;</para>
</listitem>
@ -191,63 +194,63 @@
<listitem>
<para>MPFR-&mpfr-version;</para>
</listitem>
<listitem>
<!--<listitem>
<para>Ncurses-&ncurses-version;</para>
</listitem>
</listitem>-->
<!--<listitem>
<para>Ninja-&ninja-version;</para>
</listitem>-->
<listitem>
<para>OpenSSL-&openssl-version;</para>
</listitem>
<!--<listitem>
<listitem>
<para>Patch-&patch-version;</para>
</listitem>-->
</listitem>
<listitem>
<para>Perl-&perl-version;</para>
</listitem>
<listitem>
<para>Pkgconf-&pkgconf-version;</para>
</listitem>
<listitem>
<!--<listitem>
<para>Procps-ng-&procps-ng-version;</para>
</listitem>
</listitem>-->
<!--<listitem>
<para>Psmisc-&psmisc-version;</para>
</listitem>-->
<listitem>
<para>Python-&python-version;</para>
</listitem>
<!--<listitem>
<listitem>
<para>Readline-&readline-version;</para>
</listitem>-->
</listitem>
<!--<listitem>
<para>Sed-&sed-version;</para>
</listitem>-->
<listitem> <!-- After version 12.1 release - see Added -->
<listitem>
<para>Setuptools-&setuptools-version;</para>
</listitem>
<listitem>
<para>Shadow-&shadow-version;</para>
</listitem>
<!--<listitem revision="sysv">
<para>Sysklogd-&sysklogd-version;</para>
</listitem>-->
<!--<listitem>
<para>Systemd-&systemd-version;</para>
</listitem>-->
<listitem revision="sysv">
<para>SysVinit-&sysvinit-version;</para>
<para>Sysklogd-&sysklogd-version;</para>
</listitem>
<listitem>
<para>Systemd-&systemd-version;</para>
</listitem>
<!--<listitem revision="sysv">
<para>SysVinit-&sysvinit-version;</para>
</listitem>-->
<!--<listitem>
<para>Tar-&tar-version;</para>
</listitem>-->
<!--<listitem>
<para>Tcl-&tcl-version;</para>
</listitem>-->
<listitem>
<!--<listitem>
<para>Texinfo-&texinfo-version;</para>
</listitem>
</listitem>-->
<listitem>
<para>Tzdata-&tzdata-version;</para>
</listitem>
@ -263,15 +266,15 @@
<listitem>
<para>Wheel-&wheel-version;</para>
</listitem>
<listitem>
<!--<listitem>
<para>XML::Parser-&xml-parser-version;</para>
</listitem>
</listitem>-->
<listitem>
<para>Xz-&xz-version;</para>
</listitem>
<listitem>
<!--<listitem>
<para>Zlib-&zlib-version;</para>
</listitem>
</listitem>-->
<!--<listitem>
<para>Zstd-&zstd-version;</para>
</listitem>-->
@ -291,19 +294,13 @@
<listitem><para></para></listitem> <!-- satisfy build -->
<listitem>
<para>&bash-upstream-fixes-patch;</para>
<para>Packaging-&packaging-version;</para>
</listitem>
<listitem>
<para>&readline-fixes-patch;</para>
<para>coreutils-9.7-upstream_fix-1.patch</para>
</listitem>
<listitem>
<para>setuptools-&setuptools-version;</para>
</listitem>
<listitem>
<para>&systemd-upstream-patch;</para>
<para>perl-5.40.2-upstream_fix-1.patch</para>
</listitem>
</itemizedlist>
@ -311,19 +308,9 @@
<itemizedlist>
<title>Removed:</title>
<listitem><para></para></listitem> <!-- satisfy build -->
<listitem>
<para>glibc-2.38-memalign_fix-1.patch</para>
<para>Check-0.15.2</para>
</listitem>
<listitem>
<para>grub-2.06-upstream_fixes-1.patch</para>
</listitem>
<listitem>
<para>readline-8.2-upstream_fix-1.patch</para>
</listitem>
</itemizedlist>
</sect1>

View File

@ -8,7 +8,7 @@
<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
@ -28,8 +28,24 @@
<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,29 +55,40 @@
<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 must be bash to ensure that the
<filename>/root/.bash_profile</filename> file is incorporated as a part of
<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 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
export command ahead of the test for non-interactive use.</para>
commands ahead of the test for non-interactive use.</para>
</note>

View File

@ -50,7 +50,7 @@
</varlistentry>
</variablelist>
<para>Other file systems, including FAT32, NTFS, ReiserFS, JFS, and XFS are
<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>

View File

@ -100,7 +100,7 @@
<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 Feb 2024, &min-kernel; is the oldest kernel release still
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

View File

@ -42,6 +42,15 @@ 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

View File

@ -68,7 +68,8 @@
</listitem>
<listitem>
<para>A few operations, from <quote>Changing Ownership</quote> to
<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 &root; user.</para>
@ -86,7 +87,7 @@
and, as <systemitem class="username">root</systemitem>, running the
commands in
<xref linkend='ch-tools-bindmount'/> and
<xref linkend='ch-tools-kernfsmount'/>.</para>
<xref linkend='ch-tools-kernfsmount' role='.'/></para>
</listitem>
</itemizedlist>
</sect2>

View File

@ -22,8 +22,9 @@
<para>For some packages, the release tarball and the (Git or SVN)
repository snapshot tarball for that release may be published with
similar file names. A release tarball contains generated files (for
example, a <command>configure</command> script generated by
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

View File

@ -110,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>
@ -489,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>
@ -588,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>
@ -705,7 +714,7 @@
</varlistentry>
<varlistentry>
<term>Systemd Man Pages(&systemd-version;) - <token>&systemd-man-size;</token>:</term>
<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>
@ -721,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>
@ -813,8 +822,7 @@
<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/tags</ulink>.
<ulink url="https://github.com/vim/vim/tags"/>.
</para>
</note>
</listitem>

View File

@ -25,22 +25,21 @@
<para>MD5 sum: <literal>&autoconf-fixes-patch-md5;</literal></para>
</listitem>
</varlistentry>
-->
<varlistentry>
<term>Bash Upstream Fixes Patch - <token>&bash-upstream-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-upstream-fixes-patch;"/></para>
<para>MD5 sum: <literal>&bash-upstream-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 LTO Fix Patch - <token>&binutils-lto-patch-size;</token>:</term>
<term>Binutils Upstream Fixes Patch - <token>&binutils-upstream-patch-size;</token>:</term>
<listitem>
<para>Download: <ulink url="&patches-root;&binutils-lto-patch;"/></para>
<para>MD5 sum: <literal>&binutils-lto-patch-md5;</literal></para>
<para>Download: <ulink url="&patches-root;&binutils-upstream-patch;"/></para>
<para>MD5 sum: <literal>&binutils-upstream-patch-md5;</literal></para>
</listitem>
</varlistentry>
-->
@ -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>
@ -59,15 +66,15 @@
<para>MD5 sum: <literal>&coreutils-i18n-patch-md5;</literal></para>
</listitem>
</varlistentry>
<!--
<varlistentry>
<term>Coreutils Chmod Fix Patch - <token>&coreutils-chmod-patch-size;</token>:</term>
<term>Expect GCC15 Patch - <token>&expect-gcc15-patch-size;</token>:</term>
<listitem>
<para>Download: <ulink url="&patches-root;&coreutils-chmod-patch;"/></para>
<para>MD5 sum: <literal>&coreutils-chmod-patch-md5;</literal></para>
<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>
@ -76,12 +83,13 @@
<para>MD5 sum: <literal>&gcc-upstream-fixes-patch-md5;</literal></para>
</listitem>
</varlistentry>
-->
<!--
<varlistentry>
<term>Glibc Upstream Fixes Patch - <token>&glibc-upstream-fixes-patch-size;</token>:</term>
<term>Glibc Upstream Fix Patch - <token>&glibc-upstream-patch-size;</token>:</term>
<listitem>
<para>Download: <ulink url="&patches-root;&glibc-upstream-fixes-patch;"/></para>
<para>MD5 sum: <literal>&glibc-upstream-fixes-patch-md5;</literal></para>
<para>Download: <ulink url="&patches-root;&glibc-upstream-patch;"/></para>
<para>MD5 sum: <literal>&glibc-upstream-patch-md5;</literal></para>
</listitem>
</varlistentry>
-->
@ -117,31 +125,33 @@
</listitem>
</varlistentry>
-->
<!--
<varlistentry>
<term>Pkgconf Upstream Fix Patch - <token>&pkgconf-upstream-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;&pkgconf-upstream-fix-patch;"/></para>
<para>MD5 sum: <literal>&pkgconf-upstream-fix-patch-md5;</literal></para>
</listitem>
</varlistentry>
-->
<varlistentry>
<term>Readline Upstream Fix Patch - <token>&readline-fixes-patch-size;</token>:</term>
<listitem>
<para>Download: <ulink url="&patches-root;&readline-fixes-patch;"/></para>
<para>MD5 sum: <literal>&readline-fixes-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-patch-size;</token>:</term>
<listitem>
@ -149,6 +159,7 @@
<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>

View File

@ -26,9 +26,9 @@
unit of time.</para>
<para>For example, consider a package whose compilation time is 4.5
SBUs. This means that if your 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 the example package.
<emphasis>approximately</emphasis> 18 minutes to build the example package.
Fortunately, most build times are shorter than one SBU.</para>
<para>SBUs are not entirely accurate because they depend on many
@ -36,6 +36,36 @@
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>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
@ -44,10 +74,11 @@
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 are based upon using four cores (-j4). The
<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

@ -20,8 +20,8 @@
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>This is what the command line options mean:</title>
@ -74,15 +74,15 @@ useradd -s /bin/bash -g lfs -m -k /dev/null lfs</userinput></screen>
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 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>
<note><para>In some host systems, the following <command>su</command> command does not complete
@ -94,7 +94,7 @@ esac</userinput></screen>
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.

View File

@ -76,11 +76,8 @@ EOF</userinput></screen>
<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
<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).</para>
<para>Setting the umask as we've already explained in
<xref linkend='ch-partitioning-aboutlfs' role='.'/></para>
</listitem>
</varlistentry>

View File

@ -5,7 +5,7 @@
%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">
@ -76,6 +76,7 @@ cd build</userinput></screen>
--disable-nls \
--enable-gprofng=no \
--disable-werror \
--enable-new-dtags \
--enable-default-hash-style=gnu</userinput></screen>
<variablelist>
@ -133,6 +134,17 @@ 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>

View File

@ -139,7 +139,7 @@ cd build</userinput></screen>
<listitem>
<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. The
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.

View File

@ -90,10 +90,9 @@ cd build</userinput></screen>
--prefix=/usr \
--host=$LFS_TGT \
--build=$(../scripts/config.guess) \
--enable-kernel=&min-kernel; \
--with-headers=$LFS/usr/include \
--disable-nscd \
libc_cv_slibdir=/usr/lib</userinput></screen>
libc_cv_slibdir=/usr/lib \
--enable-kernel=&min-kernel;</userinput></screen>
<variablelist>
<title>The meaning of the configure options:</title>
@ -116,16 +115,6 @@ cd build</userinput></screen>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>--with-headers=$LFS/usr/include</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>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>libc_cv_slibdir=/usr/lib</parameter></term>
<listitem>
@ -187,9 +176,9 @@ 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 is installed in <filename class="directory">$LFS
</filename>, which will become the root directory in <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>
@ -200,32 +189,98 @@ cd build</userinput></screen>
<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(){}' | $LFS_TGT-gcc -xc -
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 as shown above, or there is 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.</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 file:</para>
<screen><userinput>grep -E -o "$LFS/lib.*/S?crt[1in].*succeeded" dummy.log</userinput></screen>
<screen><userinput>rm -v 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>
<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

View File

@ -60,13 +60,13 @@ cd build</userinput></screen>
<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>

View File

@ -42,7 +42,11 @@
<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 \

View File

@ -55,7 +55,7 @@
produced binaries mistakenly linked against libraries from the host
distro. Work around this issue:</para>
<screen><userinput remap="pre">sed '6009s/$add_dir//' -i ltmain.sh</userinput></screen>
<screen><userinput remap="pre">sed '6031s/$add_dir//' -i ltmain.sh</userinput></screen>
<para>Create a separate build directory again:</para>
@ -73,6 +73,7 @@ cd build</userinput></screen>
--enable-gprofng=no \
--disable-werror \
--enable-64-bit-bfd \
--enable-new-dtags \
--enable-default-hash-style=gnu</userinput></screen>
<variablelist>

View File

@ -47,8 +47,36 @@
<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>
<screen><userinput remap="make">make</userinput></screen>

View File

@ -83,24 +83,24 @@ cd build</userinput></screen>
<para>Now prepare GCC for compilation:</para>
<screen><userinput remap="configure">../configure \
--build=$(../config.guess) \
--host=$LFS_TGT \
--target=$LFS_TGT \
LDFLAGS_FOR_TARGET=-L$PWD/$LFS_TGT/libgcc \
--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++</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 -->
@ -124,8 +124,8 @@ cd build</userinput></screen>
<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
previously compiled GCC binaries&mdash;those binaries won't run on the
host. The GCC build system will attempt to use the host's
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
@ -138,10 +138,11 @@ cd build</userinput></screen>
<term><parameter>LDFLAGS_FOR_TARGET=...</parameter></term>
<listitem>
<para>Allow <filename class="libraryfile">libstdc++</filename> to
use the shared <filename class="libraryfile">libgcc</filename> being
built in this pass, instead of the static version that was built in GCC
pass 1. This is necessary to support C++ exception
handling.</para>
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>
@ -149,12 +150,10 @@ cd build</userinput></screen>
<term><parameter>--disable-libsanitizer</parameter></term>
<listitem>
<para>Disable GCC sanitizer runtime libraries. They are not
needed for the temporary installation. This switch is necessary
to build GCC without
<systemitem class='library'>libcrypt</systemitem> installed for
the target. In <xref linkend='ch-tools-gcc-pass1'/> it was
implied by <parameter>--disable-libstdcxx</parameter>, but now we
have to explicitly pass it.</para>
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

@ -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

@ -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

@ -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>
@ -70,7 +69,7 @@ popd</userinput></screen>
--without-debug \
--without-ada \
--disable-stripping \
--enable-widec</userinput></screen>
AWK=gawk</userinput></screen>
<variablelist>
<title>The meaning of the new configure options:</title>
@ -134,19 +133,15 @@ popd</userinput></screen>
</varlistentry>
<varlistentry>
<term><parameter>--enable-widec</parameter></term>
<term><parameter>AWK=gawk</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>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>
@ -155,28 +150,14 @@ popd</userinput></screen>
<para>Install the package:</para>
<screen><userinput remap="install">make DESTDIR=$LFS TIC_PATH=$(pwd)/build/progs/tic install
<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>
<!--
<para>Remove an unneeded static library not handled by
<command>configure</command>:</para>
<screen><userinput remap="install">rm -v $LFS/usr/lib/libncurses++w.a</userinput></screen>
-->
<variablelist>
<title>The meaning of the install options:</title>
<varlistentry>
<term><parameter>TIC_PATH=$(pwd)/build/progs/tic</parameter></term>
<listitem>
<para>We need to pass the path of the newly built
<command>tic</command> program that runs on the building machine, so
the terminal database can be created without errors.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><command>ln -sv libncursesw.so $LFS/usr/lib/libncurses.so</command></term>
<listitem>

View File

@ -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

@ -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

@ -88,7 +88,8 @@
make sure you have set <envar>LFS</envar>.
</para>
<para>
This has been discussed in <xref linkend='ch-partitioning-aboutlfs'/>.
This has been discussed in
<xref linkend='ch-partitioning-aboutlfs' role='.'/>
</para>
</important>

View File

@ -180,7 +180,11 @@ EOF</userinput></screen>
<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>

View File

@ -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}

View File

@ -45,16 +45,16 @@
<para>Prepare Perl for compilation:</para>
<screen><userinput remap="configure">sh Configure -des \
-Dprefix=/usr \
-Dvendorprefix=/usr \
-Duseshrplib \
-Dprivlib=/usr/lib/perl5/&perl-version-min;/core_perl \
-Darchlib=/usr/lib/perl5/&perl-version-min;/core_perl \
-Dsitelib=/usr/lib/perl5/&perl-version-min;/site_perl \
-Dsitearch=/usr/lib/perl5/&perl-version-min;/site_perl \
-Dvendorlib=/usr/lib/perl5/&perl-version-min;/vendor_perl \
-Dvendorarch=/usr/lib/perl5/&perl-version-min;/vendor_perl</userinput></screen>
<screen><userinput remap="configure">sh Configure -des \
-D prefix=/usr \
-D vendorprefix=/usr \
-D useshrplib \
-D privlib=/usr/lib/perl5/&perl-version-min;/core_perl \
-D archlib=/usr/lib/perl5/&perl-version-min;/core_perl \
-D sitelib=/usr/lib/perl5/&perl-version-min;/site_perl \
-D sitearch=/usr/lib/perl5/&perl-version-min;/site_perl \
-D vendorlib=/usr/lib/perl5/&perl-version-min;/vendor_perl \
-D vendorarch=/usr/lib/perl5/&perl-version-min;/vendor_perl</userinput></screen>
<variablelist>
<title>The meaning of the Configure options:</title>
@ -69,7 +69,7 @@
</varlistentry>
<varlistentry>
<term><parameter>-Dvendorprefix=/usr</parameter></term>
<term><parameter>-D vendorprefix=/usr</parameter></term>
<listitem>
<para>This ensures <command>perl</command> knows how to
tell packages where they should install their Perl modules.</para>
@ -77,7 +77,7 @@
</varlistentry>
<varlistentry>
<term><parameter>-Duseshrplib</parameter></term>
<term><parameter>-D useshrplib</parameter></term>
<listitem>
<para>Build <systemitem class='library'>libperl</systemitem>
needed by some Perl modules as a shared library, instead of
@ -86,7 +86,7 @@
</varlistentry>
<varlistentry>
<term><parameter>-Dprivlib,-Darchlib,-Dsitelib,...</parameter></term>
<term><parameter>-D privlib,-D archlib,-D sitelib,...</parameter></term>
<listitem>
<para>These settings define where Perl looks for installed
modules. The LFS editors chose to put them in a directory structure

View File

@ -52,9 +52,10 @@
<para>Prepare Python for compilation:</para>
<screen><userinput remap="configure">./configure --prefix=/usr \
--enable-shared \
--without-ensurepip</userinput></screen>
<screen><userinput remap="configure">./configure --prefix=/usr \
--enable-shared \
--without-ensurepip \
--without-static-libpython</userinput></screen>
<variablelist>
<title>The meaning of the configure option:</title>
@ -74,6 +75,13 @@
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>--without-static-libpython</parameter></term>
<listitem>
<para>This switch prevents building a large, but unneeded, static
library.</para>
</listitem>
</varlistentry>
</variablelist>
<para>Compile the package:</para>

View File

@ -51,17 +51,18 @@
<para>Prepare Util-linux for compilation:</para>
<screen><userinput remap="configure">./configure --libdir=/usr/lib \
--runstatedir=/run \
--disable-chfn-chsh \
--disable-login \
--disable-nologin \
--disable-su \
--disable-setpriv \
--disable-runuser \
--disable-pylibmount \
--disable-static \
--without-python \
<screen><userinput remap="configure">./configure --libdir=/usr/lib \
--runstatedir=/run \
--disable-chfn-chsh \
--disable-login \
--disable-nologin \
--disable-su \
--disable-setpriv \
--disable-runuser \
--disable-pylibmount \
--disable-static \
--disable-liblastlog2 \
--without-python \
ADJTIME_PATH=/var/lib/hwclock/adjtime \
--docdir=/usr/share/doc/util-linux-&util-linux-version;</userinput></screen>

View File

@ -44,8 +44,8 @@
<para>Prepare Acl for compilation:</para>
<screen><userinput remap="configure">./configure --prefix=/usr \
--disable-static \
<screen><userinput remap="configure">./configure --prefix=/usr \
--disable-static \
--docdir=/usr/share/doc/acl-&acl-version;</userinput></screen>
<para>Compile the package:</para>
@ -53,10 +53,13 @@
<screen><userinput remap="make">make</userinput></screen>
<para>The Acl tests must be run on a filesystem that supports access
controls, but not until the <application>Coreutils</application> package has been built,
using the <application>Acl</application> libraries. If desired, return to this package
and run <command>make check</command> after the <application>Coreutils</application>
package has been built.</para>
controls. To test the results, issue:</para>
<screen><userinput remap="test">make check</userinput></screen>
<para>One test named <filename>test/cp.test</filename> is known to
fail because <application>Coreutils</application> is not built with
the <application>Acl</application> support yet.</para>
<para>Install the package:</para>

View File

@ -62,8 +62,6 @@
<para>Replace <replaceable>$((...))</replaceable> with the number of
logical cores you want to use if you don't want to use all.</para>
<para>The test t/subobj.sh is known to fail.</para>
<para>Install the package:</para>
<screen><userinput remap="install">make install</userinput></screen>

View File

@ -40,10 +40,6 @@
<sect2 role="installation">
<title>Installation of Bash</title>
<para>First, fix some issues identified upstream:</para>
<screen><userinput remap="pre">patch -Np1 -i ../&bash-upstream-fixes-patch;</userinput></screen>
<para>Prepare Bash for compilation:</para>
<screen><userinput remap="configure">./configure --prefix=/usr \

View File

@ -43,15 +43,15 @@
<para>Prepare Bc for compilation:</para>
<screen><userinput remap="configure">CC=gcc ./configure --prefix=/usr -G -O3 -r</userinput></screen>
<screen><userinput remap="configure">CC='gcc -std=c99' ./configure --prefix=/usr -G -O3 -r</userinput></screen>
<variablelist>
<title>The meaning of the configure options:</title>
<varlistentry>
<term><parameter>CC=gcc</parameter></term>
<term><parameter>CC=gcc -std=c99</parameter></term>
<listitem>
<para>This parameter specifies the compiler to use.</para>
<para>This parameter specifies the compiler and C standard to use.</para>
</listitem>
</varlistentry>

View File

@ -51,26 +51,18 @@ cd build</userinput></screen>
<screen><userinput remap="configure">../configure --prefix=/usr \
--sysconfdir=/etc \
--enable-gold \
--enable-ld=default \
--enable-plugins \
--enable-shared \
--disable-werror \
--enable-64-bit-bfd \
--enable-new-dtags \
--with-system-zlib \
--enable-default-hash-style=gnu</userinput></screen>
<variablelist>
<title>The meaning of the new configure parameters:</title>
<varlistentry>
<term><parameter>--enable-gold</parameter></term>
<listitem>
<para>Build the gold linker and install it as ld.gold (alongside the
default linker).</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>--enable-ld=default</parameter></term>
<listitem>
@ -135,19 +127,14 @@ cd build</userinput></screen>
<screen><userinput remap="test">grep '^FAIL:' $(find -name '*.log')</userinput></screen>
<para>Twelve tests fail in the gold test suite when the
<option>--enable-default-pie</option> and
<option>--enable-default-ssp</option> options are passed to GCC.</para>
<!-- <para>Three tests in the gprofng suite are also known to fail.</para>-->
<para>Install the package:</para>
<screen><userinput remap="install">make tooldir=/usr install</userinput></screen>
<para>Remove useless static libraries:</para>
<para>Remove useless static libraries and other files:</para>
<screen><userinput remap="install">rm -fv /usr/lib/lib{bfd,ctf,ctf-nobfd,gprofng,opcodes,sframe}.a</userinput></screen>
<screen><userinput remap="install">rm -rfv /usr/lib/lib{bfd,ctf,ctf-nobfd,gprofng,opcodes,sframe}.a \
/usr/share/doc/gprofng/</userinput></screen>
</sect2>
@ -160,7 +147,7 @@ cd build</userinput></screen>
<segtitle>Installed directory</segtitle>
<seglistitem>
<seg>addr2line, ar, as, c++filt, dwp, elfedit, gprof, gprofng, ld, ld.bfd, ld.gold, nm,
<seg>addr2line, ar, as, c++filt, dwp, elfedit, gprof, gprofng, ld, ld.bfd, nm,
objcopy, objdump, ranlib, readelf, size, strings, and strip</seg>
<seg>libbfd.so, libctf.so, libctf-nobfd.so, libgprofng.so,
libopcodes.so, and libsframe.so</seg>
@ -270,17 +257,6 @@ cd build</userinput></screen>
</listitem>
</varlistentry>
<varlistentry id="ld.gold">
<term><command>ld.gold</command></term>
<listitem>
<para>A cut down version of ld that only supports the
elf object file format</para>
<indexterm zone="ch-system-binutils ld.gold">
<primary sortas="b-ld.gold">ld.gold</primary>
</indexterm>
</listitem>
</varlistentry>
<varlistentry id="ld.bfd">
<term><command>ld.bfd</command></term>
<listitem>

View File

@ -48,7 +48,7 @@
<screen><userinput remap="make">make</userinput></screen>
<para>To test the results (about 5.5 SBU), issue:</para>
<para>To test the results, issue:</para>
<screen><userinput remap="test">make check</userinput></screen>

View File

@ -19,6 +19,7 @@
<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="zlib.xml"/>
<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="bzip2.xml"/>
<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="xz.xml"/>
<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="lz4.xml"/>
<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="zstd.xml"/>
<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="file.xml"/>
<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="readline.xml"/>
@ -59,17 +60,17 @@
<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="autoconf.xml"/>
<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="automake.xml"/>
<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="openssl.xml"/>
<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="kmod.xml"/>
<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="libelf.xml"/>
<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="libffi.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="flit-core.xml"/>
<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="packaging.xml"/>
<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="wheel.xml"/>
<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="setuptools.xml"/>
<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="ninja.xml"/>
<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="meson.xml"/>
<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="kmod.xml"/>
<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="coreutils.xml"/>
<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="check.xml"/>
<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="diffutils.xml"/>
<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="gawk.xml"/>
<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="findutils.xml"/>

View File

@ -1,109 +0,0 @@
<?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-system-check" role="wrap">
<?dbhtml filename="check.html"?>
<sect1info condition="script">
<productname>check</productname>
<productnumber>&check-version;</productnumber>
<address>&check-url;</address>
</sect1info>
<title>Check-&check-version;</title>
<indexterm zone="ch-system-check">
<primary sortas="a-Check">Check</primary>
</indexterm>
<sect2 role="package">
<title/>
<para>Check is a unit testing framework for C.</para>
<segmentedlist>
<segtitle>&buildtime;</segtitle>
<segtitle>&diskspace;</segtitle>
<seglistitem>
<seg>&check-fin-sbu;</seg>
<seg>&check-fin-du;</seg>
</seglistitem>
</segmentedlist>
</sect2>
<sect2 role="installation">
<title>Installation of Check</title>
<para>Prepare Check for compilation:</para>
<screen><userinput remap="configure">./configure --prefix=/usr --disable-static</userinput></screen>
<para>Build the package:</para>
<screen><userinput remap="make">make</userinput></screen>
<para>Compilation is now complete. To run the Check test suite, issue the
following command:</para>
<screen><userinput remap="test">make check</userinput></screen>
<!-- <para>Note that the Check test suite may take a relatively long
(up to 4 SBU) time.</para>
-->
<para>Install the package:</para>
<screen><userinput remap="install">make docdir=/usr/share/doc/check-&check-version; install</userinput></screen>
</sect2>
<sect2 id="contents-check" role="content">
<title>Contents of Check</title>
<segmentedlist>
<segtitle>Installed program</segtitle>
<segtitle>Installed library</segtitle>
<seglistitem>
<seg>checkmk</seg>
<seg>libcheck.so</seg>
</seglistitem>
</segmentedlist>
<variablelist>
<bridgehead renderas="sect3">Short Descriptions</bridgehead>
<?dbfo list-presentation="list"?>
<?dbhtml list-presentation="table"?>
<varlistentry id="checkmk">
<term><command>checkmk</command></term>
<listitem>
<para>Awk script for generating C unit tests for use with the Check
unit testing framework</para>
<indexterm zone="ch-system-check checkmk">
<primary sortas="b-checmk">checkmk</primary>
</indexterm>
</listitem>
</varlistentry>
<varlistentry id="libcheck">
<term><filename class="libraryfile">libcheck.so</filename></term>
<listitem>
<para>Contains functions that allow Check to be called from a test
program</para>
<indexterm zone="ch-system-check libcheck">
<primary sortas="c-libcheck">libcheck</primary>
</indexterm>
</listitem>
</varlistentry>
</variablelist>
</sect2>
</sect1>

View File

@ -12,7 +12,7 @@
<para>Finally, clean up some extra files left over from running tests:</para>
<screen><userinput>rm -rf /tmp/*</userinput></screen>
<screen><userinput>rm -rf /tmp/{*,.*}</userinput></screen>
<para>There are also several files in the /usr/lib and /usr/libexec
directories with a file name extension of .la. These are "libtool archive"

View File

@ -41,6 +41,10 @@
<sect2 role="installation">
<title>Installation of Coreutils</title>
<para>First, apply a patch for a security problem identified upstream:</para>
<screen><userinput remap="pre">patch -Np1 -i ../&coreutils-upstream-patch;</userinput></screen>
<para>POSIX requires that programs from Coreutils recognize character
boundaries correctly even in multibyte locales. The following patch fixes
this non-compliance and other internationalization-related bugs.</para>
@ -53,29 +57,37 @@
those bugs are reproducible without this patch.</para>
</note>
<!-- https://seclists.org/oss-sec/2024/q1/30 -->
<para>Fix a security vulnerability in the <command>split</command>
utility:</para>
<screen><userinput remap="pre">sed -e '/n_out += n_hold/,+4 s|.*bufsize.*|//&amp;|' \
-i src/split.c</userinput></screen>
<para>Now prepare Coreutils for compilation:</para>
<screen><userinput remap="configure">autoreconf -fiv
<screen><userinput remap="configure">autoreconf -fv
automake -af
FORCE_UNSAFE_CONFIGURE=1 ./configure \
--prefix=/usr \
--enable-no-install-program=kill,uptime</userinput></screen>
<variablelist>
<title>The meaning of the configure options:</title>
<title>The meaning of the commands and configure options:</title>
<varlistentry>
<term><command>autoreconf</command></term>
<term><command>autoreconf -fv</command></term>
<listitem>
<para>The patch for internationalization has modified the
build system, so the configuration files must
be regenerated.</para>
be regenerated. Normally we would use the
<parameter>-i</parameter> option to update the standard
auxiliary files, but for this package it does not work because
<filename>configure.ac</filename> specified an old gettext
version.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><command>automake -af</command></term>
<listitem>
<para>The automake auxiliary files were not updated by
<command>autoreconf</command> due to the missing
<parameter>-i</parameter> option. This command updates them
to prevent a build failure.</para>
</listitem>
</varlistentry>
@ -123,20 +135,19 @@ FORCE_UNSAFE_CONFIGURE=1 ./configure \
<screen><userinput remap="test">chown -R tester . </userinput></screen>
<para>Now run the tests:</para>
<!-- To editors: in jhalfs the standard input is always piped to "make"
so the test failures are not reproducible in jhalfs even if
running the build in a PTY. Don't use jhalfs to test if we can
remove < /dev/null. -->
<para>Now run the tests (using <filename>/dev/null</filename> for the
standard input, or two tests may be broken if building LFS in a
graphical terminal or a session in SSH or GNU Screen because the
standard input is connected to a PTY from host distro, and the device
node for such a PTY cannot be accessed from the LFS chroot
environment):</para>
<screen><userinput remap="test">su tester -c "PATH=$PATH make RUN_EXPENSIVE_TESTS=yes check"</userinput></screen>
<!-- Sometimes skipped, but if not it may fail.
Please DO NOT remove or comment out this unless we can fully
understand it!
<para>The test-getlogin test may fail in the LFS chroot environment.</para>
20240226: Commented out as it seems the upstream has root-caused and
fixed the issue. I've checked the fix is in Coreutils 9.4 release
tarball:
https://lists.gnu.org/archive/html/bug-gnulib/2022-06/msg00079.html
-->
<screen><userinput remap="test">su tester -c "PATH=$PATH make -k RUN_EXPENSIVE_TESTS=yes check" \
&lt; /dev/null</userinput></screen>
<para>Remove the temporary group:</para>

View File

@ -48,41 +48,21 @@
<para>Prepare D-Bus for compilation:</para>
<screen><userinput remap="configure">./configure --prefix=/usr \
--sysconfdir=/etc \
--localstatedir=/var \
--runstatedir=/run \
--enable-user-session \
--disable-static \
--disable-doxygen-docs \
--disable-xml-docs \
--docdir=/usr/share/doc/dbus-&dbus-version; \
--with-system-socket=/run/dbus/system_bus_socket</userinput></screen>
<screen><userinput remap="configure">mkdir build
cd build
meson setup --prefix=/usr --buildtype=release --wrap-mode=nofallback ..</userinput></screen>
<variablelist>
<title>The meaning of the configure options:</title>
<title>The meaning of the meson options:</title>
<varlistentry>
<term>
<parameter>--runstatedir=/run</parameter> and
<parameter>--with-system-socket=/run/dbus/system_bus_socket</parameter>
<parameter>--wrap-mode=nofallback</parameter>
</term>
<listitem>
<para>These cause the PID file and the system bus socket
to be in <filename class="directory">/run</filename>, instead of
the deprecated <filename class="directory">/var/run</filename>.</para>
</listitem>
</varlistentry>
<varlistentry>
<term>
<parameter>--enable-user-session</parameter>
</term>
<listitem>
<para>This ensures the D-Bus per-user service and socket unit
files are installed for Systemd. They are not useful (but
harmless) in a base LFS installation, however they can be used
once systemd is rebuilt with PAM support in BLFS.</para>
<para>This switch prevents meson from attempting to download a copy
of the Glib package for the tests.</para>
</listitem>
</varlistentry>
@ -90,11 +70,11 @@
<para>Compile the package:</para>
<screen><userinput remap="make">make</userinput></screen>
<screen><userinput remap="make">ninja</userinput></screen>
<para>To test the results, issue:</para>
<screen><userinput remap="test">make check</userinput></screen>
<screen><userinput remap="test">ninja test</userinput></screen>
<para>Many tests are disabled because they require additional
packages that are not included in LFS. Instructions for running the
@ -103,7 +83,7 @@
<para>Install the package:</para>
<screen><userinput remap="install">make install</userinput></screen>
<screen><userinput remap="install">ninja install</userinput></screen>
<para>Create a symlink so that D-Bus and systemd can use the same
<filename>machine-id</filename> file:</para>
@ -149,7 +129,7 @@
<varlistentry id="dbus-daemon">
<term><command>dbus-daemon</command></term>
<listitem>
<para>Is the D-Bus message bus daemon</para>
<para>is the D-Bus message bus daemon</para>
<indexterm zone="ch-system-dbus dbus-daemon">
<primary sortas="b-dbus-daemon">dbus-daemon</primary>
</indexterm>
@ -159,7 +139,7 @@
<varlistentry id="dbus-launch">
<term><command>dbus-launch</command></term>
<listitem>
<para>Starts <command>dbus-daemon</command> from a shell
<para>starts <command>dbus-daemon</command> from a shell
script</para>
<indexterm zone="ch-system-dbus dbus-launch">
<primary sortas="b-dbus-launch">dbus-launch</primary>
@ -170,7 +150,7 @@
<varlistentry id="dbus-monitor">
<term><command>dbus-monitor</command></term>
<listitem>
<para>Monitors messages passing through a D-Bus message bus</para>
<para>monitors messages passing through a D-Bus message bus</para>
<indexterm zone="ch-system-dbus dbus-monitor">
<primary sortas="b-dbus-monitor">dbus-monitor</primary>
</indexterm>
@ -180,7 +160,7 @@
<varlistentry id="dbus-run-session">
<term><command>dbus-run-session</command></term>
<listitem>
<para>Starts a session bus instance of <command>dbus-daemon</command>
<para>starts a session bus instance of <command>dbus-daemon</command>
from a shell script and starts a specified program in that
session</para>
<indexterm zone="ch-system-dbus dbus-run-session">
@ -192,7 +172,7 @@
<varlistentry id="dbus-send">
<term><command>dbus-send</command></term>
<listitem>
<para>Sends a message to a D-Bus message bus</para>
<para>sends a message to a D-Bus message bus</para>
<indexterm zone="ch-system-dbus dbus-send">
<primary sortas="b-dbus-send">dbus-send</primary>
</indexterm>
@ -202,7 +182,7 @@
<varlistentry id="dbus-test-tool">
<term><command>dbus-test-tool</command></term>
<listitem>
<para>Is a tool to help packages test
<para>is a tool to help packages test
<application>D-Bus</application></para>
<indexterm zone="ch-system-dbus dbus-test-tool">
<primary sortas="b-dbus-test-tool">dbus-test-tool</primary>
@ -214,7 +194,7 @@
<varlistentry id="dbus-update-activation-environment">
<term><command>dbus-update-activation-environment</command></term>
<listitem>
<para>Updates environment variables that will be set for
<para>updates environment variables that will be set for
<application>D-Bus</application> session services</para>
<indexterm zone="ch-system-dbus dbus-update-activation-environment">
<primary sortas="b-dbus-update-activation-environment">dbus-update-activation-environment</primary>

View File

@ -52,12 +52,12 @@ cd build</userinput></screen>
<para>Prepare E2fsprogs for compilation:</para>
<screen><userinput remap="configure">../configure --prefix=/usr \
--sysconfdir=/etc \
--enable-elf-shlibs \
--disable-libblkid \
--disable-libuuid \
--disable-uuidd \
<screen><userinput remap="configure">../configure --prefix=/usr \
--sysconfdir=/etc \
--enable-elf-shlibs \
--disable-libblkid \
--disable-libuuid \
--disable-uuidd \
--disable-fsck</userinput></screen>
<variablelist>
@ -93,9 +93,12 @@ cd build</userinput></screen>
<screen><userinput remap="test">make check</userinput></screen>
<!-- https://github.com/tytso/e2fsprogs/issues/134 -->
<!-- https://github.com/tytso/e2fsprogs/issues/134
https://github.com/tytso/e2fsprogs/issues/158 -->
<para>One test named <filename>m_assume_storage_prezeroed</filename>
is known to fail.</para>
is known to fail. Another test named <filename>m_rootdir_acl</filename>
is known to fail if the file system used for the LFS system is not
<systemitem class='filesystem'>ext4</systemitem>.</para>
<!-- This is a ridiculous amount now! And is it still true?
Does not appear to be true for version 1.46.3. Time with tests
@ -146,7 +149,7 @@ install-info --dir-file=/usr/share/info/dir /usr/share/info/com_err.info</userin
<para>
<filename>/etc/mke2fs.conf</filename> contains the default value of
various command line options of <command>mke2fs</command>. You may
edit the file to make the default values suitable for your need.
edit the file to make the default values suitable for your needs.
For example, some utilities (not in LFS or BLFS) cannot recognize a
<systemitem class='filesystem'>ext4</systemitem> file system with
<literal>metadata_csum_seed</literal> feature enabled.

View File

@ -67,11 +67,16 @@
GDBM, and of course Expect itself) will fail catastrophically, and other
subtle breakages may also happen.</para>
<para>Now, make some changes to allow the package with gcc-15.1 or later:</para>
<screen><userinput remap="pre">patch -Np1 -i ../&expect-gcc15-patch;</userinput></screen>
<para>Prepare Expect for compilation:</para>
<screen><userinput remap="configure">./configure --prefix=/usr \
--with-tcl=/usr/lib \
--enable-shared \
--disable-rpath \
--mandir=/usr/share/man \
--with-tclinclude=/usr/include</userinput></screen>

View File

@ -61,7 +61,7 @@
<screen><userinput remap="make">make</userinput></screen>
<para>To test the results (about 0.5 SBU), issue:</para>
<para>To test the results, issue:</para>
<screen><userinput remap="test">make check</userinput></screen>

View File

@ -42,11 +42,11 @@
<para>Build the package:</para>
<screen><userinput remap="install">pip3 wheel -w dist --no-cache-dir --no-build-isolation --no-deps $PWD</userinput></screen>
<screen><userinput remap="make">pip3 wheel -w dist --no-cache-dir --no-build-isolation --no-deps $PWD</userinput></screen>
<para>Install the package:</para>
<screen><userinput remap="install">pip3 install --no-index --no-user --find-links dist flit_core</userinput></screen>
<screen><userinput remap="install">pip3 install --no-index --find-links dist flit_core</userinput></screen>
<variablelist>
<title>The meaning of the pip3 configuration options and commands:</title>

View File

@ -84,8 +84,7 @@ make install</userinput></screen>
<para>If desired, install the documentation:</para>
<screen><userinput remap="install">mkdir -pv /usr/share/doc/gawk-&gawk-version;
cp -v doc/{awkforai.txt,*.{eps,pdf,jpg}} /usr/share/doc/gawk-&gawk-version;</userinput></screen>
<screen><userinput remap="install">install -vDm644 doc/{awkforai.txt,*.{eps,pdf,jpg}} -t /usr/share/doc/gawk-&gawk-version;</userinput></screen>
</sect2>

View File

@ -40,20 +40,7 @@
<sect2 role="installation">
<title>Installation of GCC</title>
<!--
<para>At first, fix an issue breaking
<filename class="libraryfile">libasan.a</filename> building this package
with Glibc-2.34 or later:</para>
<screen><userinput remap="pre">sed -e '/static.*SIGSTKSZ/d' \
-e 's/return kAltStackSize/return SIGSTKSZ * 4/' \
-i libsanitizer/sanitizer_common/sanitizer_posix_libcdep.cpp</userinput></screen>
-->
<!--
<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>If building on x86_64, change the default directory name for 64-bit
libraries to <quote>lib</quote>:</para>
@ -76,6 +63,7 @@ cd build</userinput></screen>
--enable-languages=c,c++ \
--enable-default-pie \
--enable-default-ssp \
--enable-host-pie \
--disable-multilib \
--disable-bootstrap \
--disable-fixincludes \
@ -147,14 +135,28 @@ cd build</userinput></screen>
<para>In this section, the test suite for GCC is considered
important, but it takes a long time. First-time builders are
encouraged to run the test suite. The time to run the tests can be
reduced significantly by adding -jx to the <command>make -k check</command> command below,
where x is the number of CPU cores on your system.</para>
reduced significantly by adding -jx to the <command>make -k check</command>
command below, where x is the number of CPU cores on your system.</para>
</important>
<para>One set of tests in the GCC test suite is known to exhaust the default
stack, so increase the stack size prior to running the tests:</para>
<para>GCC may need more stack space compiling some extremely complex
code patterns. As a precaution for the host distros with a tight stack
limit, explicitly set the stack size hard limit to infinite.
On most host distros (and the final LFS system) the hard limit is
infinite by default, but there is no harm done by setting it explicitly.
It's not necessary to change the stack size soft limit because GCC will
automatically set it to an appropriate value, as long as the value does
not exceed the hard limit:</para>
<screen><userinput remap="test">ulimit -s 32768</userinput></screen>
<screen><userinput remap="test">ulimit -s -H unlimited</userinput></screen>
<para>Now remove/fix several known test failures:</para>
<screen><userinput remap="test">sed -e '/cpython/d' -i ../gcc/testsuite/gcc.dg/plugin/plugin.exp
sed -e 's/no-pic /&amp;-no-pie /' -i ../gcc/testsuite/gcc.target/i386/pr113689-1.c
sed -e 's/300000/(1|300000)/' -i ../libgomp/testsuite/libgomp.c-c++-common/pr109062.c
sed -e 's/{ target nonpic } //' \
-e '/GOTPCREL/d' -i ../gcc/testsuite/gcc.target/i386/fentryname3.c</userinput></screen>
<para>Test the results as a non-privileged user, but do not stop at errors:</para>
@ -172,27 +174,17 @@ su tester -c "PATH=$PATH make -k check"</userinput></screen>
url="&test-results;"/> and
<ulink url="https://gcc.gnu.org/ml/gcc-testresults/"/>.</para>
<para>
Eight gcc tests (out of over 185,000):
<!-- https://gcc.gnu.org/PR106375 --><filename>pr56837.c</filename>
and seven tests in the <filename class='directory'>analyzer</filename>
directory are known to fail.
<!-- https://github.com/google/sanitizers/issues/1716
Affecting any host distro with a large vm.mmap_rnd_bits.
The fix is https://github.com/llvm/llvm-project/commit/0784b1eefa36
but it's not in GCC 14. TODO retry with
sudo sysctl vm.mmap_rnd_bits=32
on the host distro when we update to GCC 15. -->
<para>The tsan tests are known to fail on some host distros.</para>
<!-- https://gcc.gnu.org/PR109353 -->
One libstdc++ test (out of over 15000), <filename>copy.cc</filename>, is
known to fail.
For g++, 21 tests (out of approximately 250,000): 14
<quote>AddressSanitizer*</quote>
tests and 7 <filename>interception-malloc-test-1.C</filename> tests, are
known to fail.
Additionally, several tests in the
<filename class='directory'>vect</filename> directory are known to fail
if the hardware does not support AVX.</para>
<para>A few unexpected failures cannot always be avoided. The GCC developers
are usually aware of these issues, but have not resolved them yet.
<para>A few unexpected failures cannot always be avoided. In some cases
test failures depend on the specific hardware of the system.<!--The GCC developers
are usually aware of these issues, but have not resolved them yet.-->
Unless the test results are vastly different from those at the above URL,
it is safe to continue.</para>
@ -231,8 +223,7 @@ su tester -c "PATH=$PATH make -k check"</userinput></screen>
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
cc dummy.c -v -Wl,--verbose &amp;&gt; dummy.log
<screen><userinput>echo 'int main(){}' | cc -x c - -v -Wl,--verbose &amp;&gt; dummy.log
readelf -l a.out | grep ': /lib'</userinput></screen>
<para>There should be no errors,
@ -327,7 +318,7 @@ SEARCH_DIR("/usr/lib");</computeroutput></screen>
<para>Once everything is working correctly, clean up the test files:</para>
<screen><userinput>rm -v dummy.c a.out dummy.log</userinput></screen>
<screen><userinput>rm -v a.out dummy.log</userinput></screen>
<para>Finally, move a misplaced file:</para>

View File

@ -42,7 +42,15 @@
<sect2 role="installation">
<title>Installation of Gettext</title>
<!--
<para>At first, fix an issue causing the package fail to build with
libxml-2.12 or later. The fix is optional for building LFS, but
required if rebuilding this package in BLFS with libxml
installed:</para>
<screen><userinput remap="pre">sed -e '/^structured/s/xmlError \*/typeof(xmlCtxtGetLastError(NULL)) /' \
-i gettext-tools/src/its.c</userinput></screen>
-->
<para>Prepare Gettext for compilation:</para>
<screen><userinput remap="configure">./configure --prefix=/usr \
@ -69,8 +77,7 @@
</variablelist>
-->
<para>To test the results (this takes a long time, around 3 SBUs),
issue:</para>
<para>To test the results, issue:</para>
<screen><userinput remap="test">make check</userinput></screen>

View File

@ -50,10 +50,9 @@
<screen><userinput remap="pre">patch -Np1 -i ../&glibc-fhs-patch;</userinput></screen>
<!--
<para>Now fix two security vulnerabilities and a regression causing the
posix_memalign() function very slow in some conditions:</para>
<para>Now fix a security vulnerability:</para>
<screen><userinput remap="pre">patch -Np1 -i ../&glibc-upstream-fixes-patch;</userinput></screen>
<screen><userinput remap="pre">patch -Np1 -i ../&glibc-upstream-patch;</userinput></screen>
-->
<para>The Glibc documentation recommends building Glibc
in a dedicated build directory:</para>
@ -69,12 +68,12 @@ cd build</userinput></screen>
<para>Prepare Glibc for compilation:</para>
<screen><userinput remap="configure">../configure --prefix=/usr \
--disable-werror \
--enable-kernel=&min-kernel; \
--enable-stack-protector=strong \
--disable-nscd \
libc_cv_slibdir=/usr/lib</userinput></screen>
<screen><userinput remap="configure">../configure --prefix=/usr \
--disable-werror \
--disable-nscd \
libc_cv_slibdir=/usr/lib \
--enable-stack-protector=strong \
--enable-kernel=&min-kernel;</userinput></screen>
<variablelist>
<title>The meaning of the configure options:</title>
@ -153,7 +152,7 @@ esac</userinput></screen>
<para>You may see some test failures. The Glibc test suite is
somewhat dependent on the host system. A few failures out of
over 5000 tests can generally be ignored. This is a list of the
over 6000 tests can generally be ignored. This is a list of the
most common issues seen for recent versions of LFS:</para>
<itemizedlist>
@ -171,9 +170,7 @@ esac</userinput></screen>
relatively slow and/or running the test suite with multiple
parallel make jobs). These tests can be identified with:</para>
<!-- TODO: Using nodump for freeze. Change it to role="test" after
12.1 release so jhalfs can list these in the log. -->
<screen role="nodump"><userinput>grep "Timed out" -l $(find -name \*.out)</userinput></screen>
<screen><userinput remap="test">grep "Timed out" $(find -name \*.out)</userinput></screen>
<para>It's possible to re-run a single test with enlarged timeout
with
@ -320,6 +317,20 @@ install -vm755 dest/usr/lib/*.so.* /usr/lib</userinput></screen>
the locales. Once they are finished, reboot the system
immediately.
</para>
<para>
When the system has successfully rebooted, if you are running
a LFS system prior to 12.0 (exclusive) where GCC was not built
with the <parameter>--disable-fixincludes</parameter> option,
move two GCC headers into a better location and
remove the stale <quote>fixed</quote> copies of the Glibc headers:
</para>
<screen role='nodump'><userinput>DIR=$(dirname $(gcc -print-libgcc-file-name))
[ -e $DIR/include/limits.h ] || mv $DIR/include{-fixed,}/limits.h
[ -e $DIR/include/syslimits.h ] || mv $DIR/include{-fixed,}/syslimits.h
rm -rfv $DIR/include-fixed/*
unset DIR</userinput></screen>
</important>
<para>Install the package:</para>
@ -359,8 +370,7 @@ install -v -Dm644 ../nscd/nscd.service /usr/lib/systemd/system/nscd.service</use
The following instructions will install the minimum set of
locales necessary for the optimal coverage of tests:</para>
<screen role="nodump"><userinput remap="locale-test">mkdir -pv /usr/lib/locale
localedef -i C -f UTF-8 C.UTF-8
<screen role="nodump"><userinput remap="locale-test">localedef -i C -f UTF-8 C.UTF-8
localedef -i cs_CZ -f UTF-8 cs_CZ.UTF-8
localedef -i de_DE -f ISO-8859-1 de_DE
localedef -i de_DE@euro -f ISO-8859-15 de_DE@euro
@ -384,7 +394,6 @@ localedef -i it_IT -f ISO-8859-1 it_IT
localedef -i it_IT -f ISO-8859-15 it_IT@euro
localedef -i it_IT -f UTF-8 it_IT.UTF-8
localedef -i ja_JP -f EUC-JP ja_JP
localedef -i ja_JP -f SHIFT_JIS ja_JP.SJIS 2> /dev/null || true
localedef -i ja_JP -f UTF-8 ja_JP.UTF-8
localedef -i nl_NL@euro -f ISO-8859-15 nl_NL@euro
localedef -i ru_RU -f KOI8-R ru_RU.KOI8-R
@ -406,15 +415,6 @@ localedef -i zh_TW -f UTF-8 zh_TW.UTF-8</userinput></screen>
<screen><userinput remap="locale-full">make localedata/install-locales</userinput></screen>
<para>Then use the <command>localedef</command> command to create and
install locales not listed in the
<filename>glibc-&glibc-version;/localedata/SUPPORTED</filename> file
when you need them. For instance, the following two locales are
needed for some tests later in this chapter:</para>
<screen role="nodump"><userinput remap="locale-full">localedef -i C -f UTF-8 C.UTF-8
localedef -i ja_JP -f SHIFT_JIS ja_JP.SJIS 2> /dev/null || true</userinput></screen>
<note><para>Glibc now uses libidn2 when resolving internationalized
domain names. This is a run time dependency. If this capability
is needed, the instructions for installing libidn2 are in the
@ -500,7 +500,7 @@ done
cp -v zone.tab zone1970.tab iso3166.tab $ZONEINFO
zic -d $ZONEINFO -p America/New_York
unset ZONEINFO</userinput></screen>
unset ZONEINFO tz</userinput></screen>
<variablelist>
<title>The meaning of the zic commands:</title>

View File

@ -62,6 +62,10 @@
CFLAGS is still automatically set to -march=something. -->
</note>
<para>First, make an adjustment for compatibility with gcc-15 and later:</para>
<screen><userinput remap="pre">sed -i '/long long t1;/,+1s/()/(...)/' configure</userinput></screen>
<para>Prepare GMP for compilation:</para>
<screen><userinput remap="configure">./configure --prefix=/usr \

View File

@ -48,11 +48,9 @@
<screen><userinput remap="make">make</userinput></screen>
<para>The tests are known to fail if running multiple
simultaneous tests (-j option greater than 1). To test
the results, issue:</para>
<para>To test the results, issue:</para>
<screen><userinput remap="test">make -j1 check</userinput></screen>
<screen><userinput remap="test">make check</userinput></screen>
<para>Install the package:</para>

View File

@ -43,10 +43,12 @@
<note>
<para>
If your system has UEFI support and you wish to boot LFS with UEFI,
you can skip this package in LFS,
and install GRUB with UEFI support (and its dependencies) by following
the instructions on
you need to install GRUB with UEFI support (and its dependencies) by
following the instructions on
<ulink url="&blfs-book;postlfs/grub-efi.html">the BLFS page</ulink>.
You may skip this package, or install this package and the BLFS
GRUB for UEFI package without conflict (the BLFS page provides
instructions for both cases).
</para>
</note>
@ -69,9 +71,9 @@
<para>Prepare GRUB for compilation:</para>
<screen><userinput remap="configure">./configure --prefix=/usr \
--sysconfdir=/etc \
--disable-efiemu \
<screen><userinput remap="configure">./configure --prefix=/usr \
--sysconfdir=/etc \
--disable-efiemu \
--disable-werror</userinput></screen>
<variablelist>
@ -103,13 +105,14 @@
the tests depend on packages that are not available in the limited
LFS environment. To run the tests anyway, run <command>make check</command>.</para>
<para>Install the package:</para>
<para>Install the package, and move the Bash completion support file to
the location recommended by the Bash completion maintainers:</para>
<screen><userinput remap="install">make install
mv -v /etc/bash_completion.d/grub /usr/share/bash-completion/completions</userinput></screen>
<para>Making your LFS system bootable with GRUB will be discussed in
<xref linkend="ch-bootable-grub"/>.</para>
<xref linkend="ch-bootable-grub" role='.'/></para>
</sect2>
@ -174,7 +177,7 @@ mv -v /etc/bash_completion.d/grub /usr/share/bash-completion/completions</userin
<varlistentry id="grub-fstest">
<term><command>grub-fstest</command></term>
<listitem>
<para>Is a tool to debug the filesystem driver</para>
<para>Is a tool to debug the file system driver</para>
<indexterm zone="ch-system-grub grub-fstest">
<primary sortas="b-grub-fstest">grub-fstest</primary>
</indexterm>

View File

@ -40,6 +40,10 @@
<sect2 role="installation">
<title>Installation of Inetutils</title>
<para>First, make the package build with gcc-14.1 or later:</para>
<screen><userinput remap="pre">sed -i 's/def HAVE_TERMCAP_TGETENT/ 1/' telnet/telnet.c</userinput></screen>
<para>Prepare Inetutils for compilation:</para>
<screen><userinput remap="configure">./configure --prefix=/usr \

View File

@ -77,8 +77,7 @@ rm -fv man/man8/arpd.8</userinput></screen>
<para>If desired, install the documentation:</para>
<screen><userinput remap="install">mkdir -pv /usr/share/doc/iproute2-&iproute2-version;
cp -v COPYING README* /usr/share/doc/iproute2-&iproute2-version;</userinput></screen>
<screen><userinput remap="install">install -vDm644 COPYING README* -t /usr/share/doc/iproute2-&iproute2-version;</userinput></screen>
</sect2>
@ -278,7 +277,7 @@ cp -v COPYING README* /usr/share/doc/iproute2-&iproute2-version;</userinput></sc
discipline</para>
<para><command>tc class</command> allows users to set up classes based
on the queuing discipline scheduling</para>
on the queueing discipline scheduling</para>
<para><command>tc filter</command> allows users to set up the QoS/CoS
packet filtering</para>

View File

@ -42,11 +42,11 @@
<para>Build the package:</para>
<screen><userinput remap="install">pip3 wheel -w dist --no-cache-dir --no-build-isolation --no-deps $PWD</userinput></screen>
<screen><userinput remap="make">pip3 wheel -w dist --no-cache-dir --no-build-isolation --no-deps $PWD</userinput></screen>
<para>Install the package:</para>
<screen><userinput remap="install">pip3 install --no-index --no-user --find-links dist Jinja2</userinput></screen>
<screen><userinput remap="install">pip3 install --no-index --find-links dist Jinja2</userinput></screen>
</sect2>

View File

@ -80,9 +80,14 @@ sed -i 's/resizecons.8 //' docs/man/man8/Makefile.in</userinput></screen>
<screen><userinput remap="make">make</userinput></screen>
<para>To test the results, issue:</para>
<para>The tests for this package will all fail in the chroot environment
because they require <application>valgrind</application>. In addition
on a full system with <application>valgrind</application>, several
tests still fail in a graphical environment. The tests pass in
a non-graphical environment.</para>
<!--
<screen><userinput remap="test">make check</userinput></screen>
-->
<para>Install the package:</para>

View File

@ -43,34 +43,23 @@
<para>Prepare Kmod for compilation:</para>
<screen><userinput remap="configure">./configure --prefix=/usr \
--sysconfdir=/etc \
--with-openssl \
--with-xz \
--with-zstd \
--with-zlib</userinput></screen>
<screen><userinput remap="configure">mkdir -p build
cd build
meson setup --prefix=/usr .. \
--buildtype=release \
-D manpages=false</userinput></screen>
<variablelist>
<title>The meaning of the configure options:</title>
<varlistentry>
<term>
<parameter>--with-openssl</parameter>
<parameter>-D manpages=false</parameter>
</term>
<listitem>
<para>This option enables Kmod to handle PKCS7 signatures for
kernel modules.</para>
</listitem>
</varlistentry>
<varlistentry>
<term>
<parameter>--with-xz</parameter>,
<parameter>--with-zlib</parameter>, and
<parameter>--with-zstd</parameter>
</term>
<listitem>
<para>These options enable Kmod to handle compressed kernel modules.</para>
<para>This option disables generating the man pages which
requires an external program.</para>
</listitem>
</varlistentry>
@ -78,23 +67,15 @@
<para>Compile the package:</para>
<screen><userinput remap="make">make</userinput></screen>
<screen><userinput remap="make">ninja</userinput></screen>
<para>The test suite of this package requires raw kernel headers
(not the <quote>sanitized</quote> kernel headers installed earlier),
which are beyond the scope of LFS.</para>
<para>Install the package and create symlinks for
compatibility with Module-Init-Tools (the package that previously handled
Linux kernel modules):</para>
<para>Now install the package:</para>
<screen><userinput remap="install">make install
for target in depmod insmod modinfo modprobe rmmod; do
ln -sfv ../bin/kmod /usr/sbin/$target
done
ln -sfv kmod /usr/bin/lsmod</userinput></screen>
<screen><userinput remap="install">ninja install</userinput></screen>
</sect2>

View File

@ -46,8 +46,8 @@
<para>Prepare Libelf for compilation:</para>
<screen><userinput remap="configure">./configure --prefix=/usr \
--disable-debuginfod \
<screen><userinput remap="configure">./configure --prefix=/usr \
--disable-debuginfod \
--enable-libdebuginfod=dummy</userinput></screen>
<para>Compile the package:</para>
@ -58,6 +58,9 @@
<screen><userinput remap="test">make check</userinput></screen>
<para>Two tests are known to fail, dwarf_srclang_check and
run-backtrace-native-core.sh.</para>
<para>Install only Libelf:</para>
<screen><userinput remap="install">make -C libelf install

View File

@ -51,17 +51,20 @@
<para>Like GMP, Libffi builds with optimizations specific
to the processor in use. If building for another system, change the
value of the <parameter>--with-gcc-arch=</parameter> parameter in the
following command to an architecture name fully implemented by the
following command to an architecture name fully implemented by
<emphasis role='bold'>both</emphasis> the host CPU and the
CPU on that system.
If this is not done, all applications that link to
<filename class='libraryfile'>libffi</filename> will trigger
Illegal Operation Errors.</para>
Illegal Operation Errors. If you cannot figure out a value
safe for both the CPUs, replace the parameter with
<option>--without-gcc-arch</option> to produce a generic library.</para>
</note>
<para>Prepare Libffi for compilation:</para>
<screen><userinput remap="configure">./configure --prefix=/usr \
--disable-static \
<screen><userinput remap="configure">./configure --prefix=/usr \
--disable-static \
--with-gcc-arch=native</userinput></screen>
<variablelist>

View File

@ -49,9 +49,8 @@
<screen><userinput remap="make">make</userinput></screen>
<para>To test the results, issue:</para>
<screen><userinput remap="test">make check</userinput></screen>
<para>The tests require the <application>Check</application> library
that we've removed from LFS.</para>
<para>Install the package:</para>

View File

@ -50,15 +50,9 @@
<screen><userinput remap="make">make</userinput></screen>
<para>To test the results<!--(about 11.0 SBU)-->, issue:</para>
<para>To test the results, issue:</para>
<screen><userinput remap="test">make -k check</userinput></screen>
<para>Five tests are known to fail in the LFS build environment due
to a circular dependency, but these tests pass if rechecked after
automake has been installed. Additionally, with grep-3.8 or newer,
two tests will trigger a warning for non-POSIX regular expressions and
fail.</para>
<screen><userinput remap="test">make check</userinput></screen>
<para>Install the package:</para>

141
chapter08/lz4.xml Normal file
View File

@ -0,0 +1,141 @@
<?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-system-lz4" role="wrap">
<?dbhtml filename="lz4.html"?>
<sect1info condition="script">
<productname>Lz4</productname>
<productnumber>&lz4-version;</productnumber>
<address>&lz4-url;</address>
</sect1info>
<title>Lz4-&lz4-version;</title>
<indexterm zone="ch-system-lz4">
<primary sortas="a-lz4">Lz4</primary>
</indexterm>
<sect2 role="package">
<title/>
<para>Lz4 is a lossless compression algorithm, providing compression speed
greater than 500 MB/s per core. It features an extremely fast decoder, with
speed in multiple GB/s per core. Lz4 can work with Zstandard to allow both
algorithms to compress data faster.</para>
<segmentedlist>
<segtitle>&buildtime;</segtitle>
<segtitle>&diskspace;</segtitle>
<seglistitem>
<seg>&lz4-fin-sbu;</seg>
<seg>&lz4-fin-du;</seg>
</seglistitem>
</segmentedlist>
</sect2>
<sect2 role="installation">
<title>Installation of Lz4</title>
<para>Compile the package:</para>
<screen><userinput remap="make">make BUILD_STATIC=no PREFIX=/usr</userinput></screen>
<para>To test the results, issue:</para>
<!-- This needs to be done at -j1 because otherwise test files do not
get generated correctly. -->
<screen><userinput remap="test">make -j1 check</userinput></screen>
<para>Install the package:</para>
<screen><userinput remap="install">make BUILD_STATIC=no PREFIX=/usr install</userinput></screen>
</sect2>
<sect2 id="contents-lz4" role="content">
<title>Contents of Lz4</title>
<segmentedlist>
<segtitle>Installed programs</segtitle>
<segtitle>Installed library</segtitle>
<seglistitem>
<seg>lz4,
lz4c (link to lz4),
lz4cat (link to lz4), and
unlz4 (link to lz4)
</seg>
<seg>liblz4.so</seg>
</seglistitem>
</segmentedlist>
<variablelist>
<bridgehead renderas="sect3">Short Descriptions</bridgehead>
<?dbfo list-presentation="list"?>
<?dbhtml list-presentation="table"?>
<varlistentry id="lz4">
<term><command>lz4</command></term>
<listitem>
<para>Compresses or decompresses files using the LZ4 format</para>
<indexterm zone="ch-system-lz4 lz4">
<primary sortas="b-lz4">lz4</primary>
</indexterm>
</listitem>
</varlistentry>
<varlistentry id="lz4c">
<term><command>lz4c</command></term>
<listitem>
<para>Compresses files using the LZ4 format</para>
<indexterm zone="ch-system-lz4 lz4c">
<primary sortas="b-lz4c">lz4c</primary>
</indexterm>
</listitem>
</varlistentry>
<varlistentry id="lz4cat">
<term><command>lz4cat</command></term>
<listitem>
<para>Lists the contents of a file compressed using the LZ4 format</para>
<indexterm zone="ch-system-lz4 lz4cat">
<primary sortas="b-lz4cat">lz4cat</primary>
</indexterm>
</listitem>
</varlistentry>
<varlistentry id="unlz4">
<term><command>unlz4</command></term>
<listitem>
<para>Decompresses files using the LZ4 format</para>
<indexterm zone="ch-system-lz4 unlz4">
<primary sortas="b-unlz4">unlz4</primary>
</indexterm>
</listitem>
</varlistentry>
<varlistentry id="liblz4">
<term><filename class="libraryfile">liblz4</filename></term>
<listitem>
<para>The library implementing lossless data
compression, using the LZ4 algorithm</para>
<indexterm zone="ch-system-lz4 liblz4">
<primary sortas="c-liblz4">liblz4</primary>
</indexterm>
</listitem>
</varlistentry>
</variablelist>
</sect2>
</sect1>

View File

@ -48,7 +48,32 @@
<para>Install Man-pages by running:</para>
<screen><userinput remap="install">make prefix=/usr install</userinput></screen>
<screen><userinput remap="install">make -R GIT=false prefix=/usr install</userinput></screen>
<variablelist>
<title>The meaning of the options:</title>
<!-- TODO: Try if we can remove this when we update make. -->
<varlistentry>
<term><parameter>-R</parameter></term>
<listitem>
<para>This prevents <command>make</command> from setting any
built-in variables. The building system of man-pages does not
work well with built-in variables, but currently there is no way
to disable them except passing <parameter>-R</parameter>
explicitly via the command line.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>GIT=false</parameter></term>
<listitem>
<para>This prevents the building system from emitting many
<computeroutput>git: command not found</computeroutput>
warnings lines.</para>
</listitem>
</varlistentry>
</variablelist>
</sect2>

View File

@ -48,7 +48,7 @@
<para>Install the package:</para>
<screen><userinput remap="install">pip3 install --no-index --no-user --find-links dist Markupsafe</userinput></screen>
<screen><userinput remap="install">pip3 install --no-index --find-links dist Markupsafe</userinput></screen>
</sect2>

View File

@ -50,9 +50,9 @@
--without-normal \
--with-cxx-shared \
--enable-pc-files \
--enable-widec \
--with-pkg-config-libdir=/usr/lib/pkgconfig</userinput></screen>
<!-- - -enable-widec this is now the default -->
<variablelist>
<title>The meaning of the new configure options:</title>
@ -94,9 +94,9 @@
</para>
</listitem>
</varlistentry>
<!--
<varlistentry>
<term><parameter>--enable-widec</parameter></term>
<term><parameter>- -enable-widec</parameter></term>
<listitem>
<para>This switch causes wide-character libraries (e.g., <filename
class="libraryfile">libncursesw.so.&ncurses-release;</filename>)
@ -108,7 +108,7 @@
source-compatible, but not binary-compatible.</para>
</listitem>
</varlistentry>
-->
</variablelist>
<para>Compile the package:</para>
@ -127,7 +127,7 @@
make will spawn new shell processes during "make install". -->
<para>The installation of this package will overwrite
<filename class="libraryfile">libncursesw.so.&ncurses-release;</filename>
<filename class="libraryfile">libncursesw.so.&ncurses-base-version;</filename>
in-place. It may crash the shell process which is using code and data
from the library file. Install the package with
<literal>DESTDIR</literal>, and replace the library file correctly using
@ -137,8 +137,8 @@
<xref linkend='ch-tools-ncurses'/>):</para>
<screen><userinput remap="install">make DESTDIR=$PWD/dest install
install -vm755 dest/usr/lib/libncursesw.so.&ncurses-release; /usr/lib
rm -v dest/usr/lib/libncursesw.so.&ncurses-release;
install -vm755 dest/usr/lib/libncursesw.so.&ncurses-base-version; /usr/lib
rm -v dest/usr/lib/libncursesw.so.&ncurses-base-version;
sed -e 's/^#if.*XOPEN.*$/#if 1/' \
-i dest/usr/include/curses.h
cp -av dest/* /</userinput></screen>

View File

@ -67,7 +67,7 @@
<para>Build Ninja with:</para>
<screen><userinput remap="configure">python3 configure.py --bootstrap</userinput></screen>
<screen><userinput remap="configure">python3 configure.py --bootstrap --verbose</userinput></screen>
<variablelist>
<title>The meaning of the build option:</title>
@ -80,12 +80,26 @@
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>--verbose</parameter></term>
<listitem>
<para>This parameter makes <command>configure.py</command> show
the progress building Ninja.</para>
</listitem>
</varlistentry>
</variablelist>
<para>The package tests cannot run in the chroot environment. They require
<ulink url="&blfs-book;general/cmake.html">cmake</ulink>. But the basic
function of this package is already tested by rebuilding itself
(with the <parameter>--bootstrap</parameter> option) anyway.</para>
<!--
<para>To test the results, issue:</para>
<screen><userinput remap="test">./ninja ninja_test
./ninja_test --gtest_filter=-SubprocessTest.SetWithLots</userinput></screen>
./ninja_test - -gtest_filter=-SubprocessTest.SetWithLots</userinput></screen>
-->
<para>Install the package:</para>

75
chapter08/packaging.xml Normal file
View File

@ -0,0 +1,75 @@
<?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-system-packaging" role="wrap">
<?dbhtml filename="packaging.html"?>
<sect1info condition="script">
<productname>packaging</productname>
<productnumber>&packaging-version;</productnumber>
<address>&packaging-url;</address>
</sect1info>
<title>Packaging-&packaging-version;</title>
<indexterm zone="ch-system-packaging">
<primary sortas="a-packaging">packaging</primary>
</indexterm>
<sect2 role="package">
<title/>
<para>
The packaging module is a Python library that provides utilities that
implement the interoperability specifications which have clearly one
correct behaviour (PEP440) or benefit greatly from having a single shared
implementation (PEP425). This includes utilities for version handling,
specifiers, markers, tags, and requirements.
</para>
<segmentedlist>
<segtitle>&buildtime;</segtitle>
<segtitle>&diskspace;</segtitle>
<seglistitem>
<seg>&packaging-fin-sbu;</seg>
<seg>&packaging-fin-du;</seg>
</seglistitem>
</segmentedlist>
</sect2>
<sect2 role="installation">
<title>Installation of Packaging</title>
<para>Compile packaging with the following command:</para>
<screen><userinput remap="make">pip3 wheel -w dist --no-cache-dir --no-build-isolation --no-deps $PWD</userinput></screen>
<para>Install packaging with the following command:</para>
<screen><userinput remap="install">pip3 install --no-index --find-links dist packaging</userinput></screen>
</sect2>
<sect2 id="contents-packaging" role="content">
<title>Contents of Packaging</title>
<segmentedlist>
<segtitle>Installed directories</segtitle>
<seglistitem>
<seg>
/usr/lib/python&python-minor;/site-packages/packaging and
/usr/lib/python&python-minor;/site-packages/packaging-&packaging-version;.dist-info
</seg>
</seglistitem>
</segmentedlist>
</sect2>
</sect1>

View File

@ -40,12 +40,11 @@
<sect2 role="installation">
<title>Installation of Perl</title>
<!--
<para>First, apply a patch that fixes an issue highlighted by recent
versions of gdbm:</para>
<screen><userinput remap="pre">patch -Np1 -i ../&perl-fix-patch;</userinput></screen>
-->
<para>First, apply a security patch identified upstream:</para>
<screen><userinput remap="pre">patch -Np1 -i ../&perl-upstream-fix-patch;</userinput></screen>
<para>This version of Perl builds the Compress::Raw::Zlib and
Compress::Raw::BZip2 modules. By
default Perl will use an internal copy of the sources for the build.
@ -60,26 +59,26 @@ export BUILD_BZIP2=0</userinput></screen>
this package is built. Alternatively, use the command exactly as shown below to
use the defaults that Perl auto-detects:</para>
<screen><userinput remap="configure">sh Configure -des \
-Dprefix=/usr \
-Dvendorprefix=/usr \
-Dprivlib=/usr/lib/perl5/&perl-version-min;/core_perl \
-Darchlib=/usr/lib/perl5/&perl-version-min;/core_perl \
-Dsitelib=/usr/lib/perl5/&perl-version-min;/site_perl \
-Dsitearch=/usr/lib/perl5/&perl-version-min;/site_perl \
-Dvendorlib=/usr/lib/perl5/&perl-version-min;/vendor_perl \
-Dvendorarch=/usr/lib/perl5/&perl-version-min;/vendor_perl \
-Dman1dir=/usr/share/man/man1 \
-Dman3dir=/usr/share/man/man3 \
-Dpager="/usr/bin/less -isR" \
-Duseshrplib \
-Dusethreads</userinput></screen>
<screen><userinput remap="configure">sh Configure -des \
-D prefix=/usr \
-D vendorprefix=/usr \
-D privlib=/usr/lib/perl5/&perl-version-min;/core_perl \
-D archlib=/usr/lib/perl5/&perl-version-min;/core_perl \
-D sitelib=/usr/lib/perl5/&perl-version-min;/site_perl \
-D sitearch=/usr/lib/perl5/&perl-version-min;/site_perl \
-D vendorlib=/usr/lib/perl5/&perl-version-min;/vendor_perl \
-D vendorarch=/usr/lib/perl5/&perl-version-min;/vendor_perl \
-D man1dir=/usr/share/man/man1 \
-D man3dir=/usr/share/man/man3 \
-D pager="/usr/bin/less -isR" \
-D useshrplib \
-D usethreads</userinput></screen>
<variablelist>
<title>The meaning of the new Configure options:</title>
<varlistentry>
<term><parameter>-Dpager="/usr/bin/less -isR"</parameter></term>
<term><parameter>-D pager="/usr/bin/less -isR"</parameter></term>
<listitem>
<para>This ensures that <userinput>less</userinput> is used instead
of <userinput>more</userinput>.</para>
@ -87,8 +86,8 @@ export BUILD_BZIP2=0</userinput></screen>
</varlistentry>
<varlistentry>
<term><parameter>-Dman1dir=/usr/share/man/man1
-Dman3dir=/usr/share/man/man3</parameter></term>
<term><parameter>-D man1dir=/usr/share/man/man1
-D man3dir=/usr/share/man/man3</parameter></term>
<listitem>
<para>Since Groff is not installed yet, <command>Configure</command>
will not create man pages for Perl. These
@ -97,7 +96,7 @@ export BUILD_BZIP2=0</userinput></screen>
</varlistentry>
<varlistentry>
<term><parameter>-Dusethreads</parameter></term>
<term><parameter>-D usethreads</parameter></term>
<listitem>
<para>Build Perl with support for threads.</para>
</listitem>
@ -109,7 +108,7 @@ export BUILD_BZIP2=0</userinput></screen>
<screen><userinput remap="make">make</userinput></screen>
<para>To test the results (approximately 11 SBU), issue:</para>
<para>To test the results, issue:</para>
<screen><userinput remap="test">TEST_JOBS=$(nproc) make test_harness</userinput></screen>

View File

@ -46,8 +46,8 @@
<para>Prepare Pkgconf for compilation:</para>
<screen><userinput remap="configure">./configure --prefix=/usr \
--disable-static \
<screen><userinput remap="configure">./configure --prefix=/usr \
--disable-static \
--docdir=/usr/share/doc/pkgconf-&pkgconf-version;</userinput></screen>
<para>Compile the package:</para>

View File

@ -69,10 +69,25 @@
</listitem>
<listitem> <para>If a package containing a shared library is updated, and
if the name of the library changes, then any packages dynamically
if the name of the library<footnote><para>The name of a shared library is
the string coded in the <constant>DT_SONAME</constant> entry of its
ELF dynamic section. You can get it with the
<command>readelf -d <replaceable>&lt;library file&gt;</replaceable>
| grep SONAME</command> command. In most cases it's suffixed with
<literal>.so.<replaceable>&lt;a version
number&gt;</replaceable></literal>, but there are some cases where
it contains multiple numbers for versioning (like
<filename>libbz2.so.1.0</filename>), contains the version number
before the <filename class='extension'>.so</filename> suffix (like
<filename>libbfd-&binutils-version;</filename>), or does not contain
any version number at all (for example
<filename>libmemusage.so</filename>).
Generally there is no correlation between the package version and the
version number(s) in the library name.</para></footnote>
changes, then any packages dynamically
linked to the library must be recompiled, to link against the
newer library. (Note that there is no correlation between the package
version and the name of the library.) For example, consider a package
newer library.
For example, consider a package
foo-1.2.3 that installs a shared library with the name <filename
class='libraryfile'>libfoo.so.1</filename>. Suppose you upgrade the package to
a newer version foo-1.2.4 that installs a shared library with the name
@ -370,11 +385,13 @@ make DESTDIR=/usr/pkg/libfoo/1.1 install</userinput></screen>
differences in system hardware and the original kernel
configuration.</para>
<note><para>There have been some reports of issues when copying between
similar but not identical architectures. For instance, the instruction set
for an Intel system is not identical with the AMD processor's instructions, and later
versions of some processors may provide instructions that are unavailable with
earlier versions.</para></note>
<important><para>If you want to deploy the LFS system onto a system
with a different CPU, when you build <xref linkend='ch-system-gmp'/> and
<xref linkend='ch-system-libffi'/> you must follow the notes about
overriding the architecture-specific optimization to produce libraries
suitable for both the host system and the system(s) where you'll deploy
the LFS system. Otherwise you'll get <computeroutput>Illegal
Instruction</computeroutput> errors running LFS.</para></important>
<para>Finally, the new system has to be made bootable via <xref
linkend="ch-bootable-grub"/>.</para>

View File

@ -45,12 +45,14 @@
<screen revision="sysv"><userinput remap="configure">./configure --prefix=/usr \
--docdir=/usr/share/doc/procps-ng-&procps-ng-version; \
--disable-static \
--disable-kill</userinput></screen>
--disable-kill \
--enable-watch8bit</userinput></screen>
<screen revision="systemd"><userinput remap="configure">./configure --prefix=/usr \
--docdir=/usr/share/doc/procps-ng-&procps-ng-version; \
--disable-static \
--disable-kill \
--enable-watch8bit \
--with-systemd</userinput></screen>
<variablelist>
@ -63,29 +65,34 @@
command; it will be installed from the Util-linux package.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>--enable-watch8bit</parameter></term>
<listitem>
<para>This switch enables the ncursesw support for the
<command>watch</command> command, so it can handle 8-bit
characters.</para>
</listitem>
</varlistentry>
</variablelist>
<para>Compile the package:</para>
<screen revision='sysv'><userinput remap="make">make</userinput></screen>
<screen revision='systemd'><userinput remap="make">make src_w_LDADD='$(LDADD) -lsystemd'</userinput></screen>
<screen><userinput remap="make">make</userinput></screen>
<para> To run the test suite, run:</para>
<!-- To editors: "pmap {X,XX} with unreachable process" tests don't work
as root. They may seem to pass due to some Tcl/Expect/DejaGNU
internal hazards with some "luck" though. -->
<para>To run the test suite, run:</para>
<screen><userinput remap="test">make -k check</userinput></screen>
<screen><userinput remap="test">chown -R tester .
su tester -c "PATH=$PATH make check"</userinput></screen>
<para>One test named
<literal>ps with output flag bsdtime,cputime,etime,etimes</literal>
is known to fail if the host kernel is not built with
<literal>CONFIG_BSD_PROCESS_ACCT</literal> enabled.
<!-- These two tests just do not work as root but they seem to pass
in most time due to some internal hazards of Tcl/Expect/DejaGNU
framework. However the failures have been really observed.
TODO: run the test suite as tester after the freeze ends. -->
Two tests named
<literal>pmap X with unreachable process</literal> and
<literal>pmap XX with unreachable process</literal> are known to
fail occasionally.</para>
<literal>CONFIG_BSD_PROCESS_ACCT</literal> enabled. In
addition, one pgrep test may fail in the chroot environment.</para>
<para>Install the package:</para>

View File

@ -42,13 +42,18 @@
<sect2 role="installation">
<title>Installation of Python 3</title>
<!--
<para>First, apply a security patch to the current package:</para>
<screen><userinput remap="pre">patch -Np1 -i ../&python-security-fixes-patch;</userinput></screen>
-->
<para>Prepare Python for compilation:</para>
<screen><userinput remap="configure">./configure --prefix=/usr \
--enable-shared \
--with-system-expat \
--enable-optimizations</userinput></screen>
<screen><userinput remap="configure">./configure --prefix=/usr \
--enable-shared \
--with-system-expat \
--enable-optimizations \
--without-static-libpython</userinput></screen>
<variablelist>
<title>The meaning of the configure options:</title>
@ -78,11 +83,18 @@
<screen><userinput remap="make">make</userinput></screen>
<para>Running the tests at this point is not recommended. The
tests are known to hang indefinitely in the partial LFS environment.
If desired, the tests can be rerun at the end of this chapter, or
when Python 3 is reinstalled in BLFS. To run the tests anyway,
issue <command>make test</command>.</para>
<para>Some tests are known to occasionally hang indefinitely. So to test the
results, run the test suite but set a 2-minute time limit for each
test case:</para>
<screen><userinput remap="test">make test TESTOPTS="--timeout 120"</userinput></screen>
<para>For a relatively slow system you may need to increase the time
limit and 1 SBU (measured when building Binutils pass 1 with one CPU
core) should be enough. Some tests are flaky, so the test suite will
automatically re-run failed tests. If a test failed but then passed
when re-run, it should be considered as passed. One test, test_ssl,
is known to fail in the chroot environment.</para>
<para>Install the package:</para>
@ -155,21 +167,21 @@ EOF
<screen><userinput remap="install">install -v -dm755 /usr/share/doc/python-&python-version;/html
tar --no-same-owner \
-xvf ../python-&python-version;-docs-html.tar.bz2
cp -R --no-preserve=mode python-&python-version;-docs-html/* \
/usr/share/doc/python-&python-version;/html</userinput></screen>
tar --strip-components=1 \
--no-same-owner \
--no-same-permissions \
-C /usr/share/doc/python-&python-version;/html \
-xvf ../python-&python-version;-docs-html.tar.bz2</userinput></screen>
<variablelist>
<title>The meaning of the documentation install commands:</title>
<varlistentry>
<term><option>--no-same-owner</option> (tar) and <option>--no-preserve=mode</option> (cp)</term>
<term><option>--no-same-owner</option> and <option>--no-same-permissions</option></term>
<listitem>
<para>Ensure the installed files have the correct ownership and
permissions. Without these options, <application>tar</application>
will install the package files with the upstream creator's values
and files would have restrictive permissions.
will install the package files with the upstream creator's values.
</para>
</listitem>
</varlistentry>

View File

@ -49,9 +49,12 @@
<screen><userinput remap="pre">sed -i '/MV.*old/d' Makefile.in
sed -i '/{OLDSUFF}/c:' support/shlib-install</userinput></screen>
<para>Now fix a problem identified upstream:</para>
<para>Prevent hard coding library search paths (rpath) into
the shared libraries. This package does not need rpath for an
installation into the standard location, and rpath may sometimes cause
unwanted effects or even security issues:</para>
<screen><userinput remap="pre">patch -Np1 -i ../&readline-fixes-patch;</userinput></screen>
<screen><userinput>sed -i 's/-Wl,-rpath,[^ ]*//' support/shobj-conf</userinput></screen>
<para>Prepare Readline for compilation:</para>
@ -86,7 +89,9 @@ sed -i '/{OLDSUFF}/c:' support/shlib-install</userinput></screen>
<term><parameter>SHLIB_LIBS="-lncursesw"</parameter></term>
<listitem>
<para>This option forces Readline to link against the
<filename class="libraryfile">libncursesw</filename> library.</para>
<filename class="libraryfile">libncursesw</filename> library.
For details see the <quote>Shared Libraries</quote> section in the
package's <filename>README</filename> file.</para>
</listitem>
</varlistentry>
@ -96,7 +101,7 @@ sed -i '/{OLDSUFF}/c:' support/shlib-install</userinput></screen>
<para>Install the package:</para>
<screen><userinput remap="install">make SHLIB_LIBS="-lncursesw" install</userinput></screen>
<screen><userinput remap="install">make install</userinput></screen>
<para>If desired, install the documentation:</para>

View File

@ -42,7 +42,7 @@
<para>Build the package:</para>
<screen><userinput remap="install">pip3 wheel -w dist --no-cache-dir --no-build-isolation --no-deps $PWD</userinput></screen>
<screen><userinput remap="make">pip3 wheel -w dist --no-cache-dir --no-build-isolation --no-deps $PWD</userinput></screen>
<para>Install the package:</para>

View File

@ -41,12 +41,23 @@
<sect2 role="installation">
<title>Installation of Shadow</title>
<important>
<para>
If you've installed Linux-PAM, you should follow
<ulink url='&blfs-book;postlfs/shadow.html'>the BLFS
instruction</ulink> instead of this page to build (or, rebuild or
upgrade) shadow.
</para>
</important>
<note>
<para>If you would like to enforce the use of strong passwords, refer to
<ulink url="&blfs-book;postlfs/cracklib.html"/> for installing
CrackLib prior to building Shadow. Then add
<parameter>--with-libcrack</parameter> to the <command>configure</command>
command below.</para>
<para>If you would like to enforce the use of strong passwords,
<ulink url='&blfs-book;postlfs/linux-pam.html'>install and configure
Linux-PAM</ulink> first. Then
<ulink url='&blfs-book;postlfs/shadow.html'>install and configure
shadow with the PAM support</ulink>. Finally
<ulink url='&blfs-book;postlfs/libpwquality.html'>install
libpwquality and configure PAM to use it</ulink>.</para>
</note>
<para>Disable the installation of the <command>groups</command> program
@ -72,24 +83,19 @@ find man -name Makefile.in -exec sed -i 's/passwd\.5 / /' {} \;</userinput></s
since they are simply symlinks to their counterparts in
<filename class="directory">/usr</filename>.</para>
<note>
<para>If you wish to include <filename class="directory">/bin</filename>
and/or <filename class="directory">/sbin</filename> in the <envar>PATH</envar>
for some reason, modify the
<envar>PATH</envar> in <filename>.bashrc</filename> after LFS has been
built.</para>
</note>
<warning>
<para>Including <filename class="directory">/bin</filename>
and/or <filename class="directory">/sbin</filename> in
the <envar>PATH</envar> variable may cause some BLFS packages fail to
build,<!-- known example: SPIRV-LLVM-Translator --> so don't do that
in the <filename>.bashrc</filename> file or anywhere else.</para>
</warning>
<screen><userinput remap="pre">sed -e 's:#ENCRYPT_METHOD DES:ENCRYPT_METHOD YESCRYPT:' \
-e 's:/var/spool/mail:/var/mail:' \
-e '/PATH=/{s@/sbin:@@;s@/bin:@@}' \
-i etc/login.defs</userinput></screen>
<note>
<para>If you chose to build Shadow with Cracklib support, issue this command:</para>
<screen role="nodump"><userinput>sed -i 's:DICTPATH.*:DICTPATH\t/lib/cracklib/pw_dict:' etc/login.defs</userinput></screen>
</note>
<!--
<para>Make a minor change to make the first group number generated
by useradd 1000:</para>
@ -233,7 +239,8 @@ useradd -D --gid 999</userinput></screen>
unknown GID 999</computeroutput>,
even though the account has been created correctly. That is why we
created the group <systemitem class="groupname">users</systemitem>
with this group ID in <xref linkend='ch-tools-createfiles'/>.</para>
with this group ID in
<xref linkend='ch-tools-createfiles' role='.'/></para>
</listitem>
</varlistentry>

View File

@ -24,16 +24,20 @@
backup of the LFS system in its current state.</para>
<para>A <command>strip</command> command with the
<parameter>--strip-unneeded</parameter> option removes all debug symbols
from a binary or library. It also removes all symbol table entries not
<parameter>--strip-unneeded</parameter> option removes all debug symbols from
a binary or library. It also removes all symbol table entries not normally
needed by the linker (for static libraries) or dynamic linker (for
dynamically linked binaries and shared libraries).</para>
dynamically linked binaries and shared libraries). Using
<parameter>--strip-debug</parameter> does not remove symbol table entries
that may be needed by some applications. The difference between
<literal>unneeded</literal> and <literal>debug</literal> is very small.
For example, an unstripped <filename class='libraryfile'>libc.a</filename>
is 22.4 MB. After stripping with <parameter>--strip-debug</parameter> it
is 5.9 MB. Using <parameter>--strip-unneeded</parameter> only reduces the
size further to 5.8 MB.</para>
<!-- TODO: Zstd is better than Zlib for both speed and size.
Unfortunately Valgrind does not support Zstd-compressed debug
info yet: https://bugs.kde.org/show_bug.cgi?id=469782 -->
<para>The debugging symbols from selected libraries are compressed with
<application>Zlib</application> and preserved in separate files. That
<application>Zstd</application> and preserved in separate files. That
debugging information is needed to run regression tests with <ulink
url='&blfs-book;/general/valgrind.html'>valgrind</ulink> or <ulink
url='&blfs-book;/general/gdb.html'>gdb</ulink> later, in BLFS.
@ -81,9 +85,9 @@
cd /usr/lib
for LIB in $save_usrlib; do
objcopy --only-keep-debug --compress-debug-sections=zlib $LIB $LIB.dbg
objcopy --only-keep-debug --compress-debug-sections=zstd $LIB $LIB.dbg
cp $LIB /tmp/$LIB
strip --strip-unneeded /tmp/$LIB
strip --strip-debug /tmp/$LIB
objcopy --add-gnu-debuglink=$LIB.dbg /tmp/$LIB
install -vm755 /tmp/$LIB /usr/lib
rm /tmp/$LIB
@ -102,14 +106,14 @@ online_usrlib="libbfd-&binutils-version;.so
for BIN in $online_usrbin; do
cp /usr/bin/$BIN /tmp/$BIN
strip --strip-unneeded /tmp/$BIN
strip --strip-debug /tmp/$BIN
install -vm755 /tmp/$BIN /usr/bin
rm /tmp/$BIN
done
for LIB in $online_usrlib; do
cp /usr/lib/$LIB /tmp/$LIB
strip --strip-unneeded /tmp/$LIB
strip --strip-debug /tmp/$LIB
install -vm755 /tmp/$LIB /usr/lib
rm /tmp/$LIB
done
@ -120,7 +124,7 @@ for i in $(find /usr/lib -type f -name \*.so* ! -name \*dbg) \
case "$online_usrbin $online_usrlib $save_usrlib" in
*$(basename $i)* )
;;
* ) strip --strip-unneeded $i
* ) strip --strip-debug $i
;;
esac
done

View File

@ -41,11 +41,14 @@
<sect2 role="installation">
<title>Installation of Sysklogd</title>
<para>First, fix a problem that causes a segmentation fault in klogd
under some conditions, and fix an obsolete program construct:</para>
<para>Prepare the package for compilation:</para>
<screen><userinput remap="pre">sed -i '/Error loading kernel symbols/{n;n;d}' ksym_mod.c
sed -i 's/union wait/int/' syslogd.c</userinput></screen>
<screen><userinput remap="configure">./configure --prefix=/usr \
--sysconfdir=/etc \
--runstatedir=/run \
--without-logger \
--disable-static \
--docdir=/usr/share/doc/sysklogd-&sysklogd-version;</userinput></screen>
<para>Compile the package:</para>
@ -55,7 +58,7 @@ sed -i 's/union wait/int/' syslogd.c</userinput></screen>
<para>Install the package:</para>
<screen><userinput remap="install">make BINDIR=/sbin install</userinput></screen>
<screen><userinput remap="install">make install</userinput></screen>
</sect2>
@ -85,6 +88,9 @@ mail.* -/var/log/mail.log
user.* -/var/log/user.log
*.emerg *
# Do not open any internet ports.
secure_mode 2
# End /etc/syslog.conf</literal>
EOF</userinput></screen>
@ -94,10 +100,10 @@ EOF</userinput></screen>
<title>Contents of Sysklogd</title>
<segmentedlist>
<segtitle>Installed programs</segtitle>
<segtitle>Installed program</segtitle>
<seglistitem>
<seg>klogd and syslogd</seg>
<seg>syslogd</seg>
</seglistitem>
</segmentedlist>
@ -106,16 +112,6 @@ EOF</userinput></screen>
<?dbfo list-presentation="list"?>
<?dbhtml list-presentation="table"?>
<varlistentry id="klogd">
<term><command>klogd</command></term>
<listitem>
<para>A system daemon for intercepting and logging kernel messages</para>
<indexterm zone="ch-system-sysklogd klogd">
<primary sortas="b-klogd">klogd</primary>
</indexterm>
</listitem>
</varlistentry>
<varlistentry id="syslogd">
<term><command>syslogd</command></term>
<listitem>

View File

@ -45,42 +45,34 @@
<systemitem class="groupname">sgx</systemitem>, from the default udev
rules:</para>
<screen><userinput remap="pre">sed -i -e 's/GROUP="render"/GROUP="video"/' \
-e 's/GROUP="sgx", //' rules.d/50-udev-default.rules.in</userinput></screen>
<!-- https://github.com/systemd/systemd/pull/30549 -->
<para>Now fix a security vulnerability in the DNSSEC verification of
<command>systemd-resolved</command> and a bug breaking running
<command>systemd-analyze verify</command> on an instantiated systemd
unit:</para>
<screen><userinput remap='pre'>patch -Np1 -i ../&systemd-upstream-patch;</userinput></screen>
<screen><userinput remap="pre">sed -e 's/GROUP="render"/GROUP="video"/' \
-e 's/GROUP="sgx", //' \
-i rules.d/50-udev-default.rules.in</userinput></screen>
<para>Prepare systemd for compilation:</para>
<screen><userinput remap="configure">mkdir -p build
cd build
meson setup \
--prefix=/usr \
--buildtype=release \
-Ddefault-dnssec=no \
-Dfirstboot=false \
-Dinstall-tests=false \
-Dldconfig=false \
-Dsysusers=false \
-Drpmmacrosdir=no \
-Dhomed=disabled \
-Duserdb=false \
-Dman=disabled \
-Dmode=release \
-Dpamconfdir=no \
-Ddev-kvm-mode=0660 \
-Dnobody-group=nogroup \
-Dsysupdate=disabled \
-Dukify=disabled \
-Ddocdir=/usr/share/doc/systemd-&systemd-version; \
..</userinput></screen>
meson setup .. \
--prefix=/usr \
--buildtype=release \
-D default-dnssec=no \
-D firstboot=false \
-D install-tests=false \
-D ldconfig=false \
-D sysusers=false \
-D rpmmacrosdir=no \
-D homed=disabled \
-D userdb=false \
-D man=disabled \
-D mode=release \
-D pamconfdir=no \
-D dev-kvm-mode=0660 \
-D nobody-group=nogroup \
-D sysupdate=disabled \
-D ukify=disabled \
-D docdir=/usr/share/doc/systemd-&systemd-version;</userinput></screen>
<variablelist>
<title>The meaning of the meson options:</title>
@ -95,14 +87,14 @@ meson setup \
</varlistentry>
<varlistentry>
<term><parameter>-Ddefault-dnssec=no</parameter></term>
<term><parameter>-D default-dnssec=no</parameter></term>
<listitem>
<para>This switch turns off the experimental DNSSEC support.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>-Dfirstboot=false</parameter></term>
<term><parameter>-D firstboot=false</parameter></term>
<listitem>
<para>This switch prevents installation of systemd
services responsible for setting up the system for
@ -112,14 +104,14 @@ meson setup \
</varlistentry>
<varlistentry>
<term><parameter>-Dinstall-tests=false</parameter></term>
<term><parameter>-D install-tests=false</parameter></term>
<listitem>
<para>This switch prevents installation of the compiled tests.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>-Dldconfig=false</parameter></term>
<term><parameter>-D ldconfig=false</parameter></term>
<listitem>
<para>This switch prevents installation of a systemd unit that runs
<command>ldconfig</command> at boot; this is not useful for source
@ -129,7 +121,7 @@ meson setup \
</varlistentry>
<varlistentry>
<term><parameter>-Dsysusers=false</parameter></term>
<term><parameter>-D sysusers=false</parameter></term>
<listitem>
<para>This switch prevents installation of systemd
services responsible for setting up the
@ -141,7 +133,7 @@ meson setup \
</varlistentry>
<varlistentry>
<term><parameter>-Drpmmacrosdir=no</parameter></term>
<term><parameter>-D rpmmacrosdir=no</parameter></term>
<listitem>
<para>This switch disables installation of RPM Macros
for use with systemd, because LFS does not support RPM.</para>
@ -149,8 +141,8 @@ meson setup \
</varlistentry>
<varlistentry>
<term><parameter>-Dhomed=disabled</parameter> and
<parameter>-Duserdb=false</parameter></term>
<term><parameter>-D homed=disabled</parameter> and
<parameter>-D userdb=false</parameter></term>
<listitem>
<para>Remove two daemons with dependencies that do not fit
within the scope of LFS.</para>
@ -158,7 +150,7 @@ meson setup \
</varlistentry>
<varlistentry>
<term><parameter>-Dman=disabled</parameter></term>
<term><parameter>-D man=disabled</parameter></term>
<listitem>
<para>Prevent the generation of man pages to avoid extra
dependencies. We will install pre-generated man pages for systemd
@ -167,7 +159,7 @@ meson setup \
</varlistentry>
<varlistentry>
<term><parameter>-Dmode=release</parameter></term>
<term><parameter>-D mode=release</parameter></term>
<listitem>
<para>Disable some features considered experimental by upstream.
</para>
@ -175,7 +167,7 @@ meson setup \
</varlistentry>
<varlistentry>
<term><parameter>-Dpamconfdir=no</parameter></term>
<term><parameter>-D pamconfdir=no</parameter></term>
<listitem>
<para>Prevent the installation of a PAM configuration file not
functional on LFS.</para>
@ -183,7 +175,7 @@ meson setup \
</varlistentry>
<varlistentry>
<term><parameter>-Ddev-kvm-mode=0660</parameter></term>
<term><parameter>-D dev-kvm-mode=0660</parameter></term>
<listitem>
<para>The default udev rule would allow all users to access
<filename class='devicefile'>/dev/kvm</filename>. The editors
@ -192,7 +184,7 @@ meson setup \
</varlistentry>
<varlistentry>
<term><parameter>-Dnobody-group=nogroup</parameter></term>
<term><parameter>-D nobody-group=nogroup</parameter></term>
<listitem>
<para>Tell the package the group name with GID 65534 is
<systemitem class='groupname'>nogroup</systemitem>.</para>
@ -200,7 +192,7 @@ meson setup \
</varlistentry>
<varlistentry>
<term><parameter>-Dsysupdate=disabled</parameter></term>
<term><parameter>-D sysupdate=disabled</parameter></term>
<listitem>
<para>Do not install the <command>systemd-sysupdate</command>
tool. It's designed for automatically upgrading binary distros,
@ -211,7 +203,7 @@ meson setup \
</varlistentry>
<varlistentry>
<term><parameter>-Dukify=disabled</parameter></term>
<term><parameter>-D ukify=disabled</parameter></term>
<listitem>
<para>Do not install the <command>systemd-ukify</command> script.
At runtime this script requires the
@ -226,6 +218,22 @@ meson setup \
<screen><userinput remap="make">ninja</userinput></screen>
<para>Some tests need a basic <filename>/etc/os-release</filename> file.
To test the results, issue:</para>
<screen><userinput remap="test">echo 'NAME="Linux From Scratch"' &gt; /etc/os-release
ninja test</userinput></screen>
<!-- test-namespace needs /run/systemd/inaccessible/sock, which only exists
after initializing the system with systemd. -->
<para>One test named <literal>systemd:core / test-namespace</literal>
is known to fail in the LFS chroot environment. Some other tests may
fail because they depend on various kernel configuration options.
The test named <literal>systemd:test / test-copy</literal> may time out
due to an I/O congestion with a large parallel job number, but it
would pass if running alone with
<command>meson test test-copy</command>.</para>
<para>Install the package:</para>
<screen><userinput remap="install">ninja install</userinput></screen>
@ -234,8 +242,8 @@ meson setup \
<!-- Please make sure systemd man pages tarball has a common leading
component in the path. -->
<screen><userinput remap="install">tar -xf ../../systemd-man-pages-&systemd-version;.tar.xz \
--no-same-owner --strip-components=1 \
<screen><userinput remap="install">tar -xf ../../systemd-man-pages-&systemd-man-version;.tar.xz \
--no-same-owner --strip-components=1 \
-C /usr/share/man</userinput></screen>
<para>Create the <filename>/etc/machine-id</filename> file needed by

View File

@ -14,16 +14,16 @@
<address>&sysvinit-url;</address>
</sect1info>
<title>Sysvinit-&sysvinit-version;</title>
<title>SysVinit-&sysvinit-version;</title>
<indexterm zone="ch-system-sysvinit">
<primary sortas="a-Sysvinit">Sysvinit</primary>
<primary sortas="a-SysVinit">SysVinit</primary>
</indexterm>
<sect2 role="package">
<title/>
<para>The Sysvinit package contains programs for controlling the startup,
<para>The SysVinit package contains programs for controlling the startup,
running, and shutdown of the system.</para>
<segmentedlist>
@ -39,7 +39,7 @@
</sect2>
<sect2 role="installation">
<title>Installation of Sysvinit</title>
<title>Installation of SysVinit</title>
<!--
<para>When run-levels are changed (for example, when halting the
@ -59,7 +59,7 @@
<command>mountpoint</command>, <command>last</command>,
<command>mesg</command>, <command>sulogin</command>, and
<command>utmpdump</command> programs were installed earlier by Util-linux.
Suppress the installation of Sysvinit's versions of these programs and
Suppress the installation of SysVinit's versions of these programs and
their man pages:</para>
<screen><userinput remap="make">sed -ri -e '/utmpdump/d' \
@ -85,7 +85,7 @@
</sect2>
<sect2 id="contents-sysvinit" role="content">
<title>Contents of Sysvinit</title>
<title>Contents of SysVinit</title>
<segmentedlist>
<segtitle>Installed programs</segtitle>

View File

@ -3,8 +3,8 @@
"http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
<!ENTITY % general-entities SYSTEM "../general.ent">
%general-entities;
<!ENTITY tdbc-ver "1.1.5">
<!ENTITY itcl-ver "4.2.3">
<!ENTITY tdbc-ver "1.1.10">
<!ENTITY itcl-ver "4.3.2">
]>
<sect1 id="ch-system-tcl" role="wrap">
@ -55,7 +55,23 @@
<screen><userinput remap="configure">SRCDIR=$(pwd)
cd unix
./configure --prefix=/usr \
--mandir=/usr/share/man</userinput></screen>
--mandir=/usr/share/man \
--disable-rpath</userinput></screen>
<variablelist>
<title>The meaning of the new configure parameters:</title>
<varlistentry>
<term><parameter>--disable-rpath</parameter></term>
<listitem>
<para>This parameter prevents hard coding library search paths
(rpath) into the binary executable files and shared libraries.
This package does not need rpath for an installation into the
standard location, and rpath may sometimes cause unwanted effects
or even security issues.</para>
</listitem>
</varlistentry>
</variablelist>
<para>Build the package:</para>
@ -66,9 +82,9 @@ sed -e "s|$SRCDIR/unix|/usr/lib|" \
-i tclConfig.sh
sed -e "s|$SRCDIR/unix/pkgs/tdbc&tdbc-ver;|/usr/lib/tdbc&tdbc-ver;|" \
-e "s|$SRCDIR/pkgs/tdbc&tdbc-ver;/generic|/usr/include|" \
-e "s|$SRCDIR/pkgs/tdbc&tdbc-ver;/library|/usr/lib/tcl8.6|" \
-e "s|$SRCDIR/pkgs/tdbc&tdbc-ver;|/usr/include|" \
-e "s|$SRCDIR/pkgs/tdbc&tdbc-ver;/generic|/usr/include|" \
-e "s|$SRCDIR/pkgs/tdbc&tdbc-ver;/library|/usr/lib/tcl8.6|" \
-e "s|$SRCDIR/pkgs/tdbc&tdbc-ver;|/usr/include|" \
-i pkgs/tdbc&tdbc-ver;/tdbcConfig.sh
sed -e "s|$SRCDIR/unix/pkgs/itcl&itcl-ver;|/usr/lib/itcl&itcl-ver;|" \

View File

@ -48,32 +48,33 @@
<systemitem class="groupname">sgx</systemitem>, from the default udev
rules:</para>
<screen><userinput remap="pre">sed -i -e 's/GROUP="render"/GROUP="video"/' \
-e 's/GROUP="sgx", //' rules.d/50-udev-default.rules.in</userinput></screen>
<screen><userinput remap="pre">sed -e 's/GROUP="render"/GROUP="video"/' \
-e 's/GROUP="sgx", //' \
-i rules.d/50-udev-default.rules.in</userinput></screen>
<para>Remove one udev rule requiring a full Systemd installation:</para>
<screen><userinput remap="pre">sed '/systemd-sysctl/s/^/#/' -i rules.d/99-systemd.rules.in</userinput></screen>
<screen><userinput remap="pre">sed -i '/systemd-sysctl/s/^/#/' rules.d/99-systemd.rules.in</userinput></screen>
<para>Adjust the hardcoded paths to network configuration files for the
standalone udev installation:</para>
<screen><userinput remap="pre">sed '/NETWORK_DIRS/s/systemd/udev/' -i src/basic/path-lookup.h</userinput></screen>
<screen><userinput remap="pre">sed -e '/NETWORK_DIRS/s/systemd/udev/' \
-i src/libsystemd/sd-network/network-util.h</userinput></screen>
<para>Prepare Udev for compilation:</para>
<screen><userinput remap="configure">mkdir -p build
cd build
meson setup \
--prefix=/usr \
--buildtype=release \
-Dmode=release \
-Ddev-kvm-mode=0660 \
-Dlink-udev-shared=false \
-Dlogind=false \
-Dvconsole=false \
..</userinput></screen>
meson setup .. \
--prefix=/usr \
--buildtype=release \
-D mode=release \
-D dev-kvm-mode=0660 \
-D link-udev-shared=false \
-D logind=false \
-D vconsole=false</userinput></screen>
<variablelist>
<title>The meaning of the meson options:</title>
@ -88,7 +89,7 @@ meson setup \
</varlistentry>
<varlistentry>
<term><parameter>-Dmode=release</parameter></term>
<term><parameter>-D mode=release</parameter></term>
<listitem>
<para>Disable some features considered experimental by upstream.
</para>
@ -96,7 +97,7 @@ meson setup \
</varlistentry>
<varlistentry>
<term><parameter>-Ddev-kvm-mode=0660</parameter></term>
<term><parameter>-D dev-kvm-mode=0660</parameter></term>
<listitem>
<para>The default udev rule would allow all users to access
<filename class='devicefile'>/dev/kvm</filename>. The editors
@ -105,7 +106,7 @@ meson setup \
</varlistentry>
<varlistentry>
<term><parameter>-Dlink-udev-shared=false</parameter></term>
<term><parameter>-D link-udev-shared=false</parameter></term>
<listitem>
<para>This option prevents udev from linking to the internal
systemd shared library,
@ -116,7 +117,7 @@ meson setup \
</varlistentry>
<varlistentry>
<term><parameter>-Dlogind=false -Dvconsole=false</parameter></term>
<term><parameter>-D logind=false -D vconsole=false</parameter></term>
<listitem>
<para>These options prevent the generation of several udev rule
files belonging to the other Systemd components that we won't

View File

@ -42,43 +42,46 @@
<sect2 role="installation">
<title>Installation of Util-linux</title>
<!--
<para>First, disable a problematic test:</para>
<screen><userinput remap="pre">sed -i '/test_mkfds/s/^/#/' tests/helpers/Makemodule.am</userinput></screen>
-->
<para>Prepare Util-linux for compilation:</para>
<screen revision="sysv"><userinput remap="configure">./configure --bindir=/usr/bin \
--libdir=/usr/lib \
--runstatedir=/run \
--sbindir=/usr/sbin \
--disable-chfn-chsh \
--disable-login \
--disable-nologin \
--disable-su \
--disable-setpriv \
--disable-runuser \
--disable-pylibmount \
--disable-static \
--without-python \
--without-systemd \
<screen revision="sysv"><userinput remap="configure">./configure --bindir=/usr/bin \
--libdir=/usr/lib \
--runstatedir=/run \
--sbindir=/usr/sbin \
--disable-chfn-chsh \
--disable-login \
--disable-nologin \
--disable-su \
--disable-setpriv \
--disable-runuser \
--disable-pylibmount \
--disable-liblastlog2 \
--disable-static \
--without-python \
--without-systemd \
--without-systemdsystemunitdir \
ADJTIME_PATH=/var/lib/hwclock/adjtime \
--docdir=/usr/share/doc/util-linux-&util-linux-version;</userinput></screen>
<screen revision="systemd"><userinput remap="configure">./configure --bindir=/usr/bin \
--libdir=/usr/lib \
--runstatedir=/run \
--sbindir=/usr/sbin \
--disable-chfn-chsh \
--disable-login \
--disable-nologin \
--disable-su \
--disable-setpriv \
--disable-runuser \
--disable-pylibmount \
--disable-static \
--without-python \
<screen revision="systemd"><userinput remap="configure">./configure --bindir=/usr/bin \
--libdir=/usr/lib \
--runstatedir=/run \
--sbindir=/usr/sbin \
--disable-chfn-chsh \
--disable-login \
--disable-nologin \
--disable-su \
--disable-setpriv \
--disable-runuser \
--disable-pylibmount \
--disable-liblastlog2 \
--disable-static \
--without-python \
ADJTIME_PATH=/var/lib/hwclock/adjtime \
--docdir=/usr/share/doc/util-linux-&util-linux-version;</userinput></screen>
@ -90,7 +93,14 @@
<screen><userinput remap="make">make</userinput></screen>
<para>If desired, run the test suite as a non-&root; user:</para>
<!-- To editors:
Two tests need a /etc/fstab file. They are skipped if the host
distro isn't using systemd as the init system, so don't remove
the creation of /etc/fstab unless you've tested it with such a
host distro (for example LFS systemd or Debian). -->
<para>If desired, create a dummy <filename>/etc/fstab</filename> file
to satisfy two tests and run the test suite as a non-&root;
user:</para>
<warning><para>Running the test suite as the
<systemitem class="username">root</systemitem> user can be harmful to
@ -103,17 +113,25 @@
<screen role="nodump"><userinput>bash tests/run.sh --srcdir=$PWD --builddir=$PWD</userinput></screen>
</warning>
<screen><userinput remap="test">chown -R tester .
<screen><userinput remap="test">touch /etc/fstab
chown -R tester .
su tester -c "make -k check"</userinput></screen>
<para>The <emphasis>hardlink</emphasis> tests will fail if the host's kernel
does not have the option <option>CONFIG_CRYPTO_USER_API_HASH</option>
enabled or does not have any options providing a SHA256 implementation
(for example, <option>CONFIG_CRYPTO_SHA256</option>, or
<option>CONFIG_CRYPTO_SHA256_SSSE3</option> if the CPU supports
Supplemental SSE3) enabled. In addition,
two sub-tests from misc: mbsencode and one sub-test from script: replay are
known to fail.</para>
<para>
The <emphasis>hardlink</emphasis> tests will fail if the host's kernel
does not have the option <option>CONFIG_CRYPTO_USER_API_HASH</option>
enabled or does not have any options providing a SHA256 implementation
(for example, <option>CONFIG_CRYPTO_SHA256</option>, or
<option>CONFIG_CRYPTO_SHA256_SSSE3</option> if the CPU supports
Supplemental SSE3) enabled. In addition, the lsfd: inotify test will
fail if the kernel option <option>CONFIG_NETLINK_DIAG</option> is not
enabled.
</para>
<para>
Two other tests, lsfd: SOURCE column and utmp: last, are known to
fail in the chroot environment.
</para>
<para>Install the package:</para>

View File

@ -64,9 +64,11 @@
<para>To prepare the tests, ensure that user
<systemitem class="username">tester</systemitem> can write
to the source tree:</para>
to the source tree and exclude one file containing tests requiring
<command>curl</command> or <command>wget</command>:</para>
<screen><userinput remap="test">chown -R tester .</userinput></screen>
<screen><userinput remap="test">chown -R tester .
sed '/test_plugin_glvs/d' -i src/testdir/Make_all.mak</userinput></screen>
<para>Now run the tests as user <systemitem
class="username">tester</systemitem>:</para>
@ -76,7 +78,7 @@
<para>The test suite outputs a lot of binary data to the screen. This can
cause issues with the settings of the current terminal (especially while
we are overriding the <envar>TERM</envar> variable to satisify some
we are overriding the <envar>TERM</envar> variable to satisfy some
assumptions of the test suite). The problem can be
avoided by redirecting the output to a log file as shown above. A
successful test will result in the words <computeroutput>ALL

View File

@ -46,7 +46,7 @@
<para>Install Wheel with the following command:</para>
<screen><userinput remap="install">pip3 install --no-index --find-links=dist wheel</userinput></screen>
<screen><userinput remap="install">pip3 install --no-index --find-links dist wheel</userinput></screen>
</sect2>

View File

@ -8,7 +8,7 @@
<sect1 id="ch-config-clock" revision="systemd">
<?dbhtml filename="clock.html"?>
<title>Configuring the system clock</title>
<title>Configuring the System Clock</title>
<indexterm zone="ch-config-clock">
<primary sortas="d-clock">clock</primary>

View File

@ -198,7 +198,7 @@ EOF</userinput></screen>
<para>x can be any number in the range 16-31. y can be any number in the
range 0-255.</para>
<para>A valid private IP address could be 192.168.1.1.</para>
<para>A valid private IP address could be 192.168.1.2.</para>
<para>If the computer is to be visible to the Internet, a valid FQDN
can be the domain name itself, or a string resulted by concatenating a
@ -218,7 +218,7 @@ EOF</userinput></screen>
127.0.0.1 localhost.localdomain localhost
127.0.1.1 <replaceable>&lt;FQDN&gt;</replaceable> <replaceable>&lt;HOSTNAME&gt;</replaceable>
<replaceable>&lt;192.168.1.1&gt;</replaceable> <replaceable>&lt;FQDN&gt;</replaceable> <replaceable>&lt;HOSTNAME&gt;</replaceable> <replaceable>[alias1] [alias2 ...]</replaceable>
<replaceable>&lt;192.168.1.2&gt;</replaceable> <replaceable>&lt;FQDN&gt;</replaceable> <replaceable>&lt;HOSTNAME&gt;</replaceable> <replaceable>[alias1] [alias2 ...]</replaceable>
::1 localhost ip6-localhost ip6-loopback
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
@ -226,7 +226,7 @@ ff02::2 ip6-allrouters
# End /etc/hosts</literal>
EOF</userinput></screen>
<para>The <replaceable>&lt;192.168.1.1&gt;</replaceable>,
<para>The <replaceable>&lt;192.168.1.2&gt;</replaceable>,
<replaceable>&lt;FQDN&gt;</replaceable>, and
<replaceable>&lt;HOSTNAME&gt;</replaceable> values need to be
changed for specific uses or requirements (if assigned an IP address by a

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