Merge branch 'trunk' into xry111/clfs-ng

This commit is contained in:
Xi Ruoyao 2023-07-25 11:54:43 +08:00
commit d58da4b990
No known key found for this signature in database
GPG Key ID: ACAAD20E19E710E3
33 changed files with 871 additions and 469 deletions

View File

@ -3,6 +3,9 @@
"http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
<!ENTITY % general-entities SYSTEM "../general.ent">
%general-entities;
<!-- Convenient entity for "Systemd" or "Udev" -->
<!ENTITY systemd-udev "<phrase revision='systemd'>Systemd</phrase>
<phrase revision='sysv'>Udev</phrase>">
]>
<appendix id="appendixc" xreflabel="Appendix C">
@ -466,9 +469,7 @@
<segmentedlist id="coreutils-before">
<segtitle>&before;</segtitle>
<seglistitem>
<seg>Bash, Diffutils, <phrase revision="sysv">Eudev, </phrase>
Findutils, <phrase revision="sysv">and </phrase>Man-DB<phrase
revision="systemd">, and Systemd</phrase></seg>
<seg>Bash, Diffutils, Findutils, Man-DB, and &systemd-udev;</seg>
</seglistitem>
</segmentedlist>
@ -642,45 +643,6 @@
</seglistitem>
</segmentedlist>
<!-- Begin Eudev dependency info -->
<bridgehead renderas="sect2" id="eudev-dep" revision="sysv">Eudev</bridgehead>
<segmentedlist id="eudev-depends" revision="sysv">
<segtitle>&dependencies;</segtitle>
<seglistitem>
<seg>Bash, Binutils, Coreutils, Gawk, GCC, Glibc, Grep, Gperf, Make,
Sed, and Util-linux</seg>
</seglistitem>
</segmentedlist>
<segmentedlist id="eudev-rundeps" revision="sysv">
<segtitle>&runtime;</segtitle>
<seglistitem>
<seg>Glibc, Kmod, Xz, Util-linux, and Zlib.</seg>
</seglistitem>
</segmentedlist>
<segmentedlist id="eudev-testdeps" revision="sysv">
<segtitle>&testsuites;</segtitle>
<seglistitem>
<seg>None</seg>
</seglistitem>
</segmentedlist>
<segmentedlist id="eudev-before" revision="sysv">
<segtitle>&before;</segtitle>
<seglistitem>
<seg>None</seg>
</seglistitem>
</segmentedlist>
<segmentedlist id="eudev-optdeps" revision="sysv">
<segtitle>&external;</segtitle>
<seglistitem>
<seg>None</seg>
</seglistitem>
</segmentedlist>
<!-- Begin Expat dependency info -->
<bridgehead renderas="sect2" id="expat-dep">Expat</bridgehead>
@ -970,8 +932,8 @@
<segtitle>&dependencies;</segtitle>
<seglistitem>
<seg>Bash, Binutils, Coreutils, Diffutils, Findutils, Gawk, GCC,
Gettext, Glibc, GMP, Grep, M4, Make, MPC, MPFR, Patch, Perl, Sed,
Tar, Texinfo, and Zstd</seg>
Gettext, Glibc, GMP, Grep, Libxcrypt, M4, Make, MPC, MPFR, Patch,
Perl, Sed, Tar, Texinfo, and Zstd</seg>
</seglistitem>
</segmentedlist>
@ -1555,7 +1517,7 @@
<segmentedlist id="jinja2-before" revision='systemd'>
<segtitle>&before;</segtitle>
<seglistitem>
<seg>Systemd</seg>
<seg>&systemd-udev;</seg>
</seglistitem>
</segmentedlist>
@ -1633,8 +1595,7 @@
<segmentedlist id="kmod-before">
<segtitle>&before;</segtitle>
<seglistitem>
<seg><phrase revision="sysv">Eudev</phrase>
<phrase revision="systemd">Systemd</phrase></seg>
<seg>&systemd-udev;</seg>
</seglistitem>
</segmentedlist>
@ -1885,6 +1846,45 @@
</seglistitem>
</segmentedlist>
<!-- Begin Libxcrypt dependency info -->
<bridgehead renderas="sect2" id="libxcrypt-dep">Libxcrypt</bridgehead>
<segmentedlist id="libxcrypt-depends">
<segtitle>&dependencies;</segtitle>
<seglistitem>
<seg>Bash, Binutils, Coreutils, Diffutils, Gawk, GCC, Glibc, Grep,
Make, Perl, and Sed</seg>
</seglistitem>
</segmentedlist>
<segmentedlist id="libxcrypt-rundeps">
<segtitle>&runtime;</segtitle>
<seglistitem>
<seg>Glibc</seg>
</seglistitem>
</segmentedlist>
<segmentedlist id="libxcrypt-testdeps">
<segtitle>&testsuites;</segtitle>
<seglistitem>
<seg>None</seg>
</seglistitem>
</segmentedlist>
<segmentedlist id="libxcrypt-before">
<segtitle>&before;</segtitle>
<seglistitem>
<seg>GCC, Perl, Python, Shadow, and &systemd-udev;</seg>
</seglistitem>
</segmentedlist>
<segmentedlist id="libxcrypt-optdeps">
<segtitle>&external;</segtitle>
<seglistitem>
<seg>None</seg>
</seglistitem>
</segmentedlist>
<!-- Begin Linux dependency info -->
<bridgehead renderas="sect2" id="linux-dep">Linux</bridgehead>
@ -2195,10 +2195,7 @@
<segmentedlist id="meson-before">
<segtitle>&before;</segtitle>
<seglistitem>
<seg>
<phrase revision='sysv'>None</phrase>
<phrase revision='systemd'>Systemd</phrase>
</seg>
<seg>&systemd-udev;</seg>
</seglistitem>
</segmentedlist>
@ -2397,7 +2394,7 @@
<segmentedlist id="openssl-before">
<segtitle>&before;</segtitle>
<seglistitem>
<seg>Coreutils, Kmod, and Linux</seg>
<seg>Coreutils, Kmod, Linux, and &systemd-udev;</seg>
</seglistitem>
</segmentedlist>
@ -2455,14 +2452,14 @@
<segtitle>&dependencies;</segtitle>
<seglistitem>
<seg>Bash, Binutils, Coreutils, Gawk, GCC, GDBM, Glibc, Grep, Groff,
Make, Sed, and Zlib</seg>
Libxcrypt, Make, Sed, and Zlib</seg>
</seglistitem>
</segmentedlist>
<segmentedlist id="perl-rundeps">
<segtitle>&runtime;</segtitle>
<seglistitem>
<seg>GDBM and Glibc</seg>
<seg>GDBM, Glibc, and Libxcrypt</seg>
</seglistitem>
</segmentedlist>
@ -2519,7 +2516,7 @@
<seglistitem>
<seg><phrase revision='systemd'>D-Bus, </phrase>E2fsprogs,
IProute2, Kmod, Man-DB, Procps-ng, Python,
<phrase revision='systemd'>Systemd, </phrase>and Util-linux</seg>
&systemd-udev;, and Util-linux</seg>
</seglistitem>
</segmentedlist>
@ -2621,7 +2618,7 @@
<segtitle>&dependencies;</segtitle>
<seglistitem>
<seg>Bash, Binutils, Coreutils, Expat, GCC, Gdbm, Gettext, Glibc,
Grep, Libffi, Make, Ncurses, OpenSSL, Pkgconf, Sed, and
Grep, Libffi, Libxcrypt, Make, Ncurses, OpenSSL, Pkgconf, Sed, and
Util-linux</seg>
</seglistitem>
</segmentedlist>
@ -2629,8 +2626,8 @@
<segmentedlist id="python-rundeps">
<segtitle>&runtime;</segtitle>
<seglistitem>
<seg>Bzip2, Expat, Gdbm, Glibc, Libffi, Ncurses, OpenSSL, and
Zlib</seg>
<seg>Bzip2, Expat, Gdbm, Glibc, Libffi, Libxcrypt, Ncurses,
OpenSSL, and Zlib</seg>
</seglistitem>
</segmentedlist>
@ -2745,14 +2742,14 @@
<segtitle>&dependencies;</segtitle>
<seglistitem>
<seg>Acl, Attr, Bash, Binutils, Coreutils, Diffutils, Findutils, Gawk,
GCC, Gettext, Glibc, Grep, Libcap, Make, and Sed</seg>
GCC, Gettext, Glibc, Grep, Libcap, Libxcrypt, Make, and Sed</seg>
</seglistitem>
</segmentedlist>
<segmentedlist id="shadow-rundeps">
<segtitle>&runtime;</segtitle>
<seglistitem>
<seg>Glibc</seg>
<seg>Glibc and Libxcrypt</seg>
</seglistitem>
</segmentedlist>
@ -2825,16 +2822,17 @@
<segmentedlist id="systemd-depends" revision='systemd'>
<segtitle>&dependencies;</segtitle>
<seglistitem>
<seg>Acl, Attr, Bash, Binutils, Coreutils, Diffutils, Expat, Gawk,
GCC, Glibc, Gperf, Grep, Jinja2, Libcap, Meson, Pkgconf, Sed,
Util-linux, and Zstd</seg>
<seg>Acl, Bash, Binutils, Coreutils, Diffutils, Gawk,
GCC, Glibc, Gperf, Grep, Jinja2, Libcap, Libxcrypt, Meson,
OpenSSL, Pkgconf, Sed, Util-linux, and Zstd</seg>
</seglistitem>
</segmentedlist>
<segmentedlist id="systemd-rundeps" revision='systemd'>
<segtitle>&runtime;</segtitle>
<seglistitem>
<seg>Acl, Attr, Glibc, Libcap, and Util-linux</seg>
<seg>Acl, Glibc, Libcap, Libxcrypt, OpenSSL, Util-linux, Xz,
Zlib, and Zstd</seg>
</seglistitem>
</segmentedlist>
@ -3063,23 +3061,62 @@
</seglistitem>
</segmentedlist>
<!-- Begin Udev dependency info -->
<bridgehead renderas="sect2" id="udev-dep" revision="sysv">Udev</bridgehead>
<segmentedlist id="udev-depends" revision="sysv">
<segtitle>&dependencies;</segtitle>
<seglistitem>
<seg>Acl, Bash, Binutils, Coreutils, Diffutils, Gawk,
GCC, Glibc, Gperf, Grep, Jinja2, Libcap, Libxcrypt, Meson,
OpenSSL, Pkgconf, Sed, Util-linux, and Zstd</seg>
</seglistitem>
</segmentedlist>
<segmentedlist id="udev-rundeps" revision="sysv">
<segtitle>&runtime;</segtitle>
<seglistitem>
<seg>Acl, Glibc, Libcap, OpenSSL, and Util-linux</seg>
</seglistitem>
</segmentedlist>
<segmentedlist id="udev-testdeps" revision="sysv">
<segtitle>&testsuites;</segtitle>
<seglistitem>
<seg>None</seg>
</seglistitem>
</segmentedlist>
<segmentedlist id="udev-before" revision="sysv">
<segtitle>&before;</segtitle>
<seglistitem>
<seg>Util-linux</seg>
</seglistitem>
</segmentedlist>
<segmentedlist id="udev-optdeps" revision="sysv">
<segtitle>&external;</segtitle>
<seglistitem>
<seg>None</seg>
</seglistitem>
</segmentedlist>
<!-- Begin Util-linux dependency info -->
<bridgehead renderas="sect2" id="util-linux-dep">Util-linux</bridgehead>
<segmentedlist id="util-linux-depends">
<segtitle>&dependencies;</segtitle>
<seglistitem>
<seg>Bash, Binutils, Coreutils, Diffutils,
<phrase revision="sysv">Eudev, </phrase>File, Findutils, Gawk,
<seg>Bash, Binutils, Coreutils, Diffutils, File, Findutils, Gawk,
GCC, Gettext, Glibc, Grep, Make, Ncurses, Pkgconf, Sed,
<phrase revision="systemd">Systemd, </phrase>and Zlib</seg>
&systemd-udev;, and Zlib</seg>
</seglistitem>
</segmentedlist>
<segmentedlist id="util-linux-rundeps">
<segtitle>&runtime;</segtitle>
<seglistitem>
<seg>Glibc, Ncurses, Readline, and Zlib</seg>
<seg>Glibc, Ncurses, Readline, &systemd-udev;, and Zlib</seg>
</seglistitem>
</segmentedlist>
@ -3267,9 +3304,7 @@
<segmentedlist id="xz-before">
<segtitle>&before;</segtitle>
<seglistitem>
<seg><phrase revision="sysv">Eudev, </phrase>File, GRUB, Kmod,
Libelf, <phrase revision="sysv">and </phrase>Man-DB<phrase
revision="systemd">, and Systemd</phrase></seg>
<seg>File, GRUB, Kmod, Libelf, Man-DB, and &systemd-udev;</seg>
</seglistitem>
</segmentedlist>
@ -3345,8 +3380,7 @@
<segmentedlist id="zstd-before">
<segtitle>&before;</segtitle>
<seglistitem>
<seg><phrase revision='sysv'>GCC and Libelf</phrase>
<phrase revision='systemd'>GCC, Libelf, and Systemd</phrase></seg>
<seg>GCC, Libelf, and &systemd-udev;</seg>
</seglistitem>
</segmentedlist>

