mirror of
https://git.linuxfromscratch.org/lfs.git
synced 2025-06-18 19:29:21 +01:00
Trunk is now identical to Testing
git-svn-id: http://svn.linuxfromscratch.org/LFS/trunk/BOOK@4648 4aa44e1e-78dd-0310-a6d2-fbcd4c07a689
This commit is contained in:
parent
2f9131f839
commit
81fd230419
19
INSTALL
19
INSTALL
@ -20,23 +20,8 @@ If all you want to do is convert XML to HTML perform the following:
|
||||
* DocBook DTD
|
||||
- http://www.linuxfromscratch.org/blfs/view/svn/pst/xml.html
|
||||
|
||||
* DocBook XSL Stylesheets (1.67.2)
|
||||
install -d /usr/share/xml/docbook/xsl-stylesheets-1.67.2
|
||||
chown -R root:root .
|
||||
cp -af INSTALL VERSION common eclipse extensions fo html htmlhelp images \
|
||||
javahelp lib manpages params profiling template xhtml \
|
||||
/usr/share/xml/docbook/xsl-stylesheets-1.67.2
|
||||
install -d /usr/share/doc/xml
|
||||
cp -af doc/* /usr/share/doc/xml
|
||||
cd /usr/share/xml/docbook/xsl-stylesheets-1.67.2 && \
|
||||
sed -i -e 's@current/@1.67.2/@' INSTALL && \
|
||||
sh INSTALL
|
||||
xmlcatalog --noout --add "delegateURI" \
|
||||
"http://docbook.sourceforge.net/release/xsl/1.67.2/" \
|
||||
"file:///usr/share/xml/docbook/xsl-stylesheets-1.67.2/catalog.xml" \
|
||||
/etc/xml/catalog
|
||||
ln -sf xsl-stylesheets-$(VERSION) \
|
||||
/usr/share/xml/docbook/xsl-stylesheets-current
|
||||
* DocBook XSL Stylesheets
|
||||
- http://www.linuxfromscratch.org/blfs/view/svn/pst/docbook-xsl.html
|
||||
|
||||
* HTMLTidy
|
||||
- http://www.linuxfromscratch.org/blfs/view/svn/general/tidy.html
|
||||
|
18
Makefile
18
Makefile
@ -5,9 +5,9 @@ NOCHUNKS_OUTPUT=LFS-BOOK.html
|
||||
XSLROOTDIR=/usr/share/xml/docbook/xsl-stylesheets-current
|
||||
|
||||
lfs:
|
||||
xsltproc --xinclude --nonet -stringparam chunk.quietly $(CHUNK_QUIET) \
|
||||
-stringparam base.dir $(BASEDIR)/ stylesheets/lfs-chunked.xsl \
|
||||
index.xml
|
||||
xsltproc --xinclude --nonet -stringparam profile.condition html \
|
||||
-stringparam chunk.quietly $(CHUNK_QUIET) -stringparam base.dir $(BASEDIR)/ \
|
||||
stylesheets/lfs-chunked.xsl index.xml
|
||||
|
||||
if [ ! -e $(BASEDIR)/stylesheets ]; then \
|
||||
mkdir -p $(BASEDIR)/stylesheets; \
|
||||
@ -32,8 +32,9 @@ lfs:
|
||||
for filename in `find $(BASEDIR) -name "*.html"`; do \
|
||||
sed -i -e "s@text/html@application/xhtml+xml@g" $$filename; \
|
||||
done;
|
||||
|
||||
#
|
||||
# This is the old "pdf" target. The old "print" target below has been
|
||||
# This is the old "pdf" target. The old "print" target below has been
|
||||
# renamed to "pdf" and will be used. This commented out previous_pdf
|
||||
# target can be removed eventually. It'll remain here for a bit for
|
||||
# historical reasons
|
||||
@ -46,7 +47,7 @@ lfs:
|
||||
# rm lfs.fo
|
||||
|
||||
pdf:
|
||||
xsltproc --xinclude --nonet --stringparam profile.condition print \
|
||||
xsltproc --xinclude --nonet --stringparam profile.condition pdf \
|
||||
--output $(BASEDIR)/lfs-pdf.xml stylesheets/lfs-profile.xsl index.xml
|
||||
xsltproc --nonet --output $(BASEDIR)/lfs-pdf.fo stylesheets/lfs-pdf.xsl \
|
||||
$(BASEDIR)/lfs-pdf.xml
|
||||
@ -55,10 +56,15 @@ pdf:
|
||||
rm $(BASEDIR)/lfs-pdf.xml $(BASEDIR)/lfs-pdf.fo
|
||||
|
||||
nochunks:
|
||||
xsltproc --xinclude --nonet --output $(BASEDIR)/$(NOCHUNKS_OUTPUT) \
|
||||
xsltproc --xinclude --nonet -stringparam profile.condition html \
|
||||
--output $(BASEDIR)/$(NOCHUNKS_OUTPUT) \
|
||||
stylesheets/lfs-nochunks.xsl index.xml
|
||||
|
||||
tidy -config tidy.conf $(BASEDIR)/$(NOCHUNKS_OUTPUT) || true
|
||||
|
||||
sed -i -e "s@text/html@application/xhtml+xml@g" \
|
||||
$(BASEDIR)/$(NOCHUNKS_OUTPUT)
|
||||
|
||||
validate:
|
||||
xmllint --noout --nonet --xinclude --postvalid index.xml
|
||||
|
||||
|
10
TODO
10
TODO
@ -1,10 +0,0 @@
|
||||
- Mention --enable-kernel=... where appropriate.
|
||||
- POSIX compliance patches (aka, removing the coreutils hack).
|
||||
- Pass --enable-const (and maybe --enable-widec) to ncurses.
|
||||
- Use that E2fsprogs patch to include Readline support in debugfs.
|
||||
- See about removing some things from Chapter 5, like patch. We can build
|
||||
those at the beginning of chapter 6 and have one less package to compile.
|
||||
We need to be sure this doens't break the pureness though.
|
||||
- Check for pureness and fix any occurrences of breakage.
|
||||
- Add more index terms to hotplug page.
|
||||
- Convert some patches to seds (only sane ones, though).
|
@ -8,7 +8,402 @@
|
||||
<title>Acronyms and Terms</title>
|
||||
<?dbhtml filename="acronymlist.html"?>
|
||||
|
||||
<para>See testing</para>
|
||||
<variablelist>
|
||||
<?dbfo list-presentation="list"?>
|
||||
|
||||
<varlistentry>
|
||||
<term><emphasis role="bold">ABI</emphasis></term><listitem><para>Application Binary Interface</para></listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term><emphasis role="bold">ALFS</emphasis></term><listitem><para>Automated Linux From Scratch</para></listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term><emphasis role="bold">ALSA</emphasis></term><listitem><para>Advanced Linux
|
||||
Sound Architecture</para></listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term><emphasis role="bold">API</emphasis></term><listitem><para>Application
|
||||
Programming Interface</para></listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term><emphasis role="bold">ASCII</emphasis></term><listitem><para>American Standard
|
||||
Code for Information Interchange</para></listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term><emphasis role="bold">BIOS</emphasis></term><listitem><para>Basic Input/Output
|
||||
System</para></listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term><emphasis role="bold">BLFS</emphasis></term><listitem><para>Beyond Linux From
|
||||
Scratch</para></listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term><emphasis role="bold">BSD</emphasis></term><listitem><para>Berkeley Software
|
||||
Distribution</para></listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term><emphasis role="bold">chroot</emphasis></term><listitem><para>change root</para></listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term><emphasis role="bold">CMOS</emphasis></term><listitem><para>Complementary
|
||||
Metal Oxide Semiconductor</para></listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term><emphasis role="bold">COS</emphasis></term>
|
||||
<listitem><para>Class Of Service</para></listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term><emphasis role="bold">CPU</emphasis></term>
|
||||
<listitem><para>Central Processing Unit</para></listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term><emphasis role="bold">CRC</emphasis></term>
|
||||
<listitem><para>Cyclic Redundancy Check</para></listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term><emphasis role="bold">CVS</emphasis></term>
|
||||
<listitem><para>Concurrent Versions System</para></listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term><emphasis role="bold">DHCP</emphasis></term>
|
||||
<listitem><para>Dynamic Host Configuration Protocol</para></listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term><emphasis role="bold">DNS</emphasis></term>
|
||||
<listitem><para>Domain Name Service</para></listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term><emphasis role="bold">EGA</emphasis></term>
|
||||
<listitem><para>Enhanced Graphics Adapter</para></listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term><emphasis role="bold">ELF</emphasis></term>
|
||||
<listitem><para>Executable and Linkable Format</para></listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term><emphasis role="bold">EOF</emphasis></term>
|
||||
<listitem><para>End of File</para></listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term><emphasis role="bold">EQN</emphasis></term>
|
||||
<listitem><para>equation</para></listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term><emphasis role="bold">EVMS</emphasis></term>
|
||||
<listitem><para>Enterprise Volume Management System</para></listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term><emphasis role="bold">ext2</emphasis></term>
|
||||
<listitem><para>second extended file system</para></listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term><emphasis role="bold">FAQ</emphasis></term>
|
||||
<listitem><para>Frequently Asked Questions</para></listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term><emphasis role="bold">FHS</emphasis></term>
|
||||
<listitem><para>Filesystem Hierarchy Standard</para></listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term><emphasis role="bold">FIFO</emphasis></term>
|
||||
<listitem><para>First-In, First Out</para></listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term><emphasis role="bold">FQDN</emphasis></term>
|
||||
<listitem><para>Fully Qualified Domain Name</para></listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term><emphasis role="bold">FTP</emphasis></term>
|
||||
<listitem><para>File Transfer Protocol</para></listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term><emphasis role="bold">GB</emphasis></term>
|
||||
<listitem><para>Gibabytes</para></listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term><emphasis role="bold">GCC</emphasis></term>
|
||||
<listitem><para>GNU Compiler Collection</para></listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term><emphasis role="bold">GID</emphasis></term>
|
||||
<listitem><para>Group Identifier</para></listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term><emphasis role="bold">GMT</emphasis></term>
|
||||
<listitem><para>Greenwich Mean Time</para></listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term><emphasis role="bold">GPG</emphasis></term>
|
||||
<listitem><para>GNU Privacy Guard</para></listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term><emphasis role="bold">HTML</emphasis></term>
|
||||
<listitem><para>Hypertext Markup Language</para></listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term><emphasis role="bold">IDE</emphasis></term>
|
||||
<listitem><para>Integrated Drive Electronics</para></listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term><emphasis role="bold">IEEE</emphasis></term>
|
||||
<listitem><para>Institute of Electrical and Electronic Engineers</para></listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term><emphasis role="bold">IO</emphasis></term>
|
||||
<listitem><para>Input/Output</para></listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term><emphasis role="bold">IP</emphasis></term>
|
||||
<listitem><para>Internet Protocol</para></listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term><emphasis role="bold">IPC</emphasis></term>
|
||||
<listitem><para>Inter-Process Communication</para></listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term><emphasis role="bold">IRC</emphasis></term>
|
||||
<listitem><para>Internet Relay Chat</para></listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term><emphasis role="bold">ISO</emphasis></term>
|
||||
<listitem><para>International Organization for Standardization</para></listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term><emphasis role="bold">ISP</emphasis></term>
|
||||
<listitem><para>Internet Service Provider</para></listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term><emphasis role="bold">KB</emphasis></term>
|
||||
<listitem><para>Kilobytes</para></listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term><emphasis role="bold">LED</emphasis></term>
|
||||
<listitem><para>Light Emitting Diode</para></listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term><emphasis role="bold">LFS</emphasis></term>
|
||||
<listitem><para>Linux From Scratch</para></listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term><emphasis role="bold">LSB</emphasis></term>
|
||||
<listitem><para>Linux Standards Base</para></listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term><emphasis role="bold">MB</emphasis></term>
|
||||
<listitem><para>Megabytes</para></listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term><emphasis role="bold">MBR</emphasis></term>
|
||||
<listitem><para>Master Boot Record</para></listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term><emphasis role="bold">MD5</emphasis></term>
|
||||
<listitem><para>Message Digest 5</para></listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term><emphasis role="bold">NIC</emphasis></term>
|
||||
<listitem><para>Network Interface Card</para></listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term><emphasis role="bold">NLS</emphasis></term>
|
||||
<listitem><para>Native Language Support</para></listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term><emphasis role="bold">NNTP</emphasis></term>
|
||||
<listitem><para>Network News Transport Protocol</para></listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term><emphasis role="bold">NPTL</emphasis></term>
|
||||
<listitem><para>Native POSIX Threading Library</para></listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term><emphasis role="bold">OSS</emphasis></term>
|
||||
<listitem><para>Open Sound System</para></listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term><emphasis role="bold">PCH</emphasis></term>
|
||||
<listitem><para>Pre-Compiled Headers</para></listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term><emphasis role="bold">PCRE</emphasis></term>
|
||||
<listitem><para>Perl Compatible Regular Expression</para></listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term><emphasis role="bold">PID</emphasis></term>
|
||||
<listitem><para>Process Identifier</para></listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term><emphasis role="bold">PLFS</emphasis></term>
|
||||
<listitem><para>Pure Linux From Scratch</para></listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term><emphasis role="bold">PTY</emphasis></term>
|
||||
<listitem><para>pseudo terminal</para></listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term><emphasis role="bold">QA</emphasis></term>
|
||||
<listitem><para>Quality Assurance</para></listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term><emphasis role="bold">QOS</emphasis></term>
|
||||
<listitem><para>Quality Of Service</para></listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term><emphasis role="bold">RAM</emphasis></term>
|
||||
<listitem><para>Random Access Memory</para></listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term><emphasis role="bold">RPC</emphasis></term>
|
||||
<listitem><para>Remote Procedure Call</para></listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term><emphasis role="bold">RTC</emphasis></term>
|
||||
<listitem><para>Real Time Clock</para></listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term><emphasis role="bold">SBU</emphasis></term>
|
||||
<listitem><para>Static Binutils Unit</para></listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term><emphasis role="bold">SCO</emphasis></term>
|
||||
<listitem><para>The Santa Cruz Operation</para></listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term><emphasis role="bold">SGR</emphasis></term>
|
||||
<listitem><para>Select Graphic Rendition</para></listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term><emphasis role="bold">SHA1</emphasis></term>
|
||||
<listitem><para>Secure-Hash Algorithm 1</para></listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term><emphasis role="bold">SMP</emphasis></term>
|
||||
<listitem><para>Symmetric Multi-Processor</para></listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term><emphasis role="bold">TLDP</emphasis></term>
|
||||
<listitem><para>The Linux Documentation Project</para></listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term><emphasis role="bold">TFTP</emphasis></term>
|
||||
<listitem><para>Trivial File Transfer Protocol</para></listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term><emphasis role="bold">TLS</emphasis></term>
|
||||
<listitem><para>Thread-Local Storage</para></listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term><emphasis role="bold">UID</emphasis></term>
|
||||
<listitem><para>User Identifier</para></listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term><emphasis role="bold">umask</emphasis></term>
|
||||
<listitem><para>user file-creation mask</para></listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term><emphasis role="bold">USB</emphasis></term>
|
||||
<listitem><para>Universal Serial Bus</para></listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term><emphasis role="bold">UTC</emphasis></term>
|
||||
<listitem><para>Coordinated Universal Time</para></listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term><emphasis role="bold">UUID</emphasis></term>
|
||||
<listitem><para>Universally Unique Identifier</para></listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term><emphasis role="bold">VC</emphasis></term>
|
||||
<listitem><para>Virtual Console</para></listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term><emphasis role="bold">VGA</emphasis></term>
|
||||
<listitem><para>Video Graphics Array</para></listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term><emphasis role="bold">VT</emphasis></term>
|
||||
<listitem><para>Virtual Terminal</para></listitem>
|
||||
</varlistentry>
|
||||
|
||||
</variablelist>
|
||||
|
||||
</appendix>
|
||||
|
||||
|
@ -8,7 +8,290 @@
|
||||
<title>Acknowledgments</title>
|
||||
<?dbhtml filename="acknowledgements.html"?>
|
||||
|
||||
<para>See testing</para>
|
||||
<para>We would like to thank the following people and organizations
|
||||
for their contributions to the Linux From Scratch Project.</para>
|
||||
|
||||
<bridgehead renderas="sect2">Project Team Members</bridgehead>
|
||||
|
||||
<itemizedlist>
|
||||
|
||||
<listitem><para><ulink url="mailto:gerard@linuxfromscratch.org">Gerard
|
||||
Beekmans</ulink> <gerard@linuxfromscratch.org> – Linux From
|
||||
Scratch initiator, LFS Project organizer</para></listitem>
|
||||
|
||||
<listitem><para><ulink
|
||||
url="mailto:theladyskye@linuxfromscratch.org">Christine
|
||||
Barczak</ulink> <theladyskye@linuxfromscratch.org> – LFS Book
|
||||
Editor</para></listitem>
|
||||
|
||||
<listitem><para><ulink
|
||||
url="mailto:matthew@linuxfromscratch.org">Matthew Burgess</ulink>
|
||||
<matthew@linuxfromscratch.org> – LFS Project Co-Leader, LFS
|
||||
general package maintainer, LFS Technical Writer.</para></listitem>
|
||||
|
||||
<listitem><para><ulink url="mailto:meerkats@bellsouth.net">Craig
|
||||
Colton</ulink> <meerkats@bellsouth.net> – LFS, Automated Linux
|
||||
From Scratch (ALFS), BLFS and hints project logo
|
||||
creator</para></listitem>
|
||||
|
||||
<listitem><para><ulink url="mailto:nathan@linuxfromscratch.org">Nathan
|
||||
Coulson</ulink> <nathan@linuxfromscratch.org> – LFS bootscripts
|
||||
maintainer</para></listitem>
|
||||
|
||||
<listitem><para><ulink url="mailto:jeroen@linuxfromscratch.org">Jeroen
|
||||
Coumans</ulink> <jeroen@linuxfromscratch.org> – Website
|
||||
developer, FAQ maintainer</para></listitem>
|
||||
|
||||
<listitem><para><ulink url="mailto:bdubbs@linuxfromscratch.org">Bruce
|
||||
Dubbs</ulink> <bdubbs@linuxfromscratch.org> – LFS Quality
|
||||
Assurance (QA) Team leader, BLFS Book Editor</para></listitem>
|
||||
|
||||
<listitem><para><ulink url="mailto:manuel@linuxfromscratch.org">Manuel
|
||||
Canales Esparcia</ulink> <manuel@linuxfromscratch.org> – LFS
|
||||
XML/XSL maintainer</para></listitem>
|
||||
|
||||
<listitem><para><ulink url="mailto:jim@linuxfromscratch.org">Jim
|
||||
Gifford</ulink> <jim@linuxfromscratch.org> – LFS Technical
|
||||
Writer, Patches maintainer</para></listitem>
|
||||
|
||||
<listitem><para><ulink url="mailto:jhuntwork@linuxfromscratch.org">Jeremy
|
||||
Huntwork</ulink> <jhuntwork@linuxfromscratch.org> – ALFS Maintainer, LFS Live-CD maintainer</para></listitem>
|
||||
|
||||
<listitem><para><ulink
|
||||
url="mailto:nicholas@linuxfromscratch.org">Nicholas Leippe</ulink>
|
||||
<nicholas@linuxfromscratch.org> – Wiki
|
||||
maintainer</para></listitem>
|
||||
|
||||
<listitem><para><ulink
|
||||
url="mailto:lizardo@linuxfromscratch.org">Anderson Lizardo</ulink>
|
||||
<lizardo@linuxfromscratch.org> – Website backend scripts
|
||||
maintainer</para></listitem>
|
||||
|
||||
<listitem><para><ulink url="mailto:scot@linuxfromscratch.org">Scot
|
||||
Mc Pherson</ulink> <scot@linuxfromscratch.org> – LFS NNTP gateway
|
||||
maintainer.</para></listitem>
|
||||
|
||||
<listitem><para><ulink url="mailto:ryan@linuxfromscratch.org">Ryan
|
||||
Oliver</ulink> <ryan@linuxfromscratch.org> – Testing Team
|
||||
leader, Toolchain maintainer, co-creator of Pure LFS
|
||||
(PLFS)</para></listitem>
|
||||
|
||||
<listitem><para><ulink url="mailto:semzx@newmail.ru">Alexander
|
||||
Patrakov</ulink> <semzx@newmail.ru> – Former LFS Technical
|
||||
Writer</para></listitem>
|
||||
|
||||
<listitem><para><ulink url="mailto:jwrober@linuxfromscratch.org">James
|
||||
Robertson</ulink> <jwrober@linuxfromscratch.org> – Bugzilla
|
||||
maintainer, Wiki developer, LFS Tecnical Writer</para></listitem>
|
||||
|
||||
<listitem><para><ulink url="mailto:tushar@linuxfromscratch.org">Tushar
|
||||
Teredesai</ulink> <tushar@linuxfromscratch.org> – BLFS Book
|
||||
Editor, hints and patches projects maintainer</para></listitem>
|
||||
|
||||
<listitem><para><ulink url="mailto:jeremy@linuxfromscratch.org">Jeremy
|
||||
Utley</ulink> <jeremy@linuxfromscratch.org> – LFS Technical
|
||||
Writer, Bugzilla maintainer, LFS bootscripts maintainer, LFS Server
|
||||
co-administrator</para></listitem>
|
||||
|
||||
<listitem><para><ulink url="mailto:zwinkles@gmail.com">Zack
|
||||
Winkles</ulink> <zwinkles@gmail.com> – Former LFS Technical
|
||||
Writer</para></listitem>
|
||||
|
||||
<listitem><para>Countless other people on the various LFS and BLFS mailing lists
|
||||
who helped make this book possible by giving their suggestions,
|
||||
testing the book, and submitting bug reports, instructions, and their
|
||||
experiences with installing various packages.</para></listitem>
|
||||
|
||||
</itemizedlist>
|
||||
|
||||
<bridgehead renderas="sect2">Translators</bridgehead>
|
||||
|
||||
<itemizedlist>
|
||||
|
||||
<listitem><para><ulink url="mailto:macana@lfs-es.com">Manuel Canales
|
||||
Esparcia</ulink> <macana@lfs-es.com> – Spanish LFS translation
|
||||
project</para></listitem>
|
||||
|
||||
<listitem><para><ulink url="mailto:johan@linuxfromscratch.org">Johan
|
||||
Lenglet</ulink> <johan@linuxfromscratch.org> – French LFS
|
||||
translation project</para></listitem>
|
||||
|
||||
<listitem><para><ulink
|
||||
url="mailto:lizardo@linuxfromscratch.org">Anderson Lizardo</ulink>
|
||||
<lizardo@linuxfromscratch.org> – Portuguese LFS translation
|
||||
project</para></listitem>
|
||||
|
||||
<listitem><para><ulink url="mailto:tr@erdfunkstelle.de">Thomas
|
||||
Reitelbach </ulink> <tr@erdfunkstelle.de> – German LFS
|
||||
translation project</para> </listitem>
|
||||
|
||||
</itemizedlist>
|
||||
|
||||
<bridgehead renderas="sect2">Mirror Maintainers</bridgehead>
|
||||
|
||||
<bridgehead renderas="sect3">North American Mirrors</bridgehead>
|
||||
|
||||
<itemizedlist>
|
||||
|
||||
<listitem><para><ulink url="mailto:scott@osuosl.org">Scott
|
||||
Kveton</ulink> <scott@osuosl.org> – lfs.oregonstate.edu
|
||||
mirror</para></listitem>
|
||||
|
||||
<listitem><para><ulink url="mailto:miha@xuy.biz">Mikhail
|
||||
Pastukhov</ulink> <miha@xuy.biz> – lfs.130th.net
|
||||
mirror</para></listitem>
|
||||
|
||||
<listitem><para><ulink url="mailto:lost@l-w.net">William Astle</ulink>
|
||||
<lost@l-w.net> – ca.linuxfromscratch.org
|
||||
mirror</para></listitem>
|
||||
|
||||
<listitem><para><ulink url="mailto:jpolen@rackspace.com">Jeremy
|
||||
Polen</ulink> <jpolen@rackspace.com> – us2.linuxfromscratch.org
|
||||
mirror</para></listitem>
|
||||
|
||||
<listitem><para><ulink url="mailto:tim@idge.net">Tim Jackson</ulink>
|
||||
<tim@idge.net> – linuxfromscratch.idge.net
|
||||
mirror</para></listitem>
|
||||
|
||||
<listitem><para><ulink url="mailto:jeremy@linux-phreak.net">Jeremy
|
||||
Utley </ulink> <jeremy@linux-phreak.net> – lfs.linux-phreak.net
|
||||
mirror</para></listitem>
|
||||
|
||||
</itemizedlist>
|
||||
|
||||
<bridgehead renderas="sect3">South American Mirrors</bridgehead>
|
||||
|
||||
<itemizedlist>
|
||||
|
||||
<listitem><para><ulink url="mailto:sysop@mesi.com.ar">Andres
|
||||
Meggiotto</ulink> <sysop@mesi.com.ar> – lfs.mesi.com.ar
|
||||
mirror</para></listitem>
|
||||
|
||||
<listitem><para><ulink url="mailto:manuel@linuxfromscratch.org">Manuel
|
||||
Canales Esparcia</ulink> <manuel@linuxfromscratch.org> –
|
||||
www.dattaweb.com/~lfs-eso/lfsmirror mirror</para></listitem>
|
||||
|
||||
<listitem><para><ulink url="mailto:ebf@aedsolucoes.com.br">Eduardo B.
|
||||
Fonseca</ulink> <ebf@aedsolucoes.com.br> –
|
||||
br.linuxfromscratch.org mirror</para></listitem>
|
||||
|
||||
</itemizedlist>
|
||||
|
||||
<bridgehead renderas="sect3">European Mirrors</bridgehead>
|
||||
|
||||
<itemizedlist>
|
||||
|
||||
<listitem><para><ulink url="mailto:barna@siker.hu">Barna
|
||||
Koczka</ulink> <barna@siker.hu> – hu.linuxfromscratch.org
|
||||
mirror</para></listitem>
|
||||
|
||||
<listitem><para><ulink url="http://www.mirror.ac.uk">UK Mirror
|
||||
Service</ulink> – linuxfromscratch.mirror.ac.uk
|
||||
mirror</para></listitem>
|
||||
|
||||
<listitem><para><ulink url="mailto:Martin.Voss@ada.de">Martin
|
||||
Voss</ulink> <Martin.Voss@ada.de> – lfs.linux-matrix.net
|
||||
mirror</para></listitem>
|
||||
|
||||
<listitem><para><ulink url="mailto:guido@primerelay.net">Guido
|
||||
Passet</ulink> <guido@primerelay.net> – nl.linuxfromscratch.org
|
||||
mirror</para></listitem>
|
||||
|
||||
<listitem><para><ulink url="mailto:baafie@planet.nl">Bastiaan
|
||||
Jacques</ulink> <baafie@planet.nl> – lfs.pagefault.net
|
||||
mirror</para></listitem>
|
||||
|
||||
<listitem><para><ulink
|
||||
url="mailto:lfs-mirror@linuxfromscratch.rave.org">Roel Neefs</ulink>
|
||||
<lfs-mirror@linuxfromscratch.rave.org> –
|
||||
linuxfromscratch.rave.org mirror</para></listitem>
|
||||
|
||||
<listitem><para><ulink url="mailto:justin@jrknierim.de">Justin
|
||||
Knierim</ulink> <justin@jrknierim.de> – www.lfs-matrix.de
|
||||
mirror</para></listitem>
|
||||
|
||||
<listitem><para><ulink url="mailto:stevie@stevie20.de">Stephan
|
||||
Brendel</ulink> <stevie@stevie20.de> – lfs.netservice-neuss.de
|
||||
mirror</para></listitem>
|
||||
|
||||
<listitem><para><ulink
|
||||
url="mailto:Antonin.Sprinzl@tuwien.ac.at">Antonin Sprinzl</ulink>
|
||||
<Antonin.Sprinzl@tuwien.ac.at> – at.linuxfromscratch.org
|
||||
mirror</para></listitem>
|
||||
|
||||
<listitem><para><ulink url="mailto:fredan-lfs@fredan.org">Fredrik
|
||||
Danerklint</ulink> <fredan-lfs@fredan.org> –
|
||||
se.linuxfromscratch.org mirror</para></listitem>
|
||||
|
||||
<listitem><para><ulink
|
||||
url="mailto:archive@doc.cs.univ-paris8.fr">Parisian sysadmins</ulink>
|
||||
<archive@doc.cs.univ-paris8.fr> – www2.fr.linuxfromscratch.org
|
||||
mirror</para></listitem>
|
||||
|
||||
<listitem><para><ulink url="mailto:velin@zadnik.org">Alexander
|
||||
Velin</ulink> <velin@zadnik.org> – bg.linuxfromscratch.org
|
||||
mirror</para></listitem>
|
||||
|
||||
<listitem><para><ulink url="mailto:dirk@securewebservices.co.uk"> Dirk
|
||||
Webster</ulink> <dirk@securewebservices.co.uk> –
|
||||
lfs.securewebservices.co.uk mirror</para></listitem>
|
||||
|
||||
<listitem><para><ulink url="mailto:thomas@sofagang.dk">Thomas
|
||||
Skyt</ulink> <thomas@sofagang.dk> – dk.linuxfromscratch.org
|
||||
mirror</para></listitem>
|
||||
|
||||
<listitem><para><ulink url="mailto:sime@dot-sime.com">Simon
|
||||
Nicoll</ulink> <sime@dot-sime.com> – uk.linuxfromscratch.org
|
||||
mirror</para>
|
||||
</listitem>
|
||||
|
||||
</itemizedlist>
|
||||
|
||||
<bridgehead renderas="sect3">Asian Mirrors</bridgehead>
|
||||
|
||||
<itemizedlist>
|
||||
|
||||
<listitem><para><ulink url="mailto:pyng@spam.averse.net">Pui
|
||||
Yong</ulink> <pyng@spam.averse.net> – sg.linuxfromscratch.org
|
||||
mirror</para></listitem>
|
||||
|
||||
<listitem><para><ulink url="mailto:stuart@althalus.me.uk">Stuart
|
||||
Harris</ulink> <stuart@althalus.me.uk> –
|
||||
lfs.mirror.intermedia.com.sg mirror</para></listitem>
|
||||
|
||||
</itemizedlist>
|
||||
|
||||
<bridgehead renderas="sect3">Australian Mirrors</bridgehead>
|
||||
|
||||
<itemizedlist>
|
||||
|
||||
<listitem><para><ulink url="mailto:jason@dstc.edu.au">Jason
|
||||
Andrade</ulink> <jason@dstc.edu.au> – au.linuxfromscratch.org
|
||||
mirror</para></listitem>
|
||||
|
||||
</itemizedlist>
|
||||
|
||||
<bridgehead renderas="sect2">A very special thank you to our donators</bridgehead>
|
||||
|
||||
<itemizedlist>
|
||||
|
||||
<listitem><para><ulink url="mailto:dean@vipersoft.co.uk">Dean
|
||||
Benson</ulink> <dean@vipersoft.co.uk> for several monetary
|
||||
contributions</para></listitem>
|
||||
|
||||
<listitem><para><ulink url="mailto:hrx@hrxnet.de">Hagen
|
||||
Herrschaft</ulink> <hrx@hrxnet.de> for donating a 2.2 GHz P4
|
||||
system, now running under the name of Lorien</para></listitem>
|
||||
|
||||
<listitem><para><ulink url="http://www.vasoftware.com">VA
|
||||
Software</ulink> who, on behalf of <ulink
|
||||
url="http://www.linux.com">Linux.com</ulink>, donated a VA Linux 420
|
||||
(former StartX SP2) workstation</para></listitem>
|
||||
|
||||
<listitem><para>Mark Stone for donating Belgarath, the
|
||||
linuxfromscratch.org server</para></listitem>
|
||||
|
||||
</itemizedlist>
|
||||
|
||||
</appendix>
|
||||
|
||||
|
@ -7,6 +7,86 @@
|
||||
<title>Resources</title>
|
||||
<?dbhtml filename="resources.html"?>
|
||||
|
||||
<para>See testing</para>
|
||||
|
||||
<sect2 id="ch-scatter-faq">
|
||||
<title>FAQ</title>
|
||||
|
||||
<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) at
|
||||
<ulink url="&faq-root;"/>.</para>
|
||||
</sect2>
|
||||
|
||||
<sect2 id="ch-scatter-maillists" xreflabel="Chapter 1 - Mailing Lists">
|
||||
<title>Mailing Lists</title>
|
||||
|
||||
<para>The <uri>linuxfromscratch.org</uri> 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.</para>
|
||||
|
||||
<para>For information on the different lists, how to subscribe, archive
|
||||
locations, and additional information, visit
|
||||
<ulink url="&lfs-root;mail.html"/>.</para>
|
||||
</sect2>
|
||||
|
||||
<sect2 id="ch-scatter-irc">
|
||||
<title>IRC</title>
|
||||
|
||||
<para>Several members of the LFS community offer assistance on our
|
||||
community Internet Relay Chat (IRC) network. Before using this
|
||||
support, please make sure that your question is not already answered in the LFS
|
||||
FAQ or the mailing list archives. You can find the IRC network at
|
||||
<uri>irc.linuxfromscratch.org</uri>, <uri>irc.linux-phreak.net</uri>
|
||||
or <uri>irc.lfs-matrix.de</uri>.
|
||||
The support channel is named #LFS-support.</para>
|
||||
</sect2>
|
||||
|
||||
<sect2 id="ch-scatter-newsserver">
|
||||
<title>News Server</title>
|
||||
|
||||
<para>The mailing lists hosted at <uri>linuxfromscratch.org</uri> are
|
||||
also accessible via the Network News Transfer Protocol (NNTP) server.
|
||||
All messages posted to a mailing list are copied to the corresponding
|
||||
newsgroup, and vice versa.</para>
|
||||
|
||||
<para>The news server is located at
|
||||
<uri>news.linuxfromscratch.org</uri>.</para>
|
||||
</sect2>
|
||||
|
||||
<sect2 id="ch-scatter-wiki">
|
||||
<title>Wiki</title>
|
||||
|
||||
<para>For more information on packages, updated versions, tweaks, and
|
||||
personal experiences, see the LFS Wiki at <ulink url="&wiki-root;"/>.
|
||||
Users can also add information there to help others with their future
|
||||
LFS activities.</para>
|
||||
</sect2>
|
||||
|
||||
<sect2 id="ch-scatter-references">
|
||||
<title>References</title>
|
||||
|
||||
<para>For additional information on the packages, useful tips are
|
||||
available at
|
||||
<ulink
|
||||
url="http://www.linuxfromscratch.org/~matthew/LFS-references.html"/>.</para>
|
||||
</sect2>
|
||||
|
||||
|
||||
<sect2 id="ch-scatter-mirrors" xreflabel="Chapter 1 - Mirror sites">
|
||||
<title>Mirror Sites</title>
|
||||
|
||||
<para>The LFS project has a number of world-wide mirrors to make
|
||||
accessing the website and downloading the required packages more
|
||||
convenient. Please visit the LFS website at <ulink url="&lfs-root;"/>
|
||||
for a list of current mirrors.</para>
|
||||
</sect2>
|
||||
|
||||
<sect2 id="ch-scatter-contactinfo">
|
||||
<title>Contact Information</title>
|
||||
|
||||
<para>Please direct all your questions and comments to one of the LFS mailing
|
||||
lists (see above).</para>
|
||||
</sect2>
|
||||
|
||||
</sect1>
|
||||
|
||||
|
@ -7,6 +7,110 @@
|
||||
<title>Help</title>
|
||||
<?dbhtml filename="askforhelp.html"?>
|
||||
|
||||
<para>See testing</para>
|
||||
<para>If an issue or a question is encountered while working
|
||||
through this book, check the FAQ page at <ulink url="&faq-root;#generalfaq"/>.
|
||||
Questions are often already answered there. If your question is
|
||||
not answered on this page, try to find the source of the problem. The
|
||||
following hint will give you some guidance for troubleshooting: <ulink
|
||||
url="&hints-root;errors.txt"/>.</para>
|
||||
|
||||
<para>We also have a wonderful LFS community that is willing to offer
|
||||
assistance through IRC and the mailing lists (see the <xref
|
||||
linkend="ch-scatter-administrativa"/> section of this book). In order
|
||||
to assist with diagnosing and solving the problem, please include
|
||||
all relevant information in your request for help.</para>
|
||||
|
||||
<sect2>
|
||||
<title>Things to Mention</title>
|
||||
|
||||
<para>Apart from a brief explanation of the problem being experienced,
|
||||
the essential things to include in any request for help are:</para>
|
||||
|
||||
<itemizedlist>
|
||||
<listitem><para>The version of the book being used (in this case
|
||||
&version;)</para></listitem>
|
||||
<listitem><para>The host distribution and version being used to
|
||||
create LFS</para></listitem>
|
||||
<listitem><para>The package or section the problem was encountered in</para></listitem>
|
||||
<listitem><para>The exact error message or symptom being received</para></listitem>
|
||||
<listitem><para>Note whether you have deviated from the book at all </para></listitem>
|
||||
</itemizedlist>
|
||||
|
||||
<note><para>Deviating from this book does <emphasis>not</emphasis>
|
||||
mean that we will not help you. After all, LFS is about personal
|
||||
preference. Being upfront about any changes to the established
|
||||
procedure helps us evaluate and determine possible causes of your
|
||||
problem.</para></note>
|
||||
</sect2>
|
||||
|
||||
<sect2>
|
||||
<title>Configure Problems</title>
|
||||
|
||||
<para>If something goes wrong during the stage where the configure
|
||||
script is run, review the <filename>config.log</filename> file. This
|
||||
file may contain errors encountered during configure which were not
|
||||
printed to the screen. Include those relevant lines if you need to ask
|
||||
for help.</para>
|
||||
</sect2>
|
||||
|
||||
<sect2>
|
||||
<title>Compile Problems</title>
|
||||
|
||||
<para>Both the screen output and the contents of various files are
|
||||
useful in determining the cause of compile issues. The screen output
|
||||
from the <command>./configure</command> script and the
|
||||
<command>make</command> run can be helpful. It
|
||||
is not necessary to include the entire output, but do include enough
|
||||
of the relevant information. Below is an example of the type of
|
||||
information to include from the screen output from <command>make</command>:</para>
|
||||
|
||||
<screen><computeroutput>gcc -DALIASPATH=\"/mnt/lfs/usr/share/locale:.\"
|
||||
-DLOCALEDIR=\"/mnt/lfs/usr/share/locale\"
|
||||
-DLIBDIR=\"/mnt/lfs/usr/lib\"
|
||||
-DINCLUDEDIR=\"/mnt/lfs/usr/include\" -DHAVE_CONFIG_H -I. -I.
|
||||
-g -O2 -c getopt1.c
|
||||
gcc -g -O2 -static -o make ar.o arscan.o commands.o dir.o
|
||||
expand.o file.o function.o getopt.o implicit.o job.o main.o
|
||||
misc.o read.o remake.o rule.o signame.o variable.o vpath.o
|
||||
default.o remote-stub.o version.o opt1.o
|
||||
-lutil job.o: In function `load_too_high':
|
||||
/lfs/tmp/make-3.79.1/job.c:1565: undefined reference
|
||||
to `getloadavg'
|
||||
collect2: ld returned 1 exit status
|
||||
make[2]: *** [make] Error 1
|
||||
make[2]: Leaving directory `/lfs/tmp/make-3.79.1'
|
||||
make[1]: *** [all-recursive] Error 1
|
||||
make[1]: Leaving directory `/lfs/tmp/make-3.79.1'
|
||||
make: *** [all-recursive-am] Error 2</computeroutput></screen>
|
||||
|
||||
<para>In this case, many people would just include the bottom
|
||||
section:</para>
|
||||
|
||||
<screen><computeroutput>make [2]: *** [make] Error 1</computeroutput></screen>
|
||||
|
||||
<para>This is not enough information to properly diagnose the problem
|
||||
because it only notes that something went wrong, not
|
||||
<emphasis>what</emphasis> went wrong. The entire section, as in the
|
||||
example above, is what should be saved because it includes the command
|
||||
that was executed and the associated error message(s).</para>
|
||||
|
||||
<para>An excellent article about asking for help on the Internet is
|
||||
available online at <ulink
|
||||
url="http://catb.org/~esr/faqs/smart-questions.html"/>. Read and
|
||||
follow the hints in this document to increase the likelihood of getting
|
||||
the help you need.</para>
|
||||
</sect2>
|
||||
|
||||
<sect2>
|
||||
<title>Test Suite Problems</title>
|
||||
|
||||
<para>Many packages provide a test suite which, depending on the
|
||||
importance of the package, should be run. Sometimes packages will
|
||||
generate false or expected failures. If these errors are encountered,
|
||||
check the LFS Wiki page at <ulink url="&wiki-root;"/> to see if we have
|
||||
noted and investigated these issues. If these issues are noted and
|
||||
addressed, there is no need to be concerned.</para>
|
||||
</sect2>
|
||||
|
||||
</sect1>
|
||||
|
||||
|
@ -7,7 +7,60 @@
|
||||
<title>About the Included CD</title>
|
||||
<?dbhtml filename="bootcd.html"?>
|
||||
|
||||
<para>See testing</para>
|
||||
<para>For your convenience, we have included a CD with this book that
|
||||
contains the source packages needed for creating a Linux From Scratch
|
||||
system. The CD is bootable and provides a stable working environment
|
||||
for building LFS. This book refers to this system as the
|
||||
<quote>host system.</quote> The CD images are actively maintained and
|
||||
updated versions can be found at
|
||||
<ulink url="ftp://ftp.lfs-matrix.net/pub/lfs-livecd/"/></para>
|
||||
|
||||
<para>In addition to the tools required to build LFS, the host system
|
||||
on the CD has a number of other helpful tools installed:</para>
|
||||
|
||||
<itemizedlist>
|
||||
<listitem><para>An HTML version of this book</para></listitem>
|
||||
<listitem><para>The X Window System Environment</para></listitem>
|
||||
<listitem>
|
||||
<para>Web Tools</para>
|
||||
<itemizedlist>
|
||||
<listitem><para>Wget (command line file retriever)</para></listitem>
|
||||
<listitem><para>Lynx (text web browser)</para></listitem>
|
||||
<listitem><para>Irssi (console IRC client)</para></listitem>
|
||||
<listitem><para>Firefox (graphical web browser)</para></listitem>
|
||||
<listitem><para>Xchat (X-based IRC client)</para></listitem>
|
||||
</itemizedlist>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>Text Editors</para>
|
||||
<itemizedlist>
|
||||
<listitem><para>Vim</para></listitem>
|
||||
<listitem><para>Nano</para></listitem>
|
||||
</itemizedlist>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>Network Tools</para>
|
||||
<itemizedlist>
|
||||
<listitem><para>SSH Server and Client</para></listitem>
|
||||
<listitem><para>NFS Server and Client</para></listitem>
|
||||
<listitem><para>Smbmount (mount.cifs) for Windows shares</para></listitem>
|
||||
<listitem><para>Subversion</para></listitem>
|
||||
<listitem><para>Dhcpcd (DHCP client)</para></listitem>
|
||||
</itemizedlist>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>Filesystem Programs</para>
|
||||
<itemizedlist>
|
||||
<listitem><para>Reiserfsprogs</para></listitem>
|
||||
<listitem><para>Xfsprogs</para></listitem>
|
||||
</itemizedlist>
|
||||
</listitem>
|
||||
|
||||
<listitem><para>nALFS - A tool for automating LFS builds</para></listitem>
|
||||
</itemizedlist>
|
||||
|
||||
</sect1>
|
||||
|
||||
|
@ -3,7 +3,7 @@
|
||||
<!ENTITY % general-entities SYSTEM "../general.ent">
|
||||
%general-entities;
|
||||
]>
|
||||
<sect1 id="ch-scatter-changelog" condition="no-print">
|
||||
<sect1 id="ch-scatter-changelog" condition="html">
|
||||
<title>Changelog</title>
|
||||
<?dbhtml filename="changelog.html"?>
|
||||
|
||||
@ -12,141 +12,188 @@
|
||||
version is probably already available. To find out, please check one of the
|
||||
mirrors via <ulink url="&lfs-root;"/>.</para>
|
||||
|
||||
<para>Below is a list of differences between the Testing and Unstable versions
|
||||
of the LFS Book.</para>
|
||||
<para>Below is a list of changes made since the previous release of the book,
|
||||
first a summary, then a detailed log.</para>
|
||||
|
||||
<itemizedlist>
|
||||
|
||||
<listitem><para>Upgraded to:</para>
|
||||
<itemizedlist>
|
||||
<listitem><para>automake-1.9.5</para></listitem>
|
||||
<listitem><para>e2fsprogs-1.36</para></listitem>
|
||||
<listitem><para>expect-5.43.0</para></listitem>
|
||||
<listitem><para>file-4.13</para></listitem>
|
||||
<listitem><para>findutils-4.2.17</para></listitem>
|
||||
<listitem><para>glibc-2.3.4</para></listitem>
|
||||
<listitem><para>grub-0.96</para></listitem>
|
||||
<listitem><para>lfs-bootscripts-3.1.0</para></listitem>
|
||||
<listitem><para>libol-0.3.15</para></listitem>
|
||||
<listitem><para>libtool-1.5.14</para></listitem>
|
||||
<listitem><para>linux-libc-headers-2.6.10.0</para></listitem>
|
||||
<listitem><para>procps-3.2.5</para></listitem>
|
||||
<listitem><para>sed-4.1.4</para></listitem>
|
||||
<listitem><para>shadow-4.0.7</para></listitem>
|
||||
<listitem><para>syslog-ng-1.6.6</para></listitem>
|
||||
<listitem><para>util-linux-2.12q</para></listitem>
|
||||
<listitem><para>Automake 1.9.5</para></listitem>
|
||||
<listitem><para>Binutils 2.15.94.0.2</para></listitem>
|
||||
<listitem><para>Bison 2.0</para></listitem>
|
||||
<listitem><para>E2fsprogs 1.36</para></listitem>
|
||||
<listitem><para>Expect 5.43.0</para></listitem>
|
||||
<listitem><para>File 4.13</para></listitem>
|
||||
<listitem><para>Findutils 4.2.17</para></listitem>
|
||||
<listitem><para>GCC 3.4.3</para></listitem>
|
||||
<listitem><para>Glibc 20041011</para></listitem>
|
||||
<listitem><para>Grep 2.5.1a</para></listitem>
|
||||
<listitem><para>Grub 0.96</para></listitem>
|
||||
<listitem><para>Iana-Etc 1.03</para></listitem>
|
||||
<listitem><para>Iproute2 2.6.9-041019</para></listitem>
|
||||
<listitem><para>LFS-Bootscripts 3.1.0</para></listitem>
|
||||
<listitem><para>Libtool 1.5.14</para></listitem>
|
||||
<listitem><para>Linux 2.6.10</para></listitem>
|
||||
<listitem><para>Linux-libc-headers 2.6.10.0</para></listitem>
|
||||
<listitem><para>Man 1.5p</para></listitem>
|
||||
<listitem><para>Man-pages 2.01</para></listitem>
|
||||
<listitem><para>Module-init-tools 3.1</para></listitem>
|
||||
<listitem><para>Perl 5.8.6</para></listitem>
|
||||
<listitem><para>Procps 3.2.5</para></listitem>
|
||||
<listitem><para>Sed 4.1.4</para></listitem>
|
||||
<listitem><para>Shadow 4.0.7</para></listitem>
|
||||
<listitem><para>Sysvinit 2.86</para></listitem>
|
||||
<listitem><para>Tar 1.15.1</para></listitem>
|
||||
<listitem><para>Texinfo 4.8</para></listitem>
|
||||
<listitem><para>Tcl 8.4.9</para></listitem>
|
||||
<listitem><para>Udev 050</para></listitem>
|
||||
<listitem><para>Util-linux 2.12q</para></listitem>
|
||||
<listitem><para>Zlib 1.2.2</para></listitem>
|
||||
</itemizedlist>
|
||||
</listitem>
|
||||
|
||||
<listitem><para>Added:</para>
|
||||
<itemizedlist>
|
||||
<listitem><para>bash-3.0-fixes-3.patch</para></listitem>
|
||||
<listitem><para>bash-3.0-fixes-1.patch</para></listitem>
|
||||
<listitem><para>bash-3.0-avoid_WCONTINUED-1.patch</para></listitem>
|
||||
<listitem><para>Hotplug 2004_09_23</para></listitem>
|
||||
<listitem><para>iproute2-2.6.9_041019-find_update-1.patch</para></listitem>
|
||||
<listitem><para>Libol 0.3.15</para></listitem>
|
||||
<listitem><para>linux-2.6.10-security_fix-1.patch</para></listitem>
|
||||
<listitem><para>Syslog-ng 1.6.6</para></listitem>
|
||||
<listitem><para>util-linux-2.12p-cramfs-1.patch</para></listitem>
|
||||
<listitem><para>vim-6.0-security_fix-1.patch</para></listitem>
|
||||
</itemizedlist>
|
||||
</listitem>
|
||||
|
||||
|
||||
<listitem><para>Removed:</para>
|
||||
<itemizedlist>
|
||||
<listitem><para>bash-3.0-fixes-1.patch</para></listitem>
|
||||
<listitem><para>bash-3.0-display_wrap-1.patch</para></listitem>
|
||||
<listitem><para>man-1.5o1-80cols-1.patch</para></listitem>
|
||||
<listitem><para>Sysklogd 1.4.1</para></listitem>
|
||||
<listitem><para>sysvinit-2.85-proclen-1.patch</para></listitem>
|
||||
<listitem><para>texinfo-4.7-segfault-1.patch</para></listitem>
|
||||
<listitem><para>util-linux-2.12b-sfdisk-1.patch</para></listitem>
|
||||
<listitem><para>zlib-1.2.1-security-1.patch</para></listitem>
|
||||
</itemizedlist>
|
||||
</listitem>
|
||||
|
||||
<listitem><para>February 13, 2005 [matt]: Add a link to BLFS' index of
|
||||
packages requiring kernel configuration. Fixes bug 1028.</para></listitem>
|
||||
|
||||
<listitem><para>February 13, 2005 [matt]: Fix bug 1030 by moving the <quote>Get
|
||||
Counted</quote> section to after the user has rebooted for the first time.
|
||||
Fixes bug 1030.</para></listitem>
|
||||
|
||||
<listitem><para>February 13, 2005 [matt]: Upgraded to glibc-2.3.4</para>
|
||||
</listitem>
|
||||
|
||||
<listitem><para>February 13, 2005 [matt]: Upgraded to grub-0.96</para>
|
||||
</listitem>
|
||||
|
||||
<listitem><para>February 13, 2005 [matt]: Upgraded to e2fsprogs-1.36</para>
|
||||
</listitem>
|
||||
|
||||
<listitem><para>February 13, 2005 [matt]: Upgraded to findutils-4.2.17</para>
|
||||
</listitem>
|
||||
|
||||
<listitem><para>February 13, 2005 [matt]: Upgraded to expect-5.43.0</para>
|
||||
</listitem>
|
||||
|
||||
<listitem><para>February 13, 2005 [matt]: Upgraded to libtool-1.5.14</para>
|
||||
</listitem>
|
||||
|
||||
<listitem><para>February 13, 2005 [matt]: Upgraded to automake-1.9.5</para>
|
||||
</listitem>
|
||||
|
||||
<listitem><para>February 13, 2005 [matt]: Upgraded to file-4.13</para>
|
||||
</listitem>
|
||||
|
||||
<listitem><para>February 5, 2005 [matt]: Added a space to the toolchain
|
||||
readjustment <command>perl</command> command. This stops the specs file being
|
||||
incorrectly modified if the command is run more than once. Fixes bug 1023.
|
||||
</para></listitem>
|
||||
<listitem><para>February 19, 2005 [gerard]: Synchronized Testing
|
||||
branch with current Unstable/Trunk. Move Testing branch to Trunk and
|
||||
discontinue Testing branch as per lfs-dev discussion on branch
|
||||
changes.</para></listitem>
|
||||
|
||||
<listitem><para>February 5, 2005 [matt]: Copy hotplug's pnp.distmap file to
|
||||
silence its warnings</para></listitem>
|
||||
silence its warnings. Also tidy up some explanatory text</para></listitem>
|
||||
|
||||
<listitem><para>February 5, 2005 [matt]: Upgraded to syslog-ng-1.6.6</para>
|
||||
<listitem><para>January 29, 2005 [matt]: Upgraded to sed-4.1.4</para></listitem>
|
||||
|
||||
<listitem><para>January 29, 2005 [matt]: Upgraded to procps-3.2.5</para>
|
||||
</listitem>
|
||||
|
||||
<listitem><para>February 5, 2005 [matt]: Upgraded to libol-0.3.15</para>
|
||||
<listitem><para>January 29, 2005 [matt]: Upgraded to shadow-4.0.7</para>
|
||||
</listitem>
|
||||
|
||||
<listitem><para>January 29th, 2005 [matt]: Upgraded to findutils 4.2.15</para>
|
||||
<listitem><para>January 29, 2005 [matt]: Upgraded to util-linux-2.12q.</para>
|
||||
</listitem>
|
||||
|
||||
<listitem><para>January 28th, 2005 [matt]: Upgraded to sed-4.1.4</para>
|
||||
</listitem>
|
||||
<listitem><para>January 27, 2005 [matt]: Added a warning that the
|
||||
<filename class="symlink">/usr/src/linux</filename> symlink shouldn't be
|
||||
created. Fixes bug 1012.</para></listitem>
|
||||
|
||||
<listitem><para>January 27th, 2005 [matt]: Upgraded to findutils 4.2.14</para>
|
||||
</listitem>
|
||||
<listitem><para>January 27, 2005 [matt]: Added link to the live-cd FTP
|
||||
location. Fixes bug 1014.</para></listitem>
|
||||
|
||||
<listitem><para>January 27th, 2005 [matt]: Upgraded to sed-4.1.3</para>
|
||||
</listitem>
|
||||
<listitem><para>January 27, 2005 [matt]: Added bison, flex and m4 to binutils
|
||||
dependency list. Fixes Bug 1018.</para></listitem>
|
||||
|
||||
<listitem><para>January 27th, 2005 [matt]: Upgraded to procps-3.2.5</para>
|
||||
</listitem>
|
||||
<listitem><para>January 27, 2005 [manuel]: Updated to gcc-3.4.3-specs-2.patch.</para></listitem>
|
||||
|
||||
<listitem><para>January 27th, 2005 [matt]: Upgraded to shadow-4.0.7</para>
|
||||
</listitem>
|
||||
<listitem><para>January 19, 2005 [jeremy]: Added an extra symlink for
|
||||
libgcc_s.so to chapter 6 - this never migrated from unstable until now.</para></listitem>
|
||||
|
||||
<listitem><para>January 27th, 2005 [matt]: Upgraded to util-linux-2.12q</para>
|
||||
</listitem>
|
||||
<listitem><para>January 9, 2005 [matt]: Added a security patch for the kernel</para></listitem>
|
||||
|
||||
<listitem><para>January 9th, 2005 [jeremy]: Removed --enable-shared from libol,
|
||||
since the shared library is installed by default for this package - thanks
|
||||
Archaic</para></listitem>
|
||||
<listitem><para>January 9, 2005 [matt]: Added a security patch for vim</para></listitem>
|
||||
|
||||
<listitem><para>January 5th, 2005 [jeremy]: Upgraded to findutils 4.2.11</para></listitem>
|
||||
<listitem><para>January 9, 2005 [matt]: Upgraded to man-1.5p</para></listitem>
|
||||
|
||||
<listitem><para>December 31st, 2004 [jeremy]: Oops - forgot to remove the
|
||||
separate targets for hotplug and syslog-ng - fixed.</para></listitem>
|
||||
<listitem><para>January 9, 2005 [matt]: Upgraded to texinfo-4.8</para></listitem>
|
||||
|
||||
<listitem><para>December 31st, 2004 [jeremy]: Upgrade to LFS-Bootscripts 3.1.0</para></listitem>
|
||||
<listitem><para>January 9, 2005 [matt]: Upgraded to util-linux-2.12p</para></listitem>
|
||||
|
||||
<listitem><para>December 30th, 2004 [jeremy]: Added Archaic's sed to stop
|
||||
installation of shadow's groups binary, as well as it's man page.</para></listitem>
|
||||
<listitem><para>January 9, 2005 [matt]: Upgraded to udev-050</para></listitem>
|
||||
|
||||
<listitem><para>December 25th, 2004 [jeremy]: Upgrade to glibc snapshot
|
||||
of 20041220</para></listitem>
|
||||
<listitem><para>January 9, 2005 [matt]: Upgraded to tcl-8.4.9</para></listitem>
|
||||
|
||||
<listitem><para>December 19th, 2004 [jeremy]: Updated GCC-testresults link to
|
||||
be appropriate for GCC 3.4.3</para></listitem>
|
||||
<listitem><para>January 9, 2005 [matt]: Upgraded to tar-1.15.1</para></listitem>
|
||||
|
||||
<listitem><para>December 6th, 2004 [jim]: Fixes a few typo's done by me.
|
||||
Added a patch for IPRoute2 to fix usage with the newer findutils.
|
||||
Updated Readline and Zlib library location changes.
|
||||
Bumped findutils to 4.2.9 and util-linux 2.12j.
|
||||
Used the same methodology used on zlib and readline on shadow.</para></listitem>
|
||||
<listitem><para>January 9, 2005 [matt]: Upgraded to perl-5.8.6</para></listitem>
|
||||
|
||||
<listitem><para>December 3rd, 2004 [jim]: Changed readline and zlib instructions
|
||||
to use --libdir for the libraries. Bumped perl to 5.8.6. Corrected wording in
|
||||
readline.</para></listitem>
|
||||
<listitem><para>January 9, 2005 [matt]: Upgraded to man-pages-2.01</para></listitem>
|
||||
|
||||
<listitem><para>January 9, 2005 [matt]: Upgraded to linux-libc-headers-2.6.10.0</para></listitem>
|
||||
|
||||
<listitem><para>January 9, 2005 [matt]: Upgraded to linux-2.6.10</para></listitem>
|
||||
|
||||
<listitem><para>January 9, 2005 [matt]: Upgraded to gcc-3.4.3</para></listitem>
|
||||
|
||||
<listitem><para>January 9, 2005 [matt]: Upgraded to bison-2.0</para></listitem>
|
||||
|
||||
<listitem><para>January 9, 2005 [matt]: Upgraded to autoconf-1.9.4</para></listitem>
|
||||
|
||||
<listitem><para>January 5, 2005 [jeremy]: Minor textual correction in network
|
||||
configuration, since iproute will not recognize the old eth0:1 format for
|
||||
ip aliasing. Closes bug 1013.</para></listitem>
|
||||
|
||||
<listitem><para>January 5, 2005 [jeremy]: Added the --disable-selinux parameter
|
||||
to Ch 5 glibc. Allows building from hosts which use SELinux functionality,
|
||||
like Fedora Core 3</para></listitem>
|
||||
|
||||
<listitem><para>December 25, 2004 [jeremy]: Added text suggested by MSB,
|
||||
closing Bug 943</para></listitem>
|
||||
|
||||
<listitem><para>December 25, 2004 [jeremy]: Upgraded binutils to 2.14.94.0.2 -
|
||||
should fix the TLS strip issue that's been seen, at least on X86</para></listitem>
|
||||
|
||||
<listitem><para>December 22, 2004 [manuel]: Readded to chapter09/reboot.xml a para lost
|
||||
from version 5.1.</para></listitem>
|
||||
|
||||
<listitem><para>December 20, 2004 [manuel]: Made Grub's configuration location
|
||||
FHS compliant.</para></listitem>
|
||||
|
||||
<listitem><para>December 19, 2004 [manuel]: Added the irc.lfs-matrix.de IRC server.</para></listitem>
|
||||
|
||||
<listitem><para>December 5, 2004 [jeremy]: Added the DOCBOOKTOMAN parameter
|
||||
to Module-init-utils - without this, compilation fails. Thanks Boris Buegling</para></listitem>
|
||||
|
||||
<listitem><para>December 2, 2004 [jeremy]: Removed the old display_wrap bash
|
||||
patch, in favor of the newer fixes patch, and added the avoid_WCONTINUED
|
||||
patch as well</para></listitem>
|
||||
|
||||
<listitem><para>December 2, 2004 [jeremy]: Upgraded to TCL 8.4.8, Grep 2.5.1a
|
||||
Util-linux 2.12i, Iana-etc 1.03, File 4.12, Module-init-tools 3.1, Procps 3.2.4
|
||||
</para></listitem>
|
||||
|
||||
<listitem><para>December 2, 2004 [jeremy]: Migrated change from unstable to
|
||||
build Glibc against sanitized linux-libc-headers instead of raw kernel headers,
|
||||
bringing us more in line with what the kernel developers think should be
|
||||
happening.</para></listitem>
|
||||
|
||||
<listitem><para>December 1, 2004 [jeremy]: Dropped Udev from being built in
|
||||
Chapter 5, in favor of creating a minimal set of devices at the beginning
|
||||
of Chapter 6. All devices are created after the installation of Udev near
|
||||
the end of Chapter 6</para></listitem>
|
||||
|
||||
<listitem><para>December 1, 2004 [jeremy]: Upgraded to Automake 1.9.3,
|
||||
Binutils 2.15.92.0.2, Findutils 4.2.3, GCC 3.4.2, Glibc 20041011, Iana-Etc 1.02
|
||||
Iproute2 2.6.9-041019, LFS-Bootscripts 2.2.3, Libtool 1.5.10, Linux 2.6.9
|
||||
Linux-libc-headers 2.6.9.1, Man 1.5o1, Man-pages 1.70, Shadow 4.0.6,
|
||||
Udev 046, Zlib 1.2.2, Hotplug 2004_09_23, Libol 0.3.14, Syslog-ng 1.6.5</para></listitem>
|
||||
|
||||
</itemizedlist>
|
||||
|
||||
<para>Branch frozen for LFS 6.0 as of October 10, 2004</para>
|
||||
|
||||
</sect1>
|
||||
|
@ -7,6 +7,78 @@
|
||||
<title>How to Build an LFS System</title>
|
||||
<?dbhtml filename="how.html"?>
|
||||
|
||||
<para>See testing</para>
|
||||
<para>The LFS system will be built by using a previously installed
|
||||
Linux distribution (such as Debian, Mandrake, Red Hat, or SuSE). This
|
||||
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
|
||||
tools.</para>
|
||||
|
||||
<para><xref linkend="chapter-partitioning"/> of this book describes how
|
||||
to create a new Linux native partition and file system, the place
|
||||
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
|
||||
them on the new file system. <xref linkend="chapter-final-preps"/>
|
||||
discusses the setup for an appropriate work environment. Please read
|
||||
<xref linkend="chapter-final-preps"/> carefully as it explains several
|
||||
important issues the developer should be aware of before beginning to
|
||||
work through <xref linkend="chapter-temporary-tools"/> and
|
||||
beyond.</para>
|
||||
|
||||
<para><xref linkend="chapter-temporary-tools"/> explains the
|
||||
installation of a number of packages that will form the basic
|
||||
development suite (or toolchain) which is used to build the actual
|
||||
system in <xref linkend="chapter-building-system"/>. Some of these
|
||||
packages are needed to resolve circular dependencies—for example,
|
||||
to compile a compiler, you need a compiler.</para>
|
||||
|
||||
<para><xref linkend="chapter-temporary-tools"/> also shows the user how
|
||||
to build a first pass of the toolchain, including Binutils and GCC
|
||||
(first pass basically means these two core packages will be
|
||||
re-installed a second time). The programs from these packages will be
|
||||
linked statically in order to be used independently of the host
|
||||
system. The next step is to build Glibc, the C library. Glibc will be
|
||||
compiled by the toolchain programs built in the first pass. Then, a
|
||||
second pass of the toolchain will be built. This time, the toolchain
|
||||
will be dynamically linked against the newly built Glibc. The
|
||||
remaining <xref linkend="chapter-temporary-tools"/> packages are built
|
||||
using this second pass toolchain. When this is done, the LFS
|
||||
installation process will no longer depend on the host distribution,
|
||||
with the exception of the running kernel.</para>
|
||||
|
||||
<para>While this may initially seem like a lot of work to get away
|
||||
from a host distribution, a full technical explanation is provided at
|
||||
the beginning of <xref linkend="chapter-temporary-tools"/>,
|
||||
including notes on the differences between
|
||||
statically and dynamically-linked programs.</para>
|
||||
|
||||
<para>In <xref linkend="chapter-building-system"/>, the full LFS system is
|
||||
built. The chroot (change root) program is used to enter a virtual
|
||||
environment and start a new shell whose root directory will be set to
|
||||
the LFS partition. This is very similar to rebooting and instructing
|
||||
the kernel to mount the LFS partition as the root partition. The
|
||||
system does not actually reboot, but instead chroots because creating a
|
||||
bootable system requires additional work which is not necessary just
|
||||
yet. The major advantage is that <quote>chrooting</quote> allows the
|
||||
builder to continue using the host while LFS is being built. While
|
||||
waiting for package compilation to complete, a user can switch to a
|
||||
different virtual console (VC) or X desktop and continue using the
|
||||
computer as normal.</para>
|
||||
|
||||
<para>To finish the installation, the bootscripts are set up in <xref
|
||||
linkend="chapter-bootscripts"/>, and the kernel and boot loader are set
|
||||
up in <xref linkend="chapter-bootable"/>. <xref
|
||||
linkend="chapter-finalizing"/> contains information on furthering 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>
|
||||
|
||||
<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 the developer embarks on the LFS adventure.</para>
|
||||
|
||||
</sect1>
|
||||
|
||||
|
@ -7,6 +7,30 @@
|
||||
<title>Creating a File System on the Partition</title>
|
||||
<?dbhtml filename="creatingfilesystem.html"?>
|
||||
|
||||
<para>See testing</para>
|
||||
<para>Now that a blank partition has been set up, the file system can
|
||||
be created. The most widely-used system in the Linux world is the
|
||||
second extended file system (ext2), but with the newer high-capacity
|
||||
hard disks, the journaling file systems are becoming increasingly
|
||||
popular. Here we will create an ext2 file system, but build
|
||||
instructions for other file systems can be found at <ulink
|
||||
url="&blfs-root;view/svn/postlfs/filesystems.html"/>.</para>
|
||||
|
||||
<para>To create an ext2 file system on the LFS partition, run the following:</para>
|
||||
|
||||
<screen><userinput>mke2fs /dev/<replaceable>[xxx]</replaceable></userinput></screen>
|
||||
|
||||
<para>Replace <replaceable>[xxx]</replaceable> with the name of the LFS
|
||||
partition (<filename class="devicefile">hda5</filename> in our previous example).</para>
|
||||
|
||||
<para>If a swap partition was created, it will need to be initialized
|
||||
as a swap partition too (also known as formatting, as described above
|
||||
with <command>mke2fs</command>) by running the following. If you are using an existing
|
||||
swap partition, there is no need to format it.</para>
|
||||
|
||||
<screen><userinput>mkswap /dev/<replaceable>[yyy]</replaceable></userinput></screen>
|
||||
|
||||
<para>Replace <replaceable>[yyy]</replaceable> with the name of the swap
|
||||
partition.</para>
|
||||
|
||||
</sect1>
|
||||
|
||||
|
@ -7,6 +7,51 @@
|
||||
<title>Creating a New Partition</title>
|
||||
<?dbhtml filename="creatingpartition.html"?>
|
||||
|
||||
<para>See testing</para>
|
||||
<!--Edit Me-->
|
||||
<para>Like most other operating systems, LFS is usually installed on
|
||||
a dedicated partition. If you have an empty partition or enough
|
||||
unpartitioned space on one of your hard disks to make one, using this
|
||||
for your LFS installation is recommended. However, an LFS system (in
|
||||
fact even multiple LFS systems) may also be installed on a partition
|
||||
already occupied by another operating system and the different systems
|
||||
will co-exist peacefully. The document
|
||||
<ulink url="&hints-root;/lfs_next_to_existing_systems.txt"/> explains
|
||||
how to implement this, whereas this book discusses the method of
|
||||
using a fresh partition for the installation.</para>
|
||||
<!--End Edit Me-->
|
||||
|
||||
<para>A minimal system requires a partition of around 1.3 gigabytes
|
||||
(GB). This is enough to store all the source tarballs and compile
|
||||
the packages. However, if the LFS system is intended to be the primary
|
||||
Linux system, additional software will probably be installed which
|
||||
will require additional space (2 or 3 GB). The LFS system itself will
|
||||
not take up this much space. A large portion of this required amount
|
||||
of space is to provide sufficient free temporary space. Compiling
|
||||
packages can require a lot of disk space which will be reclaimed after
|
||||
the package is installed.</para>
|
||||
|
||||
<para>Because there is not always enough Random Access Memory (RAM)
|
||||
available for compilation processes, it is a good idea to use a small
|
||||
disk partition as swap space. This space is used by the kernel to
|
||||
store seldom-used data to make room in memory for active processes.
|
||||
The swap partition for an LFS system can be the same as the one used
|
||||
by the host system, so another swap partition will not need to be
|
||||
created if your host system already has one setup.</para>
|
||||
|
||||
<para>Start a disk partitioning program such as
|
||||
<command>cfdisk</command> or <command>fdisk</command> with a command
|
||||
line option naming the hard disk on which the new partition will be
|
||||
created—for example <filename class="devicefile">/dev/hda</filename> for
|
||||
the primary Integrated Drive Electronics (IDE) disk. Create a Linux native
|
||||
partition and a swap partition, if needed. Please refer to the man
|
||||
pages of <command>cfdisk</command> or <command>fdisk</command> if you
|
||||
do not yet know how to use the programs.</para>
|
||||
|
||||
<para>Remember the designation of the new partition (e.g.,
|
||||
<filename class="devicefile">hda5</filename>). This book will refer to this as the LFS
|
||||
partition. Also remember the designation of the swap partition. These
|
||||
names will be needed later for the <filename>/etc/fstab</filename>
|
||||
file.</para>
|
||||
|
||||
</sect1>
|
||||
|
||||
|
@ -7,6 +7,9 @@
|
||||
<title>Introduction</title>
|
||||
<?dbhtml filename="introduction.html"?>
|
||||
|
||||
<para>See testing</para>
|
||||
<para>In this chapter, the partition which will host the LFS system is
|
||||
prepared. We will create the partition itself, create a file system
|
||||
on it, and mount it.</para>
|
||||
|
||||
</sect1>
|
||||
|
||||
|
@ -7,6 +7,50 @@
|
||||
<title>Mounting the New Partition</title>
|
||||
<?dbhtml filename="mounting.html"?>
|
||||
|
||||
<para>See testing</para>
|
||||
<para>Now that a file system has been created, the partition needs to
|
||||
be made accessible. In order to do this, the partition needs to be
|
||||
mounted at a chosen mount point. For the purposes of this book, it is
|
||||
assumed that the file system is mounted under <filename
|
||||
class="directory">/mnt/lfs</filename>, but the directory choice is up
|
||||
to you.</para>
|
||||
|
||||
<para>Choose a mount point and assign it to the <envar>LFS</envar>
|
||||
environment variable by running:</para>
|
||||
|
||||
<screen><userinput>export LFS=/mnt/lfs</userinput></screen>
|
||||
|
||||
<para>Next, create the mount point and mount the LFS file system by
|
||||
running:</para>
|
||||
|
||||
<screen><userinput>mkdir -p $LFS
|
||||
mount /dev/<replaceable>[xxx]</replaceable> $LFS</userinput></screen>
|
||||
|
||||
<para>Replace <replaceable>[xxx]</replaceable> with the designation of the LFS
|
||||
partition.</para>
|
||||
|
||||
<para>If using multiple partitions for LFS (e.g., one for <filename
|
||||
class="directory">/</filename> and another for <filename
|
||||
class="directory">/usr</filename>), mount them using:</para>
|
||||
|
||||
<screen><userinput>mkdir -p $LFS
|
||||
mount /dev/<replaceable>[xxx]</replaceable> $LFS
|
||||
mkdir $LFS/usr
|
||||
mount /dev/<replaceable>[yyy]</replaceable> $LFS/usr</userinput></screen>
|
||||
|
||||
<para>Replace <replaceable>[xxx]</replaceable> and
|
||||
<replaceable>[yyy]</replaceable> with the appropriate partition
|
||||
names.</para>
|
||||
|
||||
<para>Ensure that this new partition is not mounted with permissions
|
||||
that are too restrictive (such as the nosuid, nodev, or noatime
|
||||
options). Run the <command>mount</command> command without any
|
||||
parameters to see what options are set for the mounted LFS
|
||||
partition. If <parameter>nosuid</parameter>, <parameter>nodev</parameter>,
|
||||
and/or <parameter>noatime</parameter> are set, the partition will need
|
||||
to be remounted.</para>
|
||||
|
||||
<para>Now that there is an established place to work, it is time to
|
||||
download the packages.</para>
|
||||
|
||||
</sect1>
|
||||
|
||||
|
@ -7,12 +7,48 @@
|
||||
<title>Introduction</title>
|
||||
<?dbhtml filename="introduction.html"?>
|
||||
|
||||
<para>Create a dir for the sources:</para>
|
||||
<para>This chapter includes a list of packages that need to be
|
||||
downloaded for building a basic Linux system. The listed version numbers
|
||||
correspond to versions of the software that are known to work, and
|
||||
this book is based on their use. We highly recommend not using newer
|
||||
versions because the build commands for one version may not work with
|
||||
a newer version. The newest package versions may also have problems
|
||||
that work-arounds have not been developed for yet.</para>
|
||||
|
||||
<para>All the URLs, when possible, refer to the package's information
|
||||
page at <ulink url="http://www.freshmeat.net/"/>. The Freshmeat pages
|
||||
provide easy access to official download sites, as well as project
|
||||
websites, mailing lists, FAQ, changelogs, and more.</para>
|
||||
|
||||
<para>Download locations may not always be accessible. If a download
|
||||
location has changed since this book was published, Google (<ulink
|
||||
url="http://www.google.com"/>) provides a useful search engine for
|
||||
most packages. If this search is unsuccessful, try one of the
|
||||
alternate means of downloading discussed at <ulink
|
||||
url="&lfs-root;lfs/packages.html"/>.</para>
|
||||
|
||||
<para>Downloaded packages and patches will need to be stored somewhere
|
||||
that is conveniently available throughout the entire build. A working
|
||||
directory is also required to unpack the sources and build them.
|
||||
<filename class="directory">$LFS/sources</filename> can be used both
|
||||
as the place to store the tarballs and patches and as a working
|
||||
directory. By using this directory, the required elements will be
|
||||
located on the LFS partition and will be available during all stages
|
||||
of the building process.</para>
|
||||
|
||||
<para>To create this directory, execute, as user
|
||||
<emphasis>root</emphasis>, the following command before starting the
|
||||
download session:</para>
|
||||
|
||||
<screen><userinput>mkdir $LFS/sources</userinput></screen>
|
||||
|
||||
<para>Set the permissions of that dir:</para>
|
||||
<para>Make this directory writable and sticky. <quote>Sticky</quote>
|
||||
means that even if multiple users have write permission on a
|
||||
directory, only the owner of a file can delete the file within a
|
||||
sticky directory. The following command will enable the write and
|
||||
sticky modes:</para>
|
||||
|
||||
<screen><userinput>chmod a+wt $LFS/sources</userinput></screen>
|
||||
|
||||
</sect1>
|
||||
|
||||
|
@ -10,131 +10,136 @@
|
||||
<para>Download or otherwise obtain the following packages:</para>
|
||||
|
||||
<variablelist role="materials">
|
||||
<bridgehead renderas="sect3">Packages</bridgehead>
|
||||
|
||||
<varlistentry>
|
||||
<term>Autoconf (&autoconf-version;) - 903 KB:</term>
|
||||
<term>Autoconf (&autoconf-version;) - 903 kilobytes (KB):</term>
|
||||
<listitem>
|
||||
<para><ulink url="http://ftp.gnu.org/gnu/autoconf/"/></para>
|
||||
<para><ulink url="&freshmeat;autoconf/"/></para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term>Automake (&automake-version;) - 740 KB:</term>
|
||||
<term>Automake (&automake-version;) - 681 KB:</term>
|
||||
<listitem>
|
||||
<para><ulink url="http://ftp.gnu.org/gnu/automake/"/></para>
|
||||
<para><ulink url="&freshmeat;automake/"/></para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term>Bash (&bash-version;) - 1,910 KB:</term>
|
||||
<listitem>
|
||||
<para><ulink url="http://ftp.gnu.org/gnu/bash/"/></para>
|
||||
<para><ulink url="&freshmeat;gnubash/"/></para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term>Binutils (&binutils-version;) - 10,666 KB:</term>
|
||||
<listitem>
|
||||
<para><ulink url="http://www.kernel.org/pub/linux/devel/binutils/"/></para>
|
||||
<para><ulink url="&freshmeat;binutils/?branch_id=12688"/></para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term>Bison (&bison-version;) - 796 KB:</term>
|
||||
<listitem>
|
||||
<para><ulink url="ftp://alpha.gnu.org/gnu/bison/"/></para>
|
||||
<para><ulink url="ftp://ftp.linuxfromscratch.org/pub/lfs/lfs-packages/conglomeration/bison/"/></para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term>Bzip2 (&bzip2-version;) - 650 KB:</term>
|
||||
<listitem>
|
||||
<para><ulink url="ftp://sources.redhat.com/pub/bzip2/v102/"/></para>
|
||||
<para><ulink url="&freshmeat;bzip2/"/></para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term>Coreutils (&coreutils-version;) - 3,860 KB:</term>
|
||||
<listitem>
|
||||
<para><ulink url="http://ftp.gnu.org/gnu/coreutils/"/></para>
|
||||
<para><ulink url="&freshmeat;coreutils/"/></para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term>DejaGNU (&dejagnu-version;) - 1,055 KB:</term>
|
||||
<listitem>
|
||||
<para><ulink url="http://ftp.gnu.org/gnu/dejagnu/"/></para>
|
||||
<para><ulink url="&freshmeat;dejagnu/"/></para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term>Diffutils (&diffutils-version;) - 762 KB:</term>
|
||||
<listitem>
|
||||
<para><ulink url="http://ftp.gnu.org/gnu/diffutils/"/></para>
|
||||
<para><ulink url="&freshmeat;diffutils/"/></para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term>E2fsprogs (&e2fsprogs-version;) - 3,188 KB:</term>
|
||||
<term>E2fsprogs (&e2fsprogs-version;) - 3,003 KB:</term>
|
||||
<listitem>
|
||||
<para><ulink url="http://prdownloads.sourceforge.net/e2fsprogs/"/></para>
|
||||
<para><ulink url="&freshmeat;e2fsprogs/"/></para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term>Expect (&expect-version;) - 513 KB:</term>
|
||||
<term>Expect (&expect-version;) - 510 KB:</term>
|
||||
<listitem>
|
||||
<para><ulink url="http://expect.nist.gov/src/"/></para>
|
||||
<para><ulink url="&freshmeat;expect/"/></para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term>File (&file-version;) - 411 KB:</term>
|
||||
<term>File (&file-version;) - 356 KB:</term>
|
||||
<listitem>
|
||||
<para><ulink url="ftp://ftp.gw.com/mirrors/pub/unix/file/"/></para>
|
||||
<para><ulink url="&freshmeat;file/"/></para>
|
||||
<note><para>File (&file-version;) may no longer be available at the
|
||||
listed location. The site administrators of the master download
|
||||
location occasionally remove older versions when new ones are
|
||||
released. An alternate download location that may have the correct
|
||||
version available is <ulink
|
||||
url="ftp://ftp.linuxfromscratch.org/pub/lfs/"/>.</para></note>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term>Findutils (&findutils-version;) - 914 KB:</term>
|
||||
<term>Findutils (&findutils-version;) - 760 KB:</term>
|
||||
<listitem>
|
||||
<para><ulink url="ftp://alpha.gnu.org/gnu/findutils/"/></para>
|
||||
<para><ulink url="&freshmeat;findutils/"/></para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term>Flex (&flex-version;) - 372 KB:</term>
|
||||
<listitem>
|
||||
<para><ulink url="http://sourceforge.net/projects/lex/"/></para>
|
||||
<para><ulink url="&freshmeat;flex/"/></para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term>Gawk (&gawk-version;) - 1,596 KB:</term>
|
||||
<term>Gawk (&gawk-version;) - 1,692 KB:</term>
|
||||
<listitem>
|
||||
<para><ulink url="http://ftp.gnu.org/gnu/gawk/"/></para>
|
||||
<para><ulink url="&freshmeat;gnuawk/"/></para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term>GCC (&gcc-version;) - ~27,000KB:</term>
|
||||
<term>GCC (&gcc-version;) - 27,000 KB:</term>
|
||||
<listitem>
|
||||
<para><ulink url="http://ftp.gnu.org/gnu/gcc/gcc-&gcc-version;/"/></para>
|
||||
<para><ulink url="&freshmeat;gcc/"/></para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term>Gettext (&gettext-version;) - 6,397 KB:</term>
|
||||
<listitem>
|
||||
<para><ulink url="http://ftp.gnu.org/gnu/gettext/"/></para>
|
||||
<para><ulink url="&freshmeat;gettext/"/></para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term>Glibc (&glibc-version;) - 12,904 KB: </term>
|
||||
<term>Glibc (&glibc-version;) - 13,101 KB:</term>
|
||||
<listitem>
|
||||
<para><ulink url="http://ftp.gnu.org/gnu/glibc/"/></para>
|
||||
<para><ulink url="ftp://sources.redhat.com/pub/glibc/snapshots/"/></para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
@ -148,19 +153,19 @@
|
||||
<varlistentry>
|
||||
<term>Grep (&grep-version;) - 545 KB:</term>
|
||||
<listitem>
|
||||
<para><ulink url="http://ftp.gnu.org/gnu/grep/"/></para>
|
||||
<para><ulink url="&freshmeat;grep/"/></para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term>Groff (&groff-version;) - 2,360 KB:</term>
|
||||
<listitem>
|
||||
<para><ulink url="http://ftp.gnu.org/gnu/groff/"/></para>
|
||||
<para><ulink url="&freshmeat;groff/"/></para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term>Grub (&grub-version;) - 963 KB:</term>
|
||||
<term>Grub (&grub-version;) - 902 KB:</term>
|
||||
<listitem>
|
||||
<para><ulink url="ftp://alpha.gnu.org/pub/gnu/grub/"/></para>
|
||||
</listitem>
|
||||
@ -183,19 +188,19 @@
|
||||
<varlistentry>
|
||||
<term>Iana-Etc (&iana-etc-version;) - 161 KB:</term>
|
||||
<listitem>
|
||||
<para><ulink url="http://www.sethwklein.net/projects/iana-etc/"/></para>
|
||||
<para><ulink url="&freshmeat;iana-etc/"/></para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term>Inetutils (&inetutils-version;) - 1,019 KB:</term>
|
||||
<listitem>
|
||||
<para><ulink url="http://ftp.gnu.org/gnu/inetutils/"/></para>
|
||||
<para><ulink url="&freshmeat;inetutils/"/></para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term>IPRoute2 (&iproute2-version;) - 230 KB:</term>
|
||||
<term>IPRoute2 (&iproute2-version;) - 264 KB:</term>
|
||||
<listitem>
|
||||
<para><ulink url="http://developer.osdl.org/dev/iproute2/download/"/></para>
|
||||
</listitem>
|
||||
@ -204,84 +209,84 @@
|
||||
<varlistentry>
|
||||
<term>Kbd (&kbd-version;) - 617 KB:</term>
|
||||
<listitem>
|
||||
<para><ulink url="http://ftp.kernel.org/pub/linux/utils/kbd/"/></para>
|
||||
<para><ulink url="&freshmeat;kbd/"/></para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term>Less (&less-version;) - 259 KB:</term>
|
||||
<listitem>
|
||||
<para><ulink url="http://ftp.gnu.org/gnu/less/"/></para>
|
||||
<para><ulink url="&freshmeat;less/"/></para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term>LFS-Bootscripts (&lfs-bootscripts-version;) - 14 KB:</term>
|
||||
<term>LFS-Bootscripts (&lfs-bootscripts-version;) - 16 KB:</term>
|
||||
<listitem>
|
||||
<para><ulink url="http://downloads.linuxfromscratch.org/"/></para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term>Libol (&libol-version;) - 337 KB:</term>
|
||||
<varlistentry>
|
||||
<term>Libol (&libol-version;) - 336 KB:</term>
|
||||
<listitem>
|
||||
<para><ulink url="http://www.balabit.com/downloads/syslog-ng/libol/0.3/"/></para>
|
||||
<para><ulink url="http://www.balabit.com/downloads/syslog-ng/libol/0.3"/></para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term>Libtool (&libtool-version;) - 2,668 KB:</term>
|
||||
<term>Libtool (&libtool-version;) - 2,602 KB:</term>
|
||||
<listitem>
|
||||
<para><ulink url="http://ftp.gnu.org/gnu/libtool/"/></para>
|
||||
<para><ulink url="&freshmeat;libtool/"/></para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term>Linux (&linux-version;) - 30,051 KB:</term>
|
||||
<term>Linux (&linux-version;) - 34,793 KB:</term>
|
||||
<listitem>
|
||||
<para><ulink url="http://www.kernel.org/pub/linux/kernel/v2.6"/></para>
|
||||
<para><ulink url="&freshmeat;linux/?branch_id=46339"/></para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term>Linux-Libc-Headers (&linux-libc-headers-version;) - 2,460 KB:</term>
|
||||
<term>Linux-Libc-Headers (&linux-libc-headers-version;) - 2,602 KB:</term>
|
||||
<listitem>
|
||||
<para><ulink url="http://ep09.pld-linux.org/~mmazur/linux-libc-headers/"/></para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term>M4 (&m4-version;) - 310 KB:</term>
|
||||
<term>M4 (&m4-version;) - 337 KB:</term>
|
||||
<listitem>
|
||||
<para><ulink url="http://ftp.gnu.org/gnu/m4/"/></para>
|
||||
<para><ulink url="&freshmeat;gnum4/"/></para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term>Make (&make-version;) - 899 KB:</term>
|
||||
<listitem>
|
||||
<para><ulink url="http://ftp.gnu.org/gnu/make/"/></para>
|
||||
<para><ulink url="&freshmeat;gnumake/"/></para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term>Man (&man-version;) - 228 KB:</term>
|
||||
<term>Man (&man-version;) - 223 KB:</term>
|
||||
<listitem>
|
||||
<para><ulink url="ftp://ftp.win.tue.nl/pub/linux-local/utils/man/"/></para>
|
||||
<para><ulink url="&freshmeat;man/"/></para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term>Man-pages (&man-pages-version;) - 1,629 KB:</term>
|
||||
<term>Man-pages (&man-pages-version;) - 1,586 KB:</term>
|
||||
<listitem>
|
||||
<para><ulink url="http://ftp.kernel.org/pub/linux/docs/manpages/"/></para>
|
||||
<para><ulink url="&freshmeat;man-pages/"/></para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term>Mktemp (&mktemp-version;) - 69 KB:</term>
|
||||
<listitem>
|
||||
<para><ulink url="ftp://ftp.cs.colorado.edu:/pub/mktemp/"/></para>
|
||||
<para><ulink url="&freshmeat;mktemp/"/></para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
@ -295,91 +300,91 @@
|
||||
<varlistentry>
|
||||
<term>Ncurses (&ncurses-version;) - 2,019 KB:</term>
|
||||
<listitem>
|
||||
<para><ulink url="http://ftp.gnu.org/gnu/ncurses/"/></para>
|
||||
<para><ulink url="&freshmeat;ncurses/"/></para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term>Patch (&patch-version;) - 182 KB:</term>
|
||||
<listitem>
|
||||
<para><ulink url="http://ftp.gnu.org/gnu/patch/"/></para>
|
||||
<para><ulink url="&freshmeat;patch/"/></para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term>Perl (&perl-version;) - 9,466 KB:</term>
|
||||
<term>Perl (&perl-version;) - 9,373 KB:</term>
|
||||
<listitem>
|
||||
<para><ulink url="http://www.cpan.org/src/"/></para>
|
||||
<para><ulink url="&freshmeat;perl/"/></para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term>Procps (&procps-version;) - 271 KB:</term>
|
||||
<listitem>
|
||||
<para><ulink url="http://procps.sourceforge.net/"/></para>
|
||||
<para><ulink url="&freshmeat;procps/"/></para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term>Psmisc (&psmisc-version;) - 375 KB:</term>
|
||||
<listitem>
|
||||
<para><ulink url="http://prdownloads.sourceforge.net/psmisc/"/></para>
|
||||
<para><ulink url="&freshmeat;psmisc/"/></para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term>Readline (&readline-version;) - 940 KB:</term>
|
||||
<listitem>
|
||||
<para><ulink url="http://ftp.gnu.org/gnu/readline/"/></para>
|
||||
<para><ulink url="&freshmeat;gnureadline/"/></para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term>Sed (&sed-version;) - 776 KB:</term>
|
||||
<listitem>
|
||||
<para><ulink url="http://ftp.gnu.org/gnu/sed/"/></para>
|
||||
<para><ulink url="&freshmeat;sed/"/></para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term>Shadow (&shadow-version;) - 996 KB:</term>
|
||||
<listitem>
|
||||
<para><ulink url="ftp://ftp.pld.org.pl/software/shadow/"/></para>
|
||||
<para><ulink url="&freshmeat;shadow/"/></para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term>Syslog-ng (&syslog-ng-version;) - 369 KB:</term>
|
||||
<term>Syslog-ng (&syslog-ng-version;) - 388 KB:</term>
|
||||
<listitem>
|
||||
<para><ulink url="http://www.balabit.com/downloads/syslog-ng/1.6/src/"/></para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term>Sysvinit (&sysvinit-version;) - 97 KB:</term>
|
||||
<term>Sysvinit (&sysvinit-version;) - 91 KB:</term>
|
||||
<listitem>
|
||||
<para><ulink url="ftp://ftp.cistron.nl/pub/people/miquels/sysvinit/"/></para>
|
||||
<para><ulink url="&freshmeat;sysvinit/"/></para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term>Tar (&tar-version;) - 1,025 KB:</term>
|
||||
<listitem>
|
||||
<para><ulink url="http://ftp.gnu.org/gnu/tar/"/></para>
|
||||
<para><ulink url="&freshmeat;tar/"/></para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term>Tcl (&tcl-version;) - 3,414 KB:</term>
|
||||
<term>Tcl (&tcl-version;) - 3,363 KB:</term>
|
||||
<listitem>
|
||||
<para><ulink url="http://prdownloads.sourceforge.net/tcl/"/></para>
|
||||
<para><ulink url="&freshmeat;tcltk/"/></para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term>Texinfo (&texinfo-version;) - 1,385 KB:</term>
|
||||
<listitem>
|
||||
<para><ulink url="http://ftp.gnu.org/gnu/texinfo/"/></para>
|
||||
<para><ulink url="&freshmeat;texinfo/"/></para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
@ -405,37 +410,36 @@
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term>Util-linux (&util-linux-version;) - 1,339:</term>
|
||||
<term>Util-linux (&util-linux-version;) - 1,339 KB:</term>
|
||||
<listitem>
|
||||
<para><ulink url="http://www.kernel.org/pub/linux/utils/util-linux/"/></para>
|
||||
<para><ulink url="&freshmeat;util-linux/"/></para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term>Vim (&vim-version;) - 3,612 KB:</term>
|
||||
<listitem>
|
||||
<para><ulink url="ftp://ftp.vim.org/pub/vim/unix/"/></para>
|
||||
<para><ulink url="&freshmeat;vim/"/></para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term>Vim (&vim-version;) language files (optional) - 1,033 KB:</term>
|
||||
<listitem>
|
||||
<para><ulink url="ftp://ftp.vim.org/pub/vim/unix/"/></para>
|
||||
<para><ulink url="&freshmeat;vim/"/></para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term>Zlib (&zlib-version;) - 277 KB:</term>
|
||||
<listitem>
|
||||
<para><ulink url="http://www.zlib.net/"/></para>
|
||||
<para><ulink url="&freshmeat;zlib/"/></para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
</variablelist>
|
||||
|
||||
<!--
|
||||
<para>Total size of these packages: 135 MB</para>
|
||||
-->
|
||||
|
||||
</sect1>
|
||||
|
||||
|
@ -7,17 +7,23 @@
|
||||
<title>Needed Patches</title>
|
||||
<?dbhtml filename="patches.html"?>
|
||||
|
||||
<para>In addition to the packages, several patches are also required.
|
||||
These patches correct any mistakes in the packages that should be
|
||||
fixed by the maintainer. The patches also make small modifications to
|
||||
make the packages easier to work with. The following patches will be
|
||||
needed to build an LFS system:</para>
|
||||
|
||||
<variablelist role="materials">
|
||||
|
||||
<varlistentry>
|
||||
<term>Bash Various Fixes - 23 KB:</term>
|
||||
<term>Bash Various Fixes - 21 KB:</term>
|
||||
<listitem>
|
||||
<para><ulink url="&patches-root;bash-&bash-version;-fixes-3.patch"/></para>
|
||||
<para><ulink url="&patches-root;bash-&bash-version;-fixes-1.patch"/></para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term>Bash Avoid Wcontinued Patch - 1KB:</term>
|
||||
<term>Bash Avoid Wcontinued Patch - 1 KB:</term>
|
||||
<listitem>
|
||||
<para><ulink url="&patches-root;bash-&bash-version;-avoid_WCONTINUED-1.patch"/></para>
|
||||
</listitem>
|
||||
@ -26,7 +32,8 @@
|
||||
<varlistentry>
|
||||
<term>Coreutils Suppress Uptime, Kill, Su Patch - 16 KB:</term>
|
||||
<listitem>
|
||||
<para><ulink url="&patches-root;coreutils-&coreutils-version;-suppress_uptime_kill_su-1.patch"/></para>
|
||||
<para condition="html"><ulink url="&patches-root;coreutils-&coreutils-version;-suppress_uptime_kill_su-1.patch"/></para>
|
||||
<para condition="pdf"><ulink url="&patches-root;coreutils-&coreutils-version;-suppress_uptime_ kill_su-1.patch"/></para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
@ -52,7 +59,7 @@
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term> GCC Linkonce Patch - 12KB:</term>
|
||||
<term> GCC Linkonce Patch - 12 KB:</term>
|
||||
<listitem>
|
||||
<para><ulink url="&patches-root;gcc-&gcc-version;-linkonce-1.patch"/></para>
|
||||
</listitem>
|
||||
@ -75,21 +82,24 @@
|
||||
<varlistentry>
|
||||
<term>Inetutils Kernel Headers Patch - 1 KB:</term>
|
||||
<listitem>
|
||||
<para><ulink url="&patches-root;inetutils-&inetutils-version;-kernel_headers-1.patch"/></para>
|
||||
<para condition="html"><ulink url="&patches-root;inetutils-&inetutils-version;-kernel_headers-1.patch"/></para>
|
||||
<para condition="pdf"><ulink url="&patches-root;inetutils-&inetutils-version;-kernel_headers- 1.patch"/></para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term>Inetutils No-Server-Man-Pages Patch - 4 KB:</term>
|
||||
<listitem>
|
||||
<para><ulink url="&patches-root;inetutils-&inetutils-version;-no_server_man_pages-1.patch"/></para>
|
||||
<para condition="html"><ulink url="&patches-root;inetutils-&inetutils-version;-no_server_man_pages-1.patch"/></para>
|
||||
<para condition="pdf"><ulink url="&patches-root;inetutils-&inetutils-version;-no_server_man_ pages-1.patch"/></para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term>IPRoute2 Disable DB Patch - 1 KB:</term>
|
||||
<listitem>
|
||||
<para><ulink url="&patches-root;iproute2-&iproute2-patch-version;-remove_db-1.patch"/></para>
|
||||
<para condition="html"><ulink url="&patches-root;iproute2-&iproute2-patch-version;-remove_db-1.patch"/></para>
|
||||
<para condition="pdf"><ulink url="&patches-root;iproute2-&iproute2-patch-version;-remove_ db-1.patch"/></para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
@ -122,9 +132,9 @@
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term>Readline Various Fixes - 7 KB:</term>
|
||||
<term>Readline Display Wrap Patch - 1 KB:</term>
|
||||
<listitem>
|
||||
<para><ulink url="&patches-root;readline-&readline-version;-fixes-1.patch" /></para>
|
||||
<para><ulink url="&patches-root;readline-&readline-version;-fixes-1.patch"/></para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
@ -142,4 +152,12 @@
|
||||
|
||||
</variablelist>
|
||||
|
||||
<para>In addition to the above required patches, there exist a number of
|
||||
optional patches created by the LFS community. These optional patches
|
||||
solve minor problems or enable functionality that is not enabled by
|
||||
default. Feel free to peruse the patches database located at
|
||||
<ulink url="&lfs-root;patches/"/> and acquire any additional
|
||||
patches to suit the system needs.</para>
|
||||
|
||||
</sect1>
|
||||
|
||||
|
@ -7,6 +7,29 @@
|
||||
<title>About $LFS</title>
|
||||
<?dbhtml filename="aboutlfs.html"?>
|
||||
|
||||
<para>See testing</para>
|
||||
<para>Throughout this book, the environment variable <envar>LFS</envar> will
|
||||
be used several times. It is paramount that this variable is always defined.
|
||||
It should be set to the mount point chosen for the LFS partition.
|
||||
Check that the <envar>LFS</envar> variable is set up properly with:</para>
|
||||
|
||||
<screen><userinput>echo $LFS</userinput></screen>
|
||||
|
||||
<para>Make sure the output shows the path to the LFS partition's mount
|
||||
point, which is <filename class="directory">/mnt/lfs</filename> if the
|
||||
provided example was followed. If the output is incorrect, the
|
||||
variable can be set with:</para>
|
||||
|
||||
<screen><userinput>export LFS=/mnt/lfs</userinput></screen>
|
||||
|
||||
<para>Having this variable set is beneficial in that commands such as
|
||||
<command>mkdir $LFS/tools</command> can be typed literally. The shell
|
||||
will automatically replace <quote>$LFS</quote> with
|
||||
<quote>/mnt/lfs</quote> (or whatever the variable was set to) when it
|
||||
processes the command line.</para>
|
||||
|
||||
<para>Do not forget to check that <envar>$LFS</envar> is set whenever
|
||||
you leave and reenter the current working environment (as when doing a
|
||||
<quote>su</quote> to <emphasis>root</emphasis> or another user).</para>
|
||||
|
||||
</sect1>
|
||||
|
||||
|
@ -7,6 +7,44 @@
|
||||
<title>About SBUs</title>
|
||||
<?dbhtml filename="aboutsbus.html"?>
|
||||
|
||||
<para>See testing</para>
|
||||
<para>Many people would like to know beforehand approximately how long
|
||||
it takes to compile and install each package. Because Linux From
|
||||
Scratch can be built on many different systems, it is impossible to
|
||||
provide accurate time estimates. The biggest package (Glibc) will
|
||||
take approximately 20 minutes on the fastest systems, but could take
|
||||
up to three days on slower systems! Instead of providing actual times,
|
||||
the Static Build Unit (SBU) measure will be
|
||||
used instead.</para>
|
||||
|
||||
<para>The SBU measure works as follows. The first package to be compiled
|
||||
from this book is the statically-linked Binutils in <xref
|
||||
linkend="chapter-temporary-tools"/>. The time it takes to compile
|
||||
this package is what will be referred to as the Static Build Unit
|
||||
or SBU. All other compile times will be expressed relative to this
|
||||
time.</para>
|
||||
|
||||
<para>For example, consider a package whose compilation time is 4.5
|
||||
SBUs. This means that if a system took 10 minutes to compile and
|
||||
install the static Binutils, it will take
|
||||
<emphasis>approximately</emphasis> 45 minutes to build this example
|
||||
package. Fortunately, most build times are shorter than the one
|
||||
for Binutils.</para>
|
||||
|
||||
<para>Please note that if the system compiler on the host is GCC-2.x based, the
|
||||
SBUs listed may be somewhat understated. This is because the SBU is
|
||||
based on the very first package, compiled with the old GCC, while the
|
||||
rest of the system is compiled with the newer GCC-&gcc-version; (which is
|
||||
known to be approximately 30 percent slower). SBUs are also not
|
||||
highly accurate for Symmetric Multi-Processor (SMP)-based machines.</para>
|
||||
|
||||
<para>To view actual timings for a number of specific machines, we recommend
|
||||
<ulink url="&lfs-root;~bdubbs/"/>.</para>
|
||||
|
||||
<para>In general, SBUs are not very accurate because they depend on many
|
||||
factors, not just the GCC version. They are provided
|
||||
here to give an estimate of how long it might take to
|
||||
install a package, but the numbers can vary by as much as dozens of
|
||||
minutes in some cases.</para>
|
||||
|
||||
</sect1>
|
||||
|
||||
|
@ -7,6 +7,44 @@
|
||||
<title>About the Test Suites</title>
|
||||
<?dbhtml filename="abouttestsuites.html"?>
|
||||
|
||||
<para>See testing</para>
|
||||
<para>Most packages provide a test suite. Running the test suite for a
|
||||
newly built package is a good idea because it can provide a <quote>sanity
|
||||
check</quote> indicating that everything compiled correctly. A test suite
|
||||
that passes its set of checks usually proves that the package is
|
||||
functioning as the developer intended. It does not, however, guarantee
|
||||
that the package is totally bug free.</para>
|
||||
|
||||
<para>Some test suites are more important than others. For example,
|
||||
the test suites for the core toolchain packages—GCC, Binutils, and
|
||||
Glibc—are of the utmost importance due to their central role in a
|
||||
properly functioning system. The test suites for GCC and Glibc can
|
||||
take a very long time to complete, especially on slower hardware, but
|
||||
are strongly recommended.</para>
|
||||
|
||||
<note><para>Experience has shown that there is little to be gained
|
||||
from running the test suites in <xref
|
||||
linkend="chapter-temporary-tools"/>. There can be no escaping the fact
|
||||
that the host system always exerts some influence on the tests in that
|
||||
chapter, often causing inexplicable failures. Because the tools built
|
||||
in <xref linkend="chapter-temporary-tools"/> are temporary and
|
||||
eventually discarded, we do not recommend running the test suites in
|
||||
<xref linkend="chapter-temporary-tools"/> for the average reader. The
|
||||
instructions for running those test suites are provided for the
|
||||
benefit of testers and developers, but they are strictly
|
||||
optional.</para></note>
|
||||
|
||||
<para>A common issue with running the test suites for Binutils and GCC
|
||||
is running out of pseudo terminals (PTYs). This can result in a high
|
||||
number of failing tests. This may happen for several reasons, but the
|
||||
most likely cause is that the host system does not have the
|
||||
<systemitem class="filesystem">devpts</systemitem> file system set up
|
||||
correctly. This issue is discussed in greater detail in <xref
|
||||
linkend="chapter-temporary-tools"/>.</para>
|
||||
|
||||
<para>Sometimes package test suites will give false failures. Consult
|
||||
the LFS Wiki at <ulink url="&wiki-root;"/> to verify that these
|
||||
failures are expected. This site is valid for all tests throughout this
|
||||
book.</para>
|
||||
|
||||
</sect1>
|
||||
|
||||
|
@ -7,17 +7,85 @@
|
||||
<title>Adding the LFS User</title>
|
||||
<?dbhtml filename="addinguser.html"?>
|
||||
|
||||
<para>Issue the following commands to add the new user:</para>
|
||||
<para>When logged in as user <emphasis>root</emphasis>, making a
|
||||
single mistake can damage or destroy a system. Therefore, we recommend
|
||||
building the packages in this chapter as an unprivileged user. You
|
||||
could use your own user name, but to make it easier to set up a clean
|
||||
work environment, create a new user called <emphasis>lfs</emphasis> as
|
||||
a member of a new group (also named <emphasis>lfs</emphasis>) and use
|
||||
this user during the installation process. As
|
||||
<emphasis>root</emphasis>, issue the following commands to add the new
|
||||
user:</para>
|
||||
|
||||
<screen><userinput>groupadd lfs
|
||||
useradd -s /bin/bash -g lfs -m -k /dev/null lfs</userinput></screen>
|
||||
|
||||
<para>The meaning of the command line options:</para>
|
||||
|
||||
<variablelist>
|
||||
<varlistentry>
|
||||
<term><parameter>-s /bin/bash</parameter></term>
|
||||
<listitem><para>This makes
|
||||
<command>bash</command> the default shell for user
|
||||
<emphasis>lfs</emphasis>.</para></listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term><parameter>-g lfs</parameter></term>
|
||||
<listitem><para>This option adds user <emphasis>lfs</emphasis> to group
|
||||
<emphasis>lfs</emphasis>.</para></listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term><parameter>-m</parameter></term>
|
||||
<listitem><para>This creates a home
|
||||
directory for <emphasis>lfs</emphasis>.</para></listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term><parameter>-k /dev/null</parameter></term>
|
||||
<listitem><para>This parameter
|
||||
prevents possible copying of files from a skeleton directory (default
|
||||
is <filename class="directory">/etc/skel</filename>) by changing the input location to
|
||||
the special null device.</para></listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term><parameter>lfs</parameter></term>
|
||||
<listitem><para>This is the actual name for the created group and
|
||||
user.</para></listitem>
|
||||
</varlistentry>
|
||||
</variablelist>
|
||||
|
||||
<para>To log in as <emphasis>lfs</emphasis> (as opposed to switching
|
||||
to user <emphasis>lfs</emphasis> when
|
||||
logged in as <emphasis>root</emphasis>, which does not require the
|
||||
<emphasis>lfs</emphasis> user to have a
|
||||
password), give <emphasis>lfs</emphasis> a password:</para>
|
||||
|
||||
<screen><userinput>passwd lfs</userinput></screen>
|
||||
|
||||
<para>Grant <emphasis>lfs</emphasis> full access to
|
||||
<filename class="directory">$LFS/tools</filename> by making
|
||||
<emphasis>lfs</emphasis> the directory owner:</para>
|
||||
|
||||
<screen><userinput>chown lfs $LFS/tools</userinput></screen>
|
||||
|
||||
<para>If a separate working directory was created as suggested, give
|
||||
user <emphasis>lfs</emphasis> ownership of this directory:</para>
|
||||
|
||||
<screen><userinput>chown lfs $LFS/sources</userinput></screen>
|
||||
|
||||
<para>Next, login as user <emphasis>lfs</emphasis>. This can be done
|
||||
via a virtual console, through a display manager, or with the
|
||||
following substitute user command:</para>
|
||||
|
||||
<screen><userinput>su - lfs</userinput></screen>
|
||||
|
||||
<para>The <quote><parameter>-</parameter></quote> instructs
|
||||
<command>su</command> to start a login shell as opposed to a non-login
|
||||
shell. The difference between these two types of shells can be found
|
||||
in detail in the Bash man and info pages.</para>
|
||||
|
||||
</sect1>
|
||||
|
||||
|
@ -7,8 +7,40 @@
|
||||
<title>Creating the $LFS/tools Directory</title>
|
||||
<?dbhtml filename="creatingtoolsdir.html"?>
|
||||
|
||||
<para>All programs compiled in <xref
|
||||
linkend="chapter-temporary-tools"/> will be installed under <filename
|
||||
class="directory">$LFS/tools</filename> to keep them separate from the
|
||||
programs compiled in <xref linkend="chapter-building-system"/>. The
|
||||
programs compiled here are temporary tools and will not be a part of
|
||||
the final LFS system. By keeping these programs in a separate
|
||||
directory, they can easily be discarded later after their use. This
|
||||
also prevents these programs from ending up in the host production
|
||||
directories (easy to do by accident in <xref
|
||||
linkend="chapter-temporary-tools"/>).</para>
|
||||
|
||||
<para>Create the required directory by running the following as
|
||||
<emphasis>root</emphasis>:</para>
|
||||
|
||||
<screen><userinput>mkdir $LFS/tools</userinput></screen>
|
||||
|
||||
<para>The next step is to create a <filename class="symlink">/tools</filename>
|
||||
symlink on the host system. This will point to the newly-created directory on
|
||||
the LFS partition. Run this command as <emphasis>root</emphasis> as
|
||||
well:</para>
|
||||
|
||||
<screen><userinput>ln -s $LFS/tools /</userinput></screen>
|
||||
|
||||
<note><para>The above command is correct. The <command>ln</command>
|
||||
command has a few syntactic variations, so be sure to check the info
|
||||
and man pages before reporting what you may think is an
|
||||
error.</para></note>
|
||||
|
||||
<para>The created symlink enables the toolchain to be compiled so that
|
||||
it always refers to <filename class="directory">/tools</filename>,
|
||||
meaning that the compiler, assembler, and linker will work both in
|
||||
this chapter (when we are still using some tools from the host) and in
|
||||
the next (when we are <quote>chrooted</quote> to the LFS
|
||||
partition).</para>
|
||||
|
||||
</sect1>
|
||||
|
||||
|
@ -7,10 +7,35 @@
|
||||
<title>Setting Up the Environment</title>
|
||||
<?dbhtml filename="settingenvironment.html"?>
|
||||
|
||||
<para>Set up a good working environment by creating two new startup
|
||||
files for the <command>bash</command> shell. While logged in as user
|
||||
<emphasis>lfs</emphasis>, issue the
|
||||
following command to create a new <filename>.bash_profile</filename>:</para>
|
||||
|
||||
<screen><userinput>cat > ~/.bash_profile << "EOF"
|
||||
<literal>exec env -i HOME=$HOME TERM=$TERM PS1='\u:\w\$ ' /bin/bash</literal>
|
||||
EOF</userinput></screen>
|
||||
|
||||
<para>When logged on as user <emphasis>lfs</emphasis>, the
|
||||
initial shell is usually a <emphasis>login</emphasis> shell which reads the
|
||||
<filename>/etc/profile</filename> of the host (probably containing
|
||||
some settings and environment variables) and then
|
||||
<filename>.bash_profile</filename>. The <command>exec env
|
||||
-i.../bin/bash</command> command in the
|
||||
<filename>.bash_profile</filename> file replaces the running shell
|
||||
with a new one with a completely empty environment, except for the
|
||||
<envar>HOME</envar>, <envar>TERM</envar>, and
|
||||
<envar>PS1</envar> variables. This ensures that no unwanted and
|
||||
potentially hazardous environment variables from the host system leak
|
||||
into the build environment. The technique used here achieves the goal
|
||||
of ensuring a clean environment.</para>
|
||||
|
||||
<para>The new instance of the shell is a <emphasis>non-login</emphasis>
|
||||
shell, which does not read the <filename>/etc/profile</filename> or
|
||||
<filename>.bash_profile</filename> files, but rather reads the
|
||||
<filename>.bashrc</filename> file instead. Create the
|
||||
<filename>.bashrc</filename> file now:</para>
|
||||
|
||||
<screen><userinput>cat > ~/.bashrc << "EOF"
|
||||
<literal>set +h
|
||||
umask 022
|
||||
@ -20,6 +45,49 @@ PATH=/tools/bin:/bin:/usr/bin
|
||||
export LFS LC_ALL PATH</literal>
|
||||
EOF</userinput></screen>
|
||||
|
||||
<para>The <command>set +h</command> command turns off
|
||||
<command>bash</command>'s hash function. Hashing is ordinarily a useful
|
||||
feature—<command>bash</command> uses a hash table to remember the
|
||||
full path of executable files to avoid searching the <envar>PATH</envar> time
|
||||
and again to find the same executable. However, the new tools
|
||||
should be used as soon as they are installed. By switching off the
|
||||
hash function, the shell will always search the <envar>PATH</envar> when a program is
|
||||
to be run. As such, the shell will find the newly compiled
|
||||
tools in <filename class="directory">$LFS/tools</filename> as soon as
|
||||
they are available without remembering a previous version of the same
|
||||
program in a different location.</para>
|
||||
|
||||
<para>Setting the user file-creation mask (umask) to 022 ensures that newly
|
||||
created files and directories are only writable by their owner, but
|
||||
are readable and executable by anyone (assuming default modes are used
|
||||
by the open(2) system call, new files will end up with permission mode
|
||||
644 and directories with mode 755).</para>
|
||||
|
||||
<para>The <envar>LFS</envar> variable should be set to the
|
||||
chosen mount point.</para>
|
||||
|
||||
<para>The <envar>LC_ALL</envar> variable controls the
|
||||
localization of certain programs, making their messages follow the
|
||||
conventions of a specified country. If the host system uses a version
|
||||
of Glibc older than 2.2.4, having <envar>LC_ALL</envar> set to something other than
|
||||
<quote>POSIX</quote> or <quote>C</quote> (during this chapter) may
|
||||
cause issues if you exit the chroot environment and wish to return
|
||||
later. Setting <envar>LC_ALL</envar> to <quote>POSIX</quote>
|
||||
or <quote>C</quote> (the two are equivalent) ensures that
|
||||
everything will work as expected in the chroot environment.</para>
|
||||
|
||||
<para>By putting <filename class="directory">/tools/bin</filename>
|
||||
ahead of the standard <envar>PATH</envar>, all the programs installed in <xref
|
||||
linkend="chapter-temporary-tools"/> are picked up by the shell
|
||||
immediately after their installation. This, combined with turning off
|
||||
hashing, limits the risk that old programs from
|
||||
the host are being used when they should not be used any
|
||||
longer.</para>
|
||||
|
||||
<para>Finally, to have the environment fully prepared for building the
|
||||
temporary tools, source the just-created user profile:</para>
|
||||
|
||||
<screen><userinput>source ~/.bash_profile</userinput></screen>
|
||||
|
||||
</sect1>
|
||||
|
||||
|
@ -7,12 +7,34 @@
|
||||
<title>Adjusting the Toolchain</title>
|
||||
<?dbhtml filename="adjusting.html"?>
|
||||
|
||||
<para>Run the following command from within
|
||||
the <filename class="directory">binutils-build</filename> directory:</para>
|
||||
<para>Now that the temporary C libraries have been installed, all
|
||||
tools compiled in the rest of this chapter should be linked against
|
||||
these libraries. In order to accomplish this, the linker and the
|
||||
compiler's specs file need to be adjusted.</para>
|
||||
|
||||
<para>The linker, adjusted at the end of the first pass of Binutils,
|
||||
is installed by running the following command from within the
|
||||
<filename class="directory">binutils-build</filename> directory:</para>
|
||||
|
||||
<screen><userinput>make -C ld install</userinput></screen>
|
||||
|
||||
<para>Amend the GCC specs file:</para>
|
||||
<para>From this point onwards, everything will link only
|
||||
against the libraries in <filename class="directory">/tools/lib</filename>.</para>
|
||||
|
||||
<note><para>If the earlier warning to retain the Binutils source and
|
||||
build directories from the first pass was missed, ignore the above
|
||||
command. This results in a small chance that the subsequent testing
|
||||
programs will link against libraries on the host. This is not ideal,
|
||||
but it is not a major problem. The situation is corrected when the
|
||||
second pass of Binutils is installed later.</para></note>
|
||||
|
||||
<para>Now that the adjusted linker is installed, the Binutils build and source
|
||||
directories should be removed.</para>
|
||||
|
||||
<para>The next task is to amend the GCC specs file so that it points
|
||||
to the new dynamic linker. A simple sed script will accomplish this:</para>
|
||||
|
||||
<!-- Ampersands are needed to allow copy and paste -->
|
||||
|
||||
<screen><userinput>SPECFILE=`gcc --print-file specs` &&
|
||||
sed 's@ /lib/ld-linux.so.2@ /tools/lib/ld-linux.so.2@g' \
|
||||
@ -20,24 +42,71 @@ sed 's@ /lib/ld-linux.so.2@ /tools/lib/ld-linux.so.2@g' \
|
||||
mv -f tempspecfile $SPECFILE &&
|
||||
unset SPECFILE</userinput></screen>
|
||||
|
||||
<para>Make clean-up:</para>
|
||||
<para><phrase condition="html">It is recommended that the above
|
||||
command be copy-and-pasted in order to ensure accuracy.</phrase>
|
||||
Alternatively, the specs file can be edited by hand. This is done by
|
||||
replacing every occurrence of <quote>/lib/ld-linux.so.2</quote> with
|
||||
<quote>/tools/lib/ld-linux.so.2</quote></para>
|
||||
|
||||
<para>Be sure to visually inspect the specs file in order to verify the
|
||||
intended changes have been made.</para>
|
||||
|
||||
<important><para>If working on a platform where the name of the
|
||||
dynamic linker is something other than
|
||||
<filename class="libraryfile">ld-linux.so.2</filename>, replace
|
||||
<quote>ld-linux.so.2</quote> with the name of the platform's
|
||||
dynamic linker in the above commands. Refer back to <xref
|
||||
linkend="ch-tools-toolchaintechnotes" role=","/> if
|
||||
necessary.</para></important>
|
||||
|
||||
<para>There is a possibility that some include files from the host
|
||||
system have found their way into GCC's private include dir. This can
|
||||
happen as a result of GCC's <quote>fixincludes</quote> process, which runs as part
|
||||
of the GCC build. This is explained in more detail later in this
|
||||
chapter. Run the following command to eliminate this
|
||||
possibility:</para>
|
||||
|
||||
<screen><userinput>rm -f /tools/lib/gcc/*/*/include/{pthread.h,bits/sigthread.h}</userinput></screen>
|
||||
|
||||
<para>Test the tools:</para>
|
||||
<caution><para>At this point, it is imperative to stop and ensure that
|
||||
the basic 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 'main(){}' > dummy.c
|
||||
cc dummy.c
|
||||
readelf -l a.out | grep ': /tools'</userinput></screen>
|
||||
|
||||
<para>The output of the last command will be of the form:</para>
|
||||
<para>If everything is working correctly, there should be no errors,
|
||||
and the output of the last command will be of the form:</para>
|
||||
|
||||
<screen><computeroutput>[Requesting program interpreter:
|
||||
/tools/lib/ld-linux.so.2]</computeroutput></screen>
|
||||
|
||||
<para>Remove the test files:</para>
|
||||
<para>Note that <filename class="directory">/tools/lib</filename>
|
||||
appears as the prefix of the dynamic linker.</para>
|
||||
|
||||
<para>If the output is not shown as above or there was no output at
|
||||
all, then something is wrong. Investigate and retrace the steps to
|
||||
find out where the problem is and correct it. This issue must be
|
||||
resolved before continuing on. First, perform the sanity check again,
|
||||
using <command>gcc</command> instead of <command>cc</command>. If this
|
||||
works, then the <filename class="symlink">/tools/bin/cc</filename> symlink is missing.
|
||||
Revisit <xref linkend="ch-tools-gcc-pass1" role=","/> and install the symlink.
|
||||
Next, ensure that the <envar>PATH</envar> is correct. This can be checked by running
|
||||
<command>echo $PATH</command> and verifying that <filename
|
||||
class="directory">/tools/bin</filename> is at the head of the list. If
|
||||
the <envar>PATH</envar> is wrong it could mean that you are not logged in as user
|
||||
<emphasis>lfs</emphasis> or that something went wrong back in <xref
|
||||
linkend="ch-tools-settingenviron" role="."/> Another option is that something
|
||||
may have gone wrong with the specs file amendment above. In this case,
|
||||
redo the specs file amendment<phrase condition="html">, being careful to copy-and-paste the
|
||||
commands</phrase>.</para>
|
||||
|
||||
<para>Once all is well, clean up the test files:</para>
|
||||
|
||||
<screen><userinput>rm dummy.c a.out</userinput></screen>
|
||||
|
||||
</caution>
|
||||
|
||||
</sect1>
|
||||
|
||||
|
@ -7,8 +7,12 @@
|
||||
<title>Bash-&bash-version;</title>
|
||||
<?dbhtml filename="bash.html"?>
|
||||
|
||||
<indexterm zone="ch-tools-bash">
|
||||
<primary sortas="a-Bash">Bash</primary>
|
||||
<secondary>tools</secondary></indexterm>
|
||||
|
||||
<sect2 role="package"><title/>
|
||||
<xi:include xmlns:xi="http://www.w3.org/2003/XInclude" href="../chapter06/bash.xml" xpointer="xpointer(/sect1/sect2[1]/para[1])"/>
|
||||
|
||||
<segmentedlist>
|
||||
<segtitle>&buildtime;</segtitle>
|
||||
@ -16,12 +20,16 @@
|
||||
<seglistitem><seg>1.2 SBU</seg><seg>27 MB</seg></seglistitem>
|
||||
</segmentedlist>
|
||||
|
||||
<xi:include xmlns:xi="http://www.w3.org/2003/XInclude" href="../chapter06/bash.xml" xpointer="xpointer(/sect1/sect2[1]/segmentedlist[2])"/>
|
||||
|
||||
</sect2>
|
||||
|
||||
<sect2 role="installation">
|
||||
<title>Installation of Bash</title>
|
||||
|
||||
<para>Apply a patch:</para>
|
||||
<!-- Edit Me -->
|
||||
<para>Bash has a problem when compiled against newer versions of Glibc, causing
|
||||
it to hang inappropriately. This patch fixes the problem:</para>
|
||||
|
||||
<screen><userinput>patch -Np1 -i ../bash-&bash-version;-avoid_WCONTINUED-1.patch</userinput></screen>
|
||||
|
||||
@ -29,21 +37,39 @@
|
||||
|
||||
<screen><userinput>./configure --prefix=/tools --without-bash-malloc</userinput></screen>
|
||||
|
||||
<para>Compile the program:</para>
|
||||
<para>The meaning of the configure option:</para>
|
||||
|
||||
<variablelist>
|
||||
<varlistentry>
|
||||
<term><parameter>--without-bash-malloc</parameter></term>
|
||||
<listitem><para>This options turns off the use of Bash's memory
|
||||
allocation (malloc) function which is known to cause segmentation
|
||||
faults. By turning this option off, Bash will use the malloc functions
|
||||
from Glibc which are more stable.</para></listitem>
|
||||
</varlistentry>
|
||||
</variablelist>
|
||||
|
||||
<para>Compile the package:</para>
|
||||
|
||||
<screen><userinput>make</userinput></screen>
|
||||
|
||||
<para>To test the results, issue:
|
||||
<userinput>make test</userinput>.</para>
|
||||
<para>To test the results, issue: <userinput>make
|
||||
tests</userinput>.</para>
|
||||
|
||||
<para>Then install it :</para>
|
||||
<para>Install the package:</para>
|
||||
|
||||
<screen><userinput>make install</userinput></screen>
|
||||
|
||||
<para>Create a symlink:</para>
|
||||
<para>Make a link for the programs that use <command>sh</command> for
|
||||
a shell:</para>
|
||||
|
||||
<screen><userinput>ln -s bash /tools/bin/sh</userinput></screen>
|
||||
|
||||
</sect2>
|
||||
|
||||
<sect2 role="content"><title/>
|
||||
<para>Details on this package are located in <xref linkend="contents-bash" role="."/></para>
|
||||
</sect2>
|
||||
|
||||
</sect1>
|
||||
|
||||
|
@ -7,7 +7,12 @@
|
||||
<title>Binutils-&binutils-version; - Pass 1</title>
|
||||
<?dbhtml filename="binutils-pass1.html"?>
|
||||
|
||||
<indexterm zone="ch-tools-binutils-pass1">
|
||||
<primary sortas="a-Binutils">Binutils</primary>
|
||||
<secondary>tools, pass 1</secondary></indexterm>
|
||||
|
||||
<sect2 role="package"><title/>
|
||||
<xi:include xmlns:xi="http://www.w3.org/2003/XInclude" href="../chapter06/binutils.xml" xpointer="xpointer(/sect1/sect2[1]/para[1])"/>
|
||||
|
||||
<segmentedlist>
|
||||
<segtitle>&buildtime;</segtitle>
|
||||
@ -15,44 +20,134 @@
|
||||
<seglistitem><seg>1.0 SBU</seg><seg>194 MB</seg></seglistitem>
|
||||
</segmentedlist>
|
||||
|
||||
<xi:include xmlns:xi="http://www.w3.org/2003/XInclude" href="../chapter06/binutils.xml" xpointer="xpointer(/sect1/sect2[1]/segmentedlist[2])"/>
|
||||
|
||||
</sect2>
|
||||
|
||||
<sect2 role="installation">
|
||||
<title>Installation of Binutils</title>
|
||||
|
||||
<para>Create a build dir:</para>
|
||||
<para>It is important that Binutils be the first package compiled
|
||||
because both Glibc and GCC perform various tests on the available
|
||||
linker and assembler to determine which of their own features to
|
||||
enable.</para>
|
||||
|
||||
<para>This package is known to have issues when its default
|
||||
optimization flags (including the <parameter>-march</parameter> and
|
||||
<parameter>-mcpu</parameter> options) are changed. If any environment
|
||||
variables that override default optimizations have been defined, such
|
||||
as <envar>CFLAGS</envar> and <envar>CXXFLAGS</envar>,
|
||||
unset them when building Binutils.</para>
|
||||
|
||||
<para>The Binutils documentation recommends building Binutils outside of the
|
||||
source directory in a dedicated build directory:</para>
|
||||
|
||||
<screen><userinput>mkdir ../binutils-build
|
||||
cd ../binutils-build</userinput></screen>
|
||||
|
||||
<note><para>If you want the SBU values you could wrap the four commands in a
|
||||
<command>time</command> command like this:
|
||||
<userinput>time { ./configure ... && ... && ...
|
||||
&& make install; }</userinput>.</para></note>
|
||||
<note><para>In order for the SBU values listed in the rest of the book
|
||||
to be of any use, measure the time it takes to build this package from
|
||||
the configuration, up to and including the first install. To achieve
|
||||
this easily, wrap the four commands in a <command>time</command>
|
||||
command like this: <userinput>time { ./configure ... && ...
|
||||
&& ... && make install; }</userinput>.</para></note>
|
||||
|
||||
<para>Now prepare Binutils for compilation:</para>
|
||||
|
||||
<screen><userinput>../binutils-&binutils-version;/configure --prefix=/tools \
|
||||
--disable-nls</userinput></screen>
|
||||
|
||||
<para>The meaning of the configure options:</para>
|
||||
|
||||
<variablelist>
|
||||
<varlistentry>
|
||||
<term><parameter>--prefix=/tools</parameter></term>
|
||||
<listitem><para>This tells the configure script to prepare to install the Binutils
|
||||
programs in the <filename class="directory">/tools</filename> directory.</para></listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term><parameter>--disable-nls</parameter></term>
|
||||
<listitem><para>This disables internationalization. This is not needed
|
||||
for the static programs, and NLS can cause problems when linking
|
||||
statically.</para></listitem>
|
||||
</varlistentry>
|
||||
</variablelist>
|
||||
|
||||
<para>Continue with compiling the package:</para>
|
||||
|
||||
<screen><userinput>make configure-host
|
||||
make LDFLAGS="-all-static"</userinput></screen>
|
||||
|
||||
<para>Now install the package:</para>
|
||||
<para>The meaning of the make parameters:</para>
|
||||
|
||||
<variablelist>
|
||||
<varlistentry>
|
||||
<term><parameter>configure-host</parameter></term>
|
||||
<listitem><para>This forces all subdirectories to be configured
|
||||
immediately. A statically-linked build will fail without it. Use this
|
||||
option to work around the problem.</para></listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term><parameter>LDFLAGS="-all-static"</parameter></term>
|
||||
<listitem><para>This tells the linker that all Binutils programs
|
||||
should be linked statically. However, strictly speaking,
|
||||
<parameter>"-all-static"</parameter> is passed to the
|
||||
<command>libtool</command> program, which then passes
|
||||
<parameter>"-static"</parameter> to the linker.</para></listitem>
|
||||
</varlistentry>
|
||||
</variablelist>
|
||||
|
||||
<para>Compilation is now complete. Ordinarily we would now run the
|
||||
test suite, but at this early stage the test suite framework (Tcl,
|
||||
Expect, and DejaGNU) is not yet in place. The benefits of running the
|
||||
tests at this point are minimal since the programs from this
|
||||
first pass will soon be replaced by those from the second.</para>
|
||||
|
||||
<para>Install the package:</para>
|
||||
|
||||
<screen><userinput>make install</userinput></screen>
|
||||
|
||||
<para>Now prepare the linker for the <quote>Adjusting</quote> phase later on:</para>
|
||||
<para>Next, prepare the linker for the <quote>Adjusting</quote> phase
|
||||
later on:</para>
|
||||
|
||||
<screen><userinput>make -C ld clean
|
||||
make -C ld LDFLAGS="-all-static" LIB_PATH=/tools/lib</userinput></screen>
|
||||
|
||||
<warning><para><emphasis>Do not yet remove</emphasis> the Binutils build and
|
||||
source directories. You will need them again in their current state a bit
|
||||
further on in this chapter.</para></warning>
|
||||
<para>The meaning of the make parameters:</para>
|
||||
|
||||
<variablelist>
|
||||
<varlistentry>
|
||||
<term><parameter>-C ld clean</parameter></term>
|
||||
<listitem><para>This tells the make program to remove all compiled
|
||||
files in the <filename class="directory">ld</filename>
|
||||
subdirectory.</para></listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term><parameter>-C ld LDFLAGS="-all-static"
|
||||
LIB_PATH=/tools/lib</parameter></term>
|
||||
<listitem><para>This option rebuilds everything in the
|
||||
<filename class="directory">ld</filename> subdirectory. Specifying
|
||||
the <envar>LIB_PATH</envar> Makefile variable on the command
|
||||
line allows us to override the default value
|
||||
and point it to the temporary tools location. The value of this variable
|
||||
specifies the linker's default library search path. This preparation
|
||||
is used later in the chapter.</para></listitem>
|
||||
</varlistentry>
|
||||
</variablelist>
|
||||
|
||||
<warning><para><emphasis>Do not</emphasis> remove the Binutils
|
||||
build and source directories yet. These will be needed again in their
|
||||
current state later in this chapter.</para></warning>
|
||||
|
||||
</sect2>
|
||||
|
||||
<sect2 role="content"><title/>
|
||||
<para>Details on this package are located in <xref
|
||||
linkend="contents-binutils" role="."/></para>
|
||||
</sect2>
|
||||
|
||||
</sect1>
|
||||
|
||||
|
@ -7,7 +7,14 @@
|
||||
<title>Binutils-&binutils-version; - Pass 2</title>
|
||||
<?dbhtml filename="binutils-pass2.html"?>
|
||||
|
||||
<indexterm zone="ch-tools-binutils-pass2">
|
||||
<primary sortas="a-Binutils">Binutils</primary>
|
||||
<secondary>tools, pass 2</secondary></indexterm>
|
||||
|
||||
<sect2 role="package"><title/>
|
||||
<xi:include xmlns:xi="http://www.w3.org/2003/XInclude"
|
||||
href="../chapter06/binutils.xml"
|
||||
xpointer="xpointer(/sect1/sect2[1]/para[1])"/>
|
||||
|
||||
<segmentedlist>
|
||||
<segtitle>&buildtime;</segtitle>
|
||||
@ -15,39 +22,57 @@
|
||||
<seglistitem><seg>1.5 SBU</seg><seg>108 MB</seg></seglistitem>
|
||||
</segmentedlist>
|
||||
|
||||
<xi:include xmlns:xi="http://www.w3.org/2003/XInclude"
|
||||
href="../chapter06/binutils.xml"
|
||||
xpointer="xpointer(/sect1/sect2[1]/segmentedlist[2])"/>
|
||||
|
||||
</sect2>
|
||||
|
||||
<sect2 role="installation">
|
||||
<title>Re-installation of Binutils</title>
|
||||
|
||||
<para>This package is known to have issues when its default
|
||||
optimization flags (including the <parameter>-march</parameter> and
|
||||
<parameter>-mcpu</parameter> options) are changed. If any environment
|
||||
variables that override default optimizations have been defined, such
|
||||
as <envar>CFLAGS</envar> and <envar>CXXFLAGS</envar>,
|
||||
unset them when building Binutils.</para>
|
||||
|
||||
<para>Create a separate build directory again:</para>
|
||||
|
||||
<screen><userinput>mkdir ../binutils-build
|
||||
cd ../binutils-build</userinput></screen>
|
||||
|
||||
<para>Now prepare Binutils for compilation:</para>
|
||||
<para>Prepare Binutils for compilation:</para>
|
||||
|
||||
<screen><userinput>../binutils-&binutils-version;/configure --prefix=/tools \
|
||||
--enable-shared --with-lib-path=/tools/lib</userinput></screen>
|
||||
|
||||
<para>The meaning of the new configure option:</para>
|
||||
|
||||
<variablelist>
|
||||
<varlistentry>
|
||||
<term><parameter>--with-lib-path=/tools/lib</parameter></term>
|
||||
<listitem><para>This tells the configure script to specify the library
|
||||
search path during the compilation of Binutils, resulting in <filename
|
||||
class="directory">/tools/lib</filename> being passed to the linker.
|
||||
This prevents the linker from searching through library directories on
|
||||
the host.</para></listitem>
|
||||
</varlistentry>
|
||||
</variablelist>
|
||||
|
||||
<para>Compile the package:</para>
|
||||
|
||||
<screen><userinput>make</userinput></screen>
|
||||
|
||||
<para>Test the results:</para>
|
||||
<para>Compilation is now complete. As discussed earlier, running the
|
||||
test suite is not mandatory for the temporary tools here in this
|
||||
chapter. To run the Binutils test suite anyway, issue the following
|
||||
command:</para>
|
||||
|
||||
<!-- NEW -->
|
||||
<screen><userinput>make -k check</userinput></screen>
|
||||
<screen><userinput>make check</userinput></screen>
|
||||
|
||||
<para>Except for a few known failures, the binutils tests should all pass. The
|
||||
exceptions to this rule are as follows:</para>
|
||||
|
||||
<screen><computeroutput>* 5 FAIL (unexpected failure) for visibility
|
||||
* 1 FAIL for selective4
|
||||
* 1 FAIL for selective5</computeroutput></screen>
|
||||
<!-- END NEW-->
|
||||
|
||||
<para>And install the package:</para>
|
||||
<para>Install the package:</para>
|
||||
|
||||
<screen><userinput>make install</userinput></screen>
|
||||
|
||||
@ -58,10 +83,16 @@ chapter:</para>
|
||||
make -C ld LIB_PATH=/usr/lib:/lib</userinput></screen>
|
||||
|
||||
|
||||
<warning><para><emphasis>Do not yet remove</emphasis> the Binutils source and
|
||||
build directories. You will need these directories again in the next chapter
|
||||
in the state they are in now.</para></warning>
|
||||
<warning><para><emphasis>Do not</emphasis> remove the Binutils source and
|
||||
build directories yet. These directories will be needed again in the next
|
||||
chapter in their current state.</para></warning>
|
||||
|
||||
</sect2>
|
||||
|
||||
<sect2 role="content"><title/>
|
||||
<para>Details on this package are located in <xref
|
||||
linkend="contents-binutils" role="."/></para>
|
||||
</sect2>
|
||||
|
||||
</sect1>
|
||||
|
||||
|
@ -7,7 +7,12 @@
|
||||
<title>Bison-&bison-version;</title>
|
||||
<?dbhtml filename="bison.html"?>
|
||||
|
||||
<indexterm zone="ch-tools-bison">
|
||||
<primary sortas="a-Bison">Bison</primary>
|
||||
<secondary>tools</secondary></indexterm>
|
||||
|
||||
<sect2 role="package"><title/>
|
||||
<xi:include xmlns:xi="http://www.w3.org/2003/XInclude" href="../chapter06/bison.xml" xpointer="xpointer(/sect1/sect2[1]/para[1])"/>
|
||||
|
||||
<segmentedlist>
|
||||
<segtitle>&buildtime;</segtitle>
|
||||
@ -15,6 +20,8 @@
|
||||
<seglistitem><seg>0.6 SBU</seg><seg>10.6 MB</seg></seglistitem>
|
||||
</segmentedlist>
|
||||
|
||||
<xi:include xmlns:xi="http://www.w3.org/2003/XInclude" href="../chapter06/bison.xml" xpointer="xpointer(/sect1/sect2[1]/segmentedlist[2])"/>
|
||||
|
||||
</sect2>
|
||||
|
||||
<sect2 role="installation">
|
||||
@ -28,13 +35,19 @@
|
||||
|
||||
<screen><userinput>make</userinput></screen>
|
||||
|
||||
<para>To test the results, issue:
|
||||
<userinput>make check</userinput>.</para>
|
||||
<para>To test the results, issue: <userinput>make
|
||||
check</userinput>.</para>
|
||||
|
||||
<para>Now install the package:</para>
|
||||
<para>Install the package:</para>
|
||||
|
||||
<screen><userinput>make install</userinput></screen>
|
||||
|
||||
</sect2>
|
||||
|
||||
<sect2 role="content"><title/>
|
||||
<para>Details on this package are located in <xref
|
||||
linkend="contents-bison" role="."/></para>
|
||||
</sect2>
|
||||
|
||||
</sect1>
|
||||
|
||||
|
@ -7,7 +7,12 @@
|
||||
<title>Bzip2-&bzip2-version;</title>
|
||||
<?dbhtml filename="bzip2.html"?>
|
||||
|
||||
<indexterm zone="ch-tools-bzip2">
|
||||
<primary sortas="a-Bzip2">Bzip2</primary>
|
||||
<secondary>tools</secondary></indexterm>
|
||||
|
||||
<sect2 role="package"><title/>
|
||||
<xi:include xmlns:xi="http://www.w3.org/2003/XInclude" href="../chapter06/bzip2.xml" xpointer="xpointer(/sect1/sect2[1]/para[1])"/>
|
||||
|
||||
<segmentedlist>
|
||||
<segtitle>&buildtime;</segtitle>
|
||||
@ -15,20 +20,28 @@
|
||||
<seglistitem><seg>0.1 SBU</seg><seg>2.5 MB</seg></seglistitem>
|
||||
</segmentedlist>
|
||||
|
||||
<xi:include xmlns:xi="http://www.w3.org/2003/XInclude" href="../chapter06/bzip2.xml" xpointer="xpointer(/sect1/sect2[1]/segmentedlist[2])"/>
|
||||
|
||||
</sect2>
|
||||
|
||||
<sect2 role="installation">
|
||||
<title>Installation of Bzip2</title>
|
||||
|
||||
<para>The Bzip2 package doesn't contain a <command>configure</command>
|
||||
script. Compile it with a straightforward:</para>
|
||||
<para>The Bzip2 package does not contain a <command>configure</command>
|
||||
script. Compile it with:</para>
|
||||
|
||||
<screen><userinput>make</userinput></screen>
|
||||
|
||||
<para>And install it:</para>
|
||||
<para>Install the package:</para>
|
||||
|
||||
<screen><userinput>make PREFIX=/tools install</userinput></screen>
|
||||
|
||||
</sect2>
|
||||
|
||||
<sect2 role="content"><title/>
|
||||
<para>Details on this package are located in <xref
|
||||
linkend="contents-bzip2" role="."/></para>
|
||||
</sect2>
|
||||
|
||||
</sect1>
|
||||
|
||||
|
@ -14,9 +14,6 @@
|
||||
<xi:include xmlns:xi="http://www.w3.org/2003/XInclude" href="binutils-pass1.xml"/>
|
||||
<xi:include xmlns:xi="http://www.w3.org/2003/XInclude" href="gcc-pass1.xml"/>
|
||||
<xi:include xmlns:xi="http://www.w3.org/2003/XInclude" href="linux-libc-headers.xml"/>
|
||||
<!--
|
||||
<xi:include xmlns:xi="http://www.w3.org/2003/XInclude" href="kernel-headers.xml"/>
|
||||
-->
|
||||
<xi:include xmlns:xi="http://www.w3.org/2003/XInclude" href="glibc.xml"/>
|
||||
<xi:include xmlns:xi="http://www.w3.org/2003/XInclude" href="adjusting.xml"/>
|
||||
<xi:include xmlns:xi="http://www.w3.org/2003/XInclude" href="tcl.xml"/>
|
||||
@ -44,9 +41,6 @@
|
||||
<xi:include xmlns:xi="http://www.w3.org/2003/XInclude" href="flex.xml"/>
|
||||
<xi:include xmlns:xi="http://www.w3.org/2003/XInclude" href="util-linux.xml"/>
|
||||
<xi:include xmlns:xi="http://www.w3.org/2003/XInclude" href="perl.xml"/>
|
||||
<!--
|
||||
<xi:include xmlns:xi="http://www.w3.org/2003/XInclude" href="udev.xml"/>
|
||||
-->
|
||||
<xi:include xmlns:xi="http://www.w3.org/2003/XInclude" href="stripping.xml"/>
|
||||
|
||||
</chapter>
|
||||
|
@ -7,7 +7,12 @@
|
||||
<title>Coreutils-&coreutils-version;</title>
|
||||
<?dbhtml filename="coreutils.html"?>
|
||||
|
||||
<indexterm zone="ch-tools-coreutils">
|
||||
<primary sortas="a-Coreutils">Coreutils</primary>
|
||||
<secondary>tools</secondary></indexterm>
|
||||
|
||||
<sect2 role="package"><title/>
|
||||
<xi:include xmlns:xi="http://www.w3.org/2003/XInclude" href="../chapter06/coreutils.xml" xpointer="xpointer(/sect1/sect2[1]/para[1])"/>
|
||||
|
||||
<segmentedlist>
|
||||
<segtitle>&buildtime;</segtitle>
|
||||
@ -15,6 +20,8 @@
|
||||
<seglistitem><seg>0.9 SBU</seg><seg>69 MB</seg></seglistitem>
|
||||
</segmentedlist>
|
||||
|
||||
<xi:include xmlns:xi="http://www.w3.org/2003/XInclude" href="../chapter06/coreutils.xml" xpointer="xpointer(/sect1/sect2[1]/segmentedlist[2])"/>
|
||||
|
||||
</sect2>
|
||||
|
||||
<sect2 role="installation">
|
||||
@ -24,17 +31,44 @@
|
||||
|
||||
<screen><userinput>DEFAULT_POSIX2_VERSION=199209 ./configure --prefix=/tools</userinput></screen>
|
||||
|
||||
<para>This package has an issue when compiled against versions of
|
||||
Glibc later than 2.3.2. Some of the Coreutils utilities (such as
|
||||
<command>head</command>, <command>tail</command>, and
|
||||
<command>sort</command>) will reject their traditional syntax, a
|
||||
syntax that has been in use for approximately 30 years. This old
|
||||
syntax is so pervasive that compatibility should be preserved until
|
||||
the many places where it is used can be updated. Backwards
|
||||
compatibility is achieved by setting the
|
||||
<envar>DEFAULT_POSIX2_VERSION</envar> environment variable to
|
||||
<quote>199209</quote> in the above command. If you do not want
|
||||
Coreutils to be backwards compatible with the traditional syntax, then
|
||||
omit setting the <envar>DEFAULT_POSIX2_VERSION</envar>
|
||||
environment variable. It is important to remember that doing so will
|
||||
have consequences, including the need to patch the many packages that
|
||||
still use the old syntax. Therefore, it is recommended that the
|
||||
instructions be followed exactly as given above.</para>
|
||||
|
||||
<para>Compile the package:</para>
|
||||
|
||||
<screen><userinput>make</userinput></screen>
|
||||
|
||||
<para>To test the result, issue:
|
||||
<userinput>make RUN_EXPENSIVE_TESTS=yes check</userinput></para>
|
||||
<para>To test the results, issue: <userinput>make
|
||||
RUN_EXPENSIVE_TESTS=yes check</userinput>. The
|
||||
<parameter>RUN_EXPENSIVE_TESTS=yes</parameter> parameter tells the
|
||||
test suite to run several additional tests that are considered
|
||||
relatively expensive (in terms of CPU power and memory usage) on some
|
||||
platforms, but generally are not a problem on Linux.</para>
|
||||
|
||||
<para>And install the package:</para>
|
||||
<para>Install the package:</para>
|
||||
|
||||
<screen><userinput>make install</userinput></screen>
|
||||
|
||||
</sect2>
|
||||
|
||||
<sect2 role="content"><title/>
|
||||
<para>Details on this package are located in <xref
|
||||
linkend="contents-coreutils" role="."/></para>
|
||||
</sect2>
|
||||
|
||||
</sect1>
|
||||
|
||||
|
@ -3,13 +3,14 @@
|
||||
<!ENTITY % general-entities SYSTEM "../general.ent">
|
||||
%general-entities;
|
||||
]>
|
||||
<sect1 id="ch-tools-dejagnu" xreflabel="DejaGNU" role="wrap">
|
||||
<sect1 id="ch-tools-dejagnu" role="wrap">
|
||||
<title>DejaGNU-&dejagnu-version;</title>
|
||||
<?dbhtml filename="dejagnu.html"?>
|
||||
|
||||
<indexterm zone="ch-tools-dejagnu"><primary sortas="a-DejaGNU">DejaGNU</primary></indexterm>
|
||||
|
||||
<sect2 role="package"><title/>
|
||||
<para>The DejaGNU package contains a framework for testing other programs.</para>
|
||||
|
||||
<segmentedlist>
|
||||
<segtitle>&buildtime;</segtitle>
|
||||
@ -17,6 +18,11 @@
|
||||
<seglistitem><seg>0.1 SBU</seg><seg>8.6 MB</seg></seglistitem>
|
||||
</segmentedlist>
|
||||
|
||||
<segmentedlist>
|
||||
<segtitle>DejaGNU installation depends on</segtitle>
|
||||
<seglistitem><seg>Bash, Binutils, Coreutils, Diffutils,
|
||||
GCC, Glibc, Grep, Make, and Sed</seg></seglistitem>
|
||||
</segmentedlist>
|
||||
</sect2>
|
||||
|
||||
<sect2 role="installation">
|
||||
@ -32,11 +38,28 @@
|
||||
|
||||
</sect2>
|
||||
|
||||
|
||||
<sect2 id="contents-dejagnu" role="content"><title>Contents of DejaGNU</title>
|
||||
|
||||
<para>See testing</para>
|
||||
<segmentedlist>
|
||||
<segtitle>Installed program</segtitle>
|
||||
<seglistitem><seg>runtest</seg></seglistitem>
|
||||
</segmentedlist>
|
||||
|
||||
<variablelist><bridgehead renderas="sect3">Short Descriptions</bridgehead>
|
||||
<?dbfo list-presentation="list"?>
|
||||
|
||||
<varlistentry id="runtest">
|
||||
<term><command>runtest</command></term>
|
||||
<listitem>
|
||||
<para>A wrapper script that locates the proper
|
||||
<command>expect</command> shell and then runs DejaGNU</para>
|
||||
<indexterm zone="ch-tools-dejagnu runtest"><primary sortas="b-runtest">runtest</primary></indexterm>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
</variablelist>
|
||||
|
||||
</sect2>
|
||||
|
||||
|
||||
</sect1>
|
||||
|
||||
|
@ -7,7 +7,12 @@
|
||||
<title>Diffutils-&diffutils-version;</title>
|
||||
<?dbhtml filename="diffutils.html"?>
|
||||
|
||||
<indexterm zone="ch-tools-diffutils">
|
||||
<primary sortas="a-Diffutils">Diffutils</primary>
|
||||
<secondary>tools</secondary></indexterm>
|
||||
|
||||
<sect2 role="package"><title/>
|
||||
<xi:include xmlns:xi="http://www.w3.org/2003/XInclude" href="../chapter06/diffutils.xml" xpointer="xpointer(/sect1/sect2[1]/para[1])"/>
|
||||
|
||||
<segmentedlist>
|
||||
<segtitle>&buildtime;</segtitle>
|
||||
@ -15,6 +20,8 @@
|
||||
<seglistitem><seg>0.1 SBU</seg><seg>7.5 MB</seg></seglistitem>
|
||||
</segmentedlist>
|
||||
|
||||
<xi:include xmlns:xi="http://www.w3.org/2003/XInclude" href="../chapter06/diffutils.xml" xpointer="xpointer(/sect1/sect2[1]/segmentedlist[2])"/>
|
||||
|
||||
</sect2>
|
||||
|
||||
<sect2 role="installation">
|
||||
@ -28,10 +35,18 @@
|
||||
|
||||
<screen><userinput>make</userinput></screen>
|
||||
|
||||
<para>And install it:</para>
|
||||
<para>This package does not come with a test suite.</para>
|
||||
|
||||
<para>Install the package:</para>
|
||||
|
||||
<screen><userinput>make install</userinput></screen>
|
||||
|
||||
</sect2>
|
||||
|
||||
<sect2 role="content"><title/>
|
||||
<para>Details on this package are located in <xref
|
||||
linkend="contents-diffutils" role="."/></para>
|
||||
</sect2>
|
||||
|
||||
</sect1>
|
||||
|
||||
|
@ -3,13 +3,15 @@
|
||||
<!ENTITY % general-entities SYSTEM "../general.ent">
|
||||
%general-entities;
|
||||
]>
|
||||
<sect1 id="ch-tools-expect" xreflabel="Expect" role="wrap">
|
||||
<sect1 id="ch-tools-expect" role="wrap">
|
||||
<title>Expect-&expect-version;</title>
|
||||
<?dbhtml filename="expect.html"?>
|
||||
|
||||
<indexterm zone="ch-tools-expect"><primary sortas="a-Expect">Expect</primary></indexterm>
|
||||
|
||||
<sect2 role="package"><title/>
|
||||
<para>The Expect package contains a program for carrying out scripted dialogues
|
||||
with other interactive programs.</para>
|
||||
|
||||
<segmentedlist>
|
||||
<segtitle>&buildtime;</segtitle>
|
||||
@ -17,12 +19,18 @@
|
||||
<seglistitem><seg>0.1 SBU</seg><seg>3.9 MB</seg></seglistitem>
|
||||
</segmentedlist>
|
||||
|
||||
<segmentedlist>
|
||||
<segtitle>Expect installation depends on</segtitle>
|
||||
<seglistitem><seg>Bash, Binutils, Coreutils, Diffutils,
|
||||
GCC, Glibc, Grep, Make, Sed, and Tcl</seg></seglistitem>
|
||||
</segmentedlist>
|
||||
</sect2>
|
||||
|
||||
<sect2 role="installation">
|
||||
<title>Installation of Expect</title>
|
||||
|
||||
<para>Apply a patch:</para>
|
||||
<para>First, fix a bug that can result in false failures during the GCC test
|
||||
suite run:</para>
|
||||
|
||||
<screen><userinput>patch -Np1 -i ../expect-&expect-version;-spawn-1.patch</userinput></screen>
|
||||
|
||||
@ -30,26 +38,84 @@
|
||||
|
||||
<screen><userinput>./configure --prefix=/tools --with-tcl=/tools/lib --with-x=no</userinput></screen>
|
||||
|
||||
<para>The meaning of the configure options:</para>
|
||||
|
||||
<variablelist>
|
||||
<varlistentry>
|
||||
<term><parameter>--with-tcl=/tools/lib</parameter></term>
|
||||
<listitem><para>This ensures that the configure script finds the Tcl installation in
|
||||
the temporary tools location instead of possibly locating an existing
|
||||
one on the host system.</para></listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term><parameter>--with-x=no</parameter></term>
|
||||
<listitem><para>This tells the configure script not to search for Tk
|
||||
(the Tcl GUI component) or the X Window System libraries, both of
|
||||
which may reside on the host system.</para></listitem>
|
||||
</varlistentry>
|
||||
</variablelist>
|
||||
|
||||
<para>Build the package:</para>
|
||||
|
||||
<screen><userinput>make</userinput></screen>
|
||||
|
||||
<para>To test the results, issue:
|
||||
<userinput>make test</userinput></para>
|
||||
<para>To test the results, issue: <userinput>make test</userinput>.
|
||||
Note that the Expect test suite is known to experience failures under
|
||||
certain host conditions that are not within our control. Therefore,
|
||||
test suite failures here are not surprising and are not considered
|
||||
critical.</para>
|
||||
|
||||
<para>And install it:</para>
|
||||
<para>Install the package:</para>
|
||||
|
||||
<screen><userinput>make SCRIPTS="" install</userinput></screen>
|
||||
|
||||
<para>You can now remove the source directories of both Tcl and Expect.</para>
|
||||
<para>The meaning of the make parameter:</para>
|
||||
|
||||
<variablelist>
|
||||
<varlistentry>
|
||||
<term><parameter>SCRIPTS=""</parameter></term>
|
||||
<listitem><para>This prevents installation of the supplementary expect
|
||||
scripts, which are not needed.</para></listitem>
|
||||
</varlistentry>
|
||||
</variablelist>
|
||||
|
||||
<para>The source directories of both Tcl and Expect can now be removed.</para>
|
||||
|
||||
</sect2>
|
||||
|
||||
<sect2 id="contents-expect" role="content"><title>Contents of Expect</title>
|
||||
|
||||
<para>See testing</para>
|
||||
<segmentedlist>
|
||||
<segtitle>Installed program</segtitle>
|
||||
<segtitle>Installed library</segtitle>
|
||||
<seglistitem><seg>expect</seg><seg>libexpect-5.42.a</seg></seglistitem>
|
||||
</segmentedlist>
|
||||
|
||||
<variablelist><bridgehead renderas="sect3">Short Descriptions</bridgehead>
|
||||
<?dbfo list-presentation="list"?>
|
||||
|
||||
<varlistentry id="expect">
|
||||
<term><command>expect</command></term>
|
||||
<listitem>
|
||||
<para>Communicates with other interactive
|
||||
programs according to a script</para>
|
||||
<indexterm zone="ch-tools-expect expect"><primary sortas="b-expect">expect</primary></indexterm>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry id="libexpect">
|
||||
<term><filename class="libraryfile">libexpect-5.42.a</filename></term>
|
||||
<listitem>
|
||||
<para>Contains functions that allow Expect to be used as a Tcl extension or to
|
||||
be used directly from C or C++ (without Tcl)</para>
|
||||
<indexterm zone="ch-tools-expect libexpect"><primary
|
||||
sortas="c-libexpect-5.42">libexpect-5.42</primary></indexterm>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
</variablelist>
|
||||
|
||||
</sect2>
|
||||
|
||||
|
||||
</sect1>
|
||||
|
||||
|
@ -7,7 +7,12 @@
|
||||
<title>Findutils-&findutils-version;</title>
|
||||
<?dbhtml filename="findutils.html"?>
|
||||
|
||||
<indexterm zone="ch-tools-findutils">
|
||||
<primary sortas="a-Findutils">Findutils</primary>
|
||||
<secondary>tools</secondary></indexterm>
|
||||
|
||||
<sect2 role="package"><title/>
|
||||
<xi:include xmlns:xi="http://www.w3.org/2003/XInclude" href="../chapter06/findutils.xml" xpointer="xpointer(/sect1/sect2[1]/para[1])"/>
|
||||
|
||||
<segmentedlist>
|
||||
<segtitle>&buildtime;</segtitle>
|
||||
@ -15,6 +20,8 @@
|
||||
<seglistitem><seg>0.2 SBU</seg><seg>7.6 MB</seg></seglistitem>
|
||||
</segmentedlist>
|
||||
|
||||
<xi:include xmlns:xi="http://www.w3.org/2003/XInclude" href="../chapter06/findutils.xml" xpointer="xpointer(/sect1/sect2[1]/segmentedlist[2])"/>
|
||||
|
||||
</sect2>
|
||||
|
||||
<sect2 role="installation">
|
||||
@ -28,13 +35,19 @@
|
||||
|
||||
<screen><userinput>make</userinput></screen>
|
||||
|
||||
<para>To test the results, issue:
|
||||
<userinput>make check</userinput></para>
|
||||
<para>To test the results, issue: <userinput>make
|
||||
check</userinput>.</para>
|
||||
|
||||
<para>And install the package:</para>
|
||||
<para>Install the package:</para>
|
||||
|
||||
<screen><userinput>make install</userinput></screen>
|
||||
|
||||
</sect2>
|
||||
|
||||
<sect2 role="content"><title/>
|
||||
<para>Details on this package are located in <xref
|
||||
linkend="contents-findutils" role="."/></para>
|
||||
</sect2>
|
||||
|
||||
</sect1>
|
||||
|
||||
|
@ -3,11 +3,16 @@
|
||||
<!ENTITY % general-entities SYSTEM "../general.ent">
|
||||
%general-entities;
|
||||
]>
|
||||
<sect1 id="ch-tools-flex" xreflabel="Flex" role="wrap">
|
||||
<sect1 id="ch-tools-flex" role="wrap">
|
||||
<title>Flex-&flex-version;</title>
|
||||
<?dbhtml filename="flex.html"?>
|
||||
|
||||
<indexterm zone="ch-tools-flex">
|
||||
<primary sortas="a-Flex">Flex</primary>
|
||||
<secondary>tools</secondary></indexterm>
|
||||
|
||||
<sect2 role="package"><title/>
|
||||
<xi:include xmlns:xi="http://www.w3.org/2003/XInclude" href="../chapter06/flex.xml" xpointer="xpointer(/sect1/sect2[1]/para[1])"/>
|
||||
|
||||
<segmentedlist>
|
||||
<segtitle>&buildtime;</segtitle>
|
||||
@ -15,16 +20,22 @@
|
||||
<seglistitem><seg>0.6 SBU</seg><seg>10.6 MB</seg></seglistitem>
|
||||
</segmentedlist>
|
||||
|
||||
<xi:include xmlns:xi="http://www.w3.org/2003/XInclude" href="../chapter06/flex.xml" xpointer="xpointer(/sect1/sect2[1]/segmentedlist[2])"/>
|
||||
|
||||
</sect2>
|
||||
|
||||
<sect2 role="installation">
|
||||
<title>Installation of Flex</title>
|
||||
|
||||
<para>Apply a patch:</para>
|
||||
<para>Flex contains several known bugs. These can be fixed with the
|
||||
following patch:</para>
|
||||
|
||||
<screen><userinput>patch -Np1 -i ../flex-&flex-version;-debian_fixes-2.patch</userinput></screen>
|
||||
|
||||
<para>Touch the man-page:</para>
|
||||
<para>The GNU autotools will detect that the Flex source code has been
|
||||
modified by the previous patch and tries to update the manual page
|
||||
accordingly. This does not work on many systems, and the default page is
|
||||
fine, so make sure it does not get regenerated:</para>
|
||||
|
||||
<screen><userinput>touch doc/flex.1</userinput></screen>
|
||||
|
||||
@ -39,10 +50,16 @@
|
||||
<para>To test the results, issue:
|
||||
<userinput>make check</userinput>.</para>
|
||||
|
||||
<para>Now install the package:</para>
|
||||
<para>Install the package:</para>
|
||||
|
||||
<screen><userinput>make install</userinput></screen>
|
||||
|
||||
</sect2>
|
||||
|
||||
<sect2 role="content"><title/>
|
||||
<para>Details on this package are located in <xref
|
||||
linkend="contents-flex" role="."/></para>
|
||||
</sect2>
|
||||
|
||||
</sect1>
|
||||
|
||||
|
@ -7,7 +7,12 @@
|
||||
<title>Gawk-&gawk-version;</title>
|
||||
<?dbhtml filename="gawk.html"?>
|
||||
|
||||
<indexterm zone="ch-tools-gawk">
|
||||
<primary sortas="a-Gawk">Gawk</primary>
|
||||
<secondary>tools</secondary></indexterm>
|
||||
|
||||
<sect2 role="package"><title/>
|
||||
<xi:include xmlns:xi="http://www.w3.org/2003/XInclude" href="../chapter06/gawk.xml" xpointer="xpointer(/sect1/sect2[1]/para[1])"/>
|
||||
|
||||
<segmentedlist>
|
||||
<segtitle>&buildtime;</segtitle>
|
||||
@ -15,6 +20,8 @@
|
||||
<seglistitem><seg>0.2 SBU</seg><seg>17 MB</seg></seglistitem>
|
||||
</segmentedlist>
|
||||
|
||||
<xi:include xmlns:xi="http://www.w3.org/2003/XInclude" href="../chapter06/gawk.xml" xpointer="xpointer(/sect1/sect2[1]/segmentedlist[2])"/>
|
||||
|
||||
</sect2>
|
||||
|
||||
<sect2 role="installation">
|
||||
@ -28,13 +35,19 @@
|
||||
|
||||
<screen><userinput>make</userinput></screen>
|
||||
|
||||
<para>To test the results, issue:
|
||||
<userinput>make check</userinput></para>
|
||||
<para>To test the results (not necessary), issue: <userinput>make
|
||||
check</userinput>.</para>
|
||||
|
||||
<para>And install it:</para>
|
||||
<para>Install the package:</para>
|
||||
|
||||
<screen><userinput>make install</userinput></screen>
|
||||
|
||||
</sect2>
|
||||
|
||||
<sect2 role="content"><title/>
|
||||
<para>Details on this package are located in <xref
|
||||
linkend="contents-gawk" role="."/></para>
|
||||
</sect2>
|
||||
|
||||
</sect1>
|
||||
|
||||
|
@ -7,7 +7,12 @@
|
||||
<title>GCC-&gcc-version; - Pass 1</title>
|
||||
<?dbhtml filename="gcc-pass1.html"?>
|
||||
|
||||
<indexterm zone="ch-tools-gcc-pass1">
|
||||
<primary sortas="a-GCC">GCC</primary>
|
||||
<secondary>tools, pass 1</secondary></indexterm>
|
||||
|
||||
<sect2 role="package"><title/>
|
||||
<xi:include xmlns:xi="http://www.w3.org/2003/XInclude" href="../chapter06/gcc.xml" xpointer="xpointer(/sect1/sect2[1]/para[1])"/>
|
||||
|
||||
<segmentedlist>
|
||||
<segtitle>&buildtime;</segtitle>
|
||||
@ -15,36 +20,117 @@
|
||||
<seglistitem><seg>4.4 SBU</seg><seg>300 MB</seg></seglistitem>
|
||||
</segmentedlist>
|
||||
|
||||
<xi:include xmlns:xi="http://www.w3.org/2003/XInclude" href="../chapter06/gcc.xml" xpointer="xpointer(/sect1/sect2[1]/segmentedlist[2])"/>
|
||||
|
||||
</sect2>
|
||||
|
||||
<sect2 role="installation">
|
||||
<title>Installation of GCC</title>
|
||||
|
||||
<para>Create a build dir:</para>
|
||||
<para>Unpack only the gcc-core tarball because neither the C++
|
||||
compiler nor the test suite will be needed here.</para>
|
||||
|
||||
<para>This package is known to have issues when its default
|
||||
optimization flags (including the <parameter>-march</parameter> and
|
||||
<parameter>-mcpu</parameter> options) are changed. If any environment
|
||||
variables that override default optimizations have been defined, such
|
||||
as <envar>CFLAGS</envar> and <envar>CXXFLAGS</envar>,
|
||||
unset them when building GCC.</para>
|
||||
|
||||
<para>The GCC documentation recommends building GCC outside of the
|
||||
source directory in a dedicated build directory:</para>
|
||||
|
||||
<screen><userinput>mkdir ../gcc-build
|
||||
cd ../gcc-build</userinput></screen>
|
||||
|
||||
<para>Prepare GCC for compilation:</para>
|
||||
|
||||
<!--NEW-->
|
||||
<screen><userinput>CC="gcc -B/usr/bin" ../gcc-&gcc-version;/configure \
|
||||
--prefix=/tools --libexecdir=/tools/lib \
|
||||
--with-local-prefix=/tools --disable-nls \
|
||||
--enable-shared --enable-languages=c</userinput></screen>
|
||||
<screen><userinput>../gcc-&gcc-version;/configure --prefix=/tools \
|
||||
--libexecdir=/tools/lib --with-local-prefix=/tools \
|
||||
--disable-nls --enable-shared --enable-languages=c</userinput></screen>
|
||||
|
||||
<para>The meaning of the configure options:</para>
|
||||
|
||||
<variablelist>
|
||||
<varlistentry>
|
||||
<term><parameter>--with-local-prefix=/tools</parameter></term>
|
||||
<listitem><para>The purpose of this switch is to remove <filename class="directory">/usr/local/include</filename>
|
||||
from <command>gcc</command>'s include search path. This is not absolutely
|
||||
essential, however, it helps to minimize the influence of the host
|
||||
system.</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term><parameter>--enable-shared</parameter></term>
|
||||
<listitem><para>This switch may seem counter-intuitive at first.
|
||||
However, this switch allows the building of
|
||||
<filename class="libraryfile">libgcc_s.so.1</filename> and
|
||||
<filename class="libraryfile">libgcc_eh.a</filename>, and having
|
||||
<filename class="libraryfile">libgcc_eh.a</filename> available ensures that the configure
|
||||
script for Glibc (the next package we compile) produces the proper
|
||||
results. Note that the GCC binaries will still be linked statically
|
||||
because this is controlled by the <parameter>-static</parameter> value of
|
||||
the <envar>BOOT_LDFLAGS</envar> variable in the next
|
||||
step.</para></listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term><parameter>--enable-languages=c</parameter></term>
|
||||
<listitem><para>This option ensures that only the C compiler is built.
|
||||
This option is only needed when you have downloaded and unpacked the
|
||||
full GCC tarball, as opposed to just the gcc-core
|
||||
tarball.</para></listitem>
|
||||
</varlistentry>
|
||||
</variablelist>
|
||||
|
||||
<para>Continue with compiling the package:</para>
|
||||
|
||||
<screen><userinput>make BOOT_LDFLAGS="-static" bootstrap</userinput></screen>
|
||||
|
||||
<para>Now install the package:</para>
|
||||
<para>The meaning of the make parameters:</para>
|
||||
|
||||
<variablelist>
|
||||
<varlistentry>
|
||||
<term><parameter>BOOT_LDFLAGS="-static"</parameter></term>
|
||||
<listitem><para>This tells GCC to link its programs statically.</para></listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term><parameter>bootstrap</parameter></term>
|
||||
<listitem><para>This target does not just compile GCC, but compiles it
|
||||
several times. It uses the programs compiled in a first round to
|
||||
compile itself a second time, and then again a third time. It then
|
||||
compares these second and third compiles to make sure it can reproduce
|
||||
itself flawlessly. This also implies that it was compiled
|
||||
correctly.</para></listitem>
|
||||
</varlistentry>
|
||||
</variablelist>
|
||||
|
||||
<para>Compilation is now complete. At this point, the test suite would
|
||||
normally be run, but, as mentioned before, the test suite framework is
|
||||
not in place yet. The benefits of running the tests at this point
|
||||
are minimal since the programs from this first pass will soon be
|
||||
replaced.</para>
|
||||
|
||||
<para>Install the package:</para>
|
||||
|
||||
<screen><userinput>make install</userinput></screen>
|
||||
|
||||
<para>Create a symlink:</para>
|
||||
<para>As a finishing touch, create a symlink. Many programs and
|
||||
scripts run <command>cc</command> instead of <command>gcc</command>, which is used to keep programs generic
|
||||
and therefore usable on all kinds of UNIX systems where the GNU C compiler
|
||||
is not always installed. Running <command>cc</command> leaves the system administrator
|
||||
free to decide which C compiler to install.</para>
|
||||
|
||||
<screen><userinput>ln -s gcc /tools/bin/cc</userinput></screen>
|
||||
|
||||
</sect2>
|
||||
|
||||
<sect2 role="content"><title/>
|
||||
<para>Details on this package are located in <xref
|
||||
linkend="contents-gcc" role="."/></para>
|
||||
</sect2>
|
||||
|
||||
</sect1>
|
||||
|
||||
|
@ -7,6 +7,10 @@
|
||||
<title>GCC-&gcc-version; - Pass 2</title>
|
||||
<?dbhtml filename="gcc-pass2.html"?>
|
||||
|
||||
<indexterm zone="ch-tools-gcc-pass2">
|
||||
<primary sortas="a-GCC">GCC</primary>
|
||||
<secondary>tools, pass 2</secondary></indexterm>
|
||||
|
||||
<sect2 role="package"><title/>
|
||||
|
||||
<segmentedlist>
|
||||
@ -15,25 +19,88 @@
|
||||
<seglistitem><seg>11.0 SBU</seg><seg>274 MB</seg></seglistitem>
|
||||
</segmentedlist>
|
||||
|
||||
<xi:include xmlns:xi="http://www.w3.org/2003/XInclude" href="../chapter06/gcc.xml" xpointer="xpointer(/sect1/sect2[1]/segmentedlist[2])"/>
|
||||
|
||||
</sect2>
|
||||
|
||||
<sect2 role="installation">
|
||||
<title>Re-installation of GCC</title>
|
||||
|
||||
<para>Check if there is PTYs for the test suites:</para>
|
||||
<para>This package is known to have issues when its default
|
||||
optimization flags (including the <parameter>-march</parameter> and
|
||||
<parameter>-mcpu</parameter> options) are changed. If any environment
|
||||
variables that override default optimizations have been defined, such
|
||||
as <envar>CFLAGS</envar> and <envar>CXXFLAGS</envar>,
|
||||
unset them when building GCC.</para>
|
||||
|
||||
<para>The tools required to test GCC and Binutils—Tcl, Expect
|
||||
and DejaGNU—are installed now. GCC and Binutils can now be
|
||||
rebuilt, linking them against the new Glibc and testing them properly
|
||||
(if running the test suites in this chapter). Please note that these
|
||||
test suites are highly dependent on properly functioning PTYs which
|
||||
are provided by the host. PTYs are most commonly implemented via the
|
||||
<systemitem class="filesystem">devpts</systemitem> file system. Check
|
||||
to see if the host system is set up correctly in this regard by
|
||||
performing a quick test:</para>
|
||||
|
||||
<screen><userinput>expect -c "spawn ls"</userinput></screen>
|
||||
|
||||
<para>Apply two patches:</para>
|
||||
<para>The response might be:</para>
|
||||
|
||||
<screen><computeroutput>The system has no more ptys.
|
||||
Ask your system administrator to create more.</computeroutput></screen>
|
||||
|
||||
<para>If the above message is received, the host does not have its
|
||||
PTYs set up properly. In this case, there is no point in running the
|
||||
test suites for GCC and Binutils until this issue is resolved. Please
|
||||
consult the LFS Wiki at <ulink url="&wiki-root;"/> for more
|
||||
information on how to get PTYs working.</para>
|
||||
|
||||
<para>Because the C and the C++ compilers will be built, unpack both
|
||||
the core and the g++ tarballs (as well as test suite, if you want to
|
||||
run the tests). By unpacking them in the working directory, they will
|
||||
all unfold into a single <filename
|
||||
class="directory">gcc-&gcc-version;/</filename> subdirectory.</para>
|
||||
|
||||
<para>First correct a known problem and make an essential adjustment:</para>
|
||||
|
||||
<screen><userinput>patch -Np1 -i ../gcc-&gcc-version;-no_fixincludes-1.patch
|
||||
patch -Np1 -i ../gcc-&gcc-version;-specs-2.patch</userinput></screen>
|
||||
|
||||
<para>The first patch disables the GCC <command>fixincludes</command>
|
||||
script. This was briefly mentioned earlier, but a more in-depth
|
||||
explanation of the fixincludes process is warranted here. Under normal
|
||||
circumstances, the GCC <command>fixincludes</command> script scans the
|
||||
system for header files that need to be fixed. It might find that some
|
||||
Glibc header files on the host system need to be fixed, and will fix
|
||||
them and put them in the GCC private include directory. In <xref
|
||||
linkend="chapter-building-system"/>, after the newer Glibc has been
|
||||
installed, this private include directory will be searched before the
|
||||
system include directory. This may result in GCC finding the fixed
|
||||
headers from the host system, which most likely will not match the
|
||||
Glibc version used for the LFS system.</para>
|
||||
|
||||
<para>The second patch changes GCC's default location of the dynamic
|
||||
linker (typically <filename class="libraryfile">ld-linux.so.2</filename>). It also removes
|
||||
<filename class="directory">/usr/include</filename> from GCC's include
|
||||
search path. Patching now rather than adjusting the specs file after
|
||||
installation ensures that the new dynamic linker is used during the
|
||||
actual build of GCC. That is, all of the final (and temporary)
|
||||
binaries created during the build will link against the new
|
||||
Glibc.</para>
|
||||
|
||||
<important><para>The above patches are critical in ensuring a
|
||||
successful overall build. Do not forget to apply
|
||||
them.</para></important>
|
||||
|
||||
<para>Create a separate build directory again:</para>
|
||||
|
||||
<screen><userinput>mkdir ../gcc-build
|
||||
cd ../gcc-build</userinput></screen>
|
||||
|
||||
<para>Before starting to build GCC, remember to unset any environment
|
||||
variables that override the default optimization flags.</para>
|
||||
|
||||
<para>Now prepare GCC for compilation:</para>
|
||||
|
||||
<screen><userinput>../gcc-&gcc-version;/configure --prefix=/tools \
|
||||
@ -42,36 +109,105 @@ cd ../gcc-build</userinput></screen>
|
||||
--enable-threads=posix --enable-__cxa_atexit \
|
||||
--enable-languages=c,c++ --disable-libstdcxx-pch</userinput></screen>
|
||||
|
||||
<para>The meaning of the new configure options:</para>
|
||||
|
||||
<variablelist>
|
||||
<varlistentry>
|
||||
<term><parameter>--enable-clocale=gnu</parameter></term>
|
||||
<listitem><para>This option ensures the correct locale model is
|
||||
selected for the C++ libraries under all circumstances. If the
|
||||
configure script finds the <emphasis>de_DE</emphasis> locale installed, it will select the
|
||||
correct gnu locale model. However, if the <emphasis>de_DE</emphasis> locale is not
|
||||
installed, there is the risk of building Application Binary Interface
|
||||
(ABI)-incompatible C++ libraries because the incorrect generic locale
|
||||
model may be selected.</para></listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term><parameter>--enable-threads=posix</parameter></term>
|
||||
<listitem><para>This enables C++ exception handling for multi-threaded
|
||||
code.</para></listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term><parameter>--enable-__cxa_atexit</parameter></term>
|
||||
<listitem><para>This option allows use of
|
||||
<emphasis>__cxa_atexit</emphasis>, rather than
|
||||
<emphasis>atexit</emphasis>, to register C++ destructors for local
|
||||
statics and global objects. This option is essential for fully
|
||||
standards-compliant handling of destructors. It also effects the C++
|
||||
ABI, and therefore results in C++ shared libraries and C++ programs
|
||||
that are interoperable with other Linux
|
||||
distributions.</para></listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term><parameter>--enable-languages=c,c++</parameter></term>
|
||||
<listitem><para>This option
|
||||
ensures that both the C and C++ compilers are built.</para></listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term><parameter>--disable-libstdcxx-pch</parameter></term>
|
||||
<listitem><para>Do not build the pre-compiled header (PCH) for
|
||||
<filename class="libraryfile">libstdc++</filename>. It takes up a lot of space,
|
||||
and we have no use for it.</para></listitem>
|
||||
</varlistentry>
|
||||
</variablelist>
|
||||
|
||||
<para>Compile the package:</para>
|
||||
|
||||
<screen><userinput>make</userinput></screen>
|
||||
|
||||
<para>Test the results</para>
|
||||
<para>There is no need to use the <parameter>bootstrap</parameter>
|
||||
target now because the compiler being used to compile this GCC was
|
||||
built from the exact same version of the GCC sources used
|
||||
earlier.</para>
|
||||
|
||||
<para>Compilation is now complete. As previously mentioned, running
|
||||
the test suites for the temporary tools compiled in this chapter is
|
||||
not mandatory. To run the GCC test suite anyway, use the following
|
||||
command:</para>
|
||||
|
||||
<screen><userinput>make -k check</userinput></screen>
|
||||
|
||||
<para>To get a summary of the test suite results, run this:</para>
|
||||
<para>The <parameter>-k</parameter> flag is used to make the test suite run
|
||||
through to completion and not stop at the first failure. The GCC test
|
||||
suite is very comprehensive and is almost guaranteed to generate a few
|
||||
failures. To receive a summary of the test suite results, run:</para>
|
||||
|
||||
<screen><userinput>../gcc-&gcc-version;/contrib/test_summary</userinput></screen>
|
||||
|
||||
<para>For only the summaries, pipe the output through
|
||||
<userinput>grep -A7 Summ</userinput></para>
|
||||
<userinput>grep -A7 Summ</userinput>.</para>
|
||||
|
||||
<para>Results can be compared to those posted to the gcc-testresults
|
||||
mailing list to see similar configurations to the one being built. For an example of how
|
||||
current GCC-&gcc-version; should look on i686-pc-linux-gnu, see
|
||||
<ulink url="http://gcc.gnu.org/ml/gcc-testresults/2004-11/msg00569.html"/>.</para>
|
||||
mailing list to see similar configurations to the one being built. For
|
||||
an example of how current GCC-&gcc-version; should look on
|
||||
i686-pc-linux-gnu, see <ulink
|
||||
url="http://gcc.gnu.org/ml/gcc-testresults/2004-07/msg00179.html"/>.</para>
|
||||
|
||||
<para>And finally install the package:</para>
|
||||
<para>A few unexpected failures cannot always be avoided. The
|
||||
GCC developers are usually aware of these issues, but have not
|
||||
resolved them yet. Unless the test results are vastly different from
|
||||
those at the above URL, it is safe to continue.</para>
|
||||
|
||||
<para>Install the package:</para>
|
||||
|
||||
<screen><userinput>make install</userinput></screen>
|
||||
|
||||
<note><para>At this point it is strongly recommended to repeat the sanity check
|
||||
we performed earlier in this chapter. Refer back to
|
||||
<xref linkend="ch-tools-adjusting"/> and repeat the little test compilation. If
|
||||
the result is wrong, then most likely you forgot to apply the above mentioned
|
||||
GCC Specs patch.</para></note>
|
||||
<note><para>At this point it is strongly recommended to repeat the
|
||||
sanity check we performed earlier in this chapter. Refer back to <xref
|
||||
linkend="ch-tools-adjusting" role=","/> and repeat the test compilation. If
|
||||
the result is wrong, the most likely reason is that the GCC Specs
|
||||
patch was not properly applied.</para></note>
|
||||
|
||||
</sect2>
|
||||
|
||||
<sect2 role="content"><title/>
|
||||
<para>Details on this package are located in <xref
|
||||
linkend="contents-gcc" role="."/></para>
|
||||
</sect2>
|
||||
|
||||
</sect1>
|
||||
|
||||
|
@ -7,7 +7,12 @@
|
||||
<title>Gettext-&gettext-version;</title>
|
||||
<?dbhtml filename="gettext.html"?>
|
||||
|
||||
<indexterm zone="ch-tools-gettext">
|
||||
<primary sortas="a-Gettext">Gettext</primary>
|
||||
<secondary>tools</secondary></indexterm>
|
||||
|
||||
<sect2 role="package"><title/>
|
||||
<xi:include xmlns:xi="http://www.w3.org/2003/XInclude" href="../chapter06/gettext.xml" xpointer="xpointer(/sect1/sect2[1]/para[1])"/>
|
||||
|
||||
<segmentedlist>
|
||||
<segtitle>&buildtime;</segtitle>
|
||||
@ -15,6 +20,8 @@
|
||||
<seglistitem><seg>0.5 SBU</seg><seg>55 MB</seg></seglistitem>
|
||||
</segmentedlist>
|
||||
|
||||
<xi:include xmlns:xi="http://www.w3.org/2003/XInclude" href="../chapter06/gettext.xml" xpointer="xpointer(/sect1/sect2[1]/segmentedlist[2])"/>
|
||||
|
||||
</sect2>
|
||||
|
||||
<sect2 role="installation">
|
||||
@ -25,17 +32,46 @@
|
||||
<screen><userinput>./configure --prefix=/tools --disable-libasprintf \
|
||||
--disable-csharp</userinput></screen>
|
||||
|
||||
<para>The meaning of the configure options:</para>
|
||||
|
||||
<variablelist>
|
||||
<varlistentry>
|
||||
<term><parameter>--disable-libasprintf</parameter></term>
|
||||
<listitem><para>This flag tells Gettext not to build the
|
||||
<filename class="libraryfile">asprintf</filename> library. Because nothing in this
|
||||
chapter or the next requires this library and Gettext gets rebuilt later,
|
||||
exclude it to save time and space.</para></listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term><parameter>--disable-csharp</parameter></term>
|
||||
<listitem><para>This tells Gettext not to use a C# compiler, even if a
|
||||
C# compiler is installed on the host. This needs to be done because
|
||||
once we enter the chroot environment, C# will no longer be
|
||||
available.</para></listitem>
|
||||
</varlistentry>
|
||||
</variablelist>
|
||||
|
||||
<para>Compile the package:</para>
|
||||
|
||||
<screen><userinput>make</userinput></screen>
|
||||
|
||||
<para>To test the results, issue:
|
||||
<userinput>make check</userinput></para>
|
||||
<para>To test the results, issue: <userinput>make check</userinput>.
|
||||
This takes quite some time, around 7 SBUs. The Gettext test suite is
|
||||
known to experience failures under certain host conditions, for
|
||||
example when it finds a Java compiler on the host. An experimental
|
||||
patch to disable Java is available from the LFS Patches project at
|
||||
<ulink url="&lfs-root;patches/"/>.</para>
|
||||
|
||||
<para>And install the package:</para>
|
||||
<para>Install the package:</para>
|
||||
|
||||
<screen><userinput>make install</userinput></screen>
|
||||
|
||||
</sect2>
|
||||
|
||||
<sect2 role="content"><title/>
|
||||
<para>Details on this package are located in <xref linkend="contents-gettext" role="."/></para>
|
||||
</sect2>
|
||||
|
||||
</sect1>
|
||||
|
||||
|
@ -7,7 +7,12 @@
|
||||
<title>Glibc-&glibc-version;</title>
|
||||
<?dbhtml filename="glibc.html"?>
|
||||
|
||||
<indexterm zone="ch-tools-glibc">
|
||||
<primary sortas="a-Glibc">Glibc</primary>
|
||||
<secondary>tools</secondary></indexterm>
|
||||
|
||||
<sect2 role="package"><title/>
|
||||
<xi:include xmlns:xi="http://www.w3.org/2003/XInclude" href="../chapter06/glibc.xml" xpointer="xpointer(/sect1/sect2[1]/para[1])"/>
|
||||
|
||||
<segmentedlist>
|
||||
<segtitle>&buildtime;</segtitle>
|
||||
@ -15,12 +20,26 @@
|
||||
<seglistitem><seg>11.8 SBU</seg><seg>800 MB</seg></seglistitem>
|
||||
</segmentedlist>
|
||||
|
||||
<xi:include xmlns:xi="http://www.w3.org/2003/XInclude" href="../chapter06/glibc.xml" xpointer="xpointer(/sect1/sect2[1]/segmentedlist[2])"/>
|
||||
|
||||
</sect2>
|
||||
|
||||
<sect2 role="installation">
|
||||
<title>Installation of Glibc</title>
|
||||
|
||||
<para>Create a build dir:</para>
|
||||
<para>This package is known to have issues when its default
|
||||
optimization flags (including the <parameter>-march</parameter> and
|
||||
<parameter>-mcpu</parameter> options) are changed. If any environment
|
||||
variables that override default optimizations have been defined, such
|
||||
as <envar>CFLAGS</envar> and <envar>CXXFLAGS</envar>,
|
||||
unset them when building Glibc.</para>
|
||||
|
||||
<para>It should be noted that compiling Glibc in any way other than
|
||||
the method suggested in this book puts the stability of the system at
|
||||
risk.</para>
|
||||
|
||||
<para>The Glibc documentation recommends building Glibc outside of the source
|
||||
directory in a dedicated build directory:</para>
|
||||
|
||||
<screen><userinput>mkdir ../glibc-build
|
||||
cd ../glibc-build</userinput></screen>
|
||||
@ -33,32 +52,153 @@ cd ../glibc-build</userinput></screen>
|
||||
--without-gd --without-cvs --with-headers=/tools/include \
|
||||
--disable-selinux</userinput></screen>
|
||||
|
||||
<para>The meaning of the configure options:</para>
|
||||
|
||||
<variablelist>
|
||||
<varlistentry>
|
||||
<term><parameter>--disable-profile</parameter></term>
|
||||
<listitem><para>This builds the libraries without profiling
|
||||
information. Omit this option if profiling on the temporary tools is
|
||||
necessary.</para></listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term><parameter>--enable-add-ons</parameter></term>
|
||||
<listitem><para>This tells Glibc to use the NPTL add-on as its threading
|
||||
library.</para></listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term><parameter>--enable-kernel=2.6.0</parameter></term>
|
||||
<listitem><para>This tells Glibc to compile the library with support
|
||||
for 2.6.x Linux kernels.</para></listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term><parameter>--with-binutils=/tools/bin</parameter></term>
|
||||
<listitem><para>While not required, this switch ensures that there are
|
||||
no errors pertaining to which Binutils programs get used during the
|
||||
Glibc build.</para></listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term><parameter>--without-gd</parameter></term>
|
||||
<listitem><para>This prevents the build of the
|
||||
<command>memusagestat</command> program, which insists on linking
|
||||
against the host's libraries (libgd, libpng, libz,
|
||||
etc.).</para></listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term><parameter>--without-cvs</parameter></term>
|
||||
<listitem><para>This prevents the Makefile files from
|
||||
attempting automatic CVS checkouts when using a CVS snapshot. While
|
||||
this command is not required, it is recommended because it suppresses
|
||||
an annoying, but harmless, warning about a missing autoconf
|
||||
program.</para></listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term><parameter>--with-headers=/tools/include</parameter></term>
|
||||
<listitem><para>This tells Glibc to compile itself against the headers recently
|
||||
installed to the tools directory, so that it knows exactly what features the
|
||||
kernel has and can optimize itself accordingly.</para></listitem>
|
||||
</varlistentry>
|
||||
|
||||
<!-- Edit Me -->
|
||||
<varlistentry>
|
||||
<term><parameter>--disable-selinux</parameter></term>
|
||||
<listitem><para>When building from hosts using SELinux functionality
|
||||
(i.e. Fedora Core 3), glibc will try to integrate this functionality into
|
||||
itself, but will fail, because we do not have this functionality in the LFS
|
||||
tools enviornment. This option will disable this, allowing glibc to build
|
||||
correctly, but will not otherwise affect the build.</para></listitem>
|
||||
</varlistentry>
|
||||
<!-- -->
|
||||
</variablelist>
|
||||
|
||||
<para>During this stage the following warning might appear:</para>
|
||||
|
||||
<blockquote><screen><computeroutput>configure: WARNING:
|
||||
*** These auxiliary programs are missing or
|
||||
*** incompatible versions: msgfmt
|
||||
*** some features will be disabled.
|
||||
*** Check the INSTALL file for required versions.</computeroutput></screen></blockquote>
|
||||
|
||||
<para>The missing or incompatible <command>msgfmt</command> program is
|
||||
generally harmless, but it can sometimes cause issues when running the
|
||||
test suite. This <command>msgfmt</command> program is part of the
|
||||
Gettext package which the host distribution should provide. If
|
||||
<command>msgfmt</command> is present but deemed incompatible, upgrade
|
||||
the host system's Gettext package or continue without it and see if
|
||||
the test suite runs without problems regardless.</para>
|
||||
|
||||
<para>Compile the package:</para>
|
||||
|
||||
<screen><userinput>make</userinput></screen>
|
||||
|
||||
<para>Test the results:</para>
|
||||
<para>Compilation is now complete. As mentioned earlier, running the
|
||||
test suites for the temporary tools installed in this chapter is not
|
||||
mandatory. To run the Glibc test suite (if desired), the following
|
||||
command will do so:</para>
|
||||
|
||||
<screen><userinput>make check</userinput></screen>
|
||||
|
||||
<para>For a discussion of test failures that are of particular
|
||||
importance, please see <xref linkend="ch-system-glibc"/>.</para>
|
||||
importance, please see <xref linkend="ch-system-glibc" role="."/></para>
|
||||
|
||||
<para>In this chapter, some tests can be adversely effected by
|
||||
existing tools or environmental issues on the host system. Glibc test
|
||||
suite failures in this chapter are typically not worrisome. The Glibc
|
||||
installed in <xref linkend="chapter-building-system"/> is the one that
|
||||
will ultimately end up being used, so that is the one that needs to pass
|
||||
most tests (even in <xref linkend="chapter-building-system"/>, some
|
||||
failures could still occur, for example, with the math tests).</para>
|
||||
|
||||
<para>When experiencing a failure, make a note of it, then continue by
|
||||
reissuing the <command>make check</command> command. The test suite should pick up where it left
|
||||
off and continue. This stop-start sequence can be circumvented by
|
||||
issuing a <command>make -k check</command> command. If using this option, be sure to log the
|
||||
output so that the log file can be examined for failures later.</para>
|
||||
|
||||
<para>The install stage of Glibc will issue a harmless warning at the
|
||||
end about the absence of <filename>/tools/etc/ld.so.conf</filename>.
|
||||
Prevent this warning with:</para>
|
||||
|
||||
<screen><userinput>mkdir /tools/etc
|
||||
touch /tools/etc/ld.so.conf</userinput></screen>
|
||||
|
||||
<para>Now install the package:</para>
|
||||
<para>Install the package:</para>
|
||||
|
||||
<screen><userinput>make install</userinput></screen>
|
||||
|
||||
<para>To install the Glibc locales, use the following
|
||||
<para>Different countries and cultures have varying conventions for
|
||||
how to communicate. These conventions range from the format for
|
||||
representing dates and times to more complex issues, such as the
|
||||
language spoken. The <quote>internationalization</quote> of GNU
|
||||
programs works by locale.</para>
|
||||
|
||||
<note><para>If the test suites are not being run in this chapter (as
|
||||
per the recommendation), there is no need to install the locales now.
|
||||
The appropriate locales will be installed in the next
|
||||
chapter.</para></note>
|
||||
|
||||
<para>To install the Glibc locales anyway, use the following
|
||||
command:</para>
|
||||
|
||||
<screen><userinput>make localedata/install-locales</userinput></screen>
|
||||
|
||||
<para>An alternative to running the previous command is to install only those
|
||||
locales which you need or want. The following instructions, instead of the
|
||||
install-locales target above, will install the minimum set of locales necessary
|
||||
<para>To save time, an alternative to running the
|
||||
previous command (which generates and installs every locale Glibc is
|
||||
aware of) is to install only those locales that are wanted and needed.
|
||||
This can be achieved by using the <command>localedef</command>
|
||||
command. Information on this command is located in the
|
||||
<filename>INSTALL</filename> file in the Glibc source. However, there
|
||||
are a number of locales that are essential in order for the tests of
|
||||
future packages to pass, in particular, the
|
||||
<emphasis>libstdc++</emphasis> tests from GCC. The following
|
||||
instructions, instead of the <parameter>install-locales</parameter>
|
||||
target used above, will install the minimum set of locales necessary
|
||||
for the tests to run successfully:</para>
|
||||
|
||||
<screen><userinput>mkdir -p /tools/lib/locale
|
||||
@ -76,4 +216,10 @@ localedef -i ja_JP -f EUC-JP ja_JP</userinput></screen>
|
||||
|
||||
</sect2>
|
||||
|
||||
<sect2 role="content"><title/>
|
||||
<para>Details on this package are located in <xref
|
||||
linkend="contents-glibc" role="."/></para>
|
||||
</sect2>
|
||||
|
||||
</sect1>
|
||||
|
||||
|
@ -7,7 +7,12 @@
|
||||
<title>Grep-&grep-version;</title>
|
||||
<?dbhtml filename="grep.html"?>
|
||||
|
||||
<indexterm zone="ch-tools-grep">
|
||||
<primary sortas="a-Grep">Grep</primary>
|
||||
<secondary>tools</secondary></indexterm>
|
||||
|
||||
<sect2 role="package"><title/>
|
||||
<xi:include xmlns:xi="http://www.w3.org/2003/XInclude" href="../chapter06/grep.xml" xpointer="xpointer(/sect1/sect2[1]/para[1])"/>
|
||||
|
||||
<segmentedlist>
|
||||
<segtitle>&buildtime;</segtitle>
|
||||
@ -15,6 +20,8 @@
|
||||
<seglistitem><seg>0.1 SBU</seg><seg>5.8 MB</seg></seglistitem>
|
||||
</segmentedlist>
|
||||
|
||||
<xi:include xmlns:xi="http://www.w3.org/2003/XInclude" href="../chapter06/grep.xml" xpointer="xpointer(/sect1/sect2[1]/segmentedlist[2])"/>
|
||||
|
||||
</sect2>
|
||||
|
||||
<sect2 role="installation">
|
||||
@ -25,12 +32,32 @@
|
||||
<screen><userinput>./configure --prefix=/tools \
|
||||
--disable-perl-regexp --with-included-regex</userinput></screen>
|
||||
|
||||
<para>The meaning of the configure options:</para>
|
||||
|
||||
<variablelist>
|
||||
<varlistentry>
|
||||
<term><parameter>--disable-perl-regexp</parameter></term>
|
||||
<listitem><para>This makes sure that the <command>grep</command>
|
||||
program does not get linked against a Perl Compatible Regular
|
||||
Expression (PCRE) library that may be present on the host and would
|
||||
not be available once we enter the chroot
|
||||
environment.</para></listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term><parameter>--with-included-regex</parameter></term>
|
||||
<listitem><para>This ensures that Grep uses its internal regular
|
||||
expression code. Without this switch, Grep will use the code from
|
||||
Glibc, which is known to be buggy.</para></listitem>
|
||||
</varlistentry>
|
||||
</variablelist>
|
||||
|
||||
<para>Compile the package:</para>
|
||||
|
||||
<screen><userinput>make</userinput></screen>
|
||||
|
||||
<para>To test the results, issue:
|
||||
<userinput>make check</userinput></para>
|
||||
<para>To test the results, issue: <userinput>make
|
||||
check</userinput>.</para>
|
||||
|
||||
<para>Install the package:</para>
|
||||
|
||||
@ -38,4 +65,10 @@
|
||||
|
||||
</sect2>
|
||||
|
||||
<sect2 role="content"><title/>
|
||||
<para>Details on this package are located in <xref
|
||||
linkend="contents-grep" role="."/></para>
|
||||
</sect2>
|
||||
|
||||
</sect1>
|
||||
|
||||
|
@ -7,7 +7,12 @@
|
||||
<title>Gzip-&gzip-version;</title>
|
||||
<?dbhtml filename="gzip.html"?>
|
||||
|
||||
<indexterm zone="ch-tools-gzip">
|
||||
<primary sortas="a-Gzip">Gzip</primary>
|
||||
<secondary>tools</secondary></indexterm>
|
||||
|
||||
<sect2 role="package"><title/>
|
||||
<xi:include xmlns:xi="http://www.w3.org/2003/XInclude" href="../chapter06/gzip.xml" xpointer="xpointer(/sect1/sect2[1]/para[1])"/>
|
||||
|
||||
<segmentedlist>
|
||||
<segtitle>&buildtime;</segtitle>
|
||||
@ -15,6 +20,8 @@
|
||||
<seglistitem><seg>0.1 SBU</seg><seg>2.6 MB</seg></seglistitem>
|
||||
</segmentedlist>
|
||||
|
||||
<xi:include xmlns:xi="http://www.w3.org/2003/XInclude" href="../chapter06/gzip.xml" xpointer="xpointer(/sect1/sect2[1]/segmentedlist[2])"/>
|
||||
|
||||
</sect2>
|
||||
|
||||
<sect2 role="installation">
|
||||
@ -28,10 +35,18 @@
|
||||
|
||||
<screen><userinput>make</userinput></screen>
|
||||
|
||||
<para>And install it:</para>
|
||||
<para>This package does not come with a test suite.</para>
|
||||
|
||||
<para>Install the package:</para>
|
||||
|
||||
<screen><userinput>make install</userinput></screen>
|
||||
|
||||
</sect2>
|
||||
|
||||
<sect2 role="content"><title/>
|
||||
<para>Details on this package are located in <xref
|
||||
linkend="contents-gzip" role="."/></para>
|
||||
</sect2>
|
||||
|
||||
</sect1>
|
||||
|
||||
|
@ -7,6 +7,34 @@
|
||||
<title>Host System Requirements</title>
|
||||
<?dbhtml filename="hostreqs.html"?>
|
||||
|
||||
<para>See testing.</para>
|
||||
<para>The host must be running at least a 2.6.2 kernel compiled with
|
||||
GCC-3.0 or higher. There are two main reasons for this high
|
||||
requirement. First, the Native POSIX Threading Library (NPTL)
|
||||
test suite will segfault if the host's kernel has not been compiled with
|
||||
GCC-3.0 or a later version. Secondly, the 2.6.2 or later version of
|
||||
the kernel is required for the use of Udev. Udev creates devices
|
||||
dynamically by reading from the <systemitem
|
||||
class="filesystem">sysfs</systemitem> file system. However, support
|
||||
for this filesystem has only recently been implemented in most of
|
||||
the kernel drivers. We must be sure that all critical system devices
|
||||
get created properly.</para>
|
||||
|
||||
<para>In order to determine whether the host kernel meets the
|
||||
requirements outlined above, run the following command:</para>
|
||||
|
||||
<screen><userinput>cat /proc/version</userinput></screen>
|
||||
|
||||
<para>This will produce output similar to:</para>
|
||||
|
||||
<screen><computeroutput>Linux version 2.6.2 (user@host) (gcc version 3.4.0) #1
|
||||
Tue Apr 20 21:22:18 GMT 2004</computeroutput></screen>
|
||||
|
||||
<para>If the results of the above command state that the host kernel
|
||||
was not compiled using a GCC-3.0 (or later) compiler, one will need to
|
||||
be compiled. The host system will then need to be rebooted to use the
|
||||
newly compiled kernel. Instructions for compiling the kernel and
|
||||
configuring the boot loader (assuming the host uses GRUB) are located
|
||||
in <xref linkend="chapter-bootable"/>.</para>
|
||||
|
||||
</sect1>
|
||||
|
||||
|
@ -7,6 +7,61 @@
|
||||
<title>Introduction</title>
|
||||
<?dbhtml filename="introduction.html"?>
|
||||
|
||||
<para>See testing.</para>
|
||||
<para>This chapter shows how to compile and install a minimal Linux
|
||||
system. This system will contain just enough tools to start
|
||||
constructing the final LFS system in <xref
|
||||
linkend="chapter-building-system"/> and allow a working environment
|
||||
with more user convenience than a minimum environment would.</para>
|
||||
|
||||
<para>There are two steps in building this minimal system. The first
|
||||
step is to build a new and host-independent toolchain (compiler,
|
||||
assembler, linker, libraries, and a few useful utilities). The second
|
||||
step uses this toolchain to build the other essential tools.</para>
|
||||
|
||||
<para>The files compiled in this chapter will be installed under the
|
||||
<filename class="directory">$LFS/tools</filename> directory to keep
|
||||
them separate from the files installed in the next chapter and the
|
||||
host production directories. Since the packages compiled here are
|
||||
temporary, we do not want them to pollute the soon-to-be LFS
|
||||
system.</para>
|
||||
|
||||
<para>Before issuing the build instructions for a package, the package
|
||||
should be unpacked as user <emphasis>lfs</emphasis>, and a
|
||||
<command>cd</command> into the created directory should be performed. The build
|
||||
instructions assume that the <command>bash</command> shell is in use.</para>
|
||||
|
||||
<para>Several of the packages are patched before compilation, but only
|
||||
when the patch is needed to circumvent a problem. A patch is often
|
||||
needed in both this and the next chapter, but sometimes in only one or
|
||||
the other. Therefore, do not be concerned if instructions for a downloaded
|
||||
patch seem to be missing. Warning messages about
|
||||
<emphasis>offset</emphasis> or <emphasis>fuzz</emphasis> may
|
||||
also be encountered when applying a patch. Do not worry about these
|
||||
warnings, as the patch was still successfully applied.</para>
|
||||
|
||||
<para>During the compilation of most packages, there will be several
|
||||
warnings that scroll by on the screen. These are normal and can safely
|
||||
be ignored. These warnings are as they appear—warnings about
|
||||
deprecated, but not invalid, use of the C or C++ syntax. C standards
|
||||
change fairly often, and some packages still use the older standard.
|
||||
This is not a problem, but does prompt the warning.</para>
|
||||
|
||||
<para>After installing each package, delete its source and build
|
||||
directories, unless specifically instructed otherwise. Deleting the
|
||||
sources saves space and prevents mis-configuration when the same
|
||||
package is reinstalled later. Only three of the packages need to
|
||||
retain the source and build directories in order for their contents to
|
||||
be used by later commands. Pay special attention to these
|
||||
reminders.</para>
|
||||
|
||||
<para>Check one last time that the <envar>LFS</envar> environment
|
||||
variable is set up properly:</para>
|
||||
|
||||
<screen><userinput>echo $LFS</userinput></screen>
|
||||
|
||||
<para>Make sure the output shows the path to the LFS partition's mount
|
||||
point, which is <filename class="directory">/mnt/lfs</filename>, using
|
||||
our example.</para>
|
||||
|
||||
</sect1>
|
||||
|
||||
|
@ -7,7 +7,14 @@
|
||||
<title>Linux-Libc-Headers-&linux-libc-headers-version;</title>
|
||||
<?dbhtml filename="linux-libc-headers.html"?>
|
||||
|
||||
<indexterm zone="ch-tools-linux-libc-headers">
|
||||
<primary sortas="a-Linux-Libc-Headers">Linux-Libc-Headers</primary>
|
||||
<secondary>tools, headers</secondary></indexterm>
|
||||
|
||||
<sect2 role="package"><title/>
|
||||
<xi:include xmlns:xi="http://www.w3.org/2003/XInclude"
|
||||
href="../chapter06/linux-libc-headers.xml"
|
||||
xpointer="xpointer(/sect1/sect2[1]/para[1])"/>
|
||||
|
||||
<segmentedlist>
|
||||
<segtitle>&buildtime;</segtitle>
|
||||
@ -15,16 +22,38 @@
|
||||
<seglistitem><seg>0.1 SBU</seg><seg>22 MB</seg></seglistitem>
|
||||
</segmentedlist>
|
||||
|
||||
<xi:include xmlns:xi="http://www.w3.org/2003/XInclude"
|
||||
href="../chapter06/linux-libc-headers.xml"
|
||||
xpointer="xpointer(/sect1/sect2[1]/segmentedlist[2])"/>
|
||||
|
||||
|
||||
</sect2>
|
||||
|
||||
<sect2 role="installation">
|
||||
<title>Installation of Linux-Libc-Headers</title>
|
||||
|
||||
<para>For years it has been common practice to use <quote>raw</quote> kernel
|
||||
headers (straight from a kernel tarball) in <filename
|
||||
class="directory">/usr/include</filename>, but over the
|
||||
last few years, the kernel developers have taken a strong stance that
|
||||
this should not be done. This gave birth to the Linux-Libc-Headers
|
||||
Project, which was designed to maintain an Application Programming
|
||||
Interface (API) stable version of the Linux headers.</para>
|
||||
|
||||
<para>Install the header files:</para>
|
||||
|
||||
<screen><userinput>cp -R include/asm-i386 /tools/include/asm
|
||||
cp -R include/linux /tools/include</userinput></screen>
|
||||
|
||||
<para>If your architecture is not i386 (compatible), adjust the first command
|
||||
accordingly.</para>
|
||||
|
||||
</sect2>
|
||||
|
||||
<sect2 role="content"><title/>
|
||||
<para>Details on this package are located in <xref
|
||||
linkend="contents-linux-libc-headers" role="."/></para>
|
||||
</sect2>
|
||||
|
||||
</sect1>
|
||||
|
||||
|
@ -3,11 +3,16 @@
|
||||
<!ENTITY % general-entities SYSTEM "../general.ent">
|
||||
%general-entities;
|
||||
]>
|
||||
<sect1 id="ch-tools-m4" xreflabel="M4" role="wrap">
|
||||
<sect1 id="ch-tools-m4" role="wrap">
|
||||
<title>M4-&m4-version;</title>
|
||||
<?dbhtml filename="m4.html"?>
|
||||
|
||||
<indexterm zone="ch-tools-m4">
|
||||
<primary sortas="a-M4">M4</primary>
|
||||
<secondary>tools</secondary></indexterm>
|
||||
|
||||
<sect2 role="package"><title/>
|
||||
<xi:include xmlns:xi="http://www.w3.org/2003/XInclude" href="../chapter06/m4.xml" xpointer="xpointer(/sect1/sect2[1]/para[1])"/>
|
||||
|
||||
<segmentedlist>
|
||||
<segtitle>&buildtime;</segtitle>
|
||||
@ -15,6 +20,8 @@
|
||||
<seglistitem><seg>0.1 SBU</seg><seg>3.0 MB</seg></seglistitem>
|
||||
</segmentedlist>
|
||||
|
||||
<xi:include xmlns:xi="http://www.w3.org/2003/XInclude" href="../chapter06/m4.xml" xpointer="xpointer(/sect1/sect2[1]/segmentedlist[2])"/>
|
||||
|
||||
</sect2>
|
||||
|
||||
<sect2 role="installation">
|
||||
@ -28,13 +35,19 @@
|
||||
|
||||
<screen><userinput>make</userinput></screen>
|
||||
|
||||
<para>To test the results, issue:
|
||||
<userinput>make check</userinput>.</para>
|
||||
<para>To test the results, issue: <userinput>make
|
||||
check</userinput>.</para>
|
||||
|
||||
<para>Now install the package:</para>
|
||||
<para>Install the package:</para>
|
||||
|
||||
<screen><userinput>make install</userinput></screen>
|
||||
|
||||
</sect2>
|
||||
|
||||
<sect2 role="content"><title/>
|
||||
<para>Details on this package are located in <xref
|
||||
linkend="contents-m4" role="."/></para>
|
||||
</sect2>
|
||||
|
||||
</sect1>
|
||||
|
||||
|
@ -7,7 +7,12 @@
|
||||
<title>Make-&make-version;</title>
|
||||
<?dbhtml filename="make.html"?>
|
||||
|
||||
<indexterm zone="ch-tools-make">
|
||||
<primary sortas="a-Make">Make</primary>
|
||||
<secondary>tools</secondary></indexterm>
|
||||
|
||||
<sect2 role="package"><title/>
|
||||
<xi:include xmlns:xi="http://www.w3.org/2003/XInclude" href="../chapter06/make.xml" xpointer="xpointer(/sect1/sect2[1]/para[1])"/>
|
||||
|
||||
<segmentedlist>
|
||||
<segtitle>&buildtime;</segtitle>
|
||||
@ -15,6 +20,8 @@
|
||||
<seglistitem><seg>0.2 SBU</seg><seg>8.8 MB</seg></seglistitem>
|
||||
</segmentedlist>
|
||||
|
||||
<xi:include xmlns:xi="http://www.w3.org/2003/XInclude" href="../chapter06/make.xml" xpointer="xpointer(/sect1/sect2[1]/segmentedlist[2])"/>
|
||||
|
||||
</sect2>
|
||||
|
||||
<sect2 role="installation">
|
||||
@ -28,8 +35,8 @@
|
||||
|
||||
<screen><userinput>make</userinput></screen>
|
||||
|
||||
<para>To test the results, issue:
|
||||
<userinput>make check</userinput></para>
|
||||
<para>To test the results, issue: <userinput>make
|
||||
check</userinput>.</para>
|
||||
|
||||
<para>Install the package:</para>
|
||||
|
||||
@ -37,4 +44,10 @@
|
||||
|
||||
</sect2>
|
||||
|
||||
<sect2 role="content"><title/>
|
||||
<para>Details on this package are located in <xref
|
||||
linkend="contents-make" role="."/></para>
|
||||
</sect2>
|
||||
|
||||
</sect1>
|
||||
|
||||
|
@ -7,7 +7,12 @@
|
||||
<title>Ncurses-&ncurses-version;</title>
|
||||
<?dbhtml filename="ncurses.html"?>
|
||||
|
||||
<indexterm zone="ch-tools-ncurses">
|
||||
<primary sortas="a-Ncurses">Ncurses</primary>
|
||||
<secondary>tools</secondary></indexterm>
|
||||
|
||||
<sect2 role="package"><title/>
|
||||
<xi:include xmlns:xi="http://www.w3.org/2003/XInclude" href="../chapter06/ncurses.xml" xpointer="xpointer(/sect1/sect2[1]/para[1])"/>
|
||||
|
||||
<segmentedlist>
|
||||
<segtitle>&buildtime;</segtitle>
|
||||
@ -15,6 +20,8 @@
|
||||
<seglistitem><seg>0.7 SBU</seg><seg>26 MB</seg></seglistitem>
|
||||
</segmentedlist>
|
||||
|
||||
<xi:include xmlns:xi="http://www.w3.org/2003/XInclude" href="../chapter06/ncurses.xml" xpointer="xpointer(/sect1/sect2[1]/segmentedlist[2])"/>
|
||||
|
||||
</sect2>
|
||||
|
||||
<sect2 role="installation">
|
||||
@ -25,14 +32,43 @@
|
||||
<screen><userinput>./configure --prefix=/tools --with-shared \
|
||||
--without-debug --without-ada --enable-overwrite</userinput></screen>
|
||||
|
||||
<para>The meaning of the configure options:</para>
|
||||
|
||||
<variablelist>
|
||||
<varlistentry>
|
||||
<term><parameter>--without-ada</parameter></term>
|
||||
<listitem><para>This tells Ncurses not to build its Ada bindings, even
|
||||
if an Ada compiler is installed on the host. This needs to be done
|
||||
because once we enter the chroot environment, Ada will no longer be
|
||||
available.</para></listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term><parameter>--enable-overwrite</parameter></term>
|
||||
<listitem><para>This tells Ncurses to install its header files into
|
||||
<filename class="directory">/tools/include</filename>, instead of
|
||||
<filename class="directory">/tools/include/ncurses</filename>, to
|
||||
ensure that other packages can find the Ncurses headers
|
||||
successfully.</para></listitem>
|
||||
</varlistentry>
|
||||
</variablelist>
|
||||
|
||||
<para>Compile the package:</para>
|
||||
|
||||
<screen><userinput>make</userinput></screen>
|
||||
|
||||
<para>This package does not come with a test suite.</para>
|
||||
|
||||
<para>Install the package:</para>
|
||||
|
||||
<screen><userinput>make install</userinput></screen>
|
||||
|
||||
</sect2>
|
||||
|
||||
<sect2 role="content"><title/>
|
||||
<para>Details on this package are located in <xref
|
||||
linkend="contents-ncurses" role="."/></para>
|
||||
</sect2>
|
||||
|
||||
</sect1>
|
||||
|
||||
|
@ -7,7 +7,12 @@
|
||||
<title>Patch-&patch-version;</title>
|
||||
<?dbhtml filename="patch.html"?>
|
||||
|
||||
<indexterm zone="ch-tools-patch">
|
||||
<primary sortas="a-Patch">Patch</primary>
|
||||
<secondary>tools</secondary></indexterm>
|
||||
|
||||
<sect2 role="package"><title/>
|
||||
<xi:include xmlns:xi="http://www.w3.org/2003/XInclude" href="../chapter06/patch.xml" xpointer="xpointer(/sect1/sect2[1]/para[1])"/>
|
||||
|
||||
<segmentedlist>
|
||||
<segtitle>&buildtime;</segtitle>
|
||||
@ -15,6 +20,8 @@
|
||||
<seglistitem><seg>0.1 SBU</seg><seg>1.9 MB</seg></seglistitem>
|
||||
</segmentedlist>
|
||||
|
||||
<xi:include xmlns:xi="http://www.w3.org/2003/XInclude" href="../chapter06/patch.xml" xpointer="xpointer(/sect1/sect2[1]/segmentedlist[2])"/>
|
||||
|
||||
</sect2>
|
||||
|
||||
<sect2 role="installation">
|
||||
@ -24,14 +31,26 @@
|
||||
|
||||
<screen><userinput>CPPFLAGS=-D_GNU_SOURCE ./configure --prefix=/tools</userinput></screen>
|
||||
|
||||
<para>The preprocessor flag <parameter>-D_GNU_SOURCE</parameter> is
|
||||
only needed on the PowerPC platform. It can be left out on other
|
||||
architectures.</para>
|
||||
|
||||
<para>Compile the package:</para>
|
||||
|
||||
<screen><userinput>make</userinput></screen>
|
||||
|
||||
<para>This package does not come with a test suite.</para>
|
||||
|
||||
<para>Install the package:</para>
|
||||
|
||||
<screen><userinput>make install</userinput></screen>
|
||||
|
||||
</sect2>
|
||||
|
||||
<sect2 role="content"><title/>
|
||||
<para>Details on this package are located in <xref
|
||||
linkend="contents-patch" role="."/></para>
|
||||
</sect2>
|
||||
|
||||
</sect1>
|
||||
|
||||
|
@ -7,7 +7,12 @@
|
||||
<title>Perl-&perl-version;</title>
|
||||
<?dbhtml filename="perl.html"?>
|
||||
|
||||
<indexterm zone="ch-tools-perl">
|
||||
<primary sortas="a-Perl">Perl</primary>
|
||||
<secondary>tools</secondary></indexterm>
|
||||
|
||||
<sect2 role="package"><title/>
|
||||
<xi:include xmlns:xi="http://www.w3.org/2003/XInclude" href="../chapter06/perl.xml" xpointer="xpointer(/sect1/sect2[1]/para[1])"/>
|
||||
|
||||
<segmentedlist>
|
||||
<segtitle>&buildtime;</segtitle>
|
||||
@ -15,24 +20,45 @@
|
||||
<seglistitem><seg>0.8 SBU</seg><seg>74 MB</seg></seglistitem>
|
||||
</segmentedlist>
|
||||
|
||||
<xi:include xmlns:xi="http://www.w3.org/2003/XInclude" href="../chapter06/perl.xml" xpointer="xpointer(/sect1/sect2[1]/segmentedlist[2])"/>
|
||||
|
||||
</sect2>
|
||||
|
||||
<sect2 role="installation">
|
||||
<title>Installation of Perl</title>
|
||||
|
||||
<para>First adapt some hard-wired paths to the C library:</para>
|
||||
<para>First adapt some hard-wired paths to the C library by applying
|
||||
the following patch:</para>
|
||||
|
||||
<screen><userinput>patch -Np1 -i ../perl-&perl-version;-libc-1.patch</userinput></screen>
|
||||
|
||||
<para>Now prepare Perl for compilation:</para>
|
||||
<para>Prepare Perl for compilation (make sure to get the 'IO Fcntl POSIX'
|
||||
part of the command correct—they are all letters):</para>
|
||||
|
||||
<screen><userinput>./configure.gnu --prefix=/tools -Dstatic_ext='IO Fcntl POSIX'</userinput></screen>
|
||||
|
||||
<para>The meaning of the configure option:</para>
|
||||
|
||||
<variablelist>
|
||||
<varlistentry>
|
||||
<term><parameter>-Dstatic_ext='IO Fcntl POSIX'</parameter></term>
|
||||
<listitem><para>This tells Perl to build the minimum set of static
|
||||
extensions needed for installing and testing the Coreutils package in
|
||||
the next chapter.</para></listitem>
|
||||
</varlistentry>
|
||||
</variablelist>
|
||||
|
||||
<para>Compile only the required tools:</para>
|
||||
|
||||
<screen><userinput>make perl utilities</userinput></screen>
|
||||
|
||||
<para>Then copy these tools and their libraries:</para>
|
||||
<para>Although Perl comes with a test suite, it is not recommended to
|
||||
run it at this point. Only part of Perl was built and running
|
||||
<userinput>make test</userinput> now will cause the rest of Perl to be
|
||||
built as well, which is unnecessary at this point. The test suite can
|
||||
be run in the next chapter if desired.</para>
|
||||
|
||||
<para>Copy these tools and their libraries:</para>
|
||||
|
||||
<screen><userinput>cp perl pod/pod2man /tools/bin
|
||||
mkdir -p /tools/lib/perl5/&perl-version;
|
||||
@ -40,4 +66,10 @@ cp -R lib/* /tools/lib/perl5/&perl-version;</userinput></screen>
|
||||
|
||||
</sect2>
|
||||
|
||||
<sect2 role="content"><title/>
|
||||
<para>Details on this package are located in <xref
|
||||
linkend="contents-perl" role="."/></para>
|
||||
</sect2>
|
||||
|
||||
</sect1>
|
||||
|
||||
|
@ -7,7 +7,12 @@
|
||||
<title>Sed-&sed-version;</title>
|
||||
<?dbhtml filename="sed.html"?>
|
||||
|
||||
<indexterm zone="ch-tools-sed">
|
||||
<primary sortas="a-Sed">Sed</primary>
|
||||
<secondary>tools</secondary></indexterm>
|
||||
|
||||
<sect2 role="package"><title/>
|
||||
<xi:include xmlns:xi="http://www.w3.org/2003/XInclude" href="../chapter06/sed.xml" xpointer="xpointer(/sect1/sect2[1]/para[1])"/>
|
||||
|
||||
<segmentedlist>
|
||||
<segtitle>&buildtime;</segtitle>
|
||||
@ -15,6 +20,8 @@
|
||||
<seglistitem><seg>0.2 SBU</seg><seg>5.2 MB</seg></seglistitem>
|
||||
</segmentedlist>
|
||||
|
||||
<xi:include xmlns:xi="http://www.w3.org/2003/XInclude" href="../chapter06/sed.xml" xpointer="xpointer(/sect1/sect2[1]/segmentedlist[2])"/>
|
||||
|
||||
</sect2>
|
||||
|
||||
<sect2 role="installation">
|
||||
@ -28,8 +35,8 @@
|
||||
|
||||
<screen><userinput>make</userinput></screen>
|
||||
|
||||
<para>To test the results, issue:
|
||||
<userinput>make check</userinput></para>
|
||||
<para>To test the results, issue: <userinput>make
|
||||
check</userinput>.</para>
|
||||
|
||||
<para>Install the package:</para>
|
||||
|
||||
@ -37,4 +44,10 @@
|
||||
|
||||
</sect2>
|
||||
|
||||
<sect2 role="content"><title/>
|
||||
<para>Details on this package are located in <xref
|
||||
linkend="contents-sed" role="."/></para>
|
||||
</sect2>
|
||||
|
||||
</sect1>
|
||||
|
||||
|
@ -7,13 +7,32 @@
|
||||
<title>Stripping</title>
|
||||
<?dbhtml filename="stripping.html"?>
|
||||
|
||||
<para>Strip the programs and libraries:</para>
|
||||
<para>The steps in this section are optional, but if the LFS partition
|
||||
is rather small, it is beneficial to learn that unnecessary items can
|
||||
be removed. The executables and libraries built so far contain about
|
||||
130 MB of unneeded debugging symbols. Remove those symbols
|
||||
with:</para>
|
||||
|
||||
<screen><userinput>strip --strip-debug /tools/lib/*
|
||||
strip --strip-unneeded /tools/{,s}bin/*</userinput></screen>
|
||||
|
||||
<para>Remove the documentation:</para>
|
||||
<para>The last of the above commands will skip some twenty files,
|
||||
reporting that it does not recognize their file format. Most of these
|
||||
are scripts instead of binaries.</para>
|
||||
|
||||
<para>Take care <emphasis>not</emphasis> to use
|
||||
<parameter>--strip-unneeded</parameter> on the libraries. The static
|
||||
ones would be destroyed and the toolchain packages would need to be
|
||||
built all over again.</para>
|
||||
|
||||
<para>To save another 30 MB, remove the documentation:</para>
|
||||
|
||||
<screen><userinput>rm -rf /tools/{doc,info,man}</userinput></screen>
|
||||
|
||||
<para>There will now be at least 850 MB of free space on the LFS file
|
||||
system that can be used to build and install Glibc in the next phase.
|
||||
If you can build and install Glibc, you can build and install the rest
|
||||
too.</para>
|
||||
|
||||
</sect1>
|
||||
|
||||
|
@ -7,7 +7,12 @@
|
||||
<title>Tar-&tar-version;</title>
|
||||
<?dbhtml filename="tar.html"?>
|
||||
|
||||
<indexterm zone="ch-tools-tar">
|
||||
<primary sortas="a-Tar">Tar</primary>
|
||||
<secondary>tools</secondary></indexterm>
|
||||
|
||||
<sect2 role="package"><title/>
|
||||
<xi:include xmlns:xi="http://www.w3.org/2003/XInclude" href="../chapter06/tar.xml" xpointer="xpointer(/sect1/sect2[1]/para[1])"/>
|
||||
|
||||
<segmentedlist>
|
||||
<segtitle>&buildtime;</segtitle>
|
||||
@ -15,6 +20,8 @@
|
||||
<seglistitem><seg>0.2 SBU</seg><seg>10 MB</seg></seglistitem>
|
||||
</segmentedlist>
|
||||
|
||||
<xi:include xmlns:xi="http://www.w3.org/2003/XInclude" href="../chapter06/tar.xml" xpointer="xpointer(/sect1/sect2[1]/segmentedlist[2])"/>
|
||||
|
||||
</sect2>
|
||||
|
||||
<sect2 role="installation">
|
||||
@ -28,8 +35,8 @@
|
||||
|
||||
<screen><userinput>make</userinput></screen>
|
||||
|
||||
<para>To test the results, issue:
|
||||
<userinput>make check</userinput></para>
|
||||
<para>To test the results, issue: <userinput>make
|
||||
check</userinput>.</para>
|
||||
|
||||
<para>Install the package:</para>
|
||||
|
||||
@ -37,4 +44,10 @@
|
||||
|
||||
</sect2>
|
||||
|
||||
<sect2 role="content"><title/>
|
||||
<para>Details on this package are located in <xref
|
||||
linkend="contents-tar" role="."/></para>
|
||||
</sect2>
|
||||
|
||||
</sect1>
|
||||
|
||||
|
@ -3,13 +3,14 @@
|
||||
<!ENTITY % general-entities SYSTEM "../general.ent">
|
||||
%general-entities;
|
||||
]>
|
||||
<sect1 id="ch-tools-tcl" xreflabel="Tcl" role="wrap">
|
||||
<sect1 id="ch-tools-tcl" role="wrap">
|
||||
<title>Tcl-&tcl-version;</title>
|
||||
<?dbhtml filename="tcl.html"?>
|
||||
|
||||
<indexterm zone="ch-tools-tcl"><primary sortas="a-Tcl">Tcl</primary></indexterm>
|
||||
|
||||
<sect2 role="package"><title/>
|
||||
<para>The Tcl package contains the Tool Command Language.</para>
|
||||
|
||||
<segmentedlist>
|
||||
<segtitle>&buildtime;</segtitle>
|
||||
@ -17,11 +18,26 @@
|
||||
<seglistitem><seg>0.9 SBU</seg><seg>23 MB</seg></seglistitem>
|
||||
</segmentedlist>
|
||||
|
||||
<segmentedlist>
|
||||
<segtitle>Tcl installation depends on</segtitle>
|
||||
<seglistitem><seg>Bash, Binutils, Coreutils, Diffutils,
|
||||
GCC, Glibc, Grep, Make, and Sed</seg></seglistitem>
|
||||
</segmentedlist>
|
||||
|
||||
</sect2>
|
||||
|
||||
<sect2 role="installation">
|
||||
<title>Installation of Tcl</title>
|
||||
|
||||
<para>This package and the next two (Expect and DejaGNU) are
|
||||
installed to support running the test suites for GCC and Binutils.
|
||||
Installing three packages for testing purposes may seem excessive, but
|
||||
it is very reassuring, if not essential, to know that the most
|
||||
important tools are working properly. Even if the test suites are not
|
||||
run in this chapter (they are not mandatory), these packages
|
||||
are required to run the test suites in <xref
|
||||
linkend="chapter-building-system"/>.</para>
|
||||
|
||||
<para>Prepare Tcl for compilation:</para>
|
||||
|
||||
<screen><userinput>cd unix
|
||||
@ -31,14 +47,22 @@
|
||||
|
||||
<screen><userinput>make</userinput></screen>
|
||||
|
||||
<para>To test the results, issue:
|
||||
<userinput>TZ=UTC make test</userinput>.</para>
|
||||
<para>To test the results, issue: <userinput>TZ=UTC make
|
||||
test</userinput>. The Tcl test suite is known to experience failures
|
||||
under certain host conditions that are not fully understood.
|
||||
Therefore, test suite failures here are not surprising, and are not
|
||||
considered critical. The <parameter>TZ=UTC</parameter> parameter sets
|
||||
the time zone to Coordinated Universal Time (UTC), also known as
|
||||
Greenwich Mean Time (GMT), but only for the duration of the test suite
|
||||
run. This ensures that the clock tests are exercised correctly.
|
||||
Details on the <envar>TZ</envar> environment variable is provided in
|
||||
<xref linkend="chapter-bootscripts"/>.</para>
|
||||
|
||||
<para>Install the package:</para>
|
||||
|
||||
<screen><userinput>make install</userinput></screen>
|
||||
|
||||
<warning><para><emphasis>Do not remove</emphasis> the
|
||||
<warning><para><emphasis>Do not</emphasis> remove the
|
||||
<filename class="directory">tcl&tcl-version;</filename> source directory yet, as the next package
|
||||
will need its internal headers.</para></warning>
|
||||
|
||||
@ -50,8 +74,41 @@ will need its internal headers.</para></warning>
|
||||
|
||||
<sect2 id="contents-tcl" role="content"><title>Contents of Tcl</title>
|
||||
|
||||
<para>See testing</para>
|
||||
<segmentedlist>
|
||||
<segtitle>Installed programs</segtitle>
|
||||
<segtitle>Installed library</segtitle>
|
||||
<seglistitem><seg>tclsh (link to tclsh8.4) and tclsh8.4</seg><seg>libtcl8.4.so</seg></seglistitem>
|
||||
</segmentedlist>
|
||||
|
||||
<variablelist><bridgehead renderas="sect3">Short Descriptions</bridgehead>
|
||||
<?dbfo list-presentation="list"?>
|
||||
|
||||
<varlistentry id="tclsh8.4">
|
||||
<term><command>tclsh8.4</command></term>
|
||||
<listitem>
|
||||
<para>The Tcl command shell</para>
|
||||
<indexterm zone="ch-tools-tcl tclsh8.4"><primary sortas="b-tclsh8.4">tclsh8.4</primary></indexterm>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry id="tclsh">
|
||||
<term><command>tclsh</command></term>
|
||||
<listitem>
|
||||
<para>A link to tclsh8.4</para>
|
||||
<indexterm zone="ch-tools-tcl tclsh"><primary sortas="b-tclsh">tclsh</primary></indexterm>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry id="libtcl8.4.so">
|
||||
<term><filename class="libraryfile">libtcl8.4.so</filename></term>
|
||||
<listitem>
|
||||
<para>The Tcl library</para>
|
||||
<indexterm zone="ch-tools-tcl libtcl8.4.so"><primary sortas="c-libtcl8.4.so">libtcl8.4.so</primary></indexterm>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
</variablelist>
|
||||
|
||||
</sect2>
|
||||
|
||||
</sect1>
|
||||
|
||||
|
@ -7,7 +7,12 @@
|
||||
<title>Texinfo-&texinfo-version;</title>
|
||||
<?dbhtml filename="texinfo.html"?>
|
||||
|
||||
<indexterm zone="ch-tools-texinfo">
|
||||
<primary sortas="a-Texinfo">Texinfo</primary>
|
||||
<secondary>tools</secondary></indexterm>
|
||||
|
||||
<sect2 role="package"><title/>
|
||||
<xi:include xmlns:xi="http://www.w3.org/2003/XInclude" href="../chapter06/texinfo.xml" xpointer="xpointer(/sect1/sect2[1]/para[1])"/>
|
||||
|
||||
<segmentedlist>
|
||||
<segtitle>&buildtime;</segtitle>
|
||||
@ -15,6 +20,8 @@
|
||||
<seglistitem><seg>0.2 SBU</seg><seg>16 MB</seg></seglistitem>
|
||||
</segmentedlist>
|
||||
|
||||
<xi:include xmlns:xi="http://www.w3.org/2003/XInclude" href="../chapter06/texinfo.xml" xpointer="xpointer(/sect1/sect2[1]/segmentedlist[2])"/>
|
||||
|
||||
</sect2>
|
||||
|
||||
<sect2 role="installation">
|
||||
@ -28,8 +35,8 @@
|
||||
|
||||
<screen><userinput>make</userinput></screen>
|
||||
|
||||
<para>To test the results, issue:
|
||||
<userinput>make check</userinput></para>
|
||||
<para>To test the results, issue: <userinput>make
|
||||
check</userinput>.</para>
|
||||
|
||||
<para>Install the package:</para>
|
||||
|
||||
@ -37,4 +44,10 @@
|
||||
|
||||
</sect2>
|
||||
|
||||
<sect2 role="content"><title/>
|
||||
<para>Details on this package are located in <xref
|
||||
linkend="contents-texinfo" role="."/></para>
|
||||
</sect2>
|
||||
|
||||
</sect1>
|
||||
|
||||
|
@ -7,6 +7,218 @@
|
||||
<title>Toolchain Technical Notes</title>
|
||||
<?dbhtml filename="toolchaintechnotes.html"?>
|
||||
|
||||
<para>See testing</para>
|
||||
<para>This section explains some of the rationale and technical
|
||||
details behind the overall build method. It is not essential to
|
||||
immediately understand everything in this section. Most of this
|
||||
information will be clearer after performing an actual build. This
|
||||
section can be referred back to at any time during the process.</para>
|
||||
|
||||
<para>The overall goal of <xref linkend="chapter-temporary-tools"/> is
|
||||
to provide a temporary environment that can be chrooted into and from
|
||||
which can be produced a clean, trouble-free build of the target LFS
|
||||
system in <xref linkend="chapter-building-system"/>. Along the way, we
|
||||
separate from the host system as much as possible, and in doing so,
|
||||
build a self-contained and self-hosted toolchain. It should be noted
|
||||
that the build process has been designed to minimize the risks for new
|
||||
readers and provide maximum educational value at the same time. In
|
||||
other words, more advanced techniques could be used to build the
|
||||
system.</para>
|
||||
|
||||
<important>
|
||||
<para>Before continuing, be aware of the name of the working platform,
|
||||
often referred to as the target triplet. Many times, the target
|
||||
triplet will probably be <emphasis>i686-pc-linux-gnu</emphasis>. A
|
||||
simple way to determine the name of the target triplet is to run the
|
||||
<command>config.guess</command> script that comes with the source for
|
||||
many packages. Unpack the Binutils sources and run the script:
|
||||
<userinput>./config.guess</userinput> and note the output.</para>
|
||||
|
||||
<para>Also be aware of the name of the platform's dynamic linker,
|
||||
often referred to as the dynamic loader (not to be confused with the
|
||||
standard linker <command>ld</command> that is part of Binutils). The
|
||||
dynamic linker provided by Glibc finds and loads the shared libraries
|
||||
needed by a program, prepares the program to run, and then runs it.
|
||||
The name of the dynamic linker will usually be
|
||||
<filename class="libraryfile">ld-linux.so.2</filename>. On platforms that are less
|
||||
prevalent, the name might be <filename class="libraryfile">ld.so.1</filename>,
|
||||
and newer 64 bit platforms might be named something else entirely. The name of
|
||||
the platform's dynamic linker can be determined by looking in the
|
||||
<filename class="directory">/lib</filename> directory on the host
|
||||
system. A sure-fire way to determine the name is to inspect a random
|
||||
binary from the host system by running: <userinput>readelf -l <name
|
||||
of binary> | grep interpreter</userinput> and noting the output.
|
||||
The authoritative reference covering all platforms is in the
|
||||
<filename>shlib-versions</filename> file in the root of the Glibc
|
||||
source tree.</para>
|
||||
</important>
|
||||
|
||||
<para>Some key technical points of how the <xref linkend="chapter-temporary-tools"/> build
|
||||
method works:</para>
|
||||
|
||||
<itemizedlist>
|
||||
<listitem><para>The process is similar in principle to
|
||||
cross-compiling, whereby tools installed in the same prefix work in
|
||||
cooperation, and thus utilize a little GNU
|
||||
<quote>magic</quote></para></listitem>
|
||||
|
||||
<listitem><para>Careful manipulation of the standard linker's library
|
||||
search path ensures programs are linked only against chosen
|
||||
libraries</para></listitem>
|
||||
|
||||
<listitem><para>Careful manipulation of <command>gcc</command>'s
|
||||
<filename>specs</filename> file tell the compiler which target dynamic
|
||||
linker will be used</para></listitem>
|
||||
</itemizedlist>
|
||||
|
||||
<para>Binutils is installed first because the
|
||||
<command>./configure</command> runs of both GCC and Glibc perform
|
||||
various feature tests on the assembler and linker to determine which
|
||||
software features to enable or disable. This is more important than
|
||||
one might first realize. An incorrectly configured GCC or Glibc can
|
||||
result in a subtly broken toolchain, where the impact of such breakage
|
||||
might not show up until near the end of the build of an entire
|
||||
distribution. A test suite failure will usually alert this error
|
||||
before too much additional work is performed.</para>
|
||||
|
||||
<para>Binutils installs its assembler and linker in two locations,
|
||||
<filename class="directory">/tools/bin</filename> and <filename
|
||||
class="directory">/tools/$TARGET_TRIPLET/bin</filename>. The tools in
|
||||
one location are hard linked to the other. An important facet of the
|
||||
linker is its library search order. Detailed information can be
|
||||
obtained from <command>ld</command> by passing it the
|
||||
<parameter>--verbose</parameter> flag. For example, an <userinput>ld
|
||||
--verbose | grep SEARCH</userinput> 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,
|
||||
<userinput>gcc dummy.c -Wl,--verbose 2>&1 | grep
|
||||
succeeded</userinput> will show all the files successfully opened
|
||||
during the linking.</para>
|
||||
|
||||
<para>The next package installed is GCC. An example of what can be
|
||||
seen during its run of <command>./configure</command> is:</para>
|
||||
|
||||
<screen><computeroutput>checking what assembler to use...
|
||||
/tools/i686-pc-linux-gnu/bin/as
|
||||
checking what linker to use... /tools/i686-pc-linux-gnu/bin/ld</computeroutput></screen>
|
||||
|
||||
<para>This is important for the reasons mentioned above. It also
|
||||
demonstrates that GCC's configure script does not search the PATH
|
||||
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: <userinput>gcc
|
||||
-print-prog-name=ld</userinput>.</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, <userinput>gcc -v
|
||||
dummy.c</userinput> will show detailed information about the
|
||||
preprocessor, compilation, and assembly stages, including
|
||||
<command>gcc</command>'s included search paths and their order.</para>
|
||||
|
||||
<para>The next package installed is Glibc. The most important
|
||||
considerations for building Glibc are the compiler, binary tools, and
|
||||
kernel headers. The compiler is generally not an issue since Glibc
|
||||
will always use the <command>gcc</command> found in a
|
||||
<envar>PATH</envar> directory.
|
||||
The binary tools and kernel headers can be a bit more complicated.
|
||||
Therefore, take no risks and use the available configure switches to
|
||||
enforce the correct selections. After the run of
|
||||
<command>./configure</command>, check the contents of the
|
||||
<filename>config.make</filename> file in the <filename
|
||||
class="directory">glibc-build</filename> directory for all important
|
||||
details. Note the use of <parameter>CC="gcc -B/tools/bin/"</parameter>
|
||||
to control which binary tools are used and the use of the
|
||||
<parameter>-nostdinc</parameter> and <parameter>-isystem</parameter>
|
||||
flags to control the compiler's include search path. These items
|
||||
highlight an important aspect of the Glibc package—it is very
|
||||
self-sufficient in terms of its build machinery and generally does not
|
||||
rely on toolchain defaults.</para>
|
||||
|
||||
<para>After the Glibc installation, make some adjustments to ensure
|
||||
that searching and linking take place only within the <filename
|
||||
class="directory">/tools</filename> prefix. Install an adjusted
|
||||
<command>ld</command>, which has a hard-wired search path limited to
|
||||
<filename class="directory">/tools/lib</filename>. Then amend
|
||||
<command>gcc</command>'s specs file to point to the new dynamic linker
|
||||
in <filename class="directory">/tools/lib</filename>. This last step
|
||||
is vital to the whole process. As mentioned above, a hard-wired path
|
||||
to a dynamic linker is embedded into every Executable and Link Format
|
||||
(ELF)-shared executable. This can be inspected by running:
|
||||
<userinput>readelf -l <name of binary> | grep
|
||||
interpreter</userinput>. Amending gcc's specs file
|
||||
ensures that every program compiled from here through the end of this
|
||||
chapter will use the new dynamic linker in <filename
|
||||
class="directory">/tools/lib</filename>.</para>
|
||||
|
||||
<para>The need to use the new dynamic linker is also the reason why
|
||||
the Specs patch is applied for the second pass of GCC. Failure to do
|
||||
so will result in the GCC programs themselves having the name of the
|
||||
dynamic linker from the host system's <filename
|
||||
class="directory">/lib</filename> directory embedded into them, which
|
||||
would defeat the goal of getting away from the host.</para>
|
||||
|
||||
<para>During the second pass of Binutils, we are able to utilize the
|
||||
<parameter>--with-lib-path</parameter> configure switch to control
|
||||
<command>ld</command>'s library search path. From this point onwards,
|
||||
the core toolchain is self-contained and self-hosted. The remainder of
|
||||
the <xref linkend="chapter-temporary-tools"/> packages all build
|
||||
against the new Glibc in <filename
|
||||
class="directory">/tools</filename>.</para>
|
||||
|
||||
<para>Upon entering the chroot environment in <xref
|
||||
linkend="chapter-building-system"/>, the first major package to be
|
||||
installed is Glibc, due to its self-sufficient nature mentioned above.
|
||||
Once this Glibc is installed into <filename
|
||||
class="directory">/usr</filename>, perform a quick changeover of the
|
||||
toolchain defaults, then proceed in building the rest of the target
|
||||
LFS system.</para>
|
||||
|
||||
<sect2>
|
||||
<title>Notes on Static Linking</title>
|
||||
|
||||
<para>Besides their specific task, most programs have to perform many
|
||||
common and sometimes trivial operations. These include allocating
|
||||
memory, searching directories, reading and writing files, string
|
||||
handling, pattern matching, arithmetic, and other tasks. Instead of
|
||||
obliging each program to reinvent the wheel, the GNU system provides
|
||||
all these basic functions in ready-made libraries. The major library
|
||||
on any Linux system is Glibc.</para>
|
||||
|
||||
<para>There are two primary ways of linking the functions from a
|
||||
library to a program that uses them—statically or dynamically. When
|
||||
a program is linked statically, the code of the used functions is
|
||||
included in the executable, resulting in a rather bulky program. When
|
||||
a program is dynamically linked, it includes a reference to the
|
||||
dynamic linker, the name of the library, and the name of the function,
|
||||
resulting in a much smaller executable. A third option is to use the
|
||||
programming interface of the dynamic linker (see the
|
||||
<emphasis>dlopen</emphasis> man page for more information).</para>
|
||||
|
||||
<para>Dynamic linking is the default on Linux and has three major
|
||||
advantages over static linking. First, only one copy of the executable
|
||||
library code is needed on the hard disk, instead of having multiple
|
||||
copies of the same code included in several programs, thus saving
|
||||
disk space. Second, when several programs use the same library
|
||||
function at the same time, only one copy of the function's code is
|
||||
required in core, thus saving memory space. Third, when a library
|
||||
function gets a bug fixed or is otherwise improved, only the one
|
||||
library needs to be recompiled instead of recompiling all programs
|
||||
that make use of the improved function.</para>
|
||||
|
||||
<para>If dynamic linking has several advantages, why then do we
|
||||
statically link the first two packages in this chapter? The reasons
|
||||
are threefold—historical, educational, and technical. The
|
||||
historical reason is that earlier versions of LFS statically linked
|
||||
every program in this chapter. Educationally, knowing the difference
|
||||
between static and dynamic linking is useful. The technical benefit is
|
||||
a gained element of independence from the host, meaning that those
|
||||
programs can be used independently of the host system. However, it is
|
||||
worth noting that an overall successful LFS build can still be
|
||||
achieved when the first two packages are built dynamically.</para>
|
||||
|
||||
</sect2>
|
||||
|
||||
</sect1>
|
||||
|
||||
|
@ -1,40 +0,0 @@
|
||||
<?xml version="1.0" encoding="ISO-8859-1"?>
|
||||
<!DOCTYPE sect1 PUBLIC "-//OASIS//DTD DocBook XML V4.4//EN" "http://www.oasis-open.org/docbook/xml/4.4/docbookx.dtd" [
|
||||
<!ENTITY % general-entities SYSTEM "../general.ent">
|
||||
%general-entities;
|
||||
]>
|
||||
<sect1 id="ch-tools-udev" role="wrap">
|
||||
<title>Udev-&udev-version;</title>
|
||||
<?dbhtml filename="udev.html"?>
|
||||
|
||||
<sect2 role="package"><title/>
|
||||
|
||||
<segmentedlist>
|
||||
<segtitle>&buildtime;</segtitle>
|
||||
<segtitle>&diskspace;</segtitle>
|
||||
<seglistitem><seg>0.2 SBU</seg><seg>5.2 MB</seg></seglistitem>
|
||||
</segmentedlist>
|
||||
|
||||
</sect2>
|
||||
|
||||
<sect2 role="installation">
|
||||
<title>Installation of Udev</title>
|
||||
|
||||
<para>The following patch makes Udev respect the DESTDIR variable:</para>
|
||||
|
||||
<screen><userinput>patch -Np1 -i ../udev-&udev-version;-DESTDIR-1.patch</userinput></screen>
|
||||
|
||||
<para>Now compile Udev:</para>
|
||||
|
||||
<screen><userinput>make prefix=/tools udevdir=/dev</userinput></screen>
|
||||
|
||||
<para>Install the package:</para>
|
||||
|
||||
<screen><userinput>make DESTDIR=/tools udevdir=/dev install</userinput></screen>
|
||||
|
||||
<screen><userinput>cp ../udev-config-2.permissions /tools/etc/udev/permissions.d/00-lfs.permissions
|
||||
cp ../udev-config-1.rules /tools/etc/udev/rules.d/00-lfs.rules</userinput></screen>
|
||||
|
||||
</sect2>
|
||||
|
||||
</sect1>
|
@ -7,7 +7,12 @@
|
||||
<title>Util-linux-&util-linux-version;</title>
|
||||
<?dbhtml filename="util-linux.html"?>
|
||||
|
||||
<indexterm zone="ch-tools-util-linux">
|
||||
<primary sortas="a-Util-linux">Util-linux</primary>
|
||||
<secondary>tools</secondary></indexterm>
|
||||
|
||||
<sect2 role="package"><title/>
|
||||
<xi:include xmlns:xi="http://www.w3.org/2003/XInclude" href="../chapter06/util-linux.xml" xpointer="xpointer(/sect1/sect2[1]/para[1])"/>
|
||||
|
||||
<segmentedlist>
|
||||
<segtitle>&buildtime;</segtitle>
|
||||
@ -15,12 +20,16 @@
|
||||
<seglistitem><seg>0.2 SBU</seg><seg>16 MB</seg></seglistitem>
|
||||
</segmentedlist>
|
||||
|
||||
<xi:include xmlns:xi="http://www.w3.org/2003/XInclude" href="../chapter06/util-linux.xml" xpointer="xpointer(/sect1/sect2[1]/segmentedlist[2])"/>
|
||||
|
||||
</sect2>
|
||||
|
||||
<sect2 role="installation">
|
||||
<title>Installation of Util-linux</title>
|
||||
|
||||
<para>Issue a sed sustitution:</para>
|
||||
<para>Util-linux does not use the freshly installed headers and
|
||||
libraries from the <filename class="directory">/tools</filename>
|
||||
directory. This is fixed by altering the configure script:</para>
|
||||
|
||||
<screen><userinput>sed -i 's@/usr/include@/tools/include@g' configure</userinput></screen>
|
||||
|
||||
@ -32,14 +41,23 @@
|
||||
|
||||
<screen><userinput>make -C lib</userinput></screen>
|
||||
|
||||
<para>Build the needed utilities:</para>
|
||||
<para>Since only a couple of the utilities contained in this package
|
||||
are needed, build only those:</para>
|
||||
|
||||
<screen><userinput>make -C mount mount umount
|
||||
make -C text-utils more</userinput></screen>
|
||||
|
||||
<para>Now copy these programs to the temporary tools directory:</para>
|
||||
<para>This package does not come with a test suite.</para>
|
||||
|
||||
<para>Copy these programs to the temporary tools directory:</para>
|
||||
|
||||
<screen><userinput>cp mount/{,u}mount text-utils/more /tools/bin</userinput></screen>
|
||||
|
||||
</sect2>
|
||||
|
||||
<sect2 role="content"><title/>
|
||||
<para>Details on this package are located in <xref
|
||||
linkend="contents-utillinux" role="."/></para>
|
||||
</sect2>
|
||||
</sect1>
|
||||
|
||||
|
@ -7,6 +7,45 @@
|
||||
<title>About Debugging Symbols</title>
|
||||
<?dbhtml filename="aboutdebug.html"?>
|
||||
|
||||
<para>See testing</para>
|
||||
<para>Most programs and libraries are, by default, compiled with
|
||||
debugging symbols included (with <command>gcc</command>'s
|
||||
<parameter>-g</parameter> option). This means that when debugging a
|
||||
program or library that was compiled with debugging information
|
||||
included, the debugger can provide not only memory addresses, but also
|
||||
the names of the routines and variables.</para>
|
||||
|
||||
<para>However, the inclusion of these debugging symbols enlarges a
|
||||
program or library significantly. The following is an example of the
|
||||
amount of space these symbols occupy:</para>
|
||||
|
||||
<itemizedlist>
|
||||
|
||||
<listitem><para>a bash binary
|
||||
with debugging symbols: 1200 KB</para></listitem>
|
||||
|
||||
<listitem><para>a bash binary
|
||||
without debugging symbols: 480 KB</para></listitem>
|
||||
|
||||
<listitem><para>Glibc and GCC files (<filename class="directory">/lib</filename>
|
||||
and <filename class="directory">/usr/lib</filename>)
|
||||
with debugging symbols: 87 MB</para></listitem>
|
||||
|
||||
<listitem><para>Glibc and GCC files
|
||||
without debugging symbols: 16 MB</para></listitem>
|
||||
|
||||
</itemizedlist>
|
||||
|
||||
<para>Sizes may vary depending on which compiler and C
|
||||
library were used, but when comparing programs with and without debugging
|
||||
symbols, the difference will usually be a factor between two and
|
||||
five.</para>
|
||||
|
||||
<para>Because most users will never use a debugger on their system
|
||||
software, a lot of disk space can be regained by removing these
|
||||
symbols. The next section shows how to strip all debugging symbols
|
||||
from the programs and libraries. Additional information on system
|
||||
optimization can be found at <ulink url="&hints-root;optimization.txt"><phrase
|
||||
condition="pdf">&hints-root; optimization.txt</phrase></ulink>.</para>
|
||||
|
||||
</sect1>
|
||||
|
||||
|
@ -3,13 +3,15 @@
|
||||
<!ENTITY % general-entities SYSTEM "../general.ent">
|
||||
%general-entities;
|
||||
]>
|
||||
<sect1 id="ch-system-autoconf" xreflabel="Autoconf" role="wrap">
|
||||
<sect1 id="ch-system-autoconf" role="wrap">
|
||||
<title>Autoconf-&autoconf-version;</title>
|
||||
<?dbhtml filename="autoconf.html"?>
|
||||
|
||||
<indexterm zone="ch-system-autoconf"><primary sortas="a-Autoconf">Autoconf</primary></indexterm>
|
||||
|
||||
<sect2 role="package"><title/>
|
||||
<para>The Autoconf package contains programs for producing shell scripts that
|
||||
can automatically configure source code.</para>
|
||||
|
||||
<segmentedlist>
|
||||
<segtitle>&buildtime;</segtitle>
|
||||
@ -17,6 +19,11 @@
|
||||
<seglistitem><seg>0.5 SBU</seg><seg>7.7 MB</seg></seglistitem>
|
||||
</segmentedlist>
|
||||
|
||||
<segmentedlist>
|
||||
<segtitle>Autoconf installation depends on</segtitle>
|
||||
<seglistitem><seg>Bash, Coreutils, Diffutils, Grep,
|
||||
M4, Make, Perl, and Sed</seg></seglistitem>
|
||||
</segmentedlist>
|
||||
</sect2>
|
||||
|
||||
<sect2 role="installation">
|
||||
@ -31,7 +38,7 @@
|
||||
<screen><userinput>make</userinput></screen>
|
||||
|
||||
<para>To test the results, issue:
|
||||
<userinput>make check</userinput></para>
|
||||
<userinput>make check</userinput>. This takes a long time, about 2 SBUs.</para>
|
||||
|
||||
<para>Install the package:</para>
|
||||
|
||||
@ -39,11 +46,97 @@
|
||||
|
||||
</sect2>
|
||||
|
||||
|
||||
<sect2 id="contents-autoconf" role="content"><title>Contents of Autoconf</title>
|
||||
|
||||
<para>See testing</para>
|
||||
<segmentedlist>
|
||||
<segtitle>Installed programs</segtitle>
|
||||
<seglistitem><seg>autoconf, autoheader, autom4te,
|
||||
autoreconf, autoscan, autoupdate, and ifnames</seg></seglistitem>
|
||||
</segmentedlist>
|
||||
|
||||
<variablelist><bridgehead renderas="sect3">Short Descriptions</bridgehead>
|
||||
<?dbfo list-presentation="list"?>
|
||||
|
||||
<varlistentry id="autoconf">
|
||||
<term><command>autoconf</command></term>
|
||||
<listitem>
|
||||
<para>Produces shell scripts that automatically
|
||||
configure software source code packages to adapt to many kinds of
|
||||
Unix-like systems. The configuration scripts it produces are
|
||||
independent—running them does not require the <command>autoconf</command> program.</para>
|
||||
<indexterm zone="ch-system-autoconf autoconf"><primary sortas="b-autoconf">autoconf</primary></indexterm>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry id="autoheader">
|
||||
<term><command>autoheader</command> </term>
|
||||
<listitem>
|
||||
<para>A tool for creating template files of C
|
||||
<emphasis>#define</emphasis> statements for configure to use</para>
|
||||
<indexterm zone="ch-system-autoconf autoheader"><primary sortas="b-autoheader">autoheader</primary></indexterm>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry id="autom4te">
|
||||
<term><command>autom4te</command></term>
|
||||
<listitem>
|
||||
<para>A wrapper for the M4 macro processor</para>
|
||||
<indexterm zone="ch-system-autoconf autom4te"><primary sortas="b-autom4te">autom4te</primary></indexterm>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry id="autoreconf">
|
||||
<term><command>autoreconf</command></term>
|
||||
<listitem>
|
||||
<para>Automatically runs <command>autoconf</command>,
|
||||
<command>autoheader</command>, <command>aclocal</command>,
|
||||
<command>automake</command>, <command>gettextize</command>, and
|
||||
<command>libtoolize</command> in the correct order to save time
|
||||
when changes are made to <command>autoconf</command> and
|
||||
<command>automake</command> template files</para>
|
||||
<indexterm zone="ch-system-autoconf autoreconf"><primary sortas="b-autoreconf">autoreconf</primary></indexterm>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry id="autoscan">
|
||||
<term><command>autoscan</command> </term>
|
||||
<listitem>
|
||||
<para>Helps to create a <filename>configure.in</filename> file for a
|
||||
software package; it examines the source files in a directory tree,
|
||||
searching them for common portability issues, and creates a
|
||||
<filename>configure.scan</filename> file that serves as as a
|
||||
preliminary <filename>configure.in</filename> file for the
|
||||
package</para>
|
||||
<indexterm zone="ch-system-autoconf autoscan"><primary sortas="b-autoscan">autoscan</primary></indexterm>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry id="autoupdate">
|
||||
<term><command>autoupdate</command></term>
|
||||
<listitem>
|
||||
<para>Modifies a <filename>configure.in</filename> file that still
|
||||
calls <command>autoconf</command> macros by their old names to use the
|
||||
current macro names</para>
|
||||
<indexterm zone="ch-system-autoconf autoupdate"><primary sortas="b-autoupdate">autoupdate</primary></indexterm>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry id="ifnames">
|
||||
<term><command>ifnames</command> </term>
|
||||
<listitem>
|
||||
<para>Helps when writing <filename>configure.in</filename> files
|
||||
for a software package; it prints the identifiers that the package
|
||||
uses in C preprocessor conditionals. If a package has already been set
|
||||
up to have some portability, this program can help determine what
|
||||
<command>configure</command> needs to check for. It can also fill in
|
||||
gaps in a <filename>configure.in</filename> file generated by
|
||||
<command>autoscan</command></para>
|
||||
<indexterm zone="ch-system-autoconf ifnames"><primary sortas="b-ifnames">ifnames</primary></indexterm>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
</variablelist>
|
||||
|
||||
</sect2>
|
||||
|
||||
</sect1>
|
||||
|
||||
|
@ -3,13 +3,15 @@
|
||||
<!ENTITY % general-entities SYSTEM "../general.ent">
|
||||
%general-entities;
|
||||
]>
|
||||
<sect1 id="ch-system-automake" xreflabel="Automake" role="wrap">
|
||||
<sect1 id="ch-system-automake" role="wrap">
|
||||
<title>Automake-&automake-version;</title>
|
||||
<?dbhtml filename="automake.html"?>
|
||||
|
||||
<indexterm zone="ch-system-automake"><primary sortas="a-Automake">Automake</primary></indexterm>
|
||||
|
||||
<sect2 role="package"><title/>
|
||||
<para>The Automake package contains programs for generating Makefiles for use
|
||||
with Autoconf.</para>
|
||||
|
||||
<segmentedlist>
|
||||
<segtitle>&buildtime;</segtitle>
|
||||
@ -17,6 +19,11 @@
|
||||
<seglistitem><seg>0.2 SBU</seg><seg>6.8 MB</seg></seglistitem>
|
||||
</segmentedlist>
|
||||
|
||||
<segmentedlist>
|
||||
<segtitle>Automake installation depends on</segtitle>
|
||||
<seglistitem><seg>Autoconf, Bash, Coreutils,
|
||||
Diffutils, Grep, M4, Make, Perl, and Sed</seg></seglistitem>
|
||||
</segmentedlist>
|
||||
</sect2>
|
||||
|
||||
<sect2 role="installation">
|
||||
@ -31,7 +38,7 @@
|
||||
<screen><userinput>make</userinput></screen>
|
||||
|
||||
<para>To test the results, issue:
|
||||
<userinput>make check</userinput></para>
|
||||
<userinput>make check</userinput>. This takes a long time, about 5 SBUs.</para>
|
||||
|
||||
<para>Install the package:</para>
|
||||
|
||||
@ -42,8 +49,168 @@
|
||||
|
||||
<sect2 id="contents-automake" role="content"><title>Contents of Automake</title>
|
||||
|
||||
<para>See testing</para>
|
||||
<segmentedlist>
|
||||
<segtitle>Installed programs</segtitle>
|
||||
<seglistitem><seg>acinstall, aclocal, aclocal-&automake-version;,
|
||||
automake, automake-&automake-version;,
|
||||
compile, config.guess, config.sub, depcomp, elisp-comp, install-sh, mdate-sh,
|
||||
missing, mkinstalldirs, py-compile, symlink-tree, and ylwrap</seg></seglistitem>
|
||||
</segmentedlist>
|
||||
|
||||
<variablelist><bridgehead renderas="sect3">Short Descriptions</bridgehead>
|
||||
<?dbfo list-presentation="list"?>
|
||||
|
||||
<varlistentry id="acinstall">
|
||||
<term><command>acinstall</command></term>
|
||||
<listitem>
|
||||
<para>A script that installs aclocal-style M4 files</para>
|
||||
<indexterm zone="ch-system-automake acinstall"><primary sortas="b-acinstall">acinstall</primary></indexterm>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry id="aclocal">
|
||||
<term><command>aclocal</command></term>
|
||||
<listitem>
|
||||
<para>Generates <filename>aclocal.m4</filename>
|
||||
files based on the contents of <filename>configure.in</filename> files</para>
|
||||
<indexterm zone="ch-system-automake aclocal"><primary sortas="b-aclocal">aclocal</primary></indexterm>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry id="aclocal-version">
|
||||
<term><command>aclocal-&automake-version;</command></term>
|
||||
<listitem>
|
||||
<para>A hard link to <command>aclocal</command></para>
|
||||
<indexterm zone="ch-system-automake aclocal-version"><primary
|
||||
sortas="b-aclocal-&automake-version;">aclocal-&automake-version;</primary></indexterm>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry id="automake">
|
||||
<term><command>automake</command></term>
|
||||
<listitem>
|
||||
<para>A tool for automatically generating
|
||||
<filename>Makefile.in</filename> files from
|
||||
<filename>Makefile.am</filename> files. To create all the
|
||||
<filename>Makefile.in</filename> files for a package, run this program
|
||||
in the top-level directory. By scanning the
|
||||
<filename>configure.in</filename> file, it automatically finds each
|
||||
appropriate <filename>Makefile.am</filename> file and generate the
|
||||
corresponding <filename>Makefile.in</filename> file</para>
|
||||
<indexterm zone="ch-system-automake automake"><primary sortas="b-automake">automake</primary></indexterm>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry id="automake-version">
|
||||
<term><command>automake-&automake-version;</command></term>
|
||||
<listitem>
|
||||
<para>A hard link to <command>automake</command></para>
|
||||
<indexterm zone="ch-system-automake automake-version"><primary
|
||||
sortas="b-automake-&automake-version;">automake-&automake-version;</primary></indexterm>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry id="compile">
|
||||
<term><command>compile</command></term>
|
||||
<listitem>
|
||||
<para>A wrapper for compilers</para>
|
||||
<indexterm zone="ch-system-automake compile"><primary sortas="b-compile">compile</primary></indexterm>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry id="config.guess">
|
||||
<term><command>config.guess</command></term>
|
||||
<listitem>
|
||||
<para>A script that attempts to guess
|
||||
the canonical triplet for the given build, host, or target architecture</para>
|
||||
<indexterm zone="ch-system-automake config.guess"><primary sortas="b-config.guess">config.guess</primary></indexterm>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry id="config.sub">
|
||||
<term><command>config.sub</command></term>
|
||||
<listitem>
|
||||
<para>A configuration validation subroutine script</para>
|
||||
<indexterm zone="ch-system-automake config.sub"><primary sortas="b-config.sub">config.sub</primary></indexterm>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry id="depcomp">
|
||||
<term><command>depcomp</command></term>
|
||||
<listitem>
|
||||
<para>A script for compiling a program so that dependency information
|
||||
is generated in addition to the desired output</para>
|
||||
<indexterm zone="ch-system-automake depcomp"><primary sortas="b-depcomp">depcomp</primary></indexterm>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry id="elisp-comp">
|
||||
<term><command>elisp-comp</command></term>
|
||||
<listitem>
|
||||
<para>Byte-compiles Emacs Lisp code</para>
|
||||
<indexterm zone="ch-system-automake elisp-comp"><primary sortas="b-elisp-comp">elisp-comp</primary></indexterm>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry id="install-sh">
|
||||
<term><command>install-sh</command></term>
|
||||
<listitem>
|
||||
<para>A script that installs a program, script, or data file</para>
|
||||
<indexterm zone="ch-system-automake install-sh"><primary sortas="b-install-sh">install-sh</primary></indexterm>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry id="mdate-sh">
|
||||
<term><command>mdate-sh</command></term>
|
||||
<listitem>
|
||||
<para>A script that prints the modification time of a file or directory</para>
|
||||
<indexterm zone="ch-system-automake mdate-sh"><primary sortas="b-mdate-sh">mdate-sh</primary></indexterm>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry id="missing">
|
||||
<term><command>missing</command></term>
|
||||
<listitem>
|
||||
<para>A script acting as a common stub for missing GNU programs during
|
||||
an installation</para>
|
||||
<indexterm zone="ch-system-automake missing"><primary sortas="b-missing">missing</primary></indexterm>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry id="mkinstalldirs">
|
||||
<term><command>mkinstalldirs</command></term>
|
||||
<listitem>
|
||||
<para>A script that creates a directory tree</para>
|
||||
<indexterm zone="ch-system-automake mkinstalldirs"><primary sortas="b-mkinstalldirs">mkinstalldirs</primary></indexterm>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry id="py-compile">
|
||||
<term><command>py-compile</command></term>
|
||||
<listitem>
|
||||
<para>Compiles a Python program</para>
|
||||
<indexterm zone="ch-system-automake py-compile"><primary sortas="b-py-compile">py-compile</primary></indexterm>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry id="symlink-tree">
|
||||
<term><command>symlink-tree</command></term>
|
||||
<listitem>
|
||||
<para>A script to create a symlink tree of a directory tree</para>
|
||||
<indexterm zone="ch-system-automake symlink-tree"><primary sortas="b-symlink-tree">symlink-tree</primary></indexterm>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry id="ylwrap">
|
||||
<term><command>ylwrap</command></term>
|
||||
<listitem>
|
||||
<para>A wrapper for <command>lex</command> and <command>yacc</command></para>
|
||||
<indexterm zone="ch-system-automake ylwrap"><primary sortas="b-ylwrap">ylwrap</primary></indexterm>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
</variablelist>
|
||||
|
||||
</sect2>
|
||||
|
||||
</sect1>
|
||||
|
||||
|
@ -3,13 +3,14 @@
|
||||
<!ENTITY % general-entities SYSTEM "../general.ent">
|
||||
%general-entities;
|
||||
]>
|
||||
<sect1 id="ch-system-bash" xreflabel="Bash" role="wrap">
|
||||
<sect1 id="ch-system-bash" role="wrap">
|
||||
<title>Bash-&bash-version;</title>
|
||||
<?dbhtml filename="bash.html"?>
|
||||
|
||||
<indexterm zone="ch-system-bash"><primary sortas="a-Bash">Bash</primary></indexterm>
|
||||
|
||||
<sect2 role="package"><title/>
|
||||
<para>The Bash package contains the Bourne-Again SHell.</para>
|
||||
|
||||
<segmentedlist>
|
||||
<segtitle>&buildtime;</segtitle>
|
||||
@ -17,16 +18,24 @@
|
||||
<seglistitem><seg>1.2 SBU</seg><seg>27 MB</seg></seglistitem>
|
||||
</segmentedlist>
|
||||
|
||||
<segmentedlist>
|
||||
<segtitle>Bash installation depends on</segtitle>
|
||||
<seglistitem><seg>Binutils, Coreutils, Diffutils, Gawk,
|
||||
GCC, Glibc, Grep, Make, Ncurses, and Sed.</seg></seglistitem>
|
||||
</segmentedlist>
|
||||
</sect2>
|
||||
|
||||
<sect2 role="installation">
|
||||
<title>Installation of Bash</title>
|
||||
|
||||
<para>Apply a patch:</para>
|
||||
<!-- Edit Me -->
|
||||
<para>The following patch fixes various issues, including a problem where Bash
|
||||
will sometimes only show 33 characters on a line, then wrap to the next:</para>
|
||||
|
||||
<screen><userinput>patch -Np1 -i ../bash-&bash-version;-fixes-1.patch</userinput></screen>
|
||||
|
||||
<para>Apply another patch:</para>
|
||||
<para>Bash also has issues when compiled against newer versions of Glibc. The
|
||||
following patch resolves this problem:</para>
|
||||
|
||||
<screen><userinput>patch -Np1 -i ../bash-&bash-version;-avoid_WCONTINUED-1.patch</userinput></screen>
|
||||
|
||||
@ -35,6 +44,17 @@
|
||||
<screen><userinput>./configure --prefix=/usr --bindir=/bin \
|
||||
--without-bash-malloc --with-installed-readline</userinput></screen>
|
||||
|
||||
<para>The meaning of the configure option:</para>
|
||||
|
||||
<variablelist>
|
||||
<varlistentry>
|
||||
<term><parameter>--with-installed-readline</parameter></term>
|
||||
<listitem><para>This options tells Bash to use the
|
||||
<filename class="libraryfile">readline</filename> library that is already installed
|
||||
on the system rather than using its own readline version.</para></listitem>
|
||||
</varlistentry>
|
||||
</variablelist>
|
||||
|
||||
<para>Compile the package:</para>
|
||||
|
||||
<screen><userinput>make</userinput></screen>
|
||||
@ -46,17 +66,60 @@
|
||||
|
||||
<screen><userinput>make install</userinput></screen>
|
||||
|
||||
<para>Run the newly compiled <command>bash</command> program:</para>
|
||||
<para>Run the newly compiled <command>bash</command> program (replacing the one that is
|
||||
currently being executed):</para>
|
||||
|
||||
<screen><userinput>exec /bin/bash --login +h</userinput></screen>
|
||||
|
||||
<note><para>The parameters used make the <command>bash</command>
|
||||
process an interactive login shell and continue to disable hashing so
|
||||
that new programs are found as they become available.</para></note>
|
||||
|
||||
</sect2>
|
||||
|
||||
|
||||
<sect2 id="contents-bash" role="content"><title>Contents of Bash</title>
|
||||
|
||||
<para>See testing</para>
|
||||
<segmentedlist>
|
||||
<segtitle>Installed programs</segtitle>
|
||||
<seglistitem><seg>bash, bashbug, and sh (link to bash)</seg></seglistitem>
|
||||
</segmentedlist>
|
||||
|
||||
<variablelist><bridgehead renderas="sect3">Short Descriptions</bridgehead>
|
||||
<?dbfo list-presentation="list"?>
|
||||
|
||||
<varlistentry id="bash">
|
||||
<term><command>bash</command></term>
|
||||
<listitem>
|
||||
<para>A widely-used command interpreter; it performs many types of
|
||||
expansions and substitutions on a given command line before executing
|
||||
it, thus making this interpreter a powerful tool</para>
|
||||
<indexterm zone="ch-system-bash bash"><primary sortas="b-bash">bash</primary></indexterm>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry id="bashbug">
|
||||
<term><command>bashbug</command></term>
|
||||
<listitem>
|
||||
<para>A shell script to help the user compose and mail bug reports
|
||||
concerning <command>bash</command> in a standard format</para>
|
||||
<indexterm zone="ch-system-bash bashbug"><primary sortas="b-bashbug">bashbug</primary></indexterm>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry id="sh">
|
||||
<term><command>sh</command></term>
|
||||
<listitem>
|
||||
<para>A symlink to the <command>bash</command> program; when invoked
|
||||
as <command>sh</command>, <command>bash</command> tries to mimic the
|
||||
startup behavior of historical versions of <command>sh</command> as
|
||||
closely as possible, while conforming to the POSIX standard as well</para>
|
||||
<indexterm zone="ch-system-bash sh"><primary sortas="b-sh">sh</primary></indexterm>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
</variablelist>
|
||||
|
||||
</sect2>
|
||||
|
||||
</sect1>
|
||||
|
||||
|
@ -3,13 +3,15 @@
|
||||
<!ENTITY % general-entities SYSTEM "../general.ent">
|
||||
%general-entities;
|
||||
]>
|
||||
<sect1 id="ch-system-binutils" xreflabel="Binutils" role="wrap">
|
||||
<sect1 id="ch-system-binutils" role="wrap">
|
||||
<title>Binutils-&binutils-version;</title>
|
||||
<?dbhtml filename="binutils.html"?>
|
||||
|
||||
<indexterm zone="ch-system-binutils"><primary sortas="a-Binutils">Binutils</primary></indexterm>
|
||||
|
||||
<sect2 role="package"><title/>
|
||||
<para>The Binutils package contains a linker, an assembler, and other tools for
|
||||
handling object files.</para>
|
||||
|
||||
<segmentedlist>
|
||||
<segtitle>&buildtime;</segtitle>
|
||||
@ -17,21 +19,45 @@
|
||||
<seglistitem><seg>1.4 SBU</seg><seg>167 MB</seg></seglistitem>
|
||||
</segmentedlist>
|
||||
|
||||
<segmentedlist>
|
||||
<segtitle>Binutils installation depends on</segtitle>
|
||||
<seglistitem><seg>Bash, Bison, Coreutils, Diffutils, Flex, GCC, Gettext,
|
||||
Glibc, Grep, M4, Make, Perl, Sed, and Texinfo</seg></seglistitem>
|
||||
</segmentedlist>
|
||||
</sect2>
|
||||
|
||||
<sect2 role="installation">
|
||||
<title>Installation of Binutils</title>
|
||||
|
||||
<para>Check if there is PTYs for the test suites:</para>
|
||||
<para>This package is known to have issues when its default
|
||||
optimization flags (including the <parameter>-march</parameter> and
|
||||
<parameter>-mcpu</parameter> options) are changed. If any environment
|
||||
variables that override default optimizations have been defined, such
|
||||
as <envar>CFLAGS</envar> and <envar>CXXFLAGS</envar>,
|
||||
unset them when building Binutils.</para>
|
||||
|
||||
<para>Verify that the PTYs are working properly inside the chroot
|
||||
environment. Check that everything is set up correctly by performing a
|
||||
simple test:</para>
|
||||
|
||||
<screen><userinput>expect -c "spawn ls"</userinput></screen>
|
||||
|
||||
<para>Create the build directory:</para>
|
||||
<para>If the following message shows up, the chroot environment is not
|
||||
set up for proper PTY operation:</para>
|
||||
|
||||
<screen><computeroutput>The system has no more ptys.
|
||||
Ask your system administrator to create more.</computeroutput></screen>
|
||||
|
||||
<para>This issue needs to be resolved before running the test suites
|
||||
for Binutils and GCC.</para>
|
||||
|
||||
<para>The Binutils documentation recommends building Binutils outside of the
|
||||
source directory in a dedicated build directory:</para>
|
||||
|
||||
<screen><userinput>mkdir ../binutils-build
|
||||
cd ../binutils-build</userinput></screen>
|
||||
|
||||
<para>Now prepare Binutils for compilation:</para>
|
||||
<para>Prepare Binutils for compilation:</para>
|
||||
|
||||
<screen><userinput>../binutils-&binutils-version;/configure --prefix=/usr \
|
||||
--enable-shared</userinput></screen>
|
||||
@ -40,19 +66,33 @@ cd ../binutils-build</userinput></screen>
|
||||
|
||||
<screen><userinput>make tooldir=/usr</userinput></screen>
|
||||
|
||||
<para>Normally, the tooldir (the directory where the executables will
|
||||
ultimately be located) is set to <filename
|
||||
class="directory">$(exec_prefix)/$(target_alias)</filename>, which
|
||||
expands into <phrase condition="html"><filename
|
||||
class="directory">/usr/i686-pc-linux-gnu</filename></phrase><phrase
|
||||
condition="pdf"><filename class="directory">/usr/i686-pc-
|
||||
linux-gnu</filename></phrase>. Because this is a custom system, this
|
||||
target-specific directory in <filename
|
||||
class="directory">/usr</filename> is not required. This setup would be
|
||||
used if the system was used to cross-compile (for example, compiling a
|
||||
package on an Intel machine that generates code that can be executed
|
||||
on PowerPC machines).</para>
|
||||
|
||||
<important><para>The test suite for Binutils in this section is
|
||||
considered critical. Do not skip it under any
|
||||
circumstances.</para></important>
|
||||
|
||||
<para>Test the results:</para>
|
||||
|
||||
<!--NEW-->
|
||||
<screen><userinput>make -k check</userinput></screen>
|
||||
|
||||
<para>The test suite notes from <xref linkend="ch-tools-binutils-pass2"/> are still
|
||||
very much appropriate here..</para>
|
||||
<screen><userinput>make check</userinput></screen>
|
||||
|
||||
<para>Install the package:</para>
|
||||
|
||||
<screen><userinput>make tooldir=/usr install</userinput></screen>
|
||||
|
||||
<para>Install the <filename class="headerfile">libiberty</filename> header file:</para>
|
||||
<para>Install the <filename class="headerfile">libiberty</filename> header file that is needed by
|
||||
some packages:</para>
|
||||
|
||||
<screen><userinput>cp ../binutils-&binutils-version;/include/libiberty.h /usr/include</userinput></screen>
|
||||
|
||||
@ -61,8 +101,176 @@ very much appropriate here..</para>
|
||||
|
||||
<sect2 id="contents-binutils" role="content"><title>Contents of Binutils</title>
|
||||
|
||||
<para>See testing</para>
|
||||
<segmentedlist>
|
||||
<segtitle>Installed programs</segtitle>
|
||||
<segtitle>Installed libraries</segtitle>
|
||||
<seglistitem><seg>addr2line, ar, as, c++filt, gprof, ld, nm, objcopy, objdump,
|
||||
ranlib, readelf, size, strings, and strip</seg>
|
||||
<seg>libiberty.a, libbfd.[a,so], and libopcodes.[a,so]</seg></seglistitem>
|
||||
</segmentedlist>
|
||||
|
||||
<variablelist><bridgehead renderas="sect3">Short Descriptions</bridgehead>
|
||||
<?dbfo list-presentation="list"?>
|
||||
|
||||
<varlistentry id="addr2line">
|
||||
<term><command>addr2line</command></term>
|
||||
<listitem>
|
||||
<para>Translates program addresses to file names and line numbers;
|
||||
given an address and the name of an executable, it uses the debugging
|
||||
information in the executable to determine which source file and line
|
||||
number are associated with the address</para>
|
||||
<indexterm zone="ch-system-binutils addr2line"><primary sortas="b-addr2line">addr2line</primary></indexterm>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry id="ar">
|
||||
<term><command>ar</command></term>
|
||||
<listitem>
|
||||
<para>Creates, modifies, and extracts from archives</para>
|
||||
<indexterm zone="ch-system-binutils ar"><primary sortas="b-ar">ar</primary></indexterm>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry id="as">
|
||||
<term><command>as</command></term>
|
||||
<listitem>
|
||||
<para>An assembler that assembles the output of <command>gcc</command>
|
||||
into object files</para>
|
||||
<indexterm zone="ch-system-binutils as"><primary sortas="b-as">as</primary></indexterm>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry id="c-filt">
|
||||
<term><command>c++filt</command></term>
|
||||
<listitem>
|
||||
<para>Used by the linker to de-mangle C++ and Java symbols and to keep
|
||||
overloaded functions from clashing</para>
|
||||
<indexterm zone="ch-system-binutils c-filt"><primary sortas="b-c++filt">c++filt</primary></indexterm>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry id="gprof">
|
||||
<term><command>gprof</command></term>
|
||||
<listitem>
|
||||
<para>Displays call graph profile data</para>
|
||||
<indexterm zone="ch-system-binutils gprof"><primary sortas="b-gprof">gprof</primary></indexterm>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry id="ld">
|
||||
<term><command>ld</command></term>
|
||||
<listitem>
|
||||
<para>A linker that combines a number of object and archive files into a single file,
|
||||
relocating their data and tying up symbol references</para>
|
||||
<indexterm zone="ch-system-binutils ld"><primary sortas="b-ld">ld</primary></indexterm>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry id="nm">
|
||||
<term><command>nm</command></term>
|
||||
<listitem>
|
||||
<para>Lists the symbols occurring in a given object file</para>
|
||||
<indexterm zone="ch-system-binutils nm"><primary sortas="b-nm">nm</primary></indexterm>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry id="objcopy">
|
||||
<term><command>objcopy</command></term>
|
||||
<listitem>
|
||||
<para>Translates one type of object file into another</para>
|
||||
<indexterm zone="ch-system-binutils objcopy"><primary sortas="b-objcopy">objcopy</primary></indexterm>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry id="objdump">
|
||||
<term><command>objdump</command></term>
|
||||
<listitem>
|
||||
<para>Displays information about the given object file, with options
|
||||
controlling the particular information to display; the information
|
||||
shown is useful to programmers who are working on the compilation
|
||||
tools</para>
|
||||
<indexterm zone="ch-system-binutils objdump"><primary sortas="b-objdump">objdump</primary></indexterm>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry id="ranlib">
|
||||
<term><command>ranlib</command></term>
|
||||
<listitem>
|
||||
<para>Generates an index of the contents of an archive and stores it
|
||||
in the archive; the index lists all of the symbols defined by archive
|
||||
members that are relocatable object files</para>
|
||||
<indexterm zone="ch-system-binutils ranlib"><primary sortas="b-ranlib">ranlib</primary></indexterm>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry id="readelf">
|
||||
<term><command>readelf</command></term>
|
||||
<listitem>
|
||||
<para>Displays information about ELF type binaries</para>
|
||||
<indexterm zone="ch-system-binutils readelf"><primary sortas="b-readelf">readelf</primary></indexterm>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry id="size">
|
||||
<term><command>size</command></term>
|
||||
<listitem>
|
||||
<para>Lists the section sizes and the total size for the given object files</para>
|
||||
<indexterm zone="ch-system-binutils size"><primary sortas="b-size">size</primary></indexterm>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry id="strings">
|
||||
<term><command>strings</command></term>
|
||||
<listitem>
|
||||
<para>Outputs, for each given file, the sequences of printable
|
||||
characters that are of at least the specified length (defaulting to
|
||||
four); for object files, it prints, by default, only the strings from
|
||||
the initializing and loading sections while for other types of files, it
|
||||
scans the entire file</para>
|
||||
<indexterm zone="ch-system-binutils strings"><primary sortas="b-strings">strings</primary></indexterm>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry id="strip">
|
||||
<term><command>strip</command></term>
|
||||
<listitem>
|
||||
<para>Discards symbols from object files</para>
|
||||
<indexterm zone="ch-system-binutils strip"><primary sortas="b-strip">strip</primary></indexterm>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry id="libiberty">
|
||||
<term><filename class="libraryfile">libiberty</filename></term>
|
||||
<listitem>
|
||||
<para>Contains routines used by various GNU programs, including
|
||||
<command>getopt</command>, <command>obstack</command>,
|
||||
<command>strerror</command>, <command>strtol</command>, and
|
||||
<command>strtoul</command></para>
|
||||
<indexterm zone="ch-system-binutils libiberty"><primary sortas="c-libiberty">libiberty</primary></indexterm>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry id="libbfd">
|
||||
<term><filename class="libraryfile">libbfd</filename></term>
|
||||
<listitem>
|
||||
<para>The Binary File Descriptor library</para>
|
||||
<indexterm zone="ch-system-binutils libbfd"><primary sortas="c-libbfd">libbfd</primary></indexterm>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry id="libopcodes">
|
||||
<term><filename class="libraryfile">libopcodes</filename></term>
|
||||
<listitem>
|
||||
<para>A library for dealing with opcodes—the <quote>readable
|
||||
text</quote> versions of instructions for the processor;
|
||||
it is used for building utilities like
|
||||
<command>objdump</command>.</para>
|
||||
<indexterm zone="ch-system-binutils libopcodes"><primary sortas="c-libopcodes">libopcodes</primary></indexterm>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
</variablelist>
|
||||
|
||||
</sect2>
|
||||
|
||||
</sect1>
|
||||
|
||||
|
@ -3,13 +3,14 @@
|
||||
<!ENTITY % general-entities SYSTEM "../general.ent">
|
||||
%general-entities;
|
||||
]>
|
||||
<sect1 id="ch-system-bison" xreflabel="Bison" role="wrap">
|
||||
<sect1 id="ch-system-bison" role="wrap">
|
||||
<title>Bison-&bison-version;</title>
|
||||
<?dbhtml filename="bison.html"?>
|
||||
|
||||
<indexterm zone="ch-system-bison"><primary sortas="a-Bison">Bison</primary></indexterm>
|
||||
|
||||
<sect2 role="package"><title/>
|
||||
<para>The Bison package contains a parser generator.</para>
|
||||
|
||||
<segmentedlist>
|
||||
<segtitle>&buildtime;</segtitle>
|
||||
@ -17,6 +18,11 @@
|
||||
<seglistitem><seg>0.6 SBU</seg><seg>10.6 MB</seg></seglistitem>
|
||||
</segmentedlist>
|
||||
|
||||
<segmentedlist>
|
||||
<segtitle>Bison installation depends on</segtitle>
|
||||
<seglistitem><seg>Bash, Binutils, Coreutils, Diffutils,
|
||||
GCC, Gettext, Glibc, Grep, M4, Make, and Sed</seg></seglistitem>
|
||||
</segmentedlist>
|
||||
</sect2>
|
||||
|
||||
<sect2 role="installation">
|
||||
@ -33,17 +39,57 @@
|
||||
<para>To test the results, issue:
|
||||
<userinput>make check</userinput>.</para>
|
||||
|
||||
<para>Now install the package:</para>
|
||||
<para>Install the package:</para>
|
||||
|
||||
<screen><userinput>make install</userinput></screen>
|
||||
|
||||
</sect2>
|
||||
|
||||
|
||||
<sect2 id="contents-bison" role="content"><title>Contents of Bison</title>
|
||||
|
||||
<para>See testing</para>
|
||||
<segmentedlist>
|
||||
<segtitle>Installed programs</segtitle>
|
||||
<segtitle>Installed library</segtitle>
|
||||
<seglistitem><seg>bison and yacc</seg><seg>liby.a</seg></seglistitem>
|
||||
</segmentedlist>
|
||||
|
||||
<variablelist><bridgehead renderas="sect3">Short Descriptions</bridgehead>
|
||||
<?dbfo list-presentation="list"?>
|
||||
|
||||
<varlistentry id="bison">
|
||||
<term><command>bison</command></term>
|
||||
<listitem>
|
||||
<para>generates, from a series of rules, a program for analyzing the
|
||||
structure of text files; <application>Bison</application> is a
|
||||
replacement for <application>Yacc</application> (Yet Another Compiler
|
||||
Compiler)</para>
|
||||
<indexterm zone="ch-system-bison bison"><primary sortas="b-bison">bison</primary></indexterm>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry id="yacc">
|
||||
<term><command>yacc</command></term>
|
||||
<listitem>
|
||||
<para>a wrapper for <command>bison</command>, meant for programs
|
||||
that still call <command>yacc</command> instead of <command>bison</command>;
|
||||
it calls <command>bison</command> with the <parameter>-y</parameter> option</para>
|
||||
<indexterm zone="ch-system-bison yacc"><primary sortas="b-yacc">yacc</primary></indexterm>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry id="liby.a">
|
||||
<term><filename class="libraryfile">liby.a</filename></term>
|
||||
<listitem>
|
||||
<para>the Yacc library containing implementations of Yacc-compatible
|
||||
<emphasis>yyerror</emphasis> and <emphasis>main</emphasis> functions;
|
||||
this library is normally not very useful, but POSIX requires
|
||||
it</para>
|
||||
<indexterm zone="ch-system-bison liby.a"><primary sortas="c-liby.a">liby.a</primary></indexterm>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
</variablelist>
|
||||
|
||||
</sect2>
|
||||
|
||||
</sect1>
|
||||
|
||||
|
@ -3,13 +3,16 @@
|
||||
<!ENTITY % general-entities SYSTEM "../general.ent">
|
||||
%general-entities;
|
||||
]>
|
||||
<sect1 id="ch-system-bzip2" xreflabel="Bzip2" role="wrap">
|
||||
<sect1 id="ch-system-bzip2" role="wrap">
|
||||
<title>Bzip2-&bzip2-version;</title>
|
||||
<?dbhtml filename="bzip2.html"?>
|
||||
|
||||
<indexterm zone="ch-system-bzip2"><primary sortas="a-Bzip2">Bzip2</primary></indexterm>
|
||||
|
||||
<sect2 role="package"><title/>
|
||||
<para>The Bzip2 package contains programs for compressing and decompressing
|
||||
files. Text files yield a much better compression than with the
|
||||
traditional <command>gzip</command>.</para>
|
||||
|
||||
<segmentedlist>
|
||||
<segtitle>&buildtime;</segtitle>
|
||||
@ -17,6 +20,11 @@
|
||||
<seglistitem><seg>0.1 SBU</seg><seg>3.0 MB</seg></seglistitem>
|
||||
</segmentedlist>
|
||||
|
||||
<segmentedlist>
|
||||
<segtitle>Bzip2 installation depends on</segtitle>
|
||||
<seglistitem><seg>Bash, Binutils, Coreutils, Diffutils,
|
||||
GCC, Glibc, and Make</seg></seglistitem>
|
||||
</segmentedlist>
|
||||
</sect2>
|
||||
|
||||
<sect2 role="installation">
|
||||
@ -27,15 +35,27 @@
|
||||
<screen><userinput>make -f Makefile-libbz2_so
|
||||
make clean</userinput></screen>
|
||||
|
||||
<para>The <parameter>-f</parameter> flag will cause Bzip2 to be built
|
||||
using a different <filename>Makefile</filename> file, in this case the
|
||||
<filename>Makefile-libbz2_so</filename> file, which creates a dynamic
|
||||
<filename class="libraryfile">libbz2.so</filename> library and links the Bzip2
|
||||
utilities against it.</para>
|
||||
|
||||
<para>Compile the package:</para>
|
||||
|
||||
<screen><userinput>make</userinput></screen>
|
||||
|
||||
<para>Install the package:</para>
|
||||
<para>If reinstalling Bzip2, perform
|
||||
<userinput>rm -f /usr/bin/bz*</userinput> first, otherwise the following
|
||||
<command>make install</command> will fail.</para>
|
||||
|
||||
<para>Install the programs:</para>
|
||||
|
||||
<screen><userinput>make install</userinput></screen>
|
||||
|
||||
<para>Do some location changes:</para>
|
||||
<para>Install the shared <command>bzip2</command> binary into the
|
||||
<filename class="directory">/bin</filename> directory, make
|
||||
some necessary symbolic links, and clean up:</para>
|
||||
|
||||
<screen><userinput>cp bzip2-shared /bin/bzip2
|
||||
cp -a libbz2.so* /lib
|
||||
@ -49,8 +69,120 @@ ln -s bzip2 /bin/bzcat</userinput></screen>
|
||||
|
||||
<sect2 id="contents-bzip2" role="content"><title>Contents of Bzip2</title>
|
||||
|
||||
<para>See testing</para>
|
||||
<segmentedlist>
|
||||
<segtitle>Installed programs</segtitle>
|
||||
<segtitle>Installed libraries</segtitle>
|
||||
<seglistitem><seg>bunzip2 (link to bzip2), bzcat (link to bzip2), bzcmp, bzdiff,
|
||||
bzegrep, bzfgrep, bzgrep, bzip2, bzip2recover, bzless, and bzmore</seg>
|
||||
<seg>libbz2.a, libbz2.so (link to libbz2.so.1.0), libbz2.so.1.0 (link to
|
||||
libbz2.so.&bzip2-version;), and libbz2.so.&bzip2-version;</seg></seglistitem>
|
||||
</segmentedlist>
|
||||
|
||||
<variablelist><bridgehead renderas="sect3">Short Descriptions</bridgehead>
|
||||
<?dbfo list-presentation="list"?>
|
||||
|
||||
<varlistentry id="bunzip2">
|
||||
<term><command>bunzip2</command></term>
|
||||
<listitem>
|
||||
<para>Decompresses bzipped files</para>
|
||||
<indexterm zone="ch-system-bzip2 bunzip2"><primary sortas="b-bunzip2">bunzip2</primary></indexterm>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry id="bzcat">
|
||||
<term><command>bzcat</command></term>
|
||||
<listitem>
|
||||
<para>Decompresses to standard output</para>
|
||||
<indexterm zone="ch-system-bzip2 bzcat"><primary sortas="b-bzcat">bzcat</primary></indexterm>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry id="bzcmp">
|
||||
<term><command>bzcmp</command></term>
|
||||
<listitem>
|
||||
<para>Runs <command>cmp</command> on bzipped files</para>
|
||||
<indexterm zone="ch-system-bzip2 bzcmp"><primary sortas="b-bzcmp">bzcmp</primary></indexterm>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry id="bzdiff">
|
||||
<term><command>bzdiff</command></term>
|
||||
<listitem>
|
||||
<para>Runs <command>diff</command> on bzipped files</para>
|
||||
<indexterm zone="ch-system-bzip2 bzdiff"><primary sortas="b-bzdiff">bzdiff</primary></indexterm>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry id="bzgrep">
|
||||
<term><command>bzgrep</command></term>
|
||||
<listitem>
|
||||
<para>Runs <command>grep</command> on bzipped files</para>
|
||||
<indexterm zone="ch-system-bzip2 bzgrep"><primary sortas="b-bzgrep">bzgrep</primary></indexterm>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry id="bzegrep">
|
||||
<term><command>bzegrep</command></term>
|
||||
<listitem>
|
||||
<para>Runs <command>egrep</command> on bzipped files</para>
|
||||
<indexterm zone="ch-system-bzip2 bzegrep"><primary sortas="b-bzegrep">bzegrep</primary></indexterm>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry id="bzfgrep">
|
||||
<term><command>bzfgrep</command></term>
|
||||
<listitem>
|
||||
<para>Runs <command>fgrep</command> on bzipped files</para>
|
||||
<indexterm zone="ch-system-bzip2 bzfgrep"><primary sortas="b-bzfgrep">bzfgrep</primary></indexterm>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry id="bzip2">
|
||||
<term><command>bzip2</command></term>
|
||||
<listitem>
|
||||
<para>Compresses files using the Burrows-Wheeler block sorting text
|
||||
compression algorithm with Huffman coding; the compression rate is
|
||||
better than that achieved by more conventional compressors using
|
||||
<quote>Lempel-Ziv</quote> algorithms, like <command>gzip</command></para>
|
||||
<indexterm zone="ch-system-bzip2 bzip2"><primary sortas="b-bzip2">bzip2</primary></indexterm>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry id="bzip2recover">
|
||||
<term><command>bzip2recover</command></term>
|
||||
<listitem>
|
||||
<para>Tries to recover data from damaged bzipped files</para>
|
||||
<indexterm zone="ch-system-bzip2 bzip2recover"><primary sortas="b-bzip2recover">bzip2recover</primary></indexterm>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry id="bzless">
|
||||
<term><command>bzless</command></term>
|
||||
<listitem>
|
||||
<para>Runs <command>less</command> on bzipped files</para>
|
||||
<indexterm zone="ch-system-bzip2 bzless"><primary sortas="b-bzless">bzless</primary></indexterm>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry id="bzmore">
|
||||
<term><command>bzmore</command></term>
|
||||
<listitem>
|
||||
<para>Runs <command>more</command> on bzipped files</para>
|
||||
<indexterm zone="ch-system-bzip2 bzmore"><primary sortas="b-bzmore">bzmore</primary></indexterm>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry id="libbz2">
|
||||
<term><filename class="libraryfile">libbz2*</filename></term>
|
||||
<listitem>
|
||||
<para>The library implementing lossless, block-sorting data
|
||||
compression, using the Burrows-Wheeler algorithm</para>
|
||||
<indexterm zone="ch-system-bzip2 libbz2"><primary sortas="c-libbz2*">libbz2*</primary></indexterm>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
</variablelist>
|
||||
|
||||
</sect2>
|
||||
|
||||
</sect1>
|
||||
|
||||
|
@ -7,8 +7,34 @@
|
||||
<title>Changing Ownership</title>
|
||||
<?dbhtml filename="changingowner.html"?>
|
||||
|
||||
<para>Change the owner of <filename class="directory">/tools</filename>:</para>
|
||||
<para>Currently, the <filename class="directory">/tools</filename>
|
||||
directory is owned by the user <emphasis>lfs</emphasis>, a user that
|
||||
exists only on the host system. Although the <filename
|
||||
class="directory">/tools</filename> directory can be deleted once the
|
||||
LFS system has been finished, it can be retained to build additional
|
||||
LFS systems. If the <filename class="directory">/tools</filename>
|
||||
directory is kept as is, the files are owned by a user ID without a
|
||||
corresponding account. This is dangerous because a user account
|
||||
created later could get this same user ID and would own the <filename
|
||||
class="directory">/tools</filename> directory and all the files
|
||||
therein, thus exposing these files to possible malicious
|
||||
manipulation.</para>
|
||||
|
||||
<para>To avoid this issue, add the <emphasis>lfs</emphasis> user to
|
||||
the new LFS system later when creating the
|
||||
<filename>/etc/passwd</filename> file, taking care to assign it the
|
||||
same user and group IDs as on the host system. Alternatively, assign
|
||||
the contents of the <filename class="directory">/tools</filename>
|
||||
directory to user <emphasis>root</emphasis> by running the following
|
||||
command:</para>
|
||||
|
||||
<screen><userinput>chown -R 0:0 /tools</userinput></screen>
|
||||
|
||||
<para>The command uses <parameter>0:0</parameter> instead of
|
||||
<parameter>root:root</parameter>, because <command>chown</command>
|
||||
is unable to resolve the name <quote>root</quote> until the password
|
||||
file has been created. This book assumes you ran this
|
||||
<command>chown</command> command.</para>
|
||||
|
||||
</sect1>
|
||||
|
||||
|
@ -7,11 +7,55 @@
|
||||
<title>Entering the Chroot Environment</title>
|
||||
<?dbhtml filename="chroot.html"?>
|
||||
|
||||
<para>Enter the chroot environment:</para>
|
||||
<para>It is time to enter the chroot environment to begin
|
||||
building and installing the final LFS system. As user
|
||||
<emphasis>root</emphasis>, run the following command to enter the
|
||||
realm that is, at the moment, populated with only the temporary
|
||||
tools:</para>
|
||||
|
||||
<screen><userinput>chroot "$LFS" /tools/bin/env -i \
|
||||
HOME=/root TERM="$TERM" PS1='\u:\w\$ ' \
|
||||
PATH=/bin:/usr/bin:/sbin:/usr/sbin:/tools/bin \
|
||||
/tools/bin/bash --login +h</userinput></screen>
|
||||
|
||||
<para>The <parameter>-i</parameter> option given to the
|
||||
<command>env</command> command will clear all variables of the chroot
|
||||
environment. After that, only the <envar>HOME</envar>,
|
||||
<envar>TERM</envar>, <envar>PS1</envar>, and
|
||||
<envar>PATH</envar> variables are set again. The
|
||||
<parameter>TERM=$TERM</parameter> construct will set the
|
||||
<envar>TERM</envar> variable inside chroot to the same value as
|
||||
outside chroot. This variable is needed for programs like
|
||||
<command>vim</command> and <command>less</command> to operate
|
||||
properly. If other variables are needed, such as
|
||||
<envar>CFLAGS</envar> or <envar>CXXFLAGS</envar>, this is
|
||||
a good place to set them again.</para>
|
||||
|
||||
<para>From this point on, there is no need to use the
|
||||
<envar>LFS</envar> variable anymore, because all work will be
|
||||
restricted to the LFS file system. This is because the Bash shell is
|
||||
told that <filename class="directory">$LFS</filename> is now the root
|
||||
(<filename class="directory">/</filename>) directory.</para>
|
||||
|
||||
<para>Notice that <filename class="directory">/tools/bin</filename>
|
||||
comes last in the <envar>PATH</envar>. This means that a
|
||||
temporary tool will not be used anymore as soon as its final version
|
||||
is installed. This occurs when the shell does not <quote>remember</quote> the
|
||||
locations of executed binaries—for this reason, hashing is switched
|
||||
off by passing the <parameter>+h</parameter> option to <command>bash</command>.</para>
|
||||
|
||||
<para>It is important that all the commands throughout the remainder
|
||||
of this chapter and the following chapters be run from within the
|
||||
chroot environment. If you leave this environment for any reason
|
||||
(rebooting for example), remember to first mount the <systemitem
|
||||
class="filesystem">proc</systemitem> and <systemitem
|
||||
class="filesystem">devpts</systemitem> file systems (discussed in the
|
||||
previous section) and enter chroot again before continuing with the
|
||||
installations.</para>
|
||||
|
||||
<para>Note that the bash prompt will say <quote>I have no
|
||||
name!</quote> This is normal because the
|
||||
<filename>/etc/passwd</filename> file has not been created yet.</para>
|
||||
|
||||
</sect1>
|
||||
|
||||
|
@ -3,13 +3,15 @@
|
||||
<!ENTITY % general-entities SYSTEM "../general.ent">
|
||||
%general-entities;
|
||||
]>
|
||||
<sect1 id="ch-system-coreutils" xreflabel="Coreutils" role="wrap">
|
||||
<sect1 id="ch-system-coreutils" role="wrap">
|
||||
<title>Coreutils-&coreutils-version;</title>
|
||||
<?dbhtml filename="coreutils.html"?>
|
||||
|
||||
<indexterm zone="ch-system-coreutils"><primary sortas="a-Coreutils">Coreutils</primary></indexterm>
|
||||
|
||||
<sect2 role="package"><title/>
|
||||
<para>The Coreutils package contains utilities for showing and setting the
|
||||
basic system characteristics.</para>
|
||||
|
||||
<segmentedlist>
|
||||
<segtitle>&buildtime;</segtitle>
|
||||
@ -17,16 +19,25 @@
|
||||
<seglistitem><seg>0.9 SBU</seg><seg>69 MB</seg></seglistitem>
|
||||
</segmentedlist>
|
||||
|
||||
<segmentedlist>
|
||||
<segtitle>Coreutils installation depends on</segtitle>
|
||||
<seglistitem><seg>Bash, Binutils, Coreutils, Diffutils, GCC,
|
||||
Gettext, Glibc, Grep, Make, Perl, and Sed</seg></seglistitem>
|
||||
</segmentedlist>
|
||||
</sect2>
|
||||
|
||||
<sect2 role="installation">
|
||||
<title>Installation of Coreutils</title>
|
||||
|
||||
<para>Apply a patch:</para>
|
||||
<para>A known issue with the <command>uname</command> program from
|
||||
this package is that the <parameter>-p</parameter> switch always
|
||||
returns <computeroutput>unknown</computeroutput>. The following patch
|
||||
fixes this behavior for Intel architectures:</para>
|
||||
|
||||
<screen><userinput>patch -Np1 -i ../coreutils-&coreutils-version;-uname-2.patch</userinput></screen>
|
||||
|
||||
<para>Apply another patch:</para>
|
||||
<para>Prevent Coreutils from installing binaries that will be later be
|
||||
installed by other packages:</para>
|
||||
|
||||
<screen><userinput>patch -Np1 -i \
|
||||
../coreutils-&coreutils-version;-suppress_uptime_kill_su-1.patch</userinput></screen>
|
||||
@ -39,21 +50,30 @@
|
||||
|
||||
<screen><userinput>make</userinput></screen>
|
||||
|
||||
<para>The test suite of Coreutils makes several assumptions about the
|
||||
presence of files and users that are not valid this early in the LFS
|
||||
build. Therefore, additional items need to be set up before running
|
||||
the tests. Skip down to <quote>Install the package</quote> if
|
||||
not running the test suite.</para>
|
||||
|
||||
<para>Create two dummy groups and a dummy user name:</para>
|
||||
|
||||
<screen><userinput>echo "dummy1:x:1000:" >> /etc/group
|
||||
echo "dummy2:x:1001:dummy" >> /etc/group
|
||||
echo "dummy:x:1000:1000:::/bin/bash" >> /etc/passwd</userinput></screen>
|
||||
|
||||
<para>Run the <emphasis>root</emphasis> tests:</para>
|
||||
<para>Now the test suite is ready to be run. First, run the tests that
|
||||
are meant to be run as user <emphasis>root</emphasis>:</para>
|
||||
|
||||
<screen><userinput>make NON_ROOT_USERNAME=dummy check-root</userinput></screen>
|
||||
|
||||
<para>Run the user tests:</para>
|
||||
<para>Then run the remainder of the tests as the
|
||||
<emphasis>dummy</emphasis> user:</para>
|
||||
|
||||
<screen><userinput>src/su dummy -c "make RUN_EXPENSIVE_TESTS=yes check"</userinput></screen>
|
||||
|
||||
<para>Remove the dummy user and groups:</para>
|
||||
<para>When testing is complete, remove the dummy user and
|
||||
groups:</para>
|
||||
|
||||
<screen><userinput>sed -i '/dummy/d' /etc/passwd /etc/group</userinput></screen>
|
||||
|
||||
@ -61,7 +81,7 @@ echo "dummy:x:1000:1000:::/bin/bash" >> /etc/passwd</userinput></screen>
|
||||
|
||||
<screen><userinput>make install</userinput></screen>
|
||||
|
||||
<para>And move some programs to their proper locations:</para>
|
||||
<para>Move programs to the proper locations:</para>
|
||||
|
||||
<screen><userinput>mv /usr/bin/{[,basename,cat,chgrp,chmod,chown,cp,dd,df} /bin
|
||||
mv /usr/bin/{date,echo,false,head,hostname,install,ln} /bin
|
||||
@ -69,7 +89,7 @@ mv /usr/bin/{ls,mkdir,mknod,mv,pwd,rm,rmdir,sync} /bin
|
||||
mv /usr/bin/{sleep,stty,test,touch,true,uname} /bin
|
||||
mv /usr/bin/chroot /usr/sbin</userinput></screen>
|
||||
|
||||
<para>Create a symlink:</para>
|
||||
<para>Finally, create a symlink to be FHS-compliant:</para>
|
||||
|
||||
<screen><userinput>ln -s ../../bin/install /usr/bin</userinput></screen>
|
||||
|
||||
@ -78,8 +98,755 @@ mv /usr/bin/chroot /usr/sbin</userinput></screen>
|
||||
|
||||
<sect2 id="contents-coreutils" role="content"><title>Contents of Coreutils</title>
|
||||
|
||||
<para>See testing</para>
|
||||
<segmentedlist>
|
||||
<segtitle>Installed programs</segtitle>
|
||||
<seglistitem><seg>basename, cat, chgrp, chmod, chown, chroot, cksum,
|
||||
comm, cp, csplit, cut, date, dd, df, dir, dircolors, dirname, du,
|
||||
echo, env, expand, expr, factor, false, fmt, fold, groups, head,
|
||||
hostid, hostname, id, install, join, link, ln, logname, ls, md5sum,
|
||||
mkdir, mkfifo, mknod, mv, nice, nl, nohup, od, paste, pathchk, pinky,
|
||||
pr, printenv, printf, ptx, pwd, readlink, rm, rmdir, seq, sha1sum,
|
||||
shred, sleep, sort, split, stat, stty, sum, sync, tac, tail, tee,
|
||||
test, touch, tr, true, tsort, tty, uname, unexpand, uniq, unlink,
|
||||
users, vdir, wc, who, whoami, and yes</seg></seglistitem>
|
||||
</segmentedlist>
|
||||
|
||||
<variablelist><bridgehead renderas="sect3">Short Descriptions</bridgehead>
|
||||
<?dbfo list-presentation="list"?>
|
||||
|
||||
<varlistentry id="basename">
|
||||
<term><command>basename</command></term>
|
||||
<listitem>
|
||||
<para>Strips any path and a given suffix from a file name</para>
|
||||
<indexterm zone="ch-system-coreutils basename"><primary sortas="b-basename">basename</primary></indexterm>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry id="cat">
|
||||
<term><command>cat</command></term>
|
||||
<listitem>
|
||||
<para>Concatenates files to standard output</para>
|
||||
<indexterm zone="ch-system-coreutils cat"><primary sortas="b-cat">cat</primary></indexterm>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry id="chgrp">
|
||||
<term><command>chgrp</command></term>
|
||||
<listitem>
|
||||
<para>Changes the group ownership of each given file to the given
|
||||
group; the group can either be either given a name or a numeric
|
||||
ID</para>
|
||||
<indexterm zone="ch-system-coreutils chgrp"><primary sortas="b-chgrp">chgrp</primary></indexterm>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry id="chmod">
|
||||
<term><command>chmod</command></term>
|
||||
<listitem>
|
||||
<para>Changes the permissions of each file to the given mode; the mode
|
||||
can be either a symbolic representation of the changes to make or an
|
||||
octal number representing the new permissions</para>
|
||||
<indexterm zone="ch-system-coreutils chmod"><primary sortas="b-chmod">chmod</primary></indexterm>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry id="chown">
|
||||
<term><command>chown</command></term>
|
||||
<listitem>
|
||||
<para>Changes the user and/or group ownership of
|
||||
each given file to the given user/group pair</para>
|
||||
<indexterm zone="ch-system-coreutils chown"><primary sortas="b-chown">chown</primary></indexterm>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry id="chroot">
|
||||
<term><command>chroot</command></term>
|
||||
<listitem>
|
||||
<para>Runs a command with the specified directory as the
|
||||
<filename class="directory">/</filename> directory</para>
|
||||
<indexterm zone="ch-system-coreutils chroot"><primary sortas="b-chroot">chroot</primary></indexterm>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry id="cksum">
|
||||
<term><command>cksum</command></term>
|
||||
<listitem>
|
||||
<para>Prints the Cyclic Redundancy Check (CRC) checksum and the byte
|
||||
counts of each specified file</para>
|
||||
<indexterm zone="ch-system-coreutils cksum"><primary sortas="b-cksum">cksum</primary></indexterm>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry id="comm">
|
||||
<term><command>comm</command></term>
|
||||
<listitem>
|
||||
<para>Compares two sorted files, outputting in three columns the lines
|
||||
that are unique and the lines that are common</para>
|
||||
<indexterm zone="ch-system-coreutils comm"><primary sortas="b-comm">comm</primary></indexterm>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry id="cp">
|
||||
<term><command>cp</command></term>
|
||||
<listitem>
|
||||
<para>Copies files</para>
|
||||
<indexterm zone="ch-system-coreutils cp"><primary sortas="b-cp">cp</primary></indexterm>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry id="csplit">
|
||||
<term><command>csplit</command></term>
|
||||
<listitem>
|
||||
<para>Splits a given file into several new files, separating them
|
||||
according to given patterns or line numbers and outputting the byte
|
||||
count of each new file</para>
|
||||
<indexterm zone="ch-system-coreutils csplit"><primary sortas="b-csplit">csplit</primary></indexterm>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry id="cut">
|
||||
<term><command>cut</command></term>
|
||||
<listitem>
|
||||
<para>Prints sections of lines, selecting the parts according to given
|
||||
fields or positions</para>
|
||||
<indexterm zone="ch-system-coreutils cut"><primary sortas="b-cut">cut</primary></indexterm>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry id="date">
|
||||
<term><command>date</command></term>
|
||||
<listitem>
|
||||
<para>Displays the current time in the given format, or sets the
|
||||
system date</para>
|
||||
<indexterm zone="ch-system-coreutils date"><primary sortas="b-date">date</primary></indexterm>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry id="dd">
|
||||
<term><command>dd</command> </term>
|
||||
<listitem>
|
||||
<para>Copies a file using the given block size and count, while
|
||||
optionally performing conversions on it</para>
|
||||
<indexterm zone="ch-system-coreutils dd"><primary sortas="b-dd">dd</primary></indexterm>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry id="df">
|
||||
<term><command>df</command></term>
|
||||
<listitem>
|
||||
<para>Reports the amount of disk space available (and used) on all
|
||||
mounted file systems, or only on the file systems holding the selected
|
||||
files</para>
|
||||
<indexterm zone="ch-system-coreutils df"><primary sortas="b-df">df</primary></indexterm>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry id="dir">
|
||||
<term><command>dir</command></term>
|
||||
<listitem>
|
||||
<para>Lists the contents of each given directory (the same as
|
||||
the <command>ls</command> command)</para>
|
||||
<indexterm zone="ch-system-coreutils dir"><primary sortas="b-dir">dir</primary></indexterm>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry id="dircolors">
|
||||
<term><command>dircolors</command></term>
|
||||
<listitem>
|
||||
<para>Outputs commands to set the <envar>LS_COLOR</envar>
|
||||
environment variable to change the color scheme used by
|
||||
<command>ls</command></para>
|
||||
<indexterm zone="ch-system-coreutils dircolors"><primary sortas="b-dircolors">dircolors</primary></indexterm>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry id="dirname">
|
||||
<term><command>dirname</command></term>
|
||||
<listitem>
|
||||
<para>Strips the non-directory suffix from a file name</para>
|
||||
<indexterm zone="ch-system-coreutils dirname"><primary sortas="b-dirname">dirname</primary></indexterm>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry id="du">
|
||||
<term><command>du</command></term>
|
||||
<listitem>
|
||||
<para>Reports the amount of disk space used by the current directory,
|
||||
by each of the given directories (including all subdirectories) or by
|
||||
each of the given files</para>
|
||||
<indexterm zone="ch-system-coreutils du"><primary sortas="b-du">du</primary></indexterm>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry id="echo">
|
||||
<term><command>echo</command></term>
|
||||
<listitem>
|
||||
<para>Displays the given strings</para>
|
||||
<indexterm zone="ch-system-coreutils echo"><primary sortas="b-echo">echo</primary></indexterm>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry id="env">
|
||||
<term><command>env</command></term>
|
||||
<listitem>
|
||||
<para>Runs a command in a modified environment</para>
|
||||
<indexterm zone="ch-system-coreutils env"><primary sortas="b-env">env</primary></indexterm>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry id="expand">
|
||||
<term><command>expand</command></term>
|
||||
<listitem>
|
||||
<para>Converts tabs to spaces</para>
|
||||
<indexterm zone="ch-system-coreutils expand"><primary sortas="b-expand">expand</primary></indexterm>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry id="expr">
|
||||
<term><command>expr</command></term>
|
||||
<listitem>
|
||||
<para>Evaluates expressions</para>
|
||||
<indexterm zone="ch-system-coreutils expr"><primary sortas="b-expr">expr</primary></indexterm>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry id="factor">
|
||||
<term><command>factor</command></term>
|
||||
<listitem>
|
||||
<para>Prints the prime factors of all specified integer numbers</para>
|
||||
<indexterm zone="ch-system-coreutils factor"><primary sortas="b-factor">factor</primary></indexterm>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry id="false">
|
||||
<term><command>false</command></term>
|
||||
<listitem>
|
||||
<para>Does nothing, unsuccessfully; it always exits with a status code
|
||||
indicating failure</para>
|
||||
<indexterm zone="ch-system-coreutils false"><primary sortas="b-false">false</primary></indexterm>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry id="fmt">
|
||||
<term><command>fmt</command></term>
|
||||
<listitem>
|
||||
<para>Reformats the paragraphs in the given files</para>
|
||||
<indexterm zone="ch-system-coreutils fmt"><primary sortas="b-fmt">fmt</primary></indexterm>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry id="fold">
|
||||
<term><command>fold</command></term>
|
||||
<listitem>
|
||||
<para>Wraps the lines in the given files</para>
|
||||
<indexterm zone="ch-system-coreutils fold"><primary sortas="b-fold">fold</primary></indexterm>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry id="groups-coreutils">
|
||||
<term><command>groups</command></term>
|
||||
<listitem>
|
||||
<para>Reports a user's group memberships</para>
|
||||
<indexterm zone="ch-system-coreutils groups-coreutils"><primary sortas="b-groups-coreutils">groups</primary></indexterm>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry id="head">
|
||||
<term><command>head</command></term>
|
||||
<listitem>
|
||||
<para>Prints the first ten lines (or the given number of lines) of each given file</para>
|
||||
<indexterm zone="ch-system-coreutils head"><primary sortas="b-head">head</primary></indexterm>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry id="hostid">
|
||||
<term><command>hostid</command></term>
|
||||
<listitem>
|
||||
<para>Reports the numeric identifier (in hexadecimal) of the host</para>
|
||||
<indexterm zone="ch-system-coreutils hostid"><primary sortas="b-hostid">hostid</primary></indexterm>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry id="hostname">
|
||||
<term><command>hostname</command></term>
|
||||
<listitem>
|
||||
<para>Reports or sets the name of the host</para>
|
||||
<indexterm zone="ch-system-coreutils hostname"><primary sortas="b-hostname">hostname</primary></indexterm>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry id="id">
|
||||
<term><command>id</command></term>
|
||||
<listitem>
|
||||
<para>Reports the effective user ID, group ID, and
|
||||
group memberships of the current user or specified user</para>
|
||||
<indexterm zone="ch-system-coreutils id"><primary sortas="b-id">id</primary></indexterm>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry id="install">
|
||||
<term><command>install</command> </term>
|
||||
<listitem>
|
||||
<para>Copies files while setting their
|
||||
permission modes and, if possible, their owner and group</para>
|
||||
<indexterm zone="ch-system-coreutils install"><primary sortas="b-install">install</primary></indexterm>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry id="join">
|
||||
<term><command>join</command></term>
|
||||
<listitem>
|
||||
<para>Joins the lines that have identical join fields from two
|
||||
separate files</para>
|
||||
<indexterm zone="ch-system-coreutils join"><primary sortas="b-join">join</primary></indexterm>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry id="link">
|
||||
<term><command>link</command></term>
|
||||
<listitem>
|
||||
<para>Creates a hard link with the given name to a file</para>
|
||||
<indexterm zone="ch-system-coreutils link"><primary sortas="b-link">link</primary></indexterm>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry id="ln">
|
||||
<term><command>ln</command></term>
|
||||
<listitem>
|
||||
<para>Makes hard links or soft (symbolic) links between files</para>
|
||||
<indexterm zone="ch-system-coreutils ln"><primary sortas="b-ln">ln</primary></indexterm>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry id="logname">
|
||||
<term><command>logname</command></term>
|
||||
<listitem>
|
||||
<para>Reports the current user's login name</para>
|
||||
<indexterm zone="ch-system-coreutils logname"><primary sortas="b-logname">logname</primary></indexterm>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry id="ls">
|
||||
<term><command>ls</command></term>
|
||||
<listitem>
|
||||
<para>Lists the contents of each given directory</para>
|
||||
<indexterm zone="ch-system-coreutils ls"><primary sortas="b-ls">ls</primary></indexterm>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry id="md5sum">
|
||||
<term><command>md5sum</command></term>
|
||||
<listitem>
|
||||
<para>Reports or checks Message Digest 5 (MD5) checksums</para>
|
||||
<indexterm zone="ch-system-coreutils md5sum"><primary sortas="b-md5sum">md5sum</primary></indexterm>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry id="mkdir">
|
||||
<term><command>mkdir</command></term>
|
||||
<listitem>
|
||||
<para>Creates directories with the given names</para>
|
||||
<indexterm zone="ch-system-coreutils mkdir"><primary sortas="b-mkdir">mkdir</primary></indexterm>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry id="mkfifo">
|
||||
<term><command>mkfifo</command></term>
|
||||
<listitem>
|
||||
<para>Creates First-In, First-Outs (FIFOs), a <quote>named
|
||||
pipe</quote> in UNIX parlance, with the given names</para>
|
||||
<indexterm zone="ch-system-coreutils mkfifo"><primary sortas="b-mkfifo">mkfifo</primary></indexterm>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry id="mknod">
|
||||
<term><command>mknod</command></term>
|
||||
<listitem>
|
||||
<para>Creates device nodes with the given names; a device node is a
|
||||
character special file, a block special file, or a FIFO</para>
|
||||
<indexterm zone="ch-system-coreutils mknod"><primary sortas="b-mknod">mknod</primary></indexterm>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry id="mv">
|
||||
<term><command>mv</command></term>
|
||||
<listitem>
|
||||
<para>Moves or renames files or directories</para>
|
||||
<indexterm zone="ch-system-coreutils mv"><primary sortas="b-mv">mv</primary></indexterm>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry id="nice">
|
||||
<term><command>nice</command></term>
|
||||
<listitem>
|
||||
<para>Runs a program with modified scheduling priority</para>
|
||||
<indexterm zone="ch-system-coreutils nice"><primary sortas="b-nice">nice</primary></indexterm>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry id="nl">
|
||||
<term><command>nl</command></term>
|
||||
<listitem>
|
||||
<para>Numbers the lines from the given files</para>
|
||||
<indexterm zone="ch-system-coreutils nl"><primary sortas="b-nl">nl</primary></indexterm>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry id="nohup">
|
||||
<term><command>nohup</command></term>
|
||||
<listitem>
|
||||
<para>Runs a command immune to hangups, with its output redirected to
|
||||
a log file</para>
|
||||
<indexterm zone="ch-system-coreutils nohup"><primary sortas="b-nohup">nohup</primary></indexterm>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry id="od">
|
||||
<term><command>od</command></term>
|
||||
<listitem>
|
||||
<para>Dumps files in octal and other formats</para>
|
||||
<indexterm zone="ch-system-coreutils od"><primary sortas="b-od">od</primary></indexterm>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry id="paste">
|
||||
<term><command>paste</command></term>
|
||||
<listitem>
|
||||
<para>Merges the given files, joining sequentially corresponding lines
|
||||
side by side, separated by tab characters</para>
|
||||
<indexterm zone="ch-system-coreutils paste"><primary sortas="b-paste">paste</primary></indexterm>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry id="pathchk">
|
||||
<term><command>pathchk</command></term>
|
||||
<listitem>
|
||||
<para>Checks if file names are valid or portable</para>
|
||||
<indexterm zone="ch-system-coreutils pathchk"><primary sortas="b-pathchk">pathchk</primary></indexterm>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry id="pinky">
|
||||
<term><command>pinky</command></term>
|
||||
<listitem>
|
||||
<para>Is a lightweight finger client; it reports some information about the given users</para>
|
||||
<indexterm zone="ch-system-coreutils pinky"><primary sortas="b-pinky">pinky</primary></indexterm>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry id="pr">
|
||||
<term><command>pr</command></term>
|
||||
<listitem>
|
||||
<para>Paginates and columnates files for printing</para>
|
||||
<indexterm zone="ch-system-coreutils pr"><primary sortas="b-pr">pr</primary></indexterm>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry id="printenv">
|
||||
<term><command>printenv</command></term>
|
||||
<listitem>
|
||||
<para>Prints the environment</para>
|
||||
<indexterm zone="ch-system-coreutils printenv"><primary sortas="b-printenv">printenv</primary></indexterm>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry id="printf">
|
||||
<term><command>printf</command></term>
|
||||
<listitem>
|
||||
<para>Prints the given arguments according to the given format, much
|
||||
like the C printf function</para>
|
||||
<indexterm zone="ch-system-coreutils printf"><primary sortas="b-printf">printf</primary></indexterm>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry id="ptx">
|
||||
<term><command>ptx</command></term>
|
||||
<listitem>
|
||||
<para>Produces a permuted index from the contents of the given files,
|
||||
with each keyword in its context</para>
|
||||
<indexterm zone="ch-system-coreutils ptx"><primary sortas="b-ptx">ptx</primary></indexterm>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry id="pwd">
|
||||
<term><command>pwd</command></term>
|
||||
<listitem>
|
||||
<para>Reports the name of the current working directory</para>
|
||||
<indexterm zone="ch-system-coreutils pwd"><primary sortas="b-pwd">pwd</primary></indexterm>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry id="readlink">
|
||||
<term><command>readlink</command></term>
|
||||
<listitem>
|
||||
<para>Reports the value of the given symbolic link</para>
|
||||
<indexterm zone="ch-system-coreutils readlink"><primary sortas="b-readlink">readlink</primary></indexterm>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry id="rm">
|
||||
<term><command>rm</command></term>
|
||||
<listitem>
|
||||
<para>Removes files or directories</para>
|
||||
<indexterm zone="ch-system-coreutils rm"><primary sortas="b-rm">rm</primary></indexterm>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry id="rmdir">
|
||||
<term><command>rmdir</command></term>
|
||||
<listitem>
|
||||
<para>Removes directories if they are empty</para>
|
||||
<indexterm zone="ch-system-coreutils rmdir"><primary sortas="b-rmdir">rmdir</primary></indexterm>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry id="seq">
|
||||
<term><command>seq</command></term>
|
||||
<listitem>
|
||||
<para>Prints a sequence of numbers within a given range and with a
|
||||
given increment</para>
|
||||
<indexterm zone="ch-system-coreutils seq"><primary sortas="b-seq">seq</primary></indexterm>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry id="sha1sum">
|
||||
<term><command>sha1sum</command></term>
|
||||
<listitem>
|
||||
<para>Prints or checks 160-bit Secure Hash Algorithm 1 (SHA1) checksums</para>
|
||||
<indexterm zone="ch-system-coreutils sha1sum"><primary sortas="b-sha1sum">sha1sum</primary></indexterm>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry id="shred">
|
||||
<term><command>shred</command></term>
|
||||
<listitem>
|
||||
<para>Overwrites the given files repeatedly with complex patterns,
|
||||
making it difficult to recover the data</para>
|
||||
<indexterm zone="ch-system-coreutils shred"><primary sortas="b-shred">shred</primary></indexterm>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry id="sleep">
|
||||
<term><command>sleep</command></term>
|
||||
<listitem>
|
||||
<para>Pauses for the given amount of time</para>
|
||||
<indexterm zone="ch-system-coreutils sleep"><primary sortas="b-sleep">sleep</primary></indexterm>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry id="sort">
|
||||
<term><command>sort</command></term>
|
||||
<listitem>
|
||||
<para>Sorts the lines from the given files</para>
|
||||
<indexterm zone="ch-system-coreutils sort"><primary sortas="b-sort">sort</primary></indexterm>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry id="split">
|
||||
<term><command>split</command></term>
|
||||
<listitem>
|
||||
<para>Splits the given file into pieces, by size or by number of lines</para>
|
||||
<indexterm zone="ch-system-coreutils split"><primary sortas="b-split">split</primary></indexterm>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry id="stat">
|
||||
<term><command>stat</command></term>
|
||||
<listitem>
|
||||
<para>Displays file or filesystem status</para>
|
||||
<indexterm zone="ch-system-coreutils stat"><primary sortas="b-stat">stat</primary></indexterm>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry id="stty">
|
||||
<term><command>stty</command></term>
|
||||
<listitem>
|
||||
<para>Sets or reports terminal line settings</para>
|
||||
<indexterm zone="ch-system-coreutils stty"><primary sortas="b-stty">stty</primary></indexterm>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry id="sum">
|
||||
<term><command>sum</command></term>
|
||||
<listitem>
|
||||
<para>Prints checksum and block counts for each given file</para>
|
||||
<indexterm zone="ch-system-coreutils sum"><primary sortas="b-sum">sum</primary></indexterm>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry id="sync">
|
||||
<term><command>sync</command></term>
|
||||
<listitem>
|
||||
<para>Flushes file system buffers; it forces changed blocks to disk
|
||||
and updates the super block</para>
|
||||
<indexterm zone="ch-system-coreutils sync"><primary sortas="b-sync">sync</primary></indexterm>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry id="tac">
|
||||
<term><command>tac</command></term>
|
||||
<listitem>
|
||||
<para>Concatenates the given files in reverse</para>
|
||||
<indexterm zone="ch-system-coreutils tac"><primary sortas="b-tac">tac</primary></indexterm>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry id="tail">
|
||||
<term><command>tail</command></term>
|
||||
<listitem>
|
||||
<para>Prints the last ten lines (or the given number of lines) of each
|
||||
given file</para>
|
||||
<indexterm zone="ch-system-coreutils tail"><primary sortas="b-tail">tail</primary></indexterm>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry id="tee">
|
||||
<term><command>tee</command></term>
|
||||
<listitem>
|
||||
<para>Reads from standard input while writing both to standard output
|
||||
and to the given files</para>
|
||||
<indexterm zone="ch-system-coreutils tee"><primary sortas="b-tee">tee</primary></indexterm>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry id="test">
|
||||
<term><command>test</command></term>
|
||||
<listitem>
|
||||
<para>Compares values and checks file types</para>
|
||||
<indexterm zone="ch-system-coreutils test"><primary sortas="b-test">test</primary></indexterm>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry id="touch">
|
||||
<term><command>touch</command></term>
|
||||
<listitem>
|
||||
<para>Changes file timestamps, setting the access and modification
|
||||
times of the given files to the current time; files that do not exist
|
||||
are created with zero length</para>
|
||||
<indexterm zone="ch-system-coreutils touch"><primary sortas="b-touch">touch</primary></indexterm>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry id="tr">
|
||||
<term><command>tr</command></term>
|
||||
<listitem>
|
||||
<para>Translates, squeezes, and deletes the given characters from
|
||||
standard input</para>
|
||||
<indexterm zone="ch-system-coreutils tr"><primary sortas="b-tr">tr</primary></indexterm>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry id="true">
|
||||
<term><command>true</command></term>
|
||||
<listitem>
|
||||
<para>Does nothing, successfully; it always exits with a status code
|
||||
indicating success</para>
|
||||
<indexterm zone="ch-system-coreutils true"><primary sortas="b-true">true</primary></indexterm>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry id="tsort">
|
||||
<term><command>tsort</command></term>
|
||||
<listitem>
|
||||
<para>Performs a topological sort; it writes a completely ordered list
|
||||
according to the partial ordering in a given file</para>
|
||||
<indexterm zone="ch-system-coreutils tsort"><primary sortas="b-tsort">tsort</primary></indexterm>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry id="tty">
|
||||
<term><command>tty</command></term>
|
||||
<listitem>
|
||||
<para>Reports the file name of the terminal connected to standard
|
||||
input</para>
|
||||
<indexterm zone="ch-system-coreutils tty"><primary sortas="b-tty">tty</primary></indexterm>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry id="uname">
|
||||
<term><command>uname</command></term>
|
||||
<listitem>
|
||||
<para>Reports system information</para>
|
||||
<indexterm zone="ch-system-coreutils uname"><primary sortas="b-uname">uname</primary></indexterm>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry id="unexpand">
|
||||
<term><command>unexpand</command></term>
|
||||
<listitem>
|
||||
<para>Converts spaces to tabs</para>
|
||||
<indexterm zone="ch-system-coreutils unexpand"><primary sortas="b-unexpand">unexpand</primary></indexterm>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry id="uniq">
|
||||
<term><command>uniq</command></term>
|
||||
<listitem>
|
||||
<para>Discards all but one of successive identical lines</para>
|
||||
<indexterm zone="ch-system-coreutils unexpand"><primary sortas="b-unexpand">unexpand</primary></indexterm>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry id="unlink">
|
||||
<term><command>unlink</command></term>
|
||||
<listitem>
|
||||
<para>Removes the given file</para>
|
||||
<indexterm zone="ch-system-coreutils unlink"><primary sortas="b-unlink">unlink</primary></indexterm>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry id="users">
|
||||
<term><command>users</command></term>
|
||||
<listitem>
|
||||
<para>Reports the names of the users currently logged on</para>
|
||||
<indexterm zone="ch-system-coreutils users"><primary sortas="b-users">users</primary></indexterm>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry id="vdir">
|
||||
<term><command>vdir</command></term>
|
||||
<listitem>
|
||||
<para>Is the same as <command>ls -l</command></para>
|
||||
<indexterm zone="ch-system-coreutils vdir"><primary sortas="b-vdir">vdir</primary></indexterm>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry id="wc">
|
||||
<term><command>wc</command></term>
|
||||
<listitem>
|
||||
<para>Reports the number of lines, words, and bytes for each given
|
||||
file, as well as a total line when more than one file is given</para>
|
||||
<indexterm zone="ch-system-coreutils wc"><primary sortas="b-wc">wc</primary></indexterm>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry id="who">
|
||||
<term><command>who</command></term>
|
||||
<listitem>
|
||||
<para>Reports who is logged on</para>
|
||||
<indexterm zone="ch-system-coreutils who"><primary sortas="b-who">who</primary></indexterm>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry id="whoami">
|
||||
<term><command>whoami</command></term>
|
||||
<listitem>
|
||||
<para>Reports the user name associated with the current effective user ID</para>
|
||||
<indexterm zone="ch-system-coreutils whoami"><primary sortas="b-whoami">whoami</primary></indexterm>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry id="yes">
|
||||
<term><command>yes</command></term>
|
||||
<listitem>
|
||||
<para>Repeatedly outputs <quote>y</quote> or a given string until
|
||||
killed</para>
|
||||
<indexterm zone="ch-system-coreutils yes"><primary sortas="b-yes">yes</primary></indexterm>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
</variablelist>
|
||||
|
||||
</sect2>
|
||||
|
||||
</sect1>
|
||||
|
||||
|
@ -7,7 +7,10 @@
|
||||
<title>Creating Essential Symlinks</title>
|
||||
<?dbhtml filename="createfiles.html"?>
|
||||
|
||||
<para>Create some needed links.</para>
|
||||
<para>Some programs hard-wire paths to programs which do not yet
|
||||
exist. In order to satisfy these programs, create a number of symbolic
|
||||
links which will be replaced by real files throughout the course of
|
||||
this chapter after the software has been installed.</para>
|
||||
|
||||
<screen><userinput>ln -s /tools/bin/{bash,cat,pwd,stty} /bin
|
||||
ln -s /tools/bin/perl /usr/bin
|
||||
@ -15,3 +18,4 @@ ln -s /tools/lib/libgcc_s.so{,.1} /usr/lib
|
||||
ln -s bash /bin/sh</userinput></screen>
|
||||
|
||||
</sect1>
|
||||
|
||||
|
@ -7,7 +7,9 @@
|
||||
<title>Creating Directories</title>
|
||||
<?dbhtml filename="creatingdirs.html"?>
|
||||
|
||||
<para>Create a dirs tree:</para>
|
||||
<para>It is time to create some structure in the LFS file system.
|
||||
Create a directory tree. Issuing the following commands will create a
|
||||
standard tree:</para>
|
||||
|
||||
<screen><userinput>install -d /{bin,boot,dev,etc/opt,home,lib,mnt}
|
||||
install -d /{sbin,srv,usr/local,var,opt}
|
||||
@ -29,4 +31,37 @@ install -d /var/{opt,cache,lib/{misc,locate},local}
|
||||
install -d /opt/{bin,doc,include,info}
|
||||
install -d /opt/{lib,man/man{1,2,3,4,5,6,7,8}}</userinput></screen>
|
||||
|
||||
<para>Directories are, by default, created with permission mode 755,
|
||||
but this is not desirable for all directories. In the commands above,
|
||||
two changes are made—one to the home directory of user
|
||||
<emphasis>root</emphasis>, and another to the directories for
|
||||
temporary files.</para>
|
||||
|
||||
<para>The first mode change ensures that not just anybody can enter
|
||||
the <filename class="directory">/root</filename> directory—the same
|
||||
as a normal user would do with his or her home directory. The second
|
||||
mode change makes sure that any user can write to the <filename
|
||||
class="directory">/tmp</filename> and <filename
|
||||
class="directory">/var/tmp</filename> directories, but cannot remove
|
||||
other users' files from them. The latter is prohibited by the
|
||||
so-called <quote>sticky bit,</quote> the highest bit (1) in the 1777
|
||||
bit mask.</para>
|
||||
|
||||
<sect2>
|
||||
<title>FHS Compliance Note</title>
|
||||
|
||||
<para>The directory tree is based on the Filesystem Hierarchy Standard
|
||||
(FHS) standard (available at <ulink
|
||||
url="http://www.pathname.com/fhs/"/>). Besides the tree created above,
|
||||
this standard stipulates the existence of <filename
|
||||
class="directory">/usr/local/games</filename> and <filename
|
||||
class="directory">/usr/share/games</filename>. We do not recommend
|
||||
these for a base system, however, feel free to make the system
|
||||
FHS-compliant. The FHS is not precise as to the structure of the
|
||||
<filename class="directory">/usr/local/share</filename> subdirectory,
|
||||
so we created only the directories that are needed.</para>
|
||||
|
||||
</sect2>
|
||||
|
||||
</sect1>
|
||||
|
||||
|
@ -3,20 +3,42 @@
|
||||
<!ENTITY % general-entities SYSTEM "../general.ent">
|
||||
%general-entities;
|
||||
]>
|
||||
<sect1 id="ch-system-devices" xreflabel="devices">
|
||||
<sect1 id="ch-system-devices">
|
||||
<title>Populating /dev</title>
|
||||
<?dbhtml filename="devices.html"?>
|
||||
|
||||
<para>Create the initial device nodes</para>
|
||||
<indexterm zone="ch-system-devices"><primary sortas="e-Devices">/dev/*</primary></indexterm>
|
||||
|
||||
<sect2>
|
||||
<title>Creating Initial Device Nodes</title>
|
||||
|
||||
<para>When the kernel boots the system, it requires the presence of a few device
|
||||
nodes, in particular the <filename class="devicefile">console</filename> and
|
||||
<filename class="devicefile">null</filename> devices. Create these by
|
||||
running the following commands:</para>
|
||||
|
||||
<screen><userinput>mknod -m 600 /dev/console c 5 1
|
||||
mknod -m 666 /dev/null c 1 3</userinput></screen>
|
||||
</sect2>
|
||||
|
||||
<para>Mount a ramfs in /dev</para>
|
||||
<sect2>
|
||||
<title>Mounting ramfs and Populating /dev</title>
|
||||
|
||||
<para>The ideal way to populate <filename
|
||||
class="directory">/dev</filename> is to mount a <systemitem
|
||||
class="filesystem">ramfs</systemitem> onto <filename
|
||||
class="directory">/dev</filename>, like <systemitem
|
||||
class="filesystem">tmpfs</systemitem>, and create the devices on there
|
||||
during each bootup. Since the system has not been booted, it is
|
||||
necessary to do what the bootscripts would otherwise do and populate
|
||||
<filename class="directory">/dev</filename>. Begin by mounting
|
||||
<filename class="directory">/dev</filename>:</para>
|
||||
|
||||
<screen><userinput>mount -n -t ramfs none /dev</userinput></screen>
|
||||
|
||||
<para>Create a minimal set of device nodes:</para>
|
||||
<!-- Edit Me -->
|
||||
<para>Since the Udev package will not be installed until later on in the
|
||||
process, create a minimal set of device nodes used for building:</para>
|
||||
|
||||
<screen><userinput>mknod -m 622 /dev/console c 5 1
|
||||
mknod -m 666 /dev/null c 1 3
|
||||
@ -26,8 +48,10 @@ mknod -m 666 /dev/tty c 5 0
|
||||
mknod -m 444 /dev/random c 1 8
|
||||
mknod -m 444 /dev/urandom c 1 9
|
||||
chown root:tty /dev/{console,ptmx,tty}</userinput></screen>
|
||||
<!-- -->
|
||||
|
||||
<para>Create some symlinks and directories:</para>
|
||||
<para>There are some symlinks and directories required by LFS that are
|
||||
not created by Udev, so create those here:</para>
|
||||
|
||||
<screen><userinput>ln -s /proc/self/fd /dev/fd
|
||||
ln -s /proc/self/fd/0 /dev/stdin
|
||||
@ -37,10 +61,21 @@ ln -s /proc/kcore /dev/core
|
||||
mkdir /dev/pts
|
||||
mkdir /dev/shm</userinput></screen>
|
||||
|
||||
<para>Mount the virtual file systems:</para>
|
||||
<para>Finally, mount the proper virtual (kernel) file systems on the
|
||||
newly-created directories:</para>
|
||||
|
||||
<screen><userinput>mount -t devpts -o gid=4,mode=620 none /dev/pts
|
||||
mount -t tmpfs none /dev/shm</userinput></screen>
|
||||
|
||||
<para>The <command>mount</command> commands executed above may result
|
||||
in the following warning message:</para>
|
||||
|
||||
<screen><computeroutput>can't open /etc/fstab: No such file or directory.</computeroutput></screen>
|
||||
|
||||
<para>This file—<filename>/etc/fstab</filename>—has not
|
||||
been created yet but is also not required for the file systems to be
|
||||
properly mounted. As such, the warning can be safely ignored.</para>
|
||||
</sect2>
|
||||
|
||||
</sect1>
|
||||
|
||||
|
@ -3,13 +3,15 @@
|
||||
<!ENTITY % general-entities SYSTEM "../general.ent">
|
||||
%general-entities;
|
||||
]>
|
||||
<sect1 id="ch-system-diffutils" xreflabel="Diffutils" role="wrap">
|
||||
<sect1 id="ch-system-diffutils" role="wrap">
|
||||
<title>Diffutils-&diffutils-version;</title>
|
||||
<?dbhtml filename="diffutils.html"?>
|
||||
|
||||
<indexterm zone="ch-system-diffutils"><primary sortas="a-Diffutils">Diffutils</primary></indexterm>
|
||||
|
||||
<sect2 role="package"><title/>
|
||||
<para>The Diffutils package contains programs that show the differences
|
||||
between files or directories.</para>
|
||||
|
||||
<segmentedlist>
|
||||
<segtitle>&buildtime;</segtitle>
|
||||
@ -17,6 +19,11 @@
|
||||
<seglistitem><seg>0.1 SBU</seg><seg>7.5 MB</seg></seglistitem>
|
||||
</segmentedlist>
|
||||
|
||||
<segmentedlist>
|
||||
<segtitle>Diffutils installation depends on</segtitle>
|
||||
<seglistitem><seg>Bash, Binutils, Coreutils, Diffutils, GCC,
|
||||
Gettext, Glibc, Grep, Make, and Sed</seg></seglistitem>
|
||||
</segmentedlist>
|
||||
</sect2>
|
||||
|
||||
<sect2 role="installation">
|
||||
@ -30,7 +37,9 @@
|
||||
|
||||
<screen><userinput>make</userinput></screen>
|
||||
|
||||
<para>Install it:</para>
|
||||
<para>This package does not come with a test suite.</para>
|
||||
|
||||
<para>Install the package:</para>
|
||||
|
||||
<screen><userinput>make install</userinput></screen>
|
||||
|
||||
@ -39,8 +48,48 @@
|
||||
|
||||
<sect2 id="contents-diffutils" role="content"><title>Contents of Diffutils</title>
|
||||
|
||||
<para>See testing</para>
|
||||
<segmentedlist>
|
||||
<segtitle>Installed programs</segtitle>
|
||||
<seglistitem><seg>cmp, diff, diff3, and sdiff</seg></seglistitem>
|
||||
</segmentedlist>
|
||||
|
||||
<variablelist><bridgehead renderas="sect3">Short Descriptions</bridgehead>
|
||||
<?dbfo list-presentation="list"?>
|
||||
|
||||
<varlistentry id="cmp">
|
||||
<term><command>cmp</command></term>
|
||||
<listitem>
|
||||
<para>Compares two files and reports whether or in which bytes they differ</para>
|
||||
<indexterm zone="ch-system-diffutils cmp"><primary sortas="b-cmp">cmp</primary></indexterm>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry id="diff">
|
||||
<term><command>diff</command></term>
|
||||
<listitem>
|
||||
<para>Compares two files or directories and reports which lines in the files differ</para>
|
||||
<indexterm zone="ch-system-diffutils diff"><primary sortas="b-diff">diff</primary></indexterm>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry id="diff3">
|
||||
<term><command>diff3</command></term>
|
||||
<listitem>
|
||||
<para>Compares three files line by line</para>
|
||||
<indexterm zone="ch-system-diffutils diff3"><primary sortas="b-diff3">diff3</primary></indexterm>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry id="sdiff">
|
||||
<term><command>sdiff</command></term>
|
||||
<listitem>
|
||||
<para>Merges two files and interactively outputs the results</para>
|
||||
<indexterm zone="ch-system-diffutils sdiff"><primary sortas="b-sdiff">sdiff</primary></indexterm>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
</variablelist>
|
||||
|
||||
</sect2>
|
||||
|
||||
</sect1>
|
||||
|
||||
|
@ -3,13 +3,16 @@
|
||||
<!ENTITY % general-entities SYSTEM "../general.ent">
|
||||
%general-entities;
|
||||
]>
|
||||
<sect1 id="ch-system-e2fsprogs" xreflabel="E2fsprogs" role="wrap">
|
||||
<sect1 id="ch-system-e2fsprogs" role="wrap">
|
||||
<title>E2fsprogs-&e2fsprogs-version;</title>
|
||||
<?dbhtml filename="e2fsprogs.html"?>
|
||||
|
||||
<indexterm zone="ch-system-e2fsprogs"><primary sortas="a-E2fsprogs">E2fsprogs</primary></indexterm>
|
||||
|
||||
<sect2 role="package"><title/>
|
||||
<para>The E2fsprogs package contains the utilities for handling the
|
||||
<systemitem class="filesystem">ext2</systemitem> file system. It also supports
|
||||
the <systemitem class="filesystem">ext3</systemitem> journaling file system.</para>
|
||||
|
||||
<segmentedlist>
|
||||
<segtitle>&buildtime;</segtitle>
|
||||
@ -17,12 +20,18 @@
|
||||
<seglistitem><seg>0.6 SBU</seg><seg>4.9 MB</seg></seglistitem>
|
||||
</segmentedlist>
|
||||
|
||||
<segmentedlist>
|
||||
<segtitle>E2fsprogs installation depends on</segtitle>
|
||||
<seglistitem><seg>Bash, Binutils, Coreutils,
|
||||
Diffutils, Gawk, GCC, Gettext, Glibc, Grep, Make, Sed, and Texinfo</seg></seglistitem>
|
||||
</segmentedlist>
|
||||
</sect2>
|
||||
|
||||
<sect2 role="installation">
|
||||
<title>Installation of E2fsprogs</title>
|
||||
|
||||
<para>Create a build directory:</para>
|
||||
<para>It is recommended that E2fsprogs be built in a subdirectory of the source tree:
|
||||
</para>
|
||||
|
||||
<screen><userinput>mkdir build
|
||||
cd build</userinput></screen>
|
||||
@ -32,6 +41,39 @@ cd build</userinput></screen>
|
||||
<screen><userinput>../configure --prefix=/usr --with-root-prefix="" \
|
||||
--enable-elf-shlibs --disable-evms</userinput></screen>
|
||||
|
||||
<para>The meaning of the configure options:</para>
|
||||
|
||||
<variablelist>
|
||||
<varlistentry>
|
||||
<term><parameter>--with-root-prefix=""</parameter></term>
|
||||
<listitem><para>Certain programs (such as the
|
||||
<command>e2fsck</command> program) are considered essential programs.
|
||||
When, for example, <filename class="directory">/usr</filename> is not
|
||||
mounted, these essential programs need to be available. They belong in
|
||||
directories like <filename class="directory">/lib</filename> and
|
||||
<filename class="directory">/sbin</filename>. If this option is not
|
||||
passed to E2fsprogs' configure, the programs are installed into the
|
||||
<filename class="directory">/usr</filename> directory, which is not
|
||||
where they should be.</para></listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term><parameter>--enable-elf-shlibs</parameter></term>
|
||||
<listitem><para>This creates the shared libraries which some programs
|
||||
in this package use.</para></listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term><parameter>--disable-evms</parameter></term>
|
||||
<listitem><para>This disables the building of the Enterprise Volume
|
||||
Management System (EVMS) plugin. This plugin is not up-to-date with
|
||||
the latest EVMS internal interfaces and EVMS is not installed as part
|
||||
of a base LFS system, so the plugin is not required. See the EVMS
|
||||
website at <ulink url="http://evms.sourceforge.net/"/> for more
|
||||
information regarding EVMS.</para></listitem>
|
||||
</varlistentry>
|
||||
</variablelist>
|
||||
|
||||
<para>Compile the package:</para>
|
||||
|
||||
<screen><userinput>make</userinput></screen>
|
||||
@ -43,16 +85,296 @@ cd build</userinput></screen>
|
||||
|
||||
<screen><userinput>make install</userinput></screen>
|
||||
|
||||
<para>Also install the shared libraries:</para>
|
||||
<para>Install the shared libraries:</para>
|
||||
|
||||
<screen><userinput>make install-libs</userinput></screen>
|
||||
|
||||
</sect2>
|
||||
|
||||
|
||||
|
||||
<sect2 id="contents-e2fsprogs" role="content"><title>Contents of E2fsprogs</title>
|
||||
|
||||
<para>See testing</para>
|
||||
<segmentedlist>
|
||||
<segtitle>Installed programs</segtitle>
|
||||
<segtitle>Installed libraries</segtitle>
|
||||
<seglistitem><seg>badblocks, blkid, chattr,
|
||||
compile_et, debugfs, dumpe2fs, e2fsck, e2image, e2label, findfs, fsck,
|
||||
fsck.ext2, fsck.ext3, logsave, lsattr, mk_cmds, mke2fs, mkfs.ext2, mkfs.ext3,
|
||||
mklost+found, resize2fs, tune2fs, and uuidgen.</seg>
|
||||
<seg>libblkid.[a,so], libcom_err.[a,so], libe2p.[a,so],
|
||||
libext2fs.[a,so], libss.[a,so], and libuuid.[a,so]</seg></seglistitem>
|
||||
</segmentedlist>
|
||||
|
||||
<variablelist><bridgehead renderas="sect3">Short Descriptions</bridgehead>
|
||||
<?dbfo list-presentation="list"?>
|
||||
|
||||
<varlistentry id="badblocks">
|
||||
<term><command>badblocks</command></term>
|
||||
<listitem>
|
||||
<para>Searches a device (usually a disk partition) for bad blocks</para>
|
||||
<indexterm zone="ch-system-e2fsprogs badblocks"><primary sortas="b-badblocks">badblocks</primary></indexterm>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry id="blkid">
|
||||
<term><command>blkid</command></term>
|
||||
<listitem>
|
||||
<para>A command line utility to locate and print block device attributes</para>
|
||||
<indexterm zone="ch-system-e2fsprogs blkid"><primary sortas="b-blkid">blkid</primary></indexterm>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry id="chattr">
|
||||
<term><command>chattr</command></term>
|
||||
<listitem>
|
||||
<para>Changes the attributes of files on an <systemitem
|
||||
class="filesystem">ext2</systemitem> file system; it also changes <systemitem
|
||||
class="filesystem">ext3</systemitem> file systems, the journaling version of
|
||||
<systemitem class="filesystem">ext2</systemitem> file systems</para>
|
||||
<indexterm zone="ch-system-e2fsprogs chattr"><primary sortas="b-chattr">chattr</primary></indexterm>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry id="compile_et">
|
||||
<term><command>compile_et</command></term>
|
||||
<listitem>
|
||||
<para>An error table compiler; it converts a table of error-code names and
|
||||
messages into a C source file suitable for use with the <filename
|
||||
class="libraryfile">com_err</filename> library</para>
|
||||
<indexterm zone="ch-system-e2fsprogs compile_et"><primary sortas="b-compile_et">compile_et</primary></indexterm>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry id="debugfs">
|
||||
<term><command>debugfs</command></term>
|
||||
<listitem>
|
||||
<para>A file system debugger; it can be used to examine and change the
|
||||
state of an <systemitem class="filesystem">ext2</systemitem> file system</para>
|
||||
<indexterm zone="ch-system-e2fsprogs debugfs"><primary sortas="b-debugfs">debugfs</primary></indexterm>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry id="dumpe2fs">
|
||||
<term><command>dumpe2fs</command></term>
|
||||
<listitem>
|
||||
<para>Prints the super block and blocks group information for the file
|
||||
system present on a given device</para>
|
||||
<indexterm zone="ch-system-e2fsprogs dumpe2fs"><primary sortas="b-dumpe2fs">dumpe2fs</primary></indexterm>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry id="e2fsck">
|
||||
<term><command>e2fsck</command></term>
|
||||
<listitem>
|
||||
<para>Is used to check, and optionally repair <systemitem
|
||||
class="filesystem">ext2</systemitem> file systems and <systemitem
|
||||
class="filesystem">ext3</systemitem> file systems</para>
|
||||
<indexterm zone="ch-system-e2fsprogs e2fsck"><primary sortas="b-e2fsck">e2fsck</primary></indexterm>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry id="e2image">
|
||||
<term><command>e2image</command></term>
|
||||
<listitem>
|
||||
<para>Is used to save critical <systemitem class="filesystem">ext2</systemitem>
|
||||
file system data to a file</para>
|
||||
<indexterm zone="ch-system-e2fsprogs e2image"><primary sortas="b-e2image">e2image</primary></indexterm>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry id="e2label">
|
||||
<term><command>e2label</command></term>
|
||||
<listitem>
|
||||
<para>Displays or changes the file system label on the <systemitem
|
||||
class="filesystem">ext2</systemitem> file system present on a given device</para>
|
||||
<indexterm zone="ch-system-e2fsprogs e2label"><primary sortas="b-e2label">e2label</primary></indexterm>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry id="findfs">
|
||||
<term><command>findfs</command></term>
|
||||
<listitem>
|
||||
<para>Finds a file system by label or Universally Unique Identifier (UUID)</para>
|
||||
<indexterm zone="ch-system-e2fsprogs findfs"><primary sortas="b-findfs">findfs</primary></indexterm>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry id="fsck">
|
||||
<term><command>fsck</command></term>
|
||||
<listitem>
|
||||
<para>Is used to check, and optionally repair, file systems</para>
|
||||
<indexterm zone="ch-system-e2fsprogs fsck"><primary sortas="b-fsck">fsck</primary></indexterm>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry id="fsck.ext2">
|
||||
<term><command>fsck.ext2</command></term>
|
||||
<listitem>
|
||||
<para>By default checks <systemitem class="filesystem">ext2</systemitem>
|
||||
file systems</para>
|
||||
<indexterm zone="ch-system-e2fsprogs fsck.ext2"><primary
|
||||
sortas="b-fsck.ext2">fsck.ext2</primary></indexterm>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry id="fsck.ext3">
|
||||
<term><command>fsck.ext3</command></term>
|
||||
<listitem>
|
||||
<para>By default checks <systemitem class="filesystem">ext3</systemitem>
|
||||
file systems</para>
|
||||
<indexterm zone="ch-system-e2fsprogs fsck.ext3"><primary
|
||||
sortas="b-fsck.ext3">fsck.ext3</primary></indexterm>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry id="logsave">
|
||||
<term><command>logsave</command></term>
|
||||
<listitem>
|
||||
<para>Saves the output of a command in a log file</para>
|
||||
<indexterm zone="ch-system-e2fsprogs logsave"><primary sortas="b-logsave">logsave</primary></indexterm>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry id="lsattr">
|
||||
<term><command>lsattr</command></term>
|
||||
<listitem>
|
||||
<para>Lists the attributes of files on a second extended file system</para>
|
||||
<indexterm zone="ch-system-e2fsprogs lsattr"><primary sortas="b-lsattr">lsattr</primary></indexterm>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry id="mk_cmds">
|
||||
<term><command>mk_cmds</command></term>
|
||||
<listitem>
|
||||
<para>Converts a table of command names and helps messages into a C
|
||||
source file suitable for use with the <filename
|
||||
class="libraryfile">libss</filename> subsystem library</para>
|
||||
<indexterm zone="ch-system-e2fsprogs mk_cmds"><primary sortas="b-mk_cmds">mk_cmds</primary></indexterm>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry id="mke2fs">
|
||||
<term><command>mke2fs</command></term>
|
||||
<listitem>
|
||||
<para>Is used to create a second extended file system on the given
|
||||
device</para>
|
||||
<indexterm zone="ch-system-e2fsprogs mke2fs"><primary sortas="b-mke2fs">mke2fs</primary></indexterm>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry id="mkfs.ext2">
|
||||
<term><command>mkfs.ext2</command></term>
|
||||
<listitem>
|
||||
<para>By default creates <systemitem class="filesystem">ext2</systemitem>
|
||||
file systems</para>
|
||||
<indexterm zone="ch-system-e2fsprogs mkfs.ext2"><primary
|
||||
sortas="b-mkfs.ext2">mkfs.ext2</primary></indexterm>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry id="mkfs.ext3">
|
||||
<term><command>mkfs.ext3</command></term>
|
||||
<listitem>
|
||||
<para>By default creates <systemitem class="filesystem">ext3</systemitem>
|
||||
file systems</para>
|
||||
<indexterm zone="ch-system-e2fsprogs mkfs.ext3"><primary
|
||||
sortas="b-mkfs.ext3">mkfs.ext3</primary></indexterm>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry id="mklost-found">
|
||||
<term><command>mklost+found</command></term>
|
||||
<listitem>
|
||||
<para>Used to create a <filename class="directory">lost+found</filename>
|
||||
directory on an <systemitem class="filesystem">ext2</systemitem> file system;
|
||||
it pre-allocates disk blocks to this directory to lighten the task of
|
||||
<command>e2fsck</command></para>
|
||||
<indexterm zone="ch-system-e2fsprogs mklost-found"><primary sortas="b-mklost+found">mklost+found</primary></indexterm>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry id="resize2fs">
|
||||
<term><command>resize2fs</command></term>
|
||||
<listitem>
|
||||
<para>Can be used to enlarge or shrink an <systemitem
|
||||
class="filesystem">ext2</systemitem> file system</para>
|
||||
<indexterm zone="ch-system-e2fsprogs resize2fs"><primary sortas="b-resize2fs">resize2fs</primary></indexterm>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry id="tune2fs">
|
||||
<term><command>tune2fs</command></term>
|
||||
<listitem>
|
||||
<para>Adjusts tunable file system parameters on an <systemitem
|
||||
class="filesystem">ext2</systemitem> file system</para>
|
||||
<indexterm zone="ch-system-e2fsprogs tune2fs"><primary sortas="b-tune2fs">tune2fs</primary></indexterm>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry id="uuidgen">
|
||||
<term><command>uuidgen</command></term>
|
||||
<listitem>
|
||||
<para>Creates new UUIDs. Each new UUID can reasonably be considered unique
|
||||
among all UUIDs created, on the local system and on other systems, in the
|
||||
past and in the future</para>
|
||||
<indexterm zone="ch-system-e2fsprogs uuidgen"><primary sortas="b-uuidgen">uuidgen</primary></indexterm>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry id="libblkid">
|
||||
<term><filename class="libraryfile">libblkid</filename></term>
|
||||
<listitem>
|
||||
<para>Contains routines for device identification and token extraction</para>
|
||||
<indexterm zone="ch-system-e2fsprogs libblkid"><primary sortas="c-libblkid">libblkid</primary></indexterm>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry id="libcom_err">
|
||||
<term><filename class="libraryfile">libcom_err</filename></term>
|
||||
<listitem>
|
||||
<para>The common error display routine</para>
|
||||
<indexterm zone="ch-system-e2fsprogs libcom_err"><primary sortas="c-libcom_err">libcom_err</primary></indexterm>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry id="libe2p">
|
||||
<term><filename class="libraryfile">libe2p</filename></term>
|
||||
<listitem>
|
||||
<para>Used by <command>dumpe2fs</command>, <command>chattr</command>,
|
||||
and <command>lsattr</command></para>
|
||||
<indexterm zone="ch-system-e2fsprogs libe2p"><primary sortas="c-libe2p">libe2p</primary></indexterm>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry id="libext2fs">
|
||||
<term><filename class="libraryfile">libext2fs</filename></term>
|
||||
<listitem>
|
||||
<para>Contains routines to enable user-level programs to manipulate an
|
||||
<systemitem class="filesystem">ext2</systemitem> file system</para>
|
||||
<indexterm zone="ch-system-e2fsprogs libext2fs"><primary sortas="c-libext2fs">libext2fs</primary></indexterm>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry id="libss">
|
||||
<term><filename class="libraryfile">libss</filename></term>
|
||||
<listitem>
|
||||
<para>Used by <command>debugfs</command></para>
|
||||
<indexterm zone="ch-system-e2fsprogs libss"><primary sortas="c-libss">libss</primary></indexterm>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry id="libuuid">
|
||||
<term><filename class="libraryfile">libuuid</filename></term>
|
||||
<listitem>
|
||||
<para>Contains routines for generating unique identifiers for objects
|
||||
that may be accessible beyond the local system</para>
|
||||
<indexterm zone="ch-system-e2fsprogs libuuid"><primary sortas="c-libuuid">libuuid</primary></indexterm>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
</variablelist>
|
||||
|
||||
</sect2>
|
||||
|
||||
</sect1>
|
||||
|
||||
|
@ -3,13 +3,14 @@
|
||||
<!ENTITY % general-entities SYSTEM "../general.ent">
|
||||
%general-entities;
|
||||
]>
|
||||
<sect1 id="ch-system-file" xreflabel="File" role="wrap">
|
||||
<sect1 id="ch-system-file" role="wrap">
|
||||
<title>File-&file-version;</title>
|
||||
<?dbhtml filename="file.html"?>
|
||||
|
||||
<indexterm zone="ch-system-file"><primary sortas="a-File">File</primary></indexterm>
|
||||
|
||||
<sect2 role="package"><title/>
|
||||
<para>The File package contains a utility for determining the type of files.</para>
|
||||
|
||||
<segmentedlist>
|
||||
<segtitle>&buildtime;</segtitle>
|
||||
@ -17,6 +18,11 @@
|
||||
<seglistitem><seg>0.1 SBU</seg><seg>6.3 MB</seg></seglistitem>
|
||||
</segmentedlist>
|
||||
|
||||
<segmentedlist>
|
||||
<segtitle>File installation depends on</segtitle>
|
||||
<seglistitem><seg>Bash, Binutils, Coreutils, Diffutils,
|
||||
GCC, Glibc, Grep, Make, Sed, and Zlib</seg></seglistitem>
|
||||
</segmentedlist>
|
||||
</sect2>
|
||||
|
||||
<sect2 role="installation">
|
||||
@ -30,7 +36,7 @@
|
||||
|
||||
<screen><userinput>make</userinput></screen>
|
||||
|
||||
<para>Now install it:</para>
|
||||
<para>Install the package:</para>
|
||||
|
||||
<screen><userinput>make install</userinput></screen>
|
||||
|
||||
@ -39,8 +45,36 @@
|
||||
|
||||
<sect2 id="contents-file" role="content"><title>Contents of File</title>
|
||||
|
||||
<para>See testing</para>
|
||||
<segmentedlist>
|
||||
<segtitle>Installed programs</segtitle>
|
||||
<segtitle>Installed library</segtitle>
|
||||
<seglistitem><seg>file</seg><seg>libmagic.[a,so]</seg></seglistitem>
|
||||
</segmentedlist>
|
||||
|
||||
<variablelist><bridgehead renderas="sect3">Short Descriptions</bridgehead>
|
||||
<?dbfo list-presentation="list"?>
|
||||
|
||||
<varlistentry id="file">
|
||||
<term><command>file</command></term>
|
||||
<listitem>
|
||||
<para>Tries to classify each given file; it does this by performing
|
||||
several tests—file system tests, magic number tests, and language
|
||||
tests</para>
|
||||
<indexterm zone="ch-system-file file"><primary sortas="b-file">file</primary></indexterm>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry id="libmagic">
|
||||
<term><filename class="libraryfile">libmagic</filename></term>
|
||||
<listitem>
|
||||
<para>Contains routines for magic number recognition, used by the
|
||||
<command>file</command> program</para>
|
||||
<indexterm zone="ch-system-file libmagic"><primary sortas="c-libmagic">libmagic</primary></indexterm>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
</variablelist>
|
||||
|
||||
</sect2>
|
||||
|
||||
</sect1>
|
||||
|
||||
|
@ -3,13 +3,17 @@
|
||||
<!ENTITY % general-entities SYSTEM "../general.ent">
|
||||
%general-entities;
|
||||
]>
|
||||
<sect1 id="ch-system-findutils" xreflabel="Findutils" role="wrap">
|
||||
<sect1 id="ch-system-findutils" role="wrap">
|
||||
<title>Findutils-&findutils-version;</title>
|
||||
<?dbhtml filename="findutils.html"?>
|
||||
|
||||
<indexterm zone="ch-system-findutils"><primary sortas="a-Findutils">Findutils</primary></indexterm>
|
||||
|
||||
<sect2 role="package"><title/>
|
||||
<para>The Findutils package contains programs to find files. Processes
|
||||
are provided to recursively search through a directory tree and to
|
||||
create, maintain, and search a database (often faster than the recursive
|
||||
find, but unreliable if the database has not been recently updated).</para>
|
||||
|
||||
<segmentedlist>
|
||||
<segtitle>&buildtime;</segtitle>
|
||||
@ -17,6 +21,11 @@
|
||||
<seglistitem><seg>0.2 SBU</seg><seg>7.5 MB</seg></seglistitem>
|
||||
</segmentedlist>
|
||||
|
||||
<segmentedlist>
|
||||
<segtitle>Findutils installation depends on</segtitle>
|
||||
<seglistitem><seg>Bash, Binutils, Coreutils,
|
||||
Diffutils, GCC, Gettext, Glibc, Grep, Make and Sed</seg></seglistitem>
|
||||
</segmentedlist>
|
||||
</sect2>
|
||||
|
||||
<sect2 role="installation">
|
||||
@ -27,6 +36,10 @@
|
||||
<screen><userinput>./configure --prefix=/usr --libexecdir=/usr/lib/locate \
|
||||
--localstatedir=/var/lib/locate</userinput></screen>
|
||||
|
||||
<para>The <parameter>localstatedir</parameter> directive above changes the
|
||||
location of the <command>locate</command> database to be in <filename
|
||||
class="directory">/var/lib/locate</filename>, which is FHS-compliant.</para>
|
||||
|
||||
<para>Compile the package:</para>
|
||||
|
||||
<screen><userinput>make</userinput></screen>
|
||||
@ -34,17 +47,86 @@
|
||||
<para>To test the results, issue:
|
||||
<userinput>make check</userinput>.</para>
|
||||
|
||||
<para>Now install the package:</para>
|
||||
<para>Install the package:</para>
|
||||
|
||||
<screen><userinput>make install</userinput></screen>
|
||||
|
||||
</sect2>
|
||||
|
||||
|
||||
<sect2 id="contents-findutils" role="content"><title>Contents of Findutils</title>
|
||||
|
||||
<para>See testing</para>
|
||||
<segmentedlist>
|
||||
<segtitle>Installed programs</segtitle>
|
||||
<seglistitem><seg>bigram, code, find, frcode, locate, updatedb, and xargs</seg></seglistitem>
|
||||
</segmentedlist>
|
||||
|
||||
<variablelist><bridgehead renderas="sect3">Short Descriptions</bridgehead>
|
||||
<?dbfo list-presentation="list"?>
|
||||
|
||||
<varlistentry id="bigram">
|
||||
<term><command>bigram</command></term>
|
||||
<listitem>
|
||||
<para>Was formerly used to produce <command>locate</command> databases</para>
|
||||
<indexterm zone="ch-system-findutils bigram"><primary sortas="b-bigram">bigram</primary></indexterm>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry id="code">
|
||||
<term><command>code</command></term>
|
||||
<listitem>
|
||||
<para>Was formerly used to produce <command>locate</command>
|
||||
databases; it is the ancestor of <command>frcode</command>.</para>
|
||||
<indexterm zone="ch-system-findutils code"><primary sortas="b-code">code</primary></indexterm>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry id="find">
|
||||
<term><command>find</command></term>
|
||||
<listitem>
|
||||
<para>Searches given directory trees for files matching the specified criteria</para>
|
||||
<indexterm zone="ch-system-findutils find"><primary sortas="b-find">find</primary></indexterm>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry id="frcode">
|
||||
<term><command>frcode</command></term>
|
||||
<listitem>
|
||||
<para>Is called by <command>updatedb</command> to compress the list of file names; it uses
|
||||
front-compression, reducing the database size by a factor of four to
|
||||
five.</para>
|
||||
<indexterm zone="ch-system-findutils frcode"><primary sortas="b-frcode">frcode</primary></indexterm>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry id="locate">
|
||||
<term><command>locate</command></term>
|
||||
<listitem>
|
||||
<para>Searches through a database of file names and reports the names
|
||||
that contain a given string or match a given pattern</para>
|
||||
<indexterm zone="ch-system-findutils locate"><primary sortas="b-locate">locate</primary></indexterm>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry id="updatedb">
|
||||
<term><command>updatedb</command></term>
|
||||
<listitem>
|
||||
<para>Updates the <command>locate</command> database; it scans
|
||||
the entire file system (including other file systems that are currently mounted,
|
||||
unless told not to) and puts every file name it finds into the database</para>
|
||||
<indexterm zone="ch-system-findutils updatedb"><primary sortas="b-updatedb">updatedb</primary></indexterm>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry id="xargs">
|
||||
<term><command>xargs</command></term>
|
||||
<listitem>
|
||||
<para>Can be used to apply a given command to a list of files</para>
|
||||
<indexterm zone="ch-system-findutils xargs"><primary sortas="b-xargs">xargs</primary></indexterm>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
</variablelist>
|
||||
|
||||
</sect2>
|
||||
|
||||
</sect1>
|
||||
|
||||
|
@ -3,13 +3,15 @@
|
||||
<!ENTITY % general-entities SYSTEM "../general.ent">
|
||||
%general-entities;
|
||||
]>
|
||||
<sect1 id="ch-system-flex" xreflabel="Flex" role="wrap">
|
||||
<sect1 id="ch-system-flex" role="wrap">
|
||||
<title>Flex-&flex-version;</title>
|
||||
<?dbhtml filename="flex.html"?>
|
||||
|
||||
<indexterm zone="ch-system-flex"><primary sortas="a-Flex">Flex</primary></indexterm>
|
||||
|
||||
<sect2 role="package"><title/>
|
||||
<para>The Flex package contains a utility for generating programs that
|
||||
recognize patterns in text.</para>
|
||||
|
||||
<segmentedlist>
|
||||
<segtitle>&buildtime;</segtitle>
|
||||
@ -17,20 +19,28 @@
|
||||
<seglistitem><seg>0.1 SBU</seg><seg>3.4 MB</seg></seglistitem>
|
||||
</segmentedlist>
|
||||
|
||||
<segmentedlist>
|
||||
<segtitle>Flex installation depends on</segtitle>
|
||||
<seglistitem><seg>Bash, Binutils, Bison, Coreutils, Diffutils,
|
||||
GCC, Gettext, Glibc, Grep, M4, Make, and Sed</seg></seglistitem>
|
||||
</segmentedlist>
|
||||
</sect2>
|
||||
|
||||
<sect2 role="installation">
|
||||
<title>Installation of Flex</title>
|
||||
|
||||
<para>Apply a patch:</para>
|
||||
<para>Flex contains several known bugs. Fix these with the following patch:</para>
|
||||
|
||||
<screen><userinput>patch -Np1 -i ../flex-&flex-version;-debian_fixes-2.patch</userinput></screen>
|
||||
|
||||
<para>Touch the man-page:</para>
|
||||
<para>The GNU autotools detects that the Flex source code has been
|
||||
modified by the previous patch and tries to update the manual page
|
||||
accordingly. This does not work correctly on many systems, and the
|
||||
default page is fine, so make sure it does not get regenerated:</para>
|
||||
|
||||
<screen><userinput>touch doc/flex.1</userinput></screen>
|
||||
|
||||
<para>Now prepare Flex for compilation:</para>
|
||||
<para>Prepare Flex for compilation:</para>
|
||||
|
||||
<screen><userinput>./configure --prefix=/usr</userinput></screen>
|
||||
|
||||
@ -41,15 +51,21 @@
|
||||
<para>To test the results, issue:
|
||||
<userinput>make check</userinput>.</para>
|
||||
|
||||
<para>Now install the package:</para>
|
||||
<para>Install the package:</para>
|
||||
|
||||
<screen><userinput>make install</userinput></screen>
|
||||
|
||||
<para>Create a symlink:</para>
|
||||
<para>There are some packages that expect to find the
|
||||
<filename class="libraryfile">lex</filename> library in <filename
|
||||
class="directory">/usr/lib</filename>. Create a symlink to account for
|
||||
this:</para>
|
||||
|
||||
<screen><userinput>ln -s libfl.a /usr/lib/libl.a</userinput></screen>
|
||||
|
||||
<para>Create a lex script:</para>
|
||||
<para>A few programs do not know about <command>flex</command> yet and
|
||||
try to run its predecessor, <command>lex</command>. To support those
|
||||
programs, create a wrapper script named <filename>lex</filename> that
|
||||
calls <filename>flex</filename> in <command>lex</command> emulation mode:</para>
|
||||
|
||||
<screen><userinput>cat > /usr/bin/lex << "EOF"
|
||||
<literal>#!/bin/sh
|
||||
@ -66,8 +82,54 @@ chmod 755 /usr/bin/lex</userinput></screen>
|
||||
|
||||
<sect2 id="contents-flex" role="content"><title>Contents of Flex</title>
|
||||
|
||||
<para>See testing</para>
|
||||
<segmentedlist>
|
||||
<segtitle>Installed programs</segtitle>
|
||||
<segtitle>Installed library</segtitle>
|
||||
<seglistitem><seg>flex, flex++ (link to flex), and lex</seg>
|
||||
<seg>libfl.a</seg></seglistitem>
|
||||
</segmentedlist>
|
||||
|
||||
<variablelist><bridgehead renderas="sect3">Short Descriptions</bridgehead>
|
||||
<?dbfo list-presentation="list"?>
|
||||
|
||||
<varlistentry id="flex">
|
||||
<term><command>flex</command></term>
|
||||
<listitem>
|
||||
<para>A tool for generating programs that recognize patterns in text;
|
||||
it allows for the versatility to specify the rules for
|
||||
pattern-finding, eradicating the need to develop a specialized
|
||||
program</para>
|
||||
<indexterm zone="ch-system-flex flex"><primary sortas="b-flex">flex</primary></indexterm>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry id="flex-">
|
||||
<term><command>flex++</command></term>
|
||||
<listitem>
|
||||
<para>Invokes a version of <command>flex</command> that is used exclusively for C++ scanners</para>
|
||||
<indexterm zone="ch-system-flex flex-"><primary sortas="b-flex++">flex++</primary></indexterm>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry id="lex">
|
||||
<term><command>lex</command></term>
|
||||
<listitem>
|
||||
<para>Script that runs <command>flex</command> in <command>lex</command>
|
||||
emulation mode</para>
|
||||
<indexterm zone="ch-system-flex lex"><primary sortas="b-lex">lex</primary></indexterm>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry id="libfl.a">
|
||||
<term><filename class="libraryfile">libfl.a</filename></term>
|
||||
<listitem>
|
||||
<para>The <filename class="libraryfile">flex</filename> library</para>
|
||||
<indexterm zone="ch-system-flex libfl.a"><primary sortas="c-libfl.a">libfl.a</primary></indexterm>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
</variablelist>
|
||||
|
||||
</sect2>
|
||||
|
||||
</sect1>
|
||||
|
||||
|
@ -3,13 +3,14 @@
|
||||
<!ENTITY % general-entities SYSTEM "../general.ent">
|
||||
%general-entities;
|
||||
]>
|
||||
<sect1 id="ch-system-gawk" xreflabel="Gawk" role="wrap">
|
||||
<sect1 id="ch-system-gawk" role="wrap">
|
||||
<title>Gawk-&gawk-version;</title>
|
||||
<?dbhtml filename="gawk.html"?>
|
||||
|
||||
<indexterm zone="ch-system-gawk"><primary sortas="a-Gawk">Gawk</primary></indexterm>
|
||||
|
||||
<sect2 role="package"><title/>
|
||||
<para>The Gawk package contains programs for manipulating text files.</para>
|
||||
|
||||
<segmentedlist>
|
||||
<segtitle>&buildtime;</segtitle>
|
||||
@ -17,6 +18,11 @@
|
||||
<seglistitem><seg>0.2 SBU</seg><seg>17 MB</seg></seglistitem>
|
||||
</segmentedlist>
|
||||
|
||||
<segmentedlist>
|
||||
<segtitle>Gawk installation depends on</segtitle>
|
||||
<seglistitem><seg>Bash, Binutils, Coreutils,
|
||||
Diffutils, GCC, Gettext, Glibc, Grep, Make, and Sed</seg></seglistitem>
|
||||
</segmentedlist>
|
||||
</sect2>
|
||||
|
||||
<sect2 role="installation">
|
||||
@ -33,7 +39,7 @@
|
||||
<para>To test the results, issue:
|
||||
<userinput>make check</userinput>.</para>
|
||||
|
||||
<para>Now install the package:</para>
|
||||
<para>Install the package:</para>
|
||||
|
||||
<screen><userinput>make install</userinput></screen>
|
||||
|
||||
@ -42,8 +48,82 @@
|
||||
|
||||
<sect2 id="contents-gawk" role="content"><title>Contents of Gawk</title>
|
||||
|
||||
<para>See testing</para>
|
||||
<segmentedlist>
|
||||
<segtitle>Installed programs</segtitle>
|
||||
<seglistitem><seg>awk (link to gawk), gawk, gawk-&gawk-version;, grcat, igawk,
|
||||
pgawk, pgawk-&gawk-version;, and pwcat</seg></seglistitem>
|
||||
</segmentedlist>
|
||||
|
||||
<variablelist><bridgehead renderas="sect3">Short Descriptions</bridgehead>
|
||||
<?dbfo list-presentation="list"?>
|
||||
|
||||
<varlistentry id="awk">
|
||||
<term><command>awk</command></term>
|
||||
<listitem>
|
||||
<para>A link to <command>gawk</command></para>
|
||||
<indexterm zone="ch-system-gawk awk"><primary sortas="b-awk">awk</primary></indexterm>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry id="gawk">
|
||||
<term><command>gawk</command></term>
|
||||
<listitem>
|
||||
<para>A program for manipulating text files; it is the GNU
|
||||
implementation of <command>awk</command></para>
|
||||
<indexterm zone="ch-system-gawk gawk"><primary sortas="b-gawk">gawk</primary></indexterm>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry id="gawk-version">
|
||||
<term><command>gawk-&gawk-version;</command></term>
|
||||
<listitem>
|
||||
<para>A hard link to <command>gawk</command></para>
|
||||
<indexterm zone="ch-system-gawk gawk-version"><primary sortas="b-gawk-&gawk-version;">gawk-&gawk-version;</primary></indexterm>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry id="grcat">
|
||||
<term><command>grcat</command></term>
|
||||
<listitem>
|
||||
<para>Dumps the group database <filename>/etc/group</filename></para>
|
||||
<indexterm zone="ch-system-gawk grcat"><primary sortas="b-grcat">grcat</primary></indexterm>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry id="igawk">
|
||||
<term><command>igawk</command></term>
|
||||
<listitem>
|
||||
<para>Gives <command>gawk</command> the ability to include files</para>
|
||||
<indexterm zone="ch-system-gawk igawk"><primary sortas="b-igawk">igawk</primary></indexterm>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry id="pgawk">
|
||||
<term><command>pgawk</command></term>
|
||||
<listitem>
|
||||
<para>The profiling version of <command>gawk</command></para>
|
||||
<indexterm zone="ch-system-gawk pgawk"><primary sortas="b-pgawk">pgawk</primary></indexterm>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry id="pgawk-version">
|
||||
<term><command>pgawk-&gawk-version;</command></term>
|
||||
<listitem>
|
||||
<para>Hard link to <command>pgawk</command></para>
|
||||
<indexterm zone="ch-system-gawk pgawk-version"><primary sortas="b-pgawk-&gawk-version;">pgawk-&gawk-version;</primary></indexterm>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry id="pwcat">
|
||||
<term><command>pwcat</command></term>
|
||||
<listitem>
|
||||
<para>Dumps the password database <filename>/etc/passwd</filename></para>
|
||||
<indexterm zone="ch-system-gawk pwcat"><primary sortas="b-pwcat">pwcat</primary></indexterm>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
</variablelist>
|
||||
|
||||
</sect2>
|
||||
|
||||
</sect1>
|
||||
|
||||
|
@ -3,13 +3,15 @@
|
||||
<!ENTITY % general-entities SYSTEM "../general.ent">
|
||||
%general-entities;
|
||||
]>
|
||||
<sect1 id="ch-system-gcc" xreflabel="GCC" role="wrap">
|
||||
<sect1 id="ch-system-gcc" role="wrap">
|
||||
<title>GCC-&gcc-version;</title>
|
||||
<?dbhtml filename="gcc.html"?>
|
||||
|
||||
<indexterm zone="ch-system-gcc"><primary sortas="a-GCC">GCC</primary></indexterm>
|
||||
|
||||
<sect2 role="package"><title/>
|
||||
<para>The GCC package contains the GNU compiler collection, which includes
|
||||
the C and C++ compilers.</para>
|
||||
|
||||
<segmentedlist>
|
||||
<segtitle>&buildtime;</segtitle>
|
||||
@ -17,29 +19,54 @@
|
||||
<seglistitem><seg>11.7 SBU</seg><seg>294 MB</seg></seglistitem>
|
||||
</segmentedlist>
|
||||
|
||||
<segmentedlist>
|
||||
<segtitle>GCC installation depends on</segtitle>
|
||||
<seglistitem><seg>Bash, Binutils, Coreutils, Diffutils, Findutils,
|
||||
Gawk, Gettext, Glibc, Grep, Make, Perl, Sed, and Texinfo</seg></seglistitem>
|
||||
</segmentedlist>
|
||||
</sect2>
|
||||
|
||||
<sect2 role="installation">
|
||||
<title>Installation of GCC</title>
|
||||
|
||||
<para>Apply a patch:</para>
|
||||
<para>This package is known to have issues when its default
|
||||
optimization flags (including the <parameter>-march</parameter> and
|
||||
<parameter>-mcpu</parameter> options) are changed. If any environment
|
||||
variables that override default optimizations have been defined, such
|
||||
as <envar>CFLAGS</envar> and <envar>CXXFLAGS</envar>,
|
||||
unset them when building GCC.</para>
|
||||
|
||||
<para>Unpack both the gcc-core and the gcc-g++ tarballs—they will
|
||||
unpack into the same directory. Likewise, extract the gcc-testsuite
|
||||
package. The full GCC package contains additional compilers.
|
||||
Instructions for building these can be found at <ulink
|
||||
url="&blfs-root;view/svn/general/gcc.html"/>.</para>
|
||||
|
||||
<para>Apply only the No-Fixincludes patch (not the Specs patch) also
|
||||
used in the previous chapter:</para>
|
||||
|
||||
<screen><userinput>patch -Np1 -i ../gcc-&gcc-version;-no_fixincludes-1.patch</userinput></screen>
|
||||
|
||||
<para>Apply another patch:</para>
|
||||
<para>GCC fails to compile some packages outside of a base Linux From Scratch
|
||||
install (e.g., Mozilla and kdegraphics) when used in conjunction with newer
|
||||
versions of Binutils. Apply the following patch to fix this issue:</para>
|
||||
|
||||
<screen><userinput>patch -Np1 -i ../gcc-&gcc-version;-linkonce-1.patch</userinput></screen>
|
||||
|
||||
<para>Apply a sed substitution:</para>
|
||||
<para>Apply a sed substitution that will suppress the installation of
|
||||
<filename class="libraryfile">libiberty.a</filename>. The version of
|
||||
<filename class="libraryfile">libiberty.a</filename> provided by
|
||||
Binutils will be used instead:</para>
|
||||
|
||||
<screen><userinput>sed -i 's/install_to_$(INSTALL_DEST) //' libiberty/Makefile.in</userinput></screen>
|
||||
|
||||
<para>Create a build directory:</para>
|
||||
<para>The GCC documentation recommends building GCC outside of the source
|
||||
directory in a dedicated build directory:</para>
|
||||
|
||||
<screen><userinput>mkdir ../gcc-build
|
||||
cd ../gcc-build</userinput></screen>
|
||||
|
||||
<para>Now prepare GCC for compilation:</para>
|
||||
<para>Prepare GCC for compilation:</para>
|
||||
|
||||
<screen><userinput>../gcc-&gcc-version;/configure --prefix=/usr \
|
||||
--libexecdir=/usr/lib --enable-shared \
|
||||
@ -50,35 +77,140 @@ cd ../gcc-build</userinput></screen>
|
||||
|
||||
<screen><userinput>make</userinput></screen>
|
||||
|
||||
<para>Test the results):</para>
|
||||
<important><para>In this section, the test suite for GCC is considered
|
||||
critical. Do not skip it under any circumstance.</para></important>
|
||||
|
||||
<para>Test the results, but do not stop at errors:</para>
|
||||
|
||||
<screen><userinput>make -k check</userinput></screen>
|
||||
|
||||
<para>The test suite notes from <xref linkend="ch-tools-gcc-pass2"/> are still very
|
||||
much appropriate here.</para>
|
||||
<para>Some of the errors are known issues and were noted in the
|
||||
previous chapter. The test suite notes from <xref
|
||||
linkend="ch-tools-gcc-pass2" role=","/> are still relevant here. Be sure to
|
||||
refer back to them as necessary.</para>
|
||||
|
||||
<para>Now install the package:</para>
|
||||
<para>Install the package:</para>
|
||||
|
||||
<screen><userinput>make install</userinput></screen>
|
||||
|
||||
<para>Create this symlink:</para>
|
||||
<para>Some packages expect the C PreProcessor to be installed in the
|
||||
<filename class="directory">/lib</filename> directory.
|
||||
To support those packages, create this symlink:</para>
|
||||
|
||||
<screen><userinput>ln -s ../usr/bin/cpp /lib</userinput></screen>
|
||||
|
||||
<para>Create another symlink:</para>
|
||||
<para>Many packages use the name <command>cc</command> to call the C
|
||||
compiler. To satisfy those packages, create a symlink:</para>
|
||||
|
||||
<screen><userinput>ln -s gcc /usr/bin/cc</userinput></screen>
|
||||
|
||||
<note><para>Refer back to <xref linkend="ch-system-readjusting"/>
|
||||
and repeat the check.</para></note>
|
||||
<note><para>At this point, it is strongly recommended to repeat the
|
||||
sanity check performed earlier in this chapter. Refer back to <xref
|
||||
linkend="ch-system-readjusting" role=","/> and repeat the check. If the results
|
||||
are in error, then the most likely reason is that the GCC Specs patch
|
||||
from <xref linkend="chapter-temporary-tools"/> was erroneously applied
|
||||
here.</para></note>
|
||||
|
||||
</sect2>
|
||||
|
||||
|
||||
<sect2 id="contents-gcc" role="content"><title>Contents of GCC</title>
|
||||
|
||||
<para>See testing</para>
|
||||
<segmentedlist>
|
||||
<segtitle>Installed programs</segtitle>
|
||||
<segtitle>Installed libraries</segtitle>
|
||||
<seglistitem><seg>c++, cc (link to gcc), cpp, g++, gcc, gccbug, and
|
||||
gcov</seg>
|
||||
<seg>libgcc.a, libgcc_eh.a, libgcc_s.so, libstdc++.[a,so], and libsupc++.a</seg></seglistitem>
|
||||
</segmentedlist>
|
||||
|
||||
<variablelist><bridgehead renderas="sect3">Short Descriptions</bridgehead>
|
||||
<?dbfo list-presentation="list"?>
|
||||
|
||||
<varlistentry id="cc">
|
||||
<term><command>cc</command></term>
|
||||
<listitem>
|
||||
<para>The C compiler</para>
|
||||
<indexterm zone="ch-system-gcc cc"><primary sortas="b-cc">cc</primary></indexterm>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry id="cpp">
|
||||
<term><command>cpp</command></term>
|
||||
<listitem>
|
||||
<para>The C preprocessor; it is used by the compiler to expand the
|
||||
#include, #define, and similar statements in the source files</para>
|
||||
<indexterm zone="ch-system-gcc cpp"><primary sortas="b-cpp">cpp</primary></indexterm>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry id="c">
|
||||
<term><command>c++</command></term>
|
||||
<listitem>
|
||||
<para>The C++ compiler</para>
|
||||
<indexterm zone="ch-system-gcc c"><primary sortas="b-c++">c++</primary></indexterm>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry id="g">
|
||||
<term><command>g++</command></term>
|
||||
<listitem>
|
||||
<para>The C++ compiler</para>
|
||||
<indexterm zone="ch-system-gcc g"><primary sortas="b-g++">g++</primary></indexterm>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry id="gcc">
|
||||
<term><command>gcc</command></term>
|
||||
<listitem>
|
||||
<para>The C compiler</para>
|
||||
<indexterm zone="ch-system-gcc gcc"><primary sortas="b-gcc">gcc</primary></indexterm>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry id="gccbug">
|
||||
<term><command>gccbug</command></term>
|
||||
<listitem>
|
||||
<para>A shell script used to help create useful bug reports</para>
|
||||
<indexterm zone="ch-system-gcc gccbug"><primary sortas="b-gccbug">gccbug</primary></indexterm>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry id="gcov">
|
||||
<term><command>gcov</command></term>
|
||||
<listitem>
|
||||
<para>A coverage testing tool; it is used to analyze programs to
|
||||
determine where optimizations will have the most effect</para>
|
||||
<indexterm zone="ch-system-gcc gcov"><primary sortas="b-gcov">gcov</primary></indexterm>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry id="libgcc">
|
||||
<term><filename class="libraryfile">libgcc</filename></term>
|
||||
<listitem>
|
||||
<para>Contains run-time support for <command>gcc</command></para>
|
||||
<indexterm zone="ch-system-gcc libgcc"><primary sortas="c-libgcc*">libgcc*</primary></indexterm>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry id="libstdc">
|
||||
<term><filename class="libraryfile">libstdc++</filename></term>
|
||||
<listitem>
|
||||
<para>The standard C++ library</para>
|
||||
<indexterm zone="ch-system-gcc libstdc"><primary sortas="c-libstdc++">libstdc++</primary></indexterm>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry id="libsupc">
|
||||
<term><filename class="libraryfile">libsupc++</filename></term>
|
||||
<listitem>
|
||||
<para>Provides supporting routines for the C++ programming language</para>
|
||||
<indexterm zone="ch-system-gcc libsupc"><primary sortas="c-libsupc++">libsupc++</primary></indexterm>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
</variablelist>
|
||||
|
||||
</sect2>
|
||||
|
||||
</sect1>
|
||||
|
||||
|
@ -3,13 +3,16 @@
|
||||
<!ENTITY % general-entities SYSTEM "../general.ent">
|
||||
%general-entities;
|
||||
]>
|
||||
<sect1 id="ch-system-gettext" xreflabel="Gettext" role="wrap">
|
||||
<sect1 id="ch-system-gettext" role="wrap">
|
||||
<title>Gettext-&gettext-version;</title>
|
||||
<?dbhtml filename="gettext.html"?>
|
||||
|
||||
<indexterm zone="ch-system-gettext"><primary sortas="a-Gettext">Gettext</primary></indexterm>
|
||||
|
||||
<sect2 role="package"><title/>
|
||||
<para>The Gettext package contains utilities for internationalization and
|
||||
localization. These allow programs to be compiled with NLS, enabling them
|
||||
to output messages in the user's native language.</para>
|
||||
|
||||
<segmentedlist>
|
||||
<segtitle>&buildtime;</segtitle>
|
||||
@ -17,6 +20,11 @@
|
||||
<seglistitem><seg>0.5 SBU</seg><seg>55 MB</seg></seglistitem>
|
||||
</segmentedlist>
|
||||
|
||||
<segmentedlist>
|
||||
<segtitle>Gettext installation depends on</segtitle>
|
||||
<seglistitem><seg>Bash, Binutils, Bison, Coreutils,
|
||||
Diffutils, Gawk, GCC, Glibc, Grep, Make, and Sed</seg></seglistitem>
|
||||
</segmentedlist>
|
||||
</sect2>
|
||||
|
||||
<sect2 role="installation">
|
||||
@ -31,9 +39,10 @@
|
||||
<screen><userinput>make</userinput></screen>
|
||||
|
||||
<para>To test the results, issue:
|
||||
<userinput>make check</userinput>.</para>
|
||||
<userinput>make check</userinput>. This takes a very long time, around
|
||||
7 SBUs.</para>
|
||||
|
||||
<para>Now install the package:</para>
|
||||
<para>Install the package:</para>
|
||||
|
||||
<screen><userinput>make install</userinput></screen>
|
||||
|
||||
@ -42,8 +51,257 @@
|
||||
|
||||
<sect2 id="contents-gettext" role="content"><title>Contents of Gettext</title>
|
||||
|
||||
<para>See testing</para>
|
||||
<segmentedlist>
|
||||
<segtitle>Installed programs</segtitle>
|
||||
<segtitle>Installed libraries</segtitle>
|
||||
<seglistitem><seg>autopoint, config.charset, config.rpath, envsubst, gettext,
|
||||
gettextize, hostname, msgattrib, msgcat, msgcmp, msgcomm, msgconv, msgen,
|
||||
msgexec, msgfilter, msgfmt, msggrep, msginit, msgmerge, msgunfmt, msguniq,
|
||||
ngettext, and xgettext</seg>
|
||||
<seg>libasprintf[a,so], libgettextlib[a,so], libgettextpo[a,so] and libgettextsrc[a,so]</seg></seglistitem>
|
||||
</segmentedlist>
|
||||
|
||||
<variablelist><bridgehead renderas="sect3">Short Descriptions</bridgehead>
|
||||
<?dbfo list-presentation="list"?>
|
||||
|
||||
<varlistentry id="autopoint">
|
||||
<term><command>autopoint</command></term>
|
||||
<listitem>
|
||||
<para>Copies standard Gettext infrastructure files into a source package</para>
|
||||
<indexterm zone="ch-system-gettext autopoint"><primary sortas="b-autopoint">autopoint</primary></indexterm>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry id="config.charset">
|
||||
<term><command>config.charset</command></term>
|
||||
<listitem>
|
||||
<para>Outputs a system-dependent table of character encoding aliases</para>
|
||||
<indexterm zone="ch-system-gettext config.charset"><primary sortas="b-config.charset">config.charset</primary></indexterm>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry id="config.rpath">
|
||||
<term><command>config.rpath</command></term>
|
||||
<listitem>
|
||||
<para>Outputs a system-dependent set of variables, describing how to set the
|
||||
runtime search path of shared libraries in an executable</para>
|
||||
<indexterm zone="ch-system-gettext config.rpath"><primary sortas="b-config.rpath">config.rpath</primary></indexterm>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry id="envsubst">
|
||||
<term><command>envsubst</command></term>
|
||||
<listitem>
|
||||
<para>Substitutes environment variables in shell format strings</para>
|
||||
<indexterm zone="ch-system-gettext envsubst"><primary sortas="b-envsubst">envsubst</primary></indexterm>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry id="gettext">
|
||||
<term><command>gettext</command></term>
|
||||
<listitem>
|
||||
<para>Translates a natural language message into the user's language
|
||||
by looking up the translation in a message catalog</para>
|
||||
<indexterm zone="ch-system-gettext gettext"><primary sortas="b-gettext">gettext</primary></indexterm>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry id="gettextize">
|
||||
<term><command>gettextize</command></term>
|
||||
<listitem>
|
||||
<para>Copies all standard Gettext files into the given top-level
|
||||
directory of a package to begin internationalizing it</para>
|
||||
<indexterm zone="ch-system-gettext gettextize"><primary sortas="b-gettextize">gettextize</primary></indexterm>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry id="hostname-gettext">
|
||||
<term><command>hostname</command></term>
|
||||
<listitem>
|
||||
<para>Displays a network hostname in various forms</para>
|
||||
<indexterm zone="ch-system-gettext hostname-gettext"><primary sortas="b-hostname-gettext">hostname</primary></indexterm>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry id="msgattrib">
|
||||
<term><command>msgattrib</command></term>
|
||||
<listitem>
|
||||
<para>Filters the messages of a translation catalog according to their
|
||||
attributes and manipulates the attributes</para>
|
||||
<indexterm zone="ch-system-gettext msgattrib"><primary sortas="b-msgattrib">msgattrib</primary></indexterm>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry id="msgcat">
|
||||
<term><command>msgcat</command></term>
|
||||
<listitem>
|
||||
<para>Concatenates and merges the given <filename class="extension">.po</filename> files</para>
|
||||
<indexterm zone="ch-system-gettext msgcat"><primary sortas="b-msgcat">msgcat</primary></indexterm>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry id="msgcmp">
|
||||
<term><command>msgcmp</command></term>
|
||||
<listitem>
|
||||
<para>Compares two <filename class="extension">.po</filename>
|
||||
files to check that both contain the same set of msgid strings</para>
|
||||
<indexterm zone="ch-system-gettext msgcmp"><primary sortas="b-msgcmp">msgcmp</primary></indexterm>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry id="msgcomm">
|
||||
<term><command>msgcomm</command></term>
|
||||
<listitem>
|
||||
<para>Finds the messages that are common to
|
||||
to the given <filename class="extension">.po</filename> files</para>
|
||||
<indexterm zone="ch-system-gettext msgcomm"><primary sortas="b-msgcomm">msgcomm</primary></indexterm>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry id="msgconv">
|
||||
<term><command>msgconv</command></term>
|
||||
<listitem>
|
||||
<para>Converts a translation catalog to a different character encoding</para>
|
||||
<indexterm zone="ch-system-gettext msgconv"><primary sortas="b-msgconv">msgconv</primary></indexterm>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry id="msgen">
|
||||
<term><command>msgen</command></term>
|
||||
<listitem>
|
||||
<para>Creates an English translation catalog</para>
|
||||
<indexterm zone="ch-system-gettext msgen"><primary sortas="b-msgen">msgen</primary></indexterm>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry id="msgexec">
|
||||
<term><command>msgexec</command></term>
|
||||
<listitem>
|
||||
<para>Applies a command to all translations of a translation catalog</para>
|
||||
<indexterm zone="ch-system-gettext msgexec"><primary sortas="b-msgexec">msgexec</primary></indexterm>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry id="msgfilter">
|
||||
<term><command>msgfilter</command></term>
|
||||
<listitem>
|
||||
<para>Applies a filter to all translations of a translation catalog</para>
|
||||
<indexterm zone="ch-system-gettext msgfilter"><primary sortas="b-msgfilter">msgfilter</primary></indexterm>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry id="msgfmt">
|
||||
<term><command>msgfmt</command></term>
|
||||
<listitem>
|
||||
<para>Generates a binary message catalog from from a translation catalog</para>
|
||||
<indexterm zone="ch-system-gettext msgfmt"><primary sortas="b-msgfmt">msgfmt</primary></indexterm>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry id="msggrep">
|
||||
<term><command>msggrep</command></term>
|
||||
<listitem>
|
||||
<para>Extracts all messages of a translation catalog that match a
|
||||
given pattern or belong to some given source files</para>
|
||||
<indexterm zone="ch-system-gettext msggrep"><primary sortas="b-msggrep">msggrep</primary></indexterm>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry id="msginit">
|
||||
<term><command>msginit</command></term>
|
||||
<listitem>
|
||||
<para>Creates a new <filename class="extension">.po</filename> file, initializing the meta
|
||||
information with values from the user's environment</para>
|
||||
<indexterm zone="ch-system-gettext msginit"><primary sortas="b-msginit">msginit</primary></indexterm>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry id="msgmerge">
|
||||
<term><command>msgmerge</command></term>
|
||||
<listitem>
|
||||
<para>Combines two raw translations into a single file</para>
|
||||
<indexterm zone="ch-system-gettext msgmerge"><primary sortas="b-msgmerge">msgmerge</primary></indexterm>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry id="msgunfmt">
|
||||
<term><command>msgunfmt</command></term>
|
||||
<listitem>
|
||||
<para>Decompiles a binary message catalog into raw translation text</para>
|
||||
<indexterm zone="ch-system-gettext msgunfmt"><primary sortas="b-msgunfmt">msgunfmt</primary></indexterm>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry id="msguniq">
|
||||
<term><command>msguniq</command></term>
|
||||
<listitem>
|
||||
<para>Unifies duplicate translations in a translation catalog</para>
|
||||
<indexterm zone="ch-system-gettext msguniq"><primary sortas="b-msguniq">msguniq</primary></indexterm>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry id="ngettext">
|
||||
<term><command>ngettext</command></term>
|
||||
<listitem>
|
||||
<para>Displays native language translations of a textual message whose
|
||||
grammatical form depends on a number</para>
|
||||
<indexterm zone="ch-system-gettext ngettext"><primary sortas="b-ngettext">ngettext</primary></indexterm>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry id="xgettext">
|
||||
<term><command>xgettext</command></term>
|
||||
<listitem>
|
||||
<para>Extracts the translatable message lines from the given source
|
||||
files to make the first translation template</para>
|
||||
<indexterm zone="ch-system-gettext xgettext"><primary sortas="b-xgettext">xgettext</primary></indexterm>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry id="libasprintf">
|
||||
<term><filename class="libraryfile">libasprintf</filename></term>
|
||||
<listitem>
|
||||
<para>defines the <emphasis>autosprintf</emphasis> class, which makes
|
||||
C formatted output routines usable in C++ programs, for use with the
|
||||
<emphasis><string></emphasis> strings and the
|
||||
<emphasis><iostream></emphasis> streams</para>
|
||||
<indexterm zone="ch-system-gettext libasprintf"><primary sortas="c-libasprintf">libasprintf</primary></indexterm>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry id="libgettextlib">
|
||||
<term><filename class="libraryfile">libgettextlib</filename></term>
|
||||
<listitem>
|
||||
<para>a private library containing common routines used by the various Gettext
|
||||
programs; these are not intended for general use</para>
|
||||
<indexterm zone="ch-system-gettext libgettextlib"><primary sortas="c-libgettextlib">libgettextlib</primary></indexterm>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry id="libgettextpo">
|
||||
<term><filename class="libraryfile">libgettextpo</filename></term>
|
||||
<listitem>
|
||||
<para>Used to write specialized programs that process <filename
|
||||
class="extension">.po</filename> files; this library is used when the
|
||||
standard applications shipped with Gettext (such as
|
||||
<command>msgcomm</command>, <command>msgcmp</command>,
|
||||
<command>msgattrib</command>, and <command>msgen</command>) will not
|
||||
suffice</para>
|
||||
<indexterm zone="ch-system-gettext libgettextpo"><primary sortas="c-libgettextpo">libgettextpo</primary></indexterm>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry id="libgettextsrc">
|
||||
<term><filename class="libraryfile">libgettextsrc</filename></term>
|
||||
<listitem>
|
||||
<para>A private library containing common routines used by the various Gettext
|
||||
programs; these are not intended for general use</para>
|
||||
<indexterm zone="ch-system-gettext libgettextsrc"><primary sortas="c-libgettextsrc">libgettextsrc</primary></indexterm>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
</variablelist>
|
||||
|
||||
</sect2>
|
||||
|
||||
</sect1>
|
||||
|
||||
|
@ -3,13 +3,17 @@
|
||||
<!ENTITY % general-entities SYSTEM "../general.ent">
|
||||
%general-entities;
|
||||
]>
|
||||
<sect1 id="ch-system-glibc" xreflabel="Glibc" role="wrap">
|
||||
<sect1 id="ch-system-glibc" role="wrap">
|
||||
<title>Glibc-&glibc-version;</title>
|
||||
<?dbhtml filename="glibc.html"?>
|
||||
|
||||
<indexterm zone="ch-system-glibc"><primary sortas="a-Glibc">Glibc</primary></indexterm>
|
||||
|
||||
<sect2 role="package"><title/>
|
||||
<para>The Glibc package contains the main C library. This library provides
|
||||
the basic routines for allocating memory, searching directories, opening and
|
||||
closing files, reading and writing files, string handling, pattern matching,
|
||||
arithmetic, and so on.</para>
|
||||
|
||||
<segmentedlist>
|
||||
<segtitle>&buildtime;</segtitle>
|
||||
@ -17,56 +21,131 @@
|
||||
<seglistitem><seg>12.3 SBU</seg><seg>784 MB</seg></seglistitem>
|
||||
</segmentedlist>
|
||||
|
||||
<segmentedlist>
|
||||
<segtitle>Glibc installation depends on</segtitle>
|
||||
<seglistitem><seg>Bash, Binutils, Coreutils, Diffutils,
|
||||
Gawk, GCC, Gettext, Grep, Make, Perl, Sed, and Texinfo</seg></seglistitem>
|
||||
</segmentedlist>
|
||||
</sect2>
|
||||
|
||||
<sect2 role="installation">
|
||||
<title>Installation of Glibc</title>
|
||||
|
||||
<para>The linuxthreads tarball contains the man pages for the threading
|
||||
libraries installed by glibc. Unpack the tarball from within the glibc source
|
||||
directory:</para>
|
||||
<para>This package is known to have issues when its default
|
||||
optimization flags (including the <parameter>-march</parameter> and
|
||||
<parameter>-mcpu</parameter> options) are changed. If any environment
|
||||
variables that override default optimizations have been defined, such
|
||||
as <envar>CFLAGS</envar> and <envar>CXXFLAGS</envar>,
|
||||
unset them when building Glibc.</para>
|
||||
|
||||
<screen><userinput>tar xjvf ../glibc-linuxthreads-&glibc-version;.tar.bz2</userinput></screen>
|
||||
<para>The Glibc build system is self-contained and will install
|
||||
perfectly, even though the compiler specs file and linker are still
|
||||
pointing at <filename class="directory">/tools</filename>. The specs
|
||||
and linker cannot be adjusted before the Glibc install because the
|
||||
Glibc autoconf tests would give false results and defeat the goal
|
||||
of achieving a clean build.</para>
|
||||
|
||||
<para>Create a build directory:</para>
|
||||
<para>The linuxthreads tarball contains the man pages for the
|
||||
threading libraries installed by glibc. Unpack the tarball from
|
||||
within the glibc source directory:</para>
|
||||
|
||||
<screen><userinput>tar xjvf /sources/glibc-linuxthreads-&glibc-version;.tar.bz2</userinput></screen>
|
||||
|
||||
<para>The Glibc documentation recommends building Glibc outside of the source
|
||||
directory in a dedicated build directory:</para>
|
||||
|
||||
<screen><userinput>mkdir ../glibc-build
|
||||
cd ../glibc-build</userinput></screen>
|
||||
|
||||
<para>Now prepare Glibc for compilation:</para>
|
||||
<para>Prepare Glibc for compilation:</para>
|
||||
|
||||
<screen><userinput>../glibc-&glibc-version;/configure --prefix=/usr \
|
||||
--disable-profile --enable-add-ons \
|
||||
--enable-kernel=2.6.0 --without-cvs \
|
||||
--libexecdir=/usr/lib/glibc</userinput></screen>
|
||||
|
||||
<para>The meaning of the new configure option:</para>
|
||||
|
||||
<variablelist>
|
||||
<varlistentry>
|
||||
<term><parameter>--libexecdir=/usr/lib/glibc</parameter></term>
|
||||
<listitem><para>This changes the location of the
|
||||
<command>pt_chown</command> program from its default of <filename
|
||||
class="directory">/usr/libexec</filename> to <filename
|
||||
class="directory">/usr/lib/glibc</filename>.</para></listitem>
|
||||
</varlistentry>
|
||||
</variablelist>
|
||||
|
||||
<para>Compile the package:</para>
|
||||
|
||||
<screen><userinput>make</userinput></screen>
|
||||
|
||||
<important><para>In this section, the test suite for Glibc is
|
||||
considered critical. Do not skip it under any
|
||||
circumstance.</para></important>
|
||||
|
||||
<para>Test the results:</para>
|
||||
|
||||
<screen><userinput>make check</userinput></screen>
|
||||
|
||||
<para>The Glibc test suite is highly dependent on certain functions of your host
|
||||
system. See testing for explanations.</para>
|
||||
<para>The Glibc test suite is highly dependent on certain functions of
|
||||
the host system, in particular the kernel. In general, the Glibc test
|
||||
suite is always expected to pass. However, in certain circumstances,
|
||||
some failures are unavoidable. This is a list of the most common
|
||||
issues:</para>
|
||||
|
||||
<para>Fix an annoying little warning with:</para>
|
||||
<itemizedlist>
|
||||
<listitem><para>The <emphasis>math</emphasis> tests sometimes fail when running
|
||||
on systems where the CPU is not a relatively new genuine Intel or authentic AMD.
|
||||
Certain optimization settings are also known to be a factor here.</para></listitem>
|
||||
|
||||
<listitem><para>The <emphasis>gettext</emphasis> test sometimes fails due to
|
||||
host system issues. The exact reasons are not yet clear.</para></listitem>
|
||||
|
||||
<listitem><para>The <emphasis>atime</emphasis> test sometimes fails
|
||||
when the LFS partition is mounted with the
|
||||
<parameter>noatime</parameter> option.</para></listitem>
|
||||
|
||||
<listitem><para>The <emphasis>shm</emphasis> test can fail when the
|
||||
host system is using the <systemitem
|
||||
class="filesystem">devfs</systemitem> file system but does not have
|
||||
the <systemitem class="filesystem">tmpfs</systemitem> file system
|
||||
mounted at <filename class="directory">/dev/shm</filename>. This
|
||||
occurs because of a lack of support for <systemitem
|
||||
class="filesystem">tmpfs</systemitem> in the
|
||||
kernel.</para></listitem>
|
||||
|
||||
<listitem><para>When running on older and slower hardware, some tests
|
||||
can fail because of test timeouts being exceeded.</para></listitem>
|
||||
</itemizedlist>
|
||||
|
||||
<para>Though it is a harmless message, the install stage of Glibc will
|
||||
complain about the absence of <filename>/etc/ld.so.conf</filename>.
|
||||
Prevent this warning with:</para>
|
||||
|
||||
<screen><userinput>touch /etc/ld.so.conf</userinput></screen>
|
||||
|
||||
<para>And install the package:</para>
|
||||
<para>Install the package:</para>
|
||||
|
||||
<screen><userinput>make install</userinput></screen>
|
||||
|
||||
<para>To install the Glibc locales, use the following
|
||||
command:</para>
|
||||
<para>The locales that can make the system respond in a different
|
||||
language were not installed by the above command. Install this
|
||||
with:</para>
|
||||
|
||||
<screen><userinput>make localedata/install-locales</userinput></screen>
|
||||
|
||||
<para>An alternative to running the previous command is to install only those
|
||||
locales which you need or want. The following instructions, instead of the
|
||||
install-locales target above, will install the minimum set of locales necessary
|
||||
<para>To save time, an alternative to running the
|
||||
previous command (which generates and installs every locale Glibc is
|
||||
aware of) is to install only those locales that are wanted and needed.
|
||||
This can be achieved by using the <command>localedef</command>
|
||||
command. Information on this command is located in the
|
||||
<filename>INSTALL</filename> file in the Glibc source. However, there
|
||||
are a number of locales that are essential in order for the tests of
|
||||
future packages to pass, in particular, the
|
||||
<emphasis>libstdc++</emphasis> tests from GCC. The following
|
||||
instructions, instead of the <parameter>install-locales</parameter>
|
||||
target used above, will install the minimum set of locales necessary
|
||||
for the tests to run successfully:</para>
|
||||
|
||||
<screen><userinput>mkdir -p /usr/lib/locale
|
||||
@ -82,18 +161,40 @@ localedef -i fr_FR@euro -f ISO-8859-15 fr_FR@euro
|
||||
localedef -i it_IT -f ISO-8859-1 it_IT
|
||||
localedef -i ja_JP -f EUC-JP ja_JP</userinput></screen>
|
||||
|
||||
<para>Build the linuxthreads man pages:</para>
|
||||
<para>Some locales installed by the <command>make
|
||||
localedata/install-locales</command> command above are not properly
|
||||
supported by some applications that are in the LFS and BLFS books.
|
||||
Because of the various problems that arise due to application
|
||||
programmers making assumptions that break in such locales, LFS should
|
||||
not be used in locales that utilize multibyte character sets
|
||||
(including UTF-8) or right-to-left writing order. Numerous unofficial
|
||||
and unstable patches are required to fix these problems, and it has
|
||||
been decided by the LFS developers not to support such complex locales. This applies to the
|
||||
ja_JP and fa_IR locales as well—they have been installed only for
|
||||
GCC and Gettext tests to pass, and the <command>watch</command> program
|
||||
(part of the Procps package) does not work properly in them. Various
|
||||
attempts to circumvent these restrictions are documented in
|
||||
internationalization-related hints.</para>
|
||||
|
||||
<para>Build the linuxthreads man pages, which are a great reference
|
||||
on the threading API (applicable to NPTL as well):</para>
|
||||
|
||||
<screen><userinput>make -C ../glibc-&glibc-version;/linuxthreads/man</userinput></screen>
|
||||
|
||||
<para>And install these pages:</para>
|
||||
<para>Install these pages:</para>
|
||||
|
||||
<screen><userinput>make -C ../glibc-&glibc-version;/linuxthreads/man install</userinput></screen>
|
||||
|
||||
</sect2>
|
||||
|
||||
|
||||
<sect2 id="conf-glibc" role="configuration"><title>Configuring Glibc</title>
|
||||
<indexterm zone="conf-glibc"><primary sortas="e-/etc/nsswitch.conf">/etc/nsswitch.conf</primary></indexterm>
|
||||
<indexterm zone="conf-glibc"><primary sortas="e-/etc/localtime">/etc/localtime</primary></indexterm>
|
||||
|
||||
<para>The <filename>/etc/nsswitch.conf</filename> file needs to be
|
||||
created because, although Glibc provides defaults when this file is
|
||||
missing or corrupt, the Glibc defaults do not work well with
|
||||
networking. The time zone also needs to be set up.</para>
|
||||
|
||||
<para>Create a new file <filename>/etc/nsswitch.conf</filename> by running the
|
||||
following:</para>
|
||||
@ -116,20 +217,56 @@ rpc: files
|
||||
# End /etc/nsswitch.conf</literal>
|
||||
EOF</userinput></screen>
|
||||
|
||||
<para>To find out what time zone you're in, run the following script:</para>
|
||||
<para>To determine the local time zone, run the following script:</para>
|
||||
|
||||
<screen><userinput>tzselect</userinput></screen>
|
||||
|
||||
<para>Then create the <filename>/etc/localtime</filename> file by running:</para>
|
||||
<para>After answering a few questions about the location, the script
|
||||
will output the name of the time zone (e.g.,
|
||||
<emphasis>EST5EDT</emphasis> or <emphasis>Canada/Eastern</emphasis>).
|
||||
Then create the <filename>/etc/localtime</filename> file by
|
||||
running:</para>
|
||||
|
||||
<screen><userinput>cp --remove-destination /usr/share/zoneinfo/<replaceable>[xxx]</replaceable> \
|
||||
/etc/localtime</userinput></screen>
|
||||
|
||||
<para>Replace <replaceable>[xxx]</replaceable> with the name of the time zone that the
|
||||
<command>tzselect</command> provided (e.g., Canada/Eastern).</para>
|
||||
|
||||
<para>The meaning of the cp option:</para>
|
||||
|
||||
<variablelist>
|
||||
<varlistentry>
|
||||
<term><parameter>--remove-destination</parameter></term>
|
||||
<listitem><para>This is needed to force removal of the already
|
||||
existing symbolic link. The reason for copying the file instead of
|
||||
using a symlink is to cover the situation where <filename
|
||||
class="directory">/usr</filename> is on a separate partition. This
|
||||
could be important when booted into single user
|
||||
mode.</para></listitem>
|
||||
</varlistentry>
|
||||
</variablelist>
|
||||
|
||||
</sect2>
|
||||
|
||||
|
||||
<sect2 id="conf-ld" role="configuration">
|
||||
<title>Configuring Dynamic Loader</title>
|
||||
<indexterm zone="conf-ld"><primary sortas="e-/etc/ld.so.conf">/etc/ld.so.conf</primary></indexterm>
|
||||
|
||||
<para>By default, the dynamic loader (<filename
|
||||
class="libraryfile">/lib/ld-linux.so.2</filename>) searches through
|
||||
<filename class="directory">/lib</filename> and <filename
|
||||
class="directory">/usr/lib</filename> for dynamic libraries that are
|
||||
needed by programs as they are run. However, if there are libraries in
|
||||
directories other than <filename class="directory">/lib</filename> and
|
||||
<filename class="directory">/usr/lib</filename>, these need to be
|
||||
added to the <filename>/etc/ld.so.conf</filename> file in order
|
||||
for the dynamic loader to find them. Two directories that are commonly
|
||||
known to contain additional libraries are <filename
|
||||
class="directory">/usr/local/lib</filename> and <filename
|
||||
class="directory">/opt/lib</filename>, so add those directories to the
|
||||
dynamic loader's search path.</para>
|
||||
|
||||
<para>Create a new file <filename>/etc/ld.so.conf</filename> by running the
|
||||
following:</para>
|
||||
@ -145,11 +282,413 @@ EOF</userinput></screen>
|
||||
|
||||
</sect2>
|
||||
|
||||
|
||||
<sect2 id="contents-glibc" role="content"><title>Contents of Glibc</title>
|
||||
|
||||
<para>See testing</para>
|
||||
<segmentedlist>
|
||||
<segtitle>Installed programs</segtitle>
|
||||
<segtitle>Installed libraries</segtitle>
|
||||
<seglistitem><seg>catchsegv, gencat, getconf,
|
||||
getent, iconv, iconvconfig, ldconfig, ldd, lddlibc4, locale,
|
||||
localedef, mtrace, nscd, nscd_nischeck, pcprofiledump, pt_chown, rpcgen,
|
||||
rpcinfo, sln, sprof, tzselect, xtrace, zdump, and zic</seg>
|
||||
<seg>ld.so, libBrokenLocale.[a,so],
|
||||
libSegFault.so, libanl.[a,so], libbsd-compat.a, libc.[a,so],
|
||||
libcrypt.[a,so], libdl.[a,so], libg.a, libieee.a, libm.[a,so], libmcheck.a,
|
||||
libmemusage.so, libnsl.a, libnss_compat.so, libnss_dns.so, libnss_files.so,
|
||||
libnss_hesiod.so, libnss_nis.so, libnss_nisplus.so, libpcprofile.so,
|
||||
libpthread.[a,so], libresolv.[a,so], librpcsvc.a, librt.[a,so],
|
||||
libthread_db.so, and libutil.[a,so]</seg></seglistitem>
|
||||
</segmentedlist>
|
||||
|
||||
<variablelist><bridgehead renderas="sect3">Short Descriptions</bridgehead>
|
||||
<?dbfo list-presentation="list"?>
|
||||
|
||||
<varlistentry id="catchsegv">
|
||||
<term><command>catchsegv</command></term>
|
||||
<listitem>
|
||||
<para>Can be used to create a stack trace when a program
|
||||
terminates with a segmentation fault</para>
|
||||
<indexterm zone="ch-system-glibc catchsegv"><primary sortas="b-catchsegv">catchsegv</primary></indexterm>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry id="gencat">
|
||||
<term><command>gencat</command></term>
|
||||
<listitem>
|
||||
<para>Generates message catalogues</para>
|
||||
<indexterm zone="ch-system-glibc gencat"><primary sortas="b-gencat">gencat</primary></indexterm>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry id="getconf">
|
||||
<term><command>getconf</command></term>
|
||||
<listitem>
|
||||
<para>Displays the system configuration values for file system specific variables</para>
|
||||
<indexterm zone="ch-system-glibc getconf"><primary sortas="b-getconf">getconf</primary></indexterm>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry id="getent">
|
||||
<term><command>getent</command></term>
|
||||
<listitem>
|
||||
<para>Gets entries from an administrative database</para>
|
||||
<indexterm zone="ch-system-glibc getent"><primary sortas="b-getent">getent</primary></indexterm>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry id="iconv">
|
||||
<term><command>iconv</command></term>
|
||||
<listitem>
|
||||
<para>Performs character set conversion</para>
|
||||
<indexterm zone="ch-system-glibc iconv"><primary sortas="b-iconv">iconv</primary></indexterm>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry id="iconvconfig">
|
||||
<term><command>iconvconfig</command></term>
|
||||
<listitem>
|
||||
<para>Creates fastloading <command>iconv</command> module configuration files</para>
|
||||
<indexterm zone="ch-system-glibc iconvconfig"><primary sortas="b-iconvconfig">iconvconfig</primary></indexterm>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry id="ldconfig">
|
||||
<term><command>ldconfig</command></term>
|
||||
<listitem>
|
||||
<para>Configures the dynamic linker runtime bindings</para>
|
||||
<indexterm zone="ch-system-glibc ldconfig"><primary sortas="b-ldconfig">ldconfig</primary></indexterm>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry id="ldd">
|
||||
<term><command>ldd</command></term>
|
||||
<listitem>
|
||||
<para>Reports which shared libraries are required
|
||||
by each given program or shared library</para>
|
||||
<indexterm zone="ch-system-glibc ldd"><primary sortas="b-ldd">ldd</primary></indexterm>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry id="lddlibc4">
|
||||
<term><command>lddlibc4</command></term>
|
||||
<listitem>
|
||||
<para>Assists <command>ldd</command> with object files</para>
|
||||
<indexterm zone="ch-system-glibc lddlibc4"><primary sortas="b-lddlibc4">lddlibc4</primary></indexterm>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry id="locale">
|
||||
<term><command>locale</command></term>
|
||||
<listitem>
|
||||
<para>Tells the compiler to enable or disable the use of POSIX locales
|
||||
for built-in operations</para>
|
||||
<indexterm zone="ch-system-glibc locale"><primary sortas="b-locale">locale</primary></indexterm>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry id="localedef">
|
||||
<term><command>localedef</command></term>
|
||||
<listitem>
|
||||
<para>Compiles locale specifications</para>
|
||||
<indexterm zone="ch-system-glibc localedef"><primary sortas="b-localedef">localedef</primary></indexterm>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry id="mtrace">
|
||||
<term><command>mtrace</command></term>
|
||||
<listitem>
|
||||
<para>Reads and interprets a memory trace file and
|
||||
ouputs a summary in human-readable format</para>
|
||||
<indexterm zone="ch-system-glibc mtrace"><primary sortas="b-mtrace">mtrace</primary></indexterm>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry id="nscd">
|
||||
<term><command>nscd</command></term>
|
||||
<listitem>
|
||||
<para>A daemon that provides a cache for the most common name
|
||||
service requests</para>
|
||||
<indexterm zone="ch-system-glibc nscd"><primary sortas="b-nscd">nscd</primary></indexterm>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry id="nscd_nischeck">
|
||||
<term><command>nscd_nischeck</command></term>
|
||||
<listitem>
|
||||
<para>Checks whether or not secure mode is necessary for NIS+ lookup</para>
|
||||
<indexterm zone="ch-system-glibc nscd_nischeck"><primary sortas="b-nscd_nischeck">nscd_nischeck</primary></indexterm>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry id="pcprofiledump">
|
||||
<term><command>pcprofiledump</command></term>
|
||||
<listitem>
|
||||
<para>Dumps information generated by PC profiling</para>
|
||||
<indexterm zone="ch-system-glibc pcprofiledump"><primary sortas="b-pcprofiledump">pcprofiledump</primary></indexterm>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry id="pt_chown">
|
||||
<term><command>pt_chown</command></term>
|
||||
<listitem>
|
||||
<para>A helper program for <command>grantpt</command> to set
|
||||
the owner, group and access permissions of a slave pseudo terminal</para>
|
||||
<indexterm zone="ch-system-glibc pt_chown"><primary sortas="b-pt_chown">pt_chown</primary></indexterm>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry id="rpcgen">
|
||||
<term><command>rpcgen</command></term>
|
||||
<listitem>
|
||||
<para>Generates C code to implement the Remote Procecure Call (RPC) protocol</para>
|
||||
<indexterm zone="ch-system-glibc rpcgen"><primary sortas="b-rpcgen">rpcgen</primary></indexterm>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry id="rpcinfo">
|
||||
<term><command>rpcinfo</command></term>
|
||||
<listitem>
|
||||
<para>Makes an RPC call to an RPC server</para>
|
||||
<indexterm zone="ch-system-glibc rpcinfo"><primary sortas="b-rpcinfo">rpcinfo</primary></indexterm>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry id="sln">
|
||||
<term><command>sln</command></term>
|
||||
<listitem>
|
||||
<para>A statically linked <command>ln</command> program</para>
|
||||
<indexterm zone="ch-system-glibc sln"><primary sortas="b-sln">sln</primary></indexterm>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry id="sprof">
|
||||
<term><command>sprof</command></term>
|
||||
<listitem>
|
||||
<para>Reads and displays shared object profiling data</para>
|
||||
<indexterm zone="ch-system-glibc sprof"><primary sortas="b-sprof">sprof</primary></indexterm>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry id="tzselect">
|
||||
<term><command>tzselect</command></term>
|
||||
<listitem>
|
||||
<para>Asks the user about the location of the
|
||||
system and reports the corresponding time zone description</para>
|
||||
<indexterm zone="ch-system-glibc tzselect"><primary sortas="b-tzselect">tzselect</primary></indexterm>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry id="xtrace">
|
||||
<term><command>xtrace</command></term>
|
||||
<listitem>
|
||||
<para>Traces the execution of a program by
|
||||
printing the currently executed function</para>
|
||||
<indexterm zone="ch-system-glibc xtrace"><primary sortas="b-xtrace">xtrace</primary></indexterm>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry id="zdump">
|
||||
<term><command>zdump</command></term>
|
||||
<listitem>
|
||||
<para>The time zone dumper</para>
|
||||
<indexterm zone="ch-system-glibc zdump"><primary sortas="b-zdump">zdump</primary></indexterm>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry id="zic">
|
||||
<term><command>zic</command></term>
|
||||
<listitem>
|
||||
<para>The time zone compiler</para>
|
||||
<indexterm zone="ch-system-glibc zic"><primary sortas="b-zic">zic</primary></indexterm>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry id="ld.so">
|
||||
<term><filename class="libraryfile">ld.so</filename></term>
|
||||
<listitem>
|
||||
<para>The helper program for shared library executables</para>
|
||||
<indexterm zone="ch-system-glibc ld.so"><primary sortas="c-ld.so">ld.so</primary></indexterm>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry id="libBrokenLocale">
|
||||
<term><filename class="libraryfile">libBrokenLocale</filename></term>
|
||||
<listitem>
|
||||
<para>Used by programs, such as Mozilla, to solve broken locales</para>
|
||||
<indexterm zone="ch-system-glibc libBrokenLocale"><primary sortas="c-libBrokenLocale">libBrokenLocale</primary></indexterm>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry id="libSegFault">
|
||||
<term><filename class="libraryfile">libSegFault</filename></term>
|
||||
<listitem>
|
||||
<para>The segmentation fault signal handler</para>
|
||||
<indexterm zone="ch-system-glibc libSegFault"><primary sortas="c-libSegFault">libSegFault</primary></indexterm>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry id="libanl">
|
||||
<term><filename class="libraryfile">libanl</filename></term>
|
||||
<listitem>
|
||||
<para>An asynchronous name lookup library</para>
|
||||
<indexterm zone="ch-system-glibc libanl"><primary sortas="c-libanl">libanl</primary></indexterm>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry id="libbsd-compat">
|
||||
<term><filename class="libraryfile">libbsd-compat</filename></term>
|
||||
<listitem>
|
||||
<para>Provides the portability needed
|
||||
in order to run certain Berkey Software Distribution (BSD) programs under Linux</para>
|
||||
<indexterm zone="ch-system-glibc libbsd-compat"><primary sortas="c-libbsd-compat">libbsd-compat</primary></indexterm>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry id="libc">
|
||||
<term><filename class="libraryfile">libc</filename></term>
|
||||
<listitem>
|
||||
<para>The main C library</para>
|
||||
<indexterm zone="ch-system-glibc libc"><primary sortas="c-libc">libc</primary></indexterm>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry id="libcrypt">
|
||||
<term><filename class="libraryfile">libcrypt</filename></term>
|
||||
<listitem>
|
||||
<para>The cryptography library</para>
|
||||
<indexterm zone="ch-system-glibc libcrypt"><primary sortas="c-libcrypt">libcrypt</primary></indexterm>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry id="libdl">
|
||||
<term><filename class="libraryfile">libdl</filename></term>
|
||||
<listitem>
|
||||
<para>The dynamic linking interface library</para>
|
||||
<indexterm zone="ch-system-glibc libdl"><primary sortas="c-libdl">libdl</primary></indexterm>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry id="libg">
|
||||
<term><filename class="libraryfile">libg</filename></term>
|
||||
<listitem>
|
||||
<para>A runtime library for <command>g++</command></para>
|
||||
<indexterm zone="ch-system-glibc libg"><primary sortas="c-libg">libg</primary></indexterm>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry id="libieee">
|
||||
<term><filename class="libraryfile">libieee</filename></term>
|
||||
<listitem>
|
||||
<para>The Institute of Electrical and Electronic Engineers (IEEE) floating point library</para>
|
||||
<indexterm zone="ch-system-glibc libieee"><primary sortas="c-libieee">libieee</primary></indexterm>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry id="libm">
|
||||
<term><filename class="libraryfile">libm</filename></term>
|
||||
<listitem>
|
||||
<para>The mathematical library</para>
|
||||
<indexterm zone="ch-system-glibc libm"><primary sortas="c-libm">libm</primary></indexterm>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry id="libmcheck">
|
||||
<term><filename class="libraryfile">libmcheck</filename></term>
|
||||
<listitem>
|
||||
<para>Contains code run at boot</para>
|
||||
<indexterm zone="ch-system-glibc libmcheck"><primary sortas="c-libmcheck">libmcheck</primary></indexterm>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry id="libmemusage">
|
||||
<term><filename class="libraryfile">libmemusage</filename></term>
|
||||
<listitem>
|
||||
<para>Used by <command>memusage</command> to help collect
|
||||
information about the memory usage of a program</para>
|
||||
<indexterm zone="ch-system-glibc libmemusage"><primary sortas="c-libmemusage">libmemusage</primary></indexterm>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry id="libnsl">
|
||||
<term><filename class="libraryfile">libnsl</filename></term>
|
||||
<listitem>
|
||||
<para>The network services library</para>
|
||||
<indexterm zone="ch-system-glibc libnsl"><primary sortas="c-libnsl">libnsl</primary></indexterm>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry id="libnss">
|
||||
<term><filename class="libraryfile">libnss</filename></term>
|
||||
<listitem>
|
||||
<para>The Name Service Switch libraries,
|
||||
containing functions for resolving host names, user names, group names,
|
||||
aliases, services, protocols, etc</para>
|
||||
<indexterm zone="ch-system-glibc libnss"><primary sortas="c-libnss">libnss</primary></indexterm>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry id="libpcprofile">
|
||||
<term><filename class="libraryfile">libpcprofile</filename></term>
|
||||
<listitem>
|
||||
<para>Contains profiling functions used
|
||||
to track the amount of CPU time spent in specific source code lines</para>
|
||||
<indexterm zone="ch-system-glibc libpcprofile"><primary sortas="c-libpcprofile">libpcprofile</primary></indexterm>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry id="libpthread">
|
||||
<term><filename class="libraryfile">libpthread</filename></term>
|
||||
<listitem>
|
||||
<para>The POSIX threads library</para>
|
||||
<indexterm zone="ch-system-glibc libpthread"><primary sortas="c-libpthread">libpthread</primary></indexterm>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry id="libresolv">
|
||||
<term><filename class="libraryfile">libresolv</filename></term>
|
||||
<listitem>
|
||||
<para>Contains functions for creating,
|
||||
sending, and interpreting packets to the Internet domain name servers</para>
|
||||
<indexterm zone="ch-system-glibc libresolv"><primary sortas="c-libresolv">libresolv</primary></indexterm>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry id="librpcsvc">
|
||||
<term><filename class="libraryfile">librpcsvc</filename></term>
|
||||
<listitem>
|
||||
<para>Contains functions providing miscellaneous RPC services</para>
|
||||
<indexterm zone="ch-system-glibc librpcsvc"><primary sortas="c-librpcsvc">librpcsvc</primary></indexterm>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry id="librt">
|
||||
<term><filename class="libraryfile">librt</filename></term>
|
||||
<listitem>
|
||||
<para>Contains functions providing most of the
|
||||
interfaces specified by the POSIX.1b Realtime Extension</para>
|
||||
<indexterm zone="ch-system-glibc librt"><primary sortas="c-librt">librt</primary></indexterm>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry id="libthread_db">
|
||||
<term><filename class="libraryfile">libthread_db</filename></term>
|
||||
<listitem>
|
||||
<para>Contains functions useful for
|
||||
building debuggers for multi-threaded programs</para>
|
||||
<indexterm zone="ch-system-glibc libthread_db"><primary sortas="c-libthread_db">libthread_db</primary></indexterm>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry id="libutil">
|
||||
<term><filename class="libraryfile">libutil</filename></term>
|
||||
<listitem>
|
||||
<para>Contains code for <quote>standard</quote> functions used in many different Unix utilities</para>
|
||||
<indexterm zone="ch-system-glibc libutil"><primary sortas="c-libutil">libutil</primary></indexterm>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
</variablelist>
|
||||
|
||||
</sect2>
|
||||
|
||||
</sect1>
|
||||
|
||||
|
@ -3,13 +3,14 @@
|
||||
<!ENTITY % general-entities SYSTEM "../general.ent">
|
||||
%general-entities;
|
||||
]>
|
||||
<sect1 id="ch-system-grep" xreflabel="Grep" role="wrap">
|
||||
<sect1 id="ch-system-grep" role="wrap">
|
||||
<title>Grep-&grep-version;</title>
|
||||
<?dbhtml filename="grep.html"?>
|
||||
|
||||
<indexterm zone="ch-system-grep"><primary sortas="a-Grep">Grep</primary></indexterm>
|
||||
|
||||
<sect2 role="package"><title/>
|
||||
<para>The Grep package contains programs for searching through files.</para>
|
||||
|
||||
<segmentedlist>
|
||||
<segtitle>&buildtime;</segtitle>
|
||||
@ -17,6 +18,11 @@
|
||||
<seglistitem><seg>0.1 SBU</seg><seg>5.8 MB</seg></seglistitem>
|
||||
</segmentedlist>
|
||||
|
||||
<segmentedlist>
|
||||
<segtitle>Grep installation depends on</segtitle>
|
||||
<seglistitem><seg>Bash, Binutils, Coreutils,
|
||||
Diffutils, GCC, Gettext, Glibc, Make, Sed, and Texinfo</seg></seglistitem>
|
||||
</segmentedlist>
|
||||
</sect2>
|
||||
|
||||
<sect2 role="installation">
|
||||
@ -33,7 +39,7 @@
|
||||
<para>To test the results, issue:
|
||||
<userinput>make check</userinput>.</para>
|
||||
|
||||
<para>Now install the package:</para>
|
||||
<para>Install the package:</para>
|
||||
|
||||
<screen><userinput>make install</userinput></screen>
|
||||
|
||||
@ -42,8 +48,40 @@
|
||||
|
||||
<sect2 id="contents-grep" role="content"><title>Contents of Grep</title>
|
||||
|
||||
<para>See testing</para>
|
||||
<segmentedlist>
|
||||
<segtitle>Installed programs</segtitle>
|
||||
<seglistitem><seg>egrep (link to grep), fgrep (link to grep), and grep</seg></seglistitem>
|
||||
</segmentedlist>
|
||||
|
||||
<variablelist><bridgehead renderas="sect3">Short Descriptions</bridgehead>
|
||||
<?dbfo list-presentation="list"?>
|
||||
|
||||
<varlistentry id="egrep">
|
||||
<term><command>egrep</command></term>
|
||||
<listitem>
|
||||
<para>Prints lines matching an extended regular expression</para>
|
||||
<indexterm zone="ch-system-grep egrep"><primary sortas="b-egrep">egrep</primary></indexterm>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry id="fgrep">
|
||||
<term><command>fgrep</command></term>
|
||||
<listitem>
|
||||
<para>Prints lines matching a list of fixed strings</para>
|
||||
<indexterm zone="ch-system-grep fgrep"><primary sortas="b-fgrep">fgrep</primary></indexterm>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry id="grep">
|
||||
<term><command>grep</command></term>
|
||||
<listitem>
|
||||
<para>Prints lines matching a basic regular expression</para>
|
||||
<indexterm zone="ch-system-grep grep"><primary sortas="b-grep">grep</primary></indexterm>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
</variablelist>
|
||||
|
||||
</sect2>
|
||||
|
||||
</sect1>
|
||||
|
||||
|
@ -3,13 +3,14 @@
|
||||
<!ENTITY % general-entities SYSTEM "../general.ent">
|
||||
%general-entities;
|
||||
]>
|
||||
<sect1 id="ch-system-groff" xreflabel="Groff" role="wrap">
|
||||
<sect1 id="ch-system-groff" role="wrap">
|
||||
<title>Groff-&groff-version;</title>
|
||||
<?dbhtml filename="groff.html"?>
|
||||
|
||||
<indexterm zone="ch-system-groff"><primary sortas="a-Groff">Groff</primary></indexterm>
|
||||
|
||||
<sect2 role="package"><title/>
|
||||
<para>The Groff package contains programs for processing and formatting text.</para>
|
||||
|
||||
<segmentedlist>
|
||||
<segtitle>&buildtime;</segtitle>
|
||||
@ -17,11 +18,21 @@
|
||||
<seglistitem><seg>0.5 SBU</seg><seg>43 MB</seg></seglistitem>
|
||||
</segmentedlist>
|
||||
|
||||
<segmentedlist>
|
||||
<segtitle>Groff installation depends on</segtitle>
|
||||
<seglistitem><seg>Bash, Binutils, Coreutils, Diffutils,
|
||||
Gawk, GCC, Glibc, Grep, Make, and Sed</seg></seglistitem>
|
||||
</segmentedlist>
|
||||
</sect2>
|
||||
|
||||
<sect2 role="installation">
|
||||
<title>Installation of Groff</title>
|
||||
|
||||
<para>Groff expects the environment variable <envar>PAGE</envar>
|
||||
to contain the default paper size. For users in the United States,
|
||||
<parameter>PAGE=letter</parameter> is appropriate. Elsewhere,
|
||||
<parameter>PAGE=A4</parameter> may be more suitable.</para>
|
||||
|
||||
<para>Prepare Groff for compilation:</para>
|
||||
|
||||
<screen><userinput>PAGE=<replaceable>[paper_size]</replaceable> ./configure --prefix=/usr</userinput></screen>
|
||||
@ -30,11 +41,12 @@
|
||||
|
||||
<screen><userinput>make</userinput></screen>
|
||||
|
||||
<para>Now install it:</para>
|
||||
<para>Install the package:</para>
|
||||
|
||||
<screen><userinput>make install</userinput></screen>
|
||||
|
||||
<para>Create the following symlinks:</para>
|
||||
<para>Some documentation programs, such as <command>xman</command>,
|
||||
will not work properly without the following symlinks:</para>
|
||||
|
||||
<screen><userinput>ln -s soelim /usr/bin/zsoelim
|
||||
ln -s eqn /usr/bin/geqn
|
||||
@ -45,8 +57,315 @@ ln -s tbl /usr/bin/gtbl</userinput></screen>
|
||||
|
||||
<sect2 id="contents-groff" role="content"><title>Contents of Groff</title>
|
||||
|
||||
<para>See testing</para>
|
||||
<segmentedlist>
|
||||
<segtitle>Installed programs</segtitle>
|
||||
<seglistitem><seg>addftinfo, afmtodit, eqn, eqn2graph, geqn (link to eqn), grn,
|
||||
grodvi, groff, groffer, grog, grolbp, grolj4, grops, grotty, gtbl (link to tbl), hpftodit,
|
||||
indxbib, lkbib, lookbib, mmroff, neqn, nroff, pfbtops, pic, pic2graph, post-grohtml,
|
||||
pre-grohtml, refer, soelim, tbl, tfmtodit, troff, and zsoelim (link to soelim)</seg></seglistitem>
|
||||
</segmentedlist>
|
||||
|
||||
<variablelist><bridgehead renderas="sect3">Short Descriptions</bridgehead>
|
||||
<?dbfo list-presentation="list"?>
|
||||
|
||||
<varlistentry id="addftinfo">
|
||||
<term><command>addftinfo</command></term>
|
||||
<listitem>
|
||||
<para>Reads a troff font file and adds some
|
||||
additional font-metric information that is used by the <command>groff</command> system</para>
|
||||
<indexterm zone="ch-system-groff addftinfo"><primary sortas="b-addftinfo">addftinfo</primary></indexterm>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry id="afmtodit">
|
||||
<term><command>afmtodit</command></term>
|
||||
<listitem>
|
||||
<para>Creates a font file for use with <command>groff</command> and <command>grops</command></para>
|
||||
<indexterm zone="ch-system-groff afmtodit"><primary sortas="b-afmtodit">afmtodit</primary></indexterm>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry id="eqn">
|
||||
<term><command>eqn</command></term>
|
||||
<listitem>
|
||||
<para>Compiles descriptions of equations embedded
|
||||
within troff input files into commands that are understood by <command>troff</command></para>
|
||||
<indexterm zone="ch-system-groff eqn"><primary sortas="b-eqn">eqn</primary></indexterm>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry id="eqn2graph">
|
||||
<term><command>eqn2graph</command></term>
|
||||
<listitem>
|
||||
<para>Converts a troff EQN (equation) into a cropped image</para>
|
||||
<indexterm zone="ch-system-groff eqn2graph"><primary sortas="b-eqn2graph">eqn2graph</primary></indexterm>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry id="geqn">
|
||||
<term><command>eqn</command></term>
|
||||
<listitem>
|
||||
<para>A link to <command>eqn</command></para>
|
||||
<indexterm zone="ch-system-groff geqn"><primary sortas="b-geqn">geqn</primary></indexterm>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry id="grn">
|
||||
<term><command>grn</command></term>
|
||||
<listitem>
|
||||
<para>A <command>groff</command> preprocessor for gremlin files</para>
|
||||
<indexterm zone="ch-system-groff grn"><primary sortas="b-grn">grn</primary></indexterm>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry id="grodvi">
|
||||
<term><command>grodvi</command></term>
|
||||
<listitem>
|
||||
<para>A driver for <command>groff</command> that produces TeX dvi format</para>
|
||||
<indexterm zone="ch-system-groff grodvi"><primary sortas="b-grodvi">grodvi</primary></indexterm>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry id="groff">
|
||||
<term><command>groff</command></term>
|
||||
<listitem>
|
||||
<para>A front-end to the groff document
|
||||
formatting system; normally, it runs the <command>troff</command> program and a post-processor
|
||||
appropriate for the selected device</para>
|
||||
<indexterm zone="ch-system-groff groff"><primary sortas="b-groff">groff</primary></indexterm>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry id="groffer">
|
||||
<term><command>groffer</command></term>
|
||||
<listitem>
|
||||
<para>Displays groff files and man pages on X and tty terminals</para>
|
||||
<indexterm zone="ch-system-groff groffer"><primary sortas="b-groffer">groffer</primary></indexterm>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry id="grog">
|
||||
<term><command>grog</command></term>
|
||||
<listitem>
|
||||
<para>Reads files and guesses which of the <command>groff</command>
|
||||
options <parameter>-e</parameter>, <parameter>-man</parameter>,
|
||||
<parameter>-me</parameter>, <parameter>-mm</parameter>,
|
||||
<parameter>-ms</parameter>, <parameter>-p</parameter>, <parameter>-s</parameter>,
|
||||
and <parameter>-t</parameter> are required for printing
|
||||
files, and reports the <command>groff</command> command including those options</para>
|
||||
<indexterm zone="ch-system-groff grog"><primary sortas="b-grog">grog</primary></indexterm>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry id="grolbp">
|
||||
<term><command>grolbp</command></term>
|
||||
<listitem>
|
||||
<para>Is a <command>groff</command> driver for Canon CAPSL printers
|
||||
(LBP-4 and LBP-8 series laser printers)</para>
|
||||
<indexterm zone="ch-system-groff grolbp"><primary sortas="b-grolbp">grolbp</primary></indexterm>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry id="grolj4">
|
||||
<term><command>grolj4</command></term>
|
||||
<listitem>
|
||||
<para>Is a driver for <command>groff</command> that produces output
|
||||
in PCL5 format suitable for an HP Laserjet 4 printer</para>
|
||||
<indexterm zone="ch-system-groff grolj4"><primary sortas="b-grolj4">grolj4</primary></indexterm>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry id="grops">
|
||||
<term><command>grops</command></term>
|
||||
<listitem>
|
||||
<para>Translates the output of GNU <command>troff</command> to PostScript</para>
|
||||
<indexterm zone="ch-system-groff grops"><primary sortas="b-grops">grops</primary></indexterm>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry id="grotty">
|
||||
<term><command>grotty</command></term>
|
||||
<listitem>
|
||||
<para>Translates the output of GNU <command>troff</command> into
|
||||
a form suitable for typewriter-like devices</para>
|
||||
<indexterm zone="ch-system-groff grotty"><primary sortas="b-grotty">grotty</primary></indexterm>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry id="gtbl">
|
||||
<term><command>gtbl</command></term>
|
||||
<listitem>
|
||||
<para>Is the GNU implementation of <command>tbl</command></para>
|
||||
<indexterm zone="ch-system-groff gtbl"><primary sortas="b-gtbl">gtbl</primary></indexterm>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry id="hpftodit">
|
||||
<term><command>hpftodit</command></term>
|
||||
<listitem>
|
||||
<para>Creates a font file for use with
|
||||
<command>groff -Tlj4</command> from an HP-tagged font metric file</para>
|
||||
<indexterm zone="ch-system-groff hpftodit"><primary sortas="b-hpftodit">hpftodit</primary></indexterm>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry id="indxbib">
|
||||
<term><command>indxbib</command></term>
|
||||
<listitem>
|
||||
<para>Creates an inverted index for the bibliographic databases with a specified file for
|
||||
use with <command>refer</command>, <command>lookbib</command>, and <command>lkbib</command></para>
|
||||
<indexterm zone="ch-system-groff indxbib"><primary sortas="b-indxbib">indxbib</primary></indexterm>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry id="lkbib">
|
||||
<term><command>lkbib</command></term>
|
||||
<listitem>
|
||||
<para>Searches bibliographic databases for references that contain
|
||||
specified keys and reports any references found</para>
|
||||
<indexterm zone="ch-system-groff lkbib"><primary sortas="b-lkbib">lkbib</primary></indexterm>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry id="lookbib">
|
||||
<term><command>lookbib</command></term>
|
||||
<listitem>
|
||||
<para>Prints a prompt on the standard error (unless the standard input
|
||||
is not a terminal), reads a line containing a
|
||||
set of keywords from the standard input, searches the bibliographic databases in a specified
|
||||
file for references containing those keywords, prints any references
|
||||
found on the standard output, and repeats this process until the end
|
||||
of input</para>
|
||||
<indexterm zone="ch-system-groff lookbib"><primary sortas="b-lookbib">lookbib</primary></indexterm>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry id="mmroff">
|
||||
<term><command>mmroff</command></term>
|
||||
<listitem>
|
||||
<para>A simple preprocessor for <command>groff</command></para>
|
||||
<indexterm zone="ch-system-groff mmroff"><primary sortas="b-mmroff">mmroff</primary></indexterm>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry id="neqn">
|
||||
<term><command>neqn</command></term>
|
||||
<listitem>
|
||||
<para>Formats equations for American Standard Code for Information
|
||||
Interchange (ASCII) output</para>
|
||||
<indexterm zone="ch-system-groff neqn"><primary sortas="b-neqn">neqn</primary></indexterm>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry id="nroff">
|
||||
<term><command>nroff</command></term>
|
||||
<listitem>
|
||||
<para>A script that emulates the <command>nroff</command> command using <command>groff</command></para>
|
||||
<indexterm zone="ch-system-groff nroff"><primary sortas="b-nroff">nroff</primary></indexterm>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry id="pfbtops">
|
||||
<term><command>pfbtops</command></term>
|
||||
<listitem>
|
||||
<para>Translates a PostScript font in <filename class="extension">.pfb</filename> format to ASCII</para>
|
||||
<indexterm zone="ch-system-groff pfbtops"><primary sortas="b-pfbtops">pfbtops</primary></indexterm>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry id="pic">
|
||||
<term><command>pic</command></term>
|
||||
<listitem>
|
||||
<para>Compiles descriptions of pictures embedded
|
||||
within troff or TeX input files into commands understood by TeX or <command>troff</command></para>
|
||||
<indexterm zone="ch-system-groff pic"><primary sortas="b-pic">pic</primary></indexterm>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry id="pic2graph">
|
||||
<term><command>pic2graph</command></term>
|
||||
<listitem>
|
||||
<para>Converts a PIC diagram into a cropped image</para>
|
||||
<indexterm zone="ch-system-groff pic2graph"><primary sortas="b-pic2graph">pic2graph</primary></indexterm>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry id="post-grohtml">
|
||||
<term><command>post-grohtml</command></term>
|
||||
<listitem>
|
||||
<para>Translates the output of GNU <command>troff</command> to html</para>
|
||||
<indexterm zone="ch-system-groff post-grohtml"><primary sortas="b-post-grohtml">post-grohtml</primary></indexterm>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry id="pre-grohtml">
|
||||
<term><command>pre-grohtml </command></term>
|
||||
<listitem>
|
||||
<para>Translates the output of GNU <command>troff</command> to html</para>
|
||||
<indexterm zone="ch-system-groff pre-grohtml"><primary sortas="b-pre-grohtml">pre-grohtml</primary></indexterm>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry id="refer">
|
||||
<term><command>refer</command></term>
|
||||
<listitem>
|
||||
<para>Copies the contents of a file to the standard output, except
|
||||
that lines between <emphasis>.[</emphasis> and <emphasis>.]</emphasis>
|
||||
are interpreted as citations, and lines between
|
||||
<emphasis>.R1</emphasis> and <emphasis>.R2</emphasis> are interpreted
|
||||
as commands for how citations are to be processed</para>
|
||||
<indexterm zone="ch-system-groff refer"><primary sortas="b-refer">refer</primary></indexterm>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry id="soelim">
|
||||
<term><command>soelim</command></term>
|
||||
<listitem>
|
||||
<para>Reads files and replaces lines of the form
|
||||
<emphasis>.so file</emphasis> by the contents of the mentioned
|
||||
<emphasis>file</emphasis></para>
|
||||
<indexterm zone="ch-system-groff soelim"><primary sortas="b-soelim">soelim</primary></indexterm>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry id="tbl">
|
||||
<term><command>tbl</command></term>
|
||||
<listitem>
|
||||
<para>Compiles descriptions of tables embedded
|
||||
within troff input files into commands that are understood by <command>troff</command></para>
|
||||
<indexterm zone="ch-system-groff tbl"><primary sortas="b-tbl">tbl</primary></indexterm>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry id="tfmtodit">
|
||||
<term><command>tfmtodit</command></term>
|
||||
<listitem>
|
||||
<para>Creates a font file for use with <command>groff -Tdvi</command></para>
|
||||
<indexterm zone="ch-system-groff tfmtodit"><primary sortas="b-tfmtodit">tfmtodit</primary></indexterm>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry id="troff">
|
||||
<term><command>troff</command></term>
|
||||
<listitem>
|
||||
<para>Is highly compatible with Unix <command>troff</command>; it
|
||||
should usually be invoked using the
|
||||
<command>groff</command> command, which will also run preprocessors and post-processors in the
|
||||
appropriate order and with the appropriate options</para>
|
||||
<indexterm zone="ch-system-groff troff"><primary sortas="b-troff">troff</primary></indexterm>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry id="zsoelim">
|
||||
<term><command>zsoelim</command></term>
|
||||
<listitem>
|
||||
<para>Is the GNU implementation of <command>soelim</command></para>
|
||||
<indexterm zone="ch-system-groff zsoelim"><primary sortas="b-zsoelim">zsoelim</primary></indexterm>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
</variablelist>
|
||||
|
||||
</sect2>
|
||||
|
||||
</sect1>
|
||||
|
||||
|
@ -3,13 +3,14 @@
|
||||
<!ENTITY % general-entities SYSTEM "../general.ent">
|
||||
%general-entities;
|
||||
]>
|
||||
<sect1 id="ch-system-grub" xreflabel="Grub" role="wrap">
|
||||
<sect1 id="ch-system-grub" role="wrap">
|
||||
<title>Grub-&grub-version;</title>
|
||||
<?dbhtml filename="grub.html"?>
|
||||
|
||||
<indexterm zone="ch-system-grub"><primary sortas="a-Grub">Grub</primary></indexterm>
|
||||
|
||||
<sect2 role="package"><title/>
|
||||
<para>The Grub package contains the Grand Unified Bootloader.</para>
|
||||
|
||||
<segmentedlist>
|
||||
<segtitle>&buildtime;</segtitle>
|
||||
@ -17,28 +18,49 @@
|
||||
<seglistitem><seg>0.2 SBU</seg><seg>10 MB</seg></seglistitem>
|
||||
</segmentedlist>
|
||||
|
||||
<segmentedlist>
|
||||
<segtitle>Grub installation depends on</segtitle>
|
||||
<seglistitem><seg>Bash, Binutils, Coreutils, Diffutils,
|
||||
GCC, Glibc, Grep, Make, Ncurses, and Sed</seg></seglistitem>
|
||||
</segmentedlist>
|
||||
</sect2>
|
||||
|
||||
<sect2 role="installation">
|
||||
<title>Installation of Grub</title>
|
||||
|
||||
<para>This package is known to have issues when its default
|
||||
optimization flags (including the <parameter>-march</parameter> and
|
||||
<parameter>-mcpu</parameter> options) are changed. If any environment
|
||||
variables that override default optimizations have been defined, such
|
||||
as <envar>CFLAGS</envar> and <envar>CXXFLAGS</envar>,
|
||||
unset them when building Grub.</para>
|
||||
|
||||
<para>Prepare Grub for compilation:</para>
|
||||
|
||||
<screen><userinput>./configure --prefix=/usr</userinput></screen>
|
||||
|
||||
<para>Now compile the package:</para>
|
||||
<para>Compile the package:</para>
|
||||
|
||||
<screen><userinput>make</userinput></screen>
|
||||
|
||||
<para>To test the results, issue:
|
||||
<userinput>make check</userinput>.</para>
|
||||
|
||||
<para>Now install it:</para>
|
||||
<para>Note that the test results will always show the error
|
||||
<quote>ufs2_stage1_5 is too big.</quote> This is due to a compiler
|
||||
issue, but can be ignored unless you plan to boot from an UFS
|
||||
partition. The partitions are normally only used by Sun
|
||||
workstations.</para>
|
||||
|
||||
<para>Install the package:</para>
|
||||
|
||||
<screen><userinput>make install
|
||||
mkdir /boot/grub
|
||||
cp /usr/lib/grub/i386-pc/stage{1,2} /boot/grub</userinput></screen>
|
||||
|
||||
<para>Replace <filename class="directory">i386-pc</filename> with whatever
|
||||
directory is appropriate for the hardware in use.</para>
|
||||
|
||||
<para>The <filename class="directory">i386-pc</filename> directory
|
||||
contains a number of <filename>*stage1_5</filename> files, different
|
||||
ones for different file systems. Review the files available and copy
|
||||
@ -52,9 +74,58 @@ copy the <filename>e2fs_stage1_5</filename> and/or
|
||||
|
||||
<sect2 id="contents-grub" role="content"><title>Contents of Grub</title>
|
||||
|
||||
<para>See testing</para>
|
||||
<segmentedlist>
|
||||
<segtitle>Installed programs</segtitle>
|
||||
<seglistitem><seg>grub, grub-install,
|
||||
grub-md5-crypt, grub-terminfo, and mbchk</seg></seglistitem>
|
||||
</segmentedlist>
|
||||
|
||||
<variablelist><bridgehead renderas="sect3">Short Descriptions</bridgehead>
|
||||
<?dbfo list-presentation="list"?>
|
||||
|
||||
<varlistentry id="grub">
|
||||
<term><command>grub</command></term>
|
||||
<listitem>
|
||||
<para>The Grand Unified Bootloader's command shell</para>
|
||||
<indexterm zone="ch-system-grub grub"><primary sortas="b-grub">grub</primary></indexterm>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry id="grub-install">
|
||||
<term><command>grub-install</command></term>
|
||||
<listitem>
|
||||
<para>Installs GRUB on the given device</para>
|
||||
<indexterm zone="ch-system-grub grub-install"><primary sortas="b-grub-install">grub-install</primary></indexterm>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry id="grub-md5-crypt">
|
||||
<term><command>grub-md5-crypt</command></term>
|
||||
<listitem>
|
||||
<para>Encrypts a password in MD5 format</para>
|
||||
<indexterm zone="ch-system-grub grub-md5-crypt"><primary sortas="b-grub-md5-crypt">grub-md5-crypt</primary></indexterm>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry id="grub-terminfo">
|
||||
<term><command>grub-terminfo</command></term>
|
||||
<listitem>
|
||||
<para>Generates a terminfo command from a terminfo name; it can be
|
||||
employed if an unknown terminal is being used</para>
|
||||
<indexterm zone="ch-system-grub grub-terminfo"><primary sortas="b-grub-terminfo">grub-terminfo</primary></indexterm>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry id="mbchk">
|
||||
<term><command>mbchk</command></term>
|
||||
<listitem>
|
||||
<para>Checks the format of a multi-boot kernel</para>
|
||||
<indexterm zone="ch-system-grub mbchk"><primary sortas="b-mbchk">mbchk</primary></indexterm>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
</variablelist>
|
||||
|
||||
</sect2>
|
||||
|
||||
|
||||
</sect1>
|
||||
|
||||
|
@ -3,13 +3,15 @@
|
||||
<!ENTITY % general-entities SYSTEM "../general.ent">
|
||||
%general-entities;
|
||||
]>
|
||||
<sect1 id="ch-system-gzip" xreflabel="Gzip" role="wrap">
|
||||
<sect1 id="ch-system-gzip" role="wrap">
|
||||
<title>Gzip-&gzip-version;</title>
|
||||
<?dbhtml filename="gzip.html"?>
|
||||
|
||||
<indexterm zone="ch-system-gzip"><primary sortas="a-Gzip">Gzip</primary></indexterm>
|
||||
|
||||
<sect2 role="package"><title/>
|
||||
<para>The Gzip package contains programs for compressing and decompressing
|
||||
files.</para>
|
||||
|
||||
<segmentedlist>
|
||||
<segtitle>&buildtime;</segtitle>
|
||||
@ -17,6 +19,11 @@
|
||||
<seglistitem><seg>0.1 SBU</seg><seg>2.6 MB</seg></seglistitem>
|
||||
</segmentedlist>
|
||||
|
||||
<segmentedlist>
|
||||
<segtitle>Gzip installation depends on</segtitle>
|
||||
<seglistitem><seg>Bash, Binutils, Coreutils, Diffutils,
|
||||
GCC, Glibc, Grep, Make, and Sed</seg></seglistitem>
|
||||
</segmentedlist>
|
||||
</sect2>
|
||||
|
||||
<sect2 role="installation">
|
||||
@ -26,7 +33,10 @@
|
||||
|
||||
<screen><userinput>./configure --prefix=/usr</userinput></screen>
|
||||
|
||||
<para>Issue a sed command:</para>
|
||||
<para>The <command>gzexe</command> script has the location of the
|
||||
<command>gzip</command> binary hard-wired into it. Because the
|
||||
location of the binary is changed later, the following command ensures
|
||||
that the new location gets placed into the script:</para>
|
||||
|
||||
<screen><userinput>sed -i 's@"BINDIR"@/bin@g' gzexe.in</userinput></screen>
|
||||
|
||||
@ -51,8 +61,134 @@ ln -s gunzip /bin/uncompress</userinput></screen>
|
||||
|
||||
<sect2 id="contents-gzip" role="content"><title>Contents of Gzip</title>
|
||||
|
||||
<para>See testing</para>
|
||||
<segmentedlist>
|
||||
<segtitle>Installed programs</segtitle>
|
||||
<seglistitem><seg>gunzip (link to gzip), gzexe,
|
||||
gzip, uncompress (link to gunzip), zcat (link to gzip), zcmp, zdiff,
|
||||
zegrep, zfgrep, zforce, zgrep, zless, zmore, and znew</seg></seglistitem>
|
||||
</segmentedlist>
|
||||
|
||||
<variablelist><bridgehead renderas="sect3">Short Descriptions</bridgehead>
|
||||
<?dbfo list-presentation="list"?>
|
||||
|
||||
<varlistentry id="gunzip">
|
||||
<term><command>gunzip</command></term>
|
||||
<listitem>
|
||||
<para>Decompresses gzipped files</para>
|
||||
<indexterm zone="ch-system-gzip gunzip"><primary sortas="b-gunzip">gunzip</primary></indexterm>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry id="gzexe">
|
||||
<term><command>gzexe</command></term>
|
||||
<listitem>
|
||||
<para>Creates self-uncompressing executable files</para>
|
||||
<indexterm zone="ch-system-gzip gzexe"><primary sortas="b-gzexe">gzexe</primary></indexterm>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry id="gzip">
|
||||
<term><command>gzip</command></term>
|
||||
<listitem>
|
||||
<para>Compresses the given files using Lempel-Ziv (LZ77) coding</para>
|
||||
<indexterm zone="ch-system-gzip gzip"><primary sortas="b-gzip">gzip</primary></indexterm>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry id="uncompress">
|
||||
<term><command>uncompress</command></term>
|
||||
<listitem>
|
||||
<para>Decompresses compressed files</para>
|
||||
<indexterm zone="ch-system-gzip uncompress"><primary sortas="b-uncompress">uncompress</primary></indexterm>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry id="zcat">
|
||||
<term><command>zcat</command></term>
|
||||
<listitem>
|
||||
<para>Uncompresses the given gzipped files to standard output</para>
|
||||
<indexterm zone="ch-system-gzip zcat"><primary sortas="b-zcat">zcat</primary></indexterm>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry id="zcmp">
|
||||
<term><command>zcmp</command></term>
|
||||
<listitem>
|
||||
<para>Runs <command>cmp</command> on gzipped files</para>
|
||||
<indexterm zone="ch-system-gzip zcmp"><primary sortas="b-zcmp">zcmp</primary></indexterm>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry id="zdiff">
|
||||
<term><command>zdiff</command></term>
|
||||
<listitem>
|
||||
<para>Runs <command>diff</command> on gzipped files</para>
|
||||
<indexterm zone="ch-system-gzip zdiff"><primary sortas="b-zdiff">zdiff</primary></indexterm>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry id="zegrep">
|
||||
<term><command>zegrep</command></term>
|
||||
<listitem>
|
||||
<para>Runs <command>egrep</command> on gzipped files</para>
|
||||
<indexterm zone="ch-system-gzip zegrep"><primary sortas="b-zegrep">zegrep</primary></indexterm>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry id="zfgrep">
|
||||
<term><command>zfgrep</command></term>
|
||||
<listitem>
|
||||
<para>Runs <command>fgrep</command> on gzipped files</para>
|
||||
<indexterm zone="ch-system-gzip zfgrep"><primary sortas="b-zfgrep">zfgrep</primary></indexterm>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry id="zforce">
|
||||
<term><command>zforce</command></term>
|
||||
<listitem>
|
||||
<para>Forces a <filename class="extension">.gz</filename> extension on all given files
|
||||
that are gzipped files, so that <command>gzip</command> will not compress them again; this can be
|
||||
useful when file names were truncated during a file transfer</para>
|
||||
<indexterm zone="ch-system-gzip zforce"><primary sortas="b-zforce">zforce</primary></indexterm>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry id="zgrep">
|
||||
<term><command>zgrep</command></term>
|
||||
<listitem>
|
||||
<para>Runs <command>grep</command> on gzipped files</para>
|
||||
<indexterm zone="ch-system-gzip zgrep"><primary sortas="b-zgrep">zgrep</primary></indexterm>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry id="zless">
|
||||
<term><command>zless</command></term>
|
||||
<listitem>
|
||||
<para>Runs <command>less</command> on gzipped files</para>
|
||||
<indexterm zone="ch-system-gzip zless"><primary sortas="b-zless">zless</primary></indexterm>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry id="zmore">
|
||||
<term><command>zmore</command></term>
|
||||
<listitem>
|
||||
<para>Runs <command>more</command> on gzipped files</para>
|
||||
<indexterm zone="ch-system-gzip zmore"><primary sortas="b-zmore">zmore</primary></indexterm>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry id="znew">
|
||||
<term><command>znew</command></term>
|
||||
<listitem>
|
||||
<para>Re-compresses files from <command>compress</command> format to
|
||||
<command>gzip</command> format—<filename class="extension">.Z</filename>
|
||||
to <filename class="extension">.gz</filename></para>
|
||||
<indexterm zone="ch-system-gzip znew"><primary sortas="b-znew">znew</primary></indexterm>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
</variablelist>
|
||||
|
||||
</sect2>
|
||||
|
||||
</sect1>
|
||||
|
||||
|
@ -10,6 +10,12 @@
|
||||
<indexterm zone="ch-system-hotplug"><primary sortas="a-Hotplug">Hotplug</primary></indexterm>
|
||||
|
||||
<sect2 role="package"><title/>
|
||||
<para>The Hotplug package contains scripts that react upon hotplug events
|
||||
generated by the kernel. Such events correspond to every change in the kernel
|
||||
state visible in the <systemitem class="filesystem">sysfs</systemitem>
|
||||
filesystem, e.g., the addition and removal of hardware. This package also
|
||||
detects existing hardware during boot and inserts the relevant modules into the
|
||||
running kernel.</para>
|
||||
|
||||
<segmentedlist>
|
||||
<segtitle>&buildtime;</segtitle>
|
||||
@ -17,6 +23,10 @@
|
||||
<seglistitem><seg>0.01 SBU</seg><seg>0.1 MB</seg></seglistitem>
|
||||
</segmentedlist>
|
||||
|
||||
<segmentedlist>
|
||||
<segtitle>Hotplug installation depends on</segtitle>
|
||||
<seglistitem><seg>Unchecked</seg></seglistitem>
|
||||
</segmentedlist>
|
||||
</sect2>
|
||||
|
||||
<sect2 role="installation">
|
||||
@ -26,15 +36,17 @@
|
||||
|
||||
<screen><userinput>make install</userinput></screen>
|
||||
|
||||
<para>Copy a file that the "install" target omits.</para>
|
||||
<para>Copy a file that the <quote>install</quote> target omits.</para>
|
||||
|
||||
<screen><userinput>cp etc/hotplug/pnp.distmap /etc/hotplug</userinput></screen>
|
||||
|
||||
<para>Remove Hotplug's init script:</para>
|
||||
<para>Remove the init script that Hotplug installs, since we're going to be
|
||||
using the script included with LFS-Bootscripts:</para>
|
||||
|
||||
<screen><userinput>rm -rf /etc/init.d</userinput></screen>
|
||||
|
||||
<para>Remove the network hotplug agent:</para>
|
||||
<para>Network device hotplugging is not supported by LFS bootscripts yet. For
|
||||
that reason, remove the network hotplug agent:</para>
|
||||
|
||||
<screen><userinput>rm -f /etc/hotplug/net.agent</userinput></screen>
|
||||
</sect2>
|
||||
@ -42,7 +54,113 @@
|
||||
|
||||
<sect2 id="contents-hotplug" role="content"><title>Contents of Hotplug</title>
|
||||
|
||||
<para>See testing</para>
|
||||
<segmentedlist>
|
||||
<segtitle>Installed program</segtitle>
|
||||
<segtitle>Installed scripts</segtitle>
|
||||
<segtitle>Installed files</segtitle>
|
||||
<seglistitem><seg>hotplug</seg>
|
||||
<seg>/etc/hotplug/*.rc, /etc/hotplug/*.agent</seg>
|
||||
<seg>/etc/hotplug/hotplug.functions, /etc/hotplug/blacklist, /etc/hotplug/{pci,usb},
|
||||
/etc/hotplug/usb.usermap, /etc/hotplug.d</seg></seglistitem>
|
||||
</segmentedlist>
|
||||
|
||||
<variablelist><bridgehead renderas="sect3">Short Descriptions</bridgehead>
|
||||
<?dbfo list-presentation="list"?>
|
||||
|
||||
<varlistentry id="hotplug">
|
||||
<term><command>hotplug</command></term>
|
||||
<listitem>
|
||||
<indexterm zone="ch-system-hotplug hotplug"><primary
|
||||
sortas="b-hotplug">hotplug</primary></indexterm>
|
||||
<para>This script is called by default by Linux kernel when something
|
||||
changes in its internal state (e.g., a new device is added or removed).</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry id="hotplug-rc">
|
||||
<term><command>/etc/hotplug/*.rc</command></term>
|
||||
<listitem>
|
||||
<indexterm zone="ch-system-hotplug hotplug-rc"><primary
|
||||
sortas="d-/etc/hotplug/*.rc">/etc/hotplug/*.rc</primary></indexterm>
|
||||
<para>These scripts are used for cold plugging, i.e., detection and other
|
||||
specific actions upon hardware already present during system startup.
|
||||
They are called by the <filename>hotplug</filename> initscript that comes
|
||||
from the LFS-Bootscripts package.
|
||||
The <command>*.rc</command>
|
||||
scripts try to recover hotplug events that were lost during system boot
|
||||
because, e.g., the root filesystem was not mounted by the kernel.
|
||||
</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry id="hotplug-agent">
|
||||
<term><command>/etc/hotplug/*.agent</command></term>
|
||||
<listitem>
|
||||
<indexterm zone="ch-system-hotplug hotplug-agent"><primary
|
||||
sortas="d-/etc/hotplug/*.agent">/etc/hotplug/*.agent</primary></indexterm>
|
||||
<para>These scripts are called by <command>hotplug</command>
|
||||
in response to different types of hotplug events generated by the kernel.
|
||||
Their action is to insert corresponding kernel modules and call user-provided
|
||||
scripts, if any.
|
||||
</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry id="hotplug-functions">
|
||||
<term><filename>/etc/hotplug/hotplug.functions</filename></term>
|
||||
<listitem>
|
||||
<indexterm zone="ch-system-hotplug hotplug-functions"><primary
|
||||
sortas="e-/etc/hotplug/hotplug.functions">/etc/hotplug/hotplug.functions</primary></indexterm>
|
||||
<para>This file contains common functions used by other scripts in Hotplug
|
||||
package.
|
||||
</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry id="hotplug-blacklist">
|
||||
<term><filename>/etc/hotplug/blacklist</filename></term>
|
||||
<listitem>
|
||||
<indexterm zone="ch-system-hotplug hotplug-blacklist"><primary
|
||||
sortas="e-/etc/hotplug/blacklist">/etc/hotplug/blacklist</primary></indexterm>
|
||||
<para>This file contains the list of modules that should never be
|
||||
inserted into the kernel by hotplug scripts.
|
||||
</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry id="hotplug-subdirs">
|
||||
<term><filename class="directory">/etc/hotplug/{pci,usb}</filename></term>
|
||||
<listitem>
|
||||
<indexterm zone="ch-system-hotplug hotplug-subdirs"><primary
|
||||
sortas="e-/etc/hotplug/{pci,usb}">/etc/hotplug/{pci,usb}</primary></indexterm>
|
||||
<para>These directories are supposed to contain user-written handlers for
|
||||
hotplug events.
|
||||
</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry id="hotplug-usb.usermap">
|
||||
<term><filename>/etc/hotplug/usb.usermap</filename></term>
|
||||
<listitem>
|
||||
<indexterm zone="ch-system-hotplug hotplug-usb.usermap"><primary
|
||||
sortas="e-/etc/hotplug/usb.usermap">/etc/hotplug/usb.usermap</primary></indexterm>
|
||||
<para>This file contains rules that determine which user-defined handlers to
|
||||
call for each USB device, based on its vendor, id and other attributes.
|
||||
</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry id="hotplug-hotplug.d">
|
||||
<term><filename class="directory">/etc/hotplug.d</filename></term>
|
||||
<listitem>
|
||||
<indexterm zone="ch-system-hotplug hotplug-hotplug.d"><primary
|
||||
sortas="e-/etc/hotplug.d">/etc/hotplug.d</primary></indexterm>
|
||||
<para>This directory contains programs (or symlinks to them)
|
||||
that are interested in receiving hotplug events. E.g.,
|
||||
<application>Udev</application> puts its symlink here during installation.
|
||||
</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
</variablelist>
|
||||
</sect2>
|
||||
</sect1>
|
||||
|
@ -3,13 +3,14 @@
|
||||
<!ENTITY % general-entities SYSTEM "../general.ent">
|
||||
%general-entities;
|
||||
]>
|
||||
<sect1 id="ch-system-iana-etc" xreflabel="Iana-Etc" role="wrap">
|
||||
<sect1 id="ch-system-iana-etc" role="wrap">
|
||||
<title>Iana-Etc-&iana-etc-version;</title>
|
||||
<?dbhtml filename="iana-etc.html"?>
|
||||
|
||||
<indexterm zone="ch-system-iana-etc"><primary sortas="a-Iana-Etc">Iana-Etc</primary></indexterm>
|
||||
|
||||
<sect2 role="package"><title/>
|
||||
<para>The Iana-Etc package provides data for network services and protocols.</para>
|
||||
|
||||
<segmentedlist>
|
||||
<segtitle>&buildtime;</segtitle>
|
||||
@ -17,6 +18,10 @@
|
||||
<seglistitem><seg>0.1 SBU</seg><seg>641 KB</seg></seglistitem>
|
||||
</segmentedlist>
|
||||
|
||||
<segmentedlist>
|
||||
<segtitle>Iana-Etc installation depends on</segtitle>
|
||||
<seglistitem><seg>Make</seg></seglistitem>
|
||||
</segmentedlist>
|
||||
</sect2>
|
||||
|
||||
<sect2 role="installation">
|
||||
@ -26,7 +31,7 @@
|
||||
|
||||
<screen><userinput>make</userinput></screen>
|
||||
|
||||
<para>Now install it:</para>
|
||||
<para>Install the package:</para>
|
||||
|
||||
<screen><userinput>make install</userinput></screen>
|
||||
|
||||
@ -35,9 +40,35 @@
|
||||
|
||||
<sect2 id="contents-iana-etc" role="content"><title>Contents of Iana-Etc</title>
|
||||
|
||||
<para>See testing</para>
|
||||
<segmentedlist>
|
||||
<segtitle>Installed files</segtitle>
|
||||
<seglistitem><seg>/etc/protocols and /etc/services</seg></seglistitem>
|
||||
</segmentedlist>
|
||||
|
||||
<variablelist><bridgehead renderas="sect3">Short Descriptions</bridgehead>
|
||||
<?dbfo list-presentation="list"?>
|
||||
|
||||
<varlistentry id="protocols">
|
||||
<term><filename>/etc/protocols</filename></term>
|
||||
<listitem>
|
||||
<para>Describes the various DARPA Internet protocols that are
|
||||
available from the TCP/IP subsystem</para>
|
||||
<indexterm zone="ch-system-iana-etc"><primary sortas="e-/etc/protocols">/etc/protocols</primary></indexterm>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry id="services">
|
||||
<term><filename>/etc/services</filename></term>
|
||||
<listitem>
|
||||
<para>Provides a mapping between friendly textual names for internet
|
||||
services, and their underlying assigned port numbers and protocol
|
||||
types</para>
|
||||
<indexterm zone="ch-system-iana-etc"><primary sortas="e-/etc/services">/etc/services</primary></indexterm>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
</variablelist>
|
||||
|
||||
</sect2>
|
||||
|
||||
|
||||
</sect1>
|
||||
|
||||
|
@ -3,13 +3,14 @@
|
||||
<!ENTITY % general-entities SYSTEM "../general.ent">
|
||||
%general-entities;
|
||||
]>
|
||||
<sect1 id="ch-system-inetutils" xreflabel="Inetutils" role="wrap">
|
||||
<sect1 id="ch-system-inetutils" role="wrap">
|
||||
<title>Inetutils-&inetutils-version;</title>
|
||||
<?dbhtml filename="inetutils.html"?>
|
||||
|
||||
<indexterm zone="ch-system-inetutils"><primary sortas="a-Inetutils">Inetutils</primary></indexterm>
|
||||
|
||||
<sect2 role="package"><title/>
|
||||
<para>The Inetutils package contains programs for basic networking.</para>
|
||||
|
||||
<segmentedlist>
|
||||
<segtitle>&buildtime;</segtitle>
|
||||
@ -17,35 +18,84 @@
|
||||
<seglistitem><seg>0.2 SBU</seg><seg>11 MB</seg></seglistitem>
|
||||
</segmentedlist>
|
||||
|
||||
<segmentedlist>
|
||||
<segtitle>Inetutils installation depends on</segtitle>
|
||||
<seglistitem><seg>Bash, Binutils, Coreutils,
|
||||
Diffutils, GCC, Glibc, Grep, Make, Ncurses, and Sed</seg></seglistitem>
|
||||
</segmentedlist>
|
||||
</sect2>
|
||||
|
||||
<sect2 role="installation">
|
||||
<title>Installation of Inetutils</title>
|
||||
|
||||
<para>Apply a patch patch:</para>
|
||||
<para>Inetutils has issues with the Linux 2.6 kernel series. Fix these
|
||||
issues by applying the following patch:</para>
|
||||
|
||||
<screen><userinput>patch -Np1 -i ../inetutils-&inetutils-version;-kernel_headers-1.patch</userinput></screen>
|
||||
|
||||
<para>Apply another patch:</para>
|
||||
<para>All programs that come with Inetutils will not be installed.
|
||||
However, the Inetutils build system will insist on installing all the
|
||||
man pages anyway. The following patch will correct this
|
||||
situation:</para>
|
||||
|
||||
<screen><userinput>patch -Np1 -i ../inetutils-&inetutils-version;-no_server_man_pages-1.patch</userinput></screen>
|
||||
|
||||
<para>Now prepare Inetutils for compilation:</para>
|
||||
<para>Prepare Inetutils for compilation:</para>
|
||||
|
||||
<screen><userinput>./configure --prefix=/usr --libexecdir=/usr/sbin \
|
||||
--sysconfdir=/etc --localstatedir=/var \
|
||||
--disable-logger --disable-syslogd \
|
||||
--disable-whois --disable-servers</userinput></screen>
|
||||
|
||||
<para>The meaning of the configure options:</para>
|
||||
|
||||
<variablelist>
|
||||
<varlistentry>
|
||||
<term><parameter>--disable-logger</parameter></term>
|
||||
<listitem><para>This option
|
||||
prevents Inetutils from installing the <command>logger</command> program, which is used by
|
||||
scripts to pass messages to the System Log Daemon. Do not install it
|
||||
because Util-linux installs a better version later.</para></listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term><parameter>--disable-syslogd</parameter></term>
|
||||
<listitem><para>This option
|
||||
prevents Inetutils from installing the System Log Daemon, which is
|
||||
installed with the Sysklogd package.</para></listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term><parameter>--disable-whois</parameter></term>
|
||||
<listitem><para>This option disables
|
||||
the building of the Inetutils <command>whois</command> client, which is out of date.
|
||||
Instructions for a better <command>whois</command> client are in the BLFS book.</para></listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term><parameter>--disable-servers</parameter></term>
|
||||
<listitem><para>This disables the installation of the various network
|
||||
servers included as part of the Inetutils package. These servers are
|
||||
deemed not appropriate in a basic LFS system. Some are insecure by
|
||||
nature and are only considered safe on trusted networks. More
|
||||
information can be found at <phrase condition="html"><ulink
|
||||
url="&blfs-root;view/svn/basicnet/inetutils.html"/></phrase><phrase
|
||||
condition="pdf"><ulink url="&blfs-root;view/svn/ basicnet/inetutils.html"/></phrase>. Note that
|
||||
better replacements are available for many of these
|
||||
servers.</para></listitem>
|
||||
</varlistentry>
|
||||
</variablelist>
|
||||
|
||||
<para>Compile the package:</para>
|
||||
|
||||
<screen><userinput>make</userinput></screen>
|
||||
|
||||
<para>Install it:</para>
|
||||
<para>Install the package:</para>
|
||||
|
||||
<screen><userinput>make install</userinput></screen>
|
||||
|
||||
<para>Move the <command>ping</command> program:</para>
|
||||
<para>Move the <command>ping</command> program to its FHS-compliant
|
||||
place:</para>
|
||||
|
||||
<screen><userinput>mv /usr/bin/ping /bin</userinput></screen>
|
||||
|
||||
@ -54,8 +104,80 @@
|
||||
|
||||
<sect2 id="contents-inetutils" role="content"><title>Contents of Inetutils</title>
|
||||
|
||||
<para>See testing</para>
|
||||
<segmentedlist>
|
||||
<segtitle>Installed programs</segtitle>
|
||||
<seglistitem><seg>ftp, ping, rcp, rlogin, rsh, talk, telnet, and tftp</seg></seglistitem>
|
||||
</segmentedlist>
|
||||
|
||||
<variablelist><bridgehead renderas="sect3">Short Descriptions</bridgehead>
|
||||
<?dbfo list-presentation="list"?>
|
||||
|
||||
<varlistentry id="ftp">
|
||||
<term><command>ftp</command></term>
|
||||
<listitem>
|
||||
<para>Is the file transfer protocol program</para>
|
||||
<indexterm zone="ch-system-inetutils ftp"><primary sortas="b-ftp">ftp</primary></indexterm>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry id="ping">
|
||||
<term><command>ping</command></term>
|
||||
<listitem>
|
||||
<para>Sends echo-request packets and reports how long the replies take</para>
|
||||
<indexterm zone="ch-system-inetutils ping"><primary sortas="b-ping">ping</primary></indexterm>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry id="rcp">
|
||||
<term><command>rcp</command></term>
|
||||
<listitem>
|
||||
<para>Performs remote file copy</para>
|
||||
<indexterm zone="ch-system-inetutils rcp"><primary sortas="b-rcp">rcp</primary></indexterm>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry id="rlogin">
|
||||
<term><command>rlogin</command></term>
|
||||
<listitem>
|
||||
<para>Performs remote login</para>
|
||||
<indexterm zone="ch-system-inetutils rlogin"><primary sortas="b-rlogin">rlogin</primary></indexterm>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry id="rsh">
|
||||
<term><command>rsh</command></term>
|
||||
<listitem>
|
||||
<para>Runs a remote shell</para>
|
||||
<indexterm zone="ch-system-inetutils rsh"><primary sortas="b-rsh">rsh</primary></indexterm>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry id="talk">
|
||||
<term><command>talk</command></term>
|
||||
<listitem>
|
||||
<para>Is used to chat with another user</para>
|
||||
<indexterm zone="ch-system-inetutils talk"><primary sortas="b-talk">talk</primary></indexterm>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry id="telnet">
|
||||
<term><command>telnet</command></term>
|
||||
<listitem>
|
||||
<para>An interface to the TELNET protocol</para>
|
||||
<indexterm zone="ch-system-inetutils telnet"><primary sortas="b-telnet">telnet</primary></indexterm>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry id="tftp">
|
||||
<term><command>tftp</command></term>
|
||||
<listitem>
|
||||
<para>A trivial file transfer program</para>
|
||||
<indexterm zone="ch-system-inetutils tftp"><primary sortas="b-tftp">tftp</primary></indexterm>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
</variablelist>
|
||||
|
||||
</sect2>
|
||||
|
||||
</sect1>
|
||||
|
||||
|
@ -7,6 +7,65 @@
|
||||
<title>Introduction</title>
|
||||
<?dbhtml filename="introduction.html"?>
|
||||
|
||||
<para>See testing</para>
|
||||
<para>In this chapter, we enter the building site and start
|
||||
constructing the LFS system in earnest. That is, we chroot into the
|
||||
temporary mini Linux system, make a few final preparations, and then
|
||||
begin installing the packages.</para>
|
||||
|
||||
<para>The installation of this software is straightforward. Although
|
||||
in many cases the installation instructions could be made shorter and
|
||||
more generic, we have opted to provide the full instructions for every
|
||||
package to minimize the possibilities for mistakes. The key to
|
||||
learning what makes a Linux system work is to know what each package
|
||||
is used for and why the user (or the system) needs it. For every
|
||||
installed package, a summary of its contents is given, followed by
|
||||
concise descriptions of each program and library the package
|
||||
installed.</para>
|
||||
|
||||
<para>If using the compiler optimizations provided in this chapter,
|
||||
please review the optimization hint at <ulink
|
||||
url="&hints-root;optimization.txt"/>. Compiler optimizations can make
|
||||
a program run slightly faster, but they may also cause compilation
|
||||
difficulties and problems when running the program. If a package
|
||||
refuses to compile when using optimization, try to compile it without
|
||||
optimization and see if that fixes the problem. Even if the package
|
||||
does compile when using optimization, there is the risk it may have
|
||||
been compiled incorrectly because of the complex interactions between
|
||||
the code and build tools. The small potential gains achieved in using
|
||||
compiler optimizations are often outweighed by the risks. First-time
|
||||
builders of LFS are encouraged to build without custom optimizations.
|
||||
The subsequent system will still run very fast and be stable at the
|
||||
same time.</para>
|
||||
|
||||
<para>The order that packages are installed in this chapter needs to
|
||||
be strictly followed to ensure that no program accidentally acquires a
|
||||
path referring to <filename class="directory">/tools</filename>
|
||||
hard-wired into it. For the same reason, do not compile packages in
|
||||
parallel. Compiling in parallel may save time (especially on dual-CPU
|
||||
machines), but it could result in a program containing a hard-wired
|
||||
path to <filename class="directory">/tools</filename>, which will
|
||||
cause the program to stop working when that directory is
|
||||
removed.</para>
|
||||
|
||||
<para>Before the installation instructions, each installation page
|
||||
provides information about the package, including a concise
|
||||
description of what it contains, approximately how long it will take
|
||||
to build, how much disk space is required during this building
|
||||
process, and any other packages needed to successfully build the
|
||||
package. Following the installation instructions, there is a list of
|
||||
programs and libraries (along with brief descriptions of these) that
|
||||
the package installs.</para>
|
||||
|
||||
<para>To keep track of which package installs particular files, a package
|
||||
manager can be used. For a general overview of different styles of package
|
||||
managers, please refer to <ulink
|
||||
url="&blfs-root;view/svn/introduction/important.html"/>.
|
||||
For a package management method specifically geared towards LFS, we recommend <ulink
|
||||
url="&hints-root;more_control_and_pkg_man.txt"/>.</para>
|
||||
|
||||
<note><para>The remainder of this book is to be performed while logged
|
||||
in as user <emphasis>root</emphasis> and no longer as user
|
||||
<emphasis>lfs</emphasis>.</para></note>
|
||||
|
||||
</sect1>
|
||||
|
||||
|
@ -3,16 +3,17 @@
|
||||
<!ENTITY % general-entities SYSTEM "../general.ent">
|
||||
%general-entities;
|
||||
]>
|
||||
<sect1 id="ch-system-iproute2" xreflabel="IProute2" role="wrap">
|
||||
<title>Iproute2-&iproute2-version;</title>
|
||||
<sect1 id="ch-system-iproute2" role="wrap">
|
||||
<title>Iproute2-&iproute2-version;</title>
|
||||
<?dbhtml filename="iproute2.html"?>
|
||||
|
||||
<indexterm zone="ch-system-iproute2">
|
||||
<primary sortas="a-iproute2">iproute2</primary>
|
||||
<primary sortas="a-iproute2">Iproute2</primary>
|
||||
</indexterm>
|
||||
<sect2 role="package">
|
||||
<title/>
|
||||
|
||||
<para>The Iproute2 package contains programs for basic and advanced
|
||||
IPV4-based networking.
|
||||
</para>
|
||||
<segmentedlist>
|
||||
<segtitle>&buildtime;</segtitle>
|
||||
<segtitle>&diskspace;</segtitle>
|
||||
@ -21,42 +22,244 @@
|
||||
<seg>.6 MB</seg>
|
||||
</seglistitem>
|
||||
</segmentedlist>
|
||||
|
||||
<segmentedlist>
|
||||
<segtitle>Iproute2 installation depends on</segtitle>
|
||||
<seglistitem>
|
||||
<seg>GCC, Glibc, Make, Linux-Headers, and Sed</seg>
|
||||
</seglistitem>
|
||||
</segmentedlist>
|
||||
</sect2>
|
||||
|
||||
<sect2 role="installation">
|
||||
<title>Installation of Iproute2</title>
|
||||
|
||||
<para>Apply a patch</para>
|
||||
<para>The <command>arpd</command> binary included in this package is
|
||||
dependent on Berkeley DB. Because <command>arpd</command> is not a very
|
||||
common requirement on a base Linux system, remove the dependency on
|
||||
Berkeley DB by applying the patch using the command below. If
|
||||
the <command>arpd</command> binary is needed, instructions for
|
||||
compiling Berkeley DB can be found in the BLFS Book at <ulink
|
||||
url="&blfs-root;view/svn/content/databases.html#db"/>.
|
||||
</para>
|
||||
|
||||
<screen><userinput>patch -Np1 -i ../iproute2-&iproute2-patch-version;-remove_db-1.patch</userinput></screen>
|
||||
|
||||
<!--NEW-->
|
||||
<para>The patch below fixes the issue with the newer versions of findutils,
|
||||
the issue will give an error message it options are not in the proper order.
|
||||
This patch corrects this issue for IPRoute2.</para>
|
||||
<para>The patch below fixes the issue with the newer versions of
|
||||
findutils whose <command>find</command> command will report an error
|
||||
message when its options are not in the proper order.</para>
|
||||
|
||||
<screen><userinput>patch -Np1 -i ../iproute2-&iproute2-patch-version;-find_update-1.patch</userinput></screen>
|
||||
<screen><userinput>patch -Np1 -i ../iproute2-&iproute2-patch-version;-find_update-1.patch</userinput></screen>
|
||||
|
||||
<para>Prepare iproute2 for compilation:</para>
|
||||
|
||||
|
||||
<para>Prepare Iproute2 for compilation:</para>
|
||||
<screen><userinput>./configure </userinput></screen>
|
||||
|
||||
<para>Compile the package:</para>
|
||||
|
||||
<screen><userinput>make SBINDIR=/sbin</userinput></screen>
|
||||
|
||||
<para>Now install it:</para>
|
||||
|
||||
<!--NEW-->
|
||||
<screen><userinput>make install SBINDIR=/sbin</userinput></screen>
|
||||
|
||||
<para>The meaning of the make option:</para>
|
||||
|
||||
<variablelist>
|
||||
<varlistentry>
|
||||
<term><parameter>SBINDIR=/sbin</parameter></term>
|
||||
<listitem><para>This makes sure that the Iproute2 binaries will install into
|
||||
<filename class="directory">/sbin</filename>. This is the correct
|
||||
location according to the FHS, because some of the Iproute2 binaries are used
|
||||
in the bootscripts.</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
</variablelist>
|
||||
|
||||
<para>Install the package:</para>
|
||||
|
||||
<screen><userinput>make SBINDIR=/sbin install</userinput></screen>
|
||||
</sect2>
|
||||
|
||||
<sect2 id="contents-iproute2" role="content">
|
||||
<title>Contents of Iproute2</title>
|
||||
|
||||
<para>See testing</para>
|
||||
|
||||
<title>Contents of Iproute2</title>
|
||||
<segmentedlist>
|
||||
<segtitle>Installed programs</segtitle>
|
||||
<seglistitem>
|
||||
<seg>ifstat, ip, nstat, routef, routel, rtmon, rtstat, ss, and tc.</seg>
|
||||
</seglistitem>
|
||||
</segmentedlist>
|
||||
|
||||
<variablelist><bridgehead renderas="sect3">Short Descriptions</bridgehead>
|
||||
<?dbfo list-presentation="list"?>
|
||||
|
||||
<varlistentry id="ifstat">
|
||||
<term>
|
||||
<command>ifstat</command>
|
||||
</term>
|
||||
<listitem>
|
||||
<para>Shows the interfaces statistic, including the amount of transmitted
|
||||
and received packages by interface.</para>
|
||||
<indexterm zone="ch-system-iproute2 ifstat">
|
||||
<primary sortas="b-ifstat">ifstat</primary>
|
||||
</indexterm>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry id="ip">
|
||||
<term>
|
||||
<command>ip</command>
|
||||
</term>
|
||||
<listitem>
|
||||
|
||||
<para>The main executable. It has several different functions:</para>
|
||||
|
||||
<para><command>ip link <replaceable>[device]</replaceable></command>
|
||||
allows users to look at the state of devices and to make changes.
|
||||
</para>
|
||||
|
||||
<para><command>ip addr</command> allows users to look at addresses and
|
||||
their properties, add new addresses, and delete old ones.
|
||||
</para>
|
||||
|
||||
<para><command>ip neighbor</command> allows users to look at
|
||||
neighbor bindings and their properties, add new
|
||||
neighbor entries, and delete old ones.
|
||||
</para>
|
||||
|
||||
<para><command>ip rule</command> allows users to look at the routing
|
||||
policies and change them.
|
||||
</para>
|
||||
|
||||
<para><command>ip route</command> allows users to look at the routing
|
||||
table and change routing table rules.
|
||||
</para>
|
||||
|
||||
<para><command>ip tunnel</command> allows users to look at the IP
|
||||
tunnels and their properties, and change them.
|
||||
</para>
|
||||
|
||||
<para><command>ip maddr</command> allows users to look at the multicast
|
||||
addresses and their properties, and change them.
|
||||
</para>
|
||||
|
||||
<para><command>ip mroute</command> allows users to set, change, or
|
||||
delete the multicast routing.
|
||||
</para>
|
||||
|
||||
<para><command>ip monitor</command> allows users to
|
||||
continously monitor the state of devices, addresses and routes.
|
||||
</para>
|
||||
<indexterm zone="ch-system-iproute2 ip">
|
||||
<primary sortas="b-ip">ip</primary>
|
||||
</indexterm>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry id="nstat">
|
||||
<term>
|
||||
<command>nstat</command>
|
||||
</term>
|
||||
<listitem>
|
||||
<para>Shows network statistics.</para>
|
||||
<indexterm zone="ch-system-iproute2 nstat">
|
||||
<primary sortas="b-nstat">nstat</primary>
|
||||
</indexterm>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry id="routef">
|
||||
<term>
|
||||
<command>routef</command>
|
||||
</term>
|
||||
<listitem>
|
||||
<para>A component of <command>ip route</command>. This is for flushing the routing
|
||||
tables.
|
||||
</para>
|
||||
<indexterm zone="ch-system-iproute2 routef">
|
||||
<primary sortas="b-routef">routef</primary>
|
||||
</indexterm>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry id="routel">
|
||||
<term>
|
||||
<command>routel</command>
|
||||
</term>
|
||||
<listitem>
|
||||
<para>A component of <command>ip route</command>. This is for listing the routing
|
||||
tables.
|
||||
</para>
|
||||
<indexterm zone="ch-system-iproute2 routel">
|
||||
<primary sortas="b-routel">routel</primary>
|
||||
</indexterm>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry id="rtmon">
|
||||
<term>
|
||||
<command>rtmon</command>
|
||||
</term>
|
||||
<listitem>
|
||||
<para>Route monitoring utility.</para>
|
||||
<indexterm zone="ch-system-iproute2 rtmon">
|
||||
<primary sortas="b-rtmon">rtmon</primary>
|
||||
</indexterm>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry id="rtstat">
|
||||
<term>
|
||||
<command>rtstat</command>
|
||||
</term>
|
||||
<listitem>
|
||||
<para>Route status utility</para>
|
||||
<indexterm zone="ch-system-iproute2 rtstat">
|
||||
<primary sortas="b-rtstat">rtstat</primary>
|
||||
</indexterm>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry id="ss">
|
||||
<term>
|
||||
<command>ss</command>
|
||||
</term>
|
||||
<listitem>
|
||||
<para>Similar to the <command>netstat</command> command; shows active connections</para>
|
||||
<indexterm zone="ch-system-iproute2 ss">
|
||||
<primary sortas="b-ss">ss</primary>
|
||||
</indexterm>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry id="tc">
|
||||
<term>
|
||||
<command>tc</command>
|
||||
</term>
|
||||
<listitem>
|
||||
<para>Traffic Controlling Executable; this is for Quality Of
|
||||
Service (QOS) and Class Of Service (COS)
|
||||
implementations
|
||||
</para>
|
||||
|
||||
<para><command>tc qdisc</command> allows users to setup the queueing
|
||||
discipline
|
||||
</para>
|
||||
|
||||
<para><command>tc class</command> allows users to setup classes based on
|
||||
the queuing discipline scheduling
|
||||
</para>
|
||||
|
||||
<para><command>tc estimator</command> allows users to estimate the
|
||||
network flow into a network
|
||||
</para>
|
||||
|
||||
<para><command>tc filter</command> allows users to setup the QOS/COS
|
||||
packet filtering
|
||||
</para>
|
||||
|
||||
<para><command>tc policy</command> allows users to setup the QOS/COS
|
||||
policies
|
||||
</para>
|
||||
<indexterm zone="ch-system-iproute2 ss">
|
||||
<primary sortas="b-tc">tc</primary>
|
||||
</indexterm>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
</variablelist>
|
||||
</sect2>
|
||||
</sect1>
|
||||
|
||||
|
@ -3,13 +3,14 @@
|
||||
<!ENTITY % general-entities SYSTEM "../general.ent">
|
||||
%general-entities;
|
||||
]>
|
||||
<sect1 id="ch-system-kbd" xreflabel="Kbd" role="wrap">
|
||||
<sect1 id="ch-system-kbd" role="wrap">
|
||||
<title>Kbd-&kbd-version;</title>
|
||||
<?dbhtml filename="kbd.html"?>
|
||||
|
||||
<indexterm zone="ch-system-kbd"><primary sortas="a-Kbd">Kbd</primary></indexterm>
|
||||
|
||||
<sect2 role="package"><title/>
|
||||
<para>The Kbd package contains key-table files and keyboard utilities.</para>
|
||||
|
||||
<segmentedlist>
|
||||
<segtitle>&buildtime;</segtitle>
|
||||
@ -17,6 +18,11 @@
|
||||
<seglistitem><seg>0.1 SBU</seg><seg>12 MB</seg></seglistitem>
|
||||
</segmentedlist>
|
||||
|
||||
<segmentedlist>
|
||||
<segtitle>Kbd installation depends on</segtitle>
|
||||
<seglistitem><seg>Bash, Binutils, Bison, Coreutils,
|
||||
Diffutils, Flex, GCC, Gettext, Glibc, Grep, Gzip, M4, Make, and Sed</seg></seglistitem>
|
||||
</segmentedlist>
|
||||
</sect2>
|
||||
|
||||
<sect2 role="installation">
|
||||
@ -30,7 +36,7 @@
|
||||
|
||||
<screen><userinput>make</userinput></screen>
|
||||
|
||||
<para>Now install it:</para>
|
||||
<para>Install the package:</para>
|
||||
|
||||
<screen><userinput>make install</userinput></screen>
|
||||
|
||||
@ -38,8 +44,244 @@
|
||||
|
||||
<sect2 id="contents-kbd" role="content"><title>Contents of Kbd</title>
|
||||
|
||||
<para>See testing</para>
|
||||
<segmentedlist>
|
||||
<segtitle>Installed programs</segtitle>
|
||||
<seglistitem><seg>chvt, deallocvt, dumpkeys,
|
||||
fgconsole, getkeycodes, getunimap, kbd_mode, kbdrate, loadkeys, loadunimap,
|
||||
mapscrn, openvt, psfaddtable (link to psfxtable), psfgettable (link to
|
||||
psfxtable), psfstriptable (link to psfxtable), psfxtable, resizecons,
|
||||
setfont, setkeycodes, setleds, setlogcons, setmetamode, setvesablank,
|
||||
showconsolefont, showkey, unicode_start, and unicode_stop</seg></seglistitem>
|
||||
</segmentedlist>
|
||||
|
||||
<variablelist><bridgehead renderas="sect3">Short Descriptions</bridgehead>
|
||||
<?dbfo list-presentation="list"?>
|
||||
|
||||
<varlistentry id="chvt">
|
||||
<term><command>chvt</command></term>
|
||||
<listitem>
|
||||
<para>Changes the foreground virtual terminal</para>
|
||||
<indexterm zone="ch-system-kbd chvt"><primary sortas="b-chvt">chvt</primary></indexterm>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry id="deallocvt">
|
||||
<term><command>deallocvt</command></term>
|
||||
<listitem>
|
||||
<para>Deallocates unused virtual terminals</para>
|
||||
<indexterm zone="ch-system-kbd deallocvt"><primary sortas="b-deallocvt">deallocvt</primary></indexterm>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry id="dumpkeys">
|
||||
<term><command>dumpkeys</command></term>
|
||||
<listitem>
|
||||
<para>Dumps the keyboard translation tables</para>
|
||||
<indexterm zone="ch-system-kbd dumpkeys"><primary sortas="b-dumpkeys">dumpkeys</primary></indexterm>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry id="fgconsole">
|
||||
<term><command>fgconsole</command></term>
|
||||
<listitem>
|
||||
<para>Prints the number of the active virtual terminal</para>
|
||||
<indexterm zone="ch-system-kbd fgconsole"><primary sortas="b-fgconsole">fgconsole</primary></indexterm>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry id="getkeycodes">
|
||||
<term><command>getkeycodes</command></term>
|
||||
<listitem>
|
||||
<para>Prints the kernel scancode-to-keycode mapping table</para>
|
||||
<indexterm zone="ch-system-kbd getkeycodes"><primary sortas="b-getkeycodes">getkeycodes</primary></indexterm>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry id="getunimap">
|
||||
<term><command>getunimap</command></term>
|
||||
<listitem>
|
||||
<para>Prints the currently used unimap</para>
|
||||
<indexterm zone="ch-system-kbd getunimap"><primary sortas="b-getunimap">getunimap</primary></indexterm>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry id="kbd_mode">
|
||||
<term><command>kbd_mode</command></term>
|
||||
<listitem>
|
||||
<para>Reports or sets the keyboard mode</para>
|
||||
<indexterm zone="ch-system-kbd kbd_mode"><primary sortas="b-kbd_mode">kbd_mode</primary></indexterm>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry id="kbdrate">
|
||||
<term><command>kbdrate</command></term>
|
||||
<listitem>
|
||||
<para>Sets the keyboard repeat and delay rates</para>
|
||||
<indexterm zone="ch-system-kbd kbdrate"><primary sortas="b-kbdrate">kbdrate</primary></indexterm>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry id="loadkeys">
|
||||
<term><command>loadkeys</command></term>
|
||||
<listitem>
|
||||
<para>Loads the keyboard translation tables</para>
|
||||
<indexterm zone="ch-system-kbd loadkeys"><primary sortas="b-loadkeys">loadkeys</primary></indexterm>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry id="loadunimap">
|
||||
<term><command>loadunimap</command></term>
|
||||
<listitem>
|
||||
<para>Loads the kernel unicode-to-font mapping table</para>
|
||||
<indexterm zone="ch-system-kbd loadunimap"><primary sortas="b-loadunimap">loadunimap</primary></indexterm>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry id="mapscrn">
|
||||
<term><command>mapscrn</command></term>
|
||||
<listitem>
|
||||
<para>An obsolete program that used to load
|
||||
a user-defined output character mapping table into the console driver; this is
|
||||
now done by <command>setfont</command></para>
|
||||
<indexterm zone="ch-system-kbd mapscrn"><primary sortas="b-mapscrn">mapscrn</primary></indexterm>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry id="openvt">
|
||||
<term><command>openvt</command></term>
|
||||
<listitem>
|
||||
<para>Starts a program on a new virtual terminal (VT)</para>
|
||||
<indexterm zone="ch-system-kbd openvt"><primary sortas="b-openvt">openvt</primary></indexterm>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry id="psfaddtable">
|
||||
<term><command>psfaddtable</command></term>
|
||||
<listitem>
|
||||
<para>A link to <command>psfxtable</command></para>
|
||||
<indexterm zone="ch-system-kbd psfaddtable"><primary sortas="b-psfaddtable">psfaddtable</primary></indexterm>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry id="psfgettable">
|
||||
<term><command>psfgettable</command></term>
|
||||
<listitem>
|
||||
<para>A link to <command>psfxtable</command></para>
|
||||
<indexterm zone="ch-system-kbd psfgettable"><primary sortas="b-psfgettable">psfgettable</primary></indexterm>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry id="psfstriptable">
|
||||
<term><command>psfstriptable</command></term>
|
||||
<listitem>
|
||||
<para>A link to <command>psfxtable</command></para>
|
||||
<indexterm zone="ch-system-kbd psfstriptable"><primary sortas="b-psfstriptable">psfstriptable</primary></indexterm>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry id="psfxtable">
|
||||
<term><command>psfxtable</command></term>
|
||||
<listitem>
|
||||
<para>Handle Unicode character tables for console fonts</para>
|
||||
<indexterm zone="ch-system-kbd psfxtable"><primary sortas="b-psfxtable">psfxtable</primary></indexterm>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry id="resizecons">
|
||||
<term><command>resizecons</command></term>
|
||||
<listitem>
|
||||
<para>Changes the kernel idea of the console size</para>
|
||||
<indexterm zone="ch-system-kbd resizecons"><primary sortas="b-resizecons">resizecons</primary></indexterm>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry id="setfont">
|
||||
<term><command>setfont</command></term>
|
||||
<listitem>
|
||||
<para>Changes the Enhanced Graphic Adapter (EGA) and Video Graphics
|
||||
Array (VGA) fonts on the console</para>
|
||||
<indexterm zone="ch-system-kbd setfont"><primary sortas="b-setfont">setfont</primary></indexterm>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry id="setkeycodes">
|
||||
<term><command>setkeycodes</command></term>
|
||||
<listitem>
|
||||
<para>Loads kernel scancode-to-keycode mapping table entries; this is
|
||||
useful if there are unusual keys on the keyboard</para>
|
||||
<indexterm zone="ch-system-kbd setkeycodes"><primary sortas="b-setkeycodes">setkeycodes</primary></indexterm>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry id="setleds">
|
||||
<term><command>setleds</command></term>
|
||||
<listitem>
|
||||
<para>Sets the keyboard flags and Light Emitting Diodes (LEDs)</para>
|
||||
<indexterm zone="ch-system-kbd setleds"><primary sortas="b-setleds">setleds</primary></indexterm>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry id="setlogcons">
|
||||
<term><command>setlogcons</command></term>
|
||||
<listitem>
|
||||
<para>Sends kernel messages to the console</para>
|
||||
<indexterm zone="ch-system-kbd setlogcons"><primary sortas="b-setlogcons">setlogcons</primary></indexterm>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry id="setmetamode">
|
||||
<term><command>setmetamode</command></term>
|
||||
<listitem>
|
||||
<para>Defines the keyboard meta-key handling</para>
|
||||
<indexterm zone="ch-system-kbd setmetamode"><primary sortas="b-setmetamode">setmetamode</primary></indexterm>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry id="setvesablank">
|
||||
<term><command>setvesablank</command></term>
|
||||
<listitem>
|
||||
<para>Lets the user adjust the built-in hardware screensaver (a blank
|
||||
screen)</para>
|
||||
<indexterm zone="ch-system-kbd setvesablank"><primary sortas="b-setvesablank">setvesablank</primary></indexterm>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry id="showconsolefont">
|
||||
<term><command>showconsolefont</command></term>
|
||||
<listitem>
|
||||
<para>Shows the current EGA/VGA console screen font</para>
|
||||
<indexterm zone="ch-system-kbd showconsolefont"><primary sortas="b-showconsolefont">showconsolefont</primary></indexterm>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry id="showkey">
|
||||
<term><command>showkey</command></term>
|
||||
<listitem>
|
||||
<para>Reports the scancodes, keycodes, and ASCII codes of the keys
|
||||
pressed on the keyboard</para>
|
||||
<indexterm zone="ch-system-kbd showkey"><primary sortas="b-showkey">showkey</primary></indexterm>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry id="unicode_start">
|
||||
<term><command>unicode_start</command></term>
|
||||
<listitem>
|
||||
<para>Puts the keyboard and console in UNICODE mode. Never use it on LFS,
|
||||
because applications are not configured to support UNICODE.</para>
|
||||
<indexterm zone="ch-system-kbd unicode_start"><primary sortas="b-unicode_start">unicode_start</primary></indexterm>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry id="unicode_stop">
|
||||
<term><command>unicode_stop</command></term>
|
||||
<listitem>
|
||||
<para>Reverts keyboard and console from UNICODE mode</para>
|
||||
<indexterm zone="ch-system-kbd unicode_stop"><primary sortas="b-unicode_stop">unicode_stop</primary></indexterm>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
</variablelist>
|
||||
|
||||
</sect2>
|
||||
|
||||
</sect1>
|
||||
|
||||
|
@ -1,10 +1,17 @@
|
||||
<?xml version="1.0" encoding="ISO-8859-1"?>
|
||||
<!DOCTYPE sect1 PUBLIC "-//OASIS//DTD DocBook XML V4.4//EN" "http://www.oasis-open.org/docbook/xml/4.4/docbookx.dtd">
|
||||
<!DOCTYPE sect1 PUBLIC "-//OASIS//DTD DocBook XML V4.4//EN" "http://www.oasis-open.org/docbook/xml/4.4/docbookx.dtd" [
|
||||
<!ENTITY % general-entities SYSTEM "../general.ent">
|
||||
%general-entities;
|
||||
]>
|
||||
<sect1 id="ch-system-kernfs">
|
||||
<title>Mounting Virtual Kernel File Systems</title>
|
||||
<?dbhtml filename="kernfs.html"?>
|
||||
|
||||
<para>Create the dirs:</para>
|
||||
<para>Various file systems exported by the kernel do not exist on the
|
||||
hard drive, but are used to communicate to and from the kernel
|
||||
itself.</para>
|
||||
|
||||
<para>Begin by creating directories onto which the file systems will be mounted:</para>
|
||||
|
||||
<screen><userinput>mkdir -p $LFS/{proc,sys}</userinput></screen>
|
||||
|
||||
@ -13,10 +20,18 @@
|
||||
<screen><userinput>mount -t proc proc $LFS/proc
|
||||
mount -t sysfs sysfs $LFS/sys</userinput></screen>
|
||||
|
||||
<para>Do some <quote>fake mounts</quote>:</para>
|
||||
<para>Remember that if for any reason you stop working on the LFS
|
||||
system and start again later, it is important to check that these file
|
||||
systems are mounted again before entering the chroot
|
||||
environment.</para>
|
||||
|
||||
<para>Additional file systems will soon be mounted from within the
|
||||
chroot environment. To keep the host up to date, perform a <quote>fake
|
||||
mount</quote> for each of these now:</para>
|
||||
|
||||
<screen><userinput>mount -f -t ramfs ramfs $LFS/dev
|
||||
mount -f -t tmpfs tmpfs $LFS/dev/shm
|
||||
mount -f -t devpts -o gid=4,mode=620 devpts $LFS/dev/pts</userinput></screen>
|
||||
|
||||
</sect1>
|
||||
|
||||
|
@ -3,13 +3,14 @@
|
||||
<!ENTITY % general-entities SYSTEM "../general.ent">
|
||||
%general-entities;
|
||||
]>
|
||||
<sect1 id="ch-system-less" xreflabel="Less" role="wrap">
|
||||
<sect1 id="ch-system-less" role="wrap">
|
||||
<title>Less-&less-version;</title>
|
||||
<?dbhtml filename="less.html"?>
|
||||
|
||||
<indexterm zone="ch-system-less"><primary sortas="a-Less">Less</primary></indexterm>
|
||||
|
||||
<sect2 role="package"><title/>
|
||||
<para>The Less package contains a text file viewer.</para>
|
||||
|
||||
<segmentedlist>
|
||||
<segtitle>&buildtime;</segtitle>
|
||||
@ -17,6 +18,11 @@
|
||||
<seglistitem><seg>0.1 SBU</seg><seg>3.4 MB</seg></seglistitem>
|
||||
</segmentedlist>
|
||||
|
||||
<segmentedlist>
|
||||
<segtitle>Less installation depends on</segtitle>
|
||||
<seglistitem><seg>Bash, Binutils, Coreutils, Diffutils,
|
||||
GCC, Glibc, Grep, Make, Ncurses, and Sed</seg></seglistitem>
|
||||
</segmentedlist>
|
||||
</sect2>
|
||||
|
||||
<sect2 role="installation">
|
||||
@ -26,20 +32,63 @@
|
||||
|
||||
<screen><userinput>./configure --prefix=/usr --bindir=/bin --sysconfdir=/etc</userinput></screen>
|
||||
|
||||
<para>The meaning of the configure option:</para>
|
||||
|
||||
<variablelist>
|
||||
<varlistentry>
|
||||
<term><parameter>--sysconfdir=/etc</parameter></term>
|
||||
<listitem><para>This option tells the programs created by the package to look in
|
||||
<filename class="directory">/etc</filename> for the configuration files.</para></listitem>
|
||||
</varlistentry>
|
||||
</variablelist>
|
||||
|
||||
<para>Compile the package:</para>
|
||||
|
||||
<screen><userinput>make</userinput></screen>
|
||||
|
||||
<para>Now install it:</para>
|
||||
<para>Install the package:</para>
|
||||
|
||||
<screen><userinput>make install</userinput></screen>
|
||||
|
||||
</sect2>
|
||||
|
||||
<sect2 id="contents-less" role="content"><title>Contents of Less</title>
|
||||
|
||||
<para>See testing</para>
|
||||
<segmentedlist>
|
||||
<segtitle>Installed programs</segtitle>
|
||||
<seglistitem><seg>less, lessecho, and lesskey</seg></seglistitem>
|
||||
</segmentedlist>
|
||||
|
||||
<variablelist><bridgehead renderas="sect3">Short Descriptions</bridgehead>
|
||||
<?dbfo list-presentation="list"?>
|
||||
|
||||
<varlistentry id="less">
|
||||
<term><command>less</command></term>
|
||||
<listitem>
|
||||
<para>a file viewer or pager; it displays the contents of the given
|
||||
file, letting the user scroll, find strings, and jump to marks</para>
|
||||
<indexterm zone="ch-system-less less"><primary sortas="b-less">less</primary></indexterm>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry id="lessecho">
|
||||
<term><command>lessecho</command></term>
|
||||
<listitem>
|
||||
<para>needed to expand meta-characters, such as <emphasis>*</emphasis>
|
||||
and <emphasis>?</emphasis>, in filenames on Unix systems</para>
|
||||
<indexterm zone="ch-system-less lessecho"><primary sortas="b-lessecho">lessecho</primary></indexterm>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry id="lesskey">
|
||||
<term><command>lesskey</command></term>
|
||||
<listitem>
|
||||
<para>used to specify the key bindings for <command>less</command></para>
|
||||
<indexterm zone="ch-system-less lesskey"><primary sortas="b-lesskey">lesskey</primary></indexterm>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
</variablelist>
|
||||
|
||||
</sect2>
|
||||
|
||||
</sect1>
|
||||
|
||||
|
@ -10,6 +10,7 @@
|
||||
<indexterm zone="ch-system-libol"><primary sortas="a-Libol">Libol</primary></indexterm>
|
||||
|
||||
<sect2 role="package"><title/>
|
||||
<para>The Libol package contains support libraries needed by Syslog-ng.</para>
|
||||
|
||||
<segmentedlist>
|
||||
<segtitle>&buildtime;</segtitle>
|
||||
@ -17,6 +18,10 @@
|
||||
<seglistitem><seg>Unchecked</seg><seg>Unchecked</seg></seglistitem>
|
||||
</segmentedlist>
|
||||
|
||||
<segmentedlist>
|
||||
<segtitle>Libol installation depends on</segtitle>
|
||||
<seglistitem><seg>Unchecked</seg></seglistitem>
|
||||
</segmentedlist>
|
||||
</sect2>
|
||||
|
||||
<sect2 role="installation">
|
||||
@ -24,14 +29,13 @@
|
||||
|
||||
<para>Prepare Libol for compilation</para>
|
||||
|
||||
<!--NEW-->
|
||||
<screen><userinput>./configure --prefix=/usr</userinput></screen>
|
||||
|
||||
<para>Compile Libol:</para>
|
||||
<para>Compile the package:</para>
|
||||
|
||||
<screen><userinput>make</userinput></screen>
|
||||
|
||||
<para>Now install it:</para>
|
||||
<para>Install the package:</para>
|
||||
|
||||
<screen><userinput>make install</userinput></screen>
|
||||
|
||||
@ -40,7 +44,34 @@
|
||||
|
||||
<sect2 id="contents-libol" role="content"><title>Contents of Libol</title>
|
||||
|
||||
<para>See testing</para>
|
||||
<segmentedlist>
|
||||
<segtitle>Installed programs</segtitle>
|
||||
<seglistitem><seg>Unchecked</seg></seglistitem>
|
||||
</segmentedlist>
|
||||
|
||||
<!--
|
||||
<variablelist><title>Short descriptions</title>
|
||||
|
||||
<varlistentry id="klogd">
|
||||
<term><command>klogd</command></term>
|
||||
<listitem>
|
||||
<indexterm zone="ch-system-sysklogd klogd"><primary sortas="b-klogd">klogd</primary></indexterm>
|
||||
<para>is a system daemon for intercepting and logging kernel messages.</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry id="syslogd">
|
||||
<term><command>syslogd</command></term>
|
||||
<listitem>
|
||||
<indexterm zone="ch-system-sysklogd syslogd"><primary sortas="b-syslogd">syslogd</primary></indexterm>
|
||||
<para>logs the messages that system programs
|
||||
offer for logging. Every logged message contains at least a date stamp and a
|
||||
hostname, and normally the program's name too, but that depends on how
|
||||
trusting the logging daemon is told to be.</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
</variablelist>
|
||||
-->
|
||||
|
||||
</sect2>
|
||||
|
||||
|
@ -3,13 +3,16 @@
|
||||
<!ENTITY % general-entities SYSTEM "../general.ent">
|
||||
%general-entities;
|
||||
]>
|
||||
<sect1 id="ch-system-libtool" xreflabel="Libtool" role="wrap">
|
||||
<sect1 id="ch-system-libtool" role="wrap">
|
||||
<title>Libtool-&libtool-version;</title>
|
||||
<?dbhtml filename="libtool.html"?>
|
||||
|
||||
<indexterm zone="ch-system-libtool"><primary sortas="a-Libtool">Libtool</primary></indexterm>
|
||||
|
||||
<sect2 role="package"><title/>
|
||||
<para>The Libtool package contains the GNU generic library support script.
|
||||
It wraps the complexity of using shared libraries in a consistent, portable
|
||||
interface.</para>
|
||||
|
||||
<segmentedlist>
|
||||
<segtitle>&buildtime;</segtitle>
|
||||
@ -17,6 +20,11 @@
|
||||
<seglistitem><seg>1.5 SBU</seg><seg>20 MB</seg></seglistitem>
|
||||
</segmentedlist>
|
||||
|
||||
<segmentedlist>
|
||||
<segtitle>Libtool installation depends on</segtitle>
|
||||
<seglistitem><seg>Bash, Binutils, Coreutils, Diffutils,
|
||||
GCC, Glibc, Grep, Make, and Sed</seg></seglistitem>
|
||||
</segmentedlist>
|
||||
</sect2>
|
||||
|
||||
<sect2 role="installation">
|
||||
@ -42,8 +50,41 @@
|
||||
|
||||
<sect2 id="contents-libtool" role="content"><title>Contents of Libtool</title>
|
||||
|
||||
<para>See testing</para>
|
||||
<segmentedlist>
|
||||
<segtitle>Installed programs</segtitle>
|
||||
<segtitle>Installed libraries</segtitle>
|
||||
<seglistitem><seg>libtool and libtoolize</seg><seg>libltdl.[a,so]</seg></seglistitem>
|
||||
</segmentedlist>
|
||||
|
||||
<variablelist><bridgehead renderas="sect3">Short Descriptions</bridgehead>
|
||||
<?dbfo list-presentation="list"?>
|
||||
|
||||
<varlistentry id="libtool">
|
||||
<term><command>libtool</command></term>
|
||||
<listitem>
|
||||
<para>Provides generalized library-building support services</para>
|
||||
<indexterm zone="ch-system-libtool libtool"><primary sortas="b-libtool">libtool</primary></indexterm>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry id="libtoolize">
|
||||
<term><command>libtoolize</command></term>
|
||||
<listitem>
|
||||
<para>Provides a standard way to add <command>libtool</command> support to a package</para>
|
||||
<indexterm zone="ch-system-libtool libtoolize"><primary sortas="b-libtoolize">libtoolize</primary></indexterm>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry id="libltdl">
|
||||
<term><filename class="libraryfile">libltdl</filename></term>
|
||||
<listitem>
|
||||
<para>Hides the various difficulties of dlopening libraries</para>
|
||||
<indexterm zone="ch-system-libtool libltdl"><primary sortas="c-libltdl">libltdl</primary></indexterm>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
</variablelist>
|
||||
|
||||
</sect2>
|
||||
|
||||
</sect1>
|
||||
|
||||
|
@ -12,6 +12,8 @@
|
||||
</indexterm>
|
||||
|
||||
<sect2 role="package"><title/>
|
||||
<para>The Linux-Libc-Headers package contains the
|
||||
<quote>sanitized</quote> kernel headers.</para>
|
||||
|
||||
<segmentedlist>
|
||||
<segtitle>&buildtime;</segtitle>
|
||||
@ -19,21 +21,34 @@
|
||||
<seglistitem><seg>0.1 SBU</seg><seg>22 MB</seg></seglistitem>
|
||||
</segmentedlist>
|
||||
|
||||
<segmentedlist>
|
||||
<segtitle>Linux-Libc-Headers installation depends on</segtitle>
|
||||
<seglistitem><seg>Coreutils</seg></seglistitem>
|
||||
</segmentedlist>
|
||||
|
||||
</sect2>
|
||||
|
||||
<sect2 role="installation">
|
||||
<title>Installation of Linux-Libc-Headers</title>
|
||||
|
||||
<para>For years it has been common practice to use <quote>raw</quote>
|
||||
kernel headers (straight from a kernel tarball) in <filename
|
||||
class="directory">/usr/include</filename>, but over the last few
|
||||
years, the kernel developers have taken a strong stance that this
|
||||
should not be done. This gave birth to the Linux-Libc-Headers Project,
|
||||
which was designed to maintain an API stable version of the Linux
|
||||
headers.</para>
|
||||
|
||||
<para>Install the header files:</para>
|
||||
|
||||
<screen><userinput>cp -R include/asm-i386 /usr/include/asm
|
||||
cp -R include/linux /usr/include</userinput></screen>
|
||||
|
||||
<para>Assure that all the headers are owned by root:</para>
|
||||
<para>Ensure that all the headers are owned by root:</para>
|
||||
|
||||
<screen><userinput>chown -R root:root /usr/include/{asm,linux}</userinput></screen>
|
||||
|
||||
<para>And make sure all the users can read the headers:</para>
|
||||
<para>Make sure the users can read the headers:</para>
|
||||
|
||||
<screen><userinput>find /usr/include/{asm,linux} -type d -exec chmod 755 {} \;
|
||||
find /usr/include/{asm,linux} -type f -exec chmod 644 {} \;</userinput></screen>
|
||||
@ -43,8 +58,24 @@ find /usr/include/{asm,linux} -type f -exec chmod 644 {} \;</userinput></screen>
|
||||
|
||||
<sect2 id="contents-linux-libc-headers" role="content"><title>Contents of Linux-Libc-Headers</title>
|
||||
|
||||
<para>See testing</para>
|
||||
<segmentedlist>
|
||||
<segtitle>Installed headers</segtitle>
|
||||
<seglistitem><seg>/usr/include/{asm,linux}/*.h</seg></seglistitem>
|
||||
</segmentedlist>
|
||||
|
||||
<variablelist><bridgehead renderas="sect3">Short Descriptions</bridgehead>
|
||||
<?dbfo list-presentation="list"?>
|
||||
|
||||
<varlistentry id="linux-libc-headers">
|
||||
<term><filename class="headerfile">/usr/include/{asm,linux}/*.h</filename></term>
|
||||
<listitem>
|
||||
<para>The Linux headers API</para>
|
||||
<indexterm zone="ch-system-linux-libc-headers linux-libc-headers"><primary sortas="e-/usr/include/{asm,linux}/*.h">/usr/include/{asm,linux}/*.h</primary></indexterm>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
</variablelist>
|
||||
|
||||
</sect2>
|
||||
|
||||
</sect1>
|
||||
|
||||
|
@ -3,13 +3,14 @@
|
||||
<!ENTITY % general-entities SYSTEM "../general.ent">
|
||||
%general-entities;
|
||||
]>
|
||||
<sect1 id="ch-system-m4" xreflabel="M4" role="wrap">
|
||||
<sect1 id="ch-system-m4" role="wrap">
|
||||
<title>M4-&m4-version;</title>
|
||||
<?dbhtml filename="m4.html"?>
|
||||
|
||||
<indexterm zone="ch-system-m4"><primary sortas="a-M4">M4</primary></indexterm>
|
||||
|
||||
<sect2 role="package"><title/>
|
||||
<para>The M4 package contains a macro processor.</para>
|
||||
|
||||
<segmentedlist>
|
||||
<segtitle>&buildtime;</segtitle>
|
||||
@ -17,6 +18,11 @@
|
||||
<seglistitem><seg>0.1 SBU</seg><seg>3.0 MB</seg></seglistitem>
|
||||
</segmentedlist>
|
||||
|
||||
<segmentedlist>
|
||||
<segtitle>M4 installation depends on</segtitle>
|
||||
<seglistitem><seg>Bash, Binutils, Coreutils, Diffutils, GCC,
|
||||
Gettext, Glibc, Grep, Make, Perl, and Sed</seg></seglistitem>
|
||||
</segmentedlist>
|
||||
</sect2>
|
||||
|
||||
<sect2 role="installation">
|
||||
@ -33,7 +39,7 @@
|
||||
<para>To test the results, issue:
|
||||
<userinput>make check</userinput>.</para>
|
||||
|
||||
<para>And install the package:</para>
|
||||
<para>Install the package:</para>
|
||||
|
||||
<screen><userinput>make install</userinput></screen>
|
||||
|
||||
@ -42,8 +48,31 @@
|
||||
|
||||
<sect2 id="contents-m4" role="content"><title>Contents of M4</title>
|
||||
|
||||
<para>See testing</para>
|
||||
<segmentedlist>
|
||||
<segtitle>Installed program</segtitle>
|
||||
<seglistitem><seg>m4</seg></seglistitem>
|
||||
</segmentedlist>
|
||||
|
||||
<variablelist><bridgehead renderas="sect3">Short Descriptions</bridgehead>
|
||||
<?dbfo list-presentation="list"?>
|
||||
|
||||
<varlistentry id="m4">
|
||||
<term><command>m4</command></term>
|
||||
<listitem>
|
||||
<para>copies the given files while expanding the macros that they
|
||||
contain. These macros are either built-in or user-defined and can take
|
||||
any number of arguments. Besides performing macro expansion,
|
||||
<command>m4</command> has
|
||||
built-in functions for including named files, running Unix commands,
|
||||
performing integer arithmetic, manipulating text, recursion, etc. The
|
||||
<command>m4</command> program can be used either as a front-end to a compiler or as a
|
||||
macro processor in its own right.</para>
|
||||
<indexterm zone="ch-system-m4 m4"><primary sortas="b-m4">m4</primary></indexterm>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
</variablelist>
|
||||
|
||||
</sect2>
|
||||
|
||||
</sect1>
|
||||
|
||||
|
@ -3,13 +3,14 @@
|
||||
<!ENTITY % general-entities SYSTEM "../general.ent">
|
||||
%general-entities;
|
||||
]>
|
||||
<sect1 id="ch-system-make" xreflabel="Make" role="wrap">
|
||||
<sect1 id="ch-system-make" role="wrap">
|
||||
<title>Make-&make-version;</title>
|
||||
<?dbhtml filename="make.html"?>
|
||||
|
||||
<indexterm zone="ch-system-make"><primary sortas="a-Make">Make</primary></indexterm>
|
||||
|
||||
<sect2 role="package"><title/>
|
||||
<para>The Make package contains a program for compiling large packages.</para>
|
||||
|
||||
<segmentedlist>
|
||||
<segtitle>&buildtime;</segtitle>
|
||||
@ -17,6 +18,11 @@
|
||||
<seglistitem><seg>0.2 SBU</seg><seg>8.8 MB</seg></seglistitem>
|
||||
</segmentedlist>
|
||||
|
||||
<segmentedlist>
|
||||
<segtitle>Make installation depends on</segtitle>
|
||||
<seglistitem><seg>Bash, Binutils, Coreutils, Diffutils,
|
||||
GCC, Gettext, Glibc, Grep, and Sed</seg></seglistitem>
|
||||
</segmentedlist>
|
||||
</sect2>
|
||||
|
||||
<sect2 role="installation">
|
||||
@ -33,7 +39,7 @@
|
||||
<para>To test the results, issue:
|
||||
<userinput>make check</userinput>.</para>
|
||||
|
||||
<para>Now install the package:</para>
|
||||
<para>Install the package:</para>
|
||||
|
||||
<screen><userinput>make install</userinput></screen>
|
||||
|
||||
@ -42,8 +48,25 @@
|
||||
|
||||
<sect2 id="contents-make" role="content"><title>Contents of Make</title>
|
||||
|
||||
<para>See testing</para>
|
||||
<segmentedlist>
|
||||
<segtitle>Installed program</segtitle>
|
||||
<seglistitem><seg>make</seg></seglistitem>
|
||||
</segmentedlist>
|
||||
|
||||
<variablelist><bridgehead renderas="sect3">Short Descriptions</bridgehead>
|
||||
<?dbfo list-presentation="list"?>
|
||||
|
||||
<varlistentry id="make">
|
||||
<term><command>make</command></term>
|
||||
<listitem>
|
||||
<para>Automatically determines which pieces of a large package need to
|
||||
be recompiled and then issues the relevant commands</para>
|
||||
<indexterm zone="ch-system-make make"><primary sortas="b-make">make</primary></indexterm>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
</variablelist>
|
||||
|
||||
</sect2>
|
||||
|
||||
</sect1>
|
||||
|
||||
|
@ -3,13 +3,14 @@
|
||||
<!ENTITY % general-entities SYSTEM "../general.ent">
|
||||
%general-entities;
|
||||
]>
|
||||
<sect1 id="ch-system-man-pages" xreflabel="Man-pages" role="wrap">
|
||||
<sect1 id="ch-system-man-pages" role="wrap">
|
||||
<title>Man-pages-&man-pages-version;</title>
|
||||
<?dbhtml filename="man-pages.html"?>
|
||||
|
||||
<indexterm zone="ch-system-man-pages"><primary sortas="a-Man-pages">Man-pages</primary></indexterm>
|
||||
|
||||
<sect2 role="package"><title/>
|
||||
<para>The Man-pages package contains over 1,200 manual pages.</para>
|
||||
|
||||
<segmentedlist>
|
||||
<segtitle>&buildtime;</segtitle>
|
||||
@ -17,6 +18,10 @@
|
||||
<seglistitem><seg>0.1 SBU</seg><seg>15 MB</seg></seglistitem>
|
||||
</segmentedlist>
|
||||
|
||||
<segmentedlist>
|
||||
<segtitle>Man-pages installation depends on</segtitle>
|
||||
<seglistitem><seg>Bash, Coreutils, and Make</seg></seglistitem>
|
||||
</segmentedlist>
|
||||
</sect2>
|
||||
|
||||
<sect2 role="installation">
|
||||
@ -31,8 +36,25 @@
|
||||
|
||||
<sect2 id="contents-manpages" role="content"><title>Contents of Man-pages</title>
|
||||
|
||||
<para>See testing</para>
|
||||
<segmentedlist>
|
||||
<segtitle>Installed files</segtitle>
|
||||
<seglistitem><seg>various manual pages</seg></seglistitem>
|
||||
</segmentedlist>
|
||||
|
||||
<variablelist><bridgehead renderas="sect3">Short Descriptions</bridgehead>
|
||||
<?dbfo list-presentation="list"?>
|
||||
|
||||
<varlistentry id="manual-pages">
|
||||
<term><filename>manual pages</filename></term>
|
||||
<listitem>
|
||||
<para>Describe the C and C++ functions, important
|
||||
device files, and significant configuration files</para>
|
||||
<indexterm zone="ch-system-man-pages manual-pages"><primary sortas="e-manual-pages">manual pages</primary></indexterm>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
</variablelist>
|
||||
|
||||
</sect2>
|
||||
|
||||
</sect1>
|
||||
|
||||
|
@ -3,13 +3,14 @@
|
||||
<!ENTITY % general-entities SYSTEM "../general.ent">
|
||||
%general-entities;
|
||||
]>
|
||||
<sect1 id="ch-system-man" xreflabel="Man" role="wrap">
|
||||
<sect1 id="ch-system-man" role="wrap">
|
||||
<title>Man-&man-version;</title>
|
||||
<?dbhtml filename="man.html"?>
|
||||
|
||||
<indexterm zone="ch-system-man"><primary sortas="a-Man">Man</primary></indexterm>
|
||||
|
||||
<sect2 role="package"><title/>
|
||||
<para>The Man package contains programs for finding and viewing manual pages.</para>
|
||||
|
||||
<segmentedlist>
|
||||
<segtitle>&buildtime;</segtitle>
|
||||
@ -17,40 +18,160 @@
|
||||
<seglistitem><seg>0.1 SBU</seg><seg>1.9MB</seg></seglistitem>
|
||||
</segmentedlist>
|
||||
|
||||
<segmentedlist>
|
||||
<segtitle>Man installation depends on</segtitle>
|
||||
<seglistitem><seg>Bash, Binutils, Coreutils, Gawk, GCC,
|
||||
Glibc, Grep, Make, and Sed</seg></seglistitem>
|
||||
</segmentedlist>
|
||||
</sect2>
|
||||
|
||||
<sect2 role="installation">
|
||||
<title>Installation of Man</title>
|
||||
|
||||
<para>Issue a sed substitution:</para>
|
||||
<para>Two adjustments need to be made to the sources of Man.</para>
|
||||
|
||||
<para>The first is a sed substitution to add the
|
||||
<parameter>-R</parameter> switch to the <envar>PAGER</envar>
|
||||
variable so that escape sequences are properly handled by Less:</para>
|
||||
|
||||
<screen><userinput>sed -i 's@-is@&R@g' configure</userinput></screen>
|
||||
|
||||
<para>Issue another sed substitution:</para>
|
||||
<para>The second is also a sed substitution to comment out the
|
||||
<quote>MANPATH /usr/man</quote> line in the
|
||||
<filename>man.conf</filename> file to prevent redundant results when
|
||||
using programs such as <command>whatis</command>:</para>
|
||||
|
||||
<screen><userinput>sed -i 's@MANPATH./usr/man@#&@g' src/man.conf.in</userinput></screen>
|
||||
|
||||
<para>Now prepare Man for compilation:</para>
|
||||
<para>Prepare Man for compilation:</para>
|
||||
|
||||
<screen><userinput>./configure -confdir=/etc</userinput></screen>
|
||||
|
||||
<para>The meaning of the configure options:</para>
|
||||
|
||||
<variablelist>
|
||||
<varlistentry>
|
||||
<term><parameter>-confdir=/etc</parameter></term>
|
||||
<listitem><para>This tells the <command>man</command> program to look for the
|
||||
<filename>man.conf</filename> configuration file in the <filename
|
||||
class="directory">/etc</filename> directory.</para></listitem>
|
||||
</varlistentry>
|
||||
</variablelist>
|
||||
|
||||
<para>Compile the package:</para>
|
||||
|
||||
<screen><userinput>make</userinput></screen>
|
||||
|
||||
<para>Lastly, install it:</para>
|
||||
<para>Install the package:</para>
|
||||
|
||||
<screen><userinput>make install</userinput></screen>
|
||||
|
||||
<para>For some internazionalitation issues, see testing.</para>
|
||||
<note><para>To disable Select Graphic Rendition (SGR) escape
|
||||
sequences, edit the <filename>man.conf</filename> file and
|
||||
add the <parameter>-c</parameter> switch to
|
||||
the <envar>NROFF</envar> variable.</para></note>
|
||||
|
||||
<para>If the character set uses 8-bit characters, search for the line
|
||||
beginning with <quote>NROFF</quote> in
|
||||
<filename>/etc/man.conf</filename>, and verify that it looks as
|
||||
follows:</para>
|
||||
|
||||
<screen>NROFF /usr/bin/nroff -Tlatin1 -mandoc</screen>
|
||||
|
||||
<para>Note that <quote>latin1</quote> should be used even if it is not
|
||||
the character set of the locale. The reason is that, according to the
|
||||
specification, <command>groff</command> has no means of typesetting
|
||||
characters outside International Organization for Standards
|
||||
(ISO) 8859-1 without some strange escape codes. When formatting manual
|
||||
pages, <command>groff</command> thinks that they are in the ISO 8859-1
|
||||
encoding and this <parameter>-Tlatin1</parameter> switch tells
|
||||
<command>groff</command> to use the same encoding for output. Since
|
||||
<command>groff</command> does no recoding of input characters, the
|
||||
formatted result is really in the same encoding as input, and therefore
|
||||
it is usable as the input for a pager.</para>
|
||||
|
||||
<para>This does not solve the problem of a non-working
|
||||
<command>man2dvi</command> program for localized manual pages in
|
||||
non-ISO 8859-1 locales. Also, it does not work with multibyte
|
||||
character sets. The first problem does not currently have a solution.
|
||||
The second issue is not of concern because the LFS installation does
|
||||
not support multibyte character sets.</para>
|
||||
|
||||
<para>Additional information with regards to the compression of
|
||||
man and info pages can be found in the BLFS book at
|
||||
<ulink url="&blfs-root;view/cvs/postlfs/compressdoc.html"><phrase
|
||||
condition="pdf">http://www.linuxfromscratch.org/blfs/view/cvs/postlfs/
|
||||
compressdoc.html</phrase></ulink>.</para>
|
||||
|
||||
</sect2>
|
||||
|
||||
|
||||
<sect2 id="contents-man" role="content"><title>Contents of Man</title>
|
||||
|
||||
<para>See testing</para>
|
||||
<segmentedlist>
|
||||
<segtitle>Installed programs</segtitle>
|
||||
<seglistitem><seg>apropos, makewhatis, man,
|
||||
man2dvi, man2html, and whatis</seg></seglistitem>
|
||||
</segmentedlist>
|
||||
|
||||
<variablelist><bridgehead renderas="sect3">Short Descriptions</bridgehead>
|
||||
<?dbfo list-presentation="list"?>
|
||||
|
||||
<varlistentry id="apropos">
|
||||
<term><command>apropos</command></term>
|
||||
<listitem>
|
||||
<para>Searches the whatis database and displays the short descriptions
|
||||
of system commands that contain a given string</para>
|
||||
<indexterm zone="ch-system-man apropos"><primary sortas="b-apropos">apropos</primary></indexterm>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry id="makewhatis">
|
||||
<term><command>makewhatis</command></term>
|
||||
<listitem>
|
||||
<para>Builds the whatis database; it reads all the manual pages in the
|
||||
manpath and writes the name and a short description in the whatis
|
||||
database for each page</para>
|
||||
<indexterm zone="ch-system-man makewhatis"><primary sortas="b-makewhatis">makewhatis</primary></indexterm>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry id="man">
|
||||
<term><command>man</command></term>
|
||||
<listitem>
|
||||
<para>Formats and displays the requested on-line manual page</para>
|
||||
<indexterm zone="ch-system-man man"><primary sortas="b-man">man</primary></indexterm>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry id="man2dvi">
|
||||
<term><command>man2dvi</command></term>
|
||||
<listitem>
|
||||
<para>Converts a manual page into dvi format</para>
|
||||
<indexterm zone="ch-system-man man2dvi"><primary sortas="b-man2dvi">man2dvi</primary></indexterm>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry id="man2html">
|
||||
<term><command>man2html</command></term>
|
||||
<listitem>
|
||||
<para>Converts a manual page into HTML</para>
|
||||
<indexterm zone="ch-system-man man2html"><primary sortas="b-man2html">man2html</primary></indexterm>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry id="whatis">
|
||||
<term><command>whatis</command></term>
|
||||
<listitem>
|
||||
<para>Searches the whatis database and displays the short descriptions
|
||||
of system commands that contain the given keyword as a separate
|
||||
word</para>
|
||||
<indexterm zone="ch-system-man whatis"><primary sortas="b-whatis">whatis</primary></indexterm>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
</variablelist>
|
||||
|
||||
</sect2>
|
||||
|
||||
</sect1>
|
||||
|
||||
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user