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
<quote>Entering the Chroot Environment</quote> must be done as the
<systemitem class="username">root</systemitem> user, with the LFS
environment variable set for the
<systemitem class="username">root</systemitem>user.</para>
environment variable set for the &root; user.</para>
</listitem>
<listitem>

View File

@ -10,6 +10,21 @@
<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>
<variablelist role="materials">
@ -173,15 +188,6 @@
<para>Home page: <ulink url="&expat-home;"/></para>
<para>Download: <ulink url="&expat-url;"/></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>
</varlistentry>

View File

@ -86,8 +86,8 @@ case $(uname -m) in
esac</userinput></screen>
<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
prompt "lfs:~$" does not appear immediately, entering the
properly and suspends the login to the &lfs-user; user to the background.
If the prompt "lfs:~$" does not appear immediately, entering the
<command>fg</command> command will fix the issue.</para></note>
<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. -->
<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>
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>
<screen role="nodump"><computeroutput>cd $LFS

View File

@ -25,7 +25,7 @@
<para>Until <xref linkend="ch-tools-chroot"/>, the commands must be
run as <systemitem class="username">root</systemitem>, with the
<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
LFS system with badly formed commands.</para>

View File

@ -73,7 +73,7 @@
<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
requirement, spawn a new pseudo terminal using
<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>
<para>Fix some of the permissions so that the non-root user can compile and
run the tests:</para>
<para>Fix some of the permissions so that the non-&root; user can
compile and run the tests:</para>
<screen><userinput remap="test">chown -Rv tester . </userinput></screen>

View File

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

View File

@ -93,16 +93,43 @@
<screen><userinput remap="install">make install</userinput></screen>
<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
with the Python developers recommendation to build packages in a virtual
environment as a regular user. To this end, a multi-line warning is
written when using <command>pip3</command> as the root user. If desired,
supress this warning by running the following command:</para>
install Python 3 programs and modules for all users as
<systemitem class='username'>root</systemitem>. This conflicts
with the Python developers recommendation to install packages into a
virtual environment or the home directory of a regular user (by running
<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' \
-i /usr/lib/python3.10/site-packages/pip/_internal/cli/req_command.py
</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>

View File

@ -84,7 +84,7 @@
<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
<systemitem class="username">root</systemitem> user can be harmful to

View File

@ -14,7 +14,7 @@
<address>&wheel-url;</address>
</sect1info>
<title>wheel-&wheel-version;</title>
<title>Wheel-&wheel-version;</title>
<indexterm zone="ch-system-wheel">
<primary sortas="a-wheel">wheel</primary>
@ -23,7 +23,7 @@
<sect2 role="package">
<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>
<segmentedlist>
@ -50,7 +50,7 @@
<varlistentry>
<term><command>install</command></term>
<listitem>
<para>Install the package</para>
<para>Install the package.</para>
</listitem>
</varlistentry>
@ -79,16 +79,33 @@
<title>Contents of Wheel</title>
<segmentedlist>
<segtitle>Installed module</segtitle>
<segtitle>Installed program</segtitle>
<segtitle>Installed directory</segtitle>
<seglistitem>
<seg>wheel.py</seg>
<seg>wheel</seg>
<seg>/usr/lib/python&python-minor;/site-packages/wheel</seg>
</seglistitem>
</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>
</sect1>

View File

@ -248,8 +248,8 @@ File systems ---&gt;
<caution>
<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
host (outside chroot) to /mnt/lfs/boot before proceeding. As the root
user in the <emphasis>host system</emphasis>:</para>
host (outside chroot) to /mnt/lfs/boot before proceeding. As the
&root; user in the <emphasis>host system</emphasis>:</para>
<screen role="nodump"><userinput>mount --bind /boot /mnt/lfs/boot</userinput></screen>
</caution>

View File

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

View File

@ -112,6 +112,9 @@
<!ENTITY savannah-nongnu "https://savannah.nongnu.org">
<!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">
%packages-entities;

View File

@ -70,6 +70,7 @@ function find_even_max( $lines, $regex_match, $regex_replace )
function http_get_file( $url )
{
if ( ! preg_match( "/sourceforge/", $url ) &&
! preg_match( "/mpfr/", $url ) &&
! preg_match( "/psmisc/", $url ) )
{
exec( "curl --location --silent --max-time 30 $url", $dir );
@ -78,6 +79,14 @@ function http_get_file( $url )
$dir = strip_tags( $s );
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
{
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 == "util-linux" ) $dirpath = max_parent( $dirpath, "v." );
if ( $package == "vim" ) $dirpath = "https://github.com/vim/vim/tags";
if ( $package == "wheel" ) $dirpath = "https://pypi.org/project/wheel/#files";
if ( $package == "zstd" ) $dirpath = "https://github.com/facebook/zstd/releases";
// Check for ftp

View File

@ -508,7 +508,7 @@
<!ENTITY mpfr-version "4.1.0">
<!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-home "https://www.mpfr.org/">
<!ENTITY mpfr-fin-du "38 MB">