View File

@ -8,12 +8,12 @@
<appendix id="rules" xreflabel="Appendix E" revision="sysv">
<?dbhtml dir="scripts"?>
<?dbhtml filename="eudev-rules.html"?>
<?dbhtml filename="udev-rules.html"?>
<title>Udev configuration rules</title>
<para>The rules in this appendix are listed for convenience. Installation is
normally done via instructions in <xref linkend='ch-system-eudev'/>. </para>
normally done via instructions in <xref linkend='ch-system-udev'/>. </para>
<sect1 id="lfsrules" role="wrap">
<title>55-lfs.rules</title>

View File

@ -1,3 +1,14 @@
2023-07-22 Xi Ruoyao <xry111@xry111.site>
* In mountvirtfs, create symlinks /dev/{fd,std{in,out,err}} and
/dev/core (optional).
2023-07-16 Xi Ruoyao <xry111@xry111.site>
* In udev, set SYSTEMD_LOG_TARGET=kmsg so systemd-udevd will correctly
log messages.
2023-07-15 Xi Ruoyao <xry111@xry111.site>
* Use /bin/udevadm instead of /sbin/udevadm.
2022-09-30 Bruce Dubbs <bdubbs@linuxfromscratch.org>
* Mount /dev/shm as a tmpfs.

View File

@ -7,8 +7,9 @@
# Authors : Gerard Beekmans - gerard@linuxfromscratch.org
# DJ Lucas - dj@linuxfromscratch.org
# Update : Bruce Dubbs - bdubbs@linuxfromscratch.org
# Xi Ruoyao - xry111@xry111.site
#
# Version : LFS 7.0
# Version : LFS 12.0
#
########################################################################
@ -62,6 +63,29 @@ case "${1}" in
log_info_msg2 " ${INFO}/dev/shm"
mount -o nosuid,nodev /dev/shm || failed=1
(exit ${failed})
evaluate_retval
if [ "${failed}" = 1 ]; then
exit 1
fi
log_info_msg "Create symlinks in /dev targeting /proc: ${INFO}/dev/stdin"
ln -sf /proc/self/fd/0 /dev/stdin || failed=1
log_info_msg2 " ${INFO}/dev/stdout"
ln -sf /proc/self/fd/1 /dev/stdout || failed=1
log_info_msg2 " ${INFO}/dev/stderr"
ln -sf /proc/self/fd/2 /dev/stderr || failed=1
log_info_msg2 " ${INFO}/dev/fd"
ln -sf /proc/self/fd /dev/fd || failed=1
if [ -e /proc/kcore ]; then
log_info_msg2 " ${INFO}/dev/core"
ln -sf /proc/kcore /dev/core || failed=1
fi
(exit ${failed})
evaluate_retval
exit $failed

View File

@ -7,8 +7,9 @@
# Authors : Zack Winkles, Alexander E. Patrakov
# DJ Lucas - dj@linuxfromscratch.org
# Update : Bruce Dubbs - bdubbs@linuxfromscratch.org
# Xi Ruoyao - xry111@xry111.site
#
# Version : LFS 7.0
# Version : LFS 12.0
#
########################################################################
@ -45,17 +46,17 @@ case "${1}" in
# Start the udev daemon to continually watch for, and act on,
# uevents
/sbin/udevd --daemon
SYSTEMD_LOG_TARGET=kmsg /sbin/udevd --daemon
# Now traverse /sys in order to "coldplug" devices that have
# already been discovered
/sbin/udevadm trigger --action=add --type=subsystems
/sbin/udevadm trigger --action=add --type=devices
/sbin/udevadm trigger --action=change --type=devices
/bin/udevadm trigger --action=add --type=subsystems
/bin/udevadm trigger --action=add --type=devices
/bin/udevadm trigger --action=change --type=devices
# Now wait for udevd to process the uevents we triggered
if ! is_true "$OMIT_UDEV_SETTLE"; then
/sbin/udevadm settle
/bin/udevadm settle
fi
# If any LVM based partitions are on the system, ensure they

View File

@ -34,8 +34,6 @@ case "${1}" in
start)
log_info_msg "Retrying failed uevents, if any..."
# As of udev-186, the --run option is no longer valid
#rundir=$(/sbin/udevadm info --run)
rundir=/run/udev
# From Debian: "copy the rules generated before / was mounted
# read-write":
@ -52,13 +50,13 @@ case "${1}" in
/bin/sed -e 's/#.*$//' /etc/sysconfig/udev_retry | /bin/grep -v '^$' | \
while read line ; do
for subsystem in $line ; do
/sbin/udevadm trigger --subsystem-match=$subsystem --action=add
/bin/udevadm trigger --subsystem-match=$subsystem --action=add
done
done
# Now wait for udevd to process the uevents we triggered
if ! is_true "$OMIT_UDEV_RETRY_SETTLE"; then
/sbin/udevadm settle
/bin/udevadm settle
fi
evaluate_retval

View File

@ -40,6 +40,95 @@
appropriate for the entry or if needed the entire day's listitem.
-->
<listitem revision='sysv'>
<para>2023-07-22</para>
<itemizedlist>
<listitem revision='sysv'>
<para>[xry111] - Make the mountvirtfs bootscript create essential
symlinks in /dev. Fixes
<ulink url='&lfs-ticket-root;5289'>#5289</ulink>.</para>
</listitem>
</itemizedlist>
</listitem>
<listitem>
<para>2023-07-15</para>
<itemizedlist>
<listitem revision='sysv'>
<para>[xry111] - Replace eudev-3.2.12 with udev from systemd-253.
Fixes <ulink url='&lfs-ticket-root;5285'>#5085</ulink>.</para>
</listitem>
<listitem>
<para>[bdubbs] - Update to iana-etc-20230629. Addresses
<ulink url='&lfs-ticket-root;5006'>#5006</ulink>.</para>
</listitem>
<listitem>
<para>[bdubbs] - Update to linux-6.4.3. Fixes
<ulink url='&lfs-ticket-root;5284'>#5284</ulink>.</para>
</listitem>
<listitem>
<para>[bdubbs] - Update to libxcrypt-4.4.36. Fixes
<ulink url='&lfs-ticket-root;5283'>#5283</ulink>.</para>
</listitem>
<listitem>
<para>[bdubbs] - Update to groff-1.23.0. Fixes
<ulink url='&lfs-ticket-root;5282'>#5282</ulink>.</para>
</listitem>
<listitem>
<para>[bdubbs] - Update to perl-5.38.0. Fixes
<ulink url='&lfs-ticket-root;5281'>#5281</ulink>.</para>
</listitem>
</itemizedlist>
</listitem>
<listitem>
<para>2023-07-02</para>
<itemizedlist>
<listitem>
<para>[xry111] - Add libxcrypt-4.4.35. Fixes
<ulink url='&lfs-ticket-root;5280'>#5280</ulink>.</para>
</listitem>
<listitem>
<para>[xry111] - Update to iproute2-6.4.0. Fixes
<ulink url='&lfs-ticket-root;5277'>#5277</ulink>.</para>
</listitem>
<listitem>
<para>[xry111] - Update to linux-6.4.1. Fixes
<ulink url='&lfs-ticket-root;5276'>#5276</ulink>.</para>
</listitem>
</itemizedlist>
</listitem>
<listitem>
<para>2023-07-01</para>
<itemizedlist>
<listitem>
<para>[bdubbs] - Update to iana-etc-20230615. Addresses
<ulink url='&lfs-ticket-root;5006'>#5006</ulink>.</para>
</listitem>
<listitem>
<para>[bdubbs] - Update to vim-9.0.1671. Addresses
<ulink url='&lfs-ticket-root;4500'>#4500</ulink>.</para>
</listitem>
<listitem>
<para>[bdubbs] - Update to util-linux-2.39.1. Addresses
<ulink url='&lfs-ticket-root;5278'>#5278</ulink>.</para>
</listitem>
<listitem>
<para>[bdubbs] - Update to linux-6.3.10. Addresses
<ulink url='&lfs-ticket-root;5276'>#5276</ulink>.</para>
</listitem>
<listitem>
<para>[rahul] - Update to kbd-2.6.1. Fixes
<ulink url='&lfs-ticket-root;5279'>#5279</ulink>.</para>
</listitem>
<listitem>
<para>[bdubbs] - Update to gettext-0.22. Fixes
<ulink url='&lfs-ticket-root;5275'>#5275</ulink>.</para>
</listitem>
</itemizedlist>
</listitem>
<listitem>
<para>2023-06-17</para>
<itemizedlist>

