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

This commit is contained in:
Xi Ruoyao 2023-08-08 11:16:54 +08:00
commit 2882861ba6
No known key found for this signature in database
GPG Key ID: ACAAD20E19E710E3
51 changed files with 848 additions and 249 deletions

View File

@ -1,3 +1,6 @@
2023-07-28 Xi Ruoyao <xry111@xry111.site>
* In mountvirtfs, mount /sys/fs/cgroup for udev from systemd-254.
2023-07-22 Xi Ruoyao <xry111@xry111.site> 2023-07-22 Xi Ruoyao <xry111@xry111.site>
* In mountvirtfs, create symlinks /dev/{fd,std{in,out,err}} and * In mountvirtfs, create symlinks /dev/{fd,std{in,out,err}} and
/dev/core (optional). /dev/core (optional).

View File

@ -63,6 +63,10 @@ case "${1}" in
log_info_msg2 " ${INFO}/dev/shm" log_info_msg2 " ${INFO}/dev/shm"
mount -o nosuid,nodev /dev/shm || failed=1 mount -o nosuid,nodev /dev/shm || failed=1
mkdir -p /sys/fs/cgroup
log_info_msg2 " ${INFO}/sys/fs/cgroup"
mount -o nosuid,noexec,nodev /sys/fs/cgroup || failed=1
(exit ${failed}) (exit ${failed})
evaluate_retval evaluate_retval
if [ "${failed}" = 1 ]; then if [ "${failed}" = 1 ]; then

View File

@ -10,6 +10,28 @@
<title>Help</title> <title>Help</title>
<note>
<para>
In case you've hit an issue building one package with the LFS
instruction, we strongly discourage posting the issue directly onto
the upstream support channel before discussing via a LFS support
channel listed in <xref linkend="ch-intro-resources"/>.
Doing so is often quite inefficient because the upstream
maintainers are rarely familiar with LFS building procedure. Even if
you've really hit an upstream issue, the LFS community can still help
to isolate the information wanted by the upstream maintainers and make
a proper report.
</para>
<para>
If you must ask a question directly via an upstream support channel,
you shall at least note that many upstream projects have the support
channels separated from the bug tracker. The <quote>bug</quote>
reports for asking questions are considered invalid and may annoy
upstream developers for these projects.
</para>
</note>
<para>If an issue or a question is encountered while working through <para>If an issue or a question is encountered while working through
this book, please check the FAQ page at <ulink url="&faq-root;#generalfaq"/>. this book, please check the FAQ page at <ulink url="&faq-root;#generalfaq"/>.
Questions are often already answered there. If your question is not Questions are often already answered there. If your question is not

View File

@ -39,6 +39,118 @@
<listitem revision="sysv"> or <listitem revision="systemd"> as <listitem revision="sysv"> or <listitem revision="systemd"> as
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-08-07</para>
<itemizedlist>
<listitem>
<para>[bdubbs] - Update to xz-5.4.4. Fixes
<ulink url='&lfs-ticket-root;5307'>#5307</ulink>.</para>
</listitem>
<listitem>
<para>[bdubbs] - Update to wheel-0.41.1 (Python Module). Fixes
<ulink url='&lfs-ticket-root;5311'>#5311</ulink>.</para>
</listitem>
<listitem>
<para>[bdubbs] - Update to man-pages-6.05.01. Fixes
<ulink url='&lfs-ticket-root;5306'>#5306</ulink>.</para>
</listitem>
<listitem>
<para>[bdubbs] - Update to linux-6.4.8. Fixes
<ulink url='&lfs-ticket-root;5309'>#5309</ulink>.</para>
</listitem>
<listitem>
<para>[bdubbs] - Update to iana-etc-20230804. Addresses
<ulink url='&lfs-ticket-root;5006'>#5006</ulink>.</para>
</listitem>
<listitem>
<para>[rahul] - Update to pkgconf-2.0.0. Fixes
<ulink url='&lfs-ticket-root;5310'>#5310</ulink>.</para>
</listitem>
</itemizedlist>
</listitem>
<listitem>
<para>2023-08-01</para>
<itemizedlist>
<listitem>
<para>[bdubbs] - Update to vim-9.0.1677. Addresses
<ulink url='&lfs-ticket-root;4500'>#4500</ulink>.</para>
</listitem>
<listitem>
<para>[bdubbs] - Update to openssl-3.1.2. Fixes
<ulink url='&lfs-ticket-root;5305'>#5305</ulink>.</para>
</listitem>
<listitem>
<para>[bdubbs] - Update to man-pages-6.05. Fixes
<ulink url='&lfs-ticket-root;5303'>#5303</ulink>.</para>
</listitem>
<listitem>
<para>[bdubbs] - Update to binutils-2.41. Fixes
<ulink url='&lfs-ticket-root;5300'>#5300</ulink>.</para>
</listitem>
<listitem>
<para>[bdubbs] - Update to gmp-6.3.0. Fixes
<ulink url='&lfs-ticket-root;5301'>#5301</ulink>.</para>
</listitem>
<listitem>
<para>[bdubbs] - Update to glibc-2.38. Fixes
<ulink url='&lfs-ticket-root;5302'>#5302</ulink>.</para>
</listitem>
</itemizedlist>
</listitem>
<listitem>
<para>2023-07-28</para>
<itemizedlist>
<listitem>
<para>[bdubbs] - Update udev-lfs tarball to remove obsolete
cdrom rules and references to ISDN devices. Fixes
<ulink url='&lfs-ticket-root;5291'>#5291</ulink>.</para>
</listitem>
<listitem>
<para>[bdubbs] - Update to wheel-0.41.0 (Python Module). Fixes
<ulink url='&lfs-ticket-root;5290'>#5290</ulink>.</para>
</listitem>
<listitem>
<para>[bdubbs] - Update to tar-1.35. Fixes
<ulink url='&lfs-ticket-root;5287'>#5287</ulink>.</para>
</listitem>
<listitem>
<para>[bdubbs] - Update to<phrase revision='sysv'> udev
from</phrase> systemd-254. Fixes
<ulink url='&lfs-ticket-root;5293'>#5293</ulink>.</para>
</listitem>
<listitem>
<para>[bdubbs] - Update to meson-1.2.0. Fixes
<ulink url='&lfs-ticket-root;5286'>#5286</ulink>.</para>
</listitem>
<listitem>
<para>[bdubbs] - Update to linux-6.4.7. Fixes
<ulink url='&lfs-ticket-root;5288'>#5288</ulink>.</para>
</listitem>
<listitem>
<para>[bdubbs] - Update to gcc-13.2.0. Fixes
<ulink url='&lfs-ticket-root;5292'>#5292</ulink>.</para>
</listitem>
<listitem>
<para>[bdubbs] - Update to file-5.45. Fixes
<ulink url='&lfs-ticket-root;5294'>#5294</ulink>.</para>
</listitem>
</itemizedlist>
</listitem>
<listitem revision='sysv'>
<para>2023-07-28</para>
<itemizedlist>
<listitem revision='sysv'>
<para>[xry111] - Enable cgroup-based memory pressure information
in kernel, and add the cgroup file system into /etc/fstab and the
mountvirtfs bootscript. This is a preparation for udev from
systemd-254. Addresses
<ulink url='&lfs-ticket-root;5293'>#5293</ulink>.</para>
</listitem>
</itemizedlist>
</listitem>
<listitem revision='sysv'> <listitem revision='sysv'>
<para>2023-07-22</para> <para>2023-07-22</para>
@ -159,7 +271,7 @@
<ulink url='&lfs-ticket-root;5273'>#5273</ulink>.</para> <ulink url='&lfs-ticket-root;5273'>#5273</ulink>.</para>
</listitem> </listitem>
<listitem> <listitem>
<para>[rahul] - Changed from pkg-config to pkgconf 1.9.5. Fixes <para>[rahul] - Changed from pkg-config to pkgconf-1.9.5. Fixes
<ulink url='&lfs-ticket-root;5274'>#5274</ulink>.</para> <ulink url='&lfs-ticket-root;5274'>#5274</ulink>.</para>
</listitem> </listitem>
</itemizedlist> </itemizedlist>

View File

@ -64,9 +64,9 @@
<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>
<!--<listitem> <!--<listitem>
<para>Bison-&bison-version;</para> <para>Bison-&bison-version;</para>
</listitem>--> </listitem>-->
@ -100,9 +100,9 @@
<!--<listitem> <!--<listitem>
<para>Expect-&expect-version;</para> <para>Expect-&expect-version;</para>
</listitem>--> </listitem>-->
<!--<listitem> <listitem>
<para>File-&file-version;</para> <para>File-&file-version;</para>
</listitem>--> </listitem>
<!--<listitem> <!--<listitem>
<para>Findutils-&findutils-version;</para> <para>Findutils-&findutils-version;</para>
</listitem>--> </listitem>-->
@ -124,12 +124,12 @@
<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>
<!--<listitem> <listitem>
<para>GMP-&gmp-version;</para> <para>GMP-&gmp-version;</para>
</listitem>--> </listitem>
<!--<listitem> <!--<listitem>
<para>Gperf-&gperf-version;</para> <para>Gperf-&gperf-version;</para>
</listitem>--> </listitem>-->
@ -226,6 +226,9 @@
<!--<listitem> <!--<listitem>
<para>Patch-&patch-version;</para> <para>Patch-&patch-version;</para>
</listitem>--> </listitem>-->
<!--<listitem>
<para>Pkgconf-&pkgconf-version;</para>
</listitem>-->
<listitem> <listitem>
<para>Perl-&perl-version;</para> <para>Perl-&perl-version;</para>
</listitem> </listitem>
@ -250,15 +253,15 @@
<listitem revision="sysv"> <listitem revision="sysv">
<para>Sysklogd-&sysklogd-version;</para> <para>Sysklogd-&sysklogd-version;</para>
</listitem> </listitem>
<listitem revision="systemd"> <listitem>
<para>Systemd-&systemd-version;</para> <para>Systemd-&systemd-version;</para>
</listitem> </listitem>
<!--<listitem revision="sysv"> <!--<listitem revision="sysv">
<para>SysVinit-&sysvinit-version;</para> <para>SysVinit-&sysvinit-version;</para>
</listitem>--> </listitem>-->
<!--<listitem> <listitem>
<para>Tar-&tar-version;</para> <para>Tar-&tar-version;</para>
</listitem>--> </listitem>
<!--<listitem> <!--<listitem>
<para>Tcl-&tcl-version;</para> <para>Tcl-&tcl-version;</para>
</listitem>--> </listitem>-->
@ -274,15 +277,15 @@
<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>-->
<!--<listitem> <listitem>
<para>XZ-Utils-&xz-version;</para> <para>XZ-Utils-&xz-version;</para>
</listitem>--> </listitem>
<!--<listitem> <!--<listitem>
<para>Zlib-&zlib-version;</para> <para>Zlib-&zlib-version;</para>
</listitem>--> </listitem>-->
@ -321,7 +324,7 @@
</listitem> </listitem>
<listitem> <listitem>
<para>Pkgconf-&flit-core-version;</para> <para>Pkgconf-&pkgconf-version;</para>
</listitem> </listitem>
<listitem> <listitem>
@ -349,7 +352,7 @@
<title>Removed:</title> <title>Removed:</title>
<listitem><para></para></listitem> <!-- satisfy build --> <listitem><para></para></listitem> <!-- satisfy build -->
<listitem> <listitem revision='sysv'>
<para>eudev-3.2.12</para> <para>eudev-3.2.12</para>
</listitem> </listitem>
@ -361,7 +364,7 @@
<para>Pkg-config-0.29.2</para> <para>Pkg-config-0.29.2</para>
</listitem> </listitem>
<listitem> <listitem revision='systemd'>
<para>systemd-252-security_fix-1.patch</para> <para>systemd-252-security_fix-1.patch</para>
</listitem> </listitem>
</itemizedlist> </itemizedlist>

