Merge remote-tracking branch 'origin/trunk' into xry111/arm64

This commit is contained in:
Xi Ruoyao 2023-12-05 13:12:55 +08:00
commit 73d91ac621
No known key found for this signature in database
GPG Key ID: ACAAD20E19E710E3
55 changed files with 1012 additions and 423 deletions

1
.gitignore vendored
View File

@ -1,4 +1,5 @@
lfs-bootscripts-*.tar.xz lfs-bootscripts-*.tar.xz
lfs-*.tar.xz
conditional.ent conditional.ent
version.ent version.ent
appendices/*.script appendices/*.script

View File

@ -57,7 +57,6 @@ book: validate profile-html
true; \ true; \
/bin/bash obfuscate.sh $$filename; \ /bin/bash obfuscate.sh $$filename; \
sed -e "s@text/html@application/xhtml+xml@g" \ sed -e "s@text/html@application/xhtml+xml@g" \
-e "s/\xa9/\©/ " \
-i $$filename; \ -i $$filename; \
done; done;
@ -209,5 +208,14 @@ dump-commands: validate
all: book nochunks pdf dump-commands all: book nochunks pdf dump-commands
.PHONY : all book dump-commands nochunks pdf profile-html tmpdir validate md5sums wget-list version dist:
$(Q)DIST=/tmp/LFS-RELEASE ./git-version.sh $(REV)
$(Q)rm -f lfs-$$(</tmp/LFS-RELEASE).tar.xz
$(Q)tar cJf lfs-$$(</tmp/LFS-RELEASE).tar.xz \
$(shell git ls-tree HEAD . --name-only) version.ent \
-C /tmp LFS-RELEASE \
--transform "s,^,lfs-$$(</tmp/LFS-RELEASE)/,"
$(Q)echo "Generated XML tarball lfs-$$(</tmp/LFS-RELEASE).tar.xz"
.PHONY : all book dump-commands nochunks pdf profile-html tmpdir validate md5sums wget-list version dist

View File

@ -6,6 +6,7 @@
<!-- Convenient entity for "Systemd" or "Udev" --> <!-- Convenient entity for "Systemd" or "Udev" -->
<!ENTITY systemd-udev "<phrase revision='systemd'>Systemd</phrase> <!ENTITY systemd-udev "<phrase revision='systemd'>Systemd</phrase>
<phrase revision='sysv'>Udev</phrase>"> <phrase revision='sysv'>Udev</phrase>">
<!ENTITY bdb "<ulink url='https://www.oracle.com/database/technologies/related/berkeleydb.html'>Berkeley DB</ulink>">
]> ]>
<appendix id="appendixc" xreflabel="Appendix C"> <appendix id="appendixc" xreflabel="Appendix C">
@ -29,10 +30,7 @@
in addition to those on the first list, need to be available in order to run in addition to those on the first list, need to be available in order to run
the test suites. The fourth list of dependencies are packages that require the test suites. The fourth list of dependencies are packages that require
this package to be built and installed in its final location before they are this package to be built and installed in its final location before they are
built and installed. In most cases, this is because these packages will hard built and installed.</para>
code paths to binaries within their scripts. If not built in a certain order,
this could result in paths of /tools/bin/[binary] being placed inside scripts
installed to the final system. This is obviously not desirable.</para>
<para>The last list of dependencies are optional packages that are not <para>The last list of dependencies are optional packages that are not
addressed in LFS, but could be useful to the user. These packages may have addressed in LFS, but could be useful to the user. These packages may have
@ -294,7 +292,7 @@
<segmentedlist id="binutils-rundeps"> <segmentedlist id="binutils-rundeps">
<segtitle>&runtime;</segtitle> <segtitle>&runtime;</segtitle>
<seglistitem> <seglistitem>
<seg>Glibc and Zlib</seg> <seg>Glibc, Zlib, and Zstd</seg>
</seglistitem> </seglistitem>
</segmentedlist> </segmentedlist>
@ -1486,7 +1484,7 @@
<segtitle>&external;</segtitle> <segtitle>&external;</segtitle>
<seglistitem> <seglistitem>
<seg> <seg>
<ulink url="&blfs-book;server/db.html">Berkeley DB</ulink>, &bdb;,
<ulink url="&blfs-book;postlfs/iptables.html">iptables</ulink>, <ulink url="&blfs-book;postlfs/iptables.html">iptables</ulink>,
<ulink url="&github;/libbpf/libbpf">libbpf</ulink>, <ulink url="&github;/libbpf/libbpf">libbpf</ulink>,
<ulink url="&blfs-book;basicnet/libmnl.html">libmnl</ulink>, and <ulink url="&blfs-book;basicnet/libmnl.html">libmnl</ulink>, and
@ -1496,37 +1494,37 @@
</segmentedlist> </segmentedlist>
<!-- Begin Jinja2 dependency info --> <!-- Begin Jinja2 dependency info -->
<bridgehead revision='systemd' renderas="sect2" id="jinja2-dep">Jinja2</bridgehead> <bridgehead renderas="sect2" id="jinja2-dep">Jinja2</bridgehead>
<segmentedlist id="jinja2-depends" revision='systemd'> <segmentedlist id="jinja2-depends">
<segtitle>&dependencies;</segtitle> <segtitle>&dependencies;</segtitle>
<seglistitem> <seglistitem>
<seg>MarkupSafe and Python</seg> <seg>MarkupSafe, Python, Setuptools, and Wheel</seg>
</seglistitem> </seglistitem>
</segmentedlist> </segmentedlist>
<segmentedlist id="jinja2-rundeps" revision='systemd'> <segmentedlist id="jinja2-rundeps">
<segtitle>&runtime;</segtitle> <segtitle>&runtime;</segtitle>
<seglistitem> <seglistitem>
<seg>MarkupSafe and Python</seg> <seg>MarkupSafe and Python</seg>
</seglistitem> </seglistitem>
</segmentedlist> </segmentedlist>
<segmentedlist id="jinja2-testdeps" revision='systemd'> <segmentedlist id="jinja2-testdeps">
<segtitle>&testsuites;</segtitle> <segtitle>&testsuites;</segtitle>
<seglistitem> <seglistitem>
<seg>No test suite available</seg> <seg>No test suite available</seg>
</seglistitem> </seglistitem>
</segmentedlist> </segmentedlist>
<segmentedlist id="jinja2-before" revision='systemd'> <segmentedlist id="jinja2-before">
<segtitle>&before;</segtitle> <segtitle>&before;</segtitle>
<seglistitem> <seglistitem>
<seg>&systemd-udev;</seg> <seg>&systemd-udev;</seg>
</seglistitem> </seglistitem>
</segmentedlist> </segmentedlist>
<segmentedlist id="jinja2-optdeps" revision='systemd'> <segmentedlist id="jinja2-optdeps">
<segtitle>&external;</segtitle> <segtitle>&external;</segtitle>
<seglistitem> <seglistitem>
<seg>None</seg> <seg>None</seg>
@ -2136,37 +2134,37 @@
</segmentedlist> </segmentedlist>
<!-- Begin MarkupSafe dependency info --> <!-- Begin MarkupSafe dependency info -->
<bridgehead renderas="sect2" id="markupsafe-dep" revision='systemd'>MarkupSafe</bridgehead> <bridgehead renderas="sect2" id="markupsafe-dep">MarkupSafe</bridgehead>
<segmentedlist id="markupsafe-depends" revision='systemd'> <segmentedlist id="markupsafe-depends">
<segtitle>&dependencies;</segtitle> <segtitle>&dependencies;</segtitle>
<seglistitem> <seglistitem>
<seg>Python</seg> <seg>Python, Setuptools, and Wheel</seg>
</seglistitem> </seglistitem>
</segmentedlist> </segmentedlist>
<segmentedlist id="markupsafe-rundeps" revision='systemd'> <segmentedlist id="markupsafe-rundeps">
<segtitle>&runtime;</segtitle> <segtitle>&runtime;</segtitle>
<seglistitem> <seglistitem>
<seg>Python</seg> <seg>Python</seg>
</seglistitem> </seglistitem>
</segmentedlist> </segmentedlist>
<segmentedlist id="markupsafe-testdeps" revision='systemd'> <segmentedlist id="markupsafe-testdeps">
<segtitle>&testsuites;</segtitle> <segtitle>&testsuites;</segtitle>
<seglistitem> <seglistitem>
<seg>No test suite available</seg> <seg>No test suite available</seg>
</seglistitem> </seglistitem>
</segmentedlist> </segmentedlist>
<segmentedlist id="markupsafe-before" revision='systemd'> <segmentedlist id="markupsafe-before">
<segtitle>&before;</segtitle> <segtitle>&before;</segtitle>
<seglistitem> <seglistitem>
<seg>Jinja2</seg> <seg>Jinja2</seg>
</seglistitem> </seglistitem>
</segmentedlist> </segmentedlist>
<segmentedlist id="markupsafe-optdeps" revision='systemd'> <segmentedlist id="markupsafe-optdeps">
<segtitle>&external;</segtitle> <segtitle>&external;</segtitle>
<seglistitem> <seglistitem>
<seg>None</seg> <seg>None</seg>
@ -2179,7 +2177,7 @@
<segmentedlist id="meson-depends"> <segmentedlist id="meson-depends">
<segtitle>&dependencies;</segtitle> <segtitle>&dependencies;</segtitle>
<seglistitem> <seglistitem>
<seg>Ninja and Python</seg> <seg>Ninja, Python, Setuptools, and Wheel</seg>
</seglistitem> </seglistitem>
</segmentedlist> </segmentedlist>
@ -2486,7 +2484,7 @@
<segtitle>&external;</segtitle> <segtitle>&external;</segtitle>
<seglistitem> <seglistitem>
<seg> <seg>
<ulink url="&blfs-book;server/db.html">Berkeley DB</ulink> &bdb;
</seg> </seg>
</seglistitem> </seglistitem>
</segmentedlist> </segmentedlist>
@ -2655,7 +2653,7 @@
<segtitle>&external;</segtitle> <segtitle>&external;</segtitle>
<seglistitem> <seglistitem>
<seg> <seg>
<ulink url="&blfs-book;server/db.html">Berkeley DB</ulink>, &bdb;,
<ulink url="&blfs-book;basicnet/libnsl.html">libnsl</ulink>, <ulink url="&blfs-book;basicnet/libnsl.html">libnsl</ulink>,
<ulink url="&blfs-book;server/sqlite.html">SQLite</ulink>, and <ulink url="&blfs-book;server/sqlite.html">SQLite</ulink>, and
<ulink url="&blfs-book;general/tk.html">Tk</ulink> <ulink url="&blfs-book;general/tk.html">Tk</ulink>
@ -2741,6 +2739,44 @@
</seglistitem> </seglistitem>
</segmentedlist> </segmentedlist>
<!-- Begin Setuptools dependency info -->
<bridgehead renderas="sect2" id="setuptools-dep">Setuptools</bridgehead>
<segmentedlist id="setuptools-depends">
<segtitle>&dependencies;</segtitle>
<seglistitem>
<seg>Python and Wheel</seg>
</seglistitem>
</segmentedlist>
<segmentedlist id="setuptools-rundeps">
<segtitle>&runtime;</segtitle>
<seglistitem>
<seg>Python</seg>
</seglistitem>
</segmentedlist>
<segmentedlist id="setuptools-testdeps">
<segtitle>&testsuites;</segtitle>
<seglistitem>
<seg>No test suite available</seg>
</seglistitem>
</segmentedlist>
<segmentedlist id="setuptools-before">
<segtitle>&before;</segtitle>
<seglistitem>
<seg>Jinja2, MarkupSafe, and Meson</seg>
</seglistitem>
</segmentedlist>
<segmentedlist id="setuptools-optdeps">
<segtitle>&external;</segtitle>
<seglistitem>
<seg>None</seg>
</seglistitem>
</segmentedlist>
<!-- Begin Shadow dependency info --> <!-- Begin Shadow dependency info -->
<bridgehead renderas="sect2" id="shadow-dep">Shadow</bridgehead> <bridgehead renderas="sect2" id="shadow-dep">Shadow</bridgehead>
@ -3216,7 +3252,7 @@
</segmentedlist> </segmentedlist>
<!-- Begin Wheel dependency info --> <!-- Begin Wheel dependency info -->
<bridgehead renderas="sect2" id="wheel-dep">wheel</bridgehead> <bridgehead renderas="sect2" id="wheel-dep">Wheel</bridgehead>
<segmentedlist id="wheel-depends"> <segmentedlist id="wheel-depends">
<segtitle>&dependencies;</segtitle> <segtitle>&dependencies;</segtitle>
@ -3243,8 +3279,7 @@
<segtitle>&before;</segtitle> <segtitle>&before;</segtitle>
<seglistitem> <seglistitem>
<seg> <seg>
<phrase revision='sysv'>None</phrase> Jinja2, MarkupSafe, Meson, and Setuptools
<phrase revision='systemd'>Jinja2</phrase>
</seg> </seg>
</seglistitem> </seglistitem>
</segmentedlist> </segmentedlist>

View File

@ -1,3 +1,8 @@
2023-10-04 Pierre Labastie <pierre.labastie@neuf.fr>
* After the changes done on 2022-03-24, several "halt stop" should
have been changed to "halt start". Done now. Fortunately, those
occur only when something wrong happens with disks or devices.
2023-07-28 Xi Ruoyao <xry111@xry111.site> 2023-07-28 Xi Ruoyao <xry111@xry111.site>
* In mountvirtfs, mount /sys/fs/cgroup for udev from systemd-254. * In mountvirtfs, mount /sys/fs/cgroup for udev from systemd-254.
@ -24,7 +29,7 @@
* New semantics for K and S scripts: * New semantics for K and S scripts:
- S scripts only started if not already marked S in the previous runlevel - S scripts only started if not already marked S in the previous runlevel
- K scripts only started if not already marked K in the previous runlevel - K scripts only started if not already marked K in the previous runlevel
- remove the convention of running S scripts ith "stop" in rl 0/6 - remove the convention of running S scripts with "stop" in rl 0/6
2021-06-08 Bruce Dubbs <bdubbs@linuxfromscratch.org> 2021-06-08 Bruce Dubbs <bdubbs@linuxfromscratch.org>
* When shutting down the network, ignore invalid interfaces * When shutting down the network, ignore invalid interfaces
or interfaces that are not UP. or interfaces that are not UP.

View File

@ -63,7 +63,7 @@ case "${1}" in
log_info_msg "Press Enter to continue..." log_info_msg "Press Enter to continue..."
wait_for_user wait_for_user
/etc/rc.d/init.d/halt stop /etc/rc.d/init.d/halt start
else else
log_success_msg2 log_success_msg2
fi fi
@ -127,7 +127,7 @@ case "${1}" in
log_info_msg "Press Enter to continue..." log_info_msg "Press Enter to continue..."
wait_for_user wait_for_user
/etc/rc.d/init.d/halt stop /etc/rc.d/init.d/halt start
fi fi
if [ "${error_value}" -ge 16 ]; then if [ "${error_value}" -ge 16 ]; then

View File

@ -41,7 +41,7 @@ case "${1}" in
log_info_msg "$msg" log_info_msg "$msg"
log_info_msg "Press Enter to continue..." log_info_msg "Press Enter to continue..."
wait_for_user wait_for_user
/etc/rc.d/init.d/halt stop /etc/rc.d/init.d/halt start
fi fi
# Start the udev daemon to continually watch for, and act on, # Start the udev daemon to continually watch for, and act on,

View File

@ -40,12 +40,308 @@
appropriate for the entry or if needed the entire day's listitem. appropriate for the entry or if needed the entire day's 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
<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>
</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>
</listitem>
</itemizedlist>
</listitem>
<listitem>
<para>2023-11-13</para>
<itemizedlist>
<listitem>
<para>[xry111] - Update to elfutils-0.190. Fixes
<ulink url='&lfs-ticket-root;5373'>#5373</ulink>.</para>
</listitem>
<listitem>
<para>[xry111] - Update to vim-9.0.2103. Addresses
<ulink url='&lfs-ticket-root;4500'>#4500</ulink>.</para>
</listitem>
<listitem>
<para>[xry111] - Update to linux-6.6.1. Fixes
<ulink url='&lfs-ticket-root;5369'>#5369</ulink>.</para>
</listitem>
<listitem>
<para>[xry111] - Update to xz-5.4.5. Fixes
<ulink url='&lfs-ticket-root;5371'>#5371</ulink>.</para>
</listitem>
<listitem>
<para>[xry111] - Update to iana-etc-20231107. Addresses
<ulink url='&lfs-ticket-root;5006'>#5006</ulink>.</para>
</listitem>
<listitem>
<para>[xry111] - Update to gawk-5.3.0. Fixes
<ulink url='&lfs-ticket-root;5372'>#5372</ulink>.</para>
</listitem>
<listitem>
<para>[xry111] - Update to bash-5.2.21. Fixes
<ulink url='&lfs-ticket-root;5375'>#5375</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>
</listitem>
<listitem>
<para>[bdubbs] - Update to wheel-0.41.3. Fixes
<ulink url='&lfs-ticket-root;5370'>#5370</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> <listitem>
<para>2023-09-05</para> <para>2023-09-05</para>
<itemizedlist> <itemizedlist>
<listitem> <listitem>
<para>[xry111] - Move pkgconf before binutils for binutils <para>[xry111] - Move pkgconf before binutils for binutils
building system to detect zstd properly. building system to detect zstd properly. Fixes
<ulink url='&lfs-ticket-root;5340'>#5340</ulink>.</para> <ulink url='&lfs-ticket-root;5340'>#5340</ulink>.</para>
</listitem> </listitem>
<listitem> <listitem>

View File

@ -38,12 +38,12 @@
<!--<listitem> <!--<listitem>
<para>Automake-&automake-version;</para> <para>Automake-&automake-version;</para>
</listitem>--> </listitem>-->
<!--<listitem> <listitem>
<para>Bash &bash-version;</para> <para>Bash-&bash-version;</para>
</listitem>--> </listitem>
<!--<listitem> <listitem>
<para>Bc &bc-version;</para> <para>Bc-&bc-version;</para>
</listitem>--> </listitem>
<!--<listitem> <!--<listitem>
<para>Binutils-&binutils-version;</para> <para>Binutils-&binutils-version;</para>
</listitem>--> </listitem>-->
@ -62,18 +62,15 @@
<!--<listitem> <!--<listitem>
<para>DejaGNU-&dejagnu-version;</para> <para>DejaGNU-&dejagnu-version;</para>
</listitem>--> </listitem>-->
<!--<listitem revision="systemd"> <listitem revision="systemd">
<para>D-Bus-&dbus-version;</para> <para>D-Bus-&dbus-version;</para>
</listitem>--> </listitem>
<!--<listitem> <!--<listitem>
<para>Diffutils-&diffutils-version;</para> <para>Diffutils-&diffutils-version;</para>
</listitem>--> </listitem>-->
<!--<listitem> <!--<listitem>
<para>E2fsprogs-&e2fsprogs-version;</para> <para>E2fsprogs-&e2fsprogs-version;</para>
</listitem>--> </listitem>-->
<!--<listitem revision="sysv">
<para>Udev-&systemd-version; (from systemd)</para>
</listitem>-->
<!--<listitem> <!--<listitem>
<para>Expat-&expat-version;</para> <para>Expat-&expat-version;</para>
</listitem>--> </listitem>-->
@ -92,18 +89,18 @@
<!--<listitem> <!--<listitem>
<para>Flit-core-&flit-core-version;</para> <para>Flit-core-&flit-core-version;</para>
</listitem>--> </listitem>-->
<!--<listitem> <listitem>
<para>Gawk-&gawk-version;</para> <para>Gawk-&gawk-version;</para>
</listitem>--> </listitem>
<!--<listitem> <!--<listitem>
<para>GCC-&gcc-version;</para> <para>GCC-&gcc-version;</para>
</listitem>--> </listitem>-->
<!--<listitem> <!--<listitem>
<para>GDBM-&gdbm-version;</para> <para>GDBM-&gdbm-version;</para>
</listitem>--> </listitem>-->
<!--<listitem> <listitem>
<para>Gettext-&gettext-version;</para> <para>Gettext-&gettext-version;</para>
</listitem>--> </listitem>
<!--<listitem> <!--<listitem>
<para>Glibc-&glibc-version;</para> <para>Glibc-&glibc-version;</para>
</listitem>--> </listitem>-->
@ -125,27 +122,27 @@
<listitem> <listitem>
<para>Gzip-&gzip-version;</para> <para>Gzip-&gzip-version;</para>
</listitem> </listitem>
<!--<listitem> <listitem>
<para>IANA-Etc-&iana-etc-version;</para> <para>Iana-Etc-&iana-etc-version;</para>
</listitem>--> </listitem>
<!--<listitem> <!--<listitem>
<para>Inetutils-&inetutils-version;</para> <para>Inetutils-&inetutils-version;</para>
</listitem>--> </listitem>-->
<!--<listitem> <!--<listitem>
<para>Intltool-&intltool-version;</para> <para>Intltool-&intltool-version;</para>
</listitem>--> </listitem>-->
<!--<listitem> <listitem>
<para>IPRoute2-&iproute2-version;</para> <para>IPRoute2-&iproute2-version;</para>
</listitem>--> </listitem>
<!--<listitem revision="systemd"> <!--<listitem revision="systemd">
<para>Jinja2-&jinja2-version;</para> <para>Jinja2-&jinja2-version;</para>
</listitem>--> </listitem>-->
<listitem> <listitem>
<para>Kbd-&kbd-version;</para> <para>Kbd-&kbd-version;</para>
</listitem> </listitem>
<!--<listitem> <listitem>
<para>Kmod-&kmod-version;</para> <para>Kmod-&kmod-version;</para>
</listitem>--> </listitem>
<!--<listitem> <!--<listitem>
<para>Less-&less-version;</para> <para>Less-&less-version;</para>
</listitem>--> </listitem>-->
@ -155,9 +152,9 @@
<!--<listitem> <!--<listitem>
<para>Libcap-&libcap-version;</para> <para>Libcap-&libcap-version;</para>
</listitem>--> </listitem>-->
<!--<listitem> <listitem>
<para>Libelf-&elfutils-version; (from elfutils)</para> <para>Libelf from Elfutils-&elfutils-version;</para>
</listitem>--> </listitem>
<!--<listitem> <!--<listitem>
<para>Libffi-&libffi-version;</para> <para>Libffi-&libffi-version;</para>
</listitem>--> </listitem>-->
@ -167,27 +164,27 @@
<!--<listitem> <!--<listitem>
<para>Libtool-&libtool-version;</para> <para>Libtool-&libtool-version;</para>
</listitem>--> </listitem>-->
<!--<listitem> <listitem>
<para>Linux-&linux-version;</para> <para>Linux-&linux-version;</para>
</listitem>--> </listitem>
<!--<listitem> <!--<listitem>
<para>M4-&m4-version;</para> <para>M4-&m4-version;</para>
</listitem>--> </listitem>-->
<!--<listitem> <!--<listitem>
<para>Make-&make-version;</para> <para>Make-&make-version;</para>
</listitem>--> </listitem>-->
<!--<listitem> <listitem>
<para>Man-DB-&man-db-version;</para> <para>Man-DB-&man-db-version;</para>
</listitem>--> </listitem>
<!--<listitem> <!--<listitem>
<para>Man-pages-&man-pages-version;</para> <para>Man-pages-&man-pages-version;</para>
</listitem>--> </listitem>-->
<!--<listitem revision="systemd"> <!--<listitem revision="systemd">
<para>MarkupSafe-&markupsafe-version;</para> <para>MarkupSafe-&markupsafe-version;</para>
</listitem>--> </listitem>-->
<!--<listitem> <listitem>
<para>Meson-&meson-version;</para> <para>Meson-&meson-version;</para>
</listitem>--> </listitem>
<!--<listitem> <!--<listitem>
<para>MPC-&mpc-version;</para> <para>MPC-&mpc-version;</para>
</listitem>--> </listitem>-->
@ -200,18 +197,18 @@
<!--<listitem> <!--<listitem>
<para>Ninja-&ninja-version;</para> <para>Ninja-&ninja-version;</para>
</listitem>--> </listitem>-->
<!--<listitem> <listitem>
<para>Openssl-&openssl-version;</para> <para>OpenSSL-&openssl-version;</para>
</listitem>--> </listitem>
<!--<listitem> <!--<listitem>
<para>Patch-&patch-version;</para> <para>Patch-&patch-version;</para>
</listitem>--> </listitem>-->
<listitem>
<para>Perl-&perl-version;</para>
</listitem>
<listitem> <listitem>
<para>Pkgconf-&pkgconf-version;</para> <para>Pkgconf-&pkgconf-version;</para>
</listitem> </listitem>
<!--<listitem>
<para>Perl-&perl-version;</para>
</listitem>-->
<listitem> <listitem>
<para>Procps-ng-&procps-ng-version;</para> <para>Procps-ng-&procps-ng-version;</para>
</listitem> </listitem>
@ -227,6 +224,9 @@
<!--<listitem> <!--<listitem>
<para>Sed-&sed-version;</para> <para>Sed-&sed-version;</para>
</listitem>--> </listitem>-->
<!--<listitem> After version 12.1 release - see Added
<para>Setuptools-&setuptools-version;</para>
</listitem>-->
<listitem> <listitem>
<para>Shadow-&shadow-version;</para> <para>Shadow-&shadow-version;</para>
</listitem> </listitem>
@ -245,27 +245,30 @@
<!--<listitem> <!--<listitem>
<para>Tcl-&tcl-version;</para> <para>Tcl-&tcl-version;</para>
</listitem>--> </listitem>-->
<!--<listitem> <listitem>
<para>Texinfo-&texinfo-version;</para> <para>Texinfo-&texinfo-version;</para>
</listitem>--> </listitem>
<!--<listitem> <!--<listitem>
<para>Tzdata-&tzdata-version;</para> <para>Tzdata-&tzdata-version;</para>
</listitem>--> </listitem>-->
<!--<listitem revision="sysv">
<para>Udev from Systemd-&systemd-version;</para>
</listitem>-->
<listitem> <listitem>
<para>Util-Linux-&util-linux-version;</para> <para>Util-linux-&util-linux-version;</para>
</listitem> </listitem>
<listitem> <listitem>
<para>Vim-&vim-version;</para> <para>Vim-&vim-version;</para>
</listitem> </listitem>
<listitem> <listitem>
<para>wheel-&wheel-version;</para> <para>Wheel-&wheel-version;</para>
</listitem> </listitem>
<!--<listitem> <!--<listitem>
<para>XML-Parser-&xml-parser-version;</para> <para>XML::Parser-&xml-parser-version;</para>
</listitem>-->
<!--<listitem>
<para>XZ-Utils-&xz-version;</para>
</listitem>--> </listitem>-->
<listitem>
<para>Xz-&xz-version;</para>
</listitem>
<listitem> <listitem>
<para>Zlib-&zlib-version;</para> <para>Zlib-&zlib-version;</para>
</listitem> </listitem>
@ -287,35 +290,32 @@
<title>Added:</title> <title>Added:</title>
<listitem><para></para></listitem> <!-- satisfy build --> <listitem><para></para></listitem> <!-- satisfy build -->
<!--<listitem> <listitem>
<para>&grub-upstream-fixes-patch;</para> <para>setuptools-&setuptools-version;</para>
</listitem>--> </listitem>
<!--<listitem> <listitem>
<para>&glibc-upstream-fixes-patch;</para>
</listitem>
<listitem>
<para>&readline-fixes-patch;</para> <para>&readline-fixes-patch;</para>
</listitem>--> </listitem>
<!--<listitem revision="systemd">
<para>&systemd-upstream-patch;</para>
</listitem>-->
</itemizedlist> </itemizedlist>
<itemizedlist> <itemizedlist>
<title>Removed:</title> <title>Removed:</title>
<listitem><para></para></listitem> <!-- satisfy build --> <listitem><para></para></listitem> <!-- satisfy build -->
<!--
<listitem revision='sysv'> <listitem>
<para>eudev-3.2.12</para> <para>glibc-2.38-memalign_fix-1.patch</para>
</listitem> </listitem>
<listitem> <listitem>
<para>Pkg-config-0.29.2</para> <para>readline-8.2-upstream_fix-1.patch</para>
</listitem> </listitem>
<listitem revision='systemd'>
<para>systemd-252-security_fix-1.patch</para>
</listitem>
-->
</itemizedlist> </itemizedlist>
</sect1> </sect1>

View File

@ -54,8 +54,9 @@
should be a link to bison or a small script that executes bison)</para> should be a link to bison or a small script that executes bison)</para>
</listitem> </listitem>
<!-- In Coreutils-8.1 the nproc program is added. -->
<listitem> <listitem>
<para><emphasis role="strong">Coreutils-7.0</emphasis></para> <para><emphasis role="strong">Coreutils-8.1</emphasis></para>
</listitem> </listitem>
<listitem> <listitem>
@ -72,7 +73,9 @@
</listitem> </listitem>
<listitem> <listitem>
<para><emphasis role="strong">GCC-5.1</emphasis> including the C++ <!-- Pass 1 GCC FTBFS with GCC-5.1 because of
https://gcc.gnu.org/PR65801. -->
<para><emphasis role="strong">GCC-5.2</emphasis> including the C++
compiler, <command>g++</command> (Versions greater than &gcc-version; are compiler, <command>g++</command> (Versions greater than &gcc-version; are
not recommended as they have not been tested). C and C++ standard not recommended as they have not been tested). C and C++ standard
libraries (with headers) must also be present so the C++ compiler can libraries (with headers) must also be present so the C++ compiler can
@ -216,16 +219,16 @@ ver_kernel()
fi fi
} }
# Coreutils first because-sort needs Coreutils >= 7.0 # Coreutils first because --version-sort needs Coreutils >= 7.0
ver_check Coreutils sort 7.0 || bail "--version-sort unsupported" ver_check Coreutils sort 8.1 || bail "Coreutils too old, stop"
ver_check Bash bash 3.2 ver_check Bash bash 3.2
ver_check Binutils ld 2.13.1 ver_check Binutils ld 2.13.1
ver_check Bison bison 2.7 ver_check Bison bison 2.7
ver_check Diffutils diff 2.8.1 ver_check Diffutils diff 2.8.1
ver_check Findutils find 4.2.31 ver_check Findutils find 4.2.31
ver_check Gawk gawk 4.0.1 ver_check Gawk gawk 4.0.1
ver_check GCC gcc 5.1 ver_check GCC gcc 5.2
ver_check "GCC (C++)" g++ 5.1 ver_check "GCC (C++)" g++ 5.2
ver_check Grep grep 2.5.1a ver_check Grep grep 2.5.1a
ver_check Gzip gzip 1.3.12 ver_check Gzip gzip 1.3.12
ver_check M4 m4 1.4.10 ver_check M4 m4 1.4.10
@ -257,7 +260,13 @@ echo "Compiler check:"
if printf "int main(){}" | g++ -x c++ - if printf "int main(){}" | g++ -x c++ -
then echo "OK: g++ works"; then echo "OK: g++ works";
else echo "ERROR: g++ does NOT work"; fi else echo "ERROR: g++ does NOT work"; fi
rm -f a.out</literal> rm -f a.out
if [ "$(nproc)" = "" ]; then
echo "ERROR: nproc is not available or it produces empty output"
else
echo "OK: nproc reports $(nproc) logical cores are available"
fi</literal>
EOF EOF
bash version-check.sh</userinput></screen> bash version-check.sh</userinput></screen>

View File

@ -242,7 +242,6 @@
<para>Home page: <ulink url="&gcc-home;"/></para> <para>Home page: <ulink url="&gcc-home;"/></para>
<para>Download: <ulink url="&gcc-url;"/></para> <para>Download: <ulink url="&gcc-url;"/></para>
<para>MD5 sum: <literal>&gcc-md5;</literal></para> <para>MD5 sum: <literal>&gcc-md5;</literal></para>
<para>SHA256 sum: <literal>&gcc-sha256;</literal></para>
</listitem> </listitem>
</varlistentry> </varlistentry>
@ -356,7 +355,6 @@
<para>Home page: <ulink url="&inetutils-home;"/></para> <para>Home page: <ulink url="&inetutils-home;"/></para>
<para>Download: <ulink url="&inetutils-url;"/></para> <para>Download: <ulink url="&inetutils-url;"/></para>
<para>MD5 sum: <literal>&inetutils-md5;</literal></para> <para>MD5 sum: <literal>&inetutils-md5;</literal></para>
<para>SHA256 sum: <literal>&inetutils-sha256;</literal></para>
</listitem> </listitem>
</varlistentry> </varlistentry>
@ -670,6 +668,15 @@
</listitem> </listitem>
</varlistentry> </varlistentry>
<varlistentry>
<term>Setuptools (&setuptools-version;) - <token>&setuptools-size;</token>:</term>
<listitem>
<para>Home page: <ulink url="&setuptools-home;"/></para>
<para>Download: <ulink url="&setuptools-url;"/></para>
<para>MD5 sum: <literal>&setuptools-md5;</literal></para>
</listitem>
</varlistentry>
<varlistentry> <varlistentry>
<term>Shadow (&shadow-version;) - <token>&shadow-size;</token>:</term> <term>Shadow (&shadow-version;) - <token>&shadow-size;</token>:</term>
<listitem> <listitem>

View File

@ -78,10 +78,10 @@
</varlistentry> </varlistentry>
--> -->
<varlistentry> <varlistentry>
<term>Glibc Memalign Patch - <token>&glibc-memalign-patch-size;</token>:</term> <term>Glibc Upstream Fixes Patch - <token>&glibc-upstream-fixes-patch-size;</token>:</term>
<listitem> <listitem>
<para>Download: <ulink url="&patches-root;&glibc-memalign-patch;"/></para> <para>Download: <ulink url="&patches-root;&glibc-upstream-fixes-patch;"/></para>
<para>MD5 sum: <literal>&glibc-memalign-patch-md5;</literal></para> <para>MD5 sum: <literal>&glibc-upstream-fixes-patch-md5;</literal></para>
</listitem> </listitem>
</varlistentry> </varlistentry>

View File

@ -37,18 +37,6 @@
numbers can vary by as much as dozens of minutes in some cases.</para> numbers can vary by as much as dozens of minutes in some cases.</para>
<note> <note>
<para>For many modern systems with multiple processors (or cores) the
compilation time for a package can be reduced by performing a "parallel
make" by either setting an environment variable or telling the
<command>make</command> program how many processors are available. For
instance, an Intel i5-6500 CPU can support four simultaneous processes with:</para>
<screen role="nodump"><userinput>export MAKEFLAGS='-j4'</userinput></screen>
<para>or by building with:</para>
<screen role="nodump"><userinput>make -j4</userinput></screen>
<para>When multiple processors are used in this way, the SBU units in the <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 book will vary even more than they normally would. In some cases, the make
step will simply fail. Analyzing the output of the build process will also step will simply fail. Analyzing the output of the build process will also

View File

@ -195,6 +195,55 @@ EOF</userinput></screen>
completed LFS system.</para> completed LFS system.</para>
</important> </important>
<para>
For many modern systems with multiple processors (or cores) the
compilation time for a package can be reduced by performing a "parallel
make" by telling the make program how many processors are available via
a command line option or an environment variable. For instance, an Intel
Core i9-13900K processor has 8 P (performance) cores and
16 E (efficiency) cores, and a P core can simultaneously run two threads
so each P core are modeled as two logical cores by the Linux kernel.
As the result there are 32 logical cores in total. One obvious way to
use all these logical cores is allowing <command>make</command> to spawn
up to 32 build jobs. This can be done by passing the
<parameter>-j32</parameter> option to <command>make</command>:
</para>
<screen role='nodump'><userinput>make -j32</userinput></screen>
<para>
Or set the <envar>MAKEFLAGS</envar> environment variable and its
content will be automatically used by <command>make</command> as
command line options:
</para>
<screen role='nodump'><userinput>export MAKEFLAGS=-j32</userinput></screen>
<important>
<para>
Never pass a <parameter>-j</parameter> option without a number to
<command>make</command> or set such an option in
<envar>MAKEFLAGS</envar>. Doing so will allow <command>make</command>
to spawn infinite build jobs and cause system stability problems.
</para>
</important>
<para>
To use all logical cores available for building packages in
<xref linkend='chapter-cross-tools'/> and
<xref linkend='chapter-temporary-tools'/>, set <envar>MAKEFLAGS</envar>
now in <filename>.bashrc</filename>:
</para>
<screen><userinput>cat &gt;&gt; ~/.bashrc &lt;&lt; "EOF"
<literal>export MAKEFLAGS=-j<replaceable>$(nproc)</replaceable></literal>
EOF</userinput></screen>
<para>
Replace <replaceable>$(nproc)</replaceable> with the number of logical
cores you want to use if you don't want to use all the logical cores.
</para>
<para>Finally, to ensure the environment is fully prepared for building the <para>Finally, to ensure the environment is fully prepared for building the
temporary tools, force the <command>bash</command> shell to read temporary tools, force the <command>bash</command> shell to read
the new user profile:</para> the new user profile:</para>

View File

@ -70,6 +70,7 @@ cd build</userinput></screen>
--build=$(../scripts/config.guess) \ --build=$(../scripts/config.guess) \
--enable-kernel=&min-kernel; \ --enable-kernel=&min-kernel; \
--with-headers=$LFS/usr/include \ --with-headers=$LFS/usr/include \
--disable-nscd \
libc_cv_slibdir=/usr/lib</userinput></screen> libc_cv_slibdir=/usr/lib</userinput></screen>
<variablelist> <variablelist>
@ -111,6 +112,14 @@ cd build</userinput></screen>
</listitem> </listitem>
</varlistentry> </varlistentry>
<varlistentry>
<term><parameter>--disable-nscd</parameter></term>
<listitem>
<para>Do not build the name service cache daemon which is no
longer used.</para>
</listitem>
</varlistentry>
</variablelist> </variablelist>
<para>During this stage the following warning might appear:</para> <para>During this stage the following warning might appear:</para>

View File

@ -124,7 +124,7 @@ cd build</userinput></screen>
<para>Remove the libtool archive files because they are harmful for <para>Remove the libtool archive files because they are harmful for
cross-compilation:</para> cross-compilation:</para>
<screen><userinput remap="install">rm -v $LFS/usr/lib/lib{stdc++,stdc++fs,supc++}.la</userinput></screen> <screen><userinput remap="install">rm -v $LFS/usr/lib/lib{stdc++{,exp,fs},supc++}.la</userinput></screen>
</sect2> </sect2>

View File

@ -43,11 +43,17 @@
<sect2 role="installation"> <sect2 role="installation">
<title>Installation of Binutils</title> <title>Installation of Binutils</title>
<!-- Don't remove this until Binutils upstream updates the libtool <!-- Don't remove this until Binutils upstream resolves this issue.
copy. On some host distros the issue doesn't show up. --> We can test by building Binutils on a complete system with
<para>Binutils ships an outdated copy of libtool in the tarball. It lacks zlib (libz.so) installed, passing enable-shared and
sysroot support, so the produced binaries will be mistakenly linked to without-system-zlib. If the resulted libctf.so still links against
libraries from the host distro. Work around this issue:</para> libz.so (check with readelf -d) despite we are saying
without-system-zlib, then the issue is still unresolved. -->
<para>Binutils building system relies on an shipped libtool copy to link against
internal static libraries, but the libiberty and zlib copies shipped
in the package do not use libtool. This inconsistency may cause
produced binaries mistakenly linked against libraries from the host
distro. Work around this issue:</para>
<screen><userinput remap="pre">sed '6009s/$add_dir//' -i ltmain.sh</userinput></screen> <screen><userinput remap="pre">sed '6009s/$add_dir//' -i ltmain.sh</userinput></screen>

View File

@ -43,17 +43,13 @@
<sect2 role="installation"> <sect2 role="installation">
<title>Installation of Coreutils</title> <title>Installation of Coreutils</title>
<!--
<screen><userinput remap="configure">export gl_cv_macro_MB_CUR_MAX_good=y</userinput></screen>
-->
<para>Prepare Coreutils for compilation:</para> <para>Prepare Coreutils for compilation:</para>
<screen><userinput remap="configure">./configure --prefix=/usr \ <screen><userinput remap="configure">./configure --prefix=/usr \
--host=$LFS_TGT \ --host=$LFS_TGT \
--build=$(build-aux/config.guess) \ --build=$(build-aux/config.guess) \
--enable-install-program=hostname \ --enable-install-program=hostname \
--enable-no-install-program=kill,uptime \ --enable-no-install-program=kill,uptime</userinput></screen>
gl_cv_macro_MB_CUR_MAX_good=y</userinput></screen>
<variablelist> <variablelist>
<title>The meaning of the configure options:</title> <title>The meaning of the configure options:</title>
@ -67,13 +63,6 @@
</listitem> </listitem>
</varlistentry> </varlistentry>
<varlistentry>
<term><envar>gl_cv_macro_MB_CUR_MAX_good=y</envar></term>
<listitem>
<para>This is needed to work around an issue in the gnulib copy
shipped by the package which would break cross compilation.</para>
</listitem>
</varlistentry>
</variablelist> </variablelist>
<para>Compile the package:</para> <para>Compile the package:</para>

View File

@ -78,7 +78,7 @@ popd</userinput></screen>
<varlistentry> <varlistentry>
<term><parameter>--with-manpage-format=normal</parameter></term> <term><parameter>--with-manpage-format=normal</parameter></term>
<listitem> <listitem>
<para>This prevents Ncurses installing compressed manual <para>This prevents Ncurses from installing compressed manual
pages, which may happen if the host distribution itself pages, which may happen if the host distribution itself
has compressed manual pages.</para> has compressed manual pages.</para>
</listitem> </listitem>
@ -94,7 +94,7 @@ popd</userinput></screen>
<varlistentry> <varlistentry>
<term><parameter>--without-normal</parameter></term> <term><parameter>--without-normal</parameter></term>
<listitem> <listitem>
<para>This prevents Ncurses building and installing static C <para>This prevents Ncurses from building and installing static C
libraries.</para> libraries.</para>
</listitem> </listitem>
</varlistentry> </varlistentry>
@ -102,7 +102,7 @@ popd</userinput></screen>
<varlistentry> <varlistentry>
<term><parameter>--without-debug</parameter></term> <term><parameter>--without-debug</parameter></term>
<listitem> <listitem>
<para>This prevents Ncurses building and installing debug <para>This prevents Ncurses from building and installing debug
libraries.</para> libraries.</para>
</listitem> </listitem>
</varlistentry> </varlistentry>

View File

@ -23,8 +23,20 @@
TERM="$TERM" \ TERM="$TERM" \
PS1='(lfs chroot) \u:\w\$ ' \ PS1='(lfs chroot) \u:\w\$ ' \
PATH=/usr/bin:/usr/sbin \ PATH=/usr/bin:/usr/sbin \
MAKEFLAGS="-j<replaceable>$(nproc)</replaceable>" \
TESTSUITEFLAGS="-j<replaceable>$(nproc)</replaceable>" \
/bin/bash --login</userinput></screen> /bin/bash --login</userinput></screen>
<para>
If you don't want to use all available logical cores, replace
<replaceable>$(nproc)</replaceable> with the number of logical cores you
want to use for building packages in this chapter and the following
chapters. The test suites of some packages (notably Autoconf, Libtool,
and Tar) in &ch-final; are not affected by <envar>MAKEFLAGS</envar>, they
use a <envar>TESTSUITEFLAGS</envar> environment variable instead. We
set that here as well for running these test suites with multiple cores.
</para>
<para>The <parameter>-i</parameter> option given to the <command>env</command> <para>The <parameter>-i</parameter> option given to the <command>env</command>
command will clear all the variables in the chroot environment. After that, only command will clear all the variables in the chroot environment. After that, only
the <envar>HOME</envar>, <envar>TERM</envar>, <envar>PS1</envar>, and the <envar>HOME</envar>, <envar>TERM</envar>, <envar>PS1</envar>, and
@ -47,7 +59,7 @@
in the <envar>PATH</envar>. This means that the cross toolchain will no longer be in the <envar>PATH</envar>. This means that the cross toolchain will no longer be
used.</para> used.</para>
<para>Note that the <command>bash</command> prompt will say <para>Also note that the <command>bash</command> prompt will say
<computeroutput>I have no name!</computeroutput> This is normal because the <computeroutput>I have no name!</computeroutput> This is normal because the
<filename>/etc/passwd</filename> file has not been created yet.</para> <filename>/etc/passwd</filename> file has not been created yet.</para>

View File

@ -215,8 +215,23 @@ chmod -v 600 /var/log/btmp</userinput></screen>
failed login attempts. The <filename>/var/log/btmp</filename> file records failed login attempts. The <filename>/var/log/btmp</filename> file records
the bad login attempts.</para> the bad login attempts.</para>
<note><para>The <filename>/run/utmp</filename> file records the users that <!-- systemd no longer creates this -->
are currently logged in. This file is created dynamically in the boot <note revision='sysv'><para>The <filename>/run/utmp</filename> file
scripts.</para></note> records the users that are currently logged in. This file is created
dynamically in the boot scripts.</para></note>
<!-- AFAIK they are not vital for system function, users requiring such
info should rely on systemd-logind or elogind or some custom PAM
module. Maybe we can stop to create them at all. -->
<note>
<para>
The <phrase revision='sysv'><filename>utmp</filename>,
</phrase><filename>wtmp</filename>, <filename>btmp</filename>, and
<filename>lastlog</filename> files use 32-bit integers for timestamps
and they'll be fundamentally broken after year 2038. Many packages
have stopped using them and other packages are going to stop using
them. It is probably best to consider them deprecated.
</para>
</note>
</sect1> </sect1>

View File

@ -107,9 +107,9 @@ mount -vt tmpfs tmpfs $LFS/run</userinput></screen>
we must explicitly mount a tmpfs:</para> we must explicitly mount a tmpfs:</para>
<screen><userinput>if [ -h $LFS/dev/shm ]; then <screen><userinput>if [ -h $LFS/dev/shm ]; then
mkdir -pv $LFS/$(readlink $LFS/dev/shm) (cd $LFS/dev; mkdir $(readlink shm))
else else
mount -t tmpfs -o nosuid,nodev tmpfs $LFS/dev/shm mount -vt tmpfs -o nosuid,nodev tmpfs $LFS/dev/shm
fi</userinput></screen> fi</userinput></screen>
</sect2> </sect2>

View File

@ -57,7 +57,8 @@
-Dvendorarch=/usr/lib/perl5/&perl-version-min;/vendor_perl</userinput></screen> -Dvendorarch=/usr/lib/perl5/&perl-version-min;/vendor_perl</userinput></screen>
<variablelist> <variablelist>
<title>The meaning of the new Configure options:</title> <title>The meaning of the Configure options:</title>
<varlistentry> <varlistentry>
<term><parameter>-des</parameter></term> <term><parameter>-des</parameter></term>
<listitem> <listitem>
@ -67,6 +68,35 @@
</listitem> </listitem>
</varlistentry> </varlistentry>
<varlistentry>
<term><parameter>-Dvendorprefix=/usr</parameter></term>
<listitem>
<para>This ensures <command>perl</command> knows how to
tell packages where they should install their Perl modules.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>-Duseshrplib</parameter></term>
<listitem>
<para>Build <systemitem class='library'>libperl</systemitem>
needed by some Perl modules as a shared library, instead of
a static library.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>-Dprivlib,-Darchlib,-Dsitelib,...</parameter></term>
<listitem>
<para>These settings define where Perl looks for installed
modules. The LFS editors chose to put them in a directory structure
based on the MAJOR.MINOR version of Perl (&perl-version-min;) which
allows upgrading Perl to newer patch levels (the patch level is
the last dot separated part in the full version string like
&perl-version;) without reinstalling all of the modules.</para>
</listitem>
</varlistentry>
</variablelist> </variablelist>
<para>Compile the package:</para> <para>Compile the package:</para>

View File

@ -53,11 +53,14 @@
<screen><userinput remap="make">make</userinput></screen> <screen><userinput remap="make">make</userinput></screen>
<para> Using the -j4 make option speeds up the tests, even on systems with <para>Using four parallel jobs speeds up the tests, even on systems with
only one processor, due to internal delays in individual tests. To test less logical cores, due to internal delays in individual tests. To test
the results, issue:</para> the results, issue:</para>
<screen><userinput remap="test">make -j4 check</userinput></screen> <screen><userinput remap="test">make <replaceable>-j$(($(nproc)&gt;4?$(nproc):4))</replaceable> check</userinput></screen>
<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>The test t/subobj.sh is known to fail.</para>

View File

@ -65,6 +65,7 @@
<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="python.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="flit-core.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="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="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="meson.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="coreutils.xml"/>

View File

@ -56,7 +56,7 @@
--disable-static \ --disable-static \
--disable-doxygen-docs \ --disable-doxygen-docs \
--disable-xml-docs \ --disable-xml-docs \
--docdir=/usr/share/doc/dbus-&dbus-version; \ --docdir=/usr/share/doc/dbus-&dbus-version; \
--with-system-socket=/run/dbus/system_bus_socket</userinput></screen> --with-system-socket=/run/dbus/system_bus_socket</userinput></screen>
<variablelist> <variablelist>

View File

@ -59,15 +59,18 @@ su tester -c "PATH=$PATH make check"</userinput></screen>
<para>Install the package:</para> <para>Install the package:</para>
<screen><userinput remap="install">make LN='ln -f' install</userinput></screen> <screen><userinput remap="install">rm -f /usr/bin/gawk-&gawk-version;
make install</userinput></screen>
<variablelist> <variablelist>
<title>The meaning of the overridden make variable:</title> <title>The meaning of the command:</title>
<varlistentry> <varlistentry>
<term><envar>LN='ln -f'</envar></term> <term><command>rm -f /usr/bin/gawk-&gawk-version;</command></term>
<listitem> <listitem>
<para>This variable ensures that the previous hard link installed <para>The building system will not recreate the hard link
<filename>gawk-&gawk-version;</filename> if it already exists.
Remove it to ensure that the previous hard link installed
in <xref linkend='ch-tools-gawk'/> is updated here.</para> in <xref linkend='ch-tools-gawk'/> is updated here.</para>
</listitem> </listitem>
</varlistentry> </varlistentry>

View File

@ -50,10 +50,10 @@
<screen><userinput remap="pre">patch -Np1 -i ../&glibc-fhs-patch;</userinput></screen> <screen><userinput remap="pre">patch -Np1 -i ../&glibc-fhs-patch;</userinput></screen>
<para>Now fix a regression causing the posix_memalign() function <para>Now fix two security vulnerabilities and a regression causing the
to be very slow in some conditions:</para> posix_memalign() function very slow in some conditions:</para>
<screen><userinput remap="pre">patch -Np1 -i ../&glibc-memalign-patch;</userinput></screen> <screen><userinput remap="pre">patch -Np1 -i ../&glibc-upstream-fixes-patch;</userinput></screen>
<para>The Glibc documentation recommends building Glibc <para>The Glibc documentation recommends building Glibc
in a dedicated build directory:</para> in a dedicated build directory:</para>
@ -74,6 +74,7 @@ cd build</userinput></screen>
--enable-kernel=&min-kernel; \ --enable-kernel=&min-kernel; \
--enable-stack-protector=strong \ --enable-stack-protector=strong \
--with-headers=/usr/include \ --with-headers=/usr/include \
--disable-nscd \
libc_cv_slibdir=/usr/lib</userinput></screen> libc_cv_slibdir=/usr/lib</userinput></screen>
<variablelist> <variablelist>
@ -114,6 +115,14 @@ cd build</userinput></screen>
</listitem> </listitem>
</varlistentry> </varlistentry>
<varlistentry>
<term><parameter>--disable-nscd</parameter></term>
<listitem>
<para>Do not build the name service cache daemon which is no
longer used.</para>
</listitem>
</varlistentry>
<varlistentry> <varlistentry>
<term><parameter>libc_cv_slibdir=/usr/lib</parameter></term> <term><parameter>libc_cv_slibdir=/usr/lib</parameter></term>
<listitem> <listitem>
@ -206,7 +215,7 @@ esac</userinput></screen>
<command>ldd</command> script:</para> <command>ldd</command> script:</para>
<screen><userinput remap="install">sed '/RTLDLIST=/s@/usr@@g' -i /usr/bin/ldd</userinput></screen> <screen><userinput remap="install">sed '/RTLDLIST=/s@/usr@@g' -i /usr/bin/ldd</userinput></screen>
<!--
<para>Install the configuration file and runtime directory for <para>Install the configuration file and runtime directory for
<command>nscd</command>:</para> <command>nscd</command>:</para>
@ -218,7 +227,7 @@ mkdir -pv /var/cache/nscd</userinput></screen>
<screen revision="systemd"><userinput remap="install">install -v -Dm644 ../nscd/nscd.tmpfiles /usr/lib/tmpfiles.d/nscd.conf <screen revision="systemd"><userinput remap="install">install -v -Dm644 ../nscd/nscd.tmpfiles /usr/lib/tmpfiles.d/nscd.conf
install -v -Dm644 ../nscd/nscd.service /usr/lib/systemd/system/nscd.service</userinput></screen> install -v -Dm644 ../nscd/nscd.service /usr/lib/systemd/system/nscd.service</userinput></screen>
-->
<para>Next, install the locales that can make the system respond in a <para>Next, install the locales that can make the system respond in a
different language. None of these locales are required, but if some of them different language. None of these locales are required, but if some of them
are missing, the test suites of some packages will skip important are missing, the test suites of some packages will skip important
@ -320,7 +329,7 @@ localedef -i ja_JP -f SHIFT_JIS ja_JP.SJIS 2> /dev/null || true</userinput></scr
<para>Create a new file <filename>/etc/nsswitch.conf</filename> by running the <para>Create a new file <filename>/etc/nsswitch.conf</filename> by running the
following:</para> following:</para>
<screen><userinput>cat &gt; /etc/nsswitch.conf &lt;&lt; "EOF" <screen revision='sysv'><userinput>cat &gt; /etc/nsswitch.conf &lt;&lt; "EOF"
<literal># Begin /etc/nsswitch.conf <literal># Begin /etc/nsswitch.conf
passwd: files passwd: files
@ -335,6 +344,24 @@ services: files
ethers: files ethers: files
rpc: files rpc: files
# End /etc/nsswitch.conf</literal>
EOF</userinput></screen>
<screen revision='systemd'><userinput>cat &gt; /etc/nsswitch.conf &lt;&lt; "EOF"
<literal># Begin /etc/nsswitch.conf
passwd: files systemd
group: files systemd
shadow: files systemd
hosts: mymachines resolve [!UNAVAIL=return] files myhostname dns
networks: files
protocols: files
services: files
ethers: files
rpc: files
# End /etc/nsswitch.conf</literal> # End /etc/nsswitch.conf</literal>
EOF</userinput></screen> EOF</userinput></screen>
@ -480,7 +507,7 @@ mkdir -pv /etc/ld.so.conf.d</userinput></screen>
<seg>gencat, getconf, getent, iconv, iconvconfig, ldconfig, <seg>gencat, getconf, getent, iconv, iconvconfig, ldconfig,
ldd, lddlibc4, ldd, lddlibc4,
ld.so (symlink to ld-linux-aarch64[_be].so.1), ld.so (symlink to ld-linux-aarch64[_be].so.1),
locale, localedef, makedb, mtrace, nscd, locale, localedef, makedb, mtrace,
pcprofiledump, pldd, sln, sotruss, sprof, tzselect, xtrace, pcprofiledump, pldd, sln, sotruss, sprof, tzselect, xtrace,
zdump, and zic</seg> zdump, and zic</seg>
<seg>ld-linux-aarch64[_be].so.1, <seg>ld-linux-aarch64[_be].so.1,
@ -500,7 +527,7 @@ mkdir -pv /etc/ld.so.conf.d</userinput></screen>
/usr/include/protocols, /usr/include/rpc, /usr/include/protocols, /usr/include/rpc,
/usr/include/sys, /usr/lib/audit, /usr/lib/gconv, /usr/lib/locale, /usr/include/sys, /usr/lib/audit, /usr/lib/gconv, /usr/lib/locale,
/usr/libexec/getconf, /usr/share/i18n, /usr/share/zoneinfo, /usr/libexec/getconf, /usr/share/i18n, /usr/share/zoneinfo,
/var/cache/nscd, and /var/lib/nss_db</seg> and /var/lib/nss_db</seg>
</seglistitem> </seglistitem>
</segmentedlist> </segmentedlist>
@ -634,17 +661,6 @@ mkdir -pv /etc/ld.so.conf.d</userinput></screen>
</listitem> </listitem>
</varlistentry> </varlistentry>
<varlistentry id="nscd">
<term><command>nscd</command></term>
<listitem>
<para>A daemon that provides a cache for the most common name
service requests</para>
<indexterm zone="ch-system-glibc nscd">
<primary sortas="b-nscd">nscd</primary>
</indexterm>
</listitem>
</varlistentry>
<varlistentry id="pcprofiledump"> <varlistentry id="pcprofiledump">
<term><command>pcprofiledump</command></term> <term><command>pcprofiledump</command></term>
<listitem> <listitem>

View File

@ -119,7 +119,7 @@ make install-html</userinput></screen>
<title>Contents of GMP</title> <title>Contents of GMP</title>
<segmentedlist> <segmentedlist>
<segtitle>Installed Libraries</segtitle> <segtitle>Installed libraries</segtitle>
<segtitle>Installed directory</segtitle> <segtitle>Installed directory</segtitle>
<seglistitem> <seglistitem>

View File

@ -45,9 +45,6 @@
be built since it depends on Berkeley DB, which is not installed in be built since it depends on Berkeley DB, which is not installed in
LFS. However, a directory and a man page for <command>arpd</command> will still LFS. However, a directory and a man page for <command>arpd</command> will still
be installed. Prevent this by running the commands shown below. be installed. Prevent this by running the commands shown below.
(If the <command>arpd</command> program is needed,
instructions for compiling Berkeley DB can be found in the BLFS book at
<ulink url="&blfs-book;server/db.html"/>.)
</para> </para>
<screen><userinput remap="pre">sed -i /ARPD/d Makefile <screen><userinput remap="pre">sed -i /ARPD/d Makefile

View File

@ -70,8 +70,8 @@ rm /usr/lib/libelf.a</userinput></screen>
<title>Contents of Libelf</title> <title>Contents of Libelf</title>
<segmentedlist> <segmentedlist>
<segtitle>Installed Library</segtitle> <segtitle>Installed library</segtitle>
<segtitle>Installed Directory</segtitle> <segtitle>Installed directory</segtitle>
<seglistitem> <seglistitem>
<seg> <seg>

View File

@ -113,11 +113,7 @@
<para>To test the results, issue:</para> <para>To test the results, issue:</para>
<screen><userinput remap="test">make -k check</userinput></screen> <screen><userinput remap="test">make check</userinput></screen>
<!-- https://gitlab.com/man-db/man-db/-/issues/25 -->
<para>One test named <filename>man1/lexgrog.1</filename> is known
to fail.</para>
<para>Install the package:</para> <para>Install the package:</para>

View File

@ -69,8 +69,8 @@ make install-html</userinput></screen>
<title>Contents of MPC</title> <title>Contents of MPC</title>
<segmentedlist> <segmentedlist>
<segtitle>Installed Libraries</segtitle> <segtitle>Installed libraries</segtitle>
<segtitle>Installed Directory</segtitle> <segtitle>Installed directory</segtitle>
<seglistitem> <seglistitem>
<seg>libmpc.so</seg> <seg>libmpc.so</seg>

View File

@ -58,7 +58,7 @@ make html</userinput></screen>
Do not skip it under any circumstances.</para> Do not skip it under any circumstances.</para>
</important> </important>
<para>Test the results and ensure that all 197 tests passed:</para> <para>Test the results and ensure that all 198 tests passed:</para>
<screen><userinput remap="test">make check</userinput></screen> <screen><userinput remap="test">make check</userinput></screen>
@ -74,7 +74,7 @@ make install-html</userinput></screen>
<title>Contents of MPFR</title> <title>Contents of MPFR</title>
<segmentedlist> <segmentedlist>
<segtitle>Installed Libraries</segtitle> <segtitle>Installed libraries</segtitle>
<segtitle>Installed directory</segtitle> <segtitle>Installed directory</segtitle>
<seglistitem> <seglistitem>

View File

@ -63,7 +63,7 @@
<para>To test the results, issue:</para> <para>To test the results, issue:</para>
<screen><userinput remap="test">make test</userinput></screen> <screen><userinput remap="test">HARNESS_JOBS=<replaceable>$(nproc)</replaceable> make test</userinput></screen>
<para>One test, 30-test_afalg.t, is known to fail if the host kernel <para>One test, 30-test_afalg.t, is known to fail if the host kernel
does not have <option>CONFIG_CRYPTO_USER_API_SKCIPHER</option> enabled, does not have <option>CONFIG_CRYPTO_USER_API_SKCIPHER</option> enabled,

View File

@ -76,15 +76,7 @@ export BUILD_BZIP2=0</userinput></screen>
-Dusethreads</userinput></screen> -Dusethreads</userinput></screen>
<variablelist> <variablelist>
<title>The meaning of the configure options:</title> <title>The meaning of the new Configure options:</title>
<varlistentry>
<term><parameter>-Dvendorprefix=/usr</parameter></term>
<listitem>
<para>This ensures <command>perl</command> knows how to
tell packages where they should install their Perl modules.</para>
</listitem>
</varlistentry>
<varlistentry> <varlistentry>
<term><parameter>-Dpager="/usr/bin/less -isR"</parameter></term> <term><parameter>-Dpager="/usr/bin/less -isR"</parameter></term>
@ -104,13 +96,6 @@ export BUILD_BZIP2=0</userinput></screen>
</listitem> </listitem>
</varlistentry> </varlistentry>
<varlistentry>
<term><parameter>-Duseshrplib</parameter></term>
<listitem>
<para>Build a shared libperl needed by some Perl modules.</para>
</listitem>
</varlistentry>
<varlistentry> <varlistentry>
<term><parameter>-Dusethreads</parameter></term> <term><parameter>-Dusethreads</parameter></term>
<listitem> <listitem>
@ -118,18 +103,6 @@ export BUILD_BZIP2=0</userinput></screen>
</listitem> </listitem>
</varlistentry> </varlistentry>
<varlistentry>
<term><parameter>-Dprivlib,-Darchlib,-Dsitelib,...</parameter></term>
<listitem>
<para>These settings define where Perl looks for installed
modules. The LFS editors chose to put them in a directory structure
based on the MAJOR.MINOR version of Perl (&perl-version-min;) which
allows upgrading Perl to newer patch levels (the patch level is
the last dot separated part in the full version string like
&perl-version;) without reinstalling all of the modules.</para>
</listitem>
</varlistentry>
</variablelist> </variablelist>
<para>Compile the package:</para> <para>Compile the package:</para>
@ -138,7 +111,7 @@ export BUILD_BZIP2=0</userinput></screen>
<para>To test the results (approximately 11 SBU), issue:</para> <para>To test the results (approximately 11 SBU), issue:</para>
<screen><userinput remap="test">make test</userinput></screen> <screen><userinput remap="test">TEST_JOBS=$(nproc) make test_harness</userinput></screen>
<para>Install the package and clean up:</para> <para>Install the package and clean up:</para>

View File

@ -43,15 +43,12 @@
<sect2 role="installation"> <sect2 role="installation">
<title>Installation of Pkgconf</title> <title>Installation of Pkgconf</title>
<!--
<para>Pkgconf-2.0.0 explicitly errors when attempting to run
<option>- -modversion</option> with multiple arguments, even if these
arguments are constraints for the same package. This breaks many
packages in BLFS. Run this sed to reinstate the old
output for pkgconf:</para>
<screen><userinput remap="pre">sed -i '1330,1336s|^|//|' cli/main.c</userinput></screen> <!-- https://github.com/pkgconf/pkgconf/issues/317 -->
--> <para>Fix a regression in pkgconf-2.0.3 breaking BLFS packages:</para>
<screen><userinput remap="pre">sed -i 's/str\(cmp.*package\)/strn\1, strlen(pkg-&gt;why)/' cli/main.c</userinput></screen>
<para>Prepare Pkgconf for compilation:</para> <para>Prepare Pkgconf for compilation:</para>
<screen><userinput remap="configure">./configure --prefix=/usr \ <screen><userinput remap="configure">./configure --prefix=/usr \

View File

@ -69,6 +69,17 @@
it. </para> it. </para>
</listitem> </listitem>
<listitem>
<para>Reinstalling the same version of Glibc (&glibc-version; for
this release of LFS) with patches should be safe when these patches
do not change ABI and API. When a security vulnerability is found
in Glibc, we often need to apply such a patch to fix the
vulnerability and reinstall Glibc. Consult
<ulink url='&lfs-root;lfs/advisories/'>LFS security
advisories</ulink> if you are alerted for a published Glibc security
vulnerability but unsure about the action to take.</para>
</listitem>
<listitem> <para>If a package containing a shared library is updated, and <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 changes, then any packages dynamically
linked to the library must be recompiled, to link against the linked to the library must be recompiled, to link against the
@ -152,7 +163,7 @@
provided by <application>coreutils</application> has already provided by <application>coreutils</application> has already
implemented this, and most packages use that command to install binary files and implemented this, and most packages use that command to install binary files and
libraries. This means that you won't be troubled by this issue most of the time. libraries. This means that you won't be troubled by this issue most of the time.
However, the install process of some packages (notably Mozilla JS However, the install process of some packages (notably SpiderMonkey
in BLFS) just overwrites the file if it exists; this causes a crash. So in BLFS) just overwrites the file if it exists; this causes a crash. So
it's safer to save your work and close unneeded running processes it's safer to save your work and close unneeded running processes
before updating a package.</para> <!-- binary is an adjective, not a noun. --> before updating a package.</para> <!-- binary is an adjective, not a noun. -->
@ -185,19 +196,29 @@
<para>This is a simplistic package management technique that does not need a <para>This is a simplistic package management technique that does not need a
special program to manage the packages. Each package is installed in a special program to manage the packages. Each package is installed in a
separate directory. For example, package foo-1.1 is installed in separate directory. For example, package foo-1.1 is installed in
<filename class='directory'>/usr/pkg/foo-1.1</filename> <filename class='directory'>/opt/foo-1.1</filename>
and a symlink is made from <filename>/usr/pkg/foo</filename> to and a symlink is made from <filename>/opt/foo</filename> to
<filename class='directory'>/usr/pkg/foo-1.1</filename>. When <filename class='directory'>/opt/foo-1.1</filename>. When
a new version foo-1.2 comes along, it is installed in a new version foo-1.2 comes along, it is installed in
<filename class='directory'>/usr/pkg/foo-1.2</filename> and the previous <filename class='directory'>/opt/foo-1.2</filename> and the previous
symlink is replaced by a symlink to the new version.</para> symlink is replaced by a symlink to the new version.</para>
<para>Environment variables such as <envar>PATH</envar>, <para>Environment variables such as <envar>PATH</envar>,
<envar>LD_LIBRARY_PATH</envar>, <envar>MANPATH</envar>, <envar>MANPATH</envar>, <envar>INFOPATH</envar>,
<envar>INFOPATH</envar> and <envar>CPPFLAGS</envar> need to be expanded to <envar>PKG_CONFIG_PATH</envar>, <envar>CPPFLAGS</envar>,
include <filename>/usr/pkg/foo</filename>. If you install more than a few packages, <envar>LDFLAGS</envar>, and the configuration file
this scheme becomes unmanageable.</para> <filename>/etc/ld.so.conf</filename> may need to be expanded to
include the corresponding subdirectories in
<filename class='directory'>/opt/foo-x.y</filename>.</para>
<para>
This scheme is used by the BLFS book to install some very large
packages to make it easier to upgrade them. If you install more
than a few packages, this scheme becomes unmanageable. And some
packages (for example Linux API headers and Glibc) may not work well
with this scheme.
<emphasis role='bold'>Never use this scheme system-wide.</emphasis>
</para>
</sect3> </sect3>
<sect3> <sect3>

View File

@ -48,7 +48,6 @@
<screen><userinput remap="configure">./configure --prefix=/usr \ <screen><userinput remap="configure">./configure --prefix=/usr \
--enable-shared \ --enable-shared \
--with-system-expat \ --with-system-expat \
--with-system-ffi \
--enable-optimizations</userinput></screen> --enable-optimizations</userinput></screen>
<variablelist> <variablelist>
@ -62,14 +61,6 @@
</listitem> </listitem>
</varlistentry> </varlistentry>
<varlistentry>
<term><parameter>--with-system-ffi</parameter></term>
<listitem>
<para>This switch enables linking against the system version of
<filename class='libraryfile'>libffi.so</filename>.</para>
</listitem>
</varlistentry>
<varlistentry> <varlistentry>
<term><parameter>--enable-optimizations</parameter></term> <term><parameter>--enable-optimizations</parameter></term>
<listitem> <listitem>
@ -164,21 +155,21 @@ EOF
<screen><userinput remap="install">install -v -dm755 /usr/share/doc/python-&python-version;/html <screen><userinput remap="install">install -v -dm755 /usr/share/doc/python-&python-version;/html
tar --strip-components=1 \ tar --no-same-owner \
--no-same-owner \ -xvf ../python-&python-version;-docs-html.tar.bz2
--no-same-permissions \ cp -R --no-preserve=mode python-&python-version;-docs-html/* \
-C /usr/share/doc/python-&python-version;/html \ /usr/share/doc/python-&python-version;/html</userinput></screen>
-xvf ../python-&python-version;-docs-html.tar.bz2</userinput></screen>
<variablelist> <variablelist>
<title>The meaning of the documentation install commands:</title> <title>The meaning of the documentation install commands:</title>
<varlistentry> <varlistentry>
<term><option>--no-same-owner</option> and <option>--no-same-permissions</option></term> <term><option>--no-same-owner</option> (tar) and <option>--no-preserve=mode</option> (cp)</term>
<listitem> <listitem>
<para>Ensure the installed files have the correct ownership and <para>Ensure the installed files have the correct ownership and
permissions. Without these options, <application>tar</application> permissions. Without these options, <application>tar</application>
will install the package files with the upstream creator's values. will install the package files with the upstream creator's values
and files would have restrictive permissions.
</para> </para>
</listitem> </listitem>
</varlistentry> </varlistentry>
@ -191,9 +182,9 @@ tar --strip-components=1 \
<title>Contents of Python 3</title> <title>Contents of Python 3</title>
<segmentedlist> <segmentedlist>
<segtitle>Installed Programs</segtitle> <segtitle>Installed programs</segtitle>
<segtitle>Installed Library</segtitle> <segtitle>Installed library</segtitle>
<segtitle>Installed Directories</segtitle> <segtitle>Installed directories</segtitle>
<seglistitem> <seglistitem>
<seg> <seg>

71
chapter08/setuptools.xml Normal file
View File

@ -0,0 +1,71 @@
<?xml version="1.0" encoding="ISO-8859-1"?>
<!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-setuptools" role="wrap">
<?dbhtml filename="setuptools.html"?>
<sect1info condition="script">
<productname>setuptools</productname>
<productnumber>&setuptools-version;</productnumber>
<address>&setuptools-url;</address>
</sect1info>
<title>Setuptools-&setuptools-version;</title>
<indexterm zone="ch-system-setuptools">
<primary sortas="a-setuptools">Setuptools</primary>
</indexterm>
<sect2 role="package">
<title/>
<para>Setuptools is a tool used to download, build, install, upgrade,
and uninstall Python packages.</para>
<segmentedlist>
<segtitle>&buildtime;</segtitle>
<segtitle>&diskspace;</segtitle>
<seglistitem>
<seg>&setuptools-fin-sbu;</seg>
<seg>&setuptools-fin-du;</seg>
</seglistitem>
</segmentedlist>
</sect2>
<sect2 role="installation">
<title>Installation of Setuptools</title>
<para>Build the package:</para>
<screen><userinput remap="install">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 --find-links dist setuptools</userinput></screen>
</sect2>
<sect2 id="contents-setuptools" role="content">
<title>Contents of Setuptools</title>
<segmentedlist>
<segtitle>Installed directory</segtitle>
<seglistitem>
<seg>
/usr/lib/python&python-minor;/site-packages/_distutils_hack,
/usr/lib/python&python-minor;/site-packages/pkg_resources,
/usr/lib/python&python-minor;/site-packages/setuptools, and
/usr/lib/python&python-minor;/site-packages/setuptools-&setuptools-version;.dist-info
</seg>
</seglistitem>
</segmentedlist>
</sect2>
</sect1>

View File

@ -276,7 +276,7 @@ useradd -D --gid 999</userinput></screen>
<seglistitem> <seglistitem>
<seg>chage, chfn, chgpasswd, chpasswd, chsh, expiry, faillog, <seg>chage, chfn, chgpasswd, chpasswd, chsh, expiry, faillog,
getsubids, gpasswd, groupadd, groupdel, groupmems, groupmod, grpck, getsubids, gpasswd, groupadd, groupdel, groupmems, groupmod, grpck,
grpconv, grpunconv, lastlog, login, logoutd, newgidmap, newgrp, grpconv, grpunconv, login, logoutd, newgidmap, newgrp,
newuidmap, newusers, nologin, passwd, pwck, pwconv, pwunconv, newuidmap, newusers, nologin, passwd, pwck, pwconv, pwunconv,
sg (link to newgrp), su, useradd, userdel, usermod, sg (link to newgrp), su, useradd, userdel, usermod,
vigr (link to vipw), and vipw</seg> vigr (link to vipw), and vipw</seg>
@ -459,17 +459,6 @@ useradd -D --gid 999</userinput></screen>
</listitem> </listitem>
</varlistentry> </varlistentry>
<varlistentry id="lastlog">
<term><command>lastlog</command></term>
<listitem>
<para>Reports the most recent login of all users or of a
given user</para>
<indexterm zone="ch-system-shadow lastlog">
<primary sortas="b-lastlog">lastlog</primary>
</indexterm>
</listitem>
</varlistentry>
<varlistentry id="login"> <varlistentry id="login">
<term><command>login</command></term> <term><command>login</command></term>
<listitem> <listitem>

View File

@ -29,9 +29,12 @@
needed by the linker (for static libraries) or dynamic linker (for needed by the linker (for static libraries) or dynamic linker (for
dynamically linked binaries and shared libraries).</para> dynamically linked binaries and shared libraries).</para>
<para>The debugging symbols from selected libraries are preserved <!-- TODO: Zstd is better than Zlib for both speed and size.
in separate files. That debugging information is needed to run Unfortunately Valgrind does not support Zstd-compressed debug
regression tests with <ulink 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
debugging information is needed to run regression tests with <ulink
url='&blfs-book;/general/valgrind.html'>valgrind</ulink> or <ulink url='&blfs-book;/general/valgrind.html'>valgrind</ulink> or <ulink
url='&blfs-book;/general/gdb.html'>gdb</ulink> later, in BLFS. url='&blfs-book;/general/gdb.html'>gdb</ulink> later, in BLFS.
</para> </para>
@ -79,7 +82,7 @@
cd /usr/lib cd /usr/lib
for LIB in $save_usrlib; do for LIB in $save_usrlib; do
objcopy --only-keep-debug $LIB $LIB.dbg objcopy --only-keep-debug --compress-debug-sections=zlib $LIB $LIB.dbg
cp $LIB /tmp/$LIB cp $LIB /tmp/$LIB
strip --strip-unneeded /tmp/$LIB strip --strip-unneeded /tmp/$LIB
objcopy --add-gnu-debuglink=$LIB.dbg /tmp/$LIB objcopy --add-gnu-debuglink=$LIB.dbg /tmp/$LIB

View File

@ -55,6 +55,11 @@
<screen><userinput remap="pre">sed '/systemd-sysctl/s/^/#/' -i rules.d/99-systemd.rules.in</userinput></screen> <screen><userinput remap="pre">sed '/systemd-sysctl/s/^/#/' -i 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>
<para>Prepare Udev for compilation:</para> <para>Prepare Udev for compilation:</para>
<screen><userinput remap="configure">mkdir -p build <screen><userinput remap="configure">mkdir -p build
@ -66,6 +71,8 @@ meson setup \
-Dmode=release \ -Dmode=release \
-Ddev-kvm-mode=0660 \ -Ddev-kvm-mode=0660 \
-Dlink-udev-shared=false \ -Dlink-udev-shared=false \
-Dlogind=false \
-Dvconsole=false \
..</userinput></screen> ..</userinput></screen>
<variablelist> <variablelist>
@ -107,35 +114,42 @@ meson setup \
and it's too overkill for a udev-only installation.</para> and it's too overkill for a udev-only installation.</para>
</listitem> </listitem>
</varlistentry> </varlistentry>
<varlistentry>
<term><parameter>-Dlogind=false -Dvconsole=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
install.</para>
</listitem>
</varlistentry>
</variablelist> </variablelist>
<para>Only build the components needed for udev:</para> <para>Only build the components needed for udev:</para>
<screen><userinput remap="make">ninja udevadm systemd-hwdb \ <screen><userinput remap="make">ninja udevadm systemd-hwdb \
$(grep -o -E "^build (src/libudev|src/udev|rules.d|hwdb.d)[^:]*" \ $(ninja -n | grep -Eo '(src/(lib)?udev|rules.d|hwdb.d)/[^ ]*') \
build.ninja | awk '{ print $2 }') \
$(realpath libudev.so --relative-to .)</userinput></screen> $(realpath libudev.so --relative-to .)</userinput></screen>
<para>Remove one udev rule file requiring a full Systemd
installation:</para>
<screen><userinput remap="make">rm rules.d/90-vconsole.rules</userinput></screen>
<para>Install the package:</para> <para>Install the package:</para>
<screen><userinput remap="install">install -vm755 -d {/usr/lib,/etc}/udev/{hwdb,rules}.d <screen><userinput remap="install">install -vm755 -d {/usr/lib,/etc}/udev/{hwdb.d,rules.d,network}
install -vm755 -d /usr/{lib,share}/pkgconfig install -vm755 -d /usr/{lib,share}/pkgconfig
install -vm755 udevadm /usr/bin/ install -vm755 udevadm /usr/bin/
install -vm755 systemd-hwdb /usr/bin/udev-hwdb install -vm755 systemd-hwdb /usr/bin/udev-hwdb
ln -svfn ../bin/udevadm /usr/sbin/udevd ln -svfn ../bin/udevadm /usr/sbin/udevd
cp -av libudev.so{,*[0-9]} /usr/lib/ cp -av libudev.so{,*[0-9]} /usr/lib/
install -vm644 ../src/libudev/libudev.h /usr/include/ install -vm644 ../src/libudev/libudev.h /usr/include/
install -vm644 src/libudev/*.pc /usr/lib/pkgconfig/ install -vm644 src/libudev/*.pc /usr/lib/pkgconfig/
install -vm644 src/udev/*.pc /usr/share/pkgconfig/ install -vm644 src/udev/*.pc /usr/share/pkgconfig/
install -vm644 ../src/udev/udev.conf /etc/udev/ install -vm644 ../src/udev/udev.conf /etc/udev/
install -vm644 rules.d/* ../rules.d/{*.rules,README} /usr/lib/udev/rules.d/ install -vm644 rules.d/* ../rules.d/README /usr/lib/udev/rules.d/
install -vm644 hwdb.d/* ../hwdb.d/{*.hwdb,README} /usr/lib/udev/hwdb.d/ install -vm644 $(find ../rules.d/*.rules \
install -vm755 $(find src/udev -type f | grep -F -v ".") /usr/lib/udev</userinput></screen> -not -name '*power-switch*') /usr/lib/udev/rules.d/
install -vm644 hwdb.d/* ../hwdb.d/{*.hwdb,README} /usr/lib/udev/hwdb.d/
install -vm755 $(find src/udev \
-type f -not -name '*.*') /usr/lib/udev
install -vm644 ../network/99-default.link /usr/lib/udev/network</userinput></screen>
<para>Install some custom rules and support files useful in an LFS <para>Install some custom rules and support files useful in an LFS
environment:</para> environment:</para>
@ -150,13 +164,21 @@ make -f &udev-lfs-version;/Makefile.lfs install</userinput></screen>
<screen><userinput remap="install">tar -xf ../../systemd-man-pages-&systemd-man-version;.tar.xz \ <screen><userinput remap="install">tar -xf ../../systemd-man-pages-&systemd-man-version;.tar.xz \
--no-same-owner --strip-components=1 \ --no-same-owner --strip-components=1 \
-C /usr/share/man --wildcards '*/udev*' '*/libudev*' \ -C /usr/share/man --wildcards '*/udev*' '*/libudev*' \
'*/systemd.link.5' \
'*/systemd-'{hwdb,udevd.service}.8 '*/systemd-'{hwdb,udevd.service}.8
sed 's|systemd/network|udev/network|' \
/usr/share/man/man5/systemd.link.5 \
> /usr/share/man/man5/udev.link.5
sed 's/systemd\(\\\?-\)/udev\1/' /usr/share/man/man8/systemd-hwdb.8 \ sed 's/systemd\(\\\?-\)/udev\1/' /usr/share/man/man8/systemd-hwdb.8 \
> /usr/share/man/man8/udev-hwdb.8 > /usr/share/man/man8/udev-hwdb.8
sed 's|lib.*udevd|sbin/udevd|' \ sed 's|lib.*udevd|sbin/udevd|' \
/usr/share/man/man8/systemd-udevd.service.8 \ /usr/share/man/man8/systemd-udevd.service.8 \
> /usr/share/man/man8/udevd.8 > /usr/share/man/man8/udevd.8
rm /usr/share/man/man8/systemd-*.8</userinput></screen>
rm /usr/share/man/man*/systemd*</userinput></screen>
</sect2> </sect2>