View File

@ -91,9 +91,9 @@
<!--<listitem>
<para>E2fsprogs-&e2fsprogs-version;</para>
</listitem>-->
<listitem revision="sysv">
<para>Eudev-&eudev-version;</para>
</listitem>
<!--<listitem revision="sysv">
<para>Udev-&systemd-version; (from systemd)</para>
</listitem>-->
<!--<listitem>
<para>Expat-&expat-version;</para>
</listitem>-->
@ -121,9 +121,9 @@
<!--<listitem>
<para>GDBM-&gdbm-version;</para>
</listitem>-->
<!--<listitem>
<listitem>
<para>Gettext-&gettext-version;</para>
</listitem>-->
</listitem>
<!--<listitem>
<para>Glibc-&glibc-version;</para>
</listitem>-->
@ -136,9 +136,9 @@
<listitem>
<para>Grep-&grep-version;</para>
</listitem>
<!--<listitem>
<listitem>
<para>Groff-&groff-version;</para>
</listitem>-->
</listitem>
<!--<listitem>
<para>GRUB-&grub-version;</para>
</listitem>-->
@ -160,9 +160,9 @@
<!--<listitem revision="systemd">
<para>Jinja2-&jinja2-version;</para>
</listitem>-->
<!--<listitem>
<listitem>
<para>Kbd-&kbd-version;</para>
</listitem>-->
</listitem>
<!--<listitem>
<para>Kmod-&kmod-version;</para>
</listitem>-->
@ -304,6 +304,22 @@
<title>Added:</title>
<listitem><para></para></listitem> <!-- satisfy build -->
<listitem revision="sysv">
<para>Udev-&systemd-version; (from systemd)</para>
</listitem>
<listitem revision="sysv">
<para>Jinja2-&jinja2-version;</para>
</listitem>
<listitem revision="sysv">
<para>MarkupSafe-&markupsafe-version;</para>
</listitem>
<listitem>
<para>Libxcrypt-&libxcrypt-version;</para>
</listitem>
<listitem>
<para>Pkgconf-&flit-core-version;</para>
</listitem>
@ -329,11 +345,15 @@
<title>Removed:</title>
<listitem><para></para></listitem> <!-- satisfy build -->
<listitem revision='sysv'>
<para>eudev-3.2.12</para>
</listitem>
<listitem>
<para>Pkg-config-0.29.2</para>
</listitem>
<listitem>
<listitem revision='systemd'>
<para>systemd-252-security_fix-1.patch</para>
</listitem>
</itemizedlist>

View File

@ -174,14 +174,6 @@
</listitem>
</varlistentry>
<varlistentry revision="sysv">
<term>Eudev (&eudev-version;) - <token>&eudev-size;</token>:</term>
<listitem>
<para>Download: <ulink url="&eudev-url;"/></para>
<para>MD5 sum: <literal>&eudev-md5;</literal></para>
</listitem>
</varlistentry>
<varlistentry>
<term>Expat (&expat-version;) - <token>&expat-size;</token>:</term>
<listitem>
@ -387,7 +379,7 @@
</listitem>
</varlistentry>
<varlistentry revision="systemd">
<varlistentry>
<term>Jinja2 (&jinja2-version;) - <token>&jinja2-size;</token>:</term>
<listitem>
<para>Home page: <ulink url="&jinja2-home;"/></para>
@ -468,6 +460,15 @@
</listitem>
</varlistentry>
<varlistentry>
<term>Libxcrypt (&libxcrypt-version;) - <token>&libxcrypt-size;</token>:</term>
<listitem>
<para>Home page: <ulink url="&libxcrypt-home;"/></para>
<para>Download: <ulink url="&libxcrypt-url;"/></para>
<para>MD5 sum: <literal>&libxcrypt-md5;</literal></para>
</listitem>
</varlistentry>
<varlistentry>
<term>Linux (&linux-version;) - <token>&linux-size;</token>:</term>
<listitem>
@ -527,7 +528,7 @@
</listitem>
</varlistentry>
<varlistentry revision="systemd">
<varlistentry>
<term>MarkupSafe (&markupsafe-version;) - <token>&markupsafe-size;</token>:</term>
<listitem>
<para>Home page: <ulink url="&markupsafe-home;"/></para>
@ -688,7 +689,7 @@
</listitem>
</varlistentry>
<varlistentry revision="systemd">
<varlistentry>
<term>Systemd (&systemd-version;) - <token>&systemd-size;</token>:</term>
<listitem>
<para>Home page: <ulink url="&systemd-home;"/></para>
@ -697,7 +698,7 @@
</listitem>
</varlistentry>
<varlistentry revision="systemd">
<varlistentry>
<term>Systemd Man Pages(&systemd-version;) - <token>&systemd-man-size;</token>:</term>
<listitem>
<para>Home page: <ulink url="&systemd-home;"/></para>

View File

@ -93,6 +93,7 @@ cd build</userinput></screen>
--build=$(../scripts/config.guess) \
--enable-kernel=&linux-major-version;.&linux-minor-version; \
--with-headers=$LFS/usr/include \
--disable-crypt \
libc_cv_slibdir=/usr/lib</userinput></screen>
<variablelist>

View File

@ -95,6 +95,7 @@ cd build</userinput></screen>
--disable-libatomic \
--disable-libgomp \
--disable-libquadmath \
--disable-libsanitizer \
--disable-libssp \
--disable-libvtv \
--enable-languages=c,c++</userinput></screen>
@ -142,6 +143,19 @@ cd build</userinput></screen>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>--disable-libsanitizer</parameter></term>
<listitem>
<para>Disable GCC sanitizer runtime libraries. They are not
needed for the temporary installation. This switch is necessary
to build GCC without
<systemitem class='library'>libcrypt</systemitem> installed for
the target. In <xref linkend='ch-tools-gcc-pass1'/> it was
implied by <parameter>--disable-libstdcxx</parameter>, but now we
have to explicitly pass it.</para>
</listitem>
</varlistentry>
</variablelist>
<para>Compile the package:</para>

View File

@ -36,6 +36,7 @@
<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="attr.xml"/>
<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="acl.xml"/>
<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="libcap.xml"/>
<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="libxcrypt.xml"/>
<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="shadow.xml"/>
<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="gcc.xml"/>
<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="pkgconf.xml"/>
@ -90,7 +91,7 @@
<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="dbus.xml"/>
<!-- sysv only -->
<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="eudev.xml"/>
<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="udev.xml"/>
<!-- Both sysv on systemd builds -->
<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="man-db.xml"/>

View File

