Merge branch 'trunk' of git.linuxfromscratch.org:lfs into trunk

This commit is contained in:
Bruce Dubbs 2022-04-30 09:40:46 -05:00
commit 8cab730a5b
16 changed files with 102 additions and 38 deletions

View File

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

View File

@ -10,6 +10,21 @@
<title>All Packages</title> <title>All Packages</title>
<note>
<para>Read the <ulink url='&secadv;'>security advisories</ulink>
before downloading packages to figure out if a newer version of any
package should be used to avoid security vulnerabilities.</para>
<para>The upstreams may remove old releases, especially when these
releases contain a security vulnerability. If one URL below is not
reachable, you should read the security advisories first to figure out
if a newer version (with the vulnerability fixed) should be used. If
not, try to download the removed package from a mirror. Although it's
possible to download an old release from a mirror even if this release
has been removed because of a vulnerability, it's not recommended to
use a release known to be vulnerable for building your system.</para>
</note>
<para>Download or otherwise obtain the following packages:</para> <para>Download or otherwise obtain the following packages:</para>
<variablelist role="materials"> <variablelist role="materials">
@ -173,15 +188,6 @@
<para>Home page: <ulink url="&expat-home;"/></para> <para>Home page: <ulink url="&expat-home;"/></para>
<para>Download: <ulink url="&expat-url;"/></para> <para>Download: <ulink url="&expat-url;"/></para>
<para>MD5 sum: <literal>&expat-md5;</literal></para> <para>MD5 sum: <literal>&expat-md5;</literal></para>
<note>
<para>The upstream may remove tarballs of the specific releases of
<application>Expat</application> when these releases contain a
security vulnerability. You should refer to
<ulink url='&lfs-root;lfs/advisories/'>LFS security advisories</ulink>
to figure out which version (with the vulnerability fixed) should
be used. You may download the vulnerable version from a mirror,
but it's not recommended.</para>
</note>
</listitem> </listitem>
</varlistentry> </varlistentry>

View File

@ -86,8 +86,8 @@ case $(uname -m) in
esac</userinput></screen> esac</userinput></screen>
<note><para>In some host systems, the following command does not complete <note><para>In some host systems, the following command does not complete
properly and suspends the login to the lfs user to the background. If the properly and suspends the login to the &lfs-user; user to the background.
prompt "lfs:~$" does not appear immediately, entering the If the prompt "lfs:~$" does not appear immediately, entering the
<command>fg</command> command will fix the issue.</para></note> <command>fg</command> command will fix the issue.</para></note>
<para>Next, login as user <systemitem class="username">lfs</systemitem>. <para>Next, login as user <systemitem class="username">lfs</systemitem>.

View File