View File

@ -42,7 +42,7 @@
<sect2 role="installation"> <sect2 role="installation">
<title>Installation of Util-linux</title> <title>Installation of Util-linux</title>
<para>First, disable a problem test:</para> <para>First, disable a problematic test:</para>
<screen><userinput remap="pre">sed -i '/test_mkfds/s/^/#/' tests/helpers/Makemodule.am</userinput></screen> <screen><userinput remap="pre">sed -i '/test_mkfds/s/^/#/' tests/helpers/Makemodule.am</userinput></screen>

View File

@ -178,9 +178,10 @@ EOF</userinput></screen>
<secondary>/etc/hosts</secondary> <secondary>/etc/hosts</secondary>
</indexterm> </indexterm>
<para>Decide on the IP address, fully-qualified domain name (FQDN), and <para>Decide on a fully-qualified domain name (FQDN), and possible aliases
possible aliases for use in the <filename>/etc/hosts</filename> file. The for use in the <filename>/etc/hosts</filename> file. If using static IP
syntax is:</para> addresses, you'll also need to decide on an IP address. The syntax
for a hosts file entry is:</para>
<screen><literal>IP_address myhost.example.org aliases</literal></screen> <screen><literal>IP_address myhost.example.org aliases</literal></screen>
@ -197,11 +198,18 @@ EOF</userinput></screen>
<para>x can be any number in the range 16-31. y can be any number in the <para>x can be any number in the range 16-31. y can be any number in the
range 0-255.</para> range 0-255.</para>
<para>A valid private IP address could be 192.168.1.1. A valid FQDN for <para>A valid private IP address could be 192.168.1.1.</para>
this IP could be lfs.example.org.</para>
<para>Even if not using a network card, a valid FQDN is still required. <para>If the computer is to be visible to the Internet, a valid FQDN
This is necessary for certain programs to operate correctly.</para> can be the domain name itself, or a string resulted by concatenating a
prefix (often the hostname) and the domain name with a <quote>.</quote>
character. And, you need to contact the domain provider to resolve the
FQDN to your public IP address.</para>
<para>Even if the computer is not visible to the Internet, a FQDN is
still needed for certain programs, such as MTAs, to operate properly.
A special FQDN, <literal>localhost.localdomain</literal>, can be used
for this purpose.</para>
<para>Create the <filename>/etc/hosts</filename> file by running:</para> <para>Create the <filename>/etc/hosts</filename> file by running:</para>