@ -1,202 +0,0 @@
<?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-eudev" role="wrap" revision="sysv">
<?dbhtml filename="eudev.html"?>
<sect1info condition="script">
<productname>eudev</productname>
<productnumber>&eudev-version;</productnumber>
<address>&eudev-url;</address>
</sect1info>
<title>Eudev-&eudev-version;</title>
<indexterm zone="ch-system-eudev">
<primary sortas="a-Eudev">Eudev</primary>
</indexterm>
<sect2 role="package">
<title/>
<para>The Eudev package contains programs for dynamic creation of device
nodes.</para>
<segmentedlist>
<segtitle>&buildtime;</segtitle>
<segtitle>&diskspace;</segtitle>
<seglistitem>
<seg>&eudev-fin-sbu;</seg>
<seg>&eudev-fin-du;</seg>
</seglistitem>
</segmentedlist>
</sect2>
<sect2 role="installation">
<title>Installation of Eudev</title>
<!-- No longer seems needed. bdubbs 5/18/23
<para>First fix the location of udev rules in the .pc file:</para>
<screen><userinput remap="pre">sed -i '/udevdir/a udev_dir=${udevdir}' src/udev/udev.pc.in</userinput></screen>
-->
<!-- different from systemd: we do not have a render group and file is
named differently -->
<para>Remove an unneeded group
<systemitem class="groupname">sgx</systemitem>, from the default udev
rules:</para>
<screen><userinput remap="pre">sed -i -e 's/GROUP="sgx", //' rules/50-udev-default.rules</userinput></screen>
<para>Prepare Eudev for compilation:</para>
<screen><userinput remap="configure">./configure --prefix=/usr \
--bindir=/usr/sbin \
--sysconfdir=/etc \
--enable-manpages \
--disable-static</userinput></screen>
<para>Compile the package:</para>
<screen><userinput remap="make">make</userinput></screen>
<para>Create some directories now that are needed for tests, but
will also be used as a part of installation:</para>
<screen><userinput remap="test">mkdir -pv /usr/lib/udev/rules.d
mkdir -pv /etc/udev/rules.d</userinput></screen>
<para>To test the results, issue:</para>
<screen><userinput remap="test">make check</userinput></screen>
<para>Install the package:</para>
<screen><userinput remap="install">make install</userinput></screen>
<para>Install some custom rules and support files useful in an LFS
environment:</para>
<screen><userinput remap="install">tar -xvf ../&udev-lfs-version;.tar.xz
make -f &udev-lfs-version;/Makefile.lfs install</userinput></screen>
</sect2>
<sect2 id="conf-eudev" role="configuration">
<title>Configuring Eudev</title>
<indexterm zone="conf-eudev">
<primary sortas="a-Eudev">Eudev</primary>
<secondary>configuring</secondary>
</indexterm>
<indexterm zone="conf-eudev">
<primary sortas="e-/etc/udev/rules.d/65-kvm.rules">/etc/udev/rules.d/65-kvm.rules</primary>
</indexterm>
<para>
The default udev rule installed by Eudev would allow all users to
access <filename class='devicefile'>/dev/kvm</filename>. The editors
consider it dangerous. Create a configuration file to override it:
</para>
<screen><userinput>cat > /etc/udev/rules.d/65-kvm.rules &lt;&lt; "EOF"
<literal>KERNEL=="kvm", GROUP="kvm", MODE="0660", TAG+="uaccess"</literal>
EOF</userinput></screen>
<indexterm zone="conf-eudev">
<primary sortas="e-/etc/udev/hwdb.bin">/etc/udev/hwdb.bin</primary>
</indexterm>
<para>Information about hardware devices is maintained in the
<filename class="directory">/etc/udev/hwdb.d</filename> and
<filename class="directory">/usr/lib/udev/hwdb.d</filename> directories.
<application>Eudev</application> needs that information to be compiled
into a binary database <filename>/etc/udev/hwdb.bin</filename>. Create the
initial database:</para>
<screen><userinput>udevadm hwdb --update</userinput></screen>
<para>This command needs to be run each time the hardware information is
updated.</para>
</sect2>
<sect2 id="contents-eudev" role="content">
<title>Contents of Eudev</title>
<segmentedlist>
<segtitle>Installed programs</segtitle>
<segtitle>Installed libraries</segtitle>
<segtitle>Installed directories</segtitle>
<seglistitem>
<seg><!-- These are in /usr/lib/udev and not to be called by the user:
accelerometer, ata_id, cdrom_id, collect, mtd_probe,
scsi_id, v4l_id,--> udevadm and udevd</seg>
<seg>libudev.so</seg>
<seg>/etc/udev, /usr/lib/udev, and /usr/share/doc/udev-&udev-lfs-version;</seg>
</seglistitem>
</segmentedlist>
<variablelist>
<bridgehead renderas="sect3">Short Descriptions</bridgehead>
<?dbfo list-presentation="list"?>
<?dbhtml list-presentation="table"?>
<varlistentry id="udevadm" revision="sysv">
<term><command>udevadm</command></term>
<listitem>
<para>Generic udev administration tool: controls the udevd daemon,
provides info from the Udev database, monitors uevents, waits for
uevents to finish, tests Udev configuration, and triggers uevents
for a given device</para>
<indexterm zone="ch-system-eudev udevadm">
<primary sortas="b-udevadm">udevadm</primary>
</indexterm>
</listitem>
</varlistentry>
<varlistentry id="udevd">
<term><command>udevd</command></term>
<listitem>
<para>A daemon that listens for uevents on the netlink socket,
creates devices and runs the configured external programs in
response to these uevents</para>
<indexterm zone="ch-system-eudev udevd">
<primary sortas="b-udevd">udevd</primary>
</indexterm>
</listitem>
</varlistentry>
<varlistentry id="libudev">
<term><filename class="libraryfile">libudev</filename></term>
<listitem>
<para>A library interface to udev device information</para>
<indexterm zone="ch-system-eudev libudev">
<primary sortas="c-libudev">libudev</primary>
</indexterm>
</listitem>
</varlistentry>
<varlistentry id="etc-udev">
<term><filename class="directory">/etc/udev</filename></term>
<listitem>
<para>Contains Udev configuration files,
device permissions, and rules for device naming</para>
<indexterm zone="ch-system-eudev etc-udev">
<primary sortas="e-/etc/udev">/etc/udev</primary>
</indexterm>
</listitem>
</varlistentry>
</variablelist>
</sect2>
</sect1>

View File

@ -97,7 +97,7 @@ chmod -v 0755 /usr/lib/preloadable_libintl.so</userinput></screen>
<seg>libasprintf.so, libgettextlib.so, libgettextpo.so,
libgettextsrc.so, libtextstyle.so, and preloadable_libintl.so</seg>
<seg>/usr/lib/gettext, /usr/share/doc/gettext-&gettext-version;,
/usr/share/gettext, and /usr/share/gettext-0.19.8</seg>
/usr/share/gettext, and /usr/share/gettext-&gettext-version;</seg>
</seglistitem>
</segmentedlist>

View File

@ -79,6 +79,7 @@ cd build</userinput></screen>
--enable-kernel=&linux-major-version;.&linux-minor-version; \
--enable-stack-protector=strong \
--with-headers=/usr/include \
--disable-crypt \
libc_cv_slibdir=/usr/lib</userinput></screen>
<variablelist>
@ -490,7 +491,7 @@ mkdir -pv /etc/ld.so.conf.d</userinput></screen>
<seg>ld-linux-x86-64.so.2, ld-linux.so.2,
libBrokenLocale.{a,so}, libanl.{a,so},
libc.{a,so}, libc_nonshared.a, libc_malloc_debug.so,
libcrypt.{a,so}, libdl.{a,so.2}, libg.a, libm.{a,so},
libdl.{a,so.2}, libg.a, libm.{a,so},
libmcheck.a, libmemusage.so, libmvec.{a,so}, libnsl.so.1,
libnss_compat.so, libnss_dns.so, libnss_files.so, libnss_hesiod.so,
libpcprofile.so, libpthread.{a,so.0},
@ -796,16 +797,6 @@ mkdir -pv /etc/ld.so.conf.d</userinput></screen>
</listitem>
</varlistentry>
<varlistentry id="libcrypt">
<term><filename class="libraryfile">libcrypt</filename></term>
<listitem>
<para>The cryptography library</para>
<indexterm zone="ch-system-glibc libcrypt">
<primary sortas="c-libcrypt">libcrypt</primary>
</indexterm>
</listitem>
</varlistentry>
<varlistentry id="libdl">
<term><filename class="libraryfile">libdl</filename></term>
<listitem>

View File

@ -57,7 +57,9 @@
<screen><userinput remap="make">make</userinput></screen>
<para>This package does not come with a test suite.</para>
<para>To test the results, issue:</para>
<screen><userinput remap="test">make check</userinput></screen>
<para>Install the package:</para>

View File

@ -5,7 +5,7 @@
%general-entities;
]>
<sect1 id="ch-system-jinja2" role="wrap" revision="systemd">
<sect1 id="ch-system-jinja2" role="wrap">
<?dbhtml filename="jinja2.html"?>
<sect1info condition="script">

View File

