Merge remote-tracking branch 'origin/trunk' into xry111/clfs-ng

This commit is contained in:
Xi Ruoyao 2025-04-29 22:53:57 +08:00
commit 8392e57ae4
No known key found for this signature in database
GPG Key ID: ACAAD20E19E710E3
83 changed files with 1483 additions and 1592 deletions

View File

@ -4,8 +4,7 @@
<!ENTITY % general-entities SYSTEM "../general.ent"> <!ENTITY % general-entities SYSTEM "../general.ent">
%general-entities; %general-entities;
<!-- Convenient entity for "Systemd" or "Udev" --> <!-- Convenient entity for "Systemd" or "Udev" -->
<!ENTITY systemd-udev "<phrase revision='systemd'>Systemd</phrase> <!ENTITY systemd-udev "<phrase revision='systemd'>Systemd</phrase><phrase revision='sysv'>Udev</phrase>">
<phrase revision='sysv'>Udev</phrase>">
<!ENTITY bdb "<ulink url='https://www.oracle.com/database/technologies/related/berkeleydb.html'>Berkeley DB</ulink>"> <!ENTITY bdb "<ulink url='https://www.oracle.com/database/technologies/related/berkeleydb.html'>Berkeley DB</ulink>">
]> ]>
@ -45,7 +44,7 @@
<segmentedlist id="acl-depends"> <segmentedlist id="acl-depends">
<segtitle>&dependencies;</segtitle> <segtitle>&dependencies;</segtitle>
<seglistitem> <seglistitem>
<seg>Attr, Bash, Binutils, Coreutils, GCC, Gettext, Grep, M4, Make, <seg>Attr, Bash, Binutils, Coreutils, GCC, Gettext, Grep, M4, Make,
Perl, Sed, and Texinfo</seg> Perl, Sed, and Texinfo</seg>
</seglistitem> </seglistitem>
</segmentedlist> </segmentedlist>
@ -400,49 +399,6 @@
</seglistitem> </seglistitem>
</segmentedlist> </segmentedlist>
<!-- Begin Check dependency info -->
<bridgehead renderas="sect2" id="check-dep">Check</bridgehead>
<segmentedlist id="check-depends">
<segtitle>&dependencies;</segtitle>
<seglistitem>
<seg>Gawk, GCC, Grep, Make, Sed, and Texinfo</seg>
</seglistitem>
</segmentedlist>
<segmentedlist id="check-rundeps">
<segtitle>&runtime;</segtitle>
<seglistitem>
<seg>Bash and Gawk</seg>
</seglistitem>
</segmentedlist>
<segmentedlist id="check-testdeps">
<segtitle>&testsuites;</segtitle>
<seglistitem>
<seg>None</seg>
</seglistitem>
</segmentedlist>
<segmentedlist id="check-before">
<segtitle>&before;</segtitle>
<seglistitem>
<seg>None</seg>
</seglistitem>
</segmentedlist>
<segmentedlist id="check-optdeps">
<segtitle>&external;</segtitle>
<seglistitem>
<seg>
<ulink url='&github;/testing-cabal/subunit'>libsubunit</ulink>
and
<ulink url='http://cyberelk.net/tim/software/patchutils/'>
patchutils</ulink>
</seg>
</seglistitem>
</segmentedlist>
<!-- Begin Coreutils dependency info --> <!-- Begin Coreutils dependency info -->
<bridgehead renderas="sect2" id="coreutils-dep">Coreutils</bridgehead> <bridgehead renderas="sect2" id="coreutils-dep">Coreutils</bridgehead>
@ -872,7 +828,7 @@
<segmentedlist id="flit-core-before"> <segmentedlist id="flit-core-before">
<segtitle>&before;</segtitle> <segtitle>&before;</segtitle>
<seglistitem> <seglistitem>
<seg>Wheel</seg> <seg>Packaging and Wheel</seg>
</seglistitem> </seglistitem>
</segmentedlist> </segmentedlist>
@ -1240,7 +1196,7 @@
<segmentedlist id="groff-testdeps"> <segmentedlist id="groff-testdeps">
<segtitle>&testsuites;</segtitle> <segtitle>&testsuites;</segtitle>
<seglistitem> <seglistitem>
<seg>No test suite available</seg> <seg>None</seg>
</seglistitem> </seglistitem>
</segmentedlist> </segmentedlist>
@ -1276,7 +1232,7 @@
<segmentedlist id="grub-rundeps"> <segmentedlist id="grub-rundeps">
<segtitle>&runtime;</segtitle> <segtitle>&runtime;</segtitle>
<seglistitem> <seglistitem>
<seg>Bash, GCC, Gettext, Glibc, Xz, and Sed.</seg> <seg>Bash, GCC, Gettext, Glibc, Xz, and Sed</seg>
</seglistitem> </seglistitem>
</segmentedlist> </segmentedlist>
@ -1545,7 +1501,7 @@
<segmentedlist id="kbd-depends"> <segmentedlist id="kbd-depends">
<segtitle>&dependencies;</segtitle> <segtitle>&dependencies;</segtitle>
<seglistitem> <seglistitem>
<seg>Bash, Binutils, Bison, Check, Coreutils, Flex, GCC, Gettext, <seg>Bash, Binutils, Bison, Coreutils, Flex, GCC, Gettext,
Glibc, Gzip, Make, Patch, and Sed</seg> Glibc, Gzip, Make, Patch, and Sed</seg>
</seglistitem> </seglistitem>
</segmentedlist> </segmentedlist>
@ -1642,7 +1598,7 @@
<segmentedlist id="less-testdeps"> <segmentedlist id="less-testdeps">
<segtitle>&testsuites;</segtitle> <segtitle>&testsuites;</segtitle>
<seglistitem> <seglistitem>
<seg>No test suite available</seg> <seg>None</seg>
</seglistitem> </seglistitem>
</segmentedlist> </segmentedlist>
@ -2460,6 +2416,46 @@
</seglistitem> </seglistitem>
</segmentedlist> </segmentedlist>
<!-- Begin Packaging dependency info -->
<bridgehead renderas="sect2" id="Packaging-dep">Packaging</bridgehead>
<segmentedlist id="packaging-depends">
<segtitle>&dependencies;</segtitle>
<seglistitem>
<seg>Flit-core and Python</seg>
</seglistitem>
</segmentedlist>
<segmentedlist id="packaging-rundeps">
<segtitle>&runtime;</segtitle>
<seglistitem>
<seg>Python</seg>
</seglistitem>
</segmentedlist>
<segmentedlist id="packaging-testdeps">
<segtitle>&testsuites;</segtitle>
<seglistitem>
<seg>No test suite available</seg>
</seglistitem>
</segmentedlist>
<segmentedlist id="packaging-before">
<segtitle>&before;</segtitle>
<seglistitem>
<seg>Wheel</seg>
</seglistitem>
</segmentedlist>
<segmentedlist id="packaging-optdeps">
<segtitle>&external;</segtitle>
<seglistitem>
<seg>
<ulink url='&blfs-book;general/python-modules.html#pytest'>pytest</ulink>
</seg>
</seglistitem>
</segmentedlist>
<!-- Begin Patch dependency info --> <!-- Begin Patch dependency info -->
<bridgehead renderas="sect2" id="patch-dep">Patch</bridgehead> <bridgehead renderas="sect2" id="patch-dep">Patch</bridgehead>
@ -2571,9 +2567,10 @@
<segtitle>&before;</segtitle> <segtitle>&before;</segtitle>
<seglistitem> <seglistitem>
<seg>Binutils, <seg>Binutils,
<phrase revision='systemd'>D-Bus, </phrase>E2fsprogs, <phrase revision='systemd'>D-Bus, </phrase>
IProute2, Kmod, Man-DB, Procps-ng, Python, E2fsprogs, IProute2, Kmod, Man-DB, Procps-ng, Python,
&systemd-udev;, and Util-linux</seg> &systemd-udev;,
and Util-linux</seg>
</seglistitem> </seglistitem>
</segmentedlist> </segmentedlist>
@ -2650,7 +2647,7 @@
<segmentedlist id="psmisc-testdeps"> <segmentedlist id="psmisc-testdeps">
<segtitle>&testsuites;</segtitle> <segtitle>&testsuites;</segtitle>
<seglistitem> <seglistitem>
<seg>No test suite available</seg> <seg>Expect</seg>
</seglistitem> </seglistitem>
</segmentedlist> </segmentedlist>
@ -3312,7 +3309,7 @@
<segmentedlist id="wheel-depends"> <segmentedlist id="wheel-depends">
<segtitle>&dependencies;</segtitle> <segtitle>&dependencies;</segtitle>
<seglistitem> <seglistitem>
<seg>Python and Flit-core</seg> <seg>Python, Flit-core, and packaging</seg>
</seglistitem> </seglistitem>
</segmentedlist> </segmentedlist>

View File

@ -39,616 +39,201 @@
<listitem revision="sysv"> or <listitem revision="systemd"> as <listitem revision="sysv"> or <listitem revision="systemd"> as
appropriate for the entry or if needed the entire day's listitem. appropriate for the entry or if needed the entire day's listitem.
--> -->
<listitem revision='sysv'>
<para>2024-08-23</para>
<itemizedlist>
<listitem>
<para>[xry111] - Update to lfs-bootscripts-20240825. Only trivial
non-functional changes.</para>
</listitem>
</itemizedlist>
</listitem>
<listitem revision='sysv'>
<para>2024-08-23</para>
<itemizedlist>
<listitem>
<para>[xry111] - Update to lfs-bootscripts-20240823, to fix an
issue causing VT 2-6 not affected by the FONT= setting in
/etc/sysconfig/console.</para>
</listitem>
</itemizedlist>
</listitem>
<listitem> <listitem>
<para>2024-08-17</para> <para>2025-04-15</para>
<itemizedlist> <itemizedlist>
<listitem> <listitem>
<para>[bdubbs] - Update to setuptools-72.2.0. Fixes <para>[bdubbs] - Update to libcap-2.76. Fixes
<ulink url='&lfs-ticket-root;5542'>#5542</ulink>.</para> <ulink url='&lfs-ticket-root;5704'>#5704</ulink>.</para>
</listitem> </listitem>
<listitem> <listitem>
<para>[bdubbs] - Update to kmod-33. Fixes <para>[bdubbs] - Update to perl-5.40.2 (Security update). Fixes
<ulink url='&lfs-ticket-root;5540'>#5540</ulink>.</para> <ulink url='&lfs-ticket-root;5703'>#5703</ulink>.</para>
</listitem> </listitem>
<listitem> <listitem>
<para>[bdubbs] - Update to binutils-2.43.1. Fixes <para>[bdubbs] - Add packaging-24.2 (Python module). Needed for wheel.
<ulink url='&lfs-ticket-root;5543'>#5543</ulink>.</para> </para>
</listitem> </listitem>
<listitem> <listitem>
<para>[bdubbs] - Update to linux-6.10.5. Fixes <para>[bdubbs] - Update to xz-5.8.1. Fixes
<ulink url='&lfs-ticket-root;5541'>#5541</ulink>.</para> <ulink url='&lfs-ticket-root;5694'>#5694</ulink>.</para>
</listitem>
</itemizedlist>
</listitem>
<listitem>
<para>2024-08-15</para>
<itemizedlist>
<listitem>
<para>[bdubbs] - Update to iana-etc-20240806. Addresses
<ulink url='&lfs-ticket-root;5006'>#5006</ulink>.</para>
</listitem> </listitem>
<listitem> <listitem>
<para>[bdubbs] - Update to pkgconf-2.3.0. Fixes <para>[bdubbs] - Update to wheel-0.46.1 (Python Module). Fixes
<ulink url='&lfs-ticket-root;5537'>#5537</ulink>.</para> <ulink url='&lfs-ticket-root;5693'>#5693</ulink>.</para>
</listitem> </listitem>
<listitem> <listitem>
<para>[bdubbs] - Update to python3-3.12.5. Fixes <para>[bdubbs] - Update to sysklogd-2.7.2. Fixes
<ulink url='&lfs-ticket-root;5538'>#5538</ulink>.</para> <ulink url='&lfs-ticket-root;5690'>#5690</ulink>.</para>
</listitem> </listitem>
<listitem> <listitem>
<para>[bdubbs] - Update to linux-6.10.4. Fixes <para>[bdubbs] - Update to Python3-3.13.3. Fixes
<ulink url='&lfs-ticket-root;5539'>#5539</ulink>.</para> <ulink url='&lfs-ticket-root;5697'>#5697</ulink>.</para>
</listitem>
</itemizedlist>
</listitem>
<listitem>
<para>2024-08-05</para>
<itemizedlist>
<listitem>
<para>[bdubbs] - Update to bash-5.2.32. Fixes
<ulink url='&lfs-ticket-root;5532'>#5532</ulink>.</para>
</listitem> </listitem>
<listitem> <listitem>
<para>[bdubbs] - Update to iana-etc-20240801. Addresses <para>[bdubbs] - Update to openssl-3.5.0. Fixes
<ulink url='&lfs-ticket-root;5006'>#5006</ulink>.</para> <ulink url='&lfs-ticket-root;5701'>#5701</ulink>.</para>
</listitem> </listitem>
<listitem> <listitem>
<para>[bdubbs] - Update to vim-9.1.0660. Addresses <para>[bdubbs] - Update to meson-1.7.2. Fixes
<ulink url='&lfs-ticket-root;4500'>#4500</ulink>.</para> <ulink url='&lfs-ticket-root;5691'>#5691</ulink>.</para>
</listitem> </listitem>
<listitem> <listitem>
<para>[bdubbs] - Update to binutils-2.43. Fixes <para>[bdubbs] - Update to linux-6.14.2. Fixes
<ulink url='&lfs-ticket-root;5535'>#5535</ulink>.</para> <ulink url='&lfs-ticket-root;5680'>#5680</ulink>.</para>
</listitem>
<listitem>
<para>[bdubbs] - Update to linux-6.10.3. Fixes
<ulink url='&lfs-ticket-root;5534'>#5534</ulink>.</para>
</listitem>
<listitem>
<para>[bdubbs] - Update to readline-8.2.13. Fixes
<ulink url='&lfs-ticket-root;5533'>#5533</ulink>.</para>
</listitem>
<listitem>
<para>[bdubbs] - Update to wheel-0.44.0. Fixes
<ulink url='&lfs-ticket-root;5536'>#5536</ulink>.</para>
</listitem>
</itemizedlist>
</listitem>
<listitem>
<para>2024-08-01</para>
<itemizedlist>
<listitem>
<para>[bdubbs] - Update to gcc-14.2.0. Fixes
<ulink url='&lfs-ticket-root;5530'>#5530</ulink>.</para>
</listitem>
<listitem>
<para>[bdubbs] - Update to iana-etc-20240723. Addresses
<ulink url='&lfs-ticket-root;5006'>#5006</ulink>.</para>
</listitem>
<listitem>
<para>[bdubbs] - Update to glibc-2.40. Fixes
<ulink url='&lfs-ticket-root;5529'>#5529</ulink>.</para>
</listitem>
<listitem>
<para>[bdubbs] - Update to iproute2-6.10.0. Fixes
<ulink url='&lfs-ticket-root;5523'>#5523</ulink>.</para>
</listitem>
<listitem>
<para>[bdubbs] - Update to linux-6.10.2. Fixes
<ulink url='&lfs-ticket-root;5521'>#5521</ulink>.</para>
</listitem>
<listitem>
<para>[bdubbs] - Update to lz4-1.10.0. Fixes
<ulink url='&lfs-ticket-root;5528'>#5526</ulink>.</para>
</listitem>
<listitem>
<para>[bdubbs] - Update to meson-1.5.1. Fixes
<ulink url='&lfs-ticket-root;5527'>#5527</ulink>.</para>
</listitem>
<listitem>
<para>[bdubbs] - Update to setuptools-72.1.0. Fixes
<ulink url='&lfs-ticket-root;5531'>#5531</ulink>.</para>
</listitem> </listitem>
<listitem revision='sysv'> <listitem revision='sysv'>
<para>[bdubbs] - Update to sysklogd-2.6.1. Fixes <para>[bdubbs] - Update to libffi-3.4.8. Fixes
<ulink url='&lfs-ticket-root;5522'>#5522</ulink>.</para> <ulink url='&lfs-ticket-root;5700'>#5700</ulink>.</para>
</listitem> </listitem>
<listitem> <listitem>
<para>[bdubbs] - Update to systemd-256.4. Fixes <para>[bdubbs] - Update to iproute2-6.14.0. Fixes
<ulink url='&lfs-ticket-root;5518'>#5518</ulink>.</para> <ulink url='&lfs-ticket-root;5682'>#5682</ulink>.</para>
</listitem>
<listitem>
<para>[bdubbs] - Update to gzip-1.14. Fixes
<ulink url='&lfs-ticket-root;5699'>#5699</ulink>.</para>
</listitem>
<listitem>
<para>[bdubbs] - Update to grep-3.12. Fixes
<ulink url='&lfs-ticket-root;5702'>#5702</ulink>.</para>
</listitem>
<listitem>
<para>[bdubbs] - Update to gperf-3.2.1. Fixes
<ulink url='&lfs-ticket-root;5695'>#5695</ulink>.</para>
</listitem>
<listitem>
<para>[bdubbs] - Update to gawk-5.3.2. Fixes
<ulink url='&lfs-ticket-root;5692'>#5692</ulink>.</para>
</listitem>
<listitem>
<para>[bdubbs] - Update to diffutils-3.12. Fixes
<ulink url='&lfs-ticket-root;5696'>#5696</ulink>.</para>
</listitem>
<listitem>
<para>[bdubbs] - Update to coreutils-9.7. Fixes
<ulink url='&lfs-ticket-root;5698'>#5698</ulink>.</para>
</listitem>
</itemizedlist>
</listitem>
<listitem>
<para>2025-04-01</para>
<itemizedlist>
<listitem>
<para>[bdubbs] - Update to vim-9.1.1263. Addresses
<ulink url='&lfs-ticket-root;4500'>#4500</ulink>.</para>
</listitem>
<listitem>
<para>[bdubbs] - Update to iana-etc-20250328. Addresses
<ulink url='&lfs-ticket-root;5006'>#5006</ulink>.</para>
</listitem>
<listitem>
<para>[bdubbs] - Update to xz-5.8.0. Fixes
<ulink url='&lfs-ticket-root;5684'>#5684</ulink>.</para>
</listitem>
<listitem>
<para>[bdubbs] - Update to util-linux-2.41. Fixes
<ulink url='&lfs-ticket-root;5648'>#5648</ulink>.</para>
</listitem>
<listitem>
<para>[bdubbs] - Update to tzdata-2025b. Fixes
<ulink url='&lfs-ticket-root;5681'>#5681</ulink>.</para>
</listitem> </listitem>
<listitem revision='sysv'> <listitem revision='sysv'>
<para>[bdubbs] - Update to sysvinit-3.10. Fixes <para>[bdubbs] - Update to shadow-4.17.4. Fixes
<ulink url='&lfs-ticket-root;5528'>#5528</ulink>.</para> <ulink url='&lfs-ticket-root;5678'>#5678</ulink>.</para>
</listitem>
<listitem>
<para>[bdubbs] - Update to setuptools-78.1.0. Fixes
<ulink url='&lfs-ticket-root;5676'>#5676</ulink>.</para>
</listitem>
<listitem>
<para>[bdubbs] - Update to patch-2.8. Fixes
<ulink url='&lfs-ticket-root;5689'>#5689</ulink>.</para>
</listitem>
<listitem>
<para>[bdubbs] - Update to mpfr-4.2.2. Fixes
<ulink url='&lfs-ticket-root;5677'>#5677</ulink>.</para>
</listitem>
<listitem>
<para>[bdubbs] - Update to kmod-34.2. Fixes
<ulink url='&lfs-ticket-root;5688'>#5688</ulink>.</para>
</listitem>
<listitem>
<para>[bdubbs] - Update to gdbm-1.25. Fixes
<ulink url='&lfs-ticket-root;5679'>#5679</ulink>.</para>
</listitem>
<listitem>
<para>[bdubbs] - Update to flit_core-3.12.0. Fixes
<ulink url='&lfs-ticket-root;5683'>#5683</ulink>.</para>
</listitem>
<listitem>
<para>[bdubbs] - Update to expat-2.7.1. Fixes
<ulink url='&lfs-ticket-root;5685'>#5685</ulink>.</para>
</listitem> </listitem>
</itemizedlist> </itemizedlist>
</listitem> </listitem>
<listitem> <listitem>
<para>2024-07-15</para> <para>2025-03-15</para>
<itemizedlist> <itemizedlist>
<listitem> <listitem>
<para>[bdubbs] - Update to iana-etc-20240701. Addresses <para>[bdubbs] - Update to vim-9.1.1202. Addresses
<ulink url='&lfs-ticket-root;5006'>#5006</ulink>.</para>
</listitem>
<listitem>
<para>[bdubbs] - Update to vim-9.1.0580. Addresses
<ulink url='&lfs-ticket-root;4500'>#4500</ulink>.</para> <ulink url='&lfs-ticket-root;4500'>#4500</ulink>.</para>
</listitem> </listitem>
<listitem> <listitem>
<para>[bdubbs] - Update to automake-1.17. Fixes <para>[bdubbs] - Update to iana-etc-20250304. Addresses
<ulink url='&lfs-ticket-root;5520'>#5520</ulink>.</para>
</listitem>
<listitem>
<para>[bdubbs] - Update to gdbm-1.24. Fixes
<ulink url='&lfs-ticket-root;5515'>#5515</ulink>.</para>
</listitem>
<listitem>
<para>[bdubbs] - Update to linux-6.9.9. Fixes
<ulink url='&lfs-ticket-root;5517'>#5517</ulink>.</para>
</listitem>
<listitem>
<para>[bdubbs] - Update to less-661. Fixes
<ulink url='&lfs-ticket-root;5513'>#5513</ulink>.</para>
</listitem>
<listitem>
<para>[bdubbs] - Update to meson-1.5.0. Fixes
<ulink url='&lfs-ticket-root;5519'>#5519</ulink>.</para>
</listitem>
<listitem>
<para>[bdubbs] - Update to setuptools-70.3.0. Fixes
<ulink url='&lfs-ticket-root;5514'>#5514</ulink>.</para>
</listitem>
<listitem>
<para>[bdubbs] - Update to util-linux-2.40.2. Fixes
<ulink url='&lfs-ticket-root;5516'>#5516</ulink>.</para>
</listitem>
</itemizedlist>
</listitem>
<listitem revision='sysv'>
<para>2024-07-01</para>
<itemizedlist>
<listitem>
<para>[bdubbs] - Update lfs-bootscripts to only output
escape sequences to a terminal. </para>
</listitem>
</itemizedlist>
</listitem>
<listitem>
<para>2024-07-01</para>
<itemizedlist>
<listitem>
<para>[bdubbs] - Update to iana-etc-20240612. Addresses
<ulink url='&lfs-ticket-root;5006'>#5006</ulink>.</para> <ulink url='&lfs-ticket-root;5006'>#5006</ulink>.</para>
</listitem> </listitem>
<listitem>
<para>[bdubbs] - Update to bc-6.7.6. Fixes
<ulink url='&lfs-ticket-root;5506'>#5506</ulink>.</para>
</listitem>
<listitem>
<para>[bdubbs] - Update to man-pages-6.9.1. Fixes
<ulink url='&lfs-ticket-root;5507'>#5507</ulink>.</para>
</listitem>
<listitem>
<para>[bdubbs] - Update to linux-6.9.7. Fixes
<ulink url='&lfs-ticket-root;5508'>#5508</ulink>.</para>
</listitem>
<listitem revision='sysv'> <listitem revision='sysv'>
<para>[bdubbs] - Update to sysklogd-2.5.2. Fixes <para>[bdubbs] - Update to sysklogd-2.7.1. Fixes
<ulink url='&lfs-ticket-root;5509'>#5509</ulink>.</para> <ulink url='&lfs-ticket-root;5668'>#5668</ulink>.</para>
</listitem> </listitem>
<listitem> <listitem>
<para>[bdubbs] - Update to shadow-4.16.0. Fixes <para>[bdubbs] - Update to setuptools-76.0.0. Fixes
<ulink url='&lfs-ticket-root;5510'>#5510</ulink>.</para> <ulink url='&lfs-ticket-root;5665'>#5665</ulink>.</para>
</listitem> </listitem>
<listitem> <listitem>
<para>[bdubbs] - Update to systemd-256.1. Fixes <para>[bdubbs] - Update to pkgconf-2.4.3. Fixes
<ulink url='&lfs-ticket-root;5511'>#5511</ulink>.</para> <ulink url='&lfs-ticket-root;5672'>#5672</ulink>.</para>
</listitem> </listitem>
<listitem> <listitem>
<para>[bdubbs] - Update to setuptools-70.1.1. Fixes <para>[bdubbs] - Update to man-pages-6.13. Fixes
<ulink url='&lfs-ticket-root;5512'>#5512</ulink>.</para> <ulink url='&lfs-ticket-root;5673'>#5673</ulink>.</para>
</listitem>
<listitem>
<para>[bdubbs] - Update to linux-6.13.7. Fixes
<ulink url='&lfs-ticket-root;5664'>#5664</ulink>.</para>
</listitem>
<listitem>
<para>[bdubbs] - Update to libcap-2.75. Fixes
<ulink url='&lfs-ticket-root;5667'>#5667</ulink>.</para>
</listitem>
<listitem>
<para>[bdubbs] - Update to kmod-34.1. Fixes
<ulink url='&lfs-ticket-root;5671'>#5671</ulink>.</para>
</listitem>
<listitem>
<para>[bdubbs] - Update to jinja2-3.1.6. Fixes
<ulink url='&lfs-ticket-root;5670'>#5670</ulink>.</para>
</listitem>
<listitem>
<para>[bdubbs] - Update to expat-2.7.0. Fixes
<ulink url='&lfs-ticket-root;5675'>#5675</ulink>.</para>
</listitem>
<listitem revision='systemd'>
<para>[bdubbs] - Update to dbus-1.16.2. Fixes
<ulink url='&lfs-ticket-root;5663'>#5663</ulink>.</para>
</listitem> </listitem>
</itemizedlist> </itemizedlist>
</listitem> </listitem>
<listitem> <listitem>
<para>2024-06-15</para> <para>2025-03-05</para>
<itemizedlist> <itemizedlist>
<listitem> <listitem>
<para>[bdubbs] - Update to vim-9.1.0478. Addresses <para>[bdubbs] - LFS-12.3 released.</para>
<ulink url='&lfs-ticket-root;4500'>#4500</ulink>.</para>
</listitem>
<listitem>
<para>[bdubbs] - Update to iana-etc-20240607. Addresses
<ulink url='&lfs-ticket-root;5006'>#5006</ulink>.</para>
</listitem>
<listitem>
<para>[bdubbs] - Update to systemd-256. Fixes
<ulink url='&lfs-ticket-root;5504'>#5504</ulink>.</para>
</listitem>
<listitem>
<para>[bdubbs] - Update to python3-3.12.4. Fixes
<ulink url='&lfs-ticket-root;5502'>#5502</ulink>.</para>
</listitem>
<listitem>
<para>[bdubbs] - Update to perl-5.40.0. Fixes
<ulink url='&lfs-ticket-root;5503'>#5503</ulink>.</para>
</listitem>
<listitem>
<para>[bdubbs] - Update to openssl-3.3.1 (Security fix). Fixes
<ulink url='&lfs-ticket-root;5500'>#5500</ulink>.</para>
</listitem>
<listitem>
<para>[bdubbs] - Update to linux-6.9.4. Fixes
<ulink url='&lfs-ticket-root;5505'>#5505</ulink>.</para>
</listitem>
<listitem>
<para>[bdubbs] - Update to findutils-4.10.0. Fixes
<ulink url='&lfs-ticket-root;5499'>#5499</ulink>.</para>
</listitem>
</itemizedlist>
</listitem>
<listitem>
<para>2024-05-31</para>
<itemizedlist>
<listitem>
<para>[bdubbs] - Update to meson-1.4.1. Fixes
<ulink url='&lfs-ticket-root;5498'>#5498</ulink>.</para>
</listitem>
<listitem>
<para>[bdubbs] - Update to xz-5.6.2. Fixes
<ulink url='&lfs-ticket-root;5471'>#5471</ulink>.</para>
</listitem>
<listitem>
<para>[bdubbs] - Add linux-6.9.x compatibility instructions to
<phrase revision="systemd">systemd</phrase>
<phrase revision="sysv">udev</phrase>.
Fixes <ulink url='&lfs-ticket-root;5496'>#5496</ulink>.</para>
</listitem>
<listitem>
<para>[bdubbs] - Update to setuptools-70.0.0 (python module). Fixes
<ulink url='&lfs-ticket-root;5491'>#5491</ulink>.</para>
</listitem>
<listitem>
<para>[bdubbs] - Update to ninja-1.12.1. Fixes
<ulink url='&lfs-ticket-root;5489'>#5489</ulink>.</para>
</listitem>
<listitem>
<para>[bdubbs] - Update to man-pages-6.8. Fixes
<ulink url='&lfs-ticket-root;5494'>#5494</ulink>.</para>
</listitem>
<listitem>
<para>[bdubbs] - Update to linux-6.9.3. Fixes
<ulink url='&lfs-ticket-root;5491'>#5491</ulink>.</para>
</listitem>
<listitem>
<para>[bdubbs] - Update to libcap-2.70. Fixes
<ulink url='&lfs-ticket-root;5493'>#5493</ulink>.</para>
</listitem>
<listitem>
<para>[bdubbs] - Update to iproute2-6.9.0. Fixes
<ulink url='&lfs-ticket-root;5492'>#5492</ulink>.</para>
</listitem>
<listitem>
<para>[bdubbs] - Update to e2fsprogs-1.47.1. Fixes
<ulink url='&lfs-ticket-root;5495'>#5495</ulink>.</para>
</listitem>
</itemizedlist>
</listitem>
<listitem>
<para>2024-05-13</para>
<itemizedlist>
<listitem>
<para>[xry111] - Synchronize coreutils i18n patch from Fedora
to fix a build failure on 32-bit x86 and an alarming compiler
warning on both 32-bit x86 and x86_64 with GCC 14.1 or
later.</para>
</listitem>
</itemizedlist>
</listitem>
<listitem>
<para>2024-05-11</para>
<itemizedlist>
<listitem>
<para>[bdubbs] - Update to vim-9.1.0405. Addresses
<ulink url='&lfs-ticket-root;4500'>#4500</ulink>.</para>
</listitem>
<listitem>
<para>[bdubbs] - Update to util-linux-2.40.1. Fixes
<ulink url='&lfs-ticket-root;5482'>#5482</ulink>.</para>
</listitem>
<listitem>
<para>[bdubbs] - Update to linux-6.8.9. Fixes
<ulink url='&lfs-ticket-root;5484'>#5484</ulink>.</para>
</listitem>
<listitem>
<para>[bdubbs] - Update to jinja2-3.1.4 (Python module). Fixes
<ulink url='&lfs-ticket-root;5485'>#5485</ulink>.</para>
</listitem>
<listitem>
<para>[bdubbs] - Update to iana-etc-20240502. Addresses
<ulink url='&lfs-ticket-root;5006'>#5006</ulink>.</para>
</listitem>
<listitem>
<para>[bdubbs] - Update to gcc-14.1.0. Fixes
<ulink url='&lfs-ticket-root;5486'>#5486</ulink>.</para>
</listitem>
</itemizedlist>
</listitem>
<listitem>
<para>2024-05-01</para>
<itemizedlist>
<listitem>
<para>[bdubbs] - Add security fix to glibc. Fixes
<ulink url='&lfs-ticket-root;5481'>#5481</ulink>.</para>
</listitem>
<listitem>
<para>[bdubbs] - Update to linux-6.8.8. Fixes
<ulink url='&lfs-ticket-root;5480'>#5480</ulink>.</para>
</listitem>
<listitem>
<para>[bdubbs] - Update to ncurses-6.5. Fixes
<ulink url='&lfs-ticket-root;5483'>#5483</ulink>.</para>
</listitem>
</itemizedlist>
</listitem>
<listitem>
<para>2024-04-16</para>
<itemizedlist>
<listitem>
<para>[bdubbs] - Make minor change to ifup script output text.</para>
</listitem>
</itemizedlist>
</listitem>
<listitem>
<para>2024-04-15</para>
<itemizedlist>
<listitem>
<para>[bdubbs] - Update to setuptools-69.5.1. Fixes
<ulink url='&lfs-ticket-root;5478'>#5478</ulink>.</para>
</listitem>
<listitem>
<para>[bdubbs] - Update to python3-3.12.3. Fixes
<ulink url='&lfs-ticket-root;5476'>#5476</ulink>.</para>
</listitem>
<listitem>
<para>[bdubbs] - Update to openssl-3.3.0. Fixes
<ulink url='&lfs-ticket-root;5475'>#5475</ulink>.</para>
</listitem>
<listitem>
<para>[bdubbs] - Update to ninja-1.12.0. Fixes
<ulink url='&lfs-ticket-root;5477'>#5477</ulink>.</para>
</listitem>
<listitem>
<para>[bdubbs] - Update to man-db-2.12.1. Fixes
<ulink url='&lfs-ticket-root;5474'>#5474</ulink>.</para>
</listitem>
<listitem>
<para>[bdubbs] - Update to linux-6.8.6. Fixes
<ulink url='&lfs-ticket-root;5472'>#5472</ulink>.</para>
</listitem>
<listitem>
<para>[bdubbs] - Update to iana-etc-20240412. Addresses
<ulink url='&lfs-ticket-root;5006'>#5006</ulink>.</para>
</listitem>
<listitem>
<para>[bdubbs] - Update to vim-9.1.0330. Addresses
<ulink url='&lfs-ticket-root;4500'>#4500</ulink>.</para>
</listitem>
</itemizedlist>
</listitem>
<listitem>
<para>2024-03-31</para>
<itemizedlist>
<listitem>
<para>[bdubbs] - Update to iana-etc-20240318. Addresses
<ulink url='&lfs-ticket-root;5006'>#5006</ulink>.</para>
</listitem>
<listitem>
<para>[bdubbs] - Update to zstd-1.5.6. Fixes
<ulink url='&lfs-ticket-root;5468'>#5468</ulink>.</para>
</listitem>
<listitem>
<para>[bdubbs] - Update to util-linux-2.40. Fixes
<ulink url='&lfs-ticket-root;5430'>#5430</ulink>.</para>
</listitem>
<listitem>
<para>[bdubbs] - Update to shadow-4.15.1. Fixes
<ulink url='&lfs-ticket-root;5465'>#5465</ulink>.</para>
</listitem>
<listitem>
<para>[bdubbs] - Update to pkgconf-2.2.0. Fixes
<ulink url='&lfs-ticket-root;5469'>#5469</ulink>.</para>
</listitem>
<listitem>
<para>[bdubbs] - Update to linux-6.8.2. Fixes
<ulink url='&lfs-ticket-root;5467'>#5467</ulink>.</para>
</listitem>
<listitem>
<para>[bdubbs] - Update to coreutils-9.5. Fixes
<ulink url='&lfs-ticket-root;5470'>#5470</ulink>.</para>
</listitem>
</itemizedlist>
</listitem>
<listitem>
<para>2024-03-29</para>
<itemizedlist>
<listitem>
<para>[bdubbs] - Revert to xz-5.4.6 due to upstream
compromise.</para>
</listitem>
</itemizedlist>
</listitem>
<listitem revision='sysv'>
<para>2024-03-25</para>
<itemizedlist>
<listitem>
<para>[timtas] - Update to sysvinit-3.09. Fixes
<ulink url="&lfs-ticket-root;5466">#5466</ulink>.</para>
</listitem>
</itemizedlist>
</listitem>
<listitem>
<para>2024-03-19</para>
<itemizedlist>
<listitem>
<para>[renodr] - Update to iproute2-6.8.0. Fixes
<ulink url="&lfs-ticket-root;5458">#5458</ulink>.</para>
</listitem>
<listitem>
<para>[renodr] - Update to man-pages-6.7. Fixes
<ulink url="&lfs-ticket-root;5464">#5464</ulink>.</para>
</listitem>
<listitem>
<para>[renodr] - Update to Linux-6.8.1. Fixes
<ulink url="&lfs-ticket-root;5453">#5453</ulink>.</para>
</listitem>
<listitem>
<para>[renodr] - Added LZ4 to the book. Fixes
<ulink url="&lfs-ticket-root;5463">#5463</ulink>.</para>
</listitem>
</itemizedlist>
</listitem>
<listitem>
<para>2024-03-15</para>
<itemizedlist>
<listitem>
<para>[bdubbs] - Update to wheel-0.43.0. Fixes
<ulink url='&lfs-ticket-root;5459'>#5459</ulink>.</para>
</listitem>
<listitem>
<para>[bdubbs] - Update to setuptools-69.2.0 (Python module). Fixes
<ulink url='&lfs-ticket-root;5462'>#5462</ulink>.</para>
</listitem>
<listitem>
<para>[bdubbs] - Update to meson-1.4.0. Fixes
<ulink url='&lfs-ticket-root;5460'>#5460</ulink>.</para>
</listitem>
<listitem>
<para>[bdubbs] - Update to expat-2.6.2 (Security fix). Fixes
<ulink url='&lfs-ticket-root;5461'>#5461</ulink>.</para>
</listitem>
<listitem>
<para>[bdubbs] - Update to iana-etc-20240305. Addresses
<ulink url='&lfs-ticket-root;5006'>#5006</ulink>.</para>
</listitem>
<listitem>
<para>[bdubbs] - Update to vim-9.1.0161. Addresses
<ulink url='&lfs-ticket-root;4500'>#4500</ulink>.</para>
</listitem>
<listitem>
<para>[bdubbs] - Update to xz-5.6.1. Fixes
<ulink url='&lfs-ticket-root;5457'>#5457</ulink>.</para>
</listitem>
<listitem>
<para>[bdubbs] - Update to shadow-4.15.0. Fixes
<ulink url='&lfs-ticket-root;5456'>#5456</ulink>.</para>
</listitem>
<listitem>
<para>[bdubbs] - Update to psmisc-23.7. Fixes
<ulink url='&lfs-ticket-root;5454'>#5454</ulink>.</para>
</listitem>
<listitem>
<para>[bdubbs] - Update to kmod-32. Fixes
<ulink url='&lfs-ticket-root;5455'>#5455</ulink>.</para>
</listitem>
<listitem>
<para>[bdubbs] - Update to elfutils-0.191. Fixes
<ulink url='&lfs-ticket-root;5451'>#5451</ulink>.</para>
</listitem>
</itemizedlist>
</listitem>
<listitem>
<para>2024-03-02</para>
<itemizedlist>
<listitem>
<para>[bdubbs] - Update to iana-etc-20240222. Addresses
<ulink url='&lfs-ticket-root;5006'>#5006</ulink>.</para>
</listitem>
<listitem>
<para>[bdubbs] - Update to vim-9.1.0145. Addresses
<ulink url='&lfs-ticket-root;4500'>#4500</ulink>.</para>
</listitem>
<listitem>
<para>[bdubbs] - Update to xz-5.6.0. Fixes
<ulink url='&lfs-ticket-root;5447'>#5447</ulink>.</para>
</listitem>
<listitem>
<para>[bdubbs] - Update to tcl-8.6.14. Fixes
<ulink url='&lfs-ticket-root;5448'>#5448</ulink>.</para>
</listitem>
<listitem>
<para>[bdubbs] - Update to shadow-4.14.6. Fixes
<ulink url='&lfs-ticket-root;5450'>#5450</ulink>.</para>
</listitem>
<listitem>
<para>[bdubbs] - Update to setuptools-69.1.1. Fixes
<ulink url='&lfs-ticket-root;5446'>#5446</ulink>.</para>
</listitem>
<listitem>
<para>[bdubbs] - Update to linux-6.7.7. Fixes
<ulink url='&lfs-ticket-root;5444'>#5444</ulink>.</para>
</listitem>
<listitem>
<para>[bdubbs] - Update to libffi-3.4.6. Fixes
<ulink url='&lfs-ticket-root;5443'>#5443</ulink>.</para>
</listitem>
<listitem>
<para>[bdubbs] - Update to gettext-0.22.5. Fixes
<ulink url='&lfs-ticket-root;5445'>#5445</ulink>.</para>
</listitem>
<listitem>
<para>[bdubbs] - Update to expat-2.6.1. Fixes
<ulink url='&lfs-ticket-root;5449'>#5449</ulink>.</para>
</listitem>
</itemizedlist>
</listitem>
<listitem>
<para>2024-03-01</para>
<itemizedlist>
<listitem>
<para>[bdubbs] - LFS-12.1 released.</para>
</listitem> </listitem>
</itemizedlist> </itemizedlist>
</listitem> </listitem>