View File

@ -316,27 +316,18 @@ EOF</userinput></screen>
<para>x can be any number in the range 16-31. y can be any number in the <para>x can be any number in the range 16-31. y can be any number in the
range 0-255.</para> range 0-255.</para>
<para>A valid private IP address could be 192.168.1.1. A valid FQDN for <para>A valid private IP address could be 192.168.1.1.</para>
this IP could be lfs.example.org.</para>
<para>Even if not using a network card, a valid FQDN is still required. <para>If the computer is to be visible to the Internet, a valid FQDN
This is necessary for certain programs, such as MTAs, to operate properly.</para> can be the domain name itself, or a string resulted by concatenating a
prefix (often the hostname) and the domain name with a <quote>.</quote>
character. And, you need to contact the domain provider to resolve the
FQDN to your public IP address.</para>
<!-- <para>Even if the computer is not visible to the Internet, a FQDN is
<para>Create the /etc/hosts file using the following command:</para> still needed for certain programs, such as MTAs, to operate properly.
A special FQDN, <literal>localhost.localdomain</literal>, can be used
<screen role="nodump"><userinput>cat &gt; /etc/hosts &lt;&lt; "EOF" for this purpose.</para>
<literal># Begin /etc/hosts
127.0.0.1 localhost.localdomain localhost
127.0.1.1 <replaceable>&lt;FQDN&gt;</replaceable> <replaceable>&lt;HOSTNAME&gt;</replaceable>
::1 localhost ip6-localhost ip6-loopback
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
# End /etc/hosts</literal>
EOF</userinput></screen>
-->
<para>Create the <filename>/etc/hosts</filename> file using the following <para>Create the <filename>/etc/hosts</filename> file using the following
command:</para> command:</para>
@ -344,28 +335,32 @@ EOF</userinput></screen>
<screen><userinput>cat &gt; /etc/hosts &lt;&lt; "EOF" <screen><userinput>cat &gt; /etc/hosts &lt;&lt; "EOF"
<literal># Begin /etc/hosts <literal># Begin /etc/hosts
127.0.0.1 localhost.localdomain localhost <replaceable>&lt;192.168.0.2&gt;</replaceable> <replaceable>&lt;FQDN&gt;</replaceable> <replaceable>[alias1] [alias2] ...</replaceable>
127.0.1.1 <replaceable>&lt;FQDN&gt;</replaceable> <replaceable>&lt;HOSTNAME&gt;</replaceable> ::1 ip6-localhost ip6-loopback
<replaceable>&lt;192.168.0.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::1 ip6-allnodes
ff02::2 ip6-allrouters ff02::2 ip6-allrouters
# End /etc/hosts</literal> # End /etc/hosts</literal>
EOF</userinput></screen> EOF</userinput></screen>
<para>The <replaceable>&lt;192.168.0.2&gt;</replaceable>, <para>The <replaceable>&lt;192.168.0.2&gt;</replaceable> and
<replaceable>&lt;FQDN&gt;</replaceable>, and <replaceable>&lt;FQDN&gt;</replaceable> values need to be
<replaceable>&lt;HOSTNAME&gt;</replaceable> values need to be
changed for specific uses or requirements (if assigned an IP address by a changed for specific uses or requirements (if assigned an IP address by a
network/system administrator and the machine will be connected to an network/system administrator and the machine will be connected to an
existing network). The optional alias name(s) can be omitted, and the existing network). The optional alias name(s) can be omitted, and the
<replaceable>&lt;192.168.0.2&gt;</replaceable> line can be omitted if you <replaceable>&lt;192.168.0.2&gt;</replaceable> line can be omitted if you
are using a connection configured with DHCP or IPv6 Autoconfiguration.</para> are using a connection configured with DHCP or IPv6 Autoconfiguration,
or using <literal>localhost.localdomain</literal> as the FQDN.</para>
<para>The <filename>/etc/hostname</filename> does not contain entries
for <literal>localhost</literal>,
<literal>localhost.localdomain</literal>, or the hostname (without a
domain) because they are handled by the
<systemitem class='library'>myhostname</systemitem> NSS module, read
the man page <filename>nss-myhostname(8)</filename> for details.</para>
<para>The ::1 entry is the IPv6 counterpart of 127.0.0.1 and represents <para>The ::1 entry is the IPv6 counterpart of 127.0.0.1 and represents
the IPv6 loopback interface. 127.0.1.1 is a loopback entry reserved the IPv6 loopback interface.</para>
specifically for the FQDN.</para>
</sect2> </sect2>