@ -97,8 +97,7 @@ sed -i 's/resizecons.8 //' docs/man/man8/Makefile.in</userinput></screen>
<para>If desired, install the documentation:</para>
<screen><userinput remap="install">mkdir -pv /usr/share/doc/kbd-&kbd-version;
cp -R -v docs/doc/* /usr/share/doc/kbd-&kbd-version;</userinput></screen>
<screen><userinput remap="install">cp -R -v docs/doc -T /usr/share/doc/kbd-&kbd-version;</userinput></screen>
</sect2>

148
chapter08/libxcrypt.xml Normal file
View File

@ -0,0 +1,148 @@
<?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-libxcrypt" role="wrap">
<?dbhtml filename="libxcrypt.html"?>
<sect1info condition="script">
<productname>libxcrypt</productname>
<productnumber>&libxcrypt-version;</productnumber>
<address>&libxcrypt-url;</address>
</sect1info>
<title>Libxcrypt-&libxcrypt-version;</title>
<indexterm zone="ch-system-libxcrypt">
<primary sortas="a-Libxcrypt">Libxcrypt</primary>
</indexterm>
<sect2 role="package">
<title/>
<para>The Libxcrypt package contains a modern library for one-way
hashing of passwords.</para>
<segmentedlist>
<segtitle>&buildtime;</segtitle>
<segtitle>&diskspace;</segtitle>
<seglistitem>
<seg>&libxcrypt-fin-sbu;</seg>
<seg>&libxcrypt-fin-du;</seg>
</seglistitem>
</segmentedlist>
</sect2>
<sect2 role="installation">
<title>Installation of Libxcrypt</title>
<para>Prepare Libxcrypt for compilation:</para>
<screen><userinput remap="configure">./configure --prefix=/usr \
--enable-hashes=strong,glibc \
--enable-obsolete-api=no \
--disable-static \
--disable-failure-tokens</userinput></screen>
<variablelist>
<title>The meaning of the new configure options:</title>
<varlistentry>
<term><parameter>--enable-hashes=strong,glibc</parameter></term>
<listitem>
<para>Build strong hash algorithms recommended for security use
cases, and the hash algorithms provided by traditional Glibc
<systemitem class='library'>libcrypt</systemitem> for
compatibility.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>--enable-obsolete-api=no</parameter></term>
<listitem>
<para>Disable obsolete API functions. They are not needed for
a modern Linux system built from source.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>--disable-failure-tokens</parameter></term>
<listitem>
<para>Disable failure token feature. It's needed for
compatibility with the traditional hash libraries of some
platforms, but a Linux system based on Glibc does not need
it.</para>
</listitem>
</varlistentry>
</variablelist>
<para>Compile the package:</para>
<screen><userinput remap="make">make</userinput></screen>
<para>To test the results, issue:</para>
<screen><userinput remap="test">make check</userinput></screen>
<para>Install the package:</para>
<screen><userinput remap="install">make install</userinput></screen>
<note>
<para>The instructions above disabled obsolete API functions since
no package installed by compiling from sources would link against
them at runtime. However, the only known binary-only applications
that link against these functions require ABI version 1. If you must
have such functions because of some binary-only application or to be
to be compliant with LSB, build the package again with the following
commands:</para>
<screen><userinput remap="nodump">make distclean
./configure --prefix=/usr \
--enable-hashes=strong,glibc \
--enable-obsolete-api=glibc \
--disable-static \
--disable-failure-tokens
make
cp -av .libs/libcrypt.so.1* /usr/lib</userinput></screen>
</note>
</sect2>
<sect2 id="contents-libxcrypt" role="content">
<title>Contents of Libxcrypt</title>
<segmentedlist>
<segtitle>Installed libraries</segtitle>
<seglistitem>
<seg>libcrypt.so</seg>
</seglistitem>
</segmentedlist>
<variablelist>
<bridgehead renderas="sect3">Short Descriptions</bridgehead>
<?dbfo list-presentation="list"?>
<?dbhtml list-presentation="table"?>
<varlistentry id="libcrypt">
<term><filename class="libraryfile">libcrypt</filename></term>
<listitem>
<para>Contains functions to hash passwords</para>
<indexterm zone="ch-system-libxcrypt libcrypt">
<primary sortas="c-libcrypt">libcrypt</primary>
</indexterm>
</listitem>
</varlistentry>
</variablelist>
</sect2>
</sect1>

View File

@ -111,9 +111,13 @@
<screen><userinput remap="make">make</userinput></screen>
<para>To test the results, issue:</para>
<para>To test the results, issue:</para>
<screen><userinput remap="test">make check</userinput></screen>
<screen><userinput remap="test">make -k 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>

View File

@ -40,6 +40,12 @@
<sect2 role="installation">
<title>Installation of Man-pages</title>
<para>Remove two man pages for password hashing functions.
<application>Libxcrypt</application> will provide a better version
of these man pages:</para>
<screen><userinput remap="pre">rm -v man3/crypt*</userinput></screen>
<para>Install Man-pages by running:</para>
<screen><userinput remap="install">make prefix=/usr install</userinput></screen>

View File

@ -5,7 +5,7 @@
%general-entities;
]>
<sect1 id="ch-system-markupsafe" role="wrap" revision="systemd">
<sect1 id="ch-system-markupsafe" role="wrap">
<?dbhtml filename="markupsafe.html"?>
<sect1info condition="script">

View File

@ -35,15 +35,6 @@
</seglistitem>
</segmentedlist>
<tip revision="sysv">
<para>This section is not strictly required when LFS does not use
systemd. On the other hand, Meson, along with Ninja, makes
a powerful build system combination,
which will probably be used more and more often. It is required for
several packages in <ulink url="&blfs-book;">the BLFS
book</ulink>.</para>
</tip>
</sect2>
<sect2 role="installation">

View File

@ -35,15 +35,6 @@
</seglistitem>
</segmentedlist>
<tip revision="sysv">
<para>This section is not strictly required when LFS does not use
systemd. On the other hand, Ninja, along with Meson, makes
a powerful build system combination,
which will probably be used more and more often. It is required for
several packages in <ulink url="&blfs-book;">the BLFS
book</ulink>.</para>
</tip>
</sect2>
<sect2 role="installation">

View File

@ -60,11 +60,10 @@ find man -name Makefile.in -exec sed -i 's/getspnam\.3 / /' {} \;
find man -name Makefile.in -exec sed -i 's/passwd\.5 / /' {} \;</userinput></screen>
<para id="shadow-login_defs">Instead of using the default
<emphasis>crypt</emphasis> method, use the more secure
<emphasis>SHA-512</emphasis> method of password encryption, which also
allows passwords longer than 8 characters. In addition, set the number of
rounds to 500,000 instead of the default 5000, which is much too low to
prevent brute force password attacks. It is also necessary to change
<emphasis>crypt</emphasis> method, use the much more secure
<emphasis>YESCRYPT</emphasis> method of password encryption, which also
allows passwords longer than 8 characters.
It is also necessary to change
the obsolete <filename class="directory">/var/spool/mail</filename> location
for user mailboxes that Shadow uses by default to the <filename
class="directory">/var/mail</filename> location used currently. And,
@ -81,10 +80,9 @@ find man -name Makefile.in -exec sed -i 's/passwd\.5 / /' {} \;</userinput></s
built.</para>
</note>
<screen><userinput remap="pre">sed -e 's:#ENCRYPT_METHOD DES:ENCRYPT_METHOD SHA512:' \
-e 's@#\(SHA_CRYPT_..._ROUNDS 5000\)@\100@' \
-e 's:/var/spool/mail:/var/mail:' \
-e '/PATH=/{s@/sbin:@@;s@/bin:@@}' \
<screen><userinput remap="pre">sed -e 's:#ENCRYPT_METHOD DES:ENCRYPT_METHOD YESCRYPT:' \
-e 's:/var/spool/mail:/var/mail:' \
-e '/PATH=/{s@/sbin:@@;s@/bin:@@}' \
-i etc/login.defs</userinput></screen>
<note>
@ -106,8 +104,9 @@ find man -name Makefile.in -exec sed -i 's/passwd\.5 / /' {} \;</userinput></s
<para>Prepare Shadow for compilation:</para>
<screen><userinput remap="configure">touch /usr/bin/passwd
./configure --sysconfdir=/etc \
--disable-static \
./configure --sysconfdir=/etc \
--disable-static \
--with-{b,yes}crypt \
--with-group-name-max-length=32</userinput></screen>
<variablelist>
@ -122,6 +121,21 @@ find man -name Makefile.in -exec sed -i 's/passwd\.5 / /' {} \;</userinput></s
create it in the wrong place.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>--with-{b,yes}crypt</parameter></term>
<listitem>
<para>The shell expands this to two switches,
<parameter>--with-bcrypt</parameter> and
<parameter>--with-yescrypt</parameter>. They allow shadow to use
the Bcrypt and Yescrypt algorithms implemented by
<application>Libxcrypt</application> for hashing passwords.
These algorithms are more secure (in particular, much more
resistant to GPU-based attacks) than the traditional SHA
algorithms.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>--with-group-name-max-length=32</parameter></term>
<listitem>

269
chapter08/udev.xml Normal file
View File

@ -0,0 +1,269 @@
<?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-udev" role="wrap" revision="sysv">
<?dbhtml filename="udev.html"?>
<sect1info condition="script">
<productname>udev</productname>
<productnumber>&systemd-version;</productnumber>
<address>&systemd-url;</address>
</sect1info>
<title>Udev from Systemd-&systemd-version;</title>
<indexterm zone="ch-system-udev">
<primary sortas="a-Udev">Udev</primary>
</indexterm>
<sect2 role="package">
<title/>
<para>The Udev package contains programs for dynamic creation of device
nodes.</para>
<segmentedlist>
<segtitle>&buildtime;</segtitle>
<segtitle>&diskspace;</segtitle>
<seglistitem>
<seg>&udev-fin-sbu;</seg>
<seg>&udev-fin-du;</seg>
</seglistitem>
</segmentedlist>
</sect2>
<sect2 role="installation">
<title>Installation of Udev</title>
<para>Udev is part of the systemd-&systemd-version; package. Use
the systemd-&systemd-version;.tar.xz file as the source tarball.</para>
<para>Remove two unneeded groups,
<systemitem class="groupname">render</systemitem> and
<systemitem class="groupname">sgx</systemitem>, from the default udev
rules:</para>
<screen><userinput remap="pre">sed -i -e 's/GROUP="render"/GROUP="video"/' \
-e 's/GROUP="sgx", //' rules.d/50-udev-default.rules.in</userinput></screen>
<para>Remove one udev rule requiring a full Systemd installation:</para>
<screen><userinput remap="pre">sed '/systemd-sysctl/s/^/#/' -i rules.d/99-systemd.rules.in</userinput></screen>
<para>Prepare Udev for compilation:</para>
<screen><userinput remap="configure">mkdir -p build
cd build
meson setup \
--prefix=/usr \
--buildtype=release \
-Dmode=release \
-Ddev-kvm-mode=0660 \
-Dlink-udev-shared=false \
..</userinput></screen>
<variablelist>
<title>The meaning of the meson options:</title>
<varlistentry>
<term><parameter>--buildtype=release</parameter></term>
<listitem>
<para>This switch overrides the default buildtype
(<quote>debug</quote>), which produces unoptimized
binaries.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>-Dmode=release</parameter></term>
<listitem>
<para>Disable some features considered experimental by upstream.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>-Ddev-kvm-mode=0660</parameter></term>
<listitem>
<para>The default udev rule would allow all users to access
<filename class='devicefile'>/dev/kvm</filename>. The editors
consider it dangerous. This option overrides it.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>-Dlink-udev-shared=false</parameter></term>
<listitem>
<para>This option prevents udev from linking to the internal
systemd shared library,
<systemitem class='library'>libsystemd-shared</systemitem>.
This library is designed to be shared by many Systemd components
and it's too overkill for a udev-only installation.</para>
</listitem>
</varlistentry>
</variablelist>
<para>Only build the components needed for udev:</para>
<screen><userinput remap="make">ninja udevadm systemd-hwdb \
$(grep -o -E "^build (src/libudev|src/udev|rules.d|hwdb.d)[^:]*" \
build.ninja | awk '{ print $2 }') \
$(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>
<screen><userinput remap="install">install -vm755 -d {/usr/lib,/etc}/udev/{hwdb,rules}.d
install -vm755 -d /usr/{lib,share}/pkgconfig
install -vm755 udevadm /usr/bin/
install -vm755 systemd-hwdb /usr/bin/udev-hwdb
ln -sv ../bin/udevadm /usr/sbin/udevd
cp -av libudev.so{,*[0-9]} /usr/lib/
install -vm644 ../src/libudev/libudev.h /usr/include/
install -vm644 src/libudev/*.pc /usr/lib/pkgconfig/
install -vm644 src/udev/*.pc /usr/share/pkgconfig/
install -vm644 ../src/udev/udev.conf /etc/udev/
install -vm644 rules.d/* ../rules.d/{*.rules,README} /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 | grep -F -v ".") /usr/lib/udev</userinput></screen>
<para>Install some custom rules and support files useful in an LFS
environment:</para>
<screen><userinput remap="install">tar -xvf ../../&udev-lfs-version;.tar.xz
make -f &udev-lfs-version;/Makefile.lfs install</userinput></screen>
<para>Install the man pages:</para>
<!-- Please make sure systemd man pages tarball has a common leading
component in the path. -->
<screen><userinput remap="install">tar -xf ../../systemd-man-pages-253.tar.xz --strip-components=1 \
-C /usr/share/man --wildcards '*/udev*' '*/libudev*' \
'*/systemd-'{hwdb,udevd.service}.8
sed 's/systemd\(\\\?-\)/udev-/' /usr/share/man/man8/systemd-hwdb.8 \
> /usr/share/man/man8/udev-hwdb.8
sed 's|lib.*udevd|sbin/udevd|' \
/usr/share/man/man8/systemd-udevd.service.8 \
> /usr/share/man/man8/udevd.8
rm /usr/share/man/man8/systemd-*.8</userinput></screen>
</sect2>
<sect2 id="conf-udev" role="configuration">
<title>Configuring Udev</title>
<indexterm zone="conf-udev">
<primary sortas="a-Udev">Udev</primary>
<secondary>configuring</secondary>
</indexterm>
<indexterm zone="conf-udev">
<primary sortas="e-/etc/udev/hwdb.bin">/etc/udev/hwdb.bin</primary>
</indexterm>
<para>Information about hardware devices is maintained in the
<filename class="directory">/etc/udev/hwdb.d</filename> and
<filename class="directory">/usr/lib/udev/hwdb.d</filename> directories.
<application>Udev</application> needs that information to be compiled
into a binary database <filename>/etc/udev/hwdb.bin</filename>. Create the
initial database:</para>
<screen><userinput>udev-hwdb update</userinput></screen>
<para>This command needs to be run each time the hardware information is
updated.</para>
</sect2>
<sect2 id="contents-udev" role="content">
<title>Contents of Udev</title>
<segmentedlist>
<segtitle>Installed programs</segtitle>
<segtitle>Installed libraries</segtitle>
<segtitle>Installed directories</segtitle>
<seglistitem>
<seg>udevadm, udevd (symlink to udevadm), and udev-hwdb</seg>
<seg>libudev.so</seg>
<seg>/etc/udev and /usr/lib/udev</seg>
</seglistitem>
</segmentedlist>
<variablelist>
<bridgehead renderas="sect3">Short Descriptions</bridgehead>
<?dbfo list-presentation="list"?>
<?dbhtml list-presentation="table"?>
<varlistentry id="udevadm" revision="sysv">
<term><command>udevadm</command></term>
<listitem>
<para>Generic udev administration tool: controls the udevd daemon,
provides info from the Udev database, monitors uevents, waits for
uevents to finish, tests Udev configuration, and triggers uevents
for a given device</para>
<indexterm zone="ch-system-udev udevadm">
<primary sortas="b-udevadm">udevadm</primary>
</indexterm>
</listitem>
</varlistentry>
<varlistentry id="udevd">
<term><command>udevd</command></term>
<listitem>
<para>A daemon that listens for uevents on the netlink socket,
creates devices and runs the configured external programs in
response to these uevents</para>
<indexterm zone="ch-system-udev udevd">
<primary sortas="b-udevd">udevd</primary>
</indexterm>
</listitem>
</varlistentry>
<varlistentry id="udev-hwdb">
<term><command>udev-hwdb</command></term>
<listitem>
<para>Updates or queries the hardware database.</para>
<indexterm zone="ch-system-udev udev-hwdb">
<primary sortas="b-udev-hwdb">udev-hwdb</primary>
</indexterm>
</listitem>
</varlistentry>
<varlistentry id="libudev">
<term><filename class="libraryfile">libudev</filename></term>
<listitem>
<para>A library interface to udev device information</para>
<indexterm zone="ch-system-udev libudev">
<primary sortas="c-libudev">libudev</primary>
</indexterm>
</listitem>
</varlistentry>
<varlistentry id="etc-udev">
<term><filename class="directory">/etc/udev</filename></term>
<listitem>
<para>Contains Udev configuration files,
device permissions, and rules for device naming</para>
<indexterm zone="ch-system-udev etc-udev">
<primary sortas="e-/etc/udev">/etc/udev</primary>
</indexterm>
</listitem>
</varlistentry>
</variablelist>
</sect2>
</sect1>