View File

@ -35,42 +35,39 @@
<!--<listitem> <!--<listitem>
<para>Autoconf-&autoconf-version;</para> <para>Autoconf-&autoconf-version;</para>
</listitem>--> </listitem>-->
<listitem> <!--<listitem>
<para>Automake-&automake-version;</para> <para>Automake-&automake-version;</para>
</listitem> </listitem>-->
<listitem> <!--<listitem>
<para>Bash-&bash-version;</para> <para>Bash-&bash-version;</para>
</listitem> </listitem>-->
<listitem> <!--<listitem>
<para>Bc-&bc-version;</para> <para>Bc-&bc-version;</para>
</listitem> </listitem>-->
<listitem> <!--<listitem>
<para>Binutils-&binutils-version;</para> <para>Binutils-&binutils-version;</para>
</listitem> </listitem>-->
<!--<listitem> <!--<listitem>
<para>Bison-&bison-version;</para> <para>Bison-&bison-version;</para>
</listitem>--> </listitem>-->
<!--<listitem> <!--<listitem>
<para>Bzip2-&bzip2-version;</para> <para>Bzip2-&bzip2-version;</para>
</listitem>--> </listitem>-->
<!--<listitem>
<para>Check-&check-version;</para>
</listitem>-->
<listitem> <listitem>
<para>Coreutils-&coreutils-version;</para> <para>Coreutils-&coreutils-version;</para>
</listitem> </listitem>
<!--<listitem> <!--<listitem>
<para>DejaGNU-&dejagnu-version;</para> <para>DejaGNU-&dejagnu-version;</para>
</listitem>--> </listitem>-->
<!--<listitem revision="systemd"> <listitem revision="systemd">
<para>D-Bus-&dbus-version;</para> <para>D-Bus-&dbus-version;</para>
</listitem>-->
<!--<listitem>
<para>Diffutils-&diffutils-version;</para>
</listitem>-->
<listitem>
<para>E2fsprogs-&e2fsprogs-version;</para>
</listitem> </listitem>
<listitem>
<para>Diffutils-&diffutils-version;</para>
</listitem>
<!--<listitem>
<para>E2fsprogs-&e2fsprogs-version;</para>
</listitem>-->
<listitem> <listitem>
<para>Expat-&expat-version;</para> <para>Expat-&expat-version;</para>
</listitem> </listitem>
@ -80,48 +77,48 @@
<!--<listitem> <!--<listitem>
<para>File-&file-version;</para> <para>File-&file-version;</para>
</listitem>--> </listitem>-->
<listitem> <!--<listitem>
<para>Findutils-&findutils-version;</para> <para>Findutils-&findutils-version;</para>
</listitem> </listitem>-->
<!--<listitem> <!--<listitem>
<para>Flex-&flex-version;</para> <para>Flex-&flex-version;</para>
</listitem>--> </listitem>-->
<!--<listitem>
<para>Flit-core-&flit-core-version;</para>
</listitem>-->
<!--<listitem>
<para>Gawk-&gawk-version;</para>
</listitem>-->
<listitem> <listitem>
<para>GCC-&gcc-version;</para> <para>Flit-Core-&flit-core-version;</para>
</listitem> </listitem>
<listitem>
<para>Gawk-&gawk-version;</para>
</listitem>
<!--<listitem>
<para>GCC-&gcc-version;</para>
</listitem>-->
<listitem> <listitem>
<para>GDBM-&gdbm-version;</para> <para>GDBM-&gdbm-version;</para>
</listitem> </listitem>
<listitem> <!--<listitem>
<para>Gettext-&gettext-version;</para> <para>Gettext-&gettext-version;</para>
</listitem> </listitem>-->
<listitem> <!--<listitem>
<para>Glibc-&glibc-version;</para> <para>Glibc-&glibc-version;</para>
</listitem> </listitem>-->
<!--<listitem> <!--<listitem>
<para>GMP-&gmp-version;</para> <para>GMP-&gmp-version;</para>
</listitem>--> </listitem>-->
<!--<listitem> <listitem>
<para>Gperf-&gperf-version;</para> <para>Gperf-&gperf-version;</para>
</listitem>--> </listitem>
<!--<listitem> <listitem>
<para>Grep-&grep-version;</para> <para>Grep-&grep-version;</para>
</listitem>--> </listitem>
<!--<listitem> <!--<listitem>
<para>Groff-&groff-version;</para> <para>Groff-&groff-version;</para>
</listitem>--> </listitem>-->
<!--<listitem> <!--<listitem>
<para>GRUB-&grub-version;</para> <para>GRUB-&grub-version;</para>
</listitem>--> </listitem>-->
<!--<listitem> <listitem>
<para>Gzip-&gzip-version;</para> <para>Gzip-&gzip-version;</para>
</listitem>--> </listitem>
<listitem> <listitem>
<para>Iana-Etc-&iana-etc-version;</para> <para>Iana-Etc-&iana-etc-version;</para>
</listitem> </listitem>
@ -143,18 +140,18 @@
<listitem> <listitem>
<para>Kmod-&kmod-version;</para> <para>Kmod-&kmod-version;</para>
</listitem> </listitem>
<listitem> <!--<listitem>
<para>Less-&less-version;</para> <para>Less-&less-version;</para>
</listitem> </listitem>-->
<!--<listitem> <!--<listitem>
<para>LFS-Bootscripts-&lfs-bootscripts-version;</para> <para>LFS-Bootscripts-&lfs-bootscripts-version;</para>
</listitem>--> </listitem>-->
<listitem> <listitem>
<para>Libcap-&libcap-version;</para> <para>Libcap-&libcap-version;</para>
</listitem> </listitem>
<listitem> <!--<listitem>
<para>Libelf from Elfutils-&elfutils-version;</para> <para>Libelf from Elfutils-&elfutils-version;</para>
</listitem> </listitem>-->
<listitem> <listitem>
<para>Libffi-&libffi-version;</para> <para>Libffi-&libffi-version;</para>
</listitem> </listitem>
@ -164,21 +161,24 @@
<!--<listitem> <!--<listitem>
<para>Libtool-&libtool-version;</para> <para>Libtool-&libtool-version;</para>
</listitem>--> </listitem>-->
<!--<listitem>
<para>Libxcrypt-&libxcrypt-version;</para>
</listitem>-->
<listitem> <listitem>
<para>Linux-&linux-version;</para> <para>Linux-&linux-version;</para>
</listitem> </listitem>
<listitem> <!--<listitem>
<para>Lz4-&lz4-version;</para> <para>Lz4-&lz4-version;</para>
</listitem> </listitem>-->
<!--<listitem> <!--<listitem>
<para>M4-&m4-version;</para> <para>M4-&m4-version;</para>
</listitem>--> </listitem>-->
<!--<listitem> <!--<listitem>
<para>Make-&make-version;</para> <para>Make-&make-version;</para>
</listitem>--> </listitem>-->
<listitem> <!--<listitem>
<para>Man-DB-&man-db-version;</para> <para>Man-DB-&man-db-version;</para>
</listitem> </listitem>-->
<listitem> <listitem>
<para>Man-pages-&man-pages-version;</para> <para>Man-pages-&man-pages-version;</para>
</listitem> </listitem>
@ -191,21 +191,21 @@
<!--<listitem> <!--<listitem>
<para>MPC-&mpc-version;</para> <para>MPC-&mpc-version;</para>
</listitem>--> </listitem>-->
<!--<listitem> <listitem>
<para>MPFR-&mpfr-version;</para> <para>MPFR-&mpfr-version;</para>
</listitem>--> </listitem>
<listitem> <!--<listitem>
<para>Ncurses-&ncurses-version;</para> <para>Ncurses-&ncurses-version;</para>
</listitem> </listitem>-->
<listitem> <!--<listitem>
<para>Ninja-&ninja-version;</para> <para>Ninja-&ninja-version;</para>
</listitem> </listitem>-->
<listitem> <listitem>
<para>OpenSSL-&openssl-version;</para> <para>OpenSSL-&openssl-version;</para>
</listitem> </listitem>
<!--<listitem> <listitem>
<para>Patch-&patch-version;</para> <para>Patch-&patch-version;</para>
</listitem>--> </listitem>
<listitem> <listitem>
<para>Perl-&perl-version;</para> <para>Perl-&perl-version;</para>
</listitem> </listitem>
@ -215,15 +215,15 @@
<!--<listitem> <!--<listitem>
<para>Procps-ng-&procps-ng-version;</para> <para>Procps-ng-&procps-ng-version;</para>
</listitem>--> </listitem>-->
<listitem> <!--<listitem>
<para>Psmisc-&psmisc-version;</para> <para>Psmisc-&psmisc-version;</para>
</listitem> </listitem>-->
<listitem> <listitem>
<para>Python-&python-version;</para> <para>Python-&python-version;</para>
</listitem> </listitem>
<listitem> <!--<listitem>
<para>Readline-&readline-version;</para> <para>Readline-&readline-version;</para>
</listitem> </listitem>-->
<!--<listitem> <!--<listitem>
<para>Sed-&sed-version;</para> <para>Sed-&sed-version;</para>
</listitem>--> </listitem>-->
@ -236,27 +236,27 @@
<listitem revision="sysv"> <listitem revision="sysv">
<para>Sysklogd-&sysklogd-version;</para> <para>Sysklogd-&sysklogd-version;</para>
</listitem> </listitem>
<listitem> <!--<listitem>
<para>Systemd-&systemd-version;</para> <para>Systemd-&systemd-version;</para>
</listitem> </listitem>-->
<listitem revision="sysv"> <!--<listitem revision="sysv">
<para>SysVinit-&sysvinit-version;</para> <para>SysVinit-&sysvinit-version;</para>
</listitem> </listitem>-->
<!--<listitem> <!--<listitem>
<para>Tar-&tar-version;</para> <para>Tar-&tar-version;</para>
</listitem>--> </listitem>-->
<listitem> <!--<listitem>
<para>Tcl-&tcl-version;</para> <para>Tcl-&tcl-version;</para>
</listitem> </listitem>-->
<!--<listitem> <!--<listitem>
<para>Texinfo-&texinfo-version;</para> <para>Texinfo-&texinfo-version;</para>
</listitem>--> </listitem>-->
<!--<listitem> <listitem>
<para>Tzdata-&tzdata-version;</para> <para>Tzdata-&tzdata-version;</para>
</listitem>-->
<listitem revision="sysv">
<para>Udev from Systemd-&systemd-version;</para>
</listitem> </listitem>
<!--<listitem revision="sysv">
<para>Udev from Systemd-&systemd-version;</para>
</listitem>-->
<listitem> <listitem>
<para>Util-linux-&util-linux-version;</para> <para>Util-linux-&util-linux-version;</para>
</listitem> </listitem>
@ -275,9 +275,9 @@
<!--<listitem> <!--<listitem>
<para>Zlib-&zlib-version;</para> <para>Zlib-&zlib-version;</para>
</listitem>--> </listitem>-->
<listitem> <!--<listitem>
<para>Zstd-&zstd-version;</para> <para>Zstd-&zstd-version;</para>
</listitem> </listitem>-->
</itemizedlist> </itemizedlist>
<!--<itemizedlist> <!--<itemizedlist>
@ -291,19 +291,20 @@
<itemizedlist> <itemizedlist>
<title>Added:</title> <title>Added:</title>
<listitem><para></para></listitem> <!-- satisfy build -->
<listitem> <listitem>
<para>Lz4-&lz4-version;</para> <para>Packaging-&packaging-version;</para>
</listitem> </listitem>
</itemizedlist> </itemizedlist>
<itemizedlist> <itemizedlist>
<title>Removed:</title> <title>Removed:</title>
<listitem><para></para></listitem> <!-- satisfy build -->
<listitem> <listitem>
<para>bash-5.2.21-upstream_fixes-1.patch</para> <para>Check-0.15.2</para>
</listitem> </listitem>
<listitem>
<para>readline-8.2-upstream_fixes-3.patch</para>
</listitem>
</itemizedlist> </itemizedlist>
</sect1> </sect1>

View File

@ -8,7 +8,7 @@
<sect1 id="ch-partitioning-aboutlfs"> <sect1 id="ch-partitioning-aboutlfs">
<?dbhtml filename="aboutlfs.html"?> <?dbhtml filename="aboutlfs.html"?>
<title>Setting The $LFS Variable</title> <title>Setting the $LFS Variable and the Umask</title>
<para>Throughout this book, the environment variable <envar>LFS</envar> will <para>Throughout this book, the environment variable <envar>LFS</envar> will
be used several times. You should ensure that this variable is always defined be used several times. You should ensure that this variable is always defined
@ -33,8 +33,24 @@
<para>If you don't have much space in the partition holding the directory, <para>If you don't have much space in the partition holding the directory,
you can mount another partition on it.</para> you can mount another partition on it.</para>
<para>Now set the file mode creation mask (umask) to
<literal>022</literal> in case the host distro uses a different
default:</para>
<screen role="nodump"><userinput>umask 022</userinput></screen>
<para>Setting the umask to 022 ensures that newly created files and
directories are only writable by their owner, but are readable and
searchable (only for directories) by anyone (assuming default modes are
used by the <ulink role='man' url='&man;open.2'>open(2)</ulink> system
call, new files will end up with permission mode 644 and directories with
mode 755). An overly-permissive default can leave security holes in the
LFS system, and an overly-restrictive default can cause strange issues
building or using the LFS system.</para>
<caution> <caution>
<para>Do not forget to check that <envar>LFS</envar> is set whenever <para>Do not forget to check that <envar>LFS</envar> is set and the
umask is set to <literal>022</literal> whenever
you leave and reenter the current working environment (such as when doing a you leave and reenter the current working environment (such as when doing a
<command>su</command> to <systemitem class="username">root</systemitem> or <command>su</command> to <systemitem class="username">root</systemitem> or
another user). Check that the <envar>LFS</envar> variable is set up another user). Check that the <envar>LFS</envar> variable is set up
@ -44,29 +60,40 @@
<para>Make sure the output shows the path to your LFS system's build <para>Make sure the output shows the path to your LFS system's build
location, which is <filename class="directory">/mnt/lfs</filename> if the location, which is <filename class="directory">/mnt/lfs</filename> if the
provided example was followed. If the output is incorrect, use the command provided example was followed.</para>
given earlier on this page to set <envar>$LFS</envar> to the correct
directory name.</para>
</caution>
<note><para>One way to ensure that the <envar>LFS</envar> variable is always <para>Check that the umask is set up properly with:</para>
set is to edit the <filename>.bash_profile</filename> file in both your
personal home directory and in <filename>/root/.bash_profile</filename> and <screen role="nodump"><userinput>umask</userinput></screen>
enter the export command above. In addition, the shell specified in the
<para>The output may be <computeroutput>0022</computeroutput> or
<computeroutput>022</computeroutput> (the number of leading zeros depends
on the host distro).</para>
<para>If any output of these two commands is incorrect, use the command
given earlier on this page to set <envar>$LFS</envar> to the correct
directory name and set umask to <literal>022</literal>.</para></caution>
<note><para>One way to ensure that the <envar>LFS</envar> variable and the
umask are always set properly is to edit the
<filename>.bash_profile</filename> file in both your personal home
directory and in <filename>/root/.bash_profile</filename> and
enter the <command>export</command> and <command>umask</command> commands
above. In addition, the shell specified in the
<filename>/etc/passwd</filename> file for all users that need the <filename>/etc/passwd</filename> file for all users that need the
<envar>LFS</envar> variable must be bash to ensure that the <envar>LFS</envar> variable must be bash to ensure that the
<filename>/root/.bash_profile</filename> file is incorporated as a part of <filename>.bash_profile</filename> file is incorporated as a part of
the login process.</para> the login process.</para>
<para>Another consideration is the method that is used to log into the <para>Another consideration is the method that is used to log into the
host system. If logging in through a graphical display manager, the host system. If logging in through a graphical display manager, the
user's <filename>.bash_profile</filename> is not normally used when user's <filename>.bash_profile</filename> is not normally used when
a virtual terminal is started. In this case, add the export command to a virtual terminal is started. In this case, add the commands to
the <filename>.bashrc</filename> file for the user and the <filename>.bashrc</filename> file for the user and
<systemitem class="username">root</systemitem>. In addition, <systemitem class="username">root</systemitem>. In addition,
some distributions use an "if" test, and do not run the remaining <filename>.bashrc</filename> some distributions use an "if" test, and do not run the remaining <filename>.bashrc</filename>
instructions for a non-interactive bash invocation. Be sure to place the instructions for a non-interactive bash invocation. Be sure to place the
export command ahead of the test for non-interactive use.</para> commands ahead of the test for non-interactive use.</para>
</note> </note>

View File

@ -42,6 +42,15 @@ mount -v -t ext4 /dev/<replaceable>&lt;yyy&gt;</replaceable> $LFS/home</userinpu
<replaceable>&lt;yyy&gt;</replaceable> with the appropriate partition <replaceable>&lt;yyy&gt;</replaceable> with the appropriate partition
names.</para> names.</para>
<para>Set the owner and permission mode of the
<filename class='directory'>$LFS</filename> directory (i.e. the root
directory in the newly created file system for the LFS system) to
&root; and <literal>755</literal> in case the host distro has been
configured to use a different default for <command>mkfs</command>:</para>
<screen role='nodump'><userinput>chown root:root $LFS
chmod 755 $LFS</userinput></screen>
<para>Ensure that this new partition is not mounted with permissions that are <para>Ensure that this new partition is not mounted with permissions that are
too restrictive (such as the <option>nosuid</option> or too restrictive (such as the <option>nosuid</option> or
<option>nodev</option> options). Run the <command>mount</command> command <option>nodev</option> options). Run the <command>mount</command> command

View File

@ -22,8 +22,9 @@
<para>For some packages, the release tarball and the (Git or SVN) <para>For some packages, the release tarball and the (Git or SVN)
repository snapshot tarball for that release may be published with repository snapshot tarball for that release may be published with
similar file names. A release tarball contains generated files (for similar or even identical file names. But the release tarball may contain
example, a <command>configure</command> script generated by some files which are essential despite not stored in the repository
(for example, a <command>configure</command> script generated by
<command>autoconf</command>), in addition to the contents of the <command>autoconf</command>), in addition to the contents of the
corresponding repository snapshot. The book uses release tarballs corresponding repository snapshot. The book uses release tarballs
whenever possible. Using a repository snapshot instead of a release whenever possible. Using a repository snapshot instead of a release

View File

@ -110,15 +110,6 @@
</listitem> </listitem>
</varlistentry> </varlistentry>
<varlistentry>
<term>Check (&check-version;) - <token>&check-size;</token>:</term>
<listitem>
<para>Home page: <ulink url="&check-home;"/></para>
<para>Download: <ulink url="&check-url;"/></para>
<para>MD5 sum: <literal>&check-md5;</literal></para>
</listitem>
</varlistentry>
<varlistentry> <varlistentry>
<term>Coreutils (&coreutils-version;) - <token>&coreutils-size;</token>:</term> <term>Coreutils (&coreutils-version;) - <token>&coreutils-size;</token>:</term>
<listitem> <listitem>
@ -597,6 +588,15 @@
</listitem> </listitem>
</varlistentry> </varlistentry>
<varlistentry>
<term>Packaging (&packaging-version;) - <token>&packaging-size;</token>:</term>
<listitem>
<para>Home page: <ulink url="&packaging-home;"/></para>
<para>Download: <ulink url="&packaging-url;"/></para>
<para>MD5 sum: <literal>&packaging-md5;</literal></para>
</listitem>
</varlistentry>
<varlistentry> <varlistentry>
<term>Patch (&patch-version;) - <token>&patch-size;</token>:</term> <term>Patch (&patch-version;) - <token>&patch-size;</token>:</term>
<listitem> <listitem>

View File

@ -37,10 +37,10 @@
--> -->
<!-- <!--
<varlistentry> <varlistentry>
<term>Binutils LTO Fix Patch - <token>&binutils-lto-patch-size;</token>:</term> <term>Binutils Upstream Fixes Patch - <token>&binutils-upstream-patch-size;</token>:</term>
<listitem> <listitem>
<para>Download: <ulink url="&patches-root;&binutils-lto-patch;"/></para> <para>Download: <ulink url="&patches-root;&binutils-upstream-patch;"/></para>
<para>MD5 sum: <literal>&binutils-lto-patch-md5;</literal></para> <para>MD5 sum: <literal>&binutils-upstream-patch-md5;</literal></para>
</listitem> </listitem>
</varlistentry> </varlistentry>
--> -->

View File

@ -36,7 +36,7 @@
to give an estimate of how long it might take to install a package, but the to give an estimate of how long it might take to install a package, but the
numbers can vary by as much as dozens of minutes in some cases.</para> numbers can vary by as much as dozens of minutes in some cases.</para>
<para>On some newer systems, the motherboard is capable of contolling <para>On some newer systems, the motherboard is capable of controlling
the system clock speed. This can be controlled with a command such as the system clock speed. This can be controlled with a command such as
<command>powerprofilesctl</command>. This is not available in LFS, but <command>powerprofilesctl</command>. This is not available in LFS, but
may be available on the host distro. After LFS is complete, it can be may be available on the host distro. After LFS is complete, it can be

View File