@ -156,9 +156,9 @@ tar -cJpf $HOME/lfs-temp-tools-&version;.tar.xz .</userinput></screen>
restore when they don't need to. --> restore when they don't need to. -->
<warning><para>The following commands are extremely dangerous. If <warning><para>The following commands are extremely dangerous. If
you run <command>rm -rf ./*</command> as the root user and you you run <command>rm -rf ./*</command> as the &root; user and you
do not change to the $LFS directory or the <envar>LFS</envar> do not change to the $LFS directory or the <envar>LFS</envar>
environment variable is not set for the root user, it will destroy environment variable is not set for the &root; user, it will destroy
your entire host system. YOU ARE WARNED.</para></warning> your entire host system. YOU ARE WARNED.</para></warning>
<screen role="nodump"><computeroutput>cd $LFS <screen role="nodump"><computeroutput>cd $LFS

View File

@ -25,7 +25,7 @@
<para>Until <xref linkend="ch-tools-chroot"/>, the commands must be <para>Until <xref linkend="ch-tools-chroot"/>, the commands must be
run as <systemitem class="username">root</systemitem>, with the run as <systemitem class="username">root</systemitem>, with the
<envar>LFS</envar> variable set. After entering chroot, all commands <envar>LFS</envar> variable set. After entering chroot, all commands
are run as root, fortunately without access to the OS of the computer are run as &root;, fortunately without access to the OS of the computer
you built LFS on. Be careful anyway, as it is easy to destroy the whole you built LFS on. Be careful anyway, as it is easy to destroy the whole
LFS system with badly formed commands.</para> LFS system with badly formed commands.</para>

View File

@ -73,7 +73,7 @@
<screen><userinput remap="test">chown -Rv tester .</userinput></screen> <screen><userinput remap="test">chown -Rv tester .</userinput></screen>
<para>The testsuite of the package is designed to be run as a non-root <para>The testsuite of the package is designed to be run as a non-&root;
user that owns the terminal connected to standard input. To satisfy the user that owns the terminal connected to standard input. To satisfy the
requirement, spawn a new pseudo terminal using requirement, spawn a new pseudo terminal using
<application>Expect</application> and run the tests as the <systemitem <application>Expect</application> and run the tests as the <systemitem

View File

@ -119,8 +119,8 @@ FORCE_UNSAFE_CONFIGURE=1 ./configure \
<screen><userinput remap="test">echo "dummy:x:102:tester" &gt;&gt; /etc/group</userinput></screen> <screen><userinput remap="test">echo "dummy:x:102:tester" &gt;&gt; /etc/group</userinput></screen>
<para>Fix some of the permissions so that the non-root user can compile and <para>Fix some of the permissions so that the non-&root; user can
run the tests:</para> compile and run the tests:</para>
<screen><userinput remap="test">chown -Rv tester . </userinput></screen> <screen><userinput remap="test">chown -Rv tester . </userinput></screen>

View File

@ -70,14 +70,16 @@ install -vDm644 data/shell-completions/zsh/_meson /usr/share/zsh/site-functions/
<varlistentry> <varlistentry>
<term><parameter>-w dist</parameter></term> <term><parameter>-w dist</parameter></term>
<listitem> <listitem>
<para>Put the created wheels into the `dist` directory.</para> <para>Put the created wheels into the
<filename class='directory'>dist</filename> directory.</para>
</listitem> </listitem>
</varlistentry> </varlistentry>
<varlistentry> <varlistentry>
<term><parameter>--find-links dist</parameter></term> <term><parameter>--find-links dist</parameter></term>
<listitem> <listitem>
<para>Install wheels from the 'dist' directory.</para> <para>Install wheels from the
<filename class='directory'>dist</filename> directory.</para>
</listitem> </listitem>
</varlistentry> </varlistentry>

View File

@ -93,16 +93,43 @@
<screen><userinput remap="install">make install</userinput></screen> <screen><userinput remap="install">make install</userinput></screen>
<para>In serveral places we use the <command>pip3</command> command to <para>In serveral places we use the <command>pip3</command> command to
install Python 3 programs and modules for all users as root. This conflicts install Python 3 programs and modules for all users as
with the Python developers recommendation to build packages in a virtual <systemitem class='username'>root</systemitem>. This conflicts
environment as a regular user. To this end, a multi-line warning is with the Python developers recommendation to install packages into a
written when using <command>pip3</command> as the root user. If desired, virtual environment or the home directory of a regular user (by running
supress this warning by running the following command:</para> <command>pip3</command> as this user). To this end, a multi-line warning
is written when using <command>pip3</command> as the
<systemitem class='username'>root</systemitem> user. The main reason
of this recommendation is for avoiding a conflict with the system
package manager (<command>dpkg</command> for example), but LFS does not
have a system-wide package manager so this is not a problem. If desired,
suppress this warning by running the following command:</para>
<screen><userinput remap="install">sed -e '/def warn_if_run_as_root/a\ return' \ <screen><userinput remap="install">sed -e '/def warn_if_run_as_root/a\ return' \
-i /usr/lib/python3.10/site-packages/pip/_internal/cli/req_command.py -i /usr/lib/python3.10/site-packages/pip/_internal/cli/req_command.py
</userinput></screen> </userinput></screen>
<important>
<para>
In LFS and BLFS we normally build and install Python modules with the
<command>pip3</command> command. Please take care that the
<command>pip3 install</command> commands in both the books should be
run as the &root; user unless it's for a Python virtual environment.
Running a <command>pip3 install</command> as a non-&root; user may seem
to work fine, but it will cause the installed module to be inaccessible
by other users.
</para>
<para>
<command>pip3 install</command> will not reinstall an already installed
module by default. For using the <command>pip3 install</command>
command to upgrade a module (for example, from meson-0.61.3 to
meson-0.62.0), insert the option <parameter>--upgrade</parameter> into
the command line. If it's really necessary to downgrade a module or
reinstall the same version for some reason, insert
<parameter>--force-reinstall</parameter> into the command line.
</para>
</important>
<para>If desired, install the preformatted documentation:</para> <para>If desired, install the preformatted documentation:</para>

View File

@ -84,7 +84,7 @@
<screen><userinput remap="make">make</userinput></screen> <screen><userinput remap="make">make</userinput></screen>
<para>If desired, run the test suite as a non-root user:</para> <para>If desired, run the test suite as a non-&root; user:</para>
<warning><para>Running the test suite as the <warning><para>Running the test suite as the
<systemitem class="username">root</systemitem> user can be harmful to <systemitem class="username">root</systemitem> user can be harmful to

View File

@ -14,7 +14,7 @@
<address>&wheel-url;</address> <address>&wheel-url;</address>
</sect1info> </sect1info>
<title>wheel-&wheel-version;</title> <title>Wheel-&wheel-version;</title>
<indexterm zone="ch-system-wheel"> <indexterm zone="ch-system-wheel">
<primary sortas="a-wheel">wheel</primary> <primary sortas="a-wheel">wheel</primary>
@ -23,7 +23,7 @@
<sect2 role="package"> <sect2 role="package">
<title/> <title/>
<para>Wheel is a Python library that implements the reference <para>Wheel is a Python library that is the reference
implementation of the Python wheel packaging standard.</para> implementation of the Python wheel packaging standard.</para>
<segmentedlist> <segmentedlist>
@ -50,7 +50,7 @@
<varlistentry> <varlistentry>
<term><command>install</command></term> <term><command>install</command></term>
<listitem> <listitem>
<para>Install the package</para> <para>Install the package.</para>
</listitem> </listitem>
</varlistentry> </varlistentry>
@ -79,16 +79,33 @@
<title>Contents of Wheel</title> <title>Contents of Wheel</title>
<segmentedlist> <segmentedlist>
<segtitle>Installed module</segtitle> <segtitle>Installed program</segtitle>
<segtitle>Installed directory</segtitle> <segtitle>Installed directory</segtitle>
<seglistitem> <seglistitem>
<seg>wheel.py</seg> <seg>wheel</seg>
<seg>/usr/lib/python&python-minor;/site-packages/wheel</seg> <seg>/usr/lib/python&python-minor;/site-packages/wheel</seg>
</seglistitem> </seglistitem>
</segmentedlist> </segmentedlist>
<variablelist>
<bridgehead renderas="sect3">Short Descriptions</bridgehead>
<?dbfo list-presentation="list"?>
<?dbhtml list-presentation="table"?>
<varlistentry id="wheel-wheel">
<term><command>wheel</command></term>
<listitem>
<para>
is an utility to unpack, pack, or convert wheel packages
</para>
<indexterm zone="ch-system-wheel">
<primary sortas="b-wheel">wheel</primary>
</indexterm>
</listitem>
</varlistentry>
</variablelist>
</sect2> </sect2>
</sect1> </sect1>

View File

@ -248,8 +248,8 @@ File systems ---&gt;
<caution> <caution>
<para>If the host system has a separate /boot partition, the files copied <para>If the host system has a separate /boot partition, the files copied
below should go there. The easiest way to do that is to bind /boot on the below should go there. The easiest way to do that is to bind /boot on the
host (outside chroot) to /mnt/lfs/boot before proceeding. As the root host (outside chroot) to /mnt/lfs/boot before proceeding. As the
user in the <emphasis>host system</emphasis>:</para> &root; user in the <emphasis>host system</emphasis>:</para>
<screen role="nodump"><userinput>mount --bind /boot /mnt/lfs/boot</userinput></screen> <screen role="nodump"><userinput>mount --bind /boot /mnt/lfs/boot</userinput></screen>
</caution> </caution>

View File

@ -46,8 +46,8 @@
<listitem><para>Installing <ulink <listitem><para>Installing <ulink
url='&blfs-book;postlfs/sudo.html'>sudo</ulink> may be useful for url='&blfs-book;postlfs/sudo.html'>sudo</ulink> may be useful for
building packages as a non-root user and easily installing the resulting building packages as a non-&root; user and easily installing the
packages in your new system.</para></listitem> resulting packages in your new system.</para></listitem>
<listitem><para>If you want to access your new system from a remote system <listitem><para>If you want to access your new system from a remote system
within a comfortable GUI environment, install <ulink within a comfortable GUI environment, install <ulink

View File

@ -112,6 +112,9 @@
<!ENTITY savannah-nongnu "https://savannah.nongnu.org"> <!ENTITY savannah-nongnu "https://savannah.nongnu.org">
<!ENTITY github "https://github.com"> <!ENTITY github "https://github.com">
<!ENTITY root "<systemitem class='username'>root</systemitem>">
<!ENTITY lfs-user "<systemitem class='username'>lfs</systemitem>">
<!ENTITY % packages-entities SYSTEM "packages.ent"> <!ENTITY % packages-entities SYSTEM "packages.ent">
%packages-entities; %packages-entities;

View File

@ -70,6 +70,7 @@ function find_even_max( $lines, $regex_match, $regex_replace )
function http_get_file( $url ) function http_get_file( $url )
{ {
if ( ! preg_match( "/sourceforge/", $url ) && if ( ! preg_match( "/sourceforge/", $url ) &&
! preg_match( "/mpfr/", $url ) &&
! preg_match( "/psmisc/", $url ) ) ! preg_match( "/psmisc/", $url ) )
{ {
exec( "curl --location --silent --max-time 30 $url", $dir ); exec( "curl --location --silent --max-time 30 $url", $dir );
@ -78,6 +79,14 @@ function http_get_file( $url )
$dir = strip_tags( $s ); $dir = strip_tags( $s );
return explode( "\n", $dir ); return explode( "\n", $dir );
} }
else if ( preg_match( "/mpfr/", $url ) )
{
# There seems to be a problem with the mpfs certificate
exec( "curl --location --silent --insecure --max-time 30 $url", $dir );
$s = implode( "\n", $dir );
$dir = strip_tags( $s );
return explode( "\n", $dir );
}
else else
{ {
exec( "lynx -dump $url 2>/dev/null", $lines ); exec( "lynx -dump $url 2>/dev/null", $lines );
@ -137,6 +146,7 @@ if ( $package == "systemd" ) $dirpath = "https://github.com/systemd/systemd/r
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 == "zstd" ) $dirpath = "https://github.com/facebook/zstd/releases"; if ( $package == "zstd" ) $dirpath = "https://github.com/facebook/zstd/releases";
// Check for ftp // Check for ftp

View File

@ -508,7 +508,7 @@
<!ENTITY mpfr-version "4.1.0"> <!ENTITY mpfr-version "4.1.0">
<!ENTITY mpfr-size "1,490 KB"> <!ENTITY mpfr-size "1,490 KB">
<!ENTITY mpfr-url "https://www.mpfr.org/mpfr-&mpfr-version;/mpfr-&mpfr-version;.tar.xz"> <!ENTITY mpfr-url "https://ftp.gnu.org/gnu/mpfr/mpfr-&mpfr-version;.tar.xz">
<!ENTITY mpfr-md5 "bdd3d5efba9c17da8d83a35ec552baef"> <!ENTITY mpfr-md5 "bdd3d5efba9c17da8d83a35ec552baef">
<!ENTITY mpfr-home "https://www.mpfr.org/"> <!ENTITY mpfr-home "https://www.mpfr.org/">
<!ENTITY mpfr-fin-du "38 MB"> <!ENTITY mpfr-fin-du "38 MB">