View File

@ -62,7 +62,6 @@
<para>Home page: <ulink url="&automake-home;"/></para> <para>Home page: <ulink url="&automake-home;"/></para>
<para>Download: <ulink url="&automake-url;"/></para> <para>Download: <ulink url="&automake-url;"/></para>
<para>MD5 sum: <literal>&automake-md5;</literal></para> <para>MD5 sum: <literal>&automake-md5;</literal></para>
<para>SHA256 sum: <literal>&automake-sha256;</literal></para>
</listitem> </listitem>
</varlistentry> </varlistentry>

View File

@ -104,7 +104,7 @@ EOF</userinput></screen>
</varlistentry> </varlistentry>
<varlistentry> <varlistentry>
<term><parameter>LFS_TGT=(uname -m)-lfs-linux-gnu</parameter></term> <term><parameter>LFS_TGT=$(uname -m)-lfs-linux-gnu</parameter></term>
<listitem> <listitem>
<para>The <envar>LFS_TGT</envar> variable sets a non-default, but compatible machine <para>The <envar>LFS_TGT</envar> variable sets a non-default, but compatible machine
description for use when building our cross-compiler and linker and when description for use when building our cross-compiler and linker and when

View File

@ -84,7 +84,6 @@ 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-crypt \
libc_cv_slibdir=/usr/lib</userinput></screen> libc_cv_slibdir=/usr/lib</userinput></screen>
<variablelist> <variablelist>

View File

@ -101,7 +101,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, and remove unnecessary static libraries:</para> cross compilation, and remove unnecessary static libraries:</para>
<screen><userinput remap="install">rm -v $LFS/usr/lib/lib{bfd,ctf,ctf-nobfd,opcodes}.{a,la}</userinput></screen> <screen><userinput remap="install">rm -v $LFS/usr/lib/lib{bfd,ctf,ctf-nobfd,opcodes,sframe}.{a,la}</userinput></screen>
</sect2> </sect2>

View File

@ -45,7 +45,9 @@
<para>Prepare Diffutils for compilation:</para> <para>Prepare Diffutils for compilation:</para>
<screen><userinput remap="configure">./configure --prefix=/usr --host=$LFS_TGT</userinput></screen> <screen><userinput remap="configure">./configure --prefix=/usr \
--host=$LFS_TGT \
--build=$(./build-aux/config.guess)</userinput></screen>
<para>Compile the package:</para> <para>Compile the package:</para>

View File

@ -45,8 +45,9 @@
<para>Prepare Grep for compilation:</para> <para>Prepare Grep for compilation:</para>
<screen><userinput remap="configure">./configure --prefix=/usr \ <screen><userinput remap="configure">./configure --prefix=/usr \
--host=$LFS_TGT</userinput></screen> --host=$LFS_TGT \
--build=$(./build-aux/config.guess)</userinput></screen>
<para>Compile the package:</para> <para>Compile the package:</para>

View File

@ -45,8 +45,9 @@
<para>Prepare Sed for compilation:</para> <para>Prepare Sed for compilation:</para>
<screen><userinput remap="configure">./configure --prefix=/usr \ <screen><userinput remap="configure">./configure --prefix=/usr \
--host=$LFS_TGT</userinput></screen> --host=$LFS_TGT \
--build=$(./build-aux/config.guess)</userinput></screen>
<para>Compile the package:</para> <para>Compile the package:</para>

View File

@ -132,14 +132,15 @@ cd build</userinput></screen>
<screen><userinput remap="test">grep '^FAIL:' $(find -name '*.log')</userinput></screen> <screen><userinput remap="test">grep '^FAIL:' $(find -name '*.log')</userinput></screen>
<para>Three tests in the gprofng suite are known to fail.</para>
<para>Install the package:</para> <para>Install the package:</para>
<screen><userinput remap="install">make tooldir=/usr install</userinput></screen> <screen><userinput remap="install">make tooldir=/usr install</userinput></screen>
<para>Remove useless static libraries and an empty man page:</para> <para>Remove useless static libraries:</para>
<screen><userinput remap="install">rm -fv /usr/lib/lib{bfd,ctf,ctf-nobfd,sframe,opcodes}.a <screen><userinput remap="install">rm -fv /usr/lib/lib{bfd,ctf,ctf-nobfd,sframe,opcodes}.a</userinput></screen>
rm -fv /usr/share/man/man1/{gprofng,gp-*}.1</userinput></screen>
</sect2> </sect2>

View File

@ -52,6 +52,7 @@
--sysconfdir=/etc \ --sysconfdir=/etc \
--localstatedir=/var \ --localstatedir=/var \
--runstatedir=/run \ --runstatedir=/run \
--enable-user-session \
--disable-static \ --disable-static \
--disable-doxygen-docs \ --disable-doxygen-docs \
--disable-xml-docs \ --disable-xml-docs \
@ -73,6 +74,18 @@
</listitem> </listitem>
</varlistentry> </varlistentry>
<varlistentry>
<term>
<parameter>--enable-user-session</parameter>
</term>
<listitem>
<para>This ensures the D-Bus per-user service and socket unit
files are installed for Systemd. They are not useful (but
harmless) in a base LFS installation, however they can be used
once systemd is rebuilt with PAM support in BLFS.</para>
</listitem>
</varlistentry>
</variablelist> </variablelist>
<para>Compile the package:</para> <para>Compile the package:</para>

View File

@ -177,6 +177,16 @@ su tester -c "PATH=$PATH make -k check"</userinput></screen>
<filename>stack-check-cfa-2.c</filename> <filename>stack-check-cfa-2.c</filename>
are known to fail.</para> are known to fail.</para>
<para>
With Glibc-2.38, the analyzer tests named
<filename>data-model-4.c</filename> and
<filename>conftest-1.c</filename> are known to fail.
In the asan tests, the subtest named
<filename>AddressSanitizer_StrtolOOBTest</filename> in the test
<filename>asan_test.C</filename> and the test named
<filename>interception-malloc-test-1.C</filename> are known to fail.
</para>
<para>A few unexpected failures cannot always be avoided. The GCC developers <para>A few unexpected failures cannot always be avoided. The GCC developers
are usually aware of these issues, but have not resolved them yet. are usually aware of these issues, but have not resolved them yet.
Unless the test results are vastly different from those at the above URL, Unless the test results are vastly different from those at the above URL,

View File

@ -50,16 +50,6 @@
<screen><userinput remap="pre">patch -Np1 -i ../&glibc-fhs-patch;</userinput></screen> <screen><userinput remap="pre">patch -Np1 -i ../&glibc-fhs-patch;</userinput></screen>
<!-- https://sourceware.org/bugzilla/show_bug.cgi?id=30068
Upstream fix also added a test case and renamed "prec" to
"prec_inc". We'll test this with MPFR test suite so we don't
need the test here, and the renaming does not affect program
behavior. -->
<para>Fix a security issue identified upstream:</para>
<screen><userinput remap="pre">sed '/width -=/s/workend - string/number_length/' \
-i stdio-common/vfprintf-process-arg.c</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>
@ -79,7 +69,6 @@ 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-crypt \
libc_cv_slibdir=/usr/lib</userinput></screen> libc_cv_slibdir=/usr/lib</userinput></screen>
<variablelist> <variablelist>
@ -166,10 +155,12 @@ esac</userinput></screen>
is known to fail in the LFS chroot environment.</para> is known to fail in the LFS chroot environment.</para>
</listitem> </listitem>
<!-- Did not fail with glibc-2.38
<listitem> <listitem>
<para><emphasis>misc/tst-ttyname</emphasis> <para><emphasis>misc/tst-ttyname</emphasis>
is known to fail in the LFS chroot environment.</para> is known to fail in the LFS chroot environment.</para>
</listitem> </listitem>
-->
<!-- https://sourceware.org/pipermail/libc-alpha/2022-August/141567.html --> <!-- https://sourceware.org/pipermail/libc-alpha/2022-August/141567.html -->
<listitem> <listitem>

View File

@ -58,10 +58,12 @@
<para>The default settings of GMP produce libraries optimized for <para>The default settings of GMP produce libraries optimized for
the host processor. If libraries suitable for processors less the host processor. If libraries suitable for processors less
capable than the host's CPU are desired, generic libraries can be capable than the host's CPU are desired, generic libraries can be
created by running the following: created by appending the <option>--host=none-linux-gnu</option> option
to the <command>configure</command> command.</para>
<screen role="nodump"><userinput>cp -v configfsf.guess config.guess <!-- To editors: the configure script says "the none host is obsolete,
cp -v configfsf.sub config.sub</userinput></screen></para> use - -disable-assembly", but don't believe it: with the latter
CFLAGS is still automatically set to -march=something. -->
</note> </note>
<para>Prepare GMP for compilation:</para> <para>Prepare GMP for compilation:</para>
@ -110,9 +112,9 @@ make html</userinput></screen>
the system capabilities and there will be errors in the tests or other the system capabilities and there will be errors in the tests or other
applications using the gmp libraries with the message "Illegal applications using the gmp libraries with the message "Illegal
instruction". In this case, gmp should be reconfigured with the option instruction". In this case, gmp should be reconfigured with the option
--build=x86_64-pc-linux-gnu and rebuilt.</para></caution> <option>--host=none-linux-gnu</option> and rebuilt.</para></caution>
<para>Ensure that all 197 tests in the test suite passed. <para>Ensure that all 199 tests in the test suite passed.
Check the results by issuing the following command:</para> Check the results by issuing the following command:</para>
<screen><userinput remap="test">awk '/# PASS:/{total+=$3} ; END{print total}' gmp-check-log</userinput></screen> <screen><userinput remap="test">awk '/# PASS:/{total+=$3} ; END{print total}' gmp-check-log</userinput></screen>