@ -20,8 +20,8 @@
the installation process. As <systemitem class="username">root</systemitem>, the installation process. As <systemitem class="username">root</systemitem>,
issue the following commands to add the new user:</para> issue the following commands to add the new user:</para>
<screen><userinput>groupadd lfs <screen><userinput>groupadd &lfs-groupname;
useradd -s /bin/bash -g lfs -m -k /dev/null lfs</userinput></screen> useradd -s /bin/bash -g &lfs-groupname; -m -k /dev/null &lfs-username;</userinput></screen>
<variablelist> <variablelist>
<title>This is what the command line options mean:</title> <title>This is what the command line options mean:</title>
@ -74,13 +74,13 @@ useradd -s /bin/bash -g lfs -m -k /dev/null lfs</userinput></screen>
have a password), you need to set a password for &lfs-user;. Issue the have a password), you need to set a password for &lfs-user;. Issue the
following command as the &root; user to set the password:</para> following command as the &root; user to set the password:</para>
<screen role="nodump"><userinput>passwd lfs</userinput></screen> <screen role="nodump"><userinput>passwd &lfs-username;</userinput></screen>
<para>Grant <systemitem class="username">lfs</systemitem> full access to <para>Grant <systemitem class="username">lfs</systemitem> full access to
all the directories under <filename class="directory">$LFS</filename> by making all the directories under <filename class="directory">$LFS</filename> by making
<systemitem class="username">lfs</systemitem> the owner:</para> <systemitem class="username">lfs</systemitem> the owner:</para>
<screen><userinput>chown -v lfs $LFS/{usr{,/*},lib*,boot,var,etc,bin,sbin,tools}</userinput></screen> <screen><userinput>chown -v lfs $LFS/{usr{,/*},lib64,boot,var,etc,tools}</userinput></screen>
<note><para>In some host systems, the following <command>su</command> command does not complete <note><para>In some host systems, the following <command>su</command> command does not complete
properly and suspends the login for the &lfs-user; user to the background. properly and suspends the login for the &lfs-user; user to the background.
@ -91,7 +91,7 @@ useradd -s /bin/bash -g lfs -m -k /dev/null lfs</userinput></screen>
logging in as &lfs-user; on a virtual console, or with the following logging in as &lfs-user; on a virtual console, or with the following
substitute/switch user command:</para> substitute/switch user command:</para>
<screen role="nodump"><userinput>su - lfs</userinput></screen> <screen role="nodump"><userinput>su - &lfs-username;</userinput></screen>
<para>The <quote><parameter>-</parameter></quote> instructs <para>The <quote><parameter>-</parameter></quote> instructs
<command>su</command> to start a login shell as opposed to a non-login shell. <command>su</command> to start a login shell as opposed to a non-login shell.

View File

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

View File

@ -93,7 +93,6 @@ cd build</userinput></screen>
--host=$LFS_TGT \ --host=$LFS_TGT \
--build=$(../scripts/config.guess) \ --build=$(../scripts/config.guess) \
--enable-kernel=&linux-major-version;.&linux-minor-version; \ --enable-kernel=&linux-major-version;.&linux-minor-version; \
--with-headers=$LFS/usr/include \
--disable-nscd \ --disable-nscd \
libc_cv_slibdir=/usr/lib</userinput></screen> libc_cv_slibdir=/usr/lib</userinput></screen>
@ -120,16 +119,6 @@ cd build</userinput></screen>
</listitem> </listitem>
</varlistentry> </varlistentry>
<varlistentry>
<term><parameter>--with-headers=$LFS/usr/include</parameter></term>
<listitem>
<para>This tells Glibc to compile itself against the headers
recently installed to the $LFS/usr/include directory, so that
it knows exactly what features the kernel has and can optimize
itself accordingly.</para>
</listitem>
</varlistentry>
<varlistentry> <varlistentry>
<term><parameter>libc_cv_slibdir=/usr/lib</parameter></term> <term><parameter>libc_cv_slibdir=/usr/lib</parameter></term>
<listitem> <listitem>
@ -191,9 +180,9 @@ cd build</userinput></screen>
packages to define the location where the package should be packages to define the location where the package should be
installed. If it is not set, it defaults to the root (<filename installed. If it is not set, it defaults to the root (<filename
class="directory">/</filename>) directory. Here we specify that class="directory">/</filename>) directory. Here we specify that
the package is installed in <filename class="directory">$LFS the package is installed in <filename class="directory">
</filename>, which will become the root directory in <xref linkend= $LFS</filename>, which will become the root directory in <xref linkend=
"ch-tools-chroot"/>.</para> "ch-tools-chroot" role='.'/></para>
</listitem> </listitem>
</varlistentry> </varlistentry>
@ -204,32 +193,98 @@ cd build</userinput></screen>
<screen><userinput remap="install">sed '/RTLDLIST=/s@/usr@@g' -i $LFS/usr/bin/ldd</userinput></screen> <screen><userinput remap="install">sed '/RTLDLIST=/s@/usr@@g' -i $LFS/usr/bin/ldd</userinput></screen>
<caution> <para>Now that our cross toolchain is in place, it is important to ensure
<para>At this point, it is imperative to stop and ensure that the basic that compiling and linking will work as expected. We do this by performing
functions (compiling and linking) of the new toolchain are working as some sanity checks:</para>
expected. To perform a sanity check, run the following commands:</para>
<screen><userinput>echo 'int main(){}' | $LFS_TGT-gcc -xc - <screen><userinput>echo 'int main(){}' | $LFS_TGT-gcc -x c - -v -Wl,--verbose &amp;&gt; dummy.log
readelf -l a.out | grep ld-linux</userinput></screen> readelf -l a.out | grep ': /lib'</userinput></screen>
<para>If everything is working correctly, there should be no errors, <para>There should be no errors,
and the output of the last command will be of the form:</para> and the output of the last command will be (allowing for
platform-specific differences in the dynamic linker name):</para>
<screen><computeroutput>[Requesting program interpreter: /lib64/ld-linux-x86-64.so.2]</computeroutput></screen> <screen><computeroutput>[Requesting program interpreter: /lib64/ld-linux-x86-64.so.2]</computeroutput></screen>
<para>Note that for 32-bit machines, the interpreter name will be <para>Note that this path should not contain
<filename>/lib/ld-linux.so.2</filename>.</para> <filename class='directory'>/mnt/lfs</filename> (or the value of
the <envar>LFS</envar> variable if you used a different one). The path is
resolved when the compiled program is executed, and that should only happen
after we enter the chroot environment where the kernel would consider
<filename class='directory'>$LFS</filename> as the root directory
(<filename class='directory'>/</filename>).</para>
<para>If the output is not as shown above, or there is no output at all, <para>Now make sure that we're set up to use the correct start files:</para>
then something is wrong. Investigate and retrace the steps to find out
where the problem is and correct it. This issue must be resolved before
continuing.</para>
<para>Once all is well, clean up the test file:</para> <screen><userinput>grep -E -o "$LFS/lib.*/S?crt[1in].*succeeded" dummy.log</userinput></screen>
<screen><userinput>rm -v a.out</userinput></screen> <para>The output of the last command should be:</para>
</caution> <screen><computeroutput>/mnt/lfs/lib/../lib/Scrt1.o succeeded
/mnt/lfs/lib/../lib/crti.o succeeded
/mnt/lfs/lib/../lib/crtn.o succeeded</computeroutput></screen>
<para>Verify that the compiler is searching for the correct header
files:</para>
<screen><userinput>grep -B3 "^ $LFS/usr/include" dummy.log</userinput></screen>
<para>This command should return the following output:</para>
<screen><computeroutput>#include &lt;...&gt; search starts here:
/mnt/lfs/tools/lib/gcc/x86_64-lfs-linux-gnu/&gcc-version;/include
/mnt/lfs/tools/lib/gcc/x86_64-lfs-linux-gnu/&gcc-version;/include-fixed
/mnt/lfs/usr/include</computeroutput></screen>
<para>Again, the directory named after your target triplet may be
different than the above, depending on your system architecture.</para>
<para>Next, verify that the new linker is being used with the correct search paths:</para>
<screen><userinput>grep 'SEARCH.*/usr/lib' dummy.log |sed 's|; |\n|g'</userinput></screen>
<para>References to paths that have components with '-linux-gnu' should
be ignored, but otherwise the output of the last command should be:</para>
<screen><computeroutput>SEARCH_DIR("=/mnt/lfs/tools/x86_64-lfs-linux-gnu/lib64")
SEARCH_DIR("=/usr/local/lib64")
SEARCH_DIR("=/lib64")
SEARCH_DIR("=/usr/lib64")
SEARCH_DIR("=/mnt/lfs/tools/x86_64-lfs-linux-gnu/lib")
SEARCH_DIR("=/usr/local/lib")
SEARCH_DIR("=/lib")
SEARCH_DIR("=/usr/lib");</computeroutput></screen>
<para>A 32-bit system may use a few other directories, but anyway
the important facet here is all the paths should begin with an equal sign
(<literal>=</literal>), which would be replaced with the sysroot
directory that we've configured for the linker.</para>
<para>Next make sure that we're using the correct libc:</para>
<screen><userinput>grep "/lib.*/libc.so.6 " dummy.log</userinput></screen>
<para>The output of the last command should be:</para>
<screen><computeroutput>attempt to open /mnt/lfs/usr/lib/libc.so.6 succeeded</computeroutput></screen>
<para>Make sure GCC is using the correct dynamic linker:</para>
<screen><userinput>grep found dummy.log</userinput></screen>
<para>The output of the last command should be (allowing for
platform-specific differences in dynamic linker name):</para>
<screen><computeroutput>found ld-linux-x86-64.so.2 at /mnt/lfs/usr/lib/ld-linux-x86-64.so.2</computeroutput></screen>
<para>If the output does not appear as shown above or is not received
at all, then something is seriously wrong. Investigate and retrace the
steps to find out where the problem is and correct it. Any
issues should be resolved before continuing with the process.</para>
<para>Once everything is working correctly, clean up the test files:</para>
<screen><userinput>rm -v a.out dummy.log</userinput></screen>
<note><para>Building the packages in the next chapter will serve as an <note><para>Building the packages in the next chapter will serve as an
additional check that the toolchain has been built properly. If some additional check that the toolchain has been built properly. If some

View File

@ -48,8 +48,7 @@
<screen><userinput remap="configure">./configure --prefix=/usr \ <screen><userinput remap="configure">./configure --prefix=/usr \
--build=$(sh support/config.guess) \ --build=$(sh support/config.guess) \
--host=$LFS_TGT \ --host=$LFS_TGT \
--without-bash-malloc \ --without-bash-malloc</userinput></screen>
bash_cv_strtold_broken=no</userinput></screen>
<variablelist> <variablelist>
<title>The meaning of the configure options:</title> <title>The meaning of the configure options:</title>

View File

@ -55,7 +55,7 @@
produced binaries mistakenly linked against libraries from the host produced binaries mistakenly linked against libraries from the host
distro. Work around this issue:</para> distro. Work around this issue:</para>
<screen><userinput remap="pre">sed '6009s/$add_dir//' -i ltmain.sh</userinput></screen> <screen><userinput remap="pre">sed '6031s/$add_dir//' -i ltmain.sh</userinput></screen>
<para>Create a separate build directory again:</para> <para>Create a separate build directory again:</para>

View File

@ -47,8 +47,36 @@
<screen><userinput remap="configure">./configure --prefix=/usr \ <screen><userinput remap="configure">./configure --prefix=/usr \
--host=$LFS_TGT \ --host=$LFS_TGT \
gl_cv_func_strcasecmp_works=y \
--build=$(./build-aux/config.guess)</userinput></screen> --build=$(./build-aux/config.guess)</userinput></screen>
<variablelist>
<title>The meaning of the configure options:</title>
<varlistentry>
<!-- https://git.savannah.gnu.org/cgit/gnulib.git/commit/?id=d9083a4cc638cf9c7dfc3cc534a7c6b4debf50ab -->
<term><parameter>gl_cv_func_strcasecmp_works=y</parameter></term>
<listitem>
<para>This option specify the result of a check for the
<function>strcasecmp</function>. The check requires running a
compiled C program, and this is impossible during
cross-compilation because in general a cross-compiled program
cannot run on the host distro. Normally for such a check the
<command>configure</command> script would use a fall-back value
for cross-compilation, but the fall-back value for this check is
absent and the <command>configure</command> script would have no
value to use and error out. The upstream has already fixed the
issue, but to apply the fix we'd need to run
<command>autoconf</command> that the host distro may lack. So
we just specify the check result (<literal>y</literal> as we know
the <function>strcasecmp</function> function in
Glibc-&glibc-version; works fine) instead, then
<command>configure</command> will just use the specified value and
skip the check.</para>
</listitem>
</varlistentry>
</variablelist>
<para>Compile the package:</para> <para>Compile the package:</para>
<screen><userinput remap="make">make</userinput></screen> <screen><userinput remap="make">make</userinput></screen>

View File

@ -45,23 +45,9 @@
<para>Prepare Make for compilation:</para> <para>Prepare Make for compilation:</para>
<screen><userinput remap="configure">./configure --prefix=/usr \ <screen><userinput remap="configure">./configure --prefix=/usr \
--without-guile \
--host=$LFS_TGT \ --host=$LFS_TGT \
--build=$(build-aux/config.guess)</userinput></screen> --build=$(build-aux/config.guess)</userinput></screen>
<variablelist>
<title>The meaning of the new configure option:</title>
<varlistentry>
<term><parameter>--without-guile</parameter></term>
<listitem>
<para>Although we are cross-compiling, configure tries to use
guile from the build host if it finds it. This makes compilation
fail, so this switch prevents using it.</para>
</listitem>
</varlistentry>
</variablelist>
<para>Compile the package:</para> <para>Compile the package:</para>
<screen><userinput remap="make">make</userinput></screen> <screen><userinput remap="make">make</userinput></screen>

View File

@ -43,16 +43,12 @@
<sect2 role="installation"> <sect2 role="installation">
<title>Installation of Ncurses</title> <title>Installation of Ncurses</title>
<para>First, ensure that <command>gawk</command> is found first during configuration:</para> <para>First, run the following commands to build the <quote>tic</quote>
<screen><userinput remap="pre">sed -i s/mawk// configure</userinput></screen>
<para>Then, run the following commands to build the <quote>tic</quote>
program on the build host:</para> program on the build host:</para>
<screen><userinput remap="pre">mkdir build <screen><userinput remap="pre">mkdir build
pushd build pushd build
../configure ../configure AWK=gawk
make -C include make -C include
make -C progs tic make -C progs tic
popd</userinput></screen> popd</userinput></screen>
@ -69,7 +65,8 @@ popd</userinput></screen>
--with-cxx-shared \ --with-cxx-shared \
--without-debug \ --without-debug \
--without-ada \ --without-ada \
--disable-stripping</userinput></screen> --disable-stripping \
AWK=gawk</userinput></screen>
<variablelist> <variablelist>
<title>The meaning of the new configure options:</title> <title>The meaning of the new configure options:</title>
@ -131,21 +128,17 @@ popd</userinput></screen>
Using host tools on cross-compiled programs can cause failure.</para> Using host tools on cross-compiled programs can cause failure.</para>
</listitem> </listitem>
</varlistentry> </varlistentry>
<!-- this is the default >= 6.5
<varlistentry> <varlistentry>
<term><parameter>- -enable-widec</parameter></term> <term><parameter>AWK=gawk</parameter></term>
<listitem> <listitem>
<para>This switch causes wide-character libraries (e.g., <filename <para>This switch prevents the building system from using the
class="libraryfile">libncursesw.so.&ncurses-version;</filename>) <command>mawk</command> program from the host.
to be built instead of normal ones (e.g., <filename Some<!-- FIXME vauge --> versions of <command>mawk</command> can
class="libraryfile">libncurses.so.&ncurses-version;</filename>). cause this package to fail to build. <!-- It seems happened in 2015,
These wide-character libraries are usable in both multibyte and is there any updated into? --></para>
traditional 8-bit locales, while normal libraries work properly
only in 8-bit locales. Wide-character and normal libraries are
source-compatible, but not binary-compatible.</para>
</listitem> </listitem>
</varlistentry> </varlistentry>
-->
</variablelist> </variablelist>
<para>Compile the package:</para> <para>Compile the package:</para>

View File

@ -33,9 +33,9 @@
user <systemitem class="username">root</systemitem> by running the following user <systemitem class="username">root</systemitem> by running the following
command:</para> command:</para>
<screen><userinput>chown --from lfs -R root:root $LFS/{usr,lib,var,etc,bin,sbin,tools} <screen><userinput>chown --from &lfs-username; -R root:root $LFS/{usr,lib,var,etc,bin,sbin,tools}
case $(uname -m) in case $(uname -m) in
x86_64) chown --from lfs -R root:root $LFS/lib64 ;; x86_64) chown --from &lfs-username; -R root:root $LFS/lib64 ;;
esac</userinput></screen> esac</userinput></screen>
</sect1> </sect1>

View File

@ -180,11 +180,11 @@ EOF</userinput></screen>
<systemitem class="groupname">nogroup</systemitem> to avoid an <systemitem class="groupname">nogroup</systemitem> to avoid an
unnamed ID. But other distros may treat this ID differently, so any unnamed ID. But other distros may treat this ID differently, so any
portable program should not depend on this assignment.</para> portable program should not depend on this assignment.</para>
<!--
<para>Some packages need a locale.</para> <para>Some packages need a locale.</para>
<screen><userinput>localedef -i C -f UTF-8 C.UTF-8</userinput></screen> <screen><userinput>localedef -i C -f UTF-8 C.UTF-8</userinput></screen>
-->
<para>Some tests in <xref linkend="chapter-building-system"/> need a regular <para>Some tests in <xref linkend="chapter-building-system"/> need a regular
user. We add this user here and delete this account at the end of that user. We add this user here and delete this account at the end of that
chapter.</para> chapter.</para>

View File

@ -53,10 +53,13 @@
<screen><userinput remap="make">make</userinput></screen> <screen><userinput remap="make">make</userinput></screen>
<para>The Acl tests must be run on a filesystem that supports access <para>The Acl tests must be run on a filesystem that supports access
controls, but not until the <application>Coreutils</application> package has been built, controls. To test the results, issue:</para>
using the <application>Acl</application> libraries. If desired, return to this package
and run <command>make check</command> after the <application>Coreutils</application> <screen><userinput remap="test">make check</userinput></screen>
package has been built.</para>
<para>One test named <filename>test/cp.test</filename> is known to
fail because <application>Coreutils</application> is not built with
the <application>Acl</application> support yet.</para>
<para>Install the package:</para> <para>Install the package:</para>

View File

@ -45,7 +45,6 @@
<screen><userinput remap="configure">./configure --prefix=/usr \ <screen><userinput remap="configure">./configure --prefix=/usr \
--without-bash-malloc \ --without-bash-malloc \
--with-installed-readline \ --with-installed-readline \
bash_cv_strtold_broken=no \
--docdir=/usr/share/doc/bash-&bash-version;</userinput></screen> --docdir=/usr/share/doc/bash-&bash-version;</userinput></screen>
<variablelist> <variablelist>

View File

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

View File

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

View File

@ -60,17 +60,17 @@
<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="autoconf.xml"/> <xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="autoconf.xml"/>
<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="automake.xml"/> <xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="automake.xml"/>
<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="openssl.xml"/> <xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="openssl.xml"/>
<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="kmod.xml"/>
<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="libelf.xml"/> <xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="libelf.xml"/>
<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="libffi.xml"/> <xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="libffi.xml"/>
<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="python.xml"/> <xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="python.xml"/>
<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="flit-core.xml"/> <xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="flit-core.xml"/>
<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="packaging.xml"/>
<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="wheel.xml"/> <xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="wheel.xml"/>
<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="setuptools.xml"/> <xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="setuptools.xml"/>
<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="ninja.xml"/> <xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="ninja.xml"/>
<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="meson.xml"/> <xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="meson.xml"/>
<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="kmod.xml"/>
<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="coreutils.xml"/> <xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="coreutils.xml"/>
<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="check.xml"/>
<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="diffutils.xml"/> <xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="diffutils.xml"/>
<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="gawk.xml"/> <xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="gawk.xml"/>
<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="findutils.xml"/> <xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="findutils.xml"/>

View File

@ -1,109 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE sect1 PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
<!ENTITY % general-entities SYSTEM "../general.ent">
%general-entities;
]>
<sect1 id="ch-system-check" role="wrap">
<?dbhtml filename="check.html"?>
<sect1info condition="script">
<productname>check</productname>
<productnumber>&check-version;</productnumber>
<address>&check-url;</address>
</sect1info>
<title>Check-&check-version;</title>
<indexterm zone="ch-system-check">
<primary sortas="a-Check">Check</primary>
</indexterm>
<sect2 role="package">
<title/>
<para>Check is a unit testing framework for C.</para>
<segmentedlist>
<segtitle>&buildtime;</segtitle>
<segtitle>&diskspace;</segtitle>
<seglistitem>
<seg>&check-fin-sbu;</seg>
<seg>&check-fin-du;</seg>
</seglistitem>
</segmentedlist>
</sect2>
<sect2 role="installation">
<title>Installation of Check</title>
<para>Prepare Check for compilation:</para>
<screen><userinput remap="configure">./configure --prefix=/usr --disable-static</userinput></screen>
<para>Build the package:</para>
<screen><userinput remap="make">make</userinput></screen>
<para>Compilation is now complete. To run the Check test suite, issue the
following command:</para>
<screen><userinput remap="test">make check</userinput></screen>
<!-- <para>Note that the Check test suite may take a relatively long
(up to 4 SBU) time.</para>
-->
<para>Install the package:</para>
<screen><userinput remap="install">make docdir=/usr/share/doc/check-&check-version; install</userinput></screen>
</sect2>
<sect2 id="contents-check" role="content">
<title>Contents of Check</title>
<segmentedlist>
<segtitle>Installed program</segtitle>
<segtitle>Installed library</segtitle>
<seglistitem>
<seg>checkmk</seg>
<seg>libcheck.so</seg>
</seglistitem>
</segmentedlist>
<variablelist>
<bridgehead renderas="sect3">Short Descriptions</bridgehead>
<?dbfo list-presentation="list"?>
<?dbhtml list-presentation="table"?>
<varlistentry id="checkmk">
<term><command>checkmk</command></term>
<listitem>
<para>Awk script for generating C unit tests for use with the Check
unit testing framework</para>
<indexterm zone="ch-system-check checkmk">
<primary sortas="b-checmk">checkmk</primary>
</indexterm>
</listitem>
</varlistentry>
<varlistentry id="libcheck">
<term><filename class="libraryfile">libcheck.so</filename></term>
<listitem>
<para>Contains functions that allow Check to be called from a test
program</para>
<indexterm zone="ch-system-check libcheck">
<primary sortas="c-libcheck">libcheck</primary>
</indexterm>
</listitem>
</varlistentry>
</variablelist>
</sect2>
</sect1>

View File

@ -55,20 +55,35 @@
<para>Now prepare Coreutils for compilation:</para> <para>Now prepare Coreutils for compilation:</para>
<screen><userinput remap="configure">autoreconf -fiv <screen><userinput remap="configure">autoreconf -fv
automake -af
FORCE_UNSAFE_CONFIGURE=1 ./configure \ FORCE_UNSAFE_CONFIGURE=1 ./configure \
--prefix=/usr \ --prefix=/usr \
--enable-no-install-program=kill,uptime</userinput></screen> --enable-no-install-program=kill,uptime</userinput></screen>
<variablelist> <variablelist>
<title>The meaning of the configure options:</title> <title>The meaning of the commands and configure options:</title>
<varlistentry> <varlistentry>
<term><command>autoreconf</command></term> <term><command>autoreconf -fv</command></term>
<listitem> <listitem>
<para>The patch for internationalization has modified the <para>The patch for internationalization has modified the
build system, so the configuration files must build system, so the configuration files must
be regenerated.</para> be regenerated. Normally we would use the
<parameter>-i</parameter> option to update the standard
auxiliary files, but for this package it does not work because
<filename>configure.ac</filename> specified an old gettext
version.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><command>automake -af</command></term>
<listitem>
<para>The automake auxiliary files were not updated by
<command>autoreconf</command> due to the missing
<parameter>-i</parameter> option. This command updates them
to prevent a build failure.</para>
</listitem> </listitem>
</varlistentry> </varlistentry>
@ -139,12 +154,6 @@ FORCE_UNSAFE_CONFIGURE=1 ./configure \
<screen><userinput remap="test">groupdel dummy</userinput></screen> <screen><userinput remap="test">groupdel dummy</userinput></screen>
<para>
Two tests, <filename>tests/cp/preserve-mode.sh</filename> and
<filename>tests/mv/acl.sh</filename>, are known to
fail in the chroot environment, but pass in a complete system.
</para>
<para>Install the package:</para> <para>Install the package:</para>
<screen><userinput remap="install">make install</userinput></screen> <screen><userinput remap="install">make install</userinput></screen>

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@ -172,26 +172,15 @@ su tester -c "PATH=$PATH make -k check"</userinput></screen>
<para>Results can be compared with those located at <ulink <para>Results can be compared with those located at <ulink
url="&test-results;"/> and url="&test-results;"/> and
<ulink url="https://gcc.gnu.org/ml/gcc-testresults/"/>.</para> <ulink url="https://gcc.gnu.org/ml/gcc-testresults/"/>.</para>
<!--
<para>
Eight gcc tests (out of over 185,000):
<!- - https://gcc.gnu.org/PR106375 - -><filename>pr56837.c</filename>
and seven tests in the <filename class='directory'>analyzer</filename>
directory are known to fail.
<!- - https://gcc.gnu.org/PR109353 - -> <!-- https://github.com/google/sanitizers/issues/1716
One libstdc++ test (out of over 15000), <filename>copy.cc</filename>, is Affecting any host distro with a large vm.mmap_rnd_bits.
known to fail. The fix is https://github.com/llvm/llvm-project/commit/0784b1eefa36
but it's not in GCC 14. TODO retry with
sudo sysctl vm.mmap_rnd_bits=32
on the host distro when we update to GCC 15. -->
<para>The tsan tests are known to fail on some host distros.</para>
For g++, 21 tests (out of approximately 250,000): 14
<quote>AddressSanitizer*</quote>
tests and 7 <filename>interception-malloc-test-1.C</filename> tests, are
known to fail.
Additionally, several tests in the
<filename class='directory'>vect</filename> directory are known to fail
if the hardware does not support AVX.</para>
-->
<para>A few unexpected failures cannot always be avoided. In some cases <para>A few unexpected failures cannot always be avoided. In some cases
test failures depend on the specific hardware of the system.<!--The GCC developers test failures depend on the specific hardware of the system.<!--The GCC developers
are usually aware of these issues, but have not resolved them yet.--> are usually aware of these issues, but have not resolved them yet.-->
@ -233,8 +222,7 @@ su tester -c "PATH=$PATH make -k check"</userinput></screen>
that compiling and linking will work as expected. We do this by performing that compiling and linking will work as expected. We do this by performing
some sanity checks:</para> some sanity checks:</para>
<screen><userinput>echo 'int main(){}' &gt; dummy.c <screen><userinput>echo 'int main(){}' | cc -x c - -v -Wl,--verbose &amp;&gt; dummy.log
cc dummy.c -v -Wl,--verbose &amp;&gt; dummy.log
readelf -l a.out | grep ': /lib'</userinput></screen> readelf -l a.out | grep ': /lib'</userinput></screen>
<para>There should be no errors, <para>There should be no errors,
@ -329,7 +317,7 @@ SEARCH_DIR("/usr/lib");</computeroutput></screen>
<para>Once everything is working correctly, clean up the test files:</para> <para>Once everything is working correctly, clean up the test files:</para>
<screen><userinput>rm -v dummy.c a.out dummy.log</userinput></screen> <screen><userinput>rm -v a.out dummy.log</userinput></screen>
<para>Finally, move a misplaced file:</para> <para>Finally, move a misplaced file:</para>

View File

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

View File

