mirror of
https://git.linuxfromscratch.org/lfs.git
synced 2025-06-19 11:49:20 +01:00
Merge remote-tracking branch 'origin/trunk' into xry111/arm64
This commit is contained in:
commit
cdc04a1c2a
@ -1863,7 +1863,9 @@
|
||||
<segtitle>&external;</segtitle>
|
||||
<seglistitem>
|
||||
<seg>
|
||||
<ulink url="&blfs-book;general/cpio.html">cpio</ulink>
|
||||
<ulink url="&blfs-book;general/cpio.html">cpio</ulink> and
|
||||
<ulink url="&blfs-book;general/llvm.html">LLVM</ulink>
|
||||
(with Clang)
|
||||
</seg>
|
||||
</seglistitem>
|
||||
</segmentedlist>
|
||||
|
@ -39,6 +39,74 @@
|
||||
<listitem revision="sysv"> or <listitem revision="systemd"> as
|
||||
appropriate for the entry or if needed the entire day's listitem.
|
||||
-->
|
||||
<listitem>
|
||||
<para>2022-10-17</para>
|
||||
<itemizedlist>
|
||||
<listitem>
|
||||
<para>[bdubbs] - Update to linux-6.0.2 (Security update). Fixes
|
||||
<ulink url="&lfs-ticket-root;5138">#5138</ulink>.</para>
|
||||
</listitem>
|
||||
</itemizedlist>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>2022-10-15</para>
|
||||
<itemizedlist>
|
||||
<listitem>
|
||||
<para>[bdubbs] - Update to iana-etc-20221007. Addresses
|
||||
<ulink url="&lfs-ticket-root;5006">#5006</ulink>.</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>[bdubbs] - Update to vim-9.0.0739. Addresses
|
||||
<ulink url="&lfs-ticket-root;5006">#5006</ulink>.</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>[bdubbs] - Add upstream patches to readline and bash. Fixes
|
||||
<ulink url="&lfs-ticket-root;5135">#5131</ulink>.</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>[bdubbs] - Update to zlib-1.2.13. Fixes
|
||||
<ulink url="&lfs-ticket-root;5137">#5137</ulink>.</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>[bdubbs] - Update to man-pages-6.00. Fixes
|
||||
<ulink url="&lfs-ticket-root;5136">#5136</ulink>.</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>[bdubbs] - Update to gettext-0.21.1. Fixes
|
||||
<ulink url="&lfs-ticket-root;5130">#5130</ulink>.</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>[bdubbs] - Update to iproute2-6.0.0. Fixes
|
||||
<ulink url="&lfs-ticket-root;5127">#5127</ulink>.</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>[bdubbs] - Update to meson-0.63.3. Fixes
|
||||
<ulink url="&lfs-ticket-root;5129">#5129</ulink>.</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>[bdubbs] - Update to Python-3.10.8. Fixes
|
||||
<ulink url="&lfs-ticket-root;5133">#5133</ulink>.</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>[bdubbs] - Update to xz-5.2.7. Fixes
|
||||
<ulink url="&lfs-ticket-root;5133">#5133</ulink>.</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>[bdubbs] - Update to tzdata-2022e. Fixes
|
||||
<ulink url="&lfs-ticket-root;5119">#5134</ulink>.</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>[bdubbs] - Update to linux-6.0.1. Fixes
|
||||
<ulink url="&lfs-ticket-root;5135">#5135</ulink>.</para>
|
||||
</listitem>
|
||||
<listitem revision="systemd">
|
||||
<para>[bdubbs] - Update to dbus-1.14.4. Fixes
|
||||
<ulink url="&lfs-ticket-root;5128">#5128</ulink>.</para>
|
||||
</listitem>
|
||||
</itemizedlist>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>2022-10-04</para>
|
||||
<itemizedlist>
|
||||
@ -76,7 +144,7 @@
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>[bdubbs] - Update to libcap-2.66. Fixes
|
||||
<ulink url="&lfs-ticket-root;512">#5120</ulink>.</para>
|
||||
<ulink url="&lfs-ticket-root;5120">#5120</ulink>.</para>
|
||||
</listitem>
|
||||
<listitem revision="systemd">
|
||||
<para>[bdubbs] - Update to dbus-1.14.2. Fixes
|
||||
|
@ -15,10 +15,10 @@
|
||||
existing Linux system (the host) will be used as a starting point to
|
||||
provide necessary programs, including a compiler, linker, and shell,
|
||||
to build the new system. Select the <quote>development</quote> option
|
||||
during the distribution installation to be able to access these
|
||||
during the distribution installation to include these
|
||||
tools.</para>
|
||||
|
||||
<para>As an alternative to installing a separate distribution onto your
|
||||
<para>As an alternative to installing a separate distribution on your
|
||||
machine, you may wish to use <!-- the Linux From Scratch LiveCD or --> a LiveCD from a
|
||||
commercial distribution. <!-- The LFS LiveCD works well as a host system,
|
||||
providing all the tools you need to successfully follow the instructions in
|
||||
@ -36,47 +36,47 @@
|
||||
</note> -->
|
||||
|
||||
<para><xref linkend="chapter-partitioning"/> of this book describes how
|
||||
to create a new Linux native partition and file system. This is the place
|
||||
to create a new Linux native partition and file system,
|
||||
where the new LFS system will be compiled and installed. <xref
|
||||
linkend="chapter-getting-materials"/> explains which packages and
|
||||
patches need to be downloaded to build an LFS system and how to store
|
||||
patches must be downloaded to build an LFS system, and how to store
|
||||
them on the new file system. <xref linkend="chapter-final-preps"/>
|
||||
discusses the setup of an appropriate working environment. Please read
|
||||
<xref linkend="chapter-final-preps"/> carefully as it explains several
|
||||
important issues you need be aware of before beginning to
|
||||
important issues you should be aware of before you begin to
|
||||
work your way through <xref linkend="chapter-cross-tools"/> and beyond.</para>
|
||||
|
||||
<para><xref linkend="chapter-cross-tools"/> explains the installation of
|
||||
the initial tool chain, (binutils, gcc, and glibc) using cross compilation
|
||||
the initial tool chain, (binutils, gcc, and glibc) using cross-compilation
|
||||
techniques to isolate the new tools from the host system.</para>
|
||||
|
||||
<para><xref linkend="chapter-temporary-tools"/> shows you how to
|
||||
cross-compile basic utilities using the just built cross-toolchain.</para>
|
||||
|
||||
<para><xref linkend="chapter-chroot-temporary-tools"/> then enters a
|
||||
"chroot" environment and uses the previously built tools to build
|
||||
the additional tools needed to build and test the final system.</para>
|
||||
"chroot" environment, where we use the new tools to build all
|
||||
the rest of the tools needed to create the LFS system.</para>
|
||||
|
||||
<para>This effort to isolate the new system from the host distribution may
|
||||
seem excessive. A full technical explanation as to why this is done is
|
||||
provided in <xref linkend="ch-tools-toolchaintechnotes"/>.</para>
|
||||
|
||||
<para>In <xref linkend="chapter-building-system"/> the
|
||||
full LFS system is built. Another advantage provided by the chroot
|
||||
full-blown LFS system is built. Another advantage provided by the chroot
|
||||
environment is that it allows you to continue using the host system
|
||||
while LFS is being built. While waiting for package compilations to
|
||||
complete, you can continue using your computer as normal.</para>
|
||||
complete, you can continue using your computer as usual.</para>
|
||||
|
||||
<para>To finish the installation, the basic system configuration is set up in
|
||||
<xref linkend="chapter-config"/>, and the kernel and boot loader are set
|
||||
up in <xref linkend="chapter-bootable"/>. <xref linkend="chapter-finalizing"/>
|
||||
<xref linkend="chapter-config"/>, and the kernel and boot loader are created
|
||||
in <xref linkend="chapter-bootable"/>. <xref linkend="chapter-finalizing"/>
|
||||
contains information on continuing the LFS experience beyond this book.
|
||||
After the steps in this book have been implemented, the computer will be
|
||||
ready to reboot into the new LFS system.</para>
|
||||
After the steps in this chapter have been implemented, the computer is
|
||||
ready to boot into the new LFS system.</para>
|
||||
|
||||
<para>This is the process in a nutshell. Detailed information on each
|
||||
step is discussed in the following chapters and package descriptions.
|
||||
Items that may seem complicated will be clarified, and everything will
|
||||
fall into place as you embark on the LFS adventure.</para>
|
||||
step is presented in the following chapters.
|
||||
Items that seem complicated now will be clarified, and everything will
|
||||
fall into place as you commence your LFS adventure.</para>
|
||||
|
||||
</sect1>
|
||||
|
@ -15,17 +15,18 @@
|
||||
|
||||
<para>If during the building of the LFS system you encounter any
|
||||
errors, have any questions, or think there is a typo in the book,
|
||||
please start by consulting the Frequently Asked Questions (FAQ)
|
||||
that is located at <ulink url="&faq-root;"/>.</para>
|
||||
please start by consulting the list of Frequently Asked Questions (FAQ),
|
||||
located at <ulink url="&faq-root;"/>.</para>
|
||||
|
||||
</sect2>
|
||||
|
||||
<sect2 id="ch-intro-maillists" xreflabel="Chapter 1 - Mailing Lists">
|
||||
<title>Mailing Lists</title>
|
||||
|
||||
<para>The <uri>linuxfromscratch.org</uri> server hosts a number of mailing
|
||||
<para>The <systemitem class='domainname'>linuxfromscratch.org</systemitem>
|
||||
server hosts a number of mailing
|
||||
lists used for the development of the LFS project. These lists include the
|
||||
main development and support lists, among others. If the FAQ does not solve
|
||||
main development and support lists, among others. If the FAQ do not solve
|
||||
the problem you are having, the next step would be to search the mailing
|
||||
lists at <ulink url="&lfs-root;search.html"/>.</para>
|
||||
|
||||
@ -53,10 +54,11 @@
|
||||
<sect2 id="ch-intro-irc">
|
||||
<title>IRC</title>
|
||||
|
||||
<para>Several members of the LFS community offer assistance on Internet
|
||||
Relay Chat (IRC). Before using this support, please make sure that your
|
||||
<para>Several members of the LFS community offer assistance via Internet
|
||||
Relay Chat (IRC). Before using this support, please make sure your
|
||||
question is not already answered in the LFS FAQ or the mailing list
|
||||
archives. You can find the IRC network at <uri>irc.libera.chat</uri>.
|
||||
archives. You can find the IRC network at
|
||||
<systemitem class='domainname'>irc.libera.chat</systemitem>.
|
||||
The support channel is named #lfs-support.</para>
|
||||
|
||||
</sect2>
|
||||
|
@ -11,16 +11,16 @@
|
||||
|
||||
<title>What's new since the last release</title>
|
||||
|
||||
<para>In 11.3 release, <parameter>--enable-default-pie</parameter>
|
||||
<para>In the 11.3 release, <parameter>--enable-default-pie</parameter>
|
||||
and <parameter>--enable-default-ssp</parameter> are enabled for GCC.
|
||||
They can mitigate some type of malicious attacks but they cannot provide
|
||||
a full protection. In case if you are reading a programming textbook,
|
||||
you may need to disable PIE and SSP with GCC options
|
||||
<parameter>-fno-pie -no-pie -fno-stack-protection</parameter>
|
||||
because some textbooks assume they were disabled by default.</para>
|
||||
These techniques can mitigate some malicious attacks, but they do not provide
|
||||
perfect security. If you are reading LFS and a programming textbook,
|
||||
you may need to disable PIE and SSP with the GCC options
|
||||
<parameter>-fno-pie -no-pie -fno-stack-protection</parameter>,
|
||||
because some textbooks assume these options are disabled by default.</para>
|
||||
|
||||
<para>Below is a list of package updates made since the previous
|
||||
release of the book.</para>
|
||||
<para>Here is a list of the packages updated since the previous
|
||||
release of LFS.</para>
|
||||
|
||||
<!--
|
||||
Every package in the book is listed in the "Upgraded to:" section.
|
||||
@ -106,9 +106,9 @@
|
||||
<!--<listitem>
|
||||
<para>GDBM-&gdbm-version;</para>
|
||||
</listitem>-->
|
||||
<!--<listitem>
|
||||
<listitem>
|
||||
<para>Gettext-&gettext-version;</para>
|
||||
</listitem>-->
|
||||
</listitem>
|
||||
<!--<listitem>
|
||||
<para>Glibc-&glibc-version;</para>
|
||||
</listitem>-->
|
||||
@ -139,9 +139,9 @@
|
||||
<!--<listitem>
|
||||
<para>Intltool-&intltool-version;</para>
|
||||
</listitem>-->
|
||||
<!--<listitem>
|
||||
<listitem>
|
||||
<para>IPRoute2-&iproute2-version;</para>
|
||||
</listitem>-->
|
||||
</listitem>
|
||||
<!--<listitem revision="systemd">
|
||||
<para>Jinja2-&jinja2-version;</para>
|
||||
</listitem>-->
|
||||
@ -184,9 +184,9 @@
|
||||
<!--<listitem>
|
||||
<para>Man-DB-&man-db-version;</para>
|
||||
</listitem>-->
|
||||
<!--<listitem>
|
||||
<listitem>
|
||||
<para>Man-pages-&man-pages-version;</para>
|
||||
</listitem>-->
|
||||
</listitem>
|
||||
<!--<listitem revision="systemd">
|
||||
<para>MarkupSafe-&markupsafe-version;</para>
|
||||
</listitem>-->
|
||||
@ -259,18 +259,18 @@
|
||||
<!--<listitem>
|
||||
<para>Util-Linux-&util-linux-version;</para>
|
||||
</listitem>-->
|
||||
<!--<listitem>
|
||||
<listitem>
|
||||
<para>Vim-&vim-version;</para>
|
||||
</listitem>-->
|
||||
</listitem>
|
||||
<!--<listitem>
|
||||
<para>XML-Parser-&xml-parser-version;</para>
|
||||
</listitem>-->
|
||||
<!--<listitem>
|
||||
<listitem>
|
||||
<para>XZ-Utils-&xz-version;</para>
|
||||
</listitem>-->
|
||||
<!--<listitem>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>Zlib-&zlib-version;</para>
|
||||
</listitem>-->
|
||||
</listitem>
|
||||
<!--<listitem>
|
||||
<para>Zstd-&zstd-version;</para>
|
||||
</listitem>-->
|
||||
@ -289,9 +289,12 @@
|
||||
<title>Added:</title>
|
||||
<listitem><para></para></listitem> <!-- satisfy build -->
|
||||
|
||||
<!--<listitem>
|
||||
<para>&xz-upstream-fix-patch;</para>
|
||||
</listitem>-->
|
||||
<listitem>
|
||||
<para>&bash-fixes-patch;</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>&readline-fixes-patch;</para>
|
||||
</listitem>
|
||||
</itemizedlist>
|
||||
|
||||
<itemizedlist>
|
||||
|
@ -83,7 +83,7 @@
|
||||
udev.</para>
|
||||
|
||||
<para>If the host kernel is earlier than &min-kernel; you will need to replace
|
||||
the kernel with a more up to date version. There are two ways
|
||||
the kernel with a more up-to-date version. There are two ways
|
||||
you can go about this. First, see if your Linux vendor provides a &min-kernel;
|
||||
or later kernel package. If so, you may wish to install it. If your
|
||||
vendor doesn't offer an acceptable kernel package, or you would prefer not to
|
||||
@ -148,7 +148,7 @@
|
||||
<!--<title> </title>-->
|
||||
|
||||
<para >To see whether your host system has all the appropriate versions, and
|
||||
the ability to compile programs, run the following:</para>
|
||||
the ability to compile programs, run the following commands:</para>
|
||||
|
||||
<screen role="nodump"><userinput>cat > version-check.sh << "EOF"
|
||||
<literal>#!/bin/bash
|
||||
|
@ -12,22 +12,22 @@
|
||||
|
||||
<para>LFS is designed to be built in one session. That is, the
|
||||
instructions assume that the system will not be shut down
|
||||
during the process. That does not mean that the system has to
|
||||
be done in one sitting. The issue is that certain procedures
|
||||
have to be re-accomplished after a reboot if resuming LFS at
|
||||
during the process. This does not mean that the system has to
|
||||
be built in one sitting. The issue is that certain procedures
|
||||
must be repeated after a reboot when resuming LFS at
|
||||
different points.</para>
|
||||
|
||||
<sect2>
|
||||
<title>Chapters 1–4</title>
|
||||
|
||||
<para>These chapters are accomplished on the host system. When
|
||||
restarting, be careful of the following:</para>
|
||||
<para>These chapters run commands on the host system. When
|
||||
restarting, be certain of one thing:</para>
|
||||
|
||||
<itemizedlist>
|
||||
<listitem>
|
||||
<para>Procedures done as the
|
||||
<para>Procedures performed as the
|
||||
<systemitem class="username">root</systemitem> user after Section
|
||||
2.4 need to have the LFS environment variable set
|
||||
2.4 must have the LFS environment variable set
|
||||
<emphasis>FOR THE ROOT USER</emphasis>.</para>
|
||||
</listitem>
|
||||
</itemizedlist>
|
||||
@ -44,7 +44,7 @@
|
||||
<listitem>
|
||||
<para>These two chapters <emphasis>must</emphasis> be done as user
|
||||
<systemitem class="username">lfs</systemitem>.
|
||||
A <command>su - lfs</command> command must be issued before any task in these
|
||||
A <command>su - lfs</command> command must be issued before performing any task in these
|
||||
chapters. If you don't do that, you are at risk of installing packages to the
|
||||
host, and potentially rendering it unusable.</para>
|
||||
</listitem>
|
||||
@ -52,8 +52,8 @@
|
||||
<listitem>
|
||||
<para>The procedures in <xref linkend='ch-tools-generalinstructions'/>
|
||||
are critical. If there is any
|
||||
doubt about installing a package, ensure any previously expanded
|
||||
tarballs are removed, then re-extract the package files, and complete all
|
||||
doubt a package has been installed correctly, ensure the previously expanded
|
||||
tarball has been removed, then re-extract the package, and complete all
|
||||
the instructions in that section.</para>
|
||||
</listitem>
|
||||
</itemizedlist>
|
||||
@ -77,7 +77,7 @@
|
||||
<listitem>
|
||||
<para> When entering chroot, the LFS environment variable must be set
|
||||
for <systemitem class="username">root</systemitem>. The LFS
|
||||
variable is not used after entering the chroot environment.</para>
|
||||
variable is not used after the chroot environment has been entered.</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
|
@ -26,7 +26,7 @@
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
-->
|
||||
<!--
|
||||
|
||||
<varlistentry>
|
||||
<term>Bash Upstream Fixes Patch - <token>&bash-fixes-patch-size;</token>:</term>
|
||||
<listitem>
|
||||
@ -34,7 +34,7 @@
|
||||
<para>MD5 sum: <literal>&bash-fixes-patch-md5;</literal></para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
-->
|
||||
|
||||
<!--
|
||||
<varlistentry>
|
||||
<term>Binutils LTO Fix Patch - <token>&binutils-lto-patch-size;</token>:</term>
|
||||
@ -118,15 +118,15 @@
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
-->
|
||||
<!--
|
||||
|
||||
<varlistentry>
|
||||
<term>Shadow Segfault Fix Patch - <token>&shadow-segfault-patch-size;</token>:</term>
|
||||
<term>Readline Upstream Fix Patch - <token>&readline-fixes-patch-size;</token>:</term>
|
||||
<listitem>
|
||||
<para>Download: <ulink url="&patches-root;&shadow-segfault-patch;"/></para>
|
||||
<para>MD5 sum: <literal>&shadow-segfault-patch-md5;</literal></para>
|
||||
<para>Download: <ulink url="&patches-root;&readline-fixes-patch;"/></para>
|
||||
<para>MD5 sum: <literal>&readline-fixes-patch-md5;</literal></para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
-->
|
||||
|
||||
<varlistentry revision="sysv">
|
||||
<term>Sysvinit Consolidated Patch - <token>&sysvinit-consolidated-patch-size;</token>:</term>
|
||||
<listitem>
|
||||
|
@ -174,7 +174,7 @@ cd build</userinput></screen>
|
||||
functions (compiling and linking) of the new toolchain are working as
|
||||
expected. To perform a sanity check, run the following commands:</para>
|
||||
|
||||
<screen><userinput>echo 'int main(){}' | gcc -xc -
|
||||
<screen><userinput>echo 'int main(){}' | $LFS_TGT-gcc -xc -
|
||||
readelf -l a.out | grep ld-linux</userinput></screen>
|
||||
|
||||
<para>If everything is working correctly, there should be no errors,
|
||||
|
@ -45,9 +45,9 @@
|
||||
|
||||
<para>Prepare Bash for compilation:</para>
|
||||
|
||||
<screen><userinput remap="configure">./configure --prefix=/usr \
|
||||
--build=$(support/config.guess) \
|
||||
--host=$LFS_TGT \
|
||||
<screen><userinput remap="configure">./configure --prefix=/usr \
|
||||
--build=$(sh support/config.guess) \
|
||||
--host=$LFS_TGT \
|
||||
--without-bash-malloc</userinput></screen>
|
||||
|
||||
<variablelist>
|
||||
|
@ -40,6 +40,10 @@
|
||||
<sect2 role="installation">
|
||||
<title>Installation of Bash</title>
|
||||
|
||||
<para>First, fix some issues identified upstream:</para>
|
||||
|
||||
<screen><userinput remap="pre">patch -Np1 -i ../&bash-fixes-patch;</userinput></screen>
|
||||
|
||||
<para>Prepare Bash for compilation:</para>
|
||||
|
||||
<screen><userinput remap="configure">./configure --prefix=/usr \
|
||||
|
@ -49,6 +49,10 @@
|
||||
<screen><userinput remap="pre">sed -i '/MV.*old/d' Makefile.in
|
||||
sed -i '/{OLDSUFF}/c:' support/shlib-install</userinput></screen>
|
||||
|
||||
<para>Now fix a problem identified upstream:</para>
|
||||
|
||||
<screen><userinput remap="pre">patch -Np1 -i ../&readline-fixes-patch;</userinput></screen>
|
||||
|
||||
<para>Prepare Readline for compilation:</para>
|
||||
|
||||
<screen><userinput remap="configure">./configure --prefix=/usr \
|
||||
|
@ -17,7 +17,7 @@ $regex[ 'intltool' ] = "/^.*Latest version is (\d[\d\.]+\d).*$/";
|
||||
$regex[ 'less' ] = "/^.*current released version is less-(\d+).*$/";
|
||||
$regex[ 'mpfr' ] = "/^mpfr-([\d\.]+)\.tar.*$/";
|
||||
$regex[ 'Python' ] = "/^.*Latest Python 3.*Python (3[\d\.]+\d).*$/";
|
||||
$regex[ 'systemd' ] = "/^.*v([\d]+)$/";
|
||||
$regex[ 'systemd' ] = "/^.*systemd v([\d]+)$/";
|
||||
//$regex[ 'sysvinit' ] = "/^.*sysvinit-([\d\.]+)dsf\.tar.*$/";
|
||||
$regex[ 'tzdata' ] = "/^.*tzdata([\d]+[a-z]).*$/";
|
||||
$regex[ 'xz' ] = "/^.*xz-([\d\.]*\d).*$/";
|
||||
|
76
packages.ent
76
packages.ent
@ -114,10 +114,10 @@
|
||||
<!ENTITY coreutils-fin-du "159 MB">
|
||||
<!ENTITY coreutils-fin-sbu "2.8 SBU">
|
||||
|
||||
<!ENTITY dbus-version "1.14.2">
|
||||
<!ENTITY dbus-size "1,332 KB">
|
||||
<!ENTITY dbus-version "1.14.4">
|
||||
<!ENTITY dbus-size "1,337 KB">
|
||||
<!ENTITY dbus-url "https://dbus.freedesktop.org/releases/dbus/dbus-&dbus-version;.tar.xz">
|
||||
<!ENTITY dbus-md5 "2d9a6b441e6f844d41c35a004f0ef50b">
|
||||
<!ENTITY dbus-md5 "e36f0f160751fa7ce103782166852c6b">
|
||||
<!ENTITY dbus-home "https://www.freedesktop.org/wiki/Software/dbus">
|
||||
<!ENTITY dbus-fin-du "19 MB">
|
||||
<!ENTITY dbus-fin-sbu "0.2 SBU">
|
||||
@ -245,10 +245,10 @@
|
||||
<!ENTITY gdbm-fin-du "13 MB">
|
||||
<!ENTITY gdbm-fin-sbu "0.1 SBU">
|
||||
|
||||
<!ENTITY gettext-version "0.21">
|
||||
<!ENTITY gettext-size "9,487 KB">
|
||||
<!ENTITY gettext-version "0.21.1">
|
||||
<!ENTITY gettext-size "9,819 KB">
|
||||
<!ENTITY gettext-url "&gnu;gettext/gettext-&gettext-version;.tar.xz">
|
||||
<!ENTITY gettext-md5 "40996bbaf7d1356d3c22e33a8b255b31">
|
||||
<!ENTITY gettext-md5 "27fcc8a42dbc8f334f23a08f1f2fe00a">
|
||||
<!ENTITY gettext-home "&gnu-software;gettext/">
|
||||
<!ENTITY gettext-tmp-du "282 MB">
|
||||
<!ENTITY gettext-tmp-sbu "1.6 SBU">
|
||||
@ -317,10 +317,10 @@
|
||||
<!ENTITY gzip-fin-du "21 MB">
|
||||
<!ENTITY gzip-fin-sbu "0.3 SBU">
|
||||
|
||||
<!ENTITY iana-etc-version "20220922">
|
||||
<!ENTITY iana-etc-version "20221007">
|
||||
<!ENTITY iana-etc-size "584 KB">
|
||||
<!ENTITY iana-etc-url "https://github.com/Mic92/iana-etc/releases/download/&iana-etc-version;/iana-etc-&iana-etc-version;.tar.gz">
|
||||
<!ENTITY iana-etc-md5 "2fdc746cfc1bc10f841760fd6a92618c">
|
||||
<!ENTITY iana-etc-md5 "4ba9c780b4cf3b0629a82fbe840cc14a">
|
||||
<!ENTITY iana-etc-home "https://www.iana.org/protocols">
|
||||
<!ENTITY iana-etc-fin-du "4.8 MB">
|
||||
<!ENTITY iana-etc-fin-sbu "less than 0.1 SBU">
|
||||
@ -342,10 +342,10 @@
|
||||
<!ENTITY intltool-fin-du "1.5 MB">
|
||||
<!ENTITY intltool-fin-sbu "less than 0.1 SBU">
|
||||
|
||||
<!ENTITY iproute2-version "5.19.0">
|
||||
<!ENTITY iproute2-size "872 KB">
|
||||
<!ENTITY iproute2-version "6.0.0">
|
||||
<!ENTITY iproute2-size "880 KB">
|
||||
<!ENTITY iproute2-url "&kernel;linux/utils/net/iproute2/iproute2-&iproute2-version;.tar.xz">
|
||||
<!ENTITY iproute2-md5 "415bd9eeb8515a585e245809d2fe45a6">
|
||||
<!ENTITY iproute2-md5 "5da6cb3154ee09b9a8b4004d1c2df4cd">
|
||||
<!ENTITY iproute2-home "&kernel;linux/utils/net/iproute2/">
|
||||
<!ENTITY iproute2-fin-du "16 MB">
|
||||
<!ENTITY iproute2-fin-sbu "0.2 SBU">
|
||||
@ -422,14 +422,14 @@
|
||||
<!ENTITY libtool-fin-du "43 MB">
|
||||
<!ENTITY libtool-fin-sbu "1.5 SBU">
|
||||
|
||||
<!ENTITY linux-major-version "5">
|
||||
<!ENTITY linux-minor-version "19">
|
||||
<!ENTITY linux-patch-version "13">
|
||||
<!ENTITY linux-major-version "6">
|
||||
<!ENTITY linux-minor-version "0">
|
||||
<!ENTITY linux-patch-version "2">
|
||||
<!--<!ENTITY linux-version "&linux-major-version;.&linux-minor-version;">-->
|
||||
<!ENTITY linux-version "&linux-major-version;.&linux-minor-version;.&linux-patch-version;">
|
||||
<!ENTITY linux-size "128,568 KB">
|
||||
<!ENTITY linux-size "130,712 KB">
|
||||
<!ENTITY linux-url "&kernel;linux/kernel/v&linux-major-version;.x/linux-&linux-version;.tar.xz">
|
||||
<!ENTITY linux-md5 "fd9538870c56a39ec8a7c1d6abf0b43a">
|
||||
<!ENTITY linux-md5 "5a7ea40f0ec23b0800e8b52cb44ed04c">
|
||||
<!ENTITY linux-home "https://www.kernel.org/">
|
||||
<!-- measured for 5.13.4 / gcc-11.1.0 on x86_64 : minimum is
|
||||
allnoconfig rounded down to allow for ongoing cleanups,
|
||||
@ -471,10 +471,10 @@
|
||||
<!ENTITY man-db-fin-du "40 MB">
|
||||
<!ENTITY man-db-fin-sbu "0.4 SBU">
|
||||
|
||||
<!ENTITY man-pages-version "5.13">
|
||||
<!ENTITY man-pages-size "1,752 KB">
|
||||
<!ENTITY man-pages-version "6.00">
|
||||
<!ENTITY man-pages-size "1,746 KB">
|
||||
<!ENTITY man-pages-url "&kernel;linux/docs/man-pages/man-pages-&man-pages-version;.tar.xz">
|
||||
<!ENTITY man-pages-md5 "3ac24e8c6fae26b801cb87ceb63c0a30">
|
||||
<!ENTITY man-pages-md5 "1a30556c061af0616bd8af882e040edb">
|
||||
<!ENTITY man-pages-home "https://www.kernel.org/doc/man-pages/">
|
||||
<!ENTITY man-pages-fin-du "33 MB">
|
||||
<!ENTITY man-pages-fin-sbu "less than 0.1 SBU">
|
||||
@ -487,10 +487,10 @@
|
||||
<!ENTITY markupsafe-fin-du "168 KB">
|
||||
<!ENTITY markupsafe-fin-sbu "less than 0.1 SBU">
|
||||
|
||||
<!ENTITY meson-version "0.63.2">
|
||||
<!ENTITY meson-size "2,016 KB">
|
||||
<!ENTITY meson-version "0.63.3">
|
||||
<!ENTITY meson-size "2,020 KB">
|
||||
<!ENTITY meson-url "&github;/mesonbuild/meson/releases/download/&meson-version;/meson-&meson-version;.tar.gz">
|
||||
<!ENTITY meson-md5 "12ae3150982645790a4f8a8e8795173c">
|
||||
<!ENTITY meson-md5 "b2f2757b5dd84cc754b9df53ce37a175">
|
||||
<!ENTITY meson-home "https://mesonbuild.com">
|
||||
<!ENTITY meson-fin-du "38 MB">
|
||||
<!ENTITY meson-fin-sbu "less than 0.1 SBU">
|
||||
@ -588,19 +588,19 @@
|
||||
<!-- If python minor version changes, updates in python and
|
||||
meson pages will be needed: python3.6 and python3.6m -->
|
||||
|
||||
<!ENTITY python-version "3.10.7">
|
||||
<!ENTITY python-version "3.10.8">
|
||||
<!ENTITY python-minor "3.10">
|
||||
<!ENTITY python-size "19,159 KB">
|
||||
<!ENTITY python-size "19,160 KB">
|
||||
<!ENTITY python-url "https://www.python.org/ftp/python/&python-version;/Python-&python-version;.tar.xz">
|
||||
<!ENTITY python-md5 "b8094f007b3a835ca3be6bdf8116cccc">
|
||||
<!ENTITY python-md5 "e92356b012ed4d0e09675131d39b1bde">
|
||||
<!ENTITY python-home "https://www.python.org/">
|
||||
<!ENTITY python-tmp-du "364 MB">
|
||||
<!ENTITY python-tmp-sbu "0.9 SBU">
|
||||
<!ENTITY python-fin-du "283 MB">
|
||||
<!ENTITY python-fin-sbu "3.4 SBU">
|
||||
<!ENTITY python-docs-url "https://www.python.org/ftp/python/doc/&python-version;/python-&python-version;-docs-html.tar.bz2">
|
||||
<!ENTITY python-docs-md5 "d5923c417995334e72c2561812905d23">
|
||||
<!ENTITY python-docs-size "7,176 KB">
|
||||
<!ENTITY python-docs-md5 "e19fa51f7055c0e869d609f2dfbcc5d9">
|
||||
<!ENTITY python-docs-size "7,190 KB">
|
||||
|
||||
<!ENTITY readline-version "8.2">
|
||||
<!ENTITY readline-soversion "8.2"><!-- used for stripping -->
|
||||
@ -694,10 +694,10 @@
|
||||
<!ENTITY texinfo-fin-du "114 MB">
|
||||
<!ENTITY texinfo-fin-sbu "0.6 SBU">
|
||||
|
||||
<!ENTITY tzdata-version "2022d">
|
||||
<!ENTITY tzdata-version "2022e">
|
||||
<!ENTITY tzdata-size "424 KB">
|
||||
<!ENTITY tzdata-url "https://www.iana.org/time-zones/repository/releases/tzdata&tzdata-version;.tar.gz">
|
||||
<!ENTITY tzdata-md5 "e55dbeb2121230a0ae7c58dbb47ae8c8">
|
||||
<!ENTITY tzdata-md5 "97bf180d57c3e51a49742d1d87ceed40">
|
||||
<!ENTITY tzdata-home "https://www.iana.org/time-zones">
|
||||
|
||||
<!ENTITY udev-lfs-version "udev-lfs-20171102">
|
||||
@ -717,13 +717,13 @@
|
||||
<!ENTITY util-linux-fin-du "283 MB">
|
||||
<!ENTITY util-linux-fin-sbu "1.0 SBU">
|
||||
|
||||
<!ENTITY vim-version "9.0.0228">
|
||||
<!ENTITY vim-version "9.0.0739">
|
||||
<!-- <!ENTITY vim-majmin "90"> -->
|
||||
<!ENTITY vim-docdir "vim/vim90">
|
||||
<!ENTITY vim-size "16,372 KB">
|
||||
<!ENTITY vim-size "16,370 KB">
|
||||
<!--<!ENTITY vim-url "https://github.com/vim/vim/archive/v&vim-version;/vim-&vim-version;.tar.gz">-->
|
||||
<!ENTITY vim-url "&anduin-sources;/vim-&vim-version;.tar.gz">
|
||||
<!ENTITY vim-md5 "bc7e0a4829d94bb4c03a7a6b4ad6a8cf">
|
||||
<!ENTITY vim-md5 "d28503800dcd471edf8c308f5a74f177">
|
||||
<!ENTITY vim-home "https://www.vim.org">
|
||||
<!ENTITY vim-fin-du "217 MB">
|
||||
<!ENTITY vim-fin-sbu "2.5 SBU">
|
||||
@ -745,20 +745,20 @@
|
||||
<!ENTITY xml-parser-fin-du "2.3 MB">
|
||||
<!ENTITY xml-parser-fin-sbu "less than 0.1 SBU">
|
||||
|
||||
<!ENTITY xz-version "5.2.6">
|
||||
<!ENTITY xz-size "1,234 KB">
|
||||
<!ENTITY xz-version "5.2.7">
|
||||
<!ENTITY xz-size "1,253 KB">
|
||||
<!ENTITY xz-url "https://tukaani.org/xz/xz-&xz-version;.tar.xz">
|
||||
<!ENTITY xz-md5 "d9cd5698e1ec06cf638c0d2d645e8175">
|
||||
<!ENTITY xz-md5 "6c130d21e260d4476e971985e7394e83">
|
||||
<!ENTITY xz-home "https://tukaani.org/xz">
|
||||
<!ENTITY xz-tmp-du "16 MB">
|
||||
<!ENTITY xz-tmp-sbu "0.1 SBU">
|
||||
<!ENTITY xz-fin-du "16 MB">
|
||||
<!ENTITY xz-fin-sbu "0.2 SBU">
|
||||
|
||||
<!ENTITY zlib-version "1.2.12">
|
||||
<!ENTITY zlib-size "1259 KB">
|
||||
<!ENTITY zlib-version "1.2.13">
|
||||
<!ENTITY zlib-size "1267 KB">
|
||||
<!ENTITY zlib-url "https://zlib.net/zlib-&zlib-version;.tar.xz">
|
||||
<!ENTITY zlib-md5 "28687d676c04e7103bb6ff2b9694c471">
|
||||
<!ENTITY zlib-md5 "7d9fc1d78ae2fa3e84fe98b77d006c63">
|
||||
<!ENTITY zlib-home "https://www.zlib.net/">
|
||||
<!ENTITY zlib-fin-du "6.1 MB">
|
||||
<!ENTITY zlib-fin-sbu "less than 0.1 SBU">
|
||||
|
@ -267,7 +267,7 @@
|
||||
package on a complete LFS system, the installed content of the package
|
||||
should be same as the content of the same package installed in
|
||||
&ch-final;. The temporary packages installed in &ch-tmp-cross; or
|
||||
&ch-tmp-chroot; cannot satisify this expectation because some of them
|
||||
&ch-tmp-chroot; cannot satisfy this expectation because some of them
|
||||
are built without optional dependencies installed, and autoconf cannot
|
||||
perform some feature checks in &ch-tmp-cross; because of cross
|
||||
compilation, causing the temporary packages to lack optional features
|
||||
@ -300,12 +300,11 @@
|
||||
its library search order. Detailed information can be obtained from
|
||||
<command>ld</command> by passing it the <parameter>--verbose</parameter>
|
||||
flag. For example, <command>$LFS_TGT-ld --verbose | grep SEARCH</command>
|
||||
will illustrate the current search paths and their order. It shows which
|
||||
files are linked by <command>ld</command> by compiling a dummy program and
|
||||
passing the <parameter>--verbose</parameter> switch to the linker. For
|
||||
example,
|
||||
<command>$LFS_TGT-gcc dummy.c -Wl,--verbose 2>&1 | grep succeeded</command>
|
||||
will show all the files successfully opened during the linking.</para>
|
||||
will illustrate the current search paths and their order. Note that this
|
||||
example can be run as shown only while being user
|
||||
<systemitem class="username">lfs</systemitem>. If you come back to this
|
||||
page later, replace <command>$LFS_TGT-ld</command> with just
|
||||
<command>ld</command>.</para>
|
||||
|
||||
<para>The next package installed is gcc. An example of what can be
|
||||
seen during its run of <command>configure</command> is:</para>
|
||||
@ -318,14 +317,18 @@ checking what linker to use... /mnt/lfs/tools/i686-lfs-linux-gnu/bin/ld</compute
|
||||
directories to find which tools to use. However, during the actual
|
||||
operation of <command>gcc</command> itself, the same search paths are not
|
||||
necessarily used. To find out which standard linker <command>gcc</command>
|
||||
will use, run: <command>$LFS_TGT-gcc -print-prog-name=ld</command>.</para>
|
||||
will use, run: <command>$LFS_TGT-gcc -print-prog-name=ld</command>. Again,
|
||||
remove the <command>$LFS_TGT-</command> part if coming back to this
|
||||
later.</para>
|
||||
|
||||
<para>Detailed information can be obtained from <command>gcc</command> by
|
||||
passing it the <parameter>-v</parameter> command line option while compiling
|
||||
a dummy program. For example, <command>gcc -v dummy.c</command> will show
|
||||
a program. For example, <command>$LFS_TGT-gcc -v
|
||||
<replaceable>example.c</replaceable></command> (or without <command>
|
||||
$LFS_TGT-</command> if coming back later to this) will show
|
||||
detailed information about the preprocessor, compilation, and assembly
|
||||
stages, including <command>gcc</command>'s included search paths and their
|
||||
order.</para>
|
||||
stages, including <command>gcc</command>'s search paths for included
|
||||
headers and their order.</para>
|
||||
|
||||
<para>Next installed are sanitized Linux API headers. These allow the
|
||||
standard C library (glibc) to interface with features that the Linux
|
||||
|
12
patches.ent
12
patches.ent
@ -7,11 +7,11 @@
|
||||
<!ENTITY autoconf-fixes-patch-md5 "3c515415ecdd777990c91e8900279cb9">
|
||||
<!ENTITY autoconf-fixes-patch-size "3.8 KB">
|
||||
-->
|
||||
<!--
|
||||
|
||||
<!ENTITY bash-fixes-patch "bash-&bash-version;-upstream_fixes-1.patch">
|
||||
<!ENTITY bash-fixes-patch-md5 "c1545da2ad7d78574b52c465ec077ed9">
|
||||
<!ENTITY bash-fixes-patch-size "22 KB">
|
||||
-->
|
||||
<!ENTITY bash-fixes-patch-md5 "5f20760139d6a97e55124988fcddae44">
|
||||
<!ENTITY bash-fixes-patch-size "2.0 KB">
|
||||
|
||||
<!--
|
||||
<!ENTITY binutils-lto-patch "binutils-&binutils-version;-lto_fix-1.patch">
|
||||
<!ENTITY binutils-lto-patch-md5 "3df11b6123d5bbdb0fc83862a003827a">
|
||||
@ -78,6 +78,10 @@
|
||||
<!ENTITY perl-fix-patch-md5 "fb42558b59ed95ee00eb9f1c1c9b8056">
|
||||
<!ENTITY perl-fix-patch-size "1.6 KB">
|
||||
-->
|
||||
<!ENTITY readline-fixes-patch "readline-&readline-version;-upstream_fix-1.patch">
|
||||
<!ENTITY readline-fixes-patch-md5 "dd1764b84cfca6b677f44978218a75da">
|
||||
<!ENTITY readline-fixes-patch-size "1.3 KB">
|
||||
|
||||
<!--
|
||||
<!ENTITY shadow-segfault-patch "shadow-&shadow-version;-useradd_segfault-1.patch">
|
||||
<!ENTITY shadow-segfault-patch-md5 "66b299c0c9ac66fdb7c91b40df5984c0">
|
||||
|
@ -13,7 +13,8 @@
|
||||
<para>The target architectures of this LFS edition are ARM64 (sometimes
|
||||
called AArch64) CPUs. On the other hand, the instructions in this book may
|
||||
work on 32-bit ARM CPUs with some modifications. To build a system that
|
||||
utilizes one of these CPUs, the main prerequisite, in addition to those on
|
||||
utilizes one of these alternative CPUs, the main prerequisite, in
|
||||
addition to those on
|
||||
the next page, is an existing Linux system such as an earlier LFS
|
||||
installation, Ubuntu, Red Hat/Fedora, SuSE, or other distribution that
|
||||
targets the architecture that you have.</para>
|
||||
@ -23,9 +24,9 @@ targets the architecture that you have.</para>
|
||||
only. Building a <quote>multi-lib</quote> system requires compiling many
|
||||
applications twice, once for a 32-bit system and once for a 64-bit system.
|
||||
This is not directly supported in LFS because it would interfere with the
|
||||
educational objective of providing the instructions needed for a
|
||||
straightforward base Linux system. Some LFS/BLFS editors maintain a fork
|
||||
of LFS for multilib, which is accessible at <ulink
|
||||
educational objective of providing the minimal instructions needed for a
|
||||
base Linux system. Some LFS/BLFS editors maintain a multilib fork
|
||||
of LFS, accessible at <ulink
|
||||
url="https://www.linuxfromscratch.org/~thomas/multilib/index.html"/>. But
|
||||
the multilib edition is for x86_64, and multilib is an advanced topic
|
||||
anyway.</para>
|
||||
|
@ -18,26 +18,26 @@ an existing one?</quote></para>
|
||||
<para>One important reason for this project's existence is to help you learn
|
||||
how a Linux system works from the inside out. Building an LFS system helps
|
||||
demonstrate what makes Linux tick, and how things work together and depend on
|
||||
each other. One of the best things that this learning experience can provide is
|
||||
each other. One of the best things this learning experience can provide is
|
||||
the ability to customize a Linux system to suit your own unique needs.</para>
|
||||
|
||||
<para>Another key benefit of LFS is that it allows you to have more control
|
||||
over the system without relying on someone else's Linux implementation. With
|
||||
LFS, you are in the driver's seat and dictate every aspect of the
|
||||
<para>Another key benefit of LFS is that it gives you control
|
||||
of the system without relying on someone else's Linux implementation. With
|
||||
LFS, you are in the driver's seat. <emphasis>You</emphasis> dictate every aspect of your
|
||||
system.</para>
|
||||
|
||||
<para>LFS allows you to create very compact Linux systems. When installing
|
||||
regular distributions, you are often forced to install a great many
|
||||
programs which are probably never used or understood. These programs waste
|
||||
resources. You may argue that with today's hard drive and CPUs, such
|
||||
<para>LFS allows you to create very compact Linux systems. With
|
||||
other distributions you are often forced to install a great many
|
||||
programs you neither use nor understand. These programs waste
|
||||
resources. You may argue that with today's hard drives and CPUs, wasted
|
||||
resources are no longer a consideration. Sometimes, however, you are still
|
||||
constrained by size considerations if nothing else. Think about bootable
|
||||
constrained by the system's size, if nothing else. Think about bootable
|
||||
CDs, USB sticks, and embedded systems. Those are areas where LFS can be
|
||||
beneficial.</para>
|
||||
|
||||
<para>Another advantage of a custom built Linux system is security. By compiling
|
||||
the entire system from source code, you are empowered to audit everything
|
||||
and apply all the security patches desired. It is no longer necessary to
|
||||
and apply all the security patches you want. You don't have to
|
||||
wait for somebody else to compile binary packages that fix a security hole.
|
||||
Unless you examine the patch and implement it yourself, you have no
|
||||
guarantee that the new binary package was built correctly and adequately
|
||||
@ -48,10 +48,10 @@ foundation-level system. If you do not wish to build your own Linux system
|
||||
from scratch, you may nevertheless benefit from the information in this
|
||||
book.</para>
|
||||
|
||||
<para>There are too many other good reasons to build your own LFS system to
|
||||
list them all here. In the end, education is by far the most powerful of
|
||||
reasons. As you continue in your LFS experience, you will discover the power
|
||||
that information and knowledge truly bring.</para>
|
||||
<para>There are too many good reasons to build your own LFS system to
|
||||
list them all here. In the end, education is by far the most important
|
||||
reason. As you continue your LFS experience, you will discover the power
|
||||
that information and knowledge can bring.</para>
|
||||
|
||||
</sect1>
|
||||
|
||||
|
@ -13,19 +13,19 @@
|
||||
<para>Building an LFS system is not a simple task. It requires a certain
|
||||
level of existing knowledge of Unix system administration in order to resolve
|
||||
problems and correctly execute the commands listed. In particular, as an
|
||||
absolute minimum, you should already have the ability to use the
|
||||
absolute minimum, you should already know how to use the
|
||||
command line (shell) to copy or move files and directories, list directory
|
||||
and file contents, and change the current directory. It is also expected that
|
||||
you have a reasonable knowledge of using and installing Linux
|
||||
you know how to use and install Linux
|
||||
software.</para>
|
||||
|
||||
<para>Because the LFS book assumes <emphasis>at least</emphasis> this basic
|
||||
level of skill, the various LFS support forums are unlikely to be able to
|
||||
level of skill, the various LFS support forums are unlikely to
|
||||
provide you with much assistance in these areas. You will find that your
|
||||
questions regarding such basic knowledge will likely go unanswered or you
|
||||
will simply be referred to the LFS essential pre-reading list.</para>
|
||||
questions regarding such basic knowledge will likely go unanswered (or you
|
||||
will simply be referred to the LFS essential pre-reading list).</para>
|
||||
|
||||
<para>Before building an LFS system, we recommend reading the following:</para>
|
||||
<para>Before building an LFS system, we urge you to read these articles:</para>
|
||||
|
||||
<itemizedlist>
|
||||
<listitem>
|
||||
@ -35,14 +35,14 @@
|
||||
<para>This is a comprehensive guide to building and installing
|
||||
<quote>generic</quote> Unix software packages under Linux. Although it
|
||||
was written some time ago, it still provides a good summary of the
|
||||
basic techniques needed to build and install software.</para>
|
||||
basic techniques used to build and install software.</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>Beginner's Guide to Installing from Source
|
||||
<ulink url="https://moi.vonos.net/linux/beginners-installing-from-source/"/></para>
|
||||
|
||||
<para>This guide provides a good summary of basic skills and
|
||||
<para>This guide provides a good summary of the basic skills and
|
||||
techniques needed to build software from source code.</para>
|
||||
</listitem>
|
||||
<!--
|
||||
|
@ -31,26 +31,27 @@
|
||||
<para><ulink url="https://refspecs.linuxfoundation.org/lsb.shtml">Linux
|
||||
Standard Base (LSB) Version 5.0 (2015)</ulink></para>
|
||||
|
||||
<para>The LSB has four separate standards: Core, Desktop,
|
||||
Runtime Languages, and Imaging. In addition to generic requirements
|
||||
there are also architecture specific requirements. There are also two
|
||||
areas for trial use: Gtk3 and Graphics. LFS attempts to conform to the
|
||||
<para>The LSB has four separate specifications: Core, Desktop,
|
||||
Runtime Languages, and Imaging. Some parts of Core and Desktop
|
||||
specifications are architecture specific. There are also two trial
|
||||
specifications: Gtk3 and Graphics. LFS attempts to conform to the LSB
|
||||
specifications for the IA32 (32-bit x86) or AMD64 (x86_64)
|
||||
architectures discussed in the previous section.</para>
|
||||
|
||||
<note><para>Many people do not agree with the requirements of the LSB.
|
||||
The main purpose of defining it is to ensure that proprietary software
|
||||
will be able to be installed and run properly on a compliant system.
|
||||
<note><para>Many people do not agree with these requirements.
|
||||
The main purpose of the LSB is to ensure that proprietary software
|
||||
can be installed and run on a compliant system.
|
||||
Since LFS is source based, the user has complete control over what
|
||||
packages are desired and many choose not to install some packages that
|
||||
packages are desired; you may choose not to install some packages that
|
||||
are specified by the LSB.</para></note>
|
||||
|
||||
</listitem>
|
||||
</itemizedlist>
|
||||
|
||||
<para>Creating a complete LFS system capable of passing the LSB
|
||||
certifications tests is possible, but not without many additional packages
|
||||
that are beyond the scope of LFS. These additional packages have
|
||||
installation instructions in BLFS. </para>
|
||||
<para>While it is possible to create a complete system that will pass the LSB
|
||||
certification tests "from scratch", this can't be done without many additional packages
|
||||
that are beyond the scope of the LFS book. Installation instructions for these
|
||||
additional packages can be found in BLFS. </para>
|
||||
|
||||
<variablelist>
|
||||
<bridgehead renderas="sect3">Packages supplied by LFS needed to
|
||||
|
160
prologue/why.xml
160
prologue/why.xml
@ -10,13 +10,13 @@
|
||||
|
||||
<title>Rationale for Packages in the Book</title>
|
||||
|
||||
<para>As stated earlier, the goal of LFS is to build a complete and usable
|
||||
foundation-level system. This includes all packages needed to replicate
|
||||
itself while providing a relatively minimal base from which to customize
|
||||
a more complete system based on the choices of the user. This does not
|
||||
<para>The goal of LFS is to build a complete and usable
|
||||
foundation-level system—including all the packages needed to replicate
|
||||
itself—and providing a relatively minimal base from which to customize
|
||||
a more complete system based on the user's choices. This does not
|
||||
mean that LFS is the smallest system possible. Several important packages
|
||||
are included that are not strictly required. The lists below document the
|
||||
rationale for each package in the book.</para>
|
||||
are included that are not, strictly speaking, required. The list below documents the
|
||||
reasons each package in the book has been included.</para>
|
||||
|
||||
<itemizedlist>
|
||||
|
||||
@ -24,7 +24,7 @@
|
||||
<para>Acl</para>
|
||||
|
||||
<para>This package contains utilities to administer Access
|
||||
Control Lists, which are used to define more fine-grained
|
||||
Control Lists, which are used to define fine-grained
|
||||
discretionary access rights for files and directories.
|
||||
</para>
|
||||
</listitem>
|
||||
@ -32,26 +32,26 @@
|
||||
<listitem>
|
||||
<para>Attr</para>
|
||||
|
||||
<para>This package contains programs for administering
|
||||
extended attributes on filesystem objects.
|
||||
<para>This package contains programs for managing
|
||||
extended attributes on file system objects.
|
||||
</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>Autoconf</para>
|
||||
|
||||
<para>This package contains programs for producing shell scripts that
|
||||
<para>This package supplies programs for producing shell scripts that
|
||||
can automatically configure source code from a developer's
|
||||
template. It is often needed to rebuild a package after updates
|
||||
to the build procedures.</para>
|
||||
template. It is often needed to rebuild a package after
|
||||
the build procedure has been updated.</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>Automake</para>
|
||||
|
||||
<para>This package contains programs for generating Make files from
|
||||
a template. It is often needed to rebuild a package after updates
|
||||
to the build procedures.</para>
|
||||
a template. It is often needed to rebuild a package after
|
||||
the build procedure has been updated.</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
@ -60,29 +60,29 @@
|
||||
<para>This package satisfies an LSB core requirement to provide
|
||||
a Bourne Shell interface to the system. It was chosen over
|
||||
other shell packages because of its common usage and extensive
|
||||
capabilities beyond basic shell functions.</para>
|
||||
capabilities.</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>Bc</para>
|
||||
|
||||
<para>This package provides an arbitrary precision numeric processing language.
|
||||
It satisfies a requirement needed when building the Linux kernel.</para>
|
||||
It satisfies a requirement for building the Linux kernel.</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>Binutils</para>
|
||||
|
||||
<para>This package contains a linker, an assembler, and other
|
||||
<para>This package supplies a linker, an assembler, and other
|
||||
tools for handling object files. The programs in this package are
|
||||
needed to compile most of the packages in an LFS system and beyond.</para>
|
||||
needed to compile most of the packages in an LFS system.</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>Bison</para>
|
||||
|
||||
<para>This package contains the GNU version of yacc (Yet Another
|
||||
Compiler Compiler) needed to build several other LFS programs.</para>
|
||||
Compiler Compiler) needed to build several of the LFS programs.</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
@ -95,7 +95,7 @@
|
||||
<listitem>
|
||||
<para>Check</para>
|
||||
|
||||
<para>This package contains a test harness for other programs.</para>
|
||||
<para>This package provides a test harness for other programs.</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
@ -111,14 +111,14 @@
|
||||
<para>D-Bus</para>
|
||||
|
||||
<para>This package contains programs to implement a message bus system,
|
||||
which a simple way for applications to talk to one another.
|
||||
a simple way for applications to talk to one another.
|
||||
</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>DejaGNU</para>
|
||||
|
||||
<para>This package contains a framework for testing other programs.</para>
|
||||
<para>This package supplies a framework for testing other programs.</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
@ -132,7 +132,7 @@
|
||||
<listitem>
|
||||
<para>E2fsprogs</para>
|
||||
|
||||
<para>This package contains the utilities for handling the ext2, ext3
|
||||
<para>This package supplies utilities for handling the ext2, ext3
|
||||
and ext4 file systems. These are the most common and thoroughly
|
||||
tested file systems that Linux supports.</para>
|
||||
</listitem>
|
||||
@ -141,15 +141,15 @@
|
||||
<para>Eudev</para>
|
||||
|
||||
<para>This package is a device manager. It dynamically controls the ownership,
|
||||
permissions, names, and symbolic links of devices in the /dev directory as
|
||||
devices are added or removed from the system.
|
||||
permissions, names, and symbolic links of device nodes in the /dev directory when
|
||||
devices are added to or removed from the system.
|
||||
</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>Expat</para>
|
||||
|
||||
<para>This package contains a relatively small XML parsing library. It
|
||||
<para>This package yields a relatively small XML parsing library. It
|
||||
is required by the XML::Parser Perl module.</para>
|
||||
</listitem>
|
||||
|
||||
@ -171,7 +171,7 @@
|
||||
<listitem>
|
||||
<para>Findutils</para>
|
||||
|
||||
<para>This package contains programs to find files in a file system.
|
||||
<para>This package provides programs to find files in a file system.
|
||||
It is used in many packages' build scripts.</para>
|
||||
</listitem>
|
||||
|
||||
@ -187,7 +187,7 @@
|
||||
<listitem>
|
||||
<para>Gawk</para>
|
||||
|
||||
<para>This package contains programs for manipulating text files.
|
||||
<para>This package supplies programs for manipulating text files.
|
||||
It is the GNU version of awk (Aho-Weinberg-Kernighan). It is used in
|
||||
many other packages' build scripts.</para>
|
||||
</listitem>
|
||||
@ -195,7 +195,7 @@
|
||||
<listitem>
|
||||
<para>GCC</para>
|
||||
|
||||
<para>This package is the Gnu Compiler Collection. It contains the
|
||||
<para>This is the Gnu Compiler Collection. It contains the
|
||||
C and C++ compilers as well as several others not built by LFS.
|
||||
</para>
|
||||
</listitem>
|
||||
@ -210,8 +210,8 @@
|
||||
<listitem>
|
||||
<para>Gettext</para>
|
||||
|
||||
<para>This package contains utilities and libraries for
|
||||
internationalization and localization of numerous packages.</para>
|
||||
<para>This package provides utilities and libraries for
|
||||
the internationalization and localization of many packages.</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
@ -224,15 +224,17 @@
|
||||
<listitem>
|
||||
<para>GMP</para>
|
||||
|
||||
<para>This package contains math libraries that provide useful functions
|
||||
for arbitrary precision arithmetic. It is required to build GCC.</para>
|
||||
<para>This package supplies math libraries that provide useful functions
|
||||
for arbitrary precision arithmetic. It is needed to build GCC.</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>Gperf</para>
|
||||
|
||||
<para>This package contains a program that generates a perfect hash
|
||||
function from a key set. It is required for Eudev.</para>
|
||||
<para>This package produces a program that generates a perfect hash
|
||||
function from a set of keys. It is required by
|
||||
<phrase revision='sysv'>Eudev</phrase>
|
||||
<phrase revision='systemd'>Systemd</phrase>.</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
@ -245,15 +247,15 @@
|
||||
<listitem>
|
||||
<para>Groff</para>
|
||||
|
||||
<para>This package contains programs for processing and formatting text.
|
||||
<para>This package contributes programs for processing and formatting text.
|
||||
One important function of these programs is to format man pages.</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>GRUB</para>
|
||||
|
||||
<para>This package is the Grand Unified Boot Loader. It is one
|
||||
of several boot loaders available, but is the most flexible.
|
||||
<para>This is the Grand Unified Boot Loader. It is
|
||||
the most flexible of several boot loaders available.
|
||||
</para>
|
||||
</listitem>
|
||||
|
||||
@ -261,8 +263,8 @@
|
||||
<para>Gzip</para>
|
||||
|
||||
<para>This package contains programs for compressing and
|
||||
decompressing files. It is needed to decompress many packages in LFS
|
||||
and beyond.</para>
|
||||
decompressing files. It is needed to decompress many packages
|
||||
in LFS.</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
@ -275,14 +277,14 @@
|
||||
<listitem>
|
||||
<para>Inetutils</para>
|
||||
|
||||
<para>This package contains programs for basic network
|
||||
<para>This package supplies programs for basic network
|
||||
administration.</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>Intltool</para>
|
||||
|
||||
<para>This package contains tools for extracting translatable
|
||||
<para>This package contributes tools for extracting translatable
|
||||
strings from source files.</para>
|
||||
</listitem>
|
||||
|
||||
@ -304,14 +306,14 @@
|
||||
<listitem>
|
||||
<para>Kbd</para>
|
||||
|
||||
<para>This package contains key-table files, keyboard utilities
|
||||
<para>This package produces key-table files, keyboard utilities
|
||||
for non-US keyboards, and a number of console fonts.</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>Kmod</para>
|
||||
|
||||
<para>This package contains programs needed to administer Linux
|
||||
<para>This package supplies programs needed to administer Linux
|
||||
kernel modules.</para>
|
||||
</listitem>
|
||||
|
||||
@ -319,8 +321,8 @@
|
||||
<para>Less</para>
|
||||
|
||||
<para>This package contains a very nice text file viewer that
|
||||
allows scrolling up or down when viewing a file. It is also used by
|
||||
Man-DB for viewing manpages.</para>
|
||||
allows scrolling up or down when viewing a file.
|
||||
Many packages use it for paging the output.</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
@ -357,7 +359,7 @@
|
||||
<listitem>
|
||||
<para>Libpipeline</para>
|
||||
|
||||
<para>The Libpipeline package contains a library for manipulating
|
||||
<para>The Libpipeline package supplies a library for manipulating
|
||||
pipelines of subprocesses in a flexible and convenient way. It is
|
||||
required by the Man-DB package.</para>
|
||||
</listitem>
|
||||
@ -366,7 +368,7 @@
|
||||
<para>Libtool</para>
|
||||
|
||||
<para>This package contains the GNU generic library support
|
||||
script. It wraps the complexity of using shared libraries in a
|
||||
script. It wraps the complexity of using shared libraries into a
|
||||
consistent, portable interface. It is needed by the test
|
||||
suites in other LFS packages.</para>
|
||||
</listitem>
|
||||
@ -381,7 +383,7 @@
|
||||
<listitem>
|
||||
<para>M4</para>
|
||||
|
||||
<para>This package contains a general text macro processor useful
|
||||
<para>This package provides a general text macro processor useful
|
||||
as a build tool for other programs.</para>
|
||||
</listitem>
|
||||
|
||||
@ -404,14 +406,14 @@
|
||||
|
||||
<para>This package contains programs for finding and viewing man pages.
|
||||
It was chosen instead of the <application>man</application> package
|
||||
due to superior internationalization capabilities. It supplies
|
||||
because of its superior internationalization capabilities. It supplies
|
||||
the man program.</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>Man-pages</para>
|
||||
|
||||
<para>This package contains the actual contents of the basic
|
||||
<para>This package provides the actual contents of the basic
|
||||
Linux man pages.</para>
|
||||
</listitem>
|
||||
|
||||
@ -419,8 +421,8 @@
|
||||
<para>Meson</para>
|
||||
|
||||
<para>This package provides a software tool for automating the building
|
||||
of software. The main goal for Meson is to minimize the amount of time
|
||||
that software developers need to spend configuring their build
|
||||
of software. The main goal of Meson is to minimize the amount of time
|
||||
that software developers need to spend configuring a build
|
||||
system. It's required to build Systemd, as well as many BLFS
|
||||
packages.</para>
|
||||
|
||||
@ -429,7 +431,7 @@
|
||||
<listitem>
|
||||
<para>MPC</para>
|
||||
|
||||
<para>This package contains functions for the arithmetic of complex
|
||||
<para>This package supplies arithmetic functions for complex
|
||||
numbers. It is required by GCC.</para>
|
||||
</listitem>
|
||||
|
||||
@ -443,7 +445,7 @@
|
||||
<listitem>
|
||||
<para>Ninja</para>
|
||||
|
||||
<para>This package contains a small build system with a focus on speed.
|
||||
<para>This package furnishes a small build system with a focus on speed.
|
||||
It is designed to have its input files generated by a higher-level build
|
||||
system, and to run builds as fast as possible.
|
||||
This package is required by Meson.</para>
|
||||
@ -456,14 +458,14 @@
|
||||
<para>This package contains libraries for terminal-independent
|
||||
handling of character screens. It is often used to provide
|
||||
cursor control for a menuing system. It is needed by a number of
|
||||
packages in LFS.</para>
|
||||
the packages in LFS.</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>Openssl</para>
|
||||
|
||||
<para>This package provides management tools and libraries relating to
|
||||
cryptography. These are useful for providing cryptographic functions to
|
||||
cryptography. These supply cryptographic functions to
|
||||
other packages, including the Linux kernel.</para>
|
||||
</listitem>
|
||||
|
||||
@ -502,7 +504,7 @@
|
||||
<listitem>
|
||||
<para>Psmisc</para>
|
||||
|
||||
<para>This package contains programs for displaying information
|
||||
<para>This package produces programs for displaying information
|
||||
about running processes. These programs are useful for system
|
||||
administration.</para>
|
||||
</listitem>
|
||||
@ -511,14 +513,14 @@
|
||||
<para>Python 3</para>
|
||||
|
||||
<para>This package provides an interpreted language that has a design
|
||||
philosophy that emphasizes code readability.</para>
|
||||
philosophy emphasizing code readability.</para>
|
||||
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>Readline</para>
|
||||
|
||||
<para>This package is a set of libraries that offers command-line
|
||||
<para>This package is a set of libraries that offer command-line
|
||||
editing and history capabilities. It is used by Bash.</para>
|
||||
</listitem>
|
||||
|
||||
@ -526,7 +528,7 @@
|
||||
<para>Sed</para>
|
||||
|
||||
<para>This package allows editing of text without opening it in a
|
||||
text editor. It is also needed by most LFS packages' configure
|
||||
text editor. It is also needed by many LFS packages' configure
|
||||
scripts.</para>
|
||||
</listitem>
|
||||
|
||||
@ -534,14 +536,14 @@
|
||||
<para>Shadow</para>
|
||||
|
||||
<para>This package contains programs for handling passwords
|
||||
in a secure way.</para>
|
||||
securely.</para>
|
||||
</listitem>
|
||||
|
||||
<listitem revision="sysv">
|
||||
<para>Sysklogd</para>
|
||||
|
||||
<para>This package contains programs for logging system messages,
|
||||
such as those given by the kernel or daemon processes when unusual
|
||||
<para>This package supplies programs for logging system messages,
|
||||
such as those emitted by the kernel or daemon processes when unusual
|
||||
events occur.</para>
|
||||
</listitem>
|
||||
|
||||
@ -550,7 +552,7 @@
|
||||
|
||||
<para>This package provides an <application>init</application> program
|
||||
and several additional boot and system control capabilities as an
|
||||
alternative to Sysvinit. It is used by many commercial distributions.
|
||||
alternative to Sysvinit. It is used by many Linux distributions.
|
||||
</para>
|
||||
</listitem>
|
||||
|
||||
@ -558,7 +560,7 @@
|
||||
<para>Sysvinit</para>
|
||||
|
||||
<para>This package provides the <application>init</application>
|
||||
program, which is the parent of all other processes on the Linux
|
||||
program, the parent of all the other processes on a running Linux
|
||||
system. </para>
|
||||
</listitem>
|
||||
|
||||
@ -566,20 +568,20 @@
|
||||
<para>Tar</para>
|
||||
|
||||
<para>This package provides archiving and extraction capabilities
|
||||
of virtually all packages used in LFS.</para>
|
||||
of virtually all the packages used in LFS.</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>Tcl</para>
|
||||
|
||||
<para>This package contains the Tool Command Language used
|
||||
in many test suites in LFS packages.</para>
|
||||
in many test suites.</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>Texinfo</para>
|
||||
|
||||
<para>This package contains programs for reading, writing, and
|
||||
<para>This package supplies programs for reading, writing, and
|
||||
converting info pages. It is used in the installation
|
||||
procedures of many LFS packages.</para>
|
||||
</listitem>
|
||||
@ -593,20 +595,20 @@
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>Wheel</para>
|
||||
<para>Vim</para>
|
||||
|
||||
<para>This package contains a Python module that is the
|
||||
reference implementation of the Python wheel packaging standard.
|
||||
</para>
|
||||
<para>This package provides an editor. It was chosen because of its
|
||||
compatibility with the classic vi editor and its huge number of powerful
|
||||
capabilities. An editor is a very personal choice for
|
||||
many users. Any other editor can be substituted, if you wish.</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>Vim</para>
|
||||
<para>Wheel</para>
|
||||
|
||||
<para>This package contains an editor. It was chosen because of its
|
||||
compatibility with the classic vi editor and its huge number of powerful
|
||||
capabilities. An editor is a very personal choice for
|
||||
many users and any other editor could be substituted if desired.</para>
|
||||
<para>This package supplies a Python module that is the
|
||||
reference implementation of the Python wheel packaging standard.
|
||||
</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
@ -633,7 +635,7 @@
|
||||
<listitem>
|
||||
<para>Zstd</para>
|
||||
|
||||
<para>This package contains compression and decompression routines
|
||||
<para>This package supplies compression and decompression routines
|
||||
used by some programs. It provides high compression ratios and a very
|
||||
wide range of compression / speed trade-offs.</para>
|
||||
</listitem>
|
||||
|
Loading…
Reference in New Issue
Block a user