View File

@ -41,8 +41,17 @@
</sect2> </sect2>
<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,1336/s|^|//|' 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

@ -83,16 +83,6 @@ make check</userinput></screen>
<screen><userinput remap="test">make check</userinput></screen> <screen><userinput remap="test">make check</userinput></screen>
<!-- It's because "free -v" shows "used" greater than "total", and
a negative "free" for "Comm" line. The "total" value is from
"CommitLimit" in /proc/meminfo, which is the limit for one process.
But the "used" value is from "Committed_AS" in the same file,
which is the total commited virtual memory space of all processes.
I'll make a report to upstream anyway. -->
<para>One test named <filename>free with commit</filename>
may fail if some applications with a custom memory allocator (for
example, JVM and Web browsers) are running on the host distro.</para>
<para>Install the package:</para> <para>Install the package:</para>
<screen><userinput remap="install">make install</userinput></screen> <screen><userinput remap="install">make install</userinput></screen>

View File

@ -88,7 +88,7 @@ done
online_usrbin="bash find strip" online_usrbin="bash find strip"
online_usrlib="libbfd-&binutils-version;.so online_usrlib="libbfd-&binutils-version;.so
libsframe.so.0.0.0 libsframe.so.&libsframe-version;
libhistory.so.&readline-soversion; libhistory.so.&readline-soversion;
libncursesw.so.&ncurses-version; libncursesw.so.&ncurses-version;
libm.so.6 libm.so.6

View File

@ -40,19 +40,6 @@
<sect2 role="installation"> <sect2 role="installation">
<title>Installation of systemd</title> <title>Installation of systemd</title>
<para>
Remove several inappropriate uses of the <literal>pure</literal>
attribute that cause runtime issues when the package is built
with gcc-13 or later:
</para>
<screen><userinput remap='pre'>sed '/bus_message_type_from_string/s/_pure_//' \
-i src/libsystemd/sd-bus/bus-internal.h &amp;&amp;
sed '/devt_hash_func/s/_pure_//' \
-i src/basic/hash-funcs.h &amp;&amp;
sed '/job_get_timeout/s/_pure_//' \
-i src/core/job.h</userinput></screen>
<para>Remove two unneeded groups, <para>Remove two unneeded groups,
<systemitem class="groupname">render</systemitem> and <systemitem class="groupname">render</systemitem> and
<systemitem class="groupname">sgx</systemitem>, from the default udev <systemitem class="groupname">sgx</systemitem>, from the default udev
@ -206,7 +193,9 @@ meson setup \
<!-- Please make sure systemd man pages tarball has a common leading <!-- Please make sure systemd man pages tarball has a common leading
component in the path. --> component in the path. -->
<screen><userinput remap="install">tar -xf ../../systemd-man-pages-&systemd-man-version;.tar.xz --strip-components=1 -C /usr/share/man</userinput></screen> <screen><userinput remap="install">tar -xf ../../systemd-man-pages-&systemd-version;.tar.xz \
--no-same-owner --strip-components=1 \
-C /usr/share/man</userinput></screen>
<para>Create the <filename>/etc/machine-id</filename> file needed by <para>Create the <filename>/etc/machine-id</filename> file needed by
<command>systemd-journald</command>:</para> <command>systemd-journald</command>:</para>
@ -245,12 +234,14 @@ meson setup \
<seglistitem> <seglistitem>
<seg>busctl, coredumpctl, halt (symlink to systemctl), <seg>busctl, coredumpctl, halt (symlink to systemctl),
hostnamectl, init, journalctl, kernel-install, localectl, loginctl, hostnamectl, init, journalctl, kernel-install, localectl, loginctl,
machinectl, networkctl, oomctl, portablectl, poweroff (symlink to machinectl, mount.ddi (symlink to systemd-dissect), networkctl,
oomctl, portablectl, poweroff (symlink to
systemctl), reboot (symlink to systemctl), resolvconf (symlink to systemctl), reboot (symlink to systemctl), resolvconf (symlink to
resolvectl), resolvectl, runlevel (symlink to systemctl), shutdown resolvectl), resolvectl, runlevel (symlink to systemctl), shutdown
(symlink to systemctl), systemctl, systemd-ac-power, systemd-analyze, (symlink to systemctl), systemctl, systemd-ac-power, systemd-analyze,
systemd-ask-password, systemd-cat, systemd-cgls, systemd-cgtop, systemd-ask-password, systemd-cat, systemd-cgls, systemd-cgtop,
systemd-creds, systemd-delta, systemd-detect-virt, systemd-confext (symlink to systemd-sysext), systemd-creds,
systemd-delta, systemd-detect-virt,
systemd-dissect, systemd-escape, systemd-hwdb, systemd-id128, systemd-dissect, systemd-escape, systemd-hwdb, systemd-id128,
systemd-inhibit, systemd-machine-id-setup, systemd-inhibit, systemd-machine-id-setup,
systemd-mount, systemd-notify, systemd-nspawn, systemd-path, systemd-mount, systemd-notify, systemd-nspawn, systemd-path,

View File

@ -128,7 +128,7 @@ meson setup \
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 -sv ../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/
@ -148,11 +148,12 @@ make -f &udev-lfs-version;/Makefile.lfs install</userinput></screen>
<!-- Please make sure systemd man pages tarball has a common leading <!-- Please make sure systemd man pages tarball has a common leading
component in the path. --> component in the path. -->
<screen><userinput remap="install">tar -xf ../../systemd-man-pages-253.tar.xz --strip-components=1 \ <screen><userinput remap="install">tar -xf ../../systemd-man-pages-&systemd-man-version;.tar.xz \
--no-same-owner --strip-components=1 \
-C /usr/share/man --wildcards '*/udev*' '*/libudev*' \ -C /usr/share/man --wildcards '*/udev*' '*/libudev*' \
'*/systemd-'{hwdb,udevd.service}.8 '*/systemd-'{hwdb,udevd.service}.8
sed 's/systemd\(\\\?-\)/udev-/' /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

View File

@ -22,17 +22,18 @@
<screen revision="sysv"><userinput>cat &gt; /etc/fstab &lt;&lt; "EOF" <screen revision="sysv"><userinput>cat &gt; /etc/fstab &lt;&lt; "EOF"
<literal># Begin /etc/fstab <literal># Begin /etc/fstab
# file system mount-point type options dump fsck # file system mount-point type options dump fsck
# order # order
/dev/<replaceable>&lt;xxx&gt;</replaceable> / <replaceable>&lt;fff&gt;</replaceable> defaults 1 1 /dev/<replaceable>&lt;xxx&gt;</replaceable> / <replaceable>&lt;fff&gt;</replaceable> defaults 1 1
/dev/<replaceable>&lt;yyy&gt;</replaceable> swap swap pri=1 0 0 /dev/<replaceable>&lt;yyy&gt;</replaceable> swap swap pri=1 0 0
proc /proc proc nosuid,noexec,nodev 0 0 proc /proc proc nosuid,noexec,nodev 0 0
sysfs /sys sysfs nosuid,noexec,nodev 0 0 sysfs /sys sysfs nosuid,noexec,nodev 0 0
devpts /dev/pts devpts gid=5,mode=620 0 0 devpts /dev/pts devpts gid=5,mode=620 0 0
tmpfs /run tmpfs defaults 0 0 tmpfs /run tmpfs defaults 0 0
devtmpfs /dev devtmpfs mode=0755,nosuid 0 0 devtmpfs /dev devtmpfs mode=0755,nosuid 0 0
tmpfs /dev/shm tmpfs nosuid,nodev 0 0 tmpfs /dev/shm tmpfs nosuid,nodev 0 0
cgroup2 /sys/fs/cgroup cgroup2 nosuid,noexec,nodev 0 0
# End /etc/fstab</literal> # End /etc/fstab</literal>
EOF</userinput></screen> EOF</userinput></screen>

View File

@ -210,6 +210,7 @@ umount /sys/firmware/efi/efivars</userinput></screen>
set default=0 set default=0
set timeout=5 set timeout=5
insmod part_gpt
insmod ext2 insmod ext2
set root=(hd0,2) set root=(hd0,2)

View File