@ -153,7 +153,7 @@ esac</userinput></screen>
<para>You may see some test failures. The Glibc test suite is <para>You may see some test failures. The Glibc test suite is
somewhat dependent on the host system. A few failures out of somewhat dependent on the host system. A few failures out of
over 5000 tests can generally be ignored. This is a list of the over 6000 tests can generally be ignored. This is a list of the
most common issues seen for recent versions of LFS:</para> most common issues seen for recent versions of LFS:</para>
<itemizedlist> <itemizedlist>
@ -313,6 +313,19 @@ install -vm755 dest/usr/lib/*.so.* /usr/lib</userinput></screen>
the locales. Once they are finished, reboot the system the locales. Once they are finished, reboot the system
immediately. immediately.
</para> </para>
<para>
When the system has successfully rebooted, if you are running
a LFS system prior to 12.0 (exclusive) where GCC was not built
with the <parameter>--disable-fixincludes</parameter> option,
move two GCC headers into a better location and
remove the stale <quote>fixed</quote> copies of the Glibc headers:
</para>
<screen role='nodump'><userinput>DIR=$(dirname $(gcc -print-libgcc-file-name))
[ -e $DIR/include/limits.h ] || mv $DIR/include{-fixed,}/limits.h
[ -e $DIR/include/syslimits.h ] || mv $DIR/include{-fixed,}/syslimits.h
rm -rfv $(dirname $(gcc -print-libgcc-file-name))/include-fixed/*</userinput></screen>
</important> </important>
<para>Install the package:</para> <para>Install the package:</para>
@ -376,7 +389,6 @@ localedef -i it_IT -f ISO-8859-1 it_IT
localedef -i it_IT -f ISO-8859-15 it_IT@euro localedef -i it_IT -f ISO-8859-15 it_IT@euro
localedef -i it_IT -f UTF-8 it_IT.UTF-8 localedef -i it_IT -f UTF-8 it_IT.UTF-8
localedef -i ja_JP -f EUC-JP ja_JP localedef -i ja_JP -f EUC-JP ja_JP
localedef -i ja_JP -f SHIFT_JIS ja_JP.SJIS 2> /dev/null || true
localedef -i ja_JP -f UTF-8 ja_JP.UTF-8 localedef -i ja_JP -f UTF-8 ja_JP.UTF-8
localedef -i nl_NL@euro -f ISO-8859-15 nl_NL@euro localedef -i nl_NL@euro -f ISO-8859-15 nl_NL@euro
localedef -i ru_RU -f KOI8-R ru_RU.KOI8-R localedef -i ru_RU -f KOI8-R ru_RU.KOI8-R
@ -398,15 +410,6 @@ localedef -i zh_TW -f UTF-8 zh_TW.UTF-8</userinput></screen>
<screen><userinput remap="locale-full">make localedata/install-locales</userinput></screen> <screen><userinput remap="locale-full">make localedata/install-locales</userinput></screen>
<para>Then use the <command>localedef</command> command to create and
install locales not listed in the
<filename>glibc-&glibc-version;/localedata/SUPPORTED</filename> file
when you need them. For instance, the following two locales are
needed for some tests later in this chapter:</para>
<screen role="nodump"><userinput remap="locale-full">localedef -i C -f UTF-8 C.UTF-8
localedef -i ja_JP -f SHIFT_JIS ja_JP.SJIS 2> /dev/null || true</userinput></screen>
<note><para>Glibc now uses libidn2 when resolving internationalized <note><para>Glibc now uses libidn2 when resolving internationalized
domain names. This is a run time dependency. If this capability domain names. This is a run time dependency. If this capability
is needed, the instructions for installing libidn2 are in the is needed, the instructions for installing libidn2 are in the
@ -492,7 +495,7 @@ done
cp -v zone.tab zone1970.tab iso3166.tab $ZONEINFO cp -v zone.tab zone1970.tab iso3166.tab $ZONEINFO
zic -d $ZONEINFO -p America/New_York zic -d $ZONEINFO -p America/New_York
unset ZONEINFO</userinput></screen> unset ZONEINFO tz</userinput></screen>
<variablelist> <variablelist>
<title>The meaning of the zic commands:</title> <title>The meaning of the zic commands:</title>

View File

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

View File

@ -105,7 +105,8 @@
the tests depend on packages that are not available in the limited the tests depend on packages that are not available in the limited
LFS environment. To run the tests anyway, run <command>make check</command>.</para> LFS environment. To run the tests anyway, run <command>make check</command>.</para>
<para>Install the package:</para> <para>Install the package, and move the Bash completion support file to
the location recommended by the Bash completion maintainers:</para>
<screen><userinput remap="install">make install <screen><userinput remap="install">make install
mv -v /etc/bash_completion.d/grub /usr/share/bash-completion/completions</userinput></screen> mv -v /etc/bash_completion.d/grub /usr/share/bash-completion/completions</userinput></screen>
@ -176,7 +177,7 @@ mv -v /etc/bash_completion.d/grub /usr/share/bash-completion/completions</userin
<varlistentry id="grub-fstest"> <varlistentry id="grub-fstest">
<term><command>grub-fstest</command></term> <term><command>grub-fstest</command></term>
<listitem> <listitem>
<para>Is a tool to debug the filesystem driver</para> <para>Is a tool to debug the file system driver</para>
<indexterm zone="ch-system-grub grub-fstest"> <indexterm zone="ch-system-grub grub-fstest">
<primary sortas="b-grub-fstest">grub-fstest</primary> <primary sortas="b-grub-fstest">grub-fstest</primary>
</indexterm> </indexterm>

View File

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

View File

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

View File

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

View File

@ -43,41 +43,19 @@
<para>Prepare Kmod for compilation:</para> <para>Prepare Kmod for compilation:</para>
<screen><userinput remap="configure">./configure --prefix=/usr \ <screen><userinput remap="configure">mkdir -p build
--sysconfdir=/etc \ cd build
--with-openssl \
--with-xz \ meson setup --prefix=/usr .. \
--with-zstd \ --buildtype=release \
--with-zlib \ -D manpages=false</userinput></screen>
--disable-manpages</userinput></screen>
<variablelist> <variablelist>
<title>The meaning of the configure options:</title> <title>The meaning of the configure options:</title>
<varlistentry> <varlistentry>
<term> <term>
<parameter>--with-openssl</parameter> <parameter>-D manpages=false</parameter>
</term>
<listitem>
<para>This option enables Kmod to handle PKCS7 signatures for
kernel modules.</para>
</listitem>
</varlistentry>
<varlistentry>
<term>
<parameter>--with-xz</parameter>,
<parameter>--with-zlib</parameter>, and
<parameter>--with-zstd</parameter>
</term>
<listitem>
<para>These options enable Kmod to handle compressed kernel modules.</para>
</listitem>
</varlistentry>
<varlistentry>
<term>
<parameter>--disable-manpages</parameter>
</term> </term>
<listitem> <listitem>
<para>This option disables generating the man pages which <para>This option disables generating the man pages which
@ -89,25 +67,15 @@
<para>Compile the package:</para> <para>Compile the package:</para>
<screen><userinput remap="make">make</userinput></screen> <screen><userinput remap="make">ninja</userinput></screen>
<para>The test suite of this package requires raw kernel headers <para>The test suite of this package requires raw kernel headers
(not the <quote>sanitized</quote> kernel headers installed earlier), (not the <quote>sanitized</quote> kernel headers installed earlier),
which are beyond the scope of LFS.</para> which are beyond the scope of LFS.</para>
<para>Install the package and recreate some symlinks for <para>Now install the package:</para>
compatibility with Module-Init-Tools (the package that previously handled
Linux kernel modules). The building system will create all these
symlinks in <filename class='directory'>/usr/bin</filename>, but we
only want <command>lsmod</command> there and all other symlinks in
<filename class='directory'>/usr/sbin</filename> instead:</para>
<screen><userinput remap="install">make install <screen><userinput remap="install">ninja install</userinput></screen>
for target in depmod insmod modinfo modprobe rmmod; do
ln -sfv ../bin/kmod /usr/sbin/$target
rm -fv /usr/bin/$target
done</userinput></screen>
</sect2> </sect2>

View File

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

View File

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

View File

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

View File

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

View File

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

75
chapter08/packaging.xml Normal file
View File

@ -0,0 +1,75 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE sect1 PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
<!ENTITY % general-entities SYSTEM "../general.ent">
%general-entities;
]>
<sect1 id="ch-system-packaging" role="wrap">
<?dbhtml filename="packaging.html"?>
<sect1info condition="script">
<productname>packaging</productname>
<productnumber>&packaging-version;</productnumber>
<address>&packaging-url;</address>
</sect1info>
<title>Packaging-&packaging-version;</title>
<indexterm zone="ch-system-packaging">
<primary sortas="a-packaging">packaging</primary>
</indexterm>
<sect2 role="package">
<title/>
<para>
The packaging module is a Python library that provides utilities that
implement the interoperability specifications which have clearly one
correct behaviour (PEP440) or benefit greatly from having a single shared
implementation (PEP425). This includes utilities for version handling,
specifiers, markers, tags, and requirements.
</para>
<segmentedlist>
<segtitle>&buildtime;</segtitle>
<segtitle>&diskspace;</segtitle>
<seglistitem>
<seg>&packaging-fin-sbu;</seg>
<seg>&packaging-fin-du;</seg>
</seglistitem>
</segmentedlist>
</sect2>
<sect2 role="installation">
<title>Installation of Packaging</title>
<para>Compile packaging with the following command:</para>
<screen><userinput remap="make">pip3 wheel -w dist --no-cache-dir --no-build-isolation --no-deps $PWD</userinput></screen>
<para>Install packaging with the following command:</para>
<screen><userinput remap="install">pip3 install --no-index --find-links dist packaging</userinput></screen>
</sect2>
<sect2 id="contents-packaging" role="content">
<title>Contents of Packaging</title>
<segmentedlist>
<segtitle>Installed directories</segtitle>
<seglistitem>
<seg>
/usr/lib/python&python-minor;/site-packages/packaging and
/usr/lib/python&python-minor;/site-packages/packaging-&packaging-version;.dist-info
</seg>
</seglistitem>
</segmentedlist>
</sect2>
</sect1>

View File

@ -40,12 +40,7 @@
<sect2 role="installation"> <sect2 role="installation">
<title>Installation of Perl</title> <title>Installation of Perl</title>
<!--
<para>First, apply a patch that fixes an issue highlighted by recent
versions of gdbm:</para>
<screen><userinput remap="pre">patch -Np1 -i ../&perl-fix-patch;</userinput></screen>
-->
<para>This version of Perl builds the Compress::Raw::Zlib and <para>This version of Perl builds the Compress::Raw::Zlib and
Compress::Raw::BZip2 modules. By Compress::Raw::BZip2 modules. By
default Perl will use an internal copy of the sources for the build. default Perl will use an internal copy of the sources for the build.
@ -109,7 +104,7 @@ export BUILD_BZIP2=0</userinput></screen>
<screen><userinput remap="make">make</userinput></screen> <screen><userinput remap="make">make</userinput></screen>
<para>To test the results (approximately 11 SBU), issue:</para> <para>To test the results, issue:</para>
<screen><userinput remap="test">TEST_JOBS=$(nproc) make test_harness</userinput></screen> <screen><userinput remap="test">TEST_JOBS=$(nproc) make test_harness</userinput></screen>

View File

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

View File

@ -45,12 +45,14 @@
<screen revision="sysv"><userinput remap="configure">./configure --prefix=/usr \ <screen revision="sysv"><userinput remap="configure">./configure --prefix=/usr \
--docdir=/usr/share/doc/procps-ng-&procps-ng-version; \ --docdir=/usr/share/doc/procps-ng-&procps-ng-version; \
--disable-static \ --disable-static \
--disable-kill</userinput></screen> --disable-kill \
--enable-watch8bit</userinput></screen>
<screen revision="systemd"><userinput remap="configure">./configure --prefix=/usr \ <screen revision="systemd"><userinput remap="configure">./configure --prefix=/usr \
--docdir=/usr/share/doc/procps-ng-&procps-ng-version; \ --docdir=/usr/share/doc/procps-ng-&procps-ng-version; \
--disable-static \ --disable-static \
--disable-kill \ --disable-kill \
--enable-watch8bit \
--with-systemd</userinput></screen> --with-systemd</userinput></screen>
<variablelist> <variablelist>
@ -63,12 +65,20 @@
command; it will be installed from the Util-linux package.</para> command; it will be installed from the Util-linux package.</para>
</listitem> </listitem>
</varlistentry> </varlistentry>
<varlistentry>
<term><parameter>--enable-watch8bit</parameter></term>
<listitem>
<para>This switch enables the ncursesw support for the
<command>watch</command> command, so it can handle 8-bit
characters.</para>
</listitem>
</varlistentry>
</variablelist> </variablelist>
<para>Compile the package:</para> <para>Compile the package:</para>
<screen revision='sysv'><userinput remap="make">make</userinput></screen> <screen><userinput remap="make">make</userinput></screen>
<screen revision='systemd'><userinput remap="make">make src_w_LDADD='$(LDADD) -lsystemd'</userinput></screen>
<!-- To editors: "pmap {X,XX} with unreachable process" tests don't work <!-- To editors: "pmap {X,XX} with unreachable process" tests don't work
as root. They may seem to pass due to some Tcl/Expect/DejaGNU as root. They may seem to pass due to some Tcl/Expect/DejaGNU
@ -81,7 +91,8 @@ su tester -c "PATH=$PATH make check"</userinput></screen>
<para>One test named <para>One test named
<literal>ps with output flag bsdtime,cputime,etime,etimes</literal> <literal>ps with output flag bsdtime,cputime,etime,etimes</literal>
is known to fail if the host kernel is not built with is known to fail if the host kernel is not built with
<literal>CONFIG_BSD_PROCESS_ACCT</literal> enabled.</para> <literal>CONFIG_BSD_PROCESS_ACCT</literal> enabled. In
addition, one pgrep test may fail in the chroot environment.</para>
<para>Install the package:</para> <para>Install the package:</para>

View File

@ -88,7 +88,8 @@
limit and 1 SBU (measured when building Binutils pass 1 with one CPU limit and 1 SBU (measured when building Binutils pass 1 with one CPU
core) should be enough. Some tests are flaky, so the test suite will core) should be enough. Some tests are flaky, so the test suite will
automatically re-run failed tests. If a test failed but then passed automatically re-run failed tests. If a test failed but then passed
when re-run, it should be considered as passed.</para> when re-run, it should be considered as passed. One test, test_ssl,
is known to fail in the chroot environment.</para>
<para>Install the package:</para> <para>Install the package:</para>
@ -161,21 +162,21 @@ EOF
<screen><userinput remap="install">install -v -dm755 /usr/share/doc/python-&python-version;/html <screen><userinput remap="install">install -v -dm755 /usr/share/doc/python-&python-version;/html
tar --no-same-owner \ tar --strip-components=1 \
-xvf ../python-&python-version;-docs-html.tar.bz2 --no-same-owner \
cp -R --no-preserve=mode python-&python-version;-docs-html/* \ --no-same-permissions \
/usr/share/doc/python-&python-version;/html</userinput></screen> -C /usr/share/doc/python-&python-version;/html \
-xvf ../python-&python-version;-docs-html.tar.bz2</userinput></screen>
<variablelist> <variablelist>
<title>The meaning of the documentation install commands:</title> <title>The meaning of the documentation install commands:</title>
<varlistentry> <varlistentry>
<term><option>--no-same-owner</option> (tar) and <option>--no-preserve=mode</option> (cp)</term> <term><option>--no-same-owner</option> and <option>--no-same-permissions</option></term>
<listitem> <listitem>
<para>Ensure the installed files have the correct ownership and <para>Ensure the installed files have the correct ownership and
permissions. Without these options, <application>tar</application> permissions. Without these options, <application>tar</application>
will install the package files with the upstream creator's values will install the package files with the upstream creator's values.
and files would have restrictive permissions.
</para> </para>
</listitem> </listitem>
</varlistentry> </varlistentry>

View File

@ -89,7 +89,9 @@ sed -i '/{OLDSUFF}/c:' support/shlib-install</userinput></screen>
<term><parameter>SHLIB_LIBS="-lncursesw"</parameter></term> <term><parameter>SHLIB_LIBS="-lncursesw"</parameter></term>
<listitem> <listitem>
<para>This option forces Readline to link against the <para>This option forces Readline to link against the
<filename class="libraryfile">libncursesw</filename> library.</para> <filename class="libraryfile">libncursesw</filename> library.
For details see the <quote>Shared Libraries</quote> section in the
package's <filename>README</filename> file.</para>
</listitem> </listitem>
</varlistentry> </varlistentry>
@ -99,7 +101,7 @@ sed -i '/{OLDSUFF}/c:' support/shlib-install</userinput></screen>
<para>Install the package:</para> <para>Install the package:</para>
<screen><userinput remap="install">make SHLIB_LIBS="-lncursesw" install</userinput></screen> <screen><userinput remap="install">make install</userinput></screen>
<para>If desired, install the documentation:</para> <para>If desired, install the documentation:</para>

View File

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

View File

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

View File

@ -24,10 +24,15 @@
backup of the LFS system in its current state.</para> backup of the LFS system in its current state.</para>
<para>A <command>strip</command> command with the <para>A <command>strip</command> command with the
<parameter>--strip-unneeded</parameter> option removes all debug symbols <parameter>--strip-unneeded</parameter> option removes all debug symbols from
from a binary or library. It also removes all symbol table entries not a binary or library. It also removes all symbol table entries not normally
needed by the linker (for static libraries) or dynamic linker (for needed by the linker (for static libraries) or dynamic linker (for
dynamically linked binaries and shared libraries).</para> dynamically linked binaries and shared libraries). Using
<parameter>--strip-debug</parameter> does not remove symbol table entries
that may be needed by some applications. The difference between "unneeded"
and "debug" is very small. For example, an unstripped libc.a is 22.4 MB.
After stripping with --strip-debug it is 5.9 MB. Using --strip-unneeded only
reduces the size further to only 5.8 MB.</para>
<!-- TODO: Zstd is better than Zlib for both speed and size. <!-- TODO: Zstd is better than Zlib for both speed and size.
Unfortunately Valgrind does not support Zstd-compressed debug Unfortunately Valgrind does not support Zstd-compressed debug
@ -83,7 +88,7 @@ cd /usr/lib
for LIB in $save_usrlib; do for LIB in $save_usrlib; do
objcopy --only-keep-debug --compress-debug-sections=zlib $LIB $LIB.dbg objcopy --only-keep-debug --compress-debug-sections=zlib $LIB $LIB.dbg
cp $LIB /tmp/$LIB cp $LIB /tmp/$LIB
strip --strip-unneeded /tmp/$LIB strip --strip-debug /tmp/$LIB
objcopy --add-gnu-debuglink=$LIB.dbg /tmp/$LIB objcopy --add-gnu-debuglink=$LIB.dbg /tmp/$LIB
install -vm755 /tmp/$LIB /usr/lib install -vm755 /tmp/$LIB /usr/lib
rm /tmp/$LIB rm /tmp/$LIB
@ -102,14 +107,14 @@ online_usrlib="libbfd-&binutils-version;.so
for BIN in $online_usrbin; do for BIN in $online_usrbin; do
cp /usr/bin/$BIN /tmp/$BIN cp /usr/bin/$BIN /tmp/$BIN
strip --strip-unneeded /tmp/$BIN strip --strip-debug /tmp/$BIN
install -vm755 /tmp/$BIN /usr/bin install -vm755 /tmp/$BIN /usr/bin
rm /tmp/$BIN rm /tmp/$BIN
done done
for LIB in $online_usrlib; do for LIB in $online_usrlib; do
cp /usr/lib/$LIB /tmp/$LIB cp /usr/lib/$LIB /tmp/$LIB
strip --strip-unneeded /tmp/$LIB strip --strip-debug /tmp/$LIB
install -vm755 /tmp/$LIB /usr/lib install -vm755 /tmp/$LIB /usr/lib
rm /tmp/$LIB rm /tmp/$LIB
done done
@ -120,7 +125,7 @@ for i in $(find /usr/lib -type f -name \*.so* ! -name \*dbg) \
case "$online_usrbin $online_usrlib $save_usrlib" in case "$online_usrbin $online_usrlib $save_usrlib" in
*$(basename $i)* ) *$(basename $i)* )
;; ;;
* ) strip --strip-unneeded $i * ) strip --strip-debug $i
;; ;;
esac esac
done done

View File

@ -46,7 +46,9 @@
<screen><userinput remap="configure">./configure --prefix=/usr \ <screen><userinput remap="configure">./configure --prefix=/usr \
--sysconfdir=/etc \ --sysconfdir=/etc \
--runstatedir=/run \ --runstatedir=/run \
--without-logger</userinput></screen> --without-logger \
--disable-static \
--docdir=/usr/share/doc/sysklogd-&sysklogd-version;</userinput></screen>
<para>Compile the package:</para> <para>Compile the package:</para>

View File

@ -45,8 +45,9 @@
<systemitem class="groupname">sgx</systemitem>, from the default udev <systemitem class="groupname">sgx</systemitem>, from the default udev
rules:</para> rules:</para>
<screen><userinput remap="pre">sed -i -e 's/GROUP="render"/GROUP="video"/' \ <screen><userinput remap="pre">sed -e 's/GROUP="render"/GROUP="video"/' \
-e 's/GROUP="sgx", //' rules.d/50-udev-default.rules.in</userinput></screen> -e 's/GROUP="sgx", //' \
-i rules.d/50-udev-default.rules.in</userinput></screen>
<para>Prepare systemd for compilation:</para> <para>Prepare systemd for compilation:</para>
@ -227,7 +228,11 @@ ninja test</userinput></screen>
after initializing the system with systemd. --> after initializing the system with systemd. -->
<para>One test named <literal>systemd:core / test-namespace</literal> <para>One test named <literal>systemd:core / test-namespace</literal>
is known to fail in the LFS chroot environment. Some other tests may is known to fail in the LFS chroot environment. Some other tests may
fail because they depend on various kernel configuration options.</para> fail because they depend on various kernel configuration options.
The test named <literal>systemd:test / test-copy</literal> may time out
due to an I/O congestion with a large parallel job number, but it
would pass if running alone with
<command>meson test test-copy</command>.</para>
<para>Install the package:</para> <para>Install the package:</para>

View File

@ -3,8 +3,8 @@
"http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [ "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
<!ENTITY % general-entities SYSTEM "../general.ent"> <!ENTITY % general-entities SYSTEM "../general.ent">
%general-entities; %general-entities;
<!ENTITY tdbc-ver "1.1.7"> <!ENTITY tdbc-ver "1.1.10">
<!ENTITY itcl-ver "4.2.4"> <!ENTITY itcl-ver "4.3.2">
]> ]>
<sect1 id="ch-system-tcl" role="wrap"> <sect1 id="ch-system-tcl" role="wrap">

View File

@ -48,17 +48,19 @@
<systemitem class="groupname">sgx</systemitem>, from the default udev <systemitem class="groupname">sgx</systemitem>, from the default udev
rules:</para> rules:</para>
<screen><userinput remap="pre">sed -i -e 's/GROUP="render"/GROUP="video"/' \ <screen><userinput remap="pre">sed -e 's/GROUP="render"/GROUP="video"/' \
-e 's/GROUP="sgx", //' rules.d/50-udev-default.rules.in</userinput></screen> -e 's/GROUP="sgx", //' \
-i rules.d/50-udev-default.rules.in</userinput></screen>
<para>Remove one udev rule requiring a full Systemd installation:</para> <para>Remove one udev rule requiring a full Systemd installation:</para>
<screen><userinput remap="pre">sed '/systemd-sysctl/s/^/#/' -i rules.d/99-systemd.rules.in</userinput></screen> <screen><userinput remap="pre">sed -i '/systemd-sysctl/s/^/#/' rules.d/99-systemd.rules.in</userinput></screen>
<para>Adjust the hardcoded paths to network configuration files for the <para>Adjust the hardcoded paths to network configuration files for the
standalone udev installation:</para> standalone udev installation:</para>
<screen><userinput remap="pre">sed '/NETWORK_DIRS/s/systemd/udev/' -i src/basic/path-lookup.h</userinput></screen> <screen><userinput remap="pre">sed -e '/NETWORK_DIRS/s/systemd/udev/' \
-i src/libsystemd/sd-network/network-util.h</userinput></screen>
<para>Prepare Udev for compilation:</para> <para>Prepare Udev for compilation:</para>

View File

@ -128,6 +128,11 @@ su tester -c "make -k check"</userinput></screen>
enabled. enabled.
</para> </para>
<para>
Two other tests, lsfd: SOURCE column and utmp: last, are known to
fail in the chroot environment.
</para>
<para>Install the package:</para> <para>Install the package:</para>
<screen><userinput remap="install">make install</userinput></screen> <screen><userinput remap="install">make install</userinput></screen>

View File

@ -64,9 +64,11 @@
<para>To prepare the tests, ensure that user <para>To prepare the tests, ensure that user
<systemitem class="username">tester</systemitem> can write <systemitem class="username">tester</systemitem> can write
to the source tree:</para> to the source tree and exclude one file containing tests requiring
<command>curl</command> or <command>wget</command>:</para>
<screen><userinput remap="test">chown -R tester .</userinput></screen> <screen><userinput remap="test">chown -R tester .
sed '/test_plugin_glvs/d' -i src/testdir/Make_all.mak</userinput></screen>
<para>Now run the tests as user <systemitem <para>Now run the tests as user <systemitem
class="username">tester</systemitem>:</para> class="username">tester</systemitem>:</para>

View File

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

View File

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

View File

@ -104,6 +104,8 @@ EOF</userinput></screen>
<quote>Default iocharset for FAT</quote> (<option>CONFIG_FAT_DEFAULT_IOCHARSET</option>). <quote>Default iocharset for FAT</quote> (<option>CONFIG_FAT_DEFAULT_IOCHARSET</option>).
There is no way to specify these settings for the There is no way to specify these settings for the
ntfs filesystem at kernel compilation time.</para> ntfs filesystem at kernel compilation time.</para>
<!--
Obsolete since 2011. barrier is the default for both ext3 and ext4.
<para>It is possible to make the ext3 filesystem reliable across power <para>It is possible to make the ext3 filesystem reliable across power
failures for some hard disk types. To do this, add the failures for some hard disk types. To do this, add the
@ -119,5 +121,5 @@ EOF</userinput></screen>
<para>Note: Logical Volume Management (LVM) based partitions cannot use the <para>Note: Logical Volume Management (LVM) based partitions cannot use the
<option>barrier</option> option.</para> <option>barrier</option> option.</para>
-->
</sect1> </sect1>

View File

@ -120,6 +120,7 @@ set timeout=5
insmod part_gpt insmod part_gpt
insmod ext2 insmod ext2
set root=(hd0,2) set root=(hd0,2)
set gfxpayload=1024x768x32
menuentry "GNU/Linux, Linux &linux-version;-lfs-&version;" { menuentry "GNU/Linux, Linux &linux-version;-lfs-&version;" {
linux /vmlinuz-&linux-version;-lfs-&version; root=/dev/sda3 ro linux /vmlinuz-&linux-version;-lfs-&version; root=/dev/sda3 ro
@ -144,6 +145,14 @@ EOF</userinput></screen>
be needed with some rare configurations. be needed with some rare configurations.
</para> </para>
<para>
The <command>set gfxpayload=1024x768x32</command> command sets the
resolution and color depth of the VESA framebuffer to be passed to the
kernel. It's necessary for the kernel SimpleDRM driver to use the
VESA framebuffer. You can use a different resolution or color depth
value which better suits for your monitor.
</para>
<note><para>From <application>GRUB</application>'s perspective, the <note><para>From <application>GRUB</application>'s perspective, the
kernel files are relative to the partition used. If you kernel files are relative to the partition used. If you
used a separate /boot partition, remove /boot from the above used a separate /boot partition, remove /boot from the above

View File

@ -272,6 +272,71 @@
</listitem> </listitem>
</varlistentry> </varlistentry>
<varlistentry>
<term>
<parameter>
Display a user-friendly message when a kernel panic occurs
</parameter>
</term>
<listitem>
<para>This will make the kernel correctly display the message
in case a kernel panic happens and a running DRM driver
supports to do so. Without this, it would be more
difficult to diagnose a panic: if no DRM driver is running,
we'd be on the VGA console which can only hold 24 lines and
the relevant kernel message is often flushed away; if a DRM
driver is running, the display is often completely messed up
on panic. As of Linux-6.12, none of the dedicated drivers for
mainstream GPU models really supports this, but it's supported by
the <quote>Simple framebuffer driver</quote> which runs on the
VESA (or EFI) framebuffer before the dedicated GPU driver is
loaded. If the dedicated GPU driver is built as a module
(instead of a part of the kernel image) and no initramfs is
used, this functionality will work just fine before the root
file system is mounted and it's already enough for providing
information about most LFS configuration errors causing a
panic (for example, an incorrect <parameter>root=</parameter>
setting in <xref linkend='ch-bootable-grub'/>).</para>
</listitem>
</varlistentry>
<varlistentry>
<term>
<parameter>
Panic screen formatter
</parameter>
</term>
<listitem>
<para>Set this <literal>kmsg</literal> to make sure the last
kernel messages lines are displayed when a kernel panic happens.
The default, <literal>user</literal>, would make the kernel show
only a <quote>user friendly</quote> panic message which is not
helpful on diagnostic. The third choice,
<literal>qr_code</literal>, would make the kernel to compress
the last kernel message lines into a QR code and display it.
The QR code can hold more message lines than plain text and it
can be decoded with an external device (like a smart phone).
But it requires a Rust compiler that LFS does not provide.</para>
</listitem>
</varlistentry>
<varlistentry>
<term>
<parameter>
Mark VGA/VBE/EFI FB as generic system framebuffer
</parameter> and
<parameter>Simple framebuffer driver</parameter>
</term>
<listitem>
<para>These allow to use the VESA framebuffer (or the EFI
framebuffer if booting the LFS system via UEFI) as a DRM device.
The VESA framebuffer will be set up by GRUB (or the EFI
framebuffer will be set up by the UEFI firmware), so the DRM panic
handler can function before the GPU-specific DRM driver is
loaded.</para>
</listitem>
</varlistentry>
<varlistentry> <varlistentry>
<term> <term>
<parameter> <parameter>
@ -282,8 +347,8 @@
<listitem> <listitem>
<para>These are needed to display the Linux console on a <para>These are needed to display the Linux console on a
GPU driven by a DRI (Direct Rendering Infrastructure) driver. GPU driven by a DRI (Direct Rendering Infrastructure) driver.
If <option>CONFIG_DRM</option> (Direct Rendering Manager) is As <option>CONFIG_DRM</option> (Direct Rendering Manager) is
enabled, you should enable these two options as well or you'll see enabled, we should enable these two options as well or we'll see
a blank screen once the DRI driver is loaded.</para> a blank screen once the DRI driver is loaded.</para>
</listitem> </listitem>
</varlistentry> </varlistentry>
@ -399,6 +464,26 @@
<command>chown -R 0:0</command> on the <filename <command>chown -R 0:0</command> on the <filename
class="directory">linux-&linux-version;</filename> directory to ensure class="directory">linux-&linux-version;</filename> directory to ensure
all files are owned by user <emphasis>root</emphasis>.</para> all files are owned by user <emphasis>root</emphasis>.</para>
<para>If you are updating the configuration and rebuilding the kernel
from a retained kernel source tree, normally you should
<emphasis role='bold'>not</emphasis> run the
<command>make mrproper</command> command. The command would purge
the <filename>.config</filename> file and all the
<filename class='extension'>.o</filename> files from the previous
build. Despite it's easy to restore <filename>.config</filename> from
the copy in <filename class='directory'>/boot</filename>, purging all
the <filename class='extension'>.o</filename> files is still a waste:
for a simple configuration change, often only a few
<filename class='extension'>.o</filename> files need to be (re)built
and the kernel build system will correctly skip other
<filename class='extension'>.o</filename> files if they are not
purged.</para>
<para>On the other hand, if you've upgraded GCC, you should run
<command>make clean</command> to purge all the
<filename class='extension'>.o</filename> files from the previous
build, or the new build may fail.</para>
</note> </note>
<warning> <warning>
@ -410,17 +495,6 @@
complete.</para> complete.</para>
</warning> </warning>
<warning>
<para>The headers in the system's <filename
class="directory">include</filename> directory (<filename
class="directory">/usr/include</filename>) should
<emphasis>always</emphasis> be the ones against which Glibc was compiled,
that is, the sanitised headers installed in <xref
linkend="ch-tools-linux-headers"/>. Therefore, they should
<emphasis>never</emphasis> be replaced by either the raw kernel headers
or any other kernel sanitized headers.</para>
</warning>
</sect2> </sect2>
<sect2 id="conf-modprobe" role="configuration"> <sect2 id="conf-modprobe" role="configuration">

View File

@ -1 +1 @@
6.10.2 6.13.1

View File

@ -13,7 +13,13 @@ STACKPROTECTOR_STRONG='*'
UEVENT_HELPER=' ' UEVENT_HELPER=' '
DEVTMPFS='*' DEVTMPFS='*'
DEVTMPFS_MOUNT='*' DEVTMPFS_MOUNT='*'
DRM=' *M' SYSFB_SIMPLEFB='*'
DRM='*'
DRM_PANIC='*'
DRM_PANIC_SCREEN='kmsg'
DRM_FBDEV_EMULATION='*'
DRM_SIMPLEDRM='*'
FRAMEBUFFER_CONSOLE='*'
NET='*' NET='*'
INET='*' INET='*'
IPV6='*' IPV6='*'
@ -30,11 +36,3 @@ revision='systemd'
[RT_GROUP_SCHED] [RT_GROUP_SCHED]
value = ' ' value = ' '
comment = 'This may cause some systemd features malfunction' comment = 'This may cause some systemd features malfunction'
[DRM_FBDEV_EMULATION]
value = ' *'
comment = 'If [DRM] is selected as * or M, this must be selected'
[FRAMEBUFFER_CONSOLE]
value = ' *'
comment = 'If [DRM] is selected as * or M, this must be selected'

View File

@ -42,15 +42,19 @@
... [FW_LOADER_USER_HELPER] ... [FW_LOADER_USER_HELPER]
<emphasis role='blue'>F</emphasis>irmware Drivers ---&gt; <emphasis role='blue'>F</emphasis>irmware Drivers ---&gt;
[*] <emphasis role='blue'>E</emphasis>xport DMI identification via sysfs to userspace [DMIID] [*] <emphasis role='blue'>E</emphasis>xport DMI identification via sysfs to userspace [DMIID]
[*] M<emphasis role='blue'>a</emphasis>rk VGA/VBE/EFI FB as generic system framebuffer [SYSFB_SIMPLEFB]
<emphasis role='blue'>G</emphasis>raphics support ---&gt; <emphasis role='blue'>G</emphasis>raphics support ---&gt;
&lt; /*/M&gt; <emphasis role='blue'>D</emphasis>irect Rendering Manager (XFree86 4.1.0 and higher DRI support) ---&gt; &lt;*&gt; <emphasis role='blue'>D</emphasis>irect Rendering Manager (XFree86 4.1.0 and higher DRI support) ---&gt;
... [DRM] ... [DRM]
# If [DRM] is selected as * or M, this must be selected: [*] <emphasis role='blue'>D</emphasis>isplay a user-friendly message when a kernel panic occurs
[ /*] <emphasis role='blue'>E</emphasis>nable legacy fbdev support for your modesetting driver ... [DRM_PANIC]
(kmsg) <emphasis role='blue'>P</emphasis>anic screen formatter [DRM_PANIC_SCREEN]
<emphasis role='blue'>S</emphasis>upported DRM clients ---&gt;
[*] <emphasis role='blue'>E</emphasis>nable legacy fbdev support for your modesetting driver
... [DRM_FBDEV_EMULATION] ... [DRM_FBDEV_EMULATION]
&lt;*&gt; <emphasis role='blue'>S</emphasis>imple framebuffer driver [DRM_SIMPLEDRM]
<emphasis role='blue'>C</emphasis>onsole display driver support ---&gt; <emphasis role='blue'>C</emphasis>onsole display driver support ---&gt;
# If [DRM] is selected as * or M, this must be selected: [*] <emphasis role='blue'>F</emphasis>ramebuffer Console support [FRAMEBUFFER_CONSOLE]
[ /*] <emphasis role='blue'>F</emphasis>ramebuffer Console support [FRAMEBUFFER_CONSOLE]
<emphasis role='blue'>F</emphasis>ile systems ---&gt; <emphasis role='blue'>F</emphasis>ile systems ---&gt;
[*] <emphasis role='blue'>I</emphasis>notify support for userspace [INOTIFY_USER] [*] <emphasis role='blue'>I</emphasis>notify support for userspace [INOTIFY_USER]

View File

@ -12,14 +12,12 @@ STACKPROTECTOR_STRONG='*'
UEVENT_HELPER=' ' UEVENT_HELPER=' '
DEVTMPFS='*' DEVTMPFS='*'
DEVTMPFS_MOUNT='*' DEVTMPFS_MOUNT='*'
DRM=' *M' SYSFB_SIMPLEFB='*'
DRM='*'
DRM_PANIC='*'
DRM_PANIC_SCREEN='kmsg'
DRM_FBDEV_EMULATION='*'
DRM_SIMPLEDRM='*'
FRAMEBUFFER_CONSOLE='*'
revision='sysv' revision='sysv'
[DRM_FBDEV_EMULATION]
value = ' *'
comment = 'If [DRM] is selected as * or M, this must be selected'
[FRAMEBUFFER_CONSOLE]
value = ' *'
comment = 'If [DRM] is selected as * or M, this must be selected'

View File

@ -28,12 +28,17 @@
[*] M<emphasis role='blue'>a</emphasis>intain a devtmpfs filesystem to mount at /dev [DEVTMPFS] [*] M<emphasis role='blue'>a</emphasis>intain a devtmpfs filesystem to mount at /dev [DEVTMPFS]
[*] <emphasis role='blue'>A</emphasis>utomount devtmpfs at /dev, after the kernel mounted the rootfs [*] <emphasis role='blue'>A</emphasis>utomount devtmpfs at /dev, after the kernel mounted the rootfs
... [DEVTMPFS_MOUNT] ... [DEVTMPFS_MOUNT]
<emphasis role='blue'>F</emphasis>irmware Drivers ---&gt;
[*] M<emphasis role='blue'>a</emphasis>rk VGA/VBE/EFI FB as generic system framebuffer [SYSFB_SIMPLEFB]
<emphasis role='blue'>G</emphasis>raphics support ---&gt; <emphasis role='blue'>G</emphasis>raphics support ---&gt;
&lt; /*/M&gt; <emphasis role='blue'>D</emphasis>irect Rendering Manager (XFree86 4.1.0 and higher DRI support) ---&gt; &lt;*&gt; <emphasis role='blue'>D</emphasis>irect Rendering Manager (XFree86 4.1.0 and higher DRI support) ---&gt;
... [DRM] ... [DRM]
# If [DRM] is selected as * or M, this must be selected: [*] <emphasis role='blue'>D</emphasis>isplay a user-friendly message when a kernel panic occurs
[ /*] <emphasis role='blue'>E</emphasis>nable legacy fbdev support for your modesetting driver ... [DRM_PANIC]
(kmsg) <emphasis role='blue'>P</emphasis>anic screen formatter [DRM_PANIC_SCREEN]
<emphasis role='blue'>S</emphasis>upported DRM clients ---&gt;
[*] <emphasis role='blue'>E</emphasis>nable legacy fbdev support for your modesetting driver
... [DRM_FBDEV_EMULATION] ... [DRM_FBDEV_EMULATION]
&lt;*&gt; <emphasis role='blue'>S</emphasis>imple framebuffer driver [DRM_SIMPLEDRM]
<emphasis role='blue'>C</emphasis>onsole display driver support ---&gt; <emphasis role='blue'>C</emphasis>onsole display driver support ---&gt;
# If [DRM] is selected as * or M, this must be selected: [*] <emphasis role='blue'>F</emphasis>ramebuffer Console support [FRAMEBUFFER_CONSOLE]</screen>
[ /*] <emphasis role='blue'>F</emphasis>ramebuffer Console support [FRAMEBUFFER_CONSOLE]</screen>

View File

@ -54,7 +54,7 @@
<para> <para>
In addition to the above, there is a set of applications for system In addition to the above, there is a set of applications for system
management for all kinds of systems. These applications are all in the management for all kinds of systems. These applications are all in the
BLFS book. Not all packages are needed in every environments. For BLFS book. Not all packages are needed in every environment. For
example <ulink url="&blfs-book;basicnet/dhcpcd.html">dhcpcd</ulink>, is example <ulink url="&blfs-book;basicnet/dhcpcd.html">dhcpcd</ulink>, is
not normally appropriate for a server and <ulink not normally appropriate for a server and <ulink
url="&blfs-book;basicnet/wireless_tools.html">wireless_tools</ulink>, url="&blfs-book;basicnet/wireless_tools.html">wireless_tools</ulink>,

View File

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

View File

@ -62,7 +62,7 @@ rem = rem.symmetric_difference(upd)
ticket = {} ticket = {}
security = set() security = set()
url = 'https://wiki.linuxfromscratch.org/lfs/report/1?format=tab' url = 'https://wiki.linuxfromscratch.org/lfs/query?status=!closed&order=priority&format=tab'
tsv = urlopen(url) tsv = urlopen(url)
for i in tsv: for i in tsv:
fields = i.decode().split('\t') fields = i.decode().split('\t')

View File

@ -7,9 +7,9 @@
<!ENTITY % rc "IGNORE"> <!-- set to INCLUDE for rc, <!ENTITY % rc "IGNORE"> <!-- set to INCLUDE for rc,
set to IGNORE for development or set to IGNORE for development or
release --> release -->
<!ENTITY % relnum "11.3"><!-- must be given for release or rc --> <!ENTITY % relnum "12.3"><!-- must be given for release or rc -->
<!ENTITY % reldate "March 1st, 2023"><!-- must ve given for release or rc --> <!ENTITY % reldate "March 5th, 2025"><!-- must ve given for release or rc -->
<!ENTITY % crdate "1999-2022"><!-- must ve given for release or rc --> <!ENTITY % crdate "1999-2025"><!-- must ve given for release or rc -->
<!ENTITY % rcnum "0"><!-- must be given only for rc --> <!ENTITY % rcnum "0"><!-- must be given only for rc -->
<!-- ================================================================== --> <!-- ================================================================== -->
<!-- Do not change anything below unless the www or book layouts change --> <!-- Do not change anything below unless the www or book layouts change -->
@ -34,6 +34,7 @@
&patches-root;, &patches-root;,
&donwloads-root;, and &donwloads-root;, and
&test-results; --> &test-results; -->
<!ENTITY os-release-type "development"> <!-- used by /etc/os-release -->
]]><!-- End %development --> ]]><!-- End %development -->
<![ %release; [ <![ %release; [
@ -43,7 +44,7 @@
]]> ]]>
<![ %systemd; [ <![ %systemd; [
<!ENTITY version "%relnum;-systemd"> <!ENTITY version "%relnum;-systemd">
<!ENTITY short-version "stable-systemd"> <!-- Used below in &blfs-book; --> <!ENTITY short-version "%relnum;-systemd"> <!-- Used below in &blfs-book; -->
]]> ]]>
<!ENTITY errata "&lfs-root;lfs/errata/&version;/"> <!ENTITY errata "&lfs-root;lfs/errata/&version;/">
<!ENTITY generic-version "%relnum;"> <!-- Used below in <!ENTITY generic-version "%relnum;"> <!-- Used below in
@ -52,6 +53,7 @@
&test-results; --> &test-results; -->
<!ENTITY releasedate "%reldate;"> <!ENTITY releasedate "%reldate;">
<!ENTITY copyrightdate "%crdate;"> <!ENTITY copyrightdate "%crdate;">
<!ENTITY os-release-type "stable"> <!-- used by /etc/os-release -->
]]> ]]>
<![ %rc; [ <![ %rc; [
@ -70,6 +72,7 @@
&test-results; --> &test-results; -->
<!ENTITY releasedate "%reldate;"> <!ENTITY releasedate "%reldate;">
<!ENTITY copyrightdate "%crdate;"> <!ENTITY copyrightdate "%crdate;">
<!ENTITY os-release-type "development"> <!-- used by /etc/os-release -->
]]> ]]>
<![ %sysv; [ <![ %sysv; [
@ -92,9 +95,11 @@
<!ENTITY test-results "&lfs-root;lfs/build-logs/&generic-version;/"> <!ENTITY test-results "&lfs-root;lfs/build-logs/&generic-version;/">
<!ENTITY secadv "&lfs-root;lfs/advisories/"> <!ENTITY secadv "&lfs-root;lfs/advisories/">
<!-- 4.19 EOL is Dec 2024 <!-- 5.4 EOL is Dec 2025
so for LFS 12.3 we may consider moving to 5.4 --> so for LFS 12.5 we may consider moving to 5.10.
<!ENTITY min-kernel "4.19"> Keep an extra whitespace here to align the trailing "\" in glibc
configure command if y < 10 in x.y. -->
<!ENTITY min-kernel "5.4 ">
<!-- <!--
<!ENTITY patches-rootd "&lfs-root;patches/lfs/&generic-versiond;/"> <!ENTITY patches-rootd "&lfs-root;patches/lfs/&generic-versiond;/">
@ -129,6 +134,8 @@
<!ENTITY root "<systemitem class='username'>root</systemitem>"> <!ENTITY root "<systemitem class='username'>root</systemitem>">
<!ENTITY lfs-user "<systemitem class='username'>lfs</systemitem>"> <!ENTITY lfs-user "<systemitem class='username'>lfs</systemitem>">
<!ENTITY lfs-username "<userinput remap='user'>lfs</userinput>">
<!ENTITY lfs-groupname "<userinput remap='group'>lfs</userinput>">
<!ENTITY devtmpfs "<systemitem class='filesystem'>devtmpfs</systemitem>"> <!ENTITY devtmpfs "<systemitem class='filesystem'>devtmpfs</systemitem>">
<!ENTITY fstab "<filename>/etc/fstab</filename>"> <!ENTITY fstab "<filename>/etc/fstab</filename>">
<!ENTITY boot-dir "<filename class='directory'>/boot</filename>"> <!ENTITY boot-dir "<filename class='directory'>/boot</filename>">

View File

@ -11,12 +11,9 @@ $exceptions = array();
//$exceptions[ 'gmp' ] = "UPDIR=/.*(gmp-\d[\d\.-]*\d).*/:DOWNDIR="; //$exceptions[ 'gmp' ] = "UPDIR=/.*(gmp-\d[\d\.-]*\d).*/:DOWNDIR=";
$regex = array(); $regex = array();
//$regex[ 'bzip2' ] = "/^.*current version is ([\d\.]+).*$/";
$regex[ 'intltool' ] = "/^.*Latest version is (\d[\d\.]+\d).*$/"; $regex[ 'intltool' ] = "/^.*Latest version is (\d[\d\.]+\d).*$/";
$regex[ 'less' ] = "/^.*current released version is less-(\d+).*$/"; $regex[ 'less' ] = "/^.*current released version is less-(\d+).*$/";
$regex[ 'mpfr' ] = "/^mpfr-([\d\.]+)\.tar.*$/"; $regex[ 'mpfr' ] = "/^mpfr-([\d\.]+)\.tar.*$/";
//$regex[ 'Python' ] = "/^.*Latest Python 3.*Python (3[\d\.]+\d).*$/";
//$regex[ 'sysvinit' ] = "/^.*sysvinit-([\d\.]+)dsf\.tar.*$/";
$regex[ 'tzdata' ] = "/^.*tzdata([\d]+[a-z]).*$/"; $regex[ 'tzdata' ] = "/^.*tzdata([\d]+[a-z]).*$/";
$regex[ 'xz' ] = "/^.*xz-([\d\.]*\d).*$/"; $regex[ 'xz' ] = "/^.*xz-([\d\.]*\d).*$/";
$regex[ 'zlib' ] = "/^.*zlib ([\d\.]*\d).*$/"; $regex[ 'zlib' ] = "/^.*zlib ([\d\.]*\d).*$/";
@ -118,44 +115,43 @@ function get_packages( $package, $dirpath )
global $exceptions; global $exceptions;
global $regex; global $regex;
//if ( $package != "psmisc" ) return 0; // debug //if ( $package != "wheel" ) return 0; // debug
if ( $package == "bc" ) $dirpath = github("gavinhoward/bc"); if ( $package == "bc" ) $dirpath = github("gavinhoward/bc");
if ( $package == "check" ) $dirpath = github("libcheck/check");
if ( $package == "e2fsprogs" ) $dirpath = "https://sourceforge.net/projects/e2fsprogs/files/e2fsprogs"; if ( $package == "e2fsprogs" ) $dirpath = "https://sourceforge.net/projects/e2fsprogs/files/e2fsprogs";
if ( $package == "expat" ) $dirpath = "https://sourceforge.net/projects/expat/files"; if ( $package == "expat" ) $dirpath = "https://sourceforge.net/projects/expat/files";
if ( $package == "elfutils" ) $dirpath = "https://sourceware.org/ftp/elfutils"; if ( $package == "elfutils" ) $dirpath = "https://sourceware.org/ftp/elfutils";
if ( $package == "expect" ) $dirpath = "https://sourceforge.net/projects/expect/files"; if ( $package == "expect" ) $dirpath = "https://sourceforge.net/projects/expect/files";
if ( $package == "file" ) $dirpath = "https://github.com/file/file/tags"; if ( $package == "file" ) $dirpath = "https://github.com/file/file/tags";
if ( $package == "flex" ) $dirpath = github("westes/flex"); if ( $package == "flex" ) $dirpath = github("westes/flex");
if ( $package == "flit_core" ) $dirpath = "https://pypi.org/project/flit-core/"; if ( $package == "flit_core" ) $dirpath = "https://pypi.org/rss/project/flit-core/releases.xml";
if ( $package == "setuptools" ) $dirpath = "https://pypi.org/project/setuptools/";
if ( $package == "gcc" ) $dirpath = max_parent( $dirpath, "gcc-" ); if ( $package == "gcc" ) $dirpath = max_parent( $dirpath, "gcc-" );
if ( $package == "iana-etc" ) $dirpath = github("Mic92/iana-etc"); if ( $package == "iana-etc" ) $dirpath = github("Mic92/iana-etc");
if ( $package == "intltool" ) $dirpath = "https://launchpad.net/intltool/trunk"; if ( $package == "intltool" ) $dirpath = "https://launchpad.net/intltool/trunk";
if ( $package == "jinja" ) $dirpath = "https://pypi.org/rss/project/jinja2/releases.xml";
if ( $package == "libffi" ) $dirpath = github("libffi/libffi"); if ( $package == "libffi" ) $dirpath = github("libffi/libffi");
if ( $package == "libxcrypt" ) $dirpath = github("besser82/libxcrypt"); if ( $package == "libxcrypt" ) $dirpath = github("besser82/libxcrypt");
if ( $package == "lz4" ) $dirpath = github("lz4/lz4"); if ( $package == "lz4" ) $dirpath = github("lz4/lz4");
if ( $package == "markupsafe" ) $dirpath = "https://pypi.org/rss/project/markupsafe/releases.xml";
if ( $package == "meson" ) $dirpath = github("mesonbuild/meson"); if ( $package == "meson" ) $dirpath = github("mesonbuild/meson");
if ( $package == "mpc" ) $dirpath = "https://ftp.gnu.org/gnu/mpc"; if ( $package == "mpc" ) $dirpath = "https://ftp.gnu.org/gnu/mpc";
if ( $package == "mpfr" ) $dirpath = "https://mpfr.loria.fr/mpfr-current"; if ( $package == "mpfr" ) $dirpath = "https://mpfr.loria.fr/mpfr-current";
if ( $package == "ncurses" ) $dirpath = "https://invisible-mirror.net/archives/ncurses"; if ( $package == "ncurses" ) $dirpath = "https://invisible-mirror.net/archives/ncurses";
if ( $package == "ninja" ) $dirpath = github("ninja-build/ninja"); if ( $package == "ninja" ) $dirpath = github("ninja-build/ninja");
if ( $package == "openssl" ) $dirpath = github("openssl/openssl"); if ( $package == "openssl" ) $dirpath = github("openssl/openssl");
if ( $package == "packaging" ) $dirpath = "https://pypi.org/rss/project/packaging/releases.xml";
if ( $package == "procps-ng" ) $dirpath = "https://gitlab.com/procps-ng/procps/-/tags"; if ( $package == "procps-ng" ) $dirpath = "https://gitlab.com/procps-ng/procps/-/tags";
if ( $package == "psmisc" ) $dirpath = "https://gitlab.com/psmisc/psmisc/-/tags"; if ( $package == "psmisc" ) $dirpath = "https://gitlab.com/psmisc/psmisc/-/tags";
if ( $package == "Python" ) $dirpath = "https://www.python.org/downloads/source/"; if ( $package == "Python" ) $dirpath = "https://www.python.org/downloads/source/";
if ( $package == "setuptools" ) $dirpath = "https://pypi.org/rss/project/setuptools/releases.xml";
if ( $package == "shadow" ) $dirpath = github("shadow-maint/shadow"); if ( $package == "shadow" ) $dirpath = github("shadow-maint/shadow");
if ( $package == "sysvinit" ) $dirpath = github("slicer69/sysvinit"); if ( $package == "sysvinit" ) $dirpath = github("slicer69/sysvinit");
if ( $package == "MarkupSafe" ) $dirpath = "https://pypi.python.org/pypi/MarkupSafe/";
if ( $package == "jinja" ) $dirpath = "https://pypi.python.org/pypi/Jinja2/";
if ( $package == "sysklogd" ) $dirpath = github("troglobit/sysklogd"); if ( $package == "sysklogd" ) $dirpath = github("troglobit/sysklogd");
if ( $package == "systemd" ) $dirpath = github("systemd/systemd"); if ( $package == "systemd" ) $dirpath = github("systemd/systemd");
//if ( $package == "tcl" ) $dirpath = "https://sourceforge.net/projects/tcl/files";
if ( $package == "tcl" ) $dirpath = "https://www.tcl.tk/software/tcltk/download.html"; if ( $package == "tcl" ) $dirpath = "https://www.tcl.tk/software/tcltk/download.html";
if ( $package == "util-linux" ) $dirpath = max_parent( $dirpath, "v." ); if ( $package == "util-linux" ) $dirpath = max_parent( $dirpath, "v." );
if ( $package == "vim" ) $dirpath = "https://github.com/vim/vim/tags"; if ( $package == "vim" ) $dirpath = "https://github.com/vim/vim/tags";
if ( $package == "wheel" ) $dirpath = "https://pypi.org/project/wheel/#files"; if ( $package == "wheel" ) $dirpath = "https://pypi.org/rss/project/wheel/releases.xml";
if ( $package == "xz" ) $dirpath = github("tukaani-project/xz"); if ( $package == "xz" ) $dirpath = github("tukaani-project/xz");
if ( $package == "zlib" ) $dirpath = "https://www.zlib.net"; if ( $package == "zlib" ) $dirpath = "https://www.zlib.net";
if ( $package == "zstd" ) $dirpath = github("facebook/zstd"); if ( $package == "zstd" ) $dirpath = github("facebook/zstd");
@ -236,7 +232,7 @@ if ( $package == "zstd" ) $dirpath = github("facebook/zstd");
} }
if ( $package == "tcl" ) if ( $package == "tcl" )
return find_max( $lines, "/tcl\d/", "/^.*tcl(\d\.[\d\.]*\d)-src.*$/" ); return find_max( $lines, "/tcl8/", "/^.*tcl(\d\.[\d\.]*\d)-src.*$/" );
if ( $package == "gmp" ) if ( $package == "gmp" )
return find_max( $lines, "/$package/", "/^.*$package-([\d\._]*\d[a-z]?).tar.*$/" ); return find_max( $lines, "/$package/", "/^.*$package-([\d\._]*\d[a-z]?).tar.*$/" );
@ -250,11 +246,25 @@ if ( $package == "zstd" ) $dirpath = github("facebook/zstd");
return str_replace( "_", ".", $max ); return str_replace( "_", ".", $max );
} }
# Python modules
if ( $package == "flit_core" ) if ( $package == "flit_core" )
return find_max( $lines, "/flit-core /", "/^.*flit-core ([\d\.]+)$/" ); return find_max( $lines, "/flit-core\/\d/", "/^.*flit-core\/([\d\.]+).*$/" );
if ( $package == "setuptools" ) if ( $package == "setuptools" )
return find_max( $lines, "/setuptools /", "/^.*setuptools ([\d\.]+)$/" ); return find_max( $lines, "/setuptools\/\d/", "/^.*setuptools\/([\d\.]+).*$/" );
if ( $package == "markupsafe" )
return find_max( $lines, "/markupsafe\/\d/", "/^.*markupsafe\/([\d\.]+).*$/" );
if ( $package == "jinja" )
return find_max( $lines, "/jinja2\/\d/", "/^.*jinja2\/([\d\.]+).*$/" );
if ( $package == "wheel" )
return find_max( $lines, "/wheel\/\d/", "/^.*wheel\/([\d\.]+).*$/" );
# End Python modules
if ( $package == "packaging" )
return find_max( $lines, "/packaging/", "/^.*^.*packaging.([\d\.]+\d)\/.*$/" );
if ( $package == "procps-ng" ) if ( $package == "procps-ng" )
return find_max( $lines, "/v\d/", "/^.*v([\d\.]+)$/" ); return find_max( $lines, "/v\d/", "/^.*v([\d\.]+)$/" );
@ -265,9 +275,6 @@ if ( $package == "zstd" ) $dirpath = github("facebook/zstd");
if ( $package == "grub" ) if ( $package == "grub" )
return find_max( $lines, "/grub/", "/^.*grub-([\d\.]+).tar.xz.*$/" ); return find_max( $lines, "/grub/", "/^.*grub-([\d\.]+).tar.xz.*$/" );
if ( $package == "jinja" )
return find_max( $lines, "/Jinja/", "/^.*Jinja2 ([\d\.]+).*$/" );
if ( $package == "lz4" ) if ( $package == "lz4" )
return find_max( $lines, "/tag_name/", '/^.*v([\d\.]+).*$/' ); return find_max( $lines, "/tag_name/", '/^.*v([\d\.]+).*$/' );