View File

@ -184,8 +184,7 @@ PATH=/bin:/usr/bin:/sbin:/usr/sbin /bin/bash --login'</command></screen>
<para> <para>
This method also provides a full graphical environment, but first This method also provides a full graphical environment, but first
requires installing requires installing
<ulink url="&blfs-book;postlfs/openssh.html">sshd</ulink> and <ulink url="&blfs-book;postlfs/openssh.html">sshd</ulink>
<ulink url="&blfs-book;basicnet/wget.html">wget</ulink>
on the LFS system, usually in chroot. It also requires a second on the LFS system, usually in chroot. It also requires a second
computer. This method has the advantage of being simple by not requiring computer. This method has the advantage of being simple by not requiring
the complexity of the chroot environment. It also uses your LFS built the complexity of the chroot environment. It also uses your LFS built
@ -193,6 +192,17 @@ PATH=/bin:/usr/bin:/sbin:/usr/sbin /bin/bash --login'</command></screen>
for installing packages. for installing packages.
</para> </para>
<para>
You may use the <command>scp</command> command to upload the package
sources to be built onto the LFS system. If you want to download
the sources onto the LFS system directly instead, install
<ulink url="&blfs-book;general/libtasn1.html">libtasn1</ulink>,
<ulink url="&blfs-book;postlfs/p11-kit.html">p11-kit</ulink>,
<ulink url="&blfs-book;postlfs/make-ca.html">make-ca</ulink>, and
<ulink url="&blfs-book;basicnet/wget.html">wget</ulink>
in chroot (or upload their sources using <command>scp</command>
after booting the LFS system).
</para>
</sect3> </sect3>
<sect3> <sect3>