View File

@ -37,7 +37,7 @@
<para>The interface names depend on the implementation and
configuration of the udev daemon running on the system. The udev
daemon for LFS (installed in <xref linkend="ch-system-eudev"/>) will
daemon for LFS (installed in <xref linkend="ch-system-udev"/>) will
not run until the LFS system is booted. So the interface names
in the LFS system cannot always be determined by running
those commands on the host distro,

View File

@ -16,7 +16,7 @@
</indexterm>
<para>In <xref linkend="chapter-building-system"/>, we installed the udev
daemon when <phrase revision="sysv">eudev</phrase>
daemon when <phrase revision="sysv">udev</phrase>
<phrase revision="systemd">systemd</phrase> was built. Before we go into the
details regarding how udev works, a brief history of previous methods of
handling devices is in order.</para>

View File

@ -55,7 +55,7 @@
LFS editors recommend that users not familiar with this process follow
the procedures below fairly closely. The objective is to get an
initial system to a point where you can log in at the command line when
you reboot later in <xref linkend="ch-finish-reboot"/>. At his point
you reboot later in <xref linkend="ch-finish-reboot"/>. At this point
optimization and customization is not a goal.
</para>
@ -163,7 +163,6 @@ General setup ---&gt;
&lt; &gt; Enable kernel headers through /sys/kernel/kheaders.tar.xz [CONFIG_IKHEADERS]
[*] Control Group support [CONFIG_CGROUPS] ---&gt;
[*] Memory controller [CONFIG_MEMCG]
[ ] Enable deprecated sysfs features to support old userspace tools [CONFIG_SYSFS_DEPRECATED]
[ ] Configure standard kernel features (expert users) [CONFIG_EXPERT]
General architecture-dependent options ---&gt;
[*] Enable seccomp to safely compute untrusted bytecode [CONFIG_SECCOMP]
@ -307,7 +306,7 @@ Device Drivers ---&gt;
<term><parameter>Support for uevent helper</parameter></term>
<listitem>
<para>Having this option set may interfere with device
management when using Udev/Eudev. </para>
management when using Udev.</para>
</listitem>
</varlistentry>
@ -317,7 +316,7 @@ Device Drivers ---&gt;
<para>This will create automated device nodes which are populated by the
kernel, even without Udev running. Udev then runs on top of this,
managing permissions and adding symlinks. This configuration
item is required for all users of Udev/Eudev.</para>
item is required for all users of Udev.</para>
</listitem>
</varlistentry>
@ -430,8 +429,7 @@ Device Drivers ---&gt;
<para>Install the documentation for the Linux kernel:</para>
<screen><userinput remap="install">install -d /usr/share/doc/linux-&linux-version;
cp -r Documentation/* /usr/share/doc/linux-&linux-version;</userinput></screen>
<screen><userinput remap="install">cp -r Documentation -T /usr/share/doc/linux-&linux-version;</userinput></screen>
<para>It is important to note that the files in the kernel source
directory are not owned by <emphasis>root</emphasis>. Whenever a

View File

@ -83,9 +83,9 @@ for (s, act) in [(upd, "Update to "), (add, "Add ")]:
out = act + pkgver
if pkgver in ticket:
out += ' (#' + ticket[pkgver] + ')'
print(out)
print("-", out)
for i in rem:
print("Remove", i)
print("-", "Remove", i)
print("---------------------")

View File

@ -12,12 +12,10 @@ $exceptions = array();
$regex = array();
//$regex[ 'bzip2' ] = "/^.*current version is ([\d\.]+).*$/";
$regex[ 'check' ] = "/^.*Check (\d[\d\.]+\d).*$/";
$regex[ 'intltool' ] = "/^.*Latest version is (\d[\d\.]+\d).*$/";
$regex[ 'less' ] = "/^.*current released version is less-(\d+).*$/";
$regex[ 'mpfr' ] = "/^mpfr-([\d\.]+)\.tar.*$/";
$regex[ 'Python' ] = "/^.*Latest Python 3.*Python (3[\d\.]+\d).*$/";
$regex[ 'systemd' ] = "/^.*systemd v([\d]+)$/";
//$regex[ 'sysvinit' ] = "/^.*sysvinit-([\d\.]+)dsf\.tar.*$/";
$regex[ 'tzdata' ] = "/^.*tzdata([\d]+[a-z]).*$/";
$regex[ 'xz' ] = "/^.*xz-([\d\.]*\d).*$/";
@ -69,17 +67,7 @@ function find_even_max( $lines, $regex_match, $regex_replace )
function http_get_file( $url )
{
if ( ! preg_match( "/sourceforge/", $url ) &&
! preg_match( "/mpfr/", $url ) &&
! preg_match( "/psmisc/", $url ) )
{
exec( "curl --location --silent --max-time 30 $url", $dir );
$s = implode( "\n", $dir );
$dir = strip_tags( $s );
return explode( "\n", $dir );
}
else if ( preg_match( "/mpfr/", $url ) )
if ( preg_match( "/mpfr/", $url ) )
{
# There seems to be a problem with the mpfs certificate
exec( "curl --location --silent --insecure --max-time 30 $url", $dir );
@ -87,11 +75,19 @@ function http_get_file( $url )
$dir = strip_tags( $s );
return explode( "\n", $dir );
}
else
if ( preg_match( "/sourceforge/", $url ) ||
preg_match( "/psmisc/", $url ) )
{
exec( "lynx -dump $url 2>/dev/null", $lines );
return $lines;
}
exec( "curl --location --silent --max-time 30 $url", $dir );
$s = implode( "\n", $dir );
$dir = strip_tags( $s );
return explode( "\n", $dir );
}
function max_parent( $dirpath, $prefix )
@ -110,6 +106,11 @@ function max_parent( $dirpath, $prefix )
return "$dirpath/$max";
}
function github( $path )
{
return "https://api.github.com/repos/$path/releases/latest";
}
function get_packages( $package, $dirpath )
{
global $exceptions;
@ -117,39 +118,39 @@ function get_packages( $package, $dirpath )
//if ( $package != "psmisc" ) return 0; // debug
if ( $package == "bc" ) $dirpath = "https://github.com/gavinhoward/bc/releases";
if ( $package == "check" ) $dirpath = "https://github.com/libcheck/check/releases";
if ( $package == "bc" ) $dirpath = github("gavinhoward/bc");
if ( $package == "check" ) $dirpath = github("libcheck/check");
if ( $package == "e2fsprogs" ) $dirpath = "https://sourceforge.net/projects/e2fsprogs/files/e2fsprogs";
if ( $package == "expat" ) $dirpath = "https://sourceforge.net/projects/expat/files";
if ( $package == "elfutils" ) $dirpath = "https://sourceware.org/ftp/elfutils";
if ( $package == "expect" ) $dirpath = "https://sourceforge.net/projects/expect/files";
if ( $package == "eudev" ) $dirpath = "https://github.com/eudev-project/eudev/releases";
if ( $package == "file" ) $dirpath = "https://github.com/file/file/tags";
if ( $package == "flex" ) $dirpath = "https://github.com/westes/flex/releases";
if ( $package == "flex" ) $dirpath = github("westes/flex");
if ( $package == "flit_core" ) $dirpath = "https://pypi.org/project/flit-core/";
if ( $package == "gcc" ) $dirpath = max_parent( $dirpath, "gcc-" );
if ( $package == "iana-etc" ) $dirpath = "https://github.com/Mic92/iana-etc/releases";
if ( $package == "iana-etc" ) $dirpath = github("Mic92/iana-etc");
if ( $package == "intltool" ) $dirpath = "https://launchpad.net/intltool/trunk";
if ( $package == "libffi" ) $dirpath = "https://github.com/libffi/libffi/releases";
if ( $package == "meson" ) $dirpath = "https://github.com/mesonbuild/meson/releases";
if ( $package == "libffi" ) $dirpath = github("libffi/libffi");
if ( $package == "libxcrypt" ) $dirpath = github("besser82/libxcrypt");
if ( $package == "meson" ) $dirpath = github("mesonbuild/meson");
if ( $package == "mpc" ) $dirpath = "https://ftp.gnu.org/gnu/mpc";
if ( $package == "mpfr" ) $dirpath = "https://mpfr.loria.fr/mpfr-current";
if ( $package == "ncurses" ) $dirpath = "https://invisible-mirror.net/archives/ncurses";
if ( $package == "ninja" ) $dirpath = "https://github.com/ninja-build/ninja/releases";
if ( $package == "ninja" ) $dirpath = github("ninja-build/ninja");
if ( $package == "procps-ng" ) $dirpath = "https://gitlab.com/procps-ng/procps/-/tags";
if ( $package == "psmisc" ) $dirpath = "https://gitlab.com/psmisc/psmisc/-/tags";
if ( $package == "Python" ) $dirpath = "https://www.python.org/downloads/source/";
if ( $package == "shadow" ) $dirpath = "https://github.com/shadow-maint/shadow/releases";
if ( $package == "sysvinit" ) $dirpath = "https://github.com/slicer69/sysvinit/releases";
if ( $package == "shadow" ) $dirpath = github("shadow-maint/shadow");
if ( $package == "sysvinit" ) $dirpath = github("slicer69/sysvinit");
if ( $package == "MarkupSafe" ) $dirpath = "https://pypi.python.org/pypi/MarkupSafe/";
if ( $package == "Jinja" ) $dirpath = "https://pypi.python.org/pypi/Jinja2/";
if ( $package == "systemd" ) $dirpath = "https://github.com/systemd/systemd/releases";
if ( $package == "systemd" ) $dirpath = github("systemd/systemd");
//if ( $package == "tcl" ) $dirpath = "https://sourceforge.net/projects/tcl/files";
if ( $package == "tcl" ) $dirpath = "https://www.tcl.tk/software/tcltk/download.html";
if ( $package == "util-linux" ) $dirpath = max_parent( $dirpath, "v." );
if ( $package == "vim" ) $dirpath = "https://github.com/vim/vim/tags";
if ( $package == "wheel" ) $dirpath = "https://pypi.org/project/wheel/#files";
if ( $package == "zstd" ) $dirpath = "https://github.com/facebook/zstd/releases";
if ( $package == "zstd" ) $dirpath = github("facebook/zstd");
// Check for ftp
if ( preg_match( "/^ftp/", $dirpath ) )
@ -259,27 +260,12 @@ if ( $package == "zstd" ) $dirpath = "https://github.com/facebook/zstd/rel
if ( $package == "e2fsprogs" )
return find_max( $lines, "/v\d/", "/^.*v(\d[\d\.]+\d).*$/" );
if ( $package == "eudev" )
return find_max( $lines, "/Release/", "/^.*Release (\d[\d\.]+\d).*$/" );
if ( $package == "expect" )
return find_max( $lines, "/expect/", "/^.*expect(\d[\d\.]+\d).tar.*$/" );
if ( $package == "elfutils" )
return find_max( $lines, "/^\d/", "/^(\d[\d\.]+\d)\/.*$/" );
if ( $package == "iana-etc" )
return find_max( $lines, "/^\s*20\d\d/", "/^\s+(\d+).*$/" );
if ( $package == "meson" )
return find_max( $lines, "/^\s+\d\./", "/^\s+([\d\.]+)$/" );
if ( $package == "shadow" )
return find_max( $lines, "/^\s+\d\./", "/^\s+([\d\.]+)$/" );
if ( $package == "sysvinit" )
return find_max( $lines, "/^\s+\d\./", "/^\s+([\d\.]+)$/" );
if ( $package == "XML-Parser" )
{
$max = find_max( $lines, "/$package/", "/^.*$package-([\d\._]*\d).tar.*$/" );
@ -291,9 +277,6 @@ if ( $package == "zstd" ) $dirpath = "https://github.com/facebook/zstd/rel
if ( $package == "tcl" )
return find_max( $lines, "/tcl\d/", "/^.*tcl(\d\.[\d\.]*\d)-src.*$/" );
if ( $package == "ninja" )
return find_max( $lines, "/^ *v\d/", "/^.*v(\d[\d\.]*\d).*$/" );
if ( $package == "gmp" )
return find_max( $lines, "/$package/", "/^.*$package-([\d\._]*\d[a-z]?).tar.*$/" );
@ -306,9 +289,6 @@ if ( $package == "zstd" ) $dirpath = "https://github.com/facebook/zstd/rel
return str_replace( "_", ".", $max );
}
if ( $package == "libffi" )
return find_max( $lines, "/v\d/", "/^.*v([\d\.]+)$/" );
if ( $package == "flit_core" )
return find_max( $lines, "/flit-core /", "/^.*flit-core ([\d\.]+)$/" );
@ -330,8 +310,8 @@ if ( $package == "zstd" ) $dirpath = "https://github.com/facebook/zstd/rel
if ( $package == "vim" )
return find_max( $lines, "/v\d\./", "/^.*v([\d\.]+).*$/" );
if ( $package == "zstd" )
return find_max( $lines, "/Zstandard v/", "/^.*v([\d\.]+).*$/" );
if ( preg_match( "/api.github.com/", $dirpath) )
return ltrim(json_decode(join("", $lines))->tag_name, "v");
// Most packages are in the form $package-n.n.n
// Occasionally there are dashes (e.g. 201-1)
@ -346,13 +326,15 @@ function get_current()
// Fetech from git and get wget-list
$current = array();
#$lfssvn = "svn://svn.linuxfromscratch.org/LFS/trunk";
$lfsgit = "git://git.linuxfromscratch.org/lfs.git";
$lfsgit = "https://git.linuxfromscratch.org/lfs.git";
$tmpdir = exec( "mktemp -d /tmp/lfscheck.XXXXXX" );
$cdir = getcwd();
chdir( $tmpdir );
#exec ( "svn --quiet export $lfssvn LFS" );
exec ( "git clone $lfsgit LFS" );
# git-version.sh needs the history since the rx.y tag.
exec ( "git clone $lfsgit LFS --depth 1 --branch r11.2" );
exec ( "git -C LFS pull origin trunk" );
# Make version.ent
chdir( "$tmpdir/LFS" );

View File

@ -156,13 +156,6 @@
<!ENTITY elfutils-fin-du "120 MB">
<!ENTITY elfutils-fin-sbu "0.3 SBU">
<!ENTITY eudev-version "3.2.12">
<!ENTITY eudev-size "2,145 KB">
<!ENTITY eudev-url "https://github.com/eudev-project/eudev/releases/download/v&eudev-version;/eudev-&eudev-version;.tar.gz">
<!ENTITY eudev-md5 "6f1559ca7c27013ff68816e2732498a3">
<!ENTITY eudev-fin-du "83 MB">
<!ENTITY eudev-fin-sbu "0.1 SBU">
<!ENTITY expat-version "2.5.0">
<!ENTITY expat-size "450 KB">
<!ENTITY expat-url "&sourceforge;expat/expat-&expat-version;.tar.xz">
@ -253,10 +246,10 @@
<!ENTITY gdbm-fin-du "13 MB">
<!ENTITY gdbm-fin-sbu "less than 0.1 SBU">
<!ENTITY gettext-version "0.21.1">
<!ENTITY gettext-size "9,819 KB">
<!ENTITY gettext-version "0.22">
<!ENTITY gettext-size "9,775 KB">
<!ENTITY gettext-url "&gnu;gettext/gettext-&gettext-version;.tar.xz">
<!ENTITY gettext-md5 "27fcc8a42dbc8f334f23a08f1f2fe00a">
<!ENTITY gettext-md5 "db2f3daf34fd5b85ab1a56f9033e42d1">
<!ENTITY gettext-home "&gnu-software;gettext/">
<!ENTITY gettext-tmp-du "287 MB">
<!ENTITY gettext-tmp-sbu "1.0 SBU">
@ -299,10 +292,10 @@
<!ENTITY grep-fin-du "37 MB">
<!ENTITY grep-fin-sbu "0.4 SBU">
<!ENTITY groff-version "1.22.4">
<!ENTITY groff-size "4,044 KB">
<!ENTITY groff-version "1.23.0">
<!ENTITY groff-size "7,259 KB">
<!ENTITY groff-url "&gnu;groff/groff-&groff-version;.tar.gz">
<!ENTITY groff-md5 "08fb04335e2f5e73f23ea4c3adbf0c5f">
<!ENTITY groff-md5 "5e4f40315a22bb8a158748e7d5094c7d">
<!ENTITY groff-home "&gnu-software;groff/">
<!ENTITY groff-fin-du "89 MB">
<!ENTITY groff-fin-sbu "0.2 SBU">
@ -327,10 +320,10 @@
<!ENTITY gzip-fin-du "21 MB">
<!ENTITY gzip-fin-sbu "0.3 SBU">
<!ENTITY iana-etc-version "20230524">
<!ENTITY iana-etc-size "587 KB">
<!ENTITY iana-etc-version "20230629">
<!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-md5 "16d24a6c990cc98fea65eec05738a5a5">
<!ENTITY iana-etc-md5 "8c2e8385391306edbf4ca26ed4930a71">
<!ENTITY iana-etc-home "https://www.iana.org/protocols">
<!ENTITY iana-etc-fin-du "4.8 MB">
<!ENTITY iana-etc-fin-sbu "less than 0.1 SBU">
@ -352,10 +345,10 @@
<!ENTITY intltool-fin-du "1.5 MB">
<!ENTITY intltool-fin-sbu "less than 0.1 SBU">
<!ENTITY iproute2-version "6.3.0">
<!ENTITY iproute2-size "894 KB">
<!ENTITY iproute2-version "6.4.0">
<!ENTITY iproute2-size "904 KB">
<!ENTITY iproute2-url "&kernel;linux/utils/net/iproute2/iproute2-&iproute2-version;.tar.xz">
<!ENTITY iproute2-md5 "53ecd48564c75d5fa4b5325d47344d68">
<!ENTITY iproute2-md5 "90ce0eb84a8f1e2b14ffa77e8eb3f5ed">
<!ENTITY iproute2-home "&kernel;linux/utils/net/iproute2/">
<!ENTITY iproute2-fin-du "17 MB">
<!ENTITY iproute2-fin-sbu "0.1 SBU">
@ -370,10 +363,10 @@
<!ENTITY jinja2-fin-du "3.4 MB">
<!ENTITY jinja2-fin-sbu "less than 0.1 SBU">
<!ENTITY kbd-version "2.6.0">
<!ENTITY kbd-size "1,560 KB">
<!ENTITY kbd-version "2.6.1">
<!ENTITY kbd-size "1,554 KB">
<!ENTITY kbd-url "https://www.kernel.org/pub/linux/utils/kbd/kbd-&kbd-version;.tar.xz">
<!ENTITY kbd-md5 "a8331144fc8e9421108c10311f28e078">
<!ENTITY kbd-md5 "986241b5d94c6bd4ed2f6d2a5ab4320b">
<!ENTITY kbd-home "https://kbd-project.org/">
<!ENTITY kbd-fin-du "35 MB">
<!ENTITY kbd-fin-sbu "0.1 SBU">
@ -394,7 +387,7 @@
<!ENTITY less-fin-du "4.3 MB">
<!ENTITY less-fin-sbu "less than 0.1 SBU">
<!ENTITY lfs-bootscripts-version "20230101"> <!-- Scripts depend on this format -->
<!ENTITY lfs-bootscripts-version "20230722"> <!-- Scripts depend on this format -->
<!ENTITY lfs-bootscripts-size "BOOTSCRIPTS-SIZE KB">
<!ENTITY lfs-bootscripts-url "&downloads-root;lfs-bootscripts-&lfs-bootscripts-version;.tar.xz">
<!ENTITY lfs-bootscripts-md5 "BOOTSCRIPTS-MD5SUM">
@ -434,14 +427,22 @@
<!ENTITY libtool-fin-du "44 MB">
<!ENTITY libtool-fin-sbu "1.4 SBU">
<!ENTITY libxcrypt-version "4.4.36">
<!ENTITY libxcrypt-size "610 KB">
<!ENTITY libxcrypt-url "&github;/besser82/libxcrypt/releases/download/v&libxcrypt-version;/libxcrypt-&libxcrypt-version;.tar.xz">
<!ENTITY libxcrypt-md5 "b84cd4104e08c975063ec6c4d0372446">
<!ENTITY libxcrypt-home "&github;/besser82/libxcrypt/">
<!ENTITY libxcrypt-fin-du "16 MB">
<!ENTITY libxcrypt-fin-sbu "0.1 SBU">
<!ENTITY linux-major-version "6">
<!ENTITY linux-minor-version "3">
<!ENTITY linux-patch-version "8">
<!ENTITY linux-minor-version "4">
<!ENTITY linux-patch-version "3">
<!--<!ENTITY linux-version "&linux-major-version;.&linux-minor-version;">-->
<!ENTITY linux-version "&linux-major-version;.&linux-minor-version;.&linux-patch-version;">
<!ENTITY linux-size "133,708 KB">
<!ENTITY linux-size "134,557 KB">
<!ENTITY linux-url "&kernel;linux/kernel/v&linux-major-version;.x/linux-&linux-version;.tar.xz">
<!ENTITY linux-md5 "237a5269575160fed17c7f55d93cc46c">
<!ENTITY linux-md5 "c83363136e61977c63d655733424d37a">
<!ENTITY linux-home "https://www.kernel.org/">
<!-- measured for 5.13.4 / gcc-11.1.0 on x86_64 : minimum is
allnoconfig rounded down to allow for ongoing cleanups,
@ -559,13 +560,13 @@
<!ENTITY patch-fin-sbu "0.1 SBU">
<!ENTITY perl-version-major "5">
<!ENTITY perl-version-minor "36">
<!ENTITY perl-version-patch "1">
<!ENTITY perl-version-minor "38">
<!ENTITY perl-version-patch "0">
<!ENTITY perl-version-min "&perl-version-major;.&perl-version-minor;">
<!ENTITY perl-version "&perl-version-major;.&perl-version-minor;.&perl-version-patch;">
<!ENTITY perl-size "12,748 KB">
<!ENTITY perl-size "13,248 KB">
<!ENTITY perl-url "https://www.cpan.org/src/5.0/perl-&perl-version;.tar.xz">
<!ENTITY perl-md5 "825f6b1d7e03b22522e0bdb992fbb728">
<!ENTITY perl-md5 "e1c8aaec897dd386c741f97eef9f2e87">
<!ENTITY perl-home "https://www.perl.org/">
<!ENTITY perl-tmp-du "281 MB">
<!ENTITY perl-tmp-sbu "0.6 SBU">
@ -574,7 +575,7 @@
<!ENTITY pkgconf-version "1.9.5">
<!ENTITY pkgconf-size "304 KB">
<!ENTITY pkgconf-url "https://distfiles.dereferenced.org/pkgconf/pkgconf-&pkgconf-version;.tar.xz">
<!ENTITY pkgconf-url "https://distfiles.ariadne.space/pkgconf/pkgconf-&pkgconf-version;.tar.xz">
<!ENTITY pkgconf-md5 "0a8b69723bef4ebad83e9c8b43a75cc7">
<!ENTITY pkgconf-home "http://pkgconf.org/">
<!ENTITY pkgconf-fin-du "8.1 MB">
@ -711,6 +712,9 @@
<!ENTITY tzdata-md5 "5aa672bf129b44dd915f8232de38e49a">
<!ENTITY tzdata-home "https://www.iana.org/time-zones">
<!ENTITY udev-fin-du "130 MB">
<!ENTITY udev-fin-sbu "0.2 SBU">
<!ENTITY udev-lfs-version "udev-lfs-20171102">
<!ENTITY udev-lfs-size "11 KB">
<!ENTITY udev-lfs-url "&anduin-sources;/&udev-lfs-version;.tar.xz">
@ -718,10 +722,10 @@
<!ENTITY udev-lfs-home " ">
<!ENTITY util-linux-minor "2.39">
<!ENTITY util-linux-version "2.39"> <!-- 2.33.x -->
<!ENTITY util-linux-size "7,914 KB">
<!ENTITY util-linux-version "2.39.1"> <!-- 2.33.x -->
<!ENTITY util-linux-size "8,156 KB">
<!ENTITY util-linux-url "&kernel;linux/utils/util-linux/v&util-linux-minor;/util-linux-&util-linux-version;.tar.xz">
<!ENTITY util-linux-md5 "16579e594a8ef2e6236b38b9ab36cccf">
<!ENTITY util-linux-md5 "c542cd7c0726254e4b3006a9b428201a">
<!ENTITY util-linux-home "https://git.kernel.org/pub/scm/utils/util-linux/util-linux.git/">
<!ENTITY util-linux-tmp-du "150 MB">
<!ENTITY util-linux-tmp-sbu "0.2 SBU">
@ -731,13 +735,13 @@
<!ENTITY mount-setsid-du "85 MB">
<!ENTITY mount-setsid-sbu "less than 0.1 SBU">
<!ENTITY vim-version "9.0.1503">
<!ENTITY vim-version "9.0.1671">
<!-- <!ENTITY vim-majmin "90"> -->
<!ENTITY vim-docdir "vim/vim90">
<!ENTITY vim-size "16,612 KB">
<!ENTITY vim-size "16,669 KB">
<!--<!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-md5 "2214efcad25b1f31c89c33f932fa8dc1">
<!ENTITY vim-md5 "243fce49db0dd93af7c2b12163f47fcf">
<!ENTITY vim-home "https://www.vim.org">
<!ENTITY vim-fin-du "235 MB">
<!ENTITY vim-fin-sbu "2.4 SBU">

View File

@ -137,15 +137,6 @@
tested file systems that Linux supports.</para>
</listitem>
<listitem revision="sysv">
<para>Eudev</para>
<para>This package is a device manager. It dynamically controls the ownership,
permissions, names, and symbolic links of device nodes in the /dev directory when
devices are added to or removed from the system.
</para>
</listitem>
<listitem>
<para>Expat</para>
@ -233,7 +224,7 @@
<para>This package produces a program that generates a perfect hash
function from a set of keys. It is required by
<phrase revision='sysv'>Eudev</phrase>
<phrase revision='sysv'>Udev</phrase>
<phrase revision='systemd'>Systemd</phrase>.</para>
</listitem>
@ -373,6 +364,17 @@
suites in other LFS packages.</para>
</listitem>
<listitem>
<para>Libxcrypt</para>
<para>This package provides the
<systemitem class='library'>libcrypt</systemitem> library
needed by various packages (notably, Shadow) for hashing passwords.
It replaces the obsolete
<systemitem class='library'>libcrypt</systemitem> implmentation in
Glibc.</para>
</listitem>
<listitem>
<para>Linux Kernel</para>
@ -568,6 +570,15 @@
system. </para>
</listitem>
<listitem revision="sysv">
<para>Udev</para>
<para>This package is a device manager. It dynamically controls the
ownership, permissions, names, and symbolic links of device nodes in
the /dev directory when devices are added to or removed from the
system.</para>
</listitem>
<listitem>
<para>Tar</para>