View File

@ -18,7 +18,7 @@
<!ENTITY acl-url "&savannah;/releases/acl/acl-&acl-version;.tar.xz"> <!ENTITY acl-url "&savannah;/releases/acl/acl-&acl-version;.tar.xz">
<!ENTITY acl-md5 "590765dee95907dbc3c856f7255bd669"> <!ENTITY acl-md5 "590765dee95907dbc3c856f7255bd669">
<!ENTITY acl-home "&savannah-nongnu;/projects/acl"> <!ENTITY acl-home "&savannah-nongnu;/projects/acl">
<!ENTITY acl-fin-du "6.3 MB"> <!ENTITY acl-fin-du "6.5 MB">
<!ENTITY acl-fin-sbu "less than 0.1 SBU"> <!ENTITY acl-fin-sbu "less than 0.1 SBU">
<!ENTITY attr-version "2.5.2"> <!ENTITY attr-version "2.5.2">
@ -35,7 +35,7 @@
<!ENTITY autoconf-md5 "1be79f7106ab6767f18391c5e22be701"> <!ENTITY autoconf-md5 "1be79f7106ab6767f18391c5e22be701">
<!ENTITY autoconf-home "&gnu-software;autoconf/"> <!ENTITY autoconf-home "&gnu-software;autoconf/">
<!ENTITY autoconf-fin-du "25 MB"> <!ENTITY autoconf-fin-du "25 MB">
<!ENTITY autoconf-fin-sbu-tests "1.8"> <!ENTITY autoconf-fin-sbu-tests "0.4">
<!ENTITY autoconf-fin-sbu "less than 0.1 SBU (about &autoconf-fin-sbu-tests; SBU with tests)"> <!ENTITY autoconf-fin-sbu "less than 0.1 SBU (about &autoconf-fin-sbu-tests; SBU with tests)">
<!ENTITY automake-version "1.17"> <!ENTITY automake-version "1.17">
@ -47,35 +47,35 @@
<!ENTITY automake-fin-du "121 MB"> <!ENTITY automake-fin-du "121 MB">
<!ENTITY automake-fin-sbu "less than 0.1 SBU (about 1.1 SBU with tests)"> <!ENTITY automake-fin-sbu "less than 0.1 SBU (about 1.1 SBU with tests)">
<!ENTITY bash-version "5.2.32"> <!ENTITY bash-version "5.2.37">
<!ENTITY bash-size "10,697 KB"> <!ENTITY bash-size "10,868 KB">
<!ENTITY bash-url "&gnu;bash/bash-&bash-version;.tar.gz"> <!ENTITY bash-url "&gnu;bash/bash-&bash-version;.tar.gz">
<!ENTITY bash-md5 "f204835b2e06c06e37b5ad776ff907f4"> <!ENTITY bash-md5 "9c28f21ff65de72ca329c1779684a972">
<!ENTITY bash-home "&gnu-software;bash/"> <!ENTITY bash-home "&gnu-software;bash/">
<!ENTITY bash-tmp-du "67 MB"> <!ENTITY bash-tmp-du "68 MB">
<!ENTITY bash-tmp-sbu "0.2 SBU"> <!ENTITY bash-tmp-sbu "0.2 SBU">
<!ENTITY bash-fin-du "52 MB"> <!ENTITY bash-fin-du "53 MB">
<!ENTITY bash-fin-sbu "1.4 SBU"> <!ENTITY bash-fin-sbu "1.4 SBU">
<!ENTITY bc-version "6.7.6"> <!ENTITY bc-version "7.0.3">
<!ENTITY bc-size "463 KB"> <!ENTITY bc-size "464 KB">
<!ENTITY bc-url "https://github.com/gavinhoward/bc/releases/download/&bc-version;/bc-&bc-version;.tar.xz"> <!ENTITY bc-url "https://github.com/gavinhoward/bc/releases/download/&bc-version;/bc-&bc-version;.tar.xz">
<!ENTITY bc-md5 "a47aa5e4e7395fbcd159a9228613b97b"> <!ENTITY bc-md5 "ad4db5a0eb4fdbb3f6813be4b6b3da74">
<!ENTITY bc-home "https://git.gavinhoward.com/gavin/bc"> <!ENTITY bc-home "https://github.com/gavinhoward">
<!ENTITY bc-fin-du "7.8 MB"> <!ENTITY bc-fin-du "7.8 MB">
<!ENTITY bc-fin-sbu "less than 0.1 SBU"> <!ENTITY bc-fin-sbu "less than 0.1 SBU">
<!ENTITY binutils-version "2.43.1"> <!ENTITY binutils-version "2.44">
<!ENTITY binutils-size "27,514 KB"> <!ENTITY binutils-size "26,647 KB">
<!ENTITY binutils-url "https://sourceware.org/pub/binutils/releases/binutils-&binutils-version;.tar.xz"> <!ENTITY binutils-url "https://sourceware.org/pub/binutils/releases/binutils-&binutils-version;.tar.xz">
<!ENTITY binutils-md5 "9202d02925c30969d1917e4bad5a2320"> <!ENTITY binutils-md5 "49912ce774666a30806141f106124294">
<!ENTITY binutils-home "&gnu-software;binutils/"> <!ENTITY binutils-home "&gnu-software;binutils/">
<!ENTITY binutils-tmpp1-du "677 MB"> <!ENTITY binutils-tmpp1-du "677 MB">
<!ENTITY binutils-tmpp1-sbu "1 SBU"> <!ENTITY binutils-tmpp1-sbu "1 SBU">
<!ENTITY binutils-tmpp2-du "549 MB"> <!ENTITY binutils-tmpp2-du "539 MB">
<!ENTITY binutils-tmpp2-sbu "0.4 SBU"> <!ENTITY binutils-tmpp2-sbu "0.4 SBU">
<!ENTITY binutils-fin-du "2.7 GB"> <!ENTITY binutils-fin-du "819 MB">
<!ENTITY binutils-fin-sbu "2.0 SBU"> <!ENTITY binutils-fin-sbu "1.6 SBU">
<!ENTITY libsframe-version "1.0.0"> <!ENTITY libsframe-version "1.0.0">
<!ENTITY bison-version "3.8.2"> <!ENTITY bison-version "3.8.2">
@ -83,10 +83,10 @@
<!ENTITY bison-url "&gnu;bison/bison-&bison-version;.tar.xz"> <!ENTITY bison-url "&gnu;bison/bison-&bison-version;.tar.xz">
<!ENTITY bison-md5 "c28f119f405a2304ff0a7ccdcc629713"> <!ENTITY bison-md5 "c28f119f405a2304ff0a7ccdcc629713">
<!ENTITY bison-home "&gnu-software;bison/"> <!ENTITY bison-home "&gnu-software;bison/">
<!ENTITY bison-tmp-du "57 MB"> <!ENTITY bison-tmp-du "58 MB">
<!ENTITY bison-tmp-sbu "0.2 SBU"> <!ENTITY bison-tmp-sbu "0.2 SBU">
<!ENTITY bison-fin-du "62 MB"> <!ENTITY bison-fin-du "62 MB">
<!ENTITY bison-fin-sbu "2.2 SBU"> <!ENTITY bison-fin-sbu "2.1 SBU">
<!ENTITY bzip2-version "1.0.8"> <!ENTITY bzip2-version "1.0.8">
<!ENTITY bzip2-size "792 KB"> <!ENTITY bzip2-size "792 KB">
@ -96,30 +96,22 @@
<!ENTITY bzip2-fin-du "7.2 MB"> <!ENTITY bzip2-fin-du "7.2 MB">
<!ENTITY bzip2-fin-sbu "less than 0.1 SBU"> <!ENTITY bzip2-fin-sbu "less than 0.1 SBU">
<!ENTITY check-version "0.15.2"> <!ENTITY coreutils-version "9.7">
<!ENTITY check-size "760 KB"> <!ENTITY coreutils-size "6,015 KB">
<!ENTITY check-url "&github;/libcheck/check/releases/download/&check-version;/check-&check-version;.tar.gz">
<!ENTITY check-md5 "50fcafcecde5a380415b12e9c574e0b2">
<!ENTITY check-home "https://libcheck.github.io/check">
<!ENTITY check-fin-du "11 MB">
<!ENTITY check-fin-sbu "0.1 SBU (about 2.1 SBU with tests)">
<!ENTITY coreutils-version "9.5">
<!ENTITY coreutils-size "5,867 KB">
<!ENTITY coreutils-url "&gnu;coreutils/coreutils-&coreutils-version;.tar.xz"> <!ENTITY coreutils-url "&gnu;coreutils/coreutils-&coreutils-version;.tar.xz">
<!ENTITY coreutils-md5 "e99adfa059a63db3503cc71f3d151e31"> <!ENTITY coreutils-md5 "6b7285faf7d5eb91592bdd689270d3f1">
<!ENTITY coreutils-home "&gnu-software;coreutils/"> <!ENTITY coreutils-home "&gnu-software;coreutils/">
<!ENTITY coreutils-tmp-du "175 MB"> <!ENTITY coreutils-tmp-du "181 MB">
<!ENTITY coreutils-tmp-sbu "0.3 SBU"> <!ENTITY coreutils-tmp-sbu "0.3 SBU">
<!ENTITY coreutils-fin-du "173 MB"> <!ENTITY coreutils-fin-du "182 MB">
<!ENTITY coreutils-fin-sbu "1.1 SBU"> <!ENTITY coreutils-fin-sbu "1.2 SBU">
<!ENTITY dbus-version "1.14.10"> <!ENTITY dbus-version "1.16.2">
<!ENTITY dbus-size "1,344 KB"> <!ENTITY dbus-size "1,090 KB">
<!ENTITY dbus-url "https://dbus.freedesktop.org/releases/dbus/dbus-&dbus-version;.tar.xz"> <!ENTITY dbus-url "https://dbus.freedesktop.org/releases/dbus/dbus-&dbus-version;.tar.xz">
<!ENTITY dbus-md5 "46070a3487817ff690981f8cd2ba9376"> <!ENTITY dbus-md5 "97832e6f0a260936d28536e5349c22e5">
<!ENTITY dbus-home "https://www.freedesktop.org/wiki/Software/dbus"> <!ENTITY dbus-home "https://www.freedesktop.org/wiki/Software/dbus">
<!ENTITY dbus-fin-du "19 MB"> <!ENTITY dbus-fin-du "17 MB">
<!ENTITY dbus-fin-sbu "0.1 SBU"> <!ENTITY dbus-fin-sbu "0.1 SBU">
<!ENTITY dejagnu-version "1.6.3"> <!ENTITY dejagnu-version "1.6.3">
@ -130,38 +122,38 @@
<!ENTITY dejagnu-tmp-du "6.9 MB"> <!ENTITY dejagnu-tmp-du "6.9 MB">
<!ENTITY dejagnu-tmp-sbu "less than 0.1 SBU"> <!ENTITY dejagnu-tmp-sbu "less than 0.1 SBU">
<!ENTITY diffutils-version "3.10"> <!ENTITY diffutils-version "3.12">
<!ENTITY diffutils-size "1,587 KB"> <!ENTITY diffutils-size "1,894 KB">
<!ENTITY diffutils-url "&gnu;diffutils/diffutils-&diffutils-version;.tar.xz"> <!ENTITY diffutils-url "&gnu;diffutils/diffutils-&diffutils-version;.tar.xz">
<!ENTITY diffutils-md5 "2745c50f6f4e395e7b7d52f902d075bf"> <!ENTITY diffutils-md5 "d1b18b20868fb561f77861cd90b05de4">
<!ENTITY diffutils-home "&gnu-software;diffutils/"> <!ENTITY diffutils-home "&gnu-software;diffutils/">
<!ENTITY diffutils-tmp-du "29 MB"> <!ENTITY diffutils-tmp-du "35 MB">
<!ENTITY diffutils-tmp-sbu "0.1 SBU"> <!ENTITY diffutils-tmp-sbu "0.1 SBU">
<!ENTITY diffutils-fin-du "42 MB"> <!ENTITY diffutils-fin-du "50 MB">
<!ENTITY diffutils-fin-sbu "0.3 SBU"> <!ENTITY diffutils-fin-sbu "0.4 SBU">
<!ENTITY e2fsprogs-version "1.47.1"> <!ENTITY e2fsprogs-version "1.47.2">
<!ENTITY e2fsprogs-size "9,720 KB"> <!ENTITY e2fsprogs-size "9,763 KB">
<!ENTITY e2fsprogs-url "https://downloads.sourceforge.net/project/e2fsprogs/e2fsprogs/v&e2fsprogs-version;/e2fsprogs-&e2fsprogs-version;.tar.gz"> <!ENTITY e2fsprogs-url "https://downloads.sourceforge.net/project/e2fsprogs/e2fsprogs/v&e2fsprogs-version;/e2fsprogs-&e2fsprogs-version;.tar.gz">
<!ENTITY e2fsprogs-md5 "75e6d1353cbe6d5728a98fb0267206cb"> <!ENTITY e2fsprogs-md5 "752e5a3ce19aea060d8a203f2fae9baa">
<!ENTITY e2fsprogs-home "https://e2fsprogs.sourceforge.net/"> <!ENTITY e2fsprogs-home "https://e2fsprogs.sourceforge.net/">
<!ENTITY e2fsprogs-fin-du "98 MB"> <!ENTITY e2fsprogs-fin-du "99 MB">
<!ENTITY e2fsprogs-fin-sbu "2.4 SBU on a spinning disk, 0.5 SBU on an SSD"> <!ENTITY e2fsprogs-fin-sbu "2.4 SBU on a spinning disk, 0.5 SBU on an SSD">
<!ENTITY elfutils-version "0.191"> <!-- libelf --> <!ENTITY elfutils-version "0.192"> <!-- libelf -->
<!ENTITY elfutils-size "9,092 KB"> <!ENTITY elfutils-size "11,635 KB">
<!ENTITY elfutils-url "https://sourceware.org/ftp/elfutils/&elfutils-version;/elfutils-&elfutils-version;.tar.bz2"> <!ENTITY elfutils-url "https://sourceware.org/ftp/elfutils/&elfutils-version;/elfutils-&elfutils-version;.tar.bz2">
<!ENTITY elfutils-md5 "636547248fb3fae58ec48030298d3ef7"> <!ENTITY elfutils-md5 "a6bb1efc147302cfc15b5c2b827f186a">
<!ENTITY elfutils-home "https://sourceware.org/elfutils/"> <!ENTITY elfutils-home "https://sourceware.org/elfutils/">
<!ENTITY elfutils-fin-du "127 MB"> <!ENTITY elfutils-fin-du "135 MB">
<!ENTITY elfutils-fin-sbu "0.3 SBU"> <!ENTITY elfutils-fin-sbu "0.3 SBU">
<!ENTITY expat-version "2.6.2"> <!ENTITY expat-version "2.7.1">
<!ENTITY expat-size "474 KB"> <!ENTITY expat-size "485 KB">
<!ENTITY expat-url "&sourceforge;expat/expat-&expat-version;.tar.xz"> <!ENTITY expat-url "&github;/libexpat/libexpat/releases/download/R_2_7_1/expat-&expat-version;.tar.xz">
<!ENTITY expat-md5 "0cb75c8feb842c0794ba89666b762a2d"> <!ENTITY expat-md5 "9f0c266ff4b9720beae0c6bd53ae4469">
<!ENTITY expat-home "https://libexpat.github.io/"> <!ENTITY expat-home "https://libexpat.github.io/">
<!ENTITY expat-fin-du "13 MB"> <!ENTITY expat-fin-du "14 MB">
<!ENTITY expat-fin-sbu "0.1 SBU"> <!ENTITY expat-fin-sbu "0.1 SBU">
<!ENTITY expect-version "5.45.4"> <!ENTITY expect-version "5.45.4">
@ -172,14 +164,14 @@
<!ENTITY expect-tmp-du "3.9 MB"> <!ENTITY expect-tmp-du "3.9 MB">
<!ENTITY expect-tmp-sbu "0.2 SBU"> <!ENTITY expect-tmp-sbu "0.2 SBU">
<!ENTITY file-version "5.45"> <!ENTITY file-version "5.46">
<!ENTITY file-size "1,218 KB"> <!ENTITY file-size "1,283 KB">
<!ENTITY file-url "https://astron.com/pub/file/file-&file-version;.tar.gz"> <!ENTITY file-url "https://astron.com/pub/file/file-&file-version;.tar.gz">
<!ENTITY file-md5 "26b2a96d4e3a8938827a1e572afd527a"> <!ENTITY file-md5 "459da2d4b534801e2e2861611d823864">
<!ENTITY file-home "https://www.darwinsys.com/file/"> <!ENTITY file-home "https://www.darwinsys.com/file/">
<!ENTITY file-tmp-du "37 MB"> <!ENTITY file-tmp-du "42 MB">
<!ENTITY file-tmp-sbu "0.1 SBU"> <!ENTITY file-tmp-sbu "0.1 SBU">
<!ENTITY file-fin-du "17 MB"> <!ENTITY file-fin-du "19 MB">
<!ENTITY file-fin-sbu "less than 0.1 SBU"> <!ENTITY file-fin-sbu "less than 0.1 SBU">
<!ENTITY findutils-version "4.10.0"> <!ENTITY findutils-version "4.10.0">
@ -189,7 +181,7 @@
<!ENTITY findutils-home "&gnu-software;findutils/"> <!ENTITY findutils-home "&gnu-software;findutils/">
<!ENTITY findutils-tmp-du "48 MB"> <!ENTITY findutils-tmp-du "48 MB">
<!ENTITY findutils-tmp-sbu "0.2 SBU"> <!ENTITY findutils-tmp-sbu "0.2 SBU">
<!ENTITY findutils-fin-du "62 MB"> <!ENTITY findutils-fin-du "63 MB">
<!ENTITY findutils-fin-sbu "0.7 SBU"> <!ENTITY findutils-fin-sbu "0.7 SBU">
<!ENTITY flex-version "2.6.4"> <!ENTITY flex-version "2.6.4">
@ -200,22 +192,22 @@
<!ENTITY flex-fin-du "33 MB"> <!ENTITY flex-fin-du "33 MB">
<!ENTITY flex-fin-sbu "0.1 SBU"> <!ENTITY flex-fin-sbu "0.1 SBU">
<!ENTITY flit-core-version "3.9.0"> <!ENTITY flit-core-version "3.12.0">
<!ENTITY flit-core-size "41 KB"> <!ENTITY flit-core-size "53 KB">
<!ENTITY flit-core-url "&pypi-src;/f/flit-core/flit_core-&flit-core-version;.tar.gz"> <!ENTITY flit-core-url "&pypi-src;/f/flit-core/flit_core-&flit-core-version;.tar.gz">
<!ENTITY flit-core-md5 "3bc52f1952b9a78361114147da63c35b"> <!ENTITY flit-core-md5 "c538415c1f27bd69cbbbf3cdd5135d39">
<!ENTITY flit-core-home "&pypi-home;/flit-core/"> <!ENTITY flit-core-home "&pypi-home;/flit-core/">
<!ENTITY flit-core-fin-du "1.6 MB"> <!ENTITY flit-core-fin-du "1.0 MB">
<!ENTITY flit-core-fin-sbu "less than 0.1 SBU"> <!ENTITY flit-core-fin-sbu "less than 0.1 SBU">
<!ENTITY gawk-version "5.3.0"> <!ENTITY gawk-version "5.3.2">
<!ENTITY gawk-size "3,356 KB"> <!ENTITY gawk-size "3,662 KB">
<!ENTITY gawk-url "&gnu;gawk/gawk-&gawk-version;.tar.xz"> <!ENTITY gawk-url "&gnu;gawk/gawk-&gawk-version;.tar.xz">
<!ENTITY gawk-md5 "97c5a7d83f91a7e1b2035ebbe6ac7abd"> <!ENTITY gawk-md5 "b7014650c5f45e5d4837c31209dc0037">
<!ENTITY gawk-home "&gnu-software;gawk/"> <!ENTITY gawk-home "&gnu-software;gawk/">
<!ENTITY gawk-tmp-du "47 MB"> <!ENTITY gawk-tmp-du "47 MB">
<!ENTITY gawk-tmp-sbu "0.1 SBU"> <!ENTITY gawk-tmp-sbu "0.1 SBU">
<!ENTITY gawk-fin-du "42 MB"> <!ENTITY gawk-fin-du "43 MB">
<!ENTITY gawk-fin-sbu "0.2 SBU"> <!ENTITY gawk-fin-sbu "0.2 SBU">
<!ENTITY gcc-version "14.2.0"> <!ENTITY gcc-version "14.2.0">
@ -223,10 +215,10 @@
<!ENTITY gcc-url "&gnu;gcc/gcc-&gcc-version;/gcc-&gcc-version;.tar.xz"> <!ENTITY gcc-url "&gnu;gcc/gcc-&gcc-version;/gcc-&gcc-version;.tar.xz">
<!ENTITY gcc-md5 "2268420ba02dc01821960e274711bde0"> <!ENTITY gcc-md5 "2268420ba02dc01821960e274711bde0">
<!ENTITY gcc-home "https://gcc.gnu.org/"> <!ENTITY gcc-home "https://gcc.gnu.org/">
<!ENTITY gcc-tmpp1-du "4.9 GB"> <!ENTITY gcc-tmpp1-du "4.8 GB">
<!ENTITY gcc-tmpp1-sbu "3.2 SBU"> <!ENTITY gcc-tmpp1-sbu "3.2 SBU">
<!ENTITY gcc-tmpp2-du "5.5 GB"> <!ENTITY gcc-tmpp2-du "5.5 GB">
<!ENTITY gcc-tmpp2-sbu "4.2 SBU"> <!ENTITY gcc-tmpp2-sbu "4.1 SBU">
<!ENTITY gcc-fin-du "6.3 GB "> <!ENTITY gcc-fin-du "6.3 GB ">
<!ENTITY gcc-fin-sbu "46 SBU (with tests)"> <!ENTITY gcc-fin-sbu "46 SBU (with tests)">
<!ENTITY libquadmath-version "0.0.0"> <!ENTITY libquadmath-version "0.0.0">
@ -234,35 +226,35 @@
<!ENTITY libitm-version "1.0.0"> <!ENTITY libitm-version "1.0.0">
<!ENTITY libatomic-version "1.2.0"> <!ENTITY libatomic-version "1.2.0">
<!ENTITY libstdcpp-tmpp1-du "1.2 GB"> <!ENTITY libstdcpp-tmpp1-du "850 MB">
<!ENTITY libstdcpp-tmpp1-sbu "0.2 SBU"> <!ENTITY libstdcpp-tmpp1-sbu "0.2 SBU">
<!ENTITY gdbm-version "1.24"> <!ENTITY gdbm-version "1.25">
<!ENTITY gdbm-size "1,168 KB"> <!ENTITY gdbm-size "1,196 KB">
<!ENTITY gdbm-url "&gnu;gdbm/gdbm-&gdbm-version;.tar.gz"> <!ENTITY gdbm-url "&gnu;gdbm/gdbm-&gdbm-version;.tar.gz">
<!ENTITY gdbm-md5 "c780815649e52317be48331c1773e987"> <!ENTITY gdbm-md5 "46266720c7980b75f29e3554aeaeb7a8">
<!ENTITY gdbm-home "&gnu-software;gdbm/"> <!ENTITY gdbm-home "&gnu-software;gdbm/">
<!ENTITY gdbm-fin-du "13 MB"> <!ENTITY gdbm-fin-du "13 MB">
<!ENTITY gdbm-fin-sbu "less than 0.1 SBU"> <!ENTITY gdbm-fin-sbu "less than 0.1 SBU">
<!ENTITY gettext-version "0.22.5"> <!ENTITY gettext-version "0.24">
<!ENTITY gettext-size "10,031 KB"> <!ENTITY gettext-size "8,120 KB">
<!ENTITY gettext-url "&gnu;gettext/gettext-&gettext-version;.tar.xz"> <!ENTITY gettext-url "&gnu;gettext/gettext-&gettext-version;.tar.xz">
<!ENTITY gettext-md5 "3ae5580599d84be93e6213930facb2db"> <!ENTITY gettext-md5 "87aea3013802a3c60fa3feb5c7164069">
<!ENTITY gettext-home "&gnu-software;gettext/"> <!ENTITY gettext-home "&gnu-software;gettext/">
<!ENTITY gettext-tmp-du "321 MB"> <!ENTITY gettext-tmp-du "349 MB">
<!ENTITY gettext-tmp-sbu "1.1 SBU"> <!ENTITY gettext-tmp-sbu "1.3 SBU">
<!ENTITY gettext-fin-du "260 MB"> <!ENTITY gettext-fin-du "290 MB">
<!ENTITY gettext-fin-sbu "1.6 SBU"> <!ENTITY gettext-fin-sbu "1.7 SBU">
<!ENTITY glibc-version "2.40"> <!ENTITY glibc-version "2.41">
<!ENTITY glibc-size "18,313 KB"> <!ENTITY glibc-size "18,892 KB">
<!ENTITY glibc-url "&gnu;glibc/glibc-&glibc-version;.tar.xz"> <!ENTITY glibc-url "&gnu;glibc/glibc-&glibc-version;.tar.xz">
<!ENTITY glibc-md5 "b390feef233022114950317f10c4fa97"> <!ENTITY glibc-md5 "19862601af60f73ac69e067d3e9267d4">
<!ENTITY glibc-home "&gnu-software;libc/"> <!ENTITY glibc-home "&gnu-software;libc/">
<!ENTITY glibc-tmp-du "828 MB"> <!ENTITY glibc-tmp-du "850 MB">
<!ENTITY glibc-tmp-sbu "1.3 SBU"> <!ENTITY glibc-tmp-sbu "1.4 SBU">
<!ENTITY glibc-fin-du "3.1 GB"> <!ENTITY glibc-fin-du "3.2 GB">
<!ENTITY glibc-fin-sbu "12 SBU"> <!ENTITY glibc-fin-sbu "12 SBU">
<!ENTITY gmp-version "6.3.0"> <!ENTITY gmp-version "6.3.0">
@ -273,18 +265,18 @@
<!ENTITY gmp-fin-du "54 MB"> <!ENTITY gmp-fin-du "54 MB">
<!ENTITY gmp-fin-sbu "0.3 SBU"> <!ENTITY gmp-fin-sbu "0.3 SBU">
<!ENTITY gperf-version "3.1"> <!ENTITY gperf-version "3.2.1">
<!ENTITY gperf-size "1,188 KB"> <!ENTITY gperf-size "1,240 KB">
<!ENTITY gperf-url "&gnu;gperf/gperf-&gperf-version;.tar.gz"> <!ENTITY gperf-url "&gnu;gperf/gperf-&gperf-version;.tar.gz">
<!ENTITY gperf-md5 "9e251c0a618ad0824b51117d5d9db87e"> <!ENTITY gperf-md5 "06212b91bdc53526cffb346916c854d6">
<!ENTITY gperf-home "&gnu-software;gperf/"> <!ENTITY gperf-home "&gnu-software;gperf/">
<!ENTITY gperf-fin-du "6.1 MB"> <!ENTITY gperf-fin-du "6.1 MB">
<!ENTITY gperf-fin-sbu "less than 0.1 SBU"> <!ENTITY gperf-fin-sbu "less than 0.1 SBU">
<!ENTITY grep-version "3.11"> <!ENTITY grep-version "3.12">
<!ENTITY grep-size "1,664 KB"> <!ENTITY grep-size "1,874 KB">
<!ENTITY grep-url "&gnu;grep/grep-&grep-version;.tar.xz"> <!ENTITY grep-url "&gnu;grep/grep-&grep-version;.tar.xz">
<!ENTITY grep-md5 "7c9bbd74492131245f7cdb291fa142c0"> <!ENTITY grep-md5 "5d9301ed9d209c4a88c8d3a6fd08b9ac">
<!ENTITY grep-home "&gnu-software;grep/"> <!ENTITY grep-home "&gnu-software;grep/">
<!ENTITY grep-tmp-du "27 MB"> <!ENTITY grep-tmp-du "27 MB">
<!ENTITY grep-tmp-sbu "0.1 SBU"> <!ENTITY grep-tmp-sbu "0.1 SBU">
@ -296,7 +288,7 @@
<!ENTITY groff-url "&gnu;groff/groff-&groff-version;.tar.gz"> <!ENTITY groff-url "&gnu;groff/groff-&groff-version;.tar.gz">
<!ENTITY groff-md5 "5e4f40315a22bb8a158748e7d5094c7d"> <!ENTITY groff-md5 "5e4f40315a22bb8a158748e7d5094c7d">
<!ENTITY groff-home "&gnu-software;groff/"> <!ENTITY groff-home "&gnu-software;groff/">
<!ENTITY groff-fin-du "107 MB"> <!ENTITY groff-fin-du "108 MB">
<!ENTITY groff-fin-sbu "0.2 SBU"> <!ENTITY groff-fin-sbu "0.2 SBU">
<!ENTITY grub-version "2.12"> <!ENTITY grub-version "2.12">
@ -309,28 +301,28 @@
<!ENTITY grub-tmp-du "161 MB"> <!ENTITY grub-tmp-du "161 MB">
<!ENTITY grub-tmp-sbu "0.3 SBU"> <!ENTITY grub-tmp-sbu "0.3 SBU">
<!ENTITY gzip-version "1.13"> <!ENTITY gzip-version "1.14">
<!ENTITY gzip-size "819 KB"> <!ENTITY gzip-size "865 KB">
<!ENTITY gzip-url "&gnu;gzip/gzip-&gzip-version;.tar.xz"> <!ENTITY gzip-url "&gnu;gzip/gzip-&gzip-version;.tar.xz">
<!ENTITY gzip-md5 "d5c9fc9441288817a4a0be2da0249e29"> <!ENTITY gzip-md5 "4bf5a10f287501ee8e8ebe00ef62b2c2">
<!ENTITY gzip-home "&gnu-software;gzip/"> <!ENTITY gzip-home "&gnu-software;gzip/">
<!ENTITY gzip-tmp-du "11 MB"> <!ENTITY gzip-tmp-du "11 MB">
<!ENTITY gzip-tmp-sbu "0.1 SBU"> <!ENTITY gzip-tmp-sbu "0.1 SBU">
<!ENTITY gzip-fin-du "21 MB"> <!ENTITY gzip-fin-du "21 MB">
<!ENTITY gzip-fin-sbu "0.3 SBU"> <!ENTITY gzip-fin-sbu "0.3 SBU">
<!ENTITY iana-etc-version "20240806"> <!ENTITY iana-etc-version "20250328">
<!ENTITY iana-etc-size "590 KB"> <!ENTITY iana-etc-size "592 KB">
<!ENTITY iana-etc-url "https://github.com/Mic92/iana-etc/releases/download/&iana-etc-version;/iana-etc-&iana-etc-version;.tar.gz"> <!ENTITY iana-etc-url "https://github.com/Mic92/iana-etc/releases/download/&iana-etc-version;/iana-etc-&iana-etc-version;.tar.gz">
<!ENTITY iana-etc-md5 "ea3c37c00d22f1159fc3b7d988de8476"> <!ENTITY iana-etc-md5 "c1ac238c282feee8e4f4e44a7e490615">
<!ENTITY iana-etc-home "https://www.iana.org/protocols"> <!ENTITY iana-etc-home "https://www.iana.org/protocols">
<!ENTITY iana-etc-fin-du "4.8 MB"> <!ENTITY iana-etc-fin-du "4.8 MB">
<!ENTITY iana-etc-fin-sbu "less than 0.1 SBU"> <!ENTITY iana-etc-fin-sbu "less than 0.1 SBU">
<!ENTITY inetutils-version "2.5"> <!ENTITY inetutils-version "2.6">
<!ENTITY inetutils-size "1,632 KB"> <!ENTITY inetutils-size "1,724 KB">
<!ENTITY inetutils-url "&gnu;inetutils/inetutils-&inetutils-version;.tar.xz"> <!ENTITY inetutils-url "&gnu;inetutils/inetutils-&inetutils-version;.tar.xz">
<!ENTITY inetutils-md5 "9e5a6dfd2d794dc056a770e8ad4a9263"> <!ENTITY inetutils-md5 "401d7d07682a193960bcdecafd03de94">
<!ENTITY inetutils-home "&gnu-software;inetutils/"> <!ENTITY inetutils-home "&gnu-software;inetutils/">
<!ENTITY inetutils-fin-du "35 MB"> <!ENTITY inetutils-fin-du "35 MB">
<!ENTITY inetutils-fin-sbu "0.2 SBU"> <!ENTITY inetutils-fin-sbu "0.2 SBU">
@ -343,44 +335,44 @@
<!ENTITY intltool-fin-du "1.5 MB"> <!ENTITY intltool-fin-du "1.5 MB">
<!ENTITY intltool-fin-sbu "less than 0.1 SBU"> <!ENTITY intltool-fin-sbu "less than 0.1 SBU">
<!ENTITY iproute2-version "6.10.0"> <!ENTITY iproute2-version "6.14.0">
<!ENTITY iproute2-size "900 KB"> <!ENTITY iproute2-size "908 KB">
<!ENTITY iproute2-url "&kernel;linux/utils/net/iproute2/iproute2-&iproute2-version;.tar.xz"> <!ENTITY iproute2-url "&kernel;linux/utils/net/iproute2/iproute2-&iproute2-version;.tar.xz">
<!ENTITY iproute2-md5 "6282e47de9c5b230e83537fba7181c9c"> <!ENTITY iproute2-md5 "84ee9c0b8bc09623e20c1341c9525024">
<!ENTITY iproute2-home "&kernel;linux/utils/net/iproute2/"> <!ENTITY iproute2-home "&kernel;linux/utils/net/iproute2/">
<!ENTITY iproute2-fin-du "17 MB"> <!ENTITY iproute2-fin-du "17 MB">
<!ENTITY iproute2-fin-sbu "0.1 SBU"> <!ENTITY iproute2-fin-sbu "0.1 SBU">
<!ENTITY iproute2-tmp-du "15 MB"> <!ENTITY iproute2-tmp-du "15 MB">
<!ENTITY iproute2-tmp-sbu "less than 0.1 SBU"> <!ENTITY iproute2-tmp-sbu "less than 0.1 SBU">
<!ENTITY jinja2-version "3.1.4"> <!ENTITY jinja2-version "3.1.6">
<!ENTITY jinja2-size "235 KB"> <!ENTITY jinja2-size "240 KB">
<!ENTITY jinja2-url "&pypi-src;/J/Jinja2/jinja2-&jinja2-version;.tar.gz"> <!ENTITY jinja2-url "&pypi-src;/J/Jinja2/jinja2-&jinja2-version;.tar.gz">
<!ENTITY jinja2-md5 "02ca9a6364c92e83d14b037bef4732bc"> <!ENTITY jinja2-md5 "66d4c25ff43d1deaf9637ccda523dec8">
<!ENTITY jinja2-home "https://jinja.palletsprojects.com/en/3.1.x/"> <!ENTITY jinja2-home "https://jinja.palletsprojects.com/en/3.1.x/">
<!ENTITY jinja2-fin-du "2.5 MB"> <!ENTITY jinja2-fin-du "2.5 MB">
<!ENTITY jinja2-fin-sbu "less than 0.1 SBU"> <!ENTITY jinja2-fin-sbu "less than 0.1 SBU">
<!ENTITY kbd-version "2.6.4"> <!ENTITY kbd-version "2.7.1">
<!ENTITY kbd-size "1,470 KB"> <!ENTITY kbd-size "1,438 KB">
<!ENTITY kbd-url "https://www.kernel.org/pub/linux/utils/kbd/kbd-&kbd-version;.tar.xz"> <!ENTITY kbd-url "https://www.kernel.org/pub/linux/utils/kbd/kbd-&kbd-version;.tar.xz">
<!ENTITY kbd-md5 "e2fd7adccf6b1e98eb1ae8d5a1ce5762"> <!ENTITY kbd-md5 "f15673d9f748e58f82fa50cff0d0fd20">
<!ENTITY kbd-home "https://kbd-project.org/"> <!ENTITY kbd-home "https://kbd-project.org/">
<!ENTITY kbd-fin-du "34 MB"> <!ENTITY kbd-fin-du "34 MB">
<!ENTITY kbd-fin-sbu "0.1 SBU"> <!ENTITY kbd-fin-sbu "0.1 SBU">
<!ENTITY kmod-version "33"> <!ENTITY kmod-version "34.2">
<!ENTITY kmod-size "503 KB"> <!ENTITY kmod-size "434 KB">
<!ENTITY kmod-url "&kernel;linux/utils/kernel/kmod/kmod-&kmod-version;.tar.xz"> <!ENTITY kmod-url "&kernel;linux/utils/kernel/kmod/kmod-&kmod-version;.tar.xz">
<!ENTITY kmod-md5 "c451c4aa61521adbe8af147f498046f8"> <!ENTITY kmod-md5 "36f2cc483745e81ede3406fa55e1065a">
<!ENTITY kmod-home "https://github.com/kmod-project/kmod"> <!ENTITY kmod-home "https://github.com/kmod-project/kmod">
<!ENTITY kmod-fin-du "11 MB"> <!ENTITY kmod-fin-du "11 MB">
<!ENTITY kmod-fin-sbu "less than 0.1 SBU"> <!ENTITY kmod-fin-sbu "less than 0.1 SBU">
<!ENTITY less-version "661"> <!ENTITY less-version "668">
<!ENTITY less-size "634 KB"> <!ENTITY less-size "635 KB">
<!ENTITY less-url "https://www.greenwoodsoftware.com/less/less-&less-version;.tar.gz"> <!ENTITY less-url "https://www.greenwoodsoftware.com/less/less-&less-version;.tar.gz">
<!ENTITY less-md5 "44f54b6313c5d71fa1ac224d8d84766a"> <!ENTITY less-md5 "d72760386c5f80702890340d2f66c302">
<!ENTITY less-home "https://www.greenwoodsoftware.com/less/"> <!ENTITY less-home "https://www.greenwoodsoftware.com/less/">
<!ENTITY less-fin-du "14 MB"> <!ENTITY less-fin-du "14 MB">
<!ENTITY less-fin-sbu "less than 0.1 SBU"> <!ENTITY less-fin-sbu "less than 0.1 SBU">
@ -393,54 +385,54 @@
<!ENTITY lfs-bootscripts-cfg-du "BOOTSCRIPTS-INSTALL-KB KB"> <!ENTITY lfs-bootscripts-cfg-du "BOOTSCRIPTS-INSTALL-KB KB">
<!ENTITY lfs-bootscripts-cfg-sbu "less than 0.1 SBU"> <!ENTITY lfs-bootscripts-cfg-sbu "less than 0.1 SBU">
<!ENTITY libcap-version "2.70"> <!ENTITY libcap-version "2.76">
<!ENTITY libcap-size "187 KB"> <!ENTITY libcap-size "195 KB">
<!ENTITY libcap-url "&kernel;linux/libs/security/linux-privs/libcap2/libcap-&libcap-version;.tar.xz"> <!ENTITY libcap-url "&kernel;linux/libs/security/linux-privs/libcap2/libcap-&libcap-version;.tar.xz">
<!ENTITY libcap-md5 "df0e20c6eeca849347b87d5d6a8870c0"> <!ENTITY libcap-md5 "449ade7d620b5c4eeb15a632fbaa4f74">
<!ENTITY libcap-home "https://sites.google.com/site/fullycapable/"> <!ENTITY libcap-home "https://sites.google.com/site/fullycapable/">
<!ENTITY libcap-fin-du "2.9 MB"> <!ENTITY libcap-fin-du "3.0 MB">
<!ENTITY libcap-fin-sbu "less than 0.1 SBU"> <!ENTITY libcap-fin-sbu "less than 0.1 SBU">
<!ENTITY libffi-version "3.4.6"> <!ENTITY libffi-version "3.4.8">
<!ENTITY libffi-size "1,360 KB"> <!ENTITY libffi-size "1,366 KB">
<!ENTITY libffi-url "https://github.com/libffi/libffi/releases/download/v&libffi-version;/libffi-&libffi-version;.tar.gz"> <!ENTITY libffi-url "https://github.com/libffi/libffi/releases/download/v&libffi-version;/libffi-&libffi-version;.tar.gz">
<!ENTITY libffi-md5 "b9cac6c5997dca2b3787a59ede34e0eb"> <!ENTITY libffi-md5 "ba5fc49d57d13b9e6cecd0c78d76688b">
<!ENTITY libffi-home "https://sourceware.org/libffi/"> <!ENTITY libffi-home "https://sourceware.org/libffi/">
<!ENTITY libffi-fin-du "11 MB"> <!ENTITY libffi-fin-du "11 MB">
<!ENTITY libffi-fin-sbu "1.7 SBU"> <!ENTITY libffi-fin-sbu "1.7 SBU">
<!ENTITY libpipeline-version "1.5.7"> <!ENTITY libpipeline-version "1.5.8">
<!ENTITY libpipeline-size "956 KB"> <!ENTITY libpipeline-size "1046 KB">
<!ENTITY libpipeline-url "&savannah;/releases/libpipeline/libpipeline-&libpipeline-version;.tar.gz"> <!ENTITY libpipeline-url "&savannah;/releases/libpipeline/libpipeline-&libpipeline-version;.tar.gz">
<!ENTITY libpipeline-md5 "1a48b5771b9f6c790fb4efdb1ac71342"> <!ENTITY libpipeline-md5 "17ac6969b2015386bcb5d278a08a40b5">
<!ENTITY libpipeline-home "https://libpipeline.nongnu.org/"> <!ENTITY libpipeline-home "https://libpipeline.nongnu.org/">
<!ENTITY libpipeline-fin-du "9.7 MB"> <!ENTITY libpipeline-fin-du "11 MB">
<!ENTITY libpipeline-fin-sbu "0.1 SBU"> <!ENTITY libpipeline-fin-sbu "0.1 SBU">
<!ENTITY libtool-version "2.4.7"> <!ENTITY libtool-version "2.5.4">
<!ENTITY libtool-size "996 KB"> <!ENTITY libtool-size "1,033 KB">
<!ENTITY libtool-url "&gnu;libtool/libtool-&libtool-version;.tar.xz"> <!ENTITY libtool-url "&gnu;libtool/libtool-&libtool-version;.tar.xz">
<!ENTITY libtool-md5 "2fc0b6ddcd66a89ed6e45db28fa44232"> <!ENTITY libtool-md5 "22e0a29df8af5fdde276ea3a7d351d30">
<!ENTITY libtool-home "&gnu-software;libtool/"> <!ENTITY libtool-home "&gnu-software;libtool/">
<!ENTITY libtool-fin-du "45 MB"> <!ENTITY libtool-fin-du "44 MB">
<!ENTITY libtool-fin-sbu "0.8 SBU"> <!ENTITY libtool-fin-sbu "0.6 SBU">
<!ENTITY libxcrypt-version "4.4.36"> <!ENTITY libxcrypt-version "4.4.38">
<!ENTITY libxcrypt-size "610 KB"> <!ENTITY libxcrypt-size "612 KB">
<!ENTITY libxcrypt-url "&github;/besser82/libxcrypt/releases/download/v&libxcrypt-version;/libxcrypt-&libxcrypt-version;.tar.xz"> <!ENTITY libxcrypt-url "&github;/besser82/libxcrypt/releases/download/v&libxcrypt-version;/libxcrypt-&libxcrypt-version;.tar.xz">
<!ENTITY libxcrypt-md5 "b84cd4104e08c975063ec6c4d0372446"> <!ENTITY libxcrypt-md5 "1796a5d20098e9dd9e3f576803c83000">
<!ENTITY libxcrypt-home "&github;/besser82/libxcrypt/"> <!ENTITY libxcrypt-home "&github;/besser82/libxcrypt/">
<!ENTITY libxcrypt-fin-du "12 MB"> <!ENTITY libxcrypt-fin-du "12 MB">
<!ENTITY libxcrypt-fin-sbu "0.1 SBU"> <!ENTITY libxcrypt-fin-sbu "0.1 SBU">
<!ENTITY linux-major-version "6"> <!ENTITY linux-major-version "6">
<!ENTITY linux-minor-version "10"> <!ENTITY linux-minor-version "14">
<!ENTITY linux-patch-version "5"> <!ENTITY linux-patch-version "2">
<!--<!ENTITY linux-version "&linux-major-version;.&linux-minor-version;">--> <!--<!ENTITY linux-version "&linux-major-version;.&linux-minor-version;">-->
<!ENTITY linux-version "&linux-major-version;.&linux-minor-version;.&linux-patch-version;"> <!ENTITY linux-version "&linux-major-version;.&linux-minor-version;.&linux-patch-version;">
<!ENTITY linux-size "141,739 KB"> <!ENTITY linux-size "145,911 KB">
<!ENTITY linux-url "&kernel;linux/kernel/v&linux-major-version;.x/linux-&linux-version;.tar.xz"> <!ENTITY linux-url "&kernel;linux/kernel/v&linux-major-version;.x/linux-&linux-version;.tar.xz">
<!ENTITY linux-md5 "276ef1f11ed3713ec5d6f506ff55ac12"> <!ENTITY linux-md5 "7f305d1d40d8ca9393c58071f01453ed">
<!ENTITY linux-home "https://www.kernel.org/"> <!ENTITY linux-home "https://www.kernel.org/">
<!-- measured for 6.10.1 / gcc-14.1.0 on x86_64 with -j4 : <!-- measured for 6.10.1 / gcc-14.1.0 on x86_64 with -j4 :
minimum is allnoconfig minimum is allnoconfig
@ -472,9 +464,9 @@
<!ENTITY m4-url "&gnu;m4/m4-&m4-version;.tar.xz"> <!ENTITY m4-url "&gnu;m4/m4-&m4-version;.tar.xz">
<!ENTITY m4-md5 "0d90823e1426f1da2fd872df0311298d"> <!ENTITY m4-md5 "0d90823e1426f1da2fd872df0311298d">
<!ENTITY m4-home "&gnu-software;m4/"> <!ENTITY m4-home "&gnu-software;m4/">
<!ENTITY m4-tmp-du "31 MB"> <!ENTITY m4-tmp-du "32 MB">
<!ENTITY m4-tmp-sbu "0.1 SBU"> <!ENTITY m4-tmp-sbu "0.1 SBU">
<!ENTITY m4-fin-du "48 MB"> <!ENTITY m4-fin-du "49 MB">
<!ENTITY m4-fin-sbu "0.3 SBU"> <!ENTITY m4-fin-sbu "0.3 SBU">
<!ENTITY make-version "4.4.1"> <!ENTITY make-version "4.4.1">
@ -487,36 +479,36 @@
<!ENTITY make-fin-du "13 MB"> <!ENTITY make-fin-du "13 MB">
<!ENTITY make-fin-sbu "0.7 SBU"> <!ENTITY make-fin-sbu "0.7 SBU">
<!ENTITY man-db-version "2.12.1"> <!ENTITY man-db-version "2.13.0">
<!ENTITY man-db-size "1,994 KB"> <!ENTITY man-db-size "2,023 KB">
<!ENTITY man-db-url "&savannah;/releases/man-db/man-db-&man-db-version;.tar.xz"> <!ENTITY man-db-url "&savannah;/releases/man-db/man-db-&man-db-version;.tar.xz">
<!ENTITY man-db-md5 "7b044e5020aab89db41ac7ee59d6d84a"> <!ENTITY man-db-md5 "97ab5f9f32914eef2062d867381d8cee">
<!ENTITY man-db-home "https://www.nongnu.org/man-db/"> <!ENTITY man-db-home "https://www.nongnu.org/man-db/">
<!ENTITY man-db-fin-du "43 MB"> <!ENTITY man-db-fin-du "44 MB">
<!ENTITY man-db-fin-sbu "0.3 SBU"> <!ENTITY man-db-fin-sbu "0.3 SBU">
<!ENTITY man-pages-version "6.9.1"> <!ENTITY man-pages-version "6.13">
<!ENTITY man-pages-size "1,821 KB"> <!ENTITY man-pages-size "1,839 KB">
<!ENTITY man-pages-url "&kernel;linux/docs/man-pages/man-pages-&man-pages-version;.tar.xz"> <!ENTITY man-pages-url "&kernel;linux/docs/man-pages/man-pages-&man-pages-version;.tar.xz">
<!ENTITY man-pages-md5 "4d56775b6cce4edf1e496249e7c01c1a"> <!ENTITY man-pages-md5 "5349329fef307e755933266b26eac873">
<!ENTITY man-pages-home "https://www.kernel.org/doc/man-pages/"> <!ENTITY man-pages-home "https://www.kernel.org/doc/man-pages/">
<!ENTITY man-pages-fin-du "52 MB"> <!ENTITY man-pages-fin-du "52 MB">
<!ENTITY man-pages-fin-sbu "0.1 SBU"> <!ENTITY man-pages-fin-sbu "0.1 SBU">
<!ENTITY markupsafe-version "2.1.5"> <!ENTITY markupsafe-version "3.0.2">
<!ENTITY markupsafe-size "19 KB"> <!ENTITY markupsafe-size "21 KB">
<!ENTITY markupsafe-url "&pypi-src;/M/MarkupSafe/MarkupSafe-&markupsafe-version;.tar.gz"> <!ENTITY markupsafe-url "&pypi-src;/M/MarkupSafe/markupsafe-&markupsafe-version;.tar.gz">
<!ENTITY markupsafe-md5 "8fe7227653f2fb9b1ffe7f9f2058998a"> <!ENTITY markupsafe-md5 "cb0071711b573b155cc8f86e1de72167">
<!ENTITY markupsafe-home "https://palletsprojects.com/p/markupsafe/"> <!ENTITY markupsafe-home "https://palletsprojects.com/p/markupsafe/">
<!ENTITY markupsafe-fin-du "508 KB"> <!ENTITY markupsafe-fin-du "500 KB">
<!ENTITY markupsafe-fin-sbu "less than 0.1 SBU"> <!ENTITY markupsafe-fin-sbu "less than 0.1 SBU">
<!ENTITY meson-version "1.5.1"> <!ENTITY meson-version "1.7.2">
<!ENTITY meson-size "2,205 KB"> <!ENTITY meson-size "4,892 KB">
<!ENTITY meson-url "&github;/mesonbuild/meson/releases/download/&meson-version;/meson-&meson-version;.tar.gz"> <!ENTITY meson-url "&github;/mesonbuild/meson/releases/download/&meson-version;/meson-&meson-version;.tar.gz">
<!ENTITY meson-md5 "c4f2b3e5ea632685f61ba1b833c4905c"> <!ENTITY meson-md5 "caec869e85ba1046f22972fbd5d2c497">
<!ENTITY meson-home "https://mesonbuild.com"> <!ENTITY meson-home "https://mesonbuild.com">
<!ENTITY meson-fin-du "43 MB"> <!ENTITY meson-fin-du "44 MB">
<!ENTITY meson-fin-sbu "less than 0.1 SBU"> <!ENTITY meson-fin-sbu "less than 0.1 SBU">
<!ENTITY mpc-version "1.3.1"> <!ENTITY mpc-version "1.3.1">
@ -527,10 +519,10 @@
<!ENTITY mpc-fin-du "22 MB"> <!ENTITY mpc-fin-du "22 MB">
<!ENTITY mpc-fin-sbu "0.1 SBU"> <!ENTITY mpc-fin-sbu "0.1 SBU">
<!ENTITY mpfr-version "4.2.1"> <!ENTITY mpfr-version "4.2.2">
<!ENTITY mpfr-size "1,459 KB"> <!ENTITY mpfr-size "1,471 KB">
<!ENTITY mpfr-url "https://ftp.gnu.org/gnu/mpfr/mpfr-&mpfr-version;.tar.xz"> <!ENTITY mpfr-url "https://ftp.gnu.org/gnu/mpfr/mpfr-&mpfr-version;.tar.xz">
<!ENTITY mpfr-md5 "523c50c6318dde6f9dc523bc0244690a"> <!ENTITY mpfr-md5 "7c32c39b8b6e3ae85f25156228156061">
<!ENTITY mpfr-home "https://www.mpfr.org/"> <!ENTITY mpfr-home "https://www.mpfr.org/">
<!ENTITY mpfr-fin-du "43 MB"> <!ENTITY mpfr-fin-du "43 MB">
<!ENTITY mpfr-fin-sbu "0.2 SBU"> <!ENTITY mpfr-fin-sbu "0.2 SBU">
@ -553,18 +545,26 @@
<!ENTITY ninja-fin-du "37 MB"> <!ENTITY ninja-fin-du "37 MB">
<!ENTITY ninja-fin-sbu "0.2 SBU"> <!ENTITY ninja-fin-sbu "0.2 SBU">
<!ENTITY openssl-version "3.3.1"> <!ENTITY openssl-version "3.5.0">
<!ENTITY openssl-size "17,633 KB"> <!ENTITY openssl-size "51,892 KB">
<!ENTITY openssl-url "https://www.openssl.org/source/openssl-&openssl-version;.tar.gz"> <!ENTITY openssl-url "&github;/openssl/openssl/releases/download/openssl-&openssl-version;/openssl-&openssl-version;.tar.gz">
<!ENTITY openssl-md5 "8a4342b399c18f870ca6186299195984"> <!ENTITY openssl-md5 "51da7d2bdf7f4f508cb024f562eb9b03">
<!ENTITY openssl-home "https://www.openssl.org/"> <!ENTITY openssl-home "https://www.openssl-library.org/">
<!ENTITY openssl-fin-du "883 MB"> <!ENTITY openssl-fin-du "920 MB">
<!ENTITY openssl-fin-sbu "1.7 SBU"> <!ENTITY openssl-fin-sbu "1.8 SBU">
<!ENTITY patch-version "2.7.6"> <!ENTITY packaging-version "24.2">
<!ENTITY patch-size "766 KB"> <!ENTITY packaging-size "164 KB">
<!ENTITY packaging-url "https://files.pythonhosted.org/packages/source/p/packaging/packaging-&packaging-version;.tar.gz">
<!ENTITY packaging-md5 "97dbaca91e00d6b9fd86866e8c7897ae">
<!ENTITY packaging-home "&pypi-home;/packaging/">
<!ENTITY packaging-fin-du "2.7 MB">
<!ENTITY packaging-fin-sbu "less than 0.1 SBU">
<!ENTITY patch-version "2.8">
<!ENTITY patch-size "886 KB">
<!ENTITY patch-url "&gnu;patch/patch-&patch-version;.tar.xz"> <!ENTITY patch-url "&gnu;patch/patch-&patch-version;.tar.xz">
<!ENTITY patch-md5 "78ad9937e4caadcba1526ef1853730d5"> <!ENTITY patch-md5 "149327a021d41c8f88d034eab41c039f">
<!ENTITY patch-home "https://savannah.gnu.org/projects/patch/"> <!ENTITY patch-home "https://savannah.gnu.org/projects/patch/">
<!ENTITY patch-tmp-du "12 MB"> <!ENTITY patch-tmp-du "12 MB">
<!ENTITY patch-tmp-sbu "0.1 SBU"> <!ENTITY patch-tmp-sbu "0.1 SBU">
@ -573,32 +573,32 @@
<!ENTITY perl-version-major "5"> <!ENTITY perl-version-major "5">
<!ENTITY perl-version-minor "40"> <!ENTITY perl-version-minor "40">
<!ENTITY perl-version-patch "0"> <!ENTITY perl-version-patch "2">
<!ENTITY perl-version-min "&perl-version-major;.&perl-version-minor;"> <!ENTITY perl-version-min "&perl-version-major;.&perl-version-minor;">
<!ENTITY perl-version "&perl-version-major;.&perl-version-minor;.&perl-version-patch;"> <!ENTITY perl-version "&perl-version-major;.&perl-version-minor;.&perl-version-patch;">
<!ENTITY perl-size "13,481 KB"> <!ENTITY perl-size "13,598 KB">
<!ENTITY perl-url "https://www.cpan.org/src/5.0/perl-&perl-version;.tar.xz"> <!ENTITY perl-url "https://www.cpan.org/src/5.0/perl-&perl-version;.tar.xz">
<!ENTITY perl-md5 "cfe14ef0709b9687f9c514042e8e1e82"> <!ENTITY perl-md5 "9ad7a269dc4053cdbeecd4fde444291b">
<!ENTITY perl-home "https://www.perl.org/"> <!ENTITY perl-home "https://www.perl.org/">
<!ENTITY perl-tmp-du "285 MB"> <!ENTITY perl-tmp-du "285 MB">
<!ENTITY perl-tmp-sbu "0.6 SBU"> <!ENTITY perl-tmp-sbu "0.6 SBU">
<!ENTITY perl-fin-du "245 MB"> <!ENTITY perl-fin-du "245 MB">
<!ENTITY perl-fin-sbu "1.4 SBU"> <!ENTITY perl-fin-sbu "1.3 SBU">
<!ENTITY pkgconf-version "2.3.0"> <!ENTITY pkgconf-version "2.4.3">
<!ENTITY pkgconf-size "309 KB"> <!ENTITY pkgconf-size "314 KB">
<!ENTITY pkgconf-url "https://distfiles.ariadne.space/pkgconf/pkgconf-&pkgconf-version;.tar.xz"> <!ENTITY pkgconf-url "https://distfiles.ariadne.space/pkgconf/pkgconf-&pkgconf-version;.tar.xz">
<!ENTITY pkgconf-md5 "833363e77b5bed0131c7bc4cc6f7747b"> <!ENTITY pkgconf-md5 "781a513f4ca3d068155482a37986d594">
<!ENTITY pkgconf-home "https://github.com/pkgconf/pkgconf"> <!ENTITY pkgconf-home "https://github.com/pkgconf/pkgconf">
<!ENTITY pkgconf-fin-du "4.7 MB"> <!ENTITY pkgconf-fin-du "4.7 MB">
<!ENTITY pkgconf-fin-sbu "less than 0.1 SBU"> <!ENTITY pkgconf-fin-sbu "less than 0.1 SBU">
<!ENTITY procps-ng-version "4.0.4"> <!ENTITY procps-ng-version "4.0.5">
<!ENTITY procps-ng-size "1,369 KB"> <!ENTITY procps-ng-size "1,483 KB">
<!ENTITY procps-ng-url "https://sourceforge.net/projects/procps-ng/files/Production/procps-ng-&procps-ng-version;.tar.xz"> <!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-md5 "90803e64f51f192f3325d25c3335d057">
<!ENTITY procps-ng-home "https://gitlab.com/procps-ng/procps/"> <!ENTITY procps-ng-home "https://gitlab.com/procps-ng/procps/">
<!ENTITY procps-ng-fin-du "26 MB"> <!ENTITY procps-ng-fin-du "28 MB">
<!ENTITY procps-ng-fin-sbu "0.1 SBU"> <!ENTITY procps-ng-fin-sbu "0.1 SBU">
<!ENTITY psmisc-version "23.7"> <!ENTITY psmisc-version "23.7">
@ -612,19 +612,19 @@
<!-- If python minor version changes, updates in python and <!-- If python minor version changes, updates in python and
meson pages will be needed: python3.6 and python3.6m --> meson pages will be needed: python3.6 and python3.6m -->
<!ENTITY python-version "3.12.5"> <!ENTITY python-version "3.13.3">
<!ENTITY python-minor "3.12"> <!ENTITY python-minor "3.13">
<!ENTITY python-size "19,944 KB"> <!ENTITY python-size "22,124 KB">
<!ENTITY python-url "https://www.python.org/ftp/python/&python-version;/Python-&python-version;.tar.xz"> <!ENTITY python-url "https://www.python.org/ftp/python/&python-version;/Python-&python-version;.tar.xz">
<!ENTITY python-md5 "02c7d269e077f4034963bba6befdc715"> <!ENTITY python-md5 "8bb5f0b8c9d9d7b87d7d98510e8d58e5">
<!ENTITY python-home "https://www.python.org/"> <!ENTITY python-home "https://www.python.org/">
<!ENTITY python-tmp-du "603 MB"> <!ENTITY python-tmp-du "634 MB">
<!ENTITY python-tmp-sbu "0.4 SBU"> <!ENTITY python-tmp-sbu "0.5 SBU">
<!ENTITY python-fin-du "530 MB"> <!ENTITY python-fin-du "501 MB">
<!ENTITY python-fin-sbu "2.2 SBU"> <!ENTITY python-fin-sbu "2.1 SBU">
<!ENTITY python-docs-url "https://www.python.org/ftp/python/doc/&python-version;/python-&python-version;-docs-html.tar.bz2"> <!ENTITY python-docs-url "https://www.python.org/ftp/python/doc/&python-version;/python-&python-version;-docs-html.tar.bz2">
<!ENTITY python-docs-md5 "52274d813236ca4a972fb6988480dc56"> <!ENTITY python-docs-md5 "5b65ca5579dac14e425cd247af6fd043">
<!ENTITY python-docs-size "8,188 KB"> <!ENTITY python-docs-size "10,112 KB">
<!ENTITY readline-version "8.2.13"> <!ENTITY readline-version "8.2.13">
<!ENTITY readline-soversion "8.2"><!-- used for stripping --> <!ENTITY readline-soversion "8.2"><!-- used for stripping -->
@ -645,54 +645,54 @@
<!ENTITY sed-fin-du "30 MB"> <!ENTITY sed-fin-du "30 MB">
<!ENTITY sed-fin-sbu "0.3 SBU"> <!ENTITY sed-fin-sbu "0.3 SBU">
<!ENTITY setuptools-version "72.2.0"> <!ENTITY setuptools-version "78.1.0">
<!ENTITY setuptools-size "2,363 KB"> <!ENTITY setuptools-size "1,336 KB">
<!ENTITY setuptools-url "&pypi-src;/s/setuptools/setuptools-&setuptools-version;.tar.gz"> <!ENTITY setuptools-url "&pypi-src;/s/setuptools/setuptools-&setuptools-version;.tar.gz">
<!ENTITY setuptools-md5 "2e0ffd0f6fc632a11442b79d9b1c68bd"> <!ENTITY setuptools-md5 "c20bf3068cdb26629854bec1ba8d2374">
<!ENTITY setuptools-home "&pypi-home;/setuptools/"> <!ENTITY setuptools-home "&pypi-home;/setuptools/">
<!ENTITY setuptools-fin-du "35 MB"> <!ENTITY setuptools-fin-du "26 MB">
<!ENTITY setuptools-fin-sbu "less than 0.1 SBU"> <!ENTITY setuptools-fin-sbu "less than 0.1 SBU">
<!ENTITY shadow-version "4.16.0"> <!ENTITY shadow-version "4.17.4">
<!ENTITY shadow-size "2,154 KB"> <!ENTITY shadow-size "2,273 KB">
<!ENTITY shadow-url "&github;/shadow-maint/shadow/releases/download/&shadow-version;/shadow-&shadow-version;.tar.xz"> <!ENTITY shadow-url "&github;/shadow-maint/shadow/releases/download/&shadow-version;/shadow-&shadow-version;.tar.xz">
<!ENTITY shadow-md5 "eb70bad3316d08f0d3bb3d4bbeccb3b4"> <!ENTITY shadow-md5 "469666ea82c203ce5b0116d26b3793a9">
<!ENTITY shadow-home "&github;/shadow-maint/shadow/"> <!ENTITY shadow-home "&github;/shadow-maint/shadow/">
<!ENTITY shadow-fin-du "112 MB"> <!ENTITY shadow-fin-du "114 MB">
<!ENTITY shadow-fin-sbu "0.1 SBU"> <!ENTITY shadow-fin-sbu "0.1 SBU">
<!ENTITY sysklogd-version "2.6.1"> <!ENTITY sysklogd-version "2.7.2">
<!ENTITY sysklogd-size "452 KB"> <!ENTITY sysklogd-size "474 KB">
<!ENTITY sysklogd-url "https://github.com/troglobit/sysklogd/releases/download/v&sysklogd-version;/sysklogd-&sysklogd-version;.tar.gz"> <!ENTITY sysklogd-url "https://github.com/troglobit/sysklogd/releases/download/v&sysklogd-version;/sysklogd-&sysklogd-version;.tar.gz">
<!ENTITY sysklogd-md5 "dcf0836a0fcc6568efaad230850d9c86"> <!ENTITY sysklogd-md5 "af60786956a2dc84054fbf46652e515e">
<!ENTITY sysklogd-home "https://www.infodrom.org/projects/sysklogd/"> <!ENTITY sysklogd-home "https://www.infodrom.org/projects/sysklogd/">
<!ENTITY sysklogd-fin-du "3.9 MB"> <!ENTITY sysklogd-fin-du "4.1 MB">
<!ENTITY sysklogd-fin-sbu "less than 0.1 SBU"> <!ENTITY sysklogd-fin-sbu "less than 0.1 SBU">
<!ENTITY systemd-version "256.4"> <!ENTITY systemd-version "257.3">
<!--<!ENTITY systemd-stable "6b4878d">--> <!--<!ENTITY systemd-stable "6b4878d">-->
<!-- The above entity is used whenever we move to a stable backport branch. <!-- The above entity is used whenever we move to a stable backport branch.
In the event of a critical problem or kernel change that is incompatible, In the event of a critical problem or kernel change that is incompatible,
we will switch to the backport branch until the next stable release. --> we will switch to the backport branch until the next stable release. -->
<!ENTITY systemd-size "15,291 KB"> <!ENTITY systemd-size "15,847 KB">
<!ENTITY systemd-url "&github;/systemd/systemd/archive/v&systemd-version;/systemd-&systemd-version;.tar.gz"> <!ENTITY systemd-url "&github;/systemd/systemd/archive/v&systemd-version;/systemd-&systemd-version;.tar.gz">
<!--<!ENTITY systemd-url "&anduin-sources;/systemd-&systemd-version;-&systemd-stable;.tar.xz">--> <!--<!ENTITY systemd-url "&anduin-sources;/systemd-&systemd-version;-&systemd-stable;.tar.xz">-->
<!ENTITY systemd-md5 "03bd1ff158ec0bc55428c77a8f8495bd"> <!ENTITY systemd-md5 "8e4fc90c7aead651fa5c50bd1b34abc2">
<!ENTITY systemd-home "https://www.freedesktop.org/wiki/Software/systemd/"> <!ENTITY systemd-home "https://www.freedesktop.org/wiki/Software/systemd/">
<!ENTITY systemd-man-version "256.4"> <!ENTITY systemd-man-version "257.3">
<!ENTITY systemd-man-size "676 KB"> <!ENTITY systemd-man-size "733 KB">
<!--<!ENTITY systemd-man-url "&anduin-sources;/systemd-man-pages-&systemd-version;-&systemd-stable;.tar.xz">--> <!--<!ENTITY systemd-man-url "&anduin-sources;/systemd-man-pages-&systemd-version;-&systemd-stable;.tar.xz">-->
<!ENTITY systemd-man-url "&anduin-sources;/systemd-man-pages-&systemd-man-version;.tar.xz"> <!ENTITY systemd-man-url "&anduin-sources;/systemd-man-pages-&systemd-man-version;.tar.xz">
<!ENTITY systemd-man-md5 "8dbcf0ff0d8e5e9d3565f9d2fc153310"> <!ENTITY systemd-man-md5 "9b77c3b066723d490cb10aed4fb05696">
<!ENTITY systemd-fin-du "267 MB"> <!ENTITY systemd-fin-du "307 MB">
<!ENTITY systemd-fin-sbu "0.8 SBU"> <!ENTITY systemd-fin-sbu "1.1 SBU">
<!ENTITY sysvinit-version "3.10"> <!ENTITY sysvinit-version "3.14">
<!ENTITY sysvinit-size "235 KB"> <!ENTITY sysvinit-size "236 KB">
<!ENTITY sysvinit-url "&github;/slicer69/sysvinit/releases/download/&sysvinit-version;/sysvinit-&sysvinit-version;.tar.xz"> <!ENTITY sysvinit-url "&github;/slicer69/sysvinit/releases/download/&sysvinit-version;/sysvinit-&sysvinit-version;.tar.xz">
<!ENTITY sysvinit-md5 "b8fbe11062cf16d3b6a3709b7f6978d2"> <!ENTITY sysvinit-md5 "bc6890b975d19dc9db42d0c7364dd092">
<!ENTITY sysvinit-home "&savannah-nongnu;/projects/sysvinit"> <!ENTITY sysvinit-home "&savannah-nongnu;/projects/sysvinit">
<!ENTITY sysvinit-fin-du "2.8 MB"> <!ENTITY sysvinit-fin-du "2.9 MB">
<!ENTITY sysvinit-fin-sbu "less than 0.1 SBU"> <!ENTITY sysvinit-fin-sbu "less than 0.1 SBU">
<!ENTITY tar-version "1.35"> <!ENTITY tar-version "1.35">
@ -703,63 +703,62 @@
<!ENTITY tar-tmp-du "42 MB"> <!ENTITY tar-tmp-du "42 MB">
<!ENTITY tar-tmp-sbu "0.1 SBU"> <!ENTITY tar-tmp-sbu "0.1 SBU">
<!ENTITY tar-fin-du "43 MB"> <!ENTITY tar-fin-du "43 MB">
<!ENTITY tar-fin-sbu "0.7 SBU"> <!ENTITY tar-fin-sbu "0.6 SBU">
<!ENTITY tcl-version "8.6.14"> <!ENTITY tcl-version "8.6.16">
<!ENTITY tcl-major-version "8.6"> <!ENTITY tcl-major-version "8.6">
<!ENTITY tcl-size "11,355 KB"> <!ENTITY tcl-size "11,406 KB">
<!ENTITY tcl-url "https://downloads.sourceforge.net/tcl/tcl&tcl-version;-src.tar.gz"> <!ENTITY tcl-url "https://downloads.sourceforge.net/tcl/tcl&tcl-version;-src.tar.gz">
<!ENTITY tcl-md5 "c30b57c6051be28fa928d09aca82841e"> <!ENTITY tcl-md5 "eaef5d0a27239fb840f04af8ec608242">
<!ENTITY tcl-home "https://tcl.sourceforge.net/"> <!ENTITY tcl-home "https://tcl.sourceforge.net/">
<!ENTITY tcl-docs-url "https://downloads.sourceforge.net/tcl/tcl&tcl-version;-html.tar.gz"> <!ENTITY tcl-docs-url "https://downloads.sourceforge.net/tcl/tcl&tcl-version;-html.tar.gz">
<!ENTITY tcl-docs-md5 "5467198f8d57c54835bf80b98ffb0170"> <!ENTITY tcl-docs-md5 "750c221bcb6f8737a6791c1fbe98b684">
<!ENTITY tcl-docs-size "1,167 KB"> <!ENTITY tcl-docs-size "1,169 KB">
<!ENTITY tcl-tmp-du "91 MB"> <!ENTITY tcl-tmp-du "91 MB">
<!ENTITY tcl-tmp-sbu "3.2 SBU"> <!ENTITY tcl-tmp-sbu "3.1 SBU">
<!ENTITY texinfo-version "7.1"> <!ENTITY texinfo-version "7.2">
<!ENTITY texinfo-size "5,416 KB"> <!ENTITY texinfo-size "6,259 KB">
<!ENTITY texinfo-url "&gnu;texinfo/texinfo-&texinfo-version;.tar.xz"> <!ENTITY texinfo-url "&gnu;texinfo/texinfo-&texinfo-version;.tar.xz">
<!ENTITY texinfo-md5 "edd9928b4a3f82674bcc3551616eef3b"> <!ENTITY texinfo-md5 "11939a7624572814912a18e76c8d8972">
<!ENTITY texinfo-home "&gnu-software;texinfo/"> <!ENTITY texinfo-home "&gnu-software;texinfo/">
<!ENTITY texinfo-tmp-du "130 MB"> <!ENTITY texinfo-tmp-du "152 MB">
<!ENTITY texinfo-tmp-sbu "0.2 SBU"> <!ENTITY texinfo-tmp-sbu "0.2 SBU">
<!ENTITY texinfo-fin-du "139 MB"> <!ENTITY texinfo-fin-du "160 MB">
<!ENTITY texinfo-fin-sbu "0.3 SBU"> <!ENTITY texinfo-fin-sbu "0.3 SBU">
<!ENTITY tzdata-version "2024a"> <!ENTITY tzdata-version "2025b">
<!ENTITY tzdata-size "444 KB"> <!ENTITY tzdata-size "454 KB">
<!ENTITY tzdata-url "https://www.iana.org/time-zones/repository/releases/tzdata&tzdata-version;.tar.gz"> <!ENTITY tzdata-url "https://www.iana.org/time-zones/repository/releases/tzdata&tzdata-version;.tar.gz">
<!ENTITY tzdata-md5 "2349edd8335245525cc082f2755d5bf4"> <!ENTITY tzdata-md5 "ad65154c48c74a9b311fe84778c5434f">
<!ENTITY tzdata-home "https://www.iana.org/time-zones"> <!ENTITY tzdata-home "https://www.iana.org/time-zones">
<!ENTITY udev-fin-du "144 MB">
<!ENTITY udev-fin-sbu "0.2 SBU">
<!ENTITY udev-lfs-version "udev-lfs-20230818"> <!ENTITY udev-lfs-version "udev-lfs-20230818">
<!ENTITY udev-lfs-size "10 KB"> <!ENTITY udev-lfs-size "10 KB">
<!ENTITY udev-lfs-url "&anduin-sources;/&udev-lfs-version;.tar.xz"> <!ENTITY udev-lfs-url "&anduin-sources;/&udev-lfs-version;.tar.xz">
<!ENTITY udev-lfs-md5 "acd4360d8a5c3ef320b9db88d275dae6"> <!ENTITY udev-lfs-md5 "acd4360d8a5c3ef320b9db88d275dae6">
<!ENTITY udev-lfs-home " "> <!ENTITY udev-lfs-home " ">
<!ENTITY udev-fin-du "161 MB">
<!ENTITY udev-fin-sbu "0.3 SBU">
<!ENTITY util-linux-minor "2.40"> <!ENTITY util-linux-minor "2.41">
<!ENTITY util-linux-version "2.40.2"> <!-- 2.33.x --> <!ENTITY util-linux-version "2.41"> <!-- 2.33.x -->
<!ENTITY util-linux-size "8,648 KB"> <!ENTITY util-linux-size "9,313 KB">
<!ENTITY util-linux-url "&kernel;linux/utils/util-linux/v&util-linux-minor;/util-linux-&util-linux-version;.tar.xz"> <!ENTITY util-linux-url "&kernel;linux/utils/util-linux/v&util-linux-minor;/util-linux-&util-linux-version;.tar.xz">
<!ENTITY util-linux-md5 "88faefc8fefced097e58142077a3d14e"> <!ENTITY util-linux-md5 "e666a34b03554c18a1073347b16661ce">
<!ENTITY util-linux-home "https://git.kernel.org/pub/scm/utils/util-linux/util-linux.git/"> <!ENTITY util-linux-home "https://git.kernel.org/pub/scm/utils/util-linux/util-linux.git/">
<!ENTITY util-linux-tmp-du "180 MB"> <!ENTITY util-linux-tmp-du "182 MB">
<!ENTITY util-linux-tmp-sbu "0.2 SBU"> <!ENTITY util-linux-tmp-sbu "0.2 SBU">
<!ENTITY util-linux-fin-du "315 MB"> <!ENTITY util-linux-fin-du "316 MB">
<!ENTITY util-linux-fin-sbu "0.5 SBU"> <!ENTITY util-linux-fin-sbu "0.5 SBU">
<!ENTITY mount-setsid-du "85 MB"> <!ENTITY mount-setsid-du "85 MB">
<!ENTITY mount-setsid-sbu "less than 0.1 SBU"> <!ENTITY mount-setsid-sbu "less than 0.1 SBU">
<!ENTITY vim-version "9.1.0660"> <!ENTITY vim-version "9.1.1263">
<!-- <!ENTITY vim-majmin "90"> --> <!-- <!ENTITY vim-majmin "90"> -->
<!ENTITY vim-docdir "vim/vim91"> <!ENTITY vim-docdir "vim/vim91">
<!ENTITY vim-size "17,629 KB"> <!ENTITY vim-size "18,260 KB">
<!ENTITY vim-url "https://github.com/vim/vim/archive/v&vim-version;/vim-&vim-version;.tar.gz"> <!ENTITY vim-url "https://github.com/vim/vim/archive/v&vim-version;/vim-&vim-version;.tar.gz">
<!-- N.B. LFS 9.0 uses <!-- N.B. LFS 9.0 uses
https://github.com/vim/vim/archive/v8.1.1846/vim-8.1.1846.tar.gz https://github.com/vim/vim/archive/v8.1.1846/vim-8.1.1846.tar.gz
@ -773,17 +772,17 @@
example, https://github.com/vim/vim/tags?after=v8.1.1847 will show example, https://github.com/vim/vim/tags?after=v8.1.1847 will show
us v8.1.1846. --> us v8.1.1846. -->
<!--<!ENTITY vim-url "&anduin-sources;/vim-&vim-version;.tar.gz">--> <!--<!ENTITY vim-url "&anduin-sources;/vim-&vim-version;.tar.gz">-->
<!ENTITY vim-md5 "c512a99b3704f193be1a181cc644b2b2"> <!ENTITY vim-md5 "75b86835e6e55910f4c14502f7ce0bc4">
<!ENTITY vim-home "https://www.vim.org"> <!ENTITY vim-home "https://www.vim.org">
<!ENTITY vim-fin-du "245 MB"> <!ENTITY vim-fin-du "251 MB">
<!ENTITY vim-fin-sbu "2.9 SBU"> <!ENTITY vim-fin-sbu "3.4 SBU">
<!ENTITY wheel-version "0.44.0"> <!ENTITY wheel-version "0.46.1">
<!ENTITY wheel-size "99 KB"> <!ENTITY wheel-size "54 KB">
<!ENTITY wheel-url "&pypi-src;/w/wheel/wheel-&wheel-version;.tar.gz"> <!ENTITY wheel-url "&pypi-src;/w/wheel/wheel-&wheel-version;.tar.gz">
<!ENTITY wheel-md5 "440ff4fe51579b7ed16f02af8f8d9494"> <!ENTITY wheel-md5 "65e09ee84af36821e3b1e9564aa91bd5">
<!ENTITY wheel-home "&pypi-home;/wheel/"> <!ENTITY wheel-home "&pypi-home;/wheel/">
<!ENTITY wheel-fin-du "1.5 MB"> <!ENTITY wheel-fin-du "1.6 MB">
<!ENTITY wheel-fin-sbu "less than 0.1 SBU"> <!ENTITY wheel-fin-sbu "less than 0.1 SBU">
<!ENTITY xml-parser-version "2.47"> <!ENTITY xml-parser-version "2.47">
@ -794,12 +793,12 @@
<!ENTITY xml-parser-fin-du "2.4 MB"> <!ENTITY xml-parser-fin-du "2.4 MB">
<!ENTITY xml-parser-fin-sbu "less than 0.1 SBU"> <!ENTITY xml-parser-fin-sbu "less than 0.1 SBU">
<!ENTITY xz-version "5.6.2"> <!ENTITY xz-version "5.8.1">
<!ENTITY xz-size "1,277 KB"> <!ENTITY xz-size "1,428 KB">
<!ENTITY xz-url "https://github.com//tukaani-project/xz/releases/download/v&xz-version;/xz-&xz-version;.tar.xz"> <!ENTITY xz-url "https://github.com//tukaani-project/xz/releases/download/v&xz-version;/xz-&xz-version;.tar.xz">
<!ENTITY xz-md5 "bbf73fb28425cebb854328599f85c4cf"> <!ENTITY xz-md5 "cf5e1feb023d22c6bdaa30e84ef3abe3">
<!ENTITY xz-home "https://tukaani.org/xz"> <!ENTITY xz-home "https://tukaani.org/xz">
<!ENTITY xz-tmp-du "20 MB"> <!ENTITY xz-tmp-du "21 MB">
<!ENTITY xz-tmp-sbu "0.1 SBU"> <!ENTITY xz-tmp-sbu "0.1 SBU">
<!ENTITY xz-fin-du "21 MB"> <!ENTITY xz-fin-du "21 MB">
<!ENTITY xz-fin-sbu "0.1 SBU"> <!ENTITY xz-fin-sbu "0.1 SBU">
@ -816,11 +815,11 @@
<!ENTITY zlib-fin-du "6.4 MB"> <!ENTITY zlib-fin-du "6.4 MB">
<!ENTITY zlib-fin-sbu "less than 0.1 SBU"> <!ENTITY zlib-fin-sbu "less than 0.1 SBU">
<!ENTITY zstd-version "1.5.6"> <!ENTITY zstd-version "1.5.7">
<!ENTITY zstd-size "2,351 KB"> <!ENTITY zstd-size "2,378 KB">
<!ENTITY zstd-url "https://github.com/facebook/zstd/releases/download/v&zstd-version;/zstd-&zstd-version;.tar.gz"> <!ENTITY zstd-url "https://github.com/facebook/zstd/releases/download/v&zstd-version;/zstd-&zstd-version;.tar.gz">
<!ENTITY zstd-md5 "5a473726b3445d0e5d6296afd1ab6854"> <!ENTITY zstd-md5 "780fc1896922b1bc52a4e90980cdda48">
<!ENTITY zstd-home "https://facebook.github.io/zstd/"> <!ENTITY zstd-home "https://facebook.github.io/zstd/">
<!ENTITY zstd-fin-du "84 MB"> <!ENTITY zstd-fin-du "85 MB">
<!ENTITY zstd-fin-sbu "0.4 SBU"> <!ENTITY zstd-fin-sbu "0.4 SBU">