View File

@ -113,7 +113,7 @@
<para>Then unmount the virtual file systems:</para> <para>Then unmount the virtual file systems:</para>
<screen><userinput>umount -v $LFS/dev/pts <screen><userinput>umount -v $LFS/dev/pts
mountpoint -q $LFS/dev/shm &amp;&amp; umount $LFS/dev/shm mountpoint -q $LFS/dev/shm &amp;&amp; umount -v $LFS/dev/shm
umount -v $LFS/dev umount -v $LFS/dev
umount -v $LFS/run umount -v $LFS/run
umount -v $LFS/proc umount -v $LFS/proc

View File

@ -58,6 +58,7 @@ VERSION="&version;"
ID=lfs ID=lfs
PRETTY_NAME="Linux From Scratch &version;" PRETTY_NAME="Linux From Scratch &version;"
VERSION_CODENAME="&lt;your name here&gt;" VERSION_CODENAME="&lt;your name here&gt;"
HOME_URL="&lfs-root;lfs/"
EOF</userinput></screen> EOF</userinput></screen>
<para>Be sure to customize the fields 'DISTRIB_CODENAME' and <para>Be sure to customize the fields 'DISTRIB_CODENAME' and

View File

@ -1,4 +1,4 @@
#!/bin/sh #!/bin/bash
if [ "$1" = sysv ]; then if [ "$1" = sysv ]; then
SYSV="INCLUDE" SYSV="INCLUDE"
@ -14,6 +14,10 @@ fi
echo "<!ENTITY % sysv \"$SYSV\">" > conditional.ent echo "<!ENTITY % sysv \"$SYSV\">" > conditional.ent
echo "<!ENTITY % systemd \"$SYSTEMD\">" >> conditional.ent echo "<!ENTITY % systemd \"$SYSTEMD\">" >> conditional.ent
if [ -e LFS-RELEASE ]; then
exit 0
fi
if ! git status > /dev/null; then if ! git status > /dev/null; then
# Either it's not a git repository, or git is unavaliable. # Either it's not a git repository, or git is unavaliable.
# Just workaround. # Just workaround.
@ -24,7 +28,7 @@ if ! git status > /dev/null; then
echo "<!ENTITY version \"unknown-systemd\">" >> version.ent echo "<!ENTITY version \"unknown-systemd\">" >> version.ent
echo "]]>" >> version.ent echo "]]>" >> version.ent
echo "<!ENTITY releasedate \"unknown\">" >> version.ent echo "<!ENTITY releasedate \"unknown\">" >> version.ent
echo "<!ENTITY copyrightdate \"1999-2022\">" >> version.ent echo "<!ENTITY copyrightdate \"1999-2023\">" >> version.ent
exit 0 exit 0
fi fi
@ -65,3 +69,5 @@ echo "<!ENTITY version \"$versiond\">" >> version.ent
echo "]]>" >> version.ent echo "]]>" >> version.ent
echo "<!ENTITY releasedate \"$full_date\">" >> version.ent echo "<!ENTITY releasedate \"$full_date\">" >> version.ent
echo "<!ENTITY copyrightdate \"1999-$year\">" >> version.ent echo "<!ENTITY copyrightdate \"1999-$year\">" >> version.ent
[ -z "$DIST" ] || echo $version > "$DIST"