@ -130,80 +130,23 @@
<para>Be sure to enable/disable/set the following features or the system might <para>Be sure to enable/disable/set the following features or the system might
not work correctly or boot at all:</para> not work correctly or boot at all:</para>
<screen role="nodump" revision="sysv">Processor type and features ---&gt; <!-- To editors: for updating kernel configuration, edit
[*] Build a relocatable kernel [CONFIG_RELOCATABLE] kernel/*.toml and regenerate kernel/*.xml with
[*] Randomize the address of the kernel image (KASLR) [CONFIG_RANDOMIZE_BASE] "make -C kernel KERNEL_TREE=</usr/src/linux-&linux-version> -->
General setup ---&gt;
[ ] Compile the kernel with warnings as errors [CONFIG_WERROR]
&lt; &gt; Enable kernel headers through /sys/kernel/kheaders.tar.xz [CONFIG_IKHEADERS]
[ ] Configure standard kernel features (expert users) [CONFIG_EXPERT]
General architecture-dependent options ---&gt;
[*] Stack Protector buffer overflow detection [CONFIG_STACKPROTECTOR]
[*] Strong Stack Protector [CONFIG_STACKPROTECTOR_STRONG]
Device Drivers ---&gt;
Firmware Drivers ---&gt;
EFI (Extensible Firmware Interface) Support ---&gt;
[*] Enable the generic EFI decompressor [CONFIG_EFI_ZBOOT]
Graphics support ---&gt;
Frame buffer Devices ---&gt;
&lt;*&gt; Support for frame buffer devices ---&gt;
Console display driver support ---&gt;
[*] Framebuffer Console support [CONFIG_FRAMEBUFFER_CONSOLE]
Generic Driver Options ---&gt;
[ ] Support for uevent helper [CONFIG_UEVENT_HELPER]
[*] Maintain a devtmpfs filesystem to mount at /dev [CONFIG_DEVTMPFS]
[*] Automount devtmpfs at /dev, after the kernel mounted the rootfs [CONFIG_DEVTMPFS_MOUNT]</screen>
<screen role="nodump" revision="systemd">Processor type and features ---&gt; <xi:include xmlns:xi="http://www.w3.org/2001/XInclude"
[*] Build a relocatable kernel [CONFIG_RELOCATABLE] href="kernel/sysv.xml"/>
[*] Randomize the address of the kernel image (KASLR) [CONFIG_RANDOMIZE_BASE]
General setup ---&gt; <xi:include xmlns:xi="http://www.w3.org/2001/XInclude"
[ ] Compile the kernel with warnings as errors [CONFIG_WERROR] href="kernel/systemd.xml"/>
[ ] Auditing Support [CONFIG_AUDIT]
CPU/Task time and stats accounting ---&gt;
[*] Pressure stall information tracking [CONFIG_PSI]
[ ] Require boot parameter to enable pressure stall information tracking [CONFIG_PSI_DEFAULT_DISABLED]
&lt; &gt; Enable kernel headers through /sys/kernel/kheaders.tar.xz [CONFIG_IKHEADERS]
[*] Control Group support [CONFIG_CGROUPS] ---&gt;
[*] Memory controller [CONFIG_MEMCG]
[ ] Configure standard kernel features (expert users) [CONFIG_EXPERT]
General architecture-dependent options ---&gt;
[*] Enable seccomp to safely compute untrusted bytecode [CONFIG_SECCOMP]
[*] Stack Protector buffer overflow detection [CONFIG_STACKPROTECTOR]
[*] Strong Stack Protector [CONFIG_STACKPROTECTOR_STRONG]
[*] Networking support ---&gt; [CONFIG_NET]
Networking options ---&gt;
[*] TCP/IP networking [CONFIG_INET]
&lt;*&gt; The IPv6 protocol [CONFIG_IPV6]
Device Drivers ---&gt;
Generic Driver Options ---&gt;
[ ] Support for uevent helper [CONFIG_UEVENT_HELPER]
[*] Maintain a devtmpfs filesystem to mount at /dev [CONFIG_DEVTMPFS]
[*] Automount devtmpfs at /dev, after the kernel mounted the rootfs [CONFIG_DEVTMPFS_MOUNT]
Firmware Loader ---&gt;
[ ] Enable the firmware sysfs fallback mechanism [CONFIG_FW_LOADER_USER_HELPER]
Firmware Drivers ---&gt;
[*] Export DMI identification via sysfs to userspace [CONFIG_DMIID]
EFI (Extensible Firmware Interface) Support ---&gt;
[*] Enable the generic EFI decompressor [CONFIG_EFI_ZBOOT]
Graphics support ---&gt;
Frame buffer Devices ---&gt;
&lt;*&gt; Support for frame buffer devices ---&gt;
Console display driver support ---&gt;
[*] Framebuffer Console support [CONFIG_FRAMEBUFFER_CONSOLE]
File systems ---&gt;
[*] Inotify support for userspace [CONFIG_INOTIFY_USER]
Pseudo filesystems ---&gt;
[*] Tmpfs POSIX Access Control Lists [CONFIG_TMPFS_POSIX_ACL]</screen>
<para>If the partition for the LFS system is in a NVME SSD (i. e. the <para>If the partition for the LFS system is in a NVME SSD (i. e. the
device node for the partition is <filename>/dev/nvme*</filename> device node for the partition is <filename>/dev/nvme*</filename>
instead of <filename>/dev/sd*</filename>), enable NVME support or instead of <filename>/dev/sd*</filename>), enable NVME support or
the LFS system won't boot:</para> the LFS system won't boot:</para>
<screen role="nodump">Device Drivers ---&gt; <xi:include xmlns:xi="http://www.w3.org/2001/XInclude"
NVME Support ---&gt; href="kernel/nvme.xml"/>
&lt;*&gt; NVM Express block device [CONFIG_BLK_DEV_NVME]</screen>
</note> </note>
<note revision="systemd"> <note revision="systemd">

2
chapter10/kernel/.gitignore vendored Normal file
View File

@ -0,0 +1,2 @@
__pycache__
s-kernel-version

23
chapter10/kernel/Makefile Normal file
View File

@ -0,0 +1,23 @@
INPUT = $(wildcard *.toml)
OUTPUT = $(patsubst %.toml, %.xml, $(INPUT))
ifeq ($(KERNEL_TREE),)
$(error "must set KERNEL_TREE=/path/to/kernel/source")
endif
all: $(OUTPUT)
kernel.version: s-kernel-version; @true
.PHONY: s-kernel-version
s-kernel-version:
./kernel_version.py $(KERNEL_TREE) > tmp-kernel.version
if ! diff tmp-kernel.version kernel.version ; then \
mv tmp-kernel.version kernel.version; \
else \
rm tmp-kernel.version; \
fi
touch s-kernel-version
%.xml: %.toml kernel-config.py kernel_version.py kernel.version
./kernel-config.py $(KERNEL_TREE) $< > $@

View File

@ -0,0 +1 @@
HIGHMEM64G='X'

View File

@ -0,0 +1,8 @@
<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE note PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd">
<!-- Automatically generated by kernel-config.py
DO NOT EDIT! -->
<screen role="nodump"><emphasis role='blue'>P</emphasis>rocessor type and features ---&gt;
H<emphasis role='blue'>i</emphasis>gh Memory Support ---&gt;
(X) <emphasis role='blue'>6</emphasis>4GB [HIGHMEM64G]</screen>

298
chapter10/kernel/kernel-config.py Executable file
View File

@ -0,0 +1,298 @@
#!/usr/bin/env python3
# SPDX-License-Identifier: MIT
# Copyright 2023 The LFS Editors
# Stupid script to render "mconf"-style kernel configuration
# Usage: kernel-config.py [path to kernel tree] [needed config].toml
# The toml file should be like:
# for bool and tristate:
# EXT4="*"
# DRM="*M"
# EXPERT=" "
# DRM_I915="*M"
# for choice:
# HIGHMEM64G="X"
# an entry with comment:
# DRM_I915 = { value = " *M", comment = "for i915, crocus, or iris" }
choice_bit = 1 << 30
ind0 = 0
ind1 = 0
menu_id = 1
stack = []
if_stack = []
expand_var_mp = { 'SRCARCH': 'x86' }
main_dep = {}
def expand_var(s):
for k in expand_var_mp:
s = s.replace('$(' + k + ')', expand_var_mp[k])
return s
def pop_stack(cond):
global ind0, ind1, stack
assert(cond(stack[-1][0]))
s, i0, i1, _ = stack[-1]
stack = stack[:-1]
ind0 -= i0
ind1 -= i1
def pop_stack_while(cond):
while stack and cond(stack[-1][0]):
pop_stack(cond)
def cur_menu():
global stack
return stack[-1][3] if stack else 0
def cur_if():
global if_stack
return if_stack[-1][:] if if_stack else []
def clean_dep(d):
d = d.strip()
if d.endswith('=y') or d.endswith('=M'):
d = d[:-2]
elif d.endswith(' != ""'):
d = d[:-6]
return d
def parse_config(buf):
global ind0, ind1, stack, menu_id
is_choice = buf[0].strip() == 'choice'
is_menu = buf[0].startswith('menu') or is_choice
is_nonconfig_menu = buf[0].startswith('menu ') or is_choice
key = None if is_nonconfig_menu else buf[0].split()[1].strip()
title = buf[0][len('menu '):] if is_nonconfig_menu else None
deps = ['menu'] + cur_if()
klass = None
for line in buf[1:]:
line = line.strip()
if line.startswith('depends on '):
new_deps = line[len('depends on '):].split('&&')
deps += [clean_dep(x) for x in new_deps]
elif line.startswith('prompt'):
title = line[len('prompt '):]
else:
for prefix in ['tristate', 'bool', 'string']:
if line.startswith(prefix + ' '):
title = line[len(prefix) + 1:]
klass = prefix
elif line == prefix:
klass = prefix
elif line.startswith('def_' + prefix + ' '):
klass = prefix
else:
continue
if '"' in line:
tail = line[line.rfind('"') + 1:].strip()
if tail[:3] == 'if ':
deps += [clean_dep(x) for x in tail[3:].split('&&')]
pop_stack_while(lambda x: x not in deps)
menu_id += is_menu
internal_key = key or menu_id
if stack:
fa = stack[-1][0]
if fa == 'menu':
fa = cur_menu() & ~choice_bit
main_dep[internal_key] = fa
val = known_config.get(key)
comment = None
forced = None
if type(val) == dict:
comment = val.get('comment')
forced = val.get('forced')
val = val['value']
klass = klass or 'string'
if title:
title = title.strip().lstrip('"')
title = title[:title.find('"')]
if not val:
pass
elif klass == 'string':
val = '(' + val + ')'
else:
assert((val == 'X') == bool(cur_menu() & choice_bit))
if (val == 'X'):
val = '(X)'
else:
val = list(val)
val.sort()
for c in val:
if c not in 'M* ' or (c == 'M' and klass != 'tristate'):
raise Exception('unknown setting %s for %s' % (c, key))
bracket = None
if klass == 'tristate' and forced != '*' :
bracket = '{}' if forced else '<>'
else:
bracket = '--' if forced else '[]'
val = bracket[0] + '/'.join(val) + bracket[1]
arrow = ' --->' if is_menu else ''
r = [ind0, val, ind1, title, arrow, internal_key, cur_menu(), comment]
# Don't indent for untitled (internal) entries
x = 2 if title else 0
key = key or 'menu'
menu = (menu_id if is_menu else cur_menu())
menu |= choice_bit if is_choice else 0
stack_ent = (key, 2, 0, menu) if is_menu else (key, 0, x, menu)
ind0 += stack_ent[1]
ind1 += stack_ent[2]
stack += [stack_ent]
return r
def load_kconfig(file):
global ind0, ind1, stack, path, menu_id, if_stack
r = []
config_buf = []
with open(path + file) as f:
for line in f:
if config_buf:
if not (line.startswith('\t') or line.startswith(' ')):
r += [parse_config(config_buf)]
config_buf = []
else:
config_buf += [line]
continue
if line.startswith('source') or line.startswith('\tsource'):
sub = expand_var(line.strip().split()[1].strip('"'))
r += load_kconfig(sub)
elif line.startswith('config') or line.startswith('menu'):
config_buf = [line]
elif line.startswith('choice'):
config_buf = [line]
elif line.startswith('endmenu') or line.startswith('endchoice'):
pop_stack_while(lambda x: x != 'menu')
pop_stack(lambda x: x == 'menu')
elif line.startswith('if '):
line = line[3:]
top = cur_if()
top += [x.strip() for x in line.split("&&")]
if_stack += [top]
elif line.startswith('endif'):
if_stack = if_stack[:-1]
return r
known_config = {}
def escape(x):
return x.replace('<', '&lt;').replace('>', '&gt;')
from sys import argv
import tomllib
path = argv[1]
if path[-1] != '/':
path += '/'
with open(argv[2], 'rb') as f:
known_config = tomllib.load(f)
r = load_kconfig('Kconfig')
# Refcount all menus
index_ikey = {}
for i in reversed(range(len(r))):
index_ikey[r[i][5]] = i
for i in reversed(range(len(r))):
if r[i][1] != None:
key = r[i][5]
fa = main_dep.get(key)
if not fa:
continue
j = index_ikey[fa]
if type(fa) == int or not r[j][3]:
# The main dependency is a menu or untitled magic entry,
# just mark it used
r[j][1] = ''
if r[j][1] is None:
raise Exception('[%s] needs unselected [%s]' % (key, fa))
r = [i for i in r if i[1] != None and i[3]]
# Now we are going to pretty-print r
## Calculate the maximum value length for each menu
max_val_len = {}
for _, val, _, _, _, _, menu, _ in r:
x = max_val_len.get(menu) or 0
max_val_len[menu] = max(x, len(val))
## Output
max_line = 80
buf = []
done = [x[5] for x in r] + ['revision']
for i in known_config:
if i not in done:
raise Exception("%s seems not exist" % i)
sep = known_config.get('separate_toplevel_menu')
for i0, val, i1, title, arrow, key, menu, comment in r:
rem = max_line
if val:
val += (max_val_len[menu] - len(val)) * ' '
rem -= i0 + i1 + bool(val) + len(val)
line = i0 * ' ' + escape(val) + (i1 + bool(val)) * ' '
rem -= len(arrow)
if len(title) > rem:
title = title[:rem - 3] + '...'
b = title.lstrip('YyMmNnHh')
a = title[:len(title) - len(b)]
b0 = "<emphasis role='blue'>" + escape(b[0]) + "</emphasis>"
line += escape(a) + b0 + escape(b[1:]) + escape(arrow)
rem -= len(title)
key = ' [' + key + ']' if type(key) == str else ''
if len(key) <= rem:
line += (rem - len(key)) * ' ' + key
else:
key = '... ' + key
line += '\n' + ' ' * (max_line - len(key)) + key
if type(comment) == str:
comment = [comment]
if comment:
comment = '\n'.join([' ' * i0 + '# ' + line for line in comment])
buf += [escape(comment) + ':']
if not menu and buf:
buf += ['']
buf += [line.rstrip()]
from jinja2 import Template
t = Template('''<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE note PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd">
<!-- Automatically generated by kernel-config.py
DO NOT EDIT! -->
<screen role="nodump"{{ rev }}>{{ '\n'.join(buf) }}</screen>''')
rev = known_config.get('revision')
rev = ' revision="%s"' % rev if rev else ''
print(t.render(rev = rev, buf = buf))

View File

@ -0,0 +1 @@
6.4.8

View File

@ -0,0 +1,27 @@
#!/usr/bin/env python3
def kernel_version(path):
version = None
patchlevel = None
sublevel = None
with open(path + 'Makefile') as f:
for line in f:
if line.startswith('VERSION ='):
version = line[len('VERSION ='):].strip()
elif line.startswith('PATCHLEVEL ='):
patchlevel = line[len('PATCHLEVEL ='):].strip()
elif line.startswith('SUBLEVEL ='):
sublevel = line[len('SUBLEVEL ='):].strip()
assert(version and patchlevel and sublevel)
return '.'.join([version, patchlevel, sublevel])
if __name__ == '__main__':
from sys import argv
path = argv[1]
if path[:-1] != '/':
path += '/'
print(kernel_version(path))

View File

@ -0,0 +1 @@
BLK_DEV_NVME='*'

View File

@ -0,0 +1,8 @@
<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE note PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd">
<!-- Automatically generated by kernel-config.py
DO NOT EDIT! -->
<screen role="nodump"><emphasis role='blue'>D</emphasis>evice Drivers ---&gt;
N<emphasis role='blue'>V</emphasis>ME Support ---&gt;
&lt;*&gt; N<emphasis role='blue'>V</emphasis>M Express block device [BLK_DEV_NVME]</screen>

View File

@ -0,0 +1,30 @@
# This part should be sync with sysv.toml
WERROR=' '
PSI='*'
PSI_DEFAULT_DISABLED=' '
IKHEADERS=' '
CGROUPS='*'
MEMCG='*'
EXPERT=' '
RELOCATABLE='*'
RANDOMIZE_BASE='*'
STACKPROTECTOR='*'
STACKPROTECTOR_STRONG='*'
UEVENT_HELPER=' '
DEVTMPFS='*'
DEVTMPFS_MOUNT='*'
FB='*'
FRAMEBUFFER_CONSOLE='*'
AUDIT=' '
NET='*'
INET='*'
IPV6='*'
FW_LOADER=' *'
FW_LOADER_USER_HELPER=' '
DMIID='*'
INOTIFY_USER='*'
TMPFS='*'
TMPFS_POSIX_ACL='*'
revision='systemd'

View File

@ -0,0 +1,53 @@
<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE note PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd">
<!-- Automatically generated by kernel-config.py
DO NOT EDIT! -->
<screen role="nodump" revision="systemd"><emphasis role='blue'>G</emphasis>eneral setup ---&gt;
[ ] <emphasis role='blue'>C</emphasis>ompile the kernel with warnings as errors [WERROR]
[ ] <emphasis role='blue'>A</emphasis>uditing support [AUDIT]
<emphasis role='blue'>C</emphasis>PU/Task time and stats accounting ---&gt;
[*] <emphasis role='blue'>P</emphasis>ressure stall information tracking [PSI]
[ ] <emphasis role='blue'>R</emphasis>equire boot parameter to enable pressure stall information tracking
... [PSI_DEFAULT_DISABLED]
&lt; &gt; <emphasis role='blue'>E</emphasis>nable kernel headers through /sys/kernel/kheaders.tar.xz [IKHEADERS]
[*] <emphasis role='blue'>C</emphasis>ontrol Group support ---&gt; [CGROUPS]
[*] M<emphasis role='blue'>e</emphasis>mory controller [MEMCG]
[ ] <emphasis role='blue'>C</emphasis>onfigure standard kernel features (expert users) ---&gt; [EXPERT]
<emphasis role='blue'>P</emphasis>rocessor type and features ---&gt;
[*] <emphasis role='blue'>B</emphasis>uild a relocatable kernel [RELOCATABLE]
[*] <emphasis role='blue'>R</emphasis>andomize the address of the kernel image (KASLR) [RANDOMIZE_BASE]
<emphasis role='blue'>G</emphasis>eneral architecture-dependent options ---&gt;
[*] <emphasis role='blue'>S</emphasis>tack Protector buffer overflow detection [STACKPROTECTOR]
[*] <emphasis role='blue'>S</emphasis>trong Stack Protector [STACKPROTECTOR_STRONG]
[*] N<emphasis role='blue'>e</emphasis>tworking support ---&gt; [NET]
N<emphasis role='blue'>e</emphasis>tworking options ---&gt;
[*] <emphasis role='blue'>T</emphasis>CP/IP networking [INET]
&lt;*&gt; <emphasis role='blue'>T</emphasis>he IPv6 protocol ---&gt; [IPV6]
<emphasis role='blue'>D</emphasis>evice Drivers ---&gt;
<emphasis role='blue'>G</emphasis>eneric Driver Options ---&gt;
[ ] <emphasis role='blue'>S</emphasis>upport for uevent helper [UEVENT_HELPER]
[*] M<emphasis role='blue'>a</emphasis>intain a devtmpfs filesystem to mount at /dev [DEVTMPFS]
[*] <emphasis role='blue'>A</emphasis>utomount devtmpfs at /dev, after the kernel mounted the rootfs
... [DEVTMPFS_MOUNT]
<emphasis role='blue'>F</emphasis>irmware loader ---&gt;
&lt; /*&gt; <emphasis role='blue'>F</emphasis>irmware loading facility [FW_LOADER]
[ ] <emphasis role='blue'>E</emphasis>nable the firmware sysfs fallback mechanism
... [FW_LOADER_USER_HELPER]
<emphasis role='blue'>F</emphasis>irmware Drivers ---&gt;
[*] <emphasis role='blue'>E</emphasis>xport DMI identification via sysfs to userspace [DMIID]
<emphasis role='blue'>G</emphasis>raphics support ---&gt;
<emphasis role='blue'>F</emphasis>rame buffer Devices ---&gt;
&lt;*&gt; <emphasis role='blue'>S</emphasis>upport for frame buffer devices ---&gt; [FB]
<emphasis role='blue'>C</emphasis>onsole display driver support ---&gt;
[*] <emphasis role='blue'>F</emphasis>ramebuffer Console support [FRAMEBUFFER_CONSOLE]
<emphasis role='blue'>F</emphasis>ile systems ---&gt;
[*] <emphasis role='blue'>I</emphasis>notify support for userspace [INOTIFY_USER]
<emphasis role='blue'>P</emphasis>seudo filesystems ---&gt;
[*] <emphasis role='blue'>T</emphasis>mpfs virtual memory file system support (former shm fs) [TMPFS]
[*] <emphasis role='blue'>T</emphasis>mpfs POSIX Access Control Lists [TMPFS_POSIX_ACL]</screen>

View File

@ -0,0 +1,18 @@
WERROR=' '
PSI='*'
PSI_DEFAULT_DISABLED=' '
IKHEADERS=' '
CGROUPS='*'
MEMCG='*'
EXPERT=' '
RELOCATABLE='*'
RANDOMIZE_BASE='*'
STACKPROTECTOR='*'
STACKPROTECTOR_STRONG='*'
UEVENT_HELPER=' '
DEVTMPFS='*'
DEVTMPFS_MOUNT='*'
FB='*'
FRAMEBUFFER_CONSOLE='*'
revision='sysv'

35
chapter10/kernel/sysv.xml Normal file
View File

@ -0,0 +1,35 @@
<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE note PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd">
<!-- Automatically generated by kernel-config.py
DO NOT EDIT! -->
<screen role="nodump" revision="sysv"><emphasis role='blue'>G</emphasis>eneral setup ---&gt;
[ ] <emphasis role='blue'>C</emphasis>ompile the kernel with warnings as errors [WERROR]
<emphasis role='blue'>C</emphasis>PU/Task time and stats accounting ---&gt;
[*] <emphasis role='blue'>P</emphasis>ressure stall information tracking [PSI]
[ ] <emphasis role='blue'>R</emphasis>equire boot parameter to enable pressure stall information tracking
... [PSI_DEFAULT_DISABLED]
&lt; &gt; <emphasis role='blue'>E</emphasis>nable kernel headers through /sys/kernel/kheaders.tar.xz [IKHEADERS]
[*] <emphasis role='blue'>C</emphasis>ontrol Group support ---&gt; [CGROUPS]
[*] M<emphasis role='blue'>e</emphasis>mory controller [MEMCG]
[ ] <emphasis role='blue'>C</emphasis>onfigure standard kernel features (expert users) ---&gt; [EXPERT]
<emphasis role='blue'>P</emphasis>rocessor type and features ---&gt;
[*] <emphasis role='blue'>B</emphasis>uild a relocatable kernel [RELOCATABLE]
[*] <emphasis role='blue'>R</emphasis>andomize the address of the kernel image (KASLR) [RANDOMIZE_BASE]
<emphasis role='blue'>G</emphasis>eneral architecture-dependent options ---&gt;
[*] <emphasis role='blue'>S</emphasis>tack Protector buffer overflow detection [STACKPROTECTOR]
[*] <emphasis role='blue'>S</emphasis>trong Stack Protector [STACKPROTECTOR_STRONG]
<emphasis role='blue'>D</emphasis>evice Drivers ---&gt;
<emphasis role='blue'>G</emphasis>eneric Driver Options ---&gt;
[ ] <emphasis role='blue'>S</emphasis>upport for uevent helper [UEVENT_HELPER]
[*] M<emphasis role='blue'>a</emphasis>intain a devtmpfs filesystem to mount at /dev [DEVTMPFS]
[*] <emphasis role='blue'>A</emphasis>utomount devtmpfs at /dev, after the kernel mounted the rootfs
... [DEVTMPFS_MOUNT]
<emphasis role='blue'>G</emphasis>raphics support ---&gt;
<emphasis role='blue'>F</emphasis>rame buffer Devices ---&gt;
&lt;*&gt; <emphasis role='blue'>S</emphasis>upport for frame buffer devices ---&gt; [FB]
<emphasis role='blue'>C</emphasis>onsole display driver support ---&gt;
[*] <emphasis role='blue'>F</emphasis>ramebuffer Console support [FRAMEBUFFER_CONSOLE]</screen>

View File

@ -0,0 +1,5 @@
X86_X2APIC='*'
PCI='*'
PCI_MSI='*'
IOMMU_SUPPORT='*'
IRQ_REMAP='*'

View File

@ -0,0 +1,13 @@
<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE note PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd">
<!-- Automatically generated by kernel-config.py
DO NOT EDIT! -->
<screen role="nodump"><emphasis role='blue'>P</emphasis>rocessor type and features ---&gt;
[*] <emphasis role='blue'>S</emphasis>upport x2apic [X86_X2APIC]
<emphasis role='blue'>D</emphasis>evice Drivers ---&gt;
[*] <emphasis role='blue'>P</emphasis>CI support ---&gt; [PCI]
[*] M<emphasis role='blue'>e</emphasis>ssage Signaled Interrupts (MSI and MSI-X) [PCI_MSI]
[*] <emphasis role='blue'>I</emphasis>OMMU Hardware Support ---&gt; [IOMMU_SUPPORT]
[*] <emphasis role='blue'>S</emphasis>upport for Interrupt Remapping [IRQ_REMAP]</screen>

View File

@ -4,7 +4,7 @@
# obfuscate email addresses in XML/HTML # obfuscate email addresses in XML/HTML
# Script written (and slight perl modification) by Archaic <archaic AT linuxfromscratch D0T org> # Script written (and slight perl modification) by Archaic <archaic AT linuxfromscratch D0T org>
# Modified from "sed -i" to old style "sed -e" by Manuel Canales <manuel AT linuxfromscratch D0T org> # Modified from "sed -i" to old style "sed -e" by Manuel Canales <manuel AT linuxfromscratch D0T org>
# to prevent hangs on very long files, like nonckunked books. # to prevent hangs on very long files, like nonchunked books.
# Original Perl expression by Anderson Lizardo <lizardo AT linuxfromscratch D0T org> # Original Perl expression by Anderson Lizardo <lizardo AT linuxfromscratch D0T org>
# Released under the GNU General Public License # Released under the GNU General Public License
# #

View File

@ -43,7 +43,6 @@
<!ENTITY automake-size "1,565 KB"> <!ENTITY automake-size "1,565 KB">
<!ENTITY automake-url "&gnu;automake/automake-&automake-version;.tar.xz"> <!ENTITY automake-url "&gnu;automake/automake-&automake-version;.tar.xz">
<!ENTITY automake-md5 "4017e96f89fca45ca946f1c5db6be714"> <!ENTITY automake-md5 "4017e96f89fca45ca946f1c5db6be714">
<!ENTITY automake-sha256 "80facc09885a57e6d49d06972c0ae1089c5fa8f4d4c7cfe5baea58e5085f136d">
<!ENTITY automake-home "&gnu-software;automake/"> <!ENTITY automake-home "&gnu-software;automake/">
<!ENTITY automake-fin-du "114 MB"> <!ENTITY automake-fin-du "114 MB">
<!ENTITY automake-fin-sbu "less than 0.1 SBU (about 7.3 SBU with tests)"> <!ENTITY automake-fin-sbu "less than 0.1 SBU (about 7.3 SBU with tests)">
@ -66,10 +65,10 @@
<!ENTITY bc-fin-du "7.6 MB"> <!ENTITY bc-fin-du "7.6 MB">
<!ENTITY bc-fin-sbu "less than 0.1 SBU"> <!ENTITY bc-fin-sbu "less than 0.1 SBU">
<!ENTITY binutils-version "2.40"> <!ENTITY binutils-version "2.41">
<!ENTITY binutils-size "24,650 KB"> <!ENTITY binutils-size "26,139 KB">
<!ENTITY binutils-url "https://sourceware.org/pub/binutils/releases/binutils-&binutils-version;.tar.xz"> <!ENTITY binutils-url "https://sourceware.org/pub/binutils/releases/binutils-&binutils-version;.tar.xz">
<!ENTITY binutils-md5 "007b59bd908a737c06e5a8d3d2c737eb"> <!ENTITY binutils-md5 "256d7e0ad998e423030c84483a7c1e30">
<!ENTITY binutils-home "&gnu-software;binutils/"> <!ENTITY binutils-home "&gnu-software;binutils/">
<!ENTITY binutils-tmpp1-du "639 MB"> <!ENTITY binutils-tmpp1-du "639 MB">
<!ENTITY binutils-tmpp1-sbu "1 SBU"> <!ENTITY binutils-tmpp1-sbu "1 SBU">
@ -77,6 +76,7 @@
<!ENTITY binutils-tmpp2-sbu "0.4 SBU"> <!ENTITY binutils-tmpp2-sbu "0.4 SBU">
<!ENTITY binutils-fin-du "2.6 GB"> <!ENTITY binutils-fin-du "2.6 GB">
<!ENTITY binutils-fin-sbu "2.2 SBU"> <!ENTITY binutils-fin-sbu "2.2 SBU">
<!ENTITY libsframe-version "1.0.0">
<!ENTITY bison-version "3.8.2"> <!ENTITY bison-version "3.8.2">
<!ENTITY bison-size "2,752 KB"> <!ENTITY bison-size "2,752 KB">
@ -172,10 +172,10 @@
<!ENTITY expect-tmp-du "3.9 MB"> <!ENTITY expect-tmp-du "3.9 MB">
<!ENTITY expect-tmp-sbu "0.2 SBU"> <!ENTITY expect-tmp-sbu "0.2 SBU">
<!ENTITY file-version "5.44"> <!ENTITY file-version "5.45">
<!ENTITY file-size "1,159 KB"> <!ENTITY file-size "1,218 KB">
<!ENTITY file-url "https://astron.com/pub/file/file-&file-version;.tar.gz"> <!ENTITY file-url "https://astron.com/pub/file/file-&file-version;.tar.gz">
<!ENTITY file-md5 "a60d586d49d015d842b9294864a89c7a"> <!ENTITY file-md5 "26b2a96d4e3a8938827a1e572afd527a">
<!ENTITY file-home "https://www.darwinsys.com/file/"> <!ENTITY file-home "https://www.darwinsys.com/file/">
<!ENTITY file-tmp-du "36 MB"> <!ENTITY file-tmp-du "36 MB">
<!ENTITY file-tmp-sbu "0.1 SBU"> <!ENTITY file-tmp-sbu "0.1 SBU">
@ -218,10 +218,10 @@
<!ENTITY gawk-fin-du "43 MB"> <!ENTITY gawk-fin-du "43 MB">
<!ENTITY gawk-fin-sbu "0.2 SBU"> <!ENTITY gawk-fin-sbu "0.2 SBU">
<!ENTITY gcc-version "13.1.0"> <!ENTITY gcc-version "13.2.0">
<!ENTITY gcc-size "85,402 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 "43e4de77f2218c83ca675257ea1af9ef"> <!ENTITY gcc-md5 "e0e48554cc6e4f261d55ddee9ab69075">
<!ENTITY gcc-sha256 ""> <!ENTITY gcc-sha256 "">
<!ENTITY gcc-home "https://gcc.gnu.org/"> <!ENTITY gcc-home "https://gcc.gnu.org/">
<!ENTITY gcc-tmpp1-du "3.8 GB"> <!ENTITY gcc-tmpp1-du "3.8 GB">
@ -256,20 +256,20 @@
<!ENTITY gettext-fin-du "241 MB"> <!ENTITY gettext-fin-du "241 MB">
<!ENTITY gettext-fin-sbu "1.3 SBU"> <!ENTITY gettext-fin-sbu "1.3 SBU">
<!ENTITY glibc-version "2.37"> <!ENTITY glibc-version "2.38">
<!ENTITY glibc-size "18,244 KB"> <!ENTITY glibc-size "18,471 KB">
<!ENTITY glibc-url "&gnu;glibc/glibc-&glibc-version;.tar.xz"> <!ENTITY glibc-url "&gnu;glibc/glibc-&glibc-version;.tar.xz">
<!ENTITY glibc-md5 "e89cf3dcb64939d29f04b4ceead5cc4e"> <!ENTITY glibc-md5 "778cce0ea6bf7f84ca8caacf4a01f45b">
<!ENTITY glibc-home "&gnu-software;libc/"> <!ENTITY glibc-home "&gnu-software;libc/">
<!ENTITY glibc-tmp-du "822 MB"> <!ENTITY glibc-tmp-du "822 MB">
<!ENTITY glibc-tmp-sbu "1.5 SBU"> <!ENTITY glibc-tmp-sbu "1.5 SBU">
<!ENTITY glibc-fin-du "2.9 GB"> <!ENTITY glibc-fin-du "2.9 GB">
<!ENTITY glibc-fin-sbu "11 SBU"> <!ENTITY glibc-fin-sbu "11 SBU">
<!ENTITY gmp-version "6.2.1"> <!ENTITY gmp-version "6.3.0">
<!ENTITY gmp-size "1,980 KB"> <!ENTITY gmp-size "2,046 KB">
<!ENTITY gmp-url "&gnu;gmp/gmp-&gmp-version;.tar.xz"> <!ENTITY gmp-url "&gnu;gmp/gmp-&gmp-version;.tar.xz">
<!ENTITY gmp-md5 "0b82665c4a92fd2ade7440c13fcaa42b"> <!ENTITY gmp-md5 "956dc04e864001a9c22429f761f2c283">
<!ENTITY gmp-home "&gnu-software;gmp/"> <!ENTITY gmp-home "&gnu-software;gmp/">
<!ENTITY gmp-fin-du "52 MB"> <!ENTITY gmp-fin-du "52 MB">
<!ENTITY gmp-fin-sbu "0.3 SBU"> <!ENTITY gmp-fin-sbu "0.3 SBU">
@ -318,10 +318,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 "20230629"> <!ENTITY iana-etc-version "20230804">
<!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 "8c2e8385391306edbf4ca26ed4930a71"> <!ENTITY iana-etc-md5 "449bdd47e3e9f0788f0bc6925afb6f22">
<!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">
@ -383,7 +383,7 @@
<!ENTITY less-fin-du "4.3 MB"> <!ENTITY less-fin-du "4.3 MB">
<!ENTITY less-fin-sbu "less than 0.1 SBU"> <!ENTITY less-fin-sbu "less than 0.1 SBU">
<!ENTITY lfs-bootscripts-version "20230722"> <!-- Scripts depend on this format --> <!ENTITY lfs-bootscripts-version "20230728"> <!-- Scripts depend on this format -->
<!ENTITY lfs-bootscripts-size "BOOTSCRIPTS-SIZE KB"> <!ENTITY lfs-bootscripts-size "BOOTSCRIPTS-SIZE KB">
<!ENTITY lfs-bootscripts-url "&downloads-root;lfs-bootscripts-&lfs-bootscripts-version;.tar.xz"> <!ENTITY lfs-bootscripts-url "&downloads-root;lfs-bootscripts-&lfs-bootscripts-version;.tar.xz">
<!ENTITY lfs-bootscripts-md5 "BOOTSCRIPTS-MD5SUM"> <!ENTITY lfs-bootscripts-md5 "BOOTSCRIPTS-MD5SUM">
@ -433,12 +433,12 @@
<!ENTITY linux-major-version "6"> <!ENTITY linux-major-version "6">
<!ENTITY linux-minor-version "4"> <!ENTITY linux-minor-version "4">
<!ENTITY linux-patch-version "3"> <!ENTITY linux-patch-version "8">
<!--<!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 "134,557 KB"> <!ENTITY linux-size "134,589 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 "c83363136e61977c63d655733424d37a"> <!ENTITY linux-md5 "80f135995e79ed48c61064d151155bd7">
<!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 5.13.4 / gcc-11.1.0 on x86_64 : minimum is
allnoconfig rounded down to allow for ongoing cleanups, allnoconfig rounded down to allow for ongoing cleanups,
@ -477,10 +477,10 @@
<!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">
<!ENTITY man-pages-version "6.04"> <!ENTITY man-pages-version "6.05.01">
<!ENTITY man-pages-size "2,137 KB"> <!ENTITY man-pages-size "2,144 KB">
<!ENTITY man-pages-url "&kernel;linux/docs/man-pages/man-pages-&man-pages-version;.tar.xz"> <!ENTITY man-pages-url "&kernel;linux/docs/man-pages/man-pages-&man-pages-version;.tar.xz">
<!ENTITY man-pages-md5 "bbce1456edfa75a66c189cc594af6c4d"> <!ENTITY man-pages-md5 "de4563b797cf9b1e0b0d73628b35e442">
<!ENTITY man-pages-home "https://www.kernel.org/doc/man-pages/"> <!ENTITY man-pages-home "https://www.kernel.org/doc/man-pages/">
<!ENTITY man-pages-fin-du "32 MB"> <!ENTITY man-pages-fin-du "32 MB">
<!ENTITY man-pages-fin-sbu "less than 0.1 SBU"> <!ENTITY man-pages-fin-sbu "less than 0.1 SBU">
@ -493,10 +493,10 @@
<!ENTITY markupsafe-fin-du "544 KB"> <!ENTITY markupsafe-fin-du "544 KB">
<!ENTITY markupsafe-fin-sbu "less than 0.1 SBU"> <!ENTITY markupsafe-fin-sbu "less than 0.1 SBU">
<!ENTITY meson-version "1.1.1"> <!ENTITY meson-version "1.2.0">
<!ENTITY meson-size "2,076 KB"> <!ENTITY meson-size "2,132 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 "0f810b31b26156989ac9321fa2063a04"> <!ENTITY meson-md5 "677616183f2c5e03e2139b06280129a0">
<!ENTITY meson-home "https://mesonbuild.com"> <!ENTITY meson-home "https://mesonbuild.com">
<!ENTITY meson-fin-du "41 MB"> <!ENTITY meson-fin-du "41 MB">
<!ENTITY meson-fin-sbu "less than 0.1 SBU"> <!ENTITY meson-fin-sbu "less than 0.1 SBU">
@ -535,10 +535,10 @@
<!ENTITY ninja-fin-du "77 MB"> <!ENTITY ninja-fin-du "77 MB">
<!ENTITY ninja-fin-sbu "0.3 SBU"> <!ENTITY ninja-fin-sbu "0.3 SBU">
<!ENTITY openssl-version "3.1.1"> <!ENTITY openssl-version "3.1.2">
<!ENTITY openssl-size "15,181 KB"> <!ENTITY openssl-size "15,196 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 "1864b75e31fb4a6e0a07fd832529add3"> <!ENTITY openssl-md5 "1d7861f969505e67b8677e205afd9ff4">
<!ENTITY openssl-home "https://www.openssl.org/"> <!ENTITY openssl-home "https://www.openssl.org/">
<!ENTITY openssl-fin-du "520 MB"> <!ENTITY openssl-fin-du "520 MB">
<!ENTITY openssl-fin-sbu "3.2 SBU"> <!ENTITY openssl-fin-sbu "3.2 SBU">
@ -567,12 +567,12 @@
<!ENTITY perl-fin-du "234 MB"> <!ENTITY perl-fin-du "234 MB">
<!ENTITY perl-fin-sbu "7.9 SBU"> <!ENTITY perl-fin-sbu "7.9 SBU">
<!ENTITY pkgconf-version "1.9.5"> <!ENTITY pkgconf-version "2.0.0">
<!ENTITY pkgconf-size "304 KB"> <!ENTITY pkgconf-size "303 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 "0a8b69723bef4ebad83e9c8b43a75cc7"> <!ENTITY pkgconf-md5 "42ac3b1291aba9681136a74996ebffcd">
<!ENTITY pkgconf-home "http://pkgconf.org/"> <!ENTITY pkgconf-home "http://pkgconf.org/">
<!ENTITY pkgconf-fin-du "8.1 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">
<!ENTITY procps-ng-version "4.0.3"> <!ENTITY procps-ng-version "4.0.3">
@ -643,20 +643,20 @@
<!ENTITY sysklogd-fin-du "0.7 MB"> <!ENTITY sysklogd-fin-du "0.7 MB">
<!ENTITY sysklogd-fin-sbu "less than 0.1 SBU"> <!ENTITY sysklogd-fin-sbu "less than 0.1 SBU">
<!ENTITY systemd-version "253"> <!ENTITY systemd-version "254">
<!--<!ENTITY systemd-stable "6b4878d">--> <!--<!ENTITY systemd-stable "6b4878d">-->
<!-- The above entity is used whenever we move to a stable backport branch. In the event of a critical problem or kernel <!-- The above entity is used whenever we move to a stable backport branch. In the event of a critical problem or kernel
change that is incompatible, we will switch to the backport branch until the next stable release. --> change that is incompatible, we will switch to the backport branch until the next stable release. -->
<!ENTITY systemd-size "11,708 KB"> <!ENTITY systemd-size "13,985 KB">
<!ENTITY systemd-url "&github;/systemd/systemd/archive/v&systemd-version;/systemd-&systemd-version;.tar.gz"> <!ENTITY systemd-url "&github;/systemd/systemd/archive/v&systemd-version;/systemd-&systemd-version;.tar.gz">
<!--<!ENTITY systemd-url "&anduin-sources;/systemd-&systemd-version;-&systemd-stable;.tar.xz">--> <!--<!ENTITY systemd-url "&anduin-sources;/systemd-&systemd-version;-&systemd-stable;.tar.xz">-->
<!ENTITY systemd-md5 "7cf12ee8a91a04306fc6cf290eed42e8"> <!ENTITY systemd-md5 "0d266e5361dc72097b6c18cfde1c0001">
<!ENTITY systemd-home "https://www.freedesktop.org/wiki/Software/systemd/"> <!ENTITY systemd-home "https://www.freedesktop.org/wiki/Software/systemd/">
<!ENTITY systemd-man-version "253"> <!ENTITY systemd-man-version "254">
<!ENTITY systemd-man-size "600 KB"> <!ENTITY systemd-man-size "626 KB">
<!--<!ENTITY systemd-man-url "&anduin-sources;/systemd-man-pages-&systemd-version;-&systemd-stable;.tar.xz">--> <!--<!ENTITY systemd-man-url "&anduin-sources;/systemd-man-pages-&systemd-version;-&systemd-stable;.tar.xz">-->
<!ENTITY systemd-man-url "&anduin-sources;/systemd-man-pages-&systemd-man-version;.tar.xz"> <!ENTITY systemd-man-url "&anduin-sources;/systemd-man-pages-&systemd-man-version;.tar.xz">
<!ENTITY systemd-man-md5 "8b54792c9433fc8db8e5d10db326802d"> <!ENTITY systemd-man-md5 "fc32faeac581e1890ca27fcea3858410">
<!ENTITY systemd-fin-du "258 MB"> <!ENTITY systemd-fin-du "258 MB">
<!ENTITY systemd-fin-sbu "0.7 SBU"> <!ENTITY systemd-fin-sbu "0.7 SBU">
@ -668,10 +668,10 @@
<!ENTITY sysvinit-fin-du "4.4 MB"> <!ENTITY sysvinit-fin-du "4.4 MB">
<!ENTITY sysvinit-fin-sbu "less than 0.1 SBU"> <!ENTITY sysvinit-fin-sbu "less than 0.1 SBU">
<!ENTITY tar-version "1.34"> <!ENTITY tar-version "1.35">
<!ENTITY tar-size "2,174 KB"> <!ENTITY tar-size "2,263 KB">
<!ENTITY tar-url "&gnu;tar/tar-&tar-version;.tar.xz"> <!ENTITY tar-url "&gnu;tar/tar-&tar-version;.tar.xz">
<!ENTITY tar-md5 "9a08d29a9ac4727130b5708347c0f5cf"> <!ENTITY tar-md5 "a2d8042658cfd8ea939e6d911eaf4152">
<!ENTITY tar-home "&gnu-software;tar/"> <!ENTITY tar-home "&gnu-software;tar/">
<!ENTITY tar-tmp-du "38 MB"> <!ENTITY tar-tmp-du "38 MB">
<!ENTITY tar-tmp-sbu "0.1 SBU"> <!ENTITY tar-tmp-sbu "0.1 SBU">
@ -709,10 +709,10 @@
<!ENTITY udev-fin-du "130 MB"> <!ENTITY udev-fin-du "130 MB">
<!ENTITY udev-fin-sbu "0.2 SBU"> <!ENTITY udev-fin-sbu "0.2 SBU">
<!ENTITY udev-lfs-version "udev-lfs-20171102"> <!ENTITY udev-lfs-version "udev-lfs-20230728">
<!ENTITY udev-lfs-size "11 KB"> <!ENTITY udev-lfs-size "10 KB">
<!ENTITY udev-lfs-url "&anduin-sources;/&udev-lfs-version;.tar.xz"> <!ENTITY udev-lfs-url "&anduin-sources;/&udev-lfs-version;.tar.xz">
<!ENTITY udev-lfs-md5 "27cd82f9a61422e186b9d6759ddf1634"> <!ENTITY udev-lfs-md5 "8a3b921e3a28d36ac46d17137d920268">
<!ENTITY udev-lfs-home " "> <!ENTITY udev-lfs-home " ">
<!ENTITY util-linux-minor "2.39"> <!ENTITY util-linux-minor "2.39">
@ -726,21 +726,21 @@
<!ENTITY util-linux-fin-du "283 MB"> <!ENTITY util-linux-fin-du "283 MB">
<!ENTITY util-linux-fin-sbu "0.5 SBU"> <!ENTITY util-linux-fin-sbu "0.5 SBU">
<!ENTITY vim-version "9.0.1671"> <!ENTITY vim-version "9.0.1677">
<!-- <!ENTITY vim-majmin "90"> --> <!-- <!ENTITY vim-majmin "90"> -->
<!ENTITY vim-docdir "vim/vim90"> <!ENTITY vim-docdir "vim/vim90">
<!ENTITY vim-size "16,669 KB"> <!ENTITY vim-size "16,670 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 "243fce49db0dd93af7c2b12163f47fcf"> <!ENTITY vim-md5 "65e6b09ef0628a2d8eba79f1d1d5a564">
<!ENTITY vim-home "https://www.vim.org"> <!ENTITY vim-home "https://www.vim.org">
<!ENTITY vim-fin-du "235 MB"> <!ENTITY vim-fin-du "235 MB">
<!ENTITY vim-fin-sbu "2.4 SBU"> <!ENTITY vim-fin-sbu "2.4 SBU">
<!ENTITY wheel-version "0.40.0"> <!ENTITY wheel-version "0.41.1">
<!ENTITY wheel-size "96 KB"> <!ENTITY wheel-size "96 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 "ec5004c46d1905da98bb5bc1a10ddd21"> <!ENTITY wheel-md5 "181cb3f4d8ed340c904a0e1c416d341d">
<!ENTITY wheel-home "&pypi-home;/wheel/"> <!ENTITY wheel-home "&pypi-home;/wheel/">
<!ENTITY wheel-fin-du "1.3 MB"> <!ENTITY wheel-fin-du "1.3 MB">
<!ENTITY wheel-fin-sbu "less than 0.1 SBU"> <!ENTITY wheel-fin-sbu "less than 0.1 SBU">
@ -753,10 +753,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.3"> <!ENTITY xz-version "5.4.4">
<!ENTITY xz-size "1,628 KB"> <!ENTITY xz-size "1,623 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 "0bc7220eab3cc37018e0f1965b6ce75a"> <!ENTITY xz-md5 "d83d6f64a64f88759e312b8a38c3add6">
<!ENTITY xz-home "https://tukaani.org/xz"> <!ENTITY xz-home "https://tukaani.org/xz">
<!ENTITY xz-tmp-du "20 MB"> <!ENTITY xz-tmp-du "20 MB">
<!ENTITY xz-tmp-sbu "0.1 SBU"> <!ENTITY xz-tmp-sbu "0.1 SBU">

View File

@ -371,7 +371,7 @@
<systemitem class='library'>libcrypt</systemitem> library <systemitem class='library'>libcrypt</systemitem> library
needed by various packages (notably, Shadow) for hashing passwords. needed by various packages (notably, Shadow) for hashing passwords.
It replaces the obsolete It replaces the obsolete
<systemitem class='library'>libcrypt</systemitem> implmentation in <systemitem class='library'>libcrypt</systemitem> implementation in
Glibc.</para> Glibc.</para>
</listitem> </listitem>

View File

@ -265,6 +265,9 @@ li.chapter h4 a {
margin: .6em 0 .2em 0; margin: .6em 0 .2em 0;
} }
span.blue {
color: #2ac;
}
/* Index */ /* Index */
.item { .item {

View File

@ -6,9 +6,3 @@
SUBSYSTEM=="rtc", ACTION=="add", MODE="0644", RUN+="/etc/rc.d/init.d/setclock start" SUBSYSTEM=="rtc", ACTION=="add", MODE="0644", RUN+="/etc/rc.d/init.d/setclock start"
KERNEL=="rtc", ACTION=="add", MODE="0644", RUN+="/etc/rc.d/init.d/setclock start" KERNEL=="rtc", ACTION=="add", MODE="0644", RUN+="/etc/rc.d/init.d/setclock start"
# Comms devices
KERNEL=="ippp[0-9]*", GROUP="dialout"
KERNEL=="isdn[0-9]*", GROUP="dialout"
KERNEL=="isdnctrl[0-9]*", GROUP="dialout"
KERNEL=="dcbri[0-9]*", GROUP="dialout"

View File

@ -7,14 +7,9 @@ Description of rules:
By default, Udev creates device nodes with UID 0, GID 0, and permissions 0660. By default, Udev creates device nodes with UID 0, GID 0, and permissions 0660.
ISDN-related devices should be owned by the 'dialout' group, hence the following The RTC-related rule causes the setclock bootscript to be run as soon as the
rule (and similar):
KERNEL=="ippp[0-9]*", GROUP="dialout"
The RTC-related rules cause the setclock bootscript to be run as soon as the
RTC device has been created by Udev, meaning that times in log files, for RTC device has been created by Udev, meaning that times in log files, for
example, are as accurate as possible as quickly as possible. example, are as accurate as possible as quickly as possible.
A final word of caution: Any particular rule must be written on one line, and a A word of caution: A comma must separate each part of the rule. A rule can span
comma must separate each part of the rule. multiple lines if the newline is escaped by a backslash.

View File

@ -1,3 +0,0 @@
# /etc/udev/rules.d/81-cdrom.rules: Set CD-ROM permissions and get device capabilities
ACTION=="add", SUBSYSTEM=="block", ENV{ID_TYPE}=="cd", IMPORT{program}="cdrom_id --export $tempnode", GROUP="cdrom"

View File

@ -1,13 +0,0 @@
# /etc/udev/rules.d/83-cdrom-symlinks.rules: Determine CD drive capability.
ACTION!="add", GOTO="cd_aliases_generator_end"
SUBSYSTEM!="block", GOTO="cd_aliases_generator_end"
ENV{GENERATED}=="?*", GOTO="cd_aliases_generator_end"
# Fail the uevent if the autogenerated rules cannot be saved
ENV{ID_CDROM}=="?*", PROGRAM="/bin/grep -c ' / [^[:space:]]* rw' /proc/mounts", \
RESULT!="1", RUN+="/bin/false", GOTO="cd_aliases_generator_end"
ENV{ID_CDROM}=="?*", PROGRAM="write_cd_rules", SYMLINK+="%c"
LABEL="cd_aliases_generator_end"

View File

@ -1,3 +1,7 @@
2023-07-28 <bdubbs@linuxfromscratch.org>
* Remove obsolete 83-cdrom-symlinks.rules and 81-cdrom.rules
* Remove references to obsolete ISDN devices
2017-10-27 <bdubbs@linuxfromscratch.org> 2017-10-27 <bdubbs@linuxfromscratch.org>
* 83-cdrom-symlinks.rules: Adjust test for writable root directory. * 83-cdrom-symlinks.rules: Adjust test for writable root directory.

View File

@ -3,7 +3,7 @@
# vim: tabstop=3 # vim: tabstop=3
VERSION=20171102 VERSION=20230728
SHELL=/bin/bash SHELL=/bin/bash
ifeq ($(V),) ifeq ($(V),)
@ -16,15 +16,14 @@ all:
@echo "Use the install target" @echo "Use the install target"
install: install:
@mkdir -pv $(DESTDIR)/lib/udev/rules.d \ @mkdir -pv $(DESTDIR)/usr/lib/udev/rules.d \
$(DESTDIR)/etc/udev/rules.d \ $(DESTDIR)/etc/udev/rules.d \
$(DESTDIR)/usr/share/doc/udev-$(VERSION)/lfs $(DESTDIR)/usr/share/doc/udev-$(VERSION)/lfs
# Copy rules # Copy rules
@cp -v udev-lfs-$(VERSION)/*.rules $(DESTDIR)/etc/udev/rules.d @cp -v udev-lfs-$(VERSION)/*.rules $(DESTDIR)/etc/udev/rules.d
@cp -v udev-lfs-$(VERSION)/*_rules \ @cp -v udev-lfs-$(VERSION)/init-net-rules.sh \
udev-lfs-$(VERSION)/init-net-rules.sh \ udev-lfs-$(VERSION)/rule_generator.functions $(DESTDIR)/usr/lib/udev
udev-lfs-$(VERSION)/rule_generator.functions $(DESTDIR)/lib/udev
# Copy documentation # Copy documentation
@cp -v udev-lfs-$(VERSION)/README $(DESTDIR)/usr/share/doc/udev-$(VERSION)/lfs @cp -v udev-lfs-$(VERSION)/README $(DESTDIR)/usr/share/doc/udev-$(VERSION)/lfs

View File

@ -14,9 +14,7 @@ Makefile.lfs - The LFS Makefile. Installs udev rules for LFS.
contrib - Useful rules from debian contrib - Useful rules from debian
contrib/debian contrib/debian
contrib/debian/83-cdrom-symlinks.rules
contrib/debian/write_cd_aliases contrib/debian/write_cd_aliases
contrib/debian/81-cdrom.rules
55-lfs.rules - LFS custom rules 55-lfs.rules - LFS custom rules
write_net_rules - Scripts for LFS rules write_net_rules - Scripts for LFS rules