View File

@ -3,6 +3,9 @@
"http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [ "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
<!ENTITY % general-entities SYSTEM "../general.ent"> <!ENTITY % general-entities SYSTEM "../general.ent">
%general-entities; %general-entities;
<!ENTITY host-triplet
"<replaceable>&lt;the host triplet&gt;</replaceable>">
]> ]>
<sect1 id="ch-tools-toolchaintechnotes" xreflabel="Toolchain Technical Notes"> <sect1 id="ch-tools-toolchaintechnotes" xreflabel="Toolchain Technical Notes">
@ -44,6 +47,14 @@
book for a cross-toolchain for some purpose other book for a cross-toolchain for some purpose other
than building LFS, unless you really understand what you are doing. than building LFS, unless you really understand what you are doing.
</para> </para>
<para>
It's known installing GCC pass 2 will break the cross-toolchain.
We don't consider it a bug because GCC pass 2 is the last package
to be cross-compiled in the book, and we won't <quote>fix</quote>
it until we really need to cross-compile some package after GCC
pass 2 in the future.
</para>
</note> </note>
<para>Cross-compilation involves some concepts that deserve a section of <para>Cross-compilation involves some concepts that deserve a section of
@ -197,14 +208,105 @@
page</ulink>.</para> page</ulink>.</para>
</note> </note>
<para>In order to fake a cross-compilation in LFS, the name of the host triplet <para>
is slightly adjusted by changing the &quot;vendor&quot; field in the There are two key points for a cross-compilation:
<envar>LFS_TGT</envar> variable so it says &quot;lfs&quot;. We also use the </para>
<parameter>--with-sysroot</parameter> option when building the cross-linker and
cross-compiler, to tell them where to find the needed host files. This <itemizedlist>
ensures that none of the other programs built in <xref <listitem>
linkend="chapter-temporary-tools"/> can link to libraries on the build <para>
machine. Only two stages are mandatory, plus one more for tests.</para> When producing and processing the machine code supposed to be
executed on <quote>the host,</quote> the cross-toolchain must be
used. Note that the native toolchain from <quote>the build</quote>
may be still invoked to generate machine code supposed to be
executed on <quote>the build.</quote> For example, the build system
may compile a generator with the native toolchain, then generate
a C source file with the generator, and finally compile the C
source file with the cross-toolchain so the generated code will
be able to run on <quote>the host.</quote>
</para>
<para>
With an autoconf-based build system, this requirement is ensured
by using the <parameter>--host</parameter> switch to specify
<quote>the host</quote> triplet. With this switch the build
system will use the toolchain components prefixed
with <literal>&host-triplet;</literal>
for generating and processing the machine code for
<quote>the host</quote>; e.g. the compiler will be
<command>&host-triplet;-gcc</command> and the
<command>readelf</command> tool will be
<command>&host-triplet;-readelf</command>.
</para>
</listitem>
<listitem>
<para>
The build system should not attempt to run any generated machine
code supposed to be executed on <quote>the host.</quote> For
example, when building a utility natively, its man page can be
generated by running the utility with the
<parameter>--help</parameter> switch and processing the output,
but generally it's not possible to do so for a cross-compilation
as the utility may fail
to run on <quote>the build</quote>: it's obviously impossible to
run ARM64 machine code on a x86 CPU (without an emulator).
</para>
<para>
With an autoconf-based build system, this requirement is
satisfied in <quote>the cross-compilation mode</quote> where
the optional features requiring to run machine code for
<quote>the host</quote> during the build time are disabled. When <quote>the
host</quote> triplet is explicitly specified, <quote>the
cross-compilation mode</quote> is enabled if and only if either
the <command>configure</command> script fails to run a dummy
program compiled into <quote>the host</quote> machine code, or
<quote>the build</quote> triplet is explicitly specified via the
<parameter>--build</parameter> switch and it's different from
<quote>the host</quote> triplet.
</para>
</listitem>
</itemizedlist>
<para>In order to cross-compile a package for the LFS temporary system,
the name of the system triplet is slightly adjusted by changing the
&quot;vendor&quot; field in the <envar>LFS_TGT</envar> variable so it
says &quot;lfs&quot; and <envar>LFS_TGT</envar> is then specified as
<quote>the host</quote> triplet via <parameter>--host</parameter>, so
the cross-toolchain will be used for generating and processing the
machine code running as a part of the LFS temporary system. And, we
also need to enable <quote>the cross-compilation mode</quote>: despite
<quote>the host</quote> machine code, i.e. the machine code for the LFS
temporary system, is able to execute on the current CPU, it may refer
to a library not available on the <quote>the build</quote> (the host
distro), or some code or data non-exist or defined differently in the
library even if it happens to be available. When cross-compiling a
package for the LFS temporary system, we cannot rely on the
<command>configure</command> script to detect this issue with the
dummy program: the dummy only uses a few components in
<systemitem class='library'>libc</systemitem> that the host distro
<systemitem class='library'>libc</systemitem> likely provides (unless,
maybe the host distro uses a different
<systemitem class='library'>libc</systemitem> implementation like Musl),
so it won't fail like how the really useful programs would likely.
Thus we must explicitly specify <quote>the build</quote> triplet to
enable <quote>the cross-compilation mode.</quote> The value we use is
just the default, i.e. the original system triplet from
<command>config.guess</command> output, but <quote>the cross-compilation
mode</quote> depends on an explicit specification as we've
discussed.</para>
<para>We use the <parameter>--with-sysroot</parameter> option when
building the cross-linker and cross-compiler, to tell them where to find
the needed files for <quote>the host.</quote> This nearly ensures that
none of the other programs built in
<xref linkend="chapter-temporary-tools"/> can link to libraries on
<quote>the build.</quote> The word <quote>nearly</quote> is used because
<command>libtool</command>, a <quote>compatibility</quote> wrapper of
the compiler and the linker for autoconf-based build systems,
can try to be too clever and mistakenly pass options allowing the linker
to find libraries of <quote>the build.</quote>
To prevent this fallout, we need to delete the libtool archive
(<filename class='extension'>.la</filename>) files and fix up an
outdated libtool copy shipped with the Binutils code.</para>
<informaltable align="center"> <informaltable align="center">
<tgroup cols="5"> <tgroup cols="5">
@ -228,7 +330,7 @@
</row> </row>
<row> <row>
<entry>3</entry><entry>lfs</entry><entry>lfs</entry><entry>lfs</entry> <entry>3</entry><entry>lfs</entry><entry>lfs</entry><entry>lfs</entry>
<entry>Rebuild and test cc-lfs using cc-lfs on lfs.</entry> <entry>Rebuild (and maybe test) cc-lfs using cc-lfs on lfs.</entry>
</row> </row>
</tbody> </tbody>
</tgroup> </tgroup>
@ -256,30 +358,11 @@
<para>The upshot of the preceding paragraph is that cc1 is unable to <para>The upshot of the preceding paragraph is that cc1 is unable to
build a fully functional libstdc++ with the degraded libgcc, but cc1 build a fully functional libstdc++ with the degraded libgcc, but cc1
is the only compiler available for building the C/C++ libraries is the only compiler available for building the C/C++ libraries
during stage 2. There are two reasons we don't immediately use the during stage 2. As we've discussed, we cannot run cc-lfs on pc (the
compiler built in stage 2, cc-lfs, to build those libraries.</para> host distro) because it may require some library, code, or data not
available on <quote>the build</quote> (the host distro).
<itemizedlist> So when we build gcc stage 2, we override the library
<listitem> search path to link libstdc++ against the newly
<para>
Generally speaking, cc-lfs cannot run on pc (the host system). Even though the
triplets for pc and lfs are compatible with each other, an executable
for lfs must depend on glibc-&glibc-version;; the host distro
may utilize either a different implementation of libc (for example, musl), or
a previous release of glibc (for example, glibc-2.13).
</para>
</listitem>
<listitem>
<para>
Even if cc-lfs can run on pc, using it on pc would create
a risk of linking to the pc libraries, since cc-lfs is a native
compiler.
</para>
</listitem>
</itemizedlist>
<para>So when we build gcc stage 2, we instruct the building system to
rebuild libgcc and libstdc++ with cc1, but we link libstdc++ to the newly
rebuilt libgcc instead of the old, degraded build. This makes the rebuilt rebuilt libgcc instead of the old, degraded build. This makes the rebuilt
libstdc++ fully functional.</para> libstdc++ fully functional.</para>
@ -290,12 +373,11 @@
package on a completed LFS system, the reinstalled content of the package package on a completed LFS system, the reinstalled content of the package
should be the same as the content of the same package when first installed in should be the same as the content of the same package when first installed in
&ch-final;. The temporary packages installed in &ch-tmp-cross; or &ch-final;. The temporary packages installed in &ch-tmp-cross; or
&ch-tmp-chroot; cannot satisfy this requirement, because some of them &ch-tmp-chroot; cannot satisfy this requirement, because some optional
are built without optional dependencies, and autoconf cannot features of them are disabled because of either the missing
perform some feature checks in &ch-tmp-cross; because of cross-compilation, dependencies or the <quote>cross-compilation mode.</quote>
causing the temporary packages to lack optional features, Additionally, a minor reason for rebuilding the packages is to run the
or use suboptimal code routines. Additionally, a minor reason for test suites.</para>
rebuilding the packages is to run the test suites.</para>
</sect2> </sect2>
@ -357,39 +439,25 @@ checking what linker to use... /mnt/lfs/tools/i686-lfs-linux-gnu/bin/ld</compute
standard C library (glibc) to interface with features that the Linux standard C library (glibc) to interface with features that the Linux
kernel will provide.</para> kernel will provide.</para>
<para>Next comes glibc. The most important <para>Next comes glibc. This is the first package that we cross-compile.
considerations for building glibc are the compiler, binary tools, and We use the <parameter>--host=$LFS_TGT</parameter> option to make
kernel headers. The compiler and binary tools are generally not an issue the build system to use those tools prefixed with
since glibc will always those relating to the <parameter>--host</parameter> <literal>$LFS_TGT-</literal>, and the
parameter passed to its configure script; e.g., in our case, the compiler <parameter>--build=$(../scripts/config.guess)</parameter> option to
will be <command>$LFS_TGT-gcc</command> and the <command>readelf</command> enable <quote>the cross-compilation mode</quote> as we've discussed.
tool will be <command>$LFS_TGT-readelf</command>. The kernel headers can The <envar>DESTDIR</envar> variable is used to force installation into
be a bit more complicated. Therefore, we take no risks and use the LFS file system.</para>
the available configure switch to enforce the correct selection. After
the run of <command>configure</command>, check the contents of the
<filename>config.make</filename> file in the <filename
class="directory">build</filename> directory for all important details.
These items highlight an important aspect of the glibc
package&mdash;it is very self-sufficient in terms of its build machinery,
and generally does not rely on toolchain defaults.</para>
<para>As mentioned above, the standard C++ library is compiled next, followed in <para>As mentioned above, the standard C++ library is compiled next, followed in
<xref linkend="chapter-temporary-tools"/> by other programs that must <xref linkend="chapter-temporary-tools"/> by other programs that must
be cross-compiled to break circular dependencies at build time. be cross-compiled to break circular dependencies at build time.
The install step of all those packages uses the The steps for those packages are similar to the steps for glibc.</para>
<envar>DESTDIR</envar> variable to force installation
in the LFS filesystem.</para>
<para>At the end of <xref linkend="chapter-temporary-tools"/> the native <para>At the end of <xref linkend="chapter-temporary-tools"/> the native
LFS compiler is installed. First binutils-pass2 is built, LFS compiler is installed. First binutils-pass2 is built,
in the same <envar>DESTDIR</envar> directory as the other programs, in the same <envar>DESTDIR</envar> directory as the other programs,
then the second pass of gcc is constructed, omitting some then the second pass of gcc is constructed, omitting some
non-critical libraries. Due to some weird logic in gcc's non-critical libraries.</para>
configure script, <envar>CC_FOR_TARGET</envar> ends up as
<command>cc</command> when the host is the same as the target, but
different from the build system. This is why
<parameter>CC_FOR_TARGET=$LFS_TGT-gcc</parameter> is declared explicitly
as one of the configuration options.</para>
<para>Upon entering the chroot environment in <xref <para>Upon entering the chroot environment in <xref
linkend="chapter-chroot-temporary-tools"/>, linkend="chapter-chroot-temporary-tools"/>,