View File

@ -85,8 +85,9 @@ function http_get_file( $url )
exec( "curl --location --silent --max-time 30 $url", $dir ); exec( "curl --location --silent --max-time 30 $url", $dir );
$s = implode( "\n", $dir ); $dir = implode( "\n", $dir );
$dir = strip_tags( $s ); if ( !preg_match( "/api.github.com/", $url) )
$dir = strip_tags( $dir );
return explode( "\n", $dir ); return explode( "\n", $dir );
} }
@ -127,6 +128,7 @@ if ( $package == "expect" ) $dirpath = "https://sourceforge.net/projects/exp
if ( $package == "file" ) $dirpath = "https://github.com/file/file/tags"; if ( $package == "file" ) $dirpath = "https://github.com/file/file/tags";
if ( $package == "flex" ) $dirpath = github("westes/flex"); if ( $package == "flex" ) $dirpath = github("westes/flex");
if ( $package == "flit_core" ) $dirpath = "https://pypi.org/project/flit-core/"; if ( $package == "flit_core" ) $dirpath = "https://pypi.org/project/flit-core/";
if ( $package == "setuptools" ) $dirpath = "https://pypi.org/project/setuptools/";
if ( $package == "gcc" ) $dirpath = max_parent( $dirpath, "gcc-" ); if ( $package == "gcc" ) $dirpath = max_parent( $dirpath, "gcc-" );
if ( $package == "iana-etc" ) $dirpath = github("Mic92/iana-etc"); if ( $package == "iana-etc" ) $dirpath = github("Mic92/iana-etc");
if ( $package == "intltool" ) $dirpath = "https://launchpad.net/intltool/trunk"; if ( $package == "intltool" ) $dirpath = "https://launchpad.net/intltool/trunk";
@ -293,6 +295,9 @@ if ( $package == "zstd" ) $dirpath = github("facebook/zstd");
if ( $package == "flit_core" ) if ( $package == "flit_core" )
return find_max( $lines, "/flit-core /", "/^.*flit-core ([\d\.]+)$/" ); return find_max( $lines, "/flit-core /", "/^.*flit-core ([\d\.]+)$/" );
if ( $package == "setuptools" )
return find_max( $lines, "/setuptools /", "/^.*setuptools ([\d\.]+)$/" );
if ( $package == "procps-ng" ) if ( $package == "procps-ng" )
return find_max( $lines, "/v\d/", "/^.*v([\d\.]+)$/" ); return find_max( $lines, "/v\d/", "/^.*v([\d\.]+)$/" );

View File

