Changeset b59b371
- Timestamp:
- 11/19/2022 08:27:13 AM (17 months ago)
- Branches:
- xry111/clfs-ng
- Children:
- 2ef64c4
- Parents:
- 4d3f41c (diff), 651f491 (diff)
Note: this is a merge changeset, the changes displayed below correspond to the merge itself.
Use the(diff)
links above to see all the changes relative to each parent. - Files:
-
- 17 edited
Legend:
- Unmodified
- Added
- Removed
-
chapter07/chroot.xml
r4d3f41c rb59b371 53 53 54 54 <para>The <parameter>-i</parameter> option given to the <command>env</command> 55 command will clear all variables ofthe environment. After that, only55 command will clear all the variables in the environment. After that, only 56 56 the <envar>HOME</envar>, <envar>TERM</envar>, <envar>PS1</envar>, and 57 57 <envar>PATH</envar> variables are set again. The 58 58 <parameter>TERM=$TERM</parameter> construct will set the <envar>TERM</envar> 59 59 variable to the default value specified by <command>agetty</command>. This variable is 60 needed forprograms like <command>vim</command> and <command>less</command>61 tooperate properly. If other variables are desired, such as60 needed so programs like <command>vim</command> and <command>less</command> 61 can operate properly. If other variables are desired, such as 62 62 <envar>CFLAGS</envar> or <envar>CXXFLAGS</envar>, this is a good place to set 63 them again.</para>63 them.</para> 64 64 65 65 <para>Notice that <filename class="directory">/tools/bin</filename> is not 66 66 in the <envar>PATH</envar>. This means that the cross toolchain will no longer be 67 used on the target machine.</para>67 used.</para> 68 68 69 69 <para>Note that the <command>bash</command> prompt will say -
chapter07/cleanup.xml
r4d3f41c rb59b371 14 14 <title>Cleaning</title> 15 15 16 <para>First, remove the currently installed documentation to prevent them16 <para>First, remove the currently installed documentation files to prevent them 17 17 from ending up in the final system, and to save about 35 MB:</para> 18 18 … … 20 20 21 21 <para>Second, on a modern Linux system, the libtool .la files are only 22 useful for libltdl. No libraries in LFS are expected to beloaded by23 libltdl, and it's known that some .la files can cause BLFS package s24 fail to build. Remove those files now:</para>22 useful for libltdl. No libraries in LFS are loaded by 23 libltdl, and it's known that some .la files can cause BLFS package 24 failures. Remove those files now:</para> 25 25 26 26 <screen><userinput>find /usr/{lib,libexec} -name \*.la -delete</userinput></screen> … … 43 43 backed up for later reuse. In case of fatal failures in the subsequent 44 44 chapters, it often turns out that removing everything and starting over 45 (more carefully) is the best optionto recover. Unfortunately, all the45 (more carefully) is the best way to recover. Unfortunately, all the 46 46 temporary files will be removed, too. To avoid spending extra time to 47 redo something which has been builtsuccessfully, creating a backup of47 redo something which has been done successfully, creating a backup of 48 48 the current LFS system may prove useful. 49 49 </para> … … 72 72 Note that the instructions below specify the home directory of the host 73 73 system's <systemitem class="username">root</systemitem> user, which is 74 typically found on the root filesystem. 75 </para> 76 77 <para> 74 typically found on the root file system. 78 75 Replace <envar>$HOME</envar> by a directory of your choice if you 79 76 do not want to have the backup stored in <systemitem -
chapter07/createfiles.xml
r4d3f41c rb59b371 35 35 </indexterm> 36 36 37 <para>Historically, Linux maintain sa list of the mounted file systems in the37 <para>Historically, Linux maintained a list of the mounted file systems in the 38 38 file <filename>/etc/mtab</filename>. Modern kernels maintain this list 39 39 internally and expose it to the user via the <filename 40 40 class="directory">/proc</filename> filesystem. To satisfy utilities that 41 expect t he presence of<filename>/etc/mtab</filename>, create the following41 expect to find <filename>/etc/mtab</filename>, create the following 42 42 symbolic link:</para> 43 43 … … 160 160 <para>The created groups are not part of any standard—they are groups 161 161 decided on in part by the requirements of the Udev configuration in Chapter 162 9, and in part by common convention employed by a number of existing Linux162 9, and in part by common conventions employed by a number of existing Linux 163 163 distributions. In addition, some test suites rely on specific users or 164 164 groups. The Linux Standard Base (LSB, available at <ulink … … 166 166 besides the group <systemitem class="groupname">root</systemitem> with a 167 167 Group ID (GID) of 0, a group <systemitem class="groupname">bin</systemitem> 168 with a GID of 1 be present. The GID of 5 is widely used for 168 with a GID of 1 be present. The GID of 5 is widely used for the 169 169 <systemitem class="groupname">tty</systemitem> group, and the number 5 is 170 170 also used in <phrase revision="systemd">systemd</phrase> … … 180 180 machine or in the separate namespace). We assign 181 181 <systemitem class="username">nobody</systemitem> and 182 <systemitem class="groupname">nogroup</systemitem> for itto avoid an182 <systemitem class="groupname">nogroup</systemitem> to avoid an 183 183 unnamed ID. But other distros may treat this ID differently, so any 184 184 portable program should not depend on this assignment.</para> -
chapter07/kernfs.xml
r4d3f41c rb59b371 16 16 17 17 <para>Applications running in user space utilize various file 18 systems exported by the kernel to communicate18 systems created by the kernel to communicate 19 19 with the kernel itself. These file systems are virtual: no disk 20 space is used for them. The content of the file systems resides in20 space is used for them. The content of these file systems resides in 21 21 memory.</para> 22 22 23 <para>Begin by creating directories on which thefile systems will be23 <para>Begin by creating the directories on which these virtual file systems will be 24 24 mounted:</para> 25 25 … … 31 31 <para>The kernel has already mounted 32 32 <systemitem class="filesystem">devtmpfs</systemitem>. 33 Mount the remaining virtual kernel file systems:</para>33 Mount the remaining virtual kernel file systems:</para> 34 34 35 35 <screen><userinput>mkdir -pv /dev/{pts,shm} -
chapter08/bc.xml
r4d3f41c rb59b371 60 60 <listitem> 61 61 <para>Omit parts of the test suite that won't work 62 without a GNU bc present.</para>62 until the bc program has been installed.</para> 63 63 </listitem> 64 64 </varlistentry> -
chapter08/binutils.xml
r4d3f41c rb59b371 88 88 <term><parameter>--enable-gold</parameter></term> 89 89 <listitem> 90 <para>Build the gold linker and install it as ld.gold (along 90 <para>Build the gold linker and install it as ld.gold (alongside the 91 91 default linker).</para> 92 92 </listitem> … … 119 119 <term><parameter>--with-system-zlib</parameter></term> 120 120 <listitem> 121 <para>Use the installed zlib library rather thanbuilding the121 <para>Use the installed zlib library instead of building the 122 122 included version.</para> 123 123 </listitem> … … 144 144 class="directory">/usr</filename> is not required. <filename 145 145 class="directory">$(exec_prefix)/$(target_alias)</filename> would be 146 used if the system w asused to cross-compile (for example, compiling a146 used if the system were used to cross-compile (for example, compiling a 147 147 package on an Intel machine that generates code that can be executed 148 148 on PowerPC machines).</para> … … 165 165 <screen><userinput remap="test">grep '^FAIL:' $(find -name '*.log')</userinput></screen> 166 166 167 <para>Twelve tests fail in the gold test suite when the167 <para>Twelve tests fail in the gold test suite when the 168 168 <option>--enable-default-pie</option> and 169 169 <option>--enable-default-ssp</option> options are passed to GCC. … … 180 180 assured of the correctness of gas, invoke 181 181 <command>make check-gas</command> to run gas testsuite separately and 182 all tests should pass. Three gprofng tests result183 <literal>ERROR</literal> and they are counted as182 all tests should pass. Three gprofng tests yield the 183 <literal>ERROR</literal> result, and they are counted as 184 184 <literal>UNRESOLVED</literal> in the summary.</para> 185 185 … … 274 274 <term><command>elfedit</command></term> 275 275 <listitem> 276 <para>Updates the ELF header of ELF files</para>276 <para>Updates the ELF headers of ELF files</para> 277 277 <indexterm zone="ch-system-binutils elfedit"> 278 278 <primary sortas="b-elfedit">elfedit</primary> … … 294 294 <term><command>gprofng</command></term> 295 295 <listitem> 296 <para>Gather and analyzeperformance data</para>296 <para>Gathers and analyzes performance data</para> 297 297 <indexterm zone="ch-system-binutils gprofng"> 298 298 <primary sortas="b-gprofng">gprofng</primary> … … 327 327 <term><command>ld.bfd</command></term> 328 328 <listitem> 329 <para> Hard link to <command>ld</command></para>329 <para>A hard link to <command>ld</command></para> 330 330 <indexterm zone="ch-system-binutils ld.bfd"> 331 331 <primary sortas="b-ld.bfd">ld.bfd</primary> -
chapter08/dbus.xml
r4d3f41c rb59b371 56 56 --disable-doxygen-docs \ 57 57 --disable-xml-docs \ 58 --docdir=/usr/share/doc/dbus-&dbus-version; \58 --docdir=/usr/share/doc/dbus-&dbus-version; \ 59 59 --with-system-socket=/run/dbus/system_bus_socket</userinput></screen> 60 60 -
chapter08/glibc.xml
r4d3f41c rb59b371 44 44 <title>Installation of Glibc</title> 45 45 46 <para>First, fix an issue building Glibc with parallel jobs and make-4.446 <para>First, fix an issue building Glibc with parallel jobs and Make-4.4 47 47 or later:</para> 48 48 … … 91 91 <term><parameter>--enable-kernel=&linux-major-version;.&linux-minor-version;</parameter></term> 92 92 <listitem> 93 <para>This option tells the build system that this glibc may93 <para>This option tells the build system that this Glibc may 94 94 be used with kernels as old as 95 95 &linux-major-version;.&linux-minor-version;. This means generating … … 219 219 <screen><userinput remap="install">make install</userinput></screen> 220 220 221 <para>Fix hardcoded path to the executable loader in221 <para>Fix a hardcoded path to the executable loader in the 222 222 <command>ldd</command> script:</para> 223 223 … … 237 237 238 238 <para>Next, install the locales that can make the system respond in a 239 different language. None of the locales are required, but if some of them240 are missing, the test suites of future packages wouldskip important241 test cases.</para>239 different language. None of these locales are required, but if some of them 240 are missing, the test suites of some packages will skip important 241 test cases.</para> 242 242 243 243 <para>Individual locales can be installed using the … … 292 292 character set.</para> 293 293 294 <para>Alternatively, install all locales listed in the294 <para>Alternatively, install all the locales listed in the 295 295 <filename>glibc-&glibc-version;/localedata/SUPPORTED</filename> file 296 296 (it includes every locale listed above and many more) at once with the … … 358 358 359 359 <sect3> 360 <title>Adding time zone data</title>360 <title>Adding Time Zone Data</title> 361 361 362 362 <para>Install and set up the time zone data with the following:</para> -
chapter08/introduction.xml
r4d3f41c rb59b371 21 21 may need it.</para> 22 22 23 <para>We do not recommend using optimizations. They can make23 <para>We do not recommend using customized optimizations. They can make 24 24 a program run slightly faster, but they may also cause compilation 25 difficulties and problems when running the program. If a package refuses to26 compile w hen using optimization, try to compile it without optimization and27 see if that fixes the problem. Even if the package does compile when using25 difficulties, and problems when running the program. If a package refuses to 26 compile with a customized optimization, try to compile it without 27 optimization and see if that fixes the problem. Even if the package does compile when using a customized 28 28 optimization, there is the risk it may have been compiled incorrectly because 29 of the complex interactions between the code and build tools. Also note that29 of the complex interactions between the code and the build tools. Also note that 30 30 the <option>-march</option> and <option>-mtune</option> options using values 31 31 not specified in the book have not been tested. This may cause problems with 32 32 the toolchain packages (Binutils, GCC and Glibc). The small potential gains 33 achieved in using compiler optimizations are often outweighed by the risks.33 achieved by customizing compiler optimizations are often outweighed by the risks. 34 34 First-time builders of LFS are encouraged to build without custom 35 optimizations. The subsequent system will still run very fast and be stable 36 at the same time.</para> 35 optimizations.</para> 36 37 <para>On the other hand, we keep the optimizations enabled by the default 38 configuration of the packages. In addition, we sometimes explicitly enable an 39 optimized configuration provided by a package but not enabled by 40 default. The package maintainers have already tested these configurations 41 and consider them safe, so it's not likely they would break the build. 42 Generally the default configuration already enables <option>-O2</option> 43 or <option>-O3</option>, so the resulting system will still run very fast 44 without any customized optimization, and be stable at the same time.</para> 37 45 38 46 <para>Before the installation instructions, each installation page provides … … 43 51 descriptions) that the package installs.</para> 44 52 45 <note><para>The SBU values and required disk space include stest suite data53 <note><para>The SBU values and required disk space include test suite data 46 54 for all applicable packages in <xref linkend="chapter-building-system"/>. SBU 47 55 values have been calculated using a single CPU core (-j1) for all … … 49 57 50 58 <sect2> 51 <title>About libraries</title>59 <title>About Libraries</title> 52 60 53 61 <para>In general, the LFS editors discourage building and installing static 54 libraries. The original purpose for most static libraries hasbeen made62 libraries. Most static libraries have been made 55 63 obsolete in a modern Linux system. In addition, linking a static library 56 64 into a program can be detrimental. If an update to the library is needed 57 to remove a security problem, all programs that usethe static library will58 need to be relinked tothe new library. Since the use of static libraries65 to remove a security problem, every program that uses the static library will 66 need to be relinked with the new library. Since the use of static libraries 59 67 is not always obvious, the relevant programs (and the procedures needed to 60 68 do the linking) may not even be known.</para> 61 69 62 <para> In the procedures in this chapter, weremove or disable installation of70 <para>The procedures in this chapter remove or disable installation of 63 71 most static libraries. Usually this is done by passing a 64 72 <option>--disable-static</option> option to <command>configure</command>. 65 73 In other cases, alternate means are needed. In a few cases, especially 66 glibc and gcc, the use of static libraries remains essential to the general74 Glibc and GCC, the use of static libraries remains an essential feature of the 67 75 package building process. </para> 68 76 69 <para>For a more complete discussion of libraries, see the discussion77 <para>For a more complete discussion of libraries, see 70 78 <ulink url="&blfs-book;introduction/libraries.html"> 71 79 Libraries: Static or shared?</ulink> in the BLFS book.</para> -
chapter08/pkgmgt.xml
r4d3f41c rb59b371 13 13 <para>Package Management is an often requested addition to the LFS Book. A 14 14 Package Manager tracks the installation of files, making it easier to 15 remove and upgrade packages. As well as the binary and library files, a 16 package manager will handle the installation of configuration files. Before 15 remove and upgrade packages. A good package manager will also handle the 16 configuration files specially to keep the user configuration when the 17 package is reinstalled or upgraded. Before 17 18 you begin to wonder, NO—this section will not talk about nor recommend 18 any particular package manager. What it providesis a roundup of the more19 any particular package manager. What it does provide is a roundup of the more 19 20 popular techniques and how they work. The perfect package manager for you may 20 21 be among these techniques, or it may be a combination of two or more of these … … 62 63 63 64 <listitem> 64 <para>If Linux API headers or glibc need to be upgraded to a newer65 version, (e.g., from glibc-2.31 to glibc-2.32), it is safer to65 <para>If the Linux API headers or Glibc need to be upgraded to a newer 66 version, (e.g., from Glibc-2.31 to Glibc-2.32), it is safer to 66 67 rebuild LFS. Though you <emphasis>may</emphasis> be able to rebuild 67 68 all the packages in their dependency order, we do not recommend … … 203 204 reality it is installed in the 204 205 <filename class="directory">/usr/pkg</filename> hierarchy. Installing in 205 this manner is not usually a trivial task. For example, consider thatyou206 this manner is not usually a trivial task. For example, suppose you 206 207 are installing a package libfoo-1.1. The following instructions may 207 208 not install the package properly:</para> … … 322 323 another computer with the same architecture as the base system is as 323 324 simple as using <command>tar</command> on the LFS partition that contains 324 the root directory (about 250MB uncompressed for a base LFS build), copying 325 the root directory (about 900MB uncompressed for a basic LFS build), copying 326 <!-- D. Bryant created LFS 11.2 in October 2022; 900MB is (roughly) the size of his rsync archive. --> 325 327 that file via network transfer or CD-ROM / USB stick to the new system, and expanding 326 328 it. After that, a few configuration files will have to be changed. -
chapter08/procps.xml
r4d3f41c rb59b371 43 43 <para>Prepare procps-ng for compilation:</para> 44 44 45 <screen revision="sysv"><userinput remap="configure">./configure --prefix=/usr 45 <screen revision="sysv"><userinput remap="configure">./configure --prefix=/usr \ 46 46 --docdir=/usr/share/doc/procps-ng-&procps-ng-version; \ 47 --disable-static 47 --disable-static \ 48 48 --disable-kill</userinput></screen> 49 49 50 <screen revision="systemd"><userinput remap="configure">./configure --prefix=/usr 50 <screen revision="systemd"><userinput remap="configure">./configure --prefix=/usr \ 51 51 --docdir=/usr/share/doc/procps-ng-&procps-ng-version; \ 52 --disable-static 53 --disable-kill 52 --disable-static \ 53 --disable-kill \ 54 54 --with-systemd</userinput></screen> 55 55 -
chapter08/readline.xml
r4d3f41c rb59b371 24 24 <title/> 25 25 26 <para>The Readline package is a set of libraries that offer scommand-line26 <para>The Readline package is a set of libraries that offer command-line 27 27 editing and history capabilities.</para> 28 28 … … 62 62 63 63 <variablelist> 64 <title>The meaning of the configure option:</title>64 <title>The meaning of the new configure option:</title> 65 65 66 66 <varlistentry> … … 68 68 <listitem> 69 69 <para>This option tells Readline that it can find the termcap 70 library functions in the curses library, rather thana separate71 termcap library. It allows generating acorrect70 library functions in the curses library, not a separate 71 termcap library. This will generate the correct 72 72 <filename>readline.pc</filename> file.</para> 73 73 </listitem> -
chapter08/shadow.xml
r4d3f41c rb59b371 245 245 <segmentedlist> 246 246 <segtitle>Installed programs</segtitle> 247 <segtitle>Installed director y</segtitle>247 <segtitle>Installed directories</segtitle> 248 248 <segtitle>Installed libraries</segtitle> 249 249 … … 255 255 sg (link to newgrp), su, useradd, userdel, usermod, 256 256 vigr (link to vipw), and vipw</seg> 257 <seg>/etc/default</seg>257 <seg>/etc/default and /usr/include/shadow</seg> 258 258 <seg>libsubid.so</seg> 259 259 </seglistitem> -
chapter08/tcl.xml
r4d3f41c rb59b371 28 28 <para>The <application>Tcl</application> package contains the Tool Command Language, 29 29 a robust general-purpose scripting language. The <application>Expect</application> package 30 is written in the <application>Tcl</application> language.</para>30 is written in <application>Tcl</application> (pronounced "tickle").</para> 31 31 32 32 <segmentedlist> … … 46 46 47 47 <para>This package and the next two (Expect and DejaGNU) are 48 installed to support running the test suites for binutils andGCC and other48 installed to support running the test suites for Binutils, GCC and other 49 49 packages. Installing three packages for testing purposes may seem 50 50 excessive, but it is very reassuring, if not essential, to know that the … … 88 88 89 89 <para>The various <quote>sed</quote> instructions after the 90 <quote>make</quote> command remove sreferences to the build directory from91 the configuration files and replace sthem with the install directory.92 This is not mandatory for the remainder of LFS, but may be needed i n casea90 <quote>make</quote> command remove references to the build directory from 91 the configuration files and replace them with the install directory. 92 This is not mandatory for the remainder of LFS, but may be needed if a 93 93 package built later uses Tcl.</para> 94 94 -
chapter08/util-linux.xml
r4d3f41c rb59b371 45 45 <para>Prepare Util-linux for compilation:</para> 46 46 47 <screen revision="sysv"><userinput remap="configure">./configure ADJTIME_PATH=/var/lib/hwclock/adjtime 47 <screen revision="sysv"><userinput remap="configure">./configure ADJTIME_PATH=/var/lib/hwclock/adjtime \ 48 48 --bindir=/usr/bin \ 49 49 --libdir=/usr/lib \ 50 50 --sbindir=/usr/sbin \ 51 --docdir=/usr/share/doc/util-linux-&util-linux-version; \52 51 --disable-chfn-chsh \ 53 52 --disable-login \ … … 60 59 --without-python \ 61 60 --without-systemd \ 62 --without-systemdsystemunitdir</userinput></screen> 63 64 <screen revision="systemd"><userinput remap="configure">./configure ADJTIME_PATH=/var/lib/hwclock/adjtime \ 61 --without-systemdsystemunitdir \ 62 --docdir=/usr/share/doc/util-linux-&util-linux-version;</userinput></screen> 63 64 <screen revision="systemd"><userinput remap="configure">./configure ADJTIME_PATH=/var/lib/hwclock/adjtime \ 65 65 --bindir=/usr/bin \ 66 66 --libdir=/usr/lib \ 67 67 --sbindir=/usr/sbin \ 68 --docdir=/usr/share/doc/util-linux-&util-linux-version; \69 68 --disable-chfn-chsh \ 70 69 --disable-login \ … … 75 74 --disable-pylibmount \ 76 75 --disable-static \ 77 --without-python</userinput></screen> 76 --without-python \ 77 --docdir=/usr/share/doc/util-linux-&util-linux-version;</userinput></screen> 78 78 79 79 <para>The --disable and --without options prevent warnings about -
lfs-latest-git.php
r4d3f41c rb59b371 140 140 if ( $package == "Python" ) $dirpath = "https://www.python.org/downloads/source/"; 141 141 if ( $package == "shadow" ) $dirpath = "https://github.com/shadow-maint/shadow/releases"; 142 if ( $package == "sysvinit" ) $dirpath = "https://github.com/slicer69/sysvinit/releases"; 142 143 if ( $package == "MarkupSafe" ) $dirpath = "https://pypi.python.org/pypi/MarkupSafe/"; 143 144 if ( $package == "Jinja" ) $dirpath = "https://pypi.python.org/pypi/Jinja2/"; … … 276 277 return find_max( $lines, "/^\s+\d\./", "/^\s+([\d\.]+)$/" ); 277 278 279 if ( $package == "sysvinit" ) 280 return find_max( $lines, "/^\s+\d\./", "/^\s+([\d\.]+)$/" ); 281 278 282 if ( $package == "XML-Parser" ) 279 283 { -
packages.ent
r4d3f41c rb59b371 357 357 <!ENTITY jinja2-version "3.1.2"> 358 358 <!ENTITY jinja2-size "262 KB"> 359 <!ENTITY jinja2-url " https://files.pythonhosted.org/packages/source/J/Jinja2/Jinja2-&jinja2-version;.tar.gz">359 <!ENTITY jinja2-url "&pypi-src;/J/Jinja2/Jinja2-&jinja2-version;.tar.gz"> 360 360 <!ENTITY jinja2-md5 "d31148abd89c1df1cdb077a55db27d02"> 361 361 <!ENTITY jinja2-home "https://jinja.palletsprojects.com/en/3.0.x/"> … … 488 488 <!ENTITY markupsafe-version "2.1.1"> 489 489 <!ENTITY markupsafe-size "20 KB"> 490 <!ENTITY markupsafe-url " https://files.pythonhosted.org/packages/source/M/MarkupSafe/MarkupSafe-&markupsafe-version;.tar.gz">490 <!ENTITY markupsafe-url "&pypi-src;/M/MarkupSafe/MarkupSafe-&markupsafe-version;.tar.gz"> 491 491 <!ENTITY markupsafe-md5 "9809f9fdd98bc835b0c21aa8f79cbf30"> 492 492 <!ENTITY markupsafe-home "https://palletsprojects.com/p/markupsafe/">
Note:
See TracChangeset
for help on using the changeset viewer.