View File

@ -7,13 +7,18 @@
<!ENTITY bash-upstream-fixes-patch-md5 "2d1691a629c558e894dbb78ee6bf34ef"> <!ENTITY bash-upstream-fixes-patch-md5 "2d1691a629c558e894dbb78ee6bf34ef">
<!ENTITY bash-upstream-fixes-patch-size "5.9 KB"> <!ENTITY bash-upstream-fixes-patch-size "5.9 KB">
--> -->
<!--
<!ENTITY binutils-upstream-patch "binutils-&binutils-version;-upstream_fix-1.patch">
<!ENTITY binutils-upstream-patch-md5 "eddd9860af589ec328541a9ec5e5928e">
<!ENTITY binutils-upstream-patch-size "18 KB">
-->
<!ENTITY bzip2-docs-patch "bzip2-&bzip2-version;-install_docs-1.patch"> <!ENTITY bzip2-docs-patch "bzip2-&bzip2-version;-install_docs-1.patch">
<!ENTITY bzip2-docs-patch-md5 "6a5ac7e89b791aae556de0f745916f7f"> <!ENTITY bzip2-docs-patch-md5 "6a5ac7e89b791aae556de0f745916f7f">
<!ENTITY bzip2-docs-patch-size "1.6 KB"> <!ENTITY bzip2-docs-patch-size "1.6 KB">
<!ENTITY coreutils-i18n-patch "coreutils-&coreutils-version;-i18n-2.patch"> <!ENTITY coreutils-i18n-patch "coreutils-&coreutils-version;-i18n-1.patch">
<!ENTITY coreutils-i18n-patch-md5 "58961caf5bbdb02462591fa506c73b6d"> <!ENTITY coreutils-i18n-patch-md5 "33ebfad32b2dfb8417c3335c08671206">
<!ENTITY coreutils-i18n-patch-size "164 KB"> <!ENTITY coreutils-i18n-patch-size "159 KB">
<!ENTITY expect-gcc14-patch "expect-&expect-version;-gcc14-1.patch"> <!ENTITY expect-gcc14-patch "expect-&expect-version;-gcc14-1.patch">
<!ENTITY expect-gcc14-patch-md5 "0b8b5ac411d011263ad40b0664c669f0"> <!ENTITY expect-gcc14-patch-md5 "0b8b5ac411d011263ad40b0664c669f0">
@ -36,7 +41,7 @@
<!ENTITY readline-fixes-patch-size "13 KB"> <!ENTITY readline-fixes-patch-size "13 KB">
--> -->
<!ENTITY sysvinit-consolidated-patch "sysvinit-&sysvinit-version;-consolidated-1.patch"> <!ENTITY sysvinit-consolidated-patch "sysvinit-&sysvinit-version;-consolidated-1.patch">
<!ENTITY sysvinit-consolidated-patch-md5 "17ffccbb8e18c39e8cedc32046f3a475"> <!ENTITY sysvinit-consolidated-patch-md5 "3af8fd8e13cad481eeeaa48be4247445">
<!ENTITY sysvinit-consolidated-patch-size "2.5 KB"> <!ENTITY sysvinit-consolidated-patch-size "2.5 KB">
<!-- <!--
<!ENTITY systemd-upstream-patch "systemd-&systemd-version;-upstream_fixes-1.patch"> <!ENTITY systemd-upstream-patch "systemd-&systemd-version;-upstream_fixes-1.patch">