@ -47,20 +47,20 @@
<!ENTITY automake-fin-du "114 MB"> <!ENTITY automake-fin-du "114 MB">
<!ENTITY automake-fin-sbu "less than 0.1 SBU (about 7.0 SBU with tests)"> <!ENTITY automake-fin-sbu "less than 0.1 SBU (about 7.0 SBU with tests)">
<!ENTITY bash-version "5.2.15"> <!ENTITY bash-version "5.2.21">
<!ENTITY bash-size "10,695 KB"> <!ENTITY bash-size "10,696 KB">
<!ENTITY bash-url "&gnu;bash/bash-&bash-version;.tar.gz"> <!ENTITY bash-url "&gnu;bash/bash-&bash-version;.tar.gz">
<!ENTITY bash-md5 "4281bb43497f3905a308430a8d6a30a5"> <!ENTITY bash-md5 "ad5b38410e3bf0e9bcc20e2765f5e3f9">
<!ENTITY bash-home "&gnu-software;bash/"> <!ENTITY bash-home "&gnu-software;bash/">
<!ENTITY bash-tmp-du "67 MB"> <!ENTITY bash-tmp-du "67 MB">
<!ENTITY bash-tmp-sbu "0.2 SBU"> <!ENTITY bash-tmp-sbu "0.2 SBU">
<!ENTITY bash-fin-du "52 MB"> <!ENTITY bash-fin-du "52 MB">
<!ENTITY bash-fin-sbu "1.1 SBU"> <!ENTITY bash-fin-sbu "1.1 SBU">
<!ENTITY bc-version "6.6.0"> <!ENTITY bc-version "6.7.3">
<!ENTITY bc-size "455 KB"> <!ENTITY bc-size "456 KB">
<!ENTITY bc-url "https://github.com/gavinhoward/bc/releases/download/&bc-version;/bc-&bc-version;.tar.xz"> <!ENTITY bc-url "https://github.com/gavinhoward/bc/releases/download/&bc-version;/bc-&bc-version;.tar.xz">
<!ENTITY bc-md5 "a148cbaaf8ff813b7289a00539e74a5f"> <!ENTITY bc-md5 "a2e39a5be32330bc2166b0e501668178">
<!ENTITY bc-home "https://git.gavinhoward.com/gavin/bc"> <!ENTITY bc-home "https://git.gavinhoward.com/gavin/bc">
<!ENTITY bc-fin-du "7.7 MB"> <!ENTITY bc-fin-du "7.7 MB">
<!ENTITY bc-fin-sbu "less than 0.1 SBU"> <!ENTITY bc-fin-sbu "less than 0.1 SBU">
@ -148,10 +148,10 @@
<!ENTITY e2fsprogs-fin-du "95 MB"> <!ENTITY e2fsprogs-fin-du "95 MB">
<!ENTITY e2fsprogs-fin-sbu "2.4 SBU on a spinning disk, 0.6 SBU on an SSD"> <!ENTITY e2fsprogs-fin-sbu "2.4 SBU on a spinning disk, 0.6 SBU on an SSD">
<!ENTITY elfutils-version "0.189"> <!-- libelf --> <!ENTITY elfutils-version "0.190"> <!-- libelf -->
<!ENTITY elfutils-size "8,936 KB"> <!ENTITY elfutils-size "8,949 KB">
<!ENTITY elfutils-url "https://sourceware.org/ftp/elfutils/&elfutils-version;/elfutils-&elfutils-version;.tar.bz2"> <!ENTITY elfutils-url "https://sourceware.org/ftp/elfutils/&elfutils-version;/elfutils-&elfutils-version;.tar.bz2">
<!ENTITY elfutils-md5 "5cfaa711a90cb670406cd495aeaa6030"> <!ENTITY elfutils-md5 "79ad698e61a052bea79e77df6a08bc4b">
<!ENTITY elfutils-home "https://sourceware.org/elfutils/"> <!ENTITY elfutils-home "https://sourceware.org/elfutils/">
<!ENTITY elfutils-fin-du "122 MB"> <!ENTITY elfutils-fin-du "122 MB">
<!ENTITY elfutils-fin-sbu "0.3 SBU"> <!ENTITY elfutils-fin-sbu "0.3 SBU">
@ -208,10 +208,10 @@
<!ENTITY flit-core-fin-du "1.7 MB"> <!ENTITY flit-core-fin-du "1.7 MB">
<!ENTITY flit-core-fin-sbu "less than 0.1 SBU"> <!ENTITY flit-core-fin-sbu "less than 0.1 SBU">
<!ENTITY gawk-version "5.2.2"> <!ENTITY gawk-version "5.3.0">
<!ENTITY gawk-size "3,324 KB"> <!ENTITY gawk-size "3,356 KB">
<!ENTITY gawk-url "&gnu;gawk/gawk-&gawk-version;.tar.xz"> <!ENTITY gawk-url "&gnu;gawk/gawk-&gawk-version;.tar.xz">
<!ENTITY gawk-md5 "d63b4de2c722cbd9b8cc8e6f14d78a1e"> <!ENTITY gawk-md5 "97c5a7d83f91a7e1b2035ebbe6ac7abd">
<!ENTITY gawk-home "&gnu-software;gawk/"> <!ENTITY gawk-home "&gnu-software;gawk/">
<!ENTITY gawk-tmp-du "48 MB"> <!ENTITY gawk-tmp-du "48 MB">
<!ENTITY gawk-tmp-sbu "0.1 SBU"> <!ENTITY gawk-tmp-sbu "0.1 SBU">
@ -222,7 +222,6 @@
<!ENTITY gcc-size "85,800 KB"> <!ENTITY gcc-size "85,800 KB">
<!ENTITY gcc-url "&gnu;gcc/gcc-&gcc-version;/gcc-&gcc-version;.tar.xz"> <!ENTITY gcc-url "&gnu;gcc/gcc-&gcc-version;/gcc-&gcc-version;.tar.xz">
<!ENTITY gcc-md5 "e0e48554cc6e4f261d55ddee9ab69075"> <!ENTITY gcc-md5 "e0e48554cc6e4f261d55ddee9ab69075">
<!ENTITY gcc-sha256 "">
<!ENTITY gcc-home "https://gcc.gnu.org/"> <!ENTITY gcc-home "https://gcc.gnu.org/">
<!ENTITY gcc-tmpp1-du "4.2 GB"> <!ENTITY gcc-tmpp1-du "4.2 GB">
<!ENTITY gcc-tmpp1-sbu "3.5 SBU"> <!ENTITY gcc-tmpp1-sbu "3.5 SBU">
@ -246,10 +245,10 @@
<!ENTITY gdbm-fin-du "13 MB"> <!ENTITY gdbm-fin-du "13 MB">
<!ENTITY gdbm-fin-sbu "less than 0.1 SBU"> <!ENTITY gdbm-fin-sbu "less than 0.1 SBU">
<!ENTITY gettext-version "0.22"> <!ENTITY gettext-version "0.22.4">
<!ENTITY gettext-size "9,775 KB"> <!ENTITY gettext-size "10,016 KB">
<!ENTITY gettext-url "&gnu;gettext/gettext-&gettext-version;.tar.xz"> <!ENTITY gettext-url "&gnu;gettext/gettext-&gettext-version;.tar.xz">
<!ENTITY gettext-md5 "db2f3daf34fd5b85ab1a56f9033e42d1"> <!ENTITY gettext-md5 "2d8507d003ef3ddd1c172707ffa97ed8">
<!ENTITY gettext-home "&gnu-software;gettext/"> <!ENTITY gettext-home "&gnu-software;gettext/">
<!ENTITY gettext-tmp-du "306 MB"> <!ENTITY gettext-tmp-du "306 MB">
<!ENTITY gettext-tmp-sbu "1.1 SBU"> <!ENTITY gettext-tmp-sbu "1.1 SBU">
@ -318,10 +317,10 @@
<!ENTITY gzip-fin-du "21 MB"> <!ENTITY gzip-fin-du "21 MB">
<!ENTITY gzip-fin-sbu "0.3 SBU"> <!ENTITY gzip-fin-sbu "0.3 SBU">
<!ENTITY iana-etc-version "20230810"> <!ENTITY iana-etc-version "20231117">
<!ENTITY iana-etc-size "588 KB"> <!ENTITY iana-etc-size "588 KB">
<!ENTITY iana-etc-url "https://github.com/Mic92/iana-etc/releases/download/&iana-etc-version;/iana-etc-&iana-etc-version;.tar.gz"> <!ENTITY iana-etc-url "https://github.com/Mic92/iana-etc/releases/download/&iana-etc-version;/iana-etc-&iana-etc-version;.tar.gz">
<!ENTITY iana-etc-md5 "0502bd41cc0bf1c1c3cd8651058b9650"> <!ENTITY iana-etc-md5 "f26b37a03a211ddd4e9c7189191e2772">
<!ENTITY iana-etc-home "https://www.iana.org/protocols"> <!ENTITY iana-etc-home "https://www.iana.org/protocols">
<!ENTITY iana-etc-fin-du "4.8 MB"> <!ENTITY iana-etc-fin-du "4.8 MB">
<!ENTITY iana-etc-fin-sbu "less than 0.1 SBU"> <!ENTITY iana-etc-fin-sbu "less than 0.1 SBU">
@ -330,7 +329,6 @@
<!ENTITY inetutils-size "1,522 KB"> <!ENTITY inetutils-size "1,522 KB">
<!ENTITY inetutils-url "&gnu;inetutils/inetutils-&inetutils-version;.tar.xz"> <!ENTITY inetutils-url "&gnu;inetutils/inetutils-&inetutils-version;.tar.xz">
<!ENTITY inetutils-md5 "319d65bb5a6f1847c4810651f3b4ba74"> <!ENTITY inetutils-md5 "319d65bb5a6f1847c4810651f3b4ba74">
<!ENTITY inetutils-sha256 "">
<!ENTITY inetutils-home "&gnu-software;inetutils/"> <!ENTITY inetutils-home "&gnu-software;inetutils/">
<!ENTITY inetutils-fin-du "31 MB"> <!ENTITY inetutils-fin-du "31 MB">
<!ENTITY inetutils-fin-sbu "0.2 SBU"> <!ENTITY inetutils-fin-sbu "0.2 SBU">
@ -343,10 +341,10 @@
<!ENTITY intltool-fin-du "1.5 MB"> <!ENTITY intltool-fin-du "1.5 MB">
<!ENTITY intltool-fin-sbu "less than 0.1 SBU"> <!ENTITY intltool-fin-sbu "less than 0.1 SBU">
<!ENTITY iproute2-version "6.4.0"> <!ENTITY iproute2-version "6.6.0">
<!ENTITY iproute2-size "904 KB"> <!ENTITY iproute2-size "897 KB">
<!ENTITY iproute2-url "&kernel;linux/utils/net/iproute2/iproute2-&iproute2-version;.tar.xz"> <!ENTITY iproute2-url "&kernel;linux/utils/net/iproute2/iproute2-&iproute2-version;.tar.xz">
<!ENTITY iproute2-md5 "90ce0eb84a8f1e2b14ffa77e8eb3f5ed"> <!ENTITY iproute2-md5 "6716fc3188dbea226997fa2478a190d7">
<!ENTITY iproute2-home "&kernel;linux/utils/net/iproute2/"> <!ENTITY iproute2-home "&kernel;linux/utils/net/iproute2/">
<!ENTITY iproute2-fin-du "17 MB"> <!ENTITY iproute2-fin-du "17 MB">
<!ENTITY iproute2-fin-sbu "0.1 SBU"> <!ENTITY iproute2-fin-sbu "0.1 SBU">
@ -359,19 +357,19 @@
<!ENTITY jinja2-fin-du "3.4 MB"> <!ENTITY jinja2-fin-du "3.4 MB">
<!ENTITY jinja2-fin-sbu "less than 0.1 SBU"> <!ENTITY jinja2-fin-sbu "less than 0.1 SBU">
<!ENTITY kbd-version "2.6.2"> <!ENTITY kbd-version "2.6.3">
<!ENTITY kbd-size "1,469 KB"> <!ENTITY kbd-size "1,468 KB">
<!ENTITY kbd-url "https://www.kernel.org/pub/linux/utils/kbd/kbd-&kbd-version;.tar.xz"> <!ENTITY kbd-url "https://www.kernel.org/pub/linux/utils/kbd/kbd-&kbd-version;.tar.xz">
<!ENTITY kbd-md5 "35e261a31e673c8aec7dbc6553ea075c"> <!ENTITY kbd-md5 "4764775cac0415f1d35a0cd311249941">
<!ENTITY kbd-home "https://kbd-project.org/"> <!ENTITY kbd-home "https://kbd-project.org/">
<!ENTITY kbd-fin-du "35 MB"> <!ENTITY kbd-fin-du "35 MB">
<!ENTITY kbd-fin-sbu "0.1 SBU"> <!ENTITY kbd-fin-sbu "0.1 SBU">
<!ENTITY kmod-version "30"> <!ENTITY kmod-version "31">
<!ENTITY kmod-size "555 KB"> <!ENTITY kmod-size "558 KB">
<!ENTITY kmod-url "&kernel;linux/utils/kernel/kmod/kmod-&kmod-version;.tar.xz"> <!ENTITY kmod-url "&kernel;linux/utils/kernel/kmod/kmod-&kmod-version;.tar.xz">
<!ENTITY kmod-md5 "85202f0740a75eb52f2163c776f9b564"> <!ENTITY kmod-md5 "6165867e1836d51795a11ea4762ff66a">
<!ENTITY kmod-home " "> <!ENTITY kmod-home "https://github.com/kmod-project/kmod">
<!ENTITY kmod-fin-du "12 MB"> <!ENTITY kmod-fin-du "12 MB">
<!ENTITY kmod-fin-sbu "less than 0.1 SBU"> <!ENTITY kmod-fin-sbu "less than 0.1 SBU">
@ -432,19 +430,22 @@
<!ENTITY libxcrypt-fin-sbu "0.1 SBU"> <!ENTITY libxcrypt-fin-sbu "0.1 SBU">
<!ENTITY linux-major-version "6"> <!ENTITY linux-major-version "6">
<!ENTITY linux-minor-version "5"> <!ENTITY linux-minor-version "6">
<!ENTITY linux-patch-version "1"> <!ENTITY linux-patch-version "3">
<!--<!ENTITY linux-version "&linux-major-version;.&linux-minor-version;">--> <!--<!ENTITY linux-version "&linux-major-version;.&linux-minor-version;">-->
<!ENTITY linux-version "&linux-major-version;.&linux-minor-version;.&linux-patch-version;"> <!ENTITY linux-version "&linux-major-version;.&linux-minor-version;.&linux-patch-version;">
<!ENTITY linux-size "135,684 KB"> <!ENTITY linux-size "136,763 KB">
<!ENTITY linux-url "&kernel;linux/kernel/v&linux-major-version;.x/linux-&linux-version;.tar.xz"> <!ENTITY linux-url "&kernel;linux/kernel/v&linux-major-version;.x/linux-&linux-version;.tar.xz">
<!ENTITY linux-md5 "228479f37b3face05b53bd7f8906abe0"> <!ENTITY linux-md5 "3a760f5ac7d37b62dda9a4ca89f5fd96">
<!ENTITY linux-home "https://www.kernel.org/"> <!ENTITY linux-home "https://www.kernel.org/">
<!-- measured for 5.13.4 / gcc-11.1.0 on x86_64 : minimum is <!-- measured for 6.5.3 / gcc-13.2.0 on x86_64 with -j4 : minimum is
allnoconfig rounded down to allow for ongoing cleanups, allnoconfig + some configs we recommend for the users, rounded down to
max is allmodconfig --> allow ongoing cleanups; max is allmodconfig but IKHEADERS unset; typical
<!ENTITY linux-knl-du "1200 - 8800 MB (typically about 1700 MB)"> is the "daily use" config for the workstation measuring the min/max values.
<!ENTITY linux-knl-sbu "1.5 - 130.0 SBU (typically about 12 SBU)"> The disk usage is the sum of the size of linux-6.5.3 directory and the
installed kernel image & modules. -->
<!ENTITY linux-knl-du "1.8 - 10.6 GB (typically about 2 GB)">
<!ENTITY linux-knl-sbu "0.6 - 20.4 SBU (typically about 1.4 SBU)">
<!ENTITY linux-headers-tmp-du "1.5 GB"> <!ENTITY linux-headers-tmp-du "1.5 GB">
<!ENTITY linux-headers-tmp-sbu "less than 0.1 SBU"> <!ENTITY linux-headers-tmp-sbu "less than 0.1 SBU">
@ -469,10 +470,10 @@
<!ENTITY make-fin-du "13 MB"> <!ENTITY make-fin-du "13 MB">
<!ENTITY make-fin-sbu "0.5 SBU"> <!ENTITY make-fin-sbu "0.5 SBU">
<!ENTITY man-db-version "2.11.2"> <!ENTITY man-db-version "2.12.0">
<!ENTITY man-db-size "1,908 KB"> <!ENTITY man-db-size "1,941 KB">
<!ENTITY man-db-url "&savannah;/releases/man-db/man-db-&man-db-version;.tar.xz"> <!ENTITY man-db-url "&savannah;/releases/man-db/man-db-&man-db-version;.tar.xz">
<!ENTITY man-db-md5 "a7d59fb2df6158c44f8f7009dcc6d875"> <!ENTITY man-db-md5 "67e0052fa200901b314fad7b68c9db27">
<!ENTITY man-db-home "https://www.nongnu.org/man-db/"> <!ENTITY man-db-home "https://www.nongnu.org/man-db/">
<!ENTITY man-db-fin-du "40 MB"> <!ENTITY man-db-fin-du "40 MB">
<!ENTITY man-db-fin-sbu "0.2 SBU"> <!ENTITY man-db-fin-sbu "0.2 SBU">
@ -493,10 +494,10 @@
<!ENTITY markupsafe-fin-du "548 KB"> <!ENTITY markupsafe-fin-du "548 KB">
<!ENTITY markupsafe-fin-sbu "less than 0.1 SBU"> <!ENTITY markupsafe-fin-sbu "less than 0.1 SBU">
<!ENTITY meson-version "1.2.1"> <!ENTITY meson-version "1.3.0">
<!ENTITY meson-size "2,131 KB"> <!ENTITY meson-size "2,171 KB">
<!ENTITY meson-url "&github;/mesonbuild/meson/releases/download/&meson-version;/meson-&meson-version;.tar.gz"> <!ENTITY meson-url "&github;/mesonbuild/meson/releases/download/&meson-version;/meson-&meson-version;.tar.gz">
<!ENTITY meson-md5 "e3cc846536189aacd7d01858a45ca9af"> <!ENTITY meson-md5 "35dc15e4f94ca5fd30dbe2d88a672254">
<!ENTITY meson-home "https://mesonbuild.com"> <!ENTITY meson-home "https://mesonbuild.com">
<!ENTITY meson-fin-du "42 MB"> <!ENTITY meson-fin-du "42 MB">
<!ENTITY meson-fin-sbu "less than 0.1 SBU"> <!ENTITY meson-fin-sbu "less than 0.1 SBU">
@ -535,10 +536,10 @@
<!ENTITY ninja-fin-du "75 MB"> <!ENTITY ninja-fin-du "75 MB">
<!ENTITY ninja-fin-sbu "0.3 SBU"> <!ENTITY ninja-fin-sbu "0.3 SBU">
<!ENTITY openssl-version "3.1.2"> <!ENTITY openssl-version "3.2.0">
<!ENTITY openssl-size "15,196 KB"> <!ENTITY openssl-size "17,284 KB">
<!ENTITY openssl-url "https://www.openssl.org/source/openssl-&openssl-version;.tar.gz"> <!ENTITY openssl-url "https://www.openssl.org/source/openssl-&openssl-version;.tar.gz">
<!ENTITY openssl-md5 "1d7861f969505e67b8677e205afd9ff4"> <!ENTITY openssl-md5 "7903549a14abebc5c323ce4e85f2cbb2">
<!ENTITY openssl-home "https://www.openssl.org/"> <!ENTITY openssl-home "https://www.openssl.org/">
<!ENTITY openssl-fin-du "587 MB"> <!ENTITY openssl-fin-du "587 MB">
<!ENTITY openssl-fin-sbu "3.0 SBU"> <!ENTITY openssl-fin-sbu "3.0 SBU">
@ -555,22 +556,22 @@
<!ENTITY perl-version-major "5"> <!ENTITY perl-version-major "5">
<!ENTITY perl-version-minor "38"> <!ENTITY perl-version-minor "38">
<!ENTITY perl-version-patch "0"> <!ENTITY perl-version-patch "2">
<!ENTITY perl-version-min "&perl-version-major;.&perl-version-minor;"> <!ENTITY perl-version-min "&perl-version-major;.&perl-version-minor;">
<!ENTITY perl-version "&perl-version-major;.&perl-version-minor;.&perl-version-patch;"> <!ENTITY perl-version "&perl-version-major;.&perl-version-minor;.&perl-version-patch;">
<!ENTITY perl-size "13,248 KB"> <!ENTITY perl-size "13,359 KB">
<!ENTITY perl-url "https://www.cpan.org/src/5.0/perl-&perl-version;.tar.xz"> <!ENTITY perl-url "https://www.cpan.org/src/5.0/perl-&perl-version;.tar.xz">
<!ENTITY perl-md5 "e1c8aaec897dd386c741f97eef9f2e87"> <!ENTITY perl-md5 "d3957d75042918a23ec0abac4a2b7e0a">
<!ENTITY perl-home "https://www.perl.org/"> <!ENTITY perl-home "https://www.perl.org/">
<!ENTITY perl-tmp-du "280 MB"> <!ENTITY perl-tmp-du "280 MB">
<!ENTITY perl-tmp-sbu "0.6 SBU"> <!ENTITY perl-tmp-sbu "0.6 SBU">
<!ENTITY perl-fin-du "239 MB"> <!ENTITY perl-fin-du "239 MB">
<!ENTITY perl-fin-sbu "7.1 SBU"> <!ENTITY perl-fin-sbu "7.1 SBU">
<!ENTITY pkgconf-version "2.0.3"> <!ENTITY pkgconf-version "2.1.0">
<!ENTITY pkgconf-size "304 KB"> <!ENTITY pkgconf-size "305 KB">
<!ENTITY pkgconf-url "https://distfiles.ariadne.space/pkgconf/pkgconf-&pkgconf-version;.tar.xz"> <!ENTITY pkgconf-url "https://distfiles.ariadne.space/pkgconf/pkgconf-&pkgconf-version;.tar.xz">
<!ENTITY pkgconf-md5 "b82ca48ed3097adfa007ee71489b6719"> <!ENTITY pkgconf-md5 "0f2eadbb9dea5aed95147272ae1592cc">
<!ENTITY pkgconf-home "http://pkgconf.org/"> <!ENTITY pkgconf-home "http://pkgconf.org/">
<!ENTITY pkgconf-fin-du "4.6 MB"> <!ENTITY pkgconf-fin-du "4.6 MB">
<!ENTITY pkgconf-fin-sbu "less than 0.1 SBU"> <!ENTITY pkgconf-fin-sbu "less than 0.1 SBU">
@ -594,19 +595,19 @@
<!-- If python minor version changes, updates in python and <!-- If python minor version changes, updates in python and
meson pages will be needed: python3.6 and python3.6m --> meson pages will be needed: python3.6 and python3.6m -->
<!ENTITY python-version "3.11.5"> <!ENTITY python-version "3.12.0">
<!ENTITY python-minor "3.11"> <!ENTITY python-minor "3.12">
<!ENTITY python-size "19,584 KB"> <!ENTITY python-size "20,093 KB">
<!ENTITY python-url "https://www.python.org/ftp/python/&python-version;/Python-&python-version;.tar.xz"> <!ENTITY python-url "https://www.python.org/ftp/python/&python-version;/Python-&python-version;.tar.xz">
<!ENTITY python-md5 "393856f1b7713aa8bba4b642ab9985d3"> <!ENTITY python-md5 "f6f4616584b23254d165f4db90c247d6">
<!ENTITY python-home "https://www.python.org/"> <!ENTITY python-home "https://www.python.org/">
<!ENTITY python-tmp-du "533 MB"> <!ENTITY python-tmp-du "533 MB">
<!ENTITY python-tmp-sbu "0.4 SBU"> <!ENTITY python-tmp-sbu "0.4 SBU">
<!ENTITY python-fin-du "370 MB"> <!ENTITY python-fin-du "370 MB">
<!ENTITY python-fin-sbu "1.9 SBU"> <!ENTITY python-fin-sbu "1.9 SBU">
<!ENTITY python-docs-url "https://www.python.org/ftp/python/doc/&python-version;/python-&python-version;-docs-html.tar.bz2"> <!ENTITY python-docs-url "https://www.python.org/ftp/python/doc/&python-version;/python-&python-version;-docs-html.tar.bz2">
<!ENTITY python-docs-md5 "1abed52338038f4b53a277a5558af838"> <!ENTITY python-docs-md5 "ae9d19bb613ae8ef2457496bd2893915">
<!ENTITY python-docs-size "7,678 KB"> <!ENTITY python-docs-size "8,009 KB">
<!ENTITY readline-version "8.2"> <!ENTITY readline-version "8.2">
<!ENTITY readline-soversion "8.2"><!-- used for stripping --> <!ENTITY readline-soversion "8.2"><!-- used for stripping -->
@ -627,11 +628,19 @@
<!ENTITY sed-fin-du "30 MB"> <!ENTITY sed-fin-du "30 MB">
<!ENTITY sed-fin-sbu "0.3 SBU"> <!ENTITY sed-fin-sbu "0.3 SBU">
<!ENTITY shadow-version "4.14.0"> <!ENTITY setuptools-version "69.0.2">
<!ENTITY shadow-size "1,746 KB"> <!ENTITY setuptools-size "2,168 KB">
<!ENTITY setuptools-url "&pypi-src;/s/setuptools/setuptools-&setuptools-version;.tar.gz">
<!ENTITY setuptools-md5 "32bcc14eb830a13fbf33e053286f1081">
<!ENTITY setuptools-home "&pypi-home;/setuptools/">
<!ENTITY setuptools-fin-du "30 MB">
<!ENTITY setuptools-fin-sbu "0.1 SBU">
<!ENTITY shadow-version "4.14.2">
<!ENTITY shadow-size "1,758 KB">
<!ENTITY shadow-url "&github;/shadow-maint/shadow/releases/download/&shadow-version;/shadow-&shadow-version;.tar.xz"> <!ENTITY shadow-url "&github;/shadow-maint/shadow/releases/download/&shadow-version;/shadow-&shadow-version;.tar.xz">
<!ENTITY shadow-md5 "bb0166bebc24db9003bb77bfd1359042"> <!ENTITY shadow-md5 "effc1aa17590305647413125b966f1dd">
<!ENTITY shadow-home "https://shadow-maint.github.io/shadow/"> <!ENTITY shadow-home "&github;/shadow-maint/shadow/">
<!ENTITY shadow-fin-du "46 MB"> <!ENTITY shadow-fin-du "46 MB">
<!ENTITY shadow-fin-sbu "0.1 SBU"> <!ENTITY shadow-fin-sbu "0.1 SBU">
@ -690,10 +699,10 @@
<!ENTITY tcl-tmp-du "89 MB"> <!ENTITY tcl-tmp-du "89 MB">
<!ENTITY tcl-tmp-sbu "2.7 SBU"> <!ENTITY tcl-tmp-sbu "2.7 SBU">
<!ENTITY texinfo-version "7.0.3"> <!ENTITY texinfo-version "7.1">
<!ENTITY texinfo-size "4,776 KB"> <!ENTITY texinfo-size "5,416 KB">
<!ENTITY texinfo-url "&gnu;texinfo/texinfo-&texinfo-version;.tar.xz"> <!ENTITY texinfo-url "&gnu;texinfo/texinfo-&texinfo-version;.tar.xz">
<!ENTITY texinfo-md5 "37bf94fd255729a14d4ea3dda119f81a"> <!ENTITY texinfo-md5 "edd9928b4a3f82674bcc3551616eef3b">
<!ENTITY texinfo-home "&gnu-software;texinfo/"> <!ENTITY texinfo-home "&gnu-software;texinfo/">
<!ENTITY texinfo-tmp-du "116 MB"> <!ENTITY texinfo-tmp-du "116 MB">
<!ENTITY texinfo-tmp-sbu "0.1 SBU"> <!ENTITY texinfo-tmp-sbu "0.1 SBU">
@ -726,21 +735,21 @@
<!ENTITY util-linux-fin-du "310 MB"> <!ENTITY util-linux-fin-du "310 MB">
<!ENTITY util-linux-fin-sbu "0.5 SBU"> <!ENTITY util-linux-fin-sbu "0.5 SBU">
<!ENTITY vim-version "9.0.1837"> <!ENTITY vim-version "9.0.2136">
<!-- <!ENTITY vim-majmin "90"> --> <!-- <!ENTITY vim-majmin "90"> -->
<!ENTITY vim-docdir "vim/vim90"> <!ENTITY vim-docdir "vim/vim90">
<!ENTITY vim-size "16,838 KB"> <!ENTITY vim-size "16,989 KB">
<!--<!ENTITY vim-url "https://github.com/vim/vim/archive/v&vim-version;/vim-&vim-version;.tar.gz">--> <!ENTITY vim-url "https://github.com/vim/vim/archive/v&vim-version;/vim-&vim-version;.tar.gz">
<!ENTITY vim-url "&anduin-sources;/vim-&vim-version;.tar.gz"> <!--<!ENTITY vim-url "&anduin-sources;/vim-&vim-version;.tar.gz">-->
<!ENTITY vim-md5 "de7cba78a556f96482ae8f09b082aa59"> <!ENTITY vim-md5 "8dcf113cb690bcdd13d75a4e7c2e3a62">
<!ENTITY vim-home "https://www.vim.org"> <!ENTITY vim-home "https://www.vim.org">
<!ENTITY vim-fin-du "229 MB"> <!ENTITY vim-fin-du "229 MB">
<!ENTITY vim-fin-sbu "2.3 SBU"> <!ENTITY vim-fin-sbu "2.3 SBU">
<!ENTITY wheel-version "0.41.2"> <!ENTITY wheel-version "0.42.0">
<!ENTITY wheel-size "96 KB"> <!ENTITY wheel-size "97 KB">
<!ENTITY wheel-url "&pypi-src;/w/wheel/wheel-&wheel-version;.tar.gz"> <!ENTITY wheel-url "&pypi-src;/w/wheel/wheel-&wheel-version;.tar.gz">
<!ENTITY wheel-md5 "06271a9e90c948b7e93dd7ce0fd90272"> <!ENTITY wheel-md5 "802ad6e5f9336fcb1c76b7593f0cd22d">
<!ENTITY wheel-home "&pypi-home;/wheel/"> <!ENTITY wheel-home "&pypi-home;/wheel/">
<!ENTITY wheel-fin-du "1.5 MB"> <!ENTITY wheel-fin-du "1.5 MB">
<!ENTITY wheel-fin-sbu "less than 0.1 SBU"> <!ENTITY wheel-fin-sbu "less than 0.1 SBU">
@ -753,10 +762,10 @@
<!ENTITY xml-parser-fin-du "2.3 MB"> <!ENTITY xml-parser-fin-du "2.3 MB">
<!ENTITY xml-parser-fin-sbu "less than 0.1 SBU"> <!ENTITY xml-parser-fin-sbu "less than 0.1 SBU">
<!ENTITY xz-version "5.4.4"> <!ENTITY xz-version "5.4.5">
<!ENTITY xz-size "1,623 KB"> <!ENTITY xz-size "1,642 KB">
<!ENTITY xz-url "https://tukaani.org/xz/xz-&xz-version;.tar.xz"> <!ENTITY xz-url "https://tukaani.org/xz/xz-&xz-version;.tar.xz">
<!ENTITY xz-md5 "d83d6f64a64f88759e312b8a38c3add6"> <!ENTITY xz-md5 "1d33e0be05c53e7a5641acf5c8b35fdd">
<!ENTITY xz-home "https://tukaani.org/xz"> <!ENTITY xz-home "https://tukaani.org/xz">
<!ENTITY xz-tmp-du "22 MB"> <!ENTITY xz-tmp-du "22 MB">
<!ENTITY xz-tmp-sbu "0.1 SBU"> <!ENTITY xz-tmp-sbu "0.1 SBU">

