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

This commit is contained in:
Xi Ruoyao 2024-02-27 23:52:31 +08:00
commit 328eb6f3bb
No known key found for this signature in database
GPG Key ID: ACAAD20E19E710E3
69 changed files with 1008 additions and 690 deletions

View File

@ -1,7 +1,4 @@
# vim:ts=3
#BASEDIR = ~/lfs-book
#SYSDDIR = ~/lfs-systemd
#DUMPDIR = ~/lfs-commands
RENDERTMP = $(HOME)/tmp
CHUNK_QUIET = 1
ROOT_ID =
@ -24,15 +21,15 @@ ifneq ($(REV), sysv)
endif
ifeq ($(REV), sysv)
BASEDIR ?= ~/public_html/lfs-book
BASEDIR ?= $(HOME)/public_html/lfs-book
PDF_OUTPUT ?= LFS-BOOK.pdf
NOCHUNKS_OUTPUT ?= LFS-BOOK.html
DUMPDIR ?= ~/lfs-commands
DUMPDIR ?= $(HOME)/lfs-commands
else
BASEDIR ?= ~/public_html/lfs-systemd
BASEDIR ?= $(HOME)/public_html/lfs-systemd
PDF_OUTPUT ?= LFS-SYSD-BOOK.pdf
NOCHUNKS_OUTPUT ?= LFS-SYSD-BOOK.html
DUMPDIR ?= ~/lfs-sysd-commands
DUMPDIR ?= $(HOME)/lfs-sysd-commands
endif
book: validate profile-html
@ -47,7 +44,8 @@ book: validate profile-html
@echo "Copying CSS code and images..."
$(Q)mkdir -p $(BASEDIR)/stylesheets
$(Q)cp stylesheets/lfs-xsl/*.css $(BASEDIR)/stylesheets
$(Q)sed -i 's|../stylesheet|stylesheet|' $(BASEDIR)/index.html
$(Q)sed -e 's|../stylesheet|stylesheet|' \
-i $(BASEDIR)/index.html
$(Q)mkdir -p $(BASEDIR)/images
$(Q)cp images/*.png $(BASEDIR)/images
@ -55,11 +53,10 @@ book: validate profile-html
@echo "Running Tidy and obfuscate.sh..."
$(Q)for filename in `find $(BASEDIR) -name "*.html"`; do \
tidy -config tidy.conf $$filename; \
true; \
/bin/bash obfuscate.sh $$filename; \
sed -e "s@text/html@application/xhtml+xml@g" \
sed -e "s|text/html|application/xhtml+xml|g" \
-i $$filename; \
done;
done
$(Q)$(MAKE) --no-print-directory wget-list md5sums
@ -98,16 +95,16 @@ nochunks: validate profile-html
--output $(BASEDIR)/$(NOCHUNKS_OUTPUT) \
stylesheets/lfs-nochunks.xsl \
$(RENDERTMP)/lfs-html.xml
# $(RENDERTMP)/lfs-html2.xml
@echo "Running Tidy..."
$(Q)tidy -config tidy.conf $(BASEDIR)/$(NOCHUNKS_OUTPUT) || true
$(Q)tidy -config tidy.conf $(BASEDIR)/$(NOCHUNKS_OUTPUT) || test $$? -le 1
@echo "Running obfuscate.sh..."
$(Q)bash obfuscate.sh $(BASEDIR)/$(NOCHUNKS_OUTPUT)
$(Q)sed -i -e "s@text/html@application/xhtml+xml@g" $(BASEDIR)/$(NOCHUNKS_OUTPUT)
$(Q)sed -i -e "s@../wget-list@wget-list@" $(BASEDIR)/$(NOCHUNKS_OUTPUT)
$(Q)sed -i -e "s@../md5sums@md5sums@" $(BASEDIR)/$(NOCHUNKS_OUTPUT)
$(Q)sed -e "s|text/html|application/xhtml+xml|g" \
-e "s|../wget-list|wget-list|" \
-e "s|../md5sums|md5sums|" \
-i $(BASEDIR)/$(NOCHUNKS_OUTPUT)
@echo "Output at $(BASEDIR)/$(NOCHUNKS_OUTPUT)"
@ -126,16 +123,16 @@ validate: tmpdir version
@echo "Adjusting for revision $(REV)..."
$(Q)xsltproc --nonet \
--xinclude \
--output $(RENDERTMP)/lfs-html2.xml \
--stringparam profile.revision $(REV) \
--output $(RENDERTMP)/lfs-html2.xml \
stylesheets/lfs-xsl/profile.xsl \
index.xml
@echo "Validating the book..."
$(Q)xmllint --nonet \
--noent \
--encode UTF-8 \
--postvalid \
-o $(RENDERTMP)/lfs-full.xml \
--output $(RENDERTMP)/lfs-full.xml \
$(RENDERTMP)/lfs-html2.xml
$(Q)rm -f appendices/*.script
@ -157,18 +154,21 @@ wget-list: $(BASEDIR)/wget-list $(BASEDIR)/wget-list-$(REV)
$(BASEDIR)/wget-list: stylesheets/wget-list.xsl $(DOWNLOADS_DEP)
@echo "Generating consolidated wget list at $(BASEDIR)/wget-list ..."
$(Q)mkdir -p $(BASEDIR)
$(Q)xsltproc --xinclude --nonet \
$(Q)xsltproc --nonet \
--xinclude \
--output $(BASEDIR)/wget-list \
stylesheets/wget-list.xsl \
chapter03/chapter03.xml
$(BASEDIR)/wget-list-$(REV): stylesheets/wget-list.xsl $(DOWNLOADS_DEP)
$(Q)xsltproc --nonet --xinclude \
$(Q)xsltproc --nonet \
--xinclude \
--stringparam profile.revision $(REV) \
--output $(RENDERTMP)/wget-list.xml \
stylesheets/lfs-xsl/profile.xsl \
chapter03/chapter03.xml
$(Q)xsltproc --xinclude --nonet \
$(Q)xsltproc --nonet \
--output $(BASEDIR)/wget-list-$(REV) \
stylesheets/wget-list.xsl \
$(RENDERTMP)/wget-list.xml
@ -178,13 +178,14 @@ $(BASEDIR)/md5sums: stylesheets/wget-list.xsl $(DOWNLOADS_DEP)
@echo "Generating consolidated md5sum file at $(BASEDIR)/md5sums ..."
$(Q)mkdir -p $(BASEDIR)
$(Q)xsltproc --nonet --xinclude \
$(Q)xsltproc --nonet \
--xinclude \
--stringparam profile.revision $(REV) \
--output $(RENDERTMP)/md5sum.xml \
stylesheets/lfs-xsl/profile.xsl \
chapter03/chapter03.xml
$(Q)xsltproc --xinclude --nonet \
$(Q)xsltproc --nonet \
--output $(BASEDIR)/md5sums \
stylesheets/md5sum.xsl \
$(RENDERTMP)/md5sum.xml

View File

@ -1047,7 +1047,15 @@
<segmentedlist id="gettext-optdeps">
<segtitle>&external;</segtitle>
<seglistitem>
<seg>None</seg>
<seg>
<ulink url='&blfs-book;general/libunistring.html'>
libunistring
</ulink>
and
<ulink url='&blfs-book;general/libxml2.html'>
libxml2
</ulink>
</seg>
</seglistitem>
</segmentedlist>
@ -1566,7 +1574,9 @@
<segmentedlist id="kbd-optdeps">
<segtitle>&external;</segtitle>
<seglistitem>
<seg>None</seg>
<seg>
<ulink url="&blfs-book;postlfs/linux-pam.html">Linux-PAM</ulink>
</seg>
</seglistitem>
</segmentedlist>
@ -2470,7 +2480,7 @@
<segmentedlist id="perl-testdeps">
<segtitle>&testsuites;</segtitle>
<seglistitem>
<seg>Iana-Etc, Less. and Procps-ng</seg>
<seg>Iana-Etc, Less, and Procps-ng</seg>
</seglistitem>
</segmentedlist>

View File

@ -40,6 +40,124 @@
appropriate for the entry or if needed the entire day's listitem.
-->
<listitem>
<para>2024-02-14</para>
<itemizedlist>
<listitem>
<para>[bdubbs] - Update to meson-1.3.2. Fixes
<ulink url='&lfs-ticket-root;5442'>#5442</ulink>.</para>
</listitem>
</itemizedlist>
</listitem>
<listitem>
<para>2024-02-12</para>
<itemizedlist>
<listitem>
<para>[bdubbs] - Update to shadow-4.14.5. Fixes
<ulink url='&lfs-ticket-root;5437'>#5437</ulink>.</para>
</listitem>
<listitem>
<para>[bdubbs] - Update to setuptools-69.1.0 (Python module). Fixes
<ulink url='&lfs-ticket-root;5439'>#5439</ulink>.</para>
</listitem>
<listitem>
<para>[bdubbs] - Update to python-3.12.2. Fixes
<ulink url='&lfs-ticket-root;5434'>#5434</ulink>.</para>
</listitem>
<listitem>
<para>[bdubbs] - Update to pkgconf-2.1.1. Fixes
<ulink url='&lfs-ticket-root;5432'>#5432</ulink>.</para>
</listitem>
<listitem>
<para>[bdubbs] - Update to MarkupSafe-2.1.5 (Python module). Fixes
<ulink url='&lfs-ticket-root;5431'>#5431</ulink>.</para>
</listitem>
<listitem>
<para>[bdubbs] - Update to man-pages-6.06. Fixes
<ulink url='&lfs-ticket-root;5438'>#5438</ulink>.</para>
</listitem>
<listitem>
<para>[bdubbs] - Update to expat-2.6.0. Fixes
<ulink url='&lfs-ticket-root;5435'>#5435</ulink>.</para>
</listitem>
<listitem>
<para>[bdubbs] - Update to linux-6.7.4. Fixes
<ulink url='&lfs-ticket-root;5433'>#5433</ulink>.</para>
</listitem>
</itemizedlist>
</listitem>
<listitem revision='systemd'>
<para>2024-02-10</para>
<itemizedlist>
<listitem>
<para>[xry111] - Fix a bug in systemd breaking running
systemd-analyze on an instantiated systemd unit.</para>
</listitem>
</itemizedlist>
</listitem>
<listitem>
<para>2024-02-02</para>
<itemizedlist>
<listitem>
<para>[xry111] - Update to tzdata-2024a. Fixes
<ulink url='&lfs-ticket-root;5428'>#5428</ulink>.</para>
</listitem>
<listitem>
<para>[xry111] - Update to glibc-2.39 (security fix). Fixes
<ulink url='&lfs-ticket-root;5426'>#5426</ulink>.</para>
</listitem>
<listitem>
<para>[xry111] - Update to linux-6.7.3. Fixes
<ulink url='&lfs-ticket-root;5427'>#5427</ulink>.</para>
</listitem>
</itemizedlist>
</listitem>
<listitem>
<para>2024-02-01</para>
<itemizedlist>
<listitem>
<para>[bdubbs] - Update to openssl-3.2.1 (security fix). Fixes
<ulink url='&lfs-ticket-root;5425'>#5425</ulink>.</para>
</listitem>
<listitem>
<para>[bdubbs] - Update to zlib-1.3.1. Fixes
<ulink url='&lfs-ticket-root;5419'>#5419</ulink>.</para>
</listitem>
<listitem>
<para>[bdubbs] - Update to xz-5.4.6. Fixes
<ulink url='&lfs-ticket-root;5423'>#5423</ulink>.</para>
</listitem>
<listitem>
<para>[bdubbs] - Update to linux-6.7.2. Fixes
<ulink url='&lfs-ticket-root;5422'>#5422</ulink>.</para>
</listitem>
<listitem>
<para>[bdubbs] - Update to iana-etc-20240125. Addresses
<ulink url='&lfs-ticket-root;5006'>#5006</ulink>.</para>
</listitem>
<listitem>
<para>[bdubbs] - Update to binutils-2.42. Fixes
<ulink url='&lfs-ticket-root;5424'>#5424</ulink>.</para>
</listitem>
<listitem>
<para>[bdubbs] - Update to acl-2.3.2. Fixes
<ulink url='&lfs-ticket-root;5421'>#5421</ulink>.</para>
</listitem>
<listitem>
<para>[bdubbs] - Update upstream fixes for readline-8.2. Fixes
<ulink url='&lfs-ticket-root;5420'>#5420</ulink>.</para>
</listitem>
<listitem>
<para>[bdubbs] - Apply upstream fix for bash-5.2.21. Fixes
<ulink url='&lfs-ticket-root;5420'>#5420</ulink>.</para>
</listitem>
</itemizedlist>
</listitem>
<listitem>
<para>2024-01-21</para>
<itemizedlist>
@ -579,7 +697,8 @@
<ulink url='&lfs-ticket-root;5330'>#5330</ulink>.</para>
</listitem>
<listitem>
<para>[bdubbs] - Update to procps-ng-4.0.4. Fixes
<para>[bdubbs] - Update to procps-ng-4.0.4 (security fix
for 32-bit systems). Fixes
<ulink url='&lfs-ticket-root;5335'>#5335</ulink>.</para>
</listitem>
<listitem>

View File

@ -26,9 +26,9 @@
<!--<listitem>
<para>None</para>
</listitem>-->
<!--<listitem>
<listitem>
<para>Acl-&acl-version;</para>
</listitem>-->
</listitem>
<listitem>
<para>Attr-&attr-version;</para>
</listitem>
@ -44,9 +44,9 @@
<listitem>
<para>Bc-&bc-version;</para>
</listitem>
<!--<listitem>
<listitem>
<para>Binutils-&binutils-version;</para>
</listitem>-->
</listitem>
<!--<listitem>
<para>Bison-&bison-version;</para>
</listitem>-->
@ -71,9 +71,9 @@
<!--<listitem>
<para>E2fsprogs-&e2fsprogs-version;</para>
</listitem>-->
<!--<listitem>
<listitem>
<para>Expat-&expat-version;</para>
</listitem>-->
</listitem>
<!--<listitem>
<para>Expect-&expect-version;</para>
</listitem>-->
@ -101,9 +101,9 @@
<listitem>
<para>Gettext-&gettext-version;</para>
</listitem>
<!--<listitem>
<listitem>
<para>Glibc-&glibc-version;</para>
</listitem>-->
</listitem>
<!--<listitem>
<para>GMP-&gmp-version;</para>
</listitem>-->
@ -176,9 +176,9 @@
<listitem>
<para>Man-DB-&man-db-version;</para>
</listitem>
<!--<listitem>
<listitem>
<para>Man-pages-&man-pages-version;</para>
</listitem>-->
</listitem>
<listitem>
<para>MarkupSafe-&markupsafe-version;</para>
</listitem>
@ -224,9 +224,9 @@
<!--<listitem>
<para>Sed-&sed-version;</para>
</listitem>-->
<!--<listitem> After version 12.1 release - see Added
<listitem> <!-- After version 12.1 release - see Added -->
<para>Setuptools-&setuptools-version;</para>
</listitem>-->
</listitem>
<listitem>
<para>Shadow-&shadow-version;</para>
</listitem>
@ -291,21 +291,21 @@
<listitem><para></para></listitem> <!-- satisfy build -->
<listitem>
<para>setuptools-&setuptools-version;</para>
</listitem>
<listitem>
<para>&glibc-upstream-fixes-patch;</para>
</listitem>
<listitem>
<para>&pkgconf-upstream-fix-patch;</para>
<para>&bash-upstream-fixes-patch;</para>
</listitem>
<listitem>
<para>&readline-fixes-patch;</para>
</listitem>
<listitem>
<para>setuptools-&setuptools-version;</para>
</listitem>
<listitem>
<para>&systemd-upstream-patch;</para>
</listitem>
</itemizedlist>
<itemizedlist>

View File

@ -40,7 +40,8 @@
<filename class="devicefile">/dev/sda</filename> for the primary
disk drive. Create a Linux native partition and a
<systemitem class="filesystem">swap</systemitem> partition, if needed. Please
refer to <filename>cfdisk(8)</filename> or <filename>fdisk(8)</filename> if
refer to <ulink role='man' url='&man;cfdisk.8'>cfdisk(8)</ulink> or
<ulink role='man' url='&man;fdisk.8'>fdisk(8)</ulink> if
you do not yet know how to use the programs.</para>
<note><para>For experienced users, other partitioning schemes are possible.

View File

@ -29,9 +29,10 @@
minimum versions indicated. This should not be an issue for most
modern Linux distributions. Also note that many distributions will
place software headers into separate packages, often in the form of
<quote>&lt;package-name&gt;-devel</quote> or
<quote>&lt;package-name&gt;-dev</quote>. Be sure to install those if
your distribution provides them.</para>
<literal><replaceable>&lt;package-name&gt;</replaceable>-devel</literal>
or
<literal><replaceable>&lt;package-name&gt;</replaceable>-dev</literal>.
Be sure to install those if your distribution provides them.</para>
<para>Earlier versions of the listed software packages may work, but have
not been tested.</para>
@ -99,8 +100,12 @@
<xref linkend="chapter-building-system"/>, so the workarounds for
older kernels are not enabled and the compiled
<application>glibc</application> is slightly faster and smaller.
As at June 2023, &min-kernel; is the oldest kernel release still
supported by the kernel developers.</para>
As at Feb 2024, &min-kernel; is the oldest kernel release still
supported by the kernel developers. Some kernel releases older than
&min-kernel; may be still supported by third-party teams, but they
are not considered official upstream kernel releases; read
<ulink url='https://kernel.org/category/releases.html'/> for the
details.</para>
<para>If the host kernel is earlier than &min-kernel; you will need to replace
the kernel with a more up-to-date version. There are two ways

View File

@ -16,7 +16,7 @@
<envar>LFS</envar> environment variable described in the previous section.
</para>
<para>Strictly speaking, one cannot "mount a partition". One mounts the <emphasis>file
<para>Strictly speaking, one cannot <quote>mount a partition.</quote> One mounts the <emphasis>file
system</emphasis> embedded in that partition. But since a single partition can't contain
more than one file system, people often speak of the partition and the
associated file system as if they were one and the same.</para>

View File

@ -69,7 +69,7 @@
<listitem>
<para>A few operations, from <quote>Changing Ownership</quote> to
<quote>Entering the Chroot Environment</quote>, must be done as the
<quote>Entering the Chroot Environment,</quote> must be done as the
<systemitem class="username">root</systemitem> user, with the LFS
environment variable set for the &root; user.</para>
</listitem>

View File

@ -27,14 +27,14 @@
</varlistentry>
-->
<!-- <varlistentry>
<term>Bash Upstream Fixes Patch - <token>&bash-fixes-patch-size;</token>:</term>
<varlistentry>
<term>Bash Upstream Fixes Patch - <token>&bash-upstream-fixes-patch-size;</token>:</term>
<listitem>
<para>Download: <ulink url="&patches-root;&bash-fixes-patch;"/></para>
<para>MD5 sum: <literal>&bash-fixes-patch-md5;</literal></para>
<para>Download: <ulink url="&patches-root;&bash-upstream-fixes-patch;"/></para>
<para>MD5 sum: <literal>&bash-upstream-fixes-patch-md5;</literal></para>
</listitem>
</varlistentry>
-->
<!--
<varlistentry>
<term>Binutils LTO Fix Patch - <token>&binutils-lto-patch-size;</token>:</term>
@ -76,7 +76,7 @@
<para>MD5 sum: <literal>&gcc-upstream-fixes-patch-md5;</literal></para>
</listitem>
</varlistentry>
-->
<varlistentry>
<term>Glibc Upstream Fixes Patch - <token>&glibc-upstream-fixes-patch-size;</token>:</term>
<listitem>
@ -84,7 +84,7 @@
<para>MD5 sum: <literal>&glibc-upstream-fixes-patch-md5;</literal></para>
</listitem>
</varlistentry>
-->
<varlistentry>
<term>Glibc FHS Patch - <token>&glibc-fhs-patch-size;</token>:</term>
<listitem>
@ -117,7 +117,7 @@
</listitem>
</varlistentry>
-->
<!--
<varlistentry>
<term>Pkgconf Upstream Fix Patch - <token>&pkgconf-upstream-fix-patch-size;</token>:</term>
<listitem>
@ -125,7 +125,7 @@
<para>MD5 sum: <literal>&pkgconf-upstream-fix-patch-md5;</literal></para>
</listitem>
</varlistentry>
-->
<varlistentry>
<term>Readline Upstream Fix Patch - <token>&readline-fixes-patch-size;</token>:</term>
<listitem>
@ -142,15 +142,13 @@
</listitem>
</varlistentry>
<!--
<varlistentry revision="systemd">
<term>Systemd Upstream Patch - <token>&systemd-upstream-patch-size;</token>:</term>
<term>Systemd Upstream Fixes Patch - <token>&systemd-upstream-patch-size;</token>:</term>
<listitem>
<para>Download: <ulink url="&patches-root;&systemd-upstream-patch;"/></para>
<para>MD5 sum: <literal>&systemd-upstream-patch-md5;</literal></para>
</listitem>
</varlistentry>
-->
<!--
<varlistentry>
<term>Xz Upstream Fix Patch - <token>&xz-upstream-fix-patch-size;</token>:</term>

View File

@ -96,6 +96,7 @@ useradd -s /bin/bash -g lfs -m -k /dev/null lfs</userinput></screen>
<para>The <quote><parameter>-</parameter></quote> instructs
<command>su</command> to start a login shell as opposed to a non-login shell.
The difference between these two types of shells is described in detail in
<filename>bash(1)</filename> and <command>info bash</command>.</para>
<ulink role='man' url='&man;bash.1'>bash(1)</ulink> and <command>info
bash</command>.</para>
</sect1>

View File

@ -79,8 +79,8 @@ EOF</userinput></screen>
<para>Setting the user file-creation mask (umask) to 022 ensures that newly
created files and directories are only writable by their owner, but are
readable and executable by anyone (assuming default modes are used by the
<filename>open(2)</filename> system call, new files will end up with
permission mode 644 and directories with mode 755).</para>
<ulink role='man' url='&man;open.2'>open(2)</ulink> system call, new files
will end up with permission mode 644 and directories with mode 755).</para>
</listitem>
</varlistentry>

View File

@ -137,8 +137,8 @@ cd build</userinput></screen>
Gettext package, which the host distribution should provide.</para>
<note><para>There have been reports that this package may fail when
building as a "parallel make". If that occurs, rerun the make command
with the "-j1" option.</para></note>
building as a <quote>parallel make.</quote> If that occurs, rerun the make command
with the <option>-j1</option> option.</para></note>
<para>Compile the package:</para>

View File

@ -78,11 +78,6 @@ popd</userinput></screen>
<screen><userinput remap="configure">./configure --prefix=/usr --host=$LFS_TGT --build=$(./config.guess)</userinput></screen>
<!-- devs: if using - -build here, the build system wants to compile
the signature file with "file" on the build system, but stops if it is not
the same version. One possibility would be to build "file" on the build
system first, but it is simpler to have the system think it is not
cross-compiling, and use the just built "file". -->
<para>Compile the package:</para>
<screen><userinput remap="make">make FILE_COMPILE=$(pwd)/build/src/file</userinput></screen>

View File

@ -54,7 +54,7 @@ install -dv -m 1777 /tmp /var/tmp</userinput></screen>
<filename class="directory">/tmp</filename> and <filename
class="directory">/var/tmp</filename> directories, but cannot remove
another user's files from them. The latter is prohibited by the so-called
<quote>sticky bit</quote>, the highest bit (1) in the 1777 bit mask.</para>
<quote>sticky bit,</quote> the highest bit (1) in the 1777 bit mask.</para>
<sect2>
<title>FHS Compliance Note</title>

View File

@ -63,11 +63,14 @@
<para>Now mount the remaining virtual kernel file systems:</para>
<screen><userinput>mount -v --bind /dev/pts $LFS/dev/pts
<!-- Do not put any option after $LFS/${mountpoint} or jhalfs cannot
handle it! -->
<screen><userinput>mount -vt devpts devpts -o gid=5,mode=0620 $LFS/dev/pts
mount -vt proc proc $LFS/proc
mount -vt sysfs sysfs $LFS/sys
mount -vt tmpfs tmpfs $LFS/run</userinput></screen>
<!--
<variablelist>
<title>The meaning of the mount options for devpts:</title>
@ -95,11 +98,12 @@ mount -vt tmpfs tmpfs $LFS/run</userinput></screen>
</varlistentry>
</variablelist>
-->
<para>In some host systems, <filename>/dev/shm</filename> is a
symbolic link to <filename class="directory">/run/shm</filename>.
symbolic link to a directory, typically
<filename class="directory">/run/shm</filename>.
The /run tmpfs was mounted above so in this case only a
directory needs to be created.</para>
directory needs to be created with the correct permissions.</para>
<para>In other host systems <filename>/dev/shm</filename> is a mount point
for a tmpfs. In that case the mount of /dev above will only create
@ -107,7 +111,7 @@ mount -vt tmpfs tmpfs $LFS/run</userinput></screen>
we must explicitly mount a tmpfs:</para>
<screen><userinput>if [ -h $LFS/dev/shm ]; then
(cd $LFS/dev; mkdir $(readlink shm))
install -v -d -m 1777 $LFS$(realpath /dev/shm)
else
mount -vt tmpfs -o nosuid,nodev tmpfs $LFS/dev/shm
fi</userinput></screen>

View File

@ -44,8 +44,8 @@
<title>Installation of Python</title>
<note>
<para>There are two package files whose name starts with
<quote>python</quote>. The one to extract from is
<para>There are two package files whose name starts with the
<quote>python</quote> prefix. The one to extract from is
<filename>Python-&python-version;.tar.xz</filename> (notice the
uppercase first letter).</para>
</note>
@ -83,9 +83,9 @@
<note>
<para>
Some Python 3 modules can't be built now because the dependencies
are not installed yet. The building system still attempts to build
them however, so the compilation of some files will fail and the
compiler message may seem to indicate <quote>fatal error</quote>.
are not installed yet. For the <filename>ssl</filename> module,
a message <computeroutput>Python requires a OpenSSL 1.1.1 or
newer</computeroutput> is outputted.
The message should be ignored. Just make sure the toplevel
<command>make</command> command has not failed. The optional
modules are not needed now and they will be built in

View File

@ -40,6 +40,10 @@
<sect2 role="installation">
<title>Installation of Bash</title>
<para>First, fix some issues identified upstream:</para>
<screen><userinput remap="pre">patch -Np1 -i ../&bash-upstream-fixes-patch;</userinput></screen>
<para>Prepare Bash for compilation:</para>
<screen><userinput remap="configure">./configure --prefix=/usr \
@ -71,7 +75,7 @@
<para>To prepare the tests, ensure that the <systemitem class="username">tester</systemitem> user can write to the sources tree:</para>
<screen><userinput remap="test">chown -Rv tester .</userinput></screen>
<screen><userinput remap="test">chown -R tester .</userinput></screen>
<para>The test suite of this package is designed to be run as a non-&root;
user who owns the terminal connected to standard input. To satisfy the
@ -79,7 +83,7 @@
<application>Expect</application> and run the tests as the <systemitem
class="username">tester</systemitem> user:</para>
<screen><userinput remap="test">su -s /usr/bin/expect tester &lt;&lt; EOF
<screen><userinput remap="test">su -s /usr/bin/expect tester &lt;&lt; "EOF"
set timeout -1
spawn make tests
expect eof

View File

@ -135,7 +135,7 @@ cd build</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>Three tests in the gprofng suite are also known to fail.</para>-->
<para>Install the package:</para>

View File

@ -121,7 +121,7 @@ FORCE_UNSAFE_CONFIGURE=1 ./configure \
<para>Fix some of the permissions so that the non-&root; user can
compile and run the tests:</para>
<screen><userinput remap="test">chown -Rv tester . </userinput></screen>
<screen><userinput remap="test">chown -R tester . </userinput></screen>
<para>Now run the tests:</para>
@ -129,8 +129,14 @@ FORCE_UNSAFE_CONFIGURE=1 ./configure \
<!-- Sometimes skipped, but if not it may fail.
Please DO NOT remove or comment out this unless we can fully
understand it! -->
understand it!
<para>The test-getlogin test may fail in the LFS chroot environment.</para>
20240226: Commented out as it seems the upstream has root-caused and
fixed the issue. I've checked the fix is in Coreutils 9.4 release
tarball:
https://lists.gnu.org/archive/html/bug-gnulib/2022-06/msg00079.html
-->
<para>Remove the temporary group:</para>
@ -1261,8 +1267,8 @@ sed -i 's/"1"/"8"/' /usr/share/man/man8/chroot.8</userinput></screen>
<varlistentry id="yes">
<term><command>yes</command></term>
<listitem>
<para>Repeatedly outputs <quote>y</quote>, or a given string, until
killed</para>
<para>Repeatedly outputs <literal>y</literal> or a given string,
until killed</para>
<indexterm zone="ch-system-coreutils yes">
<primary sortas="b-yes">yes</primary>
</indexterm>

View File

@ -159,7 +159,8 @@ install-info --dir-file=/usr/share/info/dir /usr/share/info/com_err.info</userin
<screen role='nodump'><userinput>sed 's/metadata_csum_seed,//' -i /etc/mke2fs.conf</userinput></screen>
<para>
Read the man page <filename>mke2fs.conf(5)</filename> for details.
Read the man page <ulink role='man'
url='&man;mke2fs.conf.5'>mke2fs.conf(5)</ulink> for details.
</para>
</sect2>

View File

@ -48,6 +48,25 @@
<sect2 role="installation">
<title>Installation of Expect</title>
<para>Expect needs PTYs to work. Verify that the PTYs are working
properly inside the chroot environment by performing a simple
test:</para>
<screen><userinput remap="test">python3 -c 'from pty import spawn; spawn(["echo", "ok"])'</userinput></screen>
<para>This command should output <computeroutput>ok</computeroutput>.
If, instead, the output includes <computeroutput>OSError: out of pty
devices</computeroutput>, then the environment is not set up for proper
PTY operation. You need to exit from the chroot environment, read
<xref linkend='ch-tools-kernfs'/> again, and ensure the
<systemitem class="filesystem">devpts</systemitem> file system (and
other virtual kernel file systems) mounted correctly. Then reenter
the chroot environment following <xref linkend='ch-tools-chroot'/>.
This issue needs to be resolved before continuing, or the test suites
requiring Expect (for example the test suites of Bash, Binutils, GCC,
GDBM, and of course Expect itself) will fail catastrophically, and other
subtle breakages may also happen.</para>
<para>Update two config scripts to allow building this package for
AArch64:</para>
@ -88,27 +107,10 @@
<screen><userinput remap="make">make</userinput></screen>
<important>
<para>The test suite for Expect is considered critical.
Do not skip it under any circumstances.</para>
</important>
<para>To test the results, issue:</para>
<screen><userinput remap="test">make test</userinput></screen>
<para>If any test fails with the message
<quote><computeroutput>The system has no more ptys. Ask your system
administrator to create more</computeroutput></quote>, it indicates
you've not mounted the
<systemitem class="filesystem">devpts</systemitem> file system
correctly. You need to exit from the chroot environment, read
<xref linkend='ch-tools-kernfs'/> again, and ensure the
<systemitem class="filesystem">devpts</systemitem> file system (and
other virtual kernel file systems) mounted correctly. Then reenter
the chroot environment following <xref linkend='ch-tools-chroot'/>.
This issue needs to be resolved before continuing.</para>
<para>Install the package:</para>
<screen><userinput remap="install">make install

View File

@ -82,7 +82,7 @@ esac</userinput></screen>
<para>To test the results, issue:</para>
<screen><userinput remap="test">chown -Rv tester .
<screen><userinput remap="test">chown -R tester .
su tester -c "PATH=$PATH make check"</userinput></screen>
<para>Install the package:</para>

View File

@ -54,7 +54,7 @@
<para>To test the results, issue:</para>
<screen><userinput remap="test">chown -Rv tester .
<screen><userinput remap="test">chown -R tester .
su tester -c "PATH=$PATH make check"</userinput></screen>
<para>Install the package:</para>

View File

@ -154,7 +154,7 @@ cd build</userinput></screen>
<para>Test the results as a non-privileged user, but do not stop at errors:</para>
<screen><userinput remap="test">chown -Rv tester .
<screen><userinput remap="test">chown -R tester .
su tester -c "PATH=$PATH make -k check"</userinput></screen>
<para>To extract a summary of the test suite results, run:</para>
@ -170,8 +170,7 @@ su tester -c "PATH=$PATH make -k check"</userinput></screen>
<para>
<!-- https://gcc.gnu.org/PR107915 and https://gcc.gnu.org/PR109353 -->
Two tests named <filename>copy.cc</filename> and
<filename>contracts-tmpl-spec2.C</filename> are known to fail.
One test named <filename>contracts-tmpl-spec2.C</filename> is known to fail.
<!-- https://gcc.gnu.org/PR111224 -->
Some C++ module tests named <filename>xtreme-*</filename> are known to
fail.
@ -181,14 +180,19 @@ su tester -c "PATH=$PATH make -k check"</userinput></screen>
<para>Many gcc and g++ tests related to hwasan 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, several tests in <filename>asan_test.C</filename>
are known to fail.
The test named <filename>interception-malloc-test-1.C</filename>
is known to fail.
Eight gcc tests (out of over 185,000):
<!-- https://gcc.gnu.org/PR106375 --><filename>pr56837.c</filename>
and seven tests in the <filename class='directory'>analyzer</filename>
directory are known to fail.
<!-- https://gcc.gnu.org/PR109353 -->
One libstdc++ test (out of over 15000), <filename>copy.cc</filename>, is
known to fail.
For g++, 21 tests (out of approximately 250,000): 14
<quote>AddressSanitizer*</quote>
tests and 7 <filename>interception-malloc-test-1.C</filename> tests, are
known to fail.
</para>
<para>A few unexpected failures cannot always be avoided. The GCC developers
@ -196,15 +200,6 @@ su tester -c "PATH=$PATH make -k check"</userinput></screen>
Unless the test results are vastly different from those at the above URL,
it is safe to continue.</para>
<!--note><para>
On some combinations of kernel configuration and AMD processors
there may be more than 1100 failures in the gcc.target/i386/mpx
tests (which are designed to test the MPX option on recent
Intel processors). These can safely be ignored on AMD
processors. These tests will also fail on Intel processors if MPX support
is not enabled in the kernel even though it is present on the CPU.
</para></note-->
<para>Install the package:</para>
<screen><userinput remap="install">make install</userinput></screen>

View File

@ -49,12 +49,12 @@
store their runtime data in the FHS-compliant locations:</para>
<screen><userinput remap="pre">patch -Np1 -i ../&glibc-fhs-patch;</userinput></screen>
<!--
<para>Now fix two security vulnerabilities and a regression causing the
posix_memalign() function very slow in some conditions:</para>
<screen><userinput remap="pre">patch -Np1 -i ../&glibc-upstream-fixes-patch;</userinput></screen>
-->
<para>The Glibc documentation recommends building Glibc
in a dedicated build directory:</para>
@ -73,7 +73,6 @@ cd build</userinput></screen>
--disable-werror \
--enable-kernel=&min-kernel; \
--enable-stack-protector=strong \
--with-headers=/usr/include \
--disable-nscd \
libc_cv_slibdir=/usr/lib</userinput></screen>
@ -103,15 +102,10 @@ cd build</userinput></screen>
<listitem>
<para>This option increases system security by adding
extra code to check for buffer overflows, such as stack
smashing attacks.</para>
</listitem>
</varlistentry>
<!-- do we need this one? -->
<varlistentry>
<term><parameter>--with-headers=/usr/include</parameter></term>
<listitem>
<para>This option tells the build system where to find the
kernel API headers.</para>
smashing attacks. Note that Glibc always explicitly overrides
the default of GCC, so this option is still needed even though
we've already specified <option>--enable-default-ssp</option> for
GCC.</para>
</listitem>
</varlistentry>
@ -169,29 +163,34 @@ esac</userinput></screen>
is known to fail in the LFS chroot environment.</para>
</listitem>
<!-- Did not fail with glibc-2.38
<listitem>
<para><emphasis>misc/tst-ttyname</emphasis>
is known to fail in the LFS chroot environment.</para>
</listitem>
-->
<!-- https://sourceware.org/pipermail/libc-alpha/2022-August/141567.html -->
<listitem>
<para>The <emphasis>stdlib/tst-arc4random-thread</emphasis>
test is known to fail if the host kernel is relatively old.</para>
</listitem>
<listitem>
<para>Some tests, for example
<emphasis>nss/tst-nss-files-hosts-multi</emphasis>,
are known to fail on relatively slow systems due to an internal
timeout.</para>
<emphasis>nss/tst-nss-files-hosts-multi</emphasis> and
<emphasis>nptl/tst-thread-affinity*</emphasis>
are known to fail due to a timeout (especially when the system is
relatively slow and/or running the test suite with multiple
parallel make jobs). These tests can be identified with:</para>
<!-- TODO: Using nodump for freeze. Change it to role="test" after
12.1 release so jhalfs can list these in the log. -->
<screen role="nodump"><userinput>grep "Timed out" -l $(find -name \*.out)</userinput></screen>
<para>It's possible to re-run a single test with enlarged timeout
with
<command>TIMEOUTFACTOR=<replaceable>&lt;factor&gt;</replaceable>
make test t=<replaceable>&lt;test name&gt;</replaceable></command>.
For example, <command>TIMEOUTFACTOR=10 make test
t=nss/tst-nss-files-hosts-multi</command> will re-run
<emphasis>nss/tst-nss-files-hosts-multi</emphasis> with ten times
the original timeout.</para>
</listitem>
<listitem>
<para>Additionally, some tests may fail with a relatively old CPU
model or host kernel version.</para>
model (for example
<emphasis>elf/tst-cpu-features-cpuinfo</emphasis>) or host kernel
version (for example
<emphasis>stdlib/tst-arc4random-thread</emphasis>).</para>
</listitem>
</itemizedlist>
@ -207,6 +206,122 @@ esac</userinput></screen>
<screen><userinput remap="install">sed '/test-installation/s@$(PERL)@echo not running@' -i ../Makefile</userinput></screen>
<important>
<para>
If upgrading Glibc to a new minor version (for example, from
Glibc-2.36 to Glibc-&glibc-version;) on a running LFS system, you
need to take some extra precautions to avoid breaking the system:
</para>
<itemizedlist>
<listitem>
<!-- There are two reasons we don't support this:
1. Upgrading on a system with separate /lib and /usr/lib is
tricky.
2. With Glibc prior to 2.34 libc.so.6 etc. are symlinks to
libc-2.33.so etc., again causing the upgradation tricky.
The Glibc NEWS file explicit states they no longer use
symlinks for the ABI names to avoid upgradation
issues. -->
<para>
Upgrading Glibc on a LFS system prior to 11.0 (exclusive) is
not supported. Rebuild LFS if you are running such an old LFS
system but you need a newer Glibc.
</para>
</listitem>
<!-- https://sourceware.org/pipermail/libc-alpha/2024-January/154095.html -->
<listitem>
<para>
If upgrading on a LFS system prior to 12.0 (exclusive), install
<application>Libxcrypt</application> following
<xref role='.' linkend='ch-system-libxcrypt'/> In addition to
a normal <application>Libxcrypt</application> installation,
<emphasis role='bold'>you MUST follow the note in Libxcrypt
section to install
<filename class='libraryfile'>libcrypt.so.1*</filename>
(replacing
<filename class='libraryfile'>libcrypt.so.1</filename> from the
prior Glibc installation)</emphasis>.
</para>
</listitem>
<!-- Otherwise on lfs-systemd nscd will fail to start on boot,
and on both lfs-sysv and lfs-systemd useradd etc. will try
to start nscd, then nscd will fail to start as well and
produce some spurious error message. -->
<listitem>
<para>
If upgrading on a LFS system prior to 12.1 (exclusive),
remove the <command>nscd</command> program:
</para>
<screen role='nodump'><userinput>rm -f /usr/sbin/nscd</userinput></screen>
<para revision='systemd'>
If this system (prior to LFS 12.1, exclusive) is based on
Systemd, it's also needed to disable and stop the
<command>nscd</command> service now:
</para>
<screen revision='systemd' role='nodump'><userinput>systemctl disable --now nscd</userinput></screen>
</listitem>
<listitem>
<para>
Upgrade the kernel and reboot if it's older than &min-kernel;
(check the current version with <command>uname -r</command>)
or if you want to upgrade it anyway, following
<xref linkend='ch-bootable-kernel' role='.'/>
</para>
</listitem>
<listitem>
<para>
Upgrade the kernel API headers if it's older than &min-kernel;
(check the current version with
<command>cat /usr/include/linux/version.h</command>)
or if you want to upgrade it anyway, following
<xref linkend='ch-tools-linux-headers'/> (but removing
<envar>$LFS</envar> from the <command>cp</command> command).
</para>
</listitem>
<!-- This is to ensure we don't start a process at the time point
where some Glibc shared libraries are updated but the others
are not. Such mismatches can cause programs crash on startup,
esp. a mismatch between ld-linux-x86-64.so.2 and
libc.so.6. Note that a crash in the installation process
will leave the system in a state with the mismatch forever,
unrecoverable without the help of another distro. -->
<listitem>
<para>
Perform a <envar>DESTDIR</envar> installation and upgrade
the Glibc shared libraries on the system using one single
<command>install</command> command:
</para>
<screen role='nodump'><userinput>make DESTDIR=$PWD/dest install
install -vm755 dest/usr/lib/*.so.* /usr/lib</userinput></screen>
</listitem>
</itemizedlist>
<para>
It's imperative to strictly follow these steps above unless you
completely understand what you are doing.
<emphasis role='bold'>Any unexpected deviation may render the
system completely unusable. YOU ARE WARNED.</emphasis>
</para>
<para>
Then continue to run the <command>make install</command> command,
the <command>sed</command> command against
<filename>/usr/bin/ldd</filename>, and the commands to install
the locales. Once they are finished, reboot the system
immediately.
</para>
</important>
<para>Install the package:</para>
<screen><userinput remap="install">make install</userinput></screen>
@ -420,7 +535,7 @@ unset ZONEINFO</userinput></screen>
<term><parameter>zic ... -p ...</parameter></term>
<listitem>
<para>This creates the <filename>posixrules</filename> file. We use
New York because POSIX requires the daylight savings time rules
New York because POSIX requires the daylight saving time rules
to be in accordance with US rules.</para>
</listitem>
</varlistentry>

View File

@ -49,7 +49,7 @@
to the <command>configure</command> command.</para>
<!-- To editors: the configure script says "the none host is obsolete,
use - -disable-assembly", but don't believe it: with the latter
use - -disable-assembly," but don't believe it: with the latter
CFLAGS is still automatically set to -march=something. -->
</note>
@ -97,8 +97,9 @@ make html</userinput></screen>
<caution><para>The code in gmp is highly optimized for the processor where
it is built. Occasionally, the code that detects the processor misidentifies
the system capabilities and there will be errors in the tests or other
applications using the gmp libraries with the message "Illegal
instruction". In this case, gmp should be reconfigured with the option
applications using the gmp libraries with the message
<computeroutput>Illegal instruction</computeroutput>.
In this case, gmp should be reconfigured with the option
<option>--host=none-linux-gnu</option> and rebuilt.</para></caution>
<!-- Some tests PASS on a specific uarch but SKIP on other CPUs.

View File

@ -56,8 +56,9 @@
<para>Five tests are known to fail in the LFS build environment due
to a circular dependency, but these tests pass if rechecked after
automake has been installed. Additionally, with grep-3.8, two tests will
trigger a warning for non-POSIX regular expressions and fail.</para>
automake has been installed. Additionally, with grep-3.8 or newer,
two tests will trigger a warning for non-POSIX regular expressions and
fail.</para>
<para>Install the package:</para>

View File

@ -110,7 +110,7 @@
--disable-static \
--disable-failure-tokens
make
cp -av .libs/libcrypt.so.1* /usr/lib</userinput></screen>
cp -av --remove-destination .libs/libcrypt.so.1* /usr/lib</userinput></screen>
</note>
</sect2>

View File

@ -53,7 +53,7 @@
https://savannah.gnu.org/bugs/?63852 -->
<para>To test the results, issue:</para>
<screen><userinput remap="test">chown -Rv tester .
<screen><userinput remap="test">chown -R tester .
su tester -c "PATH=$PATH make check"</userinput></screen>
<para>Install the package:</para>

View File

@ -163,7 +163,7 @@ make MANSUFFIX=ssl install</userinput></screen>
is a command-line tool for using the various cryptography functions
of <application>OpenSSL</application>'s crypto library from the
shell. It can be used for various functions which are documented in
<filename>openssl(1)</filename>
<ulink role='man' url='&man;openssl.1'>openssl(1)</ulink>
</para>
<indexterm zone="ch-system-openssl openssl-prog">
<primary sortas="b-openssl">openssl</primary>
@ -195,7 +195,8 @@ make MANSUFFIX=ssl install</userinput></screen>
<para>
implements the Transport Layer Security (TLS v1) protocol.
It provides a rich API, documentation
on which can be found in <filename>ssl(7)</filename>
on which can be found in <ulink role='man'
url='&man;ssl.7'>ssl(7)</ulink>
</para>
<indexterm zone="ch-system-openssl libssl">
<primary sortas="c-libssl">libssl.so</primary>

View File

@ -44,11 +44,6 @@
<title>Installation of Pkgconf</title>
<!-- https://github.com/pkgconf/pkgconf/issues/317 -->
<para>Fix a regression in pkgconf-2.1.0 breaking BLFS packages:</para>
<screen><userinput remap="pre">patch -Np1 -i ../&pkgconf-upstream-fix-patch;</userinput></screen>
<para>Prepare Pkgconf for compilation:</para>
<screen><userinput remap="configure">./configure --prefix=/usr \

View File

@ -56,28 +56,16 @@
5.10.17 to 5.10.18 or 5.11.1), nothing else needs to be rebuilt.
The system will keep working fine thanks to the well-defined interface
between the kernel and userspace. Specifically, Linux API headers
need not be (and should not be, see the next item) upgraded
need not be upgraded
along with the kernel. You will merely need to reboot your system to use the
upgraded kernel.</para>
</listitem>
<listitem>
<para>If the Linux API headers or Glibc need to be upgraded to a newer
version, (e.g., from Glibc-2.31 to Glibc-2.32), it is safer to
rebuild LFS. Though you <emphasis>may</emphasis> be able to rebuild
all the packages in their dependency order, we do not recommend
it. </para>
</listitem>
<listitem>
<para>Reinstalling the same version of Glibc (&glibc-version; for
this release of LFS) with patches should be safe when these patches
do not change ABI and API. When a security vulnerability is found
in Glibc, we often need to apply such a patch to fix the
vulnerability and reinstall Glibc. Consult
<ulink url='&lfs-root;lfs/advisories/'>LFS security
advisories</ulink> if you are alerted for a published Glibc security
vulnerability but unsure about the action to take.</para>
<para>If Glibc needs to be upgraded to a newer
version, (e.g., from Glibc-2.36 to Glibc-&glibc-version;),
some extra steps are needed to avoid breaking the system.
Read <xref linkend='ch-system-glibc'/> for details.</para>
</listitem>
<listitem> <para>If a package containing a shared library is updated, and

View File

@ -72,7 +72,20 @@
<para> To run the test suite, run:</para>
<screen><userinput remap="test">make check</userinput></screen>
<screen><userinput remap="test">make -k check</userinput></screen>
<para>One test named
<literal>ps with output flag bsdtime,cputime,etime,etimes</literal>
is known to fail if the host kernel is not built with
<literal>CONFIG_BSD_PROCESS_ACCT</literal> enabled.
<!-- These two tests just do not work as root but they seem to pass
in most time due to some internal hazards of Tcl/Expect/DejaGNU
framework. However the failures have been really observed.
TODO: run the test suite as tester after the freeze ends. -->
Two tests named
<literal>pmap X with unreachable process</literal> and
<literal>pmap XX with unreachable process</literal> are known to
fail occasionally.</para>
<para>Install the package:</para>

View File

@ -51,7 +51,7 @@ make html</userinput></screen>
<para>To test the results, issue:</para>
<screen><userinput remap="test">chown -Rv tester .
<screen><userinput remap="test">chown -R tester .
su tester -c "PATH=$PATH make check"</userinput></screen>
<para>Install the package and its documentation:</para>

View File

@ -203,8 +203,8 @@ make -C man install-man</userinput></screen>
to pass either the <parameter>-g</parameter> or <parameter>-N</parameter>
parameter to <command>useradd</command>, or else change the setting of
<parameter>USERGROUPS_ENAB</parameter> in
<filename>/etc/login.defs</filename>. See <filename>useradd(8)</filename>
for more information.</para>
<filename>/etc/login.defs</filename>. See <ulink role='man'
url='&man;useradd.8'>useradd(8)</ulink> for more information.</para>
<para>Second, to change the default parameters, the file
<filename>/etc/default/useradd</filename> must be created and tailored

View File

@ -53,7 +53,7 @@
little-endian systems and ld-linux-aarch64_be.so.1 on big-endian systems.
The construct below selects the
correct name for the current architecture, excluding anything ending
with <quote>g</quote>, in case the commands below have already been
with <literal>g</literal>, in case the commands below have already been
run.</para></note>
<important>

View File

@ -50,10 +50,11 @@
<!-- https://github.com/systemd/systemd/pull/30549 -->
<para>Now fix a security vulnerability in the DNSSEC verification of
<command>systemd-resolved</command>:</para>
<command>systemd-resolved</command> and a bug breaking running
<command>systemd-analyze verify</command> on an instantiated systemd
unit:</para>
<screen><userinput remap='pre'>sed -e '/return FLAGS_SET.*AUTHENTICATED/s/(t/(dt/' \
-i src/resolve/resolved-dns-transaction.c</userinput></screen>
<screen><userinput remap='pre'>patch -Np1 -i ../&systemd-upstream-patch;</userinput></screen>
<para>Prepare systemd for compilation:</para>

View File

@ -103,7 +103,7 @@
<screen role="nodump"><userinput>bash tests/run.sh --srcdir=$PWD --builddir=$PWD</userinput></screen>
</warning>
<screen><userinput remap="test">chown -Rv tester .
<screen><userinput remap="test">chown -R tester .
su tester -c "make -k check"</userinput></screen>
<para>The <emphasis>hardlink</emphasis> tests will fail if the host's kernel
@ -574,7 +574,8 @@ su tester -c "make -k check"</userinput></screen>
<term><command>irqtop</command></term>
<listitem>
<para>Displays kernel interrupt counter information in
<filename>top(1)</filename> style view</para>
<ulink role='man' url='&man;top.1'>top(1)</ulink> style
view</para>
<indexterm zone="ch-system-util-linux irqtop">
<primary sortas="b-irqtop">irqtop</primary>
</indexterm>

View File

@ -66,18 +66,21 @@
<systemitem class="username">tester</systemitem> can write
to the source tree:</para>
<screen><userinput remap="test">chown -Rv tester .</userinput></screen>
<screen><userinput remap="test">chown -R tester .</userinput></screen>
<para>Now run the tests as user <systemitem
class="username">tester</systemitem>:</para>
<screen><userinput remap="test">su tester -c "LANG=en_US.UTF-8 make -j1 test" &amp;> vim-test.log</userinput></screen>
<screen><userinput remap="test">su tester -c "TERM=xterm-256color LANG=en_US.UTF-8 make -j1 test" \
&amp;> vim-test.log</userinput></screen>
<para>The test suite outputs a lot of binary data to the screen. This can
cause issues with the settings of the current terminal. The problem can be
cause issues with the settings of the current terminal (especially while
we are overriding the <envar>TERM</envar> variable to satisify some
assumptions of the test suite). The problem can be
avoided by redirecting the output to a log file as shown above. A
successful test will result in the words "ALL DONE" in the log file
at completion.</para>
successful test will result in the words <computeroutput>ALL
DONE</computeroutput> in the log file at completion.</para>
<para>Install the package:</para>

View File

@ -26,14 +26,13 @@
<!-- sysv -->
<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="network.xml"/>
<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="usage.xml"/>
<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="profile.xml"/>
<!-- systemd -->
<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="clock.xml"/>
<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="consoled.xml"/>
<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="locale.xml"/>
<!-- common -->
<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="locale.xml"/>
<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="inputrc.xml"/>
<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="etcshells.xml"/>

View File

@ -30,7 +30,7 @@
directory for valid screen fonts.</para>
<para>The <filename>/etc/vconsole.conf</filename> file should contain lines
of the form: VARIABLE="value". The following variables are recognized:</para>
of the form: <envar>VARIABLE=value</envar>. The following variables are recognized:</para>
<variablelist>
@ -74,6 +74,25 @@
</variablelist>
<para>We'll use <literal>C.UTF-8</literal> as the locale for interactive
sessions in the Linux console in <xref role='.'
linkend='ch-config-locale'/> The console fonts shipped by
the <application>Kbd</application> package containing the glyphs for
all characters from the program messages in the <literal>C.UTF-8</literal>
locale are <filename>LatArCyrHeb*.psfu.gz</filename>,
<filename>LatGrkCyr*.psfu.gz</filename>,
<filename>Lat2-Terminus16.psfu.gz</filename>, and
<filename>pancyrillic.f16.psfu.gz</filename> in
<filename class='directory'>/usr/share/consolefonts</filename> (the other
shipped console fonts lack glyphs of some characters like the Unicode
left/right quotation marks and the Unicode English dash). So set one of
them, for example <filename>Lat2-Terminus16.psfu.gz</filename> as the
default console font:</para>
<!-- We are using "nodump" for general settings, but not examples. This
is ironic, but needed for the compatibility with jhalfs! -->
<screen role='nodump'><userinput>echo <literal>FONT=Lat2-Terminus16</literal> &gt; /etc/vconsole.conf</userinput></screen>
<para>An example for a German keyboard and console is given below:</para>
<!-- This is what is used by jhalfs for creating the vconsole.conf file.
Whenever you want to change the following, please inform the jhalfs

View File

@ -5,18 +5,21 @@
%general-entities;
]>
<sect1 id="ch-config-locale" revision="systemd">
<sect1 id="ch-config-locale">
<?dbhtml filename="locale.html"?>
<title>Configuring the System Locale</title>
<indexterm zone="ch-config-locale">
<primary sortas="e-etc-locale-conf">/etc/locale.conf</primary>
<primary sortas="e-/etc/profile">/etc/profile</primary>
</indexterm>
<para>The <filename>/etc/locale.conf</filename> file below sets some
environment variables necessary for native language support. Setting
them properly results in:</para>
<indexterm zone="ch-config-locale" revision='systemd'>
<primary sortas="e-/etc/profile">/etc/locale.conf</primary>
</indexterm>
<para>Some environment variables are necessary for native language
support. Setting them properly results in:</para>
<itemizedlist>
<listitem>
@ -39,35 +42,37 @@
</itemizedlist>
<para>Replace <replaceable>&lt;ll&gt;</replaceable> below with the two-letter code
for your desired language (e.g., <quote>en</quote>) and
for your desired language (e.g., <literal>en</literal>) and
<replaceable>&lt;CC&gt;</replaceable> with the two-letter code for the appropriate
country (e.g., <quote>GB</quote>). <replaceable>&lt;charmap&gt;</replaceable> should
country (e.g., <literal>GB</literal>). <replaceable>&lt;charmap&gt;</replaceable> should
be replaced with the canonical charmap for your chosen locale. Optional
modifiers such as <quote>@euro</quote> may also be present.</para>
modifiers such as <literal>@euro</literal> may also be present.</para>
<para>The list of all locales supported by Glibc can be obtained by running
the following command:</para>
<screen role="nodump"><userinput>locale -a</userinput></screen>
<para>Charmaps can have a number of aliases, e.g., <quote>ISO-8859-1</quote>
is also referred to as <quote>iso8859-1</quote> and <quote>iso88591</quote>.
<para>Charmaps can have a number of aliases, e.g.,
<literal>ISO-8859-1</literal> is also referred to as
<literal>iso8859-1</literal> and <literal>iso88591</literal>.
Some applications cannot handle the various synonyms correctly (e.g., require
that <quote>UTF-8</quote> is written as <quote>UTF-8</quote>, not
<quote>utf8</quote>), so it is the safest in most
that <literal>UTF-8</literal> is written as <literal>UTF-8</literal>, not
<literal>utf8</literal>), so it is the safest in most
cases to choose the canonical name for a particular locale. To determine
the canonical name, run the following command, where <replaceable>&lt;locale
name&gt;</replaceable> is the output given by <command>locale -a</command> for
your preferred locale (<quote>en_GB.iso88591</quote> in our example).</para>
your preferred locale (<literal>en_GB.iso88591</literal> in our
example).</para>
<screen role="nodump"><userinput>LC_ALL=<replaceable>&lt;locale name&gt;</replaceable> locale charmap</userinput></screen>
<para>For the <quote>en_GB.iso88591</quote> locale, the above command
<para>For the <literal>en_GB.iso88591</literal> locale, the above command
will print:</para>
<screen><computeroutput>ISO-8859-1</computeroutput></screen>
<para>This results in a final locale setting of <quote>en_GB.ISO-8859-1</quote>.
<para>This results in a final locale setting of <literal>en_GB.ISO-8859-1</literal>.
It is important that the locale found using the heuristic above is tested prior
to it being added to the Bash startup files:</para>
@ -90,66 +95,115 @@ LC_ALL=&lt;locale name&gt; locale int_prefix</userinput></screen>
Further instructions assume that there are no such error messages from
Glibc.</para>
<!-- FIXME: the xlib example will become obsolete in the future.-->
<para>Some packages beyond LFS may also lack support for your chosen locale. One
example is the X library (part of the X Window System), which outputs the
following error message if the locale does not exactly match one of the character
map names in its internal files:</para>
<screen><computeroutput>Warning: locale not supported by Xlib, locale set to C</computeroutput></screen>
<para>In several cases Xlib expects that the character map will be listed in
uppercase notation with canonical dashes. For instance, "ISO-8859-1" rather
than "iso88591". It is also possible to find an appropriate specification by
removing the charmap part of the locale specification. This can be checked
by running the <command>locale charmap</command> command in both locales.
For example, one would have to change "de_DE.ISO-8859-15@euro" to
"de_DE@euro" in order to get this locale recognized by Xlib.</para>
<para>Other packages can also function incorrectly (but may not necessarily
display any error messages) if the locale name does not meet their expectations.
In those cases, investigating how other Linux distributions support your locale
might provide some useful information.</para>
<para>Once the proper locale settings have been determined, create the
<filename>/etc/locale.conf</filename> file:</para>
<para revision='systemd'>Once the proper locale settings have been
determined, create the <filename>/etc/locale.conf</filename> file:</para>
<screen><userinput>cat &gt; /etc/locale.conf &lt;&lt; "EOF"
<screen revision='systemd'><userinput>cat &gt; /etc/locale.conf &lt;&lt; "EOF"
<literal>LANG=<replaceable>&lt;ll&gt;_&lt;CC&gt;.&lt;charmap&gt;&lt;@modifiers&gt;</replaceable></literal>
EOF</userinput></screen>
<para>Note that you can modify <filename>/etc/locale.conf</filename> with the
<para>The shell program <command>/bin/bash</command> (here after referred
as <quote>the shell</quote>) uses a collection of startup files to help
create the environment to run in. Each file has a specific use and may
affect login and interactive environments differently. The files in the
<filename class="directory">/etc</filename> directory provide global
settings. If equivalent files exist in the home directory, they
may override the global settings.</para>
<para>An interactive login shell is started after a successful login,
using <command>/bin/login</command>, by reading the
<filename>/etc/passwd</filename> file. An interactive non-login shell is
started at the command-line (e.g.
<prompt>[prompt]$</prompt><command>/bin/bash</command>). A
non-interactive shell is usually present when a shell script is running.
It is non-interactive because it is processing a script and not waiting
for user input between commands.</para>
<para><phrase revision='systemd'>The login shells are often unaffected by
the settings in <filename>/etc/locale.conf</filename>. </phrase>Create the
<filename>/etc/profile</filename>
<phrase revision='sysv'>once the proper locale settings have been
determined to set the desired locale</phrase><phrase
revision='systemd'>to read the locale settings from
<filename>/etc/locale.conf</filename> and export them</phrase>,
but set the <literal>C.UTF-8</literal> locale instead if running in the Linux
console (to prevent programs from outputting characters that the Linux
console is unable to render):</para>
<screen revision="systemd"><userinput>cat &gt; /etc/profile &lt;&lt; "EOF"
<literal># Begin /etc/profile
for i in $(locale); do
unset ${i%=*}
done
if [[ "$TERM" = linux ]]; then
export LANG=C.UTF-8
else
source /etc/locale.conf
for i in $(locale); do
key=${i%=*}
if [[ -v $key ]]; then
export $key
fi
done
fi
# End /etc/profile</literal>
EOF</userinput></screen>
<screen revision="sysv"><userinput>cat &gt; /etc/profile &lt;&lt; "EOF"
<literal># Begin /etc/profile
for i in $(locale); do
unset ${i%=*}
done
if [[ "$TERM" = linux ]]; then
export LANG=C.UTF-8
else
export LANG=<replaceable>&lt;ll&gt;_&lt;CC&gt;.&lt;charmap&gt;&lt;@modifiers&gt;</replaceable>
fi
# End /etc/profile</literal>
EOF</userinput></screen>
<para revision='systemd'>Note that you can modify <filename>/etc/locale.conf</filename> with the
systemd <command>localectl</command> utility. To use
<command>localectl</command> for the example above, run:</para>
<screen role="nodump"><userinput>localectl set-locale LANG="<replaceable>&lt;ll&gt;_&lt;CC&gt;.&lt;charmap&gt;&lt;@modifiers&gt;</replaceable>"</userinput></screen>
<screen revision='systemd' role="nodump"><userinput>localectl set-locale LANG="<replaceable>&lt;ll&gt;_&lt;CC&gt;.&lt;charmap&gt;&lt;@modifiers&gt;</replaceable>"</userinput></screen>
<para>You can also specify other language specific environment variables such
as <envar>LANG</envar>, <envar>LC_CTYPE</envar>, <envar>LC_NUMERIC</envar> or
any other environment variable from <command>locale</command> output. Just
separate them with a space. An example where <envar>LANG</envar> is set as
<para revision='systemd'>You can also specify other language specific
environment variables such as <envar>LANG</envar>,
<envar>LC_CTYPE</envar>, <envar>LC_NUMERIC</envar> or any other
environment variable from <command>locale</command> output. Just separate
them with a space. An example where <envar>LANG</envar> is set as
en_US.UTF-8 but <envar>LC_CTYPE</envar> is set as just en_US is:</para>
<screen role="nodump"><userinput>localectl set-locale LANG="en_US.UTF-8" LC_CTYPE="en_US"</userinput></screen>
<screen revision='systemd' role="nodump"><userinput>localectl set-locale LANG="en_US.UTF-8" LC_CTYPE="en_US"</userinput></screen>
<note><para>Please note that the <command>localectl</command> command
doesn't work in the chroot environment. It can only
be used after the LFS system is booted with systemd.</para></note>
<note revision='systemd'><para>Please note that the
<command>localectl</command> command doesn't work in the chroot
environment. It can only be used after the LFS system is booted with
systemd.</para></note>
<para>The <quote>C</quote> (default) and <quote>en_US</quote> (the recommended
one for United States English users) locales are different. <quote>C</quote>
<para>The <literal>C</literal> (default) and <literal>en_US</literal>
(the recommended one for United States English users) locales are
different. <literal>C</literal>
uses the US-ASCII 7-bit character set, and treats bytes with the high bit set
as invalid characters. That's why, e.g., the <command>ls</command> command
substitutes them with question marks in that locale. Also, an attempt to send
mail with such characters from Mutt or Pine results in non-RFC-conforming
messages being sent (the charset in the outgoing mail is indicated as <quote>unknown
8-bit</quote>). It's suggested that you use the <quote>C</quote> locale only
messages being sent (the charset in the outgoing mail is indicated as
<computeroutput>unknown 8-bit</computeroutput>). It's suggested that you
use the <literal>C</literal> locale only
if you are certain that you will never need 8-bit characters.</para>
<!--
<para>UTF-8 based locales are not supported well by many programs.
Work is in progress to document and, if possible, fix such problems, see
<ulink url="&blfs-book;introduction/locale-issues.html"/>.</para>
-->
</sect1>

View File

@ -62,9 +62,9 @@ EOF</userinput></screen>
<para>The values in italics must be changed in each file, to set
the interfaces up correctly.</para>
<para>If the <envar>ONBOOT</envar> variable is set to <quote>yes</quote> the
<para>If the <envar>ONBOOT</envar> variable is set to <literal>yes</literal> the
System V network script will bring up the Network Interface Card (NIC) during
the system boot process. If set to anything besides <quote>yes</quote>, the NIC
the system boot process. If set to anything besides <literal>yes</literal>, the NIC
will be ignored by the network script and will not be started automatically.
Interfaces can be manually started or stopped with the
<command>ifup</command> and <command>ifdown</command> commands.</para>

View File

@ -50,9 +50,11 @@
<filename class="extension">.netdev</filename> and
<filename class="extension">.network</filename> files. For detailed
descriptions and example contents of these configuration files, consult
the <filename>systemd-link(5)</filename>,
<filename>systemd-netdev(5)</filename> and
<filename>systemd-network(5)</filename> manual pages.</para>
the <ulink role='man' url='&man;systemd-link.5'>systemd-link(5)</ulink>,
<ulink role='man' url='&man;systemd-netdev.5'>systemd-netdev(5)</ulink>,
and <ulink role='man'
url='&man;systemd-network.5'>systemd-network(5)</ulink> manual
pages.</para>
<sect3 id="systemd-network-devices">
<title>Network Device Naming</title>
@ -89,7 +91,8 @@
<itemizedlist>
<listitem>
<para>
Mask udev's .link file for the default policy:
Mask udev's <filename class='extension'>.link</filename> file
for the default policy:
<screen role="nodump"><userinput>ln -s /dev/null /etc/systemd/network/99-default.link</userinput></screen>
</para>
</listitem>
@ -97,10 +100,11 @@
<listitem>
<para>
Create a manual naming scheme, for example by naming the
interfaces something like "internet0", "dmz0", or "lan0".
To do that, create .link files in /etc/systemd/network/ that
select an explicit name or a better naming scheme for your
network interfaces. For example:
interfaces something like <literal>internet0</literal>,
<literal>dmz0</literal>, or <literal>lan0</literal>.
To do that, create <filename class='extension'>.link</filename>
files in /etc/systemd/network/ that select an explicit name or a
better naming scheme for your network interfaces. For example:
</para>
<screen role="nodump"><userinput>cat &gt; /etc/systemd/network/10-ether0.link &lt;&lt; "EOF"
@ -113,7 +117,7 @@ Name=ether0</literal>
EOF</userinput></screen>
<para>
See <filename>systemd.link(5)</filename> for more information.
See <ulink role='man' url='&man;systemd.link.5'>systemd.link(5)</ulink> for more information.
</para>
</listitem>
@ -357,7 +361,9 @@ EOF</userinput></screen>
<literal>localhost.localdomain</literal>, or the hostname (without a
domain) because they are handled by the
<systemitem class='library'>myhostname</systemitem> NSS module, read
the man page <filename>nss-myhostname(8)</filename> for details.</para>
the man page <ulink role='man'
url='&man;nss-myhostname.8'>nss-myhostname(8)</ulink> for
details.</para>
<para>The ::1 entry is the IPv6 counterpart of 127.0.0.1 and represents
the IPv6 loopback interface.</para>

View File

@ -1,163 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE sect1 PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
<!ENTITY % general-entities SYSTEM "../general.ent">
%general-entities;
]>
<sect1 id="ch-config-profile" revision="sysv">
<?dbhtml filename="profile.html"?>
<title>The Bash Shell Startup Files</title>
<indexterm zone="ch-config-profile">
<primary sortas="e-/etc/profile">/etc/profile</primary>
</indexterm>
<para>The shell program <command>/bin/bash</command> (hereafter referred to
as <quote>the shell</quote>) uses a collection of startup files to help
create the environment to run in. Each file has a specific use and may affect
login and interactive environments differently. The files in the <filename
class="directory">/etc</filename> directory provide global settings. If
equivalent files exist in the home directory, they may override the global
settings.</para>
<para>An interactive login shell is started after a successful login, using
<command>/bin/login</command>, by reading the <filename>/etc/passwd</filename>
file. An interactive non-login shell is started at the command-line (e.g.,
<prompt>[prompt]$</prompt><command>/bin/bash</command>). A non-interactive
shell is usually present when a shell script is running. It is non-interactive
because it is processing a script and not waiting for user input between
commands.</para>
<para>For more information, see the <emphasis>Bash Startup Files</emphasis> and
<emphasis>Interactive Shells</emphasis> sections in the <emphasis>Bash
Features</emphasis> chapter of the Bash info pages (<command>info bash</command>).</para>
<para>The files <filename>/etc/profile</filename> and
<filename>~/.bash_profile</filename> are read when the shell is
invoked as an interactive login shell.</para>
<para>The base <filename>/etc/profile</filename> below sets some
environment variables necessary for native language support. Setting
them properly results in:</para>
<itemizedlist>
<listitem>
<para>The output of programs translated into the native language</para>
</listitem>
<listitem>
<para>Correct classification of characters into letters, digits and other
classes. This is necessary for <command>bash</command> to properly accept
non-ASCII characters in command lines in non-English locales</para>
</listitem>
<listitem>
<para>The correct alphabetical sorting order for the country</para>
</listitem>
<listitem>
<para>Appropriate default paper size</para>
</listitem>
<listitem>
<para>Correct formatting of monetary, time, and date values</para>
</listitem>
</itemizedlist>
<para>Replace <replaceable>&lt;ll&gt;</replaceable> below with the two-letter code
for the desired language (e.g., <quote>en</quote>) and
<replaceable>&lt;CC&gt;</replaceable> with the two-letter code for the appropriate
country (e.g., <quote>GB</quote>). <replaceable>&lt;charmap&gt;</replaceable> should
be replaced with the canonical charmap for your chosen locale. Optional
modifiers such as <quote>@euro</quote> may also be present.</para>
<para>The list of all locales supported by Glibc can be obtained by running
the following command:</para>
<screen role="nodump"><userinput>locale -a</userinput></screen>
<para>Charmaps can have a number of aliases, e.g., <quote>ISO-8859-1</quote>
is also referred to as <quote>iso8859-1</quote> and <quote>iso88591</quote>.
Some applications cannot handle the various synonyms correctly (e.g., require
that <quote>UTF-8</quote> is written as <quote>UTF-8</quote>, not
<quote>utf8</quote>), so it is safest in most
cases to choose the canonical name for a particular locale. To determine
the canonical name, run the following command, where <replaceable>&lt;locale
name&gt;</replaceable> is the output given by <command>locale -a</command> for
your preferred locale (<quote>en_GB.iso88591</quote> in our example).</para>
<screen role="nodump"><userinput>LC_ALL=<replaceable>&lt;locale name&gt;</replaceable> locale charmap</userinput></screen>
<para>For the <quote>en_GB.iso88591</quote> locale, the above command
will print:</para>
<screen><computeroutput>ISO-8859-1</computeroutput></screen>
<para>This results in a final locale setting of <quote>en_GB.ISO-8859-1</quote>.
It is important that the locale found using the heuristic above is tested before
it is added to the Bash startup files:</para>
<screen role="nodump"><userinput>LC_ALL=&lt;locale name&gt; locale language
LC_ALL=&lt;locale name&gt; locale charmap
LC_ALL=&lt;locale name&gt; locale int_curr_symbol
LC_ALL=&lt;locale name&gt; locale int_prefix</userinput></screen>
<para>The above commands should print the language name, the character
encoding used by the locale, the local currency, and the prefix to dial
before the telephone number in order to get into the country. If any of the
commands above fail with a message similar to the one shown below, this means
that your locale was either not installed in <xref linkend="ch-system-glibc"/>
or is not supported by the default installation of Glibc.</para>
<screen><computeroutput>locale: Cannot set LC_* to default locale: No such file or directory</computeroutput></screen>
<para>If this happens, you should either install the desired locale using the
<command>localedef</command> command, or consider choosing a different locale.
Further instructions assume that there are no such error messages from
Glibc.</para>
<!-- FIXME: the xlib example will became obsolete real soon -->
<!--<para>Some packages beyond LFS may also lack support for your chosen locale. One
example is the X library (part of the X Window System), which outputs the
following error message if the locale does not exactly match one of the character
map names in its internal files:</para>
<screen><computeroutput>Warning: locale not supported by Xlib, locale set to C</computeroutput></screen>
<para>In several cases Xlib expects that the character map will be listed in
uppercase notation with canonical dashes. For instance, "ISO-8859-1" rather
than "iso88591". It is also possible to find an appropriate specification by
removing the charmap part of the locale specification. This can be checked
by running the <command>locale charmap</command> command in both locales.
For example, one would have to change "de_DE.ISO-8859-15@euro" to
"de_DE@euro" in order to get this locale recognized by Xlib.</para>
-->
<para>Other packages may also function incorrectly (but will not necessarily
display any error messages) if the locale name does not meet their expectations.
In such cases, investigating how other Linux distributions support your locale
might provide some useful information.</para>
<para>Once the proper locale settings have been determined, create the
<filename>/etc/profile</filename> file:</para>
<screen><userinput>cat &gt; /etc/profile &lt;&lt; "EOF"
<literal># Begin /etc/profile
export LANG=<replaceable>&lt;ll&gt;_&lt;CC&gt;.&lt;charmap&gt;&lt;@modifiers&gt;</replaceable>
# End /etc/profile</literal>
EOF</userinput></screen>
<para>The <quote>C</quote> (default) and <quote>en_US.utf8</quote> (the recommended
one for United States English users) locales are different. <quote>C</quote>
uses the US-ASCII 7-bit character set, and treats bytes with the high-order bit set
<quote>on</quote> as invalid characters. That's why, e.g., the <command>ls</command> command
displays them as question marks in that locale. Also, an attempt to send
mail with such characters from Mutt or Pine results in non-RFC-conforming
messages being sent (the charset in the outgoing mail is indicated as <quote>unknown
8-bit</quote>). So you can only use the <quote>C</quote> locale if you are sure
you will never need 8-bit characters.</para>
<para>UTF-8 based locales are not supported well by some programs.
Work is in progress to document and, if possible, fix such problems. See
<ulink url="&blfs-book;introduction/locale-issues.html"/>.</para>
</sect1>

View File

@ -21,8 +21,9 @@
of options to control basic systemd operations. The default file has all
entries commented out with the default settings indicated. This file is
where the log level may be changed as well as some basic logging settings.
See the <filename>systemd-system.conf(5)</filename> manual page for details
on each configuration option.</para>
See the <ulink role='man'
url='&man;systemd-system.conf.5'>systemd-system.conf(5)</ulink> manual
page for details on each configuration option.</para>
</sect2>
@ -89,8 +90,8 @@ EOF</userinput></screen>
<filename class="directory">/etc/tmpfiles.d</filename> override
files with the same name in
<filename class="directory">/usr/lib/tmpfiles.d</filename>. See
<filename>tmpfiles.d(5)</filename> manual page for file format
details.</para>
<ulink role='man' url='&man;tmpfiles.d.5'>tmpfiles.d(5)</ulink> manual
page for file format details.</para>
<para>
Note that the syntax for the
@ -135,7 +136,8 @@ Restart=always
RestartSec=30</literal>
EOF</userinput></screen>
<para>See <filename>systemd.unit(5)</filename> manual page for more
<para>See <ulink role='man'
url='&man;systemd.unit.5'>systemd.unit(5)</ulink> manual page for more
information. After creating the configuration file, run
<userinput>systemctl daemon-reload</userinput> and <userinput>systemctl
restart foobar</userinput> to activate the changes to a service.</para>
@ -251,10 +253,11 @@ cat &gt; /etc/systemd/coredump.conf.d/maxuse.conf &lt;&lt; EOF
MaxUse=5G</literal>
EOF</userinput></screen>
<para>See the <filename>systemd-coredump(8)</filename>,
<filename>coredumpctl(1)</filename>, and
<filename>coredump.conf.d(5)</filename> manual pages for more
information.</para>
<para>See the <ulink role='man' url='&man;systemd-coredump.8'>systemd-coredump(8)</ulink>,
<ulink role='man' url='&man;coredumpctl.1'>coredumpctl(1)</ulink>, and
<ulink role='man'
url='&man;coredump.conf.d.5'>coredump.conf.d(5)</ulink> manual pages for
more information.</para>
</sect2>
<sect2>

View File

@ -129,13 +129,13 @@
program and are usually related to the bus-specific identifiers of devices
supported by a module. For example, the <emphasis>snd-fm801</emphasis>
driver supports PCI devices with vendor ID 0x1319 and device ID 0x0801,
and has an alias of <quote>pci:v00001319d00000801sv*sd*bc04sc01i*</quote>.
and has an alias of <literal>pci:v00001319d00000801sv*sd*bc04sc01i*</literal>.
For most devices, the bus driver exports the alias of the driver that
would handle the device via <systemitem
class="filesystem">sysfs</systemitem>. E.g., the
<filename>/sys/bus/pci/devices/0000:00:0d.0/modalias</filename> file
might contain the string
<quote>pci:v00001319d00000801sv00001319sd00001319bc04sc01i00</quote>.
<literal>pci:v00001319d00000801sv00001319sd00001319bc04sc01i00</literal>.
The default rules provided with udev will cause <command>udevd</command>
to call out to <command>/sbin/modprobe</command> with the contents of the
<envar>MODALIAS</envar> uevent environment variable (which should be the
@ -225,8 +225,9 @@
<para>Note that the <quote>softdep</quote> command also allows
<literal>pre:</literal> dependencies, or a mixture of both
<literal>pre:</literal> and <literal>post:</literal> dependencies. See
the <filename>modprobe.d(5)</filename> manual page for more information
on <quote>softdep</quote> syntax and capabilities.</para>
the <ulink role='man' url='&man;modprobe.d.5'>modprobe.d(5)</ulink>
manual page for more information on <quote>softdep</quote> syntax and
capabilities.</para>
<para revision="sysv">If the module in question is not a wrapper and is
useful by itself, configure the <command>modules</command> bootscript to
@ -300,7 +301,7 @@
<para>This is due to the fact that udev, by design, handles uevents and
loads modules in parallel, and thus in an unpredictable order. This will
never be <quote>fixed</quote>. You should not rely upon the kernel device
never be <quote>fixed.</quote> You should not rely upon the kernel device
names being stable. Instead, create your own rules that make symlinks with
stable names based on some stable attributes of the device, such as a
serial number or the output of various *_id utilities installed by udev.

View File

@ -32,7 +32,8 @@
<para>SysVinit (which will be referred to as <quote>init</quote> from now on)
uses a run levels scheme. There are seven run levels, numbered 0 to 6.
(Actually, there are more run levels, but the others are for special cases and are
generally not used. See <filename>init(8)</filename> for more details.)
generally not used. See <ulink role='man'
url='&man;init.8'>init(8)</ulink> for more details.)
Each one of the seven corresponds to actions the computer is supposed to
perform when it starts up or shuts down. The default run level is 3. Here are the
descriptions of the different run levels as they are implemented in LFS:</para>
@ -47,11 +48,11 @@
<note>
<para>
Classically, run level 2 above was defined as
"multi-user mode without networking", but this was only the case
Classically, run level 2 above was defined as <quote>multi-user
mode without networking,</quote> but this was only the case
many years ago when multiple users could connect to a system via
serial ports. In today's environment it makes no sense, and
we now say it is "reserved".
we now say it is <quote>reserved.</quote>
</para>
</note>
@ -341,12 +342,13 @@ EOF</userinput></screen>
url="https://tldp.org/HOWTO/HOWTO-INDEX/other-lang.html"/>. If still in
doubt, look in the <filename class="directory">/usr/share/keymaps</filename>
and <filename class="directory">/usr/share/consolefonts</filename> directories
for valid keymaps and screen fonts. Read the <filename>loadkeys(1)</filename> and
<filename>setfont(8)</filename> manual pages to determine the correct
arguments for these programs.</para>
for valid keymaps and screen fonts. Read the <ulink role='man'
url='&man;loadkeys.1'>loadkeys(1)</ulink> and <ulink role='man'
url='&man;setfont.8'>setfont(8)</ulink> manual pages to determine the
correct arguments for these programs.</para>
<para>The <filename>/etc/sysconfig/console</filename> file should contain lines
of the form: VARIABLE="value". The following variables are recognized:</para>
of the form: <envar>VARIABLE=value</envar>. The following variables are recognized:</para>
<variablelist>
<varlistentry>
@ -354,7 +356,7 @@ EOF</userinput></screen>
<listitem>
<para>This variable specifies the log level for kernel messages sent
to the console as set by <command>dmesg -n</command>. Valid levels are
from "1" (no messages) to "8". The default level is "7".</para>
from <literal>1</literal> (no messages) to <literal>8</literal>. The default level is <literal>7</literal>, which is quite verbose.</para>
</listitem>
</varlistentry>
@ -363,7 +365,7 @@ EOF</userinput></screen>
<listitem>
<para>This variable specifies the arguments for the
<command>loadkeys</command> program, typically, the name of the keymap
to load, e.g., <quote>it</quote>. If this variable is not set, the
to load, e.g., <literal>it</literal>. If this variable is not set, the
bootscript will not run the <command>loadkeys</command> program,
and the default kernel keymap will be used. Note that a few keymaps
have multiple versions with the same name (cz and its variants in
@ -382,7 +384,7 @@ EOF</userinput></screen>
<command>loadkeys</command> program. This is useful if the stock keymap
is not completely satisfactory and a small adjustment has to be made. E.g.,
to include the Euro sign into a keymap that normally doesn't have it,
set this variable to <quote>euro2</quote>.</para>
set this variable to <literal>euro2</literal>.</para>
</listitem>
</varlistentry>
@ -391,12 +393,12 @@ EOF</userinput></screen>
<listitem>
<para>This variable specifies the arguments for the
<command>setfont</command> program. Typically, this includes the font
name, <quote>-m</quote>, and the name of the application character
name, <literal>-m</literal>, and the name of the application character
map to load. E.g., in order to load the <quote>lat1-16</quote> font
together with the <quote>8859-1</quote> application character map
(appropriate in the USA),
<!-- because of the copyright sign -->
set this variable to <quote>lat1-16 -m 8859-1</quote>.
set this variable to <literal>lat1-16 -m 8859-1</literal>.
In UTF-8 mode, the kernel uses the application character map to
convert 8-bit key codes to UTF-8. Therefore
the argument of the "-m" parameter should be set to the encoding of the
@ -408,8 +410,8 @@ EOF</userinput></screen>
<varlistentry>
<term>UNICODE</term>
<listitem>
<para>Set this variable to <quote>1</quote>, <quote>yes</quote>, or
<quote>true</quote> in order to put the
<para>Set this variable to <literal>1</literal>, <literal>yes</literal>, or
<literal>true</literal> in order to put the
console into UTF-8 mode. This is useful in UTF-8 based locales and
harmful otherwise.</para>
</listitem>
@ -430,6 +432,40 @@ EOF</userinput></screen>
<para>Some examples:</para>
<itemizedlist>
<listitem>
<para>
We'll use <literal>C.UTF-8</literal> as the locale for interactive
sessions in the Linux console in <xref role=','
linkend='ch-config-locale'/> so we should set
<literal>UNICODE</literal> to <literal>1</literal>. And the console
fonts shipped by the <application>Kbd</application> package
containing the glyphs for all characters from the program messages
in the <literal>C.UTF-8</literal> locale are
<filename>LatArCyrHeb*.psfu.gz</filename>,
<filename>LatGrkCyr*.psfu.gz</filename>,
<filename>Lat2-Terminus16.psfu.gz</filename>, and
<filename>pancyrillic.f16.psfu.gz</filename> in
<filename class='directory'>/usr/share/consolefonts</filename> (the
other shipped console fonts lack glyphs of some characters like the
Unicode left/right quotation marks and the Unicode English dash).
So set one of them, for example
<filename>Lat2-Terminus16.psfu.gz</filename> as the default console
font:
</para>
<!-- We are using 'nodump' for the generic setting, but not for an
example (see below). This is deliberate to keep the
compatibility with jhalfs. -->
<screen role='nodump'><userinput>cat &gt; /etc/sysconfig/console &lt;&lt; "EOF"
<literal># Begin /etc/sysconfig/console
UNICODE="1"
FONT="Lat2-Terminus16"
# End /etc/sysconfig/console</literal>
EOF</userinput></screen>
</listitem>
<listitem>
<para>For a non-Unicode setup, only the KEYMAP and FONT variables are
@ -524,7 +560,7 @@ EOF</userinput></screen>
languages, because there accents are added to unaccented ASCII
characters, or two ASCII characters are composed together. However, in
UTF-8 mode it is a problem; e.g., for the Greek language, where one
sometimes needs to put an accent on the letter <quote>alpha</quote>.
sometimes needs to put an accent on the letter α.
The solution is either to avoid the use of UTF-8, or to install the
X window system, which doesn't have this limitation, in its input
handling.</para>

View File

@ -56,7 +56,7 @@ EOF</userinput></screen>
class="partition">sda2</filename>, <filename
class="partition">sda5</filename>, and <systemitem
class="filesystem">ext4</systemitem>. For details on the six
fields in this file, see <filename>fstab(5)</filename>.</para>
fields in this file, see <ulink role='man' url='&man;fstab.5'>fstab(5)</ulink>.</para>
<para>Filesystems with MS-DOS or Windows origin (i.e. vfat, ntfs, smbfs,
cifs, iso9660, udf) need a special option, utf8, in order for non-ASCII

View File

@ -190,17 +190,6 @@ umount /sys/firmware/efi/efivars</userinput></screen>
</para>
</note>
<!-- This does not seem to be true any more
<note><para><application>grub-install</application> is a script and calls another
program, grub-probe, that may fail with a message "cannot stat `/dev/root'".
If so, create a temporary symbolic link from your root partition to /dev/root:</para>
<screen role="nodump"><userinput>ln -sv /dev/sda2 /dev/root</userinput></screen>
<para>The symbolic link will only be present until the system is rebooted.
The link is only needed for the installation procedure.
</para></note>
-->
</sect2>
<sect2 id="grub-cfg">

View File

@ -87,7 +87,7 @@
un-tarring.</para>
<para>There are several ways to configure the kernel options. Usually,
This is done through a menu-driven interface, for example:</para>
this is done through a menu-driven interface, for example:</para>
<screen role="nodump"><userinput>make menuconfig</userinput></screen>
@ -304,7 +304,8 @@
located in <xref linkend="ch-config-udev"/> and in the kernel
documentation in the <filename
class="directory">linux-&linux-version;/Documentation</filename> directory.
Also, <filename>modprobe.d(5)</filename> may be of interest.</para>
Also, <ulink role='man' url='&man;modprobe.d.5'>modprobe.d(5)</ulink>
may be of interest.</para>
<para>Unless module support has been disabled in the kernel configuration,
install the modules with:</para>

View File

@ -130,7 +130,7 @@ mounttype proc proc proc
mounttype sys sysfs sysfs
mounttype run tmpfs run
if [ -h $LFS/dev/shm ]; then
mkdir -pv $LFS/$(readlink $LFS/dev/shm)
install -v -d -m 1777 $LFS$(realpath /dev/shm)
else
mounttype dev/shm tmpfs tmpfs -o nosuid,nodev
fi

View File

@ -92,9 +92,9 @@
<!ENTITY test-results "&lfs-root;lfs/build-logs/&generic-version;/">
<!ENTITY secadv "&lfs-root;lfs/advisories/">
<!-- 4.14 EOL is Jan 2024
so for LFS 11.5 we may consider moving to 4.19 -->
<!ENTITY min-kernel "4.14">
<!-- 4.19 EOL is Dec 2024
so for LFS 12.3 we may consider moving to 5.4 -->
<!ENTITY min-kernel "4.19">
<!--
<!ENTITY patches-rootd "&lfs-root;patches/lfs/&generic-versiond;/">
@ -125,6 +125,7 @@
<!ENTITY github "https://github.com">
<!ENTITY pypi-home "https://pypi.org/project">
<!ENTITY pypi-src "https://pypi.org/packages/source">
<!ENTITY man "https://man.archlinux.org/man/">
<!ENTITY root "<systemitem class='username'>root</systemitem>">
<!ENTITY lfs-user "<systemitem class='username'>lfs</systemitem>">

View File

@ -152,6 +152,7 @@ if ( $package == "tcl" ) $dirpath = "https://www.tcl.tk/software/tcltk/do
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 == "xz" ) $dirpath = github("tukaani-project/xz");
if ( $package == "zlib" ) $dirpath = "https://www.zlib.net";
if ( $package == "zstd" ) $dirpath = github("facebook/zstd");

View File

@ -13,12 +13,12 @@
*-knl-* Package info for Kernel stuff
-->
<!ENTITY acl-version "2.3.1">
<!ENTITY acl-size "348 KB">
<!ENTITY acl-version "2.3.2">
<!ENTITY acl-size "363 KB">
<!ENTITY acl-url "&savannah;/releases/acl/acl-&acl-version;.tar.xz">
<!ENTITY acl-md5 "95ce715fe09acca7c12d3306d0f076b2">
<!ENTITY acl-md5 "590765dee95907dbc3c856f7255bd669">
<!ENTITY acl-home "&savannah-nongnu;/projects/acl">
<!ENTITY acl-fin-du "6.1 MB">
<!ENTITY acl-fin-du "6.3 MB">
<!ENTITY acl-fin-sbu "less than 0.1 SBU">
<!ENTITY attr-version "2.5.2">
@ -26,7 +26,7 @@
<!ENTITY attr-url "&savannah;/releases/attr/attr-&attr-version;.tar.gz">
<!ENTITY attr-md5 "227043ec2f6ca03c0948df5517f9c927">
<!ENTITY attr-home "&savannah-nongnu;/projects/attr">
<!ENTITY attr-fin-du "4.1 MB">
<!ENTITY attr-fin-du "4.2 MB">
<!ENTITY attr-fin-sbu "less than 0.1 SBU">
<!ENTITY autoconf-version "2.72">
@ -34,8 +34,8 @@
<!ENTITY autoconf-url "&gnu;autoconf/autoconf-&autoconf-version;.tar.xz">
<!ENTITY autoconf-md5 "1be79f7106ab6767f18391c5e22be701">
<!ENTITY autoconf-home "&gnu-software;autoconf/">
<!ENTITY autoconf-fin-du "24 MB">
<!ENTITY autoconf-fin-sbu-tests "6.0">
<!ENTITY autoconf-fin-du "25 MB">
<!ENTITY autoconf-fin-sbu-tests "0.5">
<!ENTITY autoconf-fin-sbu "less than 0.1 SBU (about &autoconf-fin-sbu-tests; SBU with tests)">
<!ENTITY automake-version "1.16.5">
@ -44,8 +44,8 @@
<!ENTITY automake-url "&gnu;automake/automake-&automake-version;.tar.xz">
<!ENTITY automake-md5 "4017e96f89fca45ca946f1c5db6be714">
<!ENTITY automake-home "&gnu-software;automake/">
<!ENTITY automake-fin-du "114 MB">
<!ENTITY automake-fin-sbu "less than 0.1 SBU (about 7.0 SBU with tests)">
<!ENTITY automake-fin-du "115 MB">
<!ENTITY automake-fin-sbu "less than 0.1 SBU (about 1.6 SBU with tests)">
<!ENTITY bash-version "5.2.21">
<!ENTITY bash-size "10,696 KB">
@ -55,24 +55,24 @@
<!ENTITY bash-tmp-du "67 MB">
<!ENTITY bash-tmp-sbu "0.2 SBU">
<!ENTITY bash-fin-du "52 MB">
<!ENTITY bash-fin-sbu "1.1 SBU">
<!ENTITY bash-fin-sbu "1.2 SBU">
<!ENTITY bc-version "6.7.5">
<!ENTITY bc-size "460 KB">
<!ENTITY bc-url "https://github.com/gavinhoward/bc/releases/download/&bc-version;/bc-&bc-version;.tar.xz">
<!ENTITY bc-md5 "e249b1f86f886d6fb71c15f72b65dd3d">
<!ENTITY bc-home "https://git.gavinhoward.com/gavin/bc">
<!ENTITY bc-fin-du "7.7 MB">
<!ENTITY bc-fin-du "7.8 MB">
<!ENTITY bc-fin-sbu "less than 0.1 SBU">
<!ENTITY binutils-version "2.41">
<!ENTITY binutils-size "26,139 KB">
<!ENTITY binutils-version "2.42">
<!ENTITY binutils-size "26,922 KB">
<!ENTITY binutils-url "https://sourceware.org/pub/binutils/releases/binutils-&binutils-version;.tar.xz">
<!ENTITY binutils-md5 "256d7e0ad998e423030c84483a7c1e30">
<!ENTITY binutils-md5 "a075178a9646551379bfb64040487715">
<!ENTITY binutils-home "&gnu-software;binutils/">
<!ENTITY binutils-tmpp1-du "647 MB">
<!ENTITY binutils-tmpp1-du "663 MB">
<!ENTITY binutils-tmpp1-sbu "1 SBU">
<!ENTITY binutils-tmpp2-du "523 MB">
<!ENTITY binutils-tmpp2-du "537 MB">
<!ENTITY binutils-tmpp2-sbu "0.5 SBU">
<!ENTITY binutils-fin-du "2.7 GB">
<!ENTITY binutils-fin-sbu "2.2 SBU">
@ -86,7 +86,7 @@
<!ENTITY bison-tmp-du "57 MB">
<!ENTITY bison-tmp-sbu "0.2 SBU">
<!ENTITY bison-fin-du "62 MB">
<!ENTITY bison-fin-sbu "2.2 SBU">
<!ENTITY bison-fin-sbu "2.3 SBU">
<!ENTITY bzip2-version "1.0.8">
<!ENTITY bzip2-size "792 KB">
@ -109,10 +109,10 @@
<!ENTITY coreutils-url "&gnu;coreutils/coreutils-&coreutils-version;.tar.xz">
<!ENTITY coreutils-md5 "459e9546074db2834eefe5421f250025">
<!ENTITY coreutils-home "&gnu-software;coreutils/">
<!ENTITY coreutils-tmp-du "168 MB">
<!ENTITY coreutils-tmp-du "173 MB">
<!ENTITY coreutils-tmp-sbu "0.3 SBU">
<!ENTITY coreutils-fin-du "165 MB">
<!ENTITY coreutils-fin-sbu "0.9 SBU">
<!ENTITY coreutils-fin-du "175 MB">
<!ENTITY coreutils-fin-sbu "1/0 SBU">
<!ENTITY dbus-version "1.14.10">
<!ENTITY dbus-size "1,344 KB">
@ -128,7 +128,7 @@
<!ENTITY dejagnu-md5 "68c5208c58236eba447d7d6d1326b821">
<!ENTITY dejagnu-home "&gnu-software;dejagnu/">
<!ENTITY dejagnu-tmp-du "6.9 MB">
<!ENTITY dejagnu-tmp-sbu "less than 0.1 SBU">
<!ENTITY dejagnu-tmp-sbu "0.1 SBU">
<!ENTITY diffutils-version "3.10">
<!ENTITY diffutils-size "1,587 KB">
@ -146,22 +146,22 @@
<!ENTITY e2fsprogs-md5 "6b4f18a33873623041857b4963641ee9">
<!ENTITY e2fsprogs-home "http://e2fsprogs.sourceforge.net/">
<!ENTITY e2fsprogs-fin-du "95 MB">
<!ENTITY e2fsprogs-fin-sbu "2.4 SBU on a spinning disk, 0.6 SBU on an SSD">
<!ENTITY e2fsprogs-fin-sbu "2.4 SBU on a spinning disk, 0.4 SBU on an SSD">
<!ENTITY elfutils-version "0.190"> <!-- libelf -->
<!ENTITY elfutils-size "8,949 KB">
<!ENTITY elfutils-url "https://sourceware.org/ftp/elfutils/&elfutils-version;/elfutils-&elfutils-version;.tar.bz2">
<!ENTITY elfutils-md5 "79ad698e61a052bea79e77df6a08bc4b">
<!ENTITY elfutils-home "https://sourceware.org/elfutils/">
<!ENTITY elfutils-fin-du "122 MB">
<!ENTITY elfutils-fin-du "124 MB">
<!ENTITY elfutils-fin-sbu "0.3 SBU">
<!ENTITY expat-version "2.5.0">
<!ENTITY expat-size "450 KB">
<!ENTITY expat-version "2.6.0">
<!ENTITY expat-size "473 KB">
<!ENTITY expat-url "&sourceforge;expat/expat-&expat-version;.tar.xz">
<!ENTITY expat-md5 "ac6677b6d1b95d209ab697ce8b688704">
<!ENTITY expat-md5 "bd169cb11f4b9bdfddadf9e88a5c4d4b">
<!ENTITY expat-home "https://libexpat.github.io/">
<!ENTITY expat-fin-du "12 MB">
<!ENTITY expat-fin-du "13 MB">
<!ENTITY expat-fin-sbu "0.1 SBU">
<!ENTITY expect-version "5.45.4">
@ -205,7 +205,7 @@
<!ENTITY flit-core-url "&pypi-src;/f/flit-core/flit_core-&flit-core-version;.tar.gz">
<!ENTITY flit-core-md5 "3bc52f1952b9a78361114147da63c35b">
<!ENTITY flit-core-home "&pypi-home;/flit-core/">
<!ENTITY flit-core-fin-du "1.7 MB">
<!ENTITY flit-core-fin-du "1.6 MB">
<!ENTITY flit-core-fin-sbu "less than 0.1 SBU">
<!ENTITY gawk-version "5.3.0">
@ -213,9 +213,9 @@
<!ENTITY gawk-url "&gnu;gawk/gawk-&gawk-version;.tar.xz">
<!ENTITY gawk-md5 "97c5a7d83f91a7e1b2035ebbe6ac7abd">
<!ENTITY gawk-home "&gnu-software;gawk/">
<!ENTITY gawk-tmp-du "48 MB">
<!ENTITY gawk-tmp-du "47 MB">
<!ENTITY gawk-tmp-sbu "0.1 SBU">
<!ENTITY gawk-fin-du "46 MB">
<!ENTITY gawk-fin-du "42 MB">
<!ENTITY gawk-fin-sbu "0.1 SBU">
<!ENTITY gcc-version "13.2.0">
@ -223,10 +223,10 @@
<!ENTITY gcc-url "&gnu;gcc/gcc-&gcc-version;/gcc-&gcc-version;.tar.xz">
<!ENTITY gcc-md5 "e0e48554cc6e4f261d55ddee9ab69075">
<!ENTITY gcc-home "https://gcc.gnu.org/">
<!ENTITY gcc-tmpp1-du "4.2 GB">
<!ENTITY gcc-tmpp1-sbu "3.5 SBU">
<!ENTITY gcc-tmpp1-du "4.1 GB">
<!ENTITY gcc-tmpp1-sbu "3.8 SBU">
<!ENTITY gcc-tmpp2-du "4.8 GB">
<!ENTITY gcc-tmpp2-sbu "4.3 SBU">
<!ENTITY gcc-tmpp2-sbu "4.4 SBU">
<!ENTITY gcc-fin-du "5.5 GB ">
<!ENTITY gcc-fin-sbu "42 SBU (with tests)">
<!ENTITY libquadmath-version "0.0.0">
@ -243,7 +243,7 @@
<!ENTITY gdbm-md5 "8551961e36bf8c70b7500d255d3658ec">
<!ENTITY gdbm-home "&gnu-software;gdbm/">
<!ENTITY gdbm-fin-du "13 MB">
<!ENTITY gdbm-fin-sbu "less than 0.1 SBU">
<!ENTITY gdbm-fin-sbu "0.1 SBU">
<!ENTITY gettext-version "0.22.4">
<!ENTITY gettext-size "10,016 KB">
@ -255,15 +255,15 @@
<!ENTITY gettext-fin-du "250 MB">
<!ENTITY gettext-fin-sbu "1.4 SBU">
<!ENTITY glibc-version "2.38">
<!ENTITY glibc-size "18,471 KB">
<!ENTITY glibc-version "2.39">
<!ENTITY glibc-size "18,092 KB">
<!ENTITY glibc-url "&gnu;glibc/glibc-&glibc-version;.tar.xz">
<!ENTITY glibc-md5 "778cce0ea6bf7f84ca8caacf4a01f45b">
<!ENTITY glibc-md5 "be81e87f72b5ea2c0ffe2bedfeb680c6">
<!ENTITY glibc-home "&gnu-software;libc/">
<!ENTITY glibc-tmp-du "858 MB">
<!ENTITY glibc-tmp-sbu "1.6 SBU">
<!ENTITY glibc-fin-du "3.0 GB">
<!ENTITY glibc-fin-sbu "11 SBU">
<!ENTITY glibc-tmp-du "846 MB">
<!ENTITY glibc-tmp-sbu "1.5 SBU">
<!ENTITY glibc-fin-du "3.1 GB">
<!ENTITY glibc-fin-sbu "12 SBU">
<!ENTITY gmp-version "6.3.0">
<!ENTITY gmp-size "2,046 KB">
@ -304,7 +304,7 @@
<!ENTITY grub-url "https://ftp.gnu.org/gnu/grub/grub-&grub-version;.tar.xz">
<!ENTITY grub-md5 "60c564b1bdc39d8e43b3aab4bc0fb140">
<!ENTITY grub-home "&gnu-software;grub/">
<!ENTITY grub-fin-du "161 MB">
<!ENTITY grub-fin-du "166 MB">
<!ENTITY grub-fin-sbu "0.3 SBU">
<!ENTITY gzip-version "1.13">
@ -317,10 +317,10 @@
<!ENTITY gzip-fin-du "21 MB">
<!ENTITY gzip-fin-sbu "0.3 SBU">
<!ENTITY iana-etc-version "20240117">
<!ENTITY iana-etc-size "596 KB">
<!ENTITY iana-etc-version "20240125">
<!ENTITY iana-etc-size "589 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 "215feb4b55043a6c18e84a5ed58b705f">
<!ENTITY iana-etc-md5 "aed66d04de615d76c70890233081e584">
<!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">
@ -330,7 +330,7 @@
<!ENTITY inetutils-url "&gnu;inetutils/inetutils-&inetutils-version;.tar.xz">
<!ENTITY inetutils-md5 "9e5a6dfd2d794dc056a770e8ad4a9263">
<!ENTITY inetutils-home "&gnu-software;inetutils/">
<!ENTITY inetutils-fin-du "31 MB">
<!ENTITY inetutils-fin-du "35 MB">
<!ENTITY inetutils-fin-sbu "0.2 SBU">
<!ENTITY intltool-version "0.51.0">
@ -353,8 +353,8 @@
<!ENTITY jinja2-size "264 KB">
<!ENTITY jinja2-url "&pypi-src;/J/Jinja2/Jinja2-&jinja2-version;.tar.gz">
<!ENTITY jinja2-md5 "caf5418c851eac59e70a78d9730d4cea">
<!ENTITY jinja2-home "https://jinja.palletsprojects.com/en/3.0.x/">
<!ENTITY jinja2-fin-du "3.4 MB">
<!ENTITY jinja2-home "https://jinja.palletsprojects.com/en/3.1.x/">
<!ENTITY jinja2-fin-du "3.2 MB">
<!ENTITY jinja2-fin-sbu "less than 0.1 SBU">
<!ENTITY kbd-version "2.6.4">
@ -362,7 +362,7 @@
<!ENTITY kbd-url "https://www.kernel.org/pub/linux/utils/kbd/kbd-&kbd-version;.tar.xz">
<!ENTITY kbd-md5 "e2fd7adccf6b1e98eb1ae8d5a1ce5762">
<!ENTITY kbd-home "https://kbd-project.org/">
<!ENTITY kbd-fin-du "35 MB">
<!ENTITY kbd-fin-du "34 MB">
<!ENTITY kbd-fin-sbu "0.1 SBU">
<!ENTITY kmod-version "31">
@ -419,7 +419,7 @@
<!ENTITY libtool-md5 "2fc0b6ddcd66a89ed6e45db28fa44232">
<!ENTITY libtool-home "&gnu-software;libtool/">
<!ENTITY libtool-fin-du "45 MB">
<!ENTITY libtool-fin-sbu "1.3 SBU">
<!ENTITY libtool-fin-sbu "0.6 SBU">
<!ENTITY libxcrypt-version "4.4.36">
<!ENTITY libxcrypt-size "610 KB">
@ -431,12 +431,12 @@
<!ENTITY linux-major-version "6">
<!ENTITY linux-minor-version "7">
<!ENTITY linux-patch-version "1">
<!ENTITY linux-patch-version "4">
<!--<!ENTITY linux-version "&linux-major-version;.&linux-minor-version;">-->
<!ENTITY linux-version "&linux-major-version;.&linux-minor-version;.&linux-patch-version;">
<!ENTITY linux-size "138,096 KB">
<!ENTITY linux-size "138,130 KB">
<!ENTITY linux-url "&kernel;linux/kernel/v&linux-major-version;.x/linux-&linux-version;.tar.xz">
<!ENTITY linux-md5 "d8a7394e0e349dd373e9722e141c8b61">
<!ENTITY linux-md5 "370e1b6155ae63133380e421146619e0">
<!ENTITY linux-home "https://www.kernel.org/">
<!-- measured for 6.5.3 / gcc-13.2.0 on x86_64 with -j4 : minimum is
allnoconfig + some configs we recommend for the users, rounded down to
@ -475,29 +475,29 @@
<!ENTITY man-db-url "&savannah;/releases/man-db/man-db-&man-db-version;.tar.xz">
<!ENTITY man-db-md5 "67e0052fa200901b314fad7b68c9db27">
<!ENTITY man-db-home "https://www.nongnu.org/man-db/">
<!ENTITY man-db-fin-du "40 MB">
<!ENTITY man-db-fin-du "41 MB">
<!ENTITY man-db-fin-sbu "0.2 SBU">
<!ENTITY man-pages-version "6.05.01">
<!ENTITY man-pages-size "2,144 KB">
<!ENTITY man-pages-version "6.06">
<!ENTITY man-pages-size "2,116 KB">
<!ENTITY man-pages-url "&kernel;linux/docs/man-pages/man-pages-&man-pages-version;.tar.xz">
<!ENTITY man-pages-md5 "de4563b797cf9b1e0b0d73628b35e442">
<!ENTITY man-pages-md5 "26b39e38248144156d437e1e10cb20bf">
<!ENTITY man-pages-home "https://www.kernel.org/doc/man-pages/">
<!ENTITY man-pages-fin-du "33 MB">
<!ENTITY man-pages-fin-sbu "less than 0.1 SBU">
<!ENTITY markupsafe-version "2.1.4">
<!ENTITY markupsafe-size "20 KB">
<!ENTITY markupsafe-version "2.1.5">
<!ENTITY markupsafe-size "19 KB">
<!ENTITY markupsafe-url "&pypi-src;/M/MarkupSafe/MarkupSafe-&markupsafe-version;.tar.gz">
<!ENTITY markupsafe-md5 "8138329a11cf4bd0f9db780b2af26c66">
<!ENTITY markupsafe-md5 "8fe7227653f2fb9b1ffe7f9f2058998a">
<!ENTITY markupsafe-home "https://palletsprojects.com/p/markupsafe/">
<!ENTITY markupsafe-fin-du "548 KB">
<!ENTITY markupsafe-fin-du "508 KB">
<!ENTITY markupsafe-fin-sbu "less than 0.1 SBU">
<!ENTITY meson-version "1.3.1">
<!ENTITY meson-version "1.3.2">
<!ENTITY meson-size "2,172 KB">
<!ENTITY meson-url "&github;/mesonbuild/meson/releases/download/&meson-version;/meson-&meson-version;.tar.gz">
<!ENTITY meson-md5 "dd404b8c0f8b79f80181b4a58bb81768">
<!ENTITY meson-md5 "2d0ebd3a24249617b1c4d30026380cf8">
<!ENTITY meson-home "https://mesonbuild.com">
<!ENTITY meson-fin-du "42 MB">
<!ENTITY meson-fin-sbu "less than 0.1 SBU">
@ -515,8 +515,8 @@
<!ENTITY mpfr-url "https://ftp.gnu.org/gnu/mpfr/mpfr-&mpfr-version;.tar.xz">
<!ENTITY mpfr-md5 "523c50c6318dde6f9dc523bc0244690a">
<!ENTITY mpfr-home "https://www.mpfr.org/">
<!ENTITY mpfr-fin-du "43 MB">
<!ENTITY mpfr-fin-sbu "0.2 SBU">
<!ENTITY mpfr-fin-du "44 MB">
<!ENTITY mpfr-fin-sbu "0.3 SBU">
<!ENTITY ncurses-release "6.4">
<!ENTITY ncurses-version "&ncurses-release;-20230520">
@ -539,13 +539,13 @@
<!ENTITY ninja-fin-du "75 MB">
<!ENTITY ninja-fin-sbu "0.3 SBU">
<!ENTITY openssl-version "3.2.0">
<!ENTITY openssl-size "17,284 KB">
<!ENTITY openssl-version "3.2.1">
<!ENTITY openssl-size "17,318 KB">
<!ENTITY openssl-url "https://www.openssl.org/source/openssl-&openssl-version;.tar.gz">
<!ENTITY openssl-md5 "7903549a14abebc5c323ce4e85f2cbb2">
<!ENTITY openssl-md5 "c239213887804ba00654884918b37441">
<!ENTITY openssl-home "https://www.openssl.org/">
<!ENTITY openssl-fin-du "587 MB">
<!ENTITY openssl-fin-sbu "3.0 SBU">
<!ENTITY openssl-fin-du "805 MB">
<!ENTITY openssl-fin-sbu "1.8 SBU">
<!ENTITY patch-version "2.7.6">
<!ENTITY patch-size "766 KB">
@ -569,12 +569,12 @@
<!ENTITY perl-tmp-du "280 MB">
<!ENTITY perl-tmp-sbu "0.6 SBU">
<!ENTITY perl-fin-du "239 MB">
<!ENTITY perl-fin-sbu "7.1 SBU">
<!ENTITY perl-fin-sbu "1.5 SBU">
<!ENTITY pkgconf-version "2.1.0">
<!ENTITY pkgconf-version "2.1.1">
<!ENTITY pkgconf-size "305 KB">
<!ENTITY pkgconf-url "https://distfiles.ariadne.space/pkgconf/pkgconf-&pkgconf-version;.tar.xz">
<!ENTITY pkgconf-md5 "0f2eadbb9dea5aed95147272ae1592cc">
<!ENTITY pkgconf-md5 "bc29d74c2483197deb9f1f3b414b7918">
<!ENTITY pkgconf-home "http://pkgconf.org/">
<!ENTITY pkgconf-fin-du "4.6 MB">
<!ENTITY pkgconf-fin-sbu "less than 0.1 SBU">
@ -584,7 +584,7 @@
<!ENTITY procps-ng-url "https://sourceforge.net/projects/procps-ng/files/Production/procps-ng-&procps-ng-version;.tar.xz">
<!ENTITY procps-ng-md5 "2f747fc7df8ccf402d03e375c565cf96">
<!ENTITY procps-ng-home "https://sourceforge.net/projects/procps-ng">
<!ENTITY procps-ng-fin-du "25 MB">
<!ENTITY procps-ng-fin-du "27 MB">
<!ENTITY procps-ng-fin-sbu "0.1 SBU">
<!ENTITY psmisc-version "23.6">
@ -598,19 +598,19 @@
<!-- If python minor version changes, updates in python and
meson pages will be needed: python3.6 and python3.6m -->
<!ENTITY python-version "3.12.1">
<!ENTITY python-version "3.12.2">
<!ENTITY python-minor "3.12">
<!ENTITY python-size "20,102 KB">
<!ENTITY python-size "20,109 KB">
<!ENTITY python-url "https://www.python.org/ftp/python/&python-version;/Python-&python-version;.tar.xz">
<!ENTITY python-md5 "50f827c800483776c8ef86e6a53831fa">
<!ENTITY python-md5 "e7c178b97bf8f7ccd677b94d614f7b3c">
<!ENTITY python-home "https://www.python.org/">
<!ENTITY python-tmp-du "533 MB">
<!ENTITY python-tmp-sbu "0.4 SBU">
<!ENTITY python-fin-du "370 MB">
<!ENTITY python-fin-sbu "1.9 SBU">
<!ENTITY python-tmp-du "598 MB">
<!ENTITY python-tmp-sbu "0.5 SBU">
<!ENTITY python-fin-du "485 MB">
<!ENTITY python-fin-sbu "1.8 SBU">
<!ENTITY python-docs-url "https://www.python.org/ftp/python/doc/&python-version;/python-&python-version;-docs-html.tar.bz2">
<!ENTITY python-docs-md5 "d5c21b804c219b06256495eae30fd153">
<!ENTITY python-docs-size "7,998 KB">
<!ENTITY python-docs-md5 "8a6310f6288e7f60c3565277ec3b5279">
<!ENTITY python-docs-size "8,065 KB">
<!ENTITY readline-version "8.2">
<!ENTITY readline-soversion "8.2"><!-- used for stripping -->
@ -631,20 +631,20 @@
<!ENTITY sed-fin-du "30 MB">
<!ENTITY sed-fin-sbu "0.3 SBU">
<!ENTITY setuptools-version "69.0.3">
<!ENTITY setuptools-version "69.1.0">
<!ENTITY setuptools-size "2,168 KB">
<!ENTITY setuptools-url "&pypi-src;/s/setuptools/setuptools-&setuptools-version;.tar.gz">
<!ENTITY setuptools-md5 "b82de45aaa6b9bb911226660212ebb83">
<!ENTITY setuptools-md5 "6f6eb780ce12c90d81ce243747ed7ab0">
<!ENTITY setuptools-home "&pypi-home;/setuptools/">
<!ENTITY setuptools-fin-du "30 MB">
<!ENTITY setuptools-fin-sbu "0.1 SBU">
<!ENTITY setuptools-fin-du "20 MB">
<!ENTITY setuptools-fin-sbu "less than 0.1 SBU">
<!ENTITY shadow-version "4.14.3">
<!ENTITY shadow-size "1,760 KB">
<!ENTITY shadow-version "4.14.5">
<!ENTITY shadow-size "1,765 KB">
<!ENTITY shadow-url "&github;/shadow-maint/shadow/releases/download/&shadow-version;/shadow-&shadow-version;.tar.xz">
<!ENTITY shadow-md5 "b9a7f56d0c63297c0d11d742be2f8ffd">
<!ENTITY shadow-md5 "452b0e59f08bf618482228ba3732d0ae">
<!ENTITY shadow-home "&github;/shadow-maint/shadow/">
<!ENTITY shadow-fin-du "46 MB">
<!ENTITY shadow-fin-du "49 MB">
<!ENTITY shadow-fin-sbu "0.1 SBU">
<!ENTITY sysklogd-version "1.5.1">
@ -669,7 +669,7 @@
<!--<!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-md5 "1ebe54d7a80f9abf8f2d14ddfeb2432d">
<!ENTITY systemd-fin-du "238 MB">
<!ENTITY systemd-fin-du "247 MB">
<!ENTITY systemd-fin-sbu "0.7 SBU">
<!ENTITY sysvinit-version "3.08">
@ -677,7 +677,7 @@
<!ENTITY sysvinit-url "&github;/slicer69/sysvinit/releases/download/&sysvinit-version;/sysvinit-&sysvinit-version;.tar.xz">
<!ENTITY sysvinit-md5 "81a05f28d7b67533cfc778fcadea168c">
<!ENTITY sysvinit-home "&savannah-nongnu;/projects/sysvinit">
<!ENTITY sysvinit-fin-du "4.5 MB">
<!ENTITY sysvinit-fin-du "3.5 MB">
<!ENTITY sysvinit-fin-sbu "less than 0.1 SBU">
<!ENTITY tar-version "1.35">
@ -688,7 +688,7 @@
<!ENTITY tar-tmp-du "42 MB">
<!ENTITY tar-tmp-sbu "0.1 SBU">
<!ENTITY tar-fin-du "43 MB">
<!ENTITY tar-fin-sbu "1.7 SBU">
<!ENTITY tar-fin-sbu "0.5 SBU">
<!ENTITY tcl-version "8.6.13">
<!ENTITY tcl-major-version "8.6">
@ -707,18 +707,18 @@
<!ENTITY texinfo-url "&gnu;texinfo/texinfo-&texinfo-version;.tar.xz">
<!ENTITY texinfo-md5 "edd9928b4a3f82674bcc3551616eef3b">
<!ENTITY texinfo-home "&gnu-software;texinfo/">
<!ENTITY texinfo-tmp-du "116 MB">
<!ENTITY texinfo-tmp-sbu "0.1 SBU">
<!ENTITY texinfo-fin-du "128 MB">
<!ENTITY texinfo-tmp-du "130 MB">
<!ENTITY texinfo-tmp-sbu "0.2 SBU">
<!ENTITY texinfo-fin-du "139 MB">
<!ENTITY texinfo-fin-sbu "0.3 SBU">
<!ENTITY tzdata-version "2023d">
<!ENTITY tzdata-size "440 KB">
<!ENTITY tzdata-version "2024a">
<!ENTITY tzdata-size "444 KB">
<!ENTITY tzdata-url "https://www.iana.org/time-zones/repository/releases/tzdata&tzdata-version;.tar.gz">
<!ENTITY tzdata-md5 "08b9d559939670725ec298fdbb029649">
<!ENTITY tzdata-md5 "2349edd8335245525cc082f2755d5bf4">
<!ENTITY tzdata-home "https://www.iana.org/time-zones">
<!ENTITY udev-fin-du "138 MB">
<!ENTITY udev-fin-du "144 MB">
<!ENTITY udev-fin-sbu "0.2 SBU">
<!ENTITY udev-lfs-version "udev-lfs-20230818">
@ -733,9 +733,9 @@
<!ENTITY util-linux-url "&kernel;linux/utils/util-linux/v&util-linux-minor;/util-linux-&util-linux-version;.tar.xz">
<!ENTITY util-linux-md5 "f3591e6970c017bb4bcd24ae762a98f5">
<!ENTITY util-linux-home "https://git.kernel.org/pub/scm/utils/util-linux/util-linux.git/">
<!ENTITY util-linux-tmp-du "169 MB">
<!ENTITY util-linux-tmp-du "172 MB">
<!ENTITY util-linux-tmp-sbu "0.2 SBU">
<!ENTITY util-linux-fin-du "310 MB">
<!ENTITY util-linux-fin-du "313 MB">
<!ENTITY util-linux-fin-sbu "0.5 SBU">
<!ENTITY vim-version "9.1.0041">
@ -746,8 +746,8 @@
<!--<!ENTITY vim-url "&anduin-sources;/vim-&vim-version;.tar.gz">-->
<!ENTITY vim-md5 "79dfe62be5d347b1325cbd5ce2a1f9b3">
<!ENTITY vim-home "https://www.vim.org">
<!ENTITY vim-fin-du "229 MB">
<!ENTITY vim-fin-sbu "2.3 SBU">
<!ENTITY vim-fin-du "236 MB">
<!ENTITY vim-fin-sbu "2.5 SBU">
<!ENTITY wheel-version "0.42.0">
<!ENTITY wheel-size "97 KB">
@ -762,29 +762,29 @@
<!ENTITY xml-parser-url "https://cpan.metacpan.org/authors/id/T/TO/TODDR/XML-Parser-&xml-parser-version;.tar.gz">
<!ENTITY xml-parser-md5 "89a8e82cfd2ad948b349c0a69c494463">
<!ENTITY xml-parser-home "&github;/chorny/XML-Parser">
<!ENTITY xml-parser-fin-du "2.3 MB">
<!ENTITY xml-parser-fin-du "2.4 MB">
<!ENTITY xml-parser-fin-sbu "less than 0.1 SBU">
<!ENTITY xz-version "5.4.5">
<!ENTITY xz-size "1,642 KB">
<!ENTITY xz-url "https://tukaani.org/xz/xz-&xz-version;.tar.xz">
<!ENTITY xz-md5 "1d33e0be05c53e7a5641acf5c8b35fdd">
<!ENTITY xz-version "5.4.6">
<!ENTITY xz-size "1,645 KB">
<!ENTITY xz-url "https://github.com/tukaani-project/xz/releases/download/v&xz-version;/xz-&xz-version;.tar.xz">
<!ENTITY xz-md5 "7ade7bd1181a731328f875bec62a9377">
<!ENTITY xz-home "https://tukaani.org/xz">
<!ENTITY xz-tmp-du "22 MB">
<!ENTITY xz-tmp-sbu "0.1 SBU">
<!ENTITY xz-fin-du "24 MB">
<!ENTITY xz-fin-du "25 MB">
<!ENTITY xz-fin-sbu "0.1 SBU">
<!ENTITY zlib-version "1.3">
<!ENTITY zlib-size "1,461 KB">
<!ENTITY zlib-version "1.3.1">
<!ENTITY zlib-size "1,478 KB">
<!-- DO NOT remove "fossils"!
The upstream removes https://zlib.net/zlib-&zlib-version;.tar.xz
once a newer version is released EVEN IF there is no security fixes.
Unfortunately there is no .xz files in fossils directory. -->
<!ENTITY zlib-url "https://zlib.net/fossils/zlib-&zlib-version;.tar.gz">
<!ENTITY zlib-md5 "60373b133d630f74f4a1f94c1185a53f">
<!ENTITY zlib-md5 "9855b6d802d7fe5b7bd5b196a2271655">
<!ENTITY zlib-home "https://zlib.net/">
<!ENTITY zlib-fin-du "6.2 MB">
<!ENTITY zlib-fin-du "6.4 MB">
<!ENTITY zlib-fin-sbu "less than 0.1 SBU">
<!ENTITY zstd-version "1.5.5">
@ -793,5 +793,5 @@
<!ENTITY zstd-md5 "63251602329a106220e0a5ad26ba656f">
<!ENTITY zstd-home "https://facebook.github.io/zstd/">
<!ENTITY zstd-fin-du "77 MB">
<!ENTITY zstd-fin-sbu "0.4 SBU">
<!ENTITY zstd-fin-sbu "0.5 SBU">

View File

@ -56,7 +56,7 @@
<variablelist>
<varlistentry><term>The build</term><listitem>
<para>is the machine where we build programs. Note that this machine
is also referred to as the <quote>host</quote>.</para></listitem>
is also referred to as the <quote>host.</quote></para></listitem>
</varlistentry>
<varlistentry><term>The host</term><listitem>

View File

@ -2,6 +2,10 @@
<!-- Start of Common Patches -->
<!ENTITY bash-upstream-fixes-patch "bash-&bash-version;-upstream_fixes-1.patch">
<!ENTITY bash-upstream-fixes-patch-md5 "2d1691a629c558e894dbb78ee6bf34ef">
<!ENTITY bash-upstream-fixes-patch-size "5.9 KB">
<!ENTITY bzip2-docs-patch "bzip2-&bzip2-version;-install_docs-1.patch">
<!ENTITY bzip2-docs-patch-md5 "6a5ac7e89b791aae556de0f745916f7f">
<!ENTITY bzip2-docs-patch-size "1.6 KB">
@ -13,24 +17,23 @@
<!ENTITY glibc-fhs-patch "glibc-&glibc-version;-fhs-1.patch">
<!ENTITY glibc-fhs-patch-md5 "9a5997c3452909b1769918c759eff8a2">
<!ENTITY glibc-fhs-patch-size "2.8 KB">
<!ENTITY glibc-upstream-fixes-patch "glibc-&glibc-version;-upstream_fixes-3.patch">
<!ENTITY glibc-upstream-fixes-patch-md5 "545977e0b5c341ba945cf4b5de92f1e2">
<!ENTITY glibc-upstream-fixes-patch-size "28 KB">
<!--
<!ENTITY glibc-upstream-fixes-patch "glibc-&glibc-version;-upstream_fixes-4.patch">
<!ENTITY glibc-upstream-fixes-patch-md5 "66e843b00688c641c9bdda684db45b43">
<!ENTITY glibc-upstream-fixes-patch-size "36 KB">
-->
<!ENTITY kbd-backspace-patch "kbd-&kbd-version;-backspace-1.patch">
<!ENTITY kbd-backspace-patch-md5 "f75cca16a38da6caa7d52151f7136895">
<!ENTITY kbd-backspace-patch-size "12 KB">
<!ENTITY pkgconf-upstream-fix-patch "pkgconf-&pkgconf-version;-upstream_fix-1.patch">
<!ENTITY pkgconf-upstream-fix-patch-md5 "77d5bb10840724a0e3dc08efee548363">
<!ENTITY pkgconf-upstream-fix-patch-size "4 KB">
<!ENTITY readline-fixes-patch "readline-&readline-version;-upstream_fixes-2.patch">
<!ENTITY readline-fixes-patch-md5 "d2477ebe908cc99763d90dde7fd9549a">
<!ENTITY readline-fixes-patch-size "5.7 KB">
<!ENTITY readline-fixes-patch "readline-&readline-version;-upstream_fixes-3.patch">
<!ENTITY readline-fixes-patch-md5 "9ed497b6cb8adcb8dbda9dee9ebce791">
<!ENTITY readline-fixes-patch-size "13 KB">
<!ENTITY sysvinit-consolidated-patch "sysvinit-&sysvinit-version;-consolidated-1.patch">
<!ENTITY sysvinit-consolidated-patch-md5 "17ffccbb8e18c39e8cedc32046f3a475">
<!ENTITY sysvinit-consolidated-patch-size "2.5 KB">
<!ENTITY systemd-upstream-patch "systemd-&systemd-version;-upstream_fixes-1.patch">
<!ENTITY systemd-upstream-patch-md5 "8d9c1014445c463cf7c24c162b1e0686">
<!ENTITY systemd-upstream-patch-size "7.2 KB">

View File

@ -49,7 +49,7 @@
</itemizedlist>
<para>While it is possible to create a complete system that will pass the LSB
certification tests "from scratch", this can't be done without many additional packages
certification tests <quote>from scratch,</quote> this can't be done without many additional packages
that are beyond the scope of the LFS book. Installation instructions for these
additional packages can be found in BLFS. </para>

View File

@ -74,22 +74,27 @@ EOF</userinput></screen>
<para>This format is used to encapsulate text that is optional.</para>
<para><filename>passwd(5)</filename></para>
<para><ulink role='man' url='&man;passwd.5'>passwd(5)</ulink></para>
<para>This format is used to refer to a specific manual (man) page. The number inside parentheses
indicates a specific section inside the manuals. For example,
<command>passwd</command> has two man pages. Per LFS installation instructions,
those two man pages will be located at
<filename>/usr/share/man/man1/passwd.1</filename> and
<filename>/usr/share/man/man5/passwd.5</filename>. When the book uses <filename>passwd(5)</filename> it is
<filename>/usr/share/man/man5/passwd.5</filename>. When the book uses
<ulink role='man' url='&man;/passwd.5'>passwd(5)</ulink> it is
specifically referring to <filename>/usr/share/man/man5/passwd.5</filename>.
<command>man passwd</command> will print the first man page it finds that
matches <quote>passwd</quote>, which will be
matches <quote>passwd,</quote> which will be
<filename>/usr/share/man/man1/passwd.1</filename>. For this example, you will
need to run <command>man 5 passwd</command> in order to read the page
being specified. Note that most man pages do not have duplicate
page names in different sections. Therefore, <command>man <replaceable>&lt;program
name&gt;</replaceable></command> is generally sufficient.</para>
name&gt;</replaceable></command> is generally sufficient. In the LFS
book these references to man pages are also hyperlinks, so clicking on
such a reference will open the man page rendered in HTML from
<ulink url='https://man.archlinux.org/'>Arch Linux manual
pages</ulink>.</para>
</sect1>

View File

@ -1,4 +1,4 @@
<?xml version="1.0"?>
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:exsl="http://exslt.org/common"
extension-element-prefixes="exsl"
@ -7,8 +7,7 @@
<!-- XSLT stylesheet to extract commands from [B,H]LFS books. -->
<xsl:variable name="newline">
<xsl:text>
</xsl:text>
<xsl:text>&#xA;</xsl:text>
</xsl:variable>
<xsl:template match="/">

View File

@ -10,6 +10,14 @@
<!-- Upstream XHTML presentation templates -->
<xsl:import href="http://docbook.sourceforge.net/release/xsl/current/xhtml/docbook.xsl"/>
<xsl:param name="chunker.output.method" select="'xml'"/>
<xsl:param name="chunker.output.encoding" select="'UTF-8'"/>
<xsl:param name="chunker.output.media-type" select="'application/xhtml+xml'"/>
<xsl:param name="chunker.output.doctype-public" select="'-//W3C//DTD XHTML 1.0 Strict//EN'"/>
<xsl:param name="chunker.output.doctype-system" select="'http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd'"/>
<xsl:param name="chunker.output.omit-xml-declaration" select="'yes'"/>
<xsl:param name="chunker.output.indent" select="'no'"/>
<!-- Including our customized elements templates -->
<xsl:include href="common.xsl"/>
<xsl:include href="xhtml/lfs-admon.xsl"/>
@ -31,9 +39,6 @@
<xsl:param name="ulink.target" select="''"/>
<xsl:param name="css.decoration" select="0"/>
<!-- No XML declaration -->
<xsl:param name="chunker.output.omit-xml-declaration" select="'yes'"/>
<!-- Control generation of ToCs and LoTs -->
<xsl:param name="generate.toc">
book toc,title

View File

@ -1,5 +1,5 @@
<?xml version='1.0' encoding='UTF-8'?>
<!DOCTYPE l:i18n SYSTEM "https://cdn.docbook.org/release/xsl-nons/current/common/l10n.dtd">
<!DOCTYPE l:i18n SYSTEM "http://cdn.docbook.org/release/xsl-nons/current/common/l10n.dtd">
<l:i18n xmlns:l="http://docbook.sourceforge.net/xmlns/l10n/1.0">

View File

@ -1,13 +1,13 @@
/* Global settings */
body {
font-family: verdana, tahoma, helvetica, arial, sans-serif;
font-family: verdana, tahoma, arial, sans-serif;
text-align: left;
background: #fff;
color: #222;
margin: 1em;
padding: 0;
font-size: 1em;
line-height: 1.2em
line-height: 1.2em;
}
@ -38,10 +38,36 @@ div.dedication {
padding-left: 1em;
}
/* Section titles */
h1.sect1, h1.preface, h1.part, h1.chapter, h1.appendix, .glossary h1, .index h1
{
background: #f5f6f7;
border-bottom: .1em solid #dbddec;
margin-bottom:1em;
margin-top: 0;
padding: .4em;
}
/* Sections */
div.sect1, div.appendix {
padding-left: .3em;
/* Scrolling parts
The header is taller for sect1 and chapter pages than on the
other pages. Since we want fixed boxes, their top has to be calculated
by trial and errors to fit below the static header box.*/
div.sect1, div.chapter, div.appendix, div.wrap {
top: 11.55em;
}
div.preface, div.part, .index div.index {
top: 10.15em;
}
div.sect1, div.appendix, div.preface, div.part, div.chapter, div.wrap, .index div.index {
/* padding-left: .3em;*/
overflow:auto;
height: auto;
position: fixed;
left:1em;
right:1em;
bottom: 1em;
border-bottom: 1em solid #dbddec;
}
div.important ul {
@ -63,8 +89,12 @@ div.important ul li p {
background: #f5f6f7;
border-bottom: 0.2em solid #dbddec;
padding-top: .1em;
margin-top: 0;
/* margin-top: 0;*/
}
/*
.lfs .package p:first-child {
margin-top: 0;
}*/
.lfs .configuration {
background: #fefefe;
@ -74,11 +104,11 @@ div.important ul li p {
.lfs .content {
background: #f5f6f7;
border-top: 0.2em solid #dbddec;
border-bottom: 0.2em solid #dbddec;
padding-bottom: .1em;
margin-bottom: 0;
margin-bottom: .5em;
}
/* Headers */
h1, h2, h3, h4, h5, h6, b, .strong {
color: #000;
@ -96,18 +126,6 @@ h1 {
padding: 0.4em;
}
.preface h1, .part h1, .chapter h1, .appendix h1, .index h1, .sect1 h1, .glossary h1 {
background: #f5f6f7;
border-bottom: .1em solid #dbddec;
margin-bottom: 1em;
margin-top: 0;
padding: .4em;
}
.sect1 h1, .appendix h1 {
margin-left: -.2em;
}
.wrap h1 {
background: #f5f6f7;
margin: 0;
@ -157,13 +175,19 @@ div.navheader, div.navfooter {
}
div.navheader {
border-bottom: 1px solid #dbddec;
position: sticky;
top: 0;
border-bottom: .1em solid #dbddec;
}
/* no need for a footer now that the header is always visible */
div.navfooter {
border-top: 1px solid #dbddec;
display:none;
}
/* Except for the first page (TOC), where the bottom is the only
place where navigation is displayed. */
div.book + div.navfooter {
display:block
}
div.navheader h4 {
@ -179,7 +203,7 @@ div.navheader h3 {
}
div.navheader ul, div.navfooter ul {
padding: .2em .5em .5em 0;
padding: .2em .5em .5em .5em; /*top right bottom left*/
margin: .5em 0;
position: relative;
background: #dbddec;
@ -196,29 +220,29 @@ div.navheader ul li.prev, div.navfooter ul li.prev {
left: 0;
text-align: left;
padding: 0.2em 1em;
margin-left: 6px;
margin-left: .4em;
}
div.navheader ul li.next, div.navfooter ul li.next {
position: absolute;
display: block;
text-align: right;
right: 5px;
padding: 0.2em 0.5em;
margin-right: 7px;
right: 0;
padding: 0.2em 1em;
margin-right: .4em;
}
div.navheader ul li.prev p, div.navfooter ul li.prev p,
div.navheader ul li.next p, div.navfooter ul li.next p {
padding: 0;
margin: 1px 0px;
margin: .1em 0;
}
div.navheader ul li.home, div.navheader ul li.up,
div.navfooter ul li.home, div.navfooter ul li.up {
text-align: center;
padding: 0;
margin: 0px auto;
margin: 0 auto;
display: block;
color: #dbddec;
}

View File

@ -10,6 +10,13 @@
<!-- Upstream XHTML templates -->
<xsl:import href="http://docbook.sourceforge.net/release/xsl/current/xhtml/docbook.xsl"/>
<xsl:output method="xml"
encoding="UTF-8"
media-type="application/xhtml+xml"
doctype-public="-//W3C//DTD XHTML 1.0 Strict//EN"
doctype-system="http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"
omit-xml-declaration="yes"
indent="no" />
<!-- Include our customized templates -->
<xsl:include href="common.xsl"/>
<xsl:include href="xhtml/lfs-index.xsl"/>

View File

@ -53,8 +53,8 @@
We have expanded the support to several inline tags.
See pdf/lfs-mixed.xsl.
Note: the argument in select= is a zero-width space
(unicode 200b, encoded in utf-8)-->
<xsl:param name="ulink.hyphenate" select="''"/>
(unicode 200b)-->
<xsl:param name="ulink.hyphenate" select="'&#x200B;'"/>
<!-- List of characters to allow ulink URLs, and supported inline tags,
to be automatically hyphenated on.

View File

@ -18,6 +18,7 @@
<!-- Generate DocBook instance with correct DOCTYPE -->
<xsl:output method="xml"
encoding="UTF-8"
doctype-public="-//OASIS//DTD DocBook XML V4.5//EN"
doctype-system="http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd"/>

View File

@ -11,10 +11,14 @@
<xsl:param name="chunk.first.sections" select="1"/>
<!-- preface:
Output non sect1 child elements before the TOC -->
Output non sect1 child elements before the TOC
Output title outside of the <div> because we want to be able to
use it at a fixed position -->
<!-- The original template is in {docbook-xsl}/xhtml/components.xsl -->
<xsl:template match="preface">
<xsl:call-template name="id.warning"/>
<xsl:call-template name="preface.titlepage"/>
<xsl:call-template name="component.separator"/>
<div>
<xsl:apply-templates select="." mode="class.attribute"/>
<xsl:call-template name="dir">
@ -26,8 +30,6 @@
<xsl:call-template name="object.id"/>
</xsl:attribute>
</xsl:if>
<xsl:call-template name="component.separator"/>
<xsl:call-template name="preface.titlepage"/>
<xsl:apply-templates/>
<xsl:variable name="toc.params">
<xsl:call-template name="find.path.params">
@ -44,11 +46,42 @@
</div>
</xsl:template>
<!-- part:
Output non sect1 child elements before the TOC
Output title outside of the <div> because we want to be able to
use it at a fixed position -->
<!-- The original template is in {docbook-xsl}/xhtml/divisions.xsl -->
<xsl:template match="part">
<xsl:call-template name="id.warning"/>
<xsl:call-template name="part.titlepage"/>
<div>
<xsl:apply-templates select="." mode="common.html.attributes"/>
<xsl:call-template name="id.attribute">
<xsl:with-param name="conditional" select="0"/>
</xsl:call-template>
<xsl:apply-templates/>
<xsl:variable name="toc.params">
<xsl:call-template name="find.path.params">
<xsl:with-param name="table" select="normalize-space($generate.toc)"/>
</xsl:call-template>
</xsl:variable>
<xsl:if test="not(partintro) and contains($toc.params, 'toc')">
<xsl:call-template name="division.toc"/>
</xsl:if>
</div>
</xsl:template>
<!-- chapter:
Output non sect1 child elements before the TOC -->
Output non sect1 child elements before the TOC
Output title before div to be able to fix the title position -->
<!-- The original template is in {docbook-xsl}/xhtml/components.xsl -->
<xsl:template match="chapter">
<xsl:call-template name="id.warning"/>
<xsl:call-template name="chapter.titlepage"/>
<xsl:call-template name="component.separator"/>
<div>
<xsl:apply-templates select="." mode="class.attribute"/>
<xsl:call-template name="dir">
@ -60,8 +93,6 @@
<xsl:call-template name="object.id"/>
</xsl:attribute>
</xsl:if>
<xsl:call-template name="component.separator"/>
<xsl:call-template name="chapter.titlepage"/>
<xsl:apply-templates/>
<xsl:variable name="toc.params">
<xsl:call-template name="find.path.params">
@ -78,12 +109,50 @@
</div>
</xsl:template>
<!-- appendix:
Output non sect1 child elements before the TOC
Output title before div to be able to fix the title position -->
<!-- The original template is in {docbook-xsl}/xhtml/components.xsl -->
<xsl:template match="appendix">
<xsl:call-template name="id.warning"/>
<xsl:call-template name="appendix.titlepage"/>
<xsl:element name="div" namespace="http://www.w3.org/1999/xhtml">
<xsl:call-template name="common.html.attributes">
<xsl:with-param name="inherit" select="1"/>
</xsl:call-template>
<xsl:call-template name="id.attribute">
<xsl:with-param name="conditional" select="0"/>
</xsl:call-template>
<xsl:apply-templates/>
<xsl:variable name="toc.params">
<xsl:call-template name="find.path.params">
<xsl:with-param name="table" select="normalize-space($generate.toc)"/>
</xsl:call-template>
</xsl:variable>
<xsl:if test="contains($toc.params, 'toc')">
<xsl:call-template name="component.toc">
<xsl:with-param name="toc.title.p" select="contains($toc.params, 'title')"/>
</xsl:call-template>
</xsl:if>
</xsl:element>
</xsl:template>
<!-- sect1:
When there is a role attibute, use it as the class value.
Process the SVN keywords found in sect1info as a footnote.
Output title before the containing <div> so that the title
can be at a fixed position.
Removed unused code. -->
<!-- The original template is in {docbook-xsl}/xhtml/sections.xsl -->
<xsl:template match="sect1">
<xsl:call-template name="sect1.titlepage"/>
<div>
<xsl:choose>
<xsl:when test="@role">
@ -96,7 +165,6 @@
</xsl:otherwise>
</xsl:choose>
<xsl:call-template name="language.attribute"/>
<xsl:call-template name="sect1.titlepage"/>
<xsl:apply-templates/>
<xsl:apply-templates select="sect1info" mode="svn-keys"/>
</div>

View File

@ -31,8 +31,7 @@
</xsl:call-template>
<!-- Add a newline -->
<xsl:text>
</xsl:text>
<xsl:text>&#xA;</xsl:text>
</xsl:if>
</xsl:template>

View File

@ -28,8 +28,7 @@
<xsl:value-of select="@url"/>
</xsl:otherwise>
</xsl:choose>
<xsl:text>
</xsl:text>
<xsl:text>&#xA;</xsl:text>
</xsl:if>
</xsl:template>