View File

@ -32,7 +32,7 @@
Standard Base (LSB) Version 5.0 (2015)</ulink></para> Standard Base (LSB) Version 5.0 (2015)</ulink></para>
<para>The LSB has four separate specifications: Core, Desktop, <para>The LSB has four separate specifications: Core, Desktop,
Runtime Languages, and Imaging. Some parts of Core and Desktop Languages, and Imaging. Some parts of Core and Desktop
specifications are architecture specific. There are also two trial specifications are architecture specific. There are also two trial
specifications: Gtk3 and Graphics. LFS attempts to conform to the LSB specifications: Gtk3 and Graphics. LFS attempts to conform to the LSB
specifications for the IA32 (32-bit x86) or AMD64 (x86_64) specifications for the IA32 (32-bit x86) or AMD64 (x86_64)
@ -50,7 +50,7 @@
<para>While it is possible to create a complete system that will pass the LSB <para>While it is possible to create a complete system that will pass the LSB
certification tests <quote>from scratch,</quote> 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 that are beyond the scope of the LFS book. Installation instructions for some of these
additional packages can be found in BLFS. </para> additional packages can be found in BLFS. </para>
<variablelist> <variablelist>
@ -62,9 +62,12 @@
<varlistentry> <varlistentry>
<term><emphasis>LSB Core:</emphasis></term> <term><emphasis>LSB Core:</emphasis></term>
<listitem> <listitem>
<para>Bash, Bc, Binutils, Coreutils, Diffutils, File, Findutils, Gawk, <para>
Grep, Gzip, M4, Man-DB, Ncurses, Procps, Psmisc, Sed, Bash, Bc, Binutils, Coreutils, Diffutils, File, Findutils, Gawk,
Shadow, Tar, Util-linux, Zlib</para> GCC, Gettext, Glibc, Grep, Gzip, M4, Man-DB, Procps, Psmisc,
Sed, Shadow, <phrase revision='sysv'>SysVinit</phrase><phrase
revision='systemd'>Systemd</phrase>, Tar, Util-linux, Zlib
</para>
</listitem> </listitem>
</varlistentry> </varlistentry>
@ -76,9 +79,9 @@
</varlistentry> </varlistentry>
<varlistentry> <varlistentry>
<term><emphasis>LSB Runtime Languages:</emphasis></term> <term><emphasis>LSB Languages:</emphasis></term>
<listitem> <listitem>
<para>Perl, Python</para> <para>Perl</para>
</listitem> </listitem>
</varlistentry> </varlistentry>
@ -107,8 +110,9 @@
<varlistentry> <varlistentry>
<term><emphasis>LSB Core:</emphasis></term> <term><emphasis>LSB Core:</emphasis></term>
<listitem> <listitem>
<para>At, Batch (a part of At), Cpio, Ed, Fcrontab, LSB-Tools, NSPR, <para>At, Batch (a part of At), BLFS Bash Startup Files, Cpio, Ed,
NSS, PAM, Pax, Sendmail (or Postfix or Exim), time Fcrontab, LSB-Tools, NSPR, NSS, Linux-PAM, Pax, Sendmail
(or Postfix or Exim), Time
</para> </para>
</listitem> </listitem>
</varlistentry> </varlistentry>
@ -117,15 +121,15 @@
<term><emphasis>LSB Desktop:</emphasis></term> <term><emphasis>LSB Desktop:</emphasis></term>
<listitem> <listitem>
<para>Alsa, ATK, Cairo, Desktop-file-utils, Freetype, Fontconfig, <para>Alsa, ATK, Cairo, Desktop-file-utils, Freetype, Fontconfig,
Gdk-pixbuf, Glib2, GTK+2, Icon-naming-utils, Libjpeg-turbo, Libpng, Libtiff, Gdk-pixbuf, Glib2, GLU, Icon-naming-utils, Libjpeg-turbo,
Libxml2, MesaLib, Pango, Xdg-utils, Xorg</para> Libxml2, Mesa, Pango, Xdg-utils, Xorg</para>
</listitem> </listitem>
</varlistentry> </varlistentry>
<varlistentry> <varlistentry>
<term><emphasis>LSB Runtime Languages:</emphasis></term> <term><emphasis>LSB Languages:</emphasis></term>
<listitem> <listitem>
<para>Libxml2, Libxslt </para> <para>Libxml2, Libxslt</para>
</listitem> </listitem>
</varlistentry> </varlistentry>
@ -146,29 +150,59 @@
</variablelist> </variablelist>
<variablelist> <variablelist>
<bridgehead renderas="sect3">Packages not supplied by LFS or BLFS <bridgehead renderas="sect3">Components not supplied or optionally
needed to satisfy the LSB Requirements</bridgehead> supplied by LFS or BLFS needed to satisfy the LSB
Requirements</bridgehead>
<?dbfo list-presentation="list"?> <?dbfo list-presentation="list"?>
<?dbhtml list-presentation="table"?> <?dbhtml list-presentation="table"?>
<varlistentry> <varlistentry>
<term><emphasis>LSB Core:</emphasis></term> <term><emphasis>LSB Core:</emphasis></term>
<listitem> <listitem>
<para>None</para> <para>
<command>install_initd</command>,
<filename class='libraryfile'>libcrypt.so.1</filename>
(can be provided with optional instructions for the LFS
Libxcrypt package),
<filename class='libraryfile'>libncurses.so.5</filename>
(can be provided with optional instructions for the LFS
Ncurses package),
<filename class='libraryfile'>libncursesw.so.5</filename>
(but <filename class='libraryfile'>libncursesw.so.6</filename>
is provided by the LFS Ncurses package)
</para>
</listitem> </listitem>
</varlistentry> </varlistentry>
<varlistentry> <varlistentry>
<term><emphasis>LSB Desktop:</emphasis></term> <term><emphasis>LSB Desktop:</emphasis></term>
<listitem> <listitem>
<para>Qt4 (but Qt5 is provided)</para> <para>
<filename class='libraryfile'>libgdk-x11-2.0.so</filename>
(but <filename class='libraryfile'>libgdk-3.so</filename>
is provided by the BLFS GTK+-3 package),
<filename class='libraryfile'>libgtk-x11-2.0.so</filename>
(but <filename class='libraryfile'>libgtk-3.so</filename>
and <filename class='libraryfile'>libgtk-4.so</filename>
are provided by the BLFS GTK+-3 and GTK-4 packages),
<filename class='libraryfile'>libpng12.so</filename>
(but <filename class='libraryfile'>libpng16.so</filename>
is provided by the BLFS Libpng package),
<filename class='libraryfile'>libQt*.so.4</filename>
(but <filename class='libraryfile'>libQt6*.so.6</filename>
are provided by the BLFS Qt6 package),
<filename class='libraryfile'>libtiff.so.4</filename>
(but <filename class='libraryfile'>libtiff.so.6</filename>
is provided by the BLFS Libtiff package)
</para>
</listitem> </listitem>
</varlistentry> </varlistentry>
<varlistentry> <varlistentry>
<term><emphasis>LSB Runtime Languages:</emphasis></term> <term><emphasis>LSB Languages:</emphasis></term>
<listitem> <listitem>
<para>None</para> <para><command>/usr/bin/python</command> (LSB requires Python2 but
LFS and BLFS only provide Python3)</para>
</listitem> </listitem>
</varlistentry> </varlistentry>
@ -182,7 +216,11 @@
<varlistentry> <varlistentry>
<term><emphasis>LSB Gtk3 and LSB Graphics (Trial Use):</emphasis></term> <term><emphasis>LSB Gtk3 and LSB Graphics (Trial Use):</emphasis></term>
<listitem> <listitem>
<para>None</para> <para>
<filename class='libraryfile'>libpng15.so</filename>
(but <filename class='libraryfile'>libpng16.so</filename>
is provided by the BLFS Libpng package)
</para>
</listitem> </listitem>
</varlistentry> </varlistentry>

View File

@ -27,8 +27,12 @@
Prevent creation of dummy sect1 files used to emulate sub-chapters. Prevent creation of dummy sect1 files used to emulate sub-chapters.
The original template is in {docbook-xsl}/xhtml/chunk-code.xsl The original template is in {docbook-xsl}/xhtml/chunk-code.xsl
It also matches other sect* tags. The code for those tags are It also matches other sect* tags. The code for those tags are
unchanged. --> unchanged. Note that the priority attribute is not strictly
<xsl:template match="sect1"> required, because the original template is less restrictive in
matching, so has less precedence. But in case the docbook dev
add a match="sect1" template in their chunk-code.xsl, then it will
be necessary!-->
<xsl:template match="sect1" priority="1">
<xsl:variable name="ischunk"> <xsl:variable name="ischunk">
<xsl:call-template name="chunk"/> <xsl:call-template name="chunk"/>
</xsl:variable> </xsl:variable>

View File

@ -80,6 +80,16 @@
</xsl:choose> </xsl:choose>
</xsl:template> </xsl:template>
<xsl:template match="footnote/para[1]">
<!--A template with the same match (+others) exists in
{docbook-xsl}/pdf/footnote.xsl, so it is
only imported, and it has less precedence than the above one, which
matches para and does not account for footnote number.
We need this one at the same level, but just apply the
docbook-xsl one.-->
<xsl:apply-imports/>
</xsl:template>
<!-- screen, literallayout: <!-- screen, literallayout:
Self-made template that creates a fo:block wrapper with keep-together Self-made template that creates a fo:block wrapper with keep-together
processing instruction support around the output generated by processing instruction support around the output generated by

View File

@ -43,6 +43,16 @@
</xsl:choose> </xsl:choose>
</xsl:template> </xsl:template>
<!-- footnote/para[1]: this template is in {docbook-xsl}/xhtml/footnote.xsl
which is imported. This means that template has less precedence
than the above one. To have higher precedence, it must be at
the same import level (then, since it is more restrictive, it is
applied preferably to the above).-->
<xsl:template match="footnote/para[1]">
<!-- just use the original template -->
<xsl:apply-imports/>
</xsl:template>
<!-- screen: <!-- screen:
Changed class attribute asignament to fit our look needs. Changed class attribute asignament to fit our look needs.
Removed unused line numbering support. --> Removed unused line numbering support. -->

View File

@ -166,7 +166,7 @@
</xsl:choose> </xsl:choose>
<xsl:call-template name="language.attribute"/> <xsl:call-template name="language.attribute"/>
<xsl:apply-templates/> <xsl:apply-templates/>
<xsl:apply-templates select="sect1info" mode="svn-keys"/> <xsl:call-template name="process.footnotes"/>
</div> </div>
</xsl:template> </xsl:template>