View File

@ -14,9 +14,9 @@
<!ENTITY glibc-fhs-patch-md5 "9a5997c3452909b1769918c759eff8a2"> <!ENTITY glibc-fhs-patch-md5 "9a5997c3452909b1769918c759eff8a2">
<!ENTITY glibc-fhs-patch-size "2.8 KB"> <!ENTITY glibc-fhs-patch-size "2.8 KB">
<!ENTITY glibc-memalign-patch "glibc-&glibc-version;-memalign_fix-1.patch"> <!ENTITY glibc-upstream-fixes-patch "glibc-&glibc-version;-upstream_fixes-3.patch">
<!ENTITY glibc-memalign-patch-md5 "2c3552bded42a83ad6a7087c5fbf3857"> <!ENTITY glibc-upstream-fixes-patch-md5 "545977e0b5c341ba945cf4b5de92f1e2">
<!ENTITY glibc-memalign-patch-size "20 KB"> <!ENTITY glibc-upstream-fixes-patch-size "28 KB">
<!ENTITY grub-upstream-fixes-patch "grub-&grub-version;-upstream_fixes-1.patch"> <!ENTITY grub-upstream-fixes-patch "grub-&grub-version;-upstream_fixes-1.patch">
<!ENTITY grub-upstream-fixes-patch-md5 "da388905710bb4cbfbc7bd7346ff9174"> <!ENTITY grub-upstream-fixes-patch-md5 "da388905710bb4cbfbc7bd7346ff9174">
@ -26,9 +26,9 @@
<!ENTITY kbd-backspace-patch-md5 "f75cca16a38da6caa7d52151f7136895"> <!ENTITY kbd-backspace-patch-md5 "f75cca16a38da6caa7d52151f7136895">
<!ENTITY kbd-backspace-patch-size "12 KB"> <!ENTITY kbd-backspace-patch-size "12 KB">
<!ENTITY readline-fixes-patch "readline-&readline-version;-upstream_fix-1.patch"> <!ENTITY readline-fixes-patch "readline-&readline-version;-upstream_fixes-2.patch">
<!ENTITY readline-fixes-patch-md5 "dd1764b84cfca6b677f44978218a75da"> <!ENTITY readline-fixes-patch-md5 "d2477ebe908cc99763d90dde7fd9549a">
<!ENTITY readline-fixes-patch-size "1.3 KB"> <!ENTITY readline-fixes-patch-size "5.7 KB">
<!ENTITY sysvinit-consolidated-patch "sysvinit-&sysvinit-version;-consolidated-1.patch"> <!ENTITY sysvinit-consolidated-patch "sysvinit-&sysvinit-version;-consolidated-1.patch">
<!ENTITY sysvinit-consolidated-patch-md5 "17ffccbb8e18c39e8cedc32046f3a475"> <!ENTITY sysvinit-consolidated-patch-md5 "17ffccbb8e18c39e8cedc32046f3a475">

View File

@ -10,9 +10,6 @@
<!-- Upstream XHTML presentation templates --> <!-- Upstream XHTML presentation templates -->
<xsl:import href="http://docbook.sourceforge.net/release/xsl/current/xhtml/docbook.xsl"/> <xsl:import href="http://docbook.sourceforge.net/release/xsl/current/xhtml/docbook.xsl"/>
<!-- Use ISO-8859-1 for output instead of default UTF-8 -->
<xsl:param name="chunker.output.encoding" select="'ISO-8859-1'"/>
<!-- Including our customized elements templates --> <!-- Including our customized elements templates -->
<xsl:include href="common.xsl"/> <xsl:include href="common.xsl"/>
<xsl:include href="xhtml/lfs-admon.xsl"/> <xsl:include href="xhtml/lfs-admon.xsl"/>

View File

@ -241,4 +241,22 @@
</fo:block> </fo:block>
</xsl:template> </xsl:template>
<!-- page.number.format
We want roman numerals only in book's preface, not parts prefaces
(if any). The original template is in {docbook-xsl}/fo/pagesetup.xsl -->
<xsl:template name="page.number.format">
<xsl:param name="element" select="local-name(.)"/>
<xsl:param name="master-reference" select="''"/>
<xsl:choose>
<xsl:when test="$element = 'toc' and self::book">i</xsl:when>
<xsl:when test="$element = 'set'">i</xsl:when>
<xsl:when test="$element = 'book'">i</xsl:when>
<xsl:when test="$element = 'preface' and not(ancestor::part)">i</xsl:when>
<xsl:when test="$element = 'dedication'">i</xsl:when>
<xsl:when test="$element = 'acknowledgements'">i</xsl:when>
<xsl:otherwise>1</xsl:otherwise>
</xsl:choose>
</xsl:template>
</xsl:stylesheet> </xsl:stylesheet>

View File

@ -1,8 +1,6 @@
indent-spaces: 2 indent-spaces: 2
wrap: 78 wrap: 78
tab-size: 8 tab-size: 8
input-encoding: latin1
output-encoding: latin1
write-back: yes write-back: yes
markup: yes markup: yes
indent